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

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫原理第七章第七章關(guān)系數(shù)據(jù)庫理論數(shù)據(jù)庫原理第七章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)庫操作理論關(guān)系規(guī)范化理論關(guān)系模式分解方法關(guān)系數(shù)據(jù)的查詢和優(yōu)化關(guān)系數(shù)據(jù)庫設(shè)計(jì)和應(yīng)用的理論基礎(chǔ)數(shù)據(jù)庫原理第七章7.1規(guī)范化問題的提出關(guān)系數(shù)據(jù)庫系統(tǒng)中,關(guān)系模型的設(shè)計(jì)是關(guān)鍵。關(guān)系模型由一組關(guān)系模式組成。數(shù)據(jù)庫原理第七章一個(gè)好的關(guān)系模型應(yīng)該包含多少個(gè)關(guān)系模式?每個(gè)關(guān)系模式應(yīng)該包含哪些屬性?如何將多個(gè)相互聯(lián)系的關(guān)系模式組成一個(gè)關(guān)系模型?關(guān)系數(shù)據(jù)庫的規(guī)范化理論數(shù)據(jù)庫原理第七章1.

規(guī)范化理論的主要內(nèi)容函數(shù)依賴范式(NormalForm)模式設(shè)計(jì)核心,是模式分解和設(shè)計(jì)的基礎(chǔ)模式分解的標(biāo)準(zhǔn)完成數(shù)據(jù)庫自動(dòng)化設(shè)計(jì)的基礎(chǔ)數(shù)據(jù)庫原理第七章2.不合理的關(guān)系模式存在的異常問題例:設(shè)計(jì)教學(xué)管理數(shù)據(jù)庫,其關(guān)系模式教學(xué)為:教學(xué)(學(xué)號(hào),姓名,年齡,性別,系名,系主任,課程名,成績(jī))碼:(學(xué)號(hào),課程名)數(shù)據(jù)庫原理第七章學(xué)號(hào)姓名年齡性別系名系主任課程名成績(jī)98001李華20男計(jì)算機(jī)系王民程序設(shè)計(jì)8898001李華20男計(jì)算機(jī)系王民數(shù)據(jù)結(jié)構(gòu)7498001李華20男計(jì)算機(jī)系王民數(shù)據(jù)庫8298001李華20男計(jì)算機(jī)系王民電路6598002張平21女計(jì)算機(jī)系王民程序設(shè)計(jì)9298002張平21女計(jì)算機(jī)系王民數(shù)據(jù)結(jié)構(gòu)8298002張平21女計(jì)算機(jī)系王民數(shù)據(jù)庫7898002張平21女計(jì)算機(jī)系王民電路8398003陳兵20男數(shù)學(xué)系趙敏高等數(shù)學(xué)7298003陳兵20男數(shù)學(xué)系趙敏數(shù)據(jù)結(jié)構(gòu)9498003陳兵20男數(shù)學(xué)系趙敏數(shù)據(jù)庫8398003陳兵20男數(shù)學(xué)系趙敏離散數(shù)學(xué)87數(shù)據(jù)庫原理第七章①數(shù)據(jù)冗余大②

插入異常③

刪除異常④

更新異常“教學(xué)”這一關(guān)系模式不好函數(shù)依賴存在著不好的性質(zhì)導(dǎo)致解決方法:關(guān)系模式的分解將各種數(shù)據(jù)混合在一起,數(shù)據(jù)間相互牽連。數(shù)據(jù)庫原理第七章將“教學(xué)”模式分解為:

學(xué)生(學(xué)號(hào),姓名,年齡,性別,系名稱);

教學(xué)系(系名,系主任);

