數(shù)據(jù)依賴與關(guān)系規(guī)范化_第1頁
數(shù)據(jù)依賴與關(guān)系規(guī)范化_第2頁
數(shù)據(jù)依賴與關(guān)系規(guī)范化_第3頁
數(shù)據(jù)依賴與關(guān)系規(guī)范化_第4頁
數(shù)據(jù)依賴與關(guān)系規(guī)范化_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章數(shù)據(jù)依賴與關(guān)系規(guī)范化10.1函數(shù)依賴10.2基于主鍵的范式和BC范式10.3多值依賴和第四范式10.4關(guān)系規(guī)范化的過程與原則一個(gè)數(shù)據(jù)庫模式有多個(gè)關(guān)系模式構(gòu)成,一個(gè)關(guān)系模式又由多個(gè)屬性構(gòu)成。需要有專門的設(shè)計(jì)方法來設(shè)計(jì)關(guān)系模式,并將屬性合理分組。一種方法是使用E-R圖進(jìn)行概要設(shè)計(jì),然后轉(zhuǎn)換為關(guān)系模式;另一種方法是基于關(guān)系規(guī)范化理論10.1函數(shù)依賴1.函數(shù)依賴的概念設(shè)R(A1,A2,...,An)是一個(gè)關(guān)系模式,X、Y是{A1,A2,...,An}的兩個(gè)子集。若對(duì)于R的任意一個(gè)可能的關(guān)系r來說,r中不可能存在兩個(gè)元組在X上的屬性值相等,而Y上的屬性值不等,則稱X函數(shù)確定Y,或Y函數(shù)依賴于X,記作X→Y。相應(yīng)地,若Y函數(shù)不依賴于X,則記作XY。例如,對(duì)于教學(xué)關(guān)系模式:教學(xué)〈U,F(xiàn)〉U={學(xué)號(hào),姓名,年齡,性別,系名,系主任,課程名,成績};F={學(xué)號(hào)→姓名,學(xué)號(hào)→年齡,學(xué)號(hào)→性別,學(xué)號(hào)→系名,系名→系主任,(學(xué)號(hào),課程名)→成績}.X→Y,但YX,則稱X→Y是非平凡的函數(shù)依賴。X→Y,但YX,則稱X→Y是平凡的函數(shù)依賴。例:在關(guān)系SC(Sno,Cno,Grade)中,(Sno,Cno)→

Grade是非平凡函數(shù)依賴,(Sno,Cno)→

Sno、(Sno,Cno)→Cno是平凡函數(shù)依賴。對(duì)于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明,總是討論非平凡函數(shù)依賴。在R〈U〉中,如果X→Y,并且對(duì)于X的任何一個(gè)真子集X’,都有X’Y,則稱Y對(duì)X完全函數(shù)依賴,記作:X→Y;若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴,記作:X→Y。例如,在教學(xué)關(guān)系模式:(學(xué)號(hào),課程名)→成績,(學(xué)號(hào),課程名)→姓名PFPF在R〈U〉中,如果X→Y,(YX),YX,Y→Z,則稱Z對(duì)X傳遞函數(shù)依賴。傳遞函數(shù)依賴記作X→Z。

例如,在教學(xué)模式中,因?yàn)椋簩W(xué)號(hào)→系名,系名→系主任;所以:學(xué)號(hào)→系主任。

傳遞傳遞2.函數(shù)依賴和關(guān)系的優(yōu)劣二者密切相關(guān)?!安涣肌焙瘮?shù)依賴帶來的問題:數(shù)據(jù)冗余太大:浪費(fèi)大量的存儲(chǔ)空間,如每個(gè)系主任姓名與該系每個(gè)學(xué)生的每門選修課程的成績出現(xiàn)次數(shù)一樣。插入異常(InsertionAnomalies):該插的數(shù)據(jù)插不了。如一個(gè)系剛成立,尚無學(xué)生,就無法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫。刪除異常(DeletionAnomalies):不該刪除的數(shù)據(jù)被刪了。如某個(gè)系的學(xué)生全部畢業(yè)了,在刪除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也刪了。更新異常(UpdateAnomalies):數(shù)據(jù)冗余,更新數(shù)據(jù)時(shí)維護(hù)數(shù)據(jù)完整性代價(jià)大。如某系更換系主任后,必須修改與該系學(xué)生有關(guān)的每一個(gè)元組。10.2基于主鍵的范式和BC范式設(shè)計(jì)關(guān)系數(shù)據(jù)庫時(shí),關(guān)系模式不能隨便建立,必須滿足一定的規(guī)范化要求。如果一個(gè)關(guān)系模式滿足某種指定的約束,稱其為特定范式的關(guān)系模式。滿足不同程度的要求構(gòu)成不同的范式級(jí)別。關(guān)系模式應(yīng)滿足的基本要求

