數(shù)據(jù)庫原理及應(yīng)用_第1頁
數(shù)據(jù)庫原理及應(yīng)用_第2頁
數(shù)據(jù)庫原理及應(yīng)用_第3頁
數(shù)據(jù)庫原理及應(yīng)用_第4頁
數(shù)據(jù)庫原理及應(yīng)用_第5頁
已閱讀5頁,還剩88頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1頁,共93頁,2023年,2月20日,星期五西北工業(yè)大學(xué)明德學(xué)院數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第七章關(guān)系數(shù)據(jù)庫的規(guī)范化理論第2頁,共93頁,2023年,2月20日,星期五第六章關(guān)系數(shù)據(jù)理論6.1問題的提出6.2規(guī)范化6.3數(shù)據(jù)依賴的公理系統(tǒng)*6.4模式的分解6.5小結(jié)第3頁,共93頁,2023年,2月20日,星期五6.1問題的提出關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)針對具體問題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式數(shù)據(jù)庫邏輯設(shè)計(jì)的工具──關(guān)系數(shù)據(jù)庫的規(guī)范化理論主要內(nèi)容:一、概念回顧(關(guān)系模式的形式化定義)二、什么是數(shù)據(jù)依賴三、數(shù)據(jù)依賴對關(guān)系模式影響第4頁,共93頁,2023年,2月20日,星期五一、概念回顧(關(guān)系模式的形式化定義)關(guān)系模式由五部分組成,即它是一個(gè)五元組:

R(U,D,DOM,F)R:關(guān)系名U:組成該關(guān)系的屬性名集合D:屬性組U中屬性所來自的域DOM:屬性向域的映象集合F:屬性間數(shù)據(jù)的依賴關(guān)系集合第5頁,共93頁,2023年,2月20日,星期五二、什么是數(shù)據(jù)依賴1.完整性約束的表現(xiàn)形式限定屬性取值范圍:例如學(xué)生成績必須在0-100之間定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設(shè)計(jì)的關(guān)鍵第6頁,共93頁,2023年,2月20日,星期五什么是數(shù)據(jù)依賴(續(xù))2.數(shù)據(jù)依賴一個(gè)關(guān)系內(nèi)部屬性與屬性之間的約束關(guān)系現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象數(shù)據(jù)內(nèi)在的性質(zhì)語義的體現(xiàn)第7頁,共93頁,2023年,2月20日,星期五什么是數(shù)據(jù)依賴(續(xù))3.數(shù)據(jù)依賴的類型函數(shù)依賴(FunctionalDependency,簡記為FD)多值依賴(MultivaluedDependency,簡記為MVD)第8頁,共93頁,2023年,2月20日,星期五三、數(shù)據(jù)依賴對關(guān)系模式的影響[例1]建立一個(gè)描述學(xué)校教務(wù)的數(shù)據(jù)庫: 學(xué)生的學(xué)號(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程號(Cno) 成績(Grade)單一的關(guān)系模式:Student<U、F>U={Sno,Sdept,Mname,Cno,Grade}第9頁,共93頁,2023年,2月20日,星期五數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))

屬性組U上的一組函數(shù)依賴F:

F={Sno→Sdept,Sdept→Mname,(Sno,Cno)→Grade}

SnoCnoSdeptMnameGrade第10頁,共93頁,2023年,2月20日,星期五關(guān)系模式Student<U,F>中存在的問題1、數(shù)據(jù)冗余太大:系負(fù)責(zé)人的名字,重復(fù)出現(xiàn)的次數(shù)跟每個(gè)學(xué)生每一門功課出現(xiàn)的次數(shù)一樣多。2、插入異常:一個(gè)系如果還沒有學(xué)生,則無法將這個(gè)系及其負(fù)責(zé)人的信息存入數(shù)據(jù)庫3、刪除異常:一個(gè)系所有的學(xué)生都畢業(yè)了的話,學(xué)生刪除后,有關(guān)系及其負(fù)責(zé)人的信息也全部被刪除。第11頁,共93頁,2023年,2月20日,星期五數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))結(jié)論:Student關(guān)系模式不是一個(gè)好的模式?!昂谩钡哪J剑翰粫?huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少原因:由存在于模式中的某些數(shù)據(jù)依賴引起的解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴第12頁,共93頁,2023年,2月20日,星期五分解關(guān)系模式把這個(gè)單一模式分成3個(gè)關(guān)系模式:

