【范式与函数依赖】3NF与BCNF的区别


 

*本文中码指代候选码,主属性为构成码的属性。

先简要引入几个概念

图1


图2

  单拿出来我认为不是很好理解的3NF和BCNF详细的说说。

  书上写了,BCNF是完善后的3NF。从图2中显然得出,1-3NF都是规范非主属性与码之间的关系。而主属性之间的关系没有规范。有人说了 ,要是构成码的主属性之间存在部分函数依赖或传递函数依赖,那么这就不是码,是超码了。too young!谁告诉你码必须是一个了?比方说AB->C,BC->A,此时AB、BC都是码即ABC都是主属性。所以ABC之间有什么函数依赖不在1-3NF的约束之内。所以需要有BCNF来约束主属性之间的函数依赖了。

 举个例子,R={AB->C,BC->A,C->A},R的码为AB、BC,故主属性为ABC,R为3NF。但是函数依赖C->A,决定因素C不包含码BC故R不是BCNF。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM