數(shù)據(jù)庫課件 第六章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第1頁
數(shù)據(jù)庫課件 第六章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第2頁
數(shù)據(jù)庫課件 第六章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第3頁
數(shù)據(jù)庫課件 第六章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第4頁
數(shù)據(jù)庫課件 第六章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫課件第六章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論第1頁,共89頁,2023年,2月20日,星期六第六章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論12問題的提出基本概念34規(guī)范化函數(shù)依賴的公理系統(tǒng)5模式分解第2頁,共89頁,2023年,2月20日,星期六6.1問題的提出

針對(duì)一個(gè)具體問題,設(shè)計(jì)一個(gè)好的關(guān)系數(shù)據(jù)庫系統(tǒng),關(guān)鍵是要構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式(數(shù)據(jù)庫邏輯設(shè)計(jì)問題)數(shù)據(jù)庫邏輯設(shè)計(jì)主要解決的問題:應(yīng)該構(gòu)造幾個(gè)關(guān)系模式每個(gè)關(guān)系模式包括哪些屬性

數(shù)據(jù)庫邏輯設(shè)計(jì)工具─關(guān)系數(shù)據(jù)庫的規(guī)范化理論第3頁,共89頁,2023年,2月20日,星期六6.1問題的提出例:描述電力設(shè)備存放管理的數(shù)據(jù)庫數(shù)據(jù)庫:WAE(倉庫號(hào),所在區(qū)域,區(qū)域主管,設(shè)備號(hào),數(shù)量)語義:⒈一個(gè)區(qū)域有多個(gè)倉庫,一個(gè)倉庫只能屬于一個(gè)區(qū)域;⒉一個(gè)區(qū)域只有一個(gè)區(qū)域主管;⒊一個(gè)倉庫可以存放多種設(shè)備,每種設(shè)備可以存放在多個(gè)倉庫中;⒋每個(gè)倉庫的每種設(shè)備都有一個(gè)庫存數(shù)量。第4頁,共89頁,2023年,2月20日,星期六6.1問題的提出⒈數(shù)據(jù)冗余太大浪費(fèi)大量的存儲(chǔ)空間⒉更新異常更新代價(jià)大,可能導(dǎo)致數(shù)據(jù)不一致⒊插入異常該插的數(shù)據(jù)插不進(jìn)去⒋刪除異常不該刪除的數(shù)據(jù)不得不刪,造成某些數(shù)據(jù)丟失

存在的問題:第5頁,共89頁,2023年,2月20日,星期六6.1問題的提出結(jié)論:WAE關(guān)系模式不是一個(gè)好的模式。“好”的模式:不會(huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些數(shù)據(jù)依賴引起的解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴。第6頁,共89頁,2023年,2月20日,星期六6.1問題的提出分解成三個(gè)關(guān)系模式即可:

W(倉庫號(hào),所在區(qū)域);A(區(qū)域,區(qū)域主管);WE(倉庫號(hào),設(shè)備號(hào),數(shù)量)第7頁,共89頁,2023年,2月20日,星期六6.2基本概念

規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余等問題。第8頁,共89頁,2023年,2月20日,星期六6.2.1函數(shù)依賴定義6.1

設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,對(duì)t1,t2r,若t1[X]=t2[X],則t1[Y]=t2[Y]則稱X函數(shù)決定Y或Y函數(shù)依賴X,記作X→Y。如:倉庫號(hào)所在區(qū)域

所在區(qū)域區(qū)域主管

(倉庫號(hào),設(shè)備號(hào))數(shù)量若Y不函數(shù)依賴于X,則記為X→Y若X→Y,并且Y→X,則記為X←→Y若X→Y,則稱X為這個(gè)函數(shù)依賴的決定因素。第9頁,共89頁,2023年,2月20日,星期六6.2.1函數(shù)依賴1.函數(shù)依賴是語義范疇的概念,只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。

例:“區(qū)域主管→所在區(qū)域”只有在不允許有同名人的條件下成立2.函數(shù)依賴不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿足的約束條件,而是指R的所有關(guān)系實(shí)例均要滿足的約束條件。3.函數(shù)依賴存在的時(shí)間無關(guān)性。說明:第10頁,共89頁,2023年,2月20日,星期六6.2.1函數(shù)依賴函數(shù)依賴與屬性間的聯(lián)系類型有關(guān)(1)若屬性X和Y之間有“一對(duì)一”的聯(lián)系則:X→Y,Y→X,X←→Y(2)若屬性X和Y之間有“多對(duì)一”的聯(lián)系則:X→Y,但Y→X(3)若屬性X和Y之間有“多對(duì)多”的聯(lián)系則:X與Y之間不存在任何函數(shù)依賴注:當(dāng)確定函數(shù)依賴關(guān)系時(shí),可從屬性間的聯(lián)系入手第11頁,共89頁,2023年,2月20日,星期六6.2.1函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴定義6.2在關(guān)系模式R(U)中,對(duì)于U的子集X和Y:若X→Y,但YX,則稱X→Y是非平凡函數(shù)依賴.若X→Y,但YX,則稱X→Y是平凡函數(shù)依賴.例:在關(guān)系WAE中,非平凡函數(shù)依賴:(倉庫號(hào),設(shè)備號(hào))數(shù)量

平凡函數(shù)依賴:(倉庫號(hào),設(shè)備號(hào))倉庫號(hào)(倉庫號(hào),設(shè)備號(hào))設(shè)備號(hào)注:對(duì)任一關(guān)系模式,平凡函數(shù)依賴必然存在,則一般討論非平凡函數(shù)依賴。第12頁,共89頁,2023年,2月20日,星期六6.2.1函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴定義6.3

在R(U)中,如果X→Y,并且對(duì)于X的任何一個(gè)真子集X’

,都有X’→Y,則稱Y對(duì)X完全函數(shù)依賴,記作Xf

Y。

若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴,記作XPY。例:在關(guān)系WAE中,由于:(倉庫號(hào),設(shè)備號(hào))數(shù)量,但倉庫號(hào)→數(shù)量,設(shè)備號(hào)→數(shù)量

因此:(倉庫號(hào),設(shè)備號(hào))f數(shù)量第13頁,共89頁,2023年,2月20日,星期六6.2.1函數(shù)依賴傳遞函數(shù)依賴與直接函數(shù)依賴

如果Y→X,即X←→Y,則Z對(duì)X直接函數(shù)依賴。例:在關(guān)系wae中有:定義6.4

在R(U)中,如果X→Y,Y→Z,且YX,Y→X,則稱Z對(duì)X傳遞函數(shù)依賴,記作XtZ。倉庫號(hào)→所在區(qū)域,所在區(qū)域→區(qū)域主管可得到傳遞函數(shù)依賴:倉庫號(hào)t

區(qū)域主管第14頁,共89頁,2023年,2月20日,星期六6.2.2碼定義6.5

設(shè)K為R<U,F>中的屬性或?qū)傩越M合。若KFU,則K稱為R的一個(gè)侯選碼。若關(guān)系模式R有多個(gè)候選碼,則選定其中的一個(gè)做為主碼。

