第4章关系数据库的规范化设计教案.ppt
《第4章关系数据库的规范化设计教案.ppt》由会员分享,可在线阅读,更多相关《第4章关系数据库的规范化设计教案.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章关系数据库的规范化设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 本章重要概念本章重要概念(1)关系模式的冗余和异常问题。)关系模式的冗余和异常问题。(2)FD的的定定义义、逻逻辑辑蕴蕴涵涵、闭闭包包、推推理理规规则则、与与关关键键码码的的联联系系;平平凡凡的的FD;属属性性集集的的闭闭包包;推推理理规规则的正确性和完备性;则的正确性和完备性;FD集的等价;最小依赖集。集的等价;最小依赖集。(3)无无损损分分解解的的定定义义、性性质质、测测试试;保保持
2、持依依赖赖集集的的分解。分解。(4)关关系系模模式式的的范范式式:1NF,2NF,3NF,BCNF。分解成分解成2NF、3NF模式集的算法。模式集的算法。2022/12/62前前 言言n关系数据库的规范化设计是指面对一个现实关系数据库的规范化设计是指面对一个现实问题问题,如何选择一个比较好的关系模式集合。如何选择一个比较好的关系模式集合。规范化设计理论主要包括三个方面的内容:规范化设计理论主要包括三个方面的内容:数据依赖、范式和模式设计方法。其中数据数据依赖、范式和模式设计方法。其中数据依赖起着核心的作用。数据依赖研究数据之依赖起着核心的作用。数据依赖研究数据之间的联系,范式是关系模式的标准,
3、模式设间的联系,范式是关系模式的标准,模式设计方法是自动化设计的基础。规范化设计理计方法是自动化设计的基础。规范化设计理论对关系数据库结构的设计起着重要的作用。论对关系数据库结构的设计起着重要的作用。2022/12/634.1.1 关系模型的外延和内涵关系模型的外延和内涵n外延就是通常所说的关系、表或当前值,它的基本性质已外延就是通常所说的关系、表或当前值,它的基本性质已在前面介绍过。由于用户经常对关系进行插入、删除和修在前面介绍过。由于用户经常对关系进行插入、删除和修改操作,因此外延是与时间有关的,随着时间的推移在不改操作,因此外延是与时间有关的,随着时间的推移在不断变化。断变化。n内涵是与
4、时间独立的,是对数据的定义以及数据完整性约内涵是与时间独立的,是对数据的定义以及数据完整性约束的定义。对数据的定义包括对关系、属性、域的定义和束的定义。对数据的定义包括对关系、属性、域的定义和说明。对数据完整性约束的定义涉及面较广,主要包括以说明。对数据完整性约束的定义涉及面较广,主要包括以下几个方面:下几个方面:n静态约束,涉及到数据之间联系(称为静态约束,涉及到数据之间联系(称为“数据依赖,数据依赖,data dependences)、主键和值域的设计。)、主键和值域的设计。n动态约束,定义各种操作(插入、删除、修改)对关系值的影响。动态约束,定义各种操作(插入、删除、修改)对关系值的影响
5、。2022/12/644.1.2 关系模式的冗余和异常问关系模式的冗余和异常问题(一)题(一)n例例4.1 TNAMEADDRESSC#CNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4图4.1 关系模式R的实例 2022/12/654.1.2 关系模式的冗余和异常问关系模式的冗余和异常问题(二)题(二)n数据冗余数据冗余 如果一个教师教几门课程,那么这个教师的地址就要重复几次存储。如果一个教师教几门课程,那么这个教师的地址就要重复几次存储。n操作异常操作异常 由于数据的冗余,在对数据操作时会引起各种异常:由于数据的冗余,在对数据操作时会
6、引起各种异常:修改异常。例如教师修改异常。例如教师t1教三门课程,在关系中就会有三个元组。如果教三门课程,在关系中就会有三个元组。如果他的地址变了,这三个元组中的地址都要改变。若有一个元组中的地他的地址变了,这三个元组中的地址都要改变。若有一个元组中的地址未更改,就会造成这个教师的地址不惟一,产生不一致现象。址未更改,就会造成这个教师的地址不惟一,产生不一致现象。插入异常。如果一个教师刚调来,尚未分派教学任务,那么要将教师插入异常。如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性的姓名和地址存储到关系中去时,在属性C#和和CNAME上就没有值上就没有值(空
7、值)。在数据库技术中空值的语义是非常复杂的,对带空值元组(空值)。在数据库技术中空值的语义是非常复杂的,对带空值元组的检索和操作也十分麻烦。的检索和操作也十分麻烦。删除异常。如果在图删除异常。如果在图4.1中要取消教师中要取消教师t3的教学任务,那么就要把这的教学任务,那么就要把这个教师的元组删去,同时也把个教师的元组删去,同时也把t3的地址信息从表中删去了。这是一种的地址信息从表中删去了。这是一种不合适的现象。不合适的现象。2022/12/664.1.2 关系模式的冗余和异常问关系模式的冗余和异常问题(三)题(三)TNAMEADDRESSTNAMEC#CNAMEt1a1t1c1n1t2a2t
8、1c2n2t3a3t1c3n3 t2c4n4 t2c5n2 t3c6n4图4.2 关系模式分解的实例(a)关系模式R1的实例(b)关系模式R2的实例 2022/12/674.2.1 函数依赖的定义(一)函数依赖的定义(一)n定义定义4.1 设有关系模式设有关系模式R(U),X和和Y是属性集是属性集U的的子集,函数依赖(子集,函数依赖(Functional Dependency,简,简记为记为FD)是形为)是形为XY的一个命题,只要的一个命题,只要r是是R的当的当前关系,对前关系,对r中任意两个元组中任意两个元组t和和s,都有,都有tX=sX蕴涵蕴涵tY=sY,那么称,那么称FD XY在关系模式
9、在关系模式R(U)中成立。中成立。2022/12/684.2.1 函数依赖的定义(二)函数依赖的定义(二)n例例4.2 ABCDABCDa1b1c1d1a1b1c1d1a1b1c2d2a1b2c2d2a2b2c3d3a2b2c3d3a3b1c4d4a3b2c4d4图4.3 关系模式R 的两个关系 2022/12/694.2.1 函数依赖的定义(三)函数依赖的定义(三)例例4.3 有一个关于学生选课、教师任课的关系模式:有一个关于学生选课、教师任课的关系模式:R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE)属性分别表示学生学号、姓名、选修课程的课程号、成绩、课程属性分别
10、表示学生学号、姓名、选修课程的课程号、成绩、课程名、任课教师姓名和年龄等意义。名、任课教师姓名和年龄等意义。如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列门课程,那么可写成下列FD形式:形式:S#SNAME C#CNAME每个学生每学一门课程,有一个成绩,那么可写出下列每个学生每学一门课程,有一个成绩,那么可写出下列FD:(S#,C#)GRADE还可以写出其他一些还可以写出其他一些FD:C#(CNAME,TNAME,TAGE)TNAMETAGE2022/12/6104.2.2 FD的逻辑蕴涵的逻辑蕴涵n
11、定义定义4.2 设设F是在关系模式是在关系模式R上成立的函数依上成立的函数依赖的集合,赖的集合,XY是一个函数依赖。如果对于是一个函数依赖。如果对于R的每个满足的每个满足F的关系的关系r也满足也满足XY,那么称,那么称F逻辑蕴涵逻辑蕴涵XY,记为,记为F XY。n定义定义4.3 设设F是函数依赖集,被是函数依赖集,被F逻辑蕴涵的逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集函数依赖全体构成的集合,称为函数依赖集F的闭包(的闭包(closure),记为),记为F+。即。即 F+=XY|记为记为F XY。2022/12/6114.2.3 FD的推理规则(一)的推理规则(一)n设设U是关系模式是关
12、系模式R的属性集,的属性集,F是是R上成立的只涉及上成立的只涉及到到U中属性的函数依赖集。中属性的函数依赖集。FD的推理规则有以下三的推理规则有以下三条:条:nA1(自反性,(自反性,Reflexivity):若):若Y X U,则,则XY在在R上成立。上成立。nA2(增广性,(增广性,Augmentation):若):若XY在在R上上成立,且成立,且Z U,则,则XZYZ在在R上成立。上成立。nA3(传递性,(传递性,Transitivity):若):若XY和和YZ在在R上成立,则上成立,则XZ在在R上成立。上成立。2022/12/6124.2.3 FD的推理规则(二)的推理规则(二)n定理
13、4.1 FD推理规则A1、A2和A3是正确的。也就是,如果XY是从F用推理规则导出,那么XY在F+中。n定理4.2 FD的其他五条推理规则:(1)A4(合并性,(合并性,Union):):XY,XZ XYZ。(2)A5(分解性,(分解性,Decomposition):):XY,Z Y XZ。(3)A6(伪传递性):(伪传递性):XY,WYZ WXZ。(4)A7(复合性,(复合性,Composition):):XY,WZ XWYZ。(5)A8 XY,W Z X(WY)YZ。2022/12/6134.2.3 FD的推理规则(三)的推理规则(三)n例例4.5 已知关系模式已知关系模式R(ABC),)
14、,F=AB,BC,求,求F+。根据根据FD的推理规则,可推出的推理规则,可推出F的的F+有有43个个FD。例如,据规则例如,据规则A1可推出可推出A(表示空属表示空属性集),性集),AA,。据已知的。据已知的AB及规则及规则A2可推出可推出ACBC,ABB,AAB,。据已知条件及规则据已知条件及规则A3可推出可推出AC等。等。有兴趣的同学可推出这有兴趣的同学可推出这43个个FD。2022/12/6144.2.3 FD的推理规则(四)的推理规则(四)n定义定义4.4 对于对于FD XY,如果,如果Y X,那么,那么称称XY是一个是一个“平凡的平凡的FD”,否则称为,否则称为“非非平凡的平凡的FD
15、”。n定理定理4.3 如果如果A1An是关系模式是关系模式R的属性集,的属性集,那么那么XA1An成立的充分必要条件是成立的充分必要条件是XAi(i=1,n)成立。)成立。2022/12/6154.2.4 FD和关键码的联系和关键码的联系n定义4.5 设关系模式设关系模式R的属性集是的属性集是U,X是是U的一个子集。如果的一个子集。如果XU在在R上成立,那么称上成立,那么称X是是R的一个超键。如果的一个超键。如果XU在在R上成上成立,但对于立,但对于X的任一真子集的任一真子集X1都有都有X1U不成立,那么称不成立,那么称X是是R上上的一个候选键。本章的键都是指候选键。的一个候选键。本章的键都是
16、指候选键。例4.6 在学生选课、教师任课的关系模式中:在学生选课、教师任课的关系模式中:R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE)如果规定:每个学生每学一门课只有一个成绩;每个学生只有如果规定:每个学生每学一门课只有一个成绩;每个学生只有一个姓名;每个课程号只有一个课程名;每门课程只有一个任课一个姓名;每个课程号只有一个课程名;每门课程只有一个任课教师。教师。根据这些规则,可以知道(根据这些规则,可以知道(S#,C#)能函数决定)能函数决定R的全部属性,的全部属性,并且是一个候选键。虽然(并且是一个候选键。虽然(S#,SNAME,C#,TNAME)也能函)也能函
17、数决定数决定R的全部属性,但相比之下,只能说是一个超键,而不能的全部属性,但相比之下,只能说是一个超键,而不能说是候选键,因为其中含有多余属性。说是候选键,因为其中含有多余属性。2022/12/6164.2.5 属性集的闭包属性集的闭包 n定义定义4.6 设设F是属性集是属性集U上的上的FD集,集,X是是U的子集,的子集,那么(相对于那么(相对于F)属性集)属性集X的闭包用的闭包用X+表示,它是表示,它是一个从一个从F集使用集使用FD推理规则推出的所有满足推理规则推出的所有满足XA的属性的属性A的集合:的集合:X+=属性属性A|XA在在F+中中 n定理定理4.4 XY能用能用FD推理规则推出的
18、充分必要条推理规则推出的充分必要条件是件是Y X+。n例例4.7 属性集属性集U为为ABCD,FD集为集为 AB,BC,DB。则用上述算法,可求出。则用上述算法,可求出A+=ABC,(AD)+=ABCD,(,(BD)+=BCD,等等。,等等。2022/12/6174.2.5 FD推理规则的完备性推理规则的完备性n推理规则的正确性是指推理规则的正确性是指“从从FD集集F使用推理使用推理规则集推出的规则集推出的FD必定在必定在F+中中”,完备性是,完备性是指指“F+中的中的FD都能从都能从F集使用推理规则集导集使用推理规则集导出出”。也就是正确性保证了推出的所有。也就是正确性保证了推出的所有FD是
19、正确的,完备性保证了可以推出所有被蕴是正确的,完备性保证了可以推出所有被蕴涵的涵的FD。这就保证了推导的有效性和可靠。这就保证了推导的有效性和可靠性。性。n定理定理4.5 FD推理规则推理规则A1,A2,A3是完是完备的。备的。2022/12/6184.2.6 FD集的最小依赖集(一)集的最小依赖集(一)n定义定义4.7 如果关系模式如果关系模式R(U)上的两个函数依赖集)上的两个函数依赖集F和和G,有有F+=G+,则称,则称F和和G是等价的函数依赖集。是等价的函数依赖集。n定义定义4.8 设设F是属性集是属性集U上的上的FD集。如果集。如果Fmin是是F的一个最小的一个最小依赖集,那么依赖集
20、,那么Fmin应满足下列四个条件:应满足下列四个条件:F+min=F+;每个每个FD的右边都是单属性;的右边都是单属性;Fmin中没有冗余的中没有冗余的FD(即(即F中不存在这样的函数依赖中不存在这样的函数依赖XY,使得,使得F与与F XY 等价);等价);每个每个FD的左边没有冗余的属性(即的左边没有冗余的属性(即F中不存在这样的函数中不存在这样的函数依赖依赖XY,X有真子集有真子集W使得使得F XY WY 与与F等价)。等价)。2022/12/6194.2.6 FD集的最小依赖集(二)集的最小依赖集(二)例例4.8 设设F是关系模式是关系模式R(ABC)的)的FD集,集,F=ABC,BC,
21、AB,ABC,试求,试求Fmin。先把先把F中的中的FD写成右边是单属性形式:写成右边是单属性形式:F=AB,AC,BC,AB,ABC 显然多了一个显然多了一个AB,可删去。得,可删去。得F=AB,AC,BC,ABC F中中AC可从可从AB和和BC推出,因此推出,因此AC是冗余的,可是冗余的,可删去。得删去。得F=AB,BC,ABC F中中ABC可从可从AB和和BC推出,因此推出,因此ABC也可删去。也可删去。最后得最后得F=AB,BC,即所求的,即所求的Fmin。2022/12/6204.3关系模式的分解关系模式的分解4.3.1 模式分解问题模式分解问题(一)(一)n定义定义4.9 设有关系
22、模式设有关系模式R(U),属性集为,属性集为U,R1、Rk都是都是U的子集,并且有的子集,并且有R1 R2 RkU。关系模式。关系模式R1、Rk的的集合用集合用表示,表示,=R1,Rk。用。用代代替替R的过程称为关系模式的分解。这里的过程称为关系模式的分解。这里称为称为R的一个分解,也称为数据库模式。的一个分解,也称为数据库模式。2022/12/6214.3.1 模式分解问题模式分解问题(二)(二)图4.5 模式分解示意图 2022/12/6224.3.2 无损分解(一)无损分解(一)n例例4.9rCC4343rABCr1AB2A111111112112图4.6 未丢失信息的分解(b)(c)(
23、a)rABCr1ABr2AC r1r2AB1141114111231213111212(a)(b)(c)(d)图4.7 丢失信息的分解 2022/12/6234.3.2 无损分解(二)无损分解(二)n定义定义4.10 设设R是一个关系模式,是一个关系模式,F是是R上的一个上的一个FD集。集。R分解成数据库模式分解成数据库模式=R1,Rk。如。如果对果对R中满足中满足F的每一个关系的每一个关系r,都有,都有 r=R1(r)R2(r)Rk(r)n那么称分解那么称分解相对于相对于F是是“无损联接分解无损联接分解”(lossless join decomposition),简称为),简称为“无损分解无
24、损分解”,否则称为,否则称为“损失分解损失分解”(lossy decomposition)。)。2022/12/6244.3.2 无损分解(三)无损分解(三)n定理定理4.6 设设=R1,Rk 是关系模是关系模式式R的一个分解,的一个分解,r是是R的任一关系,的任一关系,ri=Ri(r)()(1ik),那么有下列性质:),那么有下列性质:r m(r););若若s=m(r),则),则Ri(s)=ri;m(m(r)=m(r),这个性质称为),这个性质称为幂等性(幂等性(Idempotent)。)。2022/12/6254.3.2 无损分解(四)无损分解(四)R=R1,R2,Rkrr1,r2,rks
25、s1,s2,sk图中:ri=Ri(r)(1ik)si=Ri(r)(1ik)据性质1.有rm(r)据性质2.有si=ri(1ik)图4.8 r的投影连接变换示意图 2022/12/6264.3.2 无损分解(五)无损分解(五)图4.9 泛关系假设下的示意图 图4.9 泛关系假设时的示意图 2022/12/6274.3.2 无损分解(六)无损分解(六)n例例4.10 设关系模式设关系模式R(ABC)分解成)分解成=AB,BC。(a)和()和(b)分别是模式)分别是模式AB和和BC上的值上的值r1和和r2,(,(c)是)是r1 r2的值。显然的值。显然BC(r1 r2)r2。这里。这里r2中元组中元
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 规范化 设计 教案
限制150内