數(shù)據(jù)庫系統(tǒng)概論第六章課件_第1頁
數(shù)據(jù)庫系統(tǒng)概論第六章課件_第2頁
數(shù)據(jù)庫系統(tǒng)概論第六章課件_第3頁
數(shù)據(jù)庫系統(tǒng)概論第六章課件_第4頁
數(shù)據(jù)庫系統(tǒng)概論第六章課件_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫系統(tǒng)概論第四版王 珊 薩師煊第6章 關(guān)系數(shù)據(jù)理論 數(shù)據(jù)庫設(shè)計(jì)的一個(gè)最基本的問題是怎樣建立一個(gè)好的數(shù)據(jù)庫模式。Codd提出了一套關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論關(guān)系的規(guī)范化理論,根據(jù)現(xiàn)實(shí)世界存在的數(shù)據(jù)依賴進(jìn)行關(guān)系模式的規(guī)范化處理,從而得到一個(gè)好的數(shù)據(jù)庫設(shè)計(jì)。6.1 問題的提出1、問題的提出 關(guān)系的描述:R(U,D,DOM,F) 關(guān)系是一個(gè)五元組。R為關(guān)系名,U為屬性集合,D為屬性組U中屬性所來自的域,DOM為屬性到域的映射集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。6.1 問題的提出(續(xù))2、數(shù)據(jù)依賴屬性間數(shù)據(jù)的依賴關(guān)系集合F是描述關(guān)系的元組語義,限定關(guān)系內(nèi)部屬性與屬性間必須滿足的約束條件。數(shù)據(jù)

2、依賴是通過一個(gè)關(guān)系中屬性間值的依賴與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系。最重要的數(shù)據(jù)依賴是函數(shù)依賴(FD)和多值依賴(MVD)6.1 問題的提出(續(xù))實(shí)例:建立一個(gè)數(shù)據(jù)庫,涉及的對象包括:學(xué)生的學(xué)號(Sno)、所在系(Sdept)、系主任姓名(Mn)、課程名(Cname)、成績(Grade)。要求如下:(1)一個(gè)系有若干學(xué)生,但一個(gè)學(xué)生只屬于一個(gè)系;(2)一個(gè)系只有一個(gè)系主任;(3)一個(gè)學(xué)生可以選多門課程,每門課程有若干學(xué)生選修;(4)每個(gè)學(xué)生學(xué)習(xí)每一門課程有個(gè)成績。建立關(guān)系模式: Student(SNO,SDEPT,MN,CNAME,GRADE)這個(gè)關(guān)系模式存在4個(gè)問題:(1)數(shù)據(jù)冗余:一個(gè)學(xué)生選

3、修多門課程,所在系和系主任就重復(fù)存儲多次。(2)更新異常:當(dāng)更新某些數(shù)據(jù)時(shí),容易造成存儲數(shù)據(jù)的不一致性。如換系主任了,則必須修改與該系學(xué)生有關(guān)的每一個(gè)元組。(3)插入異常:若某個(gè)學(xué)生未學(xué)習(xí)課程,則他的信息就無法插入。(4)刪除異常:當(dāng)要刪除學(xué)生所有成績時(shí),將所有關(guān)于該學(xué)生的信息都刪除了。F=SNOSDEPT,SDEPT MN,(SNO,CNAME) G原因:由存在于模式中的某些數(shù)據(jù)依賴引起的解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴F=SNOSDEPT,SDEPT MN,(SNO,CNAME) GS(SNO,SDEPT) SG(SNO,CNAME,Grade) DEPT(SDEPT,

4、MN)6.2 規(guī)范化 規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。1、函數(shù)依賴定義設(shè)R(U)是屬性集U上的關(guān)系模式,X,Y是U的子集,若對于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作XY。幾點(diǎn)說明:(1)函數(shù)依賴不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿足的約束條件,而是指R的所有關(guān)系實(shí)例均要滿足的約束條件。(2)函數(shù)依賴和別的數(shù)據(jù)之間的依賴關(guān)系一樣,是語義范疇的概念。我們只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。(3)數(shù)據(jù)庫設(shè)計(jì)者可

