數(shù)據(jù)庫系統(tǒng)及應(yīng)用-關(guān)系數(shù)據(jù)設(shè)計理論_第1頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用-關(guān)系數(shù)據(jù)設(shè)計理論_第2頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用-關(guān)系數(shù)據(jù)設(shè)計理論_第3頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用-關(guān)系數(shù)據(jù)設(shè)計理論_第4頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用-關(guān)系數(shù)據(jù)設(shè)計理論_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

關(guān)系數(shù)據(jù)設(shè)計理論關(guān)系數(shù)據(jù)設(shè)計理論1數(shù)據(jù)依賴對關(guān)系模式的影響2函數(shù)依賴3范式4多值依賴與第四范式5關(guān)系模式的規(guī)范化6數(shù)據(jù)依賴的公理系統(tǒng)1數(shù)據(jù)依賴對關(guān)系模式的影響

一、什么是數(shù)據(jù)依賴1.完整性約束的表現(xiàn)形式限定屬性取值范圍:例如學(xué)生成績必須在0-100之間定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設(shè)計的關(guān)鍵2.數(shù)據(jù)依賴是通過一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系是現(xiàn)實世界屬性間相互聯(lián)系的抽象是數(shù)據(jù)內(nèi)在的性質(zhì)是語義的體現(xiàn)3.數(shù)據(jù)依賴的類型函數(shù)依賴(FunctionalDependency,簡記為FD)多值依賴(MultivaluedDependency,簡記為MVD)例:描述學(xué)校的數(shù)據(jù)庫:

學(xué)生的學(xué)號(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程名(Cname) 成績(Grade)單一的關(guān)系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}學(xué)校數(shù)據(jù)庫的語義:

⒈一個系有若干學(xué)生,一個學(xué)生只屬于一個系;

⒉一個系只有一名主任;

⒊一個學(xué)生可以選修多門課程,每門課程有若干學(xué)生選修;

⒋每個學(xué)生所學(xué)的每門課程都有一個成績。

屬性組U上的一組函數(shù)依賴F:

F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}

SnoCnameSdeptMnameGrade關(guān)系模式Student<U,F>中存在的問題⒈數(shù)據(jù)冗余太大浪費大量的存儲空間

例:每一個系主任的姓名重復(fù)出現(xiàn)⒉更新異常(UpdateAnomalies)數(shù)據(jù)冗余,更新數(shù)據(jù)時,維護數(shù)據(jù)完整性代價大。 例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個元組⒊插入異常(InsertionAnomalies)該插的數(shù)據(jù)插不進去例,如果一個系剛成立,尚無學(xué)生,我們就無法把這個系及其系主任的信息存入數(shù)據(jù)庫。⒋刪除異常(DeletionAnomalies)不該刪除的數(shù)據(jù)不得不刪 例,如果某個系的學(xué)生全部畢業(yè)了,我們在刪除該系學(xué)生信息的同時,把這個系及其系主任的信息也丟掉了。結(jié)論:Student關(guān)系模式不是一個好的模式?!昂谩钡哪J剑翰粫l(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些數(shù)據(jù)依賴引起的解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴。2函數(shù)依賴一、函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴四、傳遞函數(shù)依賴五、碼一、函數(shù)依賴定義5.1設(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。

X稱為這個函數(shù)依賴的決定屬性集(Determinant)。

Y=f(x)說明:

1.函數(shù)依賴不是指關(guān)系模式R的某個或某些關(guān)系實例滿足的約束條件,而是指R的所有關(guān)系實例均要滿足的約束條件。2.函數(shù)依賴是語義范疇的概念。只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。例如“姓名→年齡”這個函數(shù)依賴只有在不允許有同名人的條件下成立3.數(shù)據(jù)庫設(shè)計者可以對現(xiàn)實世界作強制的規(guī)定。例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴“姓名→年齡”成立。所插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在,則拒絕裝入該元組。例:Student(Sno,Sname,Ssex,Sage,Sdept)

假設(shè)不允許重名,則有:Sno→Ssex,Sno→Sage,Sno→Sdept,Sno

←→Sname,Sname→Ssex,Sname→SageSname→Sdept但Ssex→Sage若X→Y,并且Y→X,則記為X←→Y。若Y不函數(shù)依賴于X,則記為X─→Y。在關(guān)系模式R(U)中,對于U的子集X和Y,如果X→Y,但YX,則稱X→Y是非平凡的函數(shù)依賴若X→Y,但YX,則稱X→Y是平凡的函數(shù)依賴?yán)涸陉P(guān)系SC(Sno,Cno,Grade)中,非平凡函數(shù)依賴:(Sno,Cno)→

Grade

平凡函數(shù)依賴:(Sno,Cno)→

Sno

(Sno,Cno)→Cno二、平凡函數(shù)依賴與非平凡函數(shù)依賴對于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明,我們總是討論非平凡函數(shù)依賴。定義5.2在關(guān)系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X’,都有

X’Y,則稱Y完全函數(shù)依賴于X,記作Xf

Y。若X→Y,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作XPY。

例:在關(guān)系SC(Sno,Cno,Grade)中,由于:Sno→Grade,Cno→Grade,因此:(Sno,Cno)fGrade

三、完全函數(shù)依賴與部分函數(shù)依賴定義5.3在關(guān)系模式R(U)中,如果X→Y,Y→Z,且YX,Y→X,則稱Z傳遞函數(shù)依賴于X。注:如果Y→X,即X←→Y,則Z直接依賴于X。例:在關(guān)系Std(Sno,Sdept,Mname)中,有:

Sno→Sdept,Sdept→MnameMname傳遞函數(shù)依賴于Sno四、傳遞函數(shù)依賴五、碼定義5.4設(shè)K為關(guān)系模式R<U,F>中的屬性或?qū)傩越M合。若KfU,則K稱為R的一個侯選碼(CandidateKey)。若關(guān)系模式R有多個候選碼,則選定其中的一個做為主碼(Primarykey)。主屬性與非主屬性ALLKEY外部碼定義5.5關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個關(guān)系模式的碼,則稱X是R的外部碼(Foreignkey)也稱外碼主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。3范式范式是符合某一種級別的關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式。范式的種類: 第一范式(1NF)

