第5章DataBase_第1頁
第5章DataBase_第2頁
第5章DataBase_第3頁
第5章DataBase_第4頁
第5章DataBase_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、An Introduction to Database System數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論An Introduction to Database System第五章第五章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論An Introduction to Database System第五章第五章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論5.1 問題的提出5.2 規(guī)范化5.3 數(shù)據(jù)依賴的公理系統(tǒng)*5.4 模式的分解5.5 小結(jié)An Introduction to Database System5.1 問題的提出問題的提出關(guān)系數(shù)據(jù)庫邏輯設(shè)計n針對具體問題,如何構(gòu)造一個適合于它的數(shù)據(jù)模式n數(shù)據(jù)庫邏輯設(shè)計的工具關(guān)系數(shù)據(jù)庫的規(guī)范化理

2、論An Introduction to Database System問題的提出問題的提出一、概念回顧二、關(guān)系模式的形式化定義三、什么是數(shù)據(jù)依賴四、關(guān)系模式的簡化定義五、數(shù)據(jù)依賴對關(guān)系模式影響An Introduction to Database System一、概念回顧一、概念回顧n關(guān)系:描述實體、屬性、實體間的聯(lián)系。n從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個子集。n關(guān)系模式:用來定義關(guān)系。n關(guān)系數(shù)據(jù)庫:基于關(guān)系模型的數(shù)據(jù)庫,利用關(guān)系來描述現(xiàn)實世界。n從形式上看,它由一組關(guān)系組成。n關(guān)系數(shù)據(jù)庫的模式:定義這組關(guān)系的關(guān)系模式的全體。An Introduction to Data

3、base System二、關(guān)系模式的形式化定義二、關(guān)系模式的形式化定義關(guān)系模式由五部分組成,即它是一個五元組: R(U, D, DOM, F)R: 關(guān)系名U: 組成該關(guān)系的屬性名集合D: 屬性組U中屬性所來自的域DOM:屬性向域的映象集合F: 屬性間數(shù)據(jù)的依賴關(guān)系集合An Introduction to Database System三、什么是數(shù)據(jù)依賴三、什么是數(shù)據(jù)依賴1. 完整性約束的表現(xiàn)形式n限定屬性取值范圍:例如學(xué)生成績必須在0-100之間n定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設(shè)計的關(guān)鍵An Introduction to Database S

4、ystem什么是數(shù)據(jù)依賴(續(xù))什么是數(shù)據(jù)依賴(續(xù))2. 數(shù)據(jù)依賴n是通過一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系n是現(xiàn)實世界屬性間相互聯(lián)系的抽象n是數(shù)據(jù)內(nèi)在的性質(zhì)n是語義的體現(xiàn)An Introduction to Database System什么是數(shù)據(jù)依賴(續(xù))什么是數(shù)據(jù)依賴(續(xù))3. 數(shù)據(jù)依賴的類型n函數(shù)依賴(Functional Dependency,簡記為FD)n多值依賴(Multivalued Dependency,簡記為MVD)n其他An Introduction to Database System四、關(guān)系模式的簡化表示四、關(guān)系模式的簡化表示關(guān)系模式R(U, D,

5、DOM, F) 簡化為一個三元組: R(U, F)當(dāng)且僅當(dāng)U上的一個關(guān)系r 滿足F時,r稱為關(guān)系模式 R(U, F)的一個關(guān)系A(chǔ)n Introduction to Database System五、五、數(shù)據(jù)依賴對關(guān)系模式的影響數(shù)據(jù)依賴對關(guān)系模式的影響例:描述學(xué)校的數(shù)據(jù)庫:學(xué)生的學(xué)號(Sno)、所在系(Sdept)系主任姓名(Mname)、課程名(Cname)成績(Grade)單一的關(guān)系模式 : Student U Sno, Sdept, Mname, Cname, Grade An Introduction to Database System數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對關(guān)系模式的

