第3章-數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第1頁(yè)
第3章-數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第2頁(yè)
第3章-數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第3頁(yè)
第3章-數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第4頁(yè)
第3章-數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩107頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章數(shù)據(jù)庫(kù)設(shè)計(jì)第3章數(shù)據(jù)庫(kù)設(shè)計(jì)1第3章數(shù)據(jù)庫(kù)設(shè)計(jì)ER數(shù)據(jù)模型3.1EER數(shù)據(jù)模型3.2邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):映射ER/EER模式到關(guān)系模式3.3關(guān)系模式求精與規(guī)范化3.42第3章數(shù)據(jù)庫(kù)設(shè)計(jì)ER數(shù)據(jù)模型3.1EER數(shù)據(jù)模型3.2邏輯DB應(yīng)用DB應(yīng)用定義:一個(gè)特定的數(shù)據(jù)庫(kù),加上實(shí)現(xiàn)此數(shù)據(jù)庫(kù)查詢(xún)/更新的相關(guān)程序。概念設(shè)計(jì)是成功設(shè)計(jì)DB應(yīng)用的一個(gè)環(huán)節(jié)。實(shí)體-關(guān)系模型(Entity-Relationmodel),簡(jiǎn)稱(chēng)ER模型,是一種非常流行的概念數(shù)據(jù)模型。EER是基于ER的擴(kuò)展模型(EnhancedERmodel)ER/EER已被廣泛應(yīng)用于DB概念設(shè)計(jì)。它們均以圖形化方式描述和捕獲用戶(hù)需求。基于ER/EER進(jìn)行概念設(shè)計(jì)的輸出為一組ER/EER圖?;诟拍钅P偷脑O(shè)計(jì),最終都必須變換/轉(zhuǎn)換到可在DB中實(shí)現(xiàn)的邏輯數(shù)據(jù)模型。借助RDB設(shè)計(jì)有關(guān)規(guī)范理論,不僅可對(duì)轉(zhuǎn)換后的邏輯數(shù)據(jù)模式進(jìn)行規(guī)范,而且可對(duì)ER/EER圖進(jìn)行求精。3DB應(yīng)用DB應(yīng)用定義:一個(gè)特定的數(shù)據(jù)庫(kù),加上實(shí)現(xiàn)此數(shù)據(jù)庫(kù)查詢(xún)DB設(shè)計(jì)的主要階段與過(guò)程4DB設(shè)計(jì)的主要階段與過(guò)程4DB設(shè)計(jì)的基本步驟(1)1.需求分析2.概念DB設(shè)計(jì)利用需求分析獲得的信息,建立DB數(shù)據(jù)的一個(gè)抽象描述。這一步通常利用ER/EER模型,或其它高級(jí)數(shù)據(jù)概念模型(如UML類(lèi)圖),來(lái)實(shí)現(xiàn)。3.邏輯DB設(shè)計(jì)轉(zhuǎn)換DB概念設(shè)計(jì)模式到指定DBMS邏輯模式。由于需求信息本身帶有很大主觀性,故基于需求信息構(gòu)造的ER/EER圖只能提供數(shù)據(jù)的一個(gè)近似描述。4.模式細(xì)化5.物理DB設(shè)計(jì)6.安全設(shè)計(jì)5DB設(shè)計(jì)的基本步驟(1)1.需求分析5DB設(shè)計(jì)的基本步驟(2)1.需求分析2.概念DB設(shè)計(jì)3.邏輯DB設(shè)計(jì)4.模式細(xì)化分析關(guān)系數(shù)據(jù)庫(kù)模式的關(guān)系集,檢查潛在問(wèn)題并進(jìn)行優(yōu)化。與需求分析和概念設(shè)計(jì)的主觀性特點(diǎn)不同,細(xì)化可得到強(qiáng)有力的規(guī)范理論支持。5.物理DB設(shè)計(jì)考慮應(yīng)用必須支持的一些典型預(yù)期負(fù)荷,并以此為基礎(chǔ)進(jìn)一步求精DB設(shè)計(jì),確保它能滿(mǎn)足預(yù)期的性能要求。這個(gè)步驟可能包括為一些表建立索引,或指定聚集存儲(chǔ)方式等。6.安全設(shè)計(jì)6DB設(shè)計(jì)的基本步驟(2)1.需求分析63.1ER數(shù)據(jù)模型3.1.1實(shí)體類(lèi)型、實(shí)體集、屬性和鍵3.1.2關(guān)系、關(guān)系類(lèi)型和關(guān)系集3.1.3ER模型的其他特性73.1ER數(shù)據(jù)模型3.1.1實(shí)體類(lèi)型、實(shí)體集、屬性和鍵ER模型簡(jiǎn)介1.構(gòu)成ER模型的基本概念實(shí)體與屬性實(shí)體類(lèi)型、實(shí)體集與鍵實(shí)體類(lèi)型:定義了具有相同屬性的實(shí)體模式結(jié)構(gòu),由名和屬性來(lái)描述。實(shí)體集:具有相同實(shí)體類(lèi)型的所有實(shí)體集合。實(shí)體類(lèi)型描述了相同結(jié)構(gòu)實(shí)體集的模式或內(nèi)涵;實(shí)體集則描述了實(shí)體類(lèi)型的外延。ER圖中不區(qū)分實(shí)體類(lèi)型和實(shí)體集(被視為同義詞)。關(guān)系、關(guān)系類(lèi)型和關(guān)系集ER模型的其它概念☆ER圖表示規(guī)定實(shí)體集:用加矩形外框的名字來(lái)表示。屬性名:則用橢圓框起,并用直線與實(shí)體集相連。多值屬性:用雙線橢圓框起;復(fù)合屬性:用名字后加注結(jié)構(gòu)成份表示;鍵屬性:通過(guò)屬性名加下劃線來(lái)標(biāo)識(shí)。

