郑州大学数据库原理终极总结版.docx
- 文档编号:9675310
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:27
- 大小:373.15KB
郑州大学数据库原理终极总结版.docx
《郑州大学数据库原理终极总结版.docx》由会员分享,可在线阅读,更多相关《郑州大学数据库原理终极总结版.docx(27页珍藏版)》请在冰豆网上搜索。
郑州大学数据库原理终极总结版
第一章数据库系统基本概念
数据库(Database,简称DB),是一个有结构的、集成的、可共享的、统一管理的数据集合.
数据库管理系统(DataBaseManagementSystem,DBMS)是用来管理数据库的一种商品化软件。
●所有访问数据库的请求都由DBMS来完成的。
●DBMS提供了操作数据库的许多命令(语言),即SQL语言。
DBMS的主要功能:
●数据定义的功能。
DBMS提供数据定义语言(DataDefinitionLanguage,DDL)。
通过DDL,可以方便地定义数据库中的各种对象.如定义Students表结构。
●数据操纵的功能。
DBMS提供数据操纵语言(Data ManipulationLanguage,DML)。
通过DML,实现数据库中数据的基本操作。
如向Students表中插入一行数据.
●安全控制和并发控制的功能。
如控制非法用户访问数据库。
●数据库备份与恢复的功能。
对数据库进行定义备份,以便数据库遭遇意外时,能恢复。
数据库系统
数据库系统的组成:
数据库由若干张相互关联的表格组成。
数据库系统各个部件之间的关系
●用户与数据库应用(即应用程序)交互;
●应用程序与DBMS交互;
●DBMS访问数据库中的数据,返回给应用程序;
●应用程序按用户的习惯显示得到的数据.
数据库系统管理数据特点:
●数据是集成的、共享的。
-—数据库系统中所有的数据都集中存储在一个数据库中。
●数据重复小.
●数据独立性好.--应用程序不依赖任何数据的结构与访问技术。
●数据结构化,易于按用户的视图表示.
模式:
就是数据的一种抽象描述。
数据库的三级模式:
外模式、概念模式、内模式。
1.内模式是数据库中数据的存储结构、存储方法、存取策略等的描述,也称物理模式、存储模式。
2.概念模式是数据库中数据的逻辑结构的描述,也称模式、概念结构。
3.外模式是单个用户用到的数据逻辑结构的描述,通常也称视图、子模式.
Ø一个数据库只有一个内模式,一个概念模式,但可以有多个外模式.
Ø实际的物理数据库与内模式对应,用户使用外模式。
二级映射
1)外模式到概念模式的转换,表示为“外模式/概念模式"映射。
2)概念模式到内模式的转换,表示为“概念模式/内模式”映射。
Ø数据库管理系统(DBMS),不仅提供三级模式的定义语言,而且还提供了三级模式之间相互转换的机制,即二级映射机制.
外模式/概念模式映象的用途:
●保证数据的逻辑独立性
Ø当概念模式改变时,数据库管理员修改有关的外模式/概念模式映象,使外模式保持不变
Ø应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
概念模式/内模式映象的用途:
●保证数据的物理独立性
Ø当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改概念模式/内模式映象,使概念模式保持不变
Ø应用程序不受影响.保证了数据与程序的物理独立性,简称数据的物理独立性。
数据独立性的定义与内容
数据独立性是指应用程序不因物理存储的改变而改变.数据独立性包含逻辑独立性和物理独立性。
逻辑独立性是指概念模式改变时,外模式保持不变,从而使应用程序保持不变。
当数据库的概念模式改变时,DBMS只要改变外模式到模式的映射,就可保持外模式不变。
从而使应用程序保持不变.
物理独立性是指内模式改变时,概念模式保持不变。
因为当内模式改变(如数据库的存储设备或存储结构改变)时,DBMS只要通过改变概念模式到内模式映射,从而使概念模式保持不变,实现了数据的物理独立性.
第二章 关系数据库
2。
1关系模型的数据结构
✧关系:
一张满足某些约束条件的二维表,如表2-1Students关系.关系模型的数据结构是关系。
✧元组:
关系中的一行称为一个元组。
对应表中的一行,存放的是客观世界的一个实体,如表Students关系中的一行,存放的是一个学生的数据.
✧属性:
关系中的一列,称为一个属性。
对应表中的一列.一个属性表示实体的一个特征,如表Students关系中的Sno属性表示学生实体的学号特征值。
✧域:
关系中一个属性的取值范围。
例如,Ssex的取值范围是{‘M’,‘F'},代表性别为男性和女性。
。
关系的候选码与主码
·表中某一列(或若干列的最小组合)的值能惟一标识一个行,称该列或列组为候选码。
·对于一个表,可能有多个候选码 。
·如果一个表有多个候选码,数据库设计者通常选择其中一个候选码作为区分行的惟一性标识符,称为主码(primarykey,PK).
关系模式
·关系模式是关系的形式化描述(没有具体的值)。
·最简单的表示为:
关系名(属性名1,属性名2,…,属性名n)
关系数据库
·关系数据库是相互关联的表或者说关系的集合(一个DATABASE是Table的集合)
·一个关系用一个关系模式表示,所有关系模式集合构成数据库的模式,它是数据库整体逻辑结构的描述.
2。
2关系的完整性
●关系模型的完整性指的是完整性规则,是对关系的某种约束条件。
●完整性规则包括实体完整性规则、参照完整性规则和用户自定义完整性规则三大类。
●实体完整性和参照完整性是关系模型必须满足的两个完整性规则。
实体完整性规则:
若属性A(指一个或一组属性)是基本关系R的主属性,则A不能取空值.
参照完整性规则:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性均为空值)
或者等于S中某个元组的主码值。
用户自定义完整性规则:
是表格设计者为了保证表中某些行、列的数据满足具体应用要求而自定义的一些规则.
2。
3关系模型的数据操作——关系代数
●关系代数中,运算的对象是关系(表),运算的结果是一个新关系(表).
●关系的运算包含两部分,即传统的集合运算和特殊的关系运算。
●传统的集合运算:
∪(并运算),-(差运算),∩(交运算),×(笛卡儿积运算)。
●4个特殊的关系运算:
σ(选择),π(投影),∞(连接),÷(除)。
1)传统的关系运算
·两个表的兼容性。
所谓兼容,即两个表的表头结构相同,且对应列的数据类型相同。
·并、差、交运算都要求有两个表参加运算,并且两个表是兼容的。
2)专门的关系运算
·包含:
选择运算、投影运算和连接运算.
·选择运算:
从指定的R表中选择某些满足条件的行构成一个新表。
记作бF(R)
·投影运算:
从指定的表R中选择某些列构成一个新表。
记作∏A(R)。
·连接运算:
从R与S的笛卡儿积R×S中选择满足连接条件的行。
记作 :
= σAθB(R×S)
两种特殊的连接:
等值连接和自然连接。
·等值连接:
连接条件用=, 则AθB-〉A=B
·自然连接:
若等值连接的连接条件中的列名相同,且结果表中消除了重复列,则把此种等值连接称为自然连接,记作R∞S。
✧自然连接中不必标注连接条件。
自然运算与等值连接的区别:
·自然连接要求连接的两个表有相同的列(公共列),等值连接则不要求。
·自然连接结果表中去掉了重复的列,等值连接却可能包含重复的列。
笛卡儿积:
简称积运算,也是二元运算,即要求有两个表参加运算,但这两个表可以不兼容。
笛卡儿积运算定义:
给定两个表R和S,R和S的积运算的结果是一个新表,新表中的行由R中的每一行和S中的每一行组合而成。
记作R×S。
新表可能包含重复的列,因此不一定是一个关系.
用关系代数表示查询.解题步骤:
1)根据题意确定要输出的列以及这些列所在的表,由此确定被操作的表名称,可能有多个.
2)根据题意,确定选择条件以及选择条件中用到的列在哪个表中,这里又确定一些被操作的表名称。
3)根据1、2两步确定的表名称形成所有要操作的表名集。
4)若表名集中只有一个表,则如果要输出的列是这个表的全部列,就只用选择运算;否则先用选择,后用投影选取要输出的(属性)列。
5)如表名集中有两个或多个表,则一般用自然连接将它们连接起来,如果发现不存在公共列,即几个表不能进行自然连接,则要在表名集中加入一个或多个中间表,中间表中含有能进行自然连接的公共列,从而使得表名集中全部表可以进行自然连接;将选择条件作用于自然连接后产生的新表上,之后一般用投影操作选取要输出的列。
第三章关系数据库语言SQL
SQL语言分为三种子语言,分别是:
Ø数据定义语言(DDL)用于定义数据库、表、视图等.主要有CREATE、ALTER、DROP语句。
Ø数据操纵语言(DML)用于插入、修改、删除和查询数据。
主要有:
INSERT、DELETE、UPDATE、SELECT语句。
Ø
数据控制语言(DCL)用于管理数据库用户对数据库中表、视图等的使用权限.主要有GRANT、REVOKE语句。
3。
1 查询语句基本结构
语法:
SELECT <目标列名表>
FROM <数据源表〉
[WHERE<查询条件>]
[GROUPBY〈分组列>]
[HAVING<组选择条件>]
[ORDERBY<排序列>]
3.2 单表查询
单表查询指的是在一个源表中查找所需的数据。
因此,单表查询时,FROM子句中的<数据源表>只要给出一个源表表名。
WHERE子句
WHERE〈查询条件>
〈查询条件>中常用的运算符:
比较运算符和逻辑运算符。
#比较运算符用于比较两个数值之间的大小是否相等。
常用的比较运算符有:
=(等于)、〉(大于)、<(小于)、>=(大于等于)、<=(小于等于)、!
=或<〉(不等于)、!
〉((不大于)、!
〉((不小于)共9种。
#逻辑运算符主要有:
·范围比较运算符:
BETWEEN…AND…,NOTBETWEEN…AND
·集合比较运算符:
IN,NOTIN
·字符匹配运算符:
LIKE,NOTLIKE
·空值比较运算符:
ISNULL,ISNOTNULL
·条件连接运算符:
AND,OR,NOT
3。
3多表连接查询
多表查询指的是从多个源表中检索数据。
因此,多表查询时,FROM子句中的<数据源表〉要给出所有源表表名,各个表名之间要用逗号分隔。
⑴多表查询的FROM子句格式
FROM〈源表表名集〉
例如,若一个查询用到三个表,表名分别为Students、Enrollment,Courses。
则FROM子句为:
FROMStudents,Enrollment,Courses
⑵多表查询中的WHERE子句
多表查询中往往要有多表的连接条件,当然还有表的一个或多个行选择条件,两者用AND操作符组合.
3.4 子查询
·子查询是一个SELECT查询语句,但它嵌套在SELECT、INSERT、UPDATE、DELETE语句或其他子查询语句中.
·子查询可分为:
非相关子查询和相关子查询。
3.5 数据更新
用SQL的插入语句(INSERT语句)、修改语句(UPDATE语句)、删除语句(DELETE语句)来向表中插入、修改、删除数据。
3。
6视图
视图的建立、查询、更新
第四章数据库安全性
●实现数据库系统安全性的技术和方法
Ø存取控制技术
Ø视图技术
Ø审计技术
●自主存取控制功能
Ø通过SQL的GRANT语句和REVOKE语句实现
●角色
Ø使用角色来管理数据库权限可以简化授权过程
ØCREATE ROLE语句创建角色
ØGRANT 语句给角色授权
第五章数据库完整性
●数据库的完整性
Ø数据的正确性和相容性
●数据的完整性和安全性是两个不同概念
Ø数据的完整性
防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
防范对象:
不合语义的、不正确的数据
Ø数据的安全性
保护数据库防止恶意的破坏和非法的存取
防范对象:
非法用户和非法操作
为维护数据库的完整性,DBMS必须:
1)提供定义完整性约束条件的机制
2)提供完整性检查的方法
3)违约处理
第六章规范化
规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题.
1。
函数依赖
·定义6。
1:
设一个关系模式R(U),R是关系的名称,U是关系R的所有属性的集合,X和Y为属性集U上的子集。
若对于任一元组在X上的每一个值,都有Y上的一个惟一值与之对应,则称X函数决定Y,或称Y函数依赖于X,记作X→Y。
X称为这个函数依赖的决定因子。
2。
平凡函数依赖与非平凡函数依赖
· 定义6.2:
设一个关系模式R(U),R是关系的名称,U是关系R的所有属性的集合。
X和Y为属性集U上的子集,如果X→Y,Y是X的子集,则称X→Y是平凡的函数依赖。
如果Y不是X的子集,则称X→Y是非平凡的函数依赖。
3。
完全函数依赖与局部函数依赖
·定义6.3:
设一个关系R(U),R是关系的名称,U是关系R的所有属性的集合,X和Y为属性集U上的子集.若X→Y,同时X的一个真子集X’且也能够函数决定Y,即存在X’→Y,则称X部分函数决定Y,或Y部分函数依赖于X,记作:
.
·否则若不存在一个真子集X’,使得X'也能够函数决定Y,则称X完全函数决定Y,或者Y完全函数依赖于X.记作:
。
4.传递函数依赖
·定义6.4:
设一个关系R(U),R是关系的名称,U是关系R的所有属性的集合,X、Y和Z为属性集U上的子集。
若X→Y,Y→Z,且
,
则存在
称X传递函数决定Z,或者说Z传递函数依赖于X。
例如:
S(Sno,Sname,Ssex,Sage,Dno,Dname)
有Sno-〉Dno,Dno-〉Dname则有:
第一范式(1NF)
定义6。
5:
如果一个关系R的所有属性都是不可再分的基本数据项,则称关系R属于第一范式,记作R∈1NF.
最低程度的规范化关系的异常分析
满足1NF的关系是一个规范化的关系,但它是规范化程度最低的关系,这样的关系仍然存在:
(1)数据冗余与更新异常
(2)插入异常
(3)删除异常
第二范式(2NF)
定义6。
6:
如果关系R∈1NF,并且关系R的每一个非主属性完全函数依赖于码,则R属于第二范式,记作:
R∈2NF.
第三范式(3NF)
·定义6.7:
关系模式R〈U,F〉中若不存在这样的码X、属性组Y及非主属性Z(Z Y),使得X→Y,Y→Z成立,Y→X,则称R<U,F>∈3NF。
·若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。
BC范式(BCNF)
·
定义6.8 :
关系模式R
·等价于:
关系模式R〈U,F〉中,如果每一个决定属性因素都包含码,则R<U,F〉∈BCNF。
·可以证明:
若R∈BCNF,则R∈3NF.反过来,若R∈3NF,则R未必属于BCNF。
多值依赖
·定义6。
9:
设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且Z=U-X-Y。
关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
4NF
·
定义6.10:
关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y⊆X),X都含有码,则R∈4NF。
·如果R∈4NF,则R∈BCNF
a)不允许有非平凡且非函数依赖的多值依赖
b)允许的非平凡多值依赖是函数依赖
●关系数据库的规范化理论是数据库逻辑设计的工具
●目的:
尽量消除插入、删除一场,修改复杂,数据冗余
●基本思想:
逐步消除数据依赖中不合适的部分
\实质:
概念的单一化
●关系模式规范化的基本步骤
1NF
↓ 消除非主属性对码的部分函数依赖
消除决定属性 2NF
集非码的非平↓消除非主属性对码的传递函数依赖
凡函数依赖 3NF
↓ 消除主属性对码的部分和传递函数依赖
BCNF
↓消除非平凡且非函数依赖的多值依赖
4NF
Ø不能说规范化程度越高的关系模式就越好
Ø在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式
Ø上面的规范化步骤可以在其中任何一步终止
数据依赖的公理系统
1、逻辑蕴涵
设F是关系模式R〈U,F>的函数依赖集,X、Y是R的属性子集。
对R的任一个关系r,若函数依赖X→Y均成立,则称F逻辑蕴涵X→Y.
2、Armstrong公理
A1自反律:
若Y⊆X⊆U,则X→Y为F所蕴涵。
简写:
若Y⊆X,则X→Y
A2增广律:
若X→Y为F所蕴涵,且Z⊆U,则XZ→YZ为F所蕴涵。
简写:
若X→Y,则XZ→YZ
A3传递律:
若X→Y和Y→Z为F所蕴涵,则X→Z为F所蕴涵。
简写:
若X→Y、Y→Z,则X→Z
属性集的闭包
引理6.2:
设F为属性集U上的一组函数依赖,X,Y⊆ U, X→Y能由F根据Armstrong公理导出的充分必要条件是Y⊆ XF+。
于是判定X→Y能否由F根据Armstrong公理导出的问题,就转化为求出XF+,判定Y是否为XF+的子集的问题。
求属性集闭包XF+的算法
分析:
由定义,要求出所有这样的属性A:
X→A能由F经数次使用Armstrong公理推出。
A应具备何种特征?
Ø由公理的自反律,A可以是X中的属性,根据传递律,A可以是F中某个函数依赖的右部,而该函数依赖的左部属性应属于X的闭包。
Ø算法思想:
采用逐步扩张X的策略求X的闭包。
方法是:
扫描F,找出左部属性属于当前X的闭包的函数依赖,将右部属性加入当前X的闭包。
经若干次扩张,直到当前闭包集不再扩大为止。
极(最)小函数依赖集(覆盖)
满足下列条件的函数依赖集F,称为极小依赖集
(1)F中每个函数依赖的右部仅含有一个属性;【右部都是单属性】
(2)F中不存在这样的函数依赖X→A,使得F与F-{X→A}等价;【不存在多余的函数依赖】
(3)F中不存在这样的函数依赖X→A,X有真子集Z使得F与(F-{X→A})⋃{Z→A}等价。
【左部没有多余的属性】
对F极小化处理
1.分解:
将右部多属性函数依赖分解成单属性函数依赖。
将F中所有形如X→A1A2…Ak(k≥2)的函数依赖用{X→Ai |i=1,2,…k}取代。
这样每个函数依赖的右部都为单属性,由合并和分解规则知该函数依赖集与F等价.
2.去多余依赖:
对第一步处理后的F,逐一检查F中各函数依赖 X→A,令G=F-{X→A},若A∈XG+,则从F中去掉X→A。
3.去左部多余属性:
逐一检查第二步处理后的F中各函数依赖X→A,设X=B1B2…Bm,逐一考察Bi,若A∈(X-Bi)F+,则以X-Bi取代X。
这样得到的函数依赖集仍与F等价,且去掉了左部多余的属性.
模式的分解
Ø分解准则
Ø分解后的模式应和原来的模式“等价"。
根据以上分析,可提出以下不同标准:
1) 分解具有“无损连接性”
2) 分解要“保持函数依赖”
3)分解既要“保持函数依赖”,又要具有“无损连接性”
无损连接性定义
设ρ = { R1
若对R的任何一个关系r都有r=πU1(r)πU2(r) … πUk(r),成立,则称ρ具有无损连接性,简称ρ为无损分解。
定理(补充):
设ρ={R1〈U1,F1〉,R2 那么ρ是无损分解的充分必要条件是 F逻辑蕴涵(U1⋂U2)→(U1-U2) 或(U1⋂U2)→(U2-U1)。 U1⋂U2→U1-U2∈F+或U1⋂U2→U2-U1∈ F+ 关系模式为R〈U, F〉, U={A,B, C}, F={A→B,C→B }, (1)ρ1={R1(A,B), R2(B, C)} (U1⋂U2)→(U1-U2)为: B →A (U1⋂U2)→(U2-U1)为: B→C 因为 不包含A,也不包含C, 所以B→A和B→C不为F所蕴涵ρ1不是无损分解 关系模式为R〈U, F〉,U={A,B,C}, F ={A→B,C→B}, (2) ρ2= {R1(A, C),R2(B,C)} (U1⋂U2)→(U1-U2)为: C→A (U1⋂U2)→(U2-U1)为: C→B 因为C→B ∈ F,所以 ✓ρ2是无损分解 保持函数依赖定义: 设ρ={R1 无损连接分解不一定是保持函数依赖的分解 保持函数依赖的分解不一定是无损连接分解 算法6。 3: 分解关系模式为保持函数依赖的3NF (1)将F极小化(处理后的函数依赖集仍记为F); (2)把不在F中出现的属性从U中分离出去,组成一个关系模式(剩余的属性仍记为U); (3)若有X→A∈F,且XA=U,则ρ={R},算法终止; (4)按左部相同的原则对F分组,每组的全部属性形成一个属性集Ui。 若有Ui⊆Uj(i≠j)就去掉Ui.设最后保留下来U1,U2,…,Uk,则ρ={R1(U1, F1),R2(U2,F2), …Rk(Uk, Fk)},算法终止。 其中Fi为F在Ui上的投影. 求候选码的方法 1、先找出仅在左边出现,没有在右边出现过的属性(L类),以及不属于任何一边的属性(N 类),构成一个属性集合 X=(L类,N类)。 求出X+,若 X+=U,则X是唯一候选码,算法终止。 2、如果上述的X不是码,取LR类(在左右两边都出现过的属性)的每一个属性加入 X集合,求每个闭包,判断其是否为候选码. 3、再取LR类的每2个属性组合,加入X集合,求每个闭包,判断其是否为候选码. 4、再取 LR类的每3 个属性组合,加入X集合,求每个闭包,判断其是否为候选码。 5、以此类推,直到 X集合包含所有属性,或者已找出所有的候选码。 注意: 子集从小到大找,大的子集中不要包含已找出的候选码 转换为3NF既保持函数依赖又具有无损连接性的分解算法 算法思想: 在算法6.3分解的基础上,增加一个模式,该模式以原模式的一个码作为属性组,使该模式起到正确连接其它各模式的作用. 算法6.4: 输入: 关系模式R〈U,F〉; 输出: R的一个分解τ ={R1,R2,…Rp},每个Ri均为3NF, 且 τ既保持函数依赖又具有无损连接性; (1)用算法6.3将R分解为ρ={R1(U1),R2(U2),…Rk(Uk)}; (2)求R的一个码X; (3)若X是某个Ui的子集,输出 τ=ρ; 否则,输出τ =ρ⋃{R*(X)} ;算法结束。 例题: 设有关系模式R(ABCDEG),F={A→BC,CD→G,B→DA} (1)求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 郑州大学 数据库 原理 终极 总结