6、影響(續(xù))學(xué)校數(shù)據(jù)庫的語義: 一個系有若干學(xué)生, 一個學(xué)生只屬于一個系; 一個系只有一名主任; 一個學(xué)生可以選修多門課程, 每門課程有若干學(xué)生選修; 每個學(xué)生所學(xué)的每門課程都有一個成績。 An Introduction to Database System數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))屬性組U上的一組函數(shù)依賴F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade SnoCnameSdeptMnameGradeAn Introduction to Database System關(guān)系模式關(guān)系模式Student中存在的問題中存在的

7、問題 數(shù)據(jù)冗余太大n浪費大量的存儲空間 例:每一個系主任的姓名重復(fù)出現(xiàn) 更新異常(Update Anomalies)n數(shù)據(jù)冗余 ,更新數(shù)據(jù)時,維護數(shù)據(jù)完整性代價大。例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個元組An Introduction to Database System關(guān)系模式關(guān)系模式Student中存在的問題中存在的問題 插入異常(Insertion Anomalies)n該插的數(shù)據(jù)插不進去 例,如果一個系剛成立,尚無學(xué)生,我們就無法把這個系及其系主任的信息存入數(shù)據(jù)庫。 刪除異常(Deletion Anomalies)n不該刪除的數(shù)據(jù)不得不刪例,如果某個系的學(xué)生全部畢業(yè)

8、了, 我們在刪除該系學(xué)生信息的同時,把這個系及其系主任的信息也丟掉了。An Introduction to Database System數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))結(jié)論:Student關(guān)系模式不是一個好的模式?!昂谩钡哪J剑翰粫l(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些數(shù)據(jù)依賴引起的解決方法:通過分解關(guān)系模式來消除其中不合適 的數(shù)據(jù)依賴。An Introduction to Database System5.2 規(guī)范化規(guī)范化 規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異

9、常、更新異常和數(shù)據(jù)冗余問題。An Introduction to Database System5.2.1 函數(shù)依賴函數(shù)依賴一、函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴四、傳遞函數(shù)依賴An Introduction to Database System一、函數(shù)依賴一、函數(shù)依賴定義5.1 設(shè)R(U)是一個屬性集U上的關(guān)系模式,X和Y是U的子集。 若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等, 而在Y上的屬性值不等, 則稱 “X函數(shù)確定Y” 或 “Y函數(shù)依賴于X”,記作XY。 X稱為這個函數(shù)依賴的決定屬性集(Determinant)。

10、 Y=f(x)An Introduction to Database System說明:說明: 1. 函數(shù)依賴不是指關(guān)系模式R的某個或某些關(guān)系實例滿足的約束條件,而是指R的所有關(guān)系實例均要滿足的約束條件。2. 函數(shù)依賴是語義范疇的概念。只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。 例如“姓名年齡”這個函數(shù)依賴只有在不允許有同名人的條件下成立3. 數(shù)據(jù)庫設(shè)計者可以對現(xiàn)實世界作強制的規(guī)定。例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴“姓名年齡”成立。所插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在, 則拒絕裝入該元組。An Introduction to Database System函數(shù)依賴(續(xù))函數(shù)依賴(續(xù)

11、)例: Student(Sno, Sname, Ssex, Sage, Sdept) 假設(shè)不允許重名,則有:Sno Ssex, Sno Sage , Sno Sdept, Sno Sname, Sname Ssex, Sname SageSname Sdept但Ssex Sage若XY,并且YX, 則記為XY。 若Y不函數(shù)依賴于X, 則記為XY。An Introduction to Database System二、平凡函數(shù)依賴與非平凡函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴在關(guān)系模式R(U)中,對于U的子集X和Y,如果XY,但Y X,則稱XY是非平凡的函數(shù)依賴若XY,但Y X, 則稱XY是平

12、凡的函數(shù)依賴?yán)涸陉P(guān)系SC(Sno, Cno, Grade)中, 非平凡函數(shù)依賴: (Sno, Cno) Grade 平凡函數(shù)依賴: (Sno, Cno) Sno (Sno, Cno) CnoAn Introduction to Database System平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù))平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù))n于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明, 我們總是討論非平凡函數(shù)依賴。An Introduction to Database System三、完全函數(shù)依賴與部分函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴定義5.2 在關(guān)系模式R(U)中