☆ER圖表示規(guī)定關(guān)系集:用名字外加菱形框表示,并用直線將其與參與實(shí)體集的矩形框相連。8ER模型簡(jiǎn)介1.構(gòu)成ER模型的基本概念☆ER圖表示規(guī)定ER圖設(shè)計(jì)舉例(1)9ER圖設(shè)計(jì)舉例(1)9ER圖設(shè)計(jì)舉例(2)10ER圖設(shè)計(jì)舉例(2)10ER模型的其它概念關(guān)系屬性關(guān)系集也可以有自己的描述屬性,用來(lái)刻畫(huà)關(guān)系集本身的性質(zhì),而不是某個(gè)參與實(shí)體集的性質(zhì)。關(guān)系約束指與關(guān)系集相關(guān)的約束,通過(guò)約束表達(dá)可限制參與關(guān)系各實(shí)體的可能組合。主要類(lèi)型:基數(shù)詞約束、鍵約束和參與約束。弱實(shí)體集指只能附屬其它實(shí)體集而存在的實(shí)體集。11ER模型的其它概念關(guān)系屬性11在ER圖中表達(dá)關(guān)系基數(shù)詞和參與約束12在ER圖中表達(dá)關(guān)系基數(shù)詞和參與約束12弱實(shí)體集的幾種ER建模方法(圖3.5)13弱實(shí)體集的幾種ER建模方法(圖3.5)133.2EER數(shù)據(jù)模型3.2.1EER模型核心概念的形式定義3.2.2子類(lèi)、超類(lèi)與類(lèi)層次結(jié)構(gòu)3.2.3特化與泛化3.2.4利用union子類(lèi)建模3.2.5值集屬性與復(fù)合結(jié)構(gòu)屬性的建模表示3.2.6EER與UML類(lèi)圖比較3.2.7EER作為知識(shí)表示模型3.2.8為大型企業(yè)/組織進(jìn)行DB概念設(shè)計(jì)143.2EER數(shù)據(jù)模型3.2.1EER模型核心概念的形式定EER核心概念(1)類(lèi)指實(shí)體的集合或?qū)嶓w集,這包括可對(duì)DB應(yīng)用域?qū)嶓w分組的任何EER模式構(gòu)造,如實(shí)體類(lèi)(型)、子類(lèi)、超類(lèi)和類(lèi)別。EER中,任何類(lèi)都允許參與一個(gè)關(guān)系。子類(lèi)、超類(lèi)子類(lèi)S是一個(gè)類(lèi),子類(lèi)中的實(shí)體必然是其超類(lèi)C中實(shí)體的一個(gè)子集,即有關(guān)系:S?C成立超類(lèi)/子類(lèi)關(guān)系也稱(chēng)為ISA關(guān)系,記做C/S。子類(lèi)實(shí)體除了可以從超類(lèi)實(shí)體中繼承所有的屬性外,還可以有自己專(zhuān)有的屬性和關(guān)系。15EER核心概念(1)類(lèi)15EER核心概念(2)特化特化Z={S1,S2,…,Sn}是具有相同超類(lèi)G的一個(gè)子類(lèi)集合,每個(gè)G/Si是一個(gè)超類(lèi)/子類(lèi)關(guān)系。G被稱(chēng)為泛化實(shí)體類(lèi)型。用“特化”指代由特化過(guò)程所獲得的--特化子集。特化的種類(lèi)(約束)完全特化與部分特化;不相交特化與重疊特化。兩類(lèi)約束相互獨(dú)立,可以組合出四種約束。泛化是特化的逆過(guò)程,允許我們忽略多個(gè)實(shí)體集之間的性質(zhì)差異,找出它們的共同點(diǎn)--抽象出超類(lèi)。特化是概念上的求精,而泛化則是概念上的綜合。顯然,由泛化獲得超類(lèi)方法,易得到完全特化的子集。16EER核心概念(2)特化特化是概念上的求精,而泛化則是概念上特化及其約束的EER表示17特化及其約束的EER表示17EER核心概念(3)類(lèi)別(category)類(lèi)別有時(shí)也被稱(chēng)為union子類(lèi)。類(lèi)別T是一個(gè)類(lèi),它是n個(gè)判定超類(lèi)D1,D2,…,Dn(n>1)并集的一個(gè)子集。其形式表示為:T?(D1?D2?…?Dn)union子類(lèi)的約束完全約束:子類(lèi)包含了其所有超類(lèi)并集中的所有成員;部分約束:子類(lèi)只包含并集的一個(gè)子集。18EER核心概念(3)類(lèi)別(category)18UNION子類(lèi)及其約束的EER表示(圖3.8)用粗/細(xì)區(qū)分完全和部分約束19UNION子類(lèi)及其約束的EER表示(圖3.8)用粗/細(xì)區(qū)分基本ER模型與UML類(lèi)圖的特性對(duì)比20基本ER模型與UML類(lèi)圖的特性對(duì)比20CompanyDB模式的EER表示21CompanyDB模式的EER表示21CompanyDB模式的UML表示22CompanyDB模式的UML表示223.3邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):映射ER/EER模式到關(guān)系模式3.3.1映射常規(guī)實(shí)體集到關(guān)系表3.3.2映射關(guān)系集到關(guān)系表3.3.3映射弱實(shí)體集3.3.4映射帶有聚集關(guān)系的ER圖3.3.5映射EER擴(kuò)展結(jié)構(gòu)3.3.6ER模型至關(guān)系模型映射小結(jié)233.3邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):映射ER/EER模式到關(guān)系模式3.33.3映射ER/EER模式到關(guān)系模式ER/EER模型適合于初始階段、抽象層次較高的DB概念設(shè)計(jì)。給定一個(gè)概念設(shè)計(jì)模式(ER/EER圖),現(xiàn)已有一套標(biāo)準(zhǔn)方法可將它們映射到關(guān)系DB模式,但這種轉(zhuǎn)換還只是近似的。DB模式:{一組表}+{約束集}基于SQL-92,我們尚無(wú)法捕獲隱含在ER/EER設(shè)計(jì)中的所有約束。本節(jié)我們將介紹從ER/EER模式創(chuàng)建關(guān)系模式的方法和過(guò)程。243.3映射ER/EER模式到關(guān)系模式ER/EER模型適合映射常規(guī)實(shí)體集到關(guān)系表一個(gè)常規(guī)實(shí)體集可直接地映射到一個(gè)關(guān)系表:將實(shí)體集的每個(gè)屬性,作為關(guān)系表的一個(gè)屬性。用SQL-92DDL建表語(yǔ)句基本上可以完全捕獲這些信息,包括域約束和主鍵約束。25映射常規(guī)實(shí)體集到關(guān)系表一個(gè)常規(guī)實(shí)體集可直接地映射到一個(gè)關(guān)系映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集方法1:獨(dú)立關(guān)系表法映射關(guān)系集R到獨(dú)立的關(guān)系表R’。26映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集26映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集方法1:獨(dú)立關(guān)系表法方法2:外鍵方法將關(guān)系集的相關(guān)信息合并到具有鍵約束的參與實(shí)體集中(一對(duì)多關(guān)系的‘一’端)。27映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集27映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集方法1:獨(dú)立關(guān)系表法方法2:外鍵方法方法3:合并關(guān)系法若關(guān)系集的所有參與實(shí)體集都有鍵約束且都是完全參與。這時(shí),也可合并所有參與實(shí)體集到一個(gè)關(guān)系。(二)在映射關(guān)系集時(shí)考慮參與約束圖3.9(a)中的Manages,除了鍵約束(每部門(mén)至多有一經(jīng)理)外,還含有一完全參與約束(每部門(mén)至少需要有一經(jīng)理)??紤]到這一點(diǎn),Dept_Mgr:ssn應(yīng)設(shè)置NOTNULL。(三)無(wú)鍵約束和參與約束的關(guān)系集映射對(duì)這類(lèi)關(guān)系集,一般只能用獨(dú)立關(guān)系表法(方法1)進(jìn)行映射。28映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集28映射弱實(shí)體集弱實(shí)體集總是參與一對(duì)多的二元關(guān)系,且有一個(gè)鍵約束和完全參與約束。前面討論的映射關(guān)系方法2(外鍵法)是一種較理想的轉(zhuǎn)換方法。但要考慮弱實(shí)體中只含有部分鍵這個(gè)情況。29映射弱實(shí)體集弱實(shí)體集總是參與一對(duì)多的二元關(guān)系,且有一個(gè)鍵約映射EER擴(kuò)展結(jié)構(gòu)--多值/復(fù)合結(jié)構(gòu)屬性關(guān)系模式不支持多值屬性,必須為關(guān)系模式中的每個(gè)多值屬性,分別創(chuàng)建一個(gè)獨(dú)立的關(guān)系。令關(guān)系模式為R,MA是R的一個(gè)多值屬性,為MA創(chuàng)建的關(guān)系表為M。M的屬性應(yīng)包含R的主鍵屬性k,以便關(guān)聯(lián)到R。原關(guān)系模式R中可去掉多值屬性MA.令關(guān)系模式為R,CA是R的一個(gè)復(fù)合屬性。對(duì)于CA,有兩種建模方法:方法1:將復(fù)合屬性的每個(gè)結(jié)構(gòu)成份,分別作為一個(gè)屬性,加到所屬的關(guān)系表中。方法2:為復(fù)合屬性CA單獨(dú)建立一個(gè)關(guān)系表。30映射EER擴(kuò)展結(jié)構(gòu)--多值/復(fù)合結(jié)構(gòu)屬性關(guān)系模式不支持多值映射EER擴(kuò)展結(jié)構(gòu)--類(lèi)層次結(jié)構(gòu)映射處理EER圖中的ISA層次結(jié)構(gòu)。假設(shè)超類(lèi)C被特化為m個(gè)子類(lèi){S1,…,Sm}Attr(C)={k,a1,…,an},PK(C)=k。方法1:映射超類(lèi)和每個(gè)子類(lèi)到一個(gè)不同的表。31映射EER擴(kuò)展結(jié)構(gòu)--類(lèi)層次結(jié)構(gòu)映射處理EER圖中的ISA映射EER擴(kuò)展結(jié)構(gòu)--類(lèi)層次結(jié)構(gòu)方法1:映射超類(lèi)和每個(gè)子類(lèi)到一個(gè)不同的表。方法2:僅創(chuàng)建子類(lèi)關(guān)系表。為每個(gè)子類(lèi)Si(1≤i≤m)創(chuàng)建一個(gè)關(guān)系Li,且有屬性Attr(Li)={k,a1,…,an}?{Si的其它專(zhuān)有屬性},PK(Li)=k。該方法只適用于超類(lèi)完全參與的特化類(lèi)型。方法3:僅創(chuàng)建含1個(gè)類(lèi)標(biāo)志屬性的單個(gè)關(guān)系。方法4:僅創(chuàng)建含m個(gè)類(lèi)標(biāo)志屬性的單個(gè)關(guān)系。該方法能適應(yīng)子類(lèi)有重疊特化的情況,但會(huì)產(chǎn)生大量的null值。32映射EER擴(kuò)展結(jié)構(gòu)--類(lèi)層次結(jié)構(gòu)方法1:映射超類(lèi)和每個(gè)子類(lèi)映射EER:union子類(lèi)(1)1)對(duì)超類(lèi)實(shí)體集有各自不同鍵的情況在創(chuàng)建與union子類(lèi)對(duì)應(yīng)的關(guān)系表時(shí),通常需要指定一個(gè)新的鍵屬性--代理鍵(surrogatekey)。2)對(duì)超類(lèi)實(shí)體集有有相同鍵的情況這時(shí),無(wú)需使用代理鍵。33映射EER:union子類(lèi)(1)1)對(duì)超類(lèi)實(shí)體集有各自ER模型至關(guān)系模型映射小結(jié)步驟1:映射常規(guī)實(shí)體集。步驟2:映射弱實(shí)體集。步驟3:映射ER模式中的關(guān)系集。步驟4:映射ER模式中的聚集關(guān)系集。步驟5:映射與EER模型相關(guān)的擴(kuò)展結(jié)構(gòu)。34ER模型至關(guān)系模型映射小結(jié)步驟1:映射常規(guī)實(shí)體集。343.4關(guān)系模型求精與規(guī)范化3.4.1模式求精問(wèn)題3.4.2函數(shù)依賴(lài)3.4.3基本規(guī)范范式3.4.4無(wú)損分解與依賴(lài)保持分解3.4.5分解與規(guī)范化關(guān)系模式3.4.6多值依賴(lài)與第四規(guī)范353.4關(guān)系模型求精與規(guī)范化3.4.1模式求精問(wèn)題3.4.1模式求精問(wèn)題(綜述)模式求精的基本任務(wù)是基于分解技術(shù),來(lái)處理初始關(guān)系模式中存在的問(wèn)題。信息的冗余存儲(chǔ)是引發(fā)這些問(wèn)題的根源。雖然分解能刪除冗余,但它也可能導(dǎo)致一些額外的問(wèn)題,如信息損失或?qū)е履承?qiáng)制性約束丟失,必須慎重使用。(一)冗余可能引發(fā)問(wèn)題浪費(fèi)空間。更新異常。同樣的信息被存儲(chǔ)多份,如某份數(shù)據(jù)被更新,而其它份信息未做相應(yīng)更新,就會(huì)造成DB數(shù)據(jù)的不一致。插入異常。如果不附帶冗余存儲(chǔ)一些相關(guān)的信息,新的信息可能無(wú)法存儲(chǔ)到DB中。刪除異常。刪除某信息時(shí),可能會(huì)附帶刪掉一些不希望刪除的信息。363.4.1模式求精問(wèn)題(綜述)模式求精的基本任務(wù)是基于分冗余可能引發(fā)問(wèn)題舉例考慮Hourly_Emps(ssn,name,lot,rating,hourly_wages,ours_worked)縮寫(xiě)為Hourly_Emps(SNLRWH)假定小時(shí)工資主要取決于員工等級(jí),即給定R值,就可唯一確定W值。這是一個(gè)典型的函數(shù)依賴(lài)約束關(guān)系,它會(huì)導(dǎo)致存儲(chǔ)冗余,其副作用有多個(gè)方面:同等級(jí)員工對(duì)應(yīng)的元組中,R/W信息完全相同。同樣的信息被存儲(chǔ)多次,浪費(fèi)存儲(chǔ)空間。如果刪除了給定R值的所有元組,將丟失這組R/W所隱含的IC約束信息,這是一種刪除異常。無(wú)法單獨(dú)記錄員工等級(jí)與小時(shí)工資的R/W關(guān)系。這是一種插入異常。

