数据库系统概论chp06课件_第1页
数据库系统概论chp06课件_第2页
数据库系统概论chp06课件_第3页
数据库系统概论chp06课件_第4页
数据库系统概论chp06课件_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数据库系统概论第六章 关系数据理论第六章 关系数据理论6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4 模式的分解6.5 小结一、概念回顾关系关系模式关系数据库关系数据库的模式关系模式的形式化定义关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F)R: 关系名U: 组成该关系的属性名集合D: 属性组U中属性所来自的域DOM: 属性向域的映象集合F: 属性间数据的依赖关系集合四、关系模式的简化表示关系模式R(U, D, DOM, F) 简化为一个三元组: R(U, F)当且仅当U上的一个关系r满足F时,r称为关系模式 R(U, F)的一个关系6.1 问题的

2、提出关系数据库逻辑设计针对具体问题,如何构造一个适合于它的数据模式数据库逻辑设计的工具关系数据库的规范化理论例1建立一个描述学校教务的数据库:学生的学号(Sno)、所在系(Sdept)系主任姓名(Mname)、课程名(Cname)成绩(Grade)单一的关系模式 : Student U Sno, Sdept, Mname, Cname, Grade 6.1 问题的提出U Sno, Sdept, Mname, Cname, Grade U Sno, Sdept, Mname, Cname, Grade 6.1 问题的提出 属性组U上的一组函数依赖F: F Sno Sdept, Sdept Mna

3、me, (Sno, Cname) Grade SnoCnameSdeptMnameGrade6.1 问题的提出关系模式中存在的问题 数据冗余太大浪费大量的存储空间 例:每一个系主任信息重复出现 更新异常 数据冗余 ,更新数据时,维护数据完整性代价大。例:系主任信息修改U Sno, Sdept, Mname, Cname, Grade 关系模式中存在的问题 插入异常该插的数据插不进去 例,插入一个新系信息。 删除异常不该删除的数据不得不删例,某系学生全部毕业关系模式Student中存在的问题1. 数据冗余太大2. 更新异常(Update Anomalies)3. 插入异常(Insertion A

4、nomalies)4. 删除异常(Deletion Anomalies)数据依赖对关系模式的影响(续)结论:Student关系模式不是一个好的模式。“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少原因:由存在于模式中的某些数据依赖引起的解决方法:通过分解关系模式来消除其中不合适 的数据依赖什么是数据依赖(续)数据依赖一个关系内部属性与属性之间的约束关系现实世界属性间相互联系的抽象数据内在的性质语义的体现什么是数据依赖(续)数据依赖的类型函数依赖(Functional Dependency,简记为FD)多值依赖(Multivalued Dependency,简记为MVD)其

5、他分解关系模式把这个单一模式分成3个关系模式: S(Sno,Sdept,Sno Sdept); SC(Sno,Cno,Grade,(Sno,Cno) Grade); DEPT(Sdept,Mname,Sdept Mname)第六章 关系数据理论6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4 模式的分解6.5 小结6.2 规范化 规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。6.2 规范化6.2.1 函数依赖6.2.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.

6、2.7 多值依赖6.2.8 4NF6.2.9 规范化小结6.2.1 函数依赖函数依赖平凡函数依赖与非平凡函数依赖完全函数依赖与部分函数依赖传递函数依赖一、函数依赖定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。 若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作XY。 说明 1. 所有关系实例均要满足2. 语义范畴的概念3. 数据库设计者可以对现实世界作强制的规定二、平凡函数依赖与非平凡函数依赖在关系模式R(U)中,对于U的子集X和Y,如果XY,但Y X,则称XY是非

7、平凡的函数依赖若XY,但Y X, 则称XY是平凡的函数依赖例:在关系SC(Sno, Cno, Grade)中, 非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno平凡函数依赖与非平凡函数依赖(续)若XY,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。若XY,YX,则记作XY。若Y不函数依赖于X,则记作XY。三、完全函数依赖与部分函数依赖定义6.2 在R(U)中,如果XY,并且对于X的任何一个真子集X,都有X Y, 则称Y对X完全函数依赖,记作X F Y。 若XY,但Y不完全函数依赖于X,则

