關係型數據庫中的關係是須要知足必定條件的,知足這些不一樣程度的規範化就叫作範式。數據庫
範式按照規範化程度從低到高排序爲第一範式,第二範式,第三範式,BC範式,第四範式,第五範式。函數
R(U)是屬性集U的關係模型,X,Y是U的一個子集,對於R(U)中的任一個關係r,不可能存在兩個元組在X上屬性值相同,而在Y上屬性值不一樣。則稱X函數肯定Y,或Y函數依賴X。.net
例子:blog
舉例排序
有這樣一個配件管理表WPE(WNO,PNO,ENO,QNT),其中WNO表示倉庫號,PNO表示配件號,ENO表示職工號,QNT表示數量。get
有如下約束要求:博客
(1)一個倉庫有多名職工;基礎
(2)一個職工僅在一個倉庫工做;數據
(3)每一個倉庫裏一種型號的配件由專人負責,但一我的能夠管理幾種配件;關係型數據庫
(4)同一種型號的配件能夠分放在幾個倉庫中。
分析表中的函數依賴關係,能夠獲得:
(1)ENO->WNO;
(2)(WNO,PNO)->QNT
(3)(WNO,PNO)->ENO
(4)(ENO,PNO)->QNT
候選碼的定義就是一組能決定全部列(某一個元組)的屬性。
因此根據這4個函數依賴關係,(WNO,PNO)顯然確定是,由於它能夠決定QNT,也能夠決定ENO,加上它自己,就是屬性全集U了。
而(ENO,PNO),雖然只有一個決定QNT,可是ENO能夠單獨決定WNO,因此顯然(ENO,PNO)也就能一塊兒決定QNT和WNO,所以也是候選碼。
知足最基本的條件,每個份量都是不可分的數據項。
R屬於第一範式,且每個非主屬性徹底函數依賴於任何一個候選碼,則R屬於第二範式
R屬於第二範式,若R中不存在碼X,屬性子集Y,非主屬性Z,使得X決定Y,Y不決定X,Y決定Z,則R屬於第三範式。
R屬於第一範式,若X決定Y,且Y不是X的子集時X必含有碼,即每個決定因素都包含碼,則R屬於BC範式。
說人話,多值依賴就是一個表中多對多的關係,若是能夠分紅兩列,這兩列多對多,這就平凡的多值依賴,若是是分紅三列,固定某一列的值,其餘兩列多對多,這就是非平凡的多值依賴,第四範式要消除的就是非平凡的多值依賴。
函數依賴是特殊的多值依賴,由於多對多其實也是一對多。
R屬於第一範式,對應R的每個非平凡多值依賴,X->->Y,X都含有碼,則R屬於第四範式。
第五範式是指關係模式R依賴均由R候選碼所隱含。
這輩子應該不會用到的內容,就無論了。