Boyce Codd正常形式(也被称为BCNF)是一种正常形式 - 即为确定一个表在逻辑不一致和异常方面的脆弱程度提供标准的形式。这种正常形式被用于数据库的规范化。它比它的前身第三种正常形式(也被称为3NF)更强一些。一个表被认为是在BCNF中,当且仅当它的每一个非琐碎的功能依赖—即从数据库中抽取的关系中的两组属性之间的边界 - 是一个超键(一个关系变量的属性集,假定在分配给该特定变量的所有关系中,没有两个不同的行包含该特定属性集的相同值)。BCNF规定,任何未能满足BNCF归属标准的表都容易出现逻辑上的不一致。
3NF是一种正常形式,也被用于数据库规范化。人们认为,当且仅当:1)表处于第二正态形式(或2NF,即第一正态代码,或1NF,已满足成为2NF的标准),以及2)表的每个非主属性都非跨度地依赖于表的每个键(意味着它不直接依赖于每个键)。还有一个3NF的定理,也被用来定义3NF和BCNF的区别。
这个定理是由Carlo Zaniolo在1982年提出的。它指出一个表是在3NF中,当且仅当对于每个功能依赖,其中X + A,三个条件中至少有一个必须成立:要么X + A,X是一个超键,或者A是一个质属性(这意味着A包含在一个候选键中—或者该关系的最小超键)。这个较新的定义与BCNF的定理不同,因为后者的模型会简单地消除最后一个条件。即使它作为3NF定理的更新版本,也有一个Zaniolo定理的推导。它指出,X + A是非琐碎的。如果这是真的,让A是一个正午密钥的属性,同时让Y是R的一个密钥,如果这成立,那么Y + X。
BCNF和3NF的区别
- BCNF是一种正常形式,其中对于表的每一个非琐碎的功能依赖,都是一个超级键;3NF是正常形式,其中表是在2NF中,每一个非首要属性都不过渡地依赖于表中的每个键。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:BCNF和3NF的区别
本文链接:https://www.vsdiffer.com/vs/bcnf-vs-3nf.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱:,我们核实并会尽快处理。