关系是否可以使用不同长度的候选键?

时间:2017-08-06 15:33:50

标签: database relational unique-key candidate-key

我们可以在关系中拥有多个候选键。但是我们可以在长度不同的关系中有两个候选键吗?

假设我有一个关系R(A,B,C,D,E),我们只有两组属性,它们唯一地标识关系中的元组:{A,B,C}和{D,E}

那么我们可以说{A,B,C}和{D,E}都是候选键吗?

2 个答案:

答案 0 :(得分:2)

  

但是我们可以在长度不同的关系中有两个候选键吗?

CK (candidate key)是超级密钥(唯一列集),不包含较小的密钥。

因此我们有时会说CK是一个“最小”超级密钥,在这种特定超级密钥的意义上使用“minimal”,通过删除属性不能将其变成更小的超级密钥。 意味着可能会想到的其他一些事情。特别是它意味着一个CK的属性比任何其他CK少,或者没有比另一个CK更多的属性。

您需要了解技术术语的定义。姓名不告诉你任何事情。

在遵循定义的同时担心你注意到的事情也没有意义。请关注它。

  

假设我有一个关系R(A,B,C,D,E),我们只有两组属性,它们唯一地标识关系中的元组:{A,B,C}和{D,E}

这是不可能的。如果是{A,B,C}& {D,E}是唯一的,然后它们的所有超集也是唯一的。例如,所有属性的集合始终是唯一的,这里是{A,B,C,D,E}。

大概你的意思是,我们只有两个 minimal “属性集,它们唯一地标识一个元组”,即只有两个 CK

  

那么我们可以说ABC和DE都是候选键吗?

如果这两个唯一集合都不包含较小的唯一集合,则可以。通过CK的定义。

答案 1 :(得分:0)

如果需要满足两个要求,那么行的组合应成为主要的候选对象:

a。)没有列可能包含NULL值。

b。)组合必须是唯一的。