chapter 7 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Chapter 7 PowerPoint Presentation
Download Presentation
Chapter 7

Loading in 2 Seconds...

  share
play fullscreen
1 / 31
molly-delgado

Chapter 7 - PowerPoint PPT Presentation

71 Views
Download Presentation
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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 工具處理大型問題 • 資料庫開發的重要工具 • 專注於正規化目標