第4章关系数据库的规范化设计

上传人:博****1 文档编号:568552169 上传时间:2024-07-25 格式:PPT 页数:81 大小:481KB
返回 下载 相关 举报
第4章关系数据库的规范化设计_第1页
第1页 / 共81页
第4章关系数据库的规范化设计_第2页
第2页 / 共81页
第4章关系数据库的规范化设计_第3页
第3页 / 共81页
第4章关系数据库的规范化设计_第4页
第4页 / 共81页
第4章关系数据库的规范化设计_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《第4章关系数据库的规范化设计》由会员分享,可在线阅读,更多相关《第4章关系数据库的规范化设计(81页珍藏版)》请在金锄头文库上搜索。

1、瞧愁赃著捌绿鸳练阴丢峰肥颖缴辗泼拦盔歼匣蚁热俩虹静第划民皋甄揭拌第4章关系数据库的规范化设计第4章关系数据库的规范化设计第第4章章 关系数据库的规范化设计关系数据库的规范化设计梆显级蔓屉絮弱捏迄阮门矾携线辕夺嚣段晃宙澄苗毒横梁峪狡绍绍童领舱第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/20241 本章重要概念本章重要概念 (1)关系模式的冗余和异常问题。)关系模式的冗余和异常问题。(2)FD的的定定义义、逻逻辑辑蕴蕴涵涵、闭闭包包、推推理理规规则则、与与关关键键码码的的联联系系;平平凡凡的的FD;属属性性集集的的闭闭包包;推推理理规规则的正确性和完备性;则的正确性和完备性;

2、FD集的等价;最小依赖集。集的等价;最小依赖集。(3)无无损损分分解解的的定定义义、性性质质、测测试试;保保持持依依赖赖集集的的分解。分解。(4)关关系系模模式式的的范范式式:1NF,2NF,3NF,BCNF。分解成分解成2NF、3NF模式集的算法。模式集的算法。谗狰境竟悠剑科鹏飞宁油哪即梅纯呜宰占闽笑衣睡席蚤集笑恩刨空劝汰吨第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/20242前前 言言n关系数据库的规范化设计是指面对一个现实关系数据库的规范化设计是指面对一个现实问题问题,如何选择一个比较好的关系模式集合。如何选择一个比较好的关系模式集合。规范化设计理论主要包括三个方面

3、的内容:规范化设计理论主要包括三个方面的内容:数据依赖、范式和模式设计方法。其中数据数据依赖、范式和模式设计方法。其中数据依赖起着核心的作用。数据依赖研究数据之依赖起着核心的作用。数据依赖研究数据之间的联系,范式是关系模式的标准,模式设间的联系,范式是关系模式的标准,模式设计方法是自动化设计的基础。规范化设计理计方法是自动化设计的基础。规范化设计理论对关系数据库结构的设计起着重要的作用。论对关系数据库结构的设计起着重要的作用。拳脆亭迁罪廷允淄营港悍侥家艳挽换厉耽坟涨隧炙售痛煞毫巧寂乡敬跟讲第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202434.1.1 关系模型的外延和内

4、涵关系模型的外延和内涵n外延就是通常所说的关系、表或当前值,它的基本性质已外延就是通常所说的关系、表或当前值,它的基本性质已在前面介绍过。由于用户经常对关系进行插入、删除和修在前面介绍过。由于用户经常对关系进行插入、删除和修改操作,因此外延是与时间有关的,随着时间的推移在不改操作,因此外延是与时间有关的,随着时间的推移在不断变化。断变化。n内涵是与时间独立的,是对数据的定义以及数据完整性约内涵是与时间独立的,是对数据的定义以及数据完整性约束的定义。对数据的定义包括对关系、属性、域的定义和束的定义。对数据的定义包括对关系、属性、域的定义和说明。对数据完整性约束的定义涉及面较广,主要包括以说明。对

5、数据完整性约束的定义涉及面较广,主要包括以下几个方面:下几个方面:n静态约束,涉及到数据之间联系(称为静态约束,涉及到数据之间联系(称为“数据依赖,数据依赖,data dependences)、主键和值域的设计。)、主键和值域的设计。n动态约束,定义各种操作(插入、删除、修改)对关系值的影响。动态约束,定义各种操作(插入、删除、修改)对关系值的影响。 撬驱箭技俄帐霍提雄靶柠听如甘规稿瞄掖辩虞正疯抿傣编雷诊受钨菊误睬第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202444.1.2 关系模式的冗余和异常问关系模式的冗余和异常问题(一)题(一)n例例4.1 TNAMETNAME

6、ADDRESSADDRESSC#C#CNAMECNAMEt1t1a1a1c1c1n1n1t1t1a1a1c2c2n2n2t1t1a1a1c3c3n3n3t2t2a2a2c4c4n4n4t2t2a2a2c5c5n2n2t3t3a3a3c6c6n4n4图4.1 关系模式R的实例 鹊盅跋师湍朴矽溺删吭杰宪捶律坷鹰蚤豆载佑傲颜含翼弛运眯滁揽块倍逝第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202454.1.2 关系模式的冗余和异常问关系模式的冗余和异常问题(二)题(二)n数据冗余数据冗余 如果一个教师教几门课程,那么这个教师的地址就要重复几次存储。如果一个教师教几门课程,那么这个

7、教师的地址就要重复几次存储。n操作异常操作异常 由于数据的冗余,在对数据操作时会引起各种异常:由于数据的冗余,在对数据操作时会引起各种异常:修改异常。例如教师修改异常。例如教师t1教三门课程,在关系中就会有三个元组。如果教三门课程,在关系中就会有三个元组。如果他的地址变了,这三个元组中的地址都要改变。若有一个元组中的地他的地址变了,这三个元组中的地址都要改变。若有一个元组中的地址未更改,就会造成这个教师的地址不惟一,产生不一致现象。址未更改,就会造成这个教师的地址不惟一,产生不一致现象。插入异常。如果一个教师刚调来,尚未分派教学任务,那么要将教师插入异常。如果一个教师刚调来,尚未分派教学任务,

8、那么要将教师的姓名和地址存储到关系中去时,在属性的姓名和地址存储到关系中去时,在属性C#和和CNAME上就没有值上就没有值(空值)。在数据库技术中空值的语义是非常复杂的,对带空值元组(空值)。在数据库技术中空值的语义是非常复杂的,对带空值元组的检索和操作也十分麻烦。的检索和操作也十分麻烦。删除异常。如果在图删除异常。如果在图4.1中要取消教师中要取消教师t3的教学任务,那么就要把这的教学任务,那么就要把这个教师的元组删去,同时也把个教师的元组删去,同时也把t3的地址信息从表中删去了。这是一种的地址信息从表中删去了。这是一种不合适的现象。不合适的现象。靡叁戏薛礼琵戏峻枯介潦迫吮炎番秒颂叉尿瘪务避

9、转繁制科遇芝殖假抗壹第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202464.1.2 关系模式的冗余和异常问关系模式的冗余和异常问题(三)题(三)TNAMEADDRESSTNAMEC#CNAMEt1a1t1c1n1t2a2t1c2n2t3a3t1c3n3 t2c4n4 t2c5n2 t3c6n4图4.2 关系模式分解的实例 (a) 关系模式R1的实例 (b ) 关系模式R2的实例 炬伎盾醚韧子砾霖综呻酮娱芒辖迫滦租悍向熬则稳耘散毋孺骚聘延询也殖第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202474.2.1 函数依赖的定义(一)函数依赖的定义(一)n

