给定关系模式R(U,F),U={A,B,C,D,E,F},F={B→F,D→A,A→E, AE→B},那么属性A的闭包为(62),R的候选关键字为(63)。

admin2010-01-23  8

问题 给定关系模式R(U,F),U={A,B,C,D,E,F},F={B→F,D→A,A→E, AE→B},那么属性A的闭包为(62),R的候选关键字为(63)。

选项 A、ABD
B、ADE
C、ACD
D、CD

答案D

解析 求属性集的闭包可由下述算法推出:
   ①设X(0)=A。
   ②计算X(1)。逐一扫描F集合中的各个函数依赖,找左部是A的函数依赖,得到:A→E。令X(1)=X(0)∪A=AE,即把刚推导出的属性加入到X(1)中。
   ③由于X(1)≠X(0),因此再逐一扫描F集合中的各个函数依赖,找左部是AE的子集的那些函数依赖,得到A→E,AE→B。注意,AE是AE的子集。令X(2)=X(1)∪BE= ABE,即把刚推导出的属性加入到X(2)中。
   ④由于X(2)≠X(1),因此再逐一扫描F集合中的各个函数依赖,找左部是ABE的子集的那些函数依赖,得到B→F,A→E,AE→B。令X(3)=X(2)∪FEB=ABEF,即把刚推导出的属性加入到X(3)中。
   ⑤由于X(3)≠X(2),因此再逐一扫描F集合中的各个函数依赖,找左部是ABEF的子集的那些函数依赖,得到B→F,A→E,AE→B。令X(4)=X(3)∪FEB=ABEF。
   ⑥由于X(4)=X(3),因此算法到此为止,属性A的闭包为X(4),即ABEF。
   如果一个属性集能唯一标识元组,且不含有多余属性,那么这个属性集称为候选关键字。该题中,由于函数依赖集中的所有函数依赖式的两边都没有出现属性C,那么候选码中肯定有属性C,否则,不可能推导出整个属性组∪。又因为D→A,而A的闭包为ABEF即A→ABEF,所以,D→ABEF,进而D→ABDEF,于是,CD→ABCDEF,鉴于C、D都不能缺少(不管缺少哪一个都不能导出∪),所以CD是候选码。属性组ACD也能推导出整个属性组U,但是A是多余的,所以它不是候选码。
转载请注明原文地址:https://kaotiyun.com/show/YqxZ777K
0

相关试题推荐
最新回复(0)