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

下載本文檔

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

文檔簡介

1、第 二 章 關(guān)系數(shù)據(jù)庫規(guī)范化理論 建立在關(guān)系模型基礎(chǔ)上實現(xiàn)的 數(shù)據(jù)庫系統(tǒng)稱為關(guān)系數(shù)據(jù)庫,相應的DBMS稱為關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。如何設(shè)計一個適合的關(guān)系數(shù)據(jù)庫系統(tǒng),關(guān)鍵是關(guān)系數(shù)據(jù)庫模式的設(shè)計,一個好的關(guān)系數(shù)據(jù)庫模式應該包括多少關(guān)系模式,而每一個關(guān)系模式又應該包括哪些屬性,又如何將這些相互關(guān)聯(lián)的關(guān)系模式組建一個適合的關(guān)系模型,這些工作決定了到整個系統(tǒng)運行的效率,也是系統(tǒng)成敗的關(guān)鍵所在。要設(shè)計一個好的關(guān)系數(shù)據(jù)庫,必須需要一定理論努指導。關(guān)系數(shù)據(jù)庫的規(guī)范化理論就是數(shù)據(jù)庫設(shè)計的一個理論指導。本章主要討論關(guān)系數(shù)據(jù)庫規(guī)范化理論,討論一個好的關(guān)系模式的標準,以及如何將不好的關(guān)系模式轉(zhuǎn)換成好的關(guān)系模

2、式第 二 章 關(guān)系數(shù)據(jù)庫規(guī)范化理論 2.1 規(guī)范化問題的提出2.2 函數(shù)依賴2.3 關(guān)系規(guī)范化 2.4 關(guān)系模式的分解準則2.5 小結(jié)2.1 規(guī)范化問題的提出關(guān)系數(shù)據(jù)庫的規(guī)范化理論最早是由關(guān)系數(shù)據(jù)庫的創(chuàng)始人E.F.Codd提出的,后經(jīng)許多專家學者對關(guān)系數(shù)據(jù)庫理論作了深入的研究和發(fā)展,形成了一整套有關(guān)關(guān)系數(shù)據(jù)庫設(shè)計的理論。關(guān)系數(shù)據(jù)庫的規(guī)范化理論主要包括三個方面的內(nèi)容:函數(shù)信賴范式(Normal Form)模式設(shè)計和模式分解其中,函數(shù)信賴起著核心的作用,是模式分解和模式設(shè)計的基礎(chǔ),范式是模式分解的標準。 2.1 規(guī)范化問題的提出數(shù)據(jù)庫的設(shè)計為什么要遵循一定的規(guī)范化理論?什么是好的關(guān)系模式?某些不好

3、的關(guān)系模式可能導致哪些問題? 下面通過例子進行分析:例如,設(shè)有描述學生修課及住宿情況的關(guān)系模式:S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sno表示學生學號, Sdept表示學生所在的 系,Sloc表示學生所住宿舍樓,Cno表示課程號, Grade表示成績。 2.1 規(guī)范化問題的提出Sno Sdept SLOC Cno Grade 9812101 計算機 2公寓 DB 809812101 計算機 2公寓 OS 859821101 信息 1公寓 C 909821101 信息 1公寓 DS 849821102 信息 1公寓 OS 78S-L-C關(guān)系模式實例 分析以上關(guān)系中的數(shù)據(jù)

4、,我們可以看出:(SNO,CNO)屬性的組合能唯一標識一個元組,所以(SNO,CNO)是該關(guān)系模式的主碼。3. 刪除異常 如果某個學生不再選修C課程,本應該只刪去C,但C是主關(guān)系鍵的一部分,為保證實體完整性,必須將整個元組一起刪掉,這樣有關(guān)該學生的其它信息也隨之丟失。2.1 規(guī)范化問題的提出但在進行數(shù)據(jù)庫的操作時,會出現(xiàn)以下幾方面的問題:1. 數(shù)據(jù)冗余 學生所在的系名和這個系所對應的宿舍樓名字存儲的次數(shù)等于該系的學生人數(shù)乘以每個學生選修的課程門數(shù),數(shù)據(jù)的冗余度很大,浪費了存儲空間。2. 插入異常 如果某個學生尚未選課, 則學生所在的系名和這個系所對應的宿舍樓無法插入到數(shù)據(jù)庫中。 因為在這個關(guān)系