主屬性:包含在任何一個(gè)候選碼中的屬性非主屬性:不包含在任何一個(gè)碼中的屬性

全碼:整個(gè)屬性組全是碼第15頁,共89頁,2023年,2月20日,星期六6.2.2碼定義6.5

關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱X是R的外部碼,也稱外碼。注:主碼和外碼一起提供了表示關(guān)系間聯(lián)系的手段。例:在關(guān)系SC(Sno,Cno,Grade)中,由于:Sno不是SC的碼,但是另一個(gè)關(guān)系S的碼因此:Sno是SC的外碼第16頁,共89頁,2023年,2月20日,星期六6.3規(guī)范化范式是對(duì)關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同標(biāo)準(zhǔn)。范式是符合某一種級(jí)別的關(guān)系模式的集合。

范式的種類: 第一范式(1NF)

第二范式(2NF)

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

第四范式(4NF)

第五范式(5NF)第17頁,共89頁,2023年,2月20日,星期六6.3規(guī)范化各種范式之間存在聯(lián)系:5NF

4NF

BCNF

3NF

2NF

1NF

某一關(guān)系模式R為第n范式,可簡記為R∈nNF。通過模式分解將一個(gè)低級(jí)范式的關(guān)系模式轉(zhuǎn)換為若干個(gè)高級(jí)范式的關(guān)系模式的過程稱作規(guī)范化。第18頁,共89頁,2023年,2月20日,星期六6.3.1第一范式(1NF)定義6.7滿足最低要求的范式。如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R∈1NF。

第一范式是對(duì)關(guān)系模式的最起碼要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。但滿足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。第19頁,共89頁,2023年,2月20日,星期六6.3.2第二范式(2NF)定義6.8若關(guān)系模式R∈1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴于R的碼,則R∈2NF。即:消除非主屬性對(duì)碼的部分依賴

如果一個(gè)數(shù)據(jù)庫模式中的每個(gè)關(guān)系模式都是第二范式的,則稱此數(shù)據(jù)庫模式屬于第二范式的數(shù)據(jù)庫模式。從1NF中消除非主屬性對(duì)候選碼的部分函數(shù)依賴,則獲得2NF。第20頁,共89頁,2023年,2月20日,星期六6.3.2第二范式(2NF)例:關(guān)系模式WAE中:WAE(倉庫號(hào),所在區(qū)域,區(qū)域主管,設(shè)備號(hào),數(shù)量)

碼:(倉庫號(hào),設(shè)備號(hào))

主屬性:倉庫號(hào),設(shè)備號(hào)

非主屬性:所在區(qū)域、區(qū)域主管和數(shù)量

函數(shù)依賴:第21頁,共89頁,2023年,2月20日,星期六6.3.2第二范式(2NF)倉庫號(hào)

設(shè)備號(hào)數(shù)量

所在區(qū)域

區(qū)域主管關(guān)系WAE碼為(倉庫號(hào),設(shè)備號(hào))非主屬性所在區(qū)域和區(qū)域主管部分函數(shù)依賴于碼WAE滿足第一范式,但不滿足第二范式。第22頁,共89頁,2023年,2月20日,星期六6.3.2第二范式(2NF)解決方法:將WAE分解為兩個(gè)關(guān)系模式,消除這些部分函數(shù)依賴:即:

WE(倉庫號(hào),設(shè)備號(hào),數(shù)量)

WA(倉庫號(hào),所在區(qū)域,區(qū)域主管)倉庫號(hào)設(shè)備號(hào)數(shù)量關(guān)系WE關(guān)系WA倉庫號(hào)所在區(qū)域區(qū)域主管WE∈2NF,WA∈2NF第23頁,共89頁,2023年,2月20日,星期六6.3.2第二范式(2NF)注:采用投影分解法將一個(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è)區(qū)域剛剛設(shè)立還沒有倉庫,則所在區(qū)域和區(qū)域主管的值無法插入,造成插入異常。(2)有一定的數(shù)據(jù)冗余,當(dāng)多個(gè)倉庫處于同一個(gè)區(qū)域時(shí),區(qū)域主管的值被多次存儲(chǔ)。(3)若某區(qū)域要更換區(qū)域主管,則要逐一地修改該區(qū)域的所有區(qū)域主管記錄,稍有不慎,就有可能漏改某些記錄,造成更新異常。第24頁,共89頁,2023年,2月20日,星期六6.3.3第三范式(3NF)如果一個(gè)數(shù)據(jù)庫模式中的每個(gè)關(guān)系模式都是第三范式的,則稱此數(shù)據(jù)庫模式屬于第三范式的數(shù)據(jù)庫模式。從2NF中消除非主屬性對(duì)候選碼的傳遞依賴,則獲得3NF。定義6.9如果關(guān)系模式R∈2NF,且每個(gè)非主屬性都不傳遞函數(shù)依賴于R的候選碼,則稱R屬于第三范式,簡稱3NF,記作R∈3NF。

即:消除非主屬性對(duì)碼的部分依賴和傳遞依賴第25頁,共89頁,2023年,2月20日,星期六6.3.3第三范式(3NF)例:WE(倉庫號(hào),設(shè)備號(hào),數(shù)量)

WA(倉庫號(hào),所在區(qū)域,區(qū)域主管)

函數(shù)依賴:

WE中:(倉庫號(hào),設(shè)備號(hào))f數(shù)量

WA中:倉庫號(hào)→所在區(qū)域,所在區(qū)域→區(qū)域主管可得到傳遞函數(shù)依賴:倉庫號(hào)f

區(qū)域主管

因此:

WE∈3NF,而WA∈3NF第26頁,共89頁,2023年,2月20日,星期六6.3.3第三范式(3NF)原因:區(qū)域主管傳遞依賴于碼。解決方法:將WA分解為兩個(gè)關(guān)系模式,消除這些傳遞依賴:即:W(倉庫號(hào),所在區(qū)域)

A(所在區(qū)域,區(qū)域主管)倉庫號(hào)所在區(qū)域關(guān)系W關(guān)系A(chǔ)所在區(qū)域區(qū)域主管W∈3NF,A∈3NF第27頁,共89頁,2023年,2月20日,星期六6.3.3第三范式(3NF)注:采用投影分解法將一個(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ù)冗余。表現(xiàn)在可能存在主屬性對(duì)碼的部分和傳遞依賴。第28頁,共89頁,2023年,2月20日,星期六6.3.4BC范式(BCNF)

BCNF范式是第三范式的改進(jìn)形式,建立在第一范式的基礎(chǔ)上,消除了主屬性對(duì)碼的部分和傳遞依賴。定義6.10

設(shè)關(guān)系模式R∈1NF,若對(duì)于R的每個(gè)函數(shù)依賴X→Y,若Y不屬于X,則X必含有候選碼,那么R∈BCNF。即:每一個(gè)決定因素(決定屬性集)都包含碼第29頁,共89頁,2023年,2月20日,星期六6.3.4BC范式(BCNF)證明:BCNF3NF反證:若RBCNF,但R3NF,則按3NF定義,一定有非主屬性對(duì)碼的傳遞依賴。于是存在:R的碼X,屬性組Y,以及非主屬性Z(ZY),使得XY,YZ,YX成立。由YZ,按BCNF定義,Y含有碼,則是YX成立,這與YX矛盾。所以:R3NF。第30頁,共89頁,2023年,2月20日,星期六6.3.4BC范式(BCNF)注意:若R∈BCNF,則R∈3NF若R∈3NF,則R不一定屬于BCNF若R∈BCNF

所有非主屬性對(duì)每一個(gè)候選碼都是完全函數(shù)依賴;所有主屬性對(duì)每一個(gè)不包含它的候選碼都是完全函數(shù)依賴;沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。第31頁,共89頁,2023年,2月20日,星期六6.3.4BC范式(BCNF)例1:Course(Cno,Creidt,Pcno)

函數(shù)依賴:

Cno→Credit,Cno→Pcno

即:無部分依賴和傳遞依賴,且Cno是唯一決定因素

因此:

Course∈3NF,且Course∈BCNF