5、以對其做出強(qiáng)制的規(guī)定。6.2 規(guī)范化(續(xù))1、函數(shù)依賴基本術(shù)語和符號若XY,但YX,則稱XY是非平凡的函數(shù)依賴,反之稱為平凡的函數(shù)依賴。若XY,則X叫做決定因素若XY,YX,則記作XY若Y不函數(shù)依賴于X,則記作X Y6.2 規(guī)范化(續(xù))1、函數(shù)依賴三種函數(shù)依賴 完全函數(shù)依賴:在R(U)中,如果XY,并且對于X的任何一個(gè)真子集X,都有XY,則稱Y對X完全函數(shù)依賴,記作: X F Y6.2 規(guī)范化(續(xù))如關(guān)系SC(SNO,CNO,GRADE),(SNO,CNO) GRADE SPJ(SNO,PNO,JNO,QTY),(SNO,PNO,JNO) QTYFF1、函數(shù)依賴三種函數(shù)依賴 部分函數(shù)依賴:若X

6、Y,但Y不完全依賴于X,則稱Y對X部分函數(shù)依賴,記作:X P Y6.2 規(guī)范化(續(xù))如:SC(SNO, CNO, SNAME,GRADE) (SNO,CNO) SNAME SNO SNAMEP1、函數(shù)依賴三種函數(shù)依賴 傳遞函數(shù)依賴:在R(U)中,如果XY(YX),YX,YZ,則稱Z對X傳遞函數(shù)依賴。記作:X Z6.2 規(guī)范化(續(xù))傳遞如:S(SNO,SDEPT,MNAME) SNO SDEPT, SDEPTMNAME SNO MNAME傳遞候選關(guān)鍵字:學(xué)號FD學(xué)號姓名,學(xué)號出生日期,學(xué)號班號,班號系名,系名宿舍區(qū)傳遞函數(shù)依賴:學(xué)號班號系名,學(xué)號系名班號系名宿舍區(qū),班號宿舍區(qū)學(xué)號系名宿舍區(qū),學(xué)號

7、宿舍區(qū)傳遞傳遞傳遞分析關(guān)系模式:STUDENT(學(xué)號,姓名,出生日期,系名,班號,宿舍區(qū)),學(xué)生屬于某個(gè)班級,班級屬于某個(gè)系,其中一個(gè)系的學(xué)生分在一個(gè)宿舍區(qū),指出其候選關(guān)鍵字,函數(shù)依賴關(guān)系和存在的傳遞函數(shù)依賴。6.2 規(guī)范化(續(xù))2、碼定義:設(shè)K為R(U,F)中的屬性或?qū)傩越M合,若KU,則K為R的候選碼。若候選碼多于一個(gè),則選定其中的一個(gè)為主碼。主屬性:包含在任何一個(gè)候選碼中的屬性(Prime attribute)。非主屬性:不包含在任何碼中的屬性稱為非主屬性或非碼屬性。定義:關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱X是R的外部碼。F關(guān)系模式S(Sno,Sdept,

8、Sage),單個(gè)屬性Sno是碼, SC(Sno,Cno,Grade)中,(Sno,Cno)是碼關(guān)系模式R(P,W,A),其中:P為演奏者,W為作品, A為聽眾。 (1)一個(gè)演奏者可以演奏多個(gè)作品 (2)某一作品可被多個(gè)演奏者演奏 (3)聽眾可以欣賞不同演奏者的不同作品 碼為(P,W,A),即全碼(All-Key) 舉例:6.2 規(guī)范化(續(xù))3、范式(NF)關(guān)系數(shù)據(jù)庫中的關(guān)系是要滿足一定要求的,滿足不同程度要求的為不同范式,目前主要有六種范式: 5NF 4NF BCNF 3NF 2NF 1NF一個(gè)低一級的范式,通過分解,可以轉(zhuǎn)換為若干個(gè)高一級范式的關(guān)系模式的集合,這個(gè)過程就叫規(guī)范化。6.2 規(guī)范

9、化(續(xù))3、范式(NF)第一范式 如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R1NF。 即當(dāng)表中每一行的每一列只具有唯一值時(shí),表被認(rèn)為是符合第一范式(1NF)的。 1NF是對關(guān)系的最低要求,不滿足1NF的關(guān)系是非規(guī)范化的關(guān)系。分解方法:非規(guī)范化關(guān)系轉(zhuǎn)化為滿足1NF的規(guī)范化關(guān)系方法很簡單,只要將表分別從橫向、縱向展開即可。舉例:規(guī)范化練習(xí)練習(xí)答案:6.2 規(guī)范化(續(xù))3、范式(NF)第二范式 若R1NF,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則R2NF。分解方法:找出并抹去函數(shù)依賴于碼的一部分而不是整個(gè)碼的屬性,將它們放到不同的表中。組合剩余的屬性。規(guī)范化過程:消除非主屬性對碼的部分函數(shù)