13、,如果XY,并且對于X的任何一個真子集X,都有 X Y, 則稱Y完全函數(shù)依賴于X,記作X Y。 若XY,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作X P Y。 An Introduction to Database System完全函數(shù)依賴與部分函數(shù)依賴(續(xù))完全函數(shù)依賴與部分函數(shù)依賴(續(xù))例: 在關(guān)系SC(Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade An Introduction to Database System四、傳遞函數(shù)依賴四、傳遞函數(shù)依賴定義5.3 在關(guān)系模式R(U)中,如果XY,YZ,且Y

14、 X,YX,則稱Z傳遞函數(shù)依賴于X。注: 如果YX, 即XY,則Z直接依賴于X。例: 在關(guān)系Std(Sno, Sdept, Mname)中,有:Sno Sdept,Sdept Mname Mname傳遞函數(shù)依賴于SnoAn Introduction to Database System5.2.2 碼碼定義5.4 設(shè)K為關(guān)系模式R中的屬性或?qū)傩越M合。若K U,則K稱為R的一個侯選碼(Candidate Key)。若關(guān)系模式R有多個候選碼,則選定其中的一個做為主碼(Primary key)。n主屬性與非主屬性nALL KEYAn Introduction to Database System外部碼

15、外部碼定義5.5 關(guān)系模式 R 中屬性或?qū)傩越MX 并非 R的碼,但 X 是另一個關(guān)系模式的碼,則稱 X 是R 的外部碼(Foreign key)也稱外碼n主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。An Introduction to Database System5.2.3 范式范式n范式是符合某一種級別的關(guān)系模式的集合。n關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式。n范式的種類:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)An Introduction to Database System5.2.3

16、 范式范式n各種范式之間存在聯(lián)系:n某一關(guān)系模式R為第n范式,可簡記為RnNF。NF5NF4BCNFNF3NF2NF1An Introduction to Database System5.2.4 2NFn1NF的定義如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R1NF。n第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。n但是滿足第一范式的關(guān)系模式并不一定是一個好的關(guān)系模式。An Introduction to Database System2NF例: 關(guān)系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,

17、假設(shè)每個系的學(xué)生住在同一個地方。n函數(shù)依賴包括: (Sno, Cno) f Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept SlocAn Introduction to Database System 2NFnSLC的碼為(Sno, Cno)nSLC滿足第一范式。n 非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno)SnoCnoGradeSdeptSlocSLCAn Introduction to Database SystemSLC不是一個好的關(guān)系模式不是一個好的關(guān)系模式(1) 插入異常假設(shè)

18、Sno95102,SdeptIS,SlocN的學(xué)生還未選課,因課程號是主屬性,因此該學(xué)生的信息無法插入SLC。(2) 刪除異常 假定某個學(xué)生本來只選修了3號課程這一門課?,F(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個元組都要刪除。 An Introduction to Database SystemSLC不是一個好的關(guān)系模式不是一個好的關(guān)系模式(3) 數(shù)據(jù)冗余度大 如果一個學(xué)生選修了10門課程,那么他的Sdept和Sloc值就要重復(fù)存儲了10次。(4) 修改復(fù)雜 例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時,還可能需要修改住處(Sloc)。如果這個

19、學(xué)生選修了K門課,則必須無遺漏地修改K個元組中全部Sdept、Sloc信息。 An Introduction to Database System 2NFn原因 Sdept、 Sloc部分函數(shù)依賴于碼。n解決方法 SLC分解為兩個關(guān)系模式,以消除這些部分函數(shù)依賴 SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc)An Introduction to Database System 2NFnSLC的碼為(Sno, Cno)nSLC滿足第一范式。n 非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno)SnoCnoGradeSdeptSlocSLCAn In

