1、 满足用户的完整性和安全性要求;动态关系至少具有第三规范形式,静态关系至少具有第一规范形式;能够在逻辑级上高效率地支持各种数据库事务的运行;存储空间利用率高。2023-8-112关系数据库设计:目标2023-8-113关系数据库设计:任务事物类事物性质现实世界信息世界概念数据库设计概念数据库设计实体型实体属性逻辑世界逻辑数据库设计逻辑数据库设计关系记录字段E-R模型模型关系模型关系模型物理世界文件物理数据库设计物理数据库设计1.形成初始关系数据库模式;形成初始关系数据库模式;2.关系模式规范化;关系模式规范化;3.关系模式优化;关系模式优化;4.定义关系上的完整性和安全性约束;定义关系上的完整
2、性和安全性约束;5.子模式定义;子模式定义;6.性能估计。性能估计。2023-8-114关系数据库设计步骤 问题 初始关系模式可以是逻辑设计的最终结果吗?某些关系模式可能存在冗余问题、插入问题、更新问题和删除问题。2023-8-115形成初始关系数据库模式 例:学生有下列信息:学号(S#)、系(SD)、系主任(MN),课程名(CN),成绩(G)有一个描述学生的关系模式:U=S#,SD,MN,CN,G 现实世界的已知事实:F=S#SD,SDMN,(S#,CN)G2023-8-116形成初始关系数据库模式2023-8-117插入异常S#SNMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学8
3、5S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统852023-8-118插入异常S#SNMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统852023-8-119删除异常S#SNMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数
4、据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库932023-8-1110数据冗余和更新问题S#SNMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库931.数据冗余:同一系中有n个学生,“系名”与”系主任”就重复n-1次;同一个学生选修了m门课程,学号就重复了m-1次。2.更新异常:若调整了某系系主任,数据表中所有行的“系主任”值都要更新,否则会出现同
5、一系系主任姓名不同的情况。2023-8-1111形成初始关系数据库模式3.插入异常:假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有“学号”关键字,课程名称和设课系也无法记录入数据库。4.删除异常:假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,系名与系主任信息也被删除了。很显然,这也会导致插入异常。2023-8-1112形成初始关系数据库模式 需要用关系模式的规范化方法消除初始逻辑数据库模式中存在的问题。某些关系模式可能存在由属性间的函数依赖引起的冗余问题、插入问题、更新问题和删除问题。2023-8-1113形成初始关系数据库模式 确定函数依赖集
6、 函数依赖函数依赖:Functional Dependency 对初始关系数据库模式中的每个关系模式进行深入地分析,与用户协商,确定每个初始关系的函数依赖集,使用关系数据库设计理论,对关系模式进行规范化处理。2023-8-1114形成初始关系数据库模式 函数依赖 定义1:设R是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R的任意实例r,r中任意两个元组t1和t2,如果t1X=t2X,则t1Y=t2Y,我们称X函数地确定Y,或Y函数依赖于X,记作XY。只能根据数据的语义来确定函数依赖。描述学生的关系模式:U=S#,SD,MN,CN,G 根据数据的语义确定的函数依赖:F=S#SD,SDM
7、N,(S#,CN)G2023-8-1115设计理论 函数依赖 定义1:设R是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R的任意实例r,r中任意两个元组t1和t2,如果t1X=t2X,则t1Y=t2Y,我们称X函数地确定Y,或Y函数依赖于X,记作XY。只能根据数据的语义来确定函数依赖只能根据数据的语义来确定函数依赖。描述学生的关系模式:U=S#,SD,MN,CN,G 根据数据的语义确定的函数依赖:F=S#SD,SDMN,(S#,CN)G2023-8-1116设计理论 如果XY而且Y不是X的子集,则称XY是非平凡函数依赖。若不特别声明,我们总是讨论非平凡函数依赖。如果XY,我们称X为这
8、个函数依赖的决定属性集。描述学生的关系模式:US#,SD,MN,CN,G(S#,SD)SD SDMN2023-8-1117函数依赖 定义2 设R是一个具有属性集合U的关系模式,如果XY,并且对于X的任何一个真子集Z,ZY都不成立,则称Y完全函数依赖于X。若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X。描述学生的关系模式:US#,SD,MN,CN,G(S#,SD)MN(S#,CN)G2023-8-1118函数依赖 定义3:设R是一个具有属性集合U的关系模式,XU,YU,ZU,且YX不成立,同时Z-X、Z-Y和Y-X不空。如果XY,YZ,则称Z传递地函数依赖于X。描述学生的关系模式:U=S
9、#,SD,MN,CN,G 根据S#SD,SD MN,导出如下传递依赖:S#MN2023-8-1119函数依赖 定义4:设R是一个具有属性集合U的关系模式,KU。如果K满足下列两个条件,则称K是R的一个候选键:(1)KU。(2)不存在K的真子集Z使得ZU。候选键可以唯一地标识关系的元组。2023-8-1120函数依赖 一个关系模式中可能具有多个候选键,指定其中一个作为识别关系元组的主键。包含在任何一个候选键中的属性称为键属性。不包含在任何候选键中的属性称为非键属性。在最简单的情况下,候选键只包含一个属性。在最复杂的情况下,候选键包含关系模式的所有属性,称为全键。2023-8-1121函数依赖 定
10、义5:设X是关系模式R的属性子集合。如果X是另一个关系模式的候选键,则称X是R的外部键。2023-8-1122函数依赖 设R是一个具有属性集合U的关系模式,F是R上的函数依赖集合。如果对于R的任意一个使F成立的关系实例r,函数依赖XY都成立,则称F逻辑地蕴含XY.已知的函数依赖:F=S#SD,SDMN,(S#,CN)G2023-8-1123逻辑蕴含S#SNMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S4自动化李明数据库93 给定一个函数依赖集合,希望知道由给定的函数依赖集合所蕴涵的所有函数依赖的集合。推导依据:Armstrong公
11、理系统2023-8-1124函数依赖的公理系统 Armstrong公理系统 设R是一个具有属性集合U的关系模式,F是R的一个函数依赖集合。Armstrong公理系统包含如下三条推理规则:2023-8-1125函数依赖的公理系统 自反律:若自反律:若Y X U,则,则F蕴含蕴含XY 增广律:若增广律:若F蕴含蕴含XY,Z U,则,则F蕴含蕴含XZYZ 传递律:若传递律:若F蕴含蕴含XY和和YZ,则,则F蕴含蕴含XZ 三条推论 合并规则:如果XY,XZ,则XYZ。伪传递规则:如果XY,YWZ,则XWZ。分解规则:如果XY,ZY,则XZ。2023-8-1126函数依赖的公理系统 自反律:若自反律:若
12、Y X U,则,则F蕴含蕴含XY 增广律:若增广律:若F蕴含蕴含XY,Z U,则,则F蕴含蕴含XZYZ 传递律:若传递律:若F蕴含蕴含XY和和YZ,则,则F蕴含蕴含XZ 引理1:XA1A2.Ak成立的充分必要条件是对于1ik,XAi成立。证明:2023-8-1127函数依赖的公理系统合并规则:如果合并规则:如果XY,XZ,则,则XYZ。伪传递规则:如果伪传递规则:如果XY,YWZ,则,则XWZ。分解规则:如果分解规则:如果XY,ZY,则,则XZ。定义7:设R是一个具有属性集合U的关系模式,F是给定的函数依赖集合。由F逻辑蕴含的所有函数依赖称为F的闭包的闭包,记为F+。描述学生的关系模式:US#
13、,SD,MN,CN,G 根据数据的语义确定的函数依赖:F=S#SD,SDMN,(S#,CN)G F+=S#SD,SDMN,(S#,CN)G,S#MN,(S#,SD)SD,2023-8-1128函数依赖的公理系统 Armstrong公理系统是有效而且完备的吗?Armstrong公理的有效性是指由F出发根据Armstrong公理推导出来的每个函数依赖一定在F+中;Armstrong公理的完备性是指F+中的每一个函数依赖一定可以由F出发根据Armstrong公理推导出来。2023-8-1129函数依赖的公理系统 为了证明Armstrong公理的完备性,首先需要解决如何判定一个函数依赖是否可以由F根据
14、Armstron公理推导出来。2023-8-1130函数依赖的公理系统 定义8(属性闭包):设F为属性集U上的一组函数依赖,XU。X+=A|XA能由F根据Armstrong公理导出称为属性集X关于函数依赖集F的闭包。例:关系模式R(A1,A2,A3)的函数依赖集F为A1A2,A2A32023-8-1131函数依赖的公理系统(1)若若X=A1,X+=(2)若若X=A2,X+=(3)若若X=A3,X+=A1,A2,A3A2,A3A3 引理2 设F为属性集U上的函数依赖,X、YU,XY能由F根据Armstrong公理导出的充分必要条件是Y X+。证:三条推论 合并规则:如果XY,XZ,则XYZ。伪传
15、递规则:如果XY,YWZ,则XWZ。分解规则:如果XY,ZY,则XZ。2023-8-1132函数依赖的公理系统 算法1 计算X+输入:X,F 输出:X+算法:.2023-8-1133函数依赖的公理系统在整个计算机领域,算法无处不在!1.操作系统的进程管理,内存管理,2.编译系统的语法分析、词法分析、代码优化.3.数据库管理系统的数据操作算法、查询优化算法4.Google、Baidu等搜索引擎使用数据挖掘算法PageRank2023-8-1134附加内容:算法介绍 时间复杂性 空间复杂性 排序 冒泡、插入、快速等 分治算法 动态规划算法 贪心算法 近似算法2023-8-1135附加内容:算法介绍
16、 算法1 计算X+输入:X,F 输出:X+1.X(1):=空集合;X(0):=X;2.B:=A|VWF,VX(0),AW;3.X(1):=BX(0);4.IF X(1)X(0)THEN X(0):=X(1);GOTO;ELSE X+:=X(1)ENDIF.2023-8-1136函数依赖的公理系统 例:计算X+=A,B,C,D,E,=ABC,ACB,BD,CE,ECB,求(AB)+。2023-8-1137函数依赖的公理系统 1.X(1):=空集合;X(0):=X;2.B:=A|VWF,VX(0),AW;3.X(1):=BX(0);4.IF X(1)X(0)THEN X(0):=X(1);GOTO
17、;ELSE X+:=X(1)ENDIF.定理3 算法1正确地计算出了X关于F的闭包X+。证:算法的终止性 算法的正确性2023-8-1138函数依赖的公理系统 定理4 Armstrong公理系统是有效而且完备的。证:Armstrong公理的有效性是指由F出发根据Armstrong公理推导出来的每个函数依赖一定在F+中 现只需证明完备性(Armstrong公理的完备性指的是F+中的每一个函数依赖一定可以由F出发根据Armstrong公理推导出来)。2023-8-1139函数依赖的公理系统 定义9:设G和F是两个函数依赖集。如果G+=F+则称F与G等价。引理3 设G和F是两个函数依赖集。F与G等价
18、的充分必要条件是FG+且GF+。证明:2023-8-1140函数依赖的公理系统 引理3给出了一个判断两个函数依赖集等价的算法。例 F=S#SD,SDMN,(S#,CN)G G=S#SD,SDMN,(S#,CN)G,S#MN F和G等价吗?2023-8-1141函数依赖的公理系统 引理引理3 设设G和和F是两个函数依赖集。是两个函数依赖集。F与与G等价的充分必等价的充分必要条件是要条件是F G+且且G F+。定义10:函数依赖集F称为极小函数依赖集如果F满足下列条件:1.F中任一函数依赖的右部仅含有一个属性;2.F中不存在这样的函数依赖XA,使得F与F-XA等价;3.F中不存在这样的函数依赖XA
19、:X包括真子集Z使得 (F-XA)ZA与F等价。2023-8-1142函数依赖的公理系统2023-8-1143函数依赖的公理系统S#SDMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93 F1=S#SD,SDMN,(S#,SD,CN)G F1是最小依赖集?F2=S#SD,SDMN,S#SD,(S#,SD)G F2是最小依赖集?2023-8-1144函数依赖的公理系统1.F中任一函数依赖的右部仅含有一个
20、属性;2.F中不存在这样的函数依赖XA,使得F与F-XA等价;3.F中不存在这样的函数依赖XA:X包括真子集Z使得 (F-XA)ZA与F等价。定理5 每一个函数依赖集F都等价于一个极小函数依赖集。构造性证明。极小函数依赖集是否唯一?极小函数依赖集是否唯一?2023-8-1145函数依赖的公理系统 极小函数依赖集不唯一 例:F=AB,BA,BC,AC,CA的极小函数依赖集为 F1=AB,BC,CA F=AB,BC,BA,AC,CA的极小函数依赖集为 F2=AB,BA,AC,CA2023-8-1146函数依赖的公理系统函数依赖集函数依赖集F称为极小函数依赖集如果称为极小函数依赖集如果F满足下列条件
21、满足下列条件:(1)F中任一函数依赖的右部仅含有一个属性;中任一函数依赖的右部仅含有一个属性;(2)F中不存在这样的函数依赖中不存在这样的函数依赖XA,使得使得F与与F-XA等价;等价;(3)F中不存在这样的函数依赖中不存在这样的函数依赖XA:X包括真子集包括真子集Z使得使得 (F-XA)ZA与与F等价。等价。求极小函数依赖集练习:例:求F=ABC,BC,ABC的极小函数依赖集 答案:AB,BC 求F=ABD,AC,ADC,BD的极小函数依赖集 答案:AB,AC,BD2023-8-1147函数依赖的公理系统 函数依赖集函数依赖集F称为极小函数依赖集如果称为极小函数依赖集如果F满足下列条件满足下
22、列条件:(1)F中任一函数依赖的右部仅含有一个属性;中任一函数依赖的右部仅含有一个属性;(2)F中不存在这样的函数依赖中不存在这样的函数依赖XA,使得使得F与与F-XA等价;等价;(3)F中不存在这样的函数依赖中不存在这样的函数依赖XA:X包括真子集包括真子集Z使得使得 (F-XA)ZA与与F等价。等价。以函数依赖为基础讨论关系模式的规范形式(范式)。关系模式的范式包括 第一范式(1NF)第二范式(2NF)第三范式(3NF)Boyce Codd范式(BCNF)第四范式(4NF)第五范式(5NF)2023-8-1148关系模式的规范形式 满足这些范式条件的关系模式可以在不同程度上避免本节开始提到
23、的冗余问题、插入问题、更新问题和删除问题。2023-8-1149关系模式的规范形式 关系模式范式的基本概念 定义11:第一范式(1NF)设R是一个关系模式。如果R的每个属性的值域都是不可分的简单数据项的集合,则称这个关系模式为第一范式关系模式,记作1NF。2023-8-1150关系模式的规范形式 2023-8-1151关系模式的规范形式 S#SDMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93 关系
24、模式范式的基本概念 定义12:第二范式(2NF)若关系模式R是1NF,而且每一个非主属性都完全函数依赖于R的键,则R称为第二范式关系模式,记作2NF。2023-8-1152关系模式的规范形式 设设R是一个具有属性集合是一个具有属性集合U的关系模式,如果的关系模式,如果XY,并且对于并且对于X的任的任何一个真子集何一个真子集Z,ZY都不成立,则称都不成立,则称Y完全函数依赖于完全函数依赖于X。若若XY,但但Y不完全函数依赖于不完全函数依赖于X,则称则称Y部分函数依赖于部分函数依赖于X。2023-8-1153关系模式的规范形式 R(S#,SD,MN,C#,G)不是不是2NF描述学生的关系模式:描述
25、学生的关系模式:U US#,SD,MN,CN,GS#,SD,MN,CN,G根据数据的语义确定的函数依根据数据的语义确定的函数依赖:赖:F=S#F=S#SD,SDMN,SD,SDMN,(S#,CN)G(S#,CN)GS#SDMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93 非2NF关系模式的插入问题2023-8-11541NF存在S#SDMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2
26、信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93 非2NF关系模式的插入问题2023-8-11551NF存在S#SDMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93S5自动化 非2NF关系模式的删除问题2023-8-11561NF存在S#SDMNCNGS1计算机刘伟数
27、据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93 非2NF关系模式的删除问题2023-8-11571NF存在S#SDMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93 非2NF关系模式的更新问题2023-8-11581NF存在S#S
28、DMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93 非2NF关系模式的更新问题2023-8-11591NF存在S#SDMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2计算机刘伟数据结构57S2计算机刘伟信息系统80S2计算机刘伟VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93 把一个给定关系模式转化为某种范
29、式的过程称为关系模式的规范化过程,简称为规范化。2023-8-11602NF的规范形式 定义定义12:第二范式:第二范式(2NF)若关系模式是若关系模式是1NF,而且每一个非主属性都完全函数依赖于的键,则而且每一个非主属性都完全函数依赖于的键,则称为第二范式关系模式,记作称为第二范式关系模式,记作2NF。2023-8-11612NF的规范形式S#SDMNCNGS1计算机刘伟数据库90S1计算机刘伟离散数学85S2信息王平数据结构57S2信息王平信息系统80S2信息王平VB70S3信息王平数据结构70S3信息王平数据库80S3信息王平离散数学70S3信息王平操作系统85S4自动化李明数据库93S
30、#CNGS1数据库90S1离散数学85S2数据结构57S2信息系统80S4S#SDS1计算机S2信息S3信息自动化MN刘伟王平王平李明SC(S#,C#,G)是是2NFSSS(S#,CN,MN)是是2NF 2NF关系模式解决了插入问题了吗?2023-8-11622NFS#CNGS1数据库90S1离散数学85S2数据结构57S2信息系统80S2VB70S3数据结构70S3数据库80S3离散数学70S3操作系统85S4数据库93S4S#SDS1计算机S2信息S3信息自动化MN刘伟王平王平李明S5自动化李明 2NF关系模式解决了删除问题了吗?2023-8-11632NFS#CNGS1数据库90S1离散
31、数学85S2数据结构57S2信息系统80S2VB70S3数据结构70S3数据库80S3离散数学70S3操作系统85S4数据库NULLS4S#SDS1计算机S2信息S3信息自动化MN刘伟王平王平李明 2NF关系模式解决了更新问题了吗?2023-8-11642NFS#CNGS1数据库90S1离散数学85S2数据结构57S2信息系统80S2VB70S3数据结构70S3数据库80S3离散数学70S3操作系统85S4数据库NULLS4S#SDS1计算机S2信息S3信息自动化MN刘伟王平王平李明计算机刘伟 定义13:第三范式(3NF)如果关系模式R是2NF,而且它的任何一个非键属性都不传任何一个非键属性都
32、不传递地依赖于任何候选键递地依赖于任何候选键,则R称为第三范式关系模式,记作3NF。2023-8-11653NF 传递地函数依赖定义传递地函数依赖定义:设是一个具有属性集合的关系模式,设是一个具有属性集合的关系模式,X,Y,Z,YX不成立,不成立,Z-X、Z-Y和和Y-X不空。如果不空。如果XY,YZ,则称则称Z传递地函数依赖于传递地函数依赖于X。2023-8-11663NFS#CNGS1数据库90S1离散数学85S2数据结构57S2信息系统80S2VB70S3数据结构70S3数据库80S3离散数学70S3操作系统85S4数据库93S4S#SDS1计算机S2信息S3信息自动化MN刘伟王平王平李
33、明 对非3NF关系模式进行规范规范化处理化处理。2023-8-11673NFS4S#SDS1计算机S2信息S3信息自动化MN刘伟王平王平李明SSS(S#,SD,MN)不是不是3NFS4S#SDS1计算机S2信息S3信息自动化SD计算机信息自动化MN刘伟王平李明SSD(S#,SD)是是3NFSSL(SD,SL)是是3NF 3NF关系模式解决了更新问题了吗?2023-8-11683NFS4S#SDS1计算机S2信息S3信息自动化SD计算机信息自动化MN刘伟王平李明计算机 定义14:BCNF范式(Boyce Codd Normal Form)设关系模式R是1NF。如果对于R的每个函数依赖XY,则X必
34、为候选键,则R是BCNF范式。每个BCNF关系模式都具有如下三个性质:1.所有非键属性都完全函数依赖于每个候选键。2.所有键属性都完全函数依赖于每个不包含它的候选键。3.没有任何属性完全函数依赖于非键的任何一组属性。2023-8-1169Boyce Codd范式完全依赖定义完全依赖定义设设R是一个具有属性集合是一个具有属性集合U的关系模式,如果的关系模式,如果XY,并且对于并且对于X的的任何一个真子集任何一个真子集Z,ZY都不成立,则称都不成立,则称Y完全函数依赖于完全函数依赖于X。若若XY,但但Y不完全函数依赖于不完全函数依赖于X,则称则称Y部分函数依赖于部分函数依赖于X。2023-8-11
35、70范式的关系 BCNF 3NF 若关系模式R是BCNF,则R一定是3NF。证明:2023-8-1171关系模式范式的基本概念2023-8-1172关系模式范式的基本概念 定义定义12:第二范式:第二范式(2NF)若关系模式是若关系模式是1NF,而且每一个非主属性都完全函数依赖于而且每一个非主属性都完全函数依赖于的键,则称为第二范式关系模式,记作的键,则称为第二范式关系模式,记作2NF。定义定义13:第三范式:第三范式(3NF)如果关系模式是如果关系模式是2NF,而且它的任何一个非主属性都不传递地而且它的任何一个非主属性都不传递地依赖于任何候选键,则称为第三范式关系模式,记作依赖于任何候选键,
36、则称为第三范式关系模式,记作3NF。定义定义14:BCNF范式范式(Boyce Codd Normal Form)设关系模式设关系模式R是是1NF。如果对于如果对于R的每个函数依赖的每个函数依赖XY,则则X必必为候选键,则为候选键,则R是是BCNF范式。范式。例:关系模式SJP(S,J,P);S表示学生,J表示课程,P表示名次。每个学生每门课程都有一个确定的名次,每门课程中每一名次只有一个学生。由这些语义得到下面的函数依赖:S,JP和J,PS。候选键有哪些?S,J与J,P都是候选键。2023-8-1173关系数据库设计理论SJP是3NF吗?是!因为没有任何非主属性传递或部分依赖于任何候选键。S
37、JP是BCNF吗?是!因为每个函数依赖的决定属性集都是候选键。例:关系模式STJ(S,T,J);S表示学生,T表示教师,J表示课程。每一教师只教一门课,每门课由若干教师教。某一学生选定某门课,就确定了一个固定的教师。由这些语义得到下面的函数依赖:S,JT,S,TJ,TJ 候选键有哪些:(S,J)和(S,T)都是候选键。2023-8-11743NF与BCNFSTJ是3NF吗?是!因为没有任何非主属性传递或部分依赖于任何候选键。STJ是BCNF吗?不是!因为T是决定属性,而T不是候选键。如果一个关系数据库的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已达到了最高的规范化程度。属于BCNF的
38、关系模式是否就很完美了呢?2023-8-1175关系数据库设计理论 设某学校有多个专业,每个专业有多个教员,该专业的每个教员讲授该专业的所有课程。用关系模式TEACH(S,T,C)来表示专业S、教员T、课程C之间的关系。2023-8-1176关系数据库设计理论2023-8-1177关系数据库设计理论S ST TC C计算机计算机王军王军数据结构数据结构计算机计算机王军王军系统结构系统结构计算机计算机李明李明数据结构数据结构计算机计算机李明李明系统结构系统结构软件软件张宏张宏数据结构数据结构软件软件张宏张宏JAVAJAVA软件软件李明李明数据结构数据结构软件软件李明李明JAVAJAVA软件软件赵
39、亮赵亮数据结构数据结构软件软件赵亮赵亮JAVAJAVA设某学校有多个专业,每个专业有多个教员,该专业的每个教员讲授该专业的所有课程。用关系模式TEACH(S,T,C)来表示专业S、教员T、课程C之间的关系。2023-8-1178关系数据库设计理论对关系模式TEACH的分析:候选键?(S,T,C)是BCNF吗?是!存在的问题存在的问题:数据增删不方便,冗余明显!S ST TC C计算机计算机王军王军数据结构数据结构计算机计算机王军王军系统结构系统结构计算机计算机李明李明数据结构数据结构计算机计算机李明李明系统结构系统结构软件软件张宏张宏数据结构数据结构软件软件张宏张宏JAVAJAVA软件软件李明
40、李明数据结构数据结构软件软件李明李明JAVAJAVA软件软件赵亮赵亮数据结构数据结构软件软件赵亮赵亮JAVAJAVA2023-8-1179关系数据库设计理论W1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S1C1W2S1C4W2S3C1W2S3C4在关系模式WSC(W,S,C)中,W表示仓库,S表示保管员,C表示商品。假设每个仓库有多个保管员和多种商品。每个保管员保管所在库的所有商品,每种商品被所有保管员保管。2023-8-1180关系数据库设计理论对关系模式WSC的分析:候选键?(W,S,C)是BCNF吗?是!存在的问题:数据增删不方便,冗余明显!W1S1C1W1
41、S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S1C1W2S1C4W2S3C1W2S3C4 定义15:设R是一个具有属性集合的关系模式,X、Y和Z是U的子集,并且Z=U X-Y,多值依赖XY成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关。2023-8-1181多值依赖与4NF2023-8-1182多值依赖与4NF 在TEACH关系实例中,每个(S,C)上的值对应一组T值,而且这种对应与C无关。例如,尽管与(S,C)对应的两个元组(计算机,数据结构)和(计算机,系统结构)在C属性上的值不同(一个是“数据结构”,一个是“系统结构
42、”),它们都对应T的同一组值王军,李明。因此,T多值依赖于S,即ST。S ST TC C计算机计算机王军王军数据结构数据结构计算机计算机王军王军系统结构系统结构计算机计算机李明李明数据结构数据结构计算机计算机李明李明系统结构系统结构软件软件张宏张宏数据结构数据结构软件软件张宏张宏JAVAJAVA软件软件李明李明数据结构数据结构软件软件李明李明JAVAJAVA软件软件赵亮赵亮数据结构数据结构软件软件赵亮赵亮JAVAJAVA2023-8-1183多值依赖与第四范式 在WSC关系实例中,每个(W,C)上的值对应一组S值,而且这种对应与S无关 例如,尽管与(W,C)对应的两个元组(W1,C1)和(W1
43、,C2)在C属性上的值不同(一个是“C1”,一个是“C2”),它们都对应S的同一组值S1,S2。因此,S多值依赖于W,即WS。由C与S的完全对称性,有WC成立。W WS SC CW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S1C1W2S1C4W2S3C1W2S3C4 定义16:设R是一个关系模式,D是R上的多值依赖集。如果对于R的每个多值依赖XY(Y-X=非空集,XY未包含R的全部属性),X都含有R的候选键,则R是第四范式关系模式,简记4NF。2023-8-1184多值依赖与第四范式 与函数依赖类似,可以定义多值依赖集合D的闭包D+。我们也有一组完备有效的多值依
44、赖推理规则,可以用来推导出D+中的所有多值依赖。2023-8-1185多值依赖与第四范式2023-8-1186多值依赖与第四范式在WSC关系中,候选键是(W,S,C)。该关系模式上,有多值依赖WS,W不是候选键,因此,WSC不是第四范式。W WS SC CW1W1S1S1C1C1W1W1S1S1C2C2W1W1S1S1C3C3W1W1S2S2C1C1W1W1S2S2C2C2W1W1S2S2C3C3W2W2S1S1C1C1W2W2S1S1C4C4W2W2S3S3C1C1W2W2S3S3C4C4 问题问题:WSC的关系可能具有相当大的数据冗余。例如,若某一仓库Wi有个保管员,存放m件物品,则对应关
45、系中属性W的值为Wi的元组数是mn。每个保管员重复存储m次,每种物品重复存储n次。2023-8-1187多值依赖与第四范式W WS SW1S1W1S2W2S1W2S32023-8-1188多值依赖与第四范式W WC CW1C1W1C2W1C3W2C1W3C4W WS SC CW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S1C1W2S1C4W2S3C1W2S3C42023-8-1189多值依赖与第四范式 当D包含函数依赖时,如果关系模式R是4NF,则R必为BCNF,反之不然反之不然。例:关系模式WSC具有两个多值依赖WS和WC。WSC的唯一候选键是全键W,S,C。
46、定义定义14:BCNF范式范式(Boyce Codd Normal Form)设关系模式设关系模式R是是1NF。如果对于如果对于R的每个函数依赖的每个函数依赖XY,则则X必必为候选键,则为候选键,则R是是BCNF范式。范式。定义定义16:4NF 设设R是一个关系模式,是一个关系模式,D是是R上的多值依赖集。如果对于上的多值依赖集。如果对于R的每的每个多值依赖个多值依赖XY(Y-X=非空集非空集,XY未包含未包含R的全部属性的全部属性),X都都含有含有R的候选键,则的候选键,则R是第四范式关系模式,简记是第四范式关系模式,简记4NF。2023-8-1190多值依赖与第四范式 当D包含函数依赖时,
47、如果关系模式R是4NF,则R必为BCNF,反之不然反之不然。例:关系模式WSC具有两个多值依赖WS和WC。WSC的唯一候选键是全键W,S,C。WSC是4NF吗?由于W不是候选键,WSC不是4NF。WSC是BCNF吗?WSC是BCNF。形成初始关系数据库模式形成初始关系数据库模式 关系数据库设计理论关系数据库设计理论 关系模式规范化方法 关系模式的优化 完整性和安全性约束的定义 逻辑数据库的性能估计2023-8-1191关系数据库设计 关系模式的分类:静态关系:一旦数据已加载,用户只能在这个关系上运行查询操作,不再进行插入、删除和更新操作。动态关系:经常被更新、插入和删除。静态关系只需具有第一规
48、范形式。动态关系必须至少至少具有第三规范形式。2023-8-1192关系模式规范化方法 关系模式规范化的主要方法:关系模式分解。把一个关系模式分解为几个子模式,使得这些子模式具有指定的规范化形式。关系模式分解中的重要问题是分解的无损连接性和函数依赖保持性。2023-8-1193关系模式规范化方法 例:关系模式R的属性集合U=车号,车主,车型,函数依赖集合F=车号车主,车主车型。2023-8-1194关系模式规范化方法 例:关系模式R的属性集合U=车号,车主,车型,函数依赖集合F=车号车主,车主车型。R的关系实例:该实例存在的问题:2023-8-1195关系模式规范化方法车号车号车主车主车型车型
49、黑A 00321张红A6L黑A 78712张红A6L黑A YZ279李微Bora黑A 77D01王力Benz 例:关系模式R的属性集合U=车号,车主,车型,函数依赖集合F=车号车主,车主车型。分解1:1=R1(车号),R2(车主),R3(车型)2023-8-1196关系模式规范化方法 例:关系模式R的属性集合U=车号,车主,车型,函数依赖集合F=车号车主,车主车型。分解1:1=R1(车号),R2(车主),R3(车型)2023-8-1197关系模式规范化方法车号车号车主车主车型车型黑A 00321张红A6L黑A 78712张红A6L黑A YZ279李微Bora黑A 77D01王力Benz车号车号
50、黑A 00321黑A 78712黑A YZ279黑A 77D01车主车主张红李微王力车型车型A6LBoraBenz 例:关系模式R的属性集合U=车号,车主,车型,函数依赖集合F=车号车主,车主车型。分解1:1=R1(车号),R2(车主),R3(车型)2023-8-1198关系模式规范化方法车号车号车主车主车型车型黑A 00321张红A6L黑A 78712张红A6L黑A YZ279李微Bora黑A 77D01王力Benz车号车号黑A 00321黑A 78712黑A YZ279黑A 77D01车主车主张红李微王力车型车型A6LBoraBenz 例:关系模式R的属性集合U=车号,车主,车型,函数依赖