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

下載本文檔

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

文檔簡介

第4章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論本章要求:了解數(shù)據(jù)冗余和更新異常產(chǎn)生的根源了解函數(shù)依賴、多值依賴和鍵的基本內(nèi)涵理解關(guān)系模式規(guī)范化的途徑了解第四范式、第五范式的概念掌握第一范式、第二范式、第三范式和BCNF范式的含義、聯(lián)系與區(qū)別1第4章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論本章要求:1第4章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論本章內(nèi)容:問題提出12數(shù)據(jù)依賴2規(guī)范化關(guān)系模式設(shè)計(jì)3綜合舉例42第4章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論本章內(nèi)容:問題提出12數(shù)據(jù)依賴2規(guī)4.1問題提出

一個(gè)基本的問題:給出一組數(shù)據(jù),如何構(gòu)造一個(gè)合適的數(shù)據(jù)模式?例如:對關(guān)系模型,給了一組數(shù)據(jù),應(yīng)該構(gòu)造幾個(gè)關(guān)系?每個(gè)關(guān)系由哪些屬性組成?……這就是數(shù)據(jù)庫邏輯設(shè)計(jì)問題!34.1問題提出一個(gè)基本的問題:34.1問題提出網(wǎng)狀、層次模型的數(shù)據(jù)庫設(shè)計(jì),主要憑設(shè)計(jì)者的經(jīng)驗(yàn)直觀地選擇和確定實(shí)體集、屬性以及實(shí)體間的聯(lián)系。哪些實(shí)體應(yīng)該合并或分解以及如何合并和分解、每個(gè)實(shí)體中應(yīng)該包括哪些屬性為宜、屬性間的聯(lián)系如何確定和處理等一系列問題的解決是沒有什么固定規(guī)則和理論可循的。44.1問題提出網(wǎng)狀、層次模型的數(shù)據(jù)庫設(shè)計(jì),主要憑設(shè)計(jì)4.1問題提出關(guān)系數(shù)據(jù)庫的設(shè)計(jì)是借助近代數(shù)學(xué)工具而提出來的,形成了一整套定義、公理、定理及各種實(shí)用算法,產(chǎn)生了確定、評價(jià)關(guān)系數(shù)據(jù)庫模式的好方法。

關(guān)系數(shù)據(jù)庫的規(guī)范化理論——數(shù)據(jù)庫邏輯設(shè)計(jì)的有力工具54.1問題提出關(guān)系數(shù)據(jù)庫的設(shè)計(jì)是借助近4.1問題提出要考慮的幾個(gè)問題:為什么要規(guī)范化?怎樣規(guī)范化?規(guī)范化到什么程度后最合適?本節(jié)首先用一個(gè)例子來說明對關(guān)系模式為什么要規(guī)范化,不經(jīng)過規(guī)范化會產(chǎn)生什么樣的結(jié)果。64.1問題提出要考慮的幾個(gè)問題:64.1問題提出例:假設(shè)有一個(gè)關(guān)于學(xué)生選課和住宿情況的關(guān)系,包含:Sno(學(xué)生的學(xué)號)、Sdept(學(xué)生所在系)、Sloc(學(xué)生所住宿舍樓)、Cno(課程號)、Grade(考試成績)如下所示:74.1問題提出例:假設(shè)有一個(gè)關(guān)于學(xué)生選課和住宿情況的關(guān)系,7S-L-C(Sno,Sdept,Sloc,Cno,Grade)假設(shè)每個(gè)系的學(xué)生都住在一棟樓里,(Sno,Cno)為主碼SnoSdeptSLOCCnoGrade9812101計(jì)算機(jī)2公寓DB809812101計(jì)算機(jī)2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS789830101外語2公寓英語904.1問題提出8S-L-C(Sno,Sdept,Sloc,Cno,Grade4.1問題提出假設(shè)每個(gè)系的學(xué)生都住在一棟樓里該關(guān)系模式存在以下四個(gè)嚴(yán)重問題:數(shù)據(jù)冗余

數(shù)據(jù)庫中不必要的重復(fù)存儲就是數(shù)據(jù)冗余。此關(guān)系中,有關(guān)學(xué)生所在系和其所對應(yīng)的宿舍樓的信息有冗余,因?yàn)橐粋€(gè)系有多少個(gè)學(xué)生,這個(gè)系所對應(yīng)的宿舍樓的信息就要重復(fù)存儲多少遍。94.1問題提出假設(shè)每個(gè)系的學(xué)生都住在一棟樓里94.1問題提出插入異常

