關係模式的分解特性
第一正規化(1nf)
第二正規化(2nf)
第三正規化(3nf)
bcnf
參考部落格
設有關係模式r(u),x和y是屬性集u的子集,函式依賴(functional dependency,簡記為fd)
是形為x→y的乙個命題,只要r是r的當前關係,對r中任意兩個元組t和s,都有t[x]
=s[x]蘊涵t[y]
=s[y],
那麼稱fd x→y在關係模式r (u)中成立。 x→y讀作「x函式決定y」,或者「y函式依賴於x」。
定義4.2 設f是在關係模式r上成立的函式依賴的集合,x→y是乙個函式依賴。
如果對於r的每個滿足f的關係r也滿足x→y,那麼稱f邏輯蘊涵x→y,記為f ⊨x→y。
定義4.3 設f是函式依賴集,被f邏輯蘊涵的函式依賴全體構成的集合,
稱為函式依賴集f的閉包(closure),記為f+。即:
推理規則的正確性是指「從fd集f使用推理規則集推出的fd必定在f+中」,
完備性是指「f+中的fd都能從f集使用推理規則集匯出」。
也就是正確性保證了推出的所有fd是正確的,完備性保證了可以推出所有被蘊涵的fd。
這就保證了推導的有效性和可靠性。
定理4.5 fd推理規則是完備的。
如果關係模式r(u)上的兩個函式依賴集f和g,有f+
=g+,
則稱f和g是等價的函式依賴集。
設f是屬性集u上的fd集。如果fmin是f的乙個最小依賴集,
那麼fmin應滿足下列四個條件:
⑴ f+min =f+;
⑵ 每個fd的右邊都是單屬性;
⑶ fmin中沒有冗餘的fd;
(即f中不存在這樣的函式依賴x→y,使得f與f-等價)
⑷ 每個fd的左邊沒有冗餘的屬性。
(即f中不存在這樣的函式依賴x→y,x有真子集w,使得
f-∪與f等價)
注:無損分解與保持函式依賴的分解兩個特性之間沒有必然的聯絡
定義4.16 如果關係模式r的每個關係r的屬性值都是不可分的原子值,
那麼稱r是第一正規化(
first normal form,簡記為1nf)的模式。
1nf是關係模式應具備的最起碼的條件,滿足1nf的關係稱為規範化的關係
否則稱為非規範化的關係。關聯式資料庫研究的關係都是規範化的關係。
定義4.17 對於fd w→a,如果存在x⊂w有x→a成立,那麼稱w→a是區域性依賴(a區域性依賴於w);
否則稱w→a是完全依賴(也稱為「左部不可約依賴」 )
定義4.18 如果a是關係模式r的候選鍵中屬性,那麼稱a是r的主屬性;否則稱a是r的非主屬性。
定義4.19 如果關係模式r是1nf,且每個非主屬性完全函式依賴於候選鍵,
那麼稱r是第二正規化(2nf)的模式。
如果資料庫模式中每個關係模式都是2nf,則稱資料庫模式為2nf的資料庫模式。
演算法4.4 分解成2nf模式集的演算法
設關係模式r(u),主鍵是w,r上還存在fd x→z,並且z是非主屬性和x是w的子集,
那麼w→z就是乙個區域性依賴。此時應把r分解成兩個模式:
r1(xz),主鍵是x;
r2(y),其中y=u-z,主鍵仍是w,外來鍵是x(
references r1)。
利用外來鍵和主鍵的連線可以從r1和r2重新得到r。
如果r1和r2還不是2nf,則重複上述過程,一直到資料庫模式中每乙個關係模式都是2nf為止。
定義4.20 如果x→y,y→a,且y↛x和a∉ y,那麼稱x→a是傳遞依賴(a傳遞依賴於x)。
定義4.21 如果關係模式r是1nf,且每個非主屬性都不傳遞依賴於r的候選鍵,
那麼稱r是第三正規化(3nf)的模式。如果資料庫模式中每個關係模式都是3nf,
則稱其為3nf的資料庫模式 。
演算法4.5 分解成3nf模式集的演算法
設關係模式r(u),主鍵是w,r上還存在fd x→z。
並且z是非主屬性,z不是x的子集,x不是候選鍵,這樣w→z就是乙個傳遞依賴。
此時應把r分解成兩個模式:
r1(xz),主鍵是x;
r2(y),其中y=u-z,主鍵仍是w,外來鍵是x(
references r1)。
利用外來鍵和主鍵相匹配機制,r1和r2通過聯接可以重新得到r。
如果r1和r2還不是3nf,則重複上述過程,一直到資料庫模式中每乙個關係模式都是3nf為止。
定理4.8 如果r是3nf模式,那麼r也是2nf模式。
證明:只要證明其逆否命題成立即可,即模式中區域性依賴的存在蘊涵著傳遞依賴即可。
設a是r的乙個非主屬性,k是r的乙個候選鍵,且k→a是乙個區域性依賴。那麼r中必存在某個k』⊂ k,
有k』→a成立。由於a是非主屬性,因此a∩kk』=φ。由k』⊂ k,可知 k』→k,但k→k』成立。
因而從k→k』 和k』→a可知k→a是乙個傳遞依賴。
區域性依賴和傳遞依賴是模式產生冗餘和異常的兩個重要原因。
定義4.23 如果關係模式r是1nf,且每個屬性都不傳遞依賴於r的候選鍵,那麼稱r是bcnf的模式。
如果資料庫模式中每個關係模式都是bcnf,則稱為bcnf的資料庫模式。
定理4.9 如果r是bcnf模式,那麼r也是3nf模式。
乙個好的模式設計方法應符合三條原則:表達性、分離性和最小冗餘性。
表達性是指資料等價和語義等價問題,分別用無損分解和保持函式依賴來衡量。
分離性是將間接有聯絡的屬性放在不同的表中。
最小冗餘性是指分解後的模式個數和模式中的屬性總數盡可能最小。
資料庫複習(一)
資料庫複習(二)
資料庫複習(三)
資料庫複習(四)
資料庫複習 四 1 檢視 create view 建立檢視 定義乙個名稱 a 定義對應關係,檢視 不是真實的表,只能查資料,不能刪除資料 temp1 select from score where course id in 1,2 b 呼叫temp1 僅僅是把之前一張表的語句拿過來執行 select...
資料庫複習
這是本科資料庫課程的複習。考試內容主要是資料庫的基本概念,資料庫設計資料庫系統的優化和恢復。至於設計底層的資料庫管理系統原理,坑先挖了,日後補,是我計畫中的一門課程。目錄資料庫系統 一般由資料庫。資料庫管理系統 及其開發工具 應用系統 資料庫管理員構成。目的 儲存資訊並支援使用者檢索和更新所需的資訊...
資料庫複習
資料庫複習 2016年6月15日 21 34 main logical data model ldm 邏輯資料模型 1.邏輯資料模型的三要素 data structure 資料結構 data operation 資料操縱 data constraints 資料約束 2.關係模型的歷史 提出關係代數 ...