Chapter 3 正規化與各種合併
課程內容 資料的操作異常 資料庫正規化 合併運算 德明財經科技大學 資訊科技系
資料的操作異常 德明財經科技大學 資訊科技系
資料的操作異常 為達到查詢和異動操作兩者之間的平衡點 對於一個不當的關聯要透過適當的『切割』成為數個關聯,可以避免掉不同異動的異常 要解決查詢上的不便,則可以使用數個相關的關聯(Relation),和彼此相關之關聯中的關聯性(Relationship),透過不同的『合併』方式,還原回原有的關聯模式或合併出所需要的資料,以解決關聯因切割後所造成查詢上的不方便性 德明財經科技大學 資訊科技系
資料的操作異常 新增異常(Insertion Anomaly) 刪除異常(Deletion Anomaly) 修改異常 Modification Anomaly) 德明財經科技大學 資訊科技系
原始資料表的設計 此單一資料表的設計以查詢資料而言非常方便,因為資料全在一個資料表內 德明財經科技大學 資訊科技系
新增異常 新增不完全的資料,造成異常 德明財經科技大學 資訊科技系
刪除異常 刪除三筆訂單細目後,供應商資料亦被完全刪除,造成異常 德明財經科技大學 資訊科技系
修改異常 修改某一個聯絡人資料後,造成資料不一致性之異常 怎麼解決: 正規化 德明財經科技大學 資訊科技系
正規化 1972年由Codd最早提出正規化的過程,而初期所提出的正規化稱之為『三正規化』 (Three Normal Form) 『第一正規化』 (First Normal Form,簡稱1NF) 『第二正規化』 (Second Normal Form,簡稱2NF) 『第三正規化』 (Third Normal Form,簡稱3NF) 由Boyce和Codd又針對3NF提出一加強型的正規化 稱之為Boyce-Codd Normal Form,簡稱為『BCNF』 後續又被提出了兩種新的正規化方式 依據『多重值相依性』 (Multi-Valued Dependency)理論的『第四正規化』 (Fourth Normal,簡稱4NF) 依據『合併相依性』 (Join Dependency)理論的『第五正規化』 (Fifth Normal Form,簡稱5NF) 德明財經科技大學 資訊科技系
正規化 正規化的處理順序與過程如下 後面的正規化,會包括前面正規化的結果 1NF → 2NF → 3NF → BCNF → 4NF → 5NF 後面的正規化,會包括前面正規化的結果 5NF 4NF BCNF 3NF 2NF 1NF 德明財經科技大學 資訊科技系
第一正規化 【定義】 藉由第一正規化後能符合單元屬性的一種方法 在一個關聯不允許有 去除多重屬性和組合屬性 藉由第一正規化後能符合單元屬性的一種方法 在一個關聯不允許有 多重值屬性(Multi-Valued Attribute) 組合式屬性(Composite Attribute) 設計一個關聯的時候,必須考量每一個屬性皆為『單值屬性』(Single-Valued Attribute)與『單元屬性』(Atomic Attribute) 多重屬性,必須將資料變成多筆值組的方式 組合屬性,要切割成數個不同基本的單元屬性 德明財經科技大學 資訊科技系
第一正規化 原始資料 德明財經科技大學 資訊科技系
第一正規化 去除多值屬性成為多筆資料 德明財經科技大學 資訊科技系
第二正規化 定義:去除部份相依性 功能相依 將資料表格切割,使得各資料表格都只包含完全相依性,稱為第二正規化 可分成完全功能相依與部份功能相依 兩個屬性集合A與B,倘若在功能上A可以決定B,或是B相依於A時,可以用A→ B來表示 如果A的組成可以更精簡,稱為部份功能相依 如果A的組成不能再精簡,稱為完全功能相依 將資料表格切割,使得各資料表格都只包含完全相依性,稱為第二正規化 德明財經科技大學 資訊科技系
FD2 : {供應商編號、產品編號} → {單價} FD3 : {供應商編號} → {供應商名稱,聯絡人,區域,區域代號} 德明財經科技大學 資訊科技系
如果 FD2 去除供應商編號 如果 FD2 去除產品編號 可併入FD1 可併入FD3 確認為部份功能相依 德明財經科技大學 資訊科技系
德明財經科技大學 資訊科技系
對應之資料表格切割結果 德明財經科技大學 資訊科技系
第三正規化 定義:找出遞移相依性並移除 遞移相依性 假設各資料表格的屬性存在有兩個功能相依性,分別為A → B,B → C,同時可推導出 A → C的關係,稱之為『遞移相依性』 (Transitive Functional Dependency) 德明財經科技大學 資訊科技系
and 遞移相依性 FD3 : {供應商編號} → {供應商名稱,聯絡人,區域,區域代號} {供應商編號} → {區域} {區域} → {區域代號} and 遞移相依性 德明財經科技大學 資訊科技系
3NF切割 德明財經科技大學 資訊科技系
資料表格 德明財經科技大學 資訊科技系
完整的功能相依性 德明財經科技大學 資訊科技系
完整的資料表格 德明財經科技大學 資訊科技系
正規化的步驟 去除多值屬性 去除所有相依性(部分與遞移) 德明財經科技大學 資訊科技系
合併運算 資料表格被切割之後,資料就散佈在各區,因此需要一套機制能將這些資料合併給使用者 主要以Select的運算進行 德明財經科技大學 資訊科技系