選課(學(xué)號(hào),課程名,成績(jī)).參見:P183表7-2為什么要這樣分解?數(shù)據(jù)庫原理第七章一個(gè)好的關(guān)系模式應(yīng)該具備以下四個(gè)條件:(1)盡可能少的數(shù)據(jù)冗余;(2)沒有插入異常;(3)沒有刪除異常;(4)沒有更新異常。數(shù)據(jù)庫原理第七章一個(gè)關(guān)系模式之所以會(huì)產(chǎn)生上述問題,是由存在于模式中的某些數(shù)據(jù)依賴引起的。規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。數(shù)據(jù)庫原理第七章函數(shù)依賴普遍存在于現(xiàn)實(shí)生活中。學(xué)生(sno,sn,dept)由于一個(gè)學(xué)號(hào)只對(duì)應(yīng)一個(gè)學(xué)生,一個(gè)學(xué)生只在一個(gè)系,因而當(dāng)“學(xué)號(hào)”值確定之后,姓名及其所在系的值也就被唯一確定了。7.2函數(shù)依賴數(shù)據(jù)庫原理第七章屬性間的依賴關(guān)系類似于數(shù)學(xué)中的函數(shù):y=f(x)自變量x確定之后,相應(yīng)的函數(shù)值y也就唯一確定了。類似的,有:sn=f(sno)dept=f(sno)即sno函數(shù)決定sn,sno函數(shù)決定dept?;蛘撸簊n,dept函數(shù)依賴于sno,記為:數(shù)據(jù)庫原理第七章1.函數(shù)依賴的定義關(guān)系模式的表示:R<U,F>關(guān)系名屬性集合U的數(shù)據(jù)依賴集數(shù)據(jù)庫原理第七章定義:設(shè)關(guān)系模式R(U,F(xiàn)),U是屬性全集,F(xiàn)是U上的函數(shù)依賴集,X和Y是U的子集,如果對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,對(duì)于X的每一個(gè)具體值,Y都有唯一的具體值與之對(duì)應(yīng),則稱X函數(shù)確定Y,或Y函數(shù)依賴于X,記作

。稱X為決定因素,Y為依賴因素。數(shù)據(jù)庫原理第七章對(duì)于“教學(xué)”關(guān)系模式,根據(jù)實(shí)際情況,其語義為:(1)一個(gè)系有若干學(xué)生,但—個(gè)學(xué)生從屬于一個(gè)系。(2)一個(gè)系只有一名主任,但一個(gè)系主任可以同時(shí)兼任多個(gè)系的主任。(3)一個(gè)學(xué)生可以選修多門課程,每門課程有若干學(xué)生選修。(4)每個(gè)學(xué)生所學(xué)的每門課程都有—個(gè)成績(jī)。數(shù)據(jù)庫原理第七章因此,教學(xué)〈U,F(xiàn)〉

U={學(xué)號(hào),姓名,年齡,性別,系名,系主任,課程名,成績(jī)};

F={學(xué)號(hào)→姓名,學(xué)號(hào)→年齡,學(xué)號(hào)→性別,學(xué)號(hào)→系名,系名→系主任,(學(xué)號(hào),課程名)→成績(jī)}

屬性全集函數(shù)依賴集數(shù)據(jù)庫原理第七章學(xué)號(hào)課程名姓名年齡系名系主任成績(jī)性別函數(shù)依賴示意圖數(shù)據(jù)庫原理第七章(1)若,且,則記為。(2)若Y不函數(shù)依賴于X,記為。

,(3),但

,則稱是平凡的函數(shù)依賴

(4)

,但

,則稱是非平凡的函數(shù)依賴。若不特別聲明,總是討論非平凡的函數(shù)依賴。

2.函數(shù)依賴的相關(guān)概念數(shù)據(jù)庫原理第七章(5)函數(shù)依賴與屬性之間的聯(lián)系類型有關(guān):

①如果屬性X與Y之間有1:1聯(lián)系,則

②如果屬性X與Y之間有n:1聯(lián)系,則只存在函數(shù)依賴。

③如果屬性X與Y之間是n:m聯(lián)系,則X和Y之間不存在函數(shù)依賴關(guān)系。

數(shù)據(jù)庫原理第七章(6)設(shè)有關(guān)系模式R(U),U是屬性全集,X和Y是U的子集:如果

,并且對(duì)于X的任何一個(gè)真子集X′,都有