20、troduction to Database System2NF函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSlocAn Introduction to Database System 2NFn2NF的定義定義5.6 若關(guān)系模式R1NF,并且每一個非主屬性都完全函數(shù)依賴于R的碼,則R2NF。例:SLC(Sno, Sdept, Sloc, Cno, Grade) 1NF SLC(Sno, Sdept, Sloc, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF SL(Sno, Sdept, Sloc) 2NFAn Introduction to Da

21、tabase System 第二范式(續(xù)第二范式(續(xù))n采用投影分解法將一個1NF的關(guān)系分解為多個2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。n將一個1NF關(guān)系分解為多個2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。An Introduction to Database System 5.2.5 3NF例:2NF關(guān)系模式SL(Sno, Sdept, Sloc)中n函數(shù)依賴: SnoSdept SdeptSloc SnoSlocSloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。An Introduc

22、tion to Database System 3NF函數(shù)依賴圖:SLSnoSdeptSlocAn Introduction to Database System 3NFn解決方法 采用投影分解法,把SL分解為兩個關(guān)系模式,以消除傳遞函數(shù)依賴: SD(Sno, Sdept) DL(Sdept, Sloc)SD的碼為Sno, DL的碼為Sdept。An Introduction to Database System 3NFSD的碼為Sno, DL的碼為Sdept。SnoSdeptSDSdeptSlocDLAn Introduction to Database System 3NFn3NF的定義定

23、義5.8 關(guān)系模式R 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z Y), 使得XY,Y X,YZ,成立,則稱R 3NF。例, SL(Sno, Sdept, Sloc) 2NF SL(Sno, Sdept, Sloc) 3NF SD(Sno, Sdept) 3NF DL(Sdept, Sloc) 3NFAn Introduction to Database System 3NFn若R3NF,則R的每一個非主屬性既不部分函數(shù)依賴于候選碼也不傳遞函數(shù)依賴于候選碼。n如果R3NF,則R也是2NF。n采用投影分解法將一個2NF的關(guān)系分解為多個3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入

24、異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。n 將一個2NF關(guān)系分解為多個3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。An Introduction to Database System 5.2.6 BC范式(范式(BCNF)n定義5.9 設(shè)關(guān)系模式R1NF,如果對于R的每個函數(shù)依賴XY,若Y不屬于X,則X必含有候選碼,那么RBCNF。若RBCNF n每一個決定屬性集(因素)都包含(候選)碼nR中的所有屬性(主,非主屬性)都完全函數(shù)依賴于碼nR3NFn若R3NF 則 R不一定BCNFAn Introduction to Database System BCNF例:在關(guān)系

25、模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。n每一教師只教一門課。每門課由若干教師教,某一學(xué)生選定某門課,就確定了一個固定的教師。某個學(xué)生選修某個教師的課就確定了所選課的名稱 : (S,J)T,(S,T)J,TJAn Introduction to Database System 5.2.6 BCNF SJTSTJSTJAn Introduction to Database SystemBCNFSTJ3NF n(S,J)和(S,T)都可以作為候選碼 nS、T、J都是主屬性STJBCNFnTJ,T是決定屬性集,T不是候選碼An Introduction to Database

26、 SystemBCNF解決方法:將STJ分解為二個關(guān)系模式: SJ(S,J) BCNF, TJ(T,J) BCNF 沒有任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴SJSTTJTJAn Introduction to Database System3NF與與BCNF的關(guān)系的關(guān)系n如果關(guān)系模式RBCNF, 必定有R3NFn如果R3NF,且R只有一個候選碼, 則R必屬于BCNF。An Introduction to Database SystemBCNF的關(guān)系模式所具有的性質(zhì)的關(guān)系模式所具有的性質(zhì) 所有非主屬性都完全函數(shù)依賴于每個候選碼 所有主屬性都完全函數(shù)依賴于每個不包含它的候選碼 沒有任何屬性完全

27、函數(shù)依賴于非碼的任何一組屬性An Introduction to Database System5.2.5 多值依賴與第四范式(多值依賴與第四范式(4NF)例: 學(xué)校中某一門課程由多個教師講授,他們使用相同的一套參考書。關(guān)系模式Teaching(C, T, B) 課程C、教師T 和 參考書BAn Introduction to Database System課課 程程 C教教 員員 T參參 考考 書書 B 物理物理 數(shù)學(xué)數(shù)學(xué) 計算數(shù)學(xué)計算數(shù)學(xué)李李 勇勇王王 軍軍 李李 勇勇張張 平平 張張 平平周周 峰峰 普通物理學(xué)普通物理學(xué)光學(xué)原理光學(xué)原理 物理習(xí)題集物理習(xí)題集 數(shù)學(xué)分析數(shù)學(xué)分析微分方程微分

28、方程高等代數(shù)高等代數(shù) 數(shù)學(xué)分析數(shù)學(xué)分析 表表5.1An Introduction to Database System普通物理學(xué)普通物理學(xué)光學(xué)原理光學(xué)原理物理習(xí)題集物理習(xí)題集普通物理學(xué)普通物理學(xué)光學(xué)原理光學(xué)原理物理習(xí)題集物理習(xí)題集數(shù)學(xué)分析數(shù)學(xué)分析微分方程微分方程高等代數(shù)高等代數(shù)數(shù)學(xué)分析數(shù)學(xué)分析微分方程微分方程高等代數(shù)高等代數(shù)李李 勇勇李李 勇勇李李 勇勇王王 軍軍王王 軍軍王王 軍軍李李 勇勇李李 勇勇李李 勇勇張張 平平張張 平平張張 平平 物物 理理物物 理理物物 理理物物 理理物物 理理物物 理理數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué) 參考書B教員T課程C用二維表表

29、示用二維表表示Teaching An Introduction to Database System多值依賴與第四范式(續(xù))多值依賴與第四范式(續(xù))nTeachingBCNF:nTeach具有唯一候選碼(C,T,B), 即全碼nTeaching模式中存在的問題 (1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書就要存儲多少次 An Introduction to Database System多值依賴與第四范式(續(xù))多值依賴與第四范式(續(xù)) (2)插入操作復(fù)雜:當(dāng)某一課程增加一名任課教師時,該課程有多少本參照書,就必須插入多少個元組例如物理課增加一名教師劉關(guān),需要插入兩個元組: (物理,劉關(guān),普通物

30、理學(xué)) (物理,劉關(guān),光學(xué)原理)An Introduction to Database System多值依賴與第四范式(續(xù))多值依賴與第四范式(續(xù))(3) 刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個元組(4) 修改操作復(fù)雜:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個元組 n產(chǎn)生原因存在多值依賴An Introduction to Database System一、多值依賴一、多值依賴n定義5.10 設(shè)R(U)是一個屬性集U上的一個關(guān)系模式, X、 Y和Z是U的子集,并且ZUXY,多值依賴 XY成立當(dāng)且僅當(dāng)對R的任一關(guān)系r,r在(X,Z)上的

31、每個值對應(yīng)一組Y的值,這組值僅僅決定于X值而與Z值無關(guān) 例 Teaching(C, T, B) 對于C的每一個值,T有一組值與之對應(yīng),而不論B取何值A(chǔ)n Introduction to Database System一、多值依賴一、多值依賴n在R(U)的任一關(guān)系r中,如果存在元組t,s 使得tX=sX,那么就必然存在元組 w,v r,(w,v可以與s,t相同),使得wX=vX=tX,而wY=tY,wZ=sZ,vY=sY,vZ=tZ(即交換s,t元組的Y值所得的兩個新元組必在r中),則Y多值依賴于X,記為XY。 這里,X,Y是U的子集,Z=U-X-Y。 t x y1 z2 s x y2 z1 w

32、 x y1 z1 v x y2 z2An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))n平凡多值依賴和非平凡的多值依賴n若XY,而Z,則稱 XY為平凡的多值依賴n否則稱XY為非平凡的多值依賴An Introduction to Database System多值依賴的性質(zhì)多值依賴的性質(zhì)(1)多值依賴具有對稱性 若XY,則XZ,其中ZUXY 多值依賴的對稱性可以用完全二分圖直觀地表示出來。(2)多值依賴具有傳遞性 若XY,YZ, 則XZ -YAn Introduction to Database System多值依賴的對稱性多值依賴的對稱性 XiZi

33、1 Zi2 ZimYi1 Yi2 YinAn Introduction to Database System多值依賴的對稱性多值依賴的對稱性 物物 理理普通物理學(xué)普通物理學(xué) 光學(xué)原理光學(xué)原理 物理習(xí)題集物理習(xí)題集李勇李勇 王軍王軍An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))(3)函數(shù)依賴是多值依賴的特殊情況。 若XY,則XY。(4)若XY,XZ,則XY Z。(5)若XY,XZ,則XYZ。(6)若XY,XZ,則XY-Z,XZ -Y。An Introduction to Database System多值依賴與函數(shù)依賴的區(qū)別多值依賴與函數(shù)依賴的區(qū)

