《数据库原理》复习
参考教材:《数据库系统概论》(第五版) 高等教育出版社
专业:网络空间安全学院-信息安全
第一章 绪论
1.1 引言
1.1.1 数据、数据库、数据库系统、数据库管理系统
数据(Data)
- 定义:描述事物的符号记录;
- 组成数据的符号种类:数字,字符串,日期,逻辑值,文本,图形,图像,声音;
- 数据的特点:数据与其语义是不可分的。
数据库(Database,DB)
- 定义:长期储存在计算机内的、有组织的、可共享的数据集合;
- 数据库的特征:①数据按一定的数据模型组织、描述和储存,②可为各种用户共享,③冗余度较小,④数据独立性较高,⑤易扩展。
数据库管理系统(Database Management System,DBMS)
- 定义:位于用户与操作系统之间的一层数据管理软件。
- 用途:科学地组织和存储数据、高效地获取和维护数据。
- 功能:①数据定义功能,②数据操作功能,③数据库的运行管理功能,④数据库的建立和维护功能。
数据库系统(Database Sytem,DBS)
- 定义:计算机系统中引入数据库后的系统构成。
- 构成:①数据库,②DBMS及其开发工具,③应用系统,④数据库管理员,⑤用户。

1.1.2 数据库技术的产生与发展
一、人工管理阶段;
二、文件系统阶段;
三、数据库系统阶段:
数据库系统的特点
- 数据的管理者:数据库管理系统(DBMS);
- 数据结构化;
- 数据的共享性高(冗余度低,易于扩充);
- 数据的独立性高。
DBMS 对数据的控制功能:
①数据的安全性 (Security)保护;
②数据的完整性(Integrity)检查;
③并发(Concurrency)控制;
④数据库恢复(Recovery)。
1.1.3 数据库技术的研究领域
一、数据库管理系统(DBMS)软件的研制;
二、数据库设计;
三、数据库理论。
1.2 数据模型
1.2.1 数据模型的要素
一、数据结构:对象类型的集合;
对象:①与数据类型、内容、性质有关的对象,②与数据之间联系有关的对象
二、数据操作:对数据库中各种对象(型)的实例(值),允许执行的操作及有关的操作规则;
数据操作的类型:查询&更新(插入、删除、修改);
三、数据的约束条件:一组完整性规则的集合;
完整性规则:给定的数据模型中数据及其联系,所具有的制约和存储规则。
1.2.2 概念模型
一、信息世界中的基本概念:
(1)实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、 事、 物或抽象的概念。
(2)属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
(3)码(Key)
唯一标识实体的属性集称为码。
(4)域(Domain)
属性的取值范围称为该属性的域。
(5)实体型(Entity Type)
用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
(6)实体集(Entity Set)
同型实体的集合称为实体集。
(7)联系(Relationship)
现实世界中,事物内部以及事物之间的联系。
在信息世界中,反映为实体内部的联系和实体之间的联系。
实体内部的联系:组成实体的各属性之间的联系。
实体之间的联系:不同实体集之间的联系。
二、实体间的联系;
①一对一联系(1∶1)
②一对多联系(1∶n)
③多对多联系(m∶n)
三、概念模型的表示方法(E-R图)
(1)E-R 图包括实体、属性和联系三个要求;
(2)E-R 图表示方法:用矩形表示实体、用椭圆表示属性、用菱形表示联系。
属性和实体间、实体和联系间用线段连接。
1.2.3 数据模型
一、层次数据模型;
二、网状数据模型;
三、关系数据模型 :
(1)关系数据模型的数据结构;
基本数据结构:在用户观点下,关系模型中数据的逻辑结构是一张二维表。
基本概念:
- 关系(Relation):一个关系对应通常说的一张表;
- 元组(Tuple):表中的一行即为一个元组;
- 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名;
- 主码(Key):表中的某个属性组,它可以唯一确定一个元组;
- 域(Domain):属性的取值范围;
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述。
(2)关系数据模型的操纵及完整性约束;
- 数据操作:查询,插入,删除,更新;
- 数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合;
- 存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”;
完整性约束条件:
1.实体完整性
2.参照完整性
3.用户定义的完整性
(3)关系数据模型的存储结构;
- 表以文件形式存储。
- 有的DBMS一个表对应一个操作系统文件; 有的DBMS自己设计文件结构。
(4)关系数据模型的优缺点;
优点:
建立在严格的数学概念的基础上;
概念单一。数据结构简单清晰,用户易懂易用;
- 实体和各类联系都用关系表示;
- 对数据的检索结果也是关系;
关系模型的存取路径对用户透明;
- 具有更高的数据独立性,更好的安全保密性,
- 简化了程序员的工作和数据库开发建立的工作;
缺点:
- 存取路径对用户透明导致查询效率往往不如非关系数据模型;
- 为提高性能,必须对用户的查询请求进行优化;
- 增加了开发DBMS的难度;
(5)典型的关系数据库系统
- oracle
- db2
- sqlserver
- sybase
- mysql
四、 对象模型
面向对象数据模型是用面向对象的思维方式与方法来描述客观实体,在继承关系数据库系统的已有的优势特性基础之上,支持面向对象建模,支持对象存取与持久化,支持代码级面向对象数据操作,是现在较为流行的新型数据模型。
1.3 数据库系统结构
1.3.1 数据库系统内部的模式结构(从数据库管理系统角度看)
一、数据库系统模式的概念
型(Type)
对某一类数据的结构和属性的说明
值(Value)
是型的一个具体赋值
模式(Schema)
①数据库逻辑结构和特征的描述;
②是型的描述;
③反映的是数据的结构及其联系;
④模式是相对稳定的
模式的一个实例(Instance)
①模式的一个具体值;
②反映数据库某一时刻的状态;
③同一个模式可以有很多实例;
④实例随数据库中的数据的更新而变动
二、数据库系统的三级模式结构
外模式(子模式,用户模式)
- 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述;
- 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
地位:介于模式与应用之间。
模式(1)— 外模式(n):
① 外模式通常是模式的子集;
②一个数据库可以有多个外模式,反映了不同用户的应用需求、看待数据的方式、对数据保密的要求;
③对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。外模式(1)— 应用(n):
①同一外模式也可以为某一用户的多个应用系统所使用;
②但一个应用程序只能使用一个外模式。
模式(逻辑模式,概念模式)
- 一个数据库只有一个模式。
- 数据库中全体数据的逻辑结构和特征的描述;
- 所有用户的公共数据视图,综合了所有用户的需求。
地位:数据库系统模式结构的中间层。
- 与数据的物理存储细节和硬件环境无关
- 与具体的应用程序、开发工具及高级程序设计语言无关
作用:
- 定义数据逻辑结构(数据项的名字、类型、取值范围等);
- 定义数据之间的联系;
- 定义与数据有关的安全性、完整性要求。
内模式(存储模式)
- 一个数据库只有一个内模式。
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方法。
三、数据库的二级映象功能与数据独立性
三级模式:是对数据的三个抽象级别(外模式,模式,内模式)
二级映象:在 DBMS 内部实现这三个抽象层次的联系和转换
①外模式/模式映象;
②模式/内模式映象;
什么是外模式/模式映象
- 定义了外模式与模式之间的对应关系;
- 对每一个外模式,都有一个外模式/模式映像,
- 该映像定义:通常包含在各外模式的描述中。
外模式/模式映象的用途(保证数据的逻辑独立性)
- 当模式改变时,数据库管理员修改外模式/模式映像,使外模式保持不变。
- 应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
什么是模式/内模式映象
- 定义了数据全局逻辑结构与存储结构之间的对应关系。 例如,说明逻辑记录和字段在内部是如何表示的;
- 数据库中模式/内模式映象是唯一的;
- 该映象定义:通常包含在模式描述中。
模式/内模式映象的用途(保证数据的物理独立性)
- 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变;
- 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。
1.3.2 数据库系统外部的体系结构(从数据库最终用户角度看)
一、单用户结构;
二、主从式结构;
三、分布式结构;
四、客户/服务器结构
1.4 数据库管理系统
1.4.1 数据库管理系统的功能与组成
一、数据定义
①定义构成数据库结构的模式、存储模式和外模式;
②定义各个外模式与模式之间的映射;
③定义模式与存储模式之间的映射;
④定义有关的约束条件;
二、数据操纵;
查询/检索,插入,修改/更新,删除
三、数据库运行管理;
对数据库的运行管理,是DBMS运行时的核心部分,包括:
- 对数据库进行并发控制
- 安全性检查
- 完整性约束条件的检查和执行
- 数据库的内部维护
所有访问数据库的操作:
- 都要在上述控制程序的统一管理下进行;
- 以保证数据的安全性、完整性、一致性以及多用户对数据库的并发使用。
四、数据组织、存储和管理;
数据库中需要存放多种数据:
如:数据字典、用户数据、存取路径等。
DBMS负责分门别类的组织、存储和管理这些数据:
确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系等,
以便提高存储空间利用率以及提高随机查找、顺序查找、增、删、改等操作的时间效率。
五、数据库的建立和维护
建立数据库:
数据库初始数据的输入与数据转换等。
维护数据库包括:
数据库的转储与恢复;
数据库的重组织与重构造;
性能的监视与分析。
1.4.2 数据库系统的工作过程

