第3章數(shù)據(jù)庫設(shè)計_第1頁
第3章數(shù)據(jù)庫設(shè)計_第2頁
第3章數(shù)據(jù)庫設(shè)計_第3頁
第3章數(shù)據(jù)庫設(shè)計_第4頁
第3章數(shù)據(jù)庫設(shè)計_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、LOGO 高級數(shù)據(jù)庫系統(tǒng)及其應(yīng)用高級數(shù)據(jù)庫系統(tǒng)及其應(yīng)用 第第3章章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計 ER數(shù)據(jù)模型數(shù)據(jù)模型3.1 EER數(shù)據(jù)模型數(shù)據(jù)模型3.2 邏輯數(shù)據(jù)庫設(shè)計:映射邏輯數(shù)據(jù)庫設(shè)計:映射ER/EER模式到關(guān)系模式模式到關(guān)系模式3.3 關(guān)系模式求精與規(guī)范化關(guān)系模式求精與規(guī)范化 3.4 DB應(yīng)用應(yīng)用 v DB應(yīng)用定義:一個特定的數(shù)據(jù)庫,加上實現(xiàn)此數(shù)據(jù)庫查應(yīng)用定義:一個特定的數(shù)據(jù)庫,加上實現(xiàn)此數(shù)據(jù)庫查 詢詢/更新的相關(guān)程序。更新的相關(guān)程序。 v 概念設(shè)計是成功設(shè)計概念設(shè)計是成功設(shè)計DB應(yīng)用的一個環(huán)節(jié)。應(yīng)用的一個環(huán)節(jié)。 實體-關(guān)系模型(Entity-Relation model),簡稱ER模型, 是

