以下哪项是规范封面

时间:2018-11-25 17:26:31

标签: database functional-dependencies

  

让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)也是规范封面吗?

1 个答案:

答案 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。