應(yīng)該存儲的信息無法存儲。插入記錄時(shí)出現(xiàn)不能插入等一些不合理現(xiàn)象。如果某個(gè)學(xué)生還沒有選課,但已經(jīng)有了Sdept和Sloc信息,我們也不能將此學(xué)生的這些已知信息插入到數(shù)據(jù)庫中。因?yàn)镃no為空,而Cno為主屬性,不能為空,因此也就丟掉了該學(xué)生的其他基本信息。104.1問題提出插入異常104.1問題提出刪除異常

不該刪除的信息被刪除。如果一個(gè)學(xué)生只選了一門課,而后來又不選了,則應(yīng)該刪除此學(xué)生選此門課程的記錄。但由于這個(gè)學(xué)生只選了一門課,那么刪掉此學(xué)生的選課記錄的同時(shí)也刪掉了此學(xué)生的其他基本信息。114.1問題提出刪除異常114.1問題提出更新異常由于數(shù)據(jù)的重復(fù)存儲,會給更新帶來很多麻煩。可能會導(dǎo)致數(shù)據(jù)的不一致,這將直接影響系統(tǒng)的質(zhì)量。若某一學(xué)生從計(jì)算機(jī)系轉(zhuǎn)到信息系,那么不但要修改學(xué)生的Sdept列的值,而且還要修改其Sloc列的值,從而使修改復(fù)雜化。一方面,修改工作量大;另一方面,可能漏改或該錯(cuò),會造成數(shù)據(jù)的不一致性。124.1問題提出更新異常124.1問題提出上例充分說明對關(guān)系模式若隨意設(shè)計(jì),其后果是嚴(yán)重的。本章將要討論產(chǎn)生上述問題的原因以及解決辦法,即如何改造一個(gè)不好的關(guān)系模式。這就是規(guī)范化理論要解決的主要問題。包括數(shù)據(jù)依賴、模式分解和模式設(shè)計(jì)方法。其中數(shù)據(jù)依賴是模式分解和模式設(shè)計(jì)的基礎(chǔ)。134.1問題提出上例充分說明對關(guān)系模式若隨意設(shè)計(jì)第4章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論本章內(nèi)容:問題提出2數(shù)據(jù)依賴規(guī)范化關(guān)系模式設(shè)計(jì)312綜合舉例414第4章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論本章內(nèi)容:問題提出2數(shù)據(jù)依賴規(guī)范化4.2數(shù)據(jù)依賴數(shù)據(jù)模型中我們討論了實(shí)體間的聯(lián)系,同時(shí)提到實(shí)體內(nèi)部屬性間也有聯(lián)系。事實(shí)上,上一節(jié)中的問題都是由于屬性間的聯(lián)系引起的。一、數(shù)據(jù)依賴屬性間的聯(lián)系:

1:1,1:n,m:n三種1:1聯(lián)系:設(shè)A、B為某實(shí)體集中的兩個(gè)屬性的值集,如果對于A中的任一值,B中至多有一個(gè)值與之對應(yīng),且反之亦然。如:車間--主任154.2數(shù)據(jù)依賴數(shù)據(jù)模型中我們討論了實(shí)體間的聯(lián)系4.2數(shù)據(jù)依賴1:n聯(lián)系:設(shè)A、B為某實(shí)體集中的兩個(gè)屬性的值集,如果對于A中的任一值,B中有多個(gè)值(包括0個(gè))之對應(yīng);而對于B中的任一值,A中至多有一個(gè)值與之對應(yīng)。如:班號--學(xué)號m:n聯(lián)系:設(shè)A、B為某實(shí)體集中的兩個(gè)屬性的值集,如果對于A中的任一值,B中有多個(gè)值(包括0個(gè))與之對應(yīng),且反之亦然。如:學(xué)號--課程號164.2數(shù)據(jù)依賴1:n聯(lián)系:設(shè)A、B為某實(shí)體集中的兩個(gè)屬性的4.2數(shù)據(jù)依賴通過一個(gè)關(guān)系中屬性間值的相互關(guān)聯(lián)(主要體現(xiàn)于值的相等與否)體現(xiàn)出來的數(shù)據(jù)間的相互聯(lián)系(是數(shù)據(jù)內(nèi)在的性質(zhì),語義的體現(xiàn))為數(shù)據(jù)依賴。兩類最重要的數(shù)據(jù)依賴:函數(shù)依賴多值依賴174.2數(shù)據(jù)依賴通過一個(gè)關(guān)系中屬性間值的相互關(guān)聯(lián)4.2數(shù)據(jù)依賴二、函數(shù)依賴不嚴(yán)格地講,函數(shù)依賴指的是一組屬性值唯一決定另一組屬性值的這種數(shù)據(jù)依賴。學(xué)生關(guān)系中,當(dāng)學(xué)號確定后,其姓名也就唯一確定了。選課關(guān)系中,當(dāng)學(xué)號和課程號確定后,其成績也就唯一確定。設(shè)用U表示關(guān)系模式R的屬性全集,即U={A1,A2,…An},用F表示關(guān)系模式R上的函數(shù)依賴集,則關(guān)系模式R可表示為R(U,F)。184.2數(shù)據(jù)依賴二、函數(shù)依賴184.2數(shù)據(jù)依賴1.函數(shù)依賴(FunctionalDependency,縮寫FD):設(shè)R(U)是屬性集U上的關(guān)系模式,X、Y是U的子集。對于r中的任意兩個(gè)元組u、v都有