2、一種非常流行的概念數(shù)據(jù)模型。 EER是基于ER的擴展模型(Enhanced ER model) ER/EER已被廣泛應(yīng)用于DB概念設(shè)計。它們均以圖形化方式描 述和捕獲用戶需求。 基于ER/EER進行概念設(shè)計的輸出為一組ER/EER圖。 v 基于概念模型的設(shè)計,最終都必須變換基于概念模型的設(shè)計,最終都必須變換/轉(zhuǎn)換到可在轉(zhuǎn)換到可在DB中中 實現(xiàn)的邏輯數(shù)據(jù)模型。實現(xiàn)的邏輯數(shù)據(jù)模型。 借助RDB設(shè)計有關(guān)規(guī)范理論,不僅可對轉(zhuǎn)換后的邏輯數(shù) 據(jù)模式進行規(guī)范,而且可對ER/EER圖進行求精。 DB設(shè)計的主要階段與過程設(shè)計的主要階段與過程 DB設(shè)計的基本步驟(設(shè)計的基本步驟(1) 1. 需求分析需求分析 2.

3、 概念概念DB設(shè)計設(shè)計 利用需求分析獲得的信息,建立DB數(shù)據(jù)的一個抽象描述。 這一步通常利用ER/EER模型,或其它高級數(shù)據(jù)概念模型 (如UML類圖),來實現(xiàn)。 3. 邏輯邏輯DB設(shè)計設(shè)計 轉(zhuǎn)換DB概念設(shè)計模式到指定DBMS邏輯模式。 由于需求信息本身帶有很大主觀性,故基于需求信息構(gòu) 造的ER/EER圖只能提供數(shù)據(jù)的一個近似描述。 4. 模式細化模式細化 5. 物理物理DB設(shè)計設(shè)計 6. 安全設(shè)計安全設(shè)計 DB設(shè)計的基本步驟(設(shè)計的基本步驟(2) 1. 需求分析需求分析 2. 概念概念DB設(shè)計設(shè)計 3. 邏輯邏輯DB設(shè)計設(shè)計 4. 模式細化模式細化 分析關(guān)系數(shù)據(jù)庫模式的關(guān)系集,檢查潛在問題并進

4、行 優(yōu)化。與需求分析和概念設(shè)計的主觀性特點不同,細 化可得到強有力的規(guī)范理論支持。 5. 物理物理DB設(shè)計設(shè)計 考慮應(yīng)用必須支持的一些典型預(yù)期負荷,并以此為基礎(chǔ) 進一步求精DB設(shè)計,確保它能滿足預(yù)期的性能要求。 這個步驟可能包括為一些表建立索引,或指定聚集存 儲方式等。 6. 安全設(shè)計安全設(shè)計 3.1 ER數(shù)據(jù)模型數(shù)據(jù)模型 3.1.1 實體類型、實體集、屬性和鍵 3.1.2 關(guān)系、關(guān)系類型和關(guān)系集 3.1.3 ER模型的其他特性 ER模型簡介模型簡介 1. 構(gòu)成構(gòu)成ER模型的基本概念模型的基本概念 v 實體與屬性實體與屬性 v 實體類型、實體集與鍵實體類型、實體集與鍵 實體類型:實體類型:定義

5、了具有相同屬性的實體模式結(jié)構(gòu), 由名和屬性來描述。 實體集:實體集:具有相同實體類型的所有實體集合。 實體類型描述了相同結(jié)構(gòu)實體集的模式或內(nèi)涵; 實體集則描述了實體類型的外延。 ER圖中不區(qū)分實體類型和實體集(被視為同義詞)。 v 關(guān)系、關(guān)系類型和關(guān)系集關(guān)系、關(guān)系類型和關(guān)系集 v ER模型的其它概念模型的其它概念 ER圖表示規(guī)定圖表示規(guī)定 實體集:用加矩形外框的名字來表示。實體集:用加矩形外框的名字來表示。 屬性名:則用橢圓框起,屬性名:則用橢圓框起, 并用直線與實體集相連。并用直線與實體集相連。 多值屬性:用雙線橢圓框起多值屬性:用雙線橢圓框起; 復(fù)合屬性:用名字后加注結(jié)構(gòu)成份表示復(fù)合屬性:

6、用名字后加注結(jié)構(gòu)成份表示; 鍵屬性:通過屬性名加下劃線來標識。鍵屬性:通過屬性名加下劃線來標識。 ER圖表示規(guī)定圖表示規(guī)定 關(guān)系集:用名字外加菱形框表示,并用直線 將其與參與實體集的矩形框相連。 ER圖設(shè)計舉例(圖設(shè)計舉例(1) ER圖設(shè)計舉例圖設(shè)計舉例 (2) ER模型的其它概念模型的其它概念 v 關(guān)系屬性關(guān)系屬性 關(guān)系集也可以有自己的描述屬性,用來刻畫關(guān) 系集本身的性質(zhì),而不是某個參與實體集的性 質(zhì)。 v 關(guān)系約束關(guān)系約束 指與關(guān)系集相關(guān)的約束,通過約束表達可限制 參與關(guān)系各實體的可能組合。 主要類型:基數(shù)詞約束、鍵約束和參與約束。 v 弱實體集弱實體集 指只能附屬其它實體集而存在的實體集

7、。 在在ER圖中表達關(guān)系基數(shù)詞和參與約束圖中表達關(guān)系基數(shù)詞和參與約束 弱實體集的幾種弱實體集的幾種ER建模方法(圖建模方法(圖3.5) 3.2 EER數(shù)據(jù)模型數(shù)據(jù)模型 3.2.1 EER模型核心概念的形式定義 3.2.2 子類、超類與類層次結(jié)構(gòu) 3.2.3 特化與泛化 3.2.4 利用union子類建模 3.2.5 值集屬性與復(fù)合結(jié)構(gòu)屬性的建模表示 3.2.6 EER與UML類圖比較 3.2.7 EER作為知識表示模型 3.2.8 為大型企業(yè)/組織進行DB概念設(shè)計 EER核心概念(核心概念(1) v類類 指實體的集合或?qū)嶓w集,這包括可對DB應(yīng)用域 實體分組的任何EER模式構(gòu)造,如實體類(型)、

8、 子類、超類和類別。 EER中,任何類都允許參與一個關(guān)系。 v子類、超類子類、超類 子類S是一個類,子類中的實體必然是其超類C 中實體的一個子集,即有關(guān)系:SC 成立 超類/子類關(guān)系也稱為ISA關(guān)系,記做C/S。 子類實體除了可以從超類實體中繼承所有的屬 性外,還可以有自己專有的屬性和關(guān)系。 EER核心概念(核心概念(2) v特化特化 特化ZS1,S2,Sn是具有相同超類G的一個 子類集合,每個G/Si是一個超類/子類關(guān)系。G 被稱為泛化實體類型。 用“特化”指代由特化過程所獲得的-特化子集。 特化的種類(約束) 完全特化與部分特化; 不相交特化與重疊特化。 兩類約束相互獨立,可以組合出四種約

9、束。 v泛化泛化 是特化的逆過程,允許我們忽略多個實體集之 間的性質(zhì)差異,找出它們的共同點抽象出 超類。 特化是概念上的求精,而泛化則是概念上的綜合。特化是概念上的求精,而泛化則是概念上的綜合。 顯然,由泛化獲得超類方法,易得到完全特化的子集。顯然,由泛化獲得超類方法,易得到完全特化的子集。 特化及其約束的特化及其約束的EER表示表示 EER核心概念(核心概念(3) v類別類別(category) 類別有時也被稱為union子類。 類別T是一個類,它是n個判定超類D1,D2,Dn (n1)并集的一個子集。 其形式表示為:T(D1 D2 Dn) vunion子類的約束子類的約束 完全約束:子類包

10、含了其所有超類并集中的所 有成員; 部分約束:子類只包含并集的一個子集。 UNION子類及其約束的子類及其約束的EER表示(表示(圖圖3.8 ) 用粗用粗/細區(qū)分細區(qū)分 完全和部分完全和部分 約束約束 基本基本ER模型與模型與UML類圖的特性對比類圖的特性對比 Company DB模式的模式的EER表示表示 Company DB模式的模式的UML表示表示 3.3 邏輯數(shù)據(jù)庫設(shè)計邏輯數(shù)據(jù)庫設(shè)計:映射映射ER/EER模式到關(guān)系模模式到關(guān)系模 式式 3.3.1 映射常規(guī)實體集到關(guān)系表 3.3.2 映射關(guān)系集到關(guān)系表 3.3.3 映射弱實體集 3.3.4 映射帶有聚集關(guān)系的ER圖 3.3.5 映射EE

11、R擴展結(jié)構(gòu) 3.3.6 ER模型至關(guān)系模型映射小結(jié) 3.3 映射映射ER/EER模式到關(guān)系模式模式到關(guān)系模式 vER/EER模型適合于初始階段、抽象層次較高的模型適合于初始階段、抽象層次較高的 DB概念設(shè)計。概念設(shè)計。 v給定一個概念設(shè)計模式給定一個概念設(shè)計模式(ER/EER圖圖),現(xiàn)已有一,現(xiàn)已有一 套標準方法可將它們映射到關(guān)系套標準方法可將它們映射到關(guān)系DB模式,但這模式,但這 種轉(zhuǎn)換還只是近似的。種轉(zhuǎn)換還只是近似的。 DB模式:一組表+ 約束集 基于SQL-92,我們尚無法捕獲隱含在ER/EER 設(shè)計中的所有約束。 v本節(jié)我們將介紹從本節(jié)我們將介紹從ER/EER模式創(chuàng)建關(guān)系模式的模式創(chuàng)建

12、關(guān)系模式的 方法和過程。方法和過程。 映射常規(guī)實體集到關(guān)系表映射常規(guī)實體集到關(guān)系表 v一個常規(guī)實體集可直接地映射到一個關(guān)系表:一個常規(guī)實體集可直接地映射到一個關(guān)系表: 將實體集的每個屬性,作為關(guān)系表的一個屬性。 用SQL-92 DDL建表語句基本上可以完全捕獲 這些信息,包括域約束和主鍵約束。 映射關(guān)系集到關(guān)系表映射關(guān)系集到關(guān)系表 (一)映射含鍵約束的關(guān)系集(一)映射含鍵約束的關(guān)系集 方法方法1:獨立關(guān)系表法:獨立關(guān)系表法 v映射關(guān)系集映射關(guān)系集R到獨立的關(guān)系表到獨立的關(guān)系表R。 映射關(guān)系集到關(guān)系表映射關(guān)系集到關(guān)系表 (一)映射含鍵約束的關(guān)系集(一)映射含鍵約束的關(guān)系集 方法方法1:獨立關(guān)系表

13、法:獨立關(guān)系表法 方法方法2:外鍵方法:外鍵方法 將關(guān)系集的相關(guān)信息合并到具有鍵約束的參與 實體集中(一對多關(guān)系的一端)。 映射關(guān)系集到關(guān)系表映射關(guān)系集到關(guān)系表 (一)映射含鍵約束的關(guān)系集(一)映射含鍵約束的關(guān)系集 方法方法1:獨立關(guān)系表法:獨立關(guān)系表法 方法方法2:外鍵方法:外鍵方法 方法方法3:合并關(guān)系法合并關(guān)系法 若關(guān)系集的所有參與實體集都有鍵約束且都是完全參與。這時, 也可合并所有參與實體集到一個關(guān)系。 (二)在映射關(guān)系集時考慮參與約束(二)在映射關(guān)系集時考慮參與約束 圖3.9(a)中的Manages,除了鍵約束(每部門至多有一經(jīng)理) 外,還含有一完全參與約束(每部門至少需要有一經(jīng)理)

14、??紤] 到這一點,Dept_Mgr:ssn應(yīng)設(shè)置NOT NULL。 (三)無鍵約束和參與約束的關(guān)系集映射(三)無鍵約束和參與約束的關(guān)系集映射 對這類關(guān)系集,一般只能用獨立關(guān)系表法(方法1)進行 映射。 映射弱實體集映射弱實體集 v弱實體集總是參與一對多的二元關(guān)系,且有一個弱實體集總是參與一對多的二元關(guān)系,且有一個 鍵約束和完全參與約束。鍵約束和完全參與約束。 v前面討論的映射關(guān)系方法前面討論的映射關(guān)系方法2(外鍵法)是一種較(外鍵法)是一種較 理想的轉(zhuǎn)換方法。但要考慮弱實體中只含有部分理想的轉(zhuǎn)換方法。但要考慮弱實體中只含有部分 鍵這個情況。鍵這個情況。 映射映射EER擴展結(jié)構(gòu)多值擴展結(jié)構(gòu)多值/

15、復(fù)合結(jié)構(gòu)屬性復(fù)合結(jié)構(gòu)屬性 v關(guān)系模式不支持多值屬性,必須為關(guān)系模式中的關(guān)系模式不支持多值屬性,必須為關(guān)系模式中的 每個多值屬性,分別創(chuàng)建一個獨立的關(guān)系。每個多值屬性,分別創(chuàng)建一個獨立的關(guān)系。 令關(guān)系模式為R,MA是R的一個多值屬性,為 MA創(chuàng)建的關(guān)系表為M。 M的屬性應(yīng)包含R的主鍵屬性k ,以便關(guān)聯(lián)到R。 原關(guān)系模式R中可去掉多值屬性MA. v令關(guān)系模式為令關(guān)系模式為R,CA是是R的一個復(fù)合屬性。對于的一個復(fù)合屬性。對于 CA,有兩種建模方法:,有兩種建模方法: 方法1:將復(fù)合屬性的每個結(jié)構(gòu)成份,分別作 為一個屬性,加到所屬的關(guān)系表中。 方法2:為復(fù)合屬性CA單獨建立一個關(guān)系表。 映射映射EE

16、R擴展結(jié)構(gòu)類層次結(jié)構(gòu)擴展結(jié)構(gòu)類層次結(jié)構(gòu) v映射處理映射處理EER圖中的圖中的ISA層次結(jié)構(gòu)。層次結(jié)構(gòu)。 假設(shè)超類假設(shè)超類C被特化為被特化為m個子類個子類S1 , , Sm Attr(C) = k, a1 , , an,PK(C) = k。 v方法方法1:映射超類和每個子類到一個不同的表。:映射超類和每個子類到一個不同的表。 映射映射EER擴展結(jié)構(gòu)類層次結(jié)構(gòu)擴展結(jié)構(gòu)類層次結(jié)構(gòu) v方法方法1:映射超類和每個子類到一個不同的表。:映射超類和每個子類到一個不同的表。 v方法方法2:僅創(chuàng)建子類關(guān)系表。:僅創(chuàng)建子類關(guān)系表。 為每個子類為每個子類Si(1im)創(chuàng)建一個關(guān)系創(chuàng)建一個關(guān)系Li,且有屬性,且有屬性

17、 Attr(Li)= k, a1, , an Si的其它專有屬性的其它專有屬性, PK(Li)=k。 該方法只適用于超類完全參與的特化類型。該方法只適用于超類完全參與的特化類型。 v方法方法3:僅創(chuàng)建含:僅創(chuàng)建含1個類標志屬性的單個關(guān)系。個類標志屬性的單個關(guān)系。 v方法方法4:僅創(chuàng)建含:僅創(chuàng)建含m個類標志屬性的單個關(guān)系。個類標志屬性的單個關(guān)系。 該方法能適應(yīng)子類有重疊特化的情況,但會產(chǎn)生大量的該方法能適應(yīng)子類有重疊特化的情況,但會產(chǎn)生大量的 null值。值。 映射映射EER : union子類子類 (1) 1)對超類實體集有各自不同鍵的情況)對超類實體集有各自不同鍵的情況 在創(chuàng)建與在創(chuàng)建與un

18、ion子類對應(yīng)的關(guān)系表時,通常需要子類對應(yīng)的關(guān)系表時,通常需要 指定一個新的鍵屬性指定一個新的鍵屬性-代理鍵代理鍵(surrogate key)。 2)對超類實體集有)對超類實體集有有相同鍵的情況有相同鍵的情況 這時,無需使用代理鍵。這時,無需使用代理鍵。 ER模型至關(guān)系模型映射小結(jié)模型至關(guān)系模型映射小結(jié) v步驟步驟1:映射常規(guī)實體集。:映射常規(guī)實體集。 v步驟步驟2:映射弱實體集。:映射弱實體集。 v步驟步驟3:映射:映射ER模式中的關(guān)系集。模式中的關(guān)系集。 v步驟步驟4:映射:映射ER模式中的聚集關(guān)系集。模式中的聚集關(guān)系集。 v步驟步驟5:映射與:映射與EER模型相關(guān)的擴展結(jié)構(gòu)。模型相關(guān)的

19、擴展結(jié)構(gòu)。 3.4 關(guān)系模型求精與規(guī)范化關(guān)系模型求精與規(guī)范化 3.4.1 模式求精問題 3.4.2 函數(shù)依賴 3.4.3 基本規(guī)范范式 3.4.4 無損分解與依賴保持分解 3.4.5 分解與規(guī)范化關(guān)系模式 3.4.6 多值依賴與第四規(guī)范 3.4.1 模式求精問題(綜述)模式求精問題(綜述) v 模式求精的基本任務(wù)是基于分解技術(shù),來處理初始關(guān)系模模式求精的基本任務(wù)是基于分解技術(shù),來處理初始關(guān)系模 式中存在的問題。信息的冗余存儲是引發(fā)這些問題的根源。式中存在的問題。信息的冗余存儲是引發(fā)這些問題的根源。 雖然分解能刪除冗余,但它也可能導(dǎo)致一些額外的問題,雖然分解能刪除冗余,但它也可能導(dǎo)致一些額外的問

20、題, 如信息損失或?qū)е履承娭菩约s束丟失,必須慎重使用。如信息損失或?qū)е履承娭菩约s束丟失,必須慎重使用。 (一)冗余可能引發(fā)問題(一)冗余可能引發(fā)問題 v 浪費空間。浪費空間。 v 更新異常。更新異常。 同樣的信息被存儲多份,如某份數(shù)據(jù)被更新,而其它同樣的信息被存儲多份,如某份數(shù)據(jù)被更新,而其它 份信息未做相應(yīng)更新,就會造成份信息未做相應(yīng)更新,就會造成DB數(shù)據(jù)的不一致。數(shù)據(jù)的不一致。 v 插入異常。插入異常。 如果不附帶冗余存儲一些相關(guān)的信息,新的信息可能如果不附帶冗余存儲一些相關(guān)的信息,新的信息可能 無法存儲到無法存儲到DB中。中。 v 刪除異常。刪除異常。 刪除某信息時刪除某信息時,可能

