天天看點

資料庫

資料庫依賴及範式

部分函數依賴:設x,y是關系r的兩個屬性集合,存在x→y,若x’是x的真子集,存在x’→y,則稱y部分函數依賴于x。

例如:通過ab能得出c,通過a也能得出c,通過b也能得出c,那麼說c部分依賴于ab。

完全函數依賴:設x,y是關系r的兩個屬性集合,x’是x的真子集,存在x→y,但對每一個x’都有x’!→y,則稱y完全函數依賴于x。

例如: 通過ab能得出c,但是ab單獨得不出c,那麼說c完全依賴于ab.

傳遞函數依賴:設x,y,z是關系r中互不相同的屬性集合,存在x→y(y !→x),y→z,則稱z傳遞函數依賴于x。

例如: 通過a得到b,通過b得到c,但是c得不到b,b得不到a,那麼成c傳遞依賴于a

1、第一範式(1nf):一個關系模式r的所有屬性都是不可分的基本資料項。

2、第二範式(2nf):滿足第一範式,然後消除部分依賴。

3、第三範式(3nf): 滿足第二範式,消除傳遞依賴。

     若關系模式屬于第一範式,且每個屬性都不傳遞依賴于鍵碼,則r屬于bc範式。

  通常bc範式的條件有多種等價的表述:每個非平凡依賴的左邊必須包含鍵碼;每個決定因素必須包含鍵碼。bc範式既檢查非主屬性,又檢查主屬性。當隻檢查非主屬性時,就成了第三範式。滿足bc範式的關系都必然滿足第三範式。還可以這麼說:若一個關系達到了第三範式,并且它隻有一個候選碼,或者它的每個候選碼都是單屬性,則該關系自然達到bc範式。

  一般,一個資料庫設計符合3nf或bcnf就可以了。在bc範式以上還有第四範式、第五範式。

  第四範式:要求把同一表内的多對多關系删除。

  第五範式:從最終結構重建立立原始結構。