1 / 31

Chapter 7

Chapter 7. 正規化. 大綱. 修改異常 函數相依 主要正規形式 關聯獨立 實務考量. 修改異常. 非預期的副效應 插入、修改和刪除過多的資料 過多冗餘所造成 一個地方一件事實. Big 大學資料庫表格. 函數相依. 表格中對可能某些列的限制 像 FK 和 PK 的數值中立 判定 了解商業法則. FD 定義. X  Y X ( 函數上 ) 決定 Y X: 左邊 (LHS) 或決定因子 每一個 X 值, 最多有一個 Y 值 與候補鍵相似. FD 圖形和序列.

Télécharger la présentation

Chapter 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7 正規化

  2. 大綱 • 修改異常 • 函數相依 • 主要正規形式 • 關聯獨立 • 實務考量

  3. 修改異常 • 非預期的副效應 • 插入、修改和刪除過多的資料 • 過多冗餘所造成 • 一個地方一件事實

  4. Big 大學資料庫表格

  5. 函數相依 • 表格中對可能某些列的限制 • 像 FK和PK 的數值中立 • 判定 • 了解商業法則

  6. FD 定義 • X  Y • X (函數上) 決定Y • X: 左邊(LHS) 或決定因子 • 每一個X值,最多有一個Y值 • 與候補鍵相似

  7. FD 圖形和序列 StdSSN  StdCity, StdClass OfferNo  OffTerm, OffYear, CourseNo, CrsDesc CourseNo  CrsDesc StdSSN, OfferNo  EnrGrade

  8. 資料中的 FD • 根據資料證明不得存在 (不是不存在) • 兩列有相同的X 值但不同的Y 值

  9. 正規化 • 移除不必要冗餘的過程 • 應用正規形式 • 指出FD • 決定到底FD 是否為正規形式 • 如果有違例時,分割表格以滿足正規形式

  10. 正規形式的關聯

  11. 1NF • SQL:1999 資料庫的起始點 • 沒有重複的群組: 單一層的橫列

  12. 2NF/3NF 的組合定義 • 鍵欄位: 候補鍵或部分的候補鍵 • 可比擬為傳統的正義誓言 • 每一個非鍵欄位依賴一個鍵、整個鍵,就只是鍵 • 通常分開定義

  13. 2NF • 每一個非鍵欄位依賴整個鍵,不是部分鍵 • 違例 • 部分鍵  非鍵 • 違例只對組合鍵而言

  14. 2NF 範例 • Big 大學資料庫表格的許多違例 • StdSSN  StdCity, StdClass • OfferNo  OffTerm, OffYear, CourseNo, CrsDesc • 分割表格 • UnivTable1 (StdSSN, StdCity, StdClass) • UnivTable2 (OfferNo, OffTerm, OffYear, CourseNo, CrsDesc)

  15. 3NF • 每一個非鍵欄位只依賴鍵,不是非鍵欄位 • 違例: 非鍵  非鍵 • 替代的公式化 • 沒有遞移的FD • A  B, B  C 那麼A  C • OfferNo  CourseNo, CourseNo  CrsDesc then OfferNo  CrsDesc

  16. 3NF 範例 • UnivTable2 的一個違例 • CourseNo  CrsDesc • 分割表格 • UnivTable2-1 (OfferNo, OffTerm, OffYear, CourseNo) • UnivTable2-2 (CourseNo, CrsDesc)

  17. BCNF • 每一個決定因子必須是候補鍵 • 較簡易的定義 • 應用簡易綜合程序 • 某些特例不在 3NF 範圍內 • 部分鍵  部分鍵 • 非鍵  部分鍵 • 特例不多見

  18. BCNF 範例 • Big 大學資料庫的許多違例 • StdSSN  StdCity, StdClass • OfferNo  OffTerm, OffYear, CourseNo • CourseNo  CrsDesc • 分割成四個表格

  19. 簡易綜合程序 • 自 LHS 移除無關的欄位 • 移除衍伸的FD • 群組FD ,每一個群組有相同的決定因子 • 對於每一個FD 群組,以決定因子做為製作一個表格的主鍵 • 合併表格,其中一個表格含有另一個表格的所有欄位

  20. 簡易綜合範例 • 以第7 張投影片的 FD開始 • 步驟 1: 沒有不相關的欄位 • 步驟2: 移除OfferNo  CrsDesc • 步驟3: LHS 已經排妥 • 步驟 4: 四個表格(Student, Enrollment, Course, Offering) • 步驟5: 沒有冗餘表格

  21. 多重候補鍵 • 多重候補鍵並沒有違背 3NF或 BCNF • 簡易綜合程序的步驟5產生多重候補鍵的表格 • 不能因為它有多重候補鍵就不應分割表格 • 分割表格不一定就會影響查詢效能

  22. 關聯獨立和 4NF • M 向關聯可自二元關聯衍伸而得 • 分割為二元關聯 • 特殊的問題 • 4NF 與FD 無關

  23. 關聯獨立的問題

  24. 關聯獨立的解決方法

  25. 關聯獨立解決方法延伸

  26. MVDs 和 4NF • MVD: 不易識別 • A  B | C (多重決定) • A 牽涉到B 和C 的值有關 • B 和C 不相依 • 非顯然MVD: 也不是FD • 4NF: 沒有非顯然MVD

  27. MVD 表示法 已知線上的兩列, 如果MVD為真,則線下的兩列在表格裡面 A  B | C OfferNo  StdSSN | TextNo

  28. 較高層次的正規形式 • M 向關聯的5NF • DKNF: 完全的正規形式 • DKNF 是一個理想的,但不切實際的正規形式

  29. 正規化的角色 • 精鍊 • 使用於ERD 之後 • 應用於表格設計或ERD • 初始設計 • 紀錄屬性和FD • 沒有初始的ERD • 正規化後,或可反向 ERD 工程

  30. 正規化目標 • 更新偏差 • 資料庫沒有更新就不需考慮(資料倉儲) • 去正規化 • 蓄意違背正規化 • 有些FD 會導致異常 • 可改善效能

  31. 摘要 • 注意不需要的冗餘 • FD 是重要的限制 • 追求BCNF • 使用CASE 工具處理大型問題 • 資料庫開發的重要工具 • 專注於正規化目標

More Related