10、定义定义4.1 设有关系模式设有关系模式R(U),X和和Y是属性集是属性集U的的子集,函数依赖(子集,函数依赖(Functional Dependency,简,简记为记为FD)是形为)是形为XY的一个命题,只要的一个命题,只要r是是R的当的当前关系,对前关系,对r中任意两个元组中任意两个元组t和和s,都有,都有tX=sX蕴涵蕴涵tY=sY,那么称,那么称FD XY在关系模式在关系模式R (U)中成立。中成立。拔沁食犀示因酵耀胯篷袖吟罚抗瘪洛灾廊旋菊韵晨丰悦输烯瑟炕绒密幸畴第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202484.2.1 函数依赖的定义(二)函数依赖的定义(

11、二)n例例4.2 ABCDABCDa1b1c1d1a1b1c1d1a1b1c2d2a1b2c2d2a2b2c3d3a2b2c3d3a3b1c4d4a3b2c4d4图4.3 关系模式R 的两个关系 旬砧彩黄例站稍滔矗强趁愁翻携匿纹阑忙童级滥宿定骚正砰臻掏爆区森俞第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202494.2.1 函数依赖的定义(三)函数依赖的定义(三)例例4.3 有一个关于学生选课、教师任课的关系模式:有一个关于学生选课、教师任课的关系模式: R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE) 属性分别表示学生学号、姓名、选修课程的课程

12、号、成绩、课程属性分别表示学生学号、姓名、选修课程的课程号、成绩、课程名、任课教师姓名和年龄等意义。名、任课教师姓名和年龄等意义。 如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列门课程,那么可写成下列FD形式:形式:S#SNAME C#CNAME每个学生每学一门课程,有一个成绩,那么可写出下列每个学生每学一门课程,有一个成绩,那么可写出下列FD:(S#,C#)GRADE还可以写出其他一些还可以写出其他一些FD:C#(CNAME,TNAME,TAGE) TNAMETAGE褂月策晰搪逾耸施缅挂俘螺啤佰颇腔芒

13、累芳肮缸沧尧腺孪瘤阅酶澈膝十坷第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024104.2.2 FD的逻辑蕴涵的逻辑蕴涵n定义定义4.2 设设F是在关系模式是在关系模式R上成立的函数依上成立的函数依赖的集合,赖的集合,XY是一个函数依赖。如果对于是一个函数依赖。如果对于R的每个满足的每个满足F的关系的关系r也满足也满足XY,那么称,那么称F逻辑蕴涵逻辑蕴涵XY,记为,记为F XY。n定义定义4.3 设设F是函数依赖集,被是函数依赖集,被F逻辑蕴涵的逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集函数依赖全体构成的集合,称为函数依赖集F的闭包(的闭包(closure),记

14、为),记为F+。即。即 F+= XY |记为记为F XY。 乌高挨圆帖稼阵握钙定蔗精谋碰柠权蜂懈檄巧呛幅搀汲枚压谆括公叼谩淑第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024114.2.3 FD的推理规则(一)的推理规则(一)n设设U是关系模式是关系模式R的属性集,的属性集,F是是R上成立的只涉及上成立的只涉及到到U中属性的函数依赖集。中属性的函数依赖集。FD的推理规则有以下三的推理规则有以下三条:条:nA1(自反性,(自反性,Reflexivity):若):若Y X U,则,则XY在在R上成立。上成立。nA2(增广性,(增广性,Augmentation):若):若XY

15、在在R上上成立,且成立,且Z U,则,则XZYZ在在R上成立。上成立。nA3(传递性,(传递性,Transitivity):若):若XY和和YZ在在R上成立,则上成立,则XZ在在R上成立。上成立。镜来惭唯绣倪蒙陛伊阑戳歹兼搬租兆仁邱芦迭妈粮湘琼残篆悄散囱泳魔畅第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024124.2.3 FD的推理规则(二)的推理规则(二)n定理4.1 FD推理规则A1、A2和A3是正确的。也就是,如果XY是从F用推理规则导出,那么XY在F+中。n定理4.2 FD的其他五条推理规则:(1) A4(合并性,(合并性,Union):): XY,XZ XY

16、Z。(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。哮拨巡锋甘忻责粗恫任挽状兄旺割缕柿买艘拄脊寨乒春览犊沦军诊购炼排第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024134.2.3 FD的推理规则(三)的推理规则(三)n例例4.5 已知关系模式已知关系模式R(ABC),),F= AB,BC ,求,求F+。根据根据FD的推理规则,可推出的

17、推理规则,可推出F的的F+有有43个个FD。 例如,据规则例如,据规则A1可推出可推出A(表示空属表示空属性集),性集),AA,。据已知的。据已知的AB及规则及规则A2可推出可推出ACBC,ABB,AAB,。据已知条件及规则据已知条件及规则A3可推出可推出AC等。等。有兴趣的同学可推出这有兴趣的同学可推出这43个个FD。 智酥糠榆镐锻语试绿朋十乍滋震烩俩淘矾朴影烈存馏唱封旋宿田萝囚讥窖第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024144.2.3 FD的推理规则(四)的推理规则(四)n定义定义4.4 对于对于FD XY,如果,如果Y X,那么,那么称称XY是一个是一个

18、“平凡的平凡的FD”,否则称为,否则称为“非平非平凡的凡的FD”。 n定理定理4.3 如果如果A1An是关系模式是关系模式R的属性集,的属性集,那么那么XA1An成立的充分必要条件是成立的充分必要条件是XAi(i=1,n)成立。)成立。 花卫市左颇廉贝瑟款守铀困蚜锁帧移蹲侣佃拎腆谰钢虾巴梦胯深枢木薛子第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024154.2.4 FD和关键码的联系和关键码的联系n定义4.5 设关系模式设关系模式R的属性集是的属性集是U,X是是U的一个子集。如果的一个子集。如果XU在在R上成立,那么称上成立,那么称X是是R的一个超键。如果的一个超键。如

19、果XU在在R上成上成立,但对于立,但对于X的任一真子集的任一真子集X1都有都有X1U不成立,那么称不成立,那么称X是是R上上的一个候选键。本章的键都是指候选键。的一个候选键。本章的键都是指候选键。例4.6 在学生选课、教师任课的关系模式中:在学生选课、教师任课的关系模式中: R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE) 如果规定:每个学生每学一门课只有一个成绩;每个学生只有如果规定:每个学生每学一门课只有一个成绩;每个学生只有一个姓名;每个课程号只有一个课程名;每门课程只有一个任课一个姓名;每个课程号只有一个课程名;每门课程只有一个任课教师。教师。 根据这些规则,

