2014-10-30 67 views
3

如果我有下列关系R =(A,B,C,d)规范化3NF和BCNF

和功能依赖关系:

  • A - > B,B - > A,CDB - > A,CDA - >乙

候选键是CDACDB

第三种正常形式表示不存在非素数属性之间的函数依赖关系。非主要属性是在其中一个候选键中不存在的属性。那么这意味着这个关系已经是3NF了,因为A和B彼此相关,都是候选键之一,对吗?

如果是这样,我还有一个关于BCNF的问题。 BCNF表示,每个决定因素都必须是候选关键字。在这种情况下,A和B不是候选键,所以违反了BCNF,还是我在这里丢失了某些东西?

谢谢。

+0

由于这不是一个代码问题,而且更理论化,所以最好在http://programmers.stackexchange.com上提问。 – 2014-10-30 13:49:26

回答

4

如果您给出的三个FD应该是由R满足的FD的规范封面,那么您有权得出结论:CDA和CDB必须是候选密钥。 (你没有说明FD是规范的,如果不是,那么还有其他方法可以满足相同的依赖关系,但我猜这个问题的意图是候选键必须只从你给出的内容推断出来。)

如果CDA和CDB实际上是R的候选键,那么你是正确的,R满足3NF但不是BCNF。