最小密钥和候选密钥之间的差异?

时间:2016-05-18 16:42:23

标签: sql database candidate-key

我有这个R(A,B,C,D,E)具有FD:A-> B,CD-> E,E-> A,B-> D  对于这个问题,我需要找到R的最小键。我认为我把它计算为CA,CB,CD或CE(都是可选的)。

该问题的第二部分:R(A,B,C,D)与FD的:A-> B,B-> C,C-> D,D-> A对于这部分我是需要列出所有候选键,但我似乎无法找到如何做到这与我的第一个3列方法不同。 (除非三列方法不适用于最小键?

由于

1 个答案:

答案 0 :(得分:1)

通常,(候选)是一组确定关系的所有属性的属性,它被称为“最小集合”(具有此属性的属性),在感觉你不能从中消除任何属性而不会失去作为关键的属性。这与超级密钥形成对比,后者确定了关系的所有属性,但可以拥有更多属性,然后是那些严格必要的属性。因此,没有“最小密钥”的正式定义:如果您有一组属性,那么它可以是(候选)密钥,超级密钥或非密钥。

在第一个示例中,您已正确识别密钥,即CA,CB,CD或CE。在第二个例子中,所有属性都是键(即A,B,C和D)。在这两个示例中,可用于查找密钥的方法没有区别。