,則稱Y對(duì)X完全函數(shù)依賴,記作。由于且且所以。數(shù)據(jù)庫原理第七章如果,并且對(duì)于X的某個(gè)真子集X′,有,則稱Y對(duì)X部分函數(shù)依賴,記作。由于且所以注意:只有當(dāng)決定因素X是屬性的組合時(shí),討論部分函數(shù)依賴才有意義。當(dāng)決定因素X中只包括一個(gè)屬性時(shí),只能是完全函數(shù)依賴。數(shù)據(jù)庫原理第七章(7)設(shè)有關(guān)系模式R(U),U是屬性全集,X和Y是U的子集:如果則Z對(duì)X傳遞函數(shù)依賴,記為。例如:則:數(shù)據(jù)庫原理第七章函數(shù)依賴完全函數(shù)依賴部分函數(shù)依賴傳遞函數(shù)依賴數(shù)據(jù)庫原理第七章對(duì)于教學(xué)〈U,F(xiàn)〉

U={學(xué)號(hào),姓名,年齡,性別,系名,系主任,課程名,成績(jī)};

F={學(xué)號(hào)→姓名,學(xué)號(hào)→年齡,學(xué)號(hào)→性別,學(xué)號(hào)→系名,系名→系主任,(學(xué)號(hào),課程名)→成績(jī)}部分函數(shù)依賴:數(shù)據(jù)庫原理第七章此外,還存在:完全函數(shù)依賴:傳遞函數(shù)依賴:數(shù)據(jù)庫原理第七章可以看到,在教學(xué)關(guān)系模式中,存在著復(fù)雜的函數(shù)依賴,正是由于這樣才導(dǎo)致數(shù)據(jù)操作中出現(xiàn)了種種弊端,使其成為了不好的關(guān)系模式。如何克服這些弊端?——關(guān)系模式的規(guī)范化:要求關(guān)系模式滿足一定的條件。根據(jù)不同程度的規(guī)范化要求設(shè)立不同的標(biāo)準(zhǔn)——范式。數(shù)據(jù)庫原理第七章范式是符合某種級(jí)別的關(guān)系模式的集合。各種范式之間的關(guān)系1971年,Codd提出1NF

隨后提出了2NF、3NF

1974年,Codd,Boyce提出了BC范式

1976年,F(xiàn)agin提出了4NF7.3范式數(shù)據(jù)庫原理第七章各種范式之間存在以下關(guān)系:通常把某一關(guān)系模式R為第n范式簡(jiǎn)記為:數(shù)據(jù)庫原理第七章1.第1范式(1NF)定義:如果關(guān)系模式R所有的屬性均為簡(jiǎn)單屬性,即每個(gè)屬性都是不可再分的,則稱R屬于第一范式,簡(jiǎn)稱1NF,記作R∈1NF。第1范式是對(duì)關(guān)系模式的一個(gè)最起碼的要求,不滿足1NF的數(shù)據(jù)庫模式不是關(guān)系數(shù)據(jù)庫。數(shù)據(jù)庫原理第七章教學(xué)〈U,F(xiàn)〉

U={學(xué)號(hào),姓名,年齡,性別,系名,系主任,課程名,成績(jī)};

其中的每個(gè)屬性都是簡(jiǎn)單屬性,不可再分。所以:但是滿足第一范式關(guān)系模式并不—定是好的關(guān)系模式。比如在教學(xué)關(guān)系模式中,仍然存在著數(shù)據(jù)冗余、插入異常、刪除異常和更新異常。因?yàn)榇嬖谥耆瘮?shù)依賴、部分函數(shù)依賴、傳遞函數(shù)依賴。其它范式如何消除?數(shù)據(jù)庫原理第七章2.第2范式(2NF)定義:若R

1NF,且每一個(gè)非主屬性完全依賴于碼,則R

2NF。數(shù)據(jù)庫原理第七章其中,主碼:(學(xué)號(hào),課程名)非主屬性:(姓名,年齡,性別,系名,系主任,成績(jī))對(duì)于教學(xué)〈U,F(xiàn)〉

U={學(xué)號(hào),姓名,年齡,性別,系名,系主任,課程名,成績(jī)};

