版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
之《數(shù)據(jù)庫系統(tǒng)原理》數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫.之數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫.1關系數(shù)據(jù)庫邏輯設計問題針對具體問題,如何構(gòu)造一個適合于它的數(shù)據(jù)模式?數(shù)據(jù)庫邏輯設計的工具──關系數(shù)據(jù)庫的規(guī)范化理論?.關系數(shù)據(jù)庫邏輯設計問題.2第4章關系數(shù)據(jù)庫設計理論4.1數(shù)據(jù)依賴4.2范式4.3關系模式的規(guī)范化.第4章關系數(shù)據(jù)庫設計理論4.1數(shù)據(jù)依賴.3關系:關系模式:關系數(shù)據(jù)庫:關系數(shù)據(jù)庫的模式:描述實體、屬性、實體間的聯(lián)系。
從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個子集。用來定義關系?;陉P系模型的數(shù)據(jù)庫,利用關系來描述現(xiàn)實世界。定義這組關系的關系模式的全體。
從形式上看,它由一組關系組成。4.1數(shù)據(jù)依賴.關系:描述實體、屬性、實體間的聯(lián)系。從形式上4關系模式的形式化定義關系模式由五部分組成,即它是一個五元組:
R(U,D,DOM,F)R:關系名U:組成該關系的屬性名集合D:屬性組U中屬性所來自的域DOM:屬性向域的映象集合F:屬性間數(shù)據(jù)的依賴關系集合.關系模式的形式化定義關系模式由五部分組成,即它是一個五元組:5什么是數(shù)據(jù)依賴1.完整性約束的表現(xiàn)形式限定屬性取值范圍:例如學生成績必須在0-100之間定義屬性值間的相互關連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設計的關鍵.什么是數(shù)據(jù)依賴1.完整性約束的表現(xiàn)形式.62.數(shù)據(jù)依賴是通過一個關系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關系是現(xiàn)實世界屬性間相互聯(lián)系的抽象是數(shù)據(jù)內(nèi)在的性質(zhì)是語義的體現(xiàn).2.數(shù)據(jù)依賴.73.數(shù)據(jù)依賴的類型函數(shù)依賴(FunctionalDependency,簡記為FD)多值依賴(MultivaluedDependency,簡記為MVD)其他.3.數(shù)據(jù)依賴的類型.8關系模式R(U,D,DOM,F)簡化為一個三元組:
R(U,F)當且僅當U上的一個關系r滿足F時,r稱為關系模式R(U,F)的一個關系.關系模式R(U,D,DOM,F).9數(shù)據(jù)依賴對關系模式的影響例:描述學校的數(shù)據(jù)庫: 學生的學號(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程名(Cname) 成績(Grade)單一的關系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}.數(shù)據(jù)依賴對關系模式的影響例:描述學校的數(shù)據(jù)庫:U={Sn10學校數(shù)據(jù)庫的語義:
⒈一個系有若干學生,一個學生只屬于一個系;⒉一個系只有一名主任;⒊一個學生可以選修多門課程,每門課程有若干學生選修;⒋每個學生所學的每門課程都有一個成績。.學校數(shù)據(jù)庫的語義:.11
屬性組U上的一組函數(shù)依賴F:
F
={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}
SnoCnameSdeptMnameGrade. 屬性組U上的一組函數(shù)依賴F:SnoCnameSdeptM12
存在的問題⒈數(shù)據(jù)冗余太大⒉更新異常(UpdateAnomalies)數(shù)據(jù)冗余,更新數(shù)據(jù)時,維護數(shù)據(jù)完整性代價大。
浪費大量的存儲空間
例:每一個系主任的姓名重復出現(xiàn)例:某系更換系主任后,系統(tǒng)必須修改與該系學生有關的每一個元組.存在的問題⒈數(shù)據(jù)冗余太大浪費大量的存儲空間例:某系更13⒊插入異常(InsertionAnomalies)無法插入新的數(shù)據(jù)
⒋刪除異常(DeletionAnomalies)不該刪除的數(shù)據(jù)不得不刪例,如果一個系剛成立,尚無學生,我們就無法把這個系及其系主任的信息存入數(shù)據(jù)庫。例,如果某個系的學生全部畢業(yè)了,我們在刪除該系學生信息的同時,把這個系及其系主任的信息也丟掉了。.⒊插入異常(InsertionAnomalies)例,如14結(jié)論:Student關系模式不是一個“好”的模式。“好”的模式:不會發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應盡可能少。原因:解決方法:模式中存在某些數(shù)據(jù)依賴通過分解關系模式來消除其中不合適的數(shù)據(jù)依賴。.結(jié)論:模式中存在某些數(shù)據(jù)依賴通過分解關系模式來消除其中不合適15
規(guī)范化理論正是用來改造關系模式,通過分解關系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。.規(guī)范化理論正是用來改造關系模式,.16幾個概念函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴傳遞函數(shù)依賴碼.幾個概念函數(shù)依賴.17定義4.1
設R(U)是一個屬性集U上的關系模式,X和Y是U的子集。若對于R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。
X稱為這個函數(shù)依賴的決定屬性集(Determinant)。1.函數(shù)依賴.定義4.1設R(U)是一個屬性集U上的關系模式,X和Y18
說明:
1.函數(shù)依賴不是指關系模式R的某個或某些關系實例滿足的約束條件,而是指R的所有關系實例均要滿足的約束條件。2.函數(shù)依賴是語義范疇的概念。只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。
例如“姓名→年齡”這個函數(shù)依賴只有在不允許有同名人的條件下成立3.數(shù)據(jù)庫設計者可以對現(xiàn)實世界作強制的規(guī)定。
例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴“姓名→年齡”成立。所插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在,則拒絕裝入該元組。. 說明:1.函數(shù)依賴不是指關系模式R的某個或某些關系實例19例:Student(Sno,Sname,Ssex,Sage,Sdept)
假設不允許重名,則有: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。.例:Student(Sno,Sname,Ssex,S202.平凡函數(shù)依賴與非平凡函數(shù)依賴定義4.2
在關系模式R(U)中,對于U的子集X和Y,如果X→Y,但YX,則稱X→Y是非平凡的函數(shù)依賴。若X→Y,但YX,則稱X→Y是平凡的函數(shù)依賴。例:在關系SC(Sno,Cno,Grade)中,非平凡函數(shù)依賴:(Sno,Cno)→
Grade
平凡函數(shù)依賴:(Sno,Cno)→
Sno(Sno,Cno)→Cno.2.平凡函數(shù)依賴與非平凡函數(shù)依賴定義4.2在關系模式21
對于任一關系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明,我們總是討論非平凡函數(shù)依賴。.對于任一關系模式,平凡函數(shù)依賴.223.完全函數(shù)依賴與部分函數(shù)依賴定義4.3
在關系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X’,都有X’Y,則稱Y完全函數(shù)依賴于X,記作Xf
Y。若X→Y,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作XPY。.3.完全函數(shù)依賴與部分函數(shù)依賴定義4.3在關系模式R(23例:在關系SC(Sno,Cno,Grade)中,由于:Sno→Grade,Cno→Grade,因此:(Sno,Cno)fGrade..244.傳遞函數(shù)依賴定義4.4
在關系模式R(U)中,如果X→Y,Y→Z,且YX,ZY,
Y→X,則稱Z傳遞函數(shù)依賴于X。注:如果Y→X,即X←→Y,則Z直接依賴于X。例:在關系Std(Sno,Sdept,Mname)中,有:
Sno→Sdept,Sdept→MnameMname傳遞函數(shù)依賴于Sno.4.傳遞函數(shù)依賴定義4.4在關系模式R(U)中,如果X255.碼定義4.5
設K為關系模式R<U,F>中的屬性或?qū)傩越M合。若KfU,則K稱為R的一個侯選碼(CandidateKey)。若關系模式R有多個候選碼,則選定其中的一個做為主碼(Primarykey)。.5.碼定義4.5設K為關系模式R<U,F>中的屬性或?qū)?6定義關系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個關系模式的碼,則稱X是R的外部碼(Foreignkey)也稱外碼主碼又和外部碼一起提供了表示關系間聯(lián)系的手段。.定義關系模式R中屬性或?qū)傩越MX并非.274.2范式范式是符合某一種級別的關系模式的集合。關系數(shù)據(jù)庫中的關系必須滿足一定的要求。滿足不同程度要求的為不同范式。范式的種類:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF) BC范式(BCNF)
第四范式(4NF)
第五范式(5NF).4.2范式范式是符合某一種級別的關系模式的集合。.28各種范式之間存在聯(lián)系:某一關系模式R為第n范式,可簡記為R∈nNF。.各種范式之間存在聯(lián)系:.29第一范式(1NF)1NF的定義 如果一個關系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R∈1NF。第一范式是對關系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關系數(shù)據(jù)庫。但是滿足第一范式的關系模式并不一定是一個好的關系模式。.第一范式(1NF)1NF的定義.30例:關系模式SLC(Sno,Sdept,Sloc,Cno,Grade),Sloc為學生住處,假設每個系的學生住在同一個地方。函數(shù)依賴包括:
(Sno,Cno)fGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc.例:關系模式SLC(Sno,Sdept,Sloc31SLC的碼為(Sno,Cno)SLC滿足第一范式。非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno,Cno)SnoCnoGradeSdeptSlocSLC.SLC的碼為(Sno,Cno)SnoCnoGradeSde32(1)插入異常 假設Sno=95102,Sdept=IS,Sloc=N的學生還未選課,因課程號是主屬性,因此該學生的信息無法插入SLC。(2)刪除異常假定某個學生本來只選修了3號課程這一門課?,F(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導致該學生信息的整個元組都要刪除。.(1)插入異常.33(3)數(shù)據(jù)冗余度大如果一個學生選修了10門課程,那么他的Sdept和Sloc值就要重復存儲了10次。(4)修改復雜例如學生轉(zhuǎn)系,在修改此學生元組的Sdept值的同時,還可能需要修改住處(Sloc)。如果這個學生選修了K門課,則必須無遺漏地修改K個元組中全部Sdept、Sloc信息。.(3)數(shù)據(jù)冗余度大.34原因
Sdept、Sloc部分函數(shù)依賴于碼。解決方法
SLC分解為兩個關系模式,以消除這些部分函數(shù)依賴。
SC(Sno,Cno,Grade)
SL(Sno,Sdept,Sloc).原因.35函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSloc.函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptS36第二范式(2NF)2NF的定義 定義4.7若關系模式R∈1NF,并且每一個非主屬性都完全函數(shù)依賴于R的碼,則R∈2NF。例:SLC(Sno,Sdept,Sloc,Cno,Grade)∈1NFSLC(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NFSL(Sno,Sdept,Sloc)∈2NF.第二范式(2NF)2NF的定義.37采用投影分解法將一個1NF的關系分解為多個2NF的關系,可以在一定程度上減輕原1NF關系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復雜等問題。將一個1NF關系分解為多個2NF的關系,并不能完全消除關系模式中的各種異常情況和數(shù)據(jù)冗余。.采用投影分解法將一個1NF的關系分解為多個2NF的關系,可以38第三范式(3NF)例:2NF關系模式SL(Sno,Sdept,Sloc)中
Sno→SdeptSdept→Sloc
Sno→Sloc Sloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。.第三范式(3NF)例:2NF關系模式SL(Sno,Sdep39
函數(shù)依賴圖:SLSnoSdeptSloc.函數(shù)依賴圖:SLSnoSdeptSloc.40解決方法采用投影分解法,把SL分解為兩個關系模式,以消除傳遞函數(shù)依賴:SD(Sno,Sdept)
DL(Sdept,Sloc)SD的碼為Sno,DL的碼為Sdept。.解決方法.41SD的碼為Sno,DL的碼為Sdept。SnoSdeptSDSdeptSlocDL.SD的碼為Sno,DL的碼為Sdept。SnoSdeptS423NF的定義 定義4.8關系模式R<U,F(xiàn)>
中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→Z和Y→X,成立,則稱R<U,F>∈3NF。例,SL(Sno,Sdept,Sloc)∈2NFSL(Sno,Sdept,Sloc)∈3NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF.3NF的定義.43若R∈3NF,則R的每一個非主屬性既不部分函數(shù)依賴于候選碼也不傳遞函數(shù)依賴于候選碼。如果R∈3NF,則R也是2NF。采用投影分解法將一個2NF的關系分解為多個3NF的關系,可以在一定程度上解決原2NF關系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復雜等問題。將一個2NF關系分解為多個3NF的關系后,并不能完全消除關系模式中的各種異常情況和數(shù)據(jù)冗余。.若R∈3NF,則R的每一個非主屬性既不部分函數(shù)依賴于候選碼也44
BC范式(BCNF)定義4.9
設關系模式R<U,F(xiàn)>∈1NF,如果對于R的每個函數(shù)依賴X→Y,若Y不屬于X,則X必含有候選碼,那么R∈BCNF。
每一個決定屬性集(因素)都包含(候選)碼
R中的所有屬性(主,非主屬性)都完全函數(shù)依賴于碼若R∈BCNFR∈BCNF,則R∈3NF若R∈3NF則R不一定∈BCNF.BC范式(BCNF)定義4.9設關系模式R<U,F(xiàn)>45例:在關系模式STJ(S,T,J)中,S表示學生,T表示教師,J表示課程。每一教師只教一門課。每門課由若干教師教,某一學生選定某門課,就確定了一個固定的教師。某個學生選修某個教師的課就確定了所選課的名稱:
(S,J)→T,(S,T)→J,T→J.例:在關系模式STJ(S,T,J)中,S表示學.46
SJTSTJSTJ.SJTSTJSTJ.47STJ∈3NF
(S,J)和(S,T)都可以作為候選碼
S、T、J都是主屬性STJ∈BCNF
T→J,T是決定屬性集,T不是候選碼。.STJ∈3NF
T→J,T是決定屬性集,T不是候選碼。.48
解決方法:將STJ分解為二個關系模式:
SJ(S,J)∈BCNF,TJ(T,J)∈BCNF
沒有任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴。SJSTTJTJ. 解決方法:將STJ分解為二個關系模式:SJSTTJTJ.493NF與BCNF的關系如果關系模式R∈BCNF,必定有R∈3NF如果R∈3NF,且R只有一個候選碼,則R必屬于BCNF。.3NF與BCNF的關系如果關系模式R∈BCNF,.50⒈所有非主屬性都完全函數(shù)依賴于每個候選碼⒉所有主屬性都完全函數(shù)依賴于每個不包含它的候選碼⒊沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性.⒈所有非主屬性都完全函數(shù)依賴于每個候選碼.514.3關系模式的規(guī)范化關系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設計的工具。一個關系只要其分量都是不可分的數(shù)據(jù)項,它就是規(guī)范化的關系,但這只是最基本的規(guī)范化。規(guī)范化程度可以有多個不同的級別。.4.3關系模式的規(guī)范化關系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯52規(guī)范化程度過低的關系不一定能夠很好地描述現(xiàn)實世界,可能會存在插入異常、刪除異常、修改復雜、數(shù)據(jù)冗余等問題。一個低一級范式的關系模式,通過模式分解可以轉(zhuǎn)換為若干個高一級范式的關系模式集合,這種過程就叫關系模式的規(guī)范化。.規(guī)范化程度過低的關系不一定能夠很好地描述現(xiàn)實世界,可能會存在53關系模式規(guī)范化的基本步驟
1NF ↓消除非主屬性對碼的部分函數(shù)依賴消除決定屬性2NF集非碼的非平↓消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴3NF ↓消除主屬性對碼的部分和傳遞函數(shù)依 賴
BCNF ↓消除非平凡且非函數(shù)依賴的多值依賴
4NF ↓消除不是由候選碼所蘊含的連接依賴
5NF.關系模式規(guī)范化的基本步驟.54規(guī)范化理論為數(shù)據(jù)庫設計提供了理論的指南和工具也僅僅是指南和工具并不是規(guī)范化程度越高,模式就越好必須結(jié)合應用環(huán)境和現(xiàn)實世界的具體情況合理地選擇數(shù)據(jù)庫模式.規(guī)范化理論為數(shù)據(jù)庫設計提供了理論的指南和工具.55之《數(shù)據(jù)庫系統(tǒng)原理》數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫.之數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫.56關系數(shù)據(jù)庫邏輯設計問題針對具體問題,如何構(gòu)造一個適合于它的數(shù)據(jù)模式?數(shù)據(jù)庫邏輯設計的工具──關系數(shù)據(jù)庫的規(guī)范化理論?.關系數(shù)據(jù)庫邏輯設計問題.57第4章關系數(shù)據(jù)庫設計理論4.1數(shù)據(jù)依賴4.2范式4.3關系模式的規(guī)范化.第4章關系數(shù)據(jù)庫設計理論4.1數(shù)據(jù)依賴.58關系:關系模式:關系數(shù)據(jù)庫:關系數(shù)據(jù)庫的模式:描述實體、屬性、實體間的聯(lián)系。
從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個子集。用來定義關系。基于關系模型的數(shù)據(jù)庫,利用關系來描述現(xiàn)實世界。定義這組關系的關系模式的全體。
從形式上看,它由一組關系組成。4.1數(shù)據(jù)依賴.關系:描述實體、屬性、實體間的聯(lián)系。從形式上59關系模式的形式化定義關系模式由五部分組成,即它是一個五元組:
R(U,D,DOM,F)R:關系名U:組成該關系的屬性名集合D:屬性組U中屬性所來自的域DOM:屬性向域的映象集合F:屬性間數(shù)據(jù)的依賴關系集合.關系模式的形式化定義關系模式由五部分組成,即它是一個五元組:60什么是數(shù)據(jù)依賴1.完整性約束的表現(xiàn)形式限定屬性取值范圍:例如學生成績必須在0-100之間定義屬性值間的相互關連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設計的關鍵.什么是數(shù)據(jù)依賴1.完整性約束的表現(xiàn)形式.612.數(shù)據(jù)依賴是通過一個關系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關系是現(xiàn)實世界屬性間相互聯(lián)系的抽象是數(shù)據(jù)內(nèi)在的性質(zhì)是語義的體現(xiàn).2.數(shù)據(jù)依賴.623.數(shù)據(jù)依賴的類型函數(shù)依賴(FunctionalDependency,簡記為FD)多值依賴(MultivaluedDependency,簡記為MVD)其他.3.數(shù)據(jù)依賴的類型.63關系模式R(U,D,DOM,F)簡化為一個三元組:
R(U,F)當且僅當U上的一個關系r滿足F時,r稱為關系模式R(U,F)的一個關系.關系模式R(U,D,DOM,F).64數(shù)據(jù)依賴對關系模式的影響例:描述學校的數(shù)據(jù)庫: 學生的學號(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程名(Cname) 成績(Grade)單一的關系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}.數(shù)據(jù)依賴對關系模式的影響例:描述學校的數(shù)據(jù)庫:U={Sn65學校數(shù)據(jù)庫的語義:
⒈一個系有若干學生,一個學生只屬于一個系;⒉一個系只有一名主任;⒊一個學生可以選修多門課程,每門課程有若干學生選修;⒋每個學生所學的每門課程都有一個成績。.學校數(shù)據(jù)庫的語義:.66
屬性組U上的一組函數(shù)依賴F:
F
={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}
SnoCnameSdeptMnameGrade. 屬性組U上的一組函數(shù)依賴F:SnoCnameSdeptM67
存在的問題⒈數(shù)據(jù)冗余太大⒉更新異常(UpdateAnomalies)數(shù)據(jù)冗余,更新數(shù)據(jù)時,維護數(shù)據(jù)完整性代價大。
浪費大量的存儲空間
例:每一個系主任的姓名重復出現(xiàn)例:某系更換系主任后,系統(tǒng)必須修改與該系學生有關的每一個元組.存在的問題⒈數(shù)據(jù)冗余太大浪費大量的存儲空間例:某系更68⒊插入異常(InsertionAnomalies)無法插入新的數(shù)據(jù)
⒋刪除異常(DeletionAnomalies)不該刪除的數(shù)據(jù)不得不刪例,如果一個系剛成立,尚無學生,我們就無法把這個系及其系主任的信息存入數(shù)據(jù)庫。例,如果某個系的學生全部畢業(yè)了,我們在刪除該系學生信息的同時,把這個系及其系主任的信息也丟掉了。.⒊插入異常(InsertionAnomalies)例,如69結(jié)論:Student關系模式不是一個“好”的模式?!昂谩钡哪J剑翰粫l(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應盡可能少。原因:解決方法:模式中存在某些數(shù)據(jù)依賴通過分解關系模式來消除其中不合適的數(shù)據(jù)依賴。.結(jié)論:模式中存在某些數(shù)據(jù)依賴通過分解關系模式來消除其中不合適70
規(guī)范化理論正是用來改造關系模式,通過分解關系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。.規(guī)范化理論正是用來改造關系模式,.71幾個概念函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴傳遞函數(shù)依賴碼.幾個概念函數(shù)依賴.72定義4.1
設R(U)是一個屬性集U上的關系模式,X和Y是U的子集。若對于R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。
X稱為這個函數(shù)依賴的決定屬性集(Determinant)。1.函數(shù)依賴.定義4.1設R(U)是一個屬性集U上的關系模式,X和Y73
說明:
1.函數(shù)依賴不是指關系模式R的某個或某些關系實例滿足的約束條件,而是指R的所有關系實例均要滿足的約束條件。2.函數(shù)依賴是語義范疇的概念。只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。
例如“姓名→年齡”這個函數(shù)依賴只有在不允許有同名人的條件下成立3.數(shù)據(jù)庫設計者可以對現(xiàn)實世界作強制的規(guī)定。
例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴“姓名→年齡”成立。所插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在,則拒絕裝入該元組。. 說明:1.函數(shù)依賴不是指關系模式R的某個或某些關系實例74例:Student(Sno,Sname,Ssex,Sage,Sdept)
假設不允許重名,則有: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。.例:Student(Sno,Sname,Ssex,S752.平凡函數(shù)依賴與非平凡函數(shù)依賴定義4.2
在關系模式R(U)中,對于U的子集X和Y,如果X→Y,但YX,則稱X→Y是非平凡的函數(shù)依賴。若X→Y,但YX,則稱X→Y是平凡的函數(shù)依賴。例:在關系SC(Sno,Cno,Grade)中,非平凡函數(shù)依賴:(Sno,Cno)→
Grade
平凡函數(shù)依賴:(Sno,Cno)→
Sno(Sno,Cno)→Cno.2.平凡函數(shù)依賴與非平凡函數(shù)依賴定義4.2在關系模式76
對于任一關系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明,我們總是討論非平凡函數(shù)依賴。.對于任一關系模式,平凡函數(shù)依賴.773.完全函數(shù)依賴與部分函數(shù)依賴定義4.3
在關系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X’,都有X’Y,則稱Y完全函數(shù)依賴于X,記作Xf
Y。若X→Y,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作XPY。.3.完全函數(shù)依賴與部分函數(shù)依賴定義4.3在關系模式R(78例:在關系SC(Sno,Cno,Grade)中,由于:Sno→Grade,Cno→Grade,因此:(Sno,Cno)fGrade..794.傳遞函數(shù)依賴定義4.4
在關系模式R(U)中,如果X→Y,Y→Z,且YX,ZY,
Y→X,則稱Z傳遞函數(shù)依賴于X。注:如果Y→X,即X←→Y,則Z直接依賴于X。例:在關系Std(Sno,Sdept,Mname)中,有:
Sno→Sdept,Sdept→MnameMname傳遞函數(shù)依賴于Sno.4.傳遞函數(shù)依賴定義4.4在關系模式R(U)中,如果X805.碼定義4.5
設K為關系模式R<U,F>中的屬性或?qū)傩越M合。若KfU,則K稱為R的一個侯選碼(CandidateKey)。若關系模式R有多個候選碼,則選定其中的一個做為主碼(Primarykey)。.5.碼定義4.5設K為關系模式R<U,F>中的屬性或?qū)?1定義關系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個關系模式的碼,則稱X是R的外部碼(Foreignkey)也稱外碼主碼又和外部碼一起提供了表示關系間聯(lián)系的手段。.定義關系模式R中屬性或?qū)傩越MX并非.824.2范式范式是符合某一種級別的關系模式的集合。關系數(shù)據(jù)庫中的關系必須滿足一定的要求。滿足不同程度要求的為不同范式。范式的種類:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF) BC范式(BCNF)
第四范式(4NF)
第五范式(5NF).4.2范式范式是符合某一種級別的關系模式的集合。.83各種范式之間存在聯(lián)系:某一關系模式R為第n范式,可簡記為R∈nNF。.各種范式之間存在聯(lián)系:.84第一范式(1NF)1NF的定義 如果一個關系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R∈1NF。第一范式是對關系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關系數(shù)據(jù)庫。但是滿足第一范式的關系模式并不一定是一個好的關系模式。.第一范式(1NF)1NF的定義.85例:關系模式SLC(Sno,Sdept,Sloc,Cno,Grade),Sloc為學生住處,假設每個系的學生住在同一個地方。函數(shù)依賴包括:
(Sno,Cno)fGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc.例:關系模式SLC(Sno,Sdept,Sloc86SLC的碼為(Sno,Cno)SLC滿足第一范式。非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno,Cno)SnoCnoGradeSdeptSlocSLC.SLC的碼為(Sno,Cno)SnoCnoGradeSde87(1)插入異常 假設Sno=95102,Sdept=IS,Sloc=N的學生還未選課,因課程號是主屬性,因此該學生的信息無法插入SLC。(2)刪除異常假定某個學生本來只選修了3號課程這一門課?,F(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導致該學生信息的整個元組都要刪除。.(1)插入異常.88(3)數(shù)據(jù)冗余度大如果一個學生選修了10門課程,那么他的Sdept和Sloc值就要重復存儲了10次。(4)修改復雜例如學生轉(zhuǎn)系,在修改此學生元組的Sdept值的同時,還可能需要修改住處(Sloc)。如果這個學生選修了K門課,則必須無遺漏地修改K個元組中全部Sdept、Sloc信息。.(3)數(shù)據(jù)冗余度大.89原因
Sdept、Sloc部分函數(shù)依賴于碼。解決方法
SLC分解為兩個關系模式,以消除這些部分函數(shù)依賴。
SC(Sno,Cno,Grade)
SL(Sno,Sdept,Sloc).原因.90函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSloc.函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptS91第二范式(2NF)2NF的定義 定義4.7若關系模式R∈1NF,并且每一個非主屬性都完全函數(shù)依賴于R的碼,則R∈2NF。例:SLC(Sno,Sdept,Sloc,Cno,Grade)∈1NFSLC(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NFSL(Sno,Sdept,Sloc)∈2NF.第二范式(2NF)2NF的定義.92采用投影分解法將一個1NF的關系分解為多個2NF的關系,可以在一定程度上減輕原1NF關系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復雜等問題。將一個1NF關系分解為多個2NF的關系,并不能完全消除關系模式中的各種異常情況和數(shù)據(jù)冗余。.采用投影分解法將一個1NF的關系分解為多個2NF的關系,可以93第三范式(3NF)例:2NF關系模式SL(Sno,Sdept,Sloc)中
Sno→SdeptSdept→Sloc
Sno→Sloc Sloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。.第三范式(3NF)例:2NF關系模式SL(Sno,Sdep94
函數(shù)依賴圖:SLSnoSdeptSloc.函數(shù)依賴圖:SLSnoSdeptSloc.95解決方法采用投影分解法,把SL分解為兩個關系模式,以消除傳遞函數(shù)依賴:SD(Sno,Sdept)
DL(Sdept,Sloc)SD的碼為Sno,DL的碼為Sdept。.解決方法.96SD的碼為Sno,DL的碼為Sdept。SnoSdeptSDSdeptSlocDL.SD的碼為Sno,DL的碼為Sdept。SnoSdeptS973NF的定義 定義4.8關系模式R<U,F(xiàn)>
中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→Z和Y→X,成立,則稱R<U,F>∈3NF。例,SL(Sno,Sdept,Sloc)∈2NFSL(Sno,Sdept,Sloc)∈3NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF.3NF的定義.98若R∈3NF,則R的每一個非主屬性既不部分函數(shù)依賴于候選碼也不傳遞函數(shù)依賴于候選碼。如果R∈3NF,則R也是2NF。采用投影分解法將一個2NF的關系分解為多個3NF的關系,可以在一定程度上解決原2NF關系中存在的插入異常、刪除
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026貴州省黔晟國有資產(chǎn)經(jīng)營有限責任公司面向社會招聘中層管理人員2人考試備考試題及答案解析
- 2026貴州省省、市兩級機關遴選公務員357人備考考試題庫及答案解析
- 市場調(diào)查公司財務管理制度
- 2026江蘇南京市氣象部門招聘高層次人才2人備考考試試題及答案解析
- 醫(yī)療用品銷售管理制度范本(3篇)
- 煤礦運輸車輛管理制度(3篇)
- 酒店活動策劃備選方案(3篇)
- 古風日?;顒硬邉澐桨?3篇)
- 蛋白質(zhì)是生命活動的主要承擔者課件2025-2026學年高一上學期生物人教版必修1
- 2026財達證券博士后招聘4人(河北)備考考試題庫及答案解析
- 山東省濟南市2023-2024學年高二上學期期末考試化學試題 附答案
- DB52T 1517-2020 含笑屬栽培技術規(guī)程 黃心夜合
- GB/T 18724-2024印刷技術印刷品與印刷油墨耐各種試劑性的測定
- HG+20231-2014化學工業(yè)建設項目試車規(guī)范
- 嬰幼兒托育服務與管理專業(yè)-《嬰幼兒感覺統(tǒng)合訓練》課程標準
- 老年口腔健康講座課件
- 卒中后認知障礙管理專家共識
- 南京科技職業(yè)學院單招職測參考試題庫(含答案)
- 客戶驗廠報告
- 開磷集團(電池級磷酸一銨)項目環(huán)評報告
- 案例(母線PT反充電)
評論
0/150
提交評論