u[X]=v[X]

u[Y]=v[Y]成立,則稱X函數(shù)決定Y,或稱Y函數(shù)依賴于X,記作XY。稱X為決定因素。194.2數(shù)據(jù)依賴1.函數(shù)依賴(FunctionalDe4.3規(guī)范化的關(guān)系模式假設(shè)每個(gè)系的學(xué)生都住在一棟樓里,

SnoSdeptSLOCCnoGrade9812101計(jì)算機(jī)2公寓DB809812101計(jì)算機(jī)2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS789830101外語2公寓英語90XYu[X]=v[X]u[Y]=v[Y]204.3規(guī)范化的關(guān)系模式假設(shè)每個(gè)系的學(xué)生都住在一棟樓里,4.2數(shù)據(jù)依賴說明:函數(shù)依賴類似于變量間的單值函數(shù)關(guān)系(一個(gè)自變量只能對應(yīng)一個(gè)函數(shù)值),因此也稱為單值函數(shù)依賴;若XY且YX,則記作XY;若Y不函數(shù)依賴于X,則記作X→Y;函數(shù)依賴是指關(guān)系模式R的任一關(guān)系都要滿足的約束條件。214.2數(shù)據(jù)依賴說明:若Y不函數(shù)依賴于X,則記作X→Y;函4.2數(shù)據(jù)依賴2.函數(shù)依賴與屬性間的聯(lián)系之關(guān)系(1)若X、Y之間是“1:1聯(lián)系”,則存在函數(shù)依賴XY和YX,即XY.(2)若X、Y之間是“m:1聯(lián)系”,則存在函數(shù)依賴關(guān)系XY。(3)若X、Y之間是“m:n聯(lián)系”,則X、Y之間不存在函數(shù)依賴關(guān)系。224.2數(shù)據(jù)依賴2.函數(shù)依賴與屬性間的聯(lián)系之關(guān)系224.2數(shù)據(jù)依賴3.函數(shù)依賴分類非平凡的函數(shù)依賴:XY,但YX。平凡的函數(shù)依賴:XY,但YX。完全函數(shù)依賴:XY,且對任意的X’X,都有X’Y,則稱XY是一個(gè)完全函數(shù)依賴,即Y完全依賴于X。記作XYf234.2數(shù)據(jù)依賴3.函數(shù)依賴分類完全函數(shù)依賴:XY,且對任4.2數(shù)據(jù)依賴部分函數(shù)依賴:XY,但Y不完全函數(shù)依賴于X,即存在X’X,有X’Y。記作XY。

pf關(guān)系模式P(學(xué)號,課程號,成績,學(xué)生姓名)中:(學(xué)號,課程號)成績(學(xué)號,課程號)學(xué)生姓名p傳遞函數(shù)依賴:若XY,YX,YZ,且Y→X,則稱Z對X是傳遞函數(shù)依賴。記作X—Z。傳遞244.2數(shù)據(jù)依賴部分函數(shù)依賴:XY,但Y不完全函數(shù)依賴于例:關(guān)系模式P(學(xué)號,系名,系主任)中:學(xué)號系名系名系主任(假設(shè)一個(gè)系只有一名系主任)4.2數(shù)據(jù)依賴如果YX,則XY,則XY,Z對X實(shí)際上是直接函數(shù)依賴而不是傳遞函數(shù)依賴.傳遞則學(xué)號—系主任25例:關(guān)系模式P(學(xué)號,系名,系主任)中:4.2數(shù)據(jù)依賴4.2數(shù)據(jù)依賴?yán)?關(guān)系模式P(姓名,職務(wù),職務(wù)工資)中:姓名職務(wù)職務(wù)職務(wù)工資則姓名—職務(wù)工資傳遞264.2數(shù)據(jù)依賴?yán)?關(guān)系模式P(姓名,職務(wù),職務(wù)工資)中:姓4.2數(shù)據(jù)依賴?yán)宏P(guān)系模式P(學(xué)號,課程號,成績,學(xué)分)中:

因?yàn)檎n程號學(xué)分,(學(xué)分,課程號)成績f(學(xué)號,課程號)課程號(平凡函數(shù)依賴),p所以有(學(xué)號,課程號)學(xué)分反之不成立,課程號學(xué)分,形成傳遞依賴(學(xué)號,課程號)—學(xué)分。傳遞274.2數(shù)據(jù)依賴?yán)宏P(guān)系模式P(學(xué)號,課程號,成績,學(xué)分)中4.2數(shù)據(jù)依賴三、多值依賴

1.例子:設(shè)學(xué)校中一門課由多位教員講授,他們使用相同的參考書,比如:“物理”,教員為汪洋、大海,參考書為《普通物理學(xué)》、《光學(xué)原理》、《物理習(xí)題集》;“數(shù)學(xué)”,教員為大海、白云,參考書為《數(shù)學(xué)分析》、《微分方程》、《高等代數(shù)》;用模式為TEACH(C,T,B)的關(guān)系表示上述數(shù)據(jù):284.2數(shù)據(jù)依賴三、多值依賴284.2數(shù)據(jù)依賴課程C教員T參考書B物理汪洋普通物理學(xué)物理汪洋光學(xué)原理物理汪洋物理習(xí)題集物理大海普通物理學(xué)物理大海光學(xué)原理物理大海物理習(xí)題集數(shù)學(xué)大海數(shù)學(xué)分析數(shù)學(xué)大海微分方程數(shù)學(xué)大海高等代數(shù)數(shù)學(xué)白云數(shù)學(xué)分析數(shù)學(xué)白云微分方程數(shù)學(xué)白云高等代數(shù)計(jì)算白云數(shù)學(xué)分析………………294.2數(shù)據(jù)依賴課程C教員T參考書4.2數(shù)據(jù)依賴該關(guān)系模式中,任何兩個(gè)屬性都不能函數(shù)決定第三個(gè)屬性。該關(guān)系模式存在冗余大、增刪不方便等問題。沒有函數(shù)依賴,需要另行分析分析:在該關(guān)系模式中,對于一個(gè)(物理,普通物理學(xué)),有一組教員{汪洋,大海},而對于另一個(gè)(物理,光學(xué)原理),對應(yīng)的教員仍是{汪洋,大海}。因此,所對應(yīng)的教員只與課程的值有關(guān)而與參考書的值無關(guān)。304.2數(shù)據(jù)依賴該關(guān)系模式中,任何兩個(gè)屬性都不能函數(shù)決定第三4.2數(shù)據(jù)依賴2.多值依賴(MultiValuedDependency,縮寫為MVD)設(shè)R(U)是屬性集U上的關(guān)系模式,X、Y、Z是U的子集,且Z=UXY,多值依賴XY成立當(dāng)且僅當(dāng)對R(U)的任一關(guān)系r,任給的一對(x,z)值有一組Y的值,這組值僅僅取決于x值而與z值無關(guān)。稱X多值決定Y或Y多值依賴于X。314.2數(shù)據(jù)依賴2.多值依賴(MultiValuedDe4.2數(shù)據(jù)依賴課程C教員T參考書物理汪洋普通物理學(xué)物理汪洋光學(xué)原理物理汪洋物理習(xí)題集物理大海普通物理學(xué)物理大海光學(xué)原理物理大海物理習(xí)題集數(shù)學(xué)大海數(shù)學(xué)分析數(shù)學(xué)大海微分方程數(shù)學(xué)大海高等代數(shù)數(shù)學(xué)白云數(shù)學(xué)分析數(shù)學(xué)白云微分方程數(shù)學(xué)白云高等代數(shù)計(jì)算白云數(shù)學(xué)分析………………XYZ任給的一對(x,z)值有一組Y的值,這組值僅僅取決于x值,而與z值無關(guān)。稱X多值決定Y或Y多值依賴于X。324.2數(shù)據(jù)依賴課程C教員T參考書多值依賴XY成立當(dāng)且僅當(dāng)對R(U)的任一關(guān)系r,若存在元組s、t使得s[X]=t[X],則必存在元組w、vr(w、v可以與s、t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],v[Y]=s[Y],w[Z]=s[Z],v[Z]=t[Z]。多值依賴的另一等價(jià)定義對于r中在X上值相等的兩個(gè)元組s、t,交換它們的Y值后所得的新元組w、v仍在r中XYZs[X]v[X]w[X]t[X]tswvw[Y]s[Y]t[Y]v[Y]t[Z]v[Z]s[Z]w[Z]33多值依賴XY成立當(dāng)且僅當(dāng)對R(U)的任一關(guān)4.2數(shù)據(jù)依賴平凡的多值依賴:若XY,而Z=?,即Z為空,則稱XY為平凡的多值依賴。若Z非空,則稱XY為非平凡的多值依賴344.2數(shù)據(jù)依賴平凡的多值依賴:344.2數(shù)據(jù)依賴3.多值依賴的性質(zhì):對稱性:若XY,Z=UXY,則XZ。傳遞性:若XY,YZ,則XY?Z。函數(shù)依賴是多值依賴的特例:若XY,則XY。354.2數(shù)據(jù)依賴3.多值依賴的性質(zhì):354.2數(shù)據(jù)依賴多值依賴的性質(zhì):若XY,XZ,則XY∩Z。若XY,XZ,則XY?Z,XZ

?

Y。364.2數(shù)據(jù)依賴多值依賴的性質(zhì):364.2數(shù)據(jù)依賴4.多值依賴與函數(shù)依賴的區(qū)別(1)函數(shù)依賴XY的有效性僅取決于X、Y,與X、Y之外的屬性無關(guān):374.2數(shù)據(jù)依賴4.多值依賴與函數(shù)依賴的區(qū)別374.2數(shù)據(jù)依賴多值依賴XY的有效性與X、Y之外的屬性范圍有關(guān):若XY在U上成立,則在W(XYWU)上也成立,但反之不然??煽s小范圍但不一定能擴(kuò)大范圍

X是否多值決定Y與這一部分屬性密切相關(guān)XYZ

R(U):WXYR(W):W

XY在U上成立XY在W上也成立反之不成立384.2數(shù)據(jù)依賴多值依賴XY的有效性與X、Y之外的屬性范4.2數(shù)據(jù)依賴(2)對函數(shù)依賴,若XY,則對Y的任意子集Y’,都有XY’。對多值依賴,沒有上述性質(zhì),即不能保證XY’成立。原因:在關(guān)系模式R(U)上,函數(shù)依賴XY的有效性僅僅取決于X、Y兩個(gè)屬性集合;而在多值依賴中XY在U上是否成立,不僅要檢查X、Y上的屬性值,而且要檢查Z=U-X-Y上的值。394.2數(shù)據(jù)依賴(2)對函數(shù)依賴,若XY,則對Y的任意子集4.2數(shù)據(jù)依賴四、鍵從函數(shù)依賴的角度給關(guān)鍵字一個(gè)形式化的定義。1.候選關(guān)鍵字和主關(guān)鍵字:設(shè)K是R<U,F>中的屬性或?qū)傩越M合,若候選關(guān)鍵字多于一個(gè),則選定其中的一個(gè)作為主關(guān)鍵字(主鍵、主碼)。f若KU,則稱K為U的候選關(guān)鍵字(候選碼);404.2數(shù)據(jù)依賴四、鍵若候選關(guān)鍵字多于一個(gè),則選定其中的一個(gè)4.2數(shù)據(jù)依賴2.外鍵(外部碼)若R<U,F>中的屬性或?qū)傩越M合X不是R的關(guān)鍵字,但X是另一個(gè)關(guān)系的關(guān)鍵字,則稱X是R的外鍵。主鍵與外鍵提供了一個(gè)表示關(guān)系間聯(lián)系的手段。例1:S(Sno,Sname,Sage)Sno為主碼SC(Sno,Cno,Grade)Sno為外碼414.2數(shù)據(jù)依賴2.外鍵(外部碼)414.2數(shù)據(jù)依賴3.全鍵(All-key,全碼)若R<U,F>的整個(gè)屬性組是關(guān)鍵字,則稱U是全鍵。424.2數(shù)據(jù)依賴3.全鍵(All-key,全碼)424.2數(shù)據(jù)依賴?yán)?:R(P,W,A)其中各屬性含義分別為:演奏者,作品和聽眾。其語義為:一個(gè)演奏者可演奏多個(gè)作品,某一作品可被多個(gè)演奏者演奏;聽眾也可欣賞不同演奏者的不同作品。

