可以将普通的超级密钥视为候选密钥吗?

时间:2014-01-17 09:34:24

标签: database database-design key candidate-key

假设关系R(A,B,C,D)存在且没有功能依赖性。那么什么应该被视为候选关键?显然,所有属性的任何单个属性或适当子集都不能是候选键,因为它们决不能识别非主要属性。那么ABCD可以被视为候选键吗?或者这种关系没有任何候选键?

1 个答案:

答案 0 :(得分:4)

  

假设关系R(A,B,C,D)存在且没有功能依赖性。那么ABCD可以被视为候选键吗?

是的,密钥 1 由所有属性组成。

但这在实践中非常罕见。它主要发生在实现多对多(或多对多对等)关系的联结/链接表中。

  

或者这种关系没有任何候选键?

关系必须至少有一个键,否则它不是关系 2

Relation是一个集合,任何给定的对象要么属于集合要么不属于集合 - 它不能属于多次(与multiset不同)。如果没有至少一个密钥,相同的元组将能够多次归属。


1 只是说“key”与“候选键”同义。

2 至少,所有属性一起被视为一个关键(如你的情况)。