S(Sno,Sdept,Sno→Sdept);SC(Sno,Cno,Grade,(Sno,Cno)→Grade);DEPT(Sdept,Mname,Sdept→Mname)第13頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化

規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。第14頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化6.2.1函數(shù)依賴6.2.2碼6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴6.2.84NF6.2.9規(guī)范化小結(jié)第15頁,共93頁,2023年,2月20日,星期五6.2.1函數(shù)依賴函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴傳遞函數(shù)依賴第16頁,共93頁,2023年,2月20日,星期五一、函數(shù)依賴定義6.1:設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子集。若對于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。第17頁,共93頁,2023年,2月20日,星期五說明

1.

所有關(guān)系實(shí)例均要滿足2.語義范疇的概念如:年齡函數(shù)依賴于姓名,只有在沒有重名的語義前提下。3.數(shù)據(jù)庫設(shè)計(jì)者可以對現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定第18頁,共93頁,2023年,2月20日,星期五二、平凡函數(shù)依賴與非平凡函數(shù)依賴在關(guān)系模式R(U)中,對于U的子集X和Y,如果X→Y,但YX,則稱X→Y是非平凡的函數(shù)依賴若X→Y,但YX,則稱X→Y是平凡的函數(shù)依賴?yán)涸陉P(guān)系SC(Sno,Cno,Grade)中,非平凡函數(shù)依賴:(Sno,Cno)→

Grade

平凡函數(shù)依賴:(Sno,Cno)→

Sno(Sno,Cno)→Cno第19頁,共93頁,2023年,2月20日,星期五平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù))若X→Y,則X稱為這個(gè)函數(shù)依賴的決定屬性組,也稱為決定因素(Determinant)。若X→Y,Y→X,則記作X←→Y。若Y不函數(shù)依賴于X,則記作X→Y。第20頁,共93頁,2023年,2月20日,星期五三、完全函數(shù)依賴與部分函數(shù)依賴定義6.2在R(U)中,如果X→Y,并且對于X的任何一個(gè)真子集X’,都有X’Y,則稱Y對X完全函數(shù)依賴,記作

XFY。(X必為主碼或候選碼)若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴,記作XPY。

第21頁,共93頁,2023年,2月20日,星期五完全函數(shù)依賴與部分函數(shù)依賴(續(xù))[例1]中(Sno,Cno)→Grade是完全函數(shù)依賴,

(Sno,Cno)→Sdept是部分函數(shù)依賴因?yàn)镾no→Sdept成立,且Sno是(Sno,Cno)的真子集

FP第22頁,共93頁,2023年,2月20日,星期五四、傳遞函數(shù)依賴定義6.3在R(U)中,如果X→Y,(YX),Y→XY→Z,則稱Z對X傳遞函數(shù)依賴。記為:X→Z

注:如果Y→X,即X←→Y,則Z直接依賴于X。例:在關(guān)系Std(Sno,Sdept,Mname)中,有:

Sno→Sdept,Sdept→MnameMname傳遞函數(shù)依賴于Sno傳遞第23頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化6.2.1函數(shù)依賴6.2.2碼6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴6.2.84NF6.2.9規(guī)范化小結(jié)第24頁,共93頁,2023年,2月20日,星期五6.2.2碼定義6.4設(shè)K為R<U,F>中的屬性或?qū)傩越M合。若K

U,則K稱為R的侯選碼(CandidateKey)。若候選碼多于一個(gè),則選定其中的一個(gè)做為主碼(PrimaryKey)。F第25頁,共93頁,2023年,2月20日,星期五碼(續(xù))主屬性與非主屬性包含在任何一個(gè)候選碼中的屬性,稱為主屬性(Primeattribute)不包含在任何碼中的屬性稱為非主屬性(Nonprimeattribute)或非碼屬性(Non-keyattribute)全碼整個(gè)屬性組是碼,稱為全碼(All-key)第26頁,共93頁,2023年,2月20日,星期五碼(續(xù))[例2]