碼:Cno即為主屬性,決定因素第32頁,共89頁,2023年,2月20日,星期六6.3.4BC范式(BCNF)例2:在關(guān)系模式SCP(S,C,P)中,S表示學(xué)生,C表示課程,P表示名次。說明:每一個(gè)學(xué)生選修每一門課程都有一個(gè)固定的名次:每一門課程中每一名次只對(duì)應(yīng)一個(gè)學(xué)生(假設(shè)沒有相同名次的學(xué)生):(S,C)→P(C,P)→S第33頁,共89頁,2023年,2月20日,星期六6.3.4BC范式(BCNF)SCPCPS關(guān)系SCP

候選碼:(S,C)和(C,P)即:S,C和P都是主屬性

決定因素:(S,C)和(C,P)

結(jié)論:SCP∈BCNF只有(S,C)和(C,P)決定因素且包含候選碼,無其他決定因素SCP∈3NF

S、C、P都是主屬性無部分依賴和傳遞依賴第34頁,共89頁,2023年,2月20日,星期六6.3.4BC范式(BCNF)例3:在關(guān)系模式WES(倉庫號(hào),設(shè)備號(hào),職工號(hào))中。說明:一個(gè)倉庫可以有多個(gè)職工;一個(gè)職工僅在一個(gè)倉庫工作;每個(gè)倉庫一種設(shè)備僅由一名職工保管,但每名職工可以保管多種設(shè)備.問:該關(guān)系的碼?屬于第幾范式?答:碼:(倉庫號(hào),設(shè)備號(hào))屬于3NF,但不屬于BCNF非BCNF的不良特性:某位職工剛分配到一個(gè)倉庫工作,但尚未負(fù)責(zé)具體設(shè)備,這樣的信息就無法插入。職工號(hào)倉庫號(hào)

(倉庫號(hào),設(shè)備號(hào))職工號(hào)第35頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式課程C教員T參考書B物理

數(shù)學(xué)

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

李勇張平

張平周峰

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

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

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

例:學(xué)校中某一門課程由多個(gè)教師講授,他們使用相同的一套參考書。 即:關(guān)系模式Teaching(C,T,B)

