BCNF和3NF

Anonim

BCNF与3NF

Boyce Codd普通形式(也称为BCNF)是一种正常形式 - 这是一种形式,用于确定表格对逻辑不一致和异常的脆弱程度。此正常形式用于数据库规范化。它比它的前身,第三种常规形式(也称为3NF)强一点。一个表被认为是在BCNF中,当且仅当每个人都知道它的非平凡功能依赖性 - 这是在从数据库获取的关系中的两组属性之间设置的边界 - 是一个超级密钥(一组关系变量的属性假定在分配给该特定变量的所有关系中,没有两个不同的行包含该特定集合中属性的相同值。 BCNF假定任何不符合标准的表都被归为BNCF,容易受到逻辑上的不一致。

3NF是一种常规形式,也用于数据库规范化。当且仅当表格处于第二范式(或2NF,这是第一个普通代码,或1NF,符合成为2NF的标准)时,认为表格在3NF中,并且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。这意味着当且仅当X时,A不能过渡依赖于Y. 'Y(或者如果X是超级钥匙。

摘要:

1. BCNF是一种常规形式,对于每个表的非平凡功能依赖,它是一个超级密钥; 3NF是表格在2NF中的正常形式,并且每个非素数属性都不可传递地依赖于表格中的每个键。