數(shù)據(jù)庫范式理解例題_第1頁
數(shù)據(jù)庫范式理解例題_第2頁
數(shù)據(jù)庫范式理解例題_第3頁
數(shù)據(jù)庫范式理解例題_第4頁
數(shù)據(jù)庫范式理解例題_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.范式分解主屬性: 包含在任一候選關(guān)鍵字中的屬性稱主屬性。非主屬性: 不包含在主碼中的屬性稱為非主屬性。函數(shù)依賴: 是指關(guān)系中一個(gè)或一組屬性的值可以決定其它屬性的值。函數(shù)依賴正象一個(gè)函數(shù) y = f(x) 一樣,x的值給定后,y的值也就唯一地確定了。 如果屬性集合Y中每個(gè)屬性的值構(gòu)成的集合唯一地決定了屬性集合X中每個(gè)屬性的值構(gòu)成的集合,則屬性集合X函數(shù)依賴于屬性集合Y,計(jì)為:YX。屬性集合Y中的屬性有時(shí)也稱作函數(shù)依賴YX的決定因素(determinant)。例:身份證號(hào)姓名。部分函數(shù)依賴:設(shè)X,Y是關(guān)系R的兩個(gè)屬性集合,存在XY,若X是X的真子集,存在XY,則稱Y部分函數(shù)依賴于X。完全函數(shù)依賴

2、:在R(U)中,如果Y函數(shù)依賴于X,并且對(duì)于X的任何一個(gè)真子集X,都有Y不函數(shù)依賴于X, 則稱Y對(duì)X完全函數(shù)依賴。否則稱Y對(duì)X部分函數(shù)依賴?!纠?;舉個(gè)例子就明白了。假設(shè)一個(gè)學(xué)生有幾個(gè)屬性SNO 學(xué)號(hào) SNAME 姓名 SDEPT系 SAGE 年齡 CNO 班級(jí)號(hào) G 成績 對(duì)于(SNO,SNAME,SDEPT,SAGE,CNO,G)來說,G完全依賴于(SNO, CNO), 因?yàn)?SNO,CNO)可以決定G,而SNO和CNO都不能單獨(dú)決定G。 而SAGE部分函數(shù)依賴于(SNO,CNO),因?yàn)?SNO,CNO)可以決定SAGE,而單獨(dú)的SNO也可以決定SAGE。傳遞函數(shù)依賴:設(shè)R(U)是屬性集U

3、上的關(guān)系,x、y、z是U的子集,在R(U)中,若xy,但yx,若yz,則xz,稱z傳遞函數(shù)依賴于x,記作XTZ。 如果X-Y, Y-Z, 則稱Z對(duì)X傳遞函數(shù)依賴。計(jì)算X+(屬性的閉包)算法:a.初始化,令X+=X;b.在F中依次查找每個(gè)沒有被標(biāo)記的函數(shù)依賴,若“左邊屬性集”包含于X+,則令X+=X+“右邊屬性集”,并為訪問過的函數(shù)依賴設(shè)置標(biāo)記。c.反復(fù)執(zhí)行b直到X+不改變?yōu)橹?。檢驗(yàn)給定的任意函數(shù)依賴A1A2.An-B是否蘊(yùn)含于依賴集S:分析:根據(jù)屬性集閉包的定義,可知A1A2.An-A1,A2,.,An+ 蘊(yùn)含于S。只要證明B在A1,A2,.,An+中,那么函數(shù)依賴A1A2.An-B肯定蘊(yùn)含于

4、依賴集S中求解過程:(1) 利用依賴集計(jì)算閉包(2) 如果B在閉包中,則函數(shù)依賴A1A2.An-B是否蘊(yùn)含于依賴集S,否則不蘊(yùn)含于S【例】總結(jié):判定函數(shù)依賴XY是否能由F導(dǎo)出的問題,可轉(zhuǎn)化為求X+并判定Y是否是X+子集的問題。即求F閉包的問題可轉(zhuǎn)化為求屬性集閉包的問題。函數(shù)依賴的閉包:定義:若F為關(guān)系模式R(U)的函數(shù)依賴集,我們把F以及所有被F邏輯蘊(yùn)涵的函數(shù)依賴的集合稱為F的閉包,記為F+求函數(shù)依賴閉包,基于函數(shù)依賴推理規(guī)則函數(shù)依賴推理規(guī)則:若XY-Z,則X-Z,Y-z (錯(cuò))正確的:若X-Y, 則XZ-YZ若X-Y,X-Z,則X-YZ若X-Y,Z屬于Y,則X-Z若X-Y,Y-Z,則X-Z若

5、X-YZ,則X-Y,X-Z /可以把每個(gè)函數(shù)依賴的右邊的屬性分解,從而使其右邊只出現(xiàn)一個(gè)屬性偽傳遞率:若A-B,BC-D,則AC-D范式第一范式(1NF):屬性,屬性值,字段不可分就是無重復(fù)的列不滿足1NF的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫【例】:第二范式(2NF):符合1NF,每一個(gè)非主屬性完全依賴于碼,不能存在部分依賴,有主鍵,非主鍵字段依賴主鍵; 唯一性 一個(gè)表只說明一個(gè)事物; 【例】:不符合第二范式的例子:表:學(xué)號(hào), 姓名, 年齡, 課程名稱, 成績, 學(xué)分;這個(gè)表明顯說明了兩個(gè)事務(wù):學(xué)生信息, 課程信息;存在問題:數(shù)據(jù)冗余,每條記錄都含有相同信息;刪除異常:刪除所有學(xué)生成績,就把課程信息全刪除

