[英]Finding Candidate Keys / Superkeys
我在这里处理另一个问题,它询问候选键和超级键。 我相信我有正确的候选密钥,但是如果有人可以验证那将是不错的选择。 我也很难找到超级键。 我不知道是否有找到它们的通用公式。
这是问题:
Relation Schema: U(A,B,C,D)
FD's:
A-->B
B-->C
C-->D
D-->A
我发现候选键为:{A},{B},{C},{D}。 如果有人可以验证这是否正确,我将不胜感激。 另外,如果您可以让我知道如何找到它的超级键,那将很棒。 我不是直接在寻找答案,我只是想知道我对候选键的答案是否正确,以及如何找到该键以及其他问题(如果有通用的查找方法)的超级键。
希望有人能帮忙。 一旦有人帮助我解决这个问题,它将给出最佳答案。
欢呼大家。
让我解释一下如何以一种简单的方式查找候选键:
形成三列, 左,右和中间
在左列中,添加仅出现在FD 左侧的属性
在右列中,添加仅出现在FD 右侧的属性
在中间一列,其中加在FD的右侧和左侧出现两个属性
说明:
左列的属性表示,每个可能的候选键都必须包含这些属性
和
右列的属性指示候选键不应包含它
和
中间键上的属性可以或可以不包含在超级键中
在给定的示例中,所有属性都位于中间列下
然后,应用Closure属性 ,
A + = ABCD
以来
A-> A 自反规则
给定 A-> B
A-> C 及物性规则 A-> B和B-> C
A-> D 及物性规则 A-> B和B-> C和C-> D
同样,我们也可以将其他键显示为候选键。
超级键不过是候选键和非素数属性的超集
因此,您的答案是正确的
这个关系的超级键是候选键的超集,因此
超级键是AB , AC , ABC等。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.