關(guān)系模式S(Sno,Sdept,Sage),單個(gè)屬性Sno是碼,

SC(Sno,Cno,Grade)中,(Sno,Cno)是碼[例3]

關(guān)系模式R(P,W,A)

P:演奏者W:作品A:聽眾一個(gè)演奏者可以演奏多個(gè)作品某一作品可被多個(gè)演奏者演奏聽眾可以欣賞不同演奏者的不同作品碼為(P,W,A),即All-Key第27頁,共93頁,2023年,2月20日,星期五外部碼定義6.5關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱X是R的外部碼(Foreignkey)也稱外碼如在SC(Sno,Cno,Grade)中,Sno不是碼,但Sno是關(guān)系模式S(Sno,Sdept,Sage)的碼,則Sno是關(guān)系模式SC的外部碼

主碼與外部碼一起提供了表示關(guān)系間聯(lián)系的手段第28頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化6.2.1函數(shù)依賴6.2.2碼6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴6.2.84NF6.2.9規(guī)范化小結(jié)第29頁,共93頁,2023年,2月20日,星期五6.2.3范式范式是符合某一種級別的關(guān)系模式的集合關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式范式的種類:

第一范式(1NF)

第二范式(2NF)

第三范式(3NF) BC范式(BCNF)

第四范式(4NF)

第五范式(5NF)第30頁,共93頁,2023年,2月20日,星期五6.2.3范式各種范式之間存在聯(lián)系:某一關(guān)系模式R為第n范式,可簡記為R∈nNF。一個(gè)低一級范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個(gè)高一級范式的關(guān)系模式的集合,這種過程就叫規(guī)范化

第31頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化6.2.1函數(shù)依賴6.2.2碼6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴6.2.84NF6.2.9規(guī)范化小結(jié)第32頁,共93頁,2023年,2月20日,星期五6.2.42NF數(shù)據(jù)庫設(shè)計(jì)的目標(biāo)就是要設(shè)計(jì)合適的數(shù)據(jù)模式,并將數(shù)據(jù)存放在一個(gè)最佳位置。例:在組織人員的電話號碼、郵件地址這樣的信息時(shí),應(yīng)該確保將其保存在合適的位置,如通訊錄中。設(shè)想如果將朋友的信息放在菜譜里,則只有在查找菜譜時(shí)才會(huì)找到信息。第33頁,共93頁,2023年,2月20日,星期五6.2.42NF1NF的定義 如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R∈1NF第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫但是滿足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式第34頁,共93頁,2023年,2月20日,星期五2NF(續(xù))

(Sno,Cno)FGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc[例4]關(guān)系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade),其中Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。函數(shù)依賴包括哪些:?第35頁,共93頁,2023年,2月20日,星期五

2NF(續(xù))S-L-C的碼為(Sno,Cno)S-L-C滿足第一范式。非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno,Cno)SnoCnoGradeSdeptSlocS-L-C第36頁,共93頁,2023年,2月20日,星期五S-L-C不是一個(gè)好的關(guān)系模式(續(xù))1、數(shù)據(jù)冗余太大:系宿舍信息,重復(fù)出現(xiàn)的次數(shù)跟每個(gè)學(xué)生每一門功課出現(xiàn)的次數(shù)一樣多。2、插入異常:一個(gè)系如果還沒有學(xué)生,則無法將這個(gè)系及其負(fù)責(zé)人的信息存入數(shù)據(jù)庫3、刪除異常:一個(gè)系所有的學(xué)生都畢業(yè)了的話,學(xué)生刪除后,有關(guān)系及其負(fù)責(zé)人的信息也全部被刪除。第37頁,共93頁,2023年,2月20日,星期五S-L-C不是一個(gè)好的關(guān)系模式(續(xù))原因

Sdept、Sloc部分函數(shù)依賴于碼。解決方法

S-L-C分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴

SC(Sno,Cno,Grade)

S-L(Sno,Sdept,Sloc)第38頁,共93頁,2023年,2月20日,星期五2NF(續(xù))函數(shù)依賴圖:SnoCnoGradeSCS-LSnoSdeptSloc關(guān)系模式SC的碼為(Sno,Cno)關(guān)系模式S-L的碼為Sno這樣非主屬性對碼都是完全函數(shù)依賴

