第六章-數(shù)據(jù)庫(kù)設(shè)計(jì)和規(guī)范化理論_第1頁(yè)
第六章-數(shù)據(jù)庫(kù)設(shè)計(jì)和規(guī)范化理論_第2頁(yè)
第六章-數(shù)據(jù)庫(kù)設(shè)計(jì)和規(guī)范化理論_第3頁(yè)
第六章-數(shù)據(jù)庫(kù)設(shè)計(jì)和規(guī)范化理論_第4頁(yè)
第六章-數(shù)據(jù)庫(kù)設(shè)計(jì)和規(guī)范化理論_第5頁(yè)
已閱讀5頁(yè),還剩94頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)和規(guī)范化理論*1關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論_關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)和規(guī)范化理論計(jì)理論_212/8/2020問(wèn)題的提出規(guī)范化數(shù)據(jù)依賴(lài)的公理系統(tǒng)(略)模式的分解小結(jié)關(guān)系數(shù)據(jù)庫(kù)設(shè)問(wèn)題的提出關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_312/8/2020一、概念回顧二、關(guān)系模式的形式化定義三、什么是數(shù)據(jù)依賴(lài)四、關(guān)系模式的簡(jiǎn)化定義五、數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式影響一、概念回顧關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_412/8/2020關(guān)系:描述實(shí)體、屬性、實(shí)體間的聯(lián)系。從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個(gè)子集。關(guān)系模式:用來(lái)定義關(guān)系。

關(guān)系數(shù)據(jù)庫(kù):基于關(guān)系模型的數(shù)據(jù)庫(kù),利用關(guān)系來(lái)描述現(xiàn)實(shí)世界。從形式上看,它由一組關(guān)系組成。

關(guān)系數(shù)據(jù)庫(kù)的模式:定義這組關(guān)系的關(guān)系模式的全體。二、關(guān)系模式的形式化定義關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_512/8/2020關(guān)系模式由五部分組成,即它是一個(gè)五元組:R(U,

D,

DOM,

F)R:關(guān)系名U:

組成該關(guān)系的屬性名集合D:

屬性組U中屬性所來(lái)自的域DOM:

屬性向域的映象集合導(dǎo)師和研究生出自同一個(gè)域—人,所以要取不同的屬性名,并在模式中定義屬性向域的映象,即說(shuō)明它們分別出自哪個(gè)域,如:dom(SUPERVISOR-PERSON)=

dom(POSTGRADUATE-PERSON)=

PERSONF:

屬性間數(shù)據(jù)的依賴(lài)關(guān)系集合三、什么是數(shù)據(jù)依賴(lài)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_612/8/2020完整性約束的表現(xiàn)形式

限定屬性取值范圍:例如學(xué)生成績(jī)必須在0-100之間

定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴(lài),它是數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)鍵什么是數(shù)據(jù)依賴(lài)(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_712/8/2020數(shù)據(jù)依賴(lài)

是通過(guò)一個(gè)關(guān)系中屬性間值的相等與否體現(xiàn)出來(lái)的數(shù)據(jù)間的相互關(guān)系是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象是數(shù)據(jù)內(nèi)在的性質(zhì)是語(yǔ)義的體現(xiàn)什么是數(shù)據(jù)依賴(lài)(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_812/8/2020數(shù)據(jù)依賴(lài)的類(lèi)型

函數(shù)依賴(lài)(Functional

Dependency,簡(jiǎn)記為

FD)

多值依賴(lài)(Multi-valued

Dependency,簡(jiǎn)記為

MVD)其他四、關(guān)系模式的簡(jiǎn)化表示關(guān)系模式R(U,D,DOM,F) 簡(jiǎn)化為一個(gè)三元組:R(U,

F)當(dāng)且僅當(dāng)U上的一個(gè)關(guān)系r

滿(mǎn)足F時(shí),r稱(chēng)為關(guān)系模式R(U,F)的一個(gè)關(guān)系關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_912/8/2020五、數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_1012/8/2020例:描述學(xué)校的數(shù)據(jù)庫(kù):學(xué)生的學(xué)號(hào)(Sno)、所在系(Sdept)系主任姓名(Mname)、課程名(Cname)成績(jī)(Grade)單一的關(guān)系模式

Student

<U、F>U

={

Sno,

Sdept,

Mname,

Cname,

Score

}數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_1112/8/2020學(xué)校數(shù)據(jù)庫(kù)的語(yǔ)義:⒈

一個(gè)系有若干學(xué)生,一個(gè)學(xué)生只屬于一個(gè)系;⒉

一個(gè)系只有一名主任;⒊

一個(gè)學(xué)生可以選修多門(mén)課程,每門(mén)課程有若干學(xué)生選修;⒋

每個(gè)學(xué)生所學(xué)的每門(mén)課程都有一個(gè)成績(jī)。數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))屬性組U上的一組函數(shù)依賴(lài)F:F

