數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第4章 關(guān)系型數(shù)據(jù)庫理論_第1頁
數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第4章 關(guān)系型數(shù)據(jù)庫理論_第2頁
數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第4章 關(guān)系型數(shù)據(jù)庫理論_第3頁
數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第4章 關(guān)系型數(shù)據(jù)庫理論_第4頁
數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第4章 關(guān)系型數(shù)據(jù)庫理論_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京市優(yōu)質(zhì)本科課程教材數(shù)據(jù)庫原理及應(yīng)用教程(第5版)“十二五”普通高等教育本科國家級規(guī)劃教材國家級一流線上課程配套教材第4章關(guān)系型數(shù)據(jù)庫理論第4章關(guān)系型數(shù)據(jù)庫理論北京林業(yè)大學信息學院如何使用關(guān)系模型設(shè)計關(guān)系數(shù)據(jù)庫現(xiàn)實問題關(guān)系模式的集合每個關(guān)系屬性數(shù)據(jù)庫邏輯設(shè)計目錄北京林業(yè)大學信息學院規(guī)范化問題的提出01OPTION03OPTION候選碼及其求解算法02OPTION函數(shù)依賴最小函數(shù)依賴集04OPTION06OPTION關(guān)系模式范式及規(guī)范化05OPTION關(guān)系模式的分解小結(jié)07OPTION4.1規(guī)范化問題的提出北京林業(yè)大學信息學院本章重點了解規(guī)范化理論的研究動機及所要解決的問題及數(shù)據(jù)庫設(shè)計中的作用和多值依賴與第四范式。理解函數(shù)依賴的有關(guān)概念;第一范式、第二范式、第三范式和BC范式的定義;掌握候選鍵選取及最小依賴集求取算法關(guān)系模式規(guī)范化的方法和關(guān)系模式分解的方法。北京林業(yè)大學信息學院4.1.1關(guān)系規(guī)范化目的關(guān)系數(shù)據(jù)庫的規(guī)范化理論函數(shù)依賴范式(NormalForm)模式設(shè)計核心,是模式分解和設(shè)計的基礎(chǔ)模式分解的標準4.1規(guī)范化問題的提出北京林業(yè)大學信息學院4.1.2不合理的關(guān)系存在的異常教學管理數(shù)據(jù)庫:SCD(SNo,SN,Age,Dept,MN,CNo,Score)在此關(guān)系模式中填入一部分具體的數(shù)據(jù)SNo

SNAgeDeptMNCNoScoreS1趙亦17計算機劉偉C190S1趙亦17計算機劉偉C285S2錢爾18信息王平C557S2錢爾18信息王平C680S2錢爾18信息王平C7…4.1規(guī)范化問題的提出北京林業(yè)大學信息學院數(shù)據(jù)冗余插入異常刪除異常更新異常根本原因:屬性間存在著數(shù)據(jù)依賴關(guān)系

SNo

SNAgeDeptMNCNoScoreS1趙亦17計算機劉偉C190S1趙亦17計算機劉偉C285S2錢爾18信息王平C557S2錢爾18信息王平C680S2錢爾18信息王平C7…4.1規(guī)范化問題的提出北京林業(yè)大學信息學院一個好的關(guān)系模式應(yīng)該具備以下四個條件:(1)盡可能少的數(shù)據(jù)冗余;(2)沒有插入異常;(3)沒有刪除異常;(4)沒有更新異常。SCD(SNo,SN,Age,Dept,MN,CNo,Score)S(SNo,SN,Age,Dept)SC(SNo,CNo,Score)D(Dept,MN)關(guān)系模式分解:4.1規(guī)范化問題的提出北京林業(yè)大學信息學院用戶需求:(1)一個用戶可以發(fā)布多個短視頻,但一個短視頻只能歸屬于一個用戶;(2)一個用戶可以使用多個標簽,每個標簽可以為多個用戶使用;(3)一個短視頻可以有多個標簽,每個標簽可以為多個短視頻使用。4.1.3章節(jié)案例描述短視頻系統(tǒng)4.1規(guī)范化問題的提出4.2函數(shù)依賴4.2.1函數(shù)依賴的定義關(guān)系模式中的各屬性之間相互依賴、相互制約的聯(lián)系稱為數(shù)據(jù)依賴。函數(shù)依賴(FD,F(xiàn)unctionalDependency)是關(guān)系模式中屬性之間的一種邏輯依賴關(guān)系。函數(shù)依賴多值依賴SNo決定函數(shù)(SN,Age,Dept)(SN,Age,Dept)函數(shù)依賴于SNoSCD(SNo,SN,Age,Dept,MN,CNo,Score)SNo一個學生SN,Age,Dept北京林業(yè)大學信息學院函數(shù)依賴的形式化定義----定義4.1設(shè)關(guān)系模式R(U,F(xiàn)),U是屬性全集,F(xiàn)是U上的函數(shù)依賴所構(gòu)成的集合,X和Y是U的子集,如果對于R(U)的任意一個可能的關(guān)系r,對于X的每一個具體值,Y都唯一的具體值與之對應(yīng),則稱X決定函數(shù)Y,或Y函數(shù)依賴于X,記作X→Y。我們稱X為決定因素,Y為依賴因素。當Y不函數(shù)依賴于X時,記作:X