8、称Y对X部分函数依赖,记作X P Y。 完全函数依赖与部分函数依赖(续)例1 中(Sno,Cno)Grade是完全函数依赖, (Sno,Cno)Sdept是部分函数依赖 FP因为SnoSdept成立,且Sno是(Sno,Cno)的真子集四、传递函数依赖定义6.3 在R(U)中,如果XY,(Y X) ,YX YZ, 则称Z对X传递函数依赖。 记为:X Z 注: 如果YX, 即XY,则Z直接依赖于X。例: 在关系Std(Sno, Sdept, Mname)中,有: Sno Sdept,Sdept Mname Mname传递函数依赖于Sno传递6.2 规范化6.2.1 函数依赖6.2.2 码6.2.

9、3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结6.2.2 码 定义6.4 设K为R中的属性或属性组合。若K U, 则K称为R的侯选码(Candidate Key)。 若候选码多于一个,则选定其中的一个做为主码(Primary Key)。F码(续)主属性与非主属性包含在任何一个候选码中的属性 ,称为主属性(Prime attribute) 不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute) 全码整个属性组是码,称为全码(All-key) 码(续)例

10、3 关系模式R(P,W,A) P:演奏者 W:作品 A:听众 一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品 码为(P,W,A),即All-Key 外部码定义6.5 关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码如在SC(Sno,Cno,Grade)中, Sno不是码,但Sno是关系模式S(Sno,Sdept, Sage)的码, 则Sno是关系模式SC的外部码 主码与外部码一起提供了表示关系间联系的手段复 习什么是函数依赖、非平凡函数依赖、完全函数依赖什么是码?不好

11、的关系模式会存在哪些问题?6.2 规范化6.2.1 函数依赖6.2.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结6.2.3 范式范式是符合某一种级别的关系模式的集合范式的种类:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)6.2.3 范式各种范式之间存在联系:某一关系模式R为第n范式,可简记为RnNF。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化 6.2 规范化6.2.1 函数依赖6

12、.2.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结6.2.4 2NF1NF的定义如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库但是满足第一范式的关系模式并不一定是一个好的关系模式 2NF(续)2NF的定义定义6.6 若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。2NF(续)例4 关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生

13、住在同一个地方函数依赖包括: (Sno, Cno) F Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept Sloc 2NF(续)S-L-C的码为(Sno, Cno)S-L-C满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno)SnoCnoGradeSdeptSlocS-L-CS-L-C不是一个好的关系模式(续)(1) 插入异常(2) 删除异常(3) 数据冗余度大(4) 修改复杂S-L-C不是一个好的关系模式(续)原因 Sdept、 Sloc部分函数依赖于码。解决方法 S-L-C分解为

14、两个关系模式,以消除这些部分函数依赖 SC(Sno, Cno, Grade) 2NF S-L(Sno, Sdept, Sloc) 2NF2NF(续)函数依赖图:SnoCnoGradeSCS-LSnoSdeptSloc关系模式SC的码为(Sno,Cno)关系模式S-L的码为Sno这样非主属性对码都是完全函数依赖 2NF(续)采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。6.2 规范化6.2.1 函数依赖6.2

15、.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结 6.2.5 3NF3NF的定义定义6.7 关系模式R 中若不存在这样的码X,属性组Y及非主属性Z(Z Y), 使得XY,YZ 成立,Y X,则称R 3NF。若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。 3NF(续)例:2NF关系模式S-L(Sno, Sdept, Sloc)中函数依赖: SnoSdept Sdept Sno SdeptSloc 可得: SnoSloc, 传递所以S-L 3NF 3NF(续)函数依赖图:S-LSnoSdep

16、tSloc3NF(续)解决方法 采用投影分解法,把S-L分解为两个关系模式,以消除传递函数依赖: S-D(Sno, Sdept) D-L(Sdept,Sloc)S-D的码为Sno, D-L的码为Sdept。分解后的关系模式S-D与D-L中不再存在传递依赖 3NF(续)S-D的码为Sno, D-L的码为SdeptSnoSdeptS-DSdeptSlocD-L S-L(Sno, Sdept, Sloc) 2NF S-L(Sno, Sdept, Sloc) 3NF S-D(Sno,Sdept) 3NFD-L(Sdept, Sloc) 3NF6.2 规范化6.2.1 函数依赖6.2.2 码6.2.3