5、模式中,(SNO,CNO)是主關(guān)系鍵。根據(jù)關(guān)系的實體完整性約束,主關(guān)系鍵的值不能為空,當某個學生尚未選課,即Cno為空, 因此不能進行插入操作。2.1 規(guī)范化問題的提出4. 更新異常 如果某一學生從計算機系轉(zhuǎn)到信息系,那么不但要修改此學生的Sdept列的值,而且還要修改其Sloc的值,稍有不慎,就有可能漏改某些記錄,這就會造成數(shù)據(jù)的不一致性,破壞了數(shù)據(jù)的完整性。由于存在以上問題,我們說,S-L-C是一個不好的關(guān)系模式。那么,怎樣才能得到一個好的關(guān)系模式呢?我們把關(guān)系模式S-L-C分解為下面三個結(jié)構(gòu)簡單的關(guān)系模式,如圖所示。Sno Sdept SLOC Cno Grade 9812101 計算機

6、 2公寓 DB 809812101 計算機 2公寓 OS 859821101 信息 1公寓 C 909821101 信息 1公寓 DS 849821102 信息 1公寓 OS 78Sno Cno Grade 9812101 DB 809812101 OS 859821101 C 909821101 DS 849821102 OS 78Sdept Sloc 計算機 2公寓 信息 1公寓 Sno Sdept 9812101 計算機 9821102 信息 2.1 規(guī)范化問題的提出S-LS-DS-C學生關(guān)系S-D(Sno, Sdept) 選課關(guān)系S-C(Sno,Cno,Grade)系關(guān)系S-L(Sde

7、pt,Sloc)2.1 規(guī)范化問題的提出在以上三個關(guān)系模式中,實現(xiàn)了信息的某種程度的分離, S-D中存儲學生基本信息,與所選課程及宿舍無關(guān); S-L中存儲系的有關(guān)信息,與學生無關(guān); S-C中存儲學生選課的信息,而與學生及系的有關(guān)信息無關(guān)。與S-L-C相比,分解為三個關(guān)系模式后,數(shù)據(jù)的冗余度明顯降低。當新插入一個系時,只要在關(guān)系S-L中添加一條記錄。當某個學生尚未選課,只要在關(guān)系S-D中添加一條學生記錄,而與選課關(guān)系無關(guān),這就避免了插入異常。 當某個學生選課后又退選,只需在S-C中刪除該學生記錄,而關(guān)系S-D中有關(guān)該學生的信息仍然保留,從而不會引起刪除異常。 同時,由于數(shù)據(jù)冗余度的降低,數(shù)據(jù)沒有

8、重復存儲,也不會引起更新異常。 2.1 規(guī)范化問題的提出經(jīng)過上述分析,我們說分解后的關(guān)系模式是一個好的關(guān)系數(shù)據(jù)庫模式。一個好的關(guān)系模式應該具備以下四個條件:盡可能少的數(shù)據(jù)冗余沒有插入異常沒有刪除異常沒有更新異常如何按照一定的規(guī)范設(shè)計關(guān)系模式,將結(jié)構(gòu)復雜的關(guān)系分解成結(jié)構(gòu)簡單的關(guān)系,從而把不好的關(guān)系數(shù)據(jù)庫模式轉(zhuǎn)變?yōu)楹玫年P(guān)系數(shù)據(jù)庫模式,這就是關(guān)系的規(guī)范化。規(guī)范化又可以根據(jù)不同的要求而分成若干級別。我們要設(shè)計的關(guān)系模式中的各屬性是相互依賴、相互制約的,這樣才構(gòu)成了一個結(jié)構(gòu)嚴謹?shù)恼w。因此在設(shè)計關(guān)模式時,必須從語義上分析這些依賴關(guān)系。2.2 函數(shù)依賴1.函數(shù)依賴的定義 函數(shù)對我們來說已經(jīng)是非常熟悉的概念

