構成鍵碼(或候選碼)的屬性稱為主屬性,而其它屬性稱為非主屬性
設:r(u)是屬性集u 上的關係模式,x,y⊆u
。如果對於r(u)的任意乙個關係r,以及r 的任意兩個元組t1,t2,不存在:t1[x]=t2[x],而t1[y]≠t2[y],則稱x函式決定y,或者說y函式依賴於x。記為:x→y。
1)「x→y」必須對r(u)的任何乙個關係例項都成立。
2)若x→y,y→x,則記作x←→y。若y不函式依賴x,則記作x y 。
3)函式依賴是現實世界資料關聯的表現形式。
1) 定義完全函式依賴:在r(u)中,如果x→y,且對x的任何乙個真子集x』,都有x』 y,則稱y對x完全函式依賴,記作:
)
2)定義部份函式依賴:在r(u)中,如果x→y, 但y不完全函式依賴x,則稱y對x部份函式依賴,記作。
在r(u)中,如果x→y,y x (y ⊆x
),y→z,則稱z傳遞函式依賴於x,記為x t z 。
關聯式資料庫的任意乙個關係,需要滿足一定的資料依賴約束。滿足不同程度資料依賴約束的關係,稱為不同正規化的關係。
第一正規化:
關係模式的各屬性域是「原子」的
第二正規化:
設r 是乙個關係模式。若r∈1nf,且每乙個非主屬性完全函式依賴於碼,則r∈2nf
第三正規化:
如果關係模式r(u,f)是2nf的,且不存在鍵碼x、屬性組y以及非主屬性z ,使得x→y ,y→z 成立,則r∈3nf,換句話說就是若r∈3nf,則r中不存在非主屬性對碼的傳遞函式依賴。
bcnf
:關係模式r∈1nf。如果對於r的每乙個函式依賴x→y(y ⊆x
),x都含有鍵碼(即x是超碼),那麼r∈bcnf。
第四正規化:
設關係模式r ∈1nf。若對於r的每個非平凡多值依賴x→→y(y ⊆x
),x都含有鍵碼,則r ∈4nf
a)
第二正規化與bcnf的區別:
第二正規化只要求非主屬性對碼的完全依賴,而bcnf還要求主屬性對不包
含它的鍵碼的完全依賴。
b)第三正規化與bcnf的區別:
第三正規化沒有像bcnf那麼嚴格,它只要求主屬性對不包含它的鍵碼的部
分依賴。
c)第三正規化的定義(來自《資料庫系統基礎教程》)是若在關係r中存在非平凡的fd
且要麼是
是超鍵,要麼b屬於某個鍵,怎麼能推出r中不存在非主屬性對碼的傳遞函式依賴?
首先鍵碼不能決定鍵碼,由定義可以看出,當b是非主屬性,一定由其中乙個鍵碼決定,所以不會有對碼的傳遞依賴。
減小關係模式因規範化程度過低帶來的資料冗餘,克服修改、刪除的異常,
「模式分解」是規範化的實現途徑,但資料庫設計實踐中不能過分追求規範化程度
資料庫最基本原理
資料庫 database 是按照資料結構來組織 儲存和管理資料的倉庫,它產生於距今六十多年前,隨著資訊科技和市場的發展,特別是二十世紀九十年代以後,資料管理不再僅僅是儲存和管理資料,而轉變成使用者所需要的各種資料管理的方式。資料庫有很多種型別,從最簡單的儲存有各種資料的 到能夠進行海量資料儲存的大型...
資料庫鎖的基本原理
為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...
資料庫鎖的基本原理
為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...