




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2017版E-mail: 主頁:第6章 關(guān)系數(shù)據(jù)理論(2017版) 數(shù)據(jù)庫系統(tǒng)原理6.1 問題的提出6.2 規(guī)范化6.3 數(shù)據(jù)依賴的公理系統(tǒng)6.4 模式的分解第6章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)庫邏輯設(shè)計針對具體問題,如何構(gòu)造一個適合于它的數(shù)據(jù)模式數(shù)據(jù)庫邏輯設(shè)計的工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論6.1 問題的提出一、概念回顧二、關(guān)系模式的形式化定義三、什么是數(shù)據(jù)依賴四、關(guān)系模式的簡化定義五、數(shù)據(jù)依賴對關(guān)系模式影響6.1 問題的提出關(guān)系:描述實體、屬性、實體間的聯(lián)系。從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個子集。關(guān)系模式:用來定義關(guān)系。關(guān)系數(shù)據(jù)庫:基于關(guān)系模型的數(shù)據(jù)庫,利用關(guān)系來描述現(xiàn)實世界。
2、從形式上看,它由一組關(guān)系組成。關(guān)系數(shù)據(jù)庫的模式:定義這組關(guān)系的關(guān)系模式的全體。6.1 問題的提出概念回顧關(guān)系模式由五部分組成,即它是一個五元組: R(U, D, DOM, F)R: 關(guān)系名U: 組成該關(guān)系的屬性名集合D: 屬性組U中屬性所來自的域DOM:屬性向域的映象集合F: 屬性間數(shù)據(jù)的依賴關(guān)系集合6.1 問題的提出關(guān)系模式的形式化定義1. 完整性約束的表現(xiàn)形式限定屬性取值范圍:例如學(xué)生成績必須在0-100之間定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否) 這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設(shè)計的關(guān)鍵2. 數(shù)據(jù)依賴是通過一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系是現(xiàn)實世界屬性間相互
3、聯(lián)系的抽象是數(shù)據(jù)內(nèi)在的性質(zhì)是語義的體現(xiàn)3. 數(shù)據(jù)依賴的類型函數(shù)依賴(Functional Dependency,簡記為FD)多值依賴(Multivalued Dependency,簡記為MVD)其他6.1 問題的提出什么是數(shù)據(jù)依賴關(guān)系模式R(U, D, DOM, F) 簡化為一個三元組: R(U, F)當且僅當U上的一個關(guān)系r 滿足F時,r稱為關(guān)系模式 R(U, F)的一個關(guān)系6.1 問題的提出關(guān)系模式的簡化表示例:描述學(xué)校的數(shù)據(jù)庫:學(xué)生的學(xué)號(Sno)、所在系(Sdept)系主任姓名(Mname)、課程名(Cname)成績(Grade)6.1 問題的提出數(shù)據(jù)依賴對關(guān)系模式的影響 Sno, S
4、dept, Mname, Cname, Grade 單一的關(guān)系模式 : Student U 學(xué)校數(shù)據(jù)庫的語義: 一個系有若干學(xué)生, 一個學(xué)生只屬于一個系; 一個系只有一名主任; 一個學(xué)生可以選修多門課程, 每門課程有若干學(xué)生選修; 每個學(xué)生所學(xué)的每門課程都有一個成績。6.1 問題的提出數(shù)據(jù)依賴對關(guān)系模式的影響U Sno, Sdept, Mname, Cname, Grade 屬性組U上的一組函數(shù)依賴F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade 6.1 問題的提出數(shù)據(jù)依賴對關(guān)系模式的影響 SnoCnameSdeptMnameGrade6.1 問題
5、的提出關(guān)系模式Student中存在的問題學(xué) 號Sno系主任Mname課程名Cname成績Grade所 在 系Sdept95001李勇高數(shù)80IS95002李勇高數(shù)73IS95003王敏 高數(shù)91MA95004李勇外語67IS6.1 問題的提出關(guān)系模式Student中存在的問題 數(shù)據(jù)冗余太大浪費大量的存儲空間 例:每一個系主任的姓名重復(fù)出現(xiàn) 更新異常(Update Anomalies)數(shù)據(jù)冗余 ,更新數(shù)據(jù)時,維護數(shù)據(jù)完整性代價大。例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個元組 插入異常(Insertion Anomalies)該插的數(shù)據(jù)插不進去 例,如果一個系剛成立,尚無學(xué)生,我們
6、就無法把這個系及其系主任的信息存入數(shù)據(jù)庫。 刪除異常(Deletion Anomalies)不該刪除的數(shù)據(jù)不得不刪例,如果某個系的學(xué)生全部畢業(yè)了, 我們在刪除該系學(xué)生信息的同時,把這個系及其系主任的信息也丟掉了。6.1 問題的提出結(jié)論:Student關(guān)系模式不是一個好的模式。“好”的模式:不會發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些數(shù)據(jù)依賴引起的解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴。數(shù)據(jù)依賴對關(guān)系模式的影響6.1 問題的提出6.2 規(guī)范化6.3 數(shù)據(jù)依賴的公理系統(tǒng)6.4 模式的分解第6章 關(guān)系數(shù)據(jù)理論6.2 規(guī)范化 規(guī)范化理論正是用來改造
7、關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。6.2.1 函數(shù)依賴一、函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴四、傳遞函數(shù)依賴6.2.1 函數(shù)依賴定義6.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)一、函數(shù)依賴6.2.1 函數(shù)依賴 1. 函數(shù)依賴不是指關(guān)系
8、模式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)有同名人存在, 則拒絕裝入該元組。說明:例: Student(Sno, Sname, Ssex, Sage, Sdept) 假設(shè)不允許重名,則有:Sno Ssex, Sno Sage , Sno Sdept, Sno Sname, Sname Ss
9、ex, Sname SageSname Sdept但Ssex Sage若XY,并且YX, 則記為XY。 若Y不函數(shù)依賴于X, 則記為XY。6.2.1 函數(shù)依賴6.2.1 函數(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ù)依賴: (Sno, Cno) Sno (Sno, Cno) Cno于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明, 我們總是討論非平凡函數(shù)依賴。
10、二、平凡函數(shù)依賴與非平凡函數(shù)依賴6.2.1 函數(shù)依賴定義6.2 在關(guān)系模式R(U)中,如果XY,并且對于X的任何一個真子集X,都有 X Y, 則稱Y完全函數(shù)依賴于X,記作X Y。 若XY,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作X P Y。 三、完全函數(shù)依賴與部分函數(shù)依賴例: 在關(guān)系SC(Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade 6.2.2 碼定義6.4 設(shè)K為關(guān)系模式R中的屬性或?qū)傩越M合。若K U,則K稱為R的一個侯選碼(Candidate Key)。若關(guān)系模式R有多個候選碼,則選定其中的一個做為
11、主碼(Primary key)。主屬性與非主屬性ALL KEY6.2.2 碼外部碼定義6.5 關(guān)系模式 R 中屬性或?qū)傩越MX 并非 R的碼,但 X 是另一個關(guān)系模式的碼,則稱 X 是R 的外部碼(Foreign key)也稱外碼。主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。6.2.3 范式范式是符合某一種級別的關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式。范式的種類:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)6.2.3 范式各種范式之間存在聯(lián)系:某一關(guān)系模式R為第n范式,可簡記為RnNF
12、。6.2.4 2NF1NF的定義如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R1NF。第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。但是滿足第一范式的關(guān)系模式并不一定是一個好的關(guān)系模式。6.2.4 2NF例: 關(guān)系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地方。函數(shù)依賴包括: (Sno, Cno) Grade Sno Sdept (Sno, Cno) Sdept (?) Sno Sloc (Sno, Cno) Sloc Sdept Slocfpp6.2.4 2NF例: 關(guān)
13、系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地方。函數(shù)依賴包括: (Sno, Cno) Grade Sno Sdept (Sno, Cno) Sdept Sno Sloc (Sno, Cno) Sloc Sdept Slocfpp6.2.4 2NFSLC的碼為(Sno, Cno)SLC滿足第一范式 非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno)SnoCnoGradeSdeptSlocSLC課堂練習 已知學(xué)生關(guān)系模式S(Sno,Sname,SD,Sdname,Course,Grade)其中,Sno是學(xué)
14、號,Sname是姓名,SD是系名,Sdname是系主任名,Course是課程,Grade是成績(1)寫出關(guān)系模式S的基本函數(shù)依賴和主碼; (做本題)(2)原關(guān)系模式是第幾范式?如何分解成高一級范式?(3)將關(guān)系模式分解成3NF,并說明為什么?6.2.4 2NFSLC不是一個好的關(guān)系模式(1) 插入異常假設(shè)Sno95102,SdeptIS,SlocN的學(xué)生還未選課,因課程號是主屬性,因此該學(xué)生的信息無法插入SLC。(2) 刪除異常 假定某個學(xué)生本來只選修了3號課程這一門課。現(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個元組都要刪除。SLC(Sno, Sde
15、pt, Sloc, Cno, Grade)6.2.4 2NF(3) 數(shù)據(jù)冗余度大 如果一個學(xué)生選修了10門課程,那么他的Sdept和Sloc值就要重復(fù)存儲了10次。(4) 修改復(fù)雜 例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時,還可能需要修改住處(Sloc)。如果這個學(xué)生選修了K門課,則必須無遺漏地修改K個元組中全部Sdept、Sloc信息。SLC(Sno, Sdept, Sloc, Cno, Grade)6.2.4 2NF原因 Sdept、 Sloc部分函數(shù)依賴于碼。解決方法 SLC分解為兩個關(guān)系模式,以消除這些部分函數(shù)依賴 SC(Sno, Cno, Grade) SL(Sno, Sd
16、ept, Sloc)6.2.4 2NF函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSloc1NF2NF6.2.4 2NF采用投影分解法將一個1NF的關(guān)系分解為多個2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。將一個1NF關(guān)系分解為多個2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。6.2.4 2NF2NF的定義定義6.6 若關(guān)系模式R1NF,并且每一個非主屬性都完全函數(shù)依賴于R的碼,則R2NF。例:SLC(Sno, Sdept, Sloc, Cno, Grade) 1NF SLC(Sno, Sdept, S
17、loc, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF SL(Sno, Sdept, Sloc) 2NFSnoCnoGradeSC課堂練習 已知學(xué)生關(guān)系模式S(Sno,Sname,SD,Sdname,Course,Grade)其中,Sno是學(xué)號,Sname是姓名,SD是系名,Sdname是系主任名,Course是課程,Grade是成績(1)寫出關(guān)系模式S的基本函數(shù)依賴和主碼;(2)原關(guān)系模式是第幾范式?如何分解成高一級范式?(做本題)(3)將關(guān)系模式分解成3NF,并說明為什么?6.2.4 2NF定義6.3 在關(guān)系模式R(U)中,如果XY,YZ,且Y X,YX,
18、則稱Z傳遞函數(shù)依賴于X。注: 如果YX, 即XY,則Z直接依賴于X。例: 在關(guān)系Std(Sno, Sdept, Mname)中,有:Sno Sdept,Sdept Mname Mname傳遞函數(shù)依賴于Sno四、傳遞函數(shù)依賴 6.2.5 3NF例:2NF關(guān)系模式SL(Sno, Sdept, Sloc)中函數(shù)依賴: SnoSdept SdeptSloc SnoSlocSloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。SLSnoSdeptSloc 6.2.5 3NF解決方法 采用投影分解法,把SL分解為兩個關(guān)系模式,以消除傳遞函數(shù)依賴: SD(Sno, Sdept) DL(Sde
19、pt, Sloc)SD的碼為Sno, DL的碼為Sdept。 6.2.5 3NFSD的碼為Sno, DL的碼為Sdept。SnoSdeptSDSdeptSlocDL2NF3NF 6.2.5 3NF3NF的定義定義6.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) 3NF 6.2.5 3NF若R3NF,則R的每一個非主屬性既不部分函數(shù)依賴于候選碼也不傳遞
20、函數(shù)依賴于候選碼。如果R3NF,則R也是2NF。采用投影分解法將一個2NF的關(guān)系分解為多個3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。 將一個2NF關(guān)系分解為多個3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。課堂練習 已知學(xué)生關(guān)系模式S(Sno,Sname,SD,Sdname,Course,Grade)其中,Sno是學(xué)號,Sname是姓名,SD是系名,Sdname是系主任名,Course是課程,Grade是成績(1)寫出關(guān)系模式S的基本函數(shù)依賴和主碼;(2)原關(guān)系模式是第幾范式?如何分解成高一級范式?(3)將關(guān)系模
21、式分解成3NF,并說明為什么?(做本題) 6.2.6 BCNF定義6.9 設(shè)關(guān)系模式R1NF,如果對于R的每個函數(shù)依賴XY,若Y不屬于X,則X必含有碼,那么RBCNF。若RBCNF 每一個決定屬性集(因素)都包含(候選)碼R中的所有屬性(主,非 主屬性)都完全函數(shù)依賴于碼沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性R3NF(?) 若R3NF 則 R不一定BCNF即在第三范式的基礎(chǔ)上,數(shù)據(jù)庫表中不存在任何屬性對任一候選碼的傳遞函數(shù)依賴和部分函數(shù)依賴6.2.6 BCNF證明題:若關(guān)系模式RBCNF,則R2NF。 6.2.6 BCNF例子:關(guān)系模式C(Cno,Cname,Pcno),它只有一個碼Cn
22、o,這里沒有任何屬性對Cno部分依賴或傳遞依賴,所以,C 3NF同時,C中Cno是唯一的決定因素,C同時又是碼,根據(jù)定義,C BCNF 6.2.6 BCNF例子:關(guān)系模式SJP(S,J,P)中,S是學(xué)生,J表示課程,P表示名次,每一個學(xué)生選修每門課程的成績有一定的名次,每門課程中每一名次只有一個學(xué)生(即沒有并列名次),可以得到以下依賴:(S,J) P; (J, P) S所以(S,J)和(J,P)都可以作為候選碼,這個關(guān)系模式中沒有屬性對碼傳遞依賴或部分依賴,所以,SJP 3NF,而且除(S,J)和(J,P)以外沒有其他決定因素,所以SJP BCNF 6.2.6 BCNF例:在關(guān)系模式STJ(S
23、,T,J)中,S表示學(xué)生,T表示教師,J表示課程。每一教師只教一門課。每門課由若干教師教,某一學(xué)生選定某門課,就確定了一個固定的教師。某個學(xué)生選修某個教師的課就確定了所選課的名稱 : TJ, (S,J)T,(S,T)J 6.2.6 BCNFSJTSTJSTJ 6.2.6 BCNFSTJ3NF(S,J)和(S,T)都可以作為候選碼S、T、J都是主屬性STJBCNFTJ,T是決定屬性集,T不是候選碼 6.2.6 BCNF解決方法:將STJ分解為二個關(guān)系模式: SJ(S,J) BCNF, TJ(T,J) BCNF 沒有任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴SJSTTJTJ課堂作業(yè)有一個配件管理表W
24、PE(WNO,PNO,ENO,QNT),其中,WNO表示倉庫號,PNO表示配件號,ENO表示職工號,QNT表示數(shù)量。有以下約束要求:(1)一個倉庫有多名職工(2)一個職工僅在一個倉庫工作(3)每個倉庫里一種型號的配件由一個職工負責,但一個人可以管理幾種配件;(4)同一個型號的配件可以分別放在幾個倉庫中(5)一個倉庫存儲某種配件的數(shù)量是一定的(6)一個職工管理某種配件的數(shù)量是一定的問題:(1)請寫出表中的函數(shù)依賴關(guān)系(2)判斷該表是否是3NF?(3)判斷該表是否是BCNF?課堂作業(yè)答案函數(shù)依賴關(guān)系:ENO WNO(WNO,PNO) QNT(WNO,PNO) ENO(ENO,PNO) QNT課堂作
25、業(yè)答案候選碼包括: (WNO,PNO)和(ENO,PNO)ENO,PNO,WNO都是主屬性,QNT是非主屬性所有非主屬性都是直接依賴于候選碼,因此是3NF關(guān)于主屬性:(WNO,PNO) ENO;ENO WNO,得到傳遞依賴(WNO,PNO) WNO,所以不是BCNF課堂作業(yè)答案可以繼續(xù)分拆成兩個表管理表EP(ENO,PNO,QNT)工作表EW(ENO,WNO)兩個表屬于BCNF多值依賴與第四范式(4NF)例: 學(xué)校中某一門課程由多個教師講授,他們使用相同的一套參考書。每個教師可以講多門課程,每種參考書可供多門課使用。關(guān)系模式Teaching(C, T, B) 課程C、教師T 和 參考書B表6.
26、1普通物理學(xué)光學(xué)原理物理習題集普通物理學(xué)光學(xué)原理物理習題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)李 勇李 勇李 勇王 軍王 軍王 軍李 勇李 勇李 勇張 平張 平張 平 物 理物 理物 理物 理物 理物 理數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué) 參考書B教員T課程C用二維表表示Teaching 多值依賴與第四范式(續(xù))TeachingBCNF:Teach具有唯一候選碼(C,T,B), 即全碼Teaching模式中存在的問題 (1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書就要存儲多少次 (2)插入操作復(fù)雜:當某一課程增加一名任課教師時,該課程有多少本參照書,就必須插入多少個元組例如物理課增
27、加一名教師劉關(guān),需要插入兩個元組: (物理,劉關(guān),普通物理學(xué)) (物理,劉關(guān),光學(xué)原理)多值依賴與第四范式(續(xù))(3) 刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個元組(4) 修改操作復(fù)雜:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個元組 產(chǎn)生原因存在多值依賴6.2.7 多值依賴定義6.10 設(shè)R(U)是一個屬性集U上的一個關(guān)系模式, X、 Y和Z是U的子集,并且ZUXY,多值依賴 XY成立當且僅當對R的任一關(guān)系r,r在(X,Z)上的每個值對應(yīng)一組Y的值,這組值僅僅決定于X值而與Z值無關(guān) 例 Teaching(C, T, B) 對于C的每一個值
28、,B有一組值與之對應(yīng),而不論T取何值6.2.7 多值依賴在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。6.2.7 多值依賴 t x y1 z2 s x y2 z1 w x y1 z1 v x y2 z2XYZ6.2.7 多值依賴平凡多值依賴和非平凡的多值依賴若XY,而Z,則稱 XY為平凡的多值依賴否則稱XY為非平凡的多值依賴6.2
29、.8 4NF定義6.10 關(guān)系模式R1NF,如果對于R的每個非平凡多值依賴XY(Y X),X都含有候選碼,則R4NF。 如果R 4NF, 則R BCNF 不允許有非平凡且非函數(shù)依賴的多值依賴 允許的是函數(shù)依賴(是非平凡多值依賴)6.2.8 4NF例: Teach(C,T,B) 4NF存在非平凡的多值依賴CT,且C不是候選碼用投影分解法把Teach分解為如下兩個關(guān)系模式: CT(C, T) 4NF CB(C, B) 4NF CT, CB是平凡多值依賴6.2.9 規(guī)范化關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計的工具。一個關(guān)系只要其分量都是不可分的數(shù)據(jù)項,它就是規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化。規(guī)
30、范化程度可以有多個不同的級別6.2.9 規(guī)范化規(guī)范化程度過低的關(guān)系不一定能夠很好地描述現(xiàn)實世界,可能會存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題一個低一級范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個高一級范式的關(guān)系模式集合,這種過程就叫關(guān)系模式的規(guī)范化6.2.9 規(guī)范化關(guān)系模式規(guī)范化的基本步驟 1NF 消除非主屬性對碼的部分函數(shù)依賴消除決定屬性 2NF集非碼的非平 消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴 3NF 消除主屬性對碼的部分和傳遞函數(shù)依賴 BCNF 消除非平凡且非函數(shù)依賴的多值依賴 4NF6.2.9 規(guī)范化消除不合適的數(shù)據(jù)依賴將各關(guān)系模式達到某種程度的“分離”采用“一事一地”的
31、模式設(shè)計原則 讓一個關(guān)系描述一個概念、一個實體或者實體間的一種聯(lián)系。若多于一個概念就把它“分離”出去所謂規(guī)范化實質(zhì)上是概念的單一化不能一味追求規(guī)范化程度高規(guī)范化的基本思想6.2.9 規(guī)范化在設(shè)計數(shù)據(jù)庫模式結(jié)構(gòu)時,必須對現(xiàn)實世界的實際情況和用戶應(yīng)用需求作進一步分析,確定一個合適的、能夠反映現(xiàn)實世界的模式上面的規(guī)范化步驟可以在其中任何一步終止第六章 關(guān)系數(shù)據(jù)理論6.1 數(shù)據(jù)依賴6.2 規(guī)范化6.3 數(shù)據(jù)依賴的公理系統(tǒng)6.4 模式的分解6.3 數(shù)據(jù)依賴的公理系統(tǒng)邏輯蘊含定義6.11 對于滿足一組函數(shù)依賴 F 的關(guān)系模式R ,函數(shù)依賴XY都成立,即r中任意兩元組t,s,若tX=sX,則tY=sY,則稱
32、 F邏輯蘊含X YArmstrong公理系統(tǒng)一套推理規(guī)則,是模式分解算法的理論基礎(chǔ)用途求給定關(guān)系模式的碼從一組函數(shù)依賴求得蘊含的函數(shù)依賴1. Armstrong公理系統(tǒng) 關(guān)系模式R 來說有以下的推理規(guī)則: A1.自反律(Reflexivity): 若Y X U,則X Y為F所蘊含。A2.增廣律(Augmentation):若XY為F所蘊含,且Z U,則XZYZ為F所蘊含。A3.傳遞律(Transitivity):若XY及YZ為F所蘊含,則XZ為F所蘊含。定理 6.l Armstrong推理規(guī)則是正確的(1)自反律:若Y X U,則X Y為F所蘊含證: 設(shè)Y X U 對R 的任一關(guān)系r中的任意兩
33、個元組t,s: 若tX=sX,由于Y X,有tY=sY, 所以XY成立. 自反律得證定理 6.l Armstrong推理規(guī)則是正確的定理6.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,所以XZYZ為F所蘊含.增廣律得證。定理6.l(3) 傳遞律:若XY及YZ為F所蘊含,則XZ為 F所蘊含。證:設(shè)XY及YZ為F所蘊含。對R 的任一關(guān)系 r中的任意兩個元組 t,s。若tX=sX,由于XY,有 tY=sY;
34、再由YZ,當tY=sY時,一定有tZ=sZ所以XZ為F所蘊含.傳遞律得證。2. 導(dǎo)出規(guī)則1.根據(jù)A1,A2,A3這三條推理規(guī)則可以得到下面三條推理規(guī)則: 合并規(guī)則:由XY,XZ,有XYZ。 (A2, A3) 偽傳遞規(guī)則:由XY,WYZ,有XWZ。 (A2, A3) 分解規(guī)則:由XY及 ZY,有XZ。 (A1, A3)導(dǎo)出規(guī)則2.根據(jù)合并規(guī)則和分解規(guī)則,可得引理6.1 引理6.l XA1 A2Ak成立的充分必要條件是XAi成立(i=l,2,k)。3. 函數(shù)依賴閉包定義6.12 在關(guān)系模式R中為F所邏輯蘊含的函數(shù)依賴的全體叫作 F的閉包,記為F+。3. 函數(shù)依賴閉包人們把自反律、傳遞律和增廣律稱為
35、Armstrong公理系統(tǒng)Armstrong公理系統(tǒng)有效性:由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來的每一個函數(shù)依賴一定在F+中 /* Armstrong正確完備性:F+中的每一個函數(shù)依賴,必定可以由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來 /* Armstrong公理夠用,完全Armstrong公理系統(tǒng)要證明完備性,就首先要解決如何判定一個函數(shù)依賴是否屬于由F根據(jù)Armstrong公理系統(tǒng)推導(dǎo)出來的函數(shù)依賴的集合如果能夠求出這個集合,問題就解決了但是,這個是一個NP完全問題F的閉包 , F+計算是NP完全問題,X A1A2.An F+=X , Y , Z , XY , XZ , YZ ,
36、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 XY, XYZ XZ,X ZYZ, XY XYZ, XZ XYZ, XYZ XYZ F=X Y,Y Z3. 函數(shù)依賴閉包定義6.13 設(shè)F為屬性集U上的一組函數(shù)依賴,X U, XF+ = AXA能由F 根據(jù)Armstrong公理
37、導(dǎo)出,XF+稱為屬性集X關(guān)于函數(shù)依賴集F 的閉包為了證明Armstrong公理系統(tǒng)完備性,需要引入以下概念:關(guān)于閉包的引理引理6.2 設(shè)F為屬性集U上的一組函數(shù)依賴,X,Y U,XY能由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y XF+用途將判定XY是否能由F根據(jù)Armstrong公理導(dǎo)出的問題,就轉(zhuǎn)化為求出XF+ ,判定Y是否為XF+的子集的問題(不再是NP完全問題)根據(jù)引理6.1可以進一步得到: U=A, B, C, D; F=A B, BC D;A+ =C+ =(AC)+ =實例AB.C. ABCD求閉包的算法算法6.l 求屬性集X(X U)關(guān)于U上的函數(shù)依賴集F 的閉包XF+
38、 輸入:X,F(xiàn)輸出:XF+步驟:算法6.l(1)令X(0)=X,i=0(2)求B,這里B = A |( V)( W)(VWF V X(i)A W);(3)X(i+1)=BX(i)(4)判斷X(i+1)= X (i)嗎?(5)若相等或X(i)=U , 則X(i)就是XF+ , 算法終止。(6)若否,則 i=i+l,返回第(2)步。算法6.l對于算法6.l, 令ai =|X(i)|,ai 形成一個步長大于1的嚴格遞增的序列,序列的上界是 | U |,因此該算法最多 |U| - |X| 次循環(huán)就會終止。函數(shù)依賴閉包例1 已知關(guān)系模式R,其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,AC
39、B。求(AB)F+ 。解 設(shè)X(0)=AB; (1)計算X(1): 逐一的掃描F集合中各個函數(shù)依賴, 找左部為A,B或AB的函數(shù)依賴。得到兩個:ABC,BD。 于是X(1)=ABCD=ABCD。函數(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。課堂練習例:設(shè)有關(guān)系模式R(U,F),其中U=A,B,C,D,E,IF=A D,AB E,BI E,CD I,E C請計算(AE)F+ 4. Armstrong公理系統(tǒng)的有
40、效性與完備性建立公理系統(tǒng)體系目的:從已知的 f 推導(dǎo)出未知的f明確:1.公理系統(tǒng)推導(dǎo)出來的 f 正確? 2. F+中的每一個 f 都能推導(dǎo)出來?f 不能由F 導(dǎo)出, f F+ F+fF4. Armstrong公理系統(tǒng)的有效性與完備性有效性:由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來的每一個函數(shù)依賴一定在F+中 /* Armstrong正確完備性:F+中的每一個函數(shù)依賴,必定可以由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來 /* Armstrong公理夠用,完全完備性:所有不能用Armstrong公理推導(dǎo)出來f, 都不為真 若 f 不能用Armstrong公理推導(dǎo)出來, f F+ 有效性與完備性的
41、證明證明:有效性根據(jù)定理6.1可以得證定理 6.l Armstrong推理規(guī)則是正確的Armstrong公理系統(tǒng)推理規(guī)則 關(guān)系模式R 來說有以下的推理規(guī)則: A1.自反律(Reflexivity): 若Y X U,則X Y為F所蘊含。A2.增廣律(Augmentation):若XY為F所蘊含,且Z U,則XZYZ為F所蘊含。A3.傳遞律(Transitivity):若XY及YZ為F所蘊含,則XZ為F所蘊含。有效性與完備性的證明證明:2. 完備性 要證明的題目:F+中的每一個函數(shù)依賴,必定可以由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來 只需證明逆否命題: 若函數(shù)依賴XY不能由F從Armstron
42、g公理導(dǎo)出,那么它必然不為F所蘊含分三步證明:有效性與完備性的證明(1)引理: 若VW成立,且V XF+,則W XF+ 證 因為 V XF+ ,所以有XV成立;(?) 因為X V,VW,于是XW成立 所以W XF+ (2) 構(gòu)造一張二維表r,它由下列兩個元組構(gòu)成 可以證明r必是R(U,F(xiàn))的一個關(guān)系,即F+中的全部函數(shù)依賴在 r上成立。 引理6.2 設(shè)F為屬性集U上的一組函數(shù)依賴,X,Y U,XY能由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y XF+Armstrong公理系統(tǒng)的有效性與完備性(續(xù)) XF+ U-XF+ 11.1 00.0 11.1 11.1 若r不是R 的關(guān)系,則必由
43、于F中有函數(shù)依賴VW在r上不成立所致。由r的構(gòu)成可知,V必定是XF+ 的子集,而W不是XF+ 的子集,可是由第(1)步,W XF+,矛盾。所以r必是R的一個關(guān)系。 Armstrong公理系統(tǒng)的有效性與完備性(續(xù))(3) 若XY 不能由F從Armstrong公理導(dǎo)出,則Y 不是XF+ 的子集。(引理6.2)因此必有Y 的子集Y 滿足 Y U-XF+, 則XY在 r 中不成立,即XY必不為 R 蘊含 /* 因為 F+中的全部函數(shù)依賴在 r上成立。引理6.2 設(shè)F為屬性集U上的一組函數(shù)依賴,X,Y U,XY能由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y XF+5. 函數(shù)依賴集等價定義6.1
44、4 如果G+=F+,就說函數(shù)依賴集F覆蓋G(F是G的覆蓋,或G是F的覆蓋),或F與G等價。函數(shù)依賴集等價的充要條件引理6.3 F+ = G+ 的充分必要條件是 F G+ ,和G F+ 證: 必要性顯然,只證充分性。 (1)若FG+ ,則XF+ XG+ 。 (2)任取XYF+ 則有 Y XF+ XG+ 。(?) 所以XY (G+)+= G+。即F+ G+。 (3)同理可證G+ F+ ,所以F+ = G+。引理6.2 設(shè)F為屬性集U上的一組函數(shù)依賴,X,Y U,XY能由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y XF+函數(shù)依賴集等價要判定F G+,只須逐一對F中的函數(shù)依賴XY,考察 Y
45、是否屬于XG+ 就行了。因此引理6.3 給出了判斷兩個函數(shù)依賴集等價的可行算法。6. 最小依賴集 定義6.15 如果函數(shù)依賴集F滿足下列條件,則稱F為一個極小函數(shù)依賴集。亦稱為最小依賴集或最小覆蓋。 (1) F中任一函數(shù)依賴的右部僅含有一個屬性。 (2) F中不存在這樣的函數(shù)依賴XA,使得F與F-XA等價。 (3) F中不存在這樣的函數(shù)依賴XA, X有真 子集Z使得F-XAZA與F等價。最小依賴集例2 對于6.1節(jié)中的關(guān)系模式S,其中: U= SNO,SDEPT,MN,CNAME,G , F= SNOSDEPT,SDEPTMN, (SNO,CNAME)G 設(shè)F=SNOSDEPT,SNOMN,
46、SDEPTMN,(SNO,CNAME)G, (SNO,SDEPT)SDEPTF是最小覆蓋,而F 不是。因為:F -SNOMN與F 等價 F -(SNO,SDEPT)SDEPT也與F 等價 F -(SNO,SDEPT)SDEPT SNOSDEPT也與F 等價7. 極小化過程定理6.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。 引理6.1(?)保證了F變換前后的等價
47、性。引理6.l XA1 A2Ak成立的充分必要條件是XAi成立(i=l,2,k)。極小化過程(2)逐一檢查F中各函數(shù)依賴FDi:XA, 令G=F-XA, 若AXG+, 則從F中去掉此函數(shù)依賴。 由于F與G =F-XA等價的充要條件是AXG+ 因此F變換前后是等價的。引理6.2 設(shè)F為屬性集U上的一組函數(shù)依賴,X,Y U,XY能由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y XF+極小化過程(3)逐一取出F中各函數(shù)依賴FDi:XA, 設(shè)X=B1B2Bm, 逐一考查Bi (i=l,2,m), 若A (X-Bi )F+ , 則以X-Bi 取代X。 由于F與F-XAZA等價的充要條件是AZF+
48、 ,其中Z=X-Bi 因此F變換前后是等價的。定義6.15 (3) F中不存在這樣的函數(shù)依賴XA, X有真子集Z使得F-XAZA與F等價。極小化過程由定義,最后剩下的F 就一定是極小依賴集。 因為對F的每一次“改造”都保證了改造前后的兩個函數(shù)依賴集等價,因此剩下的F與原來的F等價。 證畢定理6.3的證明過程 也是求F極小依賴集的過程極小化過程例3 F = AB,BA,BC, AC,CA Fm1、Fm2都是F的最小依賴集: Fm1= AB,BC,CA Fm2= AB,BA,AC,CA F的最小依賴集Fm不一定是唯一的它與對各函數(shù)依賴FDi 及XA中X各屬性的處置順序有關(guān)Fm2是先驗證BC得到的結(jié)
49、果例子:計算F的最小函數(shù)依賴集例1:關(guān)系模式R,其中U=C,T,H,R,S,G,F(xiàn)=CSG,CT,THR,HRC,HSR 請計算F的最小函數(shù)依賴集例子:計算F的最小函數(shù)依賴集 利用分解規(guī)則,將所有的函數(shù)依賴變成右邊都是單個屬性的函數(shù)依賴。由于F的所有函數(shù)依賴的右邊都是單個屬性,故不用分解。例子:計算F的最小函數(shù)依賴集 去掉F中多余的函數(shù)依賴 A設(shè)CSG為冗余的函數(shù)依賴,則去掉CSG,得: F1=CT,THR,HRC,HSR 計算(CS)F1+: 設(shè)X(0)=CS 計算X(1):掃描F1中各個函數(shù)依賴,找到左部為CS或CS子集的函數(shù)依賴,找到一個CT函數(shù)依賴。故有X(1)=X(0)T=CST。
50、計算X(2):掃描F1中的各個函數(shù)依賴,找到左部為CST或CST子集的函數(shù)依賴,沒有找到任何函數(shù)依賴。故有X(2)=X(1)。算法終止。 (CS)F1+= CST不包含G,故CSG不是冗余的函數(shù)依賴,不能從F1中去掉。例子:計算F的最小函數(shù)依賴集 B設(shè)CT為冗余的函數(shù)依賴,則去掉CT,得: F2=CSG,THR,HRC,HSR 計算(C)F2+: 設(shè)X(0)=C 計算X(1):掃描F2中的各個函數(shù)依賴,沒有找到左部為C的函數(shù)依賴。故有X(1)=X(0)。算法終止。故CT不是冗余的函數(shù)依賴,不能從F2中去掉。例子:計算F的最小函數(shù)依賴集C設(shè)THR為冗余的函數(shù)依賴,則去掉THR,得: F3=CSG
51、,CT,HRC,HSR 計算(TH)F3+: 設(shè)X(0)=TH 計算X(1):掃描F3中的各個函數(shù)依賴,沒有找到左部為TH或TH子集的函數(shù)依賴。故有X(1)=X(0)。算法終止。故THR不是冗余的函數(shù)依賴,不能從F3中去掉。例子:計算F的最小函數(shù)依賴集D設(shè)HRC為冗余的函數(shù)依賴,則去掉HRC,得: F4=CSG,CT,THR,HSR 計算(HR)F4+: 設(shè)X(0)=HR 計算X(1):掃描F4中的各個函數(shù)依賴,沒有找到左部為HR或HR子集的函數(shù)依賴。故有X(1)=X(0)。算法終止。故HRC不是冗余的函數(shù)依賴,不能從F4中去掉。例子:計算F的最小函數(shù)依賴集E設(shè)HSR為冗余的函數(shù)依賴,則去掉H
52、SR,得: F5=CSG,CT,THR,HRC 計算(HS)F5+: 設(shè)X(0)=HS 計算X(1):掃描F5中的各個函數(shù)依賴,沒有找到左部為HS或HS子集的函數(shù)依賴。故有X(1)=X(0)。算法終止。故HSR不是冗余的函數(shù)依賴,不能從F5中去掉。即:F5=CSG,CT,THR,HRC,HSR例子:計算F的最小函數(shù)依賴集 去掉F5中各函數(shù)依賴左邊多余的屬性(只檢查左部不是單個屬性的函數(shù)依賴),沒有發(fā)現(xiàn)左邊有多余屬性的函數(shù)依賴。故最小函數(shù)依賴集為:F=CSG,CT,THR,HRC,HSR極小化過程極小化過程( 定理6.3的證明 )也是檢驗F是否為極小依賴集的一個算法若改造后的F與原來的F相同,說
53、明F本身就是一個最小依賴集極小化過程在R中可以用與F等價的依賴集G來取代F原因:兩個關(guān)系模式R1 ,R2,如果F與G等價,那么R1的關(guān)系一定是R2的關(guān)系。反過來,R2的關(guān)系也一定是R1的關(guān)系。 候選碼的求解對于給定的關(guān)系R(A1,A2,An)和函數(shù)依賴集F,可以將其屬性分為4類:L類:僅出現(xiàn)在F的函數(shù)依賴左邊的屬性R類:僅出現(xiàn)在F的函數(shù)依賴右邊的屬性N類:在F的函數(shù)依賴左右兩邊均未出現(xiàn)的屬性LR類:在F的函數(shù)依賴左右兩邊均出現(xiàn)的屬性候選碼的求解(1)快速求解候選碼的一個充分條件定理:對于給定的關(guān)系模式R及其函數(shù)依賴集F,若X( XR)是L類屬性,則X必為R的任一候選碼的成員候選碼的求解例子:設(shè)
54、有關(guān)系模式R(A,B,C,D),其函數(shù)依賴集F=DB, BD, ADB, ACD ,求R的所有候選碼解:可以發(fā)現(xiàn),A和C屬性都是L類屬性,由前面定理可知,AC必是R的一候選碼的成員又因為(AC)+ =ACBD,所以,AC是R的候選碼候選碼的求解推論:對于給定的關(guān)系模式R及其函數(shù)依賴集F,若 XF+ 包含了R的全部屬性,則X必為R的唯一候選碼定理:對于給定的關(guān)系模式R及其函數(shù)依賴集F,如果X( XR)是R類屬性,則X不在任何候選碼中定理:設(shè)有關(guān)系模式R及其函數(shù)依賴集F, X( XR)是N類屬性,則X必包含在R的任一候選碼中候選碼的求解推論:對于給定的關(guān)系模式R及其函數(shù)依賴集F,如果X是R的N類和
55、L類組成的屬性集,且 XF+包含了R的全部屬性,則X是R的唯一候選碼候選碼的求解練習 已知關(guān)系模式R,其中U=A,B,C,D,E;F=ABC,BD,C D E,DC,ACB。1.列出R的碼 2.計算BF+3.求R的最小覆蓋Fm第六章 關(guān)系數(shù)據(jù)理論6.1 數(shù)據(jù)依賴6.2 規(guī)范化6.3 數(shù)據(jù)依賴的公理系統(tǒng)6.4 模式的分解6.4 模式的分解把低一級的關(guān)系模式分解為若干個高一級的關(guān)系模式的方法并不是唯一的只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價,分解方法才有意義模式的分解(續(xù))定義6.16 關(guān)系模式R的一個分解:= R1,R2,Rn U=U1U2Un,且不存在 Ui Uj,F(xiàn)i 為 F在 Ui
56、上的投影定義6.17 函數(shù)依賴集合XY | XY F+XY Ui 的一個覆蓋 Fi 叫作 F 在屬性 Ui 上的投影m模式的分解(續(xù))例: SL(Sno, Sdept, Sloc) F= SnoSdept,SdeptSloc,SnoSloc SL2NF 存在插入異常、刪除異常、冗余度大和修改復(fù)雜等問題分解方法可以有多種 模式的分解(續(xù))SL Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 IS B 95005PH B 模式的分解(續(xù))1. SL分解為下面三個關(guān)系模式: SN(Sno) SD(Sdept) SO(Sloc)分解后的關(guān)系為
57、: SN SD SO Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 PH 95005 模式的分解(續(xù))分解后的數(shù)據(jù)庫丟失了許多信息 例如無法查詢95001學(xué)生所在系或所在宿舍。 如果分解后的關(guān)系可以通過自然連接恢復(fù)為原來的關(guān)系,那么這種分解就沒有丟失信息模式的分解(續(xù))2. SL分解為下面二個關(guān)系模式: NL(Sno, Sloc) 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
58、95005 B 模式的分解(續(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模式的分解(續(xù))NL DL比原來的SL關(guān)系多了3個元組 無法知道95002、95004、95005 究竟是哪個系的學(xué)生 元組增加了,信息丟失了第三種分解方法3. 將SL分解為下面二個關(guān)系模式: ND(Sno, Sdept) NL(Sno, Sloc) 分解后的關(guān)系為: 模式的分解(續(xù))ND NL Sno Sdept Sno Sloc 95001 CS
59、 95001 A 95002 IS 95002 B 95003 MA 95003 C 95004 IS 95004 B 95005 PH 95005 B 模式的分解(續(xù)) ND NL Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 CS A 95005 PH B 與SL關(guān)系一樣,因此沒有丟失信息關(guān)系模式分解的標準三種模式分解的等價定義 分解具有無損連接性 分解要保持函數(shù)依賴 分解既要保持函數(shù)依賴,又要具有無損連接性具有無損連接性的模式分解關(guān)系模式R的一個分解 = R1,R2, ,Rn若R與R1、R2、Rn自然連接的結(jié)果相等,則稱關(guān)系模
60、式R的這個分解具有無損連接性(Lossless join)具有無損連接性的分解保證不丟失信息無損連接性不一定能解決插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題模式的分解(續(xù)) 第三種分解方法具有無損連接性 問題: 這種分解方法沒有保持原關(guān)系中的函數(shù)依賴 SL中的函數(shù)依賴SdeptSloc 沒有投影到關(guān)系模式ND、NL上保持函數(shù)依賴的模式分解設(shè)關(guān)系模式R被分解為若干個關(guān)系模式R1,R2,Rn (其中U=U1U2Un,且不存在Ui Uj,F(xiàn)i為F在Ui上的投影),若F所邏輯蘊含的函數(shù)依賴一定也由分解得到的某個關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊含,則稱關(guān)系模式R的這個分解是保持函數(shù)依賴的(Preser
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信工程技術(shù)規(guī)范
- 積極心理學(xué)應(yīng)用:心理健康教育長效機制構(gòu)建
- 利率市場化改革對中小企業(yè)融資效率的影響機制研究
- 2025年 重大安全事故
- 設(shè)計大跨橋梁健康監(jiān)測系統(tǒng)并優(yōu)化其性能
- 復(fù)工復(fù)產(chǎn)安全管理
- 強化安全生產(chǎn)教育
- 安全生產(chǎn)法自2002年11月1日起實施
- 觀看安全事故心得體會有感
- 民警開展消防安全檢查
- 手電筒產(chǎn)品課程設(shè)計報告書
- 《優(yōu)質(zhì)客戶服務(wù)技巧》
- TL4型彈性套柱銷聯(lián)軸器零件工藝規(guī)程及加工柱銷孔液動夾具設(shè)計
- 05-衣之鏢-輔行訣湯液經(jīng)法用藥圖釋義
- LS/T 3240-2012湯圓用水磨白糯米粉
- GB/T 15298-1994電子設(shè)備用電位器第一部分:總規(guī)范
- 2023高中學(xué)業(yè)水平合格性考試歷史重點知識點歸納總結(jié)(復(fù)習必背)
- 自然指數(shù)NatureIndex(NI)收錄的68種自然科學(xué)類期刊
- 手術(shù)報告審批單
- 《專業(yè)導(dǎo)論光電信息科學(xué)與工程》教學(xué)大綱
- 少兒美術(shù)國畫- 少兒希望 《紫藤課件》
評論
0/150
提交評論