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分解。