Y。當X→Y且Y→X時,則記作:X?Y。

U={SNo,SN,Age,Dept,MN,CNo,Score} F={SNo→SN,SNo→Age,SNo→Dept, (SNo,CNo)→Score}北京林業(yè)大學信息學院4.2函數(shù)依賴定義4.3函數(shù)依賴的邏輯蘊涵定義設(shè)F是在關(guān)系模式R(U)上成立的函數(shù)依賴集合,X,Y是屬性集U的子集,X→Y是一個函數(shù)依賴。如果從F中能夠推導出X→Y,即如果對于R的每個滿足F的關(guān)系r也滿足X→Y,則稱X→Y為F的邏輯蘊涵(或F邏輯蘊涵X→Y),記為F|=X→Y

。定義4.4設(shè)F是函數(shù)依賴集,被F邏輯蘊涵的函數(shù)依賴的全體構(gòu)成的集合,稱為函數(shù)依賴集F的閉包(Closure),記為F+。即:F+={X→Y|F|=X→Y}北京林業(yè)大學信息學院4.2函數(shù)依賴若X→Y和Y→Z在R上成立,則X→Z在R上也成立如果YXU,則X→Y在R上成立若X→Y在R上成立,且ZU,則XZ→YZ在R上也成立傳遞律(Transitivity)定理:如果X→Y是從F用Armstrong公理推理導出,那么X→Y在F+中。4.2.2函數(shù)依賴的推理規(guī)則自反律(Reflexivity)增廣律(Augmentation)北京林業(yè)大學信息學院Armstrong公理及正確性4.2函數(shù)依賴若X→Y和W→Z在R上成立,則XW→YZ在R上也成立若X→Y和ZY在R上成立,則X→Z在R上也成立若X→Y和X→Z在R上成立,則X→YZ在R上也成立合并律(Unionrule)若X→Y和YW→Z在R上成立,則XW→Z在R上也成立分解律(Decompositionrule)復(fù)合律(Composition)偽傳遞律(Pseudotransitivityrule)北京林業(yè)大學信息學院4.2.2函數(shù)依賴的推理規(guī)則Armstrong公理推論及正確性4.2函數(shù)依賴X

+={屬性A|X→A在F+中}X→Y能用函數(shù)依賴推理規(guī)則推出的充分必要條件是YX+中result=X do { ifF中有某個函數(shù)依賴Y→Z滿足Yresult thenresult=result∪Z } while(result有所改變);例子:U={XYZW},F(xiàn)={X→Y,Y→Z,W→Y},計算X+算法4.1北京林業(yè)大學信息學院定理4.34.2.2函數(shù)依賴的推理規(guī)則屬性集閉包及求解算法4.2函數(shù)依賴正確性:從函數(shù)依賴集F使用推理規(guī)則推出的函數(shù)依賴必定在F+中完備性:F+中的函數(shù)依賴都能從F集使用推理規(guī)則集推出定理4.5Armstrong函數(shù)依賴推理規(guī)則{A1,A2,A3}是完備的(1)證明F中每個函數(shù)依賴V→W在r上成立。(2)證明X→Y在關(guān)系r上不成立。 綜合(1)和(2)可知,只要X→Y不能用推理規(guī)則推出,那么F就不邏輯蘊涵X→Y,也就是推理規(guī)則是完備的。北京林業(yè)大學信息學院4.2.2函數(shù)依賴的推理規(guī)則函數(shù)依賴推理規(guī)則的完備性4.2函數(shù)依賴4.2.3函數(shù)依賴類型定義4.5

