本系列为《数据库系统原理与应用(刘先锋等著)》的读书笔记。
一,数据描述
数据的三种范畴
1)现实世界
(客观世界
):现实世界
所反映的客观存在的事物及其相互之间的联系,指数处理对象最原始的表现形式。
2)信息世界
(观念世界
):是现实世界
在人们头脑中的反映,经过一定的选择,命名和分类而形成的。以下为相关概念:实体(Entity)
:客观存在的事物在人们头脑中的反映,或说,客观存在并可相互区别的客观事物或抽象事件。属性(Attribute)
:实体所具有的某一方面的特性。域(Domain)
:一个属性可能取的所有属性值的范围称为该属性的域。码(Key)
:唯一标识实体的属性集。实体型(Entity Type)
:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集(Entity Set)
:同一类型实体的集合。
3)
机器世界
(数据世界
或存储世界
)
数据化后的信息称为数据
,所以说数据
是信息的符号表示。以下为相关概念:数据项(字段,Field)
:对应于信息世界中的属性。记录(Record)
:对应于每个实体所对应的数据。记录型(Record Type)
:对应于信息世界中的实体型。文件(File)
:对应于信息世界中的实体集。关键字(Key)
:对应于能够唯一标识一个记录的字段集。
实体间的联系
一对一联系
:如果实体集A
中每个实体,实体集B
中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系
,记作1:1
;一对多联系
:如果实体集A
中每个实体,实体集B
中有n(n>=0)个实体与之联系,反之,实体集B
中每个实体,实体集A
中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系
,记作1:n
;多对多联系
:如果实体集A
中每个实体,实体集B
中有n(n>=0)个实体与之联系,反之,实体集B
中每个实体,实体集A
中有m(m>=0)个实体与之联系,则称实体集A与实体集B具有多对多联系
,记作n:m
。
二,概念模型与E-R方法
数据模型
1)数据模型应满足以下要求:i)能够比较真实地模拟现实世界;
ii)容易为人所理解;
iii)便于在计算机上实现。2)数据模型分类:
i)
概念模型
:即信息模型
,是按用户的观点来对数据和信息建模的,主要用于数据设计;
ii)基本数据模型
:主要包括网状模型
,层次模型
,关系模型
等,是按计算机系统的观点对数据建模的,主要用于DBMS的实现。数据模型的三要素
1)数据结构
:用于描述系统的静态特性。数据结构
是所有研究对象类型的集合,这些对象是数据库的组成部分,分为两大类:- 与数据类型,内容,性质有关的对象;
- 与数据之间联系有关的对象。
2)
数据操作
:用于描述系统的动态特征。数据操作
是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和修改(插入,删除,更新)两大数据操作。
3)数据完整性约束
:是一组完整性规则的集合。完整性规则
是给定的数据模型中的数据及其联系所具有的制约和存储规则,用于限制符合数据模型的数据库状态及状态的变化,用于确保数据的正确
、有效
和相容
。概念数据模型
1)概念模型
的定义:按用户的观点对现实世界进行数据建模而形成的,是一种独立于计算机系统的模型,完全不涉及信息在计算机系统中的表示,也不依赖于具体的数据库管理系统,用于描述某个特定组织所关心的信息结构。
2)概念模型
的相关基本概念:实体
、属性
、域
、码
、实体型
和实体集
。
3)概念模型
的基本关系:在概念模型
中主要解决问题是实体间的联系。E-R图表示法
1)实体型
:用矩形
表示,矩形框内写明实体名;
2)属性
:用椭圆
表示,椭圆内写明属性名;
3)联系
:用菱形
表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标注联系的类型(1:1
,1:n
,n:m
)。
E-R模型
优点:i)接近人的思想,容易理解;
ii)与计算机无关,用户容易接受。
三,传统的三大数据模型
层次模型
1)层次模型
定义:用树形结构
表示实体之间的联系的模型称为层次模型
。
2)建立数据的层次模型
需要满足以下条件:i)有且仅有一个结点没有父结点,这个结点即为树根结点;
ii)其他数据记录有且仅有一个父结点。3)
层次模型
的基本特点:任何一个给定的记录值只有按其路径查看,才能体现它的全部含义,没有一个子记录值能够脱离父记录值而独立存在的。
4)层次模型
的最明显特点:层次清晰,构造简单,易于实现,可以很方便地表示一对一和一对多这两种实体之间的联系。
5)层次模型
的主要优点:i)
层次模型
本身比较简单;
ii)实体间联系是固定的,且预先定义好的应用系统采用层次模型
来实现,其性能优于关系模型
的性能,不低于网状模型
的性能;
iii)层次模型
提供了良好的完整性支持。6)
层次模型
的主要缺点:i)现实世界中很多联系是非层次性的,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据或创建非自然组织(引入虚结点)来解决;
ii)对插入和删除操作的限制比较多;
iii)查询子结点必须通过父结点;
iv)由于结构严谨,层次命令趋于程序化。网状模型
1)网状模型
的定义: 网状模型是一种有向图,在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:i)允许一个以上的结点无父结点;
ii)一个结点可以有多于一个的父结点。2)为了描述网状模型的记录之间的联系,引进了
系(Set)
的概念,所谓系
可以理解为命名了的联系
,它由一个父记录型和一个或多个子记录型构成。
3)网状数据库
的定义:用网状模型设计出来的数据库称为网状数据库
。
4)网状模型
的主要优点:i)能够更为直接地描述现实世界,如一个结点可以有多个父结点;
ii)具有良好的性能,存取效率较高。5)
网状模型
的主要缺点:i)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于用户最终掌握;
ii)其DDL,DML语言复杂,用户不易使用。关系模型
1)关系模型
的主要优点:i)数据结构比较简单;
ii)具有很高的数据独立性;
iii)可以直接处理多对多联系;
iv)坚实的理论基础。2)
值域
的定义:在关系模型中,一个n元关系有n个属性,属性的取值范围称为值域。
3)关系模型
主要缺点:存取路径对用户透明,查询效率往往不如非关系数据模型。
四,数据独立与三层结构
三级模式结构
外模式
:又称为用户模式
,是数据库用户和数据库系统的接口,是数据库用户的数据视图,是数据库用户可以看得见和使用的局部数据的逻辑结构和特征描述,是与某一个应用有关的数据的逻辑表示。模式
:可分为概念模式
和逻辑模式
,是所有数据库用户的公共数据视图,是数据库中全部数据的逻辑结构和特征的描述。一个数据库只有一个
模式
,其中概念模式
可以用实体-联系模型
模型来描述,逻辑模式
以某种数据模型为基础,综合考虑所有用户的需求,并将其形成全局逻辑结构。内模式
:又称为存储模式
,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。
数据的独立性
逻辑数据独立性
:当模式
改变时,只要对外模式/模式映像
做相应的改变,就可以使外模式
保持不变,以外模式
为依据编写的应用程序就不受影响,从而应用程序不必修改,保证了数据与程序之间的逻辑独立性
。存储数据独立性
:当内模式
改变时,只要对模式/内模式映像
做相应的改变,使模式
保持不变,应用程序就不受影响,从而保证了数据与程序之间的物理独立性
,称为存储数据独立性
。
五,数据库管理系统
DBMS
的主要功能
数据库的主要职责
就是有效地实现数据库三级模式之间的转换,即把用户或应用程序对数据库的一次访问,从用户级带到概念级,再导向物理级,转换为对存储数据的操作。1)数据库定义
2)数据库操作及查询优化
3)数据库控制运行管理
4)数据组织,存储和管理
5)数据库的恢复和维护
6)数据库的多种接口
7)其他功能DBMS
的组成
1)DBMS
由查询处理器
和存储管理器
两大部分组成。其中:(1)
查询处理器
主要有DDL
编译器,DML
编译器,嵌入式DML
的预编译器及查询运行核心程序;
(2)存储管理器
有授权和完整性管理器,事务管理器,文件管理器及缓冲区管理器。2)
查询处理程序
:把用较高级的语言所表示的数据库操作(查询、更新等)转换成一系列对数据库的请求。
3)存储管理程序
:包括文件管理程序
和缓冲区管理程序
。
4)事务管理程序
:保证数据库中所有事务全部都能正确执行。用户访问数据库的过程(略)