2

我想了解BCNF数据库,我不能完全包裹我的头。BCNF转换

考虑以下关系:

R (A, B, C, D, E, F, G) 

下面的函数依赖成立:

A -> E, F 
A -> G 
A, B -> D 
B -> C 
E, F -> G 
A -> D 

我怎么会让它BCNF

回答

2

非正式讲话,在家庭作业的问题,你会得到通过

  • 到BCNF假设你在至少1NF是,
  • 去除部分键依赖去2NF(至少),
  • (至少)去除传递依赖性,最后删除剩余的功能依赖性,其中左侧不是候选键以至BCNF(至少)。

部分密钥相关性的一个例子是一对

AB->D 
A->D 

由于A单独确定d,函数依赖AB-> d具有部分密钥的依赖性。

传递依赖的一个例子是对

A->EF 
EF->G 

有没有保证,你可以归给定的关系,比方说,BCNF 并没有更高。 (这似乎在SO大学的学生之间造成了很多混乱。)去掉部分关键依赖到2NF可能会留下5NF中的所有关系。

1

)我们可以使用阿姆斯特朗公理得到F +

A - > d,E,F,G

乙 - > C(A,B - > d被忽略,​​因为甲 - > d)

E,F - “G

我们可以得到的主键(A,B)。根据BCNF的定义,我们必须从原始模式中分离出A->(E,F),B-> C,A-> D和(E,F) - > G。

(A,B)的主键(A,B)

(B,C)主键(B)

(A,d)主键(A)

(A,E,F)主键(A)

(E,F,G)主键(E,F)

这是BCNF分解。