9、,對公式: Y=f(X)給定一個X值,都會有一個Y值和它對應,也可以說X函數(shù)決定Y,或Y函數(shù)依賴于X。在關(guān)系數(shù)據(jù)庫中討論函數(shù)或函數(shù)依賴注重的是語義上的關(guān)系,比如: 省=f(城市)如果“城市”是自變量X,“省”是因變量或函數(shù)值Y。并且把X決定Y,或Y函數(shù)依賴于X表示為: XY2.2 函數(shù)依賴函數(shù)依賴定義:如果有一個關(guān)系模式R(A1,A2,An),X和Y為A1,A2,An的子集,那么對于關(guān)系R中的任意一個X值,都只有一個Y值與之對應,則稱X函數(shù)決定Y,或Y函數(shù)依賴于X。 例如:對學生關(guān)系模式:Student(Sno, SName, Sdept, Sage)有:SnoSName, SnoSdept,

10、 SnoSage 對學生修課關(guān)系模式:SC(Sno, Cno, Grade)有:(Sno, Cno)Grade2.2 函數(shù)依賴2函數(shù)依賴與屬性之間的聯(lián)系類型有關(guān)(1)在一個關(guān)系模式中,如果屬性X與Y有1:1聯(lián)系時,則存在函數(shù)依賴XY,YX,即 X Y(2)如果屬性X與Y有1:m的聯(lián)系時,則只存在函數(shù)依賴XY。 例如,Sno與Sage,Sdept之間均為1:m聯(lián)系,所以有 SNOSage,SnoSdept。(3)如果屬性X與Y有m: n的聯(lián)系時,則X與Y之間不存在任何函數(shù)依賴關(guān)系。 例如,一個學生可以選修多門課程,一門課程又可以為多個學生選修,所以SNO與CNO之間不存在函數(shù)依賴關(guān)系。由于函數(shù)依

11、賴與屬性之間的聯(lián)系類型有關(guān),所以在確定屬性間的函數(shù)依賴關(guān)系時,可以從分析屬性間的聯(lián)系類型入手,便可確定屬性間的函數(shù)依賴。 例如,當學生無重名時,SNO SN2.2 函數(shù)依賴3一些術(shù)語和符號 設(shè)有關(guān)系模式R(A1,A2,An),X和Y均為A1,A2,An的子集如果XY,但Y不包含于X,則稱XY是非平凡的函數(shù)依賴。如果XY,則稱X為決定因子。fXYXYp 如果Y函數(shù)不依賴于X,則記作X Y 。如果對X的某個真子集X,有XY,則稱Y部分函數(shù)依賴于X,(或稱Y對X部分函數(shù)依賴)記作 。 如果XY,并且YX,則記作X Y。如果XY,并且對于X的一個任意真子集X/ 都有X/ Y,則稱Y完全函數(shù)依賴于X(Y

12、對X 完全函數(shù)依賴),記作2.2 函數(shù)依賴 例1:有關(guān)系模式:SC(Sno,Sname,Cno,Credit,Grade) 各屬性分別為:學號、姓名、課程號、學分、成績,主碼為(Sno, Cno)fp函數(shù)依賴關(guān)系有:SnoSname 姓名函數(shù)依賴于學號因為Sno Grade,Cno Grade, (Sno,Cno) Grade, 所以有(Sno, Cno) Grade 成績完全函數(shù)依賴于學號和課程號(Sno, Cno) Sname 姓名部分函數(shù)依賴于學號和課程號2.2 函數(shù)依賴如果XY(非平凡函數(shù)依賴,并且Y X)、YZ,則稱Z傳遞函數(shù)依賴于X(或稱Z對X傳遞函數(shù)依賴)。 例如:在關(guān)系模式:S

13、(Sno,Sname,Dept,Dept_master)中, 各屬性分別為:學號、姓名、所在系和系主任(假設(shè)一個系只有一 個主任),主碼為Sno。 傳遞函數(shù)依賴關(guān)系有: Sno Sname 由于:Sno Dept , Dept Dept_master所以有:Sno Dept_master(系主任傳遞函數(shù)依賴于學號)一.關(guān)系模式中的碼 1候選碼 設(shè)K為R (U, F)中的屬性或?qū)傩越M,若K U,則K為R候選碼。(U-表示關(guān)系R的屬性全集, F-表示關(guān)系R上的依賴函數(shù)集)主碼:關(guān)系R (U, F)中可能有多個候選碼,則選其中一個作為 主碼全碼:候選碼為整個屬性組。主屬性與非主屬性:在R (U, F

14、)中,包含在任一候選碼中的屬性稱為主屬性,不包含在任一候選碼中的屬性稱為非主屬性。 例1:SC(Sno,Cno,Grade)其候選碼為:(Sno,Cno),也為主碼則主屬性為: Sno,Cno , Grade為非主屬性。 2.3 關(guān)系規(guī)范化f 2.3 關(guān)系規(guī)范化一.關(guān)系模式中的碼 例2:R(P,W,A) 其中各屬性含義分別為: 演奏者,作品和聽眾。其語義為:一個演奏者可演奏多個作品,某一作品可被多個演奏者演奏;聽眾也可欣賞不同演奏者個不同作品。其候選碼為:(P,W,A),因為只有這三者才能確定一場音樂會。我們稱全部屬性均為主碼的表為全碼表。2外碼 定義:若R(U,F(xiàn))的屬性(組)X(X屬于U)