37冗余可能引發(fā)問(wèn)題舉例考慮Hourly_Emps37(二)利用分解技術(shù)消除冗余函數(shù)依賴(lài)約束(FDs)或其它相近的ICs可被用來(lái)識(shí)別冗余點(diǎn),并給出處理冗余的指導(dǎo)性建議。分解技術(shù)的核心思想通過(guò)將原關(guān)系替換(分解)為一組更小關(guān)系,來(lái)解決冗余問(wèn)題。

例如,通過(guò)將Hourly_Emps分解為如下的兩個(gè)小關(guān)系,就可以很好消除原有冗余引起的相關(guān)問(wèn)題。Hourly_Emps2(ssn,name,lot,rating,hours_worked)Wages(rating,hourly_wage)38(二)利用分解技術(shù)消除冗余函數(shù)依賴(lài)約束(FDs)或其它相近的(三)分解可能引發(fā)的相關(guān)問(wèn)題分解能很好解決冗余問(wèn)題,但必須慎重使用,否則可能會(huì)帶來(lái)其它問(wèn)題。在使用分解時(shí),須反復(fù)提問(wèn)以下兩個(gè)重要問(wèn)題:我們的確需要分解一個(gè)關(guān)系嗎?對(duì)該問(wèn)題,已有若干規(guī)范來(lái)幫助回答這個(gè)問(wèn)題。一個(gè)給定的分解會(huì)引起那些其它問(wèn)題?對(duì)該問(wèn)題,可借助分解的兩個(gè)重要特性來(lái)幫助回答用無(wú)損連接(lossless-join);依賴(lài)保持(dependency-preservasion)39(三)分解可能引發(fā)的相關(guān)問(wèn)題分解能很好解決冗余問(wèn)題,但必須慎3.4.2函數(shù)依賴(lài)(functionaldependency,FD)函數(shù)依賴(lài),是DB中兩組屬性間存在的一種約束,是一類(lèi)更廣義的鍵概念約束。其形式定義如下:令R代表一個(gè)關(guān)系模式,r是R的一個(gè)任意合法實(shí)例。X和Y是R的兩個(gè)非空屬性子集。如果對(duì)r中每個(gè)元組對(duì)t1和t2有t1.X=t2.X,則必有t1.Y=t2.Y。這時(shí),我們就稱(chēng)Y函數(shù)依賴(lài)于X,記為:XY。