6、了;插入異常:學(xué)生未選課,無法記錄進(jìn)數(shù)據(jù)庫;更新異常:調(diào)整課程學(xué)分,所有行都調(diào)整。修正:學(xué)生:Student(學(xué)號(hào), 姓名, 年齡);課程:Course(課程名稱, 學(xué)分);選課關(guān)系:SelectCourse(學(xué)號(hào), 課程名稱, 成績)。滿足第2范式只消除了插入異常。第三范式(3NF):符合2NF,并且,消除傳遞依賴,非主鍵字段不能相互依賴; 每列都與主鍵有直接關(guān)系,不存在傳遞依賴; 若所有的屬性都是主屬性,則屬于第三范式要求一個(gè)數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息【例】:不符合第三范式的例子:學(xué)號(hào), 姓名, 年齡, 所在學(xué)院, 學(xué)院聯(lián)系電話,關(guān)鍵字為單一關(guān)鍵字學(xué)號(hào);存在依賴傳遞

7、: (學(xué)號(hào)) (所在學(xué)院) (學(xué)院地點(diǎn), 學(xué)院電話)存在問題:數(shù)據(jù)冗余:有重復(fù)值;更新異常:有重復(fù)的冗余信息,修改時(shí)需要同時(shí)修改多條記錄,否則會(huì)出現(xiàn)數(shù)據(jù)不一致的情況刪除異常修正:學(xué)生:(學(xué)號(hào), 姓名, 年齡, 所在學(xué)院);學(xué)院:(學(xué)院, 地點(diǎn), 電話)。 總結(jié):1nf:不可分 2nf:一個(gè)表說明一個(gè)事物,唯一性 3nf:對(duì)字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余。bcnf:是3NF的改進(jìn)形式BCNF意味著在關(guān)系模式中每一個(gè)決定因素都包含候選鍵,也就是說,只要屬性或?qū)傩越MA能夠決定任何一個(gè)屬性B,則A的子集中必須有候選鍵。BCNF范式排除了任何屬性對(duì)候選鍵的傳遞依賴

8、與部分依賴。滿足BCNF條件1 所有非主屬性對(duì)每一個(gè)候選鍵都是完全函數(shù)依賴;2 所有的主屬性對(duì)每一個(gè)不包含它的候選鍵,也是完全函數(shù)依賴;3 沒有任何屬性完全函數(shù)依賴于非候選鍵的任何一組屬性。候選鍵 (又稱候選碼,候選關(guān)鍵字,碼 ,candidate key) 設(shè)K是一個(gè)R(U)中的屬性或?qū)傩约?注意可以是屬性集合,也即多個(gè)屬性的組合),若K完全函數(shù)確定U,則K為R的候選鍵(Candidate key);通俗地說就是,能夠確定全部屬性的某個(gè)屬性或某組屬性,稱為候選鍵。若候選鍵多于一個(gè),則選定其中一個(gè)作為主鍵。*在所有依賴關(guān)系右邊沒有出現(xiàn)的屬性一定是候選鍵的成員。BCNF范式排除了任何屬性對(duì)候選

9、鍵的傳遞依賴與部分依賴。【例1】【例2】【例3】【例4】設(shè)有關(guān)系模式R(A,B,C,D,E,G)上的函數(shù)依賴集為:F=AB,BC,ADG,DE。求解:31求關(guān)系模式R的所有侯選鍵。解:求出侯選鍵AD。(2分)首先在F中函數(shù)依賴右邊不出現(xiàn)的屬性必在侯選鍵中,即AD(1分);由于(AD)+=ABCDEG,即AD能函數(shù)決定所有的屬性,所以侯選鍵只有一個(gè)AD(1分)。AD+=ADBEGC32分別求屬性集G、AD、CD、BC的閉包。G+=G(1分);(AD)+=ABCDEG(1分);(CD)+=CDE(1分);(BC)+=BC(1分)33將關(guān)系模式R保持依賴地且無損地分解成3NF,要求寫出分解過程。解:

10、F=AB,BC,ADG,DEF是最小依賴集,所有屬性在F中出現(xiàn),將F中是每個(gè)函數(shù)依賴組成一個(gè)關(guān)系模式得保持函數(shù)依賴的分解:AB,BC,ADG,DE(2分);并上一個(gè)侯選鍵AD得無損分解:AB,BC,ADG,DEAD=AB,BC,ADG,DE(2分)F=AB,BC,ADG,DE34將關(guān)系模式R無損地分解成BCNF,要求寫出分解過程。解:根據(jù)轉(zhuǎn)換為BCNF的無損連接分解算法6.51)由于候選鍵為AD,F(xiàn)中存在不符合BCNF要求的函數(shù)依賴,所以R不是BCNF,選AB分解為:R1=AB,R2=ACDEG;(1分)R1上保持的函數(shù)依賴集為AB,鍵為A,所以是BCNF;R2上保持的函數(shù)依賴集為AC,ADG

11、,DE,鍵為AD,所以不是BCNF;(1分)選AC進(jìn)一步分解為:R21=AC,R22=ADEG;(1分)R21上保持的函數(shù)依賴為AC,鍵為A,所以是BCNF;R22上保持的函數(shù)依賴為ADG,DE鍵為AD,所以不是BCNF;選DE進(jìn)一步分解為:R221=DE,R222=ADG;(1分)R221上保持的函數(shù)依賴為DE,鍵為D,所以是BCNF;R222上保持的函數(shù)依賴為ADG,鍵為AD,所以是BCNF;最后得保持無損連接特征的分解:R1,R21,R221,R222或表示為AB,AC,DE,ADG(1分)注:由于選擇不符合BCNF要求的函數(shù)依賴有多個(gè),因此選擇次序可有不同,最后的結(jié)果也不同,原則上按上述評(píng)分標(biāo)準(zhǔn)分步給分。35說明分解=R

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論