設(shè)有關(guān)系模式R(U),U是屬性全集,X和Y是U的子集:如果X→Y,并且對于X的任何一個真子集X′,都有X′Y,則稱Y對X完全函數(shù)依賴,記作X→Y。如果對X的某個真子集X′,有X′→Y,則稱Y對X部分函數(shù)依賴,記作X→Y。關(guān)系模式SCD中,因為SNoScore,且CNoScore,所以有:(SNo,CNo)→Score。而SNo→Age,所以(SNo,CNo)→Age。fp只有當決定因素是組合屬性時,討論部分函數(shù)依賴才有意義;當決定因素是單屬性時,只能是完全函數(shù)依賴。fp北京林業(yè)大學信息學院完全函數(shù)依賴與部分函數(shù)依賴4.2函數(shù)依賴定義4.6設(shè)有關(guān)系模式R(U),U是屬性全集,X,Y,Z是U的子集若X→Y,但YX,而Y→Z(YX,ZY),則稱Z對X傳遞函數(shù)依賴,記作:X→Z。如果Y→X,則XY,這時稱Z對X直接函數(shù)依賴,而不是傳遞函數(shù)依賴。北京林業(yè)大學信息學院4.2.3函數(shù)依賴類型傳遞函數(shù)依賴4.2函數(shù)依賴F={短視頻編號→用戶編號,短視頻編號→短視頻名稱,短視頻編號→標簽名稱,用戶編號→用戶名稱,用戶編號→用戶年齡}F={短視頻編號→用戶編號,短視頻編號→用戶姓名,短視頻編號→用戶年齡,短視頻編號→短視頻名稱,短視頻編號→標簽名稱}用戶發(fā)布短視頻(用戶編號,名稱,年齡,短視頻編號,短視頻名稱,標簽名稱)

關(guān)系模式F={短視頻編號→{用戶編號,用戶名稱,用戶年齡,短視頻名稱,標簽名稱}}分解后的函數(shù)依賴集F最終的函數(shù)依賴集F函數(shù)依賴集合F北京林業(yè)大學信息學院4.2.4案例的函數(shù)依賴分析4.2函數(shù)依賴4.3候選碼求解算法4.3.1候選碼的定義如果X→U在R上成立(即X→U在F+中),那么稱X是R的一個超碼。如果X→U在R上成立,但對X的任一真子集X′都有X′→U不成立(即X′→U不在F+中,或者X→U),那么稱X是R上的一個候選碼??焖偾蠼夂蜻x碼的一個充分條件對于給定的關(guān)系模式R(A1…,An)和函數(shù)依賴集F,可將其屬性分為以下四類:L類R類N類LR類北京林業(yè)大學信息學院f定理4.5對于給定的關(guān)系模式R及其函數(shù)依賴集F(1)若X(X∈R)是L類屬性,則X必為R的任一候選鍵的成員。(2)若X(X∈R)是L類屬性,且X+包含了R的全部屬性,則X必為R的惟一候選碼。(3)若X(X∈R)是R類屬性,則X不在任何候選鍵中。(4)若X(X∈R)是N類屬性,則X必為R的任一候選碼的成員。(5)若X(X∈R)是R的N類和L類屬性組成的屬性集,且X+包含了R的全部屬性,則X是R的唯一候選碼。(6)若X(X∈R)是時LR類屬性,則X可能為R的任一候選碼的成員,也可能不為R的任一候選碼的成員。設(shè)有關(guān)系模式R(A,B,C,D)與它的函數(shù)依賴集F={D→B,B→D,AD→B,AC→D},求R的所有候選碼。北京林業(yè)大學信息學院4.3.2候選碼求解算法4.3候選碼求解算法多屬性函數(shù)依賴集候選碼的求解算法(1)屬性分類(L、R、N和LR),X代表L類和N類屬性,Y代表LR類屬性。(2)若X+包含了R的全部屬性,轉(zhuǎn)(5);否則,轉(zhuǎn)(3)。(3)在Y中取一個屬性A,求(XA)+,若它包含了R的全部屬性,則轉(zhuǎn)(4);否則,調(diào)換一屬性反復(fù)進行這一過程,直到試完所有Y中的屬性。(4)如果已找出所有候選碼,則轉(zhuǎn)(5);否則在Y中依次取兩個屬性、三個屬性、…,求它們的屬性集的閉包,直到其閉包包含R的全部屬性。(5)停止,輸出結(jié)果。北京林業(yè)大學信息學院4.3候選碼求解算法4.3.3案例的候選碼分析F={SID→UID,SID→SN,SID→BN,UID→UN,UID→Age}分析用戶發(fā)布短視頻關(guān)系模式發(fā)現(xiàn),屬性SID是L類屬性,故屬性SID必為關(guān)系模式的任一候選碼的成員;求SID閉包:(SID)+=SID,UID,SN,BN,UN,Age;(SID)+包含了關(guān)系模式的全部屬性,因此,SID是用戶發(fā)布短視頻關(guān)系模式的唯一候選碼。北京林業(yè)大學信息學院4.3候選碼求解算法4.4最小函數(shù)依賴集4.4.1函數(shù)依賴覆蓋及最小函數(shù)依賴集定義4.8關(guān)系模式R(U)的兩個函數(shù)依賴集F和G,如果滿足F+=G+

