练习1•设有关系R(W,X,Y,Z),•F={X→Z,WX→Y}。•试求下列问题:(1)关系R属于第几范式?(2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。•解:R是1NF。•侯选码为WX,则Y,Z为非主属性,•又由于X→Z,•因此F中存在非主属性对•侯选码的部分函数依赖。•将关系分解为:•R1(W,X,Y),F1={WX→Y}•R2(X,Z),F2={X→Z}•消除了非主属性对码的部分函数依赖。•F1和F2中的函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNFWXYYZY练习2•设关系模式R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名、任课教师地址等意义。如果规定,每个学生每学一门课只有一个成绩;每门课只有一个教师任教;每个教师只有一个地址(此处不允许教师同名同姓)。(1)试写出关系模式R的候选码,主属性和非主属性。•(2)试写出关系模式R基本的函数依赖。•(3)并把R分解成2NF模式集,同时说明理由。•(4)在第2NF基础上把R分解成3NF模式集,同时说明理由。•(1)候选码为:S#+C#•主属性:S#,C#非主属性:GRADE,TNAME,TADDR•(2)函数依赖:•F={(S#,C#)→GRADE,C#→TNAME,TNAME→TADDR}(3)在模式R中,TNAME不完全依赖于键(S#,C#),因此需进行分解,可分解为下列两个关系。SC={S#,C#,GRADE}C={C#,TNAME,TADDR}分解后,SC中,GRADE完全依赖于侯选键(S#,C#),在C中,主属性是C#,TNAME、TADDR均完全依赖于C#。因此,该分解符合2NF模式。•(4)按上述已分好的两个模式,SC中已满足“每个非主属性都不传递于R的候选键”,已是3NF,而在C中,C#→TNAME,TNAME→TADDR,TADDR传递依赖于C#,因此还需分成两个模式:CT(C#,TNAME),T(TNAME,TADD)。分解后,总共有SC={S#,C#,GRADE},CT(C#,TNAME),T(TNAME,TADD)三个模式。该分解符合3NF模式。练习3•设有表R(车间名,产品型号,产品名,单价)•若有如下事实:一个车间只能生产一种型号的产品,同一型号的产品可以在多个车间同时生产;同一名称的产品可有多种型号,某一型号的产品只能有一个名称;某一型号的产品只有一种单价,不同型号的产品可以有相同的单价。•试回答下列问题:•(1)根据上述规定,写出关系模式R的基本函数依赖;•(2)找出关系模式R的候选码;•(3)关系模式R最高已经达到第几范式?为什么?•(4)如果R不属于3NF,请将R分解为3NF模式集。•(1)函数依赖:•车间名产品型号产品型号产品名产品型号单价•(2)R的候选码是车间名。•(3)R中不存在非主属性对主属性的部分函数依赖,所以R属于第二范式,又由于R中存在非主属性产品名、单价对主属性的传递函数依赖,所以R不属于第三范式,因此R最高属于第二范式。•(4)将R分解为:•R1(车间名,产品型号)•R2(产品型号,产品型号,单价)练习4•设有表R(学号,系名,公寓楼号)•若有如下事实:一个系有多名学生;一名学生属于且仅属于一个系;同系的学生都住在同一栋楼内,不同系的学生住在不同的公寓楼。•试回答下列问题:•(1)根据上述规定,写出关系模式R的基本函数依赖;•(2)找出关系模式R的候选码;•(3)关系模式R最高已经达到第几范式?为什么•(4)如果R不属于3NF,请将R分解为3NF模式集•(1)有2个函数依赖:•学号系名系名公寓楼号•(2)R的候选码是学号。•(3)R中不存在非主属性对主属性的部分函数依赖,所以R属于第二范式,又由于R中存在非主属性公寓楼号对主属性的传递函数依赖,所以R不属于第三范式,因此R最高属于第二范式。•(4)将R分解为:•R1(学号,系名)•R2(系名,公寓楼号)练习5•已知关系模式R(A,B,C)上成立的FD集为F={A→B,C→B},设ρ={AB,AC},试分析分解ρ相对于F是否具有无损连接和保持函数依赖的性质?说出简单的理由。•(1)判断是否具有无损连接性•建立判断初始表:•ABCa1a2b13a1b22a3•R1(A,B)•R2(A,C)•由A→B修改初始表:•ABCa1a2b13a1a2a3•R1(A,B)•R2(A,C)•出现了一行a1,a2,a3,所以该分解具有无损连接性。•(2)F1={A→B}F2={}•令G=F1+F2因为G+F+,所以该分解不具有保持函数依赖的性质。练习6•现有如下关系模式:•R(A#,B#,C,D,E)其中:A#B#组合为码•R上存在的函数依赖有F={(A#,B#)→E,B#→C,C→D}•(1)该关系模式满足2NF吗?为什么?•(2)如果将关系模式R分解为如下两个关系模式:•R1(A#,B#,E)R2(B#,C,D)•指出关系模式R2的码,并说明该关系模式最高满足第几范式?(在1NF~BCNF之内)。•(3)将关系模式R分解到3NF范式。•(1)不满足,因为存在非主属性C对码的部分函数依赖。•(2)码为B#。最高为2NF,因为存在主属性D对码的传递函数依赖。•(3)R1(A#,B#,E)R2(B#,C)R3(C,D)。练习7•判断下列模式分别属于哪个范式(最高范式),并说明理由。•1、R({A,B,C},{(A,C)→B,C→B})•2、R({S#,SD,SL,SN},{S#→SD,S#→SN,S#→SL,SD→SL})•1、1NF关系的候选码为(A,C)。C→B说明存在对码的部分依赖。•2、2NF关系的码为S#,存在对码的传递函数依赖。练习9•指出下列关系模式是第几范式,说明理由。1)R(A,B,C),F={AB→C}.2)R(A,B,C),F={B→C,AC→B}.3)R(A,B,C),F={B→C,B→A,A→BC}.4)R(A,B,C),F={A→B,A→C}.5)R(A,B,C,D),F={A→C,AD→B}.练习9答案•1)BCNF,AB是唯一候选键,由于F中只有一个函数依赖AB→C,该函数依赖的左部包含R的候选键AB。由定义可知R是BCNF模式。•2)3NF.AB和AC是候选键,且R中所有属性都是主属性,因此R不存在部分函数依赖,也不存在非主属性对候选键的传递函数依赖。由定义可知R是3NF.•3)BCNF.A和B是候选键.4)BCNF.A是候选键.5)1NF.AD是候选键范式:综合例设有关系模式RU,FU={A,B,C,D,E}F={AB→C,B→D,C→E,EC→B,AC→B}•要讨论范式,首先确定码。R的候选码:AB,AC;主属性:A,B,C;非主属性:D,E。•RBCNF∵EC→B的决定因素EC不包含码。•R3NF∵存在非主属性E对码AB的传递依赖:ABC,CAB,CE,EC•R2NF∵存在非主属性D对码AB的部分依赖AB→D。•R1NFP范式:综合例(续)关系模式RU,FU={A,B,C,D,E}F={AB→C,B→D,C→E,EC→B,AC→B}•R的候选码:AB,AC。•R1NF。将R规范化(分解)为BCNF模式集:R1(A,B,C;AB→C,AC→B)BCNFR2(B,D;B→D)BCNFR3(B,C,E;C→E,EC→B)BCNF课堂练习1.设有关系模式R(A,B,C,D,E),R中属性均不可再分解,若只基于函数依赖进行讨论,试根据给定的函数依赖集F,分析R最高属于第几范式。(1)F={AB→C,AB→D,ABC→E}(2)F={AB→C,AB→D,AB→E}(1)R的候选码是ABC与ABE,R中存在非主属性D对候选码的部分函数依赖,因此R最高属于1NF;(2)R的候选键是AB,而F中每个函数依赖都是非平凡函数依赖,且左部都包含候选键AB,因此R属于BCNF;课堂练习(续)2、设有表R,如下图所示:学号系名公寓楼号1001数学SS011002数学SS011003数学SS012001外语SS033006设计SS023011设计SS02若有如下事实:一个系有多名学生;一名学生属于且仅属于一个系;同系的学生都住在同一栋楼内,不同系的学生住在不同的公寓楼,则:(1)R最高属于第几范式?为什么?(2)试举例说明R中存在的数据冗余和删除异常现象,并从函数依赖的概念出发,分析这些问题存在的原因。(3)将R分解为两个属于更高范式的关系模式,并分析分解后是否解决了上述存在的问题。•(1)由已知事实可知,R上存在函数依赖:学号→系名,系名→公寓楼号,公寓楼号→系名,所以R的键是学号。由于R中不存在非主属性对主属性的部分函数依赖,所以R属于2NF,又由于R中存在非主属性公寓楼号对主属性学号的传递函数依赖,所以R不属于3NF,因此R最高属于2NF;•(2)以题中的表为例,若要将数学系的楼号改为SS04,则对数学系所有学生的记录都要修改,而若将学号为2001的学生记录删除,则系名“外语”和楼号“SS03”也不复存在了,这些问题都是由于R中存在非主属性公寓楼号对主属性学号的传递函数依赖;•(3)可以将R分解为R1(学号,系名)R2(系名,公寓楼号),分解后的两个关系模式中均不再有数据冗余和删除异常现象。3、设有关系R和函数依赖F:R(W,X,Y,Z),F={X→Z,WX→Y}。试求下列问题:1)关系R属于第几范式?2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。•R是1NF.侯选码为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对侯选码的部分函数依赖。•将关系分解为:•R1(W,X,Y),F1={WX→Y}•R2(X,Z),F2={X→Z}•消除了非主属性对码的部分函数依赖。•F1和F2中的函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNF。4、假设某商业集团数据库中有一关系模式R如下:R(商店编号,商品编号,商品库存数量,部门编号,负责人)如果规定:(1)每个商店的每种商品只在该商店的一个部门销售;(2)每个商店的每个部门只有一个负责人;(3)每个商店的每种商品只有一个库存数量。试回答下列问题:(1)根据上述规定,写出关系模式R的基本函数依赖;(2)找出关系模式R的候选码;(3)关系模式R最高已经达到第几范式?为什么?(4)如果R不属于3NF,请将R分解为3NF模式集。(1)有3个函数依赖:(商店编号,商品编号)→部门编号(商店编号,商品编号)→商品库存数量(商店编号,部门编号)→负责人(2)R的候选码是(商店编号,商品编号)。(3)因为R中存在着非主属性“负责人”对候选码(商店编号,商品编号)的传递函数依赖,所以R属于2NF,R不属于3NF。(4)将R分解成:R1(商店编号,商品编号,商品库存数量,部门编号)R2(商店编号,部门编号,负责人)5、设关系模式R的属性集U={A,B,C,D,E},F={A→B,B→C,D→E}是R上的函数依赖集,ρ={R1(A,B,C),R2(A,D,E)}是R上的一个模式分解。(1)判断分解ρ是否具有无损连接性;(2)判断分解ρ是否具有函数依赖保持性。(1)ρ是具有无损连接性;(2)因为F在R1上的投影F1={A→B,B→C},F在R2上的投影F2={D→E},令G=F1∪F2=F,可得G=F,必有G+=F+,可见分解ρ是具有函数依赖保持性的。