0

我在这里处理另一个问题,它要求提供候选键和超级键。我相信我有正确的候选键,但如果有人可以验证那会很棒。我也很难找到超级键。我不知道是否有一个通用公式可以找到它们或诸如此类。

这是问题:

Relation Schema: U(A,B,C,D)

FD's: 

A-->B

B-->C

C-->D

D-->A

我发现候选键是:{A}、{B}、{C}、{D}。如果有人可以验证这是否正确,我将不胜感激。另外,如果您能让我知道如何找到它的超级键,那就太好了。我不是直接寻找答案,我只是想知道我对候选键的回答是否正确以及如何找到这个问题和可能的其他问题的超级键(如果有一种通用的方法可以找到它们)。

希望有人可以提供帮助。一旦有人帮助我解决这个问题,就会评价最佳答案。

大家加油。

4

1 回答 1

0

让我解释一下如何以简单的方式找到候选键:

形成左、右、中三列

在左栏中,添加仅出现在FD左侧的属性

在右栏中,添加仅出现在FD右侧的属性

在中间列中,添加出现在 FD 左右两侧的属性

解释:

左栏的属性表示,每个可能的候选键都必须包含这些属性

右列的属性表示候选键不应包含它

中间的属性可能包含在超级键中,也可能不包含在超级键中

在给定的示例中,所有属性都在中间列下

然后,应用Closure 属性

A+=ABCD

自从

A->A反身性规则

A->B给定

A->C传递性规则A->B 和 B->C

A->D传递性规则A->B and B->C and C->D

同样,我们也可以将其他键显示为候选键。

超级键不过是候选键和非主属性的超集

因此,你的答案是正确的

而这个关系的超级键是候选键的超级集,因此

超级键是ABACABC等。

希望这可以帮助。

于 2015-05-10T09:27:59.303 回答