版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
會計學(xué)1第關(guān)系數(shù)據(jù)理論2/48第六章關(guān)系數(shù)據(jù)理論6.1問題的提出6.2規(guī)范化
6.2.1函數(shù)依賴
6.2.2碼
6.2.3范式
6.2.42NF6.2.53NF……
6.3數(shù)據(jù)依賴的公理系統(tǒng)第1頁/共70頁3/48
如何才能構(gòu)造一個良好的關(guān)系模式?要回答這個問題就必須要解決以下問題:什么是不好的關(guān)系模式,一個不好的關(guān)系模式存在哪些弊???區(qū)分一個關(guān)系模式設(shè)計的優(yōu)劣程度的標(biāo)準(zhǔn)是什么?如何將一個不好的關(guān)系模式轉(zhuǎn)換為一個好的關(guān)系模式?
關(guān)系數(shù)據(jù)理論借助于數(shù)學(xué)工具規(guī)定了一套關(guān)系數(shù)據(jù)庫設(shè)計的理論和方法。是數(shù)據(jù)庫邏輯設(shè)計(應(yīng)用數(shù)據(jù)庫應(yīng)該由多少個表組成?每個表有哪些字段?等等)的有力工具。6.1問題的提出--什么是不好的數(shù)據(jù)庫設(shè)計第2頁/共70頁4/48一、關(guān)系模式的形式化定義二、什么是數(shù)據(jù)依賴三、關(guān)系模式的簡化定義四、數(shù)據(jù)依賴對關(guān)系模式影響6.1問題的提出第3頁/共70頁關(guān)系模式由五部分組成,即它是一個五元組:
R(U,D,dom,F(xiàn))例:上圖的關(guān)系模式R(U,D,DOM,F)R—學(xué)生U—{學(xué)號,姓名,性別,年齡}D—{整數(shù),字符串}DOM—{學(xué)號:(snoINT6),年齡:(ageINT2[15-45]),
性別:(sexCHAR2[男,女]),姓名:(nameCHAR20)}F—{學(xué)號決定所有其他屬性}域名集屬性名集屬性間的依賴關(guān)系集屬性向域的映像集學(xué)號學(xué)生性別年齡9901李勇男249902劉晨女25關(guān)系名學(xué)生一、關(guān)系模式的形式化定義第4頁/共70頁6/48二、什么是數(shù)據(jù)依賴
數(shù)據(jù)依賴是通過一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系。它是現(xiàn)實世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語義的體現(xiàn)。
現(xiàn)在人們已經(jīng)提出了許多種類型的數(shù)據(jù)依賴,其中最重要的是函數(shù)依賴(FunctionalDependency,FD)和多值依賴(MultivaluedDependency,MVD)。第5頁/共70頁7/48函數(shù)依賴函數(shù)依賴極為普遍地存在例如,描述學(xué)生的關(guān)系,有學(xué)號(Sno),姓名(Sname),系別(Sdept)等幾個屬性。由于一個學(xué)號只對應(yīng)一個學(xué)生,一個學(xué)生只在一個系學(xué)習(xí)。因而當(dāng)“學(xué)號”值確定之后,姓名和該生所在系的值也就被唯一地確定了。上述值的確定就象數(shù)學(xué)函數(shù):自變量x確定之后,相應(yīng)
的函數(shù)值f(x)也就唯一地確定。我們說Sno函數(shù)決定Sname和Sdept,或者說Sname,
Sdept函數(shù)依賴于Sno,記為:
Sno→Sname,Sno→Sdept第6頁/共70頁8/48
關(guān)系模式R(U,D,DOM,F)中,F(xiàn)是本章開始引入的數(shù)據(jù)依賴集。
由于D和DOM對模式設(shè)計關(guān)系不大,因此我們在本章中把關(guān)系模式看作是一個三元組:R<U,F>
,本章的主要是圍繞著屬性和屬性間的數(shù)據(jù)依賴來討論問題。四、關(guān)系模式的簡化表示第7頁/共70頁9/48五、數(shù)據(jù)依賴對關(guān)系模式的影響[例1]
描述學(xué)校的數(shù)據(jù)庫: 學(xué)生的學(xué)號(Sno)、姓名(Sname)、所在系(Sdept)、系主任姓名(Mname)、課程號(Cno)、成績(Grade)語義(功能要求):
1)一個系有若干學(xué)生,一個學(xué)生只屬于一個系;
2)一個系只有一名主任;
3)一個學(xué)生可以選多門課,每門課有若干學(xué)生選修;
4)每個學(xué)生所學(xué)的每門課程都有一個成績。一個可能的關(guān)系模式:Student<U、F>U={Sno,Sname,Sdept,Mname,
Cno,Grade}第8頁/共70頁10/48Student(Sno,Sname,Sdept,Mname,Cno,Grade)SnoSnameSdeptMnameCnoGradeS01楊明D01李一C0190S02李婉D01李一C0187S01楊明D01李一C0292S03劉海D02王二C0195S04安然D02王二C0278S05樂天D03趙三C0182………………………………五、數(shù)據(jù)依賴對關(guān)系模式的影響上述模式存在什么問題該模式存在的主要問題是冗余。第9頁/共70頁11/48冗余帶來的問題冗余是不可避免的。在一定程度內(nèi)也是合理的。但是,過度的冗余則會給數(shù)據(jù)庫帶來三類大的問題:插入異常:如果一個系剛成立沒有學(xué)生,或者有了學(xué)生但尚未選修課程,那么就無法將這個系及其負(fù)責(zé)人的信息插入數(shù)據(jù)庫。刪除異常:如果某個系的全部學(xué)生都畢業(yè)了,則刪除該系學(xué)生及其選修課程的同時,把這個系及其負(fù)責(zé)人的信息也丟掉了。更新異常:學(xué)生及其所選課程很多,而系主任只有一個,但其卻要和學(xué)生及其所選課程出現(xiàn)的次數(shù)一樣多。此外,如果某個系要更換系主任,就必須修改這個系學(xué)生所選課程的每個元組,修改其中的系主任信息。若有疏忽,就會造成數(shù)據(jù)的不一致,從而造成更新異常。第10頁/共70頁12/48解決冗余的方法問題產(chǎn)生的原因:Student中存在多余的數(shù)據(jù)依賴(不夠規(guī)范)解決的方法將一個大關(guān)系分解為若干個小關(guān)系(消除數(shù)據(jù)依賴)。如前面的Student大關(guān)系分解為新的S,SC和Dept三個小關(guān)系,即可消除三類異常。SnoSnameSdeptS01楊明D01S02李婉D01S03劉海D02S04安然D02S05樂天D03DeptMnameD01李一D02王二D03趙三SnoCnoGradeS01C0190S02C0187S01C0292S03C0195S04C0278S05C0182SDeptSC第11頁/共70頁13/48
從上面的分解觀察到:如果在一個關(guān)系模式內(nèi),函數(shù)依賴形式上如果只有:
碼→非主屬性
的形式,冗余就較小,三類異常就沒有了。S(Sno,Sname,Sdept,Sno→Sname,Sno→Sdept)Dept(Dept,Mname,Dept→Mname)SC(Sno,Cno,(Sno,Cno)→Grade)解決冗余的方法第12頁/共70頁14/48
為什么上面的例子經(jīng)過改造以后會變得比改造前好?還能不能繼續(xù)改造?
或者說如何得到最優(yōu)的關(guān)系模式?標(biāo)準(zhǔn)是什么?是我們下面要討論的問題。五、數(shù)據(jù)依賴對關(guān)系模式的影響第13頁/共70頁15/486.2規(guī)范化規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。
6.2.1函數(shù)依賴
6.2.2碼
6.2.3范式
6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴
6.2.84NF6.2.9規(guī)范化小結(jié)第14頁/共70頁16/486.2.1函數(shù)依賴一函數(shù)依賴二平凡函數(shù)依賴與非平凡函數(shù)依賴三完全函數(shù)依賴與部分函數(shù)依賴四傳遞函數(shù)依賴五函數(shù)依賴集與關(guān)系模式第15頁/共70頁17/48一、函數(shù)依賴(FunctionalDependency)在關(guān)系模式中,屬性之間可能存在著決定關(guān)系,如:每個學(xué)生只有一個學(xué)號,學(xué)號決定了該學(xué)生的姓名、所在系等;每個學(xué)生所學(xué)的每門課程只能有一個總評成績…在關(guān)系模式中,有些屬性之間不存在這種決定關(guān)系,如:學(xué)生年齡與所在系學(xué)號與成績?yōu)榱朔从硨傩蚤g的這種決定關(guān)系,用函數(shù)依賴這一術(shù)語表示這種決定關(guān)系。6.2.1函數(shù)依賴第16頁/共70頁18/481、函數(shù)依賴的定義(注意:現(xiàn)在還不能用到碼的概念。)定義6.1設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集。若對于R的任何一個可能的關(guān)系r,r中不可能存在兩個元組在X屬性值上相等而在Y屬性值上不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作:X→Y。對t,sr,若t[X]=s[X],則t[Y]=s[Y],其中,X稱為這個函數(shù)依賴的決定屬性集(Determinant)。若Y不函數(shù)依賴于X,則記作XY。6.2.1函數(shù)依賴→\第17頁/共70頁19/48例2:設(shè)R(U,F(xiàn))是選修關(guān)系模式U={學(xué)號,課號,成績}F={(學(xué)號,課號)→成績}下列關(guān)系是否是R(U,F(xiàn))的關(guān)系?rl是,r2否6.2.1函數(shù)依賴SnoCnoGrade9502C1809503C2759502C285r1SnoCnoGrade9502C1809502C1759503C285r2對于當(dāng)前關(guān)系r的任意兩個元組,如果X值相同,則要求Y值也相同第18頁/共70頁20/48例3:設(shè)Dl=D2=D3={1,2,3}U={A,B,C}F={A→B,B→C}試判斷下列關(guān)系中哪些是R(U,F(xiàn))的關(guān)系,哪些不是。6.2.1函數(shù)依賴ABC121321221R1是ABC123211321R2否ABC113312123R3否ABC123213413R4否第19頁/共70頁21/482、關(guān)于函數(shù)依賴的說明(1)函數(shù)依賴反映屬性之間的一般規(guī)律,不是指關(guān)系模式R的某個或某些關(guān)系實例滿足的約束條件,而是指R的所有關(guān)系實例均要滿足的約束條件。當(dāng)且僅當(dāng)U上的一個關(guān)系r滿足F時,r稱為關(guān)系模式R(U,F)的一個關(guān)系。
6.2.1函數(shù)依賴第20頁/共70頁22/48(2)函數(shù)依賴是語義范疇的概念,只能根據(jù)現(xiàn)實世界的數(shù)據(jù)語義確定,函數(shù)依賴的確定實際上是對現(xiàn)實世界數(shù)據(jù)的聯(lián)系的論斷,要根據(jù)數(shù)據(jù)的客觀存在的聯(lián)系和企業(yè)(組織)的管理規(guī)章制度來確定。例:“區(qū)域主管→所在區(qū)域”只有在不允許有同名人的條件下成立6.2.1函數(shù)依賴第21頁/共70頁23/48(3)函數(shù)依賴與函數(shù)的區(qū)別1)在數(shù)學(xué)中,函數(shù)值通常可通過數(shù)學(xué)式計算,與時間無關(guān);而函數(shù)依賴的決定性(右部的值)可以隨時間改變例如,在商品代碼→庫存數(shù)量的函數(shù)依賴中,隨著某些商品被賣出,擁有數(shù)量隨之下降。2)函數(shù)依賴只強調(diào)決定性(屬性值相同),不意味著能通過決定因素計算出函數(shù)依賴右部的值。6.2.1函數(shù)依賴第22頁/共70頁24/483、函數(shù)依賴圖(FD圖)關(guān)系中函數(shù)依賴關(guān)系可以用函數(shù)依賴圖表示[例1]
Student(Sno,Sname,Sdept,Mname,Cno,Grade)6.2.1函數(shù)依賴屬性組U上的一組函數(shù)依賴F:F={Sno→Sname,Sno→Sdept,Sdept→Mname,Sno→Mname,(Sno,Cno)→Grade}
SnoCnoSdeptMnameGradeSname第23頁/共70頁25/48二、平凡函數(shù)依賴與非平凡函數(shù)依賴定義:在關(guān)系模式R(U)中,對于U的子集X和Y,如果X→Y,但YX,則稱X→Y是平凡的函數(shù)依賴(必然成立)若X→Y,但Y?X,則稱X→Y是非平凡的函數(shù)依賴?yán)涸陉P(guān)系SC(Sno,Cno,Grade)中,平凡函數(shù)依賴:(Sno,Cno)→
Sno(Sno,Cno)→Cno
非平凡函數(shù)依賴:(Sno,Cno)→
Grade6.2.1函數(shù)依賴整體一致,部分一致第24頁/共70頁26/48
對于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的。不可能在一個關(guān)系中存在兩個元組,在X上相等,而在X的某個子集上不相等。整體一致,部分一致,沒有特殊意義(過于“平凡”)
平凡函數(shù)依賴不反映新的語義,只有非平凡的函數(shù)依賴才和“真正的”完整性約束條件相關(guān)。
因此若不特別聲明,總是討論非平凡函數(shù)依賴。6.2.1函數(shù)依賴第25頁/共70頁27/48三、完全函數(shù)依賴與部分函數(shù)依賴定義6.2:在關(guān)系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X’
,都有X’Y,則稱Y完全函數(shù)依賴于X,記作X→Y。若X→Y,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作X→Y。通俗地說:X→Y,就是X的一部分就能決定Y。6.2.1函數(shù)依賴fpp→\第26頁/共70頁28/481)當(dāng)決定因素是單屬性時,無非空真子集,因此,肯定是完全函數(shù)依賴集。2)當(dāng)決定因素是多屬性時,須根據(jù)語義進行判斷。例:在關(guān)系SC(Sno,Cno,Sdept,Grade)中,{Sno,Cno}有兩個非空真子集{Sno},{Cno},根據(jù)對模式屬性語義的規(guī)定,它們均不能分別決定考試成績。SnoGrade,CnoGrade,{Sno,Cno}→Grade成立。
{Sno,Cno}→Sdept是部分函數(shù)依賴。6.2.1函數(shù)依賴→\→\fpSnoSdeptCnoGrageS01D01C0190S02D01C0187S01D01C0292S03D02C0195……………………第27頁/共70頁29/48四、傳遞函數(shù)依賴定義6.3:在關(guān)系模式R(U)中,如果X→Y,YX(且YX),Y→Z,則稱Z傳遞函數(shù)依賴于X,記作X→Z。例1:設(shè)Student(Sno,Sname,Sdept,Mname,Cno,Grade)
中,存在函數(shù)依賴:SnoSdept,SdeptMname,根據(jù)傳遞依賴的定義,可知SnoMname是傳遞依賴。6.2.1函數(shù)依賴→\傳遞SnoSnameSdeptMnameCnoGradeS01楊明D01李一C0190S02李婉D01李一C0187S01楊明D01李一C0292S03劉海D02王二C0195………………………………第28頁/共70頁30/48注:
(1)如果Y→X,即XY,則Z直接依賴于X。(2)Y不包含于X:該條件排除了部分函數(shù)依賴是傳遞
函數(shù)依賴的可能。(3)可能出現(xiàn)Z是X子集的傳遞函數(shù)依賴。如:(A,B,C)→(C,D),(C,D)→A
構(gòu)成了一個傳遞函數(shù)依賴(A,B,C)→A。6.2.1函數(shù)依賴傳遞第29頁/共70頁31/48五、函數(shù)依賴集與關(guān)系模式關(guān)系模式R(U,D,DOM,F)簡化為一個三元組:R(U,F)
(1)當(dāng)R(U)確定,符合R(U)的所有關(guān)系是
Dl×D2×…×Dn的笛卡爾積子集。(2)當(dāng)R(U,F(xiàn))確定以后,符合R(U,F(xiàn))的所有關(guān)系只是
Dl,D2,…,Dn的笛卡爾積的部分子集、即那些滿
足函數(shù)依賴集的D1×D2×…×Dn的子集。6.2.1函數(shù)依賴ABC121321221r1ABC123211321r2例:設(shè)Dl=D2=D3={1,2,3}U={A,B,C}F={A→B,B→C}問r1,r2是R(U)的關(guān)系?問r1,r2是R(U,F)的關(guān)系?第30頁/共70頁32/486.2.2碼定義6.4
設(shè)K為R<U,F>中的屬性或?qū)傩越M,若K→U,則K為R的候選碼(CandidateKey)。若候選碼多于一個,則選定其中一個作為主碼(PrimaryKey)。主屬性(Primeattribute):包含在任何候選碼中的屬性。非主屬性(Nonprimeattribute)
:不包含在任何候選碼中的屬性。也稱非碼屬性(Non-keyattribute)。全碼(AllKey):關(guān)系模式的碼由整個屬性組構(gòu)成。fK完全函數(shù)決定關(guān)系中的所有屬性第31頁/共70頁33/481)對于任意關(guān)系r∈R(u),若X是R(U)的碼,則對任何元組
t,s∈r,有t(x)≠s(x)(t≠s)碼在關(guān)系r中是唯一的。如:{Sno}是唯一區(qū)分學(xué)生的屬性,構(gòu)成碼2)若X是碼,則X→U是完全函數(shù)依賴,這是碼的最小性。它的任一真子集都不構(gòu)成碼。如:SC{Sno,Cno,Grade}中{Sno,Cno}構(gòu)成碼,而其真子集{Sno},{Cno}不單獨構(gòu)成碼6.2.2碼—說明第32頁/共70頁34/486.2.2碼定義6.5
關(guān)系模式R中的屬性或?qū)傩越MX并非R的碼,但X是另一個關(guān)系模式的碼,則稱X是R的外部碼,簡稱外碼。如在SC(Sno,Cno,Grade)中,Sno不是碼,但Sno
是關(guān)系模式Student(Sno,Sname,Sdept,Sage)的碼,則Sno是關(guān)系模式SC的外碼主碼和外碼一起提供了表示關(guān)系間聯(lián)系的手段。第33頁/共70頁35/48
規(guī)范化的關(guān)系簡稱范式。范式是對關(guān)系的不同數(shù)據(jù)依賴程度的要求。
通過模式分解將一個低級范式轉(zhuǎn)換為若干個高級范式的過程稱作規(guī)范化。
某一關(guān)系模式R為第n范式,可簡記為R∈nNF。1NF2NF3NF4NFBCNF5NF各種范式之間的聯(lián)系:5NF4NFBCNF3NF2NF1NF6.2.3范式符合某一級別的關(guān)系模式的集合第34頁/共70頁36/48一、1NF1NF的定義如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R∈1NF。第一范式是對關(guān)系模式的最起碼的要求。不滿足1NF的表不屬于關(guān)系在關(guān)系數(shù)據(jù)庫中不允許這種表存在。但是滿足第一范式的關(guān)系模式并不一定是一個好的關(guān)系模式。第35頁/共70頁37/48例5:
A1,A2,A3,…,Ak,…,An
Ak1Ak2例6:工資(工號,姓名,工資(基本工資,年績津貼,煤電補貼))△轉(zhuǎn)化方法:1)A1,A2,A3,…,Ak1,Ak2,…,An2)工資(工號,姓名,基本工資,年績津貼,煤電補貼)一、1NF第36頁/共70頁38/48例7:
關(guān)系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地方。函數(shù)依賴包括:
(Sno,Cno)→GradeSno→Sdept(Sno,Cno)→SdeptSno→Sloc(Sno,Cno)→SlocSdept→Sloc二、2NFfpp第37頁/共70頁39/48*SLC滿足第一范式。*SLC的碼為(Sno,Cno)*非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno,Cno)SnoCnoGradeSdeptSlocSLC(1)插入異常未選課學(xué)生無法插入(2)刪除異常
刪除選課信息將導(dǎo)致該學(xué)生信息整個元組刪除(3)數(shù)據(jù)冗余度大
Sdept和Sloc值重復(fù)存儲(4)修改復(fù)雜學(xué)生轉(zhuǎn)系,修改K個元組中全部Sdept、Sloc信息二、2NFSLC(Sno,Sdept,Sloc,Cno,Grade)第38頁/共70頁40/48SnoCnoGradeSCSLSnoSdeptSloc
原因:Sdept、Sloc部分函數(shù)依賴于碼。
解決方法:
SLC分解為兩個關(guān)系模式,以消除這些部分函數(shù)依賴SC(Sno,Cno,Grade)
SL(Sno,Sdept,Sloc)函數(shù)依賴圖:二、2NF第39頁/共70頁41/48定義6.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
2NF在1NF基礎(chǔ)上消除了非主屬性對碼的部分函數(shù)依賴。
采用投影分解法將一個1NF的關(guān)系分解為多個2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。二、2NF第40頁/共70頁42/48
將一個1NF關(guān)系分解為多個2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。上例:
SL(Sno,Sdept,Sloc)中函數(shù)依賴:
Sno→SdeptSdept→SlocSno→Sloc Sloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。SLSnoSdeptSloc三、3NFS1CSB01S2CSB01S3CSB01S100MAB02第41頁/共70頁43/48解決方法采用投影分解法,把SL分解為兩個關(guān)系模式,以消除傳遞函數(shù)依賴:SD(Sno,Sdept)DL(Sdept,Sloc)
SD的碼為Sno,DL的碼為Sdept。SnoSdeptSDSdeptSlocDL三、3NF第42頁/共70頁44/48定義6.7:關(guān)系模式R<U,F(xiàn)>
中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z?Y),使得X→Y,Y→X,Y→Z,成立,則稱R<U,F(xiàn)>∈3NF。如果關(guān)系R的任何一個非主屬性都不傳遞函數(shù)依賴于它的任何一個候選碼,則R∈3NF。(即3NF在2NF的基礎(chǔ)上消除了非主屬性對碼的傳遞函數(shù)依賴。)例,SL(Sno,Sdept,Sloc)∈2NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF三、3NF第43頁/共70頁45/48
若R∈3NF,則R的每一個非主屬性既不部分函數(shù)依賴于主碼也不傳遞函數(shù)依賴于主碼。
采用投影分解法將一個2NF的關(guān)系分解為多個3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。
將一個2NF關(guān)系分解為多個3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余三、3NF第44頁/共70頁46/48例1
屬性組U上的一組函數(shù)依賴F:F={Sno→Sdept,Sdept→Mname,(Sno,Cno)→Grade}
SnoCnoSdeptMnameGrade三、3NFSC(Sno,Cno,Grade)SD(Sno,Sdept)DM(Sdept,Mname)第45頁/共70頁47/48第6章小結(jié)第46頁/共70頁48/48四、BC范式(BCNF)定義6.8:設(shè)關(guān)系模式R<U,F(xiàn)>∈1NF,如果對于R的每個函數(shù)依賴X→Y,若Y不屬于X,則X必含有候選碼,那么R∈BCNF,即:若R∈BCNF每一個決定屬性集(因素)都包含(候選)碼R中的所有屬性(主、非主屬性)都完全函數(shù)依賴于碼,不存在決定因素不包含碼的函數(shù)依賴
BCNF范式和第三范式的區(qū)別在于:第三范式只對非主屬性消除了操作異常;而BCNF范式則是針對U中任何屬性,包括了主屬性。第47頁/共70頁49/48
BCNF的關(guān)系模式所具有的性質(zhì)
1)所有非主屬性都完全函數(shù)依賴于每個候選碼
2)所有主屬性都完全函數(shù)依賴于每個不包含它的候選碼
3)沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性
BCNF滿足3NF(BCNF3NF2NF1NF)
如果R∈3NF,且R只有一個候選碼,則R必屬于BCNF
BCNF范式是基于函數(shù)依賴集的最高級別的范式四、BC范式(BCNF)第48頁/共70頁50/48例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。
每一教師只教一門課,每門課由若干教師教。某一學(xué)生選定某門課,就確定了一個固定的教師。某個學(xué)生選修某個教師的課就確定了所選課的名稱。
(S,J)→T,(S,T)→J,T→J教師學(xué)生課程王紅李明數(shù)據(jù)庫王紅劉晨數(shù)據(jù)庫王紅王敏數(shù)據(jù)庫劉軍張立C語言劉軍劉晨C語言候選碼有哪些四、BC范式(BCNF)第49頁/共70頁51/48函數(shù)依賴:
(S,J)→T,(S,T)→J,T→J
SJTSTJSTJ四、BC范式(BCNF)
STJ∈3NF(S,J)和(S,T)都可以作為候選碼S、T、J都是主屬性
STJ∈BCNFT→J,T是決定屬性集,T不是候選碼第50頁/共70頁52/48解決方法——還是分解分解為兩個小關(guān)系模式(都是BCNF的)ST(學(xué)生,教師)TJ(教師,課程)或SJ(學(xué)生,課程)TJ(教師,課程)兩種分解都損失了:“一個學(xué)生選定某門課程,就對應(yīng)一個固定的教師”語義函數(shù)依賴“(學(xué)生,課程)->教師”在分解后沒有保持!四、BC范式(BCNF)第51頁/共70頁53/48事實上,關(guān)系模式即使到了BCNF,還可能存在由于非函數(shù)依賴帶來的冗余及三類異常。這些數(shù)據(jù)依賴有多值依賴和連接依賴。我們只簡單要求多值依賴。在多個實體間聯(lián)系為1對多聯(lián)系時可能出現(xiàn)多值依賴帶來的問題。四、BC范式(BCNF)第52頁/共70頁54/486.2.7多值依賴?yán)?
學(xué)校中某一門課程由多個教師講授,他們使用相同的一套參考書。 關(guān)系模式Teaching(C,T,B)
課程C、教師T和參考書B課程C教員T參考書B物理李勇王軍普通物理學(xué)
光學(xué)原理
物理習(xí)題集數(shù)學(xué)李勇張平數(shù)學(xué)分析微分方程高等代數(shù)計算數(shù)學(xué)張平周峰數(shù)學(xué)分析……………….……表6.3非規(guī)范化關(guān)系示例第53頁/共70頁55/48
Teaching∈BCNF:
Teach具有唯一候選碼(C,T,B),即全碼
Teaching模式中存在的問題
(1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書就要存儲多少次(2)插入操作復(fù)雜:當(dāng)某一課程增加一名任課教師時,該課程有多少本參照書,就必須插入多少個元組。例如物理課增加一名教師周英,需要插入3個元組:(物理,周英,普通物理學(xué));(物理,周英,光學(xué)原理);(物理,周英,物理習(xí)題集)(3)刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個元組(4)修改操作復(fù)雜:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個元組
產(chǎn)生原因:存在多值依賴表6.4Teaching(二維表表示)課程C教員T參考書B物理物理物理物理物理物理數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)
…李勇李勇李勇王軍王軍王軍李勇李勇李勇張平張平張平
…普通物理學(xué)光學(xué)原理物理習(xí)題集普通物理學(xué)光學(xué)原理物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)…6.2.7多值依賴第54頁/共70頁56/486.2.7多值依賴定義6.9
設(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)*在關(guān)系模式Teaching中,對于一個(物理,光學(xué)原理)有一組T值{李勇,王軍},這組值僅僅決定于課程C上的值(物理)。也就是說對于另一個(物理,普通物理學(xué))它對應(yīng)的一組T值仍是{李勇,王軍},盡管這時參考書B的值已經(jīng)改變了。因此T多值依賴于C,即C→→T。課程C教員T參考書B物理物理物理物理物理物理數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)
…李勇李勇李勇王軍王軍王軍李勇李勇李勇張平張平張平
…普通物理學(xué)光學(xué)原理物理習(xí)題集普通物理學(xué)光學(xué)原理物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)…第55頁/共70頁57/48形式化定義:關(guān)系模式R(U),X、Y、ZU,Z=U–X–Y,對于R(U)的任一關(guān)系r,若存在元組t1,t2,使得t1[X]=t2[X],那么就必然存在元組t3,t4(可以與t1,t2相同),使得:
t3[X]=t4[X]=t1[X]=t2[X]t3[Y]=t1[Y],t4[Y]=t2[Y]t3[Z]=t2[Z],t4[Z]=t1[Z]
則稱Y多值依賴于X,記作XY(交換t1和t2的Y值所得兩個新元組必在r中)例:
若(C#,T#,B#)滿足C#T#,含有元組
t1=(C1,T1,B1),t2=(C1,T2,B2),則也一定含有元組
t3=(C1,T1,B2),t4=(C1,T2,B1)。6.2.7多值依賴第56頁/共70頁58/48ABCa1b1c1a1b1c2a2b1c1a2b1c3CB?若使CB成立,需加入哪些元組?ABCa1b1c1a2b1c1t1t2ABCt2.At1.Bt1.Ct1.At2.Bt2.Ct3t4t3t46.2.7多值依賴ABCa2b1c1a1b1c1第57頁/共70頁59/48平凡多值依賴和非平凡的多值依賴: 若X→→Y,而Z=;則稱X→→Y是平凡的多值依賴(否則稱為非平凡的多值依賴)。多值依賴的性質(zhì):1.對稱(互補)性:若X→→Y,則X→→Z,其中Z=U-X-Y。2.傳遞性:若X→→Y,Y→→Z;則X→→Z-Y。3.函數(shù)依賴是多值依賴的特殊情況:若X→Y,則X→→Y。6.2.7多值依賴第58頁/共70頁60/48多值依賴vs函數(shù)依賴區(qū)別函數(shù)依賴規(guī)定某些元組不能出現(xiàn)在關(guān)系中,也稱為相等產(chǎn)生依賴多值依賴要求某種形式的其它元組必須在關(guān)系中,稱為元組產(chǎn)生依賴有效性范圍XY的有效性僅決定于X、Y屬性集上的值,它在任何屬性集W(XYWU)上都成立 若XY在R(U)上成立,則對于任何Y′Y,均有XY′成立6.2.7多值依賴第59頁/共70頁61/48多值依賴vs函數(shù)依賴有效性范圍XY的有效性與屬性集范圍有關(guān) *XY在屬性集W(XYWU)上成立,但在U上不一定成立 *XY在U上成立
XY在屬性集W(XYWU)上成立 *若在R(U)上,XY在屬性集W(XYWU)上成立,則稱XY為R(U)的嵌入式多值依賴 *若XY在R(U)上成立,則不能斷言對于Y′Y,是否有XY′成立6.2.7多值依賴第60頁/共70頁62/48ABCDa1b1c1d1a1b1c1d2a1b2c2d1a1b2c2d2AB在{ABC}上成立,而在{ABCD}上不成立ABC成立AB
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生處工作計劃
- 幼兒園保教工作計劃大全
- 買賣合同范文七篇
- 幼兒教育工作計劃集合七篇
- 中國卡座連接器項目投資可行性研究報告
- 棉花姑娘教案四篇
- 網(wǎng)絡(luò)對戰(zhàn)小游戲課程設(shè)計
- 產(chǎn)科護士一天的工作計劃
- 全新大一軍訓(xùn)心得筆記10篇
- 畢業(yè)生自我介紹(15篇)
- 低壓非居民用電登記表格模板
- 高速鐵路混凝土外觀質(zhì)量修補專項方案(詳細(xì)版)
- 西南交通大學(xué)年《數(shù)字信號處理》經(jīng)典例題及答案解析
- 養(yǎng)生館顧客檔案表格資料
- 海螺牌水泥質(zhì)量檢驗報告28天報告425加章2015
- 免洗手消毒凝膠生產(chǎn)工藝規(guī)程
- 乒乓球比賽第二階段對陣圖表
- 機制砂檢測報告
- 省教育廳檢查組接待方案
- 氣動潛孔錘施工方案
- 云南省教育科學(xué)規(guī)劃課題開題報告 - 云南省教育科學(xué)研究院
評論
0/150
提交評論