課程C、教師T和參考書B第36頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式普通物理學(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用二維表表示Teaching第37頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式Teach具有唯一候選碼(C,T,B),即全碼Teaching∈BCNF

存在的問題

(1)數(shù)據(jù)冗余:有多少名任課教師,參考書就要存儲(chǔ)多少次;

(2)插入異常:當(dāng)某一課程增加一名任課教師時(shí),該課程有多少本參照書,就必須插入多少個(gè)元組;

(3)刪除異常:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個(gè)元組;

(4)修改異常:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個(gè)元組。

產(chǎn)生原因:存在多值依賴第38頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式定義6.11

設(shè)R(U)是屬性集U上的一個(gè)關(guān)系模式。X、Y、Z是U的子集,并且Z=U-X-Y,多值依賴X→→Y成立當(dāng)且僅當(dāng)對(duì)R的任一關(guān)系r,給定一對(duì)(x,z)值,則對(duì)應(yīng)一組Y值,且這組值僅僅決定于X值而與Z值無關(guān)。例:Teaching(C,T,B)對(duì)于C的每一個(gè)值,T總有一組值與之對(duì)應(yīng),而與B的取值無關(guān),則T多值依賴于C即:C→→T,且B也多值依賴于C即:C→→B。第39頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式平凡多值依賴和非平凡的多值依賴若X→→Y,而Z=φ,則稱X→→Y為平凡的多值依賴;否則稱X→→Y為非平凡的多值依賴。如非平凡的多值依賴:CT,CB第40頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式

多值依賴的性質(zhì):(1)對(duì)稱性:即:若X→→Y,則X→→Z,其中Z=U-X-Y

多值依賴的對(duì)稱性可以用完全二分圖直觀地表示出來。(2)傳遞性:即:若X→→Y,Y→→Z,則X→→Z-Y第41頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式

物理普通物理學(xué)光學(xué)原理物理習(xí)題集李勇王軍完全二分圖描述多值依賴對(duì)稱性第42頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式(5)函數(shù)依賴是多值依賴的特殊情況: 即:若X→Y,則X→→Y。(3)合并性:若X→→Y,X→→Z,則X→→YZ。(4)分解性:若X→→Y,X→→Z,則X→→Y∩Z,X→→Y-Z,X→→Z-Y。第43頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式定義6.12

關(guān)系模式R∈1NF,如果對(duì)于R的每個(gè)非平凡多值依賴X→→Y(YX),X都含有候選碼,則R∈4NF。即:消除各屬性間非平凡且非函數(shù)依賴的多值依賴。

允許出現(xiàn)函數(shù)依賴(非平凡多值依賴)允許出現(xiàn)平凡多值依賴

如果R∈4NF,則R∈BCNF第44頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式證明:4NFBCNF反證:若R4NF,但RBCNF,則按BCNF定義,一定有一個(gè)決定因素不包含碼。于是存在:XY,YX,且X中不含有碼。由于函數(shù)依賴是多值依賴的特殊情況,即:XY,可得X→→Y(YX),按4NF定義,X一定含有碼,則與X中不含有碼矛盾。所以:RBCNF。第45頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式

存在非平凡的多值依賴C→→T,且C不是候選碼,該關(guān)系模式的碼是(C,T,B),即全碼。存在問題:數(shù)據(jù)冗余大,插入、刪除、更新異常解決方法:用投影分解法把Teach分解為如下兩個(gè)關(guān)系模式:CT(C,T)∈4NFCB(C,B)∈4NF

其中:C→→T,C→→B是平凡多值依賴

例:Teach(C,T,B)∈4NF第46頁,共89頁,2023年,2月20日,星期六6.3.5多值依賴與第四范式函數(shù)依賴和多值依賴是兩種非常重要的數(shù)據(jù)依賴若只考慮函數(shù)依賴,則BCNF為最高范式(但不是數(shù)據(jù)庫模式設(shè)計(jì)的最高范式);若考慮多值依賴,則4NF為最高范式;若消除了4NF中的連接依賴,可以得到更為規(guī)范化的5NF。第47頁,共89頁,2023年,2月20日,星期六6.3.6關(guān)系模式規(guī)范化一個(gè)關(guān)系只要其分量都是不可分的數(shù)據(jù)項(xiàng),它就是規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化1NF。規(guī)范化程度過低的關(guān)系不一定能夠很好地描述現(xiàn)實(shí)世界,可能會(huì)存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題。一個(gè)低一級(jí)范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式集合,這種過程就叫關(guān)系模式的規(guī)范化。第48頁,共89頁,2023年,2月20日,星期六6.3.6關(guān)系模式規(guī)范化消除不合適的數(shù)據(jù)依賴;采用“一事一地”的模式設(shè)計(jì)原則,使各關(guān)系模式達(dá)到某種程度的“分離”;讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系;若多于一個(gè)概念就把它“分離”出去;所謂規(guī)范化實(shí)質(zhì)上是概念的單一化。

規(guī)范化的基本思想第49頁,共89頁,2023年,2月20日,星期六6.3.6關(guān)系模式規(guī)范化關(guān)系模式規(guī)范化的基本步驟

1NF ↓消除決定因素2NF非碼的非平凡↓函數(shù)依賴3NF ↓ BCNF ↓ 4NF消除非主屬性對(duì)碼的部分函數(shù)依賴消除非主屬性對(duì)碼的傳遞函數(shù)依賴消除主屬性對(duì)碼的部分和傳遞函數(shù)依賴消除非平凡且非函數(shù)依賴的多值依賴不能說規(guī)范化程度越高的關(guān)系模式就越好;在設(shè)計(jì)數(shù)據(jù)庫模式結(jié)構(gòu)時(shí),必須對(duì)現(xiàn)實(shí)世界的實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式;上面的規(guī)范化步驟可以在其中任何一步終止。注意:第50頁,共89頁,2023年,2月20日,星期六練習(xí)

給定關(guān)系模式和函數(shù)依賴集合,要求判斷達(dá)到的最高范式。步驟如下:1.求出給定關(guān)系的候選碼(可能不止一個(gè))2.根據(jù)碼,寫出主屬性和非主屬性。3.判斷是否滿足第一范式(屬性的值域是否可以分解)4.判斷是否滿足第二范式(非主屬性對(duì)碼的部分函數(shù)依賴)5.判斷是否滿足第三范式(非主屬性對(duì)碼的傳遞函數(shù)依賴)6.判斷是否滿足BCNF范式(主屬性對(duì)碼的傳遞和部分函數(shù)依賴)第51頁,共89頁,2023年,2月20日,星期六解:1.關(guān)系r的候選碼為:AB和AC

練習(xí)1.已知關(guān)系模式R<U,F>U={A,B,C,D}F={ABD,ACBD,BC}在函數(shù)依賴范圍內(nèi)該關(guān)系屬于的最高范式是什么?2.主屬性為:A、B、C

非主屬性為:D3.判斷是否滿足各個(gè)范式的要求:

1)R的所有的屬性值域都不可再分,則r∈1NF。

2)非主屬性D不存在對(duì)任何碼的部分函數(shù)依賴,則r∈2NF。

3)非主屬性D不存在對(duì)任何碼的傳遞函數(shù)依賴,則r∈3NF。

4)因?yàn)橛泻瘮?shù)依賴BC,而B不是關(guān)系R的碼,則r不屬于BCNF。則:r∈3NF

第52頁,共89頁,2023年,2月20日,星期六解:1.關(guān)系r的候選碼為:AC練習(xí)2.已知關(guān)系模式R<U,F>U={A,B,C,D,E,F}F={AB,CDF,ACE,DF}在函數(shù)依賴范圍內(nèi)該關(guān)系屬于的最高范式是什么?2.主屬性為:A、C

非主屬性為:B、D、E、F3.判斷是否滿足各個(gè)范式的要求:

1)R的所有的屬性值域都不可再分,則r∈1NF。

2)由于存在函數(shù)依賴AB,CDF,而A和C均不是關(guān)系的碼,存在非主屬性B、D、F對(duì)碼的部分函數(shù)依賴,則r不屬于2NF。則:r∈1NF

第53頁,共89頁,2023年,2月20日,星期六練習(xí)練習(xí)3.假設(shè):某商業(yè)集團(tuán)數(shù)據(jù)庫中有一關(guān)系模式R如下:

R(商店編號(hào),商品編號(hào),數(shù)量,部門編號(hào),負(fù)責(zé)人)

