Boyce-Codd Normal Form解释

时间:2012-09-25 04:11:38

标签: database set rdbms database-normalization bcnf

遵守Boyce-Codd普通表格定义,

如果对于所有X - >,则具有FD的Reln R在BCNF中。 A + F + -A是X的子集(称为平凡FD),或 -X是R的超级密钥。

 “R is in BCNF if the only non-trivial FDs over R are key constraints.”

 If R in BCNF, then every field of every tuple records information that 
 cannot be inferred using FDs alone.

我不明白的是以上关于正常形式的两个陈述,

有人可以举个例子吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

我个人觉得很难提出超过3NF的样本,但也许这个演示文稿有助于有人提出更好的答案:

http://www.cs.sjsu.edu/~lee/cs157b/The_Normal_Forms2.ppt

它简单地从1NF到3NF,然后解释3NF和BCNF之间的差异。

编辑:由于原始链接出现故障,我发现: http://www.authorstream.com/Presentation/aSGuest134613-1415068-the-normal-forms2/

答案 1 :(得分:0)

在我试图解释之前,一些先决条件:

非密钥属性 :不属于任何候选密钥的属性称为非密钥/ non-prime属性。

超级键:表中的一组属性,其值可用于唯一标识元组。候选键是标识元组所必需的最小属性集;这也称为最小超键。

现在,BCNF是3NF的高级版本,比3NF更严格。

如果每个功能依赖项X→Y, X 是表的超级键,则表在BCNF中。

Consider a relation : R(A,B,C,D)

The dependencies are:

A->BCD

BC->AD

D->B

So, Candidate keys(or minimal super keys) are A and BC.

But in dependency: D->B, D is not a superkey.

Hence it violates BCNF form.

We can break this relation into R1 and R2 as:
R1(A,D,C) and R2(D,B) to get BCNF.