第六章 數(shù)據(jù)庫規(guī)范化理論.ppt_第1頁
第六章 數(shù)據(jù)庫規(guī)范化理論.ppt_第2頁
第六章 數(shù)據(jù)庫規(guī)范化理論.ppt_第3頁
第六章 數(shù)據(jù)庫規(guī)范化理論.ppt_第4頁
第六章 數(shù)據(jù)庫規(guī)范化理論.ppt_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、,An Introduction to Database Systems,2011-08-24,數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database Systems,內(nèi)蒙古大學(xué)鄂爾多斯學(xué)院 戴瓊潔,An Introduction to Database Systems,第六章 關(guān)系數(shù)據(jù)理論,本章講述關(guān)系數(shù)據(jù)庫規(guī)范化理論,這是數(shù)據(jù)庫邏輯設(shè)計(jì)的理論依據(jù)。 要求了解規(guī)范化理論的研究動機(jī)及其在數(shù)據(jù)庫設(shè)計(jì)中的作用 掌握函數(shù)依賴的有關(guān)概念 第一范式、第二范式、第三范式和BC范式的定義 重點(diǎn)掌握并能夠靈活運(yùn)用關(guān)系模式規(guī)范化的方法和關(guān)系模式分解的方法,這也是本章的難點(diǎn),本章概要,關(guān)系模式的存

2、儲異常問題,要求設(shè)計(jì)一個學(xué)校教務(wù)管理數(shù)據(jù)庫,學(xué)校的實(shí)際情況如下: 1. 一個系有若干個學(xué)生,但一個學(xué)生只屬于一個系; 2. 一個系只有一名系主任,但一個系主任可以同時兼幾個系的系主任; 3. 一個學(xué)生可以選修多門功課,每門課程可有若干學(xué)生選修; 4. 每個學(xué)生學(xué)習(xí)課程有一個成績。,關(guān)系模式的存儲異常問題,其中有一位同學(xué)呢設(shè)計(jì)的數(shù)據(jù)庫模式SCD如下: SCD(SNO,SNAME,AGE,DEPT,MN,CNO,SCORE),關(guān)系模式的存儲異常問題,1. 數(shù)據(jù)冗余 每個系名和系主任的名字存儲的次數(shù)等于該系的學(xué)生人數(shù)乘以每個學(xué)生選修的課程門數(shù),同時學(xué)生的姓名、年齡也都要重復(fù)存儲多次,數(shù)據(jù)的冗余度很大

3、,浪費(fèi)了存儲空間。,關(guān)系模式的存儲異常問題,2. 插入異常 當(dāng)某個學(xué)生尚未選課,則學(xué)生信息不能插入。 因?yàn)樵谶@個關(guān)系模式中,(SNO,CNO)是主關(guān)系鍵 即CNO未知,實(shí)體完整性約束還規(guī)定,主關(guān)系鍵的值不能部分為空,同樣不能進(jìn)行插入操作。,關(guān)系模式的存儲異常問題,3.刪除異常 某系學(xué)生全部畢業(yè)而沒有招生時,刪除全部學(xué)生的記錄則系名、系主任也隨之刪除,而這個系依然存在,在數(shù)據(jù)庫中卻無法找到該系的信息。,關(guān)系模式的存儲異常問題,4. 更新異常 如果學(xué)生改名,則該學(xué)生的所有記錄都要逐一修改SN; 如某系更換系主任,則屬于該系的學(xué)生記錄都要修改MN的內(nèi)容,稍有不慎,就有可能漏改某些記錄,這就會造成數(shù)據(jù)

4、的不一致性,破壞了數(shù)據(jù)的完整性。,關(guān)系模式的存儲異常問題,由于存在以上問題,SCD是一個不好的關(guān)系模式。 關(guān)系的規(guī)范化:如何按照一定的規(guī)范設(shè)計(jì)關(guān)系模式,將結(jié)構(gòu)復(fù)雜的關(guān)系分解成結(jié)構(gòu)簡單的關(guān)系,從而把不好的關(guān)系數(shù)據(jù)庫模式轉(zhuǎn)變?yōu)楹玫年P(guān)系數(shù)據(jù)庫模式。,規(guī)范化問題的提出,什么樣的關(guān)系模式是一個好的關(guān)系模式? 如何將不好的關(guān)系模式轉(zhuǎn)換為好的關(guān)系模式?,關(guān)系數(shù)據(jù)庫的規(guī)范化理論主要包括三個方面的內(nèi)容: 函數(shù)依賴 范式(Normal Form) 模式設(shè)計(jì),規(guī)范化理論,1.函數(shù)依賴 關(guān)系模式中的各屬性之間相互依賴、相互制約的聯(lián)系稱為數(shù)據(jù)依賴。 數(shù)據(jù)依賴一般分為: 函數(shù)依賴 多值依賴 連接依賴 其中,函數(shù)依賴是最重

