第5章 關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第1頁
第5章 關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第2頁
第5章 關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第3頁
第5章 關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第4頁
第5章 關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2020/8/7,1,第五章關(guān)系模型的規(guī)范化設(shè)置修訂,軟件工程系劉金嶺,2020/8/7,2,本章的重要概念,(1)關(guān)系模型的冗馀性和異常問題。 (2)與FD的定義、邏輯含義、閉包、推論規(guī)則、鍵碼的關(guān)聯(lián)平凡的FD; 屬性集閉包推理規(guī)則的正確性和完整性FD集的等價(jià)最小依賴集。 (3)保持無損分解的定義、性質(zhì)和測試依賴集的分解。 (4)關(guān)系模式的正規(guī)形式:1NF、2NF、3NF、BCNF。 一種分解為2NF、3NF模式集的算法,2020/8/7,3,3,如前所述,所謂關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)定修正,是面對現(xiàn)實(shí)問題,如何選擇好的關(guān)系模式集合,即由哪些屬性構(gòu)成標(biāo)準(zhǔn)化設(shè)置修正理論主要包括數(shù)據(jù)依賴性、標(biāo)準(zhǔn)化和

2、模式設(shè)置修正方法三個(gè)方面。 其中數(shù)據(jù)依賴起著核心作用。 數(shù)據(jù)依賴于研究數(shù)據(jù)之間的聯(lián)系,范式是關(guān)系模型的標(biāo)準(zhǔn),模型設(shè)定修正方法是自動(dòng)化設(shè)定修正的基礎(chǔ)。 規(guī)范化設(shè)置修訂理論對關(guān)系數(shù)據(jù)庫結(jié)構(gòu)的設(shè)置修訂起著重要的作用。 2020/8/7,4、4、4、例4.1中有關(guān)系模式R(TNAME、ADDRESS、CNO、CNAME ),其屬性分別表示教師名、教師住址、教師課程的編號(hào)、課程名。 另外,關(guān)系模式r的例子如果在數(shù)據(jù)庫設(shè)定修正中一個(gè)關(guān)系模式?jīng)]有被正確設(shè)定,則會(huì)發(fā)生文件系統(tǒng)這樣的數(shù)據(jù)的冗馀性、異常、不一致等問題。 關(guān)系模式的冗馀和異常問題(1),2020/8/7,5,5,關(guān)系模式的冗馀和異常問題(2),該模

3、式出現(xiàn)的問題,(1)數(shù)據(jù)冗馀:一個(gè)教師教了一些課,這個(gè)教師的住址必須多次記憶。 (2)操作異常:由于數(shù)據(jù)的冗長性,在對數(shù)數(shù)據(jù)操作時(shí)會(huì)引起各種異常:修正異常。 例如,教師t1教三節(jié)課,關(guān)系就有三個(gè)元組。 如果他的地址改變了的話,這三個(gè)元組的地址都必須改變。 如果一個(gè)元組內(nèi)的地址未更改,則該教師的地址不唯一,會(huì)發(fā)生不一致。 插入異常。 如果某教師剛剛調(diào)動(dòng),還沒有被分配授課任務(wù)的情況下,把教師的名字和地址存入關(guān)系時(shí),屬性CNO和CNAME沒有值(null值)。 在數(shù)據(jù)庫技術(shù)中,中空值的意義非常復(fù)雜,對于具有null值的元組的檢索和操作也十分麻煩。 刪除例外。 為了在圖4.1中取消教師t3的教育任務(wù),