20、可以知道(根据这些规则,可以知道(S#,C#)能函数决定)能函数决定R的全部属性,的全部属性,并且是一个候选键。虽然(并且是一个候选键。虽然(S#,SNAME,C#,TNAME)也能函)也能函数决定数决定R的全部属性,但相比之下,只能说是一个超键,而不能的全部属性,但相比之下,只能说是一个超键,而不能说是候选键,因为其中含有多余属性。说是候选键,因为其中含有多余属性。 膜炙秃踪魁印暴夜魄胀哪叭蛰怂含演羽喜抢佩鸟称役献逊稳敌箔闭莫且竟第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024164.2.5 属性集的闭包属性集的闭包 n定义定义4.6 设设F是属性集是属性集U上的上

21、的FD集,集,X是是U的子集,的子集,那么(相对于那么(相对于F)属性集)属性集X的闭包用的闭包用X+表示,它是表示,它是一个从一个从F集使用集使用FD推理规则推出的所有满足推理规则推出的所有满足XA的属性的属性A的集合:的集合:X+= 属性属性A | XA在在F+中中 n定理定理4.4 XY能用能用FD推理规则推出的充分必要条推理规则推出的充分必要条件是件是Y X+。 n例例4.7 属性集属性集U为为ABCD,FD集为集为 AB,BC,DB 。则用上述算法,可求出。则用上述算法,可求出A+=ABC, (AD)+=ABCD,(,(BD)+=BCD,等等。,等等。 捣闯秽实哟综毁趴耀龋救钠线顶焉

22、迭蔑痕淖化窃砒牌胰安刮岳愉豌垒内克第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024174.2.5 FD推理规则的完备性推理规则的完备性n推理规则的正确性是指推理规则的正确性是指“从从FD集集F使用推理使用推理规则集推出的规则集推出的FD必定在必定在F+中中”,完备性是指,完备性是指“F+中的中的FD都能从都能从F集使用推理规则集导出集使用推理规则集导出”。也就是正确性保证了推出的所有也就是正确性保证了推出的所有FD是正确是正确的,完备性保证了可以推出所有被蕴涵的的,完备性保证了可以推出所有被蕴涵的FD。这就保证了推导的有效性和可靠性。这就保证了推导的有效性和可靠性。n

23、定理定理4.5 FD推理规则推理规则A1,A2,A3是完是完备的。备的。 病端谨谢烟另迂遗绣陛忿帛赵屿遁甥订乙蛊畅窥适莹旬癣殃擎喝铡年剥床第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024184.2.6 FD集的最小依赖集(一)集的最小依赖集(一)n定义定义4.7 如果关系模式如果关系模式R(U)上的两个函数依赖集)上的两个函数依赖集F和和G,有有F+=G+,则称,则称F和和G是等价的函数依赖集。是等价的函数依赖集。n定义定义4.8 设设F是属性集是属性集U上的上的FD集。如果集。如果Fmin是是F的一个最小的一个最小依赖集,那么依赖集,那么Fmin应满足下列四个条件:

24、应满足下列四个条件: F+min =F+; 每个每个FD的右边都是单属性;的右边都是单属性; Fmin中没有冗余的中没有冗余的FD(即(即F中不存在这样的函数依赖中不存在这样的函数依赖XY,使得,使得F与与F XY 等价);等价); 每个每个FD的左边没有冗余的属性(即的左边没有冗余的属性(即F中不存在这样的函数中不存在这样的函数依赖依赖XY,X有真子集有真子集W使得使得F XY WY 与与F等价)。等价)。形孰土肚竖憾棕吼惕织旭可惺嵌蛹材烟惹隶老胰帝陇澜瓦补丙葵扯只硒穆第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024194.2.6 FD集的最小依赖集(二)集的最小依

25、赖集(二)例例4.8 设设F是关系模式是关系模式R(ABC)的)的FD集,集,F= ABC,BC,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。 郁坑榜类酵慌丸蛛

26、凹玫轨掘侈即抄网娱妥婶货古照塔估罕禾辆旦叛谅糯谴第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024204.3关系模式的分解关系模式的分解4.3.1 模式分解问题模式分解问题 (一)(一)n定义定义4.9 设有关系模式设有关系模式R(U),属性集为,属性集为U,R1、Rk都是都是U的子集,并且有的子集,并且有R1 R2 RkU。关系模式。关系模式R1、Rk的的集合用集合用表示,表示,=R1,Rk。用。用代代替替R的过程称为关系模式的分解。这里的过程称为关系模式的分解。这里称为称为R的一个分解,也称为数据库模式。的一个分解,也称为数据库模式。雪陛艘沾刁贯撮半迂虫贷埠斡踢踏至

27、抿抢臂诧壶萌造退石焰梁黍标赢泻茅第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024214.3.1 模式分解问题模式分解问题 (二)(二)图4.5 模式分解示意图 泽父愤秃母卤罗钧瞎罢返缘稿己枉剥僚茫认糊雷赋贤磕丽驹壶糟坐彼就呢第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024224.3.2 无损分解(一)无损分解(一)n例例4.9rCC4343rABCr1AB2A111111112112图4.6 未丢失信息的分解 (b)(c)(a) rABCr1ABr2AC r1r2AB1141114111231213111212(a)(b)(c)(d)图4.7

28、 丢失信息的分解 竿通独炯祝第奏厘靳绎仆托藐槽马声槽志途辅痞品辖毯凭慈柔扮头悄绘驯第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024234.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),简称为),简称为“无

29、损分解无损分解”,否则,否则称为称为“损失分解损失分解”(lossy decomposition)。)。看泼瞳注涕谎招滩碴伯说济榷窍田许改阎土潘极笋佬蟹那枷蒜帽硬涡畔惑第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024244.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),这个性质称为),这个性质称为幂等性(幂等

30、性( Idempotent)。)。 滞荚石铃黑沿奶知懒准啪笛舆嗽疲皂许峪负坡种恭音噬灌床凝捷疥漱敏抖第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024254.3.2 无损分解(四)无损分解(四)R= R1,R2,Rkrr1,r2,rkss1,s2,sk图中:ri=Ri(r)(1ik)si=Ri(r)(1ik)据性质1.有rm(r)据性质2.有si= ri(1ik)图4.8 r的投影连接变换示意图 刷镶疲迎污禁肠省案减枣碱赂侨茸莹馈筐贷掖消吏赡苹缔椎乒贱铁箍镣懦第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024264.3.2 无损分解(五)无损分解

31、(五)图4.9 泛关系假设下的示意图 图4.9 泛关系假设时的示意图 凸脓薯鹰揩代角珐私机禽寞松蛋陀谓恋的严染矽阉德冉萎涩分泉闻痉隋拣第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024274.3.2 无损分解(六)无损分解(六)n例例4.10 设关系模式设关系模式R(ABC)分解成)分解成= AB,BC 。(a)和()和(b)分别是模式)分别是模式AB和和BC上的值上的值r1和和r2,(,(c)是)是r1 r2的值。显然的值。显然BC(r1 r2)r2。这里。这里r2中元组中元组(b2c2)就是一个悬挂元组,由于它的存在,使得)就是一个悬挂元组,由于它的存在,使得r1和

32、和r2不存在泛关系不存在泛关系r。 r1ABr2BCABCa1b1a1b1c1bc1b12c2(a)关系r1(b)关系r2rr12(c)rr12巾莫红罕它份夕绷蓄控虞凋去伤得丧伞淳蜒秉犹链窥尖荆硫戒这溯玫缝部第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024284.3.3 无损分解的测试方法无损分解的测试方法(一)(一)算法4.3 无损分解的测试构造一张构造一张k行行n列的表格,每列对应一个属性列的表格,每列对应一个属性Aj(1jn),每行对应一),每行对应一个模式个模式Ri(1ik)。如果)。如果Aj在在Ri中,那么在表格的第中,那么在表格的第i行第行第j列处填上符列

33、处填上符号号aj,否则填上,否则填上bij。把表格看成模式把表格看成模式R的一个关系,反复检查的一个关系,反复检查F中每个中每个FD在表格中是否成立,在表格中是否成立,若不成立,则修改表格中的值。修改方法如下:对于若不成立,则修改表格中的值。修改方法如下:对于F中一个中一个FD XY,如果表格中有两行在,如果表格中有两行在X值上相等,在值上相等,在Y值上不相等,那么把这两行在值上不相等,那么把这两行在Y值上也改成相等的值。如果值上也改成相等的值。如果Y值中有一个是值中有一个是aj,那么另一个也改成,那么另一个也改成aj;如;如果没有果没有aj,那么用其中一个,那么用其中一个bij替换另一个值(

34、尽量把下标替换另一个值(尽量把下标ij改成较小的数)改成较小的数)。一直到表格不能修改为止。(这个过程称为。一直到表格不能修改为止。(这个过程称为chase过程)过程)若修改的最后一张表格中有一行是全若修改的最后一张表格中有一行是全a,即,即a1a2an,那么称,那么称相对于相对于F是是无损分解,否则称损失分解。无损分解,否则称损失分解。 江半浙募稳躺各眠网唱臻迢踩瘸憋熄廓腋招屋怒出把瞄额赂铁孔阔鸵辰葫第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024294.3.3 无损分解的测试方法无损分解的测试方法(二)(二)a4a3b32b31CDb24a3a2b21BCb14b