5、要的數(shù)據(jù)依賴。 函數(shù)依賴(Functional Dependency)是關(guān)系模式中屬性之間的一種邏輯依賴關(guān)系。,規(guī)范化理論函數(shù)依賴,定義6.1 函數(shù)依賴的形式化定義 設(shè)R(U)是一個屬性集U上的關(guān)系模式,X和Y是U的子集。若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等, 而在Y上的屬性值不等, 則稱 “X函數(shù)確定Y” 或 “Y函數(shù)依賴于X”,記作XY。 例:學(xué)號姓名 (學(xué)號,課名)分?jǐn)?shù) 函數(shù)依賴僅僅是語義范疇的概念,只能根據(jù)其語義確定屬性之間的函數(shù)依賴。,規(guī)范化理論函數(shù)依賴,術(shù)語和記號 非平凡的函數(shù)依賴: 若XY,但YX,則稱XY為非平凡函數(shù)依賴。 平凡的函數(shù)依

6、賴: 若XY,但YX,則稱XY為平凡函數(shù)依賴。 例:在關(guān)系SC(Sno, Cno, Grade)中, 非平凡函數(shù)依賴: (Sno, Cno) Grade 平凡函數(shù)依賴: (Sno, Cno) Sno (Sno, Cno) Cno 決定因子: 若XY,則X叫做決定因子。 互相依賴:若XY,且YX,則稱互相依賴,記作YX。 不依賴: 若Y不依賴于X,則記作XY.,規(guī)范化理論函數(shù)依賴,定義6.2 完全依賴和部分依賴 在R(U)中,如果XY,并且對于X的任何一個真子集X,都有XY,則稱Y對X完全函數(shù)依賴,記作: X Y Full 若XY,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴,記作 X Y P

7、art 例: (Sno,Cno)Grade是完全函數(shù)依賴, (Sno,Cno)Sdept是部分函數(shù)依賴 因?yàn)镾no Sdept成立,且Sno是(Sno,Cno)的真子集。,規(guī)范化理論函數(shù)依賴,F,P,定義6.3 傳遞函數(shù)依賴 在R(U)中,如果XY,(Y X) ,YX YZ, 則稱Z對X傳遞函數(shù)依賴。 記為:X Z 注: 如果加上條件YX, 即XY,則Z直接依賴于X。 例: 在關(guān)系Std(Sno, Sdept, Mname)中,有: Sno Sdept,Sdept Mname Mname傳遞函數(shù)依賴于Sno,規(guī)范化理論函數(shù)依賴,例:關(guān)系模式 S-L-C(Sno, Sdept, Sloc, Cn

8、o, Grade),Sloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地方 請分析分析關(guān)系模式S-L-C的函數(shù)依賴,規(guī)范化理論函數(shù)依賴,例:關(guān)系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地方 關(guān)系模式S-L-C的函數(shù)依賴 (Sno, Cno) Grade Sno Sdept (Sno, Cno) Sdept Sno Sloc (Sno, Cno)Sloc Sdept Sloc,規(guī)范化理論函數(shù)依賴,P,F,P,2.范式 我們把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同標(biāo)準(zhǔn)稱為范式(Normal Form)

9、。 由于規(guī)范化的程度不同,就產(chǎn)生了不同的范式。 從1971年起,Codd相繼提出了關(guān)系的三級規(guī)范化形式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。 1974年,Codd和Boyce以共同提出了一個新的范式的概念,即Boyce-Codd范式,簡稱BC范式。 1976年Fagin提出了第四范式, 后來又有人定義了第五范式,規(guī)范化理論范式,至此在關(guān)系數(shù)據(jù)庫規(guī)范中建立了一個范式系列各個范式之間的聯(lián)系可以表示為:5NF4NFBCNF3NF2NF1NF 一級比一級有更嚴(yán)格的要求。 若某一關(guān)系滿足第n范式,我們可以稱某一關(guān) 系模式R為第n范式,可簡記為RnNF。 一個低一級范式的關(guān)系模式