={

Sno

Sdept,

Sdept

Mname,(Sno,

Cname)

Score

}SnoCnameSdeptMnameScore關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_1212/8/2020學(xué)號(hào)系名系主任課程名成績(jī)SnoSdeptMnameCnameScore200401001計(jì)算機(jī)科學(xué)張三數(shù)據(jù)結(jié)構(gòu)90200401001計(jì)算機(jī)科學(xué)張三通信原理90200401001計(jì)算機(jī)科學(xué)張三計(jì)算機(jī)網(wǎng)絡(luò)85200401002計(jì)算機(jī)科學(xué)張三數(shù)據(jù)結(jié)構(gòu)75200401002計(jì)算機(jī)科學(xué)張三通信原理88200401003計(jì)算機(jī)科學(xué)張三通信原理69200402001指揮自動(dòng)化李四數(shù)據(jù)結(jié)構(gòu)87200402001指揮自動(dòng)化李四操作系統(tǒng)90200402002指揮自動(dòng)化李四計(jì)算機(jī)網(wǎng)絡(luò)92200402003指揮自動(dòng)化李四計(jì)算機(jī)網(wǎng)絡(luò)83200403001網(wǎng)絡(luò)工程關(guān)系據(jù)庫(kù)數(shù)王五設(shè)信息安全技術(shù)91計(jì)理論_1312/8/2020可能的數(shù)據(jù)關(guān)系模式Student<U,F>中存在的問(wèn)題關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_1412/8/2020⒈數(shù)據(jù)冗余太大浪費(fèi)大量的存儲(chǔ)空間例:每一個(gè)系主任的姓名重復(fù)出現(xiàn)⒉更新異常(Update

Anomalies)數(shù)據(jù)冗余,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組關(guān)系模式Student<U,F>中存在的問(wèn)題關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_1512/8/2020⒊插入異常(Insertion

Anomalies)該插的數(shù)據(jù)插不進(jìn)去例,如果一個(gè)系剛成立,尚無(wú)學(xué)生,我們就無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。⒋刪除異常(Deletion

Anomalies)不該刪除的數(shù)據(jù)不得不刪例,如果某個(gè)系的學(xué)生全部畢業(yè)了,我們?cè)趧h除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))關(guān)的系數(shù)數(shù)據(jù)依賴(lài)。

據(jù)庫(kù)設(shè)

計(jì)理論_1612/8/2020結(jié)論:?Student關(guān)系模式不是一個(gè)好的模式。

“好”的模式:不會(huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些數(shù)據(jù)依賴(lài)引起的解決方法:通過(guò)分解關(guān)系模式來(lái)消除其中不合適規(guī)范化關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_1712/8/2020規(guī)范化理論正是用來(lái)改造關(guān)系模式,通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴(lài),以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問(wèn)題。函數(shù)依賴(lài)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_1812/8/2020一、函數(shù)依賴(lài)二、平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)三、完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)

四、傳遞函數(shù)依賴(lài)一、函數(shù)依賴(lài)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_1912/8/2020定義1

設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱(chēng)“X函數(shù)確定Y”或“Y函數(shù)依賴(lài)于X”,記作X→Y。X稱(chēng)為這個(gè)函數(shù)依賴(lài)的決定屬性集(Determinant)。Y=f(x)說(shuō)明:關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_2012/8/2020

