网站大量收购独家精品文档,联系QQ:2885784924

第三章正规化概念与应用.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章正规化概念与应用

* Relation ? Normalization 2NF ?去除部份相依性 訂單檔:訂單代號、訂單日、出貨日、折扣、出貨地點、客戶代號、發票地址 產品檔:產品代號、品名、單價 產品訂單檔:產品代號、訂單代號、數量 3NF ?去除遞移相依性 訂單檔:訂單代號、訂單日、出貨日、折扣、出貨地點、客戶代號 客戶檔:客戶代號、發票地址 * ? 總結 資料庫正規化可降低資料重複性 (Data Redundancy)。 正規化亦可消除某些在資料插入、刪除或更新時所衍生的異常(Anomalies)問題。 * 補 充 * 承繼先前 “顧問表格” 的範例: 已知此關聯: 沒有存在非鍵值屬性部份功能相依於主鍵,所以為2NF的關聯 非鍵值屬性間不存在遞移相依性,所以為3NF的關聯 Consultant Problem Client ? 深入討論BCNF * 然而,上述的關係是否還有隱含其它的關係?? 有, {Client, Consultant} → Problem 如何得知? 利用反身性,則: {Client, Consultant} → Consultant 已知Consultant → Problem 利用遞移性,則: {Client, Consultant} → Consultant 與 Consultant → Problem 可推得{Client, Consultant} → Problem * 由BCNF的基本定義,再加上所推導出的隱含關係後,我們可以得知當有下述情況時,就必須採行BCNF正規化: 關聯R有兩個(以上) 候選鍵,且這些候選鍵是由複合屬性所構成 這些候選鍵的某些屬性是共有的 (重疊;Overlapped) * 範例 假設關聯R(A, B, C, D)的功能相依性如下: 檢視此關聯: 沒有存在非鍵值屬性部份功能相依於主鍵,所以為2NF的關聯 非鍵值屬性間不存在遞移相依性,所以為3NF的關聯 有多個複合屬性的候選鍵,且為重疊,所以不為BCNF的關聯 A B C D A B C D * 解1: 可分解成 R1(A, D)和R2(A, B, C) R1的功能相依性有:A→D與D→A R2的功能相依性有:AB →C 此為無損分解 (∵ D→A 且AB →C ,∴BD →C) 解2: 可分解成 R1(A, D)和R2(B, C,D) R1的功能相依性有:A→D與D→A R2的功能相依性有:BD →C 此為無損分解 (∵ A→D 且BD →C ,∴AB →C) * ? 多值相依性與第四正規化 (4NF) 第四階正規化型式的基礎是「多值相依」(Multi-valued Dependency, MVD),這是在1977年所提出,屬於功能相依的廣義解釋。或者,功能相依是多值相依的一種特例。 多值相依性 (Multi-valued Dependency, MVD): 假設關聯R(A, B, C)中,每個A值可以對應到多個B值,但與C完全無關,則稱A→→B (A多值決定B)。 或每個A值可以對應到多個C值,但與B完全無關,則稱A→→C (A多值決定C) 多值相依的先決條件是關聯擁有3個(以上)的屬性。 * 例如:一門課可能由多位老師授課,每一門課可以使用多本教課書,儲存這些資料的Course_Instructor_Textbook關聯表,簡稱為CIT,如下圖所示(在此的相依不是指功能相依): Course Instructor Textbook 物件導向程式設計 溫老師 陳老師 Java2程式設計教學 物件導向程式設計 程式語言 溫老師 C++程式設計教學 Java2程式設計教學 VB.net程式設計教學 * 上述CIT關聯可透過對應關係改寫: Course Instructor Textbook 物件導向程式設計 溫老師 陳老師 Java2程式設計教學 物件導向程式設計 程式語言 溫老師 C++程式設計教學 Java2程式設計教學 VB.net程式設計教學 Course Instructor Textbook 物件導向程式設計 溫老師 Java2程式設計教學 物件導向程式設計 溫老師 物件導向程式設計 物件導向程式設計 陳老師 Java2程式設計教學 物件導向程式設計 陳老師 物件導向程式設計 程式語言 溫老師 C++程式設計教學 程式語言 溫老師 Java2程式設計教學 程式語言 溫老師 VB.net程式設計教學 * 多值相依所產生的異常 (Anomalies) 新增記錄時 由前面的對應關係,可得知若新增老師 “陳老師” 教授 “程式語言”,雖然只有一門課,但是需要同時新增3筆值組,每一個值組對應到一本教課書,否則就會產生資料不一致的問題。 Course Instructor Textbook 物

文档评论(0)

daoqqzhuan2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档