一、4nf和bcnf的區(qū)別
BCNF與4NF的區(qū)別:
編號(hào) | BCNF | 4NF |
1 | BCNF中的關(guān)系也必須在3NF中。 | 4NF中的關(guān)系也必須是Boyce Codd正規(guī)形式(BCNF)。 |
2 | BCNF中的關(guān)系可能具有多值依賴(lài)關(guān)系。< 4NF中的關(guān)系不能有任何多值依賴(lài)關(guān)系。 | BCNF中的關(guān)系可能在4NF中,也可能不在。4NF中的關(guān)系總是在BCNF中。 |
4 | BCNF較4NF弱。 | 4NF比BCNF更強(qiáng)。 |
5 | 如果一個(gè)關(guān)系在BCNF中,那么它將比4NF有更多的冗余。 | 如果一個(gè)關(guān)系是4NF,那么它將比BCNF有更少的冗余。 |
6 | 如果一個(gè)關(guān)系在BCNF中,那么所有基于函數(shù)依賴(lài)性的冗余都被刪除了。 | 如果一個(gè)關(guān)系是4NF,那么所有基于函數(shù)依賴(lài)和多值依賴(lài)的冗余都將被刪除。 |
7 | 對(duì)于一個(gè)關(guān)系,BCNF中的表數(shù)小于或等于4NF中的表數(shù)。 | 對(duì)于一個(gè)關(guān)系,4NF中的表數(shù)大于或等于BCNF中的表數(shù)。 |
8 | 依賴(lài)保持在BCNF中很難實(shí)現(xiàn)。 | 與BCNF相比,4NF中依賴(lài)保持更難實(shí)現(xiàn)。 |
9 | 在實(shí)際數(shù)據(jù)庫(kù)設(shè)計(jì)中,一般采用3NF或BCNF。 | 在現(xiàn)實(shí)世界的數(shù)據(jù)庫(kù)設(shè)計(jì)中,通常4NF不是數(shù)據(jù)庫(kù)設(shè)計(jì)人員的優(yōu)選。 |
10 | BCNF中的關(guān)系可以包含多值關(guān)系和連接依賴(lài)關(guān)系。 | 4NF中的關(guān)系可能只包含連接依賴(lài)。 |
延伸閱讀:
二、多值依賴(lài)
多值依賴(lài)屬4nf的定義范圍,比函數(shù)依賴(lài)要復(fù)雜得多。在關(guān)系模式中,函數(shù)依賴(lài)不能表示屬性值之間的一對(duì)多聯(lián)系,這些屬性之間有些雖然沒(méi)有直接關(guān)系,但存在間接的關(guān)系,把沒(méi)有直接聯(lián)系、但有間接的聯(lián)系稱(chēng)為多值依賴(lài)的數(shù)據(jù)依賴(lài)。
在函數(shù)依賴(lài)中,X與Y是否存在函數(shù)依賴(lài)關(guān)系,只需考察X,Y的兩組屬性,與別的屬性無(wú)關(guān)。而在多值依賴(lài)中,X與Y是否存在多值依賴(lài)還需看屬性Z。