10、依賴關(guān)系S(學(xué)號,系名,宿舍區(qū),課程號,成績)舉例:碼(學(xué)號,課程號)函數(shù)依賴集:(學(xué)號,課程號)成績 學(xué)號系名 學(xué)號宿舍區(qū)(學(xué)號,課程號) P系名 (學(xué)號,課程號) P宿舍區(qū)解決:SC(學(xué)號,課程號,成績) S-L(學(xué)號,系名,宿舍區(qū))將下面的R關(guān)系規(guī)范化到第二范式練習(xí):答案:練習(xí):6.2 規(guī)范化(續(xù))SC(學(xué)號,課程號,成績) S-L(學(xué)號,系名,宿舍區(qū))仍然存在問題:(1)插入異常,若某個(gè)系因種種原因,還未有學(xué)生,則無法將該系的信息存入數(shù)據(jù)庫。(2)刪除異常,如果某個(gè)系的學(xué)生全部畢業(yè)了,在刪除該系學(xué)生的信息的同時(shí),該系的信息也丟掉了。(3)數(shù)據(jù)冗余度大,每個(gè)系的學(xué)生都住在同一個(gè)地方,關(guān)于

11、系的住處的信息卻重復(fù)出現(xiàn)。(4)修改復(fù)雜,當(dāng)調(diào)整學(xué)生住處時(shí),需要更改大量學(xué)生的屬性。出現(xiàn)上述問題的原因是因?yàn)樵陉P(guān)系模式中仍然存在有傳遞函數(shù)依賴關(guān)系。6.2 規(guī)范化(續(xù))3、范式(NF)第三范式 關(guān)系模式R(U,F)中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z Y),使得XY,YZ成立,則稱R(U,F) 3NF。分解方法:發(fā)現(xiàn)和抹去函數(shù)依賴于不是主屬性的非主屬性。把它們放入不同的表格;組合剩余的屬性。3NF消除2NF的非主屬性的傳遞函數(shù)依賴2NF關(guān)系模式S-L(學(xué)號,系名,宿舍區(qū))中函數(shù)依賴:學(xué)號系名,系名學(xué)號 學(xué)號宿舍區(qū) 學(xué)號宿舍區(qū), S-L中存在非主屬性對碼的傳遞函數(shù)依賴,則S-L3NF舉

12、例:傳遞對S-L(SNO,SDEPT,SLOC)分解SD(SNO,SDEPT) DL(SDEPT,SLOC)將下面的R關(guān)系規(guī)范化到第三范式練習(xí):答案:練習(xí):6.2 規(guī)范化(續(xù))但是滿足3NF的關(guān)系模式也未必就是好的關(guān)系模式。如:關(guān)系模式STC(S,T,C)中,S表示學(xué)生,T表示教師,C表示課程。假設(shè)每個(gè)教師只教一門課,每門課由若干教師教,某一學(xué)生選定某門 課,就對應(yīng)一個(gè)固定的教師。函數(shù)依賴集:(S,T) C,(S,C) T,TC, S C(S,T)、 (S,J) 都是候選碼。T,S只是主屬性,既不是候選碼,也不包含候選碼,原因是TC,SC,即主屬性C部分函數(shù)依賴于(S,T) 。解決辦法是將ST

13、C分解。因此,引入一個(gè)新的范式, BCNF 范式,稱為修正的或擴(kuò)充的第三范式。6.2 規(guī)范化(續(xù))3、范式(NF)Boyce-Codd(BCNF)范式 關(guān)系模式R(U,F)1NF,若XY且YX時(shí)X必包含碼,則R(U,F) BCNF。即:關(guān)系中的每一個(gè)決定因素都包含碼。一個(gè)滿足BCNF的關(guān)系模式有: 所有非主屬性對每個(gè)碼都是完全函數(shù)依賴 所有的主屬性對每一個(gè)不包含它的碼,也是完全函數(shù)依賴 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性6.2 規(guī)范化(續(xù))3、范式(NF)Boyce-Codd(BCNF)范式 解決辦法: 發(fā)現(xiàn)和抹去具有函數(shù)依賴關(guān)系主屬性 把候選鍵的一部分和與它有函數(shù)依賴關(guān)系的屬性放入