函數(shù)依賴(lài)不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿(mǎn)足的約束條件,而是指R的所有關(guān)系實(shí)例均要滿(mǎn)足的約束條件。

函數(shù)依賴(lài)是語(yǔ)義范疇的概念。只能根據(jù)數(shù)據(jù)的語(yǔ)義來(lái)確定函數(shù)依賴(lài)。例如“姓名→年齡”這個(gè)函數(shù)依賴(lài)只有在不允許有同名人的條件下成立

數(shù)據(jù)庫(kù)設(shè)計(jì)者可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定。例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴(lài)“姓名→年齡”成立。所插入的元組必須滿(mǎn)足規(guī)定的函數(shù)依賴(lài),若發(fā)現(xiàn)有同

名人存在,則拒絕裝入該元組。函數(shù)依賴(lài)(續(xù))例:Student

(Sno,Sname,Ssex,Sage,Sdept)假設(shè)不允許重名,則有:Sno

Ssex,

Sno

Sage

,

Sno

Sdept,Sno

←→

Sname,Sname

Ssex,

Sname

Sage,

Sname

→Sdept但Ssex→Sage若X→Y,并且Y→X,

則記為X←→Y。若Y不函數(shù)依賴(lài)于關(guān)系X數(shù),

則記為X─→Y。據(jù)庫(kù)設(shè)計(jì)理論_2112/8/2020二、平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)在關(guān)系模式R(U)中,對(duì)于U的子集X和Y,如果X→Y,但Y

X,則稱(chēng)X→Y是非平凡的函數(shù)依賴(lài)若X→Y,但Y

X,

則稱(chēng)X→Y是平凡的函數(shù)依賴(lài)?yán)涸陉P(guān)系SC(Sno,Cno,Grade)中,非平凡函數(shù)依賴(lài):(Sno,Cno)→Grade平凡函數(shù)依賴(lài):(Sno,

Cno)

Sno(Sno,

Cno)

Cno關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_2212/8/2020平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_2312/8/2020對(duì)于任一關(guān)系模式,平凡函數(shù)依賴(lài)都是必然成立的,它不反映新的語(yǔ)義,因此若不特別聲明,我們總是討論非平凡函數(shù)依賴(lài)。三、完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)定義2在關(guān)系模式R(U)中,如果X→Y,并且對(duì)于X的任何一個(gè)真子集X’,都有X’

Y,

則稱(chēng)Y完全函數(shù)依賴(lài)于X,記作X

Y。若X→Y,但Y不完全函數(shù)依賴(lài)于X,則稱(chēng)Y部分函P數(shù)依賴(lài)于X,記作X

Y。例:在關(guān)系SC

(Sno,Cno,Score)中,由于:Sno→Score,Cno→Score,因此:(Sno,Cno)f

Score關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_2412/8/2020四、傳遞函數(shù)依賴(lài)定義3在關(guān)系模式R(U)中,如果X→Y,Y→Z,且Y

X,Y→X,則稱(chēng)Z傳遞函數(shù)依賴(lài)于X。注:如果Y→X,即X←→Y,則Z直接依賴(lài)于X。例:在關(guān)系Std

(Sno,Sdept,Mname)中,有:Sno→Sdept,Sdept→MnameMname傳遞函數(shù)依賴(lài)于Sno關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_2512/8/2020碼定義4設(shè)K為關(guān)系模式R<U,F>中的屬性或?qū)傩越M合。若K

U,則K稱(chēng)為R的一個(gè)侯選碼(Candidate

Key)。若關(guān)系模式R有多個(gè)候選碼,則選定其中的一個(gè)做為主碼(Primary

key)。

主屬性與非主屬性(包含在任何一個(gè)侯選碼中的屬性稱(chēng)主屬性,不包考在任何碼中的屬性稱(chēng)為非主屬性.)關(guān)系數(shù)■

ALL

KEY12/8/2020(整個(gè)屬性組是碼)據(jù)庫(kù)設(shè)計(jì)理論_26外碼關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_2712/8/2020定義5

關(guān)系模式

R

中屬性或?qū)傩越M

