2

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

4

1 回答 1

5

假设关系 R(A,B,C,D) 不存在函数依赖关系。那么 ABCD 可以被认为是候选键吗?

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

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

或者这个关系不会有任何候选键?

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

关系是一个集合,任何给定的对象要么属于一个集合,要么不属于一个集合——它不能多次属于(与多重集合不同)。如果没有至少一个键,同一个元组将能够多次属于。


1只说“key”就是“candidate key”的同义词。

2至少,所有属性加在一起,可以被认为是一个关键(就像你的情况一样)。

于 2014-01-17T10:09:22.200 回答