我们可以在关系中拥有多个候选键。但是我们可以在长度不同的关系中有两个候选键吗?
假设我有一个关系R(A,B,C,D,E),我们只有两组属性,它们唯一地标识关系中的元组:{A,B,C}和{D,E}
那么我们可以说{A,B,C}和{D,E}都是候选键吗?
答案 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。)组合必须是唯一的。