資料庫規範化的基本原理和學習心得

2021-04-07 09:47:55 字數 1336 閱讀 2840

構成鍵碼(或候選碼)的屬性稱為主屬性,而其它屬性稱為非主屬性

設: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 是按照資料結構來組織 儲存和管理資料的倉庫,它產生於距今六十多年前,隨著資訊科技和市場的發展,特別是二十世紀九十年代以後,資料管理不再僅僅是儲存和管理資料,而轉變成使用者所需要的各種資料管理的方式。資料庫有很多種型別,從最簡單的儲存有各種資料的 到能夠進行海量資料儲存的大型...

資料庫鎖的基本原理

為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...

資料庫鎖的基本原理

為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...