如果規(guī)定:

(1)每個(gè)商店的每種商品只在一個(gè)部門銷售;

(2)每個(gè)商店的每個(gè)部門只有一個(gè)負(fù)責(zé)人;

(3)每個(gè)商店的每種商品只有一個(gè)庫存數(shù)量。

試回答下列問題:

(1)根據(jù)上述規(guī)定,寫出關(guān)系模式R的基本函數(shù)依賴;

(2)找出關(guān)系模式R的候選碼;

(3)試問關(guān)系模式R最高已經(jīng)達(dá)到第幾范式?為什么?

(4)如果R不屬于3NF,請(qǐng)將R分解成3NF模式集第54頁,共89頁,2023年,2月20日,星期六練習(xí)(1)有三個(gè)函數(shù)依賴:

(商店編號(hào),商品編號(hào))→部門編號(hào)

(商店編號(hào),部門編號(hào))→負(fù)責(zé)人

(商店編號(hào),商品編號(hào))→數(shù)量(2)R的候選鍵:(商店編號(hào),商品編號(hào))(3)因?yàn)镽中存在著非主屬性“負(fù)責(zé)人”對(duì)候選碼(商店編號(hào)、商品編號(hào))的傳遞函數(shù)依賴,但無部分函數(shù)依賴,所以R屬于2NF,R不屬于3NF。(4)將R分解成:

R1(商店編號(hào),商品編號(hào),數(shù)量,部門編號(hào))R2(商店編號(hào),部門編號(hào),負(fù)責(zé)人)

第55頁,共89頁,2023年,2月20日,星期六6.4函數(shù)依賴的公理系統(tǒng)邏輯蘊(yùn)含

定義6.13

對(duì)于滿足一組函數(shù)依賴F的關(guān)系模式R<U,F(xiàn)>,其任何一個(gè)關(guān)系r,若函數(shù)依賴X→Y都成立,則稱F邏輯蘊(yùn)含X→Y

,或稱X→Y為F所蘊(yùn)含。即:對(duì)于r中任意兩個(gè)元組t和s,有:若t[X]=s[X]

則t[Y]=s[Y]必成立。第56頁,共89頁,2023年,2月20日,星期六6.4.1Armstong公理系統(tǒng)Armstrong公理系統(tǒng)-函數(shù)依賴的推理規(guī)則關(guān)系模式R<U,F(xiàn)>有以下推理規(guī)則:Al自反律:若YXU,則X→Y為F所蘊(yùn)含。A2增廣律:若X→Y為F所蘊(yùn)含,且ZU,則XZ→YZ為F所蘊(yùn)含。A3傳遞律:若X→Y及Y→Z為F所蘊(yùn)含,則X→Z為F所蘊(yùn)含。注:由自反律所得到的函數(shù)依賴均是平凡的函數(shù)依賴,自反律的使用并不依賴于F。第57頁,共89頁,2023年,2月20日,星期六6.4.1Armstong公理系統(tǒng)偽傳遞規(guī)則:若XY,WYZ,則XWZ。分解規(guī)則:若XY及ZY,則XZ。XY增廣律XXYXZ增廣律XYYZ傳遞律}XYZ證明合并規(guī)則:由Armstrong公理導(dǎo)出的推理規(guī)則:合并規(guī)則:若XY,XZ,則XYZ。第58頁,共89頁,2023年,2月20日,星期六6.4.2閉包

引理6.l若A1A2…An是關(guān)系模式R的屬性集,則:X→A1A2…AkX→Ai成立(i=l,2,…,k)。證明:充分性:由合并律 必要性:由分解律根據(jù)合并規(guī)則和分解規(guī)則,可得:第59頁,共89頁,2023年,2月20日,星期六6.4.2閉包定義6.14在關(guān)系模式R<U,F(xiàn)>中為F所邏輯蘊(yùn)含的函數(shù)依賴的全體叫作F的閉包,記為F+。定義6.15設(shè)F為屬性集U上的一組函數(shù)依賴,XU,XF+={A|X→A能由F根據(jù)Armstrong公理導(dǎo)出},XF+稱為屬性集X關(guān)于函數(shù)依賴集F的閉包。引理6.2設(shè)F為屬性集U上的一組函數(shù)依賴,X,YU,X→Y能由F根據(jù)Armstrong公理導(dǎo)出的充分必要條件是YXF+用途:將判定X→Y是否能由F根據(jù)Armstrong公理導(dǎo)出的問題,轉(zhuǎn)化為求出XF+

,判定Y是否為XF+的子集的問題。第60頁,共89頁,2023年,2月20日,星期六6.4.2閉包算法6.l

求屬性集X(XU)關(guān)于U上的函數(shù)依賴集F的閉包XF+

輸入:X,F(xiàn)輸出:XF+步驟:(1)令X(0)=X,i=0(2)求B:B={A|(V)(W)(V→WF∧VX(i)∧AW)};(3)X(i+1)=B∪X(i)