第39頁,共93頁,2023年,2月20日,星期五

2NF(續(xù))2NF的定義 定義7.6若R∈1NF,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則R∈2NF。 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)∈1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈

2NF S-L(Sno,Sdept,Sloc)∈

2NF第40頁,共93頁,2023年,2月20日,星期五

2NF(續(xù))采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。還存在:1、插入異常:一個(gè)系如果還沒有學(xué)生,則無法將這個(gè)系及其宿舍的信息存入數(shù)據(jù)庫2、刪除異常:一個(gè)系所有的學(xué)生都畢業(yè)了的話,學(xué)生刪除后,有關(guān)“系”及其宿舍的信息也全部被刪除。2NF消除了非主屬性對碼的部分函數(shù)依賴第41頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化6.2.1函數(shù)依賴6.2.2碼6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴6.2.84NF6.2.9規(guī)范化小結(jié)第42頁,共93頁,2023年,2月20日,星期五

6.2.53NF3NF的定義

定義6.7關(guān)系模式R<U,F(xiàn)>

中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→Z成立,

Y→X,則稱R<U,F(xiàn)>∈3NF。若R∈3NF,則每一個(gè)非主屬性既不部分依賴于碼也不傳遞依賴于碼。第43頁,共93頁,2023年,2月20日,星期五3NF(續(xù))例:2NF關(guān)系模式S-L(Sno,Sdept,Sloc)中函數(shù)依賴:

Sno→SdeptSdept→SnoSdept→Sloc

可得:

Sno→Sloc,即S-L中存在非主屬性對碼的傳遞函數(shù)依賴,S-L∈3NF傳遞第44頁,共93頁,2023年,2月20日,星期五

3NF(續(xù))函數(shù)依賴圖:S-LSnoSdeptSloc第45頁,共93頁,2023年,2月20日,星期五3NF(續(xù))解決方法采用投影分解法,把S-L分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴:

S-D(Sno,Sdept)

D-L(Sdept,Sloc)S-D的碼為Sno,D-L的碼為Sdept。分解后的關(guān)系模式S-D與D-L中不再存在傳遞依賴

第46頁,共93頁,2023年,2月20日,星期五3NF(續(xù))S-D的碼為Sno,D-L的碼為SdeptSnoSdeptS-DSdeptSlocD-L

S-L(Sno,Sdept,Sloc)∈2NFS-L(Sno,Sdept,Sloc)∈3NFS-D(Sno,Sdept)∈3NFD-L(Sdept,Sloc)∈3NF第47頁,共93頁,2023年,2月20日,星期五3NF(續(xù))采用投影分解法將一個(gè)2NF的關(guān)系分解為多個(gè)3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。將一個(gè)2NF關(guān)系分解為多個(gè)3NF的關(guān)系后,仍然不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。3NF消除了非主屬性對碼的傳遞函數(shù)依賴第48頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化6.2.1函數(shù)依賴6.2.2碼6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴6.2.84NF6.2.9規(guī)范化小結(jié)第49頁,共93頁,2023年,2月20日,星期五

6.2.6BC范式(BCNF)定義6.8關(guān)系模式R<U,F(xiàn)>∈1NF,若X→Y且YX時(shí)X必含有碼,則R<U,F(xiàn)>∈BCNF。等價(jià)于:每一個(gè)決定屬性因素都包含碼第50頁,共93頁,2023年,2月20日,星期五BCNF(續(xù))若R∈BCNF所有非主屬性對每一個(gè)碼(候選碼)都是完全函數(shù)依賴所有的主屬性對每一個(gè)不包含它的碼,也是完全函數(shù)依賴沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性R∈BCNFR∈3NF充分不必要第51頁,共93頁,2023年,2月20日,星期五BCNF(續(xù))[例5]關(guān)系模式C(Cno,Cname,Pcno)C∈3NFC∈BCNF[例6]關(guān)系模式S(Sno,Sname,Sdept,Sage)假定S有兩個(gè)碼Sno,SnameS∈3NF。S∈BCNF第52頁,共93頁,2023年,2月20日,星期五BCNF(續(xù))[例7]關(guān)系模式SJP(S,J,P),S表示學(xué)生,J表示課程,P表示學(xué)生該門課的排名(假設(shè)無并列名次)。函數(shù)依賴:(S,J)→P;(J,P)→S(S,J)與(J,P)都可以作為候選碼,屬性相交SJP∈3NF,SJP∈BCNF實(shí)際上全是主屬性第53頁,共93頁,2023年,2月20日,星期五