(1)应用程序A向DBMS发出从数据库读数据记录的命令;
(2)DBMS对该命令进行语法语义检查,并调用应用程序A对应的子模式(外模式),检查A的存取权限,决定是否执行该命令;如果拒绝执行,则向用户返回错误信息。
(3)决定执行该命令后,DBMS调用模式,依据外模式/模式映像的定义,确定应读入模式中的哪些记录;
(4)DBMS调用物理模式(内模式),依据模式/内模式映像的定义,决定应从哪个文件、用什么存取方式、读入哪个或哪些物理记录;
(5)DBMS向操作系统发出执行读取所需物理记录的命令
(6)操作系统执行读数据的有关操作
(7)操作系统将数据从数据库的存储区送至缓冲区
(8)DBMS依据外模式/模式映像的定义,导出应用程序A所要读取的记录格式
(9)DBMS将数据记录从系统缓冲区传送到应用程序A的用户工作区
(10)DBMS向应用程序A返回命令执行情况的状态信息;
(12)应用程序A根据返回的状态信息决定是否使用程序变量区中的数据。
1.5 数据库工程与应用
1.5.1 数据库设计的目标与特点
- 数据库设计的目标:在DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据机器应用系统;
- 数据库设计包含两方面内容:
一、结构(数据)设计,也就是设计数据库框架或数据库;
二、行为(处理)设计,即设计应用程序、事务处理等。
1.5.2 数据库设计方法
使用工程化的规范设计方法;
核心与关键是逻辑数据库设计和物理数据库设计;
一、逻辑数据库设计:是根据用户要求和特定数据库管理系统的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。
二、物理数据库设计:是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。
1.5.3 数据库设计步骤

