第7章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第1頁
第7章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第2頁
第7章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第3頁
第7章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第4頁
第7章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第7章關(guān)系數(shù)據(jù)庫規(guī)范化理論,7.1函數(shù)依賴7.2關(guān)系規(guī)范化7.3關(guān)系模式的分解準(zhǔn)則,7.1函數(shù)依賴,定義:如果有一個關(guān)系模式R(A1,A2,An),X和Y為A1,A2,An的子集,那么對于關(guān)系R中的任意一個X值,都只有一個Y值與之對應(yīng),則稱X函數(shù)決定Y,或Y函數(shù)依賴于X。例:Student(Sno,SName,Sdept,Sage)SnoSName,SnoSdept,SnoSage例:SC(Sno,Cno,Grade)(Sno,Cno)Grade,一些術(shù)語和符號,1.如果XY,但Y不包含于X,則稱XY是非平凡的函數(shù)依賴。如不作特別說明,我們總是討論非平凡函數(shù)依賴。2.如果Y不函數(shù)依賴于X,則記

2、作X/Y。3.如果XY,則稱X為決定因子。4.如果XY,并且YX,則記作XY。,一些術(shù)語和符號,5.如果XY,并且對于X的一個任意真子集X都有X/Y,則稱Y完全函數(shù)依賴于X,記作:,6.如果XY(非平凡函數(shù)依賴,并且Y/X)、YZ,則稱Z傳遞函數(shù)依賴于X。,如果XY成立,則稱Y部分函數(shù)依賴于X,記作:,示例,例1:有關(guān)系模式:SC(Sno,Sname,Cno,Credit,Grade)則函數(shù)依賴關(guān)系有:SnoSname(Sno,Cno)Sname(Sno,Cno)Grade,示例,例2:有關(guān)系模式:S(Sno,Sname,Dept,Dept_master)函數(shù)依賴關(guān)系有:Sno,由于:SnoD

3、ept,DeptDept_master所以有:SnoDept_master,Sname,為什么要討論函數(shù)依賴,存在問題,數(shù)據(jù)冗余問題數(shù)據(jù)更新問題數(shù)據(jù)插入問題數(shù)據(jù)刪除問題,7.2關(guān)系規(guī)范化,7.2.1關(guān)系模式中的碼7.2.2范式,7.2.1關(guān)系模式中的碼,1候選碼:設(shè)K為R(U,F)中的屬性或?qū)傩越M,若KfU,則K為R候選碼。(K為決定R全部屬性值的最小屬性組)。主碼:關(guān)系R(U,F)中可能有多個候選碼,則選其中一個作為主碼。全碼:候選碼為整個屬性組。主屬性與非主屬性:在R(U,F)中,包含在任一候選碼中的屬性稱為主屬性,不包含在任一候選碼中的屬性稱為非主屬性,示例,例:SC(SNO,CNO,G

4、rade)候選碼:(SNO,CNO),也為主碼主屬性:SNO,CNO,非主屬性:Grade例:R(P,W,A),P演奏者,W作品,A聽眾語義:一個演奏者可演奏多個作品,某一作品可被多個演奏者演奏;聽眾也可欣賞不同演奏者個不同作品。候選碼:(P,W,A)全碼(演奏者、作品、聽眾一場音樂會),7.2.1關(guān)系模式中的碼(續(xù)),外碼:用于關(guān)系表之間建立關(guān)聯(lián)的屬性(組)。定義:若R(U,F(xiàn))的屬性(組)X(X屬于U)是另一個關(guān)系S的主碼,則稱X為R的外碼。,7.2.2范式,關(guān)系數(shù)據(jù)庫中的關(guān)系要滿足一定的要求,滿足不同程度要求的為不不同的范式。,第一范式,第一范式:不包含重復(fù)組的關(guān)系。,第二范式,2.第二

5、范式:如果R(U,F)1NF,并且R中的每個非主屬性都完全函數(shù)依賴于主碼,則R(U,F)2NF例:S-L-C(Sno,Sdept,SLOC,Cno,Grade)有:SnoPSLOC,不是2NF。,分解辦法,首先,對于組成主碼的屬性集合的每一個子集,用它作為主碼構(gòu)成一個表。然后,將依賴于這些主碼的屬性放置到相應(yīng)的表中。最后,去掉只由主碼的子集構(gòu)成的表。,分解示例,對于S-L-C表,首先分解為如下形式的三張表:S-L(Sno,)C(Cno,)S-C(Sno,Cno,)然后,將依賴于這些主碼的屬性放置到相應(yīng)的表中S-L(Sno,Sdept,Sloc)C(Cno)S-C(Sno,Cno,Grade)最

6、后,去掉只由主碼的子集構(gòu)成的表,最終分解為:S-L(Sno,Sdept,Sloc)S-C(Sno,Cno,Grade),S-L(Sno,Sdept,Sloc)存在問題,數(shù)據(jù)冗余:有多少個學(xué)生就有多少個重復(fù)的Sdept和SLOC;插入異常:當(dāng)新建一個系時,若還沒有招收學(xué)生,則無法插入;,第三范式,定義:如果R(U,F)2NF,并且所有非主屬性都不傳遞依賴于主碼,則R(U,F)3NF。對S-L(Sno,Sdept,SLOC)Sno傳遞SLOC,不是3NF,分解過程,(1)對于不是候選碼的每個決定因子,從表中刪去依賴于它的所有屬性;(2)新建一個表,新表中包含在原表中所有依賴于該決定因子的屬性;(3

7、)將決定因子作為新表的主碼。S-L分解后的關(guān)系模式為:S-D(Sno,Sdept)S-L(Sdept,Sloc),BCNF,例:關(guān)系模式:CSZ(City,Street,Zip)語義:城市和街道可以決定郵政編碼,郵政編碼可以決定城市。候選碼:(City,Street),(Street,Zip)F:(City,Street)Zip,ZipCity是3NF存在的問題:插入異常,刪除異常,BCNF(續(xù)),R1NF,且能決定其它屬性取值的屬性(組)必定包含碼,則其是BCNF如果一個關(guān)系的每個決定因素都是候選碼,則其是BCNF如果一個關(guān)系的每個函數(shù)依賴的左部都是候選碼,則其是BCNF如果R3NF,并且不