17、范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结 6.2.6 BC范式(BCNF)定义6.8 关系模式R1NF,若XY且Y X时X必含有码,则RBCNF。等价于:每一个决定属性因素都包含码BCNF(续)若RBCNF 所有非主属性对每一个码都是完全函数依赖所有的主属性对每一个不包含它的码,也是完全函数依赖没有任何属性完全函数依赖于非码的任何一组属性R BCNF R 3NF充分不必要BCNF(续)例5 关系模式C(Cno,Cname,Pcno)C3NFCBCNF例6 关系模式S(Sno,Sname,Sdept,Sage)假定S

18、有两个码Sno,SnameS3NF。S BCNFBCNF(续)例7关系模式SJP(S, J , P) 学生 课程 名次函数依赖:(S,J)P;(J,P)S(S,J)与(J,P)都可以作为候选码SJP3NFSJPBCNF BCNF(续)例8在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。函数依赖: (S,J)T,(S,T)J,TJ(S,J)和(S,T)都是候选码 BCNF(续) JSJTSTSTJ中的函数依赖BCNF(续)STJ3NF没有任何非主属性对码传递依赖或部分依赖STJBCNFT是决定因素,T不包含码BCNF(续)解决方法:将STJ分解为二个关系模式: ST(S,T

19、) BCNF, TJ(T,J) BCNF 没有任何属性对码的部分函数依赖和传递函数依赖STSTTJTJ3NF与BCNF的关系R BCNF R 3NF如果R3NF,且R只有一个候选码 R BCNF R 3NF充分不必要充分必要判断下列关系模式是否满足BC范式1、R(X,Y,Z)F= Y-Z,Y-X,X-YZ 2、 管理(仓库号,设 备号,职工号) (语义:每个仓库有多个职工,一名职工只能在一个仓库工作,每个仓库一种设备仅有一名职工保管,每名职工可保管多种设备)职工号 仓库号 (仓库号,设备号) 职工号6.2 规范化6.2.1 函数依赖6.2.2 码6.2.3 范式6.2.4 2NF6.2.5 3

20、NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结6.2.7 多值依赖例9 学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。课 程 C教 员 T参 考 书 B物理数学计算数学李 勇王 军李 勇张 平张 平 周 峰 普通物理学光学原理 物理习题集数学分析微分方程高等代数数学分析.多值依赖(续)非规范化关系普通物理学光学原理物理习题集普通物理学光学原理物理习题集数学分析微分方程高等代数数学分析微分方程高等代数李 勇李 勇李 勇王 军王 军王 军李 勇李 勇李 勇张 平张 平张 平 物 理物 理物 理

21、物 理物 理物 理数 学数 学数 学数 学数 学数 学 参考书B教员T课程C多值依赖(续)用二维表表示Teaching多值依赖(续)TeachingBCNFTeaching具有唯一候选码(C,T,B), 即全码 多值依赖(续) Teaching模式中存在的问题(1)数据冗余度大 (2)插入操作复杂(3)删除操作复杂(4)修改操作复杂存在多值依赖多值依赖(续)定义6.9 设R(U)是一个属性集U上的一个关系模式, X、 Y和Z是U的子集,并且ZUXY,当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关则多值依赖 XY成立 例 Teaching(C,

22、 T, B)多值依赖(续)多值依赖的另一个等价的形式化的定义: 在R(U)的任一关系r中,如果存在元组t,s 使得tX=sX,那么就必然存在元组 w,v r,(w,v可以与s,t相同),使得wX=vX=tX,而wY=tY,wZ=sZ,vY=sY,vZ=tZ(即交换s,t元组的Y值所得的两个新元组必在r中),则Y多值依赖于X,记为XY。 这里,X,Y是U的子集,Z=U-X-Y。多值依赖(续)平凡多值依赖和非平凡的多值依赖若XY,而Z,则称 XY为平凡的多值依赖否则称XY为非平凡的多值依赖多值依赖(续)例10关系模式WSC(W,S,C) W表示仓库,S表示保管员,C表示商品 假设每个仓库有若干个保

