bcnf

bcnf

bcnf,全稱為Boycee Codd Normal Form,中文叫巴斯範式,是由Boyce和Codd提出的,比3NF又進了一步,通常認為是修正的第三範式

設關係模式R<U,F>∈1NF,如果對於R的每個函式依賴X→Y,若Y不屬於X,則X必含有超碼,那么R∈BCNF。滿足BCNF條件有:所有非主屬性對每一個候選鍵都是完全函式依賴; 所有的主屬性對每一個不包含它的候選鍵,也是完全函式依賴;沒有任何屬性完全函式依賴於非候選鍵的任何一組屬性。

基本介紹

  • 中文名:巴斯範式
  • 外文名:Boycee Codd Normal Form
  • 簡稱:BCNF
  • 關係模式:R<U,F>∈1NF
BCNF簡介,BCNF定義,滿足BCNF條件,BCNF舉例,分解為BCNF方法,

BCNF簡介

是由Boyce和Codd提出的,比3NF又進了一步,通常認為是修正的第三範式.所謂第三範式,定義是關係模式R<U,F>中若不存在這樣的鍵X,屬性組Y及非主屬性Z,使得X—>Y,Y—>Z成立,(不存在Y—>X),則稱R<U,F>為3NF.
即當2NF(第二範式)消除了非主屬性對鍵的傳遞函式依賴,則稱為3NF。
對3NF關係進行投影,將消除原關係中主屬性對鍵的部分與傳遞依賴,得到一組BCNF關係。

BCNF定義

關係模式R<U,F>∈1NF。若函式依賴集合F中的所有函式依賴X→Y(Y不包含於X)的左部都包含R的任一候選鍵,則R∈BCNF。換言之,BCNF中的所有依賴的左部都必須包含候選鍵。
具有函式依賴集F的關係模式R屬於BCNF的條件是,對所有F的閉包中形如
X->Y,則下面的兩個條件至少有一個成立:
1. X->Y是平凡的依賴。
2. X是R的一個超鍵。

滿足BCNF條件

1 所有非主屬性對每一個候選鍵都是完全函式依賴
2 所有的主屬性對每一個不包含它的候選鍵,也是完全函式依賴;
3 沒有任何屬性完全函式依賴於非候選鍵的任何一組屬性。

BCNF舉例

由於R∈BCNF,按定義排除了任何屬性對鍵的傳遞依賴與部分依賴,所以R∈3NF。但是若R∈3NF,則R未必屬於BCNF。
例如:關係模式STJ(S,T,J)中,S表示學生,T表示教師,J表示課程。每一個教師只教一門課。每門課有 若干個教師,某一學生選定某門課,就對應一個固定的教師。由語義可得到如下函式依賴
(S,J)->T;(S,T)->J;T->J。
(S,J),(S,T)都是候選鍵
STJ是3NF,因為沒有任何非主屬性對鍵傳遞依賴或部分依賴。但STJ不是BCNF關係,因為T是決定因素而T不是超鍵。

分解為BCNF方法

需要消除不包含關係。
1. 假設R(U)不是BCNF, X是R的屬性子集,A是R的單個屬性,X->A是導致違反BCNF的函式依賴,則將R分解為R-A以及XA。
2.若R-A以及XA仍然不是BCNF,則在R-A以及XA遞歸地執行上述分解。
例SCT:(S#,CNAME,TNAME),FD:TNAME→CNAME。
可分解為SC(S#,TNAME)和CT(CNAME,TNAME),它們都是BCNF。

相關詞條

熱門詞條

聯絡我們