1.5.4 数据库应用

一、用户;
二、应用程序员;
三、数据库管理员(DBA )
①设计与定义数据库系统;
②帮助最终用户使用数据库系统;
③监督与控制数据库系统的使用和运行;
④改进和重组数据库系统,调优数据库系统的性能;
⑤转储与恢复数据库;
⑥重构数据库 ;
四、系统分析员;
五、数据库设计人员
第二章
2.1 关系数据库概述
一、关系数据结构;
二、关系操作集合;
三、关系完整性约束
2.2 关系数据结构
一、关系
- 域(Domain)
- 笛卡尔积(Cartesian Product)



关系(Relation):

属性:实体所具有的某一特性
主属性:候选码的诸属性称为主属性;
非主属性 :不包含在任何候选码中的属性。

- 码:能够唯一标识一条记录的属性或属性集。
- 候选码(Candidate Key):若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
- 最简单的情况,候选码只包含一个属性。
- 最极端的情况,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。
- 主码(Primary Key):若一个关系有多个候选码,则选定其中一个为主码。
- 外码 :如果一个关系中的一个属性(该属性不能是候选码)是另外一个关系中的主码,则这个属性为外码。
主码和外码的作用?
主码的作用:
主码的作用是保证实体的完整性。
外键的作用:
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中的列的值或使用空值。
三类关系:
(1) 基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示;
(2) 查询表:查询结果对应的表;
(3) 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。基本关系的性质:
(1)列是同质的(Homogeneous);
(2)不同的列可出自同一个域;
(3)列的顺序无所谓;
(4)任意两个元组不能完全相同;
(5)行的顺序无所谓;
(6)分量必须取原子值。什么是关系模式?
关系模式是对关系的描述,是型,关系是值。
关系模式描述:
1.元组集合(=关系)的结构:
- 属性构成
- 属性来自的域
- 属性与域之间的映象关系
2.元组语义
3.完整性约束条件
4.属性间的数据依赖关系集合
定义关系模式:关系的描述称为关系模式。
形式化地表示为:R(U,D,DOM,F)
- R为关系名,
- U为组成该关系的属性名集合,
- D为U中属性所来自的域,
- DOM为属性向域的映像集合,
- F为属性间数据依赖关系集合
通常可以简记为: R (U) 或 R (A1,A2, … ,An)
- R=关系名,
- A1,A2, … ,An为属性名
关系模式与关系
关系模式:对关系的描述;静态的、稳定的
关系:关系模式在某一时刻的状态或内容;动态的、随时间不断变化的
关系模式和关系往往统称为关系,通过上下文加以区别。
三、关系数据库
关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
关系数据库的型与值:
关系数据库的型(=关系数据库模式),是对关系数据库的的描述,包括若干域的定义,以及在这些域上定义的若干关系模式。
关系数据库的值:这些关系模式在某一时刻对应的关系的集合。
2.3 关系的完整性
一、实体完整性;
若属性A是基本关系R的主属性,则A不能取空值。
(关系数据库中每个元组应该是可区分的,是唯一的)
二、参照完整性(外码,参照关系,被参照关系/目标关系);

