已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 數(shù)據(jù)庫基礎(chǔ) 本章要點 本章主要討論關(guān)系數(shù)據(jù)庫規(guī)范化理論 討論一個好的關(guān)系模式的標(biāo)準(zhǔn) 以及如何將不好的關(guān)系模式轉(zhuǎn)換成好的關(guān)系模式 并能保證所得到的關(guān)系模式仍能表達原來的語義 數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 數(shù)據(jù)庫設(shè)計是數(shù)據(jù)庫應(yīng)用領(lǐng)域的主要研究課題 數(shù)據(jù)庫設(shè)計的任務(wù)是在給定的應(yīng)用環(huán)境下 創(chuàng)建滿足用戶需求且性能良好的數(shù)據(jù)庫模式 建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng) 使之能有效地存儲和管理數(shù)據(jù) 滿足某公司或部門各類用戶業(yè)務(wù)的需求 數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 數(shù)據(jù)庫設(shè)計需要理論指導(dǎo) 關(guān)系數(shù)據(jù)庫規(guī)范化理論就是數(shù)據(jù)庫設(shè)計的一個理論指南 規(guī)范化理論研究了關(guān)系模式中各屬性之間的依賴關(guān)系及其對關(guān)系模式性能的影響 探討 好 的關(guān)系模式應(yīng)該具備的性質(zhì) 以及達到 好 的關(guān)系模式的方法 規(guī)范化理論為我們提供了判斷關(guān)系模式好壞的理論標(biāo)準(zhǔn) 幫助我們預(yù)測可能出現(xiàn)的問題 是數(shù)據(jù)庫設(shè)計人員的有力工具 同時也使數(shù)據(jù)庫設(shè)計工作有了嚴(yán)格的理論基礎(chǔ) 數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 本章主要討論關(guān)系數(shù)據(jù)庫規(guī)范化理論 討論一個好的關(guān)系模式的標(biāo)準(zhǔn) 以及如何將不好的關(guān)系模式轉(zhuǎn)換成好的關(guān)系模式 并能保證所得到的關(guān)系模式仍能表達原來的語義 數(shù)據(jù)庫設(shè)計是數(shù)據(jù)庫應(yīng)用領(lǐng)域的主要研究課題 數(shù)據(jù)庫設(shè)計的任務(wù)是在給定的應(yīng)用環(huán)境下 創(chuàng)建滿足用戶需求且性能良好的數(shù)據(jù)庫模式 建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng) 使之能有效地存儲和管理數(shù)據(jù) 滿足某公司或部門各類用戶業(yè)務(wù)的需求 數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 數(shù)據(jù)庫設(shè)計需要理論指導(dǎo) 關(guān)系數(shù)據(jù)庫規(guī)范化理論就是數(shù)據(jù)庫設(shè)計的一個理論指南 規(guī)范化理論研究了關(guān)系模式中各屬性之間的依賴關(guān)系及其對關(guān)系模式性能的影響 探討 好 的關(guān)系模式應(yīng)該具備的性質(zhì) 以及達到 好 的關(guān)系模式的方法 規(guī)范化理論為我們提供了判斷關(guān)系模式好壞的理論標(biāo)準(zhǔn) 幫助我們預(yù)測可能出現(xiàn)的問題 是數(shù)據(jù)庫設(shè)計人員的有力工具 同時也使數(shù)據(jù)庫設(shè)計工作有了嚴(yán)格的理論基礎(chǔ) 數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 本章主要討論關(guān)系數(shù)據(jù)庫規(guī)范化理論 討論一個好的關(guān)系模式的標(biāo)準(zhǔn) 以及如何將不好的關(guān)系模式轉(zhuǎn)換成好的關(guān)系模式 并能保證所得到的關(guān)系模式仍能表達原來的語義 數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 11 1函數(shù)依賴11 2關(guān)系規(guī)范化11 3關(guān)系模式分解的準(zhǔn)則 數(shù)據(jù)庫基礎(chǔ) 11 1函數(shù)依賴 數(shù)據(jù)的語義不僅表現(xiàn)為完整性約束 對關(guān)系模式的設(shè)計也提出了一定的要求 針對一個問題 如何構(gòu)造一個合適的關(guān)系模式 應(yīng)構(gòu)造幾個關(guān)系模式 每個關(guān)系模式由哪些屬性組成等 這都是數(shù)據(jù)庫設(shè)計問題 確切地講是關(guān)系數(shù)據(jù)庫的邏輯設(shè)計問題 首先我們看一下 關(guān)系模式中各屬性之間的聯(lián)系 數(shù)據(jù)庫基礎(chǔ) 11 1函數(shù)依賴 11 1 1函數(shù)依賴的基本概念11 1 2一些術(shù)語和符號11 1 3為什么要討論函數(shù)依賴 數(shù)據(jù)庫基礎(chǔ) 11 1 1函數(shù)依賴的基本概念 在關(guān)系數(shù)據(jù)庫中 討論函數(shù)或函數(shù)依賴注重的是語義上的關(guān)系 x函數(shù)決定y 或y函數(shù)依賴于x可表示為 X Y根據(jù)以上討論可以寫出較直觀的函數(shù)依賴定義 即如果有一個關(guān)系模式R A1 A2 An X和Y為 A1 A2 An 的子集 那么對于關(guān)系R中的任意一個x值 都只有一個y值與之對應(yīng) 則稱X函數(shù)決定Y 或Y函數(shù)依賴于X 數(shù)據(jù)庫基礎(chǔ) 11 1 1函數(shù)依賴的基本概念 例如 對學(xué)生關(guān)系模式Student Sno Sname Sdept Sage 有以下依賴關(guān)系Sno Sname Sno Sdept Sno Sage對學(xué)生選課關(guān)系模式SC Sno Cno Grade 有以下依賴關(guān)系 Sno Cno Grade 數(shù)據(jù)庫基礎(chǔ) 11 1 1函數(shù)依賴的基本概念 顯然 函數(shù)依賴討論的是屬性之間的依賴關(guān)系 它是語義范疇的概念 也就是說關(guān)系模式的屬性之間是否存在函數(shù)依賴只與語義有關(guān) 下面對函數(shù)依賴給出嚴(yán)格的形式化定義 設(shè)有關(guān)系模式R A1 A2 An r是R的任一具體關(guān)系 t1 t2是r中的任意兩個元組 如果由t1 X t2 X 可以推導(dǎo)出t1 Y t2 Y 則稱X函數(shù)決定Y 或Y函數(shù)依賴于X 記為X Y 數(shù)據(jù)庫基礎(chǔ) 11 1函數(shù)依賴 11 1 1函數(shù)依賴的基本概念11 1 2一些術(shù)語和符號11 1 3為什么要討論函數(shù)依賴 數(shù)據(jù)庫基礎(chǔ) 11 1 2一些術(shù)語和符號 下面給出在本章中經(jīng)常使用的一些術(shù)語和符號 設(shè)有關(guān)系模式R A1 A2 An X和Y為 A1 A2 An 的子集 則有以下結(jié)論 1 如果X Y 但Y不包含于X 則稱X Y是非平凡的函數(shù)依賴 如不作特別說明 我們總是討論非平凡函數(shù)依賴 2 如果Y函數(shù)不依賴于X 則記為 3 如果X Y 則稱X稱為決定因子 數(shù)據(jù)庫基礎(chǔ) 11 1 2一些術(shù)語和符號 4 如果X Y 并且Y X 則記為 5 如果X Y 并且對于x的一個任意真子集X 都有 則稱Y完全函數(shù)依賴于X 記為 如果成立 則稱Y部分函數(shù)依賴于X 記為 6 如果X Y 非平凡函數(shù)依賴 并且 Y Z 則稱Z傳遞函數(shù)依賴于X 數(shù)據(jù)庫基礎(chǔ) 11 1 2一些術(shù)語和符號 例11 1假設(shè)有關(guān)系模式SC sno Sname Cno Grade 其中各屬性分別為 學(xué)號 姓名 課程號 成績 主碼為 sno Cno 則函數(shù)依賴關(guān)系有 Sno Sname姓名函數(shù)依賴于學(xué)號 sno Cno Sname姓名部分函數(shù)依賴于學(xué)號和課程號 sno Cno Grade成績完全函數(shù)依賴于學(xué)號和課程號 數(shù)據(jù)庫基礎(chǔ) 11 1 2一些術(shù)語和符號 例11 2假設(shè)有關(guān)系模式S Sno Sname Dept Dept master 其中各屬性分別為 學(xué)號 姓名 所在系和系主任 假設(shè)一個系只有一個主任 主碼為Sno 則函數(shù)依賴關(guān)系有 SnoSname姓名完全函數(shù)依賴于學(xué)號由于 SnoDept所在系完全函數(shù)依賴于學(xué)號DeptDept master系主任完全函數(shù)依賴于系系主任傳遞函數(shù)依賴于學(xué)號所以有 SnoDept master函數(shù)依賴是數(shù)據(jù)的重要性質(zhì) 關(guān)系模式應(yīng)能反映這些性質(zhì) 數(shù)據(jù)庫基礎(chǔ) 11 1函數(shù)依賴 11 1 1函數(shù)依賴的基本概念11 1 2一些術(shù)語和符號11 1 3為什么要討論函數(shù)依賴 數(shù)據(jù)庫基礎(chǔ) 11 1 3為什么要討論函數(shù)依賴 討論屬性之間的關(guān)系和函數(shù)依賴有什么意義呢 讓我們通過例子看一下 假設(shè)有描述學(xué)生選課及住宿情況的關(guān)系模式 S L C Sno Sdept Sloc Cno Grade 其中各屬性分別為 學(xué)號 學(xué)生所在系 學(xué)生所住宿舍樓 課程號和考試成績 假設(shè)每個系的學(xué)生都住在一棟樓里 Sno Cno 為主碼 看一看這個關(guān)系模式存在什么問題 假設(shè)有如表11 1所示的數(shù)據(jù) 數(shù)據(jù)庫基礎(chǔ) 11 1 3為什么要討論函數(shù)依賴 表11 1S L C模式的數(shù)據(jù)示例 數(shù)據(jù)庫基礎(chǔ) 11 1 3為什么要討論函數(shù)依賴 從這個表中可以看出如下問題 數(shù)據(jù)冗余問題 在這個關(guān)系中 有關(guān)學(xué)生所在系和其所對應(yīng)的宿舍樓的信息有冗余 因為一個系有多少個學(xué)生 這個系所對應(yīng)的宿舍樓的信息就要重復(fù)存儲多少遍 數(shù)據(jù)更新問題 如果某一學(xué)生從計算機系轉(zhuǎn)到了信息系 那么不但要修改此學(xué)生的Sdept列的值 而且還要修改其Sloc列的值 從而使修改復(fù)雜化 數(shù)據(jù)庫基礎(chǔ) 11 1 3為什么要討論函數(shù)依賴 數(shù)據(jù)插入問題 如果某個學(xué)生還沒有選課 但已經(jīng)有了Sdept乘lSloc信息 我們也不能將此學(xué)生的這些已知信息插入到數(shù)據(jù)庫中 因為Cno為空 而Cno為主屬性 不能為空 因此也就丟掉了該學(xué)生的其它基本信息 數(shù)據(jù)刪除問題 如果一個學(xué)生只選了一門課 而后來又不選了 則應(yīng)該刪除此學(xué)生選此門課程的記錄 但由于這個學(xué)生只選了一門課 那么刪掉此學(xué)生的選課記錄的同時也刪掉了此學(xué)生的其它基本信息 數(shù)據(jù)庫基礎(chǔ) 11 1 3為什么要討論函數(shù)依賴 類似的問題我們統(tǒng)稱為操作異常 為什么會出現(xiàn)以上的操作異?,F(xiàn)象呢 因為這個關(guān)系模式?jīng)]有設(shè)計好 其原因在于它的某些屬性之間存在著 不良 的函數(shù)依賴 如何改造這個關(guān)系模式并克服以上種種問題是我們所要解決的問題 也是我們討論函數(shù)依賴的原因 解決上述問題的方法就是進行模式分解 即把一個關(guān)系模式分解成兩個或多個關(guān)系模式 在分解的過程中消除那些 不良 的函數(shù)依賴 從而獲得好的關(guān)系模式 關(guān)于模式分解將在本章后邊介紹 數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 11 1函數(shù)依賴11 2關(guān)系規(guī)范化11 3關(guān)系模式分解的準(zhǔn)則 數(shù)據(jù)庫基礎(chǔ) 11 2關(guān)系規(guī)范化 11 2 1關(guān)系模式中的碼11 2 2范式 數(shù)據(jù)庫基礎(chǔ) 11 2 1關(guān)系模式中的碼 設(shè)用U表示關(guān)系模式R的屬性全集 即U A1 A2 An 用F表示關(guān)系模式R上的函數(shù)依賴集 則關(guān)系模式R可表示為R U F 1 候選碼設(shè)K為R U F 中的屬性或?qū)傩越M 若KU 則K為R的候選碼 K為決定R全部屬性值的最小屬性組 主碼 關(guān)系R U F 中可能有多個候選碼 則選其中一個作為主碼 全碼 候選碼為整個屬性組 主屬性與非主屬性 在R U F 中 包含在任一候選碼中的屬性稱為主屬性 不包含在任一候選碼中的屬性稱為非主屬性 數(shù)據(jù)庫基礎(chǔ) 11 2 1關(guān)系模式中的碼 例11 3SC Sno Cno Grade 其候選碼為 Sno Cno 也為主碼 則主屬性為 Sno和Cno Grade為非主屬性 數(shù)據(jù)庫基礎(chǔ) 11 2 1關(guān)系模式中的碼 例11 4R P W A 其中各屬性含義分別為 演奏者 作品和演出地點 其語義為 一個演奏者可演奏多個作品 某一作品可被多個演奏者演奏 同一演出地點不同演奏者的不同作品 其候選碼為 P W A 因為只有 演奏者 作品 演出地點 三者才能確定一場音樂會 我們稱全部屬性均為主碼的表為全碼表 數(shù)據(jù)庫基礎(chǔ) 11 2 1關(guān)系模式中的碼 2 外碼用于在關(guān)系表之間建立關(guān)聯(lián)的屬性 組 稱為為外碼 若R U F 的屬性 組 X X屬于U 是另一個關(guān)系S的主碼 則稱X為R的外碼 X必須先定義為S的主碼 數(shù)據(jù)庫基礎(chǔ) 11 2關(guān)系規(guī)范化 11 2 1關(guān)系模式中的碼11 2 2范式 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 我們在前面已經(jīng)介紹了設(shè)計 不好 的關(guān)系模式所帶來的問題 本節(jié)將繼續(xù)討論 好 的關(guān)系模式應(yīng)具備的性質(zhì) 即關(guān)系規(guī)范化問題 關(guān)系數(shù)據(jù)庫中的關(guān)系要滿足一定的要求 若關(guān)系滿足不同程度要求就稱它屬于不同的范式 滿足最低要求的關(guān)系屬于第一范式 簡稱1NF FirstNormalForm 在第一范式中進一步滿足一些要求的關(guān)系屬于第二范式 簡稱2NF 依此類推 還有3NF BCNF 4NF 5NF 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 所謂 第幾范式 是表示關(guān)系模式滿足的條件 所以經(jīng)常稱某一關(guān)系模式為第幾范式的關(guān)系模式 也可以把這個概念模式理解為符合某種條件的關(guān)系模式的集合 因此R為第二范式的關(guān)系模式也可以寫為R 2NF 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 對關(guān)系模式的屬性間的函數(shù)依賴加以不同的限制就形成了不同的范式 這些范式是遞進的 即如果一個表是1NF的 它比不是1NF的要好 同樣 2NF的表要比1NF的表好 使用這種方法的目的是從一個表或表的集合開始 逐步產(chǎn)生一個和初始集合等價的表的集合 指提供同樣的信息 范式越高 規(guī)范化的程度越高 關(guān)系模式就越好 規(guī)范化的理論首先由E FCodd于1971年提出 其目的是要設(shè)計 好的 關(guān)系數(shù)據(jù)庫模式 關(guān)系規(guī)范化實際就是對有問題 操作異常 的關(guān)系進行分解從而消除這些異常 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 1 第一范式每一個數(shù)據(jù)項都是不可再分的是第一范式的關(guān)系 2 第二范式如果R U F 1NF 并且R中的每個非主屬性都完全函數(shù)依賴于主碼 則R U F 2NF 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 從定義中可以看出 若某個1NF的關(guān)系的主碼只由一個列組成 那么這個關(guān)系就是2NF關(guān)系 但是 如果主碼是由多個屬性列共同構(gòu)成的復(fù)合主碼 并且存在非主屬性對主屬性的部分函數(shù)依賴 則這個關(guān)系就不是2NF關(guān)系 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 例如 前面所示的S L C Sno Sdept Sloc Cno Grade 關(guān)系就不是2NF的 因為 Sno Cno 是主碼 而又有Sno Sdept 因此有 Sno Cno Sdept即存在非主碼屬性對主碼的部分函數(shù)依賴關(guān)系 所以此S L C關(guān)系不是2NF的 前面已經(jīng)介紹過這個關(guān)系存在操作異常 而這些操作異常就是因為它存在部分函數(shù)依賴造成的 可以用模式分解的辦法將非2NF的關(guān)系模式分解為多個2NF的關(guān)系模式 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 S L C關(guān)系模式分解后的形式為 S L Sno Sdept Sloc 和S C Sno Cno Grade S L關(guān)系的主碼是 Sno 并且有SnoSdept SnoSloc 所以S L是2NF的 S C關(guān)系的主碼是 Sno Cno 并且有 Sno Cno Grade 因此S C也是2NF的 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 下面我們看一下分解完之后是否還存在問題 先討論S L表 首先 在這個關(guān)系模式中 描述多少個學(xué)生就會將每個系和其所在的宿舍樓重復(fù)描述多少遍 因此還存在數(shù)據(jù)冗余 其次 當(dāng)新組建一個系時 如果此系還沒有招收學(xué)生 但已分配了宿舍樓 則無法將此系的信息插入到數(shù)據(jù)庫中 因為這時的學(xué)號為空 這是插入異常 由此我們看到 第二范式的表也可能存在操作異常情況 因此還要對此關(guān)系模式進行進一步的分解 數(shù)據(jù)庫基礎(chǔ) 11 2 211 2 2范式范式 3 第三范式如果R U F 2NF 并且所有非主屬性都不傳遞依賴于主碼 則R U F 3NF 從定義中可以看出 如果存在非主屬性對主碼的傳遞依賴 則相應(yīng)的關(guān)系模式就不是3NF的 以關(guān)系模式S L Sno Sdept Sloc 為例 因為Sno Sdept Sdept Sloc所以SnoSloc 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 從前邊的定義中可以知道 當(dāng)關(guān)系模式中存在傳遞函數(shù)依賴時 這個關(guān)系模式仍然有操作異常 因此還需要對其進行進一步的分解 S L分解后的關(guān)系模式為 S D Sno Sdept 主碼為Sno 和D L Sdept Sloc 主碼為Sdept 對S D 有SnoSdept 因此S D是3NF的 對D L 有SdeptSloc 因此S L也是3NF的 由于3NF關(guān)系模式中不存在非主碼屬性對主碼的部分依賴和傳遞依賴關(guān)系 因而在很大程度上消除了數(shù)據(jù)冗余和更新異常 因此在通常的數(shù)據(jù)庫設(shè)計中 一般要求要達到3NF 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 4 BCNFBCNF也叫Boyce Codd范式 它是3NF的進一步規(guī)范化 其限制條件更嚴(yán)格 我們首先分析一下3NF中存在的問題 在3NF的關(guān)系模式中可能存在能夠決定其它屬性取值的屬性組 而該屬性組非碼 例如 假設(shè)有關(guān)系模式CSZ city Street zip 其中各屬性分別代表城市 街道和郵政編碼 其語義為 城市和街道可以決定郵政編碼 郵政編碼可以決定城市 因此有 City Street Zip Zip City其候選碼為 city street 和 street zip 此關(guān)系模式中不存在非主屬性 因此它屬于3NF 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 現(xiàn)在我們看一下此模式存在的問題 假設(shè)取 City street 為主碼 則當(dāng)插入數(shù)據(jù)時 如果沒有街道信息 則一個郵政編碼是哪個城市的郵政編碼這樣的信息就無法保存到數(shù)據(jù)庫中 因為Street不能為空 由此可見 即使是3NF的表 也有可能存在操作異常 操作異常的原因是存在Zip City Zip是決定因子 但Zip不是碼 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 在3NF關(guān)系模式中之所以存在操作異常 主要是存在主屬性對非碼的函數(shù)依賴 在這種情況下 產(chǎn)生了BCNF 若關(guān)系模式R 1NF 且能決定其它屬性取值的屬性 組 必定包含碼 則R BCNF 可以將該定義理解為 如果一個關(guān)系的每個決定因子都是候選碼 則其是BCNF 或者說 如果R 3NF 并且不存在主屬性對非碼的函數(shù)依賴 則其是BCNF 數(shù)據(jù)庫基礎(chǔ) 11 2 2范式 將CSZ分解分解為 ZC Zip City SZ Street Zip 這樣就去掉了決定因子不包含碼的情況 它們都是BCNF的關(guān)系模式了 如果一個模型中的所有關(guān)系模式都屬于BCNF 那么在函數(shù)依賴范疇內(nèi) 就實現(xiàn)了徹底的分解 消除了操作異常 也就是說 在函數(shù)依賴的范疇 BCNF達到了最高的規(guī)范化程度 1NF 2NF 3NF和 BCNF的相互關(guān)系是 BCNF3NF2NF1NF 數(shù)據(jù)庫基礎(chǔ) 第十一章關(guān)系數(shù)據(jù)庫規(guī)范化理論 11 1函數(shù)依賴11 2關(guān)系規(guī)范化11 3關(guān)系模式分解的準(zhǔn)則 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 前面已經(jīng)介紹過 為了提高規(guī)范化程度 通常將范式程度低的關(guān)系模式分解為若干個范式程度高的關(guān)系模式 每個規(guī)范化的關(guān)系應(yīng)該只有一個主題 如果某個關(guān)系描述了兩個或多個主題 就應(yīng)該將它分解為多個關(guān)系 使每個關(guān)系只描述一個主題 當(dāng)我們發(fā)現(xiàn)一個關(guān)系存在操作異常時 就應(yīng)該把關(guān)系分解為兩個或多個單獨的關(guān)系 使每個關(guān)系只描述一個主題 從而消除這些異常 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 從而消除這些異常 規(guī)范化的方法是進行模式分解 但分解后產(chǎn)生的模式應(yīng)與原模式等價 即模式分解必須遵守一定的準(zhǔn)則 不能表面上消除了操作異?,F(xiàn)象 卻留下了其它的問題 模式分解要滿足以下標(biāo)準(zhǔn) 1 模式分解具有無損連接性 2 模式分解能夠保持函數(shù)依賴 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 無損連接是指分解后的關(guān)系通過自然連接可以恢復(fù)成原來的關(guān)系 即通過自然連接得到的關(guān)系與原來的關(guān)系相比 既不多出信息 又不丟失信息 保持函數(shù)依賴的分解是指在模式的分解過程中函數(shù)依賴不能丟失的特性 即模式分解不能破壞原來的語義 為了得到更高范式的關(guān)系而進行的模式分解是否總能既保證無損連接 又保持函數(shù)依賴呢 答案是否定的 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 那么應(yīng)如何對關(guān)系模式進行分解呢 在不同情況下 同一個關(guān)系模式可能有多種分解方案 例如 對于關(guān)系模式S D L Sno Dept Loc 其中各屬性含義分別為學(xué)號 系名和宿舍樓號 假設(shè)系名可以決定宿舍樓號 有如下函數(shù)依賴 Sno Dept Dept Loc 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 顯然這個關(guān)系模式不是第三范式的 此關(guān)系模式至少可以有三種分解方案 分別為 方案1 S L Sno Loc D L Dept Loc 方案2 S D Sno Dept S L Sno Loc 方案3 S D Sno Dept D L Dept Loc 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 使用這三種分解方案得到的關(guān)系模式都是第三范式的 那么如何比較這三種方案的好壞呢 由此我們想到 在將一個關(guān)系模式分解為多個關(guān)系模式時除了提高規(guī)范化程度之外 還要考慮其它一些因素 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 將一個關(guān)系模式R分解為若干個關(guān)系模式R1 R2 Rn 其中U U1 U2 Un Fi為F在Ui上的投影 這意味著相應(yīng)地將存儲在一張二維表r中的數(shù)據(jù)分散到了若干個二維表r1 r2 rn中 ri是r在屬性組Ui上的投影 我們當(dāng)然希望這樣的分解不丟失信息 也就是說 對關(guān)系r1 r2 rn進行自然連接運算后能重新得到關(guān)系r的所有信息 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 事實上 要想在關(guān)系r投影r1 r2 rn時不會丟失信息 關(guān)鍵是對r1 r2 rn做自然連接時可能產(chǎn)生一些r中原來沒有的元組 從而無法區(qū)別哪些元組是r中原來有的 即數(shù)據(jù)庫中應(yīng)該存在的數(shù)據(jù) 哪些是不應(yīng)該有的 從這個意義上說就丟失了信息 仍以關(guān)系模式S D L Sno Dept Loc 為例 按三種分解方案得到的關(guān)系模式是否滿足分解要求呢 我們對此進行一些分析 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 假設(shè)在某一時刻 此關(guān)系模式的數(shù)據(jù)如表11 2所示 此關(guān)系用r表示 表11 2關(guān)系r 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 若按方案1將關(guān)系模式S D L分解為S L Sno Loc 和D L Dept Loc 則將S D L投影到S L和D L的屬性上 得到關(guān)系r11和r12 如表11 3和11 4所示 表11 3關(guān)系r11 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 表11 4關(guān)系r12 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 將r11和r12進行自然連接r11 r12得到r 如表11 5所示 表11 5關(guān)系r 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 r 中的元組 S01 D3 L1 和 S04 Dl L1 不是原來r中的元組 因此 我們無法知道原來的r中到底有哪些元組 這當(dāng)然是我們所不希望的 所以 將關(guān)系模式R分解為關(guān)系模式R1 R2 Rn時 若對于R中的任何一個可能的r 都有r r1 r2 rn 即r在R1 R2 Rn上的投影的自然連接等于r 則稱關(guān)系模式R的分解具有無損連接性 分解方案1不具有無損連接性 因此不是一個好的分解方法 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 再分析方案2 將S D L投影到S D S L的屬性上 得到關(guān)系r21和r22 如表11 6和表11 7所示 表11 6關(guān)系r21 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 表11 7關(guān)系r22 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 將r21 r22做自然連接 得到r 如表11 8所示 表11 8關(guān)系r 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 我們看到 分解后的關(guān)系模式經(jīng)過自然連接后恢復(fù)成了原來的關(guān)系 因此分解方案2具有無損連接性 現(xiàn)在我們對這個分解做進一步的分析 假設(shè)學(xué)生S03從D2系轉(zhuǎn)到了D3系 于是我們需要在r21中將元組 S03 D2 改為 S03 D3 同時還需要在r22中將元組 S03 L2 改為 S03 L1 如果這兩個修改沒有同時進行 則數(shù)據(jù)庫中就會出現(xiàn)不一致信息 這是由于這樣分解得到的兩個關(guān)系模式?jīng)]有保持原來的函數(shù)依賴關(guān)系造成的 原有的函數(shù)依賴Dept Loc在分解后即沒有投影到S D中 也沒有投影到S L中 而是跨在了兩個關(guān)系模式上 因此分解方案2沒有保持原有的函數(shù)依賴關(guān)系 它也不是好的分解方法 數(shù)據(jù)庫基礎(chǔ) 11 3關(guān)系模式分解的準(zhǔn)則 我們看分解方案3 經(jīng)過分析可以看出分解方案3既滿足無損連接性 又保持了原有的函數(shù)依賴關(guān)系 因此它是一個好的分解方法 總結(jié)以上分析可以看出 分解具有無損連接性和分解保
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度貸款融資居間業(yè)務(wù)保密協(xié)議3篇
- 2024年度地鐵口商鋪出租合同規(guī)范化文本3篇
- 2024年正版軟件購買協(xié)議樣例一
- 2024年度環(huán)保設(shè)備運行維護服務(wù)合同帶眉腳
- 2024年度跨境電商貨運代理服務(wù)國際貨物運輸合同9篇
- 2024年度新能源項目債轉(zhuǎn)股協(xié)議復(fù)雜多條款管理細則3篇
- 假性前房積膿病因介紹
- 2023-2024學(xué)年粵教版七年級地理上冊第三章陸地與海洋(單元測試達標(biāo)篇)
- 廣西貴港市2015年中考政治真題試題(含答案)
- 節(jié)目指導(dǎo)合同范例
- 撤場通知書( 模板)
- 施工人員三級安全教育記錄表
- 2023-2024學(xué)年北京市海淀區(qū)八年級上學(xué)期數(shù)學(xué)期末質(zhì)量檢測模擬卷合集2套(含解析)
- 英國文學(xué)史及選讀復(fù)習(xí)要點總結(jié)
- 整改回復(fù)書樣板后邊附帶圖片
- 中小學(xué)校園人車分流方案模板
- 魚類外部形態(tài)-魚類的皮膚及其衍生物
- GB/T 42220-2022金鑲玉鑲嵌工藝質(zhì)量評價
- 2023年04月2023年外交學(xué)院招考聘用筆試參考題庫附答案解析
- 基于單片機數(shù)字秒表的設(shè)計
- 中國自身免疫性腦炎診治專家共識2023年版
評論
0/150
提交評論