兩類(lèi)特殊的函數(shù)依賴(lài)完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)通常,模式設(shè)計(jì)者會(huì)顯式指定一組函數(shù)依賴(lài)。常用F表示在關(guān)系R上顯式指定的一組{FDs}。403.4.2函數(shù)依賴(lài)(functionaldependen函數(shù)依賴(lài)推理(1)在滿(mǎn)足F:{FDs}的所有合法關(guān)系實(shí)例中,通常還會(huì)隱含一些其它可從F推理獲得的函數(shù)依賴(lài)。例如,對(duì)Workers(ssn,name,lot,did,since)顯式FDsFD1:ssndid,F(xiàn)D2:didlot保持隱含F(xiàn)Ds通過(guò)傳遞推理,不難發(fā)現(xiàn):在Workers中,F(xiàn)D3:ssnlot也能保持的結(jié)論。定義(隱含函數(shù)依賴(lài)f)給定FDs集F,如果FD:f也能在滿(mǎn)足F的每個(gè)關(guān)系實(shí)例中保持,則稱(chēng)FD:f是隱含在F中的函數(shù)依賴(lài)。定義(函數(shù)依賴(lài)集閉包F+)將包括給定的FDs集F,加上F所隱含的所有f,合稱(chēng)為F閉包,簡(jiǎn)記為F+。41函數(shù)依賴(lài)推理(1)在滿(mǎn)足F:{FDs}的所有合法關(guān)系實(shí)例中,函數(shù)依賴(lài)推理(2)由給定FDs集F,推導(dǎo)或計(jì)算出F+的規(guī)則自反規(guī)則IR1:如X?Y,則XY。增廣規(guī)則IR2:如XY,則XZYZ,Z是任意屬性組。傳遞規(guī)則IR3:如果XY,YZ,則XZ。兩增補(bǔ)規(guī)則:合并或加法規(guī)則IR4:如果XY,XZ,則XYZ。分解或投影規(guī)則IR5:如果XYZ,則XY,XZ。定義(平凡函數(shù)依賴(lài))如果XY且X?Y,則稱(chēng)XY是平凡的(trivial)。顯然,利用自反規(guī)則IR1,我們不難由已知的FDs推出所有的平凡依賴(lài)關(guān)系。42函數(shù)依賴(lài)推理(2)由給定FDs集F,推導(dǎo)或計(jì)算出F+的規(guī)函數(shù)依賴(lài)推理(3)定義(函數(shù)依賴(lài)集覆蓋)對(duì)于函數(shù)依賴(lài)集F,如果另一個(gè)函數(shù)依賴(lài)集E中的每個(gè)函數(shù)依賴(lài)同時(shí)也在F+中,則稱(chēng)F覆蓋了E。定義(函數(shù)依賴(lài)集等價(jià))對(duì)于兩個(gè)函數(shù)依賴(lài)集E和F,如果E+=F+,則稱(chēng)E和F是等價(jià)的。定義(函數(shù)依賴(lài)集最小覆蓋)一個(gè)FDs集F的最小覆蓋是滿(mǎn)足以下三個(gè)條件的一組FDs集G:G中的每個(gè)依賴(lài)關(guān)系都是規(guī)范的XA形式,這里,A是一個(gè)單屬性;閉包F+等價(jià)于閉包G+。如果通過(guò)刪除G中的一個(gè)或多個(gè)依賴(lài)關(guān)系,或刪除G中依賴(lài)關(guān)系的屬性,得到另一個(gè)依賴(lài)集H,則必有H+≠G+。43函數(shù)依賴(lài)推理(3)定義(函數(shù)依賴(lài)集覆蓋)43計(jì)算所有隱含F(xiàn)Ds的一個(gè)系統(tǒng)方法44計(jì)算所有隱含F(xiàn)Ds的一個(gè)系統(tǒng)方法44尋找函數(shù)依賴(lài)集F的一個(gè)最小覆蓋G45尋找函數(shù)依賴(lài)集F的一個(gè)最小覆蓋G453.4.3基本規(guī)范范式(1)第一范式對(duì)于一個(gè)關(guān)系R,如果它的每個(gè)字段只包含不可分割的原子值(即沒(méi)有復(fù)合值或值集字段),則R滿(mǎn)足第一范式,記為R?1NF。1NF獨(dú)立于鍵和函數(shù)依賴(lài);關(guān)系模型能自然滿(mǎn)足1NF約束。第二范式對(duì)于一個(gè)關(guān)系R,如果它的每個(gè)非鍵屬性A都完全依賴(lài)于R的某個(gè)鍵,則R滿(mǎn)足第二范式,記為R?2NF。463.4.3基本規(guī)范范式(1)第一范式463.4.3基本規(guī)范范式(2)Boyce-Codd范式令R是一關(guān)系模式,X和A分別是R的屬性子集。如果對(duì)R中保持的每個(gè)FD:XA,能至少滿(mǎn)足以下兩條件之一,就稱(chēng)R滿(mǎn)足Boyce-Codd范式,簡(jiǎn)記為R?BCNF。1)A?X,即XA是一個(gè)平凡的FD;2)X是一個(gè)超鍵??勺C明:判斷R?BCNF,只需檢查F+中每個(gè)非平凡FD左邊是否為超鍵。直觀分析“滿(mǎn)足BCNF”的關(guān)系表BCNF能確保關(guān)系表在FD信息視角下無(wú)冗余。每個(gè)元組是“一個(gè)實(shí)體或一個(gè)關(guān)系”。每個(gè)字段都存儲(chǔ)著無(wú)法從其它字段(利用FD)推導(dǎo)出的信息值。BCNF關(guān)系中的非平凡FD結(jié)構(gòu)模式473.4.3基本規(guī)范范式(2)Boyce-Codd范式基本規(guī)范范式(3)第三規(guī)范令R是一關(guān)系模式,X與A分別是R的屬性子集。如果對(duì)R中保持的每個(gè)FD:XA,能至少滿(mǎn)足以下三條件之一,就稱(chēng)R滿(mǎn)足第三范式,簡(jiǎn)記為R?3NF。A?X,即XA是一個(gè)平凡的FD;X是一個(gè)超鍵;A是R的部分鍵。3NF比BCNF多了第三個(gè)條件,也允許A是鍵的一部分。顯然,每個(gè)BCNF關(guān)系肯定是3NF關(guān)系48基本規(guī)范范式(3)第三規(guī)范48依賴(lài)關(guān)系XA違反3NF的兩種主要情形1)X是某鍵K的一個(gè)屬性子集。這時(shí),依賴(lài)關(guān)系XA是部分依賴(lài)。這種情形下,存儲(chǔ)‘(X,A)對(duì)’是一種冗余情況,R2NF。2)X不是任何鍵K的完全屬性子集。這時(shí),存在依賴(lài)鏈KXA,依賴(lài)關(guān)系XA是傳遞依賴(lài)。49依賴(lài)關(guān)系XA違反3NF的兩種主要情形1)X是某鍵K的一個(gè)屬3.4.4無(wú)損分解與依賴(lài)保持分解1.無(wú)損分解無(wú)損分解定義令R為一關(guān)系模式,F(xiàn)是R上的FDs集將R分解為兩個(gè)屬性組X和Y,如果對(duì)R的每個(gè)滿(mǎn)足F的實(shí)例r,滿(mǎn)足πx(r)?πy(r)=r,就稱(chēng)該分解是無(wú)損連接的。無(wú)損分解應(yīng)用將R分解為屬性組R1和R2是無(wú)損連接的,當(dāng)且僅當(dāng)R1∩R2R1或R1∩R2R2保持。舉例:Hourly_Emps(SNLRWH);FD:RW503.4.4無(wú)損分解與依賴(lài)保持分解1.無(wú)損分解50一個(gè)不滿(mǎn)足無(wú)損連接的分解示例(圖3.14)51一個(gè)不滿(mǎn)足無(wú)損連接的分解示例(圖3.14)513.4.4無(wú)損分解與依賴(lài)保持分解2.依賴(lài)保持分解定義(依賴(lài)集投影)令關(guān)系R被分解為兩個(gè)屬性組X和Y,F是R上保持的FDsF在X上的投影(FX):是F+中那些僅包含X中屬性的FDs依賴(lài)UV在Fx中,當(dāng)且僅當(dāng)U和V中的所有屬性都在X中。定義(依賴(lài)保持分解)帶有FDs集F的關(guān)系模式R,分解為X和Y兩個(gè)屬性組是依賴(lài)保持的,當(dāng)且僅當(dāng)(FX?FY)+=F+。依賴(lài)保持為什么考慮F閉包F+而不是F?523.4.4無(wú)損分解與依賴(lài)保持分解2.依賴(lài)保持分解523.4.5分解與規(guī)范化關(guān)系模式1.分解關(guān)系到BCNF533.4.5分解與規(guī)范化關(guān)系模式1.分解關(guān)系到BCNF533.4.5分解與規(guī)范化關(guān)系模式2.分解關(guān)系到3NF543.4.5分解與規(guī)范化關(guān)系模式2.分解關(guān)系到3NF54分解到BCNF與分解到3NF的實(shí)質(zhì)差別對(duì)一個(gè)非BCNF的關(guān)系模式,通過(guò)無(wú)損連接分解,獲得一組滿(mǎn)足BCNF的關(guān)系模式總是可能的。但有可能不存在獲得一組BCNF關(guān)系的任何依賴(lài)保持分解。而將一個(gè)非BCNF關(guān)系分解為一組3NF關(guān)系的無(wú)損連接且依賴(lài)保持分解,則通??偸谴嬖诘?。?55分解到BCNF與分解到3NF的實(shí)質(zhì)差別對(duì)一個(gè)非BCNF的關(guān)系 謝謝大家! 謝謝大家!56第3章數(shù)據(jù)庫(kù)設(shè)計(jì)第3章數(shù)據(jù)庫(kù)設(shè)計(jì)57第3章數(shù)據(jù)庫(kù)設(shè)計(jì)ER數(shù)據(jù)模型3.1EER數(shù)據(jù)模型3.2邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):映射ER/EER模式到關(guān)系模式3.3關(guān)系模式求精與規(guī)范化3.458第3章數(shù)據(jù)庫(kù)設(shè)計(jì)ER數(shù)據(jù)模型3.1EER數(shù)據(jù)模型3.2邏輯DB應(yīng)用DB應(yīng)用定義:一個(gè)特定的數(shù)據(jù)庫(kù),加上實(shí)現(xiàn)此數(shù)據(jù)庫(kù)查詢(xún)/更新的相關(guān)程序。概念設(shè)計(jì)是成功設(shè)計(jì)DB應(yīng)用的一個(gè)環(huán)節(jié)。實(shí)體-關(guān)系模型(Entity-Relationmodel),簡(jiǎn)稱(chēng)ER模型,是一種非常流行的概念數(shù)據(jù)模型。EER是基于ER的擴(kuò)展模型(EnhancedERmodel)ER/EER已被廣泛應(yīng)用于DB概念設(shè)計(jì)。它們均以圖形化方式描述和捕獲用戶(hù)需求?;贓R/EER進(jìn)行概念設(shè)計(jì)的輸出為一組ER/EER圖?;诟拍钅P偷脑O(shè)計(jì),最終都必須變換/轉(zhuǎn)換到可在DB中實(shí)現(xiàn)的邏輯數(shù)據(jù)模型。借助RDB設(shè)計(jì)有關(guān)規(guī)范理論,不僅可對(duì)轉(zhuǎn)換后的邏輯數(shù)據(jù)模式進(jìn)行規(guī)范,而且可對(duì)ER/EER圖進(jìn)行求精。59DB應(yīng)用DB應(yīng)用定義:一個(gè)特定的數(shù)據(jù)庫(kù),加上實(shí)現(xiàn)此數(shù)據(jù)庫(kù)查詢(xún)DB設(shè)計(jì)的主要階段與過(guò)程60DB設(shè)計(jì)的主要階段與過(guò)程4DB設(shè)計(jì)的基本步驟(1)1.需求分析2.概念DB設(shè)計(jì)利用需求分析獲得的信息,建立DB數(shù)據(jù)的一個(gè)抽象描述。這一步通常利用ER/EER模型,或其它高級(jí)數(shù)據(jù)概念模型(如UML類(lèi)圖),來(lái)實(shí)現(xiàn)。3.邏輯DB設(shè)計(jì)轉(zhuǎn)換DB概念設(shè)計(jì)模式到指定DBMS邏輯模式。由于需求信息本身帶有很大主觀性,故基于需求信息構(gòu)造的ER/EER圖只能提供數(shù)據(jù)的一個(gè)近似描述。4.模式細(xì)化5.物理DB設(shè)計(jì)6.安全設(shè)計(jì)61DB設(shè)計(jì)的基本步驟(1)1.需求分析5DB設(shè)計(jì)的基本步驟(2)1.需求分析2.概念DB設(shè)計(jì)3.邏輯DB設(shè)計(jì)4.模式細(xì)化分析關(guān)系數(shù)據(jù)庫(kù)模式的關(guān)系集,檢查潛在問(wèn)題并進(jìn)行優(yōu)化。與需求分析和概念設(shè)計(jì)的主觀性特點(diǎn)不同,細(xì)化可得到強(qiáng)有力的規(guī)范理論支持。5.物理DB設(shè)計(jì)考慮應(yīng)用必須支持的一些典型預(yù)期負(fù)荷,并以此為基礎(chǔ)進(jìn)一步求精DB設(shè)計(jì),確保它能滿(mǎn)足預(yù)期的性能要求。這個(gè)步驟可能包括為一些表建立索引,或指定聚集存儲(chǔ)方式等。6.安全設(shè)計(jì)62DB設(shè)計(jì)的基本步驟(2)1.需求分析63.1ER數(shù)據(jù)模型3.1.1實(shí)體類(lèi)型、實(shí)體集、屬性和鍵3.1.2關(guān)系、關(guān)系類(lèi)型和關(guān)系集3.1.3ER模型的其他特性633.1ER數(shù)據(jù)模型3.1.1實(shí)體類(lèi)型、實(shí)體集、屬性和鍵ER模型簡(jiǎn)介1.構(gòu)成ER模型的基本概念實(shí)體與屬性實(shí)體類(lèi)型、實(shí)體集與鍵實(shí)體類(lèi)型:定義了具有相同屬性的實(shí)體模式結(jié)構(gòu),由名和屬性來(lái)描述。實(shí)體集:具有相同實(shí)體類(lèi)型的所有實(shí)體集合。實(shí)體類(lèi)型描述了相同結(jié)構(gòu)實(shí)體集的模式或內(nèi)涵;實(shí)體集則描述了實(shí)體類(lèi)型的外延。ER圖中不區(qū)分實(shí)體類(lèi)型和實(shí)體集(被視為同義詞)。關(guān)系、關(guān)系類(lèi)型和關(guān)系集ER模型的其它概念☆ER圖表示規(guī)定實(shí)體集:用加矩形外框的名字來(lái)表示。屬性名:則用橢圓框起,并用直線與實(shí)體集相連。多值屬性:用雙線橢圓框起;復(fù)合屬性:用名字后加注結(jié)構(gòu)成份表示;鍵屬性:通過(guò)屬性名加下劃線來(lái)標(biāo)識(shí)。

