关系可以有不同长度的候选键吗?

NAR*_*YAN 1 database relational unique-key candidate-key

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

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

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

phi*_*pxy 6

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

是的。

CK (候选键)是一个不包含较小键的超级键(唯一列集)。

因此,我们有时说 CK 是“最小”超级密钥,使用“最小”是指特定超级密钥无法通过删除属性而变成更小的超级密钥。这并不意味着您可能会想到其他事情。特别是,这并不意味着 CK 的属性比任何其他 CK 少,或者不比另一个 CK 多。

您需要学习技术术语的定义。名字并不能告诉你任何事情。

在遵循定义时担心你注意到的事情也是没有意义的。只要遵循它即可。

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

这是不可能的。如果 {A,B,C} 和 {D,E} 是唯一的,那么它们的所有超集也是唯一的。例如,所有属性的集合始终是唯一的,此处为{A,B,C,D,E}。

想必您的意思是,我们只有两个最小的“唯一标识元组的属性集”,即只有两个CK

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

如果这两个唯一集不包含较小的唯一集,则可以。根据CK的定义。