關係模式由五部分組成,是乙個五元組:r(u, d, dom, f)
作為二維表,關係要符合乙個最基本的條件:**每個分量必須是不可分開的資料項。**滿足了這個條件的關係模式就屬於第一正規化(1nf)
資料依賴
是現實世界屬性間相互聯絡的抽象
是資料內在的性質
是語義的體現
資料依賴的主要型別
函式依賴
sname=f(sno),sdept=f(sno)
即sno函式決定sname
sno函式決定sdept
記作sno→sname,sno→sdept
關係模式student中存在的問題
(1)資料冗餘 浪費大量的儲存空間
(2)更新異常(update anomalies)
資料冗餘 ,更新資料時,維護資料完整性代價大。
(3)插入異常(insertion anomalies)
應該插入的資料未被插入
(4)刪除異常(deletion anomalies)
原因由存在於模式中的某些資料依賴引起的。
解決方法
用規範化理論改造關係模式來消除其中不合適的資料依賴
設r(u)是乙個屬性集u上的關係模式,x和y是u的子集。若對於r(u)的任意乙個可能的關係r,r 中不可能存在兩個元組在x上的屬性值相等, 而在y上的屬性值不等, 則稱「x函式確定y」或「y函式依賴於x」,記作x→y。
x→y,但y⊈x則稱x→y是非平凡的函式依賴。
x→y,但y⊆x 則稱x→y是平凡的函式依賴。
對於任一關係模式,平凡函式依賴都是必然成立的,它不反映新的語義。
若x→y,則x稱為這個函式依賴的決定因素(determinant)。
若x→y,y→x,則記作x←→y。
若y不函式依賴於x,則記作
在r(u)中,如果x→y,並且對於x的任何乙個真子集x』, 都有完全函式依賴,記作
若x→y,但y不完全函式依賴於x,則稱y對x部分函式依賴,記作
在r(u)中,如果x→y(y⊈x),傳遞函式依賴(transitive functional dependency)。記為:
注: 如果y→x, 即x←→y,則z直接依賴於x,而不是傳遞函式依賴。
設k為r中的屬性或屬性組合。若
如果u部分函式依賴於k,即
若關係模式r有多個候選碼,則選定其中的乙個做為主碼(primary key)。
主屬性與非主屬性
包含在任何乙個候選碼中的屬性 ,稱為主屬性(prime attribute)
不包含在任何碼中的屬性稱為非主屬性(nonprime attribute)或非碼屬性(non-key attribute)
全碼:整個屬性組是碼,稱為全碼(all-key)
關係模式 r中屬性或屬性組x 並非 r的碼,但 x 是另乙個關係模式的碼,則稱 x 是r 的外部碼(foreign key)也稱外碼
主碼與外部碼一起提供了表示關係間聯絡的手段
正規化是符合某一種級別的關係模式的集合。
關聯式資料庫中的關係必須滿足一定的要求。滿足 不同程度要求的為不同正規化。
正規化的種類:
第一正規化(1nf)
第二正規化(2nf)
第三正規化(3nf)
bc正規化(bcnf)
第四正規化(4nf)
第五正規化(5nf)
各種正規化之間存在聯絡:
某一關係模式r為第n正規化,可簡記為r∈nnf。
乙個低一級正規化的關係模式,通過模式分解(schema decomposition)可以轉換為若干個高一級正規化的關係模式的集合,這種過程就叫規範化(normalization)。
若關係模式r∈1nf,並且每乙個非主屬性都完全函式依賴於任何乙個候選碼,則r∈2nf
單屬性候選碼最低滿足2nf
乙個關係模式不屬於2nf,會產生以下問題:
插入異常
如果插入乙個新學生,但該生未選課,即該生無cno,由於插入元組時,必須給定碼值,因此插入失敗。
刪除異常
如果s4只選了一門課c3,現在他不再選這門課,則刪除c3後,整個元組的其他資訊也被刪除了。
修改複雜
如果乙個學生選了多門課,則sdept,sloc被儲存了多次。如果該生轉系,則需要修改所有相關的sdept和sloc,造成修改的複雜化。
出現這種問題的原因
例子中有兩類非主屬性:
一類如grade,它對碼完全函式依賴
另一類如sdept、sloc,它們對碼不是完全函式依賴
解決方法:
用投影分解把關係模式s-l-c分解成兩個關係模式
sc(sno,cno,grade)
s-l(sno,sdept,sloc)
設關係模式r∈1nf,若r中不存在這樣的碼x、屬性組y及非主屬性z(z ⊇ y), 使得x→y,y→z成立,
即不存在傳遞依賴
無非主屬性碼最少屬於第三正規化
非鍵屬性不能依賴於其他非鍵屬性
bcnf是修正的第三正規化,有時也稱為擴充的第三正規化。
設關係模式r∈1nf,若x →y且y ⊆ x時x必含有碼,則r∈bcnf。
換言之,在關係模式r中,如果每乙個決定屬性集都包含候選碼,則r∈bcnf。
bcnf的關係模式所具有的性質
如果乙個關聯式資料庫中的所有關係模式都屬於bcnf,那麼在函式依賴範疇內,它已實現了模式的徹底分解,達到了最高的規範化程度,消除了插入異常和刪除異常。
如果乙個關聯式資料庫中的所有關係模式都屬於bcnf,那麼在函式依賴範疇內,它已實現了模式的徹底分解,達到了最高的規範化程度,消除了插入異常和刪除異常。
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-dl8yvzbq-1608881374371)(c:\users\12548\documents\github\notebooks\課程筆記\資料庫\第六章 關係資料理論.assets\image-20201206201224154.png)]
資料庫概論 第六章 關聯式資料庫理論
6.2 規範化 多值依賴 mvd 碼正規化 2nf3nf bcnf 4nf可能出現的題型 6.3 資料依賴的公理系統 beeri,fagin,howard提出的推理規則 函式依賴集的閉包 語義上的概念 屬性集的閉包 語法上的概念 極小函式依賴集 6.4 模式分解 模式分解的保持函式依賴性 外延 關係...
關係資料理論
關係資料模式可能存在的問題是 1.資料冗餘 2.更新異常 3.插入異常 4.刪除異常乙個好的關係模式應當不會發生插入異常 刪除異常和更新異常,資料冗餘應該盡可能的少。函式依賴和別的資料依賴一樣是語義範疇的概念,只能根據語義來確定乙個函式依賴。若r屬於1nf,且每乙個非主屬性完全函式依賴於任何乙個候選...
理論篇 第六章 元資料
阿里常見的技術元資料 1 分布式計算系統儲存元資料,如maxcompute表 列 分割槽等資訊。記錄了表的表名 分割槽資訊 責任人資訊 檔案大小 表型別 生命週期,以及列的欄位名 字段型別 字段備註 是否是分割槽欄位等系統。2 分布式計算系統執行元資料,如maxcompute上所有作業執行等資訊 類...