☆ER圖表示規(guī)定關(guān)系集:用名字外加菱形框表示,并用直線將其與參與實(shí)體集的矩形框相連。64ER模型簡(jiǎn)介1.構(gòu)成ER模型的基本概念☆ER圖表示規(guī)定ER圖設(shè)計(jì)舉例(1)65ER圖設(shè)計(jì)舉例(1)9ER圖設(shè)計(jì)舉例(2)66ER圖設(shè)計(jì)舉例(2)10ER模型的其它概念關(guān)系屬性關(guān)系集也可以有自己的描述屬性,用來(lái)刻畫(huà)關(guān)系集本身的性質(zhì),而不是某個(gè)參與實(shí)體集的性質(zhì)。關(guān)系約束指與關(guān)系集相關(guān)的約束,通過(guò)約束表達(dá)可限制參與關(guān)系各實(shí)體的可能組合。主要類(lèi)型:基數(shù)詞約束、鍵約束和參與約束。弱實(shí)體集指只能附屬其它實(shí)體集而存在的實(shí)體集。67ER模型的其它概念關(guān)系屬性11在ER圖中表達(dá)關(guān)系基數(shù)詞和參與約束68在ER圖中表達(dá)關(guān)系基數(shù)詞和參與約束12弱實(shí)體集的幾種ER建模方法(圖3.5)69弱實(shí)體集的幾種ER建模方法(圖3.5)133.2EER數(shù)據(jù)模型3.2.1EER模型核心概念的形式定義3.2.2子類(lèi)、超類(lèi)與類(lèi)層次結(jié)構(gòu)3.2.3特化與泛化3.2.4利用union子類(lèi)建模3.2.5值集屬性與復(fù)合結(jié)構(gòu)屬性的建模表示3.2.6EER與UML類(lèi)圖比較3.2.7EER作為知識(shí)表示模型3.2.8為大型企業(yè)/組織進(jìn)行DB概念設(shè)計(jì)703.2EER數(shù)據(jù)模型3.2.1EER模型核心概念的形式定EER核心概念(1)類(lèi)指實(shí)體的集合或?qū)嶓w集,這包括可對(duì)DB應(yīng)用域?qū)嶓w分組的任何EER模式構(gòu)造,如實(shí)體類(lèi)(型)、子類(lèi)、超類(lèi)和類(lèi)別。EER中,任何類(lèi)都允許參與一個(gè)關(guān)系。子類(lèi)、超類(lèi)子類(lèi)S是一個(gè)類(lèi),子類(lèi)中的實(shí)體必然是其超類(lèi)C中實(shí)體的一個(gè)子集,即有關(guān)系:S?C成立超類(lèi)/子類(lèi)關(guān)系也稱(chēng)為ISA關(guān)系,記做C/S。子類(lèi)實(shí)體除了可以從超類(lèi)實(shí)體中繼承所有的屬性外,還可以有自己專(zhuān)有的屬性和關(guān)系。71EER核心概念(1)類(lèi)15EER核心概念(2)特化特化Z={S1,S2,…,Sn}是具有相同超類(lèi)G的一個(gè)子類(lèi)集合,每個(gè)G/Si是一個(gè)超類(lèi)/子類(lèi)關(guān)系。G被稱(chēng)為泛化實(shí)體類(lèi)型。用“特化”指代由特化過(guò)程所獲得的--特化子集。特化的種類(lèi)(約束)完全特化與部分特化;不相交特化與重疊特化。兩類(lèi)約束相互獨(dú)立,可以組合出四種約束。泛化是特化的逆過(guò)程,允許我們忽略多個(gè)實(shí)體集之間的性質(zhì)差異,找出它們的共同點(diǎn)--抽象出超類(lèi)。特化是概念上的求精,而泛化則是概念上的綜合。顯然,由泛化獲得超類(lèi)方法,易得到完全特化的子集。72EER核心概念(2)特化特化是概念上的求精,而泛化則是概念上特化及其約束的EER表示73特化及其約束的EER表示17EER核心概念(3)類(lèi)別(category)類(lèi)別有時(shí)也被稱(chēng)為union子類(lèi)。類(lèi)別T是一個(gè)類(lèi),它是n個(gè)判定超類(lèi)D1,D2,…,Dn(n>1)并集的一個(gè)子集。其形式表示為:T?(D1?D2?…?Dn)union子類(lèi)的約束完全約束:子類(lèi)包含了其所有超類(lèi)并集中的所有成員;部分約束:子類(lèi)只包含并集的一個(gè)子集。74EER核心概念(3)類(lèi)別(category)18UNION子類(lèi)及其約束的EER表示(圖3.8)用粗/細(xì)區(qū)分完全和部分約束75UNION子類(lèi)及其約束的EER表示(圖3.8)用粗/細(xì)區(qū)分基本ER模型與UML類(lèi)圖的特性對(duì)比76基本ER模型與UML類(lèi)圖的特性對(duì)比20CompanyDB模式的EER表示77CompanyDB模式的EER表示21CompanyDB模式的UML表示78CompanyDB模式的UML表示223.3邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):映射ER/EER模式到關(guān)系模式3.3.1映射常規(guī)實(shí)體集到關(guān)系表3.3.2映射關(guān)系集到關(guān)系表3.3.3映射弱實(shí)體集3.3.4映射帶有聚集關(guān)系的ER圖3.3.5映射EER擴(kuò)展結(jié)構(gòu)3.3.6ER模型至關(guān)系模型映射小結(jié)793.3邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):映射ER/EER模式到關(guān)系模式3.33.3映射ER/EER模式到關(guān)系模式ER/EER模型適合于初始階段、抽象層次較高的DB概念設(shè)計(jì)。給定一個(gè)概念設(shè)計(jì)模式(ER/EER圖),現(xiàn)已有一套標(biāo)準(zhǔn)方法可將它們映射到關(guān)系DB模式,但這種轉(zhuǎn)換還只是近似的。DB模式:{一組表}+{約束集}基于SQL-92,我們尚無(wú)法捕獲隱含在ER/EER設(shè)計(jì)中的所有約束。本節(jié)我們將介紹從ER/EER模式創(chuàng)建關(guān)系模式的方法和過(guò)程。803.3映射ER/EER模式到關(guān)系模式ER/EER模型適合映射常規(guī)實(shí)體集到關(guān)系表一個(gè)常規(guī)實(shí)體集可直接地映射到一個(gè)關(guān)系表:將實(shí)體集的每個(gè)屬性,作為關(guān)系表的一個(gè)屬性。用SQL-92DDL建表語(yǔ)句基本上可以完全捕獲這些信息,包括域約束和主鍵約束。81映射常規(guī)實(shí)體集到關(guān)系表一個(gè)常規(guī)實(shí)體集可直接地映射到一個(gè)關(guān)系映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集方法1:獨(dú)立關(guān)系表法映射關(guān)系集R到獨(dú)立的關(guān)系表R’。82映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集26映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集方法1:獨(dú)立關(guān)系表法方法2:外鍵方法將關(guān)系集的相關(guān)信息合并到具有鍵約束的參與實(shí)體集中(一對(duì)多關(guān)系的‘一’端)。83映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集27映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集方法1:獨(dú)立關(guān)系表法方法2:外鍵方法方法3:合并關(guān)系法若關(guān)系集的所有參與實(shí)體集都有鍵約束且都是完全參與。這時(shí),也可合并所有參與實(shí)體集到一個(gè)關(guān)系。(二)在映射關(guān)系集時(shí)考慮參與約束圖3.9(a)中的Manages,除了鍵約束(每部門(mén)至多有一經(jīng)理)外,還含有一完全參與約束(每部門(mén)至少需要有一經(jīng)理)??紤]到這一點(diǎn),Dept_Mgr:ssn應(yīng)設(shè)置NOTNULL。(三)無(wú)鍵約束和參與約束的關(guān)系集映射對(duì)這類(lèi)關(guān)系集,一般只能用獨(dú)立關(guān)系表法(方法1)進(jìn)行映射。84映射關(guān)系集到關(guān)系表(一)映射含鍵約束的關(guān)系集28映射弱實(shí)體集弱實(shí)體集總是參與一對(duì)多的二元關(guān)系,且有一個(gè)鍵約束和完全參與約束。前面討論的映射關(guān)系方法2(外鍵法)是一種較理想的轉(zhuǎn)換方法。但要考慮弱實(shí)體中只含有部分鍵這個(gè)情況。85映射弱實(shí)體集弱實(shí)體集總是參與一對(duì)多的二元關(guān)系,且有一個(gè)鍵約映射EER擴(kuò)展結(jié)構(gòu)--多值/復(fù)合結(jié)構(gòu)屬性關(guān)系模式不支持多值屬性,必須為關(guān)系模式中的每個(gè)多值屬性,分別創(chuàng)建一個(gè)獨(dú)立的關(guān)系。令關(guān)系模式為R,MA是R的一個(gè)多值屬性,為MA創(chuàng)建的關(guān)系表為M。M的屬性應(yīng)包含R的主鍵屬性k,以便關(guān)聯(lián)到R。原關(guān)系模式R中可去掉多值屬性MA.令關(guān)系模式為R,CA是R的一個(gè)復(fù)合屬性。對(duì)于CA,有兩種建模方法:方法1:將復(fù)合屬性的每個(gè)結(jié)構(gòu)成份,分別作為一個(gè)屬性,加到所屬的關(guān)系表中。方法2:為復(fù)合屬性CA單獨(dú)建立一個(gè)關(guān)系表。86映射EER擴(kuò)展結(jié)構(gòu)--多值/復(fù)合結(jié)構(gòu)屬性關(guān)系模式不支持多值映射EER擴(kuò)展結(jié)構(gòu)--類(lèi)層次結(jié)構(gòu)映射處理EER圖中的ISA層次結(jié)構(gòu)。假設(shè)超類(lèi)C被特化為m個(gè)子類(lèi){S1,…,Sm}Attr(C)={k,a1,…,an},PK(C)=k。方法1:映射超類(lèi)和每個(gè)子類(lèi)到一個(gè)不同的表。87映射EER擴(kuò)展結(jié)構(gòu)--類(lèi)層次結(jié)構(gòu)映射處理EER圖中的ISA映射EER擴(kuò)展結(jié)構(gòu)--類(lèi)層次結(jié)構(gòu)方法1:映射超類(lèi)和每個(gè)子類(lèi)到一個(gè)不同的表。方法2:僅創(chuàng)建子類(lèi)關(guān)系表。為每個(gè)子類(lèi)Si(1≤i≤m)創(chuàng)建一個(gè)關(guān)系Li,且有屬性Attr(Li)={k,a1,…,an}?{Si的其它專(zhuān)有屬性},PK(Li)=k。該方法只適用于超類(lèi)完全參與的特化類(lèi)型。方法3:僅創(chuàng)建含1個(gè)類(lèi)標(biāo)志屬性的單個(gè)關(guān)系。方法4:僅創(chuàng)建含m個(gè)類(lèi)標(biāo)志屬性的單個(gè)關(guān)系。該方法能適應(yīng)子類(lèi)有重疊特化的情況,但會(huì)產(chǎn)生大量的null值。88映射EER擴(kuò)展結(jié)構(gòu)--類(lèi)層次結(jié)構(gòu)方法1:映射超類(lèi)和每個(gè)子類(lèi)映射EER:union子類(lèi)(1)1)對(duì)超類(lèi)實(shí)體集有各自不同鍵的情況在創(chuàng)建與union子類(lèi)對(duì)應(yīng)的關(guān)系表時(shí),通常需要指定一個(gè)新的鍵屬性--代理鍵(surrogatekey)。2)對(duì)超類(lèi)實(shí)體集有有相同鍵的情況這時(shí),無(wú)需使用代理鍵。89映射EER:union子類(lèi)(1)1)對(duì)超類(lèi)實(shí)體集有各自ER模型至關(guān)系模型映射小結(jié)步驟1:映射常規(guī)實(shí)體集。步驟2:映射弱實(shí)體集。步驟3:映射ER模式中的關(guān)系集。步驟4:映射ER模式中的聚集關(guān)系集。步驟5:映射與EER模型相關(guān)的擴(kuò)展結(jié)構(gòu)。90ER模型至關(guān)系模型映射小結(jié)步驟1:映射常規(guī)實(shí)體集。343.4關(guān)系模型求精與規(guī)范化3.4.1模式求精問(wèn)題3.4.2函數(shù)依賴(lài)3.4.3基本規(guī)范范式3.4.4無(wú)損分解與依賴(lài)保持分解3.4.5分解與規(guī)范化關(guān)系模式3.4.6多值依賴(lài)與第四規(guī)范913.4關(guān)系模型求精與規(guī)范化3.4.1模式求精問(wèn)題3.4.1模式求精問(wèn)題(綜述)模式求精的基本任務(wù)是基于分解技術(shù),來(lái)處理初始關(guān)系模式中存在的問(wèn)題。信息的冗余存儲(chǔ)是引發(fā)這些問(wèn)題的根源。雖然分解能刪除冗余,但它也可能導(dǎo)致一些額外的問(wèn)題,如信息損失或?qū)е履承?qiáng)制性約束丟失,必須慎重使用。(一)冗余可能引發(fā)問(wèn)題浪費(fèi)空間。更新異常。同樣的信息被存儲(chǔ)多份,如某份數(shù)據(jù)被更新,而其它份信息未做相應(yīng)更新,就會(huì)造成DB數(shù)據(jù)的不一致。插入異常。如果不附帶冗余存儲(chǔ)一些相關(guān)的信息,新的信息可能無(wú)法存儲(chǔ)到DB中。刪除異常。刪除某信息時(shí),可能會(huì)附帶刪掉一些不希望刪除的信息。923.4.1模式求精問(wèn)題(綜述)模式求精的基本任務(wù)是基于分冗余可能引發(fā)問(wèn)題舉例考慮Hourly_Emps(ssn,name,lot,rating,hourly_wages,ours_worked)縮寫(xiě)為Hourly_Emps(SNLRWH)假定小時(shí)工資主要取決于員工等級(jí),即給定R值,就可唯一確定W值。這是一個(gè)典型的函數(shù)依賴(lài)約束關(guān)系,它會(huì)導(dǎo)致存儲(chǔ)冗余,其副作用有多個(gè)方面:同等級(jí)員工對(duì)應(yīng)的元組中,R/W信息完全相同。同樣的信息被存儲(chǔ)多次,浪費(fèi)存儲(chǔ)空間。如果刪除了給定R值的所有元組,將丟失這組R/W所隱含的IC約束信息,這是一種刪除異常。無(wú)法單獨(dú)記錄員工等級(jí)與小時(shí)工資的R/W關(guān)系。這是一種插入異常。

