首先理解幾個概念,
函數依賴:設R(U)是屬性集上的關系模式,X,Y是U的子集。若對於R(U)的任意一個可能的關系r,r中不能存在兩個元組在X上的屬性值星等,而在Y上的屬性值不等,即是說這里X可以唯一確定Y,則稱,X函數確定Y或Y函數依賴於X,記作X–>Y。
完全函數依賴:在R(U)中,如果X–>Y,並且對於X的任何一個真子集X‘,都有X’-/->Y,記作 X-f->Y; (f為箭頭的上標)
部分函數依賴:若X–>Y,但Y不完全依賴於X,則稱Y對X部分函數依賴。X-p->Y
傳遞函數依賴:在R(U)中,如果X–>Y(Y不真含於X,也即X不真包含Y),Y-/->X,
Y–>Z,Z不真含於Y,則稱Z於X傳遞函數依賴。記作,X-傳遞->Z
另外碼(鍵)的概念,參考
https://blog.csdn.net/liushuijinger/article/details/12832017
幾種范式定義:
2NF,若R屬於1NF,且每一個非主屬性完全函數依賴於任何一個候選碼,則R屬於2NF。
3NF,設關系模式R<U,F>屬於1NF,若R中不存在這樣的碼X,屬性Y以及非主屬性Z(Z不真包含Y)使得X-->Y,Y-->Z成立,Y-/->X,則R<U,F>屬於3NF。 BCNF,關系模式R<U,F>屬於1NF,若X-->Y且Y不真包含於X時X必含有碼,則R<U,F>屬於BCNF。也就是說關系模式R中,每一個決定因素都包含碼。滿足BCNF的關系模式具備的條件: 1)所有非主屬性對每一個碼都是完全函數依賴 2)所有主屬性對每一個不包含它的碼也就是完全函數依賴 3)沒有任何屬性完全函數依賴於非碼的任何一組屬性