8、存在主屬性對非主屬性的函數(shù)依賴,則其是BCNF,BCNF和3NF的關(guān)系,若RBCNF,則R3NF若R3NF,則R不一定屬于BCNF,規(guī)范化舉例,設(shè)有關(guān)系模式:Student(學(xué)號,姓名,導(dǎo)師號,導(dǎo)師名,課程號,課程說明,成績)語義:一名學(xué)生只有一個導(dǎo)師,學(xué)生可選多門課。將其規(guī)范化成3NF的。,1此表是1NF,其函數(shù)依賴為:學(xué)號p姓名,學(xué)號p導(dǎo)師號,學(xué)號p導(dǎo)師名,課程號p課程說明,(學(xué)號,課程號)成績主碼為(學(xué)號,課程號)存在部分函數(shù)依賴關(guān)系,不是2NF,首先將其分解為2NF。,學(xué)生(學(xué)號,姓名,導(dǎo)師號,導(dǎo)師名),課程(課程號,課程說明),成績(學(xué)號,課程號,成績)均為2NF,2判是否為3NF“

9、學(xué)生”表不是3NF,其函數(shù)依賴為:學(xué)號姓名,學(xué)號導(dǎo)師號,導(dǎo)師號p導(dǎo)師名,學(xué)號傳遞導(dǎo)師名消除依賴于決定者的屬性,把它們放在一個單獨的表中,得到:學(xué)生(學(xué)號,姓名,導(dǎo)師號),導(dǎo)師(導(dǎo)師號,導(dǎo)師名),7.3關(guān)系模式的分解準(zhǔn)則,模式分解要滿足:模式分解具有無損連接性;模式分解能夠保持函數(shù)依賴。無損連接是指分解后的關(guān)系通過自然連接可以恢復(fù)成原來的關(guān)系,即通過自然連接得到的關(guān)系與原來的關(guān)系相比,既不多出信息、又不丟失信息。保持函數(shù)依賴分解是指在模式的分解過程中,函數(shù)依賴不能丟失的特性,即模式分解不能破壞原來的語義。,關(guān)系模式的分解準(zhǔn)則(續(xù)),例:S-D-L(Sno,Dept,Loc)有函數(shù)依賴:SnoDe

10、pt,DeptLoc不是第三范式的。至少可以有三種分解方案,分別為:方案1:S-L(Sno,Loc),D-L(Dept,Loc)方案2:S-D(Sno,Dept),S-L(Sno,Loc)方案3:S-D(Sno,Dept),D-L(Dept,Loc)這三種分解方案得到的關(guān)系模式都是第三范式的,那么如何比較這三種方案的好壞呢?由此在將一個關(guān)系模式分解為多個關(guān)系模式時除了提高規(guī)范化程度之外,還需要考慮其他的一些因素。,關(guān)系模式的分解準(zhǔn)則(續(xù)),將一個關(guān)系模式R分解為若干個關(guān)系模式R1,R2,Rn,意味著將存儲在一張二維表r中的數(shù)據(jù)分散到了若干個二維表r1,r2,rn中。這樣的分解應(yīng)該不丟失信息,即

11、能通過對關(guān)系r1,r2,rn的自然連接運算重新得到關(guān)系r中的所有信息。事實上,將關(guān)系r投影為r1,r2,rn時不會丟失信息,關(guān)鍵是對r1,r2,rn做自然連接時可能產(chǎn)生一些r中原來沒有的元組,從而無法區(qū)別哪些元組是r中原來有的,即數(shù)據(jù)庫中應(yīng)該存在的數(shù)據(jù),哪些是不應(yīng)該有的。在這個意義上就丟失了信息。,關(guān)系模式的分解準(zhǔn)則(續(xù)),這三種分解方案是否都滿足分解要求呢?假設(shè)此關(guān)系模式的數(shù)據(jù)如表所示,此關(guān)系用r表示。,關(guān)系模式的分解準(zhǔn)則(續(xù)),若按方案1將S-D-L投影到S-L和D-L的屬性上,得到如左邊兩個表所示的關(guān)系。做自然連接得到結(jié)果如右表所示。,關(guān)系模式的分解準(zhǔn)則(續(xù)),無損連接性將關(guān)系模式R分解為個關(guān)系模式R1,R2,Rn,若對于R中的任何一個可能的r,都有rr1*r2*rn,即r在R1,R2,Rn上的投影的自然連接等于r,則稱關(guān)系模式R的這個分解具有無損連接性。,關(guān)系模式的分解準(zhǔn)則(續(xù)),再分析方案2。將S-D-L投影到S-D,S-L的屬性上,得到的關(guān)系如左邊兩個表所示。做自然連接得到的關(guān)系右表所示。,關(guān)系模式的分解準(zhǔn)則(續(xù)),方案2自然連接后恢復(fù)成了原來的關(guān)系,因此,分解方案2具有無損連接性。但分解方案2沒有保持原有的函數(shù)依賴關(guān)系,也不是好的分解方法。,關(guān)系模式的分解

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論