BCNF(續(xù))[例8]在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。函數(shù)依賴:(S,J)→T,(S,T)→J,T→J(S,J)和(S,T)都是候選碼SJTSTSTJ中的函數(shù)依賴J第54頁,共93頁,2023年,2月20日,星期五BCNF(續(xù))STJ∈3NF

沒有任何非主屬性對碼傳遞依賴或部分依賴

STJ∈BCNFT是決定因素,T不包含碼第55頁,共93頁,2023年,2月20日,星期五BCNF(續(xù))解決方法:將STJ分解為二個(gè)關(guān)系模式:

ST(S,T)∈BCNF,TJ(T,J)∈BCNF

沒有任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴SJSTTJTJ第56頁,共93頁,2023年,2月20日,星期五3NF與BCNF的關(guān)系R∈BCNFR∈3NF如果R∈3NF,且R只有一個(gè)候選碼

R∈BCNFR∈3NFBCNF消除了主屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴充分不必要充分必要第57頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化6.2.1函數(shù)依賴6.2.2碼6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴6.2.84NF6.2.9規(guī)范化小結(jié)第58頁,共93頁,2023年,2月20日,星期五6.2.7多值依賴[例9]學(xué)校中某一門課程由多個(gè)教師講授,他們使用相同的一套參考書。每個(gè)教員可以講授多門課程,每種參考書可以供多門課程使用。

………課程C教員T參考書B

物理

數(shù)學(xué)

計(jì)算數(shù)學(xué)李勇王軍

李勇張平

張平周峰

普通物理學(xué)光學(xué)原理物理習(xí)題集

數(shù)學(xué)分析微分方程高等代數(shù)

數(shù)學(xué)分析...…

第59頁,共93頁,2023年,2月20日,星期五普通物理學(xué)光學(xué)原理物理習(xí)題集普通物理學(xué)光學(xué)原理物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)…李勇李勇李勇王軍王軍王軍李勇李勇李勇張平張平張平

…物理物理物理物理物理物理數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)…參考書B教員T課程C多值依賴(續(xù))用二維表表示Teaching第60頁,共93頁,2023年,2月20日,星期五多值依賴(續(xù))Teaching∈BCNFTeaching具有唯一候選碼(C,T,B),即全碼

第61頁,共93頁,2023年,2月20日,星期五多值依賴(續(xù))

Teaching模式中存在的問題(1)數(shù)據(jù)冗余度大(2)插入操作復(fù)雜(例如某一門課增加一個(gè)教員,需插入多個(gè)元組)(3)刪除操作復(fù)雜(例如去掉一本參考書,需刪除多個(gè)元組)(4)修改操作復(fù)雜存在多值依賴第62頁,共93頁,2023年,2月20日,星期五多值依賴(續(xù))定義6.9

設(shè)R(U)是一個(gè)屬性集U上的一個(gè)關(guān)系模式,X、Y和Z是U的子集,并且Z=U-X-Y。關(guān)系模式R(U)中多值依賴

X→→Y成立,當(dāng)且僅當(dāng)對R(U)的任一關(guān)系r,給定的一對(x,z)值,有一組Y的值,這組值僅僅決定于x值而與z值無關(guān)例Teaching(C,T,B)第63頁,共93頁,2023年,2月20日,星期五多值依賴(續(xù))例關(guān)系模式Teaching(C,T,B)中,對于某一門課程和教材的組合,第64頁,共93頁,2023年,2月20日,星期五多值依賴(續(xù))平凡多值依賴和非平凡的多值依賴

若X→→Y,而Z=φ,則稱

X→→Y為平凡的多值依賴 否則稱X→→Y為非平凡的多值依賴第65頁,共93頁,2023年,2月20日,星期五多值依賴(續(xù))[例10]關(guān)系模式WSC(W,S,C)