4、刪除該教師的元組,并且還從表中刪除t3的地址信息。 這是不恰當(dāng)?shù)默F(xiàn)象。 2020/8/7,6、6、6、關(guān)系模式的冗馀性和異常問題(3)可以說關(guān)系模式r不是好的模式。 “好”模式應(yīng)不發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)的冗馀性盡可能少。 規(guī)范化的原則:“如果有關(guān)模式存在操作異?;蛉唛L的問題,將其分解。 ”,是最佳分解嗎? 那么,什么樣的關(guān)系模式是最合適的呢? 標(biāo)準(zhǔn)是什么? 怎樣實(shí)現(xiàn)? 在2020/8/7,7、7、7、7、本章的符號(hào)規(guī)則中,英文字母開頭的大寫字母“a、b、c、d、”,表示各個(gè)屬性。 英文字母的末尾大寫字母“,u,v,w,x,y,z”表示屬性集。 大寫字母r表示關(guān)系模式,而小寫字母

5、r表示關(guān)系。 屬性集合A1、A2、An簡記為A1A2 An。 屬性集合x和y的和XY簡寫為XY。 XA簡寫為XA或AX。 一般來說,在建立和修改關(guān)系數(shù)據(jù)庫模型時(shí),必須注意三個(gè)問題:必須明確這些數(shù)據(jù)的聯(lián)系(實(shí)體聯(lián)系和屬性聯(lián)系)。 盡可能依賴于相互緊密的屬性來構(gòu)成個(gè)別模式。 依存關(guān)系不密切,特別是不能強(qiáng)行收集具有“排斥”性的屬性。2020/8/7、9、9、8、5.2函數(shù)依賴性、主內(nèi)容函數(shù)依賴性的定義FD的邏輯包含F(xiàn)D的推論規(guī)則FD和密鑰代碼的聯(lián)系屬性集的閉包FD集的最小依賴性集、2020/8/7、9、函數(shù)依賴性的定義(1)、函數(shù)依賴性定義5.1是關(guān)系模式R(U ),x和y是屬性集合u的子集,并且對

6、于R(U )的任何可能的關(guān)系r,如果r等于兩組在x上的屬性值,并且y上的屬性值不相等,則x函數(shù)依賴于y或y函數(shù)FD對于關(guān)系模式r的所有可能的關(guān)系r進(jìn)行定義。 對于r中的任意兩個(gè)元組,如果x值相同,則y值也相同,也就是說,只有一個(gè)y值對應(yīng)于一個(gè)x值。 此定義類似于數(shù)學(xué)中的單值函數(shù)定義。 在、圖中,左圖為: AB右圖為:沒有AB,函數(shù)依賴只由意義決定。 名字的年齡只有在那個(gè)部門沒有同名人的條件下才依賴于函數(shù)。2020/8/7、10、函數(shù)依賴的定義(2)、例5.2有關(guān)于學(xué)生選修課、教師選修課的關(guān)系模型: R(SNO、SNAME、CNO、GRADE、CNAME、)每個(gè)學(xué)生編號(hào)只有一個(gè)學(xué)生名稱,每個(gè)課程

7、編號(hào)只有一個(gè)課程每個(gè)SNOSNAME CNOCNAME學(xué)生上一門課程,如果有成績,可以寫下一張軟盤: (sno,CNO)GRADE也可以寫其他軟盤: (TAGE) TNAMETAGE,注意:函數(shù)依賴是關(guān)系r滿足關(guān)系的約束、2020/8/7、11、函數(shù)依賴的定義應(yīng)注意以下三點(diǎn):函數(shù)依賴是基于關(guān)系模式的函數(shù)概念(不是關(guān)系模式的特定實(shí)例)。 當(dāng)關(guān)系模式r存在函數(shù)依賴性XY時(shí),該模式的所有特定關(guān)系必須滿足XY。 函數(shù)依賴不是屬性構(gòu)成關(guān)系的方式(即關(guān)系結(jié)構(gòu)),而是依賴于關(guān)系所表現(xiàn)的信息本身的語義特性,只有基于該語義信息來決定函數(shù)依賴,沒有其他方法。 函數(shù)依賴是數(shù)據(jù)庫設(shè)置修改者對關(guān)系模型的斷言或決定,除了

