归一化3NF和BCNF

时间:2014-10-30 13:34:41

标签: database database-normalization

如果我有以下关系R =(A,B,C,D)

功能依赖:

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

候选键是 CDA CDB

第三种常规形式表示非主要属性之间不存在功能依赖性。非素数属性是在其中一个候选键中不会出现的属性。那意味着这个关系已经是3NF,因为A和B之间相互依赖,是其中一个候选键的一部分,我是对的吗?

如果是这样,我还有另一个关于BCNF的问题。 BCNF表示每个决定因素必须是候选键。在这种情况下,A和B不是候选键,因此违反了BCNF,或者我在这里遗漏了什么?

感谢。

1 个答案:

答案 0 :(得分:4)

如果您提供的三个FD应该是R满足的FD的规范封面,那么您可以断定CDA和CDB必须是候选键。 (您没有声明FD是规范的,如果没有,那么还有其他方法来满足相同的依赖关系,但我想问题的意图是候选键必须仅根据您给出的内容推断。)

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