参考教材:《数据库系统概论》(第五版) 高等教育出版社
专业:网络空间安全学院-信息安全
数据(Data)
数据库(Database,DB)
数据库管理系统(Database Management System,DBMS)
数据库系统(Database Sytem,DBS)
一、人工管理阶段;
二、文件系统阶段;
三、数据库系统阶段:
数据库系统的特点
DBMS 对数据的控制功能:
①数据的安全性 (Security)保护;
②数据的完整性(Integrity)检查;
③并发(Concurrency)控制;
④数据库恢复(Recovery)。
一、数据库管理系统(DBMS)软件的研制;
二、数据库设计;
三、数据库理论。
一、数据结构:对象类型的集合;
对象:①与数据类型、内容、性质有关的对象,②与数据之间联系有关的对象
二、数据操作:对数据库中各种对象(型)的实例(值),允许执行的操作及有关的操作规则;
数据操作的类型:查询&更新(插入、删除、修改);
三、数据的约束条件:一组完整性规则的集合;
完整性规则:给定的数据模型中数据及其联系,所具有的制约和存储规则。
一、信息世界中的基本概念:
(1)实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、 事、 物或抽象的概念。
(2)属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
(3)码(Key)
唯一标识实体的属性集称为码。
(4)域(Domain)
属性的取值范围称为该属性的域。
(5)实体型(Entity Type)
用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
(6)实体集(Entity Set)
同型实体的集合称为实体集。
(7)联系(Relationship)
现实世界中,事物内部以及事物之间的联系。
在信息世界中,反映为实体内部的联系和实体之间的联系。
实体内部的联系:组成实体的各属性之间的联系。
实体之间的联系:不同实体集之间的联系。
二、实体间的联系;
①一对一联系(1∶1)
②一对多联系(1∶n)
③多对多联系(m∶n)
(1)E-R 图包括实体、属性和联系三个要求;
(2)E-R 图表示方法:用矩形表示实体、用椭圆表示属性、用菱形表示联系。
属性和实体间、实体和联系间用线段连接。
三、关系数据模型 :
(1)关系数据模型的数据结构;
基本数据结构:在用户观点下,关系模型中数据的逻辑结构是一张二维表。
基本概念:
(2)关系数据模型的操纵及完整性约束;
完整性约束条件:
1.实体完整性
2.参照完整性
3.用户定义的完整性
(3)关系数据模型的存储结构;
(4)关系数据模型的优缺点;
优点:
建立在严格的数学概念的基础上;
概念单一。数据结构简单清晰,用户易懂易用;
关系模型的存取路径对用户透明;
缺点:
(5)典型的关系数据库系统
四、 对象模型
面向对象数据模型是用面向对象的思维方式与方法来描述客观实体,在继承关系数据库系统的已有的优势特性基础之上,支持面向对象建模,支持对象存取与持久化,支持代码级面向对象数据操作,是现在较为流行的新型数据模型。
一、数据库系统模式的概念
型(Type)
对某一类数据的结构和属性的说明
值(Value)
是型的一个具体赋值
模式(Schema)
①数据库逻辑结构和特征的描述;
②是型的描述;
③反映的是数据的结构及其联系;
④模式是相对稳定的
模式的一个实例(Instance)
①模式的一个具体值;
②反映数据库某一时刻的状态;
③同一个模式可以有很多实例;
④实例随数据库中的数据的更新而变动
外模式(子模式,用户模式)
地位:介于模式与应用之间。
模式(1)— 外模式(n):
① 外模式通常是模式的子集;
②一个数据库可以有多个外模式,反映了不同用户的应用需求、看待数据的方式、对数据保密的要求;
③对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。
外模式(1)— 应用(n):
①同一外模式也可以为某一用户的多个应用系统所使用;
②但一个应用程序只能使用一个外模式。
模式(逻辑模式,概念模式)
地位:数据库系统模式结构的中间层。
作用:
内模式(存储模式)
三、数据库的二级映象功能与数据独立性
三级模式:是对数据的三个抽象级别(外模式,模式,内模式)
二级映象:在 DBMS 内部实现这三个抽象层次的联系和转换
①外模式/模式映象;
②模式/内模式映象;
什么是外模式/模式映象
外模式/模式映象的用途(保证数据的逻辑独立性)
什么是模式/内模式映象
模式/内模式映象的用途(保证数据的物理独立性)
一、单用户结构;
二、主从式结构;
三、分布式结构;
四、客户/服务器结构
一、数据定义
①定义构成数据库结构的模式、存储模式和外模式;
②定义各个外模式与模式之间的映射;
③定义模式与存储模式之间的映射;
④定义有关的约束条件;
二、数据操纵;
查询/检索,插入,修改/更新,删除
三、数据库运行管理;
对数据库的运行管理,是DBMS运行时的核心部分,包括:
所有访问数据库的操作:
四、数据组织、存储和管理;
数据库中需要存放多种数据:
如:数据字典、用户数据、存取路径等。
DBMS负责分门别类的组织、存储和管理这些数据:
确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系等,
以便提高存储空间利用率以及提高随机查找、顺序查找、增、删、改等操作的时间效率。
五、数据库的建立和维护
建立数据库:
数据库初始数据的输入与数据转换等。
维护数据库包括:
数据库的转储与恢复;
数据库的重组织与重构造;
性能的监视与分析。
(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根据返回的状态信息决定是否使用程序变量区中的数据。
使用工程化的规范设计方法;
核心与关键是逻辑数据库设计和物理数据库设计;
一、逻辑数据库设计:是根据用户要求和特定数据库管理系统的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。
二、物理数据库设计:是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。
一、用户;
二、应用程序员;
三、数据库管理员(DBA )
①设计与定义数据库系统;
②帮助最终用户使用数据库系统;
③监督与控制数据库系统的使用和运行;
④改进和重组数据库系统,调优数据库系统的性能;
⑤转储与恢复数据库;
⑥重构数据库 ;
四、系统分析员;
五、数据库设计人员
一、关系数据结构;
二、关系操作集合;
三、关系完整性约束
一、关系
主码和外码的作用?
主码的作用:
主码的作用是保证实体的完整性。
外键的作用:
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中的列的值或使用空值。
三类关系:
(1) 基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示;
(2) 查询表:查询结果对应的表;
(3) 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
基本关系的性质:
(1)列是同质的(Homogeneous);
(2)不同的列可出自同一个域;
(3)列的顺序无所谓;
(4)任意两个元组不能完全相同;
(5)行的顺序无所谓;
(6)分量必须取原子值。
什么是关系模式?
关系模式是对关系的描述,是型,关系是值。
关系模式描述:
1.元组集合(=关系)的结构:
2.元组语义
3.完整性约束条件
4.属性间的数据依赖关系集合
定义关系模式:关系的描述称为关系模式。
形式化地表示为:R(U,D,DOM,F)
通常可以简记为: R (U) 或 R (A1,A2, … ,An)
关系模式与关系
关系模式:对关系的描述;静态的、稳定的
关系:关系模式在某一时刻的状态或内容;动态的、随时间不断变化的
关系模式和关系往往统称为关系,通过上下文加以区别。
三、关系数据库
关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
关系数据库的型与值:
关系数据库的型(=关系数据库模式),是对关系数据库的的描述,包括若干域的定义,以及在这些域上定义的若干关系模式。
关系数据库的值:这些关系模式在某一时刻对应的关系的集合。
一、实体完整性;
若属性A是基本关系R的主属性,则A不能取空值。
(关系数据库中每个元组应该是可区分的,是唯一的)
三、用户定义的完整性
针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
一、关系代数运算三要素
二、关系代数运算的分类
一、并∪(Union);
二、差−(Difference);
三、交∩(Intersection);
四、广义笛卡尔积×(Extended Cartesian Product)
与笛卡尔积的区别?
笛卡尔积中的元素是域中的单个元素;
广义笛卡尔积中的元素是元组。
(3)一般连接;
(4)左连接;
(5)右连接;
(6)全外连接 ;
SQL 语言集数据定义语言 DDL、数据查询语言 DQL、数据操纵语言 DML、数据控制语言DCL的功能于一体。
一、SQL-86;
一、综合统一;
二、高度非过程化;
三、面向集合的操作方式;
四、同一种语法结构提供两种使用方式;
五、语言简捷,易学易用
一、基本表
本身独立存在的表,一个关系对应一个表
一个(或多个)基本表对应一个存储文件
一个表可以带若干索引,索引也存放在存储文件中
二、视图
从一个或几个基本表或视图导出的表
是虚表,只存放视图的定义而不存放对应数据
三、存储文件
存储文件的逻辑结构组成了关系数据库的内模式
存储文件的物理结构是任意的,对用户是透明的
一、定义表(模式)
二、定义视图(外模式)
三、定义索引(内模式)【不做要求】
创建索引
删除索引
间接修改索引定义:删除+创建
一、广义笛卡尔积
二、等值与非等值连接查询
三、自身连接查询
四、外连接查询
五、复合条件连接查询
一、嵌套查询的分类
不相关子查询:子查询的查询条件不依赖于父查询
相关子查询:子查询的查询条件依赖于父查询
二、引出子查询的谓词
带有 IN 谓词的子查询
带有比较运算符的子查询
带有 ANY 或 ALL 谓词的子查询
带有 EXISTS 谓词的子查询
一、并操作(UNION);
二、交操作(INTERSECT);
三、差操作(MINUS)
一、视图是虚表,是从一个或几个基本表(或视图)导出的表
二、数据库系统只存放视图的定义,不会出现数据冗余
三、基表中的数据发生变化,从视图中查询出的数据也随之改变
四、基于视图的操作
定义视图(DDL):
(1)、建立;
(2)、定义基于该视图的新视图;
(3)、删除
查询(DML)
受限更新(DML)
(1) 行列子集视图;
(2) WITH CHECK OPTION 的视图;
(3) 基于多个基表的视图
(4) 基于视图的视图
(5) 带表达式的视图
(6) 分组视图
(7) 一类不易扩充的视图
一、视图实体化法:执行流程
(1)进行有效性检查,检查所查询的视图是否存在。如存在,则从数据字典中取 出视图定义;
(2)执行视图定义,将视图临时实体化,生成临时表;
(3)将查询视图转换为查询临时表;
(4)查询 完毕删除被实体化的视图(临时表)
二、视图消解法:执行流程
(1)进行有效性检查,检查查询的表、视图等是否存在。如果存在,则从数据字典中 取出视图的定义
(2)把视图定义中的子查询与用户的查询结合起来,转换成等价的对基本表的查询;
(3)执行修 正后的查询
对有[WITH CHECK OPTION]的视图进行INSERT、UPDATE和DELETE时,系统要自动检查是否符合原定 义视图子查询中的<条件表达式>
一、视图能够简化用户的操作
二、视图使用户能以多种角度看待同一数据
三、视图对重构数据库提供了一定程度的逻辑独立性
四、视图能够对机密数据提供安全保护
五、适当的利用视图可以更清晰地表达查询
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 的关系模式存在什么问题?
7. 何谓 2NF?满足 2NF 的关系模式,解决了什么问题?还存在什么问题?
8. 何谓 3NF?满足 3NF 的关系模式,解决了什么问题?还存在什么问题?
9. 何谓 BCNF?满足 BCNF 的关系模式,解决了什么问题?还存在什么问题?