三、用户定义的完整性
针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
2.4 关系代数
2.4.1 关系代数概述
一、关系代数运算三要素
- 运算对象:关系
- 运算符:四类
- 运算结果:关系
二、关系代数运算的分类

三、表示记号



2.4.2 传统的集合运算
一、并∪(Union);
二、差−(Difference);
三、交∩(Intersection);
四、广义笛卡尔积×(Extended Cartesian Product)

与笛卡尔积的区别?
笛卡尔积中的元素是域中的单个元素;
广义笛卡尔积中的元素是元组。
2.4.3 专门的关系运算
一、选择σ(Selection);
二、投影π(Projection);
三、连接⋈(Join)(连接也称为 θ连接)
(1)等值连接;
(2)自然连接;
(3)一般连接;
(4)左连接;
(5)右连接;
(6)全外连接 ;
四、除÷(Division)
(象集和投影)

第三章 关系数据库标准语言 SQL
SQL 语言集数据定义语言 DDL、数据查询语言 DQL、数据操纵语言 DML、数据控制语言DCL的功能于一体。
3.1 SQL 概述
一、SQL-86;
- 第一个SQL标准,
- 由美国国家标准局公布,
- 1987年ISO通过。
二、SQL-89;
三、SQL-92;
四、SQL3
3.1.1 SQL 的特点
一、综合统一;
二、高度非过程化;
三、面向集合的操作方式;
四、同一种语法结构提供两种使用方式;
五、语言简捷,易学易用
3.1.2 SQL 语言的基本概念
一、基本表
本身独立存在的表,一个关系对应一个表
一个(或多个)基本表对应一个存储文件
一个表可以带若干索引,索引也存放在存储文件中
二、视图
从一个或几个基本表或视图导出的表
是虚表,只存放视图的定义而不存放对应数据
三、存储文件
存储文件的逻辑结构组成了关系数据库的内模式
存储文件的物理结构是任意的,对用户是透明的

3.2 数据定义
一、定义表(模式)
- 创建表
- 删除表
- 修改表定义
二、定义视图(外模式)
- 创建视图
- 删除视图
- 间接修改视图定义:删除+创建
三、定义索引(内模式)【不做要求】
创建索引
删除索引
间接修改索引定义:删除+创建
3.3 查询

3.3.1 单表查询


3.3.2 连接查询
一、广义笛卡尔积
二、等值与非等值连接查询
三、自身连接查询
四、外连接查询
五、复合条件连接查询
3.3.3 嵌套查询
一、嵌套查询的分类
不相关子查询:子查询的查询条件不依赖于父查询
相关子查询:子查询的查询条件依赖于父查询
二、引出子查询的谓词
带有 IN 谓词的子查询
带有比较运算符的子查询
带有 ANY 或 ALL 谓词的子查询
带有 EXISTS 谓词的子查询
3.3.4 集合查询
一、并操作(UNION);
二、交操作(INTERSECT);
三、差操作(MINUS)
3.4 数据更新
3.4.1 插入数据


3.4.2 修改数据

3.4.3 删除数据