23、管员,有若干种商品 每个保管员保管所在的仓库的所有商品 每种商品被所有保管员保管 多值依赖(续)WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5WS且WC多值依赖(续)WS且WC多值依赖的性质(1)多值依赖具有对称性若XY,则XZ,其中ZUXY(2)多值依赖具有传递性若XY,YZ, 则XZ Y(3)函数依赖是多值依赖的特殊情况。若XY,则XY。(4)若XY,XZ,则XY Z。(5)若XY,XZ,则XYZ。(6)若XY,XZ,则XY-Z,XZ -Y。多值依赖与函数依赖的区别(1) 多值依赖的有效性与属性集的范围有关(2

24、) 若函数依赖XY在R(U)上成立,则对于任何Y Y均有XY 成立多值依赖XY若在R(U)上成立,不能断言对于任何Y Y有XY 成立6.2 规范化6.2.1 函数依赖6.2.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结6.2.8 4NF定义6.10 关系模式R1NF,如果对于R的每个非平凡多值依赖XY(Y X),X都含有码,则R4NF。如果R 4NF, 则R BCNF4NF(续)例: Teaching(C,T,B) 4NF 存在非平凡的多值依赖CT,且C不是码。用投影分解法把Teaching分解为如下

25、两个关系模式: CT(C, T) 4NF CB(C, B) 4NF CT, CB是平凡多值依赖 6.2 规范化6.2.1 函数依赖6.2.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结6.2.9 规范化小结关系数据库的规范化理论是数据库逻辑设计的工具目的:尽量消除插入、删除异常,修改复杂,数据冗余基本思想:逐步消除数据依赖中不合适的部分实质:概念的单一化规范化小结(续)关系模式规范化的基本步骤 1NF 消除非主属性对码的部分函数依赖消除决定属性 2NF集非码的非平 消除非主属性对码的传递函数依赖凡函数依

26、赖 3NF 消除主属性对码的部分和传递函数依赖 - BCNF 消除非平凡且非函数依赖的多值依赖 4NF规范化小结(续)不能说规范化程度越高的关系模式就越好在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式上面的规范化步骤可以在其中任何一步终止第六章 关系数据理论6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4 模式的分解6.5 小结6.3 数据依赖的公理系统逻辑蕴含定义6.11 对于满足一组函数依赖 F 的关系模式R ,其任何一个关系r,若函数依赖XY都成立, 则称F逻辑蕴含X Y 例如,关系模式Student(

27、Sno,Sname, Sage,SD,SDname) 其属性组上的函数依赖集为 F SnoSname,SnoSage,SnoSD, SDSDname , SnoSDname就是F所逻辑蕴含的一个函数依赖。函数依赖的逻辑蕴含1. Armstrong公理系统 关系模式R 来说有以下的推理规则:A1.自反律(Reflexivity):若Y X U,则X Y为F所蕴含。A2.增广律(Augmentation):若XY为F所蕴含,且Z U,则XZYZ为F所蕴含。A3.传递律(Transitivity):若XY及YZ为F所蕴含,则XZ为F所蕴含。定理 6.1 Armstrong推理规则是正确的(l)自反律

28、: 若Y X U,则X Y为F所蕴含 证: 设Y X U 对R 的任一关系r中的任意两个元组t,s:若tX=sX,由于Y X,有ty=sy,所以XY成立,自反律得证定理 6.l Armstrong推理规则是正确的(续)(2)增广律: 若XY为F所蕴含,且Z U,则XZYZ 为F所蕴含。 证:设XY为F所蕴含,且Z U。 设R 的任一关系r中任意的两个元组t,s:若tXZ=sXZ,则有tX=sX和tZ=sZ;由XY,于是有tY=sY,所以tYZ=sYZ,所以XZYZ为F所蕴含,增广律得证。2. 导出规则1.根据A1,A2,A3这三条推理规则可以得到下面三条推理规则: 合并规则:由XY,XZ,有X

