第6章 關係數據理論
針對具體問題,如何構造一個適合它的數據模式
數據庫邏輯設計的工具--關係數據庫的規範化理論
數據依賴是一個關係內部屬性與屬性之間的一種約束關係,這種約束關係是通過屬性間值得相等與否體現出來的數據間相關聯繫。它是現實世界屬性間相互聯繫的抽象,是數據內在的性質,是語義的的體現。
最重要的兩類數據依賴是函數依賴和多值依賴
存在問題:
- 數據冗餘 (浪費大量的存儲空間)
- 更新異常(Update Anomalies) (數據冗餘 ,更新數據時,維護數據完整性代價大。)
- 插入異常(Insertion Anomalies)
- 刪除異常(Deletion Anomalies)
一個好的模式應當不會發生插入異常、刪除異常和更新異常,數據冗餘應儘可能少
6.2 規範化
6.2.1 函數依賴
函數依賴和別的數據依賴一樣是語義範疇的概念,只能根據語義來確定一個函數依賴
注意:函數依賴不是指關係模式的某個或某些關係滿足的約束條件,而是指關係模式的一切關係均要滿足的約束條件
2.平凡函數依賴與非平凡函數依賴
3.完全函數依賴與部分函數依賴
4 傳遞函數依賴
6.2.2 碼
碼是關係模式中的一個重要概念
主屬性與非主屬性
包含在任何一個候選碼中的屬性,稱爲主屬性
不包含在任何碼中的屬性稱爲非主屬性或非碼屬性
全碼:整個屬性組是碼,稱爲全碼
具體可參考https://blog.csdn.net/qq_38900441/article/details/104616918
6.2.3 範式
範式是符合某一種級別的關係模式的集合
關係數據庫中的關係必須滿足一定的要求,滿足不同程度要求的爲不同範式
每一個分量必須是不可分的數據項,則稱爲第一範式
6.2.4 第二範式
6.2.5 3NF
6.2.6 BCNF
如果關係模式R屬於BCNF,必定有R屬於3NF
如果R屬於3NF,且R只有一個候選碼,則R必屬於BCNF。
6.2.7 多值依賴
- 對稱性
- 傳遞性
- 函數依賴可以看作是多值依賴的特殊情況
6.2.8 4NF
4NF就是限制關係模式的屬性之間不允許有非平凡且非函數依賴的多值依賴
6.2.9
規範化小結
規範化的基本思想是逐步消除數據以來中不合適的部分,按照"一事一地"的模式設計原則
6.3 數據依賴的公理系統
閉包:R<U, F>中爲F邏輯蘊涵的函數依賴的全體叫做F的閉包(closure)F+。
Armstrong公理系統是有效的、完備的。這裏的有效性指的是:根據該公理由F出發推導出來的每個函數依賴一定都在F+中;完備性指的是:F+中的每一個函數依賴,必定可以由F通過該公理推導出來。
書上191頁
6.4 模式的分解
- 分解具有無損連接性
- 分解要保持函數依賴
- 分解機要保持函數依賴,又要具有無損連接性
習題:略