X是另一個(gè)關(guān)系模式的碼,則稱(chēng)X

是R

的外碼(Foreign

key)也稱(chēng)外部碼

主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。范式

范式是符合某一種級(jí)別規(guī)范的關(guān)系模式的集合。

關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿(mǎn)足一定的要求。滿(mǎn)足不同程度要求的為不同范式。范式的種類(lèi):第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_2812/8/2020范式各種范式之間存在聯(lián)系:

某一關(guān)系模式R為第n范式,可簡(jiǎn)記為

R∈nNF。關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_2912/8/20201NF1NF的定義如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R∈1NF。

第一范式是對(duì)關(guān)系模式的最起碼的要求。不滿(mǎn)足第一范式的數(shù)據(jù)庫(kù)模式不能稱(chēng)為

關(guān)系數(shù)據(jù)庫(kù)。

但是滿(mǎn)足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_3012/8/20202NF例:關(guān)系模式SLC(Sno,Sdept,Sloc,Cno,Score)Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。函數(shù)依賴(lài)包括:(Sno,

Cno)

fSno

SdeptScore(Sno,

Cno)Sno

Sloc(Sno,

Cno)PSdeptPSlocSdept

Sloc關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_3112/8/20202NFSnoSdeptSLC

據(jù)庫(kù)設(shè)

12/8/2020

Cno)計(jì)理論_32ScoreCno

SlocSLC的碼為(Sno,Cno)SLC滿(mǎn)足第一范式。非主屬性Sd關(guān)e系p數(shù)t和Sloc部分函數(shù)依賴(lài)于碼(Sno,SLC不是一個(gè)好的關(guān)系模式關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_3312/8/2020插入異常假設(shè)Sno=95102,Sdept=IS,Sloc=N的學(xué)生還未選課,因課程號(hào)是主屬性,因此該學(xué)生的信息無(wú)法插入SLC。刪除異常假定某個(gè)學(xué)生本來(lái)只選修了3號(hào)課程這一門(mén)課?,F(xiàn)在因身體不適,他連3號(hào)課程也不選修了。因課程號(hào)是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個(gè)元組都要?jiǎng)h除。SLC不是一個(gè)好的關(guān)系模式關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_3412/8/2020數(shù)據(jù)冗余度大如果一個(gè)學(xué)生選修了10門(mén)課程,那么他的Sdept和Sloc值就要重復(fù)存儲(chǔ)了10次。修改復(fù)雜例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時(shí),還可能需要修改住處(Sloc)。如果這個(gè)學(xué)生選修了K門(mén)課,則必須無(wú)遺漏地修改K個(gè)元組中全部Sdept、Sloc信息。2NF原因Sdept、Sloc部分函數(shù)依賴(lài)于碼。解決方法SLC分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴(lài)SC(Sno,

Cno,

Score)SL(Sno,

Sdept,

Sloc)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_3512/8/20202NFSnoSdeptScoreCno

SlocSLC的碼為(Sno,Cno)SLC滿(mǎn)足第一范式。非主屬性Sdept和Sloc部分函數(shù)依賴(lài)于碼(Sno,Cno)SLC關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_3612/8/20202NF函數(shù)依賴(lài)圖:SnoCnoScoreSCSLSnoSdeptSloc關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_3712/8/20202NF2NF的定義定義6若關(guān)系模式R∈1NF,并且每一個(gè)非

主屬性都完全函數(shù)依賴(lài)于R的碼,則R∈2NF。例:SLC(Sno,Sdept,Sloc,Cno,Grade)∈

1NFSLC(Sno,

Sdept,

Sloc,

Cno,

Grade)

∈2NF

SC(Sno,

Cno,

Grade)

2NFSL(Sno,關(guān)系S數(shù)dept,Sloc)∈2NF

據(jù)庫(kù)設(shè)

計(jì)理論_3812/8/2020第二范式(續(xù))關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論_3912/8/2020

采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。

