数据库系统原理
数据库系统原理
第一章 数据库系统概述
第一节 数据库基本概念
-
数据Data
数据(Data)是描述事务的符号记录,是指用物理符号记录下来的、可以鉴别的信息
数据是信息存在的一种形式,只有通过解释或处理的数据才能成为有用的信息
-
数据库DB
数据库(DB)是指长期储存在计算机中的有组织的、可共享的数据集合
数据库中的数据要按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高
的数据独立性,系统易于扩展,并可以被多个用户分享数据库中存储的数据具有永久存储、有组织和可共享三个基本特点
-
数据库管理系统DBMS
数据库管理系统(DBMS)是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间
数据库管理系统的主要功能:
1)数据定义功能
2)数据操纵功能
3)数据库的运行管理功能
4)数据库的建立和维护功能
5)数据组织、存储和管理功能
6)其他功能:网络通信功能、数据传输、相互访问功能 -
数据库系统DBS
数据库系统(DBS)是引入数据库技术的系统
数据库系统包括:数据库、数据库管理系统以及相关实用工具、应用程序、数据库管理员和用户
数据库管理员(DBA):专门负责对数据库进行维护,并保证数据库正常、高效运行的人员
第二节 数据管理技术的发展
-
数据管理技术发展的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段
-
人工管理阶段的特点:数据据不保存、应用程序管理数据、数据面向应用
-
文件系统阶段:物理独立性
-
数据库系统阶段的特点
1)数据集成(主要目的)
2)数据共享性高
3)数据冗余小
4)数据一致性
5)数据独立性高
6)实施统一管理与控制
7)减少应用程序开发与维护的工作量数据定义与使用数据的应用程序分离称为数据独立
数据库管理系统具有对数据的统一管理和控制功能,主要包括数据的独立性、完整性、并发控制与故障恢复等,即数据库保护
第三节 数据库系统的结构
-
数据库系统的结构分类
1)数据库管理员DBA的视角:数据库系统可分为内部系统结构和外部体系结构
内部体系结构:通常采用三级模式结构(模式、外模式、内模式)
外部体系结构:集中式结构、分布式结构、并行结构2)从数据库用户视角
客户/服务器结构,C/S结构 (Client/Server)
浏览器/服务器结构,B/S结构(Browser/Server) -
数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由模式、外模式和内模式三级构成的
1)模式、概念模式、逻辑模式
模式(概念模式、逻辑模式)是数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图
模式是数据库的核心,也是数据库设计的关键2)外模式、子模式、用户模式
外模式(子模式、用户模式)是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。是满足不同用户需求的数据视图,即用户视图3)内模式、存储模式
内模式也称为存储模式,它是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。是数据库管理员(DBA)所见到的内部结构,即内部视图或存储视图 -
三级模式结构的两层映像与数据独立性
所谓映像,就是一种对应规则,它指出映像双方是如何进行转换的
外模式/模式映像:数据与程序的逻辑独立性, 外模式/模式映像可以有多个(面向具体的应用程序)
模式/内模式映像:保证了数据与程序的物理独立性, 模式/内模式映像是唯一的, 定义了数据库全局逻辑结构与物理存储之间的对应关系
第四节 数据模型
-
数据模型
1)数据模型的定义
数据模型是对现实世界数据特征的抽象,描述的是数据的共性内容2)数据的特征
静态特征:数据的基本结构、数据间的联系、数据取值范围的约束
动态特征:指对数据可以进行符合一定规则的操作 -
数据模型组成要素
数据模型通常由数据结构、数据操作和数据约束三个要素组成
1)数据结构:描述的是系统的静态特征
2)数据操作:描述的是系统的动态特征
3)数据约束:描述数据结构中数据间的语法和语义关联 -
数据模型的分类
数据模型是模型化数据和信息的工具,也是数据库系统的核心和基础
数据模型可分为两类
1)第一类是概念层数据模型
2)第二类是逻辑层数据模型和物理层数据模型 -
什么是概念层数据模型
概念层数据模型,数据的概念模型 或 信息模型
概念层是数据抽象级别的最高层,概念模型主要用于数据库的设计阶段 -
信息世界涉及的基本概念
数据模型中有
型(type)
和值(value)
两个概念实体(Entity)、属性(Attribute)、码或键(Key)、域(Domain)、
实体型(Entity Type)、实体集(Entity Set)、联系(Relationship) -
概念模型的表示方法
概念模型的表示方法:E-R模型
1)实体型,矩形,实体的名称
2)属性,椭圆形,无向边与相应的实体连接起来
3)联系,菱形,联系名称,与有关实体连接起来,标上联系的类型(1、M、N) -
什么是逻辑层数据模型
逻辑层数据模型,也称为数据的逻辑模型
逻辑层是数据抽象级别的中间层,任何DBMS都是基于某种逻辑数据模型 -
逻辑模型的类型
1)层次模型:是最早使用的一种数据模型
有且仅有一个结点没有父结点,称作根结点;
其他结点有且仅有一个父结点
2)网状模型:以网状结构表示实体与实体间的联系
允许结点有多于一个父结点
可以有一个以上的结点没有父结点
3)关系模型:用二维表结构来表示实体间的联系
优点:存取路径对用户透明,有更高的数据独立性,更好的安全保密性
建立在严格的数学概念的基础上;概念单一;
3)面向对象模型:既是概念模型又是逻辑模型
表达能力丰富,对象可复用、维护方便 -
什么是物理层数据模型
物理层数据模型,也称为数据的物理模型,描述数据在存储介质上的组织结构
物理模型是数据库最底层的抽象,是逻辑模型的物理实现
设计目标是提高数据库性能和有效利用存储空间
第二章 关系数据库
第一节 关系数据库概述
-
关系数据库历史
20世纪80年代后,在商用数据库管理系统中,关系模型逐渐取代网状模型和层次模型,成为主流数据模型
-
关系数据库的优点
包括高级的非过程语言接口、较好的数据独立性等
为商品化的关系数据库管理系统的研制做好了技术上的准备
第二节 关系数据模型
-
关系数据模型的组成要素
数据模型组成的三要素:由数据结构、数据操作、数据约束
关系数据模型的组成要素,关系数据结构、关系操作集合、关系完整性约束 -
关系数据结构
1)表(Table)、关系(Relation)
基本关系(基本表、基表)是实际存在的表,查询表与视图表是虚表2)列(Column)、字段(Field)、属性(Attribute)
属性的个数称为关系的元或度,属性的取值范围称为域(Domain)3)行(Row)、元组(Tuple)、记录(Record)
元组中的一个属性值,称为分量(Component),类似于单元格1)码或键:属性(或属性组)的值都能用来唯一标识该关系的元组
2)超码或超键:在码中去除某个属性,它仍然是这个关系的码
3)候选码或候选键:不能从中移去任何一个属性,否则就不是码
包含在任何一个候选码中的属性称为主属性或码属性
候选码或候选键是这个关系的最小超码或超键
超码一定是涉及到多个属性,只有一个属性是候选码1)主码或主键:在若干个候选码中指定一个唯一标识关系的元组(行)
2)全码或全键:一个关系模式的所有属性集合是这个关系的主码或主键,称为全玛(是特殊的主码)
3)外码或外键:某个属性(或属性组)不是这个关系的主码或候选码,是另一个关系的主码
参照关系也称为从关系,参照关系是外码所在表(主表)
被参照关系也称为主关系,被参照关系是以外码为主码的表(另一表)\[码 > 超码 > 候选码 > 主码 > 全玛 <> 外码 \] -
关系数据结构
1)数据类型(Data Type):同一属性具有相同数据类型
每个列都有相应的数据类型,用于限制或容许该列中存储的数据2)关系模式(Relation Schema):也就是表头,字段名
关系模式是型,关系是值,即关系模式是对关系的描述
关系模式是静态的、稳定的;关系是动态的、随时间不断变化的3)关系数据库(Relation Database):所有关系的集合,构成一个关系数据库
以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库
其数据库操作建立在关系代数的基础上关系表的结构定义包含三个部分:字段名、数据类型、字段长度
-
关系数据库对关系的限定/要求
1)每一个属性都是不可分解的
2)每一个关系仅仅有一种关系模式
3)每一个关系模式中的属性必须命名,属性名不同
4)同一个关系中不允许出现候选码或候选键值完全相同的元组
5)在关系中元组的顺序是无关紧要的,可以任意交换
6)在关系中属性的顺序是无关紧要的,可以任意交换 -
关系操作集合
关系操作包括查询操作和插入、删除、修改操作两大部分
查询操作分为:选择、投影、连接、除、并、差、交、笛卡尔积等
传统的基本操作包括:选择、投影、并、差、笛卡尔积;专门的操作:连接、除、交
关系操作的特点是集合操作方式,也称为一次一集合的方式 -
关系数据语言的分类与特点
1)关系数据语言的分类
关系代数语言、关系演算语言(包括元组关系演算和域关系演算)、结构化查询语言(SQL)2)关系数据语言的共同特点
具有完备的表达能力,是非过程化的集合操作语言
功能强,能够独立使用也可以嵌入高级语言中使用 -
关系代数
任何一种操作都包含三大要素:操作对象+操作符=操作结果
1)传统的集合运算:并、差、交、笛卡尔积
并、差、交:两个关系必须要有相同的属性个数
笛卡尔积:列加行乘2)专门的关系运算:选择、投影、连接、除
选择(SELECT):\(\sigma_F(R)\),R是表名,F表示行,过滤行
投影(PROJECTION):\(\pi_A(R)\),R是表名,A表示属性名,过滤列
连接(JOIN),也称θ连接: \(\Join\) 包括的等值连接和其他(自然)连接两种
除(DIVISION):\(R\div S\) -
关系的完整性约束
数据库的数据完整性是指数据库中数据的正确性、相容性、一致性
1)关系的完整性约束的分类:
a. 实体完整性约束:主码的组成不能为空,主属性不能是空值NULL
b. 参照完整性约束:定义外码和主码之间的引用规则,外码为NULL或存在的主码值
c. 用户定义完整性约束:域完整性约束(针对某一应用环境的完整性约束)、其他2)执行插入操作的检验:
检查实体完整性约束:必须检查,主码不能为NULL
检查参照完整性约束:向参照关系插入时检查,外码为NULL或参照关系中存在的主码值
检查用户定义完整性约束:针对某一应用的具体完整性约束3)执行删除操作的检验:
检查参照完整性约束:是否被引用,对被参照关系执行删除的时候检查4)执行更新操作的检验:
上述两种操作的集合,可以看为先删除后插入
第三节 关系数据库的规范化理论
-
关系模式中可能存在的冗余和异常问题
关系模式中可能存在的问题:数据冗余、更新异常、插入异常、删除异常
-
函数依赖与关键字
函数依赖是指关系中属性间的对应关系(参考码)
1)\(X \rightarrow Y\):X函数决定Y,Y函数依赖于X,X称为决定因素
R为任一给定关系,X、Y为R中的属性集,若X的每一个值,Y中只有唯一值与之对应2)函数依赖可分为三种:完全函数依赖、部分函数依赖、传递函数依赖
a . 完全函数依赖:(参考候选码)
\(X \rightarrow Y\),且X中的任何真子集X’,都有 \(X' \not\rightarrow Y\),则Y完全函数依赖于Xb . 部分函数依赖:(参考超码)
\(X \rightarrow Y\),且X中存在一个真子集X’,满足 \(X' \rightarrow Y\),则Y部分函数依赖于Xc . 传递函数依赖:
若 \(X \rightarrow Y\),\(Y \not\rightarrow X\),\(Y \rightarrow Z\),则有 \(X \rightarrow Z\),称为Z传递函数依赖于X3)关键字 (参考候选码)
关系R中,U为全部属性集合,X为U子集,若有完全函数依赖 \(X \rightarrow U\),则X为R的一个候选关键字 -
范式与关系规范化过程
一个低一级范式的关系模式通过模式分解转换为若干个高一级范式的关系模式的集合的过程,叫规范化
1)第一范式1NF
R为任一给定关系,若R中每个列与行的交点处的取值都是不可再分的基本元素,则R为1NF2)第二范式2NF
若R为1NF,且其所有非主属性都完全函数依赖于候选关键字,R为2NF3)第三范式3NF
若R为2NF,且其每一个非主属性都不传递函数依赖于候选关键字,则R为3NF4)第三范式的改进形式BCNF
设R为任一给定关系,X、Y为其属性集,F为其函数依赖集,若R为3NF,
且其F中所有函数依赖 \(X \rightarrow Y\)( \(Y \not\rightarrow X\))中的X必包含候选关键字,则R为BCNF