35、13a2a1ABDCBAa4a3b32b31CDa4a3a2a1BCb14b13a2a1ABDCBA图4.12 算法4.3的运用示意图(一) (a) 初始表格 (a) 修改后的表格 a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBAa4a3b32b31CDa4a3a2b1BCb14b13a2b1ABDCBA(a) 初始表格 (a) 修改后的表格 图4.13 算法4.3的运用示意图(二) 溶矮驳头妒祈遂佑振贝驹咎袒杨味贫爷荒哪铁扯郴恐咱复欠沪屁徽筷况蛮第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024304.3.3 无损分解的测试方法无损分解

36、的测试方法(三)(三)n定理定理4.7 设设= R1,R2 是关系模式是关系模式R的一个分的一个分解,解,F是是R上成立的上成立的FD集,那么分解集,那么分解相对于相对于F是无是无损分解的充分必要条件是(损分解的充分必要条件是(R1R2)(R1R2)或(或(R1R2)(R2R1)。)。n定理定理4.8 如果如果FD XY在模式在模式R上成立,且上成立,且XY=,那么,那么R分解成分解成=RY,XY 是无损分是无损分解。解。恿找难闭胆串搂朝镜日煽侦堑代左撇铜坤饶粹筏吵丈却枚辣荐颊慨占括贫第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024314.3.4 保持函数依赖的分解保

37、持函数依赖的分解(一)(一)n定义定义4.11 设设F是属性集是属性集U上的上的FD集,集,Z是是U的子集,的子集,F在在Z上的投影用上的投影用Z(F)表示,定义为)表示,定义为Z(F)= XY | XY F+,且,且XY Z n定义定义4.12 设设= R1,Rk 是是R的一个分解,的一个分解,F是是R上的上的FD集,如果有集,如果有 Ri(F) F,那么称分解,那么称分解保持函数依赖集保持函数依赖集F。 镍坷胜毗歹控规爷弱妈哪绎叙赏另哗买刷焙攀巳睬配睫浑搜褥坍舱念咖苹第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024324.3.4 保持函数依赖的分解保持函数依赖的分

38、解(二)(二)WNOWSWNOWGWNOWSWGW18级W12000W18级2000W26级W21600W26级1600W36级W31400W36级1400例4.12 (c)rr12(a)关系r1(b)关系r2燃绰拆蠢荆唱继吉凝份甸眠对滞武壁译戏躯鞘事蹲挖沿呵记喻娥刑秆愚戚第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024334.3.5 模式分解与模式等价问题模式分解与模式等价问题(一)(一)本节讨论的关系模式分解的两个特性实际上涉本节讨论的关系模式分解的两个特性实际上涉及到两个数据库模式的等价问题,这种等价包括数及到两个数据库模式的等价问题,这种等价包括数据等价和依赖

39、等价两个方面。数据等价是指两个数据等价和依赖等价两个方面。数据等价是指两个数据库实例应表示同样的信息内容,用据库实例应表示同样的信息内容,用“无损分解无损分解”衡衡量。如果是无损分解,那么对泛关系反复的投影和量。如果是无损分解,那么对泛关系反复的投影和联接都不会丢失信息。依赖等价是指两个数据库模联接都不会丢失信息。依赖等价是指两个数据库模式应有相同的依赖集闭包。在依赖集闭包相等情况式应有相同的依赖集闭包。在依赖集闭包相等情况下,数据的语义是不会出差错的。违反数据等价或下,数据的语义是不会出差错的。违反数据等价或依赖等价的分解很难说是一个好的模式设计。依赖等价的分解很难说是一个好的模式设计。 资

40、寡失脑挎族弱沼搪噶儡往声拉唯脾闲呛揪圆早爱掌滚胚杏炼孤徒渝擅暇第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024344.3.5 模式分解与模式等价问题模式分解与模式等价问题(二)(二)例例4.13 设关系模式设关系模式R(ABC),),= AB,AC 是是R的一的一个分解。试分析分别在个分解。试分析分别在F1= AB ,F2= AC,BC ,F3= BA ,F4= CB,BA 情况下,情况下,是否具有无损分解和保持是否具有无损分解和保持FD的分解特性。的分解特性。相对于相对于F1 = AB ,分解,分解是无损分解且保持是无损分解且保持FD的分的分解。解。相对于相对于F2

41、 = AC,BC ,分解,分解是无损分解,但不是无损分解,但不保持保持FD集。因为集。因为BC丢失了。丢失了。相对于相对于F3 = BA ,分解,分解是损失分解但保持是损失分解但保持FD集的集的分解。分解。相对于相对于F4 = CB,BA ,分解,分解是损失分解且不保是损失分解且不保持持FD集的分解集的分解(丢失了丢失了CB) 符撰歼镀粒赁蓉椎绦泉孩普悍脓莱庞帚贮阔闰们橙献彤歼碍吾北咳薛氮锥第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024354.4 关系模式的范式关系模式的范式n关系模式的好与坏,用什么标准衡量?这个标准就关系模式的好与坏,用什么标准衡量?这个标准就是

42、模式的范式(是模式的范式(Normal Forms,简记为,简记为NF)。范)。范式的种类与数据依赖有着直接的联系,基于式的种类与数据依赖有着直接的联系,基于FD的范的范式有式有1NF、2NF、3NF、BCNF等多种。等多种。n在不提及在不提及FD时,关系中是不可能有冗余的问题,但时,关系中是不可能有冗余的问题,但是当存在是当存在FD时,关系中就有可能存在数据冗余问题。时,关系中就有可能存在数据冗余问题。n1NF是关系模式的基础;是关系模式的基础;2NF已成为历史,一般不已成为历史,一般不再提及;在数据库设计中最常用的是再提及;在数据库设计中最常用的是3NF和和BCNF。为了叙述的方便,我们还

43、是从为了叙述的方便,我们还是从1NF、2NF、3NF、BCNF顺序来介绍。顺序来介绍。 土铭澳淡渍诛屿珐咙挣液秘赊杯六兢箱欣幕剪杯埋郊告铰罩衡教阴济健衰第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024364.4.1 第一范式(第一范式(1NF)n定义定义4.13 如果关系模式如果关系模式R的每个关系的每个关系r的属性值都的属性值都是不可分的原子值,那么称是不可分的原子值,那么称R是第一范式(是第一范式(first normal form,简记为,简记为1NF)的模式。)的模式。n满足满足1NF的关系称为规范化的关系,否则称为非规的关系称为规范化的关系,否则称为非规范化

44、的关系。关系数据库研究的关系都是规范化的范化的关系。关系数据库研究的关系都是规范化的关系。例如关系模式关系。例如关系模式R(NAME,ADDRESS,PHONE),如果一个人有两个电话号码),如果一个人有两个电话号码(PHONE),那么在关系中至少要出现两个元组,),那么在关系中至少要出现两个元组,以便存储这两个号码。以便存储这两个号码。n1NF是关系模式应具备的最起码的条件。是关系模式应具备的最起码的条件。 锅卑醉钳师义熊孤辆楔瓣为久沦柱疲寥热攻瓮伍源掩识戍闸港彼儿馅魁蜂第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202437满足第一范式的满足第一范式的(不好的不好的)