15、是另一個關(guān)系S的主碼,則稱X為R的外碼。 例3: 學生關(guān)系SD(Sno, Sdept)和選課關(guān)系SC(Sno,Cno,Grade),SC中的Sno是SD中的主碼,則Sno是SC的外碼 2.3 關(guān)系規(guī)范化二.范式規(guī)范化的基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不合適的部分,解決數(shù)據(jù)插入、更新、刪除時發(fā)生異?,F(xiàn)象。這就要求關(guān)系數(shù)據(jù)庫設(shè)計出來的關(guān)系模式要滿足一定的條件。我們把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同標準稱為范式(Normal Form)。由于規(guī)范化的程度不同,就產(chǎn)生了不同的范式。滿足最基本規(guī)范化要求的關(guān)系模式叫第一范式(1NF)在第一范式中進一步滿足一些要

16、求為第二范式(2NF)以此類推就產(chǎn)生了第三范式(3NF)等概念。每種范式都規(guī)定了一些限制約束條件。 2.3 關(guān)系規(guī)范化二.范式范式的概念最早由E.F.Codd提出。從1971年起,Codd相繼提出了關(guān)系的三級規(guī)范化形式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。1974年,Codd和Boyce以共同提出了一個新的范式的概念,即Boyce-Codd范式,簡稱BC范式。1976年Fagin提出了第四范式,后來又有人定義了第五范式。至此在關(guān)系數(shù)據(jù)庫規(guī)范中建立了一個范式系列:1NF,2NF,3NF,BCNF,4NF,5NF,一級比一級有更嚴格的要求。2.3 關(guān)系規(guī)范化 4NF5NF

17、BCNF3NF2NF1NF規(guī)范與非規(guī)范關(guān)系各個范式之間的聯(lián)系可以表示為: 5NF 4NF BCNF 3NF 2NF 1NF2.3 關(guān)系規(guī)范化1第一范式 第一范式(First Normal Form)是最基本的規(guī)范形式,即關(guān)系中每個屬性都是不可再分的簡單項。 定義:如果關(guān)系模式R,其所有的屬性均為簡單屬性,即每個屬性都是不可再分的,則稱R屬于第一范式,簡稱1NF,記作R1NF。 系名稱 高級職稱人數(shù)教授 副教授 計算機系 610信息管理系 35電子與通訊系 48系名稱教授 副教授 計算機系 610信息管理系 35電子與通訊系 482.3 關(guān)系規(guī)范化2第二范式 定義:如果關(guān)系模式R1NF,并且R中

18、的每個非主屬性都完全函數(shù) 依賴于主碼,則R2NF。 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)就不是2NF的。 因為(Sno,Cno)是主碼,而又有:SnoSdept, 因此有:(Sno,Cno) Sdept p即存在非主屬性對主碼的部分函數(shù)依賴,所以S-L-C不是2NF。2.3 關(guān)系規(guī)范化2第二范式 分解過程為:首先,對于組成主碼的屬性集合的每一個子集,用它作為主碼構(gòu)成一個表。S-C(Sno,Cno),S(Sno),C(Cno) fff 對于每個表,將依賴于此主碼的屬性放置到此表中。 S-L-C關(guān)系模式分解后的形式為: S-L(Sno,Sdept,Sloc)和S-C(

19、Sno, Cno,Grade) S-L有:Sno Sdept,Sno SLOC:是2NF S-C有:(Sno, Cno) Grade:是2NF2.3 關(guān)系規(guī)范化2第二范式 2NF的缺點2NF的關(guān)系模式在進行數(shù)據(jù)操作時,仍然存在著一些問題:數(shù)據(jù)冗余 每個系名和所在的宿舍樓名字存儲的次數(shù)等于該系的學生人數(shù)。插入異常 當一個新系沒有招生時,有關(guān)該系的信息無法插入。刪除異常 某系學生全部畢業(yè)而沒有招生時,刪除全部學生的記錄也隨之刪除了該系的有關(guān)信更新異常 更換系所在宿舍樓名字時,仍需改動較多的學生記錄。之所以存在這些問題,是由于在S-L表中存在著非主屬性對主碼的傳遞依賴。分析S-L表中函數(shù)依賴關(guān)系,S