1)元組的每個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng)。

2)數(shù)據(jù)庫中的數(shù)據(jù)冗余應(yīng)盡可能少。

3)關(guān)系數(shù)據(jù)庫不能因?yàn)閿?shù)據(jù)更新操作而引起數(shù)據(jù)不一致問題。

4)當(dāng)執(zhí)行數(shù)據(jù)插入操作時(shí),數(shù)據(jù)庫中的數(shù)據(jù)不能產(chǎn)生插入異?,F(xiàn)象。

5)數(shù)據(jù)庫中的數(shù)據(jù)不能在執(zhí)行刪除操作時(shí)產(chǎn)生刪除異常問題。

6)數(shù)據(jù)庫設(shè)計(jì)應(yīng)考慮查詢要求,數(shù)據(jù)組織應(yīng)合理。如果關(guān)系模式R,其所有的屬性均為簡單屬性,即每個(gè)屬性都是不可再分的,則稱R屬于第一范式,記作R1NF。在此基礎(chǔ)上滿足更高要求的稱為第二范式其余以此類推。一個(gè)低一級(jí)的范式的關(guān)系,通過投影運(yùn)算可以轉(zhuǎn)換為若干高一級(jí)范式的關(guān)系的集合,這種過程叫做關(guān)系的規(guī)范化。1.2NF(第二范式)若R1NF,且每一個(gè)非主屬性完全依賴于碼,則R2NF。

在教學(xué)模式中:屬性集U={學(xué)號(hào),姓名,年齡,系名,系主任,課程名,成績}.

函數(shù)依賴集F={學(xué)號(hào)→姓名,學(xué)號(hào)→年齡,學(xué)號(hào)→性別,學(xué)號(hào)→系名,系名→系主任,(學(xué)號(hào),課程名)→成績}.主碼=(學(xué)號(hào),課程名).

非主屬性=(姓名,年齡,系名,系主任,成績)。

非主屬性對(duì)碼的函數(shù)依賴:

{(學(xué)號(hào),課程名)→姓名,(學(xué)號(hào),課程名)→年齡,(學(xué)號(hào),課程號(hào))→性別,(學(xué)號(hào),課程名)→系名,(學(xué)號(hào),課程名)→系主任;(學(xué)號(hào),課程名)→成績}.

顯然,教學(xué)模式不服從2NF,即:教學(xué)2NF。PPPPPF如果將教學(xué)模式分解為:

學(xué)生_系(學(xué)號(hào),姓名,年齡,性別,系名,系主任);

選課(學(xué)號(hào),課程號(hào),成績).顯然分解后的各子模式均屬于2NF。2.3NF(第三范式)關(guān)系模式R〈U,F(xiàn)〉中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY)使得X→Y、YX、Y→Z成立,則稱R〈U,F(xiàn)〉3NF??梢宰C明,若R3NF,則每一個(gè)非主屬性既不部分函數(shù)依賴于碼,也不傳遞函數(shù)依賴于碼。3NF是一個(gè)可用的關(guān)系模式所應(yīng)滿足的最低范式??疾閷W(xué)生_系關(guān)系,由于存在:學(xué)號(hào)→系名,系名→系主任。則:學(xué)號(hào)→系主任。所以學(xué)生_系3NF。如果分解為:

學(xué)生(學(xué)號(hào),姓名,年齡,性別,系名);

教學(xué)系(系名,系主任).

顯然分解后的各子模式均屬于3NF。傳遞3.BCNF(BC范式)關(guān)系模式R〈U,F(xiàn)〉1NF。若X→Y且YX時(shí)X必含有碼,則R〈U,F(xiàn)〉BCNF。