第二范式(2NF)

第三范式(3NF) BC范式(BCNF)

第四范式(4NF)

第五范式(5NF)3范式各種范式之間存在聯(lián)系:某一關(guān)系模式R為第n范式,可簡記為R∈nNF。3.11NF1NF的定義 如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R∈1NF。第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。但是滿足第一范式的關(guān)系模式并不一定是一個好的關(guān)系模式。例:關(guān)系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地方。函數(shù)依賴包括:

(Sno,Cno)fGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→SlocSLC的碼為(Sno,Cno)SLC滿足第一范式。非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno,Cno)SnoCnoGradeSdeptSlocSLCSLC不是一個好的關(guān)系模式(1)插入異常 假設(shè)Sno=95102,Sdept=IS,Sloc=N的學(xué)生還未選課,因課程號是主屬性,因此該學(xué)生的信息無法插入SLC。(2)刪除異常假定某個學(xué)生本來只選修了3號課程這一門課?,F(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個元組都要刪除。

(3)數(shù)據(jù)冗余度大如果一個學(xué)生選修了10門課程,那么他的Sdept和Sloc值就要重復(fù)存儲了10次。(4)修改復(fù)雜例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時,還可能需要修改住處(Sloc)。如果這個學(xué)生選修了K門課,則必須無遺漏地修改K個元組中全部Sdept、Sloc信息。

3.22NF原因

Sdept、Sloc部分函數(shù)依賴于碼。解決方法

SLC分解為兩個關(guān)系模式,以消除這些部分函數(shù)依賴

SC(Sno,Cno,Grade)

SL(Sno,Sdept,Sloc)函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSloc2NF的定義 定義6若關(guān)系模式R∈1NF,并且每一個非主屬性都完全函數(shù)依賴于R的碼,則R∈2NF。 例:SLC(Sno,Sdept,Sloc,Cno,Grade)∈1NFSLC(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NF SL(Sno,Sdept,Sloc)∈2NF采用投影分解法將一個1NF的關(guān)系分解為多個2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。將一個1NF關(guān)系分解為多個2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。3.33NF例:2NF關(guān)系模式SL(Sno,Sdept,Sloc)中函數(shù)依賴:

Sno→SdeptSdept→SlocSno→Sloc Sloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。函數(shù)依賴圖:SLSnoSdeptSloc解決方法采用投影分解法,把SL分解為兩個關(guān)系模式,以消除傳遞函數(shù)依賴:SD(Sno,Sdept)

DL(Sdept,Sloc)SD的碼為Sno,DL的碼為Sdept。SD的碼為Sno,DL的碼為Sdept。SnoSdeptSDSdeptSlocDL3NF的定義 定義8關(guān)系模式R<U,F(xiàn)>

中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→X,Y→Z,成立,則稱R<U,F(xiàn)>∈3NF。例,SL(Sno,Sdept,Sloc)∈2NF

SL(Sno,Sdept,Sloc)∈3NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF若R∈3NF,則R的每一個非主屬性既不部分函數(shù)依賴于候選碼也不傳遞函數(shù)依賴于候選碼。如果R∈3NF,則R也是2NF。采用投影分解法將一個2NF的關(guān)系分解為多個3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。將一個2NF關(guān)系分解為多個3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。3.4BC范式(BCNF)定義9設(shè)關(guān)系模式R<U,F(xiàn)>∈1NF,如果對于R的每個函數(shù)依賴X→Y,若Y不屬于X,則X必含有候選碼,那么R∈BCNF。若R∈BCNF每一個決定屬性集(因素)都包含(候選)碼R中的所有屬性(主,非主屬性)都完全函數(shù)依賴于碼R∈3NF(證明)若R∈3NF則R不一定∈BCNF例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。每一教師只教一門課。每門課由若干教師教,某一學(xué)生選定某門課,就確定了一個固定的教師。某個學(xué)生選修某個教師的課就確定了所選課的名稱:

(S,J)→T,(S,T)→J,T→J

SJTSTJSTJSTJ∈3NF

(S,J)和(S,T)都可以作為候選碼

S、T、J都是主屬性STJ∈BCNFT→J,T是決定屬性集,T不是候選碼

解決方法:將STJ分解為二個關(guān)系模式:

SJ(S,J)∈BCNF,TJ(T,J)∈BCNF

沒有任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴SJSTTJTJ3NF與BCNF的關(guān)系如果關(guān)系模式R∈BCNF,必定有R∈3NF如果R∈3NF,且R只有一個候選碼,則R必屬于BCNF。BCNF的關(guān)系模式所具有的性質(zhì)⒈所有非主屬性都完全函數(shù)依賴于每個候選碼⒉所有主屬性都完全函數(shù)依賴于每個不包含它的候選碼⒊沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性4多值依賴與第四范式(4NF)例:學(xué)校中某一門課程由多個教師講授,他們使用相同的一套參考書。 關(guān)系模式Teaching(C,T,B)

課程C、教師T和參考書B………課程C教員T參考書B

物理

數(shù)學(xué)

計算數(shù)學(xué)李勇王軍

李勇張平

張平周峰

普通物理學(xué)光學(xué)原理物理習(xí)題集

數(shù)學(xué)分析微分方程高等代數(shù)

數(shù)學(xué)分析

表3普通物理學(xué)光學(xué)原理物理習(xí)題集普通物理學(xué)光學(xué)原理物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)…李勇李勇李勇王軍王軍王軍李勇李勇李勇張平張平張平

…物理物理物理物理物理物理數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)