21、會附帶刪掉一些不希望刪除的信息??赡軙綆h掉一些不希望刪除的信息。 冗余可能引發(fā)問題舉例冗余可能引發(fā)問題舉例 v考慮考慮Hourly_Emps (ssn, name, lot, rating, hourly_wages, ours_worked) 縮寫為Hourly_Emps (SNLRWH) 假定小時工資主要取決于員工等級,即給定R 值,就可唯一確定W值。這是一個典型的函數(shù) 依賴約束關(guān)系,它會導(dǎo)致存儲冗余,其副作用 有多個方面: 同等級員工對應(yīng)的元組中,R/W信息完全相同。同 樣的信息被存儲多次,浪費存儲空間。 如果刪除了給定R值的所有元組,將丟失這組R/W所 隱含的IC約束信息,這是一種

22、刪除異常。 無法單獨記錄員工等級與小時工資的R/W關(guān)系。這 是一種插入異常。 (二)利用分解技術(shù)消除冗余(二)利用分解技術(shù)消除冗余 v函數(shù)依賴約束函數(shù)依賴約束(FDs)或其它相近的或其它相近的ICs可被用來可被用來 識別冗余點,并給出處理冗余的指導(dǎo)性建議。識別冗余點,并給出處理冗余的指導(dǎo)性建議。 v分解技術(shù)的核心思想分解技術(shù)的核心思想 通過將原關(guān)系替換(分解)為一組更小關(guān)系,來解決通過將原關(guān)系替換(分解)為一組更小關(guān)系,來解決 冗余問題。冗余問題。 例如,通過將例如,通過將Hourly_Emps分解為如下的兩個小關(guān)系,分解為如下的兩個小關(guān)系, 就可以很好消除原有冗余引起的相關(guān)問題。就可以很好消

