資料庫依賴及範式
部分函數依賴:設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範式以上還有第四範式、第五範式。
第四範式:要求把同一表内的多對多關系删除。
第五範式:從最終結構重建立立原始結構。