设关系模式R(U,F),其中R上的属性集U={A,B,C,D,E),R上的函数依赖集F={A→B,DE→B,CB→E,E→A,B→D)。(1)为关系R的候选关键字。分解(2)是无损连接,并保持函数依赖的。
空白(1)处应选择()
A.AB
B.DE
C.CE
D.DB
参考答案:C
解析:本题考查如何求解候选关键字和对模式分解知识的掌握。给定一个关系模式R(U,F),U={A,A,…,A),F是R的函数依赖集,若X=U,则X必为R的唯一候选关键字。对于试题(7),A选项(AB)=ABD≠U,所以AB非候选关键字;B选项(DE)=ABDE≠U,所以DE非候选关键字;C选项(CE)=ABCDE=U,,所以CE为候选关键字;D选项(DB)=BD≠U,所以DB非候选关键字。根据无损连接的判定算法,对选项A构造初始的判定表如下:由于A→B,DE→B,CB→E,E→A,B→D的决定因素中没有两行是相同的,因此选项A是有损连接的。对选项B构造初始的判定表如下:由于A→B,DE→B,CB→E,E→A,B→D的决定因素中没有两行是相同的,因此选项B是有损连接的。对选项C构造初始的判定表如下:由于A→B,属性A的第1行和第3行相同,可以将第1行b改为a;又由于B→D,属性B的第1行和第3行相同,而属性D第1行b和第3行b没有一行为a,因此改为同一符号,即取行号值最小的b。修改后的判定表如下:反复检查函数依赖集F,无法修改上表,所以选项C是有损连接的。对选项D构造初始的判定表如下:由于A→B,属性A的第1行和第3行相同,可以将第3行b改为a;E→A,属性E的第2行和第3行相同,可以将属性A第2行b改为a;AC→E,属性E的第2行和第3行相同,可以将属性E第1行b改为a:B→D,属性B的第1行和第3行相同,属性D第1行b和第3行b没有一行为a,因此改为同一符号,即取行号值最小的b。修改后的判定表如下:由于E→D,属性E的第1~3行相同,可以将属性D第1行b和第3行b改为a。修改后的判定表如下:由于上表第一行全为a,故分解无损。现在分析该分解是否保持函数依赖。若分解保持函数依赖,那么分解的子模式的函数依赖集。F=A→B,CB→A,F=E→D(根据Armstrong公理,系统传递依赖,E→A,A→B,B→D,所以E→D),F=E→A。可以求证F与(F+F+F)等价,即F=(F+F+F)=(A→B,CB→A,E→D,E→A),所以该分解保持函数依赖。