其候選碼為:(P,W,A),因?yàn)橹挥羞@三者才能確定一場音樂會。我們稱全部屬性均為主碼的表為全碼表。434.2數(shù)據(jù)依賴?yán)?:R(P,W,A)其中各屬性含義分別為:4.2數(shù)據(jù)依賴4.主屬性和非主屬性主屬性:包含在某個(gè)候選關(guān)鍵字中的屬性非主屬性:不包含在任何侯選關(guān)鍵字中的屬性例:SC(Sno,Cno,Grade)中,(Sno,Cno)是關(guān)鍵字,故Sno,Cno是主屬性Grade不包含在任何關(guān)鍵字中,故Grade是非主屬性。444.2數(shù)據(jù)依賴4.主屬性和非主屬性44第4章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論本章內(nèi)容:問題提出2數(shù)據(jù)依賴規(guī)范化關(guān)系模式312綜合舉例445第4章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論本章內(nèi)容:問題提出2數(shù)據(jù)依賴規(guī)范化4.3規(guī)范化的關(guān)系模式本節(jié)討論下述問題:如何根據(jù)關(guān)系模式屬性間的數(shù)據(jù)依賴情況來判斷該關(guān)系模式是否合適?如何將具有不合適性質(zhì)的關(guān)系模式轉(zhuǎn)換為更合適的形式?464.3規(guī)范化的關(guān)系模式本節(jié)討論下述問題:464.3規(guī)范化的關(guān)系模式一、規(guī)范化1.范式(NormalForm)按關(guān)系模式所具有的數(shù)據(jù)依賴性質(zhì)對關(guān)系模式的分類,也就是關(guān)系的規(guī)范化程度。滿足不同程度要求的為不同范式。2.規(guī)范化把一個(gè)低一級范式的關(guān)系模式通過模式分解轉(zhuǎn)化為若干個(gè)高一級的關(guān)系模式的過程。474.3規(guī)范化的關(guān)系模式一、規(guī)范化471NF2NF3NFBCNF4NF5NF4.3規(guī)范化的關(guān)系模式481NF2NF3NFBCNF4NF5NF4.3規(guī)范化的關(guān)系模4.3規(guī)范化的關(guān)系模式二、第一范式(1NF)1.定義:關(guān)系的每個(gè)分量必須是不可再分的數(shù)據(jù)項(xiàng)。記作R1NF。(每個(gè)屬性必須是原子的)2.說明:屬性不可再分(不允許出現(xiàn)嵌套的屬性定義)屬性下的值不可再分(不允許出現(xiàn)多個(gè)值)這是對關(guān)系的最起碼的要求,但遠(yuǎn)遠(yuǎn)不夠。(滿足1NF的關(guān)系稱為規(guī)范關(guān)系)494.3規(guī)范化的關(guān)系模式二、第一范式(1NF)49系名稱高職人數(shù)教授副教授計(jì)算機(jī)系610信息管理系35電子與通訊系48系名稱教授副教授計(jì)算機(jī)系610信息管理系35電子與通訊系484.3規(guī)范化的關(guān)系模式不滿足1NF范式的關(guān)系:50系名稱高職人數(shù)教授副教授計(jì)算機(jī)系610信息管理系34.3規(guī)范化的關(guān)系模式3.僅屬于1NF的關(guān)系模式可能會產(chǎn)生的問題:S-L-C(Sno,Sdept,Sloc,Cno,Grade)假設(shè)每個(gè)系的學(xué)生都住在一棟樓里,(Sno,Cno)為主碼SnoSdeptSLOCCnoGrade9812101計(jì)算機(jī)2公寓DB809812101計(jì)算機(jī)2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS78顯然S-L-C1NF,但第一節(jié)中我們已討論知它有四個(gè)嚴(yán)重問題。因此僅是第一范式的關(guān)系模式完全不能滿足需要。514.3規(guī)范化的關(guān)系模式3.僅屬于1NF的關(guān)系模式可能會產(chǎn)4.3規(guī)范化的關(guān)系模式SnoSLOCSnoSdept主碼為:(Sno,Cno)(Sno,Cno)Gradef在S-L-C中有如下函數(shù)依賴:524.3規(guī)范化的關(guān)系模式SnoSLOC主碼為:(Sno,C4.3規(guī)范化的關(guān)系模式分析出現(xiàn)問題的原因:

Sno函數(shù)決定非主屬性Sdept、SLOC。因此,關(guān)鍵字(Sno,Cno)部分函數(shù)決定這些屬性。這顯然是產(chǎn)生冗余的一個(gè)主要原因。534.3規(guī)范化的關(guān)系模式分析出現(xiàn)問題的原因:534.3規(guī)范化的關(guān)系模式三、第二范式(2NF)1.定義:若R1NF,且每一非主屬性都完全函數(shù)依賴于R的任意一個(gè)候選碼,則稱R是第二范式,記作R2NF。2.屬于1NF但不屬于2NF的例子:例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)就不是2NF的。因?yàn)椋⊿no,Cno)是主碼,而又有:Sno→Sdept,因此有:(Sno,Cno)Sdeptp544.3規(guī)范化的關(guān)系模式三、第二范式(2NF)(Sno,Cn4.3規(guī)范化的關(guān)系模式3.2NF范式的性質(zhì)如果R2NF,則R1NF。如果R的候選關(guān)鍵字是單屬性或全鍵(All-key),則R2NF554.3規(guī)范化的關(guān)系模式3.2NF范式的性質(zhì)554.3規(guī)范化的關(guān)系模式2NF要求實(shí)體的非主屬性完全依賴于主關(guān)鍵字。如果存在非主屬性部分函數(shù)依賴主關(guān)鍵字一部分屬性,那么這個(gè)屬性和主關(guān)鍵字的這部分屬性應(yīng)該分離出來形成一個(gè)新的實(shí)體。即1NF范式中消除非主屬性對主關(guān)鍵字的部分函數(shù)依賴,即可得到2NF。564.3規(guī)范化的關(guān)系模式2NF要求實(shí)體的非主屬性完全依賴于主4.分解過程為:用每個(gè)決定因素與它完全決定的屬性構(gòu)成一個(gè)關(guān)系模式,決定因素成為新模式的碼。S-L-C關(guān)系模式分解后的形式為:

S-L(Sno,Sdept,Sloc)和S-C(Sno,Cno,Grade)S-L有:SnoSdept,Sno

SLOC:是2NFffS-C有:(Sno,Cno)

Grade:是2NFf4.3規(guī)范化的關(guān)系模式574.分解過程為:S-L有:SnoSdept4.3規(guī)范化的關(guān)系模式分解前S-L-C(Sno,Sdept,Sloc,Cno,Grade)分解后S-C(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)分解之后,與S_L_C相比:數(shù)據(jù)冗余減?。ㄔ瓉戆殡S學(xué)生所學(xué)的每門課都要存儲一遍SD、SL的值);沒選課的學(xué)生信息可以存儲;刪除選課記錄不會誤刪學(xué)生其他信息;冗余數(shù)據(jù)的減少使得修改變得容易些。1NF的上述四個(gè)問題得到了部分解決584.3規(guī)范化的關(guān)系模式分解前S-L-C(Sno,Sdep4.3規(guī)范化的關(guān)系模式5.僅屬于2NF的關(guān)系模式可能會產(chǎn)生的問題數(shù)據(jù)冗余數(shù)據(jù)冗余仍然較大:Sloc的值重復(fù)嚴(yán)重插入異常若一個(gè)系剛成立但尚無學(xué)生,該系名稱等無法存儲刪除異常若一個(gè)系的學(xué)生全部畢業(yè),刪除全部學(xué)生數(shù)據(jù)的同時(shí)把該系的數(shù)據(jù)(如系名等)也都刪除了修改困難數(shù)據(jù)冗余大勢必造成修改困難(這可以說是個(gè)必然聯(lián)系)可能的原因:存在傳遞函數(shù)依賴SnoSloc594.3規(guī)范化的關(guān)系模式5.僅屬于2NF的關(guān)系模式可能會產(chǎn)4.3規(guī)范化的關(guān)系模式四、第三范式(3NF)1.定義:如果R(U,F)∈2NF,并且所有非主屬性對任何候選關(guān)鍵字都不存在傳遞依賴,則R(U,F)∈3NF。2.定理:若R3NF,則R2NF。

關(guān)系模式S-L(Sno,Sdept,Sloc),因?yàn)橛校篠no→Sdept,Sdept→Sloc因此有:Sno傳遞→Sloc