(4)判斷X(i+1)=X(i)嗎?(5)若相等或X(i)=U,則X(i)就是XF+,算法終止。(6)若不相等,則i=i+l,返回第(2)步。第61頁,共89頁,2023年,2月20日,星期六例:已知關(guān)系模式R<U,F(xiàn)>,其中U={A,B,C,D,E}F={AB→C,B→D,C→E,EC→B,AC→B}求(AB)F+

。解:(1)設(shè)X(0)=AB;

(2)計(jì)算X(1):

逐一掃描F集合中各個(gè)函數(shù)依賴,找左部為A,B或AB的函數(shù)依賴。得到兩個(gè):AB→C,B→D。

(3)X(1)=AB∪CD=ABCD。(4)X(0)≠X(1)

則需再找出左部為ABCD子集的那些函數(shù)依賴,又得到AB→C,B→D,C→E,AC→B

于是:X(2)=X(1)∪BCDE=ABCDE。(5)X(2)=U,算法終止所以(AB)F+=ABCDE第62頁,共89頁,2023年,2月20日,星期六6.4.2閉包練習(xí):已知關(guān)系模式R<U,F(xiàn)>,其中U={A,B,C,D,E,G}F={AE,BEAG,CEA,GD}求(AB)F+

。解:所用依賴(AB)F+

ABAE(AAB) ABE

BEAG(BE

ABE)

ABEGGD(G

ABEG)

ABEGD所以:(AB)F+

=ABDEG第63頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化函數(shù)依賴等價(jià)定義6.16如果G+=F+,就說函數(shù)依賴集F覆蓋G(F是G的覆蓋,或G是F的覆蓋),或F與G等價(jià)。引理6.3F+=G+的充分必要條件是:

FG+

和GF+第64頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化最小依賴集定義6.17

如果函數(shù)依賴集F滿足下列條件,則稱F為一個(gè)極小函數(shù)依賴集,亦稱為最小依賴集或最小覆蓋:(1)F中任一函數(shù)依賴的右部僅含有一個(gè)屬性。

(2)F中不存在這樣的函數(shù)依賴X→A,使得F與F-{X→A}等價(jià)。

(3)F中不存在這樣的函數(shù)依賴X→A,X有真子集Z使得(F-{X→A})∪{Z→A}與F等價(jià)。

第65頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化例:對(duì)于關(guān)系模式S<U,F(xiàn)>,其中:

U={SNO,SDEPT,MN,CNAME,G},

F={SNO→SDEPT,SDEPT→MN,(SNO,CNAME)→G}設(shè):F’={SNO→SDEPT,SNO→MN,SDEPT→MN,(SNO,CNAME)→G,(SNO,SDEPT)→SDEPT}

F是最小覆蓋,而F’不是因?yàn)椋篎’-{SNO→MN}與F’等價(jià)

F’-{(SNO,SDEPT)→SDEPT}也與F’等價(jià)第66頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化定理6.1每一個(gè)函數(shù)依賴集F均等價(jià)于一個(gè)極小函數(shù)依賴集Fm,此Fm稱為F的最小依賴集。求解過程:依據(jù)定義分三步對(duì)F進(jìn)行“極小化處理”,找出F的一個(gè)最小依賴集:

(1)逐一檢查F中各函數(shù)依賴FDi:X→Y

若Y=A1A2

…Ak,k>2,則用{X→Aj|j=1,2,…,k}來取代X→Y。

理由:引理6.1保證了F變換前后的等價(jià)性。第67頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化(2)逐一檢查F中各函數(shù)依賴FDi:X→A

令G=F-{X→A},若AXG+,則從F中去掉此函數(shù)依賴。理由:由于F與G=F-{X→A}等價(jià)的充要條件是AXG+,因此F變換前后是等價(jià)的。第68頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化(3)逐一取出F中各函數(shù)依賴FDi:X→A

設(shè)X=B1B2…Bm,逐一考查Bi(i=l,2,…,m),若A(X-Bi)F+,則以X-Bi取代X。理由:由于F與(F-{X→A})∪{Z→A}等價(jià)的充要條件是AZF+,其中Z=X-Bi,因此F變換前后是等價(jià)的。即:若AZF+,則說明Z→AF+,又由ZX,則

X→AF+,用Z取代X即可。第69頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化例:已知關(guān)系模式R<U,F(xiàn)>,U={A,B,C,D,E,G};F={AB→C,C→A,CG→BD,ACD→B},求F的最小函數(shù)依賴集。

(1)分解右邊:F={AB→C,C→A,CG→B,CG→D,ACD→B}

(2)去掉F中多余的函數(shù)依賴:檢查AB→C:

G=F-{ABC}={C→A,CG→B,CG→D,ACD→B}

則:ABG+={AB},C{AB}

保留ABC:

F={AB→C,C→A,CG→B,CG→D,ACD→B}第70頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化檢查C→A:

G=F-{CA}={AB→C,CG→B,CG→D,ACD→B}

則:CG+={C},A{C}保留CA:F={AB→C,C→A,CG→B,CG→D,ACD→B}檢查CG→B:

G=F-{CGB}={AB→C,C→A,CG→D,ACD→B}

則:CGG+={ABCDG},B{ABCDG}刪除CGB:F={AB→C,C→A,CG→D,ACD→B}第71頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化檢查CG→D:

G=F-{CGD}={AB→C,C→A,ACD→B}