8、在設(shè)置修改關(guān)系數(shù)據(jù)庫時(shí)修改關(guān)系結(jié)構(gòu)之外,為了定義數(shù)據(jù)依賴條件,要進(jìn)入關(guān)系的所有元組都滿足定義的條件8/7、12、FD的邏輯包含,定義5.2是在關(guān)系模式r上成立的函數(shù)依賴性的集合,XY是函數(shù)依賴性。 如果每個(gè)滿足f的關(guān)系r還滿足XY,則f邏輯包含XY且用F XY表示。 定義5.3為函數(shù)依存集合,由f邏輯中含有的函數(shù)依存全體構(gòu)成的集合,稱為函數(shù)依存集合f的閉包(closure ),標(biāo)記為f。 即F=XY |用FXY表示。 說明:即使小函數(shù)依賴集f,閉包f也大,一般總是有。 邏輯內(nèi)的目的是利用推論的方法從一組已知的函數(shù)依賴導(dǎo)出另一組函數(shù)依賴,并且找出所有函數(shù)依賴f。 2020/8/7,13,F(xiàn)D推論

9、規(guī)則(1)可以從已知FD導(dǎo)出另一FD,并且需要一系列推論規(guī)則。 設(shè)u為關(guān)系模式r的屬性集合,設(shè)f為僅涉及在r上成立的u中的屬性的函數(shù)依存集合。 FD的推論規(guī)則如果是A1(自反性,reflexivity):yxu,則XY在r上成立。 A2(擴(kuò)展性,augmentation ) :如果xy在r上成立,并且ZU,則XZYZ在r上成立。 A3(傳遞性,transitivity ) :如果xy和YZ在r上成立,則XZ在r上成立。 目的:通過這些FD推理規(guī)則從f中找出f、2020/8/7、14、FD的推理規(guī)則(2),結(jié)論FD推理規(guī)則A1、A2和A3是正確的。 即,如果XY是從f用推論規(guī)則導(dǎo)出的,則XY在f

10、中。 FD的其他5個(gè)推論規(guī)則: (1) A4(合并性,Union): XY,XZ XYZ。 (2) A5(分解性,Decomposition): XY,ZY XZ。 (3) A6(偽傳導(dǎo)性):XY、WYZ WXZ。 (4) A7(復(fù)合性,合成):xy,WZ XWYZ。 (5) A8(通用一致性):XY、WZ X(WY)YZ。例如,設(shè)置關(guān)系模式r,其中a、b、c、d、e和f是屬性集合的子集,并且r滿足以下函數(shù)依賴性: F=ABC,CDEF,證明:函數(shù)依賴性ADF成立: 證明:如果ABC (已知) AC (分解) ADCD (擴(kuò)展) CDEF (傳輸) ADEF (分解),2020/8/7,15,

11、XU在r上成立,那么x被稱為r的超耦合。 如果XU在r上成立,但對于x的照片子集w,WU不成立,那么x被稱為r上的候選密鑰。 例5.4在學(xué)生選課,教師擔(dān)任授課的關(guān)系模式中: R(SNO、SNAME、CNO、CNAME、GRADE、TNAME、TAGE )規(guī)定:每個(gè)學(xué)生只有一個(gè)成績。 每個(gè)學(xué)生只有一個(gè)名字每個(gè)課程編號(hào)只有一個(gè)課程名稱每個(gè)課程只有一個(gè)教師根據(jù)這些規(guī)則,發(fā)現(xiàn)(SNO,CNO )能量函數(shù)確定r的所有屬性且為一個(gè)候選密鑰。 (SNO、SNAME、CNO、TNAME )函數(shù)也可以確定r的所有屬性,然而,與其相比,僅僅是一個(gè)超鍵,而不能說是候選鍵。 因?yàn)槠渲邪嗖哦嗨嚨膶傩浴?020/8