23、除原有冗余引起的相關(guān)問題。 Hourly_Emps2(ssn, name, lot, rating, hours_worked) Wages( rating , hourly_wage) (三)分解可能引發(fā)的相關(guān)問題(三)分解可能引發(fā)的相關(guān)問題 v分解能很好解決冗余問題,但必須慎重使用,否分解能很好解決冗余問題,但必須慎重使用,否 則可能會帶來其它問題。在使用分解時,須反復(fù)則可能會帶來其它問題。在使用分解時,須反復(fù) 提問以下兩個重要問題:提問以下兩個重要問題: 我們的確需要分解一個關(guān)系嗎?我們的確需要分解一個關(guān)系嗎? 對該問題,已有若干規(guī)范來幫助回答這個問題。 一個給定的分解會引起那些其它問題

24、?一個給定的分解會引起那些其它問題? 對該問題,可借助分解的兩個重要特性來幫助回答 用無損連接用無損連接(lossless-join) ; 依賴保持依賴保持(dependency- preservasion) 3.4.2 函數(shù)依賴函數(shù)依賴(functional dependency,FD) v 函數(shù)依賴,是函數(shù)依賴,是DB中兩組屬性間存在的一種約束,是一類中兩組屬性間存在的一種約束,是一類 更廣義的鍵概念約束。其形式定義如下更廣義的鍵概念約束。其形式定義如下: 令令R代表一個關(guān)系模式,代表一個關(guān)系模式,r是是R的一個任意合法實例。的一個任意合法實例。X 和和Y是是R的兩個非空屬性子集。的兩個非

