版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Data Base SystemData Base SystemData Base System 第四章第四章 關系型數(shù)據(jù)庫規(guī)范設計關系型數(shù)據(jù)庫規(guī)范設計Data Base SystemData Base SystemData Base System 本章主要內容本章主要內容4.1 關系模式的設計問題關系模式的設計問題4.2 函數(shù)依賴函數(shù)依賴4.3 關系模式的分解特性關系模式的分解特性4.4 關系模式的范式關系模式的范式SQL數(shù)據(jù)庫的體系結構數(shù)據(jù)庫的體系結構SQL用戶用戶Base TableB1View V1View V2Base TableB2Base TableB3Base TableB4S
2、tored FileS1Stored FileS1Stored FileS1Stored FileS1外模式外模式模式模式內模式內模式SQL語言支持的關系數(shù)據(jù)庫的三級模式結構語言支持的關系數(shù)據(jù)庫的三級模式結構S#、SNAME、SDEPT、C#、CNAME、TIME、 S#、C#、GRADES (S#、SNAME、SDEPT)C(C#、CNAME、TIME)SC(S#、C#、GRADE)S#SNAMESDEPTC#CNAMETIMEGRADECNAME_SNAME_GRADE(C#,S#,GRADE)Data Base SystemData Base SystemData Base System
3、 4.1關系模式的設計問題關系模式的設計問題對于一個現(xiàn)實問題,它有一個屬性集對于一個現(xiàn)實問題,它有一個屬性集U,U,其中每個其中每個屬性屬性AiAi對應一個值域對應一個值域DOMDOM(AiAi),它由屬性集),它由屬性集U U和和U U上成立的數(shù)據(jù)完整性約束集組成。關系上成立的數(shù)據(jù)完整性約束集組成。關系r r是是關系模式關系模式R(U)R(U)的當前值,是一個元組的集合。的當前值,是一個元組的集合。這里的關系模式和關系一般稱為這里的關系模式和關系一般稱為泛關系模式和泛關系模式和泛關系。泛關系。R(S#、SNAME、SDEPT、C#、CNAME、TIME、 S#、C#、GRADE)但是對于許多
4、現(xiàn)實問題,往往但是對于許多現(xiàn)實問題,往往R(U)不是恰當?shù)男问剑仨毑皇乔‘數(shù)男问?,必須用一個關系模式的集合用一個關系模式的集合pR1,R2,Rk來代替來代替R(U),這里的這里的p稱為數(shù)據(jù)庫模式。對數(shù)據(jù)庫模式的每一個關系模稱為數(shù)據(jù)庫模式。對數(shù)據(jù)庫模式的每一個關系模式賦予一個當前值,就得到一個數(shù)據(jù)庫實例(數(shù)據(jù)庫)。式賦予一個當前值,就得到一個數(shù)據(jù)庫實例(數(shù)據(jù)庫)。S (S#、SNAME、SDEPT) C(C#、CNAME、TIME) SC(S#、C#、GRADE)Data Base SystemData Base SystemData Base System 什么是好的數(shù)據(jù)庫設計什么是好的數(shù)據(jù)
5、庫設計體現(xiàn)客觀世界的信息體現(xiàn)客觀世界的信息無過度的冗余無過度的冗余無插入異常無插入異常無更新復雜無更新復雜無刪除異常無刪除異常4.1關系模式的設計問題關系模式的設計問題Data Base SystemData Base SystemData Base System 4.14.1關系模式的設計問題關系模式的設計問題TNAMEADDRESSC#CNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4關系模式關系模式R(TNAME,ADDRESS,C#,CNAME)4.14.1關系模式的設計問題關系模式的設計問題對數(shù)據(jù)庫操作時對數(shù)據(jù)庫操作時, ,會出
6、現(xiàn)以下問題會出現(xiàn)以下問題1 1、數(shù)據(jù)冗余:數(shù)據(jù)冗余:( (數(shù)據(jù)重復存儲數(shù)據(jù)重復存儲: :浪費存儲空間浪費存儲空間, ,數(shù)據(jù)庫維護困難)數(shù)據(jù)庫維護困難) 如一名教師教多門課程,他的地址要重復多次如一名教師教多門課程,他的地址要重復多次2 2、更新異常更新異常:如果一個教師教了三門課程,則如果他的地址變了,:如果一個教師教了三門課程,則如果他的地址變了,三個元組的地址信息都要變。若有一個沒變,就會造成地址三個元組的地址信息都要變。若有一個沒變,就會造成地址不唯一,產生錯誤信息。不唯一,產生錯誤信息。 3 3、插入異常插入異常:主鍵為空的記錄不能存在于數(shù)據(jù)庫:主鍵為空的記錄不能存在于數(shù)據(jù)庫, ,導致
7、不能進行導致不能進行插入操作插入操作 如教師沒有分配教學任務,就不能插入數(shù)據(jù)庫。如教師沒有分配教學任務,就不能插入數(shù)據(jù)庫。4. 4. 刪除異常刪除異常:刪除操作后:刪除操作后, ,會引起一些信息的丟失。會引起一些信息的丟失。 如一個原有教學任務的教師教師現(xiàn)在沒有教學任務,要把這個如一個原有教學任務的教師教師現(xiàn)在沒有教學任務,要把這個教師的所有元組都刪去。這樣就把這個教師的姓名和地址也教師的所有元組都刪去。這樣就把這個教師的姓名和地址也從數(shù)據(jù)庫中刪去了,不合理。從數(shù)據(jù)庫中刪去了,不合理。TNAMEADDRESSC#CNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2
8、c5n2t3a3c6n44.14.1關系模式的設計問題關系模式的設計問題解決之道:分解! 分解! 再分解!TNAMEADDRESSt1a1t2a2t3a3TNAMEC#CNAMEt1c1n1t1c2n2t1c3n3t2c4n4t2c5n2t3c6n4分解為兩個模式:R1(TNAME,ADDRESS)R2(TNAME,C#,CNAME)考慮為學生的選課信息而設計一個關系模式??紤]為學生的選課信息而設計一個關系模式。過度冗余過度冗余數(shù)據(jù)重復數(shù)據(jù)重復更新異常更新異常更新代價大、可能導致數(shù)據(jù)不一致更新代價大、可能導致數(shù)據(jù)不一致刪除異常刪除異常部分信息的刪除可能導致信息的丟失部分信息的刪除可能導致信息的
9、丟失插入異常插入異常必須有完整信息必須有完整信息怎么分解最佳?4.1關系模式的設計問題關系模式的設計問題Data Base SystemData Base SystemData Base System 4.2 函數(shù)依賴函數(shù)依賴 (FD, Function Dependence) y=f(x)y=3xData Base SystemData Base SystemData Base System 4.2.1 函數(shù)依賴定義函數(shù)依賴定義設有關系模式R(A1,A2,.An)或簡記為R(U),X,Y是U的子集,r是R的任一具體關系, 如果對r的任意兩個元組t1,t2,由t1X=t2X導致t1Y=t2Y,
10、則稱X函數(shù)決定Y,或Y函數(shù)依賴于X, 記為XY。XY為模式R的一個函數(shù)依賴。 如如S# Sname, (S#,C#) Grade 該定義理解如下:有一張設計好的二維表,X,Y是表的某些列(可以是一列,也可以是多列),若在表中的第t1行,和第t2行上的X值相等, 那么必有t1行和t2行上的Y值也相等,這就是說Y函數(shù)依賴于X。 比如,有如下二維表 Data Base SystemData Base SystemData Base System 在表中,凡成績相同的,對應的“成績等級”也必是相同的,因此,“成績等級”函數(shù)依賴于成績。 但是反過來則不成立。 Notice: (1)在這張表中,任何一行的
11、關系均應符合函數(shù)依賴的條件,如果有一行不符合函數(shù)依賴的條件,則函數(shù)依賴對于這個關系就不成立。 (2)函數(shù)依賴是否成立是不可證明的,只能通過屬性的含義來判斷. Data Base SystemData Base SystemData Base System 表例表例學號學號姓名姓名成績成績成績等級成績等級0000100001李里李里7777C C0000200002丁力丁力9191A A0000300003李小紅李小紅8585B B0000400004馬琳馬琳8585B B0000500005王佳怡王佳怡6666D D0000600006胡林胡林7070C C.Data Base SystemD
12、ata Base SystemData Base System 舉例:職工號(A) 基本工資(B)獎金(C) 051390 50 052 420 50 053 390 80A B A C B A C AData Base SystemData Base SystemData Base System 4.2.2 函數(shù)依賴幾點說明函數(shù)依賴幾點說明1. 函數(shù)依賴是語義范疇的概念.它反映了一種語義完整性約束,只能根據(jù)語義來確定一個函數(shù)依賴.例如,“姓名”“年齡”這個函數(shù)依賴只有在沒有同名人的條件下成立,否則,此函數(shù)依賴不成立。2. 函數(shù)依賴是指關系R模式的所有關系元組均應滿足的約束條件,而不是關系模式
13、中的某個或某些元組滿足的約束條件。Data Base SystemData Base SystemData Base System 4.2.2 函數(shù)依賴幾點說明函數(shù)依賴幾點說明3. 函數(shù)依賴與屬性間的聯(lián)系類型有關(1)若屬性X和Y之間有“一對一”的聯(lián)系, 則X Y,Y X,X Y.(如不存在同名的學號和姓名)(2)若屬性X和Y之間有“多對一”的聯(lián)系, 則X Y,但Y X. (3)若屬性X和Y之間有“多對多”的聯(lián)系, 則X與Y之間不存在任何函數(shù)依賴.當確定函數(shù)依賴關系時當確定函數(shù)依賴關系時, ,可從屬性間的聯(lián)系入手可從屬性間的聯(lián)系入手Data Base SystemData Base Syste
14、mData Base System 函數(shù)依賴函數(shù)依賴 (FD, Function Dependence) y=f(x)問:問:X X、Y Y是誰函數(shù)依賴誰?是誰函數(shù)依賴誰?是是X X函數(shù)依賴函數(shù)依賴Y Y?還是?還是Y Y函數(shù)依賴函數(shù)依賴X X?答:答:Y Y函數(shù)依賴函數(shù)依賴X X(X X函數(shù)決定函數(shù)決定Y Y)X=1 y=3;X=2 y=6;y=3 x=1;y=6 x=2;y=x2X=1 y=1;X=-2y=4;y=1 x=1or x=-1;y2=x2y=1 x=1or x=-1;x=1 y=1or y=-1;y=3x問:問:X X、Y Y是誰函數(shù)依賴誰?是誰函數(shù)依賴誰?是是X X函數(shù)依賴函
15、數(shù)依賴Y Y?還是?還是Y Y函數(shù)依賴函數(shù)依賴X X?答:沒有任何函數(shù)依賴關系答:沒有任何函數(shù)依賴關系Data Base SystemData Base SystemData Base System 4.2.2 函數(shù)依賴幾點說明函數(shù)依賴幾點說明4. 如果X Y,并且Y不是X的子集,則稱X Y是非平凡的函數(shù)依賴非平凡的函數(shù)依賴;如果Y是X的子集,則稱XY是平凡的函數(shù)依賴; 我們討論的是非平凡的函數(shù)依賴.例如:(S#,SN) SN是平凡的函數(shù)依賴5. 函數(shù)依賴的存在,決定了自然連接的特性 設關系模式R(X,Y,Z),X,Y,Z為不相交的屬性集合,若XY,X Z, 則有R(X,Y,Z)=R(X,Y)
16、 R(X,Z) 即用它們的自然連接可復員原關系模式Data Base SystemData Base SystemData Base System 舉例:舉例:關系模式關系模式S(S#,SN,C#,G,CN,TN,TA)S(S#,SN,C#,G,CN,TN,TA)主鍵:主鍵:(S#,C#)函數(shù)依賴:函數(shù)依賴:S# SN(每個學生只能有一個姓名)(每個學生只能有一個姓名)C# CN(每個課程號只能對應一門課程每個課程號只能對應一門課程)TN TA(每個教師只能有一個年齡)每個教師只能有一個年齡)(S#,C#) G(每個學生學習一門課程只每個學生學習一門課程只能有一個成績)能有一個成績)Data
17、Base SystemData Base SystemData Base System 4.2.2 函數(shù)依賴函數(shù)依賴ABC142356346738910說明關系是否滿足下列函數(shù)依賴:說明關系是否滿足下列函數(shù)依賴:A A B A B A C AB C AB C C C C A AC A AC B B不滿足AB,因為(3,5,6)和(3,4,6),t1(A)=t2(A)=3,但是t1(B)=5而t2(A)=4A C AB C C AData Base SystemData Base SystemData Base System 4.2.3 鍵鍵定義定義 超鍵超鍵:設:設X X為關系為關系R R的屬
18、性或屬性組,的屬性或屬性組,U U為為R R的元的元組若組若X X U U,則稱,則稱X X為為R R的超鍵。的超鍵。 候選鍵候選鍵:設:設X X為為R R的超鍵,若的超鍵,若X X中不含多余屬性,中不含多余屬性,則稱則稱X X為為R R的候選鍵。的候選鍵。 主鍵主鍵:若關系:若關系R R有多個候選鍵,則可以從中選有多個候選鍵,則可以從中選定一個作為定一個作為R R的主鍵。的主鍵。 主屬性主屬性:包含在任何一個候選鍵中的屬性,稱:包含在任何一個候選鍵中的屬性,稱作主屬性,不包含在任何鍵中的屬性稱為非主作主屬性,不包含在任何鍵中的屬性稱為非主屬性。屬性。 全鍵全鍵:關系模式的鍵由整個屬性組構成。
19、:關系模式的鍵由整個屬性組構成。如(如(S#S#,C#C#,T#T#)Data Base SystemData Base SystemData Base System 4.2.3 鍵鍵候選鍵的兩個性質候選鍵的兩個性質: :1 1、標識的唯一性標識的唯一性: : 對于對于R(U)R(U)中的每一元組中的每一元組,X,X的值的值確定后確定后, ,該元組就相應確定了該元組就相應確定了. .即:即:X X函數(shù)決定該關系的所有其他屬性函數(shù)決定該關系的所有其他屬性(XR)(XR) X X A1A2A1A2AnAnS# S# SD,SS,SBirthdaySD,SS,SBirthday2 2、無冗余性無冗余
20、性: X: X是屬性組的情況下是屬性組的情況下,X,X的任何真子集的任何真子集都不能唯一標識該元組都不能唯一標識該元組 即:不存在即:不存在X X的真子集的真子集Y,Y,使得使得Y Y A1A2A1A2AnAn (S#,C#) (S#,C#) GradeGradeData Base SystemData Base SystemData Base System 4.2.3 鍵鍵舉例:設關系模式R(XYZ),已知FD是X Y,Y Z,那么可以推出X XYZ也在F+中,但X的真子集(此處是空值)不可能函數(shù)決定XYZ,所以X是模式R的鍵。職工關系模式ZG(工號,姓名,年齡,性別,工資)工號工號 ( (
21、工號,姓名,年齡,性別,工資),工號,姓名,年齡,性別,工資),工號沒有真子集,所以工號是鍵。工號沒有真子集,所以工號是鍵。( (工號,姓名)工號,姓名) ( (工號,姓名,年齡,性別,工號,姓名,年齡,性別,工資)工資) ,但不是鍵。,但不是鍵。Data Base SystemData Base SystemData Base System 4.3 4.3 關系模式的分解特性關系模式的分解特性我們可以通過把一個關系模式的分解成我們可以通過把一個關系模式的分解成多個關系模式,以解決它的插入、刪除多個關系模式,以解決它的插入、刪除和更新操作所帶來的一些問題。和更新操作所帶來的一些問題。為了在分解
22、要保證原來模式所滿足的特為了在分解要保證原來模式所滿足的特性,要求分解處理具有無損聯(lián)接和保持性,要求分解處理具有無損聯(lián)接和保持函數(shù)依賴。函數(shù)依賴。Data Base SystemData Base SystemData Base System 4.3.1 模式分解中存在的問題模式分解中存在的問題設有關系R=A1A2An,R1,R2Rn是R的子集,R=R1UR2URk,設有關系模式R1,R2Rk的集合用p表示,p R1,R2Rk。用p代替R的過程稱為關系模式的分解。P稱為R的一個分解,也稱為數(shù)據(jù)庫模式。R稱為泛關系模式,R對應的當前值稱為泛關系。數(shù)據(jù)庫對應的當前值稱為數(shù)據(jù)庫實例,它是由數(shù)據(jù)庫模式
23、中的每一個關系模式的當前值組成, r1,r2rk來表示。Data Base SystemData Base SystemData Base System 4.3 .1 模式分解中存在的問題模式分解中存在的問題實際上,關系模式的分解,不僅僅是屬性集合的分解,它是對關系模式上的函數(shù)依賴集,以及關系模式的當前值的分解的具體表現(xiàn)。4.3.1 模式分解中存在的問題模式分解中存在的問題R(A, B, C)ABC112221AB1122BC1221ABC112221AB(R)BC(R)AB(R)BC(R)R(A, B, C)ABC111212AB1121BC1112ABC111112211212AB(R)B
24、C(R)AB(R)BC(R)有損分解有損分解無損分解無損分解Data Base SystemData Base SystemData Base System 4.3.1 模式分解中存在的問題模式分解中存在的問題關系模式的分解有幾個衡量標準:關系模式的分解有幾個衡量標準:分解具有無損連接分解具有無損連接分解保持函數(shù)依賴分解保持函數(shù)依賴分解既要保持依賴,又要具有無損聯(lián)接分解既要保持依賴,又要具有無損聯(lián)接達到更高級范式達到更高級范式Data Base SystemData Base SystemData Base System 4.3.2 無損聯(lián)接無損聯(lián)接無損連接分解無損連接分解 定義定義關系模式關
25、系模式R,分解成關系模式,分解成關系模式p=R1,R2Rk,F是是R上的一個函數(shù)依賴集。上的一個函數(shù)依賴集。如果對如果對R中滿足中滿足F的每一個關系的每一個關系r都有:都有: r=R1(r) R2(r) Rk(r)則稱此分解則稱此分解p是相對于是相對于F是是“無損連接分解無損連接分解”。即即r為它在為它在Ri上的投影的自然聯(lián)接。上的投影的自然聯(lián)接。 Ri(r) 表示關系表示關系r在模式在模式Ri的屬性上的投影。的屬性上的投影。4.3.2 無損聯(lián)接的測試無損聯(lián)接的測試將R(A,B,C)分解為兩個模式R1(A,B)和R2(B,C)ABCa1b1c1a2b1c2a7b3c3a8b4c4a9b5c5A
26、Ba1b1a2b1a7b3a8b4a9b5BCb1c1b1c2b3c3b4c4b5c5R(A,B,C)關系r1關系r2關系4.3.2 無損聯(lián)接的測試無損聯(lián)接的測試ABCa1b1c1a2b1c2a7b3c3a8b4c4a9b5c5R(A,B,C)關系ABCa1b1c1a1b1c2a2b1c1a2b1c2a7b3c3a8b4c4a9b5c5R1(A,B)R2(B,C)所以把所以把R R(A,B,C)A,B,C)分解為兩個模式分解為兩個模式R1(A,B)R1(A,B)和和R2(B,C)R2(B,C)不是具有無損聯(lián)接性的分解。不是具有無損聯(lián)接性的分解。Data Base SystemData Base
27、 SystemData Base System 4.3.2 無損聯(lián)接的測試無損聯(lián)接的測試如果一個模式分解不是無損聯(lián)接分解,如果一個模式分解不是無損聯(lián)接分解,那么分解不能通過自然聯(lián)接運算恢復,那么分解不能通過自然聯(lián)接運算恢復, 因此要求分解時利用屬因此要求分解時利用屬性間的函數(shù)依賴的性質性間的函數(shù)依賴的性質,才能保證此分解具有無損聯(lián)接性。才能保證此分解具有無損聯(lián)接性。 問題提出:在關系模式的規(guī)范化處理過程中,不僅要知道一個給定的函數(shù)依賴集合,還要知道由給定的函數(shù)依賴集合所蘊涵(或推導出)的所有函數(shù)依賴的集合。為此,需要一個有效而完備的公理系統(tǒng),Armstrong公理系統(tǒng)即是這樣的一個系統(tǒng)。Arm
28、strong公理系統(tǒng) 蘊含定義:設F是R上的函數(shù)依賴集合, XY是R的一個函數(shù)依賴 。如果R的一個關系實例滿足F,則必然滿足XY,則稱F邏輯蘊含(Imply) XY。 Armstrong公理:為從已知的函數(shù)依賴推導出其他的函數(shù)依賴,Armstrong提出了一套推理規(guī)則,稱為Armstrong公理(Armstrongs Axioms)。 閉包定義:函數(shù)依賴集合F所邏輯蘊含的函數(shù)依賴的全體,稱為F的閉包(Closure), 記為F+。 (2) 增廣律增廣律(Augmentation)(Augmentation) :若XY,ZU,則XZYZ。 (1) 自反律自反律(Reflexivity)(Refl
29、exivity) :若YXU,則XY。 (3) 傳遞律傳遞律(Transitivity)(Transitivity) :若XY和YZ,則XZ。 引理引理 1 1:Armstrong公理是正確的,即:如F成立,則由F根據(jù)Armstrong公理所推導的函數(shù)依賴總是成立的。 引理引理 2 2:如下三條推理規(guī)則是正確的: 公理包含如下三條推理規(guī)則: (2) 偽傳遞規(guī)則偽傳遞規(guī)則(Pseudo Transitivity)(Pseudo Transitivity):如果XY,YWZ,則XWZ。 (1) 合并規(guī)則合并規(guī)則(Union)(Union):如果XY,XZ,則XYZ。 (3) 分解規(guī)則分解規(guī)則(De
30、composition)(Decomposition):如果XY,ZY,則XZ。 或:如XYZ,則XY,XZ。F的閉包的閉包F+ 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
31、YZ, XY XZ, XZ XY, XYZ XZ,X ZYZ, XY XYZ, XZ XYZ, XYZ XYZ Data Base SystemData Base SystemData Base System S(學號,系號,宿舍樓號)F=學號系號,系號宿舍樓號顯然,S不屬于3NF。分解分解0: S01(學號學號),S02(系號系號,宿舍樓號宿舍樓號)Data Base SystemData Base SystemData Base System S(學號,系號,宿舍樓號)F=學號系號,系號宿舍樓號顯然,S不屬于3NF。顯然分解分解0是不可行的。是不可行的。分解分解0 : S01(學號學號),
32、 S02(系號系號,宿舍樓號宿舍樓號) 分解分解1: S11(學號學號,宿舍樓號宿舍樓號),S12(系號系號,宿舍樓號宿舍樓號)分解分解2: S21(學號學號,系號系號), S22(學號學號, 宿舍樓號宿舍樓號)分解分解3: S31(學號學號,系號系號), S32(系號系號,宿舍樓號宿舍樓號)顯然,都屬于3NF(事實上,都屬于BCNF、4NF)。Data Base SystemData Base SystemData Base System 學號系號宿舍樓號S1D1AS2D2BS3D2BS4D3A學號宿舍樓號S1AS2BS3BS4A系號宿舍樓號D1AD2BD3A投影操作(投影操作(分解分解1:
33、 S11,S12)SData Base SystemData Base SystemData Base System 學號宿舍樓號系號宿舍樓號S1AD1AS1AD2BS1AD3AS2BD1AS2BD2BS2BD3AS3BD1AS3BD2BS3BD3AS4AD1AS4AD2BS4AD3AData Base SystemData Base SystemData Base System 學號系號宿舍樓號S1D1AS1D3AS2D2BS3D2BS4D1AS4D3A學號系號宿舍樓號S1D1AS2D2BS3D2BS4D3ASSSS結論:結論:分解分解1不是不是好的分解好的分解Data Base Syste
34、mData Base SystemData Base System 3個或更多的關系模式的情況下要判別分解是否具有無損連接性要比較復雜的算法。2個則很容易。定理1U1U2U1-U2F+或U1U2U2-U1F+定理2如果FD XY在模式R上成立,且XY=,那么R分解成 =R-Y,XY是無損分解,例如:S(學號,系號,宿舍樓號)F=學號學號系號系號,系號宿舍樓號XY, =R-Y,XYS1(學號,宿舍樓號) S2(學號學號,系號系號)Data Base SystemData Base SystemData Base System 分解分解1: S11(學號學號,宿舍樓號宿舍樓號),S12(系號系號,
35、宿舍樓宿舍樓號號)U1U2=宿舍樓號,宿舍樓號, U1-U2=學號(不成立)學號(不成立)或U1U2=宿舍樓號,宿舍樓號, U1-U2=系號(不成立)系號(不成立)(F=學號系號,系號宿舍樓號, F+ )Data Base SystemData Base SystemData Base System 分解分解2:S21(學號學號,系號系號),S22(學號學號, 宿舍樓號宿舍樓號)U1U2=學號,學號, U1-U2=系號。系號。顯然,顯然, U1U2U1-U2。結論:分解。結論:分解2具具有無損連接性有無損連接性.但是分解但是分解2也不是好的方案。也不是好的方案。Data Base System
36、Data Base SystemData Base System 假設學生S3從D2系轉到D3系,要修改兩個關系,否則數(shù)據(jù)庫中的信息會不一致。這是由于分解得到的兩個關系模式不是互相獨立造成的。系號宿舍樓號沒投影在同一個關系中。于是我們有要求模式分解保持函數(shù)依賴這條等價標準。結論:分解2雖然是無損分解,但丟失了函數(shù)依賴系號宿舍樓號學號宿舍樓號S1AS2BS3BS4A學號系號S1D1S2D2S3D2S4D3Data Base SystemData Base SystemData Base System 分解分解3: S31(學號學號,系號系號),S32(系號系號,宿舍樓號宿舍樓號) F=學號系號,
37、系號宿舍樓號1:保持函數(shù)依賴的。2:根據(jù)U1U2U1-U2F+或U1U2U2-U1F+U1U2=系號,系號, U2-U1=宿舍樓號宿舍樓號這一分解也這一分解也具有無損連接性結論:分解分解3是一個好的分解Data Base SystemData Base SystemData Base System 4.3.3 保持函數(shù)依賴的分解保持函數(shù)依賴的分解保持關系模式分解等價的另一個重要條保持關系模式分解等價的另一個重要條件是關系模式的函數(shù)依賴集在分解后仍件是關系模式的函數(shù)依賴集在分解后仍在數(shù)據(jù)庫模式中保持不變。在數(shù)據(jù)庫模式中保持不變。即關系模式即關系模式R R 到到 =R1,R2=R1,R2RkRk
38、的分解,的分解,應使函數(shù)依賴集應使函數(shù)依賴集F,F,被被F F在這些在這些RiRi上的投影上的投影蘊涵。蘊涵。Data Base SystemData Base SystemData Base System F在在AB,AC,DB,CD上的投影分別為上的投影分別為AB,AC,DC 丟失了丟失了BC,AD, ,所以此分解不保持所以此分解不保持FDFDn設關系模式R(A,B,C,D)F是R上成立的FD集,F(xiàn)=AB,BC,AD,DC, , =AB,AC,BD,CD是R的一個分解。4.3.3 保持函數(shù)依賴的分解保持函數(shù)依賴的分解Data Base SystemData Base SystemData
39、Base System 4.3.4 模式分解與模式等價問題模式分解與模式等價問題模式分解的兩個特性實際上涉及兩個數(shù)據(jù)庫模式的等價問題,這種等價數(shù)據(jù)等價和依賴等價兩個方面。1.數(shù)據(jù)等價是指兩個數(shù)據(jù)庫實例應表示同樣的信息內數(shù)據(jù)等價是指兩個數(shù)據(jù)庫實例應表示同樣的信息內容,用無損分解衡量。容,用無損分解衡量。2.依賴等價是指兩個數(shù)據(jù)庫模式應有相同的依賴集閉依賴等價是指兩個數(shù)據(jù)庫模式應有相同的依賴集閉包。在依賴集閉包相等的情況下,數(shù)據(jù)的語義是不包。在依賴集閉包相等的情況下,數(shù)據(jù)的語義是不會出差錯的會出差錯的。違反數(shù)據(jù)等價或語義等價的分解很難說是一個好的分解。但同時達到也不是簡單的事情。Data Base
40、 SystemData Base SystemData Base System 4.3.4 關于模式分解的幾個事實關于模式分解的幾個事實分解具有無損連接性和分解保持函數(shù)依賴是兩個相互分解具有無損連接性和分解保持函數(shù)依賴是兩個相互獨立的標準。獨立的標準。1.具有無損連接性性的分解不一定保持函數(shù)依賴例如分解2.2保持函數(shù)依賴的分解不一定具有無損連接性如SC(SNO,DNO,CNO,CREDIT)F=SNO DNO,CNO CREDIT分解為兩個關系模式:SC1(SNO,DNO)SC2(CNO,CREDIT)這個分解保持函數(shù)依賴的分解不具有無損連接性結論:關系模式的一個分解可能具有無損連接性,可能是
41、保持函數(shù)依賴,有可能是即具有無損連接性也保持函數(shù)依賴Data Base SystemData Base SystemData Base System 4.3.4關于模式分解的幾個事實關于模式分解的幾個事實n若要求分解具有無損連接性,那么模式分解可以達到BCNF;n若要求分解保持函數(shù)依賴,那么模式分解可以達到3NF,但不一定達到BCNF;n若要求分解即具有無損連接性,又保持函數(shù)依賴,那么模式分解可以達到3NF,但不一定達到BCNF;Data Base SystemData Base SystemData Base System 4.4 關系模式的范式關系模式的范式 (NF,Normal Form
42、) 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BCNF 第四范式(4NF) 第五范式(5NF)考核要求:了解考核要求:了解考核要求:領會考核要求:領會Data Base SystemData Base SystemData Base System 為什么要關系規(guī)范化?為什么要關系規(guī)范化? 關系模式的存儲異常關系模式的存儲異常: :數(shù)據(jù)冗余、更新異常、數(shù)據(jù)冗余、更新異常、 插入異常和刪除異常插入異常和刪除異常 關系模式的設計:把泛關系模式分解成規(guī)范關系模式的設計:把泛關系模式分解成規(guī)范化的數(shù)據(jù)庫模式?;臄?shù)據(jù)庫模式。Data Base SystemData Base Syste
43、mData Base System 二維表的例子二維表的例子學號學號姓名姓名專業(yè)專業(yè)課程號課程號課程名課程名教師教師系系辦公室辦公室電話電話教室教室成績成績01張張計算計算機機CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算計算機機13025894024940989張張計算計算機機CS02數(shù)學數(shù)學趙趙數(shù)學數(shù)學30235890323882376張張計算計算機機CS03英語英語陳陳外語外語5034589403050207102王王網(wǎng)絡網(wǎng)絡CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算計算機機13025894024940973王王網(wǎng)絡網(wǎng)絡CS02數(shù)學數(shù)學趙趙數(shù)學數(shù)學30235890323882388王王網(wǎng)絡網(wǎng)絡CS03英語英語陳陳外語外
44、語50345894030502003李李通訊通訊CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算計算機機130258940249409李李通訊通訊CS04C+周周計算計算機機303358903338832李李通訊通訊CS03英語英語陳陳外語外語503458940305020#Data Base SystemData Base SystemData Base System 需要的知識需要的知識理解“非主屬性”、“完全函數(shù)依賴”、“候選鍵”、“部分函數(shù)依賴”、“傳遞函數(shù)依賴”這五個名詞的含義。 (1)候選鍵:可以唯一決定關系模式R中某元組值且不含有多余屬性的屬性集。 (2)非主屬性:即非鍵屬性,指關系模式R中不包含在
45、任何建中的屬性。 (3)完全函數(shù)依賴:設R為任意給定關系,x、y其屬性集,若xy,且對x中的任何真子集,x都有xy。則稱y完全函數(shù)依賴于x。 Data Base SystemData Base SystemData Base System (4)部分函數(shù)依賴: 設R為任意給定關系,x、y其屬性集,若xy,且x中存在一個真子集x ,x滿足xy。則稱y部分函數(shù)依賴于x。 (5)傳遞函數(shù)依賴:設R為任意給定關系,x、y、z其屬性集,若xy, yx, yz,則有xz,則稱z傳遞函數(shù)依賴于x。Data Base SystemData Base SystemData Base System 1 1NFNF
46、:第一范式第一范式1NF:第一范式 即關系模式中的屬性的值域中每一個值都是不可再分解的值。 如果某個數(shù)據(jù)庫模式都是第一范式的,則稱該數(shù)據(jù)庫模式是屬于第一范式的數(shù)據(jù)庫模式。 Data Base SystemData Base SystemData Base System 第二范式第二范式 如果關系模式R為第一范式,并且R中每一個非主屬性完全函數(shù)依賴于R的某個候選鍵, 則稱為第二范式模式。 在分析是否為第2范式時,應首先確定候選鍵,然后把關系模式中的非主屬性與鍵的依賴關系進行考察, 是否都為完全函數(shù)依賴,如是,則此關系模式為2NF。 如果如果數(shù)據(jù)庫模式中每個關系模式都是2NF的,則此數(shù)據(jù)庫模式屬于
47、2NF的數(shù)據(jù)庫模式。 Data Base SystemData Base SystemData Base System 第三范式第三范式 3NF如果關系模式R是第二范式,且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R為第三范式模式。 傳遞依賴的含義: 在關系模式中,如果YX,XA,且XY(X不決定Y)和AX(A不屬于X),那么YA是傳遞依賴。 Notice:要求非主屬性都不傳遞依賴于候選鍵。 Data Base SystemData Base SystemData Base System 把泛關系模式R用一組關系模式的集合=R1,R2,.,Rk來表示(R1,R2,.,Rk都是R的子集,就是數(shù)據(jù)
48、庫模式)。 以代替R的過程稱為關系模式的分解。 實際上,關系模式的分解不僅僅是屬性集合的分解, 它是對關系模式上的函數(shù)依賴集、以及關系模式的當前值分解的具體表現(xiàn)。 Data Base SystemData Base SystemData Base System 第一范式第一范式 消去非主屬性對鍵的部分函數(shù)依賴消去非主屬性對鍵的部分函數(shù)依賴BCNF第二范式第二范式第三范式第三范式 消去非主屬性對鍵的傳遞函數(shù)依賴消去非主屬性對鍵的傳遞函數(shù)依賴消去主屬性對鍵的傳遞函數(shù)依賴消去主屬性對鍵的傳遞函數(shù)依賴普通二維表普通二維表消去重復疊代消去重復疊代Data Base SystemData Base Sys
49、temData Base System 不合理的分解會出現(xiàn)以下情況:失去函數(shù)依賴、或出現(xiàn)插入、刪除異常等情況。 模式分解的衡量標準有三種: (1)分解具有無損聯(lián)接; (2)分解要保持函數(shù)依賴; (3)分解既要保持依賴,又要具有無損 聯(lián)接。 Data Base SystemData Base SystemData Base System 學院具體情況:一種課由一位老師任教,每種課在一個教室上,每學院具體情況:一種課由一位老師任教,每種課在一個教室上,每位老師有一獨立的辦公室。位老師有一獨立的辦公室。學生選課表數(shù)據(jù)資料初步統(tǒng)計如下:學生選課表數(shù)據(jù)資料初步統(tǒng)計如下:問題:這是一個關系表嗎?問題:這是
50、一個關系表嗎?不是不是學號學號姓名姓名專業(yè)專業(yè)課程號課程號課程名課程名教師教師系系辦公室辦公室電話電話教室教室成績成績01張張計算機計算機CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算機計算機13025894024940989張張計算機計算機CS02數(shù)學數(shù)學趙趙數(shù)學數(shù)學30235890323882376張張計算機計算機CS03英語英語陳陳外語外語5034589403050207102王王網(wǎng)絡網(wǎng)絡CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算機計算機13025894024940973王王網(wǎng)絡網(wǎng)絡CS02數(shù)學數(shù)學趙趙數(shù)學數(shù)學30235890323882388王王網(wǎng)絡網(wǎng)絡CS03英語英語陳陳外語外語50345894030502003李
51、李通訊通訊CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算機計算機130258940249409李李通訊通訊CS04C+周周計算機計算機303358903338832李李通訊通訊CS03英語英語陳陳外語外語503458940305020#Data Base SystemData Base SystemData Base System 第一范式第一范式 消去非主屬性對鍵的部分函數(shù)依賴消去非主屬性對鍵的部分函數(shù)依賴BCNF第二范式第二范式第三范式第三范式 消去非主屬性對鍵的傳遞函數(shù)依賴消去非主屬性對鍵的傳遞函數(shù)依賴消去主屬性對鍵的傳遞函數(shù)依賴消去主屬性對鍵的傳遞函數(shù)依賴普通二維表普通二維表消去重復疊代消去重復疊代Da
52、ta Base SystemData Base SystemData Base System 學號學號姓名姓名專業(yè)專業(yè)課程號課程號課程名課程名教師教師系系辦公室辦公室電話電話教室教室成績成績01張張計算機計算機CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算機計算機1302589402494098901張張計算機計算機CS02數(shù)學數(shù)學趙趙數(shù)學數(shù)學3023589032388237601張張計算機計算機CS03英語英語陳陳外語外語5034589403050207102王王網(wǎng)絡網(wǎng)絡CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算機計算機1302589402494097302王王網(wǎng)絡網(wǎng)絡CS02數(shù)學數(shù)學趙趙數(shù)學數(shù)學3023589032388
53、238802王王網(wǎng)絡網(wǎng)絡CS03英語英語陳陳外語外語50345894030502003李李通訊通訊CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算機計算機13025894024940903李李通訊通訊CS04C+周周計算機計算機30335890333883203李李通訊通訊CS03英語英語陳陳外語外語503458940305020#去掉重復疊代部分得到如下表:問題:問題:1、這是一個關系表嗎?、這是一個關系表嗎?3、還存在問題嗎?、還存在問題嗎?2、這是第幾范式?、這是第幾范式?是是是第一范式是第一范式Data Base SystemData Base SystemData Base System 問題很多:問題
54、很多:1、插入問題,新同學小趙不能被插入表中,因為、插入問題,新同學小趙不能被插入表中,因為他還沒有選課,課程號不能為空(實體完整性他還沒有選課,課程號不能為空(實體完整性的要求)。的要求)。2、刪除問題,小李不能被刪除,因為周老師將被、刪除問題,小李不能被刪除,因為周老師將被刪除。刪除。3、更新問題,修改陳老師相關信息很困難。、更新問題,修改陳老師相關信息很困難。如何結決這些問題呢?如何結決這些問題呢?Data Base SystemData Base SystemData Base System 第一范式第一范式 消去非主屬性對鍵的部分函數(shù)依賴消去非主屬性對鍵的部分函數(shù)依賴BCNF第二范式
55、第二范式第三范式第三范式 消去非主屬性對鍵的傳遞函數(shù)依賴消去非主屬性對鍵的傳遞函數(shù)依賴消去主屬性對鍵的傳遞函數(shù)依賴消去主屬性對鍵的傳遞函數(shù)依賴普通二維表普通二維表消去重復疊代消去重復疊代方法:方法:對關系進行分解!對關系進行分解! Data Base SystemData Base SystemData Base System 學號學號課程號課程號成績成績姓名姓名專業(yè)專業(yè)系系辦公室辦公室教師教師課程名課程名教室教室電話電話Data Base SystemData Base SystemData Base System 學號學號姓名姓名專業(yè)專業(yè)01張張計算機計算機02王王網(wǎng)絡網(wǎng)絡03李李通訊通訊
56、課程號課程號課程名課程名教室教室教師教師系系辦公室辦公室電話電話CS01數(shù)據(jù)庫數(shù)據(jù)庫9409陳陳計算機計算S02數(shù)學數(shù)學8823趙趙數(shù)學數(shù)學30235890323CS03英語英語5020陳陳計算機計算S04C+3033周周計算機計算機88325890333學號學號課程號課程號成績成績01CS018901CS027601CS037102CS017302CS028802CS0303CS0103CS0403CS02問題:問題:1、這是一個關系表嗎?、這是一個關系表嗎?是第二范式是第二范式是是2、這是第幾范式?、這是第幾范式?3、還存在問題嗎?、還存
57、在問題嗎?存在,冗余、更新、刪存在,冗余、更新、刪除問題除問題如何結決這一問題呢?如何結決這一問題呢?Data Base SystemData Base SystemData Base System 學號學號課程號課程號成績成績姓名姓名專業(yè)專業(yè)系系辦公室辦公室教師教師課程名課程名教室教室電話電話學號學號課程號課程號Data Base SystemData Base SystemData Base System 學號學號課程號課程號成績成績姓名姓名專業(yè)專業(yè)系系辦公室辦公室教師教師課程名課程名教室教室電話電話學號學號課程號課程號Data Base SystemData Base SystemDat
58、a Base System 第一范式第一范式 消去非主屬性對鍵的部分函數(shù)依賴消去非主屬性對鍵的部分函數(shù)依賴BCNF第二范式第二范式第三范式第三范式 消去非主屬性對鍵的傳遞函數(shù)依賴消去非主屬性對鍵的傳遞函數(shù)依賴消去主屬性對鍵的傳遞函數(shù)依賴消去主屬性對鍵的傳遞函數(shù)依賴普通二維表普通二維表消去重復疊代消去重復疊代方法:方法:對關系進行進一步的分解!對關系進行進一步的分解! Data Base SystemData Base SystemData Base System 學號學號姓名姓名專業(yè)專業(yè)01張張計算機計算機02王王網(wǎng)絡網(wǎng)絡03李李通訊通訊教師教師系系辦公室辦公室電話電話陳陳計算機計算機1302
59、5894024周周計算機計算機88325890333趙趙數(shù)學數(shù)學30235890323課程號課程號課程名課程名教師教師教室教室CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳9409CS02數(shù)學數(shù)學趙趙8823CS03英語英語陳陳5020CS04C+周周3033學號學號課程號課程號成績成績01CS018901CS027601CS037102CS017302CS028802CS0303CS0103CS0403CS02問題:這一關系還有問題嗎?問題:這一關系還有問題嗎?這一關系與原關系等價嗎?這一關系與原關系等價嗎? 與原關系的信息仍然一致嗎?與原關系的信息仍然一致嗎?Data Base SystemData Base
60、SystemData Base System 學號學號姓名姓名專業(yè)專業(yè)01張張計算機計算機02王王網(wǎng)絡網(wǎng)絡03李李通訊通訊教師教師系系辦公室辦公室電話電話陳陳計算機計算周計算機計算機88325890333趙趙數(shù)學數(shù)學30235890323學號學號課程號課程號成績成績01CS018901CS027601CS037102CS017302CS028802CS0303CS0103CS0403CS02學號學號姓名姓名專業(yè)專業(yè)課程號課程號課程名課程名教師教師系系辦公室辦公室電話電話教室教室成績成績01張張計算機計算機CS01數(shù)據(jù)庫數(shù)據(jù)庫陳陳計算機計算機13025894024940
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 優(yōu)待證合作協(xié)議文本
- 2025版土地抵押權抵押權抵押權抵押資產證券化合同模板3篇
- 2025年度智能家居系統(tǒng)研發(fā)與裝修設計合同2篇
- 2025年全球及中國1-戊基-1H-吲哚行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國汽車雙面膠帶行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國流媒體音視頻產品行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球船底噴氣推進系統(tǒng)行業(yè)調研及趨勢分析報告
- 2025年全球及中國游戲設計服務行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年度股權代持與風險控制協(xié)議書(個人股權轉讓與代持)4篇
- 2025年度大學學生心理健康服務合作協(xié)議
- 2025-2030年中國陶瓷電容器行業(yè)運營狀況與發(fā)展前景分析報告
- 2025年山西國際能源集團限公司所屬企業(yè)招聘43人高頻重點提升(共500題)附帶答案詳解
- 二零二五年倉儲配送中心物業(yè)管理與優(yōu)化升級合同3篇
- 南潯至臨安公路(南潯至練市段)公路工程環(huán)境影響報告
- 《小英雄雨來》讀書分享會
- 初中數(shù)學校本教材(完整版)
- 重慶市銅梁區(qū)2024屆數(shù)學八上期末檢測試題含解析
- 中央導管相關血流感染防控
- 光的偏振和晶體光學基礎課件
- 中科大光學講義08光的偏振
- 黑布林英語閱讀《小婦人》-中英伴讀
評論
0/150
提交評論