W表示倉庫,S表示保管員,C表示商品假設(shè)每個(gè)倉庫有若干個(gè)保管員,有若干種商品每個(gè)保管員保管所在的倉庫的所有商品每種商品被所有保管員保管

第66頁,共93頁,2023年,2月20日,星期五多值依賴(續(xù))WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5第67頁,共93頁,2023年,2月20日,星期五多值依賴(續(xù))W→→S且W→→C用下圖表示這種對應(yīng)

第68頁,共93頁,2023年,2月20日,星期五6.2規(guī)范化6.2.1函數(shù)依賴6.2.2碼6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依賴6.2.84NF6.2.9規(guī)范化小結(jié)第69頁,共93頁,2023年,2月20日,星期五6.2.84NF定義6.10關(guān)系模式R<U,F(xiàn)>∈1NF,如果對于R的每個(gè)非平凡多值依賴X→→Y(YX),X都含有碼,則R∈4NF。如果R∈4NF,則R∈BCNF不允許有非平凡且非函數(shù)依賴的多值依賴允許的非平凡多值依賴是函數(shù)依賴第70頁,共93頁,2023年,2月20日,星期五4NF(續(xù))例:Teaching(C,T,B)∈4NF

存在非平凡的多值依賴C→→T,且C不是碼用投影分解法把Teaching分解為如下兩個(gè)關(guān)系模式:

CT(C,T)∈4NF CB(C,B)∈4NFC→→T,C→→B是平凡多值依賴

第71頁,共93頁,2023年,2月20日,星期五6.2.9規(guī)范化小結(jié)關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計(jì)的工具目的:盡量消除插入、刪除異常,修改復(fù)雜,數(shù)據(jù)冗余基本思想:逐步消除數(shù)據(jù)依賴中不合適的部分實(shí)質(zhì):概念的單一化第72頁,共93頁,2023年,2月20日,星期五規(guī)范化小結(jié)(續(xù))關(guān)系模式規(guī)范化的基本步驟

1NF ↓消除非主屬性對碼的部分函數(shù)依賴消除決定屬性2NF集非碼的非平↓消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴3NF ↓消除主屬性對碼的部分和傳遞函數(shù)依賴

BCNF ↓消除非平凡且非函數(shù)依賴的多值依賴

4NF第73頁,共93頁,2023年,2月20日,星期五規(guī)范化小結(jié)(續(xù))不能說規(guī)范化程度越高的關(guān)系模式就越好在設(shè)計(jì)數(shù)據(jù)庫模式結(jié)構(gòu)時(shí),必須對現(xiàn)實(shí)世界的實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式上面的規(guī)范化步驟可以在其中任何一步終止第74頁,共93頁,2023年,2月20日,星期五第六章關(guān)系數(shù)據(jù)理論6.1問題的提出6.2規(guī)范化6.4模式的分解第75頁,共93頁,2023年,2月20日,星期五6.4模式的分解把低一級的關(guān)系模式分解為若干個(gè)高一級的關(guān)系模式的方法不是唯一的只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià),分解方法才有意義第76頁,共93頁,2023年,2月20日,星期五關(guān)系模式分解的標(biāo)準(zhǔn)三種模式分解等價(jià)的定義: ⒈分解具有無損連接性 ⒉分解要保持函數(shù)依賴 ⒊分解既要保持函數(shù)依賴,又要具有無損連接性第77頁,共93頁,2023年,2月20日,星期五模式的分解(續(xù))定義6.16關(guān)系模式R<U,F>的一個(gè)分解:ρ={R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>}U=∪Ui,且不存在Ui

Uj,F(xiàn)i為F在Ui上的投影定義7.17函數(shù)依賴集合{X→Y|X→Y

F+∧XY

Ui}的一個(gè)覆蓋Fi叫作F在屬性Ui上的投影i=1n第78頁,共93頁,2023年,2月20日,星期五模式的分解(續(xù))例:S-L(Sno,Sdept,Sloc)