25、空屬性子集。 如果對如果對 r中每個元組對中每個元組對t1和和t2有有t1.X=t2.X,則必有,則必有 t1.Y=t2.Y。這時,我們就稱。這時,我們就稱Y函數(shù)依賴于函數(shù)依賴于X,記為:,記為: XY。 v 兩類特殊的函數(shù)依賴兩類特殊的函數(shù)依賴 完全函數(shù)依賴與部分函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴 v 通常,模式設(shè)計者會顯式指定一組函數(shù)依賴。通常,模式設(shè)計者會顯式指定一組函數(shù)依賴。 常用常用F表示在關(guān)系表示在關(guān)系R上顯式指定的一組上顯式指定的一組FDs。 函數(shù)依賴推理(函數(shù)依賴推理(1) v在滿足在滿足F:FDs的所有合法關(guān)系實例中,通常的所有合法關(guān)系實例中,通常 還會隱含一些其它可從還會隱

26、含一些其它可從F推理獲得的函數(shù)依賴。推理獲得的函數(shù)依賴。 例如,對例如,對Workers(ssn, name, lot, did, since) 顯式FDs FD1: ssndid,F(xiàn)D2: didlot 保持保持 隱含F(xiàn)Ds 通過傳遞推理,不難發(fā)現(xiàn):在Workers中,F(xiàn)D3: ssnlot也能保持的結(jié)論。 v定義(隱含函數(shù)依賴定義(隱含函數(shù)依賴 f) 給定給定FDs集集F,如果,如果FD: f 也能在滿足也能在滿足F的每個的每個 關(guān)系實例中保持,則稱關(guān)系實例中保持,則稱FD: f 是隱含在是隱含在F中的函中的函 數(shù)依賴。數(shù)依賴。 v定義(函數(shù)依賴集閉包定義(函數(shù)依賴集閉包F+) 將包括給定

27、的將包括給定的FDs集集F,加上,加上F所隱含的所有所隱含的所有f , 合稱為合稱為F閉包,簡記為閉包,簡記為F + 。 函數(shù)依賴推理函數(shù)依賴推理 (2) v由給定由給定FDs集集F,推導(dǎo)或計算出,推導(dǎo)或計算出F +的規(guī)則的規(guī)則 自反規(guī)則自反規(guī)則IR1:如:如 XY,則,則 X Y。 增廣規(guī)則增廣規(guī)則IR2:如:如 XY,則,則 XZ YZ,Z是任意屬性是任意屬性 組。組。 傳遞規(guī)則傳遞規(guī)則IR3:如果:如果 XY,YZ,則,則 X Z。 兩增補規(guī)則:兩增補規(guī)則: 合并或加法規(guī)則合并或加法規(guī)則IR4:如果:如果 XY,XZ,則,則 X YZ。 分解或投影規(guī)則分解或投影規(guī)則IR5:如果:如果 X

28、YZ,則,則 X Y,XZ。 v定義(平凡函數(shù)依賴)定義(平凡函數(shù)依賴) 如果如果X Y且且XY,則稱,則稱X Y是平凡的是平凡的(trivial)。 顯然,利用自反規(guī)則顯然,利用自反規(guī)則IR1,我們不難由已知的,我們不難由已知的FDs推出所有的推出所有的 平凡依賴關(guān)系。平凡依賴關(guān)系。 函數(shù)依賴推理(函數(shù)依賴推理(3) v 定義(函數(shù)依賴集覆蓋)定義(函數(shù)依賴集覆蓋) 對于函數(shù)依賴集對于函數(shù)依賴集F,如果另一個函數(shù)依賴集,如果另一個函數(shù)依賴集E中的每個中的每個 函數(shù)依賴同時也在函數(shù)依賴同時也在F+中,則稱中,則稱F覆蓋了覆蓋了E。 v 定義(函數(shù)依賴集等價)定義(函數(shù)依賴集等價) 對于兩個函數(shù)

29、依賴集對于兩個函數(shù)依賴集E和和F,如果,如果E+=F+,則稱,則稱E和和F是是 等價的。等價的。 v 定義(函數(shù)依賴集最小覆蓋)一個定義(函數(shù)依賴集最小覆蓋)一個FDs集集F的最小覆蓋是的最小覆蓋是 滿足以下三個條件的一組滿足以下三個條件的一組FDs集集G: G中的每個依賴關(guān)系都是規(guī)范的中的每個依賴關(guān)系都是規(guī)范的XA形式,這里,形式,這里,A 是一個單屬性;是一個單屬性; 閉包閉包F+等價于閉包等價于閉包G+。 如果通過刪除如果通過刪除G中的一個或多個依賴關(guān)系,或刪除中的一個或多個依賴關(guān)系,或刪除G中中 依賴關(guān)系的屬性,得到另一個依賴集依賴關(guān)系的屬性,得到另一個依賴集H,則必有,則必有 H+G

30、+。 計算所有隱含計算所有隱含F(xiàn)Ds的一個系統(tǒng)方法的一個系統(tǒng)方法 尋找函數(shù)依賴集尋找函數(shù)依賴集F的一個最小覆蓋的一個最小覆蓋G 3.4.3 基本規(guī)范范式(基本規(guī)范范式(1) v 第一范式第一范式 對于一個關(guān)系R,如果它的每個字段只包含不 可分割的原子值(即沒有復(fù)合值或值集字 段),則R滿足第一范式,記為R 1NF。 1NF獨立于鍵和函數(shù)依賴;關(guān)系模型能自然滿足 1NF約束。 v 第二范式第二范式 對于一個關(guān)系R,如果它的每個非鍵屬性A都 完全依賴于R的某個鍵,則R滿足第二范式, 記為R 2NF。 3.4.3 基本規(guī)范范式(基本規(guī)范范式(2) vBoyce-Codd 范式范式 令R是一關(guān)系模式,X和A分別是R的屬性子集。如果對 R中保持的每個FD:XA,能至少滿足以下兩條件之一, 就稱R滿足Boyce-Codd范式,簡記為R BCNF。 1) A X,即XA是一個平凡的FD; 2) X是一個超鍵。 可證明:判斷R BCNF,只需檢查F+中每個非平凡FD 左邊是否為超鍵。 v 直觀分析直觀分析“滿足滿足BCNF”的關(guān)系表的關(guān)系表 BCNF能確保關(guān)系表在FD信息視角下無冗余。 每個元組是“一個實體或一個關(guān)系” 。 每個字段都存儲著無法從其它字段(利用FD)推導(dǎo)出的信息值。 BCNF關(guān)系中的關(guān)系中的 非平凡非平凡FD結(jié)構(gòu)模式結(jié)構(gòu)模式 基本規(guī)范范式(

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論