數(shù)據(jù)庫-作業(yè)范式第5章_第1頁
數(shù)據(jù)庫-作業(yè)范式第5章_第2頁
數(shù)據(jù)庫-作業(yè)范式第5章_第3頁
數(shù)據(jù)庫-作業(yè)范式第5章_第4頁
數(shù)據(jù)庫-作業(yè)范式第5章_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五章函數(shù)依賴和關(guān)系數(shù)據(jù)庫的規(guī)范化5.1信息冗余和更新異常5.2函數(shù)依賴5.3關(guān)系數(shù)據(jù)庫的規(guī)范化5.4關(guān)系模式的反規(guī)范化案例5.1信息冗余和更新異常1.修改異常2.插入異常3.刪除異常5.2函數(shù)依賴5.2.1函數(shù)依賴的基本概念1.函數(shù)依賴的定義設(shè)R(U)是屬性集U上的關(guān)系模式。X、Y是U的子集。若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作X→Y。5.2函數(shù)依賴注意:⑴要判斷一個關(guān)系模式中存在哪些函數(shù)依賴,必須根據(jù)現(xiàn)實世界的已知事實,從語義出發(fā)進行判斷;⑵函數(shù)依賴和任何約束一樣,都是針對關(guān)系模式的,而不是針對特定關(guān)系實例的。只看一個實例,并不能確切地斷定某個函數(shù)依賴是否成立;⑶屬性間的函數(shù)依賴是屬性之間必須滿足的數(shù)據(jù)依賴關(guān)系,用戶必須將它們在數(shù)據(jù)庫中定義好。這樣當(dāng)用戶在對數(shù)據(jù)庫的關(guān)系(表)進行更新操作的時候,DBMS將逐一檢查關(guān)系上的函數(shù)依賴,以保證屬性間的依賴關(guān)系不被破壞。5.2函數(shù)依賴2.平凡和非平凡函數(shù)依賴在關(guān)系模式R(U)中,對于U的屬性子集X和Y,如果X→Y,但YX,則稱X→Y是非平凡的函數(shù)依賴。若YX,則稱X→Y是平凡的函數(shù)依賴。由于對任何一個關(guān)系模式來說,平凡函數(shù)依賴都是必定成立的,討論這種函數(shù)依賴是毫無意義的。因此若沒有特別的說明,本章討論的都是非平凡的函數(shù)依賴。5.2函數(shù)依賴3.完全函數(shù)依賴和部分函數(shù)依賴在關(guān)系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X',都有X‘Y,則稱Y完全函數(shù)依賴于X,記作:XY若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴。記作:XY5.2函數(shù)依賴4.傳遞函數(shù)依賴在關(guān)系模式R(U)中,如果X→Y,Y→Z,且YX,YX,則稱Z傳遞函數(shù)依賴于X,記為:XZ5.2函數(shù)依賴5.2.2尋找最小函數(shù)依賴集為了DBMS能高效地檢查屬性間的函數(shù)依賴,必須為每個關(guān)系模式找到一個最小的函數(shù)依賴集,用F’表示。F’須滿足如下的2個條件:⑴F’中所包含的函數(shù)依賴比F中的少;⑵F中所有的函數(shù)依賴都被F’中的函數(shù)依賴所蘊含,即從F’的函數(shù)依賴出發(fā)可以推導(dǎo)出所有F中的函數(shù)依賴。反之亦然。5.2函數(shù)依賴1.邏輯蘊含和函數(shù)依賴集閉包設(shè)F是關(guān)系模式R(U)的函數(shù)依賴集合,若由F出發(fā)可以證明其他某些函數(shù)依賴也成立,則稱這些函數(shù)依賴被F所邏輯蘊含。被一個關(guān)系模式的函數(shù)依賴集F所邏輯蘊含的所有函數(shù)依賴的集合稱為該關(guān)系模式的函數(shù)依賴集閉包,記為F+。利用阿姆斯特朗公理可以尋找關(guān)系模式的函數(shù)依賴集閉包F+。5.2函數(shù)依賴---阿姆斯特朗公理設(shè)有關(guān)系模式R(U,F),U={A1,A2,…,An}是R的屬性集,F(xiàn)是R的屬性集U上的函數(shù)依賴集,X、Y、Z、W是U的子集。阿姆斯特朗公理包含如下的規(guī)則:⑴自反律:若YX,則XY;⑵增廣律:若XY,則XZYZ;⑶傳遞律:若XY,YZ,則XZ;用Armstrong公理直接計算F+還是比較麻煩,所以對上述3條規(guī)則又進行了擴展,得到了如下的推論:⑴合并規(guī)則:若XY且XZ,則XYZ;⑵分解規(guī)則:若XY,且ZY,則XZ;⑶偽傳遞規(guī)則:若XY且WYZ,則WXZ;5.2函數(shù)依賴5.2.3關(guān)系的超碼、候選碼和主碼包含在任何一個候選碼中的屬性,稱為主屬性。不包含在任何一個候選碼中的屬性,稱為非主屬性或非碼屬性。5.2函數(shù)依賴存在一個關(guān)系R(U),U={A1,A2,…..,An},X是U的一個子集,X’是X的真子集。(1)存在XA1A2A3……An(2)且X’A1A2A3……An則稱X是U的碼。5.3關(guān)系數(shù)據(jù)庫的規(guī)范化5.3.1第一范式如果關(guān)系模式R的任何一個關(guān)系r的屬性值都是不可分的原子值,那么稱R屬于第一范式,記為R1NF。5.3關(guān)系數(shù)據(jù)庫的規(guī)范化5.3.2第二范式如果關(guān)系模式R屬于1NF,且每一非主屬性完全函數(shù)依賴于候選碼,則稱R屬于2NF。5.3關(guān)系數(shù)據(jù)庫的規(guī)范化5.3.3第三范式如果關(guān)系模式R屬于2NF,且每一非主屬性都不傳遞依賴于候選碼,則稱R屬于3NF。也就是說,如果一個規(guī)范化的關(guān)系模式中的每一個非主屬性都不部分依賴、也不傳遞依賴于候選碼的話,該關(guān)系模式就屬于3NF。5.3關(guān)系數(shù)據(jù)庫的規(guī)范化5.3.4BC范式1.定義為了消除3NF中的函數(shù)依賴所帶來的各種更新異常問題,Boyce和Codd提出了BCNF(BoyceCoddNormalForm),定義如下:如果關(guān)系模式R屬于1NF,且對于R的每一個函數(shù)依賴X→Y(YX),都有X包含候選碼,那么就稱R屬于BCNF。BCNF的函數(shù)依賴示意圖之所以有這樣的一個特點,是因為在BCNF中所有的函數(shù)依賴X→Y(YX)的左部都包含候選碼。這樣,當(dāng)我們要求DBMS實現(xiàn)屬性間的固有的函數(shù)依賴關(guān)系的時候,就非常簡單了。5.3關(guān)系數(shù)據(jù)庫的規(guī)范化5.3.5關(guān)系模式規(guī)范化的基本步驟根據(jù)前面的介紹,可以總結(jié)出關(guān)系模式規(guī)范化的基本步驟:1.對屬于1NF但不屬于2NF的關(guān)系模式進行投影,消除其中非主屬性對碼的部分函數(shù)依賴,將1NF關(guān)系分解成若干個2NF的關(guān)系。2.對屬于2NF但不屬于3NF的關(guān)系模式進行投影,消除其中非主屬性對碼的傳遞函數(shù)依賴,將2NF關(guān)系分解成若干個3NF的關(guān)系。3.對屬于3NF但不屬于BCNF的關(guān)系模式進行投影,消除其中主屬性對碼的部分和傳遞函數(shù)依賴,將3NF關(guān)系分解成若干個BCNF的關(guān)系。規(guī)范化的過程就是模式分解的過程,當(dāng)然模式分解的步驟不是絕對的,即分解時不一定嚴格按照上面的步驟,而是可以直接將一個1NF關(guān)系模式分解成若干個3NF或BCNF的關(guān)系模式等。5.3關(guān)系數(shù)據(jù)庫的規(guī)范化5.3.6模式分解的無損連接性和函數(shù)依賴的保持模式分解的步驟和方法都不是絕對的,不管用那種方法進行分解,都必須注意模式分解的等價性,即分解后產(chǎn)生的若干個關(guān)系模式必須與原來的

溫馨提示

  • 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

提交評論