第二章 数据管理与数据库
2.1 常用术语
2.1.1 数据与信息
- 数据:凡是能够经过数字化处理存入计算机的符号都称为数据
- 数据项:数据的基本单元,客观事物某个特征或性质的数据抽象(最小性的判定取决于实际问题)
- 数据项名:数据项的名字
- 数据项值域:数据项可能的取值范围
- 数据记录: 描述事物特征的若干个数据项的组合
- 记录型:记录的逻辑结构
- 字段
- 记录:记录型中的每个字段取确定的值时成为记录
- 数据处理:对各种已有数据进行各种数学运算和统计加工的过程
- 数据管理:对数据进行收集、整理、组织、编码、存储和传输等一系列操作的总称
- 信息:现实世界中各种客观事物之间相互联系、相互作用的运动状态和特征的抽象描述,是数据处理的结果
数据是信息的载体,信息是数据的处理结果,是数据的内涵
信息与数据的关系:信息=数据+数据处理
2.1.2 数据独立性
定义:数据与用户的应用程序之间是相对独立的
- 物理独立性:用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
- 逻辑独立性:用户的应用程序与数据库的全局逻辑结构是相对独立的
2.1.3 数据库系统
- 数据库:长期存储在计算机内的、有组织的、可共享的数据集合
- 数据库管理系统:位于用户与操作系统之间的一层数据管理软件,负责对数据库进行统一的管理和控制,并为用户和应用程序提供访问数据库的方法
- 数据库系统:计算机系统、DB、DBMS、应用软件、数据库管理员和用户的集合
2.2数据库的历史
三个阶段:
- 人工管理阶段
- 文件管理阶段
- 数据库系统阶段
2.2.1 人工管理阶段
(20世纪50年代中期之前)
这时候还没有操作系统,数据数据都是批处理的呢。
特点:
1)数据不保存 :计算完成后,程序空间和数据空间一起释放
2)人工管理数据:要编写设计数据确切物理位置的存取代码
3)数据不共享:面向程序,不同程序之间不能共享
4)数据不具有独立性:数据与程序之间不具有独立性
2.2.2文件系统阶段
(20世纪50年代后期到60年代中期)
有了外存,出现了操作系统,文件系统诞生。数据可以联机实时处理。
特点:
1)数据可以长期保存:有外存,数据可以长期保存反复使用
2)文件的多样化和结构化:实现了记录内的结构性,但文件之间在整体上无结构
3)文件系统管理数据:是应用程序与数据文件的专门接口
仍然存在缺点:
1)数据冗余度大:重复文件,不能共享数据,易造成数据的不一致性,维护数据困难
(数据冗余:同一组数据在多个文件中同时出现引起的数据重复现象)
2)数据独立性较差:数据与程序之间独立性较差
3)数据联系弱:各个数据文件之间是孤立的
(数据联系:指不同文件中的数据之间的联系)
2.2.3 数据库系统阶段
硬件软件性能提升,为了满足多用户、多应用共享数据的需求,出现了数据库技术、数据库管理系统
特点:
1)数据的整体结构化:通过数据联系存取路径实现整理数据的结构化
2)数据独立性高:数据库系统性使得数据的定义从程序中分离出去
3)数据共享性高:数据共享可以大大减少数据冗余,节约存储空间,避免数据之间的不一致性
4)提供了完整的控制功能:提供数据的安全性保护,数据的完整性,并发控制,数据库恢复功能
2.2.4 数据库技术的发展
第一代数据库技术:层次数据库和网状数据库技术
特点:支持三级模式结构(模式、外模式、内模式),用存取路径(指针)来表示数据之间的关系,数据定义语言和用户操纵语言相对独立,数据库语言采用过程性语言
第二代数据库技术:关系数据库技术
特点:概念单一化,以关系代数为理论基础,采用说明性语言
第三代数据库技术:新一代数据库技术(尚未完成成熟)
特点:面向对象模型
2.2.5 数据库技术的主要研究领域
- 数据库管理系统软件的研制
- 数据库应用系统设计与开发
- 数据库理论
2.3 数据模型
2.3.1数据模型的构成
数据模型三要素:数据结构、数据操作、完整性约束
- 数据结构
数据结构是对计算机的数据组织方式和数据之间联系进行框架性描述的集合,是对数据库静态特性的描述
- 数据操作
数据操作是数据库中各种对象类的实例(或取值)所允许的操作集合,包括操作方法及有关的操作规则等,是对数据库动态特性的描述
- 完整性约束
完整性约束是关于数据状态和状态变化的一组完整性约束条件(规则)的集合
2.3.2 数据模型的分类
信息化:现实世界事物--->信息世界数据模型--->机器世界数据
数据模型:
1)概念数据模型:现实世界中各种食物及其联系特征的数据抽象
2)结构数据模型/逻辑数据模型:具体的DBMS所支持的数据模型,如关系数据模型
3)物理数据模型:描述数据在存储介质上组织结构的数据模型
2.3.3 实体-联系(E-R)模型
基本概念
- 实体:客观存在并可相互区别的事物
- 属性:实体通常具有若干特征,每个特征称为实体的一个属性
属性可分为基本属性(不可再分)和复合属性(可以分解) - 实体型: 具有相同属性的一类实体必然具有共同的特征和性质(相当于类)
- 实体集:若干同型实体的集合称为实体集,它与基本表对应
- 关键字:能唯一标识实体集中每个实体的属性集合称为关键字(码)
- 域:属性的取值范围称为域
- 联系:现实事物之间的联系在E-R图中的反映,可分为实体集之间的联系和实体集内部的联系
- 实体集之间的联系
1)一对一联系(1:1):一个班长对一个班级负责
2)一对多联系(1:n):一个班主任可以管理多个班级
3)多对多联系(n:n):一个学生可以选修多门课程,一门课程可以被多个学生选修
- 实体集内部的联系
同理,其关系也分为1:1、1:n、m:n这三种联系,其联系作用在实体集的内部
比如学生实体集的联系,一个班长管理一个班级,但班长本身也属于学生
- 多个实体之间的联系
这里多个教师教授一门课程
- is-a联系
可以表现对象之间的继承关系
- 两个实体集间的is-a联系,A中的每个实体都对应B中的每个实体,但是A继承了B后有额外的属性可以让A与B相区别,如班长集和学生集
- 实体集内部的is-a联系,这里,班长也是学生,但是他还有班长这个属性
E-R图要点
符号说明:
1)实体:矩形,框内写明实体名
2)联系:菱形,框内写明联系名,并用无向边分别与有关的实体连接起来,标上类型类型。
3)属性:椭圆形,用无向边与其对应实体或联系相连
画法(集成法和分离法)
集成法,把属性全部连上
分离法,属性分开,单独画一个图
2.3.4 常用的结构数据模型
目前,数据库领域主要的结构数据模型有四种:层次模型,网状模型,关系模型,面向对象模型
- 层次数据模型
通过实体之间的层次关系来建立模型,如学校->学院->专业->班级等等。用节点表示记录集,用连线表示实体间联系
但是这有一个问题,层次数据模型是一对多关系的,那么多对>多关系要怎么表示?这里,可以用冗余节点法和虚拟节点法吧>m:n关系分解为若干个1:m联系来表示,而在应用中,再把这1:m个联系合成n:m个联系。优点:模型简单、性能优于关系模型、完整性支持良好、自然直观
缺点:表示n:m联系时比较复杂
- 网状数据模型
克服了层次数据模型表示非树形结构的短板,允许一个以上节点无双亲,一个节点可以有多个双亲。用节点表示记录集,用连线表示实体间联系
优点:一个节点有多个双亲、性能好
缺点:结构复杂、DDL和DML复杂、加重编写应用程序负担
- 关系模型
常用术语
- 属性:实体的特征,与表中的一列相对应
- 关系模式:基本表的结构,与表头相对应
- 关系:对应一张二维表
- 元组:一条记录,除表头以外任意非空行
- 候选键:能唯一确定一个元组,可以是一个属性(称为主键),也可以是多个属性的组合
- 域:属性的取值范围
- 分量:元组中的一个属性值
常用操作:主要包括更新操作和查询操作两大类,特点是集合操作
存储结构:作为一个操作系统的文件存储,文件结构又DBMS系统自己设计和管理
优点:1)建立在严格的数学理论基础之上 2)概念单一,联系都用关系表示,数据结构简单清晰 3)存储路径对用户透明,更高的数据独立性,更好的安全保密性,简化工作 4)数据操作是集合操作
缺点:提高性能要优化查询,提高开发维护难度
2.4 数据库系统的模式结构
2.4.1 数据库系统模式
- 模式:数据库中全体数据的特征及其联系的结构化描述
- 实例:模式的一个具体值
2.4.2 数据库的三级模式
- 逻辑模式
又称结构模式、模式。是对数据库中全体数据的整体逻辑结构和特征的描述,与逻辑数据模型相对应 - 外模式
又称子模式、用户模式。是数据库用户能够看见和使用的局部数据逻辑结构与特征的描述 - 内模式
又称存储模式。是数据库物理结构和存储方式的描述
2.4.3 数据库的二级映像功能与数据独立性
外模式/模式映像
外模式/模式映像是在外模式中描述定义的。当模式发生改变时,经DBA对外模式/模式映像进行相应改变,就可以使外模式保持不变。保证了数据的逻辑独立性-
模式/内模式映像
定义数据库全局逻辑结构与存储结构之间的对应关系,映像在内模式中定义。当存储结构发生变化时,经DBA对映像进行相应的改变,就可以是模式保持不变。保证了数据的物理独立性
2.5 DBMS的功能
- 数据库定义
提供DDL对各种模式加以描述,由模式翻译程序翻译成目标模式 - 数据操控功能
提供DML实现数据库的检索,插入,修改,删除,排序等操作。DML分为嵌入主语言和非嵌入式语言两类 - 数据库控制语言功能
使所有的数据库操作都在统一管理下协同工作,确保事务处理的正常运行 - 数据库的建立和维护功能
2.6 数据库系统的组成
- 硬件:
要求:1)足够大的内存 2)足够大的存取设备 3)有较高的通道能力 - 软件:
支持DBMS运行所必需的操作系统、DBMS本身 - 相关人员
1)用户(最终用户、有经验的用户)
2)数据库管理员DBA(职能:设计数据模式、定义存储结构和存取策略、管理数据访问权限、保证数据库的正常运行、重组和重构数据库)
3)数据库设计人员DB designer
4)应用程序员
参考资料:《数据库原理及其应用教程》(黄德才主编,科学出版社,第四版)