則:CGG+={ACG},D{ACG}保留CGD:F={AB→C,C→A,CG→D,ACD→B}檢查ACD→B:

G=F-{ACDB}={AB→C,C→A,CG→D}

則:ACDG+={ACD},B{ACD}保留ACDB:F={AB→C,C→A,CG→D,ACD→B}則:F={AB→C,C→A,CG→D,ACD→B}第72頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化

(3)去掉F中各依賴左部多余的屬性:

檢查AB→C:

G=F-{ABC}={C→A,CG→D,ACD→B}

由于:AG+={A},BG+={B}

保留ABC:F={AB→C,C→A,CG→D,ACD→B}

F={AB→C,C→A,CG→D,ACD→B}檢查CG→D:

G=F-{CGD}={AB→C,C→A,ACD→B}

由于:CG+={C,A},GG+={G}保留CGD:F={AB→C,C→A,CG→D,ACD→B}第73頁,共89頁,2023年,2月20日,星期六6.4.3函數(shù)依賴集的等價(jià)和最小化檢查ACD→B:

G=F-{ACDB}={AB→C,C→A,CG→D}

由于:CDG+={C,D,A},

包含A則A多余,可用CDB替代ACDB得到:F={AB→C,C→A,CG→D,CD→B}最后:Fmin={AB→C,C→A,CG→D,ACD→B}

F={AB→C,C→A,CG→D,ACD→B}注意:1)F的最小依賴集Fm不一定是唯一的,它與對(duì)各函數(shù)依賴FDi

及X→A中X各屬性的處置順序有關(guān)。

2)若改造后的F與原來的F相同,說明F本身就是一個(gè)最小依賴集。第74頁,共89頁,2023年,2月20日,星期六6.5模式分解把低一級(jí)的關(guān)系模式分解為若干個(gè)高一級(jí)的關(guān)系模式的方法并不是唯一的;只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià),分解方法才有意義;實(shí)際上,關(guān)系模式的分解,不僅僅是屬性集合的分解,它是對(duì)關(guān)系模式上的函數(shù)依賴集,以及關(guān)系模式的當(dāng)前值的分解的具體表現(xiàn)。第75頁,共89頁,2023年,2月20日,星期六6.5.1模式分解的準(zhǔn)則定義6.18關(guān)系模式R<U,F>的一個(gè)分解:ρ={R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>}

其中:U=U1∪U2∪…∪Un,且不存在Ui

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

Ui}的一個(gè)覆蓋Fi叫作F在屬性Ui上的投影。第76頁,共89頁,2023年,2月20日,星期六6.5.1模式分解的準(zhǔn)則三種模式分解的“等價(jià)”定義:⒈分解具有無損連接性⒉分解要保持函數(shù)依賴⒊分解既要保持函數(shù)依賴,又要具有無損連接性第77頁,共89頁,2023年,2月20日,星期六6.5.2分解的函數(shù)依賴保持性和無損連接性例:已知關(guān)系模式:SDL<U,F>U={Sno,Sdept,Sloc}F={Sno→Sdept,Sdept→Sloc,Sno→Sloc}

因?yàn)椋篠DL中存在傳遞函數(shù)依賴Sno→Sloc所以:SL∈2NF

存在插入異常、刪除異常、冗余度大和更新異常等問題,則可進(jìn)行分解,且分解方法可以有多種:第78頁,共89頁,2023年,2月20日,星期六6.5.2分解的函數(shù)依賴保持性和無損連接性SDL─────────────

Sno Sdept Sloc

─────────────95001CSA95002ISB95003MAC95004ISB95005 PH B─────────────第79頁,共89頁,2023年,2月20日,星期六6.5.2分解的函數(shù)依賴保持性和無損連接性第一種分解:SDL分解為下面三個(gè)關(guān)系模式:

SN(Sno)SD(Sdept)SO(Sloc)

SN──────SD──────SO────

SnoSdeptSloc

────────────────95001CSA95002ISB95003MAC95004PH───95005─────────注:分解后的數(shù)據(jù)庫丟失了許多信息第80頁,共89頁,2023年,2月20日,星期六6.5.2分解的函數(shù)依賴保持性和無損連接性第二種分解:SDL分解為下面兩個(gè)關(guān)系模式:

NL(Sno,Sloc)DL(Sdept,Sloc)

NL───────────DL──────────

SnoSlocSdeptSloc─────────────────────95001A CSA95002B ISB95003C MAC95004B PHB95005B───────────────────第81頁,共89頁,2023年,2月20日,星期六6.5.2分解的函數(shù)依賴保持性和無損連接性NLDL─────────────

SnoSlocSdept─────────────95001ACS95002BIS95002BPH95003CMA95004BIS95004BPH95005BIS95005BPH注:元組增加了,信息丟失了不能確定95002、95004、95005是哪個(gè)系的學(xué)生?第82頁,共89頁,2023年,2月20日,星期六6.5.2分解的函數(shù)依賴保持性和無損連接性第三種分解:SDL分解為下面兩個(gè)關(guān)系模式:

ND(Sno,Sdept)NL(Sno,Sloc)

ND────────────NL──────────

SnoSdeptSnoSloc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論