29、YZ。 (A2, A3) 伪传递规则:由XY,WYZ,有XWZ。 (A2, A3) 分解规则:由XY及 ZY,有XZ。 (A1, A3)例:设有关系模式R(A,B,C,D,E)及其上的函数依赖集F=ABCD,AB,DE,求证F必蕴涵AE。证明: AB (给定条件) AAB (A2增广律) ABCD (给定条件) ACD (A3传递律) AC,AD (分解规则) DE (给定条件) AE (A3传递律) 证毕。举例【例】 对于关系模式CSZ(CITY,ST, ZIP),其属性组上的函数依赖集为 F (CITY,ST)ZIP,ZIPCITY ,利用 Armstrong公理系统的推理规则,证明(ST

30、,ZIP)(CITY,ST,ZIP)。举例证明:根据题意不难看出只要证明(ST,ZIP)是一个候选码即可,证明步骤如下: 因为ZIPCITY (F中已给出) 所以(ST,ZIP)(CITY,ST) (利用增广率,即在函数依赖的两端加ST) (ST,ZIP)(CITY,ST,ZIP) (用增广率,加ZIP)Armstrong公理系统Armstrong公理系统是有效的、完备的有效性:由F 出发根据Armstrong公理推导出来的每一个函数依赖一定在F+中;完备性:F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来3. 函数依赖闭包定义6.l2 在关系模式R中为F所逻辑蕴含的

31、函数依赖的全体叫作 F的闭包(closure),记为F +。定义6.13 设F为属性集U上的一组函数依赖,X U, XF+ = A|XA能由F 根据Armstrong公理导出,XF+称为属性集X关于函数依赖集F 的闭包例:设关系模式R(A,B,C)的函数依赖集为F=AB,BC,分别求A、B、C的闭包。 解:若XA, AB,BC(给定条件) AC (A2传递律) AA (A1自反律) =A,B,C (据定义)若X=B BB (A1自反律) BC (给定条件) =B,C (据定义) 若X=C CC (自反律) =C (据定义)例:设关系模式R(A,B,C)的函数依赖集为F=AB,BC,分别求A、B

32、、C的闭包。 举例【例】已知关系模式R(U,F),U=A,B,C,D,E,F=AB,DC,BCE,ACB,求 、 。 解: =ABCDE =ABE F的闭包F=XY, YZF+=X,Y,Z,XY,XZ,YZ,XYZ, XX, YY, ZZ,XYX,XZX,YZY,XYZX,XY,Y Z,XYY,XZY,YZZ,XYZY,XZ,YYZ,XYZ,XZZ,YZYZ,XYZZ,XXY,XYXY,XZXY,XYZXY, XXZ,XYYZ,XZXZ,XYZYZ,XYZ,XYXZ,XZXY,XYZXZ,XZYZ,XYXYZ,XZXYZ,XYZXYZ F=XA1, , XAn的闭包F+计算是一个NP完全问题关

33、于闭包的引理引理6.2 设F为属性集U上的一组函数依赖,X,Y U,XY能由F 根据Armstrong公理导出的充分必要条件是Y XF+用途 将判定XY是否能由F根据Armstrong公理导出的问题,转化为求出XF+ 、判定Y是否为XF+的子集的问题5. 函数依赖集等价定义6.14 如果G +=F +,就说函数依赖集F覆盖G(F是G的覆盖,或G是F的覆盖),或F与G等价。引理6.3 F + = G + 的充分必要条件是F G + ,和G F + 判断两个函数依赖集等价的可行算法定理6.3每个函数依赖集F均等价于一个极小函数依赖集Fm。6. 最小依赖集 定义6.15 如果函数依赖集F满足下列条件

34、,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。 (1) F中任一函数依赖的右部仅含有一个属性。 (2) F中不存在这样的函数依赖XA,使得F与F- XA等价。 (3) F中不存在这样的函数依赖XA, X有真子集 Z使得F-XAZA与F等价。 最小依赖集例2 关系模式S,其中: U= Sno,Sdept,Mname,Cno,Grade , F= SnoSdept,SdeptMname,(Sno, Cno)Grade 设F=SnoSdept,SnoMname,SdeptMname, (Sno,Cno)Grade,(Sno,Sdept)Sdept F是最小覆盖,而F不是。 因为:F -

