首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找候选密钥/超级密钥

查找候选密钥/超级密钥
EN

Stack Overflow用户
提问于 2015-05-07 18:47:24
回答 1查看 739关注 0票数 0

我正在做另一个问题,它要求候选键和超级键。我相信我有正确的候选密钥,但如果有人能证实这将是很好的。我也很难找到超级钥匙。我不知道是否有一个通用的公式来找到它们什么的。

以下是一个问题:

代码语言:javascript
复制
Relation Schema: U(A,B,C,D)

FD's: 

A-->B

B-->C

C-->D

D-->A

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

希望有人能帮忙。一旦有人帮我解决这个问题就会给出最好的答案。

为大家干杯。

EN

回答 1

Stack Overflow用户

发布于 2015-05-10 09:27:59

让我简单地解释一下如何找到候选密钥:

形成三列,左、右、中

在左列中,添加仅出现在FD的手侧的属性。 在右侧列中,添加仅出现在FD的右侧手侧的属性。 在中间列中,添加在FD的右侧和左侧同时出现属性。

解释:

左列上的属性指示,每个可能的候选键都必须包括这些属性。

右列上的属性指示候选键不应包含它。

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

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

然后,应用闭包属性

A+=ABCD

因为

A->反折规则 A->B 给定 A->C 传递性规则 A->B和B->C A->D 传递性规则 A->B >C和C->D

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

超级键只不过是候选键和非素数属性的超集。

因此,您的答案是right

因此,这种关系的超级键是一组超级候选键。

超级键有ABACABC等。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30109298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档