3.5 视图
一、视图是虚表,是从一个或几个基本表(或视图)导出的表
二、数据库系统只存放视图的定义,不会出现数据冗余
三、基表中的数据发生变化,从视图中查询出的数据也随之改变
四、基于视图的操作
定义视图(DDL):
(1)、建立;
(2)、定义基于该视图的新视图;
(3)、删除
查询(DML)
受限更新(DML)
3.5.1 定义视图
1、建立视图
(1) 行列子集视图;
(2) WITH CHECK OPTION 的视图;
(3) 基于多个基表的视图
(4) 基于视图的视图
(5) 带表达式的视图
(6) 分组视图
(7) 一类不易扩充的视图
- 删除视图:DROP VIEW <视图名> [CASCADE]
3.5.2 查询视图
一、视图实体化法:执行流程
(1)进行有效性检查,检查所查询的视图是否存在。如存在,则从数据字典中取 出视图定义;
(2)执行视图定义,将视图临时实体化,生成临时表;
(3)将查询视图转换为查询临时表;
(4)查询 完毕删除被实体化的视图(临时表)
二、视图消解法:执行流程
(1)进行有效性检查,检查查询的表、视图等是否存在。如果存在,则从数据字典中 取出视图的定义
(2)把视图定义中的子查询与用户的查询结合起来,转换成等价的对基本表的查询;
(3)执行修 正后的查询
3.5.3 更新视图
对有[WITH CHECK OPTION]的视图进行INSERT、UPDATE和DELETE时,系统要自动检查是否符合原定 义视图子查询中的<条件表达式>
3.5.4 视图的作用
一、视图能够简化用户的操作
二、视图使用户能以多种角度看待同一数据
三、视图对重构数据库提供了一定程度的逻辑独立性
四、视图能够对机密数据提供安全保护
五、适当的利用视图可以更清晰地表达查询
第四章 规范化理论
1. 什么叫规范化?
用形式更简洁、结构更规范的关系取代原有关系的过程。
2. 非规范化的关系会导致什么问题?导致问题的原因是什么?如何解决?
- ①数据冗余,更新异常 ②插入、删除异常
- 原因:关系模式不合理
- 解决方法:如果一个关系中,存储了两类以上实体的数据,一般应将其分解为多个关系,使每个关系只有一类实体。
3. 一个关系的属性间,存在几种对应关系?
一对一联系
设X,Y为关系中的属性或属性组,如果对于X中的任一具体值Y中至多有一个值与之对应,称X,Y这两个属性之间是一对一联系。一对多联系
如果属性值集合X中的任一个具体值,至多与Y中的一个值相对应,而Y中的任一个具体值却可以和X中的多个值相对应,则称两个属性间从X到Y为m:1的联系或从Y到X是1:m的联系。多对多联系
在X,Y两个属性值集中,如果任一个值都可以至多和另一个属性值集中多个值对应,反之亦然,则称属性X和Y是m:n关系。
4. 掌握概念或定义:数据依赖、函数依赖、部分函数依赖、完全函数依赖、传递依赖
数据依赖:现实世界属性间相互联系的抽象,是世界内在的性质,是语义的体现。
分为:函数依赖(FD),多值依赖(MVD),连接依赖(JD)函数依赖:在关系R中,X、Y为R的两个属性(组),如果对于R的所有关系r,都存在:对于X的每一个具体值,Y都只有一个具体值与之对应,则称属性Y函数依赖于属性X。



完全函数依赖:
在R(U)中,若 X → Y ,并且对于X的任何一个真子集X’,都有 X ′↛Y,则称Y对X完全函数依赖,记作 X → F→ Y。部分函数依赖:
在R(U)中,若 X → Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作 X → P→ Y 。传递依赖:
在R(U)中,如果 X → Y ( Y ⊈ X ), Y↛X,Y → Z,Z ⊈ Y ,则称Z对X传递函数依赖,记为 X
→ 传 递→ Z。
5. 码的唯一性与函数依赖的联系和区别?
- 码是由一个或多个属性组成的、可唯一标识元组的最小属性组。
- 与码的唯一性不同,函数依赖的决定因素可能是唯一的,也可能是不唯一的。
6. 何谓 1NF?满足 1NF 的关系模式存在什么问题?
- 如果关系模式R中不包含多值属性,则R满足第一范式,R∈1NF。
- 存在:数据冗余,更新异常,插入删除异常
7. 何谓 2NF?满足 2NF 的关系模式,解决了什么问题?还存在什么问题?
- 若R∈1NF,且每一个非主属性完全函数依赖于R任何一个候选码,则R满足第二范式,R∈2NF。
- 一定程度上解决原1NF数据冗余,更新异常,插入删除异常的问题
- 存在:数据冗余,更新异常
8. 何谓 3NF?满足 3NF 的关系模式,解决了什么问题?还存在什么问题?
- 若R∈2NF,且它的每一个非主属性都不传递依赖于任何候选码,则称R满足第三范式,R ∈3NF。
- 在一定程度上解决原2NF关系中存在的数据冗余、更新异常等问题
- 存在:数据冗余的问题
9. 何谓 BCNF?满足 BCNF 的关系模式,解决了什么问题?还存在什么问题?
- 设关系模式R∈1NF,若 X→Y且Y⊈X时X必含有码,则R∈BCNF。
换言之,在关系模式R中,如果每一个决定因素都包含候选码,则R∈BCNF。 - 解决:消除了数据冗余、插入和删除异常
- 存在:更新异常