資料庫,資料庫學習
BC範式(BCNF)
關係模式R<U,F>∈1NF,若X→Y且Y X時X必包含碼,則R<U,F> ∈BCNF。這個定義表明,如果非平凡的FD X→Y中X不包含碼,那麼Y必定傳遞依賴於候選索引鍵,因此R不是BCNF模式。等價於:每一個決定屬性因素都包含碼
如果關係模式R是1NF,且每個屬性(包括主屬性和非主屬性)都不傳遞依賴於R的候選碼,那麼稱R是BCNF的模式。
若R∈BCNF 所有非主屬性對每一個碼都是完全函數依賴所有的主屬性對每一個不包含它的碼,也是完全函數依賴沒有任何屬性完全函數依賴於非碼的任何一組屬性R ∈BCNF R ∈3NF
定理:如果R是BCNF模式,那麼R也是3NF模式。證明:設R是BCNF,但不是3NF,那麼R上必存在傳遞依賴X→Y,Y→A,這裡X是R的碼,A∈Y, Y→X。顯然Y不包含R的碼,否則Y→X也成立。因此Y→A違反了BCNF的定義,與假設R是BCNF矛盾。從而定理得證。
[例5] 關係模式C(Cno,Cname,Pcno)C∈3NFC∈BCNF[例6] 關係模式S(Sno,Sname,Sdept,Sage)假定S有兩個碼Sno,SnameS∈3NF。S ∈ BCNF
[例7]關係模式SJP(S,J,P)函數依賴:(S,J)→P;(J,P)→S(S,J)與(J,P)都可以作為候選碼,屬性相交SJP∈3NF,SJP∈BCNF
[例8]在關係模式STJ(S,T,J)中,S表示學生,T表示教師,J表示課程。函數依賴: (S,J)→T,(S,T)→J,T→J(S,J)和(S,T)都是候選碼
多值依賴
[例9] 學校中某一門課程由多個教師講授,他們使用相同的一套參考書。每個教員可以講授多門課程,每種參考書可以供多門課程使用。
Teaching∈BCNF
Teaching具有唯一候選碼(C,T,B), 即全碼
Teaching模式中存在的問題
(1)資料冗餘度大
(2)插入操作複雜
(3) 刪除操作複雜
(4) 修改操作複雜
設R(U)是一個屬性集U上的一個關係模式, X、 Y和Z是U的子集,並且Z=U-X-Y。關係模式R(U)中多值依賴 X→→Y成立,若且唯若對R(U)的任一關係r,給定的一對(x,z)值,有一組Y的值,這組值僅僅決定於x值而與z值無關例 Teaching(C, T, B)
多值依賴的另一個等價的形式化的定義:
在R(U)的任一關係r中,如果存在元組t,s 使得t[X]=s[X],那麼就必然存在元組 w,v r,(w,v可以與s,t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z](即交換s,t元組的Y值所得的兩個新元組必在r中),則Y多值依賴於X,記為X→→Y。 這裡,X,Y是U的子集,Z=U-X-Y。
平凡多值依賴和非平凡的多值依賴
若X→→Y,而Z=φ,則稱
X→→Y為平凡的多值依賴
否則稱X→→Y為非平凡的多值依賴
[例10]關係模式WSC(W,S,C)
W表示倉庫,S表示保管員,C表示商品
假設每個倉庫有若干個保管員,有若干種商品
每個保管員保管所在的倉庫的所有商品
每種商品被所有保管員保管
多值依賴性質
(1)多值依賴具有對稱性
若X→→Y,則X→→Z,其中Z=U-X-Y
(2)多值依賴具有傳遞性
若X→→Y,Y→→Z, 則X→→Z –Y
(3)函數依賴是多值依賴的特殊情況。
若X→Y,則X→→Y。
(4)若X→→Y,X→→Z,則X→→Y Z。
(5)若X→→Y,X→→Z,則X→→Y∩Z。
(6)若X→→Y,X→→Z,則X→→Y-Z,X→→Z -Y。
多值依賴與函數依賴的區別
(1) 多值依賴的有效性與屬性集的範圍有關
(2)
若函數依賴X→Y在R(U)上成立,則對於任何Y’ Y均有X→Y’ 成立
多值依賴X→→Y若在R(U)上成立,不能斷言對於任何Y’ Y有X→→Y’ 成立
4NF
關係模式R<U,F>∈1NF,如果對於R的每個非平凡多值依賴X→→Y(Y X),X都含有碼,則R∈4NF。如果R ∈ 4NF, 則R ∈ BCNF不允許有非平凡且非函數依賴的多值依賴允許的非平凡多值依賴是函數依賴
例: Teaching(C,T,B) ∈ 4NF 存在非平凡的多值依賴C→→T,且C不是碼用投影分解法把Teaching分解為如下兩個關係模式: CT(C, T) ∈ 4NF CB(C, B) ∈ 4NF C→→T, C→→B是平凡多值依賴
關聯式資料庫的正常化理論是資料庫邏輯設計的工具
目的:盡量消除插入、刪除一場,修改複雜,資料冗餘
基本思想:逐步消除資料依賴中不合適的部分
實質:概念的單一化
不能說正常化程度越高的關係模式就越好
在設計資料庫模式結構時,必須對現實世界的實際情況和使用者應用需求作進一步分析,確定一個合適的、能夠反映現實世界的模式
上面的正常化步驟可以在其中任何一步終止