35、SnoMname与F 等价 F - (Sno,Sdept)Sdept也与F 等价 6. 最小依赖集 定义6.15 如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。 (1) F中任一函数依赖的右部仅含有一个属性。 (2) F中不存在这样的函数依赖XA,使得F与F- XA等价。 (3) F中不存在这样的函数依赖XA, X有真子集 Z使得F-XAZA与F等价。 复习1、Armstrong公理系统2、什么是闭包?如何求属性的闭包?3、什么是最小函数依赖集?课后作业1.设有关系模式R(A,B,C,D)及R上的函数依赖集F,F=AB-C,C-D,D-Aa)推导出所有的

36、非平凡函数依赖b)求出R的所有候选码a) AB-C,C-D 根据传递律可得 AB-D 又 C-D,D-A C-A 又 D-A , AB-C 根据伪传递律可得BD-C 根据F推导的所有非平凡函数依赖为 AB-D C-A BD-CF=AB-C,C-D,D-Ab) L:B R: N: LR:A C D X=B Y=ACD X+=B (BA)+= ABCD (BC)+=ABCD (BD)+=ABCD AB、 BC 、BD均为候选码F=AB-C,C-D,D-A算法:求函数依赖F的最小依赖集F多余,否则不多余,若包含则表示是否包含察是否多余,即考看是非单属性的依赖,如中左边的属性:逐个检查去掉各依赖左边的

