關係型數據庫幾大範式的理解總結

範式的定義

  • 關係型數據庫中的關係是須要知足必定條件的,知足這些不一樣程度的規範化就叫作範式。數據庫

  • 範式按照規範化程度從低到高排序爲第一範式,第二範式,第三範式,BC範式,第四範式,第五範式。函數

前導知識

函數依賴

R(U)是屬性集U的關係模型,X,Y是U的一個子集,對於R(U)中的任一個關係r,不可能存在兩個元組在X上屬性值相同,而在Y上屬性值不一樣。則稱X函數肯定Y,或Y函數依賴X。.net

  • 說人話:U是表(可能不止一個表,能夠是有關係的多個表)的全部列,X,Y分別是這些屬性列的一個子集,也就是若干個屬性,對於全部在X這些屬性上的值同樣的行,在Y上的屬性上也必須同樣,知足這樣條件的這若干個屬性 X和Y叫稱其函數依賴。
  • X相同則Y必須相同,但X不一樣Y能夠相同,也能夠不一樣
  • 若是Y是X的子集,就叫平凡的函數依賴,通常不考慮這種,由於就是廢話,X整個都相同,子集確定相同。
  • 若是Y不是X的子集,叫作非平凡的函數依賴
  • 若是Y函數依賴X,那麼X稱爲決定因素。
  • 若是Y函數依賴X,但不依賴X的任何一個真子集,也就是X是極小的,那就稱Y徹底函數依賴X,不然稱Y部分函數依賴X
  • 若是X決定Y,Y決定Z,且Y不決定X,那麼稱Z對X傳遞函數依賴

碼(鍵)

  • U是屬性全集,K是U的子集,若U徹底函數依賴K,則稱K爲候選碼,候選碼如有多個,任意選擇一個均可做爲主碼,若U部分函數依賴K,則稱K爲超碼。顯然,候選碼固然也是超碼,並且是最小的超碼。
  • 包含在任何一個候選碼的屬性都叫主屬性,其餘都叫非主屬性
  • 在本書中主碼和候選碼統稱爲,屬性集K不是該關係模式(表)的碼,而是另外一個關係模式(表)的碼,則稱K爲該關係模式(表)的外碼

求候選碼

例子: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屬於第三範式。

  • 說人話,非主屬性必須直接徹底函數依賴於主鍵,中間不能有其餘函數,即不能是傳遞函數依賴。

BC範式

定義

R屬於第一範式,若X決定Y,且Y不是X的子集時X必含有碼,即每個決定因素都包含碼,則R屬於BC範式。

  • 說人話, 若R是第一範式,且每一個屬性不部分函數依賴於候選碼也不傳遞函數依賴於候選碼,則R是BC範式,具體如下三點。
    • 全部非主屬性對每個碼都是徹底函數依賴。(也是第二範式要求)
    • 全部主屬性對每個不包含它的碼也是徹底函數依賴。(也就是排除了全部屬性對碼的部分依賴)
    • 沒有任何屬性徹底函數依賴於非碼的任何一組屬性。(排除傳遞函數依賴)
  • 實際上,BC範式就是在第三範式的基礎上消除了主屬性的傳遞依賴

第四範式

多值依賴

  • 說人話,多值依賴就是一個表中多對多的關係,若是能夠分紅兩列,這兩列多對多,這就平凡的多值依賴,若是是分紅三列,固定某一列的值,其餘兩列多對多,這就是非平凡的多值依賴,第四範式要消除的就是非平凡的多值依賴。

  • 函數依賴是特殊的多值依賴,由於多對多其實也是一對多。

定義

R屬於第一範式,對應R的每個非平凡多值依賴,X->->Y,X都含有碼,則R屬於第四範式。

  • 說人話,在知足第三範式的基礎上,關係表中不能含有一個實體的兩個或多個相互獨立的多值因子。dalao博客
  • 或者說,知足第四範式即要求每一個非平凡的多值依賴都含有碼,也就是其實是函數依賴。

第五範式

定義

第五範式是指關係模式R依賴均由R候選碼所隱含。

這輩子應該不會用到的內容,就無論了。

相關文章
相關標籤/搜索