93冗余可能引發(fā)問(wèn)題舉例考慮Hourly_Emps37(二)利用分解技術(shù)消除冗余函數(shù)依賴(lài)約束(FDs)或其它相近的ICs可被用來(lái)識(shí)別冗余點(diǎn),并給出處理冗余的指導(dǎo)性建議。分解技術(shù)的核心思想通過(guò)將原關(guān)系替換(分解)為一組更小關(guān)系,來(lái)解決冗余問(wèn)題。

例如,通過(guò)將Hourly_Emps分解為如下的兩個(gè)小關(guān)系,就可以很好消除原有冗余引起的相關(guān)問(wèn)題。Hourly_Emps2(ssn,name,lot,rating,hours_worked)Wages(rating,hourly_wage)94(二)利用分解技術(shù)消除冗余函數(shù)依賴(lài)約束(FDs)或其它相近的(三)分解可能引發(fā)的相關(guān)問(wèn)題分解能很好解決冗余問(wèn)題,但必須慎重使用,否則可能會(huì)帶來(lái)其它問(wèn)題。在使用分解時(shí),須反復(fù)提問(wèn)以下兩個(gè)重要問(wèn)題:我們的確需要分解一個(gè)關(guān)系嗎?對(duì)該問(wèn)題,已有若干規(guī)范來(lái)幫助回答這個(gè)問(wèn)題。一個(gè)給定的分解會(huì)引起那些其它問(wèn)題?對(duì)該問(wèn)題,可借助分解的兩個(gè)重要特性來(lái)幫助回答用無(wú)損連接(lossless-join);依賴(lài)保持(dependency-preservasion)95(三)分解可能引發(fā)的相關(guān)問(wèn)題分解能很好解決冗余問(wèn)題,但必須慎3.4.2函數(shù)依賴(lài)(functionaldependency,FD)函數(shù)依賴(lài),是DB中兩組屬性間存在的一種約束,是一類(lèi)更廣義的鍵概念約束。其形式定義如下:令R代表一個(gè)關(guān)系模式,r是R的一個(gè)任意合法實(shí)例。X和Y是R的兩個(gè)非空屬性子集。如果對(duì)r中每個(gè)元組對(duì)t1和t2有t1.X=t2.X,則必有t1.Y=t2.Y。這時(shí),我們就稱(chēng)Y函數(shù)依賴(lài)于X,記為:XY。