將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。3NF關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4012/8/2020例:2NF關(guān)系模式SL(Sno,Sdept,Sloc)中函數(shù)依賴(lài):Sno→SdeptSdept→SlocSno→SlocSloc傳遞函數(shù)依賴(lài)于Sno,即SL中存在非主屬性對(duì)碼的傳遞函數(shù)依賴(lài)。3NF函數(shù)依賴(lài)圖:SLSdeptSnoSloc解決方法采用投影分解法,把SL分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴(lài):SD(Sno,

Sdept)DL(Sdept,

Sloc)SD的碼為Sno,DL的碼為Sdept。關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4112/8/20203NFSD的碼為Sno,DL的碼為Sdept。SnoSdeptSDSdeptSlocDL關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4212/8/20203NF3NF的定義定義5.8

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

中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z

Y),使得X→Y,Y

→X,Y→Z,成立,則稱(chēng)R<U,F(xiàn)>∈3NF。例,SL(Sno,Sdept,Sloc)∈2NFSL(Sno,Sdept,Sloc)∈3NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4312/8/20203NF關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4412/8/2020

若R∈3NF,則R的每一個(gè)非主屬性既不部分函數(shù)依賴(lài)于候選碼也不傳遞函數(shù)依賴(lài)于候選碼。如果R∈3NF,則R也是2NF。

采用投影分解法將一個(gè)2NF的關(guān)系分解為多個(gè)3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。

將一個(gè)2NF關(guān)系分解為多個(gè)3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。BC范式(BCNF)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4512/8/2020

定義5.9

設(shè)關(guān)系模式R<U,F(xiàn)>

1NF,如果對(duì)于R的每個(gè)函數(shù)依賴(lài)X→Y,若Y不屬于X,則X必含有候選碼,那么R∈BCNF。若R∈BCNF每一個(gè)決定屬性集(因素)都包含(候選)碼

R中的所有屬性(主,非主屬性)都完全函數(shù)依賴(lài)于碼R∈3NF若R∈3NF 則

R

不一定∈BCNFBCNF關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4612/8/2020例:在關(guān)系模式STC(S,T,C)中,S表示學(xué)生,T表示教師,C表示課程。

每一教師只教一門(mén)課,每門(mén)課由若干教師教,某一學(xué)生選定某門(mén)課,就確定了一個(gè)固定的教師。某個(gè)學(xué)生選修某個(gè)教師的課就確定了所選課的名稱(chēng):(S,C)→T,(S,T)→C,T→CBCNFSCTSTCSTJ候選碼關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4712/8/2020BCNFSTC∈3NF(S,C)和(S,T)都可以作為候選碼S、T、C都是主屬性STJ∈BCNFT→C,T是決定屬性集,T不是候選碼關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_4812/8/2020BCNF解決方法:將STC分解為二個(gè)關(guān)系模式:SC(S,C)

BCNF,

TC(T,C)∈

BCNFS

C

T

CSC

TC沒(méi)有任何屬性對(duì)碼的部分函數(shù)依賴(lài)和傳遞函數(shù)依關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論_賴(lài)4912/8/20203NF與BCNF的關(guān)系關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_5012/8/2020

如果關(guān)系模式R∈BCNF,必定有R∈3NF

如果R∈3NF,且R只有一個(gè)候選碼,則R必屬于BCNF。BCNF的關(guān)系模式所具有的性質(zhì)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_5112/8/2020⒈所有非主屬性都完全函數(shù)依賴(lài)于每個(gè)候選碼⒉所有主屬性都完全函數(shù)依賴(lài)于每個(gè)不包含它的候選碼⒊沒(méi)有任何屬性完全函數(shù)依賴(lài)于非碼的任何一組屬性以下“多值依賴(lài)與第四范式”部分供關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_5212/8/2020自學(xué)多值依賴(lài)與第四范式(4NF)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_5312/8/2020例:學(xué)校中某一門(mén)課程由多個(gè)教師講授,他們使用相同的一套參考書(shū)。關(guān)系模式Teaching(C,T,B)課程C、教師T和參考書(shū)B(niǎo)……課程C教員T參考書(shū)B(niǎo)物理數(shù)學(xué)計(jì)算數(shù)學(xué)李勇王軍李勇張平張平周峰普通物理學(xué)光學(xué)原理

