习题解答
一. 简答题
1.理解并给出下列术语的定义:
函数依赖,部分函数依赖,完全函数依赖,传递函数依赖,键码、主键码、,外键码,全码,1NF,2NF,3NF,BCNF,多值依赖,4NF。
此处从略,详见书上。
2.各举一个属于1NF,2NF,3NF,BCNF和4NF的例子,并加以说明。 此处从略,详见书上。
二. 问答题
1. 设有关系模式 R(A,B,C,D,E),F={AB→C,B→D,D→E,C→B},要求: (l)通过闭包的计算来求出 R的所有键码,并说明该模式是哪一类范式?
+++++
单属性:A=A,B=BDE,C=BCDE,D=DE,E=E
+++++
双属性:AB=ABCDE,AC=ABCDE,AD=ADE,AE=AE,BC=BCDE,
+++++
BD=BDE,BE=BDE,CD=BCDE,CE=BCDE,DE=DE +++++
三属性:ABC=ABCDE,BCD=BCDE,CDE=BCDE,ADE=ADE,ABE=ABCDE,
+++++
ABD=ABCDE,BCE=BCDE,ACD=ABCDE,BDE=BDE,ACE=ABCDE
+++++
四属性:ABCD=ABCDE,BCDE=BCDE,ACDE=ABCDE,ABDE=ABCDE,ABCE=ABCDE
+
五属性:ABCDE=ABCDE R的所有键码是:AB,AC。
注:R的所有超键码是:ABC、ABE、ABD、ACD、ACE、ABCD、ACDE、ABDE、ABCE、ABCDE。 若选AB为主键码,由于D是部分函数依赖于AB,故R1NF。
(2)R分解为R1(A,B,C)和R2(B,D,E),请问该分解是否保持函数依赖?
R1的键码为AB和AC,F1={AB→C,C→B};R2的键码为B,F2={B→D,D→E}。因为F=F1∪F2,所以该分解保持函数依赖。
(3)指出R1和R2的范式等级,并给出证明。
因为R1没有非主属性,所以也不可能存在非主属性对键码的部分函数依赖和传递函数依赖,即:R13NF。又由于F1中有违例C→B,故R1BCNF。
因为D和E完全函数依赖于B,故R22NF。又由于E传递函数依赖于B,故R23NF。
(4)可否将R1和R2分解成若干个BCNF范式?写出分解结果。
根据模式分解的方法,可以将R1和R2分解成若干个BCNF范式,其具体的分解结果如下: 将R1分解为:R11(A,C) BCNF,R12(B,C) BCNF;
1
将R2分解为:R21(B,D) BCNF,R22(D,E) BCNF。
2. 下面的结论哪些是正确的? 哪些是错误的? 简单说明理由。 (l)任何一个二目关系是属于3NF的(正确)
设任何一个二目关系为R(A,B),现分二种情况进行讨论:
a)若关系R中A或B为键码,不妨设A为键码,则F={AB}。根据第二范式和第三范式的定义,显然R3NF。
b)若关系R中(A,B)为键码,则F={(A,B)(A,B)}。根据第二范式和第三范式的定义,显然R3NF。
综上所述,任何一个二目关系是属于3NF的。
(2)任何二个二目关系是属于 BCNF的(正确) 设任何一个二目关系为R(A,B),现分二种情况进行讨论:
a)若关系R中A或B为键码,不妨设B为键码,则F={BA}。根据BC范式的定义,显然RBCNF。
b)若关系R中(A,B)为键码,则F={(A,B)(A,B)}。根据BC范式的定义,显然RBCNF。
综上所述,任何一个二目关系是属于BCNF的。
(3)任何一个二目关系是属于4NF的(正确) 设任何一个二目关系为R(X,Y),如果XY(即X、Y之间存在平凡的多值依赖),则R4NF。
(4)X是R的码,那么关系模式R是3NF的(错误)
假设有关系S(X,A,B),函数依赖F={XA,AB},由于B传递函数依赖于X,所以R3NF。
(5)只有一个候选码的3NF关系模式,也必是 BCNF的(正确)
如果R是只有一个候选码的3NF关系模式,则关系模式R必定具有以下形式:
R(K,A1,A2,……,An),F={KA1, KA2, ……,KAn}
根据BC范式的定义,显然RBCNF。
(6)由全部属性组成码的关系模式是3NF的,也是 BCNF的(正确) 根据第(1)、(2)小题中情况(b)的证明方法,可以同理得到结果。
(7)若 X→→Y在 W(WU)上成立,则在 U上也一定成立(错误)
多值依赖的有效性与属性集的范围有关。若X→→Y在U上成立则在W(XYWU)上成立,反之则不然。例如在关系模式CTB(课程,教师,参考书)中,我们已经分析过有 课程→→教师,课程→→参考书
但如果我们扩展该关系模式,加入属性学生,则上述两个多值依赖值都不再成立。这是因为上述两个多值依赖是针对论域(课程,教师,参考书)而言的,当论域变为(课程,教师,参
2
考书,学生)时,有关属性的值之间的关系已不再满足多值依赖的定义。
3. 已知一关系模式:借阅(借书证号,姓名,所在系,书号,借书日期),要求: (l)请给出你认为合理的数据依赖;
F={借书证号姓名,借书证号所在系,(借书证号,书号)借书日期} 借阅关系的键码为:(借书证号,书号)。
(2)该模式是第几范式? 请证明;
由于姓名部分函数依赖于(借书证号,书号),故借阅2NF,显然借阅1NF。
(3)将它分解成3NF的关系模式。
根据模式分解的方法,可将借阅关系分解为:R1(借书证号,姓名,所在系)3NF,R2(借书证号,书号,借书日期)3NF。
4.在一订货系统数据库中,有一关系模式如下:
订货(订单号,订购单位名,地址,产品型号,产品名,单价,数量) 要求:
(l)给出你认为合理的数据依赖;
F={订单号订购单位名,订单号地址, 产品型号产品名, 产品型号单价,
(订单号,产品型号)数量}
(2)给出一组满足第三范式的关系模型。 先画出一下函数依赖图:
然后进行如下投影分解:
R1(订单号,订购单位名,地址) 3NF R2(产品型号,产品名,单价) 3NF R3(订单号,产品型号,数量) 3NF
3
因篇幅问题不能全部显示,请点此查看更多更全内容