《數(shù)據(jù)庫(kù)原理與應(yīng)用教程》第5版 課件 第6章 關(guān)系數(shù)據(jù)理論_第1頁(yè)
《數(shù)據(jù)庫(kù)原理與應(yīng)用教程》第5版 課件 第6章 關(guān)系數(shù)據(jù)理論_第2頁(yè)
《數(shù)據(jù)庫(kù)原理與應(yīng)用教程》第5版 課件 第6章 關(guān)系數(shù)據(jù)理論_第3頁(yè)
《數(shù)據(jù)庫(kù)原理與應(yīng)用教程》第5版 課件 第6章 關(guān)系數(shù)據(jù)理論_第4頁(yè)
《數(shù)據(jù)庫(kù)原理與應(yīng)用教程》第5版 課件 第6章 關(guān)系數(shù)據(jù)理論_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)原理與應(yīng)用教程(第5版)第6章關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論6.1函數(shù)依賴6.1.1函數(shù)依賴基本概念6.1.2一些術(shù)語(yǔ)和符號(hào)6.1.3為什么要討論函數(shù)依賴

6.2關(guān)系規(guī)范化6.2.1關(guān)系模式中的碼6.2.2范式6.1一些數(shù)據(jù)語(yǔ)義問(wèn)題數(shù)據(jù)的語(yǔ)義不僅表現(xiàn)為完整性約束,對(duì)關(guān)系模式的設(shè)計(jì)也提出了一定的要求。如何構(gòu)造一個(gè)合適的關(guān)系模式,應(yīng)構(gòu)造幾個(gè)關(guān)系模式,每個(gè)關(guān)系模式由哪些屬性組成等,都是數(shù)據(jù)庫(kù)設(shè)計(jì)問(wèn)題,確切地講是關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)問(wèn)題。6.1.1函數(shù)依賴基本概念姓名=f(學(xué)號(hào)):給出一個(gè)具體的學(xué)號(hào),會(huì)有唯一的學(xué)生姓名和它對(duì)應(yīng)。這里“學(xué)號(hào)”是自變量X,“姓名”是因變量或函數(shù)值Y。把X函數(shù)決定Y,或Y函數(shù)依賴于X表示為:

X→Y如果有關(guān)系模式R(A1,A2,…,An),X和Y為{A1,A2,…,An}的子集,則對(duì)于關(guān)系R中的任意一個(gè)X值,都只有一個(gè)Y值與之對(duì)應(yīng),則稱X函數(shù)決定Y,或Y函數(shù)依賴于X。示例例1:對(duì)學(xué)生關(guān)系模式Student(Sno,Sname,Sdept,Sage)有以下依賴關(guān)系:

Sno→Sname,Sno→Sdept,Sno→Sage

例2:SC(Sno,Cno,Grade)(Sno,Cno)→Grade

函數(shù)依賴定義設(shè)有關(guān)系模式R(A1,A2,…,An),X和Y均為{A1,A2,…,An}的子集,r是R的任一具體關(guān)系,t1、t2是r中的任意兩個(gè)元組;如果由t1[X]=t2[X]可以推導(dǎo)出t1[Y]=t2[Y],則稱X函數(shù)決定Y,或Y函數(shù)依賴于X,記為X→Y。在以上定義中特別要注意,只要t1[X]=t2[X]t1[Y]=t2[Y]成立,就有X→Y。也就是說(shuō)只有當(dāng)t1[X]=t2[X]為真,而t1[Y]=t2[Y]為假時(shí),函數(shù)依賴X→Y不成立;而當(dāng)t1[X]=t2[X]為假時(shí),不管t1[Y]=t2[Y]為真或?yàn)榧?,都有X→Y成立。6.1.2一些術(shù)語(yǔ)和符號(hào)

1.

如果X→Y,但Y不包含于X,則稱

X→Y是非平凡的函數(shù)依賴。2.

如果X→Y,但Y包含于X,則稱

X→Y是平凡的函數(shù)依賴。

若無(wú)特別聲明,我們討論的都是非平凡的函數(shù)依賴。術(shù)語(yǔ)和符號(hào)(續(xù))

