2013-12-14 128 views
2

GDAY小夥子,3NF VS BCNF:例

好了,所以我有一個數據庫類和我有這樣的例子,讓我覺得,我真的沒有完全理解這兩個會員協會之間的區別..

我知道

甲關係,R,是當且僅當3NF每非平凡FD(X-> A)由R滿足下列條件中的至少一個爲真:

( a)X是R的超級鍵,或

(b)中A是對於R a鍵屬性

甲關係,R,是當且僅當BCNF每非平凡FD(X-> A)滿足 由R下列條件爲真:

(a)中X是對於R

這裏,超密鑰的實施例:

R =(A,B,C,d)F = {AB-> C,AB-> d,C-> A,D-> B} 1爲R在3NF,爲什麼呢? 如果不是,分解成3NF

Sol: 
Yes. Find all the Candidate Keys: 
AB, BC, CD, AD 
Check all FDs in F for 3NF condition 

良好,未C->的原因的違規行爲? C不是一個超級密鑰,它不是微不足道的,對於D-> B也是如此。

但它不是一個BCNF:

  1. 在BCNF是R,爲什麼呢?如果不是,則將其分解成BCNF 否。因爲對於C-> A,C不是超級密鑰。對於D->乙R1 = {C, d},R2 = {A,C},R3 = {B,d}
+0

的可能重複[什麼是3NF和BCNF之間的區別?](http://stackoverflow.com/questions/19749913/what-is-the-difference-between-3nf-and-bcnf) –

+0

@MostyMostacho嗯,我已經讀過這個和其他3個線程,但仍然.. – geekybedouin

+0

@MostyMostacho我不能在那裏發表評論,我需要問你在早些時候的答案.. – geekybedouin

回答

4

嗯相似,不C->甲導致違反? C是不是一個超級密鑰,它不是微不足道的...

那麼3NF的第二個條件呢? R中的某個鍵是屬性嗎?

(提示:這種演習的目的是部分也告訴你爲什麼3NF是不是一個非常有用的正常形態,且情況3NF和BCNF事項之間的區別)