12、/7、16、屬性集的閉包,定義5.5是關(guān)系模式R(U )、U=A1、A2、An、x是u的子集,f是u上的一個(gè)函數(shù)依存集,全部被稱為armsttt,另外XAi是Armstrong公理,從f到例5.5函數(shù)解:如果X=A AB,BC (已知) AC (傳遞性) AA (自反性)=A,b,c (根據(jù)定義) X=B BB (自反性) BC (已知),則函數(shù)依存集f中FD多,所以平凡的FD 形式的定義將定義5.6設(shè)定為屬性集合u上的FD集合,并且如果滿足,則: f的每個(gè)函數(shù)所依賴的右端對于作為單個(gè)屬性的f的任何函數(shù)而言都取決于XA,并且F-XA不等于f。 如果f的函數(shù)依賴于XA和x的子集z,則F-XAZA

13、不等于f。 f被稱為最小函數(shù)依賴集,表示為Fmin。 上述三個(gè)條件的作用是:保證在各個(gè)函數(shù)所依賴的右部沒有多個(gè)屬性的條件;保證在f沒有多元函數(shù)依賴的條件是:保證在函數(shù)所依賴的左部沒有重復(fù)屬性。 在假設(shè)R(A、b、c、d )、F=AB、BC、CD、CB、G=AC、BD、BD的函數(shù)依賴圖表中,用f、g和f、g來表示,但由于這兩個(gè)函數(shù)依賴圖表完全相同,所以f等效于g 、校正FD組合的最小依賴集合(2)、f和f、g和g、2020/8/7、19、算法4.2函數(shù)依賴集合f的最小依賴集合g :第一步驟:基于分解推理規(guī)則獲得與f等效的FD組合g。 步驟2 :清除g的每個(gè)軟盤左邊的冗馀屬性。 步驟3 :在g中刪

14、除冗馀軟盤。 求F=ABC、BC、AB、ABC、Fmin的解:首先將f中的FD寫入右邊是單屬性形式: F=AB、AC 由于得到的F=AB、AC、BC、ABC為f中的AB與BC能夠推斷AC,所以AC為冗馀,能夠刪除。 得到的F=AB、BC、ABC F中的ABC可以從BC中推斷出來,所以ABC也可以被刪除。 最后是被要求得到F=AB,BC的Fmin。 對于FD集的最小依賴集(4)、2020/8/7、21、5.3關(guān)系模式的分解、主要內(nèi)容模式分解問題可逆分解保持函數(shù)依賴分解、2020/8/7、22、模式分解問題,有數(shù)據(jù)的冗長性、插入定義5.7 F是關(guān)系模式R(U )的函數(shù)依存集合,標(biāo)記為R(F,u )

15、。 多個(gè)關(guān)系模式的集合=R1(U1,F(xiàn)1),R2(U2,F(xiàn)2),Rk(Uk,F(xiàn)k )時(shí):/*關(guān)系模式r的屬性全集u是分解后的所有小關(guān)系模式的屬性集Ui的和集*/的定義5.7實(shí)際上給出了模式分解必須滿足的基本條件、2020/8/7、23、無損分解(1)、例子5.7為關(guān)系模式R(ABC ),分解為=AB、AC。 r,上圖分解后的關(guān)系可以用自然連接還原。 下圖分解后的關(guān)系與自然連接后無法恢復(fù)原狀。 比r多出來的組稱為“噪聲”,2020/8/7,24,可逆分解(2),定義4.10以r為關(guān)系模型,f為r上的FD位置。 r被分解為數(shù)據(jù)庫模式=R1,Rk。 在r中滿足f的各關(guān)系r時(shí),由于存在r=R1(r)R2(r) Rk(r ),因此分解對f稱為“無損耦合分解”,僅稱為“無損耦合分解” 例5.7給出了“無損分解”和“損耗分解”的例子。 例如,關(guān)系型式R(ABC )分解被設(shè)定為=AB和BC。 (a )和(b )分別是模式AB和BC上的值r1和r2,(c )是r1 r2的值

溫馨提示

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

最新文檔

評論

0/150

提交評論