F={Sno→Sdept,Sdept→Sloc,Sno→Sloc}S-L∈2NF分解方法可以有多種:1、S-L分解為三個(gè)關(guān)系模式:SN(Sno) SD(Sdept) SO(Sloc)2、SL分解為下面二個(gè)關(guān)系模式: NL(Sno,Sloc) DL(Sdept,Sloc)3、將SL分解為下面二個(gè)關(guān)系模式: ND(Sno,Sdept) NL(Sno,Sloc)4、將SL分解為下面二個(gè)關(guān)系模式: NS(Sno,Sdept) DL(Sdept,Sloc)第79頁,共93頁,2023年,2月20日,星期五具有無損連接性的模式分解關(guān)系模式R<U,F>的一個(gè)分解ρ={R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>}

若R與R1、R2、…、Rn自然連接的結(jié)果相等,則稱關(guān)系模式R的這個(gè)分解ρ具有無損連接性(Losslessjoin)具有無損連接性的分解保證不丟失信息無損連接性不一定能解決插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題第80頁,共93頁,2023年,2月20日,星期五模式的分解(續(xù))

第3種分解方法具有無損連接性

問題:這種分解方法沒有保持原關(guān)系中的函數(shù)依賴SL中的函數(shù)依賴Sdept→Sloc沒有投影到關(guān)系模式ND、NL上

第81頁,共93頁,2023年,2月20日,星期五保持函數(shù)依賴的模式分解設(shè)關(guān)系模式R<U,F>被分解為若干個(gè)關(guān)系模式R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>(其中U=U1∪U2∪…∪Un,且不存在UiUj,F(xiàn)i為F在Ui上的投影),若F所邏輯蘊(yùn)含的函數(shù)依賴一定也由分解得到的某個(gè)關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊(yùn)含,則稱關(guān)系模式R的這個(gè)分解是保持函數(shù)依賴的(Preservedependency)第82頁,共93頁,2023年,2月20日,星期五模式的分解(續(xù))第4個(gè)方法、將SL分解為下面二個(gè)關(guān)系模式:

ND(Sno,Sdept)DL(Sdept,Sloc)

這種分解方法就保持了函數(shù)依賴第83頁,共93頁,2023年,2月20日,星期五模式的分解(續(xù))如果一個(gè)分解具有無損連接性,則它能夠保證不丟失信息如果一個(gè)分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況分解具有無損連接性和分解保持函數(shù)依賴是兩個(gè)互相獨(dú)立的標(biāo)準(zhǔn)。具有無損連接性的分解不一定能夠保持函數(shù)依賴;同樣,保持函數(shù)依賴的分解也不一定具有無損連接性。第84頁,共93頁,2023年,2月20日,星期五模式的分解(續(xù))第1種分解方法既不具有無損連接性,也未保持函數(shù)依賴,它不是原關(guān)系模式的一個(gè)等價(jià)分解第2種分解方法保持了函數(shù)依賴,但不具有無損連接性第3種分解方法具有無損連接性,但未持函數(shù)依賴第4種分解方法既具有無損連接性,又保持了函數(shù)依賴第85頁,共93頁,2023年,2月20日,星期五舉例:建立一個(gè)關(guān)于系、學(xué)生、班級、學(xué)會(huì)等諸信息的關(guān)系數(shù)據(jù)庫。學(xué)生:學(xué)號、姓名、出生年月、系名、班號、宿舍區(qū)。班級:班號、專業(yè)名、系名、人數(shù)、入校年份。系:系名、系號、系辦公地點(diǎn)、人數(shù)。學(xué)會(huì):學(xué)會(huì)名、成立年份、辦公地點(diǎn)、人數(shù)。語義如下:一個(gè)系有若干專業(yè),每個(gè)專業(yè)每年只招一個(gè)班,每個(gè)班有若干學(xué)生。一個(gè)系的學(xué)生住在同一宿舍區(qū)。每個(gè)學(xué)生可參加若干學(xué)會(huì),每個(gè)學(xué)會(huì)有若干學(xué)生。學(xué)生參加某學(xué)會(huì)有一個(gè)入會(huì)年份。請給出關(guān)系模式,寫出每個(gè)關(guān)系模式的極小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴,還是部分函數(shù)依賴。指出各關(guān)系模式的候選碼、外部碼,有沒有全碼存在?第86頁,共93頁,2023年,2月20日,星期五解:(1)關(guān)系模式如下:學(xué)生:S(Sno,Sname,Sbirth

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論