10、,通過模式分解 可以轉(zhuǎn)換為若干個高一級范式的關(guān)系模式的集合, 這種過程就叫規(guī)范化 。,規(guī)范化理論范式,5NF,(1)第一范式 (1NF) 第一范式(First Normal Form)是最基本的規(guī)范形式,即關(guān)系中每個屬性都是不可再分的簡單項(xiàng)。 定義:如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R1NF。 第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。 但是滿足第一范式的關(guān)系模式并不一定是一個好的關(guān)系模式。,規(guī)范化理論范式,數(shù)據(jù)庫模式SCD如下: SCD(SNO,SNAME,AGE,DEPT,MN,CNO,SCORE),規(guī)范化理論范式,(2)第二范式

11、 (2NF) 若R1NF,且每一個非主屬性完全函數(shù)依賴于碼,則R2NF。,規(guī)范化理論范式,例:關(guān)系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地方 關(guān)系模式S-L-C的函數(shù)依賴 (Sno, Cno) Grade Sno Sdept (Sno, Cno) Sdept Sno Sloc (Sno, Cno)Sloc Sdept Sloc,規(guī)范化理論范式,P,F,P,(1) 插入異常 (2) 刪除異常 (3) 數(shù)據(jù)冗余度大 (4) 修改復(fù)雜 解決方法 S-L-C分解為兩個關(guān)系模式,消除部分函數(shù)依賴 SC(Sno, Cno

12、, Grade) S-L(Sno, Sdept, Sloc),規(guī)范化理論范式,函數(shù)依賴圖 關(guān)系模式SC的碼為(Sno,Cno) 關(guān)系模式S-L的碼為Sno 這樣非主屬性對碼都是完全函數(shù)依賴,規(guī)范化理論范式,S-L-C(Sno, Sdept, Sloc, Cno, Grade) 1NF S-L-C(Sno, Sdept, Sloc, Cno, Grade) 2NF SC (Sno, Cno, Grade) 2NF S-L(Sno, Sdept, Sloc) 2NF 采用投影分解法將一個1NF的關(guān)系分解為多個2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修

13、改復(fù)雜等問題。,規(guī)范化理論范式,(3) 第三范式(3NF) 定義:若R中不存在這樣的碼X,屬性組Y及非主屬性Z(ZY),使得XY,YZ,XZ成立,則稱R3NF. 消除非主屬性對碼的傳遞函數(shù)依賴. 分析S-L(Sno, Sdept, Sloc) S-L3NF 存在的問題 插入異常,刪除異常,修改異常,冗余度大 解決辦法:模式分解,規(guī)范化理論范式,分解結(jié)果 采用投影分解法,把S-L分解為兩個關(guān)系模式,以消除傳遞函數(shù)依賴: S-D(Sno, Sdept) D-L(Sdept,Sloc) S-D的碼為Sno, D-L的碼為Sdept。 分解后的關(guān)系模式S-D與D-L中不再存在傳遞依賴,規(guī)范化理論范式,

14、STJ(S,T,J) 其中:S: 學(xué)生,T: 教師,J: 課程 每個教師只教一門課,每門課有若干個教師. 某一學(xué)生選修了某門課程,就對應(yīng)一個固定的教師. 請分析分析函數(shù)依賴關(guān)系?,規(guī)范化理論范式,(3)BCNF BCNF是由Boyce和Codd提出來的,也叫修正的3NF. 定義: 消除主屬性對碼的部分依賴和傳遞依賴. 關(guān)系模式R屬于1NF,XY且YX時,X必含有碼,則RBCNF. 等價于:BCNF要求每一個決定因素都包含碼. 若RBCNF,則: 所有非主屬性對每一個碼都完全函數(shù)依賴; 所有主屬性對每一個不包含它的碼,也完全函數(shù)依賴; 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性.,規(guī)范化理論范式,例:不屬于BCNF的例子STJ(S,T,J) 其中:S: 學(xué)生,T: 教師,J: 課程 每個教師只教一門課,每門課有若干個教師. 某一學(xué)生選修了某門課程,就對應(yīng)一個固定的教師. 由語義可得下列函數(shù)依賴: TJ;(S,J)T;(S,T)J 侯選碼:(S,T)和(S,J) 主屬性:S,T,J STJ3NF 由于J只依賴于T即可:TJ;而T本身不是決定因素,所以J部分函數(shù)依賴于碼(S,T),

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論