34、別(1) 有效性n多值依賴的有效性與屬性集的范圍有關(guān)若XY在U上成立,則在W(X Y W U)上一定成立;反之則不然,即XY在W(W U)上成立,在U上并不一定成立n多值依賴的定義中不僅涉及屬性組 X和 Y,而且涉及U中其余屬性Z。n一般地,在R(U)上若有XY在W(W U)上成立,則稱XY為R(U)的嵌入型多值依賴An Introduction to Database System多值依賴與函數(shù)依賴的區(qū)別多值依賴與函數(shù)依賴的區(qū)別n只要在R(U)的任何一個關(guān)系r中,元組在X和Y上的值滿足定義5.l(函數(shù)依賴), 則函數(shù)依賴XY在任何屬性集W(X Y W U)上成立。An Introductio

35、n to Database System多值依賴(續(xù))多值依賴(續(xù))(2) n若函數(shù)依賴XY在R(U)上成立,則對于任何Y Y均有XY 成立n多值依賴XY若在R(U)上成立,不能斷言對于任何Y Y有XY 成立An Introduction to Database System二、第四范式(二、第四范式(4NF)n定義5.10 關(guān)系模式R1NF,如果對于R的每個非平凡多值依賴XY(Y X),X都含有候選碼,則R4NF。 (XY)n如果R 4NF, 則R BCNF 不允許有非平凡且非函數(shù)依賴的多值依賴 允許的是函數(shù)依賴(是非平凡多值依賴)An Introduction to Database Sy

36、stem第四范式(續(xù)第四范式(續(xù))例: Teach(C,T,B) 4NF 存在非平凡的多值依賴CT,且C不是候選碼n用投影分解法把Teach分解為如下兩個關(guān)系模式: CT(C, T) 4NF CB(C, B) 4NF CT, CB是平凡多值依賴 An Introduction to Database System5.2 規(guī)范化規(guī)范化5.2.1 第一范式(1NF)5.2.2 第二范式(2NF)5.2.3 第三范式(3NF)5.2.4 BC范式(BCNF)5.2.5 多值依賴與第四范式(4NF)5.2.6 規(guī)范化An Introduction to Database System5.2.6 規(guī)范化

37、規(guī)范化n關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計的工具。n一個關(guān)系只要其分量都是不可分的數(shù)據(jù)項,它就是規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化。n規(guī)范化程度可以有多個不同的級別An Introduction to Database System規(guī)范化(續(xù))規(guī)范化(續(xù))n規(guī)范化程度過低的關(guān)系不一定能夠很好地描述現(xiàn)實世界,可能會存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題n一個低一級范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個高一級范式的關(guān)系模式集合,這種過程就叫關(guān)系模式的規(guī)范化An Introduction to Database System規(guī)范化(續(xù))規(guī)范化(續(xù))n關(guān)系模式規(guī)范化的基本步驟 1

38、NF 消除非主屬性對碼的部分函數(shù)依賴消除決定屬性 2NF集非碼的非平 消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴 3NF 消除主屬性對碼的部分和傳遞函數(shù)依賴 BCNF 消除非平凡且非函數(shù)依賴的多值依賴 4NFAn Introduction to Database System規(guī)范化的基本思想規(guī)范化的基本思想n消除不合適的數(shù)據(jù)依賴n的各關(guān)系模式達(dá)到某種程度的“分離”n采用“一事一地”的模式設(shè)計原則 讓一個關(guān)系描述一個概念、一個實體或者實體間的一種聯(lián)系。若多于一個概念就把它“分離”出去n所謂規(guī)范化實質(zhì)上是概念的單一化An Introduction to Database System規(guī)范化(續(xù))規(guī)范

39、化(續(xù))n不能說規(guī)范化程度越高的關(guān)系模式就越好n在設(shè)計數(shù)據(jù)庫模式結(jié)構(gòu)時,必須對現(xiàn)實世界的實際情況和用戶應(yīng)用需求作進一步分析,確定一個合適的、能夠反映現(xiàn)實世界的模式n上面的規(guī)范化步驟可以在其中任何一步終止An Introduction to Database System第五章第五章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論5.1 數(shù)據(jù)依賴5.2 規(guī)范化5.3 數(shù)據(jù)依賴的公理系統(tǒng)5.4 模式的分解An Introduction to Database System5.3 數(shù)據(jù)依賴的公理系統(tǒng)數(shù)據(jù)依賴的公理系統(tǒng)n邏輯蘊含定義5.11 對于滿足一組函數(shù)依賴 F 的關(guān)系模式R ,其任何一個關(guān)系r,若函數(shù)依賴XY都成立,

40、 則稱 F邏輯蘊含X YAn Introduction to Database SystemArmstrong公理系統(tǒng)公理系統(tǒng)n一套推理規(guī)則,是模式分解算法的理論基礎(chǔ)n用途n求給定關(guān)系模式的碼n從一組函數(shù)依賴求得蘊含的函數(shù)依賴An Introduction to Database System1. Armstrong公理系統(tǒng)公理系統(tǒng) 關(guān)系模式R 來說有以下的推理規(guī)則:nAl.自反律(Reflexivity): 若Y X U,則X Y為F所蘊含。nA2.增廣律(Augmentation):若XY為F所蘊含,且Z U,則XZYZ為F所蘊含。nA3.傳遞律(Transitivity):若XY及YZ為

41、F所蘊含,則XZ為F所蘊含。注意:由自反律所得到的函數(shù)依賴均是平凡的函數(shù)依賴,自反律的使用并不依賴于FAn Introduction to Database System定理定理 5.l Armstrong推理規(guī)則是正確的推理規(guī)則是正確的(l)自反律:若Y X U,則X Y為F所蘊含證: 設(shè)Y X U 對R 的任一關(guān)系r中的任意兩個元組t,s:若tX=sX,由于Y X,有ty=sy,所以XY成立.自反律得證An Introduction to Database System定理定理5.l(2)增廣律: 若XY為F所蘊含,且Z U,則XZYZ 為F所蘊含。 證:設(shè)XY為F所蘊含,且Z U。 設(shè)R

42、 的任一關(guān)系r中任意的兩個元組t,s;若tXZ=sXZ,則有tX=sX和tZ=sZ;由XY,于是有tY=sY,所以tYZ=sYZ,所以XZYZ為F所蘊含.增廣律得證。An Introduction to Database System定理定理5.l(3) 傳遞律:若XY及YZ為F所蘊含,則 XZ為 F所蘊含。證:設(shè)XY及YZ為F所蘊含。對R 的任一關(guān)系 r中的任意兩個元組 t,s。若tX=sX,由于XY,有 tY=sY;再由YZ,有tZ=sZ,所以XZ為F所蘊含.傳遞律得證。An Introduction to Database System2. 導(dǎo)出規(guī)則導(dǎo)出規(guī)則1.根據(jù)A1,A2,A3這三條

43、推理規(guī)則可以得到下面三條推理規(guī)則:n 合并規(guī)則:由XY,XZ,有XYZ。 (A2, A3)n 偽傳遞規(guī)則:由XY,WYZ,有XWZ。 (A2, A3)n 分解規(guī)則:由XY及 ZY,有XZ。 (A1, A3)An Introduction to Database System導(dǎo)出規(guī)則導(dǎo)出規(guī)則2.根據(jù)合并規(guī)則和分解規(guī)則,可得引理5.1 引理5.l XA1 A2Ak成立的充分必要條件是XAi成立(i=l,2,k)。An Introduction to Database System第五章第五章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論5.1 數(shù)據(jù)依賴5.2 規(guī)范化5.3 數(shù)據(jù)依賴的公理系統(tǒng)5.4 模式的分解An I

44、ntroduction to Database System5.4 模式的分解模式的分解n把低一級的關(guān)系模式分解為若干個高一級的關(guān)系模式的方法并不是唯一的n只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價,分解方法才有意義An Introduction to Database System關(guān)系模式分解的標(biāo)準(zhǔn)關(guān)系模式分解的標(biāo)準(zhǔn)三種模式分解的等價定義 分解具有無損連接性 分解要保持函數(shù)依賴 分解既要保持函數(shù)依賴,又要具有無損連接性An Introduction to Database System模式的分解(續(xù))模式的分解(續(xù))例: SL(Sno, Sdept, Sloc) F= SnoSdept,S

45、deptSloc,SnoSloc SL2NF 存在插入異常、刪除異常、冗余度大和修改復(fù)雜等問題分解方法可以有多種 An Introduction to Database System模式的分解(續(xù))模式的分解(續(xù))SL SnoSdeptSloc 95001 CS A 95002 IS B 95003 MA C 95004 IS B 95005 PH B An Introduction to Database System模式的分解(續(xù))模式的分解(續(xù))1. SL分解為下面三個關(guān)系模式: SN(Sno) SD(Sdept) SO(Sloc)An Introduction to Database

46、System分解后的關(guān)系為:分解后的關(guān)系為: SN SD SO Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 PH 95005 An Introduction to Database System模式的分解(續(xù))模式的分解(續(xù))分解后的數(shù)據(jù)庫丟失了許多信息 例如無法查詢95001學(xué)生所在系或所在宿舍。 如果分解后的關(guān)系可以通過自然連接恢復(fù)為原來的關(guān)系,那么這種分解就沒有丟失信息An Introduction to Database System模式的分解(續(xù))模式的分解(續(xù))2. SL分解為下面二個關(guān)系模式: NL(Sno, Slo

47、c) DL(Sdept, Sloc)分解后的關(guān)系為: NL DL Sno Sloc Sdept Sloc 95001 A CS A 95002 B IS B 95003 C MA C 95004 B PH B 95005 B An Introduction to Database System模式的分解(續(xù))模式的分解(續(xù))NL DL Sno Sloc Sdept 95001 A CS 95002 B IS 95002 B PH 95003 C MA 95004 B IS 95004 B PH 95005 B IS 95005 B PH An Introduction to Database System模式的分解(續(xù))模式的分解(續(xù))NL DL比原來的SL關(guān)系多了3個元組 無法知道95002、95004、95

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論