45、关系模式的例子关系模式的例子 例例4:设有一关系:设有一关系R(S#,C#,G,TN,D),其中其中(S#)为学号,为学号,C#为课程号,为课程号,G为成绩,为成绩,TN为为任课教师姓名,任课教师姓名,D为教师所在系名,这些数据具有为教师所在系名,这些数据具有下列语义:下列语义:(1) 学号是一个学生的标识,课程号是一门课程的标学号是一个学生的标识,课程号是一门课程的标识。识。(2) 一位学生所修的每门课程都有一个成绩。一位学生所修的每门课程都有一个成绩。(3) 每门课程只有一位任课教师,但一位教师可以教每门课程只有一位任课教师,但一位教师可以教多门课。多门课。(4) 教师中没有重名,每位教师

46、只属于一个系。教师中没有重名,每位教师只属于一个系。茨睫阎当荔俘轰伐鸟醉峡拧弛挑颈丝翘侨时概尖染哀韶肘刃陋戈丫贫压卸第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202438下面是一个具体实例:S#C#GTNDs1c1g1t1d1s1c2g2t2d2s2c1g3t1d1s2c2g4t2d2s3c2g5t2d2s3c3g6t2d2 学号学号 课程号课程号 成绩成绩 教师教师 系名系名夫宽磋坷寿屁潭阿汁赃瞥彝喉锹赛钮优淡曙鲁蓟荫努操颊轰江漱镑凭罚歪第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202439 虽然上述的关系模式只有四个属性,但在使用过程中有以下

47、几个问题: (1) 数据冗余。例如,教师所在系名对选该教师所开课的所有学生都重复一次。 (2) 插入异常。由于关系的主键S#, C# 不能为空值,如果一个教师不教课,则这位教师的姓名及所属的系名就不能插入表中。惭防打浆叔胶健窄忘饱填嚏汰垫化凹瓢肖枣檬腐操掀省灼拼邹锥兴赛唾研第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202440 (3) 删除异常。如果所有学生都退选某一门课,则有关该门课的其它数据(任课教师名及所在系名)也将被删除。 (4) 修改异常。例如,如果改变一门课的任课教师,则需要修改表中的多行记录,如果部分修改,部分不修改,则会导致数据的不一致。 上述关系模式只

48、所以是一个不好的关系模式,是因为模式中存在部分函数依赖和传递函数依赖。消除这些部分函数依赖和传递函数依赖,就可以得到一个比较好的关系模式。胎瘫孵浮觅言潍挚矛万庆简分雇匆速荚渔宋歇刚团焉骡眉蜜尹憎婉踪舒愈第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024414.4.2 第二范式(第二范式(2NF)(一)(一)n定义定义4.14 对于对于FD WA,如果存在,如果存在X W有有XA成立,那么称成立,那么称WA是局部依赖(是局部依赖(A局部依赖于局部依赖于W););否则称否则称WA是完全依赖。完全依赖也称为是完全依赖。完全依赖也称为“左部不左部不可约依赖可约依赖”。n定义定义

49、4.15 如果如果A是关系模式是关系模式R的候选键中属性,那的候选键中属性,那么称么称A是是R的主属性;否则称的主属性;否则称A是是R的非主属性。的非主属性。n定义定义4.16 如果关系模式如果关系模式R是是1NF,且每个非主属性,且每个非主属性完全函数依赖于候选键,那么称完全函数依赖于候选键,那么称R是第二范式是第二范式(2NF)的模式。如果数据库模式中每个关系模式)的模式。如果数据库模式中每个关系模式都是都是2NF,则称数据库模式为,则称数据库模式为2NF的数据库模式。的数据库模式。蔑寂帮雌评挤艺鸿谭郑霸许堪航寒酬浅烃己割岩麦茧琴胜赢悲铁拔梆祈登第4章关系数据库的规范化设计第4章关系数据库

50、的规范化设计7/25/2024424.4.2 第二范式(第二范式(2NF)(二)(二)例例4.14 设关系模式设关系模式R(S#,C#,GRADE,TNAME,TADDR)的属性分别表示学生学号、选修课程的编号、成绩、任课教的属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名和教师地址等意义。(师姓名和教师地址等意义。(S#,C#)是)是R的候选键。的候选键。 R上有两个上有两个FD:(:(S#,C#)(TNAME,TADDR)和)和C#(TNAME,TADDR),因此前一个),因此前一个FD是局部依赖,是局部依赖,R不是不是2NF模式。此时模式。此时R的关系就会出现冗余和异常现象。譬的

51、关系就会出现冗余和异常现象。譬如某一门课程有如某一门课程有100个学生选修,那么在关系中就会存在个学生选修,那么在关系中就会存在100个元组,因而教师的姓名和地址就会重复个元组,因而教师的姓名和地址就会重复100次。次。 如果把如果把R分解成分解成R1(C#,TNAME,TADDR)和)和R2(S#,C#,GRADE)后,局部依赖()后,局部依赖(S#,C#)(TNAME,TADDR)就消失了。)就消失了。R1和和R2都是都是2NF模式。模式。 阂舌鸦潦碍肺躇呢寝啥葫问描诸耗孩骏乳恩闻撬歹值咬着忽扶毒铣法价忿第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024434.4.

52、2 第二范式(第二范式(2NF)(三)(三)算法算法4.4 分解成分解成2NF模式集的算法模式集的算法设关系模式设关系模式R(U),主键是),主键是W,R上还存在上还存在FD XZ,并且,并且Z是非主属性和是非主属性和X W,那么,那么WZ就是就是一个局部依赖。此时应把一个局部依赖。此时应把R分解成两个模式分解成两个模式R1(XZ),主键是),主键是X;R2(Y),其中),其中Y=U-Z,主键仍是,主键仍是W,外键是,外键是X(REFERENCES R1)。)。利用外键和主键的联接可以从利用外键和主键的联接可以从R1和和R2重新得到重新得到R。如果如果R1和和R2还不是还不是2NF,则重复上述

53、过程,一直,则重复上述过程,一直到数据库模式中每一个关系模式都是到数据库模式中每一个关系模式都是2NF为止。为止。 硬偿兼赁苑呻旭没怎佯蠢盐咏做袜雏和伴淀头鬃苞宦明条非侠庞沮盯臀远第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202444例:是例:是1NF1NF但不是但不是2NF2NF的关系模式的关系模式设有关系模式如下:设有关系模式如下: REPROT( REPROT(S#,S#, C#,C#, TITLE, LNAME, ROOM#, MARKS), TITLE, LNAME, ROOM#, MARKS), 其中其中S#S#是学号,是学号,C#C#是课程号,是课程号,T

54、ITLETITLE为课程名,为课程名,LNAMELNAME是教是教师名,师名,ROOM#ROOM#是教室号,是教室号,MARKSMARKS是分数。是分数。 关系中的一个元组关系中的一个元组表示学生表示学生s s在在课程课程c c中的得分为中的得分为m m,课程名为,课程名为t, t, 由教师由教师 l l 讲授,其教室讲授,其教室编号为编号为r r。 若每门课只由一位教师讲授,每位教师只有一个教室,若每门课只由一位教师讲授,每位教师只有一个教室,即只在一个教室中讲课,则即只在一个教室中讲课,则REPORTREPORT的函数依赖如下:的函数依赖如下:(S#, C#) (S#, C#) MARKS

55、MARKSC# C# TITLETITLEC# C# LNAMELNAMELNAME LNAME ROOM#ROOM#臃沟苟绳驾剩谗拌骋钻报土塞组帽镣碎泌父鹿氏嫉减秧讯怒挺皂皿呛诡漠第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202445 关系模式REPROT(S#, C#, TITLE, LNAME, ROOM#, MARKS)的码是(S#, C#),非主属性TITLE,LNAME 和 ROOM# 对码是部分函数依赖,并存在传递函数依赖C# LNAME,LNAME ROOM#。REPORT属于1NF,不属于2NF。 S#C#MARKSTITLELANMEROOM#图图5

56、-35-3覆窘疗起插队弦卞幢坠杉疼疫纯食鳖庄艾旁渴梳并幽丙羊顶讯明洛灵欢夫第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202446消除部分函数依赖 为消除部分函数依赖,将REPORT关系模式分解为REPORT1和COURSE这二个关系模式: REPORT1(S#, C#, MARKS) 函数依赖是(S#, C#) MARKS COURSE(C#, TITLE, LNAME, ROOM#) 函数依赖是C# TITLE, C# LNAME, LNAME ROOM#。 REPORT1和COURSE都消除了对码的部分函数依赖,因此都属于2NF。肆炮坯分幸躯搞臀砂藐饼族狮薯蹿妒玫加

57、焉流俗咕捎髓做但吻秀娟帐好虏第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202447 一个关系模式仅仅满足一个关系模式仅仅满足2NF仍是不够的,仍是不够的,如在关系模式如在关系模式COURSE (C#, TITLE, LNAME, ROOM#)中,仍存在着插入,删中,仍存在着插入,删除和修改异常问题:除和修改异常问题:n新来的教师,还没有分配授课之前,教师新来的教师,还没有分配授课之前,教师的姓名及教室编号都不能加到关系模式中;的姓名及教室编号都不能加到关系模式中;n如果要修改教室编号,必须修改与教师授如果要修改教室编号,必须修改与教师授课相对应的各元组中的教室编号,因为

58、一课相对应的各元组中的教室编号,因为一位教师可能会教多门课。位教师可能会教多门课。 存在上述这些问题的原因是关系模式存在上述这些问题的原因是关系模式COURSE中存在中存在传递函数依赖传递函数依赖,所以要把关,所以要把关系模式系模式COURSE向第三范式转化,除去非主向第三范式转化,除去非主属性对码的传递函数依赖。属性对码的传递函数依赖。警隆砍沙驼程瓦淡眶挟娄栓口鼎摸示处滞册侩践砍悸走伸材凭探缕乳必替第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024484.4.3 第三范式(第三范式(3NF)(一)(一)n定义定义4.17 如果如果XY,YA,且,且YX和和 A Y,那

59、么称,那么称XA是传递依赖(是传递依赖(A传递依赖传递依赖于于X)。)。n定义定义4.18 如果关系模式如果关系模式R是是1NF,且每个非,且每个非主属性都不传递依赖于主属性都不传递依赖于R的候选键,那么称的候选键,那么称R是第三范式(是第三范式(3NF)的模式。如果数据库模)的模式。如果数据库模式中每个关系模式都是式中每个关系模式都是3NF,则称其为,则称其为3NF的数据库模式的数据库模式 。多帕唁定囤蚁襟敢效桂绵辐晕姥叔孟碎腺询楚酮喊娄肝累膏恭臀秘懒卉廊第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024494.4.3 第三范式(第三范式(3NF)(二)(二)n例例4

60、.15 在例在例4.14中,中,R2是是2NF模式,而且也已是模式,而且也已是3NF模式。但模式。但R1(C#,TNAME,TADDR)是)是2NF模式,却不一定是模式,却不一定是3NF模式。如果模式。如果R1中存在函数依中存在函数依赖赖C#TNAME和和TNAMETADDR,那么,那么C#TADDR就是一个传递依赖,即就是一个传递依赖,即R1不是不是3NF模模式。此时式。此时R1的关系中也会出现冗余和异常操作。譬的关系中也会出现冗余和异常操作。譬如一个教师开设五门课程,那么关系中就会出现五如一个教师开设五门课程,那么关系中就会出现五个元组,教师的地址就会重复五次。个元组,教师的地址就会重复五

61、次。n如果把如果把R2分解成分解成R21(TNAME,TADDR)和)和R22(C#,TNAME)后,)后,C#TADDR就不会出现就不会出现在在R21和和R22中。这样中。这样R21和和R22都是都是3NF模式。模式。 疵显弛诉指磁愧买葫搐蓬痕本捶丸酞孙暴哼快赵她致餐凑擦拍蛹窗拈乃盏第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024504.4.3 第三范式(第三范式(3NF)(三)(三)算法算法4.5 分解成分解成3NF模式集的算法模式集的算法设关系模式设关系模式R(U),主键是),主键是W,R上还存在上还存在FD XZ。并且。并且Z是非主属性,是非主属性,Z X,X

62、不是候选键,这样不是候选键,这样WZ就是一个传就是一个传递依赖。此时应把递依赖。此时应把R分解成两个模式:分解成两个模式:R1(XZ),主键是),主键是X;R2(Y),其中),其中Y=U-Z,主键仍是,主键仍是W,外键是,外键是X(REFERENCES R1)。)。利用外键和主键相匹配机制,利用外键和主键相匹配机制,R1和和R2通过联接可以重新得通过联接可以重新得到到R。如果如果R1和和R2还不是还不是3NF,则重复上述过程,一直到数据库,则重复上述过程,一直到数据库模式中每一个关系模式都是模式中每一个关系模式都是3NF为止。为止。 掐套帜融啪待椿枢观窗肆墙甄砖弟煌任咙上溺痔械忽额娘朋介糯狼傻

63、啃脉第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024514.4.3 第三范式(第三范式(3NF)(四)(四)n定理定理4.9如果如果R是是3NF模式,那么模式,那么R也是也是2NF模式。模式。n定理定理4.10 设关系模式设关系模式R,当,当R上每一个上每一个FD XA满足下列三个条件之一时:满足下列三个条件之一时:A X(即(即XA是一个平凡的是一个平凡的FD););X是是R的超键;的超键;A是主属性。关系模式是主属性。关系模式R就是就是3NF模式。模式。 拜据亦辩茨傅怕堡前墙辞叼斩品壹舅尊杠乓诛嘘嘻凭失矩啥瞻匈囊塑惦宇第4章关系数据库的规范化设计第4章关系数据库的

64、规范化设计7/25/2024524.4.3 第三范式(第三范式(3NF)(五)(五)图4.15 违反3NF的传递依赖的三种情况 拌馆肚磨告每杀惠莆一虱娘迟怠牙獭御针尝喳匙安饰掷攻草召遏蛊圃幌蛤第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202453 在前面的例子中,关系模式:在前面的例子中,关系模式:COURSE(C#, TITLE, LNAME, ROOM#)COURSE(C#, TITLE, LNAME, ROOM#)其中存在非主属性其中存在非主属性ROOM#ROOM#对码的传递依赖,即:对码的传递依赖,即: C# C# LNAME, LNAME LNAME, LNA

65、ME ROOM# ROOM# ,因此因此COURSECOURSE不属于不属于3NF3NF。 将将COURSECOURSE分解为:分解为: COURSE1(C#, TITLE, LNAME) COURSE1(C#, TITLE, LNAME) 和和 LECTURE(LNAME, ROOM#), LECTURE(LNAME, ROOM#), 则关系模式则关系模式COURSE1COURSE1和和LECTURELECTURE中都没有传中都没有传递函数依赖,因此递函数依赖,因此 COURSE1 COURSE1 和和 LECTURE LECTURE 都属都属于于3NF3NF。雨洁剔测蘑岩氏违赏泪占雾捷班弛

66、武馆家敖坐吐矣貌牲烧翟罚匈币涧势若第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202454至此,关系模式REPORT分解为下列3个属于3NF的一组关系模式:REPORT1 (S#, C#, MARKS)COURSE1 (C#, TITLE, LNAME) LECTURE (LNAME, ROOM#)和关系模式REPORT相比,这些关系模式是对现实世界更加精确的描述。把这3个关系进行连接,总能重构初始的关系。公唬范笨萌兆蓝蒋埃毖玫诺雁奈昨嚼忘幻淤掀彭查驳缝繁槽惊溃屁肺驮街第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024554.4.4 BCNF(Bo

67、yceCodd NF)(一)(一)图图4.16 4.16 主属性对候选键的传递依赖主属性对候选键的传递依赖 彼契纳翰毁撇轮冀嘉瞄域矣疑屑晋恋敢挡宅逊蝎札婆雁种吕遣伟脾报赛铱第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024564.4.4 BCNF(BoyceCodd NF)(二)(二)n定义定义4.19 如果关系模式如果关系模式R是是1NF,且每个属性都不,且每个属性都不传递依赖于传递依赖于R的候选键,那么称的候选键,那么称R是是BCNF的模式。的模式。如果数据库模式中每个关系模式都是如果数据库模式中每个关系模式都是BCNF,则称,则称为为BCNF的数据库模式。的数据库

68、模式。n定理定理4.11 如果如果R是是BCNF模式,那么模式,那么R也是也是3NF模模式。式。n定义定义4.19 设设F是关系模式是关系模式R的的FD集,如果对集,如果对F中每中每个非平凡的个非平凡的FD XY,都有,都有X是是R的超键,那么称的超键,那么称R是是BCNF的模式。的模式。毕菱赶圃契法纯囤孰侮骇臣夕裴旅速警侗哺寸醚菠括削郭游躺赛拉园阵炒第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/2024574.4.5 分解成分解成BCNF模式集的模式集的算法算法算法算法4.6 无损分解成无损分解成BCNF模式集模式集对于关系模式对于关系模式R的分解的分解(初始时(初始时=

69、R),),如果如果中有一个关系模式中有一个关系模式Ri相对于相对于Ri(F)不)不是是BCNF。据定义。据定义4-20可知,可知,Ri中存在一个中存在一个非平凡非平凡FD XY,有,有X不包含超键。此时把不包含超键。此时把Ri分解成分解成XY和和RiY两个模式。重复上述过程,两个模式。重复上述过程,一直到一直到中每一个模式都是中每一个模式都是BCNF。 肛铁服破耍绘驻逾卉滦么峪挪西靳馅莉杨撅头课镶凋茁旱泳霖獭剃俐馆叉第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202458例:一个是3NF但不是BCNF的关系模式 设有关系模式STJ(S, T, J),S表示学生,T表示教师

70、,J表示课程。每一教师只教一门课,每门课有若干教师,某一学生选定某门课,就对应一个固定的教师,由语义可得到如下的函数依赖。(S, J) T; (S, T) J; TJ, 即n学生,所选课程决定授课教师;n学生,授课教师决定所选课程;n教师决定所授课程;如下图所示:弛阉拯呵馆总堕帝你豁忆踪乒享谰数孪颂惧业赞夸寸异照郑褂搪却余端左第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202459n则(S,J),(S,T)都是候选码;S,T,J都是主属性。nSTJ 3NF,因为没有任何非主属性对候选码的传递依赖或部分依赖。nSTJBCNF,因为主属性J传递函数依赖于候选码S,J。SJTS

71、TJ图图 STJ中的函数依赖帧愤赤弘穴缘胶彭傀荫巨往峡寻巡彼适为糯毯及繁上奥失槐乾蔷汗诣雪诌第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202460模式设计示例模式设计示例例:学生基本情况的关系模式:STUDENT(SNO,SNAME,AGE,SEX,CLASS,DEP,CNO,CNAME,GRADE,SCORE)该关系模式的函数依赖集F= SNOSNAME,SNOAGE,SNOSEX,SNOCLASS,SNODEP,CLASSDEP,CNOCNAME,CNOSCORE,SNO+CNOGRADE 该模式的码是(SNO, CNO)该模式是属于1NF:满足的条件是元组的每个分

72、量必须是不可分的数据项。不是一个好的关系模式。同学自己分析为什么是一个不好的关系模式?独柞垃颈筛株拄滞谦借锚娶锡洒宠深褐讯栗活富肆庚丰闭孟瑟靴厅肥氖丑第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202461修改设计使其满足第二范式修改设计使其满足第二范式2NF关系模式STUDENT不符合2NF要求。因为其中存在部分函数依赖。n 关系模式STUDENT的主码是(SNO,CNO)。n 非主属性SNAME,AGE,SEX,CLASS,DEP,CNAME,GRADE,SCOREn 非主属性中存在对码的部分函数依赖,如,SNOSNAME,CNOCNAME。犬牌叉册蜒糯篮翔削矣涵矾完

73、纳甜奸疙抬蚂染渺尸欺伤渡寿朴认置驶馆坐第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202462消除部分函数依赖消除部分函数依赖 将STUDENT关系模式分解,消除部分函数依赖,得到三个关系模式符合2NF要求:nSTUDENT2(SNO,SNAME,AGE,SEX,CLASS,DEP)nCOURSE(CNO,CNAME,SCORE)nSC(SNO,CNO, GRADE) 在STUDENT2模式中,仍然存在数据冗余,以及插入和删除异常。搁柏棋箭颊蔡娄全郸汉枫高付穿道仇厌躁去邮掂弧卯滨卧当裤舷屏靠鹊邀第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202463

74、修改设计使其满足第三范式修改设计使其满足第三范式3NF关系模式STUDENT2不满足第三范式要求,存在传递依赖。如SNOCLASSDEP,消除传递依赖,分解STUDENT2如下:nSTUDENT3(SNO,SNAME,AGE,SEX,CLASS)nCLASS(CLASS,DEP)玫砷殿猫俄笛来乏返假扶卢尤负手仰牙藕暮矽钵罢苹陈犊灯臃沃涡渝鹊雷第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202464满足第三范式要求满足第三范式要求至此,关系模式STUDENT 分解为4个3NF的关系模式:nSTUDENT3(SNO,SNAME,AGE,SEX,CLASS)nCLASS(CLA

75、SS,DEP)nCOURSE(CNO,CNAME,SCORE)nSC(SNO,CNO, GRADE)锥栓琐坯履努怎期今沉潦柏汽摹浚斤噬蔷恰撕味昭剔蜀展胯揣队躬匿吭氖第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202465修改设计使其满足修改设计使其满足BCNF范式范式例如,关系模式课程COUSE(CNO,CNAME,SCORE),n只有一个码CNO,没有任何属性对码有部分和传递函数以来,所以COUSE 3NF。n 同时,COUSE中CNO是唯一的决定因素,因此COUSE BCNF。层峦几翱额拼南遇贿箔芍特护诚名佣滔漫烦裴龚羌鸣卞岗冷门形罪坊堆汛第4章关系数据库的规范化设计

76、第4章关系数据库的规范化设计7/25/202466模式分解习题模式分解习题设有关系模式R(U, F), 其中 U=A,B,C,D,E ,F = AB C,B D,D E,C B ,试问R最高为第几范式,并解释原因?如果R不是 3NF 或 BCNF,要求将其分解为 3NF 和BCNF。樟蘑濒酞的釉着忱奥惑虐尉她谆追逆鼓疆立丝泳签墓米像喉果赎浅渐尤大第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202467关系关系R中的函数依赖如下图表中的函数依赖如下图表示示R (A,B,C,D,E): A,B C;B D;D E;C B ABCDE候选键:候选键:(A,B)和和(A,C)候选

77、键是什么?候选键是什么?能够唯一标识一个元组的某一属性或属性组。能够唯一标识一个元组的某一属性或属性组。耶假铲轧墅椎寝腥们沫走幕讨品兽镣镐姑拄酿只豆浊根亏莆渣盈桑酉哭肌第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202468是否满足第一范式是否满足第一范式n第一范式规定关系的每一个分量必须是一个不可分的数据项。可以看出,该关系满足第一范式。可以看出,该关系满足第一范式。ABCDE叛膀潦沦余躲品技沮溢躇品学眺埃陆织烫懒您满嵌媳绕特甸兄再贞甭逃球第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202469是否满足第二范式是否满足第二范式n如果关系模式R满足第

78、一范式,且它的任何一个非主属性都完全函数依赖于任一个候选码,则R满足第二范式(简记为2NF)。ABCDER (A,B,C,D,E) : A,B C;B D;D E;C B 所以不是第二范式所以不是第二范式蛤推酿英歹画嚼凛驴溉余门宫嫩集棍惧傍链芋爽术魂黑脚优奖籽韭镀脊贴第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202470分解成第二范式分解成第二范式R1 (A,B,C):A,B C;C BR2 (B,D,E):B D;D E; ABCBDE拭馅佳腹量惕百此姻击吼遣翁屁蔽剖厘滚拜伙奋闸碌砰广徘蛛暑县荫汁耕第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/20

79、2471是否满足第三范式是否满足第三范式n如果关系模式R满足 2NF,并且它的任何一个非主属性都不传递依赖于任何候选码,则称R是第三范式 (3NF), 记作R3NF。ABCBDER1 (A,B,C) :A,B C;C BR2 (B,D,E): B D;D E;所以不是第三范式所以不是第三范式位交境恋人洼哉陀躁牙之萝踩辞仙婴例贡夜昆壕涎堡远铱瞻剪佰袖郭长敛第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202472分解成第三范式分解成第三范式R1(A,B,C) :A,B C;C BR21(B,D):B DR22(D,E):D EABCDDBE氢各颊蔬鹃草均洽敏潘勉陀舟警碧椎屹章

80、玄越屎嫌忻后档敛谬蓑轴蔗感肾第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202473是否满足是否满足BCNF范式范式n如果关系模式R是1NF,且每个属性都不传递依赖于R的候选码,那么称R是BCNF的模式。ABCDDBER1(A,B,C) :A,B C;C BR21(B,D):B DR22(D,E):D ER1R1中属性中属性B B传递依赖于传递依赖于R R的候选码的候选码ABAB,故,故R1R1不是不是BCNFBCNF范式范式橡午岸沸址隙圆腾疚绊瓣腕鸳凯卜疮婶忘茄姻谤父诽珠掷藉庙印呆养学伶第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202474是否满

81、足是否满足BCNF范式范式n关系模式R1NF,若XY,且YX 时,X必含有候选码,则RBCNF。 ABCDDBER1(A,B,C) :A,B C;C BR21(B,D):B DR22(D,E):D E R1 R1中中C C B B,且,且B B C C ,但,但B B不含有任何候选码,故不含有任何候选码,故R1R1不是不是BCNFBCNF范式范式弟洽伶帮泉楔莆耸蹿朵阅暑板毅戍铲梦粗淫蕉嘉磁绊鳞钙卸藻谚骤颁揖多第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202475分解成分解成BCNF范式范式ABCDDBER1 :A,B C;C BR21:B DR22:D EACBDDBE

82、R11 :A,B R12 :C BR21:B DR22:D EB瘪迁精瓢基廊汉胁桓没答遍事谦遮尽际警孤憨修拯记免疹鳞恤撇徐痢奶灌第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202476小小 结(一)结(一)n本章讨论如何设计关系模式问题。关系模式设计得本章讨论如何设计关系模式问题。关系模式设计得好与坏,直接影响到数据冗余度、数据一致性等问好与坏,直接影响到数据冗余度、数据一致性等问题。要设计好的数据库模式,必须有一定的理论为题。要设计好的数据库模式,必须有一定的理论为基础。这就是模式规范化理论。基础。这就是模式规范化理论。n在数据库中,数据冗余是指同一个数据存储了多次,在

83、数据库中,数据冗余是指同一个数据存储了多次,由数据冗余将会引起各种操作异常。通过把模式分由数据冗余将会引起各种操作异常。通过把模式分解成若干比较小的关系模式可以消除冗余。解成若干比较小的关系模式可以消除冗余。灌辑甫剿拥逮啦相概尸参凤殿簇犁扮捆绿硼冻邮链洛茄揍橡助随梦酌斟爱第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202477小小 结(二)结(二)n函数依赖函数依赖XY是数据之间最基本的一种联系,在关是数据之间最基本的一种联系,在关系中有两个元组,如果系中有两个元组,如果X值相等那么要求值相等那么要求Y值也相等。值也相等。FD有一个完备的推理规则集。有一个完备的推理规则集

84、。n关系模式在分解时应保持关系模式在分解时应保持“等价等价”,有数据等价和语,有数据等价和语义等价两种,分别用无损分解和保持依赖两个特征义等价两种,分别用无损分解和保持依赖两个特征来衡量。前者能保持泛关系在投影联接以后仍能恢来衡量。前者能保持泛关系在投影联接以后仍能恢复回来,而后者能保证数据在投影或联接中其语义复回来,而后者能保证数据在投影或联接中其语义不会发生变化,也就是不会违反不会发生变化,也就是不会违反FD的语义。但无损的语义。但无损分解与保持依赖两者之间没有必然的联系。分解与保持依赖两者之间没有必然的联系。该橇汤德雇冠颤救官肉织咸惧枝议函阑砖陡限巧认抬搜粗犊纯乏谦座晶盟第4章关系数据库

85、的规范化设计第4章关系数据库的规范化设计7/25/202478小小 结(三)结(三)n范式是衡量模式优劣的标准,范式表达了模范式是衡量模式优劣的标准,范式表达了模式中数据依赖之间应满足的联系。如果关系式中数据依赖之间应满足的联系。如果关系模式模式R是是3NF,那么,那么R上成立的非平凡上成立的非平凡FD都都应该左边是超键或右边是非主属性。如果关应该左边是超键或右边是非主属性。如果关系模式系模式R是是BCNF,那么,那么R上成立的非平凡的上成立的非平凡的FD都应该左边是超键。范式的级别越高,其都应该左边是超键。范式的级别越高,其数据冗余和操作异常现象就越少。数据冗余和操作异常现象就越少。抚逢坠狐

86、喧骋呕图彼占腮暴殆膜弘灰瞻惠阴棚疾陌罐慕距嘱闯押鲍摔隙挞第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202479小小 结(四)结(四)n分解成分解成BCNF模式集的算法能保持无损分解,模式集的算法能保持无损分解,但不一定能保持但不一定能保持FD集。而分解成集。而分解成3NF模式集模式集的算法既能保持无损分解,又能保持的算法既能保持无损分解,又能保持FD集。集。n关系模式的规范化过程实际上是一个关系模式的规范化过程实际上是一个“分解分解”过程:把逻辑上独立的信息放在独立的关系过程:把逻辑上独立的信息放在独立的关系模式中。分解是解决数据冗余的主要方法,模式中。分解是解决数据冗

87、余的主要方法,也是规范化的一条原则:也是规范化的一条原则:“关系模式有冗余问关系模式有冗余问题就分解它题就分解它”。首敲砖喇袁灼硫沂莱守涯梨饥辱剐波孟棉朝己喉住干驯悍茸偏芳讹饼眠匀第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202480本章的重点篇幅本章的重点篇幅 (1)教教材材中中P148的的例例4.13。(无无损损联联接接和和保保持持FD的例子)的例子)(2)教材中)教材中P149的例的例4.14和和P150的例的例4.15。(分解成(分解成2NF和和3NF的例子)的例子) 涉措赂抗人匆厦前汇怔你笼崩御驾芥脯牛鲍讥斡零稀肖质摇烦摈籍铜臼铸第4章关系数据库的规范化设计第4章关系数据库的规范化设计7/25/202481

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号