,則稱F和G是等價的函數(shù)依賴集。記作:F≡G。如果F和G等價,就說F覆蓋G,或G覆蓋F。定義4.9設(shè)F是屬性集U上的函數(shù)依賴集,X→Y是F中的函數(shù)依賴。函數(shù)依賴中無關(guān)屬性、無關(guān)函數(shù)依賴的定義如下:(1)如果A∈X,且F邏輯蘊涵(F-{X→Y})∪{(X-A)→Y},則稱屬性A是X→Y左部的無關(guān)屬性。(2)如果A∈X,且(F-{X→Y})∪{X→(Y-A)}邏輯蘊涵F,則稱屬性A是X→Y右部的無關(guān)屬性。(3)如果X→Y的左右兩邊的屬性都是無關(guān)屬性,則函數(shù)依賴X→Y稱為無關(guān)函數(shù)依賴。北京林業(yè)大學信息學院定義4.10設(shè)F是屬性集U上的函數(shù)依賴集。如果Fmin是F的一個最小函數(shù)依賴集,那么Fmin應(yīng)滿足下列四個條件:(1)Fmin+=F+;(2)每個函數(shù)依賴的右邊都是單屬性;(3)Fmin中沒有冗余的函數(shù)依賴(即在Fmin中不存在這樣的函數(shù)依賴X→Y,使得Fmin與Fmin-{X→Y}等價),即減少任何一個函數(shù)依賴都將與原來的F不等價;(4)每個函數(shù)依賴的左邊沒有冗余的屬性(即Fmin中不存在這樣的函數(shù)依賴X→Y,X有真子集W使得Fmin-{X→Y}∪{W→Y}與Fmin等價),減少任何一個函數(shù)依賴左部的屬性后,都將與原來的F不等價。北京林業(yè)大學信息學院4.4最小函數(shù)依賴集算法4.3計算函數(shù)依賴集F的最小函數(shù)依賴集G(1)對F中的任一函數(shù)依賴X→Y,如果Y=Y1,Y2,…,Yk(k≥2)多于一個屬性,就用分解律,分解為X→Y1,X→Y2,…,X→Yk,替換X→Y,得到一個與F等價的函數(shù)依賴集G,G中每個函數(shù)依賴的右邊均為單屬性。(2)去掉G中各函數(shù)依賴左部多余的屬性。(3)在G中消除冗余的函數(shù)依賴。4.4.2最小函數(shù)依賴集求解4.4最小函數(shù)依賴集4.4.3案例的最小函數(shù)依賴集F={SID→UID,SID→SN,SID→BN,UID→UN,UID→Age},求Fmin(1)F中每個函數(shù)依賴的右部均為單屬性,不需處理。(2)去掉F中各函數(shù)依賴左部多余的屬性。本案例中函數(shù)依賴左部均為單屬性,不需處理。(3)去掉F中冗余的函數(shù)依賴。本案例中沒有存在冗余函數(shù)依賴。

