數(shù)據(jù)依賴與關系模式規(guī)范化.ppt_第1頁
數(shù)據(jù)依賴與關系模式規(guī)范化.ppt_第2頁
數(shù)據(jù)依賴與關系模式規(guī)范化.ppt_第3頁
數(shù)據(jù)依賴與關系模式規(guī)范化.ppt_第4頁
數(shù)據(jù)依賴與關系模式規(guī)范化.ppt_第5頁
免費預覽已結束,剩余47頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第10章數(shù)據(jù)依賴與關系模式規(guī)范化 2008 12 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 2 目錄Contents 10 1概述10 2函數(shù)依賴與范式10 3多值依賴與范式10 4模式分解理論 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 3 10 1概述 10 1 1關系模式的設計10 1 2 不好的 Bad 關系模式10 1 3如何設計 好的 關系模式10 1 4權衡 規(guī)范化 性能 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 4 10 1 1關系模式的設計 概念回顧關系描述實體 屬性 實體間的聯(lián)系 從形式上看 它是一張二維表 是所涉及屬性的笛卡兒乘積的一個子集 關系模式運用關系數(shù)據(jù)模型對一個企業(yè) 組織的一組數(shù)據(jù)的結構 聯(lián)系和約束進行描述的結果 實際上是用來定義關系的 關系數(shù)據(jù)庫基于關系模型的數(shù)據(jù)庫 利用關系來描述現(xiàn)實世界 從形式上看 它由一組關系組成 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 5 10 1 1關系模式的設計 關系模式的設計 成功開發(fā)數(shù)據(jù)庫應用系統(tǒng)的關鍵DB主要用于支持數(shù)據(jù)密集型應用 DataIntensiveApplications 數(shù)據(jù)密集型應用的核心問題是 DB設計DB設計 結構方面 數(shù)據(jù)模式 DataSchemas e g aSetofRelationalSchemas面向過程的方法 Process oriented e g SA SD面向數(shù)據(jù)的方法 Data oriented e g IEM 數(shù)據(jù)模型 DataModel e g RelationalModel目標 設計一個 好的 Good 關系模式 關系數(shù)據(jù)庫的邏輯設計 But Whatisagoodrelationalschema 數(shù)據(jù)庫邏輯設計的工具 關系數(shù)據(jù)庫的規(guī)范化理論 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 6 10 1 2 不好的 Bad 關系模式 1 模式設計同一個數(shù)據(jù)庫系統(tǒng)可以有多種不同的模式設計方案如假設一個學生數(shù)據(jù)庫中有以下屬性 學號 SNO 課程號 CNO 成績 G 任課教師姓名 T 教師所在系名 DEPT 這些數(shù)據(jù)具有下列語義 學號是一個學生的標識 課程號是一門課程的標識 這些標識與其表的學生和課程分別一一對應 一位學生所修的每門課程都有一個成績 每門課程只有一位任課教師 但一位教師可以教多門課程 教師中沒有重名 每位教師只屬于一個系 可以采用的模式設計方案有多個 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 7 10 1 2 不好的 關系模式 方案一一個關系R SNO CNO G T DEPT 方案二三個關系R1 SNO CNO G R2 CNO T R3 T DEPT Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 8 10 1 2 不好的 關系模式 方案一對于關系模式R SNO CNO G T DEPT 的一個實例 R Table1 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 9 10 1 2 不好的 關系模式 方案二對于關系模式R1 SNO CNO G R2 CNO T R3 T DEPT 的一個實例 R1 R2 R3 Table2 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 10 10 1 2 不好的 關系模式 2不同模式設計方案的比較不同的模式設計方案對數(shù)據(jù)庫的影響是否相同 例 根據(jù)方案1所建立的數(shù)據(jù)庫如表1所示 根據(jù)方案2所建立的數(shù)據(jù)庫如表2所示 我們從下面幾個方面來比較這兩個數(shù)據(jù)庫 數(shù)據(jù)冗余度元組插入操作元組刪除操作元組更新操作 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 11 10 1 2 不好的 關系模式 經(jīng)過比較發(fā)現(xiàn) 表1具有如下問題 冗余 Redundancy 重復多次 C01 課的教師是 張樂 張樂 是 計算機 系的教師 對于方案二 則不存在數(shù)據(jù)冗余異常 Anomalies 更新異常 UpdateAnomalies 張樂 調(diào)到 土木 系 而只改了其中一個元組的值 出現(xiàn)數(shù)據(jù)不一致 M03 課的教師換成 楊萍 而只改了其中一個元組的值 出現(xiàn)數(shù)據(jù)不一致 對于方案二 只需分別修改R2和R3關系中的元組的值即可 不會出現(xiàn)數(shù)據(jù)不一致 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 12 10 1 2 不好的 關系模式 刪除異常 DeleteAnomalies C01 課不開了 需刪除表1中的前三個元組 張樂 是 計算機 系的教師的信息也隨著被刪除 對于方案二 我們可以僅在關系R1和R2關系中分別刪除課程為 C01 的元組信息 但不會誤刪除掉 張樂 是 計算機 系教師的信息 其所對應的元組仍然保留在關系R3中 插入異常 InsertAnomalies 如果需要新開設一門尚未有學生選修的課程 C05 許卓明 則無法構造出一個由SNO CNO G T DEPT屬性值所組成的新元組 在表1中就無法執(zhí)行元組的插入操作 對于方案二 我們可以直接將元組 C05 許卓明 插入到關系R2中 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 13 10 1 2 不好的 關系模式 因此 不同的模式設計方案有好壞的區(qū)分 好的設計方案應該是 既具有合理的數(shù)據(jù)冗余度 又沒有插入和刪除等異?,F(xiàn)象的出現(xiàn) 3在不同的設計結果之間產(chǎn)生區(qū)別的原因數(shù)據(jù)庫的各屬性之間是互相關聯(lián)的 它們互相依賴 互相制約 構成一個結構嚴密的整體 要設計出一個好的關系模式 必須從數(shù)據(jù)庫中所有屬性的語義上進行分析 從語義上入手分清每個屬性的語義含義及其相互之間的依存關系 進而將那些相互依賴密切的屬性組合在一起構成一個關系模式 避免對屬性的松散組合所引起的 排它性 從而可以降低數(shù)據(jù)冗余度 避免上述異常現(xiàn)象的產(chǎn)生 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 14 10 1 2 不好的 關系模式 關系模式中數(shù)據(jù)的 語義 不單純 在此 語義 專指問題空間中固有的 相對穩(wěn)定的數(shù)據(jù)依賴 DD 關系 數(shù)據(jù)依賴是通過一個關系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關系 是現(xiàn)實世界屬性間相互聯(lián)系的抽象 是語義的體現(xiàn) e g 函數(shù)依賴 FunctionalDependency FD 一個 組屬性X的值是否決定另一個 組屬性Y的值 X Y多值函數(shù)依賴 MultivaluedDependency MVD 連接依賴 JoinDependency JD Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 15 10 1 2 不好的 關系模式 由于在關系模式R中存在某些數(shù)據(jù)依賴 引起數(shù)據(jù)冗余和數(shù)據(jù)更新異常 解決方法 通過分解關系模式來消除其中不合適的數(shù)據(jù)依賴 即關系規(guī)范化 對以上模式R SNO CNO G T DEPT 有以下三個函數(shù)依賴 1 SNO CNO G2 CNO T3 T DEPT相應的表示了三個事實 為何不用三個模式呢 R1 SNO CNO G 2 R2 CNO T 3 R3 T DEPT Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 16 10 1 3如何設計 好的 關系模式 如何設計 好的 關系模式 規(guī)范化 模式分解 范式規(guī)范化 Normalization 將一個關系模式按 語義單純化 的原則進行合理的分解 稱模式分解 Decomposition 以最終達到 一事一地 OneFactinOnePlace 在每個關系中 屬性與屬性之間一定要滿足某種內(nèi)在的語義聯(lián)系 這被稱為關系的規(guī)范化 模式分解的條件 準則起碼 分解是無損的 Lossless 分解前后要等價 即對任何相同的查詢總是產(chǎn)生相同的結果 可通過 連接 分解后的諸關系重構原關系 理想 分解是保持依賴的 PreservingDependencies 這需進一步論述 一個關系中 一個實體 聯(lián)系 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 17 10 1 3如何設計 好的 關系模式 范式 NormalForm 規(guī)范化 即模式分解 程度的一種測度 根據(jù)對屬性間所存在的內(nèi)在語義聯(lián)系要求的不同 又可以將關系的規(guī)范化分為若干個級別 這被稱為范式 第一范式 1NF 第二范式 2NF 函數(shù)依賴 FD 范疇 第三范式 3NF Boyce Codd范式 BCNF 第四范式 4NF 多值函數(shù)依賴 MVD 范疇第五范式 5NF 連接依賴 JD 范疇一個關系模式R達到x范式的程度稱 RisinxNF 記為 R xNF 否則 稱 RviolatesxNFcondition 記為 R xNF 高 低 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 18 10 1 3如何設計 好的 關系模式 數(shù)據(jù)依賴理論函數(shù)依賴 FD FunctionalDependency 1970年 E F Codd1972 1974年 Codd Casey Bernstein Armstrong完全 部分FD 平凡 非平凡FD 直接 傳遞FD鍵 key 1974年 Armstrong公理系統(tǒng)FD的邏輯蘊涵FD的形式化推理規(guī)則集多值依賴 MVD Multi ValuedDependency 1976 1978年 Zaniolo Fagin Delobel Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 19 10 1 4權衡 規(guī)范化 性能 規(guī)范化程度并非越高越好程度一般到BCNF 3NF已足夠策略對更新頻繁 查詢較少的表 規(guī)范化 減少 異常 對查詢頻繁 更新較少的表 規(guī)范化 提高 性能 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 20 目錄Contents 10 1概述10 2函數(shù)依賴與范式10 3多值依賴與范式10 4模式分解理論 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 21 10 2函數(shù)依賴與范式 10 2 1函數(shù)依賴函數(shù)依賴完全 部分FD 平凡 非平凡FD 直接 傳遞FDArmstrong公理系統(tǒng)鍵 key 兩個算法 屬性集的閉包計算關鍵字的計算10 2 2與函數(shù)依賴有關的范式范式 1NF 2NF 3NF BCNF Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 22 10 2 1函數(shù)依賴 在一個關系模式R U 中 如果一部分屬性Y的取值依賴于另一部分屬性X的取值 則在屬性集X和屬性集Y之間存在著一種數(shù)據(jù)依賴關系 我們稱之為函數(shù)依賴 例1 在學生關系模式Student SNO Sname Sdept Sage 中就存在下面的幾組依賴關系 Sname 的取值依賴于 SNO 的取值 Sdept 的取值依賴于 SNO 的取值 Sage 的取值依賴于 SNO 的取值例2 在選課關系模式SC SNO CNO Grade 中 Grade 的取值依賴于 SNO CNO 的取值 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 23 10 2 1函數(shù)依賴 定義 函數(shù)依賴 決定子 Determinant 設有關系模式R 其中U是屬性集 A B是U的子集 若對于關系模式R U 的任一關系實例r中的任兩個元組t和s t A s A t B s B 成立 則稱B函數(shù)依賴于A或A函數(shù)決定B 記為 A B A稱為決定子 亦可記為 A1 A2 An B1 B2 Bm Ai Bj為單個屬性 注 A不函數(shù)決定B 記為A B 若A B B A 則稱一一對應 記為AB Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 24 10 2 1函數(shù)依賴 分裂 合并規(guī)則 TheSplitting CombiningRule X1 X2 Xn Y1 Y2 YmX1 X2 Xn Y1 X1 X2 Xn Ym Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 25 10 2 1函數(shù)依賴 函數(shù)依賴是語義范疇上的概念 只有根據(jù)屬性間固有的語義聯(lián)系才能歸納出與客觀事實相符合的函數(shù)依賴關系 而不是僅從現(xiàn)有的一個或若干個關系實例中得出的結論 特定的關系實例雖然不能用于函數(shù)依賴的發(fā)現(xiàn) 但可以用于否定某些函數(shù)依賴 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 26 10 2 1函數(shù)依賴 函數(shù)依賴反映的是同一個關系中的兩個屬性子集之間在取值上的依存關系 這種依存關系實際上也是一種數(shù)據(jù)完整性約束 因此 我們也可以通過對數(shù)據(jù)完整性約束條件的分析來尋找屬性之間的函數(shù)依賴關系 一個學生數(shù)據(jù)庫中有以下屬性 學號 SNO 課程號 CNO 成績 G 任課教師姓名 T 教師所在系名 DEPT 這些數(shù)據(jù)具有下列語義 學號是一個學生的標識 課程號是一門課程的標識 這些標識與其調(diào)表的學生和課程分別一一對應 一位學生所修的每門課程都有一個成績 每門課程只有一位任課教師 但一位教師可以教多門課程 教師中沒有重名 每位教師只屬于一個系 有以下三個函數(shù)依賴 1 SNO CNO G2 CNO T3 T DEPT Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 27 10 2 1函數(shù)依賴 定義 平凡依賴 非平凡依賴 完全非平凡依賴設A B是某模式的兩個屬性集 對函數(shù)依賴A B 若BA 則稱此函數(shù)依賴為平凡依賴 TrivialDependency 若B A 則稱此函數(shù)依賴為非平凡依賴 NontrivialDependency 若B A 則稱此函數(shù)依賴為完全非平凡依賴 CompletelyNontrivialDependency 例 在關系SC Sno Cno Grade 中 非平凡函數(shù)依賴 Sno Cno Grade平凡函數(shù)依賴 Sno Cno Sno Sno Cno Cno對于任一關系模式 平凡函數(shù)依賴都是必然成立的 它不反映新的語義 因此若不特別聲明 我們總是討論非平凡函數(shù)依賴 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 28 10 2 1函數(shù)依賴 平凡依賴規(guī)則 TheTrivial dependencyRule A BA B A 定義 完全依賴 部分依賴設A B是某模式的兩個不同屬性集 若有A B 且不存在CA 使C B 則稱A B為完全依賴 FullDependency 記為 AB 否則稱為部分依賴 PartialDependency 記為 AB 例 在關系SC Sno Cno Grade 中 由于 Sno Grade Cno Grade 因此 Sno Cno Grade Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 29 10 2 1函數(shù)依賴 定義 傳遞依賴A B C是某模式的三個不同屬性集 若有 A B B A B C 則稱C傳遞函數(shù)依賴于A 記為 AC 為了使得函數(shù)依賴在表示形式上的簡單化 傳遞函數(shù)依賴與非傳遞函數(shù)依賴在表示形式上沒有區(qū)別 傳遞規(guī)則 TheTransitiveRule A B B CA C 例 在關系Std Sno Sdept Deanname 中 有 Sno Sdept Sdept Deanname 所以 Deanname傳遞函數(shù)依賴于Sno 即Sno Deanname Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 30 10 2 2范式 回顧概念鍵 key 在關系模式R U 中 如有K U且滿足 K U 則K稱為R的一個侯選鍵 CandidateKey 簡稱鍵 也就是說 決定性 這個屬性 組 K的值唯一地決定了其他屬性的值 因而也決定了整個元組 最小性條件 這個屬性 組 K的任何真子集均不滿足決定性條件 主鍵 PrimaryKey 在關系模式機器實現(xiàn)時 若關系模式R有多個候選碼 則選定其中的一個做為主鍵 其他鍵稱為候補鍵 AlternateKey 超鍵 Superkey 關系模式中包含鍵的屬性 組 稱為超鍵 全鍵 allkey 主鍵是由所有的屬性構成的 這稱為全鍵 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 31 10 2 2范式 回顧概念 cont 主屬性 集 由關系模式R的所有鍵中的屬性所構成的集合被稱為關系模式R的主屬性集 主屬性集中的屬性被稱為關系模式R的主屬性 非主屬性 集 由主屬性集之外的其它屬性所構成的集合被稱為關系模式R的非主屬性集 非主屬性集中的屬性被稱為關系模式R的非主屬性 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 32 10 2 2范式 范式是符合某一種級別的關系模式的集合 關系數(shù)據(jù)庫中的關系必須滿足一定的要求 滿足不同程度要求的為不同范式 范式的種類 第一范式 1NF 第二范式 2NF 第三范式 3NF BC范式 BCNF 第四范式 4NF 第五范式 5NF 各種范式之間存在聯(lián)系 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 33 10 2 2范式 定義 1NF設有一個關系模式R 若R的任一關系實例r中的屬性值均是原子數(shù)據(jù) 屬性都是不可分的基本數(shù)據(jù)項 則稱R屬于1NF 記為R 1NF 注1NF條件是傳統(tǒng)關系數(shù)據(jù)庫系統(tǒng)的基本要求 目前大多數(shù)RDBMS均要求如此 但是滿足第一范式的關系模式并不一定是一個好的關系模式 突破這一條件稱非第一范式 non firstnormalform NF2 條件 E R中的非原子屬性在轉化為關系時要這樣處理 對集合屬性 縱向展開對元組屬性 橫向展開 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 34 10 2 2范式 定義 2NF設有一個關系模式R 1NF 若R的每個非主屬性均完全函數(shù)依賴于鍵 則稱R屬于2NF 記為R 2NF 注A R 2NFR 1NFB 考察R SNO CNO G T DEPT 1NF 因SNO CNO G CNO T T DEPTCNO DEPTCNO T DEPT故Key SNO CNO 但KeyT DEPT 故R 2NF Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 35 10 2 2范式 R SNO CNO G T DEPT 不是一個好的關系模式數(shù)據(jù)冗余度大插入異常刪除異常更新復雜原因T DEPT部分函數(shù)依賴于鍵 SNO CNO Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 36 10 2 2范式 解決方法模式分解 消除這些部分函數(shù)依賴R1 SNO CNO G 2NF R2 CNO T DEPT 2NF 但R2仍有問題 c01t1d1c02t1d1冗余c03t1d1c04t2d2原因 Key CNO 因T DEPT 而T非超鍵 DEPT又非主屬性 采用投影分解法將一個1NF的關系分解為多個2NF的關系 可以在一定程度上減輕原1NF關系中存在的插入異常 刪除異常 數(shù)據(jù)冗余度大 修改復雜等問題 將一個1NF關系分解為多個2NF的關系 并不能完全消除關系模式中的各種異常情況和數(shù)據(jù)冗余 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 37 10 2 2范式 定義 3NF設有一個關系模式R 1NF 若R的任一非平凡函數(shù)依賴X A滿足下列兩個條件之一 1 X是超鍵 2 A是主屬性 則稱R屬于3NF 記為R 3NF 注A 若R 3NF 意味著 A非主屬性 X又非超鍵 1 X是鍵的真子集 非主屬性A部分依賴于鍵 2 X既非超鍵又非鍵的真子集 Key X X AKey A 即 非主屬性A傳遞依賴于鍵 故3NF消除了非主屬性對鍵的部分依賴和傳遞依賴 B R 3NFR 2NF t Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 38 10 2 2范式 例 將關系模式R SNO CNO G T DEPT 分解得到R1 SNO CNO G 2NF R2 CNO T DEPT 2NF 由于關系模式R2中存在非主屬性DEPT對鍵的傳遞依賴 所以采用投影分解法 把R2分解為兩個關系模式 以消除傳遞函數(shù)依賴 R21 CNO T 3NF R22 T DEPT 3NF 即CNO T T DEPT Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 39 10 2 2范式 若R 3NF 則R的每一個非主屬性既不部分函數(shù)依賴于候選鍵也不傳遞函數(shù)依賴于鍵 采用投影分解法將一個2NF的關系分解為多個3NF的關系 可以在一定程度上解決原2NF關系中存在的插入異常 刪除異常 數(shù)據(jù)冗余度大 修改復雜等問題 將一個2NF關系分解為多個3NF的關系后 并不能完全消除關系模式中的各種異常情況和數(shù)據(jù)冗余 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 40 10 2 2范式 定義 BCNF設有一個關系模式R 1NF 若R的任一非平凡函數(shù)依賴X A滿足下列條件 決定子X必是超鍵 則稱R屬于BCNF 記為R BCNF 注 A R BCNFR 3NF B BCNF消除了 非主 主 屬性對鍵的部分依賴和傳遞依賴 C 關系模式達到BCNF后 在函數(shù)依賴范疇內(nèi)已徹底規(guī)范化了 并消除了冗余和異常 D 任何全鍵關系模式必屬于BCNFE 任何兩屬性關系模式必屬于BCNFF 關系模式無損分解成BCNF的策略 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 41 10 2 2范式 D 任何全鍵關系模式必屬于BCNF證明 設R A1 A2 An 是全鍵關系模式 即Key A1 A2 An 反證法 假設R BCNF 則必存在一非平凡函數(shù)依賴X Ai 而決定子X不是超鍵 注意 X A1 A2 An Ai X X A1 A2 An Ai A1 A2 Ai 1 Ai 1 An 故Key A1 A2 Ai 1 Ai 1 An 這與全鍵的條件矛盾 命題得證 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 42 10 2 2范式 E 任何兩屬性關系模式必屬于BCNF證明 設R A1 A2 是兩屬性關系模式 則有4種非平凡函數(shù)依賴的情形 1 無任何非平凡的函數(shù)依賴 無冒犯BCNF條件的函數(shù)依賴或R是全鍵 故R BCNF 2 A1A2 但A2A1 Key A1 唯一的決定子A1是超鍵 故R BCNF 3 A2A1 但A1A2 Key A2 唯一的決定子A2是超鍵 故R BCNF 4 A1A2 且A2A1 Key1 A1 Key2 A2 兩個決定子均是超鍵 故R BCNF Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 43 10 2 2范式 F 關系模式無損分解成BCNF的策略 啟發(fā)式算法設關系模式R XAB X A B均是R的屬性 子集 1 針對冒犯BCNF條件的某個非平凡函數(shù)依賴 XA X非超鍵 分解成兩個模式 R1 XA R2 BX 一般地 R1 BCNF R2 BCNF 2 對不屬于BCNF的模式R2 和R1 重復步驟 1 直到全部屬于BCNF為止 Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 44 10 2 2范式 例 M title year length color star star gender star add studio studio add studio class 根據(jù)通常的語義 有以下函數(shù)依賴 1 star star gender star add 2 studio studio add studio class 3 title year length color studio故Key title year star 因式 1 2 3 均冒犯BCNF條件 故M BCNF Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 45 10 2 2范式 模式分解對式 1 將M分解成 STAR star star gender star add BCNFM1 title year length color studio studio add studio class star 因M1的Key未變 且式 2 3 仍成立 故M1 BCNF 對式 2 將M1分解成 STUDIO studio studio add studio class BCNFM2 title year length color star studio 因M2的Key未變 且式 3 仍成立 故M2 BCNF 對式 3 將M2分解成 MOVIE title year length color studio BCNFSTARS IN title year star BCNF 全鍵關系模式 故 將M規(guī)范化成BCNF的一個無損分解為 STAR STUDIO MOVIE STARS IN Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論 46 關系模式規(guī)范化的基本步驟 關系模式規(guī)范化的基本步驟1NF 消除非主屬性對鍵的部分函數(shù)依賴2NF 消除非主屬性對鍵的傳遞函數(shù)依賴3NF 消除主屬性對鍵部分和傳遞函數(shù)依賴BCNF Lastupdate Dec 2008 LectureNotes PrinciplesofDatabasesSystems ByZhuomingXu第1部分數(shù)據(jù)庫系統(tǒng)引論

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論