因此,不是3NF的關(guān)系模式。604.3規(guī)范化的關(guān)系模式四、第三范式(3NF)603.分解過程為(1)對于不是候選碼的每個(gè)決定因子,從表中刪去依賴于它的所有屬性;(2)新建一個(gè)表,新表中包含在原表中所有依賴于該決定因子的屬性;(3)將決定因子作為新表的主碼。S-L分解后的關(guān)系模式為:S-D(Sno,Sdept)和S-L(Sdept,Sloc)對S-D,有:Snof→Sdept,因此S-D是3NF的對S-L,有:Sdeptf→Sloc,因此S-L也是3NF的通常在數(shù)據(jù)庫設(shè)計(jì)中,一般要求要達(dá)到3NF。

613.分解過程為614.3規(guī)范化的關(guān)系模式4.僅屬于3NF的關(guān)系模式可能會產(chǎn)生的問題由上可知,部分函數(shù)依賴和傳遞函數(shù)依賴是產(chǎn)生異常的兩個(gè)重要原因。3NF中不存在非主屬性對于關(guān)鍵字的部分函數(shù)依賴和傳遞函數(shù)依賴,因此具有較好的性質(zhì)。通常設(shè)計(jì)關(guān)系模式時(shí)至少應(yīng)該是屬于3NF的。雖說3NF是廣泛使用的一種關(guān)系范式,但3NF仍然存在某些“異?!薄?24.3規(guī)范化的關(guān)系模式4.僅屬于3NF的關(guān)系模式可能會產(chǎn)4.3規(guī)范化的關(guān)系模式例:關(guān)系模式R(S,T,J)函數(shù)依賴:(S,J)T;(S,T)J;TJ候選關(guān)鍵字:(S,J);(S,T)R中無非主屬性,顯然R3NF。634.3規(guī)范化的關(guān)系模式634.3規(guī)范化的關(guān)系模式五、Boyce-Codd范式(BCNF)1.定義:如果關(guān)系模式R中的所有屬性包括主屬性和非主屬性,都不傳遞依賴于R的任何候選關(guān)鍵字,則稱R是BCNF范式。記為RBCNF。2.另一種等價(jià)的定義:若R3NF,且對任何非平凡的函數(shù)依賴XY,X必包含候選碼。則RBCNF。如果R∈3NF,并且不存在主屬性對非碼的函數(shù)依賴,則其是BCNF。644.3規(guī)范化的關(guān)系模式五、Boyce-Codd范式(BCN4.3規(guī)范化的關(guān)系模式3.性質(zhì)所有非主屬性對每一個(gè)主碼都是完全函數(shù)依賴;所有主屬性對每一個(gè)不包含它的主碼也是完全函數(shù)依賴;沒有任何屬性完全函數(shù)依賴于非主碼的任何一組屬性。若RBCNF,則R3NF。(也稱BCNF為修正的3NF)654.3規(guī)范化的關(guān)系模式3.性質(zhì)654.3規(guī)范化的關(guān)系模式在函數(shù)依賴的范疇內(nèi),BCNF已做到徹底的分離,消除了插入異常、刪除異常(3NF的“不徹底性”在于可能存在主屬性對關(guān)鍵字的部分函數(shù)依賴和傳遞函數(shù)依賴)。664.3規(guī)范化的關(guān)系模式在函數(shù)依賴的范4.3規(guī)范化的關(guān)系模式4.屬于3NF但不屬于BCNF的例子:關(guān)系模式STJ(學(xué)生S,教師T,課程C)每個(gè)教師只教一門課,每門課有若干教師,某一學(xué)生選定某門課,就對應(yīng)一個(gè)固定的教師。碼:(學(xué)生S,課程C);(學(xué)生S,教師T)函數(shù)依賴:(S,C)T;(S,T)C;TC因?yàn)镃部分函數(shù)依賴于碼(S,T),或T是決定因素,但T不包含碼。故R不屬于BCNF。674.3規(guī)范化的關(guān)系模式4.屬于3NF但不屬于BCNF的例4.3規(guī)范化的關(guān)系模式例:有關(guān)系模式CSZ(City,Street,Zip),其中各屬性分別代表城市、街道和郵政編碼。其語義為:城市和街道可以決定郵政編碼,郵政編碼可以決定城市。因此有:(City,Street)Zip,ZipCity其候選碼為:(City,Street)和(Street,Zip)此模式不存在非主屬性,因此它屬于3NF。存在問題ZipCity,Zip是決定因子,但Zip不是碼。所以不是BCNF!。684.3規(guī)范化的關(guān)系模式例:有關(guān)系模式CSZ(City,St4.3規(guī)范化的關(guān)系模式5.解決辦法:消除主屬性對碼的部分或傳遞函數(shù)依賴,轉(zhuǎn)換BCNF。將R(學(xué)生S,教師T,課程C)分解為:

R1(學(xué)生S,教師T)和R2(教師T,課程C)694.3規(guī)范化的關(guān)系模式5.解決辦法:消除主屬性對碼的部分或4.3規(guī)范化的關(guān)系模式六、范式小結(jié)1.規(guī)范化的目的解決數(shù)據(jù)冗余、插入異常、刪除異常、修改困難等問題2.規(guī)范化的基本思想逐步消除不合適的數(shù)據(jù)依賴,讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或?qū)嶓w間的一種聯(lián)系。即“一事一地”的模式設(shè)計(jì)原則。704.3規(guī)范化的關(guān)系模式六、范式小結(jié)704.3規(guī)范化的關(guān)系模式3.范式1NF2NF3NFBCNF4NF消除非主屬性對碼的部分函數(shù)依賴消除非主屬性對碼的傳遞函數(shù)依賴消除主屬性對碼的部分和傳遞函數(shù)依賴消除非平凡且非函數(shù)依賴的多值依賴消除決定因素非碼的非平凡函數(shù)依賴決定因素非碼的非平凡多值依賴714.3規(guī)范化的關(guān)系模式3.范式1NF2NF3NFBCNF4.3規(guī)范化的關(guān)系模式4.規(guī)范化的過程對關(guān)系模式分解,把一個(gè)低一級關(guān)系模式分解成若干個(gè)高一級的關(guān)系模式。5.規(guī)范化與操作效率片面追求高級的模式,會使數(shù)據(jù)庫操作效率降低724.3規(guī)范化的關(guān)系模式4.規(guī)范化的過

溫馨提示

  • 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

提交評論