当前位置:文档之家› 第5章-关系数据库的模式设计习题解答

第5章-关系数据库的模式设计习题解答


第5章关系数据库的模式设计
习题解答
一. 简答题
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;
将R2分解为:R21(B,D) BCNF,R22(D,E) BCNF。

2. 下面的结论哪些是正确的哪些是错误的简单说明理由。

(l)任何一个二目关系是属于3NF的(正确)
设任何一个二目关系为R(A,B),现分二种情况进行讨论:
a)若关系R中A或B为键码,不妨设A为键码,则F={A B}。

根据第二范式和第三范式的定义,显然R3NF。

)
b)若关系R中(A,B)为键码,则F={(A,B)(A,B)}。

根据第二范式和第三范式的定义,显然R3NF。

综上所述,任何一个二目关系是属于3NF的。

(2)任何二个二目关系是属于 BCNF的(正确)
设任何一个二目关系为R(A,B),现分二种情况进行讨论:
a)若关系R中A或B为键码,不妨设B为键码,则F={B A}。

根据BC范式的定义,显然R BCNF。

b)若关系R中(A,B)为键码,则F={(A,B)(A,B)}。

根据BC范式的定义,显然R BCNF。

综上所述,任何一个二目关系是属于BCNF的。

)
(3)任何一个二目关系是属于4NF的(正确)
设任何一个二目关系为R(X,Y),如果X Y(即X、Y之间存在平凡的多值依赖),则R4NF。

(4)X是R的码,那么关系模式R是3NF的(错误)
假设有关系S(X,A,B),函数依赖F={X A,A B},由于B传递函数依赖于X,所以R3NF。

(5)只有一个候选码的3NF关系模式,也必是 BCNF的(正确)

如果R是只有一个候选码的3NF关系模式,则关系模式R必定具有以下形式:
R(K,A1,A2,……,An),F={K A1, K A2, ……,K An}
根据BC范式的定义,显然R BCNF。

(6)由全部属性组成码的关系模式是3NF的,也是 BCNF的(正确)
根据第(1)、(2)小题中情况(b)的证明方法,可以同理得到结果。

(7)若 X→→Y在 W(W U)上成立,则在 U上也一定成立(错误)

多值依赖的有效性与属性集的范围有关。

若X→→Y在U上成立则在W(XY W U)上成立,反之则不然。

例如在关系模式CTB(课程,教师,参考书)中,我们已经分析过有
课程→→教师,课程→→参考书
但如果我们扩展该关系模式,加入属性学生,则上述两个多值依赖值都不再成立。

这是因为上述两个多值依赖是针对论域(课程,教师,参考书)而言的,当论域变为(课程,教师,参考书,学生)时,有关属性的值之间的关系已不再满足多值依赖的定义。

3. 已知一关系模式:借阅(借书证号,姓名,所在系,书号,借书日期),要求:
(l)请给出你认为合理的数据依赖;
F={借书证号姓名,借书证号所在系,(借书证号,书号)借书日期}
借阅关系的键码为:(借书证号,书号)。

{
(2)该模式是第几范式请证明;
由于姓名部分函数依赖于(借书证号,书号),故借阅2NF,显然借阅1NF。

(3)将它分解成3NF的关系模式。

根据模式分解的方法,可将借阅关系分解为:R1(借书证号,姓名,所在系)3NF,R2(借书证号,书号,借书日期)3NF。

4.在一订货系统数据库中,有一关系模式如下:
~
订货(订单号,订购单位名,地址,产品型号,产品名,单价,数量)
要求:
(l)给出你认为合理的数据依赖;
F={订单号订购单位名,订单号地址, 产品型号产品名, 产品型号单价, (订单号,产品型号)数量}
(2)给出一组满足第三范式的关系模型。

先画出一下函数依赖图:
然后进行如下投影分解:
R1(订单号,订购单位名,地址) 3NF R2(产品型号,产品名,单价) 3NF
R3(订单号,产品型号,数量) 3NF。

相关主题