也就是說,關(guān)系模式R〈U,F(xiàn)〉中,若每一個(gè)決定因素都包含碼,則R〈U,F(xiàn)〉BCNF。由BCNF的定義可以得到結(jié)論,一個(gè)滿足BCNF的關(guān)系模式有:

1)所有非主屬性對(duì)每一個(gè)碼都是完全函數(shù)依賴。

2)所有主屬性對(duì)每一個(gè)不包含它的碼,也是完全函數(shù)依賴。

3)不存在完全函數(shù)依賴于非碼的屬性組。例如,關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。語義為:每一教師只能講授一門課程,每門課程由若干教師講授;每個(gè)學(xué)生選修某門課程就對(duì)應(yīng)一個(gè)固定的教師。由語義可以得到STJ模式的函數(shù)依賴為:

F={(S,J)→T,T→J}

顯然:(S,J)和(T,S)都是關(guān)系的碼;關(guān)系的主屬性集為{S,T,J},非主屬性為(空集)。

P由于STJ模式中無非主屬性,所以它屬于3NF;但因?yàn)榇嬖赥→J,由于T不是碼,故STJBCNF。若將STJ分解為兩個(gè)關(guān)系模式SJ(S,J)和TJ(T,J),其分解后的子模式都屬于BCNF。BCNF和3NF的比較1)BCNF不僅強(qiáng)調(diào)其他屬性對(duì)碼的完全的直接的依賴,而且強(qiáng)調(diào)主屬性對(duì)碼的完全的直接的依賴,它包括3NF,即RBCNF,則R一定屬于3NF。2)3NF只強(qiáng)調(diào)非主屬性對(duì)碼的完全直接依賴,這樣就可能出現(xiàn)主屬性對(duì)碼的部分依賴和傳遞依賴。1.多值依賴10.3多值依賴和第四范式1.研究多值依賴的必要性

例如,給定一個(gè)關(guān)系模式JPW(產(chǎn)品,零件,工序),其中每種產(chǎn)品由多種零件構(gòu)成,每個(gè)零件在裝配時(shí)需要多道工序。設(shè)產(chǎn)品電視機(jī)需要的零件和工序如圖所示。

顯像管電視機(jī)開關(guān)電源焊接調(diào)試測試裝配調(diào)試焊接調(diào)試2.多值依賴的定義和性質(zhì)設(shè)有關(guān)系模式R〈U〉,U是屬性集,X、Y是U的子集。如果R的任一關(guān)系,對(duì)于X的一個(gè)確定值,都存在Y的一組值與之對(duì)應(yīng),且Y的這組值又與Z=U-X-Y中的屬性值不相關(guān),此時(shí)稱Y多值依賴于X,或X多值決定Y,記為X→→Y。多值依賴具有以下性質(zhì):

1)多值依賴具有對(duì)稱性。即若X→→Y,則X→→Z,其中Z=U-X-Y。

2)函數(shù)依賴可以看作是多值依賴的特殊情況。即若X→Y,則X→→Y。這是因?yàn)楫?dāng)X→Y時(shí),對(duì)X的每一個(gè)值x,Y有一個(gè)確定的值y與之對(duì)應(yīng),所以X→→Y。

3)在多值依賴中,若X→→Y且Z=U-X-Y≠φ,則稱X→→Y為非平凡的多值依賴,否則稱為平凡的多值依賴。引例:設(shè)學(xué)校中某門課由多個(gè)教師講課,他們使用相同的參考書,可由關(guān)系模式Teaching(C,T,B)表示課程C、教師T和參考書B之間的關(guān)系,對(duì)應(yīng)的一張二維表如右。

Teach具有唯一候選碼(C,T,B),即全碼,所以TeachingBCNF。Teaching(C,T,B)4NF,因?yàn)榇嬖诜瞧椒驳亩嘀狄蕾嘋→→T,且C不是候選碼。用投影分解法把Teaching分解為CT(C,T)、CB(C,B)兩個(gè)關(guān)系模式,它們均是4NF。普通物理學(xué)光學(xué)物理物理習(xí)題集普通物理學(xué)光學(xué)物理物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)…………李勇李勇

溫馨提示

  • 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論