我正在做另一个问题,它要求候选键和超级键。我相信我有正确的候选密钥,但如果有人能证实这将是很好的。我也很难找到超级钥匙。我不知道是否有一个通用的公式来找到它们什么的。
以下是一个问题:
Relation Schema: U(A,B,C,D)
FD's:
A-->B
B-->C
C-->D
D-->A我发现候选密钥是:{A}、{B}、{C}、{D}。如果有人能证实这是否正确,我将非常感激。如果你能让我知道如何找到这个超级钥匙,那就太好了。我并不是直接寻找答案,我只是想知道我对候选键的答案是否正确,以及如何为这个问题和可能的其他问题找到超级键(如果有一种通用的方法来找到它们)。
希望有人能帮忙。一旦有人帮我解决这个问题就会给出最好的答案。
为大家干杯。
发布于 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
因此,这种关系的超级键是一组超级候选键。
超级键有AB、AC、ABC等。
希望这能有所帮助。
https://stackoverflow.com/questions/30109298
复制相似问题