版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
關(guān)系數(shù)據(jù)庫規(guī)范化理論
針對一個(gè)具體問題,應(yīng)如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式,即應(yīng)該構(gòu)造幾個(gè)關(guān)系,每個(gè)關(guān)系由哪些屬性組成等。數(shù)據(jù)庫邏輯設(shè)計(jì)的工具──關(guān)系數(shù)據(jù)庫的規(guī)范化理論數(shù)據(jù)依賴范式關(guān)系模式的規(guī)范化問題的提出6.1數(shù)據(jù)依賴內(nèi)容提要什么是數(shù)據(jù)依賴數(shù)據(jù)依賴對關(guān)系模式有什么影響數(shù)據(jù)依賴的形式化定義6.1.1關(guān)系模式中的數(shù)據(jù)依賴一、概念回顧二、關(guān)系模式的形式化定義三、什么是數(shù)據(jù)依賴四、關(guān)系模式的簡化表示一、概念回顧關(guān)系:描述實(shí)體及其屬性、實(shí)體間的聯(lián)系。從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個(gè)子集。關(guān)系模型:用來定義關(guān)系。關(guān)系數(shù)據(jù)庫:基于關(guān)系模型的數(shù)據(jù)庫,利用關(guān)系來描述現(xiàn)實(shí)世界。從形式上看,它由一組關(guān)系組成。關(guān)系數(shù)據(jù)庫的模式:定義這組關(guān)系的關(guān)系模式的全體。二、關(guān)系模式的形式化定義關(guān)系模型由五部分組成,即它是一個(gè)五元組:
R(U,D,DOM,F)R:關(guān)系名U:組成該關(guān)系的屬性名集合D:屬性組U中屬性所來自的域DOM:屬性向域的映象集合F:屬性間數(shù)據(jù)的依賴關(guān)系集合。即限定了組成關(guān)系的各個(gè)元組必須滿足的完整性約束條件。三、什么是數(shù)據(jù)依賴1.完整性約束的表現(xiàn)形式限定屬性取值范圍:例如學(xué)生成績必須在0-100之間定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設(shè)計(jì)的關(guān)鍵。什么是數(shù)據(jù)依賴(續(xù))2.數(shù)據(jù)依賴是通過一個(gè)關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象是數(shù)據(jù)內(nèi)在的性質(zhì)四、關(guān)系模式的簡化表示在關(guān)系模式R(U,D,DOM,F)中,影響數(shù)據(jù)庫模式設(shè)計(jì)的主要是U和F,D和DOM對其影響不大,為了方便討論,我們將關(guān)系模式簡化為一個(gè)三元組:
R(U,F)當(dāng)且僅當(dāng)U上的一個(gè)關(guān)系r滿足F時(shí),r稱為關(guān)系模式R(U,F)的一個(gè)關(guān)系。6.1.2數(shù)據(jù)依賴對關(guān)系模式的影響例:建立一個(gè)描述學(xué)校的數(shù)據(jù)庫。涉及的對象包括: 學(xué)生的學(xué)號(Sno)課程號(Cno) 教師姓名(Tname) 教師所在系(Tdept) 課程成績(Grade)
數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))
假設(shè)學(xué)校的數(shù)據(jù)庫模式由一個(gè)單一的關(guān)系模式SC構(gòu)成,則該關(guān)系模式的屬性集合為:
U={Sno,Cno,Tname,Tdept,Grade}數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))SC關(guān)系具有如下語義:⒈一個(gè)學(xué)生可以選修多門課程,每門課程有若干學(xué)生選修;⒉每門課程只有一位教師任課,但一個(gè)教師可以擔(dān)任多門課程;⒊教師沒有重名,每一位教師只屬于一個(gè)系;⒋每個(gè)學(xué)生所學(xué)的每門課程都有一個(gè)成績。U={Sno,Cno,Tname,Tdept,Grade}鍵?數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))
由此可得到屬性組U上的一組函數(shù)依賴F:
F={Cno→Tname,Tname→Tdept,(Sno,Cno)→Grade}
SnoCnoTnameTdeptGrade數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))關(guān)系模式Student<U,F>中存在的問題:⒈數(shù)據(jù)冗余太大浪費(fèi)大量的存儲空間
例:每一個(gè)系名重復(fù)出現(xiàn),重復(fù)次數(shù)與該系所有學(xué)生的所有課程成績出現(xiàn)次數(shù)相同。數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))⒉更新異常數(shù)據(jù)冗余,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。 例:某系更換系名后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組。數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))⒊插入異常(InsertionAnomalies)該插的數(shù)據(jù)插不進(jìn)去例,如果一個(gè)系剛成立,尚沒有開設(shè)課程,我們就無法把這個(gè)系及這個(gè)系的教師的信息存入數(shù)據(jù)庫。數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))⒋刪除異常(DeletionAnomalies)不該刪除的數(shù)據(jù)不得不刪 例,如果某個(gè)系的學(xué)生全部畢業(yè)了,我們在刪除該系學(xué)生信息的同時(shí),把這個(gè)系的信息也丟掉了。數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))結(jié)論:SC關(guān)系模式不是一個(gè)好的模式。一個(gè)“好”的模式應(yīng)當(dāng)不會發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些數(shù)據(jù)依賴引起的。解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴。數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))
規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。6.1.3有關(guān)概念一、函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴四、傳遞函數(shù)依賴五、鍵一、函數(shù)依賴定義1設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子集。若對于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。
X稱為這個(gè)函數(shù)依賴的決定屬性集。函數(shù)依賴(續(xù))說明:1.函數(shù)依賴不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿足的約束條件,而是指R的所有關(guān)系實(shí)例均要滿足的約束條件。2.函數(shù)依賴是語義范疇的概念。只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。例如“姓名→年齡”這個(gè)函數(shù)依賴只有在不允許有同名人的條件下成立函數(shù)依賴(續(xù))3.若X→Y,并且Y→X,則記為X←→Y。4.若Y不函數(shù)依賴于X,則記為X─→Y。函數(shù)依賴(續(xù))例:Student(Sno,Sname,Ssex,Sage,Sdept)
假設(shè)姓名不允許重名,則有:Sno→Ssex,Sno→SageSno→Sdept,Sno←→SnameSname→Ssex,Sname→SageSname→Sdept但Ssex→Sage,Ssex→Sdept,二、平凡函數(shù)依賴與非平凡函數(shù)依賴定義2在關(guān)系模式R(U)中,對于U的子集X和Y,如果X→Y,但Y
X,則稱X→Y是非平凡的函數(shù)依賴。若X→Y,但Y
X則稱X→Y是平凡的函數(shù)依賴。例:在關(guān)系SC(Sno,Cno,Grade)中,
(Sno,Cno)→Cno(Sno,Cno)→
Grade(Sno,Cno)→
Sno
平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù))對于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明,我們總是討論非平凡函數(shù)依賴。三、完全函數(shù)依賴與部分函數(shù)依賴定義3在關(guān)系模式R(U)中,如果X→Y,并且對于X的任何一個(gè)真子集X',都有
X'Y,則稱Y完全函數(shù)依賴于X,記作
Xf
Y。若X→Y,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作
XPY。完全函數(shù)依賴與部分函數(shù)依賴(續(xù))例1:在關(guān)系SC(Sno,Cno,Grade)中,有:由于:Sno→Grade,Cno→Grade,因此:(Sno,Cno)fGrade例2:U={Sno,Cno,Tname,Tdept,Grade}由于:Cno→Tname因此:(Sno,Cno)pTname四、傳遞函數(shù)依賴定義4在關(guān)系模式R(U)中,如果X→Y,Y→Z,且Y
X,Y→X,則稱Z傳遞函數(shù)依賴于X。注:如果Y→X,即X←→Y,則Z直接依賴于X。例:在關(guān)系Std(Sno,Sdept,Mname)中,有:
Sno→Sdept,Sdept→Mname,Mname傳遞函數(shù)依賴于Sno。五、鍵定義5設(shè)K為關(guān)系模式R<U,F>中的屬性或?qū)傩越M合。若KfU,則K稱為R的一個(gè)侯選鍵(CandidateKey)。若關(guān)系模式R有多個(gè)候選鍵,則選定其中的一個(gè)做為主鍵(Primarykey)。鍵是關(guān)系模式中一個(gè)重要概念。候選鍵能夠唯一地標(biāo)別關(guān)系的元組,是關(guān)系模式中一組最重要的屬性。主鍵又和外鍵一起提供了一個(gè)表示關(guān)系間聯(lián)系的手段。6.2范式范式是符合某一種級別的關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式。范式的種類:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF) BC范式(BCNF)
第四范式(4NF)
第五范式(5NF)范式(續(xù))某一關(guān)系模式R為第n范式,可簡記為R∈nNF。各種范式之間存在聯(lián)系:6.2.1第一范式(1NF)1NF的定義
如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R∈1NF。第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。但是滿足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。第一范式(續(xù))例:關(guān)系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。函數(shù)依賴包括:
(Sno,Cno)fGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc第一范式(續(xù))SLC的鍵為(Sno,Cno)SnoCnoGradeSdeptSlocSLC第一范式(續(xù))結(jié)論:1.SLC滿足第一范式。2.非主屬性Sdept和Sloc部分函數(shù)依賴于鍵(Sno,Cno)。SLC存在的問題
(1)插入異常 假設(shè)Sno=95102,Sdept=IS,Sloc=N的學(xué)生還未選課,因課程號是主屬性,因此該學(xué)生的信息無法插入SLC。第一范式(續(xù))(2)刪除異常假定某個(gè)學(xué)生本來只選修了3號課程這一門課?,F(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個(gè)元組都要刪除。(3)數(shù)據(jù)冗余度大如果一個(gè)學(xué)生選修了10門課程,那么他的Sdept和Sloc值就要重復(fù)存儲了10次。第一范式(續(xù))(4)修改復(fù)雜例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時(shí),還可能需要修改住處(Sloc)。如果這個(gè)學(xué)生選修了K門課,則必須無遺漏地修改K個(gè)元組中全部Sdept、Sloc信息。因此SLC不是一個(gè)好的關(guān)系模式。第一范式(續(xù))原因
Sdept、Sloc部分函數(shù)依賴于鍵。解決方法采用投影分解法,把SLC分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴。
SC(Sno,Cno,Grade)
SL(Sno,Sdept,Sloc)第一范式(續(xù))SLC的鍵為(Sno,Cno)SnoCnoGradeSdeptSlocSLC第一范式(續(xù))函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSloc第一范式(續(xù))
在SC和SL中,非主屬性都完全函數(shù)依賴于鍵了。從而使上述四個(gè)問題在一定程度上得到了一定的解決:(1)由于學(xué)生選修課程的情況與學(xué)生的基本情況是分開存儲在兩個(gè)關(guān)系中的,在SL關(guān)系中可以插入尚未選課的學(xué)生。第一范式(續(xù))(2)刪除一個(gè)學(xué)生的所有選課記錄,只是SC關(guān)系中沒有關(guān)于該學(xué)生的記錄了,SL關(guān)系中關(guān)于該學(xué)生的記錄不受影響。(3)不論一個(gè)學(xué)生選多少門課程,他的Sdept和Sloc值都只存儲1次。這就大大降低了數(shù)據(jù)冗余。(4)學(xué)生轉(zhuǎn)系只需修改SL關(guān)系中該學(xué)生元組的Sdept值和Sloc值,由于Sdept、Sloc并未重復(fù)存儲,因此減化了修改操作。6.2.2第二范式(2NF)2NF的定義
定義7
若關(guān)系模式R∈1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴于R的鍵,則R∈2NF。 例:SLC(Sno,Sdept,Sloc,Cno,Grade)∈1NF SC(Sno,Cno,Grade)∈2NF SL(Sno,Sdept,Sloc)∈2NF
第二范式(續(xù))采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。但是,將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。
第二范式(續(xù))例:2NF關(guān)系模式SL(Sno,Sdept,Sloc)中函數(shù)依賴:
Sno→SdeptSdept→SlocSno→Sloc SLSnoSdeptSlocSloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對鍵的傳遞函數(shù)依賴。
第二范式(續(xù))SL關(guān)系存在的問題:
(1)插入異常 如果某個(gè)系因種種原因(例如剛剛成立),目前暫時(shí)沒有在校學(xué)生,我們就無法把這個(gè)系的信息存入數(shù)據(jù)庫。
(2)刪除異常 如果某個(gè)系的學(xué)生全部畢業(yè)了,我們在刪除該系學(xué)生信息的同時(shí),把這個(gè)系的信息也丟掉了。
第二范式(續(xù))(3)數(shù)據(jù)冗余度大 每一個(gè)系的學(xué)生都住在同一個(gè)地方,關(guān)于系的住處的信息卻重復(fù)出現(xiàn),重復(fù)次數(shù)與該系學(xué)生人數(shù)相同。
(4)修改復(fù)雜當(dāng)學(xué)校調(diào)整學(xué)生住處時(shí),由于關(guān)于每個(gè)系的住處信息是重復(fù)存儲的,修改時(shí)必須同時(shí)更新該系所有學(xué)生的Sloc屬性值。所以SL仍不是一個(gè)好的關(guān)系模式。
第二范式(續(xù))原因
Sloc傳遞函數(shù)依賴于Sno解決方法采用投影分解法,把SL分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴:
SD(Sno,Sdept)
DL(Sdept,Sloc)SD的鍵為Sno,DL的鍵為Sdept。SLSnoSdeptSloc
第二范式(續(xù))SD的鍵為Sno,DL的鍵為Sdept。SnoSdeptSDSdeptSlocDL
第二范式(續(xù))
在分解后的關(guān)系模式中既沒有非主屬性對鍵的部分函數(shù)依賴也沒有非主屬性對鍵的傳遞函數(shù)依賴,在一定程度上解決了上述四個(gè)問題:(1)DL關(guān)系中可以插入無在校學(xué)生的系的信息。(2)某個(gè)系的學(xué)生全部畢業(yè)了,只是刪除SD關(guān)系中的相應(yīng)元組,DL關(guān)系中關(guān)于該系的信息仍存在。(3)關(guān)于系的住處的信息只在DL關(guān)系中存儲一次。(4)當(dāng)學(xué)校調(diào)整某個(gè)系的學(xué)生住處時(shí),只需修改DL關(guān)系中一個(gè)相應(yīng)元組的Sloc屬性值。6.2.3第三范式(3NF)3NF的定義
定義8關(guān)系模式R<U,F(xiàn)>
中若不存在這樣的鍵X、屬性組Y及非主屬性Z(Z
Y),使得X→Y,Y→X,Y→Z,成立,則稱R<U,F(xiàn)>∈3NF。例,SL(Sno,Sdept,Sloc)∈2NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF第三范式(續(xù))若R∈3NF,則R的每一個(gè)非主屬性既不部分函數(shù)依賴于候選鍵也不傳遞函數(shù)依賴于候選鍵。如果R∈3NF,則R也是2NF。采用投影分解法將一個(gè)2NF的關(guān)系分解為多個(gè)3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。但是,將一個(gè)2NF關(guān)系分解為多個(gè)3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。第三范式(續(xù))例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。函數(shù)依賴: 假設(shè)每一教師只教一門課。每門課由若干教師教,但某一學(xué)生選定某門課,就確定了一個(gè)固定的教師。于是有:
(S,J)→T,(S,T)→J,T→J第三范式(續(xù))
SJTSTJSTJ第三范式(續(xù))(S,J)和(S,T)都可以作為候選鍵。
STJ∈3NF
T→J,即T是決定屬性集,可是T只是主屬性,它既不是候選鍵,也不包含候選鍵。第三范式(續(xù))存在的問題:(1)插入異常 如果某個(gè)教師開設(shè)了某門課程,但尚未有學(xué)生選修,則有關(guān)信息也無法存入數(shù)據(jù)庫中。
第三范式(續(xù))(2)刪除異常 如果選修過某門課程的學(xué)生全部畢業(yè)了,在刪除這些學(xué)生元組的同時(shí),相應(yīng)教師開設(shè)該門課程的信息也同時(shí)丟掉了。(3)數(shù)據(jù)冗余度大 雖然一個(gè)教師只教一門課,但每個(gè)選修該教師該門課程的學(xué)生元組都要記錄這一信息。第三范式(續(xù))(4)修改復(fù)雜 某個(gè)教師開設(shè)的某門課程改名后,所有選修了該教師該門課程的學(xué)生元組都要進(jìn)行相應(yīng)修改。 因此雖然STJ∈3NF,但它仍不是一個(gè)理想的關(guān)系模式。第三范式(續(xù))原因: 主屬性J依賴于T,即主屬性J部分依賴于鍵(S,T)。解決方法: 采用投影分解法,將STJ分解為二個(gè)關(guān)系模式:
SJ(S,J)TJ(T,J)第三范式(續(xù))
SJTSTJSTJ第三范式(續(xù)) SJ的鍵為(S,J),TJ的鍵為T。SJSTTJTJ第三范式(續(xù))
在分解后的關(guān)系模式中沒有任何屬性對鍵的部分函數(shù)依賴和傳遞函數(shù)依賴。它解決了上述四個(gè)問題:(1)TJ關(guān)系中可以存儲所開課程尚未有學(xué)生選修的教師信息。(2)選修過某門課程的學(xué)生全部畢業(yè)了,只是刪除SJ關(guān)系中的相應(yīng)元組,不會影響TJ關(guān)系中相應(yīng)教師開設(shè)該門課程的信息。第三范式(續(xù))(3)關(guān)于每個(gè)教師開設(shè)課程的信息只在TJ關(guān)系中存儲一次。(4)某個(gè)教師開設(shè)的某門課程改名后,只需修改TJ關(guān)系中的一個(gè)相應(yīng)元組即可。6.2.4BC范式(BCNF)BCNF(BoyceCoddNormalForm)是由Boyce和Codd提出的,比3NF更進(jìn)了一步。通常認(rèn)為BCNF是修正的第三范式,所以有時(shí)也稱為第三范式。BCNF的定義 定義9設(shè)關(guān)系模式R<U,F(xiàn)>∈1NF,如果對于R的每個(gè)函數(shù)依賴X→Y,若Y不屬于X,則X必含有候選鍵,那么R∈BCNF。BC范式(續(xù))
換句話說,在關(guān)系模式R<U,F(xiàn)>中,如果每一個(gè)決定屬性集都包含候選鍵,則R∈BCNF。例: STJ(S,T,J)∈3NF SJ(S,J)∈BCNF TJ(T,J)∈BCNFBC范式(續(xù))采用投影分解法將一個(gè)3NF的關(guān)系分解為多個(gè)BCNF的關(guān)系,可以進(jìn)一步解決原3NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。BCNF的關(guān)系模式所具有的性質(zhì)⒈所有非主屬性都完全函數(shù)依賴于每個(gè)候選鍵。⒉所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選鍵。⒊沒有任何屬性完全函數(shù)依賴于非鍵的任何一組屬性。BC范式(續(xù))3NF與BCNF的關(guān)系如果關(guān)系模式R∈BCNF,必定有R∈3NF。如果R∈3NF,且R只有一個(gè)候選鍵,則R必屬于BCNF。如果一個(gè)關(guān)系數(shù)據(jù)庫中的所有關(guān)系模式都屬于BCNF,那么在函數(shù)依賴范疇內(nèi),它已實(shí)現(xiàn)了模式的徹底分解,達(dá)到了最高的規(guī)范化程度,消除了插入異常和刪除異常。6.2.5多值依賴與第四范式(4NF)例子一、多值依賴二、第四范式(4NF)多值依賴與第四范式(續(xù))例子例:設(shè)學(xué)校中某一門課程由多個(gè)教師講授,他們使用相同的一套參考書。 用關(guān)系模式Teaching(C,T,B)來表示課程C、教師T和參考書B之間的關(guān)系。多值依賴與第四范式(續(xù))………課程C教員T參考書B
物理
數(shù)學(xué)
計(jì)算數(shù)學(xué)李勇王軍
李勇張平
張平周峰
普通物理學(xué)光學(xué)原理物理習(xí)題集
數(shù)學(xué)分析微分方程高等代數(shù)
數(shù)學(xué)分析
表6.3多值依賴與第四范式(續(xù))普通物理學(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用二維表表示:表6.4Teaching多值依賴與第四范式(續(xù))Teaching∈BCNF:Teach具有唯一候選鍵(C,T,B),即全鍵。Teaching模式中存在的問題
(1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書就要存儲多少次。
多值依賴與第四范式(續(xù))
(2)增加操作復(fù)雜:當(dāng)某一課程增加一名任課教師時(shí),該課程有多少本參照書,就必須插入多少個(gè)元組。例如物理課增加一名教師劉關(guān),需要插入兩個(gè)元組:
(物理,劉關(guān),普通物理學(xué)),(物理,劉關(guān),光學(xué)原理)多值依賴與第四范式(續(xù))(3)刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個(gè)元組。(4)修改操作復(fù)雜:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個(gè)元組。產(chǎn)生原因 參考書的取值和教師的取值是彼此獨(dú)立毫無關(guān)系的,都只取決于課程名。一、多值依賴定義10
設(shè)R(U)是一個(gè)屬性集U上的一個(gè)關(guān)系模式,X、Y和Z是U的子集,并且Z=U-X-Y,多值依賴X→→Y成立當(dāng)且僅當(dāng)對R的任一關(guān)系r,r在(X,Z)上的每個(gè)值對應(yīng)一組Y的值,這組值僅僅決定于X值而與Z值無關(guān)。 例Teaching(C,T,B)多值依賴(續(xù))平凡多值依賴和非平凡的多值依賴
若X→→Y,而Z=φ,則稱
X→→Y為平凡的多值依賴。 否則稱X→→Y為非平凡的多值依賴。多值依賴(續(xù))多值依賴的性質(zhì)(1)多值依賴具有對稱性。若X→→Y,則X→→Z,其中Z=U-X-Y
多值依賴的對稱性可以用完全二分圖直觀地表示出來。多值依賴的對稱性
物理普通物理學(xué)光學(xué)原理物理習(xí)題集李勇王軍多值依賴(續(xù))(2)多值依賴具有傳遞性。若X→→Y,Y→→Z,則X→→Z-Y。(3)函數(shù)依賴是多值依賴的特殊情況。 若X→Y,則X→→Y。(4)若X→→Y,X→→Z,則X→→Y
Z。(5)若X→→Y,X→→Z,則X→→Y∩Z。(6)若X→→Y,X→→Z,則X→→Y-Z, X→→Z-Y。多值依賴(續(xù))多值依賴與函數(shù)依賴的區(qū)別(1)有效性多值依賴的有效性與屬性集的范圍有關(guān)。若X→→Y在U上成立,則在W(X,Y
W
U)上一定成立;反之則不然,即X→→Y在W(W
U)上成立,在U上并不一定成立。原因:多值依賴的定義中不僅涉及屬性組X和Y,而且涉及U中其余屬性Z。一般地,在R(U)上若有X→→Y在W(W
U)上成立,則稱X→→Y為R(U)的嵌入型多值依賴。多值依賴(續(xù))函數(shù)依賴X→Y的有效性僅決定于X、Y這兩個(gè)屬性集的值只要在R(U)的任何一個(gè)關(guān)系r中,元組在X和Y上的值滿足定義1,則函數(shù)依賴X→Y在任何屬性集W(X,Y
W
U)上成立。多值依賴(續(xù))(2)
若函數(shù)依賴X→Y在R(U)上成立,則對于任何Y'
Y均有X→Y'成立。多值依賴X→→Y若在R(U)上成立,不能斷言對于任何Y'
Y有X→→Y'成立。二、第四范式(4NF)定義
定義11關(guān)系模式R(U,F(xiàn))∈1NF,如果對于R的每個(gè)非平凡多值依賴X→→Y(Y
X),X都含有候選鍵,則R∈4NF。根據(jù)定義,對于每一個(gè)非平凡的多值依賴X→→Y,X都含有候選鍵,于是就有X→Y。4NF就是限制關(guān)系模式的屬性之間不允許有非平凡且非函數(shù)依賴的多值依賴。4NF所允許的非平凡多值依賴實(shí)際上是函數(shù)依賴。第四范式(續(xù))如果一個(gè)關(guān)系模式是4NF,則必為BCNF。
第四范式(續(xù))例:Teach(C,T,B)由于Teach(C,T,B)中存在非平凡的多值依賴C→→T,且C不是候選碼,因此Teach不屬于4NF。這正是它之所以存在數(shù)據(jù)冗余度大,插入和刪除操作復(fù)雜等弊病的根源。第四范式(續(xù))解決方法用投影分解法把Teach分解為如下兩個(gè)4NF關(guān)系模式:
CT(C,T)CB(C,B)CT∈4NF。C→→T是平凡多值依賴
CT中不存在既非平凡也非函數(shù)依賴的多值依賴。CB∈4NF。第四范式(續(xù))分解后Teach關(guān)系中的幾個(gè)問題可以得到解決:
(1)參考書只需要在CB關(guān)系中存儲一次。
(2)當(dāng)某一課程增加一名任課教師時(shí),只需要在CT關(guān)系中增加一個(gè)元組。
(3)某一門課要去掉一本參考書,只需要在CB關(guān)系中刪除一個(gè)相應(yīng)的元組。
(4)某一門課要修改一本參考書,只需要修改CB關(guān)系中一個(gè)相應(yīng)的元組。11.3關(guān)系模式的規(guī)范化關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計(jì)的工具。一個(gè)關(guān)系只要其分量都是不可分的數(shù)據(jù)項(xiàng),它就是規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化。規(guī)范化程度可以有6個(gè)不同的級別,即6個(gè)范式。規(guī)范化(續(xù))規(guī)范化程度過低的關(guān)系不一定能夠很好地描述現(xiàn)實(shí)世界,可能會存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題,解決方法就是對其進(jìn)行規(guī)范化,轉(zhuǎn)換成高級范式。一個(gè)低一級范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個(gè)高一級范式的關(guān)系模式集合,這種過程就叫關(guān)系模式的規(guī)范化。6.3關(guān)系模式的規(guī)范化關(guān)系模式規(guī)范化的步驟關(guān)系模式的分解6.3.1關(guān)系模式規(guī)范化的步驟關(guān)系模式規(guī)范化的基本步驟
1NF ↓消除非主屬性對碼的部分函數(shù)依賴消除決定屬性2NF集非碼的非平↓消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴3NF ↓消除主屬性對碼的部分和傳遞函數(shù)依 賴
BCNF ↓消除非平凡且非函數(shù)依賴的多值依賴
4NF關(guān)系模式規(guī)范化的步驟(續(xù))規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的“分離”,即采用“一事一地”的模式設(shè)計(jì)原則,讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系。若多于一個(gè)概念就把它“分離”出去。因此所謂規(guī)范化實(shí)質(zhì)上是概念的單一化。小結(jié)規(guī)范化理論為數(shù)據(jù)庫設(shè)計(jì)提供了理論的指南和工具也僅僅是指南和工具并不是規(guī)范化程度越高,模式就越好必須結(jié)合應(yīng)用環(huán)境和現(xiàn)實(shí)世界的具體情況合理地選擇數(shù)據(jù)庫模式練習(xí):1.已知關(guān)系模式R(A,B,C,D,E)及其上的函數(shù)依賴集合F={A→D,B→C,E→A},該關(guān)系模式的候選碼是
什么?2.在關(guān)系模式R(A,B,C,D)中,存在函數(shù)依賴F={A→B,A→C,A→D,(B,C)→A},則候選碼是什么?關(guān)系模式R屬于第幾范式?3.在關(guān)系模式R(D,E,G)中,存在函數(shù)依賴F={E→D,(D,G)→E},則候選碼是什么?關(guān)系模式R屬于第幾范式?4.在關(guān)系模式R(A,C,D)中,存在函數(shù)依賴F={A→C,A→D},則候選碼是什么?關(guān)系模式R最高可以達(dá)到第幾范式?6.3數(shù)據(jù)依賴的公理系統(tǒng)
數(shù)據(jù)依賴的公理系統(tǒng)是模式分解算法的理論基礎(chǔ),下面我們首先討論函數(shù)依賴的一個(gè)有效而完備的公理系統(tǒng)——Armstrong公理系統(tǒng)。6.3.1函數(shù)依賴的推理規(guī)則
為了求得給定關(guān)系模式的碼,為了從一組函數(shù)依賴求得蘊(yùn)涵的函數(shù)依賴,就需要一套推理規(guī)則,這組規(guī)則是Armstrong提出來的。1.邏輯蘊(yùn)涵的定義定義:對于滿足一組函數(shù)依賴F的關(guān)系模式R<U,F>,其任何一個(gè)關(guān)系r,若函數(shù)依賴X→Y都成立,(即r中任意兩元組t,s,若t[X]=s[X],則t[Y]=s[Y]),則稱F邏輯蘊(yùn)含X→Y2.Armstrong公理系統(tǒng)
設(shè)關(guān)系模式R<U,F(xiàn)>,其中U為屬性集,F(xiàn)是U上的一組函數(shù)依賴,那么有如下推理規(guī)則:(1)A1自反律:若Y
X
U,則X→Y為F所蘊(yùn)涵。(2)A2增廣律:若X→Y為F所蘊(yùn)涵,且Z
U,則XZ→YZ為F所蘊(yùn)涵。(3)A3傳遞律:若X→Y,Y→Z為F所蘊(yùn)涵,則X→Z為F所蘊(yùn)涵。根據(jù)上面三條推理規(guī)則,又可導(dǎo)出以下三條推理規(guī)則:(1)合并規(guī)則:若X→Y,X→Z,則X→YZ為F所蘊(yùn)涵。(2)偽傳遞規(guī)則:若X→Y,WY→Z,則XW→Z為F所蘊(yùn)涵。(3)分解規(guī)則:若X→Y,Z
Y,則X→Z為F所蘊(yùn)含蘊(yùn)涵。函數(shù)依賴的推理規(guī)則根據(jù)合并規(guī)則和分解規(guī)則,可得引理:引理6.3.1X→A1A2…Ak成立的充分必要條件是X→Ai成立(i=l,2,…,k)。
函數(shù)依賴的推理規(guī)則(1)A1自反律:若Y
X
U,則X→Y為F所蘊(yùn)涵。證明:設(shè)Y
X
U。對R<U,F(xiàn)>的任一關(guān)系r中的任意兩個(gè)元組t,s:若t[X]=s[X],由于Y
X,則有t[Y]=s[Y],所以X→Y成立,自反律得證。函數(shù)依賴的推理規(guī)則(2)A2增廣律:若X→Y為F所蘊(yùn)含蘊(yùn)涵,且Z
U,則XZ→YZ為F所蘊(yùn)涵證明:設(shè)X→Y為F所蘊(yùn)涵,且Z
U。對R<U,F(xiàn)>的任一關(guān)系r中的任意兩個(gè)元組t,s:若t[XZ]=],由于X
XZ,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)金贖樓服務(wù)合同還款時(shí)間及費(fèi)用說明
- 旅游活動贊助商合同
- 商業(yè)印刷品購買協(xié)議
- 私人借款協(xié)議范本在線
- 裝飾合同補(bǔ)充細(xì)則
- 借款協(xié)議與擔(dān)保合同
- 倉儲物流信息管理系統(tǒng)合作協(xié)議
- 設(shè)計(jì)合作終止協(xié)議解除合同條件
- 現(xiàn)房車庫買賣合同范本
- 租房質(zhì)量承諾
- 新進(jìn)高校教師工作計(jì)劃
- 2024年人教版初一生物(上冊)期末試卷及答案(各版本)
- 中考英語688高頻詞大綱詞頻表
- 《馬克思主義發(fā)展史》題集
- 人教新目標(biāo)版英語七下Unit 11《How was your school trip》(Section A 1a-1c)教學(xué)設(shè)計(jì)
- 大話機(jī)器人智慧樹知到期末考試答案章節(jié)答案2024年青海大學(xué)
- 含新能源發(fā)電接入的電力系統(tǒng)低頻振蕩阻尼控制研究綜述
- 2024年全國甲卷高考數(shù)學(xué)(理數(shù))真題試題(原卷版+含解析)
- 電大建筑材料(A)歷年試題和答案(精)請勿轉(zhuǎn)載
- 貴州省遵義市播州區(qū)2023-2024學(xué)年八年級上學(xué)期期末學(xué)業(yè)水平監(jiān)測數(shù)學(xué)試卷(含解析)
- 國開11340《古代小說戲曲專題》期末復(fù)習(xí)資料
評論
0/150
提交評論