因此最小函數(shù)依賴集Fmin={SID→UID,SID→SN,SID→BN,UID→UN,UID→Age}。北京林業(yè)大學信息學院4.4最小函數(shù)依賴集4.5關(guān)系模式的分解4.5.1模式分解定義4.11設(shè)有關(guān)系模式R(U),R1,R2,…,Rk都是R的子集(此處把關(guān)系模式看成是屬性的集合),R=R1∪R2∪…∪Rk,關(guān)系模式的集合用ρ表示,ρ={R1,R2,…,Rk}。用ρ代替R的過程稱為關(guān)系模式的分解。這里ρ稱為R的一個分解,也稱為數(shù)據(jù)庫模式。北京林業(yè)大學信息學院泛關(guān)系模式數(shù)據(jù)庫模式Rrρ={R1,R2,…,Rk}σ=<r1,r2,…,rk>數(shù)據(jù)庫實例泛關(guān)系模式分解示意圖衡量關(guān)系模式的分解是否可取分解是否具有無損連接分解是否保持了函數(shù)依賴北京林業(yè)大學信息學院4.5關(guān)系模式的分解4.5.2無損連接分解及測試方法定義4.12設(shè)有關(guān)系模式R,F(xiàn)是R上的函數(shù)依賴集,ρ={R1,R2,…,Rk}。如果對R中滿足F的每一個關(guān)系r,有r=ΠR1(r)∞ΠR2(r)∞…∞ΠRk(r),那么就稱分解ρ相對于F是“無損連接分解”;否則稱為“損失分解”。定理4.6設(shè)ρ={R1,R2,…,Rk}是關(guān)系模式R的一個分解,r是R的任一關(guān)系,ri=ΠRi(r)(1≤i≤k),那么有下列性質(zhì): (1)rmρ(r); (2)若s=mρ(r),則ΠRi(s)=ri; (3)mρ(mρ(r))=mρ(r),這個性質(zhì)稱為冪等性。北京林業(yè)大學信息學院4.5關(guān)系模式的分解無損連接分解的測試算法(1)構(gòu)造一個k行n列的表格Rρ,表中每一列對應(yīng)一個屬性Aj(1≤j≤n),每一行對應(yīng)一個模式Ri(1≤i≤k)。如果Aj在Ri中,則在表中的第i行第j列處填上符號aj,否則填上bij。(2)把表格看成模式R的一個關(guān)系,根據(jù)F中的每個函數(shù)依賴,修改表中元素的符號,其方法如下?!中的某個函數(shù)依賴X→Y,在表中尋找X分量上相等的行,把這些行的Y分量也都改成一致。具體做法是分別對Y分量上的每一列做修改。·如果列中有一個是aj,那么這一列上(X相同的行)的元素都改成aj;·如果列中沒有aj,那么這一列上(X相同的行)的元素都改成bij(下標ij取i最小的那個)?!中所有的函數(shù)依賴,反復(fù)地執(zhí)行上述的修改操作,一直到表格不能再修改為止(這個過程稱為“追蹤”過程)。(3)若修改到最后,表中有一行全為a,即a1a2…an,那么稱ρ相對于F是無損連接分解。北京林業(yè)大學信息學院4.5關(guān)系模式的分解ABCDABa1a2b13b14BCb21a2a3b24CDb31b32a3a4B→A

a1C→D

a4修改后的表格中的第二行為a1a2a3a4,因此,ρ相對于F是無損連接分解。[例4-11]設(shè)有關(guān)系模式R(A,B,C,D),R分解成ρ={AB,BC,CD},如果R上成立的函數(shù)依賴集F={B→A,C→D},那么ρ相對于F是否為無損連接分解?北京林業(yè)大學信息學院4.5關(guān)系模式的分解4.5.3保持函數(shù)依賴的分解及測試方法定義4.13設(shè)有關(guān)系模式R(U),F(xiàn)是R(U)上的函數(shù)依賴集,Z是屬性集U上的一個子集,ρ={R1,R2,…,Rk}是R的一個分解。F在Z上的一個投影用ΠZ(F)表示:ΠZ(F)={X→Y|X→Y∈F+∧XYZ};F在Ri上的一個投影用ΠRi(F)表示:=ΠR1(r)∪ΠR2(r)∪…∪ΠRk(r);如果有F+=()+,則稱ρ是保持函數(shù)依賴集F的分解。一個無損連接分解不一定是保持函數(shù)依賴的一個保持函數(shù)依賴的分解也不一定是無損連接的北京林業(yè)大學信息學院4.5關(guān)系模式的分解4.6關(guān)系模式范式及規(guī)范化各種范式之間的關(guān)系北京林業(yè)大學信息學院

