假设关系 R(A,B,C,D) 不存在函数依赖关系。那么什么应该被认为是它的候选键呢?显然,任何单个属性或所有属性的适当子集都不能成为候选键,因为它们决不能识别非主要属性。那么 ABCD 可以被认为是候选键吗?或者这个关系不会有任何候选键?
问问题
574 次
1 回答
5
假设关系 R(A,B,C,D) 不存在函数依赖关系。那么 ABCD 可以被认为是候选键吗?
是的,密钥1由所有属性共同组成。
不过,这在实践中非常罕见。它主要发生在实现多对多(或多对多对多等)关系的联结/链接表中。
或者这个关系不会有任何候选键?
关系必须至少有一个键,否则它不是关系2。
关系是一个集合,任何给定的对象要么属于一个集合,要么不属于一个集合——它不能多次属于(与多重集合不同)。如果没有至少一个键,同一个元组将能够多次属于。
1只说“key”就是“candidate key”的同义词。
2至少,所有属性加在一起,可以被认为是一个关键(就像你的情况一样)。
于 2014-01-17T10:09:22.200 回答