关系数据理论练习题及答案(详细完整版)
第一部分:
一、求最小依赖集
例:设有依赖集:F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG},计算与其等价的最小依赖集。
解:
1、将依赖右边属性单一化,结果为:
F1={AB→C,C→A,BC→D,ACD→B,D→E,D→G,BE→C,CG→B,CG→DCE→A,CE→G}
2、在F1中去掉依赖左部多余的属性。对于CE→A,由于C→A成立,故E是多余的;对于ACD→B,由于(CD)+=ABCEDG,故A是多余的。删除依赖左部多余的依赖后:
F2={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→G}
3、在F2中去掉多余的依赖。对于CG→B,由于(CG)+=ABCEDG,故CG→B是多余的。删除依赖左部多余的依赖后:
F3={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→D,CE→G}
CG→B与CD→B不能同时存在,但去掉任何一个都可以,说明最小依赖集不唯一。
二、求闭包
例:关系模式R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→I,E→C},计算(AE)+
解:令X={AE},X(0)=AE;
计算X(1);逐一扫描F集合中各个函数依赖,在F中出左边是AE子集的函数依赖,其结果是:A→D,E→C。于是X(1)=AEDC=ACDE;
因为X(0)X(1),且X(1)≠U,所以在F中出左边是ACDE子集的函数依赖,其结果是:CD→I。于是X(2)=ACDE∪I=ACDEI。
虽然X(2)X(1),但在F中未用过的函数依赖的左边属性已没有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI。
三、求候选键
例1:关系模式R(U,F),其中U={A,B,C,D},F={A→B,C→D},试求此关系的候选键。
解:首先求属性的闭包:
(A)+=AB,(B)+=B,(C)+=CD,(D)+=D
(AB)+=AB,(AC)+=ABCD=U,(AD)+=ABD,(BC)+=BCD,(BD)+=BD,(CD)+=CD
(ABD)+=ABD,(BCD)+=BCD,
因(AC)+=ABCD=U,且(A)+=AB,(C)+=CD,由闭包的定义,AC→A,AC→B,AC→B,AC→D,由合并规则得AC→ABCD=U;
由候选码的定义可得AC为候选码。
后选关键字的求解理论和算法
对于给定的关系R(A1,A2,…,An)和函数依赖集F,可将其属性分为四类:
L类:仅出现在F的函数依赖左部的属性;
R类:仅出现在F的函数依赖右部的属性;
N类:在F的函数依赖左右两边均未出现的属性;
LR类:在F的函数依赖左右两边均出现的属性。
定理1对于给定的关系模式R及其函数依赖集F,若X(X属于R)是L类属性,则X必为R的任一候选关键字的成员。
例1:关系模式R(U,F),其中U={A,B,C,D},F={A→B,C→D},试求此关系的候选键。
例2设有关系模式R(A,B,C,D),其函数依赖集F={D→B,B→D,AD→B,AC→D},求R的所有候选键。
推论对于给定的关系模式R及其函数依赖集F,若X(X属于R)是L类属性,且X+包含了R的全部属性,则X必为R的惟一候选关键字。
定理2对于给定的关系模式R及其函数依赖集F,若X(X属于R)是R类属性,则X不在任何候选关键字中。
例3关系模式R(U,F),其中U={A,B,C,D,E,P},F={A→B,C→D,E→A,CE→D},试求此关系的候选键。
定理3对于给定的关系模式R及其函数依赖集F,若X(X属于R)是N类属性,则X必为R的任一候选关键字的成员。
例4设有关系模式R(A,B,C,D,E,P),其函数依赖集F={A→D,E→D,D→B,BC→D,DC→A},求R的所有候选关键字
推论对于给定的关系模式R及其函数依赖集F,若X(X属于R)是N类和L类组成的属性集,且X+包含了R的全部属性,则X必为R的惟一候选关键字
四、关系模式规范化程度的判断(在BCNF内判断)
例5关系模式R(U,F),其中U={A,B,C,D},函数依赖集F={B→D,AB→C},试求R最高属于第几范式。
解:根据判定定理及推论得:AB必是候选码的成员,且(AB)+=ABCD=U,所以AB为候选码。则AB→D,又因B→D,存在非主属性对码的部分依赖,所以最高为1NF。
例6关系模式R(U,F),其中U={A,B,C,D,E},函数依赖集F={AB→CE,E→AB,C→D},试求R最高属于第几范式。
解:根据判定定理及推论得:属性D肯定不在候选码中,通过计算可得:
(AB)+=ABCDE=U,且(E)+=ABCDE=U,所以AB、E为候选码;
由于F中不存在部分依赖,故R至少属于2NF;
什么是关系数据库因AB→C,AB→E,C→D,存在非主属性对码的传递依赖,所以最高为2NF。
例7关系模式R(U,F),其中U={A,B,C},函数依赖集F={A→B,B→A,A→C},试求R最高属于第几范式。
解:根据判定定理及推论得:属性C肯定不在候选码中,通过计算可得:
(A)+=ABC=U,且(B)+=ABC=U,所以A、B为候选码;
由于候选码仅有一个属性,不存在部分依赖,故R至少属于2NF;
B→A,A→C,由于A→B,所以不存在非主属性对码的传递依赖,所以R也是3NF。
又因为F满足BCNF的定义,故R也是BCNF。
例8关系模式R(U,F),其中U={A,B,C},函数依赖集F={A→B,B→A,C→A},试求R最高属于第几范式。
解:根据判定定理及推论得:属性C肯定在候选码中,又因(C)+=ABC=U,所以C为候
选码;
由于候选码仅有一个属性,不存在部分依赖,故R至少属于2NF;
C→A,A→B,存在非主属性对码的传递依赖,所以R最高为2NF。
例9关系模式R(U,F),其中U={A,B,C,D},函数依赖集F={A→C,D→B},试求R最高属于第几范式。
解:根据判定定理及推论得:属性AD肯定在候选码中,又因(AD)+=ABCD=U,所以AD为候选码;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。