考虑以下关于关系模式r(A,B,C,D,E,F)的函数依赖性集F:

时间:2011-02-19 14:22:45

标签: functional-dependencies database-theory

我试图向我的导师伸出手,没有运气,我真的很想了解这个过程,但不管我读了多少材料,我似乎无法让这个适合我的小脑。有人可以帮我解决以下问题吗?

A-->BCD
BC-->DE
B-->D
D-->A
  

一个。计算B +。

我相信这一个如下。这看起来是否正确?

B +表示关闭B.
B - > d
B + = {BD}
D - >一个
B + = {ABD}
A - > BCD
B + = {ABCD}
BC - > DE
B + = {ABCDE}

关系的所有属性都可以通过B找到。因此,B是关系的主键。

  

湾证明(使用阿姆斯特朗的公理)AF是一个超级钥匙。

我不明白如何处理F,因为它没有出现在上述关系中。

  

℃。计算上述功能依赖关系F的规范封面;给出你的推导的每一步都有一个解释。

     

d。根据规范封面给出3的3NF分解。

3 个答案:

答案 0 :(得分:1)

  

关系的所有属性都可以   由B找到。所以,B是主要的   关系的关键。

没有。如果B可以确定关系的所有属性,则B将是候选关键字。可能存在多个候选键,并且没有正式理由将一个候选键标识为“主要”而其他候选键标识为“次要”。

但是B并不确定关系的所有属性。它不确定F.

  

我不明白如何处理F,   因为它没有出现在   以上关系。

非正式地说,如果一个属性没有出现在任何功能依赖的右侧,它必须是每个超级密钥的一部分。

r = {ABCDEF}

要证明AF是超级键(或候选键),请计算关系R = {ABCDEF}的AF闭包。使用上面相同的FD。

答案 1 :(得分:1)

C部分:规范封面

A->BCD, BC->DE, B->D, D->A
  1. 从BC-> DE

    中删除D.

    A-> BCD,BC-> E,B-> D,D-> A

  2. 从A-> BCD中删除D

    A-> BC,BC-> E,B-> D,D-> A

  3. 分解A-> BC

    A-> B,A-> C,BC-> E,B-> D,D-> A

  4. 从BC-> E中删除C

    ? : B-> D-> A-> C => B-> C => B-> BC-> E => B-&GT,E 的 ? :B + :: B-> BD-> ABD-> ABCD-> ABCDE(E是B +的元素) A-> B,A-> C,B-> E,B-> D,D->

答案 2 :(得分:0)

1将每个FD减少到右边的单个att:

A-> B A-> C A-D BC - > D BC - > E B-> D D-> A

2删除无关的atts:

BC - > D减少到B-> D和BC-> E减少到B-> E,因为C在两者中都是无关的。

3删除冗余FD:

A-> B,A-> C,B-> D,B-> E,D-> A

如果我错了,有人会纠正我的答案。