




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、An Introduction to Database System中國人民大學(xué)信息學(xué)院計算機系中國人民大學(xué)信息學(xué)院計算機系數(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)造一個適合
2、于它的數(shù)據(jù)模式n數(shù)據(jù)庫邏輯設(shè)計的工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論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)系模
3、式的全體。An Introduction to Database 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四、關(guān)系模式的簡化表示四、關(guān)系模式的簡化表示關(guān)系模式R(U, D, 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 Intr
4、oduction 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)系模式的影響(續(xù))學(xué)校數(shù)據(jù)庫的語義: 一個系有若干學(xué)生, 一個學(xué)生只屬于一個系; 一個系只有一名主任; 一個學(xué)生可以選修多門課程, 每門課程有若干學(xué)
5、生選修; 每個學(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中存在的問題中存在的問題 數(shù)據(jù)冗余太大n浪費大量的存儲空間 例:每一個系主任的姓名重復(fù)出現(xiàn) 更新異常(Update Anomalies)n數(shù)據(jù)冗余 ,更新數(shù)據(jù)時
6、,維護數(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è)了, 我們在刪除該系學(xué)生信息的同時,把這個系及其系主任的信息也丟掉了。An Introduction to Database System數(shù)
7、據(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ù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。An Introduction to Database System5.2.1 函數(shù)依賴函數(shù)依賴一、函數(shù)依賴二、
8、平凡函數(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)。 Y=f(x)An Introduction to Database System說明:說明: 1. 函數(shù)依賴不是指關(guān)系模式R的某個或某些關(guān)
9、系實例滿足的約束條件,而是指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ù))例: Student(Sno, Sname, Ssex, Sage, Sdept) 假設(shè)不允許重名,則有:Sno Ssex, Sno Sa
10、ge , 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是平凡的函數(shù)依賴例:在關(guān)系SC(Sno, Cno, Grade)中, 非平凡函數(shù)依賴: (Sno, Cno) Grade 平凡函數(shù)依賴: (Sn
11、o, 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)中,如果XY,并且對于X的任何一個真子集X,都有 X Y, 則稱Y完全函數(shù)依賴于X,記作X Y。 若XY,但Y不完全函數(shù)依賴于X,則稱Y部分函
12、數(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 X,YX,則稱Z傳遞函數(shù)依賴于X。注: 如果YX, 即XY,則Z直接依賴于X。例: 在關(guān)系Std(Sno, Sdept, Mname)中,
13、有: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外部碼外部碼定義5.5 關(guān)系模式 R 中屬性或?qū)傩越MX 并非 R的碼,但 X 是另一個關(guān)系模式的碼,則稱 X 是R 的外部碼(Foreign ke
14、y)也稱外碼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 范式范式n各種范式之間存在聯(lián)系:n某一關(guān)系模式R為第n范式,可簡記為RnNF。NF5NF4BCNFNF3NF2NF1An Introduc
15、tion 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é)生住處,假設(shè)每個系的學(xué)生住在同一個地方。n函數(shù)依賴包括: (Sno, Cno) f Grade Sno Sdept (Sno, Cno) P Sde
16、pt 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è)Sno95102,SdeptIS,SlocN的學(xué)生還未選課,因課程號是主屬性,因此該學(xué)生的信息無法插入SLC。(2) 刪除異常 假定某個學(xué)生
17、本來只選修了3號課程這一門課。現(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)。如果這個學(xué)生選修了K門課,則必須無遺漏地修改K個元組中全部Sdept、Sloc信息。 An Introduction to Database Sys
18、tem 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 Introduction to Database System2NF函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSlocAn In
19、troduction 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 Database System 第二范式(續(xù)第二范式(續(xù))n采用投影分解法將一個1NF的關(guān)系分解為多個2NF的關(guān)系,可以在一定程度上減輕原1NF
20、關(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 Introduction to Database System 3NF函數(shù)依賴圖:SLSnoSdeptSlocAn Introduction to Data
21、base 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的定義定義5.8 關(guān)系模式R 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z Y), 使得XY,Y X,YZ,成立,則稱R 3NF。例, SL(Sn
22、o, 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)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。n 將一個2NF關(guān)系分解為多個3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余
23、。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ù)依賴于碼nR3NF(證明)n若R3NF 則 R不一定BCNFAn Introduction to Database System BCNF例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。n每一教師只教一門課。每門課由若干教師教,某一學(xué)生選定某門課,就確定
24、了一個固定的教師。某個學(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 SystemBCNF解決方法:將STJ分解為二個關(guān)系模式: SJ(S,J) BCNF, TJ(T,J) BCNF 沒有任何屬性對碼
25、的部分函數(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ù)依賴于每個不包含它的候選碼 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性An Introduction to Database System5.2.5 多值依賴與第四范式(多值
26、依賴與第四范式(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é)分析微分方程微分方程高等代數(shù)高等代數(shù) 數(shù)學(xué)分析數(shù)學(xué)分析 表表5.1An Introduction to Database System普通物理學(xué)普通
27、物理學(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用二維表表示用二維表表示Teaching An Introduction to Database System多值依賴與第四范式(續(xù))多值依賴
28、與第四范式(續(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),普通物理學(xué)) (物理,劉關(guān),光學(xué)原理)An Introduction to Database System多值依賴與第四范式(續(xù))多值依賴
29、與第四范式(續(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)上的每個值對應(yīng)一組Y的值,這組值僅僅決定于X值而與Z值無關(guān) 例 Teaching(C, T, B) 對于C的每一個值,T有一組值與之對應(yīng)
30、,而不論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 x y1 z1 v x y2 z2An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))
31、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多值依賴的對稱性多值依賴的對稱性 XiZi1 Zi2 ZimYi1 Yi2 YinAn Introduction to Database System多值依賴的對稱性多值依賴
32、的對稱性 物物 理理普通物理學(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ū)別(1) 有效性n多值依賴的有效性與屬性集的范圍有關(guān)若XY在U上成立,則在W(X Y W U)上一定成立;反之則不然,即XY在W(W
33、 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 Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))(2) n若函數(shù)依賴XY在R(U)上成立,則對于任何Y Y均有X
34、Y 成立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 System第四范式(續(xù)第四范式(續(xù))例: Teach(C,T,B) 4NF 存在非平凡的多值依賴CT,且C不是候選碼n用投影分解法把T
35、each分解為如下兩個關(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ī)范化規(guī)范化n關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計的工具。n一個關(guān)系只要其分量都是不可分的數(shù)據(jù)項,它就是規(guī)范化的關(guān)系,但這只是最基本的規(guī)
36、范化。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ī)范化的基本步驟 1NF 消除非主屬性對碼的部分函數(shù)依賴消除決定屬性 2NF集非碼的非平 消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴 3NF 消除主屬性對
37、碼的部分和傳遞函數(shù)依賴 BCNF 消除非平凡且非函數(shù)依賴的多值依賴 4NFAn Introduction to Database System規(guī)范化的基本思想規(guī)范化的基本思想n消除不合適的數(shù)據(jù)依賴n的各關(guān)系模式達到某種程度的“分離”n采用“一事一地”的模式設(shè)計原則 讓一個關(guān)系描述一個概念、一個實體或者實體間的一種聯(lián)系。若多于一個概念就把它“分離”出去n所謂規(guī)范化實質(zhì)上是概念的單一化An Introduction to Database System規(guī)范化(續(xù))規(guī)范化(續(xù))n不能說規(guī)范化程度越高的關(guān)系模式就越好n在設(shè)計數(shù)據(jù)庫模式結(jié)構(gòu)時,必須對現(xiàn)實世界的實際情況和用戶應(yīng)用需求作進一步分析,確定一個
38、合適的、能夠反映現(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都成立, 則稱 F邏輯蘊含X YAn Introduction to Database SystemArmstrong公理系統(tǒng)公理系統(tǒng)n一套
39、推理規(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為F所蘊含,則XZ為F所蘊含。注意:由自反律所得到的函數(shù)依賴均是平凡的函數(shù)依賴,自反律的使用并不依賴于FAn Introduction
40、 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 的任一關(guān)系r中任意的兩個元組t,s;若tXZ=sXZ,則有tX=sX和tZ=sZ;由XY,于是有tY=sY,所以tYZ=sYZ,所
41、以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這三條推理規(guī)則可以得到下面三條推理規(guī)則:n 合并規(guī)則:由XY,XZ,有XYZ。 (A2, A3)n 偽傳遞規(guī)則:由XY,WYZ,有XWZ。
42、 (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 System3. 函數(shù)依賴閉包函數(shù)依賴閉包定義5.l2 在關(guān)系模式R中為F所邏輯蘊含的函數(shù)依賴的全體叫作 F的閉包,記為F+。定義5.13 設(shè)F為屬性集U上的一組函數(shù)依賴,X U, XF+ = A|XA能由F 根據(jù)Armstrong公理導(dǎo)出,XF+稱為屬性集X關(guān)于
43、函數(shù)依賴集F 的閉包An Introduction to Database SystemF的閉包的閉包 F=X Y,Y Z, F+計算是NP完全問題,X A1A2.An F+=X , Y , Z , XY , XZ , YZ , XYZ , X X, Y Y, Z Z, XY X, XZ X, YZ Y, XYZ X,X Y, Y Z , XY Y, XZ Y, YZ Z, XYZ Y,X Z, Y YZ, XY Z, XZ Z, YZ YZ, XYZ Z,X XY, XY XY, XZ XY, XYZ XY, X XZ, XY YZ, XZ XZ, XYZ YZX YZ, XY XZ, XZ
44、 XY, XYZ XZ,X ZYZ, XY XYZ, XZ XYZ, XYZ XYZ An Introduction to Database System關(guān)于閉包的引理關(guān)于閉包的引理n引理5.2 設(shè)F為屬性集U上的一組函數(shù)依賴,X,Y U,XY能由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y XF+n用途 將判定XY是否能由F根據(jù)Armstrong公理導(dǎo)出的問題, 就轉(zhuǎn)化為求出XF+ ,判定Y是否為XF+的子集的問題An Introduction to Database System求閉包的算法求閉包的算法算法5.l 求屬性集X(X U)關(guān)于U上的函數(shù)依 賴集F 的閉包XF+ 輸入:X
45、,F(xiàn)輸出:XF+步驟:(1)令X(0)=X,i=0(2)求B,這里B = A |( V)( W)(VWF V X(i)A W);(3)X(i+1)=BX(i) An Introduction to Database System算法算法5.l(4)判斷X(i+1)= X (i)嗎?(5)若相等或X(i)=U , 則X(i)就是XF+ , 算法終止。(6)若否,則 i=i+l,返回第(2)步。對于算法5.l, 令ai =|X(i)|,ai 形成一個步長大于1的嚴格遞增的序列,序列的上界是 | U |,因此該算法最多 |U| - |X| 次循環(huán)就會終止。An Introduction to Dat
46、abase SystemnDefine XF+ = closure of X = set of attributes functionally determined byXnBasis: XF+ :=XnInduction: If Y XF+, and Y A is a given FD, then add A to XF+nEnd when XF+ cannot be changed.AlgorithmyX+New X+AAn Introduction to Database System U=A, B, C, D; F=A B, BC D;nA+ = AB.nC+ = C.n(AC)+ =
47、 ABCD.ExampleACBAn Introduction to Database System ExampleACDBU=A, B, C, D; A B, BC D.(AC)+ = ABCD.An Introduction to Database System函數(shù)依賴閉包函數(shù)依賴閉包例1 已知關(guān)系模式R,其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,ACB。求(AB)F+ 。解 設(shè)X(0)=AB;(1)計算X(1): 逐一的掃描F集合中各個函數(shù)依賴, 找左部為A,B或AB的函數(shù)依賴。得到兩個: ABC,BD。 于是X(1)=ABCD=ABCD。An Introduction
48、 to Database System函數(shù)依賴閉包函數(shù)依賴閉包(2)因為X(0) X(1) ,所以再找出左部為ABCD子集的那些函數(shù)依賴,又得到ABC,BD, CE,ACB, 于是X(2)=X(1)BCDE=ABCDE。(3)因為X(2)=U,算法終止所以(AB)F+ =ABCDE。An Introduction to Database System4. Armstrong公理系統(tǒng)的有效性與完備性公理系統(tǒng)的有效性與完備性n建立公理系統(tǒng)體系目的:從已知的 f 推導(dǎo)出未知的fn明確:1.公理系統(tǒng)推導(dǎo)出來的 f 正確? 2. F+中的每一個 f 都能推導(dǎo)出來? / f 不能由F 導(dǎo)出, f F+ F
49、 F+ fAn Introduction to Database System4. Armstrong公理系統(tǒng)的有效性與完備性公理系統(tǒng)的有效性與完備性n有效性:由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來的每一個函數(shù)依賴一定在F+中 /* Armstrong正確n完備性:F+中的每一個函數(shù)依賴,必定可以由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來 /* Armstrong公理夠用,完全完備性:所有不能用Armstrong公理推導(dǎo)出來f, 都不為真 若 f 不能用Armstrong公理推導(dǎo)出來, f F+ An Introduction to Database System有效性與完備性的證明有效性
50、與完備性的證明證明:1. 有效性 可由定理5.l得證2. 完備性只需證明逆否命題: 若函數(shù)依賴XY不能由F從Armstrong公理導(dǎo)出,那么它必然不為F所蘊含分三步證明:An Introduction to Database System有效性與完備性的證明有效性與完備性的證明(1)引理: 若VW成立,且V XF+,則W XF+ 證 因為 V XF+ ,所以有XV成立; 因為X V,VW,于是XW成立 所以W XF+ (2)/* 若 f 不能用Armstrong公理推導(dǎo)出來, f F+ /* 若存在r, F+中的全部函數(shù)依賴在 r上成立。 /* 而不能用Armstrong公理推導(dǎo)出來的f ,
51、在r上不成立。 構(gòu)造一張二維表r,它由下列兩個元組構(gòu)成,可以證明r必是R(U,F(xiàn))的一個關(guān)系,即F+中的全部函數(shù)依賴在 r上成立。 An Introduction to Database SystemArmstrong公理系統(tǒng)的有效性與完備性公理系統(tǒng)的有效性與完備性(續(xù)續(xù)) XF+ U-XF+ 11.1 00.0 11.1 11.1 若r不是R 的關(guān)系,則必由于F中有函數(shù)依賴VW在r上不成立所致。由r的構(gòu)成可知,V必定是XF+ 的子集,而W不是XF+ 的子集,可是由第(1)步,W XF+,矛盾。所以r必是R的一個關(guān)系。 An Introduction to Database SystemArm
52、strong公理系統(tǒng)的有效性與完備性公理系統(tǒng)的有效性與完備性(續(xù)續(xù))(3) )/* 若 f 不能用Armstrong公理推導(dǎo)出來, f F+ /* 而不能用Armstrong公理推導(dǎo)出來的 f , 在r上不成立。n若XY 不能由F從Armstrong公理導(dǎo)出,則Y 不是 XF+ 的子集。(引理5.2)n因此必有Y 的子集Y 滿足 Y U-XF+, 則XY在 r 中不成立,即XY必不為 R 蘊含 /* 因為 F+中的全部函數(shù)依賴在 r上成立。An Introduction to Database SystemArmstrong公理系統(tǒng)的有效性與完備性公理系統(tǒng)的有效性與完備性(續(xù)續(xù))Armstro
53、ng公理的完備性及有效性說明:“蘊含” = “導(dǎo)出” 等價的概念 F+ =由F出發(fā)借助Armstrong公理導(dǎo)出的函數(shù)依賴的集合An Introduction to Database System5. 函數(shù)依賴集等價函數(shù)依賴集等價定義5.14 如果G+=F+,就說函數(shù)依賴集F覆蓋G(F是G的覆蓋,或G是F的覆蓋),或F與G等價。An Introduction to Database System函數(shù)依賴集等價的充要條件函數(shù)依賴集等價的充要條件引理5.3 F+ = G+ 的充分必要條件是 F G+ ,和G F+ 證: 必要性顯然,只證充分性。(1)若FG+ ,則XF+ XG+ 。(2)任取XYF
54、+ 則有 Y XF+ XG+ 。 所以XY (G+)+= G+。即F+ G+。(3)同理可證G+ F+ ,所以F+ = G+。An Introduction to Database System函數(shù)依賴集等價函數(shù)依賴集等價n要判定F G+,只須逐一對F中的函數(shù)依賴XY,考察 Y 是否屬于XG+ 就行了。因此引理5.3 給出了判斷兩個函數(shù)依賴集等價的可行算法。 An Introduction to Database System6. 最小依賴集最小依賴集 定義5.15 如果函數(shù)依賴集F滿足下列條件,則稱F為一個極小函數(shù)依賴集。亦稱為最小依賴集或最小覆蓋。 (1) F中任一函數(shù)依賴的右部僅含有一個
55、屬性。 (2) F中不存在這樣的函數(shù)依賴XA,使得F與F-XA等價。 (3) F中不存在這樣的函數(shù)依賴XA, X有真 子集Z使得F-XAZA與F等價。 An Introduction to Database System最小依賴集最小依賴集例2 對于5.l節(jié)中的關(guān)系模式S,其中: U= SNO,SDEPT,MN,CNAME,G , F= SNOSDEPT,SDEPTMN, (SNO,CNAME)G 設(shè)F=SNOSDEPT,SNOMN, SDEPTMN,(SNO,CNAME)G, (SNO,SDEPT)SDEPTF是最小覆蓋,而F 不是。因為:F -SNOMN與F 等價 F -(SNO,SDEP
56、T)SDEPT也與F 等價 F -(SNO,SDEPT)SDEPT SNOSDEPT也與F 等價An Introduction to Database System7. 極小化過程極小化過程定理5.3 每一個函數(shù)依賴集F均等價于一個極小 函數(shù)依賴集Fm。此Fm稱為F的最小依賴集證:構(gòu)造性證明,依據(jù)定義分三步對F進行“極小化處理”,找出F的一個最小依賴集。(1)逐一檢查F中各函數(shù)依賴FDi:XY, 若Y=A1A2 Ak,k 2, 則用 XAj |j=1,2, k 來取代XY。 引理5.1保證了F變換前后的等價性。An Introduction to Database System極小化過程極小化
57、過程(2)逐一檢查F中各函數(shù)依賴FDi:XA, 令G=F-XA, 若AXG+, 則從F中去掉此函數(shù)依賴。 由于F與G =F-XA等價的充要條件是AXG+ 因此F變換前后是等價的。An Introduction to Database System極小化過程極小化過程(3)逐一取出F中各函數(shù)依賴FDi:XA, 設(shè)X=B1B2Bm, 逐一考查Bi (i=l,2,m), 若A (X-Bi )F+ , 則以X-Bi 取代X。 由于F與F-XAZA等價的充要條件是AZF+ ,其中Z=X-Bi 因此F變換前后是等價的。An Introduction to Database System極小化過程極小化過程
58、由定義,最后剩下的F就一定是極小依賴集。 因為對F的每一次“改造”都保證了改造前后的兩個函數(shù)依賴集等價,因此剩下的F與原來的F等價。 證畢n定理5.3的證明過程 也是求F極小依賴集的過程An Introduction to Database System極小化過程極小化過程例3 F = AB,BA,BC, AC,CA Fm1、Fm2都是F的最小依賴集: Fm1= AB,BC,CA Fm2= AB,BA,AC,CA nF的最小依賴集Fm不一定是唯一的它與對各函數(shù)依賴FDi 及XA中X各屬性的處置順序有關(guān)An Introduction to Database System極小化過程極小化過程n極小
59、化過程( 定理5.3的證明 )也是檢驗F是否為極小依賴集的一個算法n若改造后的F與原來的F相同,說明F本身就是一個最小依賴集An Introduction to Database System極小化過程極小化過程n在R中可以用與F等價的依賴集G來取代Fn原因:兩個關(guān)系模式R1 ,R2,如果F與G等價,那么R1的關(guān)系一定是R2的關(guān)系。反過來,R2的關(guān)系也一定是R1的關(guān)系。 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 Data
60、base System5.4 模式的分解模式的分解n把低一級的關(guān)系模式分解為若干個高一級的關(guān)系模式的方法并不是唯一的n只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價,分解方法才有意義An Introduction to Database System關(guān)系模式分解的標準關(guān)系模式分解的標準三種模式分解的等價定義 分解具有無損連接性 分解要保持函數(shù)依賴 分解既要保持函數(shù)依賴,又要具有無損連接性An Introduction to Database System模式的分解(續(xù))模式的分解(續(xù))定義定義5.16 關(guān)系模式R的一個分解:= R1,R2,Rn U=U1U2Un,且不存在 Ui Uj,F(xiàn)i 為
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件測試中的質(zhì)量控制與保證機制試題及答案
- 道路冷補修復(fù)材料試題及答案
- 計算機三級考試新趨勢試題及答案
- 嵌入式系統(tǒng)調(diào)試技巧考題試題及答案
- 數(shù)據(jù)庫存儲過程撰寫技巧試題及答案
- 通信設(shè)備專業(yè)高頻信號處理維修考核試卷
- 四級軟件測試工程師訪問量提升試題及答案
- 基于MySQL的后臺數(shù)據(jù)庫管理技巧試題及答案
- 嵌入式系統(tǒng)的市場潛力分析試題及答案
- 敏捷實踐下的測試反饋循環(huán)試題及答案
- 《大氣輻射學(xué)》課件
- 康養(yǎng)休閑旅游服務(wù)基礎(chǔ)知識單選題及答案解析
- 新課標(水平三)體育與健康《籃球》大單元教學(xué)計劃及配套教案(18課時)
- 解剖學(xué)公開課課件內(nèi)分泌
- 銀屑病臨床病例討論
- 【MOOC】工程經(jīng)濟學(xué)原理-東南大學(xué) 中國大學(xué)慕課MOOC答案
- 涉密人員審查備案登記表
- 2023-2024學(xué)年廣東省深圳市深中共同體聯(lián)考八年級(下)期中地理試卷
- 高層建筑汽車吊吊裝作業(yè)方案
- 24秋新人教版地理七年級上冊大單元整體設(shè)計-第四章 天氣與氣候課件
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)(創(chuàng)新創(chuàng)業(yè)課程)完整全套教學(xué)課件
評論
0/150
提交評論