兩類(lèi)特殊的函數(shù)依賴(lài)完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)通常,模式設(shè)計(jì)者會(huì)顯式指定一組函數(shù)依賴(lài)。常用F表示在關(guān)系R上顯式指定的一組{FDs}。963.4.2函數(shù)依賴(lài)(functionaldependen函數(shù)依賴(lài)推理(1)在滿(mǎn)足F:{FDs}的所有合法關(guān)系實(shí)例中,通常還會(huì)隱含一些其它可從F推理獲得的函數(shù)依賴(lài)。例如,對(duì)Workers(ssn,name,lot,did,since)顯式FDsFD1:ssndid,F(xiàn)D2:didlot保持隱含F(xiàn)Ds通過(guò)傳遞推理,不難發(fā)現(xiàn):在Workers中,F(xiàn)D3:ssnlot也能保持的結(jié)論。定義(隱含函數(shù)依賴(lài)f)給定FDs集F,如果FD:f也能在滿(mǎn)足F的每個(gè)關(guān)系實(shí)例中保持,則稱(chēng)FD:f是隱含在F中的函數(shù)依賴(lài)。定義(函數(shù)依賴(lài)集閉包F+)將包括給定的FDs集F,加上F所隱含的所有f,合稱(chēng)為F閉包,簡(jiǎn)記為F+。97函數(shù)依賴(lài)推理(1)在滿(mǎn)足F:{FDs}的所有合法關(guān)系實(shí)例中,函數(shù)依賴(lài)推理(2)由給定FDs集F,推導(dǎo)或計(jì)算出F+的規(guī)則自反規(guī)則IR1:如X?Y,則XY。增廣規(guī)則IR2:如XY,則XZYZ,Z是任意屬性組。傳遞規(guī)則IR3:如果XY,YZ,則XZ。兩增補(bǔ)規(guī)則:合并或加法規(guī)則IR4:如果XY,XZ,則XYZ。分解或投影規(guī)則IR5:如果XYZ,則XY,XZ。定義(平凡函數(shù)依賴(lài))如果XY且X?Y,則稱(chēng)XY是平凡的(trivial)。顯然,利用自反規(guī)則IR1,我們不難由已知的FDs推出所有的平凡依賴(lài)關(guān)系。98函數(shù)依賴(lài)推理(2)由給定FDs集F,推導(dǎo)或計(jì)算出F+的規(guī)函數(shù)依賴(lài)推理(3)定義(函數(shù)依賴(lài)集覆蓋)對(duì)于函數(shù)依賴(lài)集F,如果另一個(gè)函數(shù)依賴(lài)集E中的每個(gè)函數(shù)依賴(lài)同時(shí)也在F+中,則稱(chēng)F覆蓋了E。定義(函數(shù)依賴(lài)集等價(jià))對(duì)于兩個(gè)函數(shù)依賴(lài)集E和F,如果E+=F+,則稱(chēng)E和F是等價(jià)的。定義(函數(shù)依賴(lài)集最小覆蓋)一個(gè)FDs集F的最小覆蓋是滿(mǎn)足以下三個(gè)條件的一組FDs集G:G中的每個(gè)依賴(lài)關(guān)系都是規(guī)范的XA形式,這里,A是一個(gè)單屬性;閉包F+等價(jià)于閉包G+。如果通過(guò)刪除G中的一個(gè)或多個(gè)依賴(lài)關(guān)系,或刪除G中依賴(lài)關(guān)系的屬性,得到另一個(gè)依賴(lài)集H,則必有H+≠G+。99函數(shù)依賴(lài)推理(3)定義(函數(shù)依賴(lài)集覆蓋)43計(jì)算所有隱含F(xiàn)Ds的一個(gè)系統(tǒng)方法100計(jì)算所有隱含F(xiàn)Ds的一個(gè)系統(tǒng)方法44尋找函數(shù)依賴(lài)集F的一個(gè)最小覆

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論