規(guī)范化的目的就是使結(jié)構(gòu)合理,消除存儲異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和更新。規(guī)范化的基本原則就是遵循“一事一地”的原則。一個低一級范式的關(guān)系模式,通過模式分解轉(zhuǎn)化為若干個高一級范式的關(guān)系模式的集合,這種分解過程叫作關(guān)系模式的規(guī)范化。北京林業(yè)大學信息學院4.6.1關(guān)系模式規(guī)范化的目的和原則4.6關(guān)系模式范式及規(guī)范化4.6.2第一范式的定義及規(guī)范化方法定義4.14如果關(guān)系模式R所有的屬性均為原子屬性,即每個屬性都是不可再分的,則稱R屬于第一范式,簡稱1NF,記作R∈1NF。1NF是關(guān)系模式應(yīng)具備的最起碼的條件。第一范式可能具有大量的數(shù)據(jù)冗余,存在插入異常、刪除異常和更新異常等弊端。如關(guān)系模式SCD屬于1NF,它既存在完全函數(shù)依賴,又存在部分函數(shù)依賴和傳遞函數(shù)依賴??朔@些弊端的方法是用投影運算將關(guān)系分解,去掉過于復(fù)雜的函數(shù)依賴關(guān)系,向更高一級的范式進行轉(zhuǎn)換。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化4.6.3第二范式的定義及規(guī)范化方法第二范式的定義如果關(guān)系模式R∈1NF,且每個非主屬性都完全函數(shù)依賴于R的主碼,則稱R屬于第二范式,簡稱2NF,記作R∈2NF。如:關(guān)系模式TCS(T,C,S)主碼→(T,C,S);主屬性→

T、C、S不存在非主屬性對主碼的部分函數(shù)依賴,因此TCS∈2NF。從1NF關(guān)系中消除非主屬性對主碼的部分函數(shù)依賴,則可得到2NF關(guān)系如果R的主碼為單屬性,或R的全體屬性均為主屬性,則R∈2NF北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化2NF規(guī)范化2NF規(guī)范化是指把1NF關(guān)系模式通過投影分解,轉(zhuǎn)換成2NF關(guān)系模式的集合。[例4-15]將SCD(SNo,SN,Age,Dept,MN,CNo,Score)規(guī)范為2NF。學生SD(SNo,SN,Age,Dept,MN)學生與課程聯(lián)系SC(SNo,CNo,Score)SCD非主屬性對主鍵完全函數(shù)依賴。因此,SD∈2NF,SC∈2NF。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化2NF的缺點數(shù)據(jù)冗余插入異常刪除異常更新異常每個系名和系主任的名字存儲的次數(shù)等于該系的學生人數(shù)當一個新系沒有招生時,有關(guān)該系的信息無法插入某系學生全部畢業(yè)而沒有招生時,刪除全部學生的記錄也隨之刪除了該系的有關(guān)信息更換系主任時,仍需改動較多的學生記錄北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化4.6.4第三范式的定義及規(guī)范化方法3NF的定義如果關(guān)系模式R∈2NF,且每個非主屬性都不傳遞函數(shù)依賴于R的主碼,則稱R屬于第三范式,簡稱3NF,記作R∈3NF。如:SC(SNo,CNo,Score)函數(shù)依賴為(SNo,CNo)→Score,非主屬性Score不傳遞函數(shù)依賴于主碼(SNo,CNo),因此,SC∈3NF。又如:SD(SNo,SN,Age,Dept,MN)SNo→Dep和Dept→MNSNo→MN

