1.初识数据库系统
引言
数据库系统的发展经历了三改演变
层次/网状数据库系统、关系数据库系统、新一代数据库系统
早就了四位图灵奖得主
(1)C.W.Bachman,网状数据库之父
1924年出生于美国堪萨斯州的曼哈顿。 1970—1981年在 Honeywell公司任总工程师,兼任Cullinet软件公司的副总裁。 他在数据库方面的杰出成就:1960年为通用电气开发了世界上第一个网状数据库系统IDS;积极推动与促成了数据库标准的制定:DBTG报告,成为数据库历史上 具有里程碑意义的文献。1971年第一版,73、78、81、84修订版。
巴赫曼在数据库技术的产生、发展与推广应用方面都发挥了巨大的作用。
1973获图灵奖。
1983年成立自己的公司—Bachman Information System
(2)E.F.Codd,关系数据库之父、美国工程院院士
英国人,1923生于英格兰中部波特兰。 第二次世界大战时应征入伍,在皇家空军服役。 1942-1945年间任机长,参与了许多惊心动魄的空战。
大战结束后,到英国牛津大学 数学专业 理学士及硕士学位,48年远渡大西洋 到IBM工作从事操作系统和自动机理论研究。
年近40重返密歇根大学进修计算机与通信专业 1963年获得硕士学位,1965年又获得博士学位。
60年代后期开始数据库研究, 1970年E.F.Codd 博士提出关系模型概念 (CACM,Vol.13, Vol.6, 1970 ,“A Relational Model of Data for Large Shared Data Banks” ACM在1983年把这篇论文列为从1958年以来的四分之一世纪中具有里程碑式 意义的最重要的25篇研究论文之一。)
1981年获图灵奖,84年从IBM公司退休。还创办了一个研究所和一个公司。
(3)James Gray,数据库技术和事务处理专家
1944年生,美国加州大学伯克利分校计算机科学系博士。
先后在贝尔实验室、IBM、Tandem、DEC等公司工作, 研究方向转向数据库领域。
由于他在数据库事务处理研究方面的原创性贡献以及在将研究原型转 化为商业产品的系统实现方面的技术领袖地位,1998年获奖(时任微 软研究员)。
2007年1月28日失踪。
(4)M.R.Stonebraker,现代主流数据库系统架构的奠基人
1971年至2000年为第一阶段,从事关系数据库的 体系架构与实现技术研究 。
2001年至2008年为第二阶段,在One-size-does-not-fit-all的理念 下,开发了一系列新型数据库系统的体系架构设计与产品开发 。
2009年至今为第三阶段,大数据系统的体系架构设计与实践 。
2014年获图灵奖 2015年10月22日中国计算机大会上(合肥)做大会报告
发展了一门计算机基础学科
数据建模和DBMS核心技术为主,内容丰富、领域广
带动了一个巨大软件产业:是理论成果转化为产品的成果范例
DBMS及其相关工具产品、应用套件、解决方案
数据库技术和系统已经成为信息系统的核心技术和重要基础设施
我国数据库发展历程:在数据库技术发展的起跑线上,中国晚了约15年
70年代 | 看 | 引进 | 1976年萨师煊教授将数据库概念引入国 内,在全国讲学,在人大开设数据库课 |
80年代 | 学 | 请进来 走出去 | 外国专家来华讲学 中国专家出国进修 |
90年代 | 赶 | 研发 开发 应用 | 国家攻关、863高技术项目、国家自然基 金等等 |
21世纪 | 创 | 创新研发 产品开发 应用集成 | 创新研究 与国际研究同步、立足应用、 开发自主的数据管理系统、 |
1.1 数据库系统概述
1.1.1 数据库的4个基本概念
数据(Data):是数据库存储的基本对象
数据的定义:描述事物的符号记录。
数据的种类:数字、文字、图形、图形、音频、视频、人事档案记录、订单情况等等。
数据的举例:
数据的含义成为数据的语义,数据与其语义是不可分的。
例如:93是一个数据
语义1:学生某门课的成绩
语义2:某人的体重
语义3:开发部门人数
日常生活中,人们可以直接用自然语言来描述事物。
计算机中常常用记录来描述,如人事档案中的人事记录:(李明,男,199005,广东广州,产品开发部,2018)
数据的形式不能完全表达其内容。
数据的解释:
语义:人员姓名、性别、出生年月、籍贯、所在部门、加入公司时间
解释:李明是开发员,1990年5月生,男,广东广州人,2018年加入开发部
数据是有结构的:记录是计算机存储数据的一种格式或一种方法。
数据库(Database,DB):长期存储在计算机内、有组织的、可共享的大量数据的集合。
建立数据库原因:
收集并抽取出一个应用所需要的大量数据,将其保存,以供进一步加工处理,抽取有用信息,转换为有价值的知识。
数据库的基本特征:
数据可按一定的数据模型组织、描述和存储
可为各种用户共享、冗余度较小、易扩展
数据独立性较高
数据库管理系统(DataBase Management System,DBMS):位于用户应用与操作系统之间的一层数据管理软件,是基础软件,是一个大型复杂的软件系统
数据库管理系统的用途:
科学地组织和存储数据、高效地获取和维护数据。
数据库在计算机系统中的位置:
数据库管理系统的主要功能:
(1)数据定义功能:
提供数据定义语言(DDL)
定义数据库中的数据对象
(2)数据组织、存储和管理:
分类组织、存储和管理各种数据
确定数据在存储级别上的结构和存取方式
实现数据之间的关系
提供多种存取方式提高存取效率
(3)数据操纵功能:
提供数据操纵语言(DML)
实现对数据库的基本操作(查询、插入、删除和修改)
(4)数据库的事务管理和运行管理:
数据的安全性、完整性、多用户对数据的并发使用
发生故障后的系统恢复数据库
由数据库管理系统统一管理和控制,保证实务正确运行。
(5)数据库的建立和维护功能:
提供实用程序和工具,完成数据库数据批量装载,数据库转存,介质故障恢复,数据库的重组织和性能监视等
(6)其他功能:
数据库管理系统与网络中其他软件系统的通信
数据库管理系统之间的数据转换
异构数据库之间的互访和互操作
数据库系统(DataBase System,DBS):在计算机系统中引入数据库后的系统构成;在不引起混淆的情况下,常常把数据库系统简称为数据库。
数据库系统的构成:
数据库
数据库管理系统(及其应用开发工具)
应用程序
数据库管理员(DataBase Administrator,DBA)
1.1.2 数据管理技术的产生和发展
数据管理:
对数据进行分类、组织、编码、存储、检索和维护
数据处理和数据分析的中心问题
数据管理技术的发展过程:
人工管理阶段(20世纪50年代中之前)
文件系统阶段(20世纪50年代末--60年代中)
数据系统阶段(20世纪60年代末--现在)
人工管理阶段 | 文件系统阶段 | 数据库系统阶段 | ||
背景 | 应用背景 | 科学计算 | 科学计算、管理 | 大规模数据管理 |
硬件背景 | 无直接存取存储设备 | 磁盘、磁鼓 | 大容量磁盘、磁盘阵列 | |
软件背景 | 无操作系统 | 有文件系统 | 有数据库管理系统 | |
特点 | 处理方式 | 批处理 | 联机实时处理,批处理 | 联机实时处理,分布处理,批处理 |
数据的管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 | |
数据面向的对象 | 某一应用程序 | 某一应用 | 现实世界(一家企业、跨国公司) | |
数据的共享程度 | 无共享,冗余度极大 | 共享性差,冗余度大 | 共享性高,冗余度小 | |
数据的独立性 | 不独立,完全依赖于程序 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 | |
数据的结构化 | 无结构 | 记录内有结构,整体无结构 | 整体结构化,用数据模型描述 | |
数据控制能力 | 应用程序自己控制 | 应用程序自己控制 | 由DBMS提供数据安全性、完整性、并发控制和恢复能力 |
应用程序与数据的对应关系:
人工管理阶段:
文件系统阶段:
数据库系统阶段:
1.1.3 数据库系统的特点
1.2 数据模型
1.3 数据系统的结构
1.4 数据库系统的组成
1.5 小结
- 高科技来了!玩游戏一样开船的时代来了……
- C++库大全
- 人工智能行业前景预测 全球市场或超2700亿元
- Arxiv网络科学论文摘要14篇
- 工信部:网络强国建设2018年重点工作任务
- 刚刚!张小龙再出重磅!微信小程序掀起新零售红利狂潮!
- 无人驾驶系列——深度学习笔记:Tensorflow的安装-windows系统
- 2018年12大顶级云安全威胁
- 缤果盒子为域名意识打call 六位数秒下bingobox.com
- 用Qt写软件系列二:QCookieViewer(浏览器Cookie查看器)
- 用Qt写软件系列一:QCacheViewer(浏览器缓存查看器)
- 用Qt写软件系列三:一个简单的系统工具(上)
- ChartDirector应用笔记(三)
- 汇编语言 手记9
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python之列表推导和生成器表达式
- 二叉树的前中后序遍历
- 【tensorflow2.0】处理结构化数据-titanic生存预测
- 【pandas】pandas中的常见函数
- 走进STL - 哈希表,散装称重么
- 第八届蓝桥杯省赛javaB组题目解析
- 拥抱STL - 类/结构体元素查询与排序
- 【tensorflow2.0】处理图片数据-cifar2分类
- 操作系统实验多线程编程中的读者优先和写者优先
- 【python】使用csv库以字典格式读写csv文件
- 基于TypeScript封装Axios笔记(八)
- springmvc之HttpMessageConverter<T>
- django-模板之静态文件加载(十四)
- springmvc之使用JstlView
- django-模板之include标签(十五)