让R(A,B,C,D)为一个模式,让F = {C→A,B→C,BD→A,BC→D}为一组功能依赖项。以下哪项是F的规范封面:
a){C→A,B→CA,BC→D}
b){B→CAD}
c){C→A,B→CAD}
d){C→A,B→C,BC→D}
e){C→A,B→CD,D→A}
f){C→A,B→CD}
我们可以很容易地看到a)不是规范封面,因为它是多余的(我们不需要B→A)。关于c)也可以这样说。
选择e)不好,因为D→A不在F的结尾。
选择b)还不够,因为那样我们就不能得出C→A。
选择f)是一个很好的选择,因为它不是多余的,并且在逻辑上暗示了F中的所有内容。
我们还可以看到,对于规范封面来说,功能依赖项C→A,B→C,B→D是必需的。
选择d)怎么样?我可以看到它不是多余的,并且在逻辑上暗示了F中的所有内容,但是选择f)的功能依赖项数量较少。这是我的问题:d)也是规范封面吗?
答案 0 :(得分:1)
因为BC的属性C是多余的,所以情况d)不是规范的掩盖。如果您根据三个依存关系{C→A,B→C,BC→D}计算B +,则可以看出这一点:
B+ = B
B+ = BC (because of B → C)
B+ = BCD (because of BC → D)
因此B +包含D,并且可以消除属性C。