非主屬性MN與主碼SNo間存在著傳遞函數(shù)依賴,所以SD3NF。北京林業(yè)大學信息學院t4.6關(guān)系模式范式及規(guī)范化3NF的規(guī)范化算法4.6把一個關(guān)系模式分解為3NF,使它具有保持函數(shù)依賴性。(1)如果Fmin中有一函數(shù)依賴X→A,且XA=R,則輸出ρ={R},轉(zhuǎn)(4)。(2)如果R中某些屬性與Fmin中所有依賴的左部和右部都無關(guān),則將它們構(gòu)成關(guān)系模式,從R中將它們分出去,單獨構(gòu)成一個模式。(3)對于Fmin中的每一個函數(shù)依賴X→A,都單獨構(gòu)成一個關(guān)系子模式XA。若Fmin中有X→A1,X→A2,…,X→An,則可以用模式XA1A2…An取代n個模式XA1,XA2,…,XAn。(4)停止分解,輸出ρ。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化算法4.7把一個關(guān)系模式分解為3NF,使它既具有無損連接性又具有保持函數(shù)依賴性。(1)根據(jù)算法4.6求出保持函數(shù)依賴的分解:ρ={R1,R2,…,Rk}。(2)判定ρ是否具有無損連接性,若是,轉(zhuǎn)(4)。(3)令ρ=ρ∪{X}={R1,R2,…,Rk,X},其中X是R的候選碼。(4)輸出ρ。[例4-18]將SD(SNo,SN,Age,Dept,MN)規(guī)范到3NF。(1)根據(jù)算法4.6求出保持函數(shù)依賴的分解:ρ={S(SNo,SN,Age,Dept),D(Dept,MN)}。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化SNoSNAgeDeptMNS(SNo,SN,Age,Dept)a1a2a3a4b15D(Dept,MN)b21b22b23a4a5Dept→MNa5a1a2a3a4a5

,ρ相對于F是無損連接分解數(shù)據(jù)冗余降低了不存在刪除異常不存在更新異常不存在插入異常(2)判定ρ是否具有無損連接性SD分解為ρ={S(SNo,SN,Age,Dept),D(Dept,MN)}時,S、D都屬于3NF,且既具有無損連接性又具有保持函數(shù)依賴性。3NF解決了2NF中存在的四個問題:4.6關(guān)系模式范式及規(guī)范化4.6.5BC范式的定義及規(guī)范化方法BC范式的定義如果關(guān)系模式R∈1NF,且所有的函數(shù)依賴X→Y(Y?X),決定因素X都包含了R的一個候選碼,則稱R屬于BC范式,記作R∈BCNF。BCNF具有如下性質(zhì):如果R∈BCNF,則R也是3NF。如果R∈3NF,則R不一定是BCNF。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化[例4-19]設(shè)有關(guān)系模式SNC(SNo,SN,CNo,Score)SNoSN。存在著主屬性對主碼的部分函數(shù)依賴:(SNo,CNo)SN,(SN,CNo)SNo,所以SNC不是BCNF。無部分函數(shù)依賴和傳遞函數(shù)依賴,SNC∈3NF北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化F={SNo→SN,SN→SNo,(SNo,CNo)→Score,(SN,CNo)→Score}BC范式的規(guī)范化方法算法4.8把一個關(guān)系模式分解為BCNF(1)令ρ={R}。(2)如果ρ中所有模式都是BCNF,則轉(zhuǎn)(4)。(3)如果ρ中有一個關(guān)系模式S不是BCNF,則S中必能找到一個函數(shù)依賴X→A且X不是S的候選碼,且A不屬于X,設(shè)S1=XA,S2=S-(A-X),用分解{S1,S2}代替S,轉(zhuǎn)(2)。(4)分解結(jié)束,輸出ρ。[例4-20]將SNC(SNo,SN,CNo,Score)規(guī)范到BCNF。候選鍵:(SNo,CNo)和(SN,CNo)函數(shù)依賴:4.6關(guān)系模式范式及規(guī)范化(1)令ρ={SNC(SNo,SN,CNo,Score)}。(2)經(jīng)過前面分析可知,ρ中關(guān)系模式不屬于BCNF。(3)用分解{S1(SNo,SN),S2(SNo,CNo,Score)}代替SNC。(4)分解結(jié)果為:S1(SNo,SN)描述學生實體;S2(SNo,CNo,Score)描述學生與課程的聯(lián)系。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化消除了函數(shù)依賴(S,T)C,ST∈BCNF,TC∈BCNF[例4-21]設(shè)有關(guān)系模式TCS(T,C,S)候選碼:(S,C)和(S,T)函數(shù)依賴是:F={(S,C)→T,(S,T)→C,T→C}分解{TC(T,C),ST(S,T)}代替TCS北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化4.6.6其他范式的定義及規(guī)范化方法課程C教師T參考書B數(shù)據(jù)庫原理數(shù)據(jù)結(jié)構(gòu)吳勝利陳晨王平張京生數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫系統(tǒng)SQLServer2000算法與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)教程