3.

如果X→Y,則X稱為決定因子。4.如果X→Y,并且Y→X,則記作

X←→Y。術(shù)語(yǔ)和符號(hào)(續(xù))如果X→Y,并且對(duì)于X的一個(gè)任意真子集X’都有X’—/→Y,則稱Y完全函數(shù)依賴于X,并記作:如果X→Y(非平凡函數(shù)依賴,并且Y—/→X)、Y→Z,則稱Z傳遞函數(shù)依賴于X,記作:如果X→Y成立,并且對(duì)于X的某個(gè)真子集X’有X’→Y成立,則稱Y部分函數(shù)依賴于X,并記作:示例例1:有關(guān)系模式SC(Sno,Sname,Cno,Credit,Grade),主碼為(Sno,Cno),則函數(shù)依賴關(guān)系有:

示例例2:假設(shè)有關(guān)系模式S(Sno,Sname,Dept,Dept_master),其中各屬性分別為:學(xué)號(hào)、姓名、所在系和系主任(假設(shè)一個(gè)系只有一個(gè)主任),主碼為Sno,則函數(shù)依賴關(guān)系有:6.1.3為什么要討論函數(shù)依賴?有關(guān)系模式:

S-L-C(Sno,Sdept,SLOC,Cno,Grade)SnoSnameSsexSdeptSlocCnoGrade1512101李勇男計(jì)算機(jī)系2公寓C001901512101李勇男計(jì)算機(jī)系2公寓C002861512101李勇男計(jì)算機(jī)系2公寓C006NULL1512102劉晨男計(jì)算機(jī)系2公寓C002781512102劉晨男計(jì)算機(jī)系2公寓C004661521102吳賓女信息系1公寓C001821521102吳賓女信息系1公寓C002751521102吳賓女信息系1公寓C004921521102吳賓女信息系1公寓C005501521103張海男信息系1公寓C002681521103張海男信息系1公寓C006NULL1531101錢小平女?dāng)?shù)學(xué)系1公寓C001801531101錢小平女?dāng)?shù)學(xué)系1公寓C00595存在問(wèn)題數(shù)據(jù)冗余問(wèn)題數(shù)據(jù)更新問(wèn)題數(shù)據(jù)插入問(wèn)題數(shù)據(jù)刪除問(wèn)題結(jié)論Student關(guān)系模式不是一個(gè)好的模式?!昂谩钡哪J剑翰粫?huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些數(shù)據(jù)依賴引起解決方法:通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴6.2關(guān)系規(guī)范化關(guān)系規(guī)范化是指導(dǎo)將有“不良”函數(shù)依賴的關(guān)系模式轉(zhuǎn)換為良好的關(guān)系模式的理論。這里涉及到范式的概念,不同的范式表示關(guān)系模式遵守的不同的規(guī)則。

6.2.1關(guān)系模式中的碼

候選碼:設(shè)K為R(U,F)中的屬性或?qū)傩越M,若K完全決定U,則K為R的候選碼。

主碼:關(guān)系R(U,F)中可能有多個(gè)候選碼,則選其中一個(gè)作為主碼。

全碼:候選碼為整個(gè)屬性組。 包含在任一候選碼中的屬性稱為主屬性,不包含在任一候選碼中的屬性稱為非主屬性。示例例1:學(xué)生(學(xué)號(hào),姓名,性別,身份證號(hào),年齡,所在系)候選碼:學(xué)號(hào),身份證號(hào)。主碼:“學(xué)號(hào)”或“身份證號(hào)”。主屬性:學(xué)號(hào),身份證號(hào)。非主屬性:姓名,性別,年齡,所在系。