20、noSdept,SdeptSloc,SnoSloc,非主屬性Sloc對主碼Sno傳遞依賴。為此,對關(guān)系模式還需進一步簡化,消除這種傳遞依賴,得到3NF。 S-L分解后的關(guān)系模式為:S-D(Sno,Sdept)和D-L(Sdept,Sloc) 對S-D,有:Sno Sdept,因此S- D是3NF的 對D-L,有:Sdept Sloc,因此D-L也是3NF的2.3 關(guān)系規(guī)范化3第三范式 定義:如果R(U,F) 2NF,并且所有非主屬性都不傳遞依賴于主碼,則 R(U,F) 3NF。 ff關(guān)系模式S-L(Sno,Sdept,Sloc)不是3NF。分解過程為: (1)對于不是候選碼的每個決定因子,從表

21、中刪去依賴于它的所有屬性; 得到S-D(Sno,Sdept) (2)新建一個表,新表中包含在原表中所有依賴于該決定因子的屬性; (3)將決定因子作為新表的主碼。新建的表:D-L(Sdept,Sloc) 2.3 關(guān)系規(guī)范化3第三范式 關(guān)系模式S-L由2NF分解為3NF后,函數(shù)依賴關(guān)系變得更加簡單,既沒有非主屬性對主碼的部分依賴,也沒有非主屬性對主碼的傳遞依賴,解決了2NF中存在的四個問題。數(shù)據(jù)冗余降低。系所在的宿舍樓名字存儲次數(shù)與該系的學生人數(shù)無關(guān),只在關(guān)系D-L中存儲一次不存在插入異常。當一個新系沒有學生時,該系的信息可以直接插入到關(guān)系D-L中,而與學生關(guān)系S-D無關(guān)不存在刪除異常。要刪除某系

22、的全部學生而仍然保留該系的有關(guān)信息時,可以只刪除學生關(guān)系S-D中的相關(guān)學生記錄,而不影響系關(guān)系D-L中的數(shù)據(jù)。不存在更新異常。更換所在的宿舍樓時,只需修改關(guān)系D-L中一個相應元組的Sloc屬性值,從而不會出現(xiàn)數(shù)據(jù)的不一致現(xiàn)象。 S-L-C規(guī)范到3NF后,所存在的異?,F(xiàn)象已經(jīng)全部消失。通常在數(shù)據(jù)庫設(shè)計中,一般要求要達到3NF。 3第三范式 但是3NF只限制了非主屬性對碼的依賴關(guān)系,而沒有限制主屬性對碼的 依賴關(guān)系。 例如:設(shè)關(guān)系模式SNC(SNO,SN,CN0,SCORE),其中SNO代表學號,SN代表學生姓名并假設(shè)沒有重名,CNO代表課程號,SCORE代表成績??梢耘卸?,SNC有兩個候選碼(S

23、NO,CNO)和(SN,CNO),其函數(shù)依賴如下: SNO SN (SNO,CNO)SCORE (SN,CNO)SCORE 如某個同學需要改名,則需要將該學生的所有記錄都要進行修改,稍有不慎,就有可能漏改某些記錄,這就會造成數(shù)據(jù)的不一致性。產(chǎn)生操作異常的原因: (SNO,CNO) SN,即存在主屬性對碼的部分函數(shù)依賴為了解決這種問題,Boyce與Codd共同提出了一個新范式的定義,這就是Boyce-Codd范式,通常簡稱BCNF或BC范式。它彌補了3NF的不足。2.3 關(guān)系規(guī)范化p 但是,因為SNO SN,即決定因素SNO或SN不包含候選碼, 從另一個角度說,存在著主屬性對碼的部分函數(shù)依賴:

24、(SNO,CNO) SN, (SN,CNO) SNO, 所以SNC不是BCNF。2.3 關(guān)系規(guī)范化4BC范式 (BCNF) 定義:若關(guān)系模式R1NF,對于關(guān)系R的每個函數(shù)依賴XY且YX, X必含有候選碼,則RBCNF。 即每個決定屬性集都包含候選碼。上面例子中唯一的非主屬性SCORE對碼不存在部分函數(shù)依賴,也不存在傳遞函數(shù)依賴。所以SNC3NF。 pp2.3 關(guān)系規(guī)范化4BC范式 (BCNF) 解決這一問題的辦法仍然是通過投影分解進一步提高SNC的范式等級,將SNC規(guī)范到BCNF。 可以將SNC分解成如下兩個關(guān)系:S1(SNO,SN),S2(SNO,CNO,SCORE) 對于S1,有兩個候選碼

25、SNO和SN,對于S2,主碼為(SNO,CNO)。在這兩個關(guān)系中,每個決定屬性集都包含候選碼(即無論主屬性還是非主屬性都不存在對碼的部分依賴和傳遞依賴),S1BCNF,S2BCNF。關(guān)系SNC轉(zhuǎn)換成BCNF后,數(shù)據(jù)冗余度明顯降低。學生的姓名只在關(guān)系S1中存儲一次,學生要改名時,只需改動一條學生記錄中的相應的SN值,從而不會發(fā)生修改異常。SNOSNS1中的函數(shù)依賴關(guān)系SNOCNOSCORES2中的函數(shù)依賴關(guān)系2.4 關(guān)系模式的分解準則關(guān)系規(guī)范化的目的:解決關(guān)系模式中存在的插入、刪除、更新操作異常,數(shù)據(jù)冗余問題.關(guān)系規(guī)范化的方法:圍繞函數(shù)依賴的主線,對一個關(guān)系模式進行分解,使關(guān)系從較低級范式變換到

26、較高級范式。(模式分解) 分解關(guān)系模式,逐步消除不合適的函數(shù)依賴1NF2NF 3NF BCNF 消除非主屬性對碼的部分函數(shù)依賴消除非主屬性對碼的傳遞函數(shù)依賴消除主屬性對碼的部分和傳遞函數(shù)依賴2.4 關(guān)系模式的分解準則模式分解的準則:模式分解具有無損連接性: 分解后的關(guān)系通過自然連接可以恢復成原來的關(guān)系,即通過自然連接得到的關(guān)系與原來的關(guān)系相比,既不多出信息、又不丟失信息。 模式分解能夠保持函數(shù)依賴: 在模式的分解過程中,函數(shù)依賴不能丟失的特性,即模式分解不能破壞原來的語義。2.4 關(guān)系模式的分解準則例:S-D-L(Sno,Dept,Loc)有函數(shù)依賴: Sno Dept, Dept Loc 不

27、是第三范式的。至少可以有三種分解方案,分別為:方案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ī)范化程度之外,還需要遵守一定的準則.三種分解方案是否都滿足分解準則呢?2.4 關(guān)系模式的分解準則假設(shè)此關(guān)系模式的數(shù)據(jù)如表2-1所示,此關(guān)系用r表示。 Sno Dept Loc S01D1 L1 S02 D2 L2 S03 D2 L2S04 D3 L1表212.4 關(guān)系模式的分解準則方案1:將S-D-L分解投影得到S-L和D-L關(guān)系Sno Loc S01L1 S02 L2 S03 L2S04 L1 Dept Loc D1 L1 D2 L2 D3 L1 S-LD-LSno Dept Loc S01D1 L1 S01D3L1S02 D2 L2 S03 D2L2S04D1 L1S04 D3L1表22結(jié)論: 方案1不滿足無損連接性自然連接2.4 關(guān)系模式的分解準則方案2: 將S-D-L分解投影得到S-D和S-L關(guān)系Sno DeptS01D1S02 D2S03 D2S04 D3 Sno Loc S01L1 S02 L2 S

溫馨提示

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

評論

0/150

提交評論