37、多余否则不去掉若是则去掉包含是否看,在剩下的依赖中求如掉它个依赖开始,去中多余的依赖:从第一去掉右边均改为单属性依赖用分解规则将所有依赖YAXYAXYFYXYXXYXF+,)3(,)()2()1(极小化处理= Fmin=求最小的函数依赖集例:设F是关系模式R(ABC)的FD集,F=ABC,BC,AB,ABC ,试求Fmin。F=ABC,BC,AB,ABC 先把F中的FD写成右边是单属性形式:F=AB,AC,BC,AB,ABC 删去重复的FD AB,得F=AB,AC,BC,ABC F中AC可从AB和BC推出,因此AC是冗余的,可删去。得F=AB,BC,ABC F中ABC可从AB和BC推出,因此A

38、BC也可删去。最后得F=AB,BC,即所求的Fmin。 极小化过程(续)例3 F = AB,BA,BC,AC,CA Fm1= AB,BC,CA Fm2= AB,BA,AC,CA Fm1、Fm2都是F的最小依赖集: F的最小依赖集Fm不唯一极小化过程也是检验F是否为极小依赖集的一个算法求候选码的方法将属性分为四类L:仅出现在函数依赖的左边R:仅出现在函数依赖的右边N:两边均未出现LR:左右均出现求候选码的方法1、令X代表L、N类,Y代表LR类2、求X的闭包,若X的闭包含R的全部属性,则X为R的唯一候选码,转5,否则转33、在Y中取属性A,求(XA)的闭包,若它包含R的全部属性,则转4,否则换一个

39、属性反复进行这一过程,直到测完Y中的属性4、如已找到所有候选码,则转5,否则在Y中依次取2,3个属性,直到试完Y中所有组合5、结束输出结果【例】设关系模式R(U,F),其中U=A,B,C,D,F=AC, CB, ADB。求R的候选码。求候选码的方法解:(1)检查 F发现,A,D只出现在函数依赖的左部,所以为L类属性,X=AD,Y=C(2)根据求属性闭包的算法,F中AC,ADB可以求得 =ABCD=U,故AD为R唯一的候选码。 F=AC, CB, ADB例题设有关系模式R(A,B,C,D,E),其上的函数依赖集:F=ABC,CDE,BD,EA 计算B+。 求出R的所有候选关键字。 B+=BD。

40、R的候选关键字只可能由F中各个函数依赖的LR属性组成,即A,B,C,D,E计算可知:A+=ABCDE,即AU,A是一个候选关键字。 B+=BD ,C+=C, D+=D, B、C、D不是候选码E+=ABCDE,即EU,E是一个候选码。F=ABC,CDE,BD,EA计算可知:(BC)+=ABCDE,即CDU (CD)+=ABCDE,即CDU,(BD)+=BD CD,BC都是候选关键字。R的所有候选关键字是A,BC,CD,E。F=ABC,CDE,BD,EA【例】设关系模式R(U,F),其中U=H,I,J,K,L,M,F=HI,KI,LMK,IK,KHM。求R的候选码。求候选码的方法解:(1)检查 F

41、发现, H,L只出现在函数依赖的左部,所以为L类属性, J为N类的属性。(2)根据求属性闭包的算法,F中HI,IK, KHM可以求得 =HIJKLM=U,故HIJ为R唯一的候选码。F=HI,KI,LMK,IK,KHM第六章 关系数据理论6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4 模式的分解6.5 小结6.4 模式的分解把低一级的关系模式分解为若干个高一级的关系模式的方法不是唯一的只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义关系模式分解的标准三种模式分解等价的定义: 分解具有无损连接性 分解要保持函数依赖 分解既要保持函数依赖,又要具有无 损连接性模式的

42、分解(续)如果一个分解具有无损连接性,则它能够保证不丢失信息如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。定理6.5:关系模式R(U,F)的一个分解,= R1 (U1,F1), R2 (U2,F2)具有无损连接的充分必要的条件是:U1U2U1-U2 F+ 或U1U2U2-U1 F+ 保持无损连接的分解【例】对给定的关系模式R(U,F),U=A,B,C,F=AB,如下的两个分解:(1)1 = AB,BC(2)2 = AB,AC判断这两个

43、分解是否无损。举例解:(1)可根据无损连接定理判断本题 ABBC=B AB-BC=A BC-AB=C U=A,B,C,F=AB故1为有损连接。举例(2)根据无损连接定理判断本题 ABAC=A AB-AC=B AC-AB =C2为无损连接。(1)构造一个n列k行表,每一行对应于一个模式Ri(1ik),每一列对应于一个属性Aj(1jn),如下表所示。定理6.4判断分解是无损连接的测试方法A1A2AnR1R2Rk(2) 初始表(填表):若AjRi,则第i行第j列上填入aj,否则空着。(3) 修改表:取F中的某个函数依赖XY,在表中寻找与X对应的列中含有相同属性值的行,然后,将这些行中对应Y的属性的元

44、素进行修改;若这些元素中有aj,则全部改为aj; (4) 这样反复进行,如发现某一行变成a1,a2,,ak,则此分解具有连接不失真性。例题已知R(ABCD), =AB,BC,CD, F=B A,C D判断相对于F是否无损分解。=AB,BC,CD,F=B A,C D(a)初始表格 A B C DAB a1 a2BC a2 a3 CD a3 a4(b) 修改后的表格 A B C DAB a1 a2 BC a1 a2 a3 a4CD a3 a4 是无损分解例:设有R(U,F),其中:U =(A,B,C,D,E),F=(AC,BC,CD,DEC,CEA),R的一个分解为:R1(AD),R2 (AB),

45、R3(BE) ,R4(CDE) ,R5(AE)是否无损分解?表(a) 初始表格 ABCDER1:ADa1a4R2:ABa1a2R3:BEa2a5R4:CDEa3a4a5R5:AEa1a5表(b) 修改后的表格 ABCDER1:ADa1a3a4R2:ABa1a2a3R3:BEa2a5R4:CDEa3a4a5R5:AEa1a3a5表(b) 修改后的表格 ABCDER1:ADa1a3a4R2:ABa1a2a3R3:BEa2a3a5R4:CDEa3a4a5R5:AEa1a3a5表(b) 修改后的表格 ABCDER1:ADa1a3a4R2:ABa1a2a3a4R3:BEa2a3a4a5R4:CDEa3a

46、4a5R5:AEa1a3a4a5表(b) 修改后的表格 ABCDER1:ADa1a3a4R2:ABa1a2a3a4R3:BEa1a2a3a4a5R4:CDEa1a3a4a5R5:AEa1a3a4a5 是无损分解判断分解保持函数依赖的测试方法设关系模式R的一个分解=R1,R2,Rk, F是R的依赖集,如果F等价于 R1(F)U R2(F) U U Rk(F),则称分解具有依赖保持性 例 题给定关系模式R,其中U=A,B,C,D,F=A B,B C,C D,D A,判断关系模式R的分解=AB,BC,CD是否具有依赖保持性F=A B,B C,C D,D A=AB,BC,CD解: AB(F)=A B,

47、B A BC(F)=B C, C B CD(F)=CD, DC AB(F) U BC(F) U CD(F)=A B ,B A, B C ,C B,C D,D C从中可以看到A B ,B C,C D均得以保持,又D+=ABCD, D A也得到保持该分解具有依赖保持性分解成2NF模式集的算法设R(U),主键W,若R上存在FD XZ,且Z是非主属性和XW,则XZ是一个部分函数依赖。此时应把R分解成两个模式: R1(XZ),主键是X; R2(Y),其中Y=U-Z,主键仍是W,外键是X(参照R1)利用外键和主键的联接可以从R1和R2重新得到R。如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式

48、中每一个关系模式都是2NF为止。 算法:分解成3NF模式集的算法 设R(U),主键W,若R上存在FD XZ。且Z是非主属性,ZX,X不是候选键,则WZ就是一个传递依赖。此时应把R分解成两个模式: R1(XZ),主键是X; R2(Y),其中Y=U-Z,主键W,外键X(参照R1);利用外键和主键相匹配机制,R1和R2通过联接可以重新得到R。如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中每一个关系模式都是3NF为止。 算法6.3:转换为3NF的保持函数依赖的分解 对 R 中的函数依赖集F进行“极小化处理”,仍记为F。 找出不在F中出现的属性,把这样的属性构成一个 关系模式。把这些属性

49、从U中去掉,剩余的属性仍记为U。 若有 X A F,且XA=U,则 R,算法终止 否则, 每一组函数依赖Fi所涉及的全部属性形成一个属性集Ui 。若Ui Uj (ij)就去掉Ui 。设有关系模式R(A,B,C,D,E),R的函数依赖集:F=AD,ED,DB,BCD,CDA求R的候选关键字。将R分解为3NF。 例:解: 设U=(A,B,C,D,E),由于(CE)+=ABCDER的唯一候选关键字是CE。 求出最小依赖集Fm=AD,ED,DB,BCD,CDA将R分解为3NF:=AD,DE,BD,BCD,ACD,化简得=DE,BCD,ACD例: F=AD,ED,DB,BCD,CDA设关系模式RU,F,

50、U=C,T,H,R,S,G,X,Y,Z,F=CT,CSG,HRC,HSR,THR,CX,将R分解为3NF,且保持函数依赖。解:该函数依赖集已经是最小化的,则分解为: =YZ,CT,CX,CSG,HRC,HSR,THR.算法:转换为3NF的保持函数依赖的分解算法6.4: 转换为3NF既有无损连接性又保持函数依赖的分解 设 X 是 R 的码。 R 已由算法分解为R1, R2, ,Rk, 令 Rx 。 若有某个Ui ,X Ui ,将 Rx 从 中去掉。把这些属性从U中去掉,剩余的属性仍记为U。 就是所求的分解。 【例】有关系模式RU,F,U=C,T,H,R,S,G,F=CT,CSG,HRC,HSR,

51、THR,将R分解为3NF,且既具有无损连接性又能保持函数依赖。解:可以求得关系模式R的码为HS,它的一个保持函数依赖的3NF为: =CT,CSG,HRC,HSR,THR. HS是关键字, HS ,HS是HSR的一个子集 = CT,CSG,HRC,HSR,THR为满足要求的分解。算法6.5 转换为BCNF的无损连接的分解 令R 检查中各关系模式是否均属于BCNF。若是, 则算法终止。 设中Ri不属于BCNF,那么必有X A Fi+ (AX),且X非Ri的码。因此,XA是Ui的真子集。对Ri进行分解:S1,S2,Us1=XA, Us2=Ui-A,以代替Ri返回第步。【例】设有关系模式RU,F,U=CTHRSG,F= CT,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论