14、另外的表中 組合剩余的項(xiàng)為一個(gè)表將關(guān)系STC分解為ST(S,T) TJ(T,C)配件管理表如下,其中一個(gè)倉庫由若干名管理員管理,一個(gè)管理員只管理一個(gè)倉庫,他們管理所在倉庫的所有商品。練習(xí):答案:函數(shù)依賴集包括:職工編號倉庫編號,(倉庫編號,配件編號)數(shù)量,(職工編號,配件編號)數(shù)量(職工編號,配件編號)倉庫編號碼為: (職工編號,配件編號)練習(xí):答案:練習(xí):6.2 規(guī)范化(續(xù))3、范式(NF)多值依賴 設(shè)關(guān)系模式R(U),X,Y,Z是U的子集,并且Z=U-X-Y。若對于R(U)的任一關(guān)系r,給定的一對(X,Z)值,存在一組Y的值與之對應(yīng),并且這組值僅僅決定于X值而與Z值無關(guān),稱為Y多值依賴于X

15、或者X多值決定Y,記作XY。若XY,若Z,則XY是非平凡的多值依賴;若Z=,則是平凡的多值依賴。6.2 規(guī)范化(續(xù))3、范式(NF)多值依賴 多值依賴與函數(shù)依賴的區(qū)別:(1)函數(shù)依賴中,xy的有效性由x,y兩個(gè)屬性集決定;多值依賴xy不僅與x,y兩個(gè)屬性集有關(guān),而要檢查其余屬性z。因此,多值依賴的有效性與屬性集的范圍有關(guān)。(2)若函數(shù)依賴xy成立,則對于y的任一子集y均有xy成立。而多值依賴卻不能確定。6.2 規(guī)范化(續(xù))3、范式(NF)第四范式 關(guān)系模式R(U,F)1NF,如果對于R的每個(gè)非平凡多值依賴XY(YX),X都含有碼,則稱R(U,F) 4NF。4NF就是限制關(guān)系模式的屬性之間不允許

16、有非平凡且非函數(shù)依賴的多值依賴。關(guān)系模式倉庫管理(倉庫號,管理員,商品名)中,(倉庫號,商品名)管理員,倉庫號管理員對于倉庫號管理員,決定因素倉庫號不包含碼,倉庫管理4NF缺點(diǎn):數(shù)據(jù)冗余度大舉例:解決:分解為倉庫管理1(倉庫號,管理員) 倉庫管理2(倉庫號,商品名)4、規(guī)范化小結(jié) 規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的分離,即“單一化”的模式設(shè)計(jì)原則。讓一個(gè)關(guān)系去描述一個(gè)概念、一個(gè)實(shí)體或?qū)嶓w間的一種聯(lián)系。若多于一個(gè)概念就把它“分離”出去。 分解的基本原則:無損分解6.2 規(guī)范化(續(xù))6.2 規(guī)范化(續(xù))規(guī)范化過程概括:指出下列關(guān)系模式是第幾范式(1

17、)R(X,Y,Z) FD=XYZ(2)R(X,Y,Z) FD=YZ,XZY(3)R(X,Y,Z) FD=YZ,YX,XYZ(4)R(X,Y,Z) FD=XY,XZ(5)R(W,X,Y,Z) FD=XZ,WXY(6)R(A,B,C) FD=AB,BA,CA練習(xí)1:假設(shè)某商業(yè)集團(tuán)數(shù)據(jù)庫中有一關(guān)系模式R(商店編號,商品編號,數(shù)量,部門編號,負(fù)責(zé)人),若規(guī)定:每個(gè)商店的每種商品只在一個(gè)部門銷售;每個(gè)商店的每個(gè)部門只有一個(gè)負(fù)責(zé)人;每個(gè)商店的每種商品只有一個(gè)庫存數(shù)量;解答:(1)寫出關(guān)系R的基本函數(shù)依賴(2)找出R的候選碼(3)判斷R的所屬范式,若不屬于3NF,則分解為3NF練習(xí)2:有這樣一個(gè)關(guān)系模式Student(學(xué)號,姓名,系別,課程編號,課程名,成績)(1)學(xué)號是候選碼嗎?說明理由。(2)該關(guān)系模式的主碼是什么?(3)該關(guān)系模式是否存在部分函數(shù)依賴?如果存在,請寫出兩個(gè)。 (4)該關(guān)系模式滿足第幾范式?(5)將該關(guān)系模式分解為3NF。練習(xí)3:設(shè)有關(guān)系模式:TEACHER(教師編號,教師姓名

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論