物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析表5.1關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論_…5412/8/2020………課程C教員T參考書(shū)B(niǎo)物理李勇普通物理學(xué)物理李勇光學(xué)原理物理李勇物理習(xí)題集物理王軍普通物理學(xué)物理王軍光學(xué)原理物理王軍物理習(xí)題集數(shù)學(xué)李勇數(shù)學(xué)分析數(shù)學(xué)李勇微分方程數(shù)學(xué)李勇高等代數(shù)數(shù)學(xué)張平數(shù)學(xué)分析數(shù)學(xué)張平微分方程數(shù)學(xué)張平高等代數(shù)用二維表表示Teaching據(jù)庫(kù)設(shè)計(jì)理論_5512/8/2020關(guān)系數(shù)多值依賴(lài)與第四范式(續(xù))

據(jù)庫(kù)設(shè)

計(jì)理論_5612/8/2020Teaching∈BCNF:Teach具有唯一候選碼(C,T,B),即全碼Teaching模式中存在的問(wèn)題(1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書(shū)就要存儲(chǔ)多少次關(guān)系數(shù)多值依賴(lài)與第四范式(續(xù))

據(jù)庫(kù)設(shè)

計(jì)理論_5712/8/2020(2)插入操作復(fù)雜:當(dāng)某一課程增加一名任課教師時(shí),該課程有多少本參照書(shū),就必須插入多少個(gè)元組例如物理課增加一名教師劉關(guān),需要插入兩個(gè)元組:(物理,劉關(guān),普通物理學(xué))(物理,劉關(guān)關(guān)系數(shù),光學(xué)原理)多值依賴(lài)與第四范式(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_5812/8/2020刪除操作復(fù)雜:某一門(mén)課要去掉一本參考書(shū),該課程有多少名教師,就必須刪除多少個(gè)元組修改操作復(fù)雜:某一門(mén)課要修改一本參考書(shū),該課程有多少名教師,就必須修改多少個(gè)元組產(chǎn)生原因存在多值依賴(lài)一、多值依賴(lài)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_5912/8/2020定義5.10設(shè)R(U)是一個(gè)屬性集U上的一個(gè)關(guān)系模式,X、Y和Z是U的子集,并且Z=U-X-Y,多值依賴(lài)X→→Y成立當(dāng)且僅當(dāng)對(duì)的任一關(guān)系r,r在(X,Z)上的每個(gè)值對(duì)應(yīng)一組Y的值,這組值僅僅決定于X值而與Z值無(wú)關(guān)例Teaching(C,T,B)對(duì)于C的每一個(gè)值,T有一組值與之對(duì)應(yīng),而不論B取何值一、多值依賴(lài)據(jù)庫(kù)設(shè)計(jì)理論_6012/8/2020

在R(U)的任一關(guān)系r中,如果存在元組t,s

使得t[X]=s[X],那么就必然存在元組

w,v

r,(w,v可以與s,t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z](即交換s,t元組的Y值所得的兩個(gè)新元組必在r中),則Y多值依賴(lài)于X,記為X→→Y。

這里,X,Y是U的子集,Z=U-X-Y。t

x

y1

z2s

x

y2

z1w

x

y1

z1v

x

關(guān)系y2數(shù)

z2多值依賴(lài)(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6112/8/2020平凡多值依賴(lài)和非平凡的多值依賴(lài)若X→→Y,而Z=φ,則稱(chēng)

X→→Y為平凡的多值依賴(lài)否則稱(chēng)X→→Y為非平凡的多值依賴(lài)多值依賴(lài)的性質(zhì)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6212/8/2020多值依賴(lài)具有對(duì)稱(chēng)性若X→→Y,則X→→Z,其中Z=U-X-Y多值依賴(lài)的對(duì)稱(chēng)性可以用完全二分圖直觀地表示出來(lái)。多值依賴(lài)具有傳遞性若X→→Y,Y→→Z,則X→→Z-Y多值依賴(lài)的對(duì)稱(chēng)性XiZi1

Zi2…Zim…Yi1

Yi2Yin關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6312/8/2020多值依賴(lài)的對(duì)稱(chēng)性物理普通物理學(xué)光學(xué)原理物理習(xí)題集王李勇軍關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6412/8/2020多值依賴(lài)(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6512/8/2020函數(shù)依賴(lài)是多值依賴(lài)的特殊情況。 若X→Y,則X→→Y。若X→→Y,X→→Z,則X→→Y

Z。若X→→Y,X→→Z,則X→→Y∩Z。若X→→Y,X→→Z,則X→→Y-Z,→→Z-Y。多值依賴(lài)與函數(shù)依賴(lài)的區(qū)別關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6612/8/2020有效性多值依賴(lài)的有效性與屬性集的范圍有關(guān)若X→→Y在U上成立,則在W(X

Y

W

U)上一定成立;反之則不然,即X→→Y在W(W

U)上成立,在U上并不一定成立多值依賴(lài)的定義中不僅涉及屬性組X和Y,而且涉及U中其余屬性Z。一般地,在R(U)上若有X→→Y在W(W

U)上成立,則稱(chēng)X→→Y為R(U)的嵌入型多值依賴(lài)多值依賴(lài)與函數(shù)依賴(lài)的區(qū)別關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6712/8/2020

只要在R(U)的任何一個(gè)關(guān)系r中,元組在X和Y上的值滿(mǎn)足定義5.l(函數(shù)依賴(lài)),則函數(shù)依賴(lài)X→Y在任何屬性集W(X

Y

W

U)上成立。多值依賴(lài)(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6812/8/2020(2)若函數(shù)依賴(lài)X→Y在R(U)上成立,則對(duì)于任何Y"

Y均有X→Y"

成立多值依賴(lài)X→→Y若在R(U)上成立,不能斷言對(duì)于任何Y"

Y有X→→Y"

成立二、第四范式(4NF)

定義5.10

關(guān)系模式R<U,F(xiàn)>∈1NF,如果對(duì)于R的每個(gè)非平凡多值依賴(lài)X→→Y(YX),X都含有候選碼,則R∈4NF。(X→Y)如果R∈4NF,則R∈BCNF不允許有非平凡且非函數(shù)依賴(lài)的多值依賴(lài)允許的是函數(shù)依賴(lài)(是非平凡多值依賴(lài))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_6912/8/2020第四范式(續(xù))例:Teach(C,T,B)∈4NF存在非平凡的多值依賴(lài)C→→T,且C不是候選碼用投影分解法把Teach分解為如下兩個(gè)關(guān)系模式:

CT(C,T)∈4NFCB(C,

B)

4NFC→→T,C→→B是平凡多值依賴(lài)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7012/8/2020規(guī)范化第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)多值依賴(lài)與第四范式(4NF)規(guī)范化關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7112/8/2020規(guī)范化

關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具。

一個(gè)關(guān)系只要其分量都是不可分的數(shù)據(jù)項(xiàng),它就是規(guī)范化的關(guān)系,但這只是最基本的

規(guī)范化。規(guī)范化程度可以有多個(gè)不同的級(jí)別關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7212/8/2020規(guī)范化(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7312/8/2020

規(guī)范化程度過(guò)低的關(guān)系不一定能夠很好地描述現(xiàn)實(shí)世界,可能會(huì)存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問(wèn)題

一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式集合,這種過(guò)程就叫關(guān)系模式的規(guī)范化規(guī)范化(續(xù))關(guān)系模式規(guī)范化的基本步驟1NF↓消除非主屬性對(duì)碼的部分函數(shù)依賴(lài)消除決定屬性集非碼的非平凡函數(shù)依賴(lài)2NF↓消除非主屬性對(duì)碼的傳遞函數(shù)依賴(lài)3NF↓消除主屬性對(duì)碼的部分和傳遞函數(shù)依賴(lài)BCNF↓消除非平凡且非函數(shù)依賴(lài)的多值依賴(lài)4NF關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7412/8/2020規(guī)范化的基本思想關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7512/8/2020■消除不合適的數(shù)據(jù)依賴(lài)的各關(guān)系模式達(dá)到某種程度的“分離”采用“一事一地”的模式設(shè)計(jì)原則讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系。若多于一個(gè)概念就把它“分離”出去所謂規(guī)范化實(shí)質(zhì)上是概念的單一化規(guī)范化(續(xù))不能說(shuō)規(guī)范化程度越高的關(guān)系模式就越好

在設(shè)計(jì)數(shù)據(jù)庫(kù)模式結(jié)構(gòu)時(shí),必須對(duì)現(xiàn)實(shí)世界的實(shí)際情況和用戶(hù)應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式上面的規(guī)范化步驟可以在其中任何一步終止12/8/202076關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_關(guān)系數(shù)據(jù)理論關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7712/8/2020數(shù)據(jù)依賴(lài)規(guī)范化數(shù)據(jù)依賴(lài)的公理系統(tǒng)(略)模式的分解模式的分解關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7812/8/2020

把低一級(jí)的關(guān)系模式分解為若干個(gè)高一級(jí)的關(guān)系模式的方法并不是唯一的

只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià),分解方法才有意義關(guān)系模式分解的標(biāo)準(zhǔn)關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_7912/8/2020三種模式分解的等價(jià)定義⒈分解具有無(wú)損連接性⒉分解要保持函數(shù)依賴(lài)⒊分解既要保持函數(shù)依賴(lài),又要具有無(wú)損連接性模式的分解(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8012/8/2020定義5.16

關(guān)系模式R<U,F>的一個(gè)分解:ρ={

R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>}U=U∪U∪…∪U,且不存在U1

2

n

iji

iU,F(xiàn)

為F在U上的投影定義5.17函數(shù)依賴(lài)集合{X→Y

|

X→Y

F∧XY

U

}i的一個(gè)覆蓋Fi

叫作

F

在屬性

Ui

上的投影模式的分解(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8112/8/2020例:SL(Sno,Sdept,Sloc)F={

Sno→Sdept,Sdept→Sloc,Sno→Sloc}SL∈2NF存在插入異常、刪除異常、冗余度大和修改復(fù)雜等問(wèn)題分解方法可以有多種模式的分解(續(xù))SL

──────────────────Sno

Sdept

Sloc──────────────────95001CSA95002ISB95003MAC95004ISB95005PHB──────────────────關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8212/8/2020模式的分解(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8312/8/20201.SL分解為下面三個(gè)關(guān)系模式:SN(Sno)SD(Sdept)SO(Sloc)分解后的關(guān)系為:SN

──────關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8412/8/2020SD

──────SO

──────SnoSdeptSloc──────────────────95001CSA95002ISB95003MAC95004PH─────95005────────────模式的分解(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8512/8/2020分解后的數(shù)據(jù)庫(kù)丟失了許多信息例如無(wú)法查詢(xún)95001學(xué)生所在系或所在宿舍。如果分解后的關(guān)系可以通過(guò)自然連接恢復(fù)為原來(lái)的關(guān)系,那么這種分解就沒(méi)有丟失信息模式的分解(續(xù))2.SL分解為下面二個(gè)關(guān)系模式:

NL(Sno,Sloc)DL(Sdept,Sloc)分解后的關(guān)系為:NL

────────────

DL

────────────Sno

Sloc

Sdept

Sloc────────────

────────────95001ACSA95002BISB95003CMAC9500495005BBPH

B──────────────────────關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8612/8/2020模式的分解(續(xù))NL

DL─────────────Sno

Sloc

Sdept─────────────95001ACS95002BIS95002BPH95003CMA95004BIS95004BPH95005BIS95005BPH關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8712/8/2020模式的分解(續(xù))關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8812/8/2020NL

DL比原來(lái)的SL關(guān)系多了3個(gè)元組無(wú)法知道95002、95004、95005究竟是哪個(gè)系的學(xué)生元組增加了,信息丟失了第三種分解方法關(guān)系數(shù)

據(jù)庫(kù)設(shè)

計(jì)理論_8912/8/20203.將SL分解為下面二個(gè)關(guān)系模式:ND(Sno,

Sdept)NL(Sno,

Sloc)分解后的關(guān)系為:模式的分解(續(xù))ND

────────────Sno

Sdept───

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論