F={學(xué)號(hào)→姓名,學(xué)號(hào)→年齡,學(xué)號(hào)→性別,學(xué)號(hào)→系名,系名→系主任,(學(xué)號(hào),課程名)→成績(jī)}數(shù)據(jù)庫原理第七章又:所以:數(shù)據(jù)庫原理第七章?模式分解(投影)將教學(xué)關(guān)系模式分解成兩個(gè)關(guān)系模式:學(xué)生_系(學(xué)號(hào),姓名,年齡,性別,系名,系主任)選課(學(xué)號(hào),課程名,成績(jī))數(shù)據(jù)庫原理第七章對(duì)于學(xué)生_系(學(xué)號(hào),姓名,年齡,性別,系名,系主任)非主屬性:姓名,年齡,性別,系名,系主任數(shù)據(jù)庫原理第七章決定因素X中只包括一個(gè)屬性時(shí),只能是完全函數(shù)依賴。每一個(gè)非主屬性完全函數(shù)依賴于主碼:學(xué)號(hào)所以:學(xué)生_系2NFFFFF數(shù)據(jù)庫原理第七章對(duì)于選課(學(xué)號(hào),課程名,成績(jī))主碼:(學(xué)號(hào),課程名)非主屬性:成績(jī)所以:選課2NF數(shù)據(jù)庫原理第七章教學(xué)關(guān)系模式1NF學(xué)生_系關(guān)系模式2NF選課關(guān)系模式2NF消除部分函數(shù)依賴關(guān)系模式分解的基本原則:“一事一地”,一個(gè)關(guān)系只描述一個(gè)實(shí)體或聯(lián)系。數(shù)據(jù)庫原理第七章教學(xué)關(guān)系模式經(jīng)過分解后成為了2NF,解決了以下問題:1.在學(xué)生_系中可以插入尚未選課的學(xué)生;2.如果一個(gè)學(xué)生的所有選課記錄全部刪除了,只是選課關(guān)系中沒有關(guān)于該學(xué)生的選課記錄,不會(huì)把學(xué)生_系關(guān)系中該學(xué)生的其他信息也刪除掉;數(shù)據(jù)庫原理第七章2NF的規(guī)范化程度比1NF前進(jìn)了一步,但仍存在著以下問題:1.數(shù)據(jù)冗余:每個(gè)系名和系主任的名字存儲(chǔ)的次數(shù)等于該系的學(xué)生人數(shù);2.插入異常:當(dāng)一個(gè)新系沒有招生時(shí),有關(guān)該系的信息無法插入;3.刪除異常:某系學(xué)生全部畢業(yè)而沒有招生時(shí),刪除全部學(xué)生的記錄也隨之刪除了該系的有關(guān)信息;4.更新異常:更換系主任時(shí),仍需改動(dòng)較多的學(xué)生記錄。

數(shù)據(jù)庫原理第七章之所以存在著這些問題,是因?yàn)榉侵鲗傩詫?duì)主碼存在著傳遞函數(shù)依賴:為此,2NF還需要進(jìn)一步簡(jiǎn)化,消除傳遞函數(shù)依賴,從而得到3NF。數(shù)據(jù)庫原理第七章3.第3范式(3NF)定義:如果關(guān)系模式R∈2NF,且每個(gè)非主屬性都不傳遞函數(shù)依賴于R的主碼,則稱R〈U,F(xiàn)〉

3NF。

若R

3NF,則每一個(gè)非主屬性既不部分函數(shù)依賴于碼,也不傳遞函數(shù)依賴于碼。3NF是可用的關(guān)系模式應(yīng)滿足的最低范式。數(shù)據(jù)庫原理第七章對(duì)于選課(學(xué)號(hào),課程名,成績(jī))主碼:(學(xué)號(hào),課程名)非主屬性:成績(jī)所以,選課

3NF數(shù)據(jù)庫原理第七章對(duì)于學(xué)生_系(學(xué)號(hào),姓名,年齡,性別,系名,系主任)非主屬性:姓名,年齡,性別,系名,系主任因?yàn)椋核?,?shù)據(jù)庫原理第七章?模式分解(投影)一事一地?cái)?shù)據(jù)庫原理第七章學(xué)生_系(學(xué)號(hào),姓名,年齡,性別,系名,系主任)分解為:學(xué)生(學(xué)號(hào),姓名,年齡,性別,系名)教學(xué)系(系名,系主任)數(shù)據(jù)庫原理第七章學(xué)生_系關(guān)系模式

溫馨提示

  • 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)論