關(guān)系CTB多值依賴的定義假設(shè)學校中一門課程可由多名教師講授,教學中他們使用相同的一套參考書。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化數(shù)據(jù)冗余大插入異常刪除異常

課程C教師T參考書B數(shù)據(jù)庫原理數(shù)據(jù)庫原理數(shù)據(jù)庫原理數(shù)據(jù)庫原理數(shù)據(jù)庫原理數(shù)據(jù)庫原理數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)吳勝利吳勝利吳勝利陳晨陳晨陳晨王平王平張京生張京生數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫系統(tǒng)SQLServer2000數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫系統(tǒng)SQLServer2000算法與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)教程算法與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)教程C與T間的聯(lián)系被稱為多值依賴-多個T對應(yīng)一個C-一個確定的C值,與其所對應(yīng)的一組T值與B值無關(guān)北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化定義4.18設(shè)有關(guān)系模式R(U),U是屬性全集,X、Y、Z是屬性集U的子集,且Z=U-X-Y如果對于R的任一關(guān)系,對于X的一個確定值,存在Y的一組值與之對應(yīng),且Y的這組值僅僅決定于X的值而與Z值無關(guān),此時稱Y多值依賴于X,或X多值決定Y,記作X→→Y。若X→→Y且Z=U-X-Y≠Φ,則稱X→→Y是非平凡的多值依賴,否則稱為平凡的多值依賴。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化多值依賴與函數(shù)依賴間的區(qū)別(1)在關(guān)系模式R中,函數(shù)依賴X→Y的有效性僅僅取決于X,Y這兩個屬性集,不涉及第三個屬性集,而在多值依賴中,X→→Y在屬性集U(U=X+Y+Z)上是否成立,不僅要檢查屬性集X,Y上的值,而且要檢查屬性集U的其余屬性Z上的值。(2)如果在關(guān)系模式R上存在函數(shù)依賴X→Y,則任何Y′Y均有X→Y′成立,而多值依賴X→→Y在R上成立,但不能斷言對于任何Y′Y有X→→Y′成立。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化多值依賴公理及其推論(1)多值依賴公理①增廣律:如果X→→Y,VWU,則WX→→VY。②傳遞律:如果X→→Y,Y→→Z,則X→→Z?Y。③補余律:如果X→→Y,則X→→U?X?Y。(2)函數(shù)依賴公理與多值依賴混合公理①復(fù)制規(guī)則:從FD導出MVD,如果X→Y,則X→→Y。②接合規(guī)則:從MVD導出FD,如果X→→Y,ZY,且存在WU有W∩Y=,W→Z,則X→Z。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化(3)多值依賴推論①合并律:如果X→→Y,X→→Z,則X→→YZ。②偽傳遞律:如果X→→Y,WY→→Z,則XW→→(Z?W?Y)。③分解律:如果X→→Y,X→→Z,則X→→(Y∩Z),X→→(Y?Z),X→→(Z?Y)。這說明,如果兩個相交的屬性子集均多值依賴于另一個屬性子集,則這兩個屬性子集因相交而分割成的三部分也都多值依賴于該屬性子集。④混合偽傳遞律:如果X→→Y,XY→→Z,則X→→(Z?Y)。北京林業(yè)大學信息學院4.6關(guān)系模式范式及規(guī)范化一個BCNF的關(guān)系模式不一定是4NF4NF的關(guān)系模式必定是BCNF的關(guān)系模式4NF是BCNF的推廣第四范式(4NF)的定義定義4.19設(shè)有一關(guān)系模式R(U),U是其屬性全集,X、Y是U的子集,D是R上的數(shù)據(jù)依賴集。如果對于任一多值依賴X→→Y,此多值依賴是平凡的,或者X包含了R的一個候選碼,則稱R是第四范式的關(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論