…參考書B教員T課程C用二維表表示Teaching

Teaching∈BCNF:Teach具有唯一候選碼(C,T,B),即全碼Teaching模式中存在的問題

(1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書就要存儲多少次

(2)插入操作復(fù)雜:當(dāng)某一課程增加一名任課教師時,該課程有多少本參照書,就必須插入多少個元組例如物理課增加一名教師劉關(guān),需要插入兩個元組:(物理,劉關(guān),普通物理學(xué))(物理,劉關(guān),光學(xué)原理)

(3)刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個元組(4)修改操作復(fù)雜:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個元組產(chǎn)生原因 存在多值依賴4.1多值依賴定義10

設(shè)R(U)是一個屬性集U上的一個關(guān)系模式,X、Y和Z是U的子集,并且Z=U-X-Y,多值依賴X→→Y成立當(dāng)且僅當(dāng)對R的任一關(guān)系r,r在(X,Z)上的每個值對應(yīng)一組Y的值,這組值僅僅決定于X值而與Z值無關(guān) 例Teaching(C,T,B)

對于C的每一個值,T有一組值與之對應(yīng),而不論B取何值在R(U)的任一關(guān)系r中,如果存在元組t,s使得t[X]=s[X],那么就必然存在元組w,vr,(w,v可以與s,t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z](即交換s,t元組的Y值所得的兩個新元組必在r中),則Y多值依賴于X,記為X→→Y。這里,X,Y是U的子集,Z=U-X-Y。

txy1z2sxy2z1wxy1z1vxy2z2平凡多值依賴和非平凡的多值依賴

若X→→Y,而Z=φ,則稱

X→→Y為平凡的多值依賴 否則稱X→→Y為非平凡的多值依賴多值依賴的性質(zhì)(1)多值依賴具有對稱性若X→→Y,則X→→Z,其中Z=U-X-Y

多值依賴的對稱性可以用完全二分圖直觀地表示出來。(2)多值依賴具有傳遞性若X→→Y,Y→→Z,則X→→Z-Y多值依賴的對稱性

XiZi1Zi2…ZimYi1Yi2…Yin多值依賴的對稱性

物理普通物理學(xué)光學(xué)原理物理習(xí)題集李勇王軍(3)函數(shù)依賴是多值依賴的特殊情況。 若X→Y,則X→→Y

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論