示例例2.有關(guān)系模式:選課(學(xué)號(hào),課程號(hào),考試次數(shù),成績(jī))設(shè)一個(gè)學(xué)生對(duì)一門課程可以有多次考試,每一次考試有一個(gè)考試成績(jī)。候選碼:(學(xué)號(hào),課程號(hào),考試次數(shù)),也為主碼。主屬性:學(xué)號(hào),課程號(hào),考試次數(shù)非主屬性:成績(jī)。示例例3.有關(guān)系模式:授課(教師號(hào),課程號(hào),學(xué)年)語(yǔ)義:一個(gè)教師在一個(gè)學(xué)年可以講授多門不同的課程,可以在不同學(xué)年對(duì)同一門課程講授多次,但不能在同一個(gè)學(xué)年對(duì)同一門課程講授多次。一門課程在一個(gè)學(xué)年可以由多個(gè)不同的教師講授,同一個(gè)學(xué)年可以開(kāi)設(shè)多門課程,同一門課程可以在不同學(xué)年開(kāi)設(shè)多次。候選碼:(教師號(hào),課程號(hào),學(xué)年。主碼:同候選碼。主屬性:教師號(hào),課程號(hào),學(xué)年。非主屬性:沒(méi)有是全碼表。外碼外碼:用于關(guān)系表之間建立關(guān)聯(lián)的屬性(組)。定義:關(guān)系模式R中屬性(組)X不一定是R中的碼,但X是另一個(gè)關(guān)系模式S的候選碼(通常為主碼),則稱X為R的外碼。6.2.2范式關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系要滿足一定的要求,滿足不同程度要求的為不不同的范式(NormalForm)。范式的種類:

第一范式(1NF)第二范式(2NF)第三范式(3NF)第一范式第一范式(1NF):不包含重復(fù)組的關(guān)系第二范式第二范式(2NF)

:如果R(U,F)∈1NF,并且R中的每個(gè)非主屬性都完全函數(shù)依賴于主碼,則R(U,F)∈2NF。例:S-L-C(Sno,Sdept,SLOC,Cno,Grade)因?yàn)橛校篠no→SLOC,因此存在部分函數(shù)依賴,該表不是2NF。分解方法首先,對(duì)于組成主碼的屬性集合的每一個(gè)子集,用它作為主碼構(gòu)成一個(gè)表。然后,將依賴于這些主碼的屬性放置到相應(yīng)的表中。最后,去掉只由主碼的子集構(gòu)成的表。分解S-L-C表對(duì)S-L-C(Sno,Sdept,SLOC,Cno,Grade)首先分解為如下形式的三張表:

S-L(Sno,…)

C(Cno,…)

S-C(Sno,Cno,…)

分解S-L-C表(續(xù))然后,將依賴于這些主碼的屬性放置到相應(yīng)的表中,形成如下三張表:

S-L(Sno,Sdept,Sloc)

C(Cno)

S-C(Sno,Cno,Grade)

分解S-L-C表(續(xù))最后,去掉只由主碼的子集構(gòu)成的表。S-L-C關(guān)系模式最終分解的形式為:S-L(Sno,Sdept,Sloc)S-C(Sno,Cno,Grade)分解后的函數(shù)依賴關(guān)系分解后的關(guān)系模式的函數(shù)依賴關(guān)系:S-L:Snof→Sdept,Snof→SLOC是2NFS-C:(Sno,Cno)f→Grade:是2NF

S-L(Sno,Sdept,SLOC)存在問(wèn)題數(shù)據(jù)冗余:有多少個(gè)學(xué)生就有多少個(gè)重復(fù)的Sdept和SLOC;插入異常:當(dāng)新建一個(gè)系時(shí),若還沒(méi)有招收學(xué)生,則無(wú)法插入;第三范式第三范式(3NF):如果R(U,F)∈2NF,并且所有非主屬性都不傳遞依賴于主碼,則R(U,F)∈3NF。

S-L(Sno,Sdept,SLOC)∵Sno傳遞→SLOC,∴不是3NF分解方法(1)對(duì)于不是候選碼的每個(gè)決定因子,從表中刪去依賴于它的所有屬性;(2)新建一個(gè)表,新表中包含在原表中所有依賴于該決定因子的屬性;(3)將決定因子作為新表的主碼。分解S-L關(guān)系模式S-L分解后的關(guān)系模式為:S-D(Sno,Sdept)S-L(Sde

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論