![[高等教育]第2章 關(guān)系數(shù)據(jù)理論與數(shù)據(jù)庫設(shè)計一ppt課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/21512afc-0e12-4838-a40c-81c6bb2df682/21512afc-0e12-4838-a40c-81c6bb2df6821.gif)
![[高等教育]第2章 關(guān)系數(shù)據(jù)理論與數(shù)據(jù)庫設(shè)計一ppt課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/21512afc-0e12-4838-a40c-81c6bb2df682/21512afc-0e12-4838-a40c-81c6bb2df6822.gif)
![[高等教育]第2章 關(guān)系數(shù)據(jù)理論與數(shù)據(jù)庫設(shè)計一ppt課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/21512afc-0e12-4838-a40c-81c6bb2df682/21512afc-0e12-4838-a40c-81c6bb2df6823.gif)
![[高等教育]第2章 關(guān)系數(shù)據(jù)理論與數(shù)據(jù)庫設(shè)計一ppt課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/21512afc-0e12-4838-a40c-81c6bb2df682/21512afc-0e12-4838-a40c-81c6bb2df6824.gif)
![[高等教育]第2章 關(guān)系數(shù)據(jù)理論與數(shù)據(jù)庫設(shè)計一ppt課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/21512afc-0e12-4838-a40c-81c6bb2df682/21512afc-0e12-4838-a40c-81c6bb2df6825.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第2章章 關(guān)系數(shù)據(jù)庫設(shè)計實際關(guān)系數(shù)據(jù)庫設(shè)計實際本章概要本章概要 前面曾經(jīng)講述了關(guān)系數(shù)據(jù)庫、關(guān)系模型的根本概念以前面曾經(jīng)講述了關(guān)系數(shù)據(jù)庫、關(guān)系模型的根本概念以及關(guān)系數(shù)據(jù)庫的規(guī)范言語。及關(guān)系數(shù)據(jù)庫的規(guī)范言語。 如何運用關(guān)系模型設(shè)計關(guān)系數(shù)據(jù)庫,也就是面對一個如何運用關(guān)系模型設(shè)計關(guān)系數(shù)據(jù)庫,也就是面對一個現(xiàn)實問題,如何選擇一個比較好的關(guān)系方式的集合,現(xiàn)實問題,如何選擇一個比較好的關(guān)系方式的集合,每個關(guān)系又應該由哪些屬性組成。這屬于數(shù)據(jù)庫設(shè)計每個關(guān)系又應該由哪些屬性組成。這屬于數(shù)據(jù)庫設(shè)計的問題,確切地講是數(shù)據(jù)庫邏輯設(shè)計的問題的問題,確切地講是數(shù)據(jù)庫邏輯設(shè)計的問題 本章講述關(guān)系數(shù)據(jù)庫規(guī)范化實際,這是數(shù)據(jù)
2、庫邏輯設(shè)本章講述關(guān)系數(shù)據(jù)庫規(guī)范化實際,這是數(shù)據(jù)庫邏輯設(shè)計的實際根據(jù)。計的實際根據(jù)。 要求了解規(guī)范化實際的研討動機及其在數(shù)據(jù)庫設(shè)計中要求了解規(guī)范化實際的研討動機及其在數(shù)據(jù)庫設(shè)計中的作用的作用 掌握函數(shù)依賴的有關(guān)概念掌握函數(shù)依賴的有關(guān)概念 第一范式、第二范式、第三范式的定義第一范式、第二范式、第三范式的定義 重點掌握并可以靈敏運用關(guān)系方式規(guī)范化的方法和關(guān)重點掌握并可以靈敏運用關(guān)系方式規(guī)范化的方法和關(guān)系方式分解的方法,這也是本章的難點。系方式分解的方法,這也是本章的難點。2.1 2.1 規(guī)范化問題的提出規(guī)范化問題的提出2.1.1 2.1.1 規(guī)范化實際的主要內(nèi)容規(guī)范化實際的主要內(nèi)容關(guān)系數(shù)據(jù)庫的規(guī)范化
3、實際最早是由關(guān)系數(shù)關(guān)系數(shù)據(jù)庫的規(guī)范化實際最早是由關(guān)系數(shù)據(jù)庫的開創(chuàng)人據(jù)庫的開創(chuàng)人E.F.CoddE.F.Codd提出的提出的后經(jīng)許多專家學者對關(guān)系數(shù)據(jù)庫實際作了后經(jīng)許多專家學者對關(guān)系數(shù)據(jù)庫實際作了深化的研討和開展,構(gòu)成了一整套有關(guān)深化的研討和開展,構(gòu)成了一整套有關(guān)關(guān)系數(shù)據(jù)庫設(shè)計的實際關(guān)系數(shù)據(jù)庫設(shè)計的實際在該實際出現(xiàn)以前,層次和網(wǎng)狀數(shù)據(jù)庫的在該實際出現(xiàn)以前,層次和網(wǎng)狀數(shù)據(jù)庫的設(shè)計只是遵照其模型本身固有的原那么,設(shè)計只是遵照其模型本身固有的原那么,而無詳細的實際根據(jù)可言,因此帶有盲而無詳細的實際根據(jù)可言,因此帶有盲目性,能夠在以后的運轉(zhuǎn)和運用中發(fā)生目性,能夠在以后的運轉(zhuǎn)和運用中發(fā)生許多料想不到的問題
4、許多料想不到的問題在關(guān)系數(shù)據(jù)庫系統(tǒng)中,關(guān)系模型包括一組關(guān)系在關(guān)系數(shù)據(jù)庫系統(tǒng)中,關(guān)系模型包括一組關(guān)系方式,各個關(guān)系不是完全孤立的,數(shù)據(jù)庫的設(shè)方式,各個關(guān)系不是完全孤立的,數(shù)據(jù)庫的設(shè)計較層次和網(wǎng)狀模型更為重要。計較層次和網(wǎng)狀模型更為重要。如何設(shè)計一個適宜的關(guān)系數(shù)據(jù)庫系統(tǒng),關(guān)鍵是如何設(shè)計一個適宜的關(guān)系數(shù)據(jù)庫系統(tǒng),關(guān)鍵是關(guān)系數(shù)據(jù)庫方式的設(shè)計,一個好的關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫方式的設(shè)計,一個好的關(guān)系數(shù)據(jù)庫方式應該包括多少關(guān)系方式,而每一個關(guān)系方方式應該包括多少關(guān)系方式,而每一個關(guān)系方式又應該包括哪些屬性,又如何將這些相互關(guān)式又應該包括哪些屬性,又如何將這些相互關(guān)聯(lián)的關(guān)系方式組建一個適宜的關(guān)系模型,這些聯(lián)的關(guān)
5、系方式組建一個適宜的關(guān)系模型,這些任務決議了到整個系統(tǒng)運轉(zhuǎn)的效率,也是系統(tǒng)任務決議了到整個系統(tǒng)運轉(zhuǎn)的效率,也是系統(tǒng)成敗的關(guān)鍵所在,所以必需在關(guān)系數(shù)據(jù)庫的規(guī)成敗的關(guān)鍵所在,所以必需在關(guān)系數(shù)據(jù)庫的規(guī)范化實際的指點下逐漸完成。范化實際的指點下逐漸完成。 關(guān)系數(shù)據(jù)庫的規(guī)范化實際主要包括三個方面的內(nèi)容:關(guān)系數(shù)據(jù)庫的規(guī)范化實際主要包括三個方面的內(nèi)容: 函數(shù)依賴函數(shù)依賴 范式范式Normal FormNormal Form 方式設(shè)計方式設(shè)計 其中,函數(shù)依賴起著中心的作用,是方式分解和方式其中,函數(shù)依賴起著中心的作用,是方式分解和方式設(shè)計的根底,范式是方式分解的規(guī)范。設(shè)計的根底,范式是方式分解的規(guī)范。 2.1
6、.2 2.1.2 關(guān)系方式的存儲異常問題關(guān)系方式的存儲異常問題 數(shù)據(jù)庫的邏輯設(shè)計為什么要遵照一定的規(guī)范化實際?數(shù)據(jù)庫的邏輯設(shè)計為什么要遵照一定的規(guī)范化實際? 什么是好的關(guān)系方式?什么是好的關(guān)系方式? 某些不好的關(guān)系方式能夠?qū)е履男﹩栴}?某些不好的關(guān)系方式能夠?qū)е履男﹩栴}? 下面經(jīng)過例子進展分析下面經(jīng)過例子進展分析: :例如,要求設(shè)計教學管理數(shù)據(jù)庫,其關(guān)系方式例如,要求設(shè)計教學管理數(shù)據(jù)庫,其關(guān)系方式SCDSCD如下:如下:SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其中,其中,SNOSNO表示學生學號,表示學
7、生學號,SNSN表示學生姓名,表示學生姓名,AGEAGE表示學表示學生年齡,生年齡,DEPTDEPT表示學生所在的系別,表示學生所在的系別,MNMN表示系主任姓表示系主任姓名,名,CNOCNO表示課程號,表示課程號,SCORESCORE表示成果。表示成果。 根據(jù)實踐情況,這些數(shù)據(jù)有如下語義規(guī)定:根據(jù)實踐情況,這些數(shù)據(jù)有如下語義規(guī)定:1. 1. 一個系有假設(shè)干個學生,但一個學生只屬于一個系;一個系有假設(shè)干個學生,但一個學生只屬于一個系;2. 2. 一個系只需一名系主任,但一個系主任可以同時兼幾一個系只需一名系主任,但一個系主任可以同時兼幾個系的系主任;個系的系主任;3. 3. 一個學生可以選修多
8、門功課,每門課程可有假設(shè)干學一個學生可以選修多門功課,每門課程可有假設(shè)干學生選修;生選修;4. 4. 每個學生學習課程有一個成果。每個學生學習課程有一個成果。在此關(guān)系方式中填入一部分詳細的數(shù)據(jù),那么可得到在此關(guān)系方式中填入一部分詳細的數(shù)據(jù),那么可得到SCDSCD關(guān)系方式的實例,即一個教學管理數(shù)據(jù)庫,如圖關(guān)系方式的實例,即一個教學管理數(shù)據(jù)庫,如圖2.12.1所所示。示。圖圖2.1 2.1 關(guān)系關(guān)系SCDSCDSNOSNAGEDEPTMNCNOSCORES1趙亦17計算機劉偉C190S1趙亦17計算機劉偉C285S2錢爾18信息王平C557S2錢爾18信息王平C680S2錢爾18信息王平C770S
9、2錢爾18信息王平C570S3孫珊20信息王平C10S3孫珊20信息王平C270S3孫珊20信息王平C485S4李思男自動化劉偉C193根據(jù)上述的語義規(guī)定,并分析以上關(guān)系中的數(shù)據(jù),我們根據(jù)上述的語義規(guī)定,并分析以上關(guān)系中的數(shù)據(jù),我們可以看出:可以看出:(SNO,CNO)屬性的組合能獨一標識一個元組,屬性的組合能獨一標識一個元組,所以所以(SNO,CNO)是該關(guān)系方式的主關(guān)系鍵。但在進展數(shù)是該關(guān)系方式的主關(guān)系鍵。但在進展數(shù)據(jù)庫的操作時,會出現(xiàn)以下幾方面的問題。據(jù)庫的操作時,會出現(xiàn)以下幾方面的問題。1. 數(shù)據(jù)冗余。每個系名和系主任的名字存儲的次數(shù)等于數(shù)據(jù)冗余。每個系名和系主任的名字存儲的次數(shù)等于該
10、系的學生人數(shù)乘以每個學生選修的課程門數(shù),同時學生該系的學生人數(shù)乘以每個學生選修的課程門數(shù),同時學生的姓名、年齡也都要反復存儲多次,數(shù)據(jù)的冗余度很大,的姓名、年齡也都要反復存儲多次,數(shù)據(jù)的冗余度很大,浪費了存儲空間浪費了存儲空間2. 插入異常。假設(shè)某個新系沒有招生,尚無學生時,那插入異常。假設(shè)某個新系沒有招生,尚無學生時,那么系名和系主任的信息無法插入到數(shù)據(jù)庫中。么系名和系主任的信息無法插入到數(shù)據(jù)庫中。由于在這個關(guān)系方式中,由于在這個關(guān)系方式中,(SNO,CNO)是主關(guān)系鍵。根據(jù)是主關(guān)系鍵。根據(jù)關(guān)系的實體完好性約束,主關(guān)系鍵的值不能為空,而這時關(guān)系的實體完好性約束,主關(guān)系鍵的值不能為空,而這時沒
11、有學生,沒有學生,SNO和和CNO均無值,因此不能進展插入操作。均無值,因此不能進展插入操作。另外,當某個學生尚未選課,即另外,當某個學生尚未選課,即CNO未知,實體完好性未知,實體完好性約束還規(guī)定,主關(guān)系鍵的值不能部分為空,同樣不能進展約束還規(guī)定,主關(guān)系鍵的值不能部分為空,同樣不能進展插入操作。插入操作。3. 3. 刪除異常。刪除異常。某系學生全部畢業(yè)而沒有招生時,刪除全部學生的記某系學生全部畢業(yè)而沒有招生時,刪除全部學生的記錄那么系名、系主任也隨之刪除,而這個系依然存在,錄那么系名、系主任也隨之刪除,而這個系依然存在,在數(shù)據(jù)庫中卻無法找到該系的信息。在數(shù)據(jù)庫中卻無法找到該系的信息。另外,假
12、設(shè)某個學生不再選修另外,假設(shè)某個學生不再選修C1C1課程,本應該只刪去課程,本應該只刪去C1C1,但,但C1C1是主關(guān)系鍵的一部分,為保證明體完好性,是主關(guān)系鍵的一部分,為保證明體完好性,必需將整個元組一同刪掉,這樣,有關(guān)該學生的其它必需將整個元組一同刪掉,這樣,有關(guān)該學生的其它信息也隨之喪失。信息也隨之喪失。4. 4. 更新異常。更新異常。假設(shè)學生改名,那么該學生的一切記錄都要逐一修正假設(shè)學生改名,那么該學生的一切記錄都要逐一修正SNSN又如某系改換系主任,那么屬于該系的學生記錄都要又如某系改換系主任,那么屬于該系的學生記錄都要修正修正MNMN的內(nèi)容,稍有不慎,就有能夠漏改某些記錄,的內(nèi)容,
13、稍有不慎,就有能夠漏改某些記錄,這就會呵斥數(shù)據(jù)的不一致性,破壞了數(shù)據(jù)的完好性。這就會呵斥數(shù)據(jù)的不一致性,破壞了數(shù)據(jù)的完好性。 由于存在以上問題,我們說,由于存在以上問題,我們說,SCDSCD是一個不好的關(guān)系方是一個不好的關(guān)系方式。產(chǎn)生上述問題的緣由,直觀地說,是由于關(guān)系中式。產(chǎn)生上述問題的緣由,直觀地說,是由于關(guān)系中“包羅萬象,內(nèi)容太雜了。包羅萬象,內(nèi)容太雜了。 那么,怎樣才干得到一個好的關(guān)系方式呢?那么,怎樣才干得到一個好的關(guān)系方式呢? 我們把關(guān)系方式我們把關(guān)系方式SCDSCD分解為下面三個構(gòu)造簡單的關(guān)系方分解為下面三個構(gòu)造簡單的關(guān)系方式,如圖式,如圖2.22.2所示。所示。 學生關(guān)系學生關(guān)
14、系S(SNO,SN,AGE,DEPT)S(SNO,SN,AGE,DEPT) 選課關(guān)系選課關(guān)系SC(SNO,CNO,SCORE)SC(SNO,CNO,SCORE) 系關(guān)系系關(guān)系D(DEPT,MN)D(DEPT,MN)SNOSNAGEDEPTSNOCNOSCORES1趙亦17計算機S1C190S2錢爾18信息S1C285S3孫珊20信息S2C557S4李思21自動化S2C680S2C7S2C570DEPTMNS3C10計算機劉偉S3C270信息王平S3C485自動化劉偉S4C193圖3.2 分解后的關(guān)系方式 在以上三個關(guān)系方式中,實現(xiàn)了信息的某種程在以上三個關(guān)系方式中,實現(xiàn)了信息的某種程度的分別,
15、度的分別,S S中存儲學生根本信息,與所選課程及系主任中存儲學生根本信息,與所選課程及系主任無關(guān)無關(guān)D D中存儲系的有關(guān)信息,與學生無關(guān)中存儲系的有關(guān)信息,與學生無關(guān)SCSC中存儲學生選課的信息,而與所學生及系的中存儲學生選課的信息,而與所學生及系的有關(guān)信息無關(guān)有關(guān)信息無關(guān)與與SCDSCD相比,分解為三個關(guān)系方式后,數(shù)據(jù)的相比,分解為三個關(guān)系方式后,數(shù)據(jù)的冗余度明顯降低。冗余度明顯降低。當新插入一個系時,只需在關(guān)系當新插入一個系時,只需在關(guān)系D D中添加一條中添加一條記錄記錄當某個學生尚未選課,只需在關(guān)系當某個學生尚未選課,只需在關(guān)系S S中添加一中添加一條學生記錄,而與選課關(guān)系無關(guān),這就防止
16、了條學生記錄,而與選課關(guān)系無關(guān),這就防止了插入異常插入異常當一個系的學生全部畢業(yè)時,只需在當一個系的學生全部畢業(yè)時,只需在S S中刪除中刪除該系的全部學生記錄,而關(guān)系該系的全部學生記錄,而關(guān)系D D中有關(guān)該系的中有關(guān)該系的信息依然保管,從而不會引起刪除異常信息依然保管,從而不會引起刪除異常同時,由于數(shù)據(jù)冗余度的降低,數(shù)據(jù)沒有反復同時,由于數(shù)據(jù)冗余度的降低,數(shù)據(jù)沒有反復存儲,也不會引起更新異常。存儲,也不會引起更新異常。經(jīng)過上述分析,我們說分解后的關(guān)系方式是一經(jīng)過上述分析,我們說分解后的關(guān)系方式是一個好的關(guān)系數(shù)據(jù)庫方式。個好的關(guān)系數(shù)據(jù)庫方式。從而得出結(jié)論,一個好的關(guān)系方式應該具備以從而得出結(jié)論,
17、一個好的關(guān)系方式應該具備以下四個條件:下四個條件:1. 1. 盡能夠少的數(shù)據(jù)冗余。盡能夠少的數(shù)據(jù)冗余。2. 2. 沒有插入異常。沒有插入異常。3. 3. 沒有刪除異常。沒有刪除異常。4. 4. 沒有更新異常。沒有更新異常。 但要留意,一個好的關(guān)系方式并不是在任何情但要留意,一個好的關(guān)系方式并不是在任何情況下都是最優(yōu)的況下都是最優(yōu)的如何按照一定的規(guī)范設(shè)計關(guān)系方式,將構(gòu)造復如何按照一定的規(guī)范設(shè)計關(guān)系方式,將構(gòu)造復雜的關(guān)系分解成構(gòu)造簡單的關(guān)系,從而把不好雜的關(guān)系分解成構(gòu)造簡單的關(guān)系,從而把不好的關(guān)系數(shù)據(jù)庫方式轉(zhuǎn)變?yōu)楹玫年P(guān)系數(shù)據(jù)庫方式,的關(guān)系數(shù)據(jù)庫方式轉(zhuǎn)變?yōu)楹玫年P(guān)系數(shù)據(jù)庫方式,這就是關(guān)系的規(guī)范化,規(guī)范
18、化又可以根據(jù)不同這就是關(guān)系的規(guī)范化,規(guī)范化又可以根據(jù)不同的要求而分成假設(shè)干級別的要求而分成假設(shè)干級別我們要設(shè)計的關(guān)系方式中的各屬性是相互依賴、我們要設(shè)計的關(guān)系方式中的各屬性是相互依賴、相互制約的,這樣才構(gòu)成了一個構(gòu)造嚴謹?shù)恼嗷ブ萍s的,這樣才構(gòu)成了一個構(gòu)造嚴謹?shù)恼w。因此在設(shè)計關(guān)系方式時,必需從語義上分體。因此在設(shè)計關(guān)系方式時,必需從語義上分析這些依賴關(guān)系析這些依賴關(guān)系2.2 2.2 函數(shù)依賴函數(shù)依賴2.2.12.2.1函數(shù)依賴的定義及性質(zhì)函數(shù)依賴的定義及性質(zhì)關(guān)系方式中的各屬性之間相互依賴、相互制約的關(guān)系方式中的各屬性之間相互依賴、相互制約的聯(lián)絡稱為數(shù)據(jù)依賴。聯(lián)絡稱為數(shù)據(jù)依賴。數(shù)據(jù)依賴普通分為
19、函數(shù)依賴、多值依賴和銜接依數(shù)據(jù)依賴普通分為函數(shù)依賴、多值依賴和銜接依賴。賴。其中其中, ,函數(shù)依賴是最重要的數(shù)據(jù)依賴。函數(shù)依賴是最重要的數(shù)據(jù)依賴。函數(shù)依賴函數(shù)依賴Functional DependencyFunctional Dependency是關(guān)系方是關(guān)系方式中屬性之間的一種邏輯依賴關(guān)系。式中屬性之間的一種邏輯依賴關(guān)系。例如在上一節(jié)引見的關(guān)系方式例如在上一節(jié)引見的關(guān)系方式SCDSCD中,中,SNOSNO與與SNSN、AGEAGE、DEPTDEPT之間都有一種依賴關(guān)系。之間都有一種依賴關(guān)系。由于一個由于一個SNOSNO只對應一個學生,而一個學生只能只對應一個學生,而一個學生只能屬于一個系,所
20、以當屬于一個系,所以當SNOSNO的值確定之后,的值確定之后,SNSN,AGEAGE,DEPTDEPT的值也隨之被獨一確實定了。的值也隨之被獨一確實定了。這類似于變量之間的單值函數(shù)關(guān)系。設(shè)單值函數(shù)這類似于變量之間的單值函數(shù)關(guān)系。設(shè)單值函數(shù)Y=F(X)Y=F(X),自變量,自變量X X的值可以決議一個獨一的函的值可以決議一個獨一的函數(shù)值數(shù)值Y Y。在這里,我們說在這里,我們說SNOSNO決議函數(shù)決議函數(shù)SNSN,AGEAGE,DEPTDEPT,或者說或者說SNSN,AGEAGE,DEPTDEPT函數(shù)依賴于函數(shù)依賴于SNOSNO。下面給函數(shù)依賴的方式化定義。下面給函數(shù)依賴的方式化定義。 2.2.1
21、.12.2.1.1函數(shù)依賴的定義函數(shù)依賴的定義定義定義2.12.1設(shè)關(guān)系方式設(shè)關(guān)系方式R(UR(U,F(xiàn))F),U U是屬性選集,是屬性選集,F(xiàn) F是是U U上的上的函數(shù)依賴集,函數(shù)依賴集,X X和和Y Y是是U U的子集,假設(shè)對于的子集,假設(shè)對于R(U)R(U)的恣意一個的恣意一個能夠的關(guān)系能夠的關(guān)系r r,對于,對于X X的每一個詳細值,的每一個詳細值,Y Y都有獨一的詳細都有獨一的詳細值與之對應,那么稱值與之對應,那么稱X X函數(shù)決議函數(shù)決議Y Y,或,或Y Y函數(shù)依賴于函數(shù)依賴于X X,記,記作作XYXY。我們稱。我們稱X X為決議要素,為決議要素,Y Y為依賴要素。當為依賴要素。當Y
22、Y不函數(shù)不函數(shù)依賴于依賴于X X時,記作:時,記作:X YX Y。當。當XYXY且且YXYX時,那么記作:時,那么記作: X YX Y。對于關(guān)系方式對于關(guān)系方式SCDSCDU=SNO,SN,AGE,DEPT,MN,CNO,SCOREU=SNO,SN,AGE,DEPT,MN,CNO,SCOREF=SNOSNF=SNOSN,SNOAGESNOAGE,SNODEPTSNODEPT一個一個SNOSNO有多個有多個SCORESCORE的值與其對應,因此的值與其對應,因此SCORESCORE不能獨一不能獨一地確定,即地確定,即SCORESCORE不能函數(shù)依賴于不能函數(shù)依賴于SNOSNO,所以有:,所以有:
23、 SNO SNO SCORESCORE。但是但是SCORESCORE可以被可以被SNOSNO,CNOCNO獨一地確定。所以可表示獨一地確定。所以可表示為:為:SNOSNO,CNOCNOSCORESCORE。 有關(guān)函數(shù)依賴的幾點闡明:有關(guān)函數(shù)依賴的幾點闡明:1 1平凡的函數(shù)依賴與非平凡的函數(shù)依賴。平凡的函數(shù)依賴與非平凡的函數(shù)依賴。當屬性集當屬性集Y Y是屬性集是屬性集X X的子集時,那么必然存在著函數(shù)依的子集時,那么必然存在著函數(shù)依賴賴XY,XY,這種類型的函數(shù)依賴稱為平凡的函數(shù)依賴。這種類型的函數(shù)依賴稱為平凡的函數(shù)依賴。假設(shè)假設(shè)Y Y不是不是X X的子集,那么稱的子集,那么稱XYXY為非平凡的
24、函數(shù)依賴。為非平凡的函數(shù)依賴。假設(shè)不特別聲明,我們討論的都是非平凡的函數(shù)依賴。假設(shè)不特別聲明,我們討論的都是非平凡的函數(shù)依賴。2 2函數(shù)依賴是語義范疇的概念。函數(shù)依賴是語義范疇的概念。我們只能根據(jù)語義來確定一個函數(shù)依賴,而不能按照其我們只能根據(jù)語義來確定一個函數(shù)依賴,而不能按照其方式化定義來證明一個函數(shù)依賴能否成立。方式化定義來證明一個函數(shù)依賴能否成立。例如,對于關(guān)系方式例如,對于關(guān)系方式S S,當學生不存在重名的情況下,可,當學生不存在重名的情況下,可以得到:以得到:SNAGESNAGESNDEPTSNDEPT這種函數(shù)依賴關(guān)系,必需是在沒有重名的學生條件下才這種函數(shù)依賴關(guān)系,必需是在沒有重名
25、的學生條件下才成立的,否那么就不存在函數(shù)依賴了。成立的,否那么就不存在函數(shù)依賴了。所以函數(shù)依賴反映了一種語義完好性約束。所以函數(shù)依賴反映了一種語義完好性約束。 3 3函數(shù)依賴與屬性之間的聯(lián)絡類型有關(guān)。函數(shù)依賴與屬性之間的聯(lián)絡類型有關(guān)。1 1在一個關(guān)系方式中,假設(shè)屬性在一個關(guān)系方式中,假設(shè)屬性X X與與Y Y有有1:11:1聯(lián)絡時,聯(lián)絡時,那么存在函數(shù)依賴那么存在函數(shù)依賴XYXY,YXYX,即,即X YX Y。例如,當學生無重名時,例如,當學生無重名時,SNO SNSNO SN。2 2假設(shè)屬性假設(shè)屬性X X與與Y Y有有m:1m:1的聯(lián)絡時,那么只存在函數(shù)依的聯(lián)絡時,那么只存在函數(shù)依賴賴XYXY
26、。 例如,例如,SNOSNO與與AGEAGE,DEPTDEPT之間均為之間均為m:1m:1聯(lián)絡,所以有聯(lián)絡,所以有SNOAGESNOAGE,SNODEPTSNODEPT。3 3假設(shè)屬性假設(shè)屬性X X與與Y Y有有m: nm: n的聯(lián)絡時,那么的聯(lián)絡時,那么X X與與Y Y之間不存之間不存在任何函數(shù)依賴關(guān)系。在任何函數(shù)依賴關(guān)系。 例如,一個學生可以選修多門課程,一門課程又可例如,一個學生可以選修多門課程,一門課程又可以為多個學生選修,所以以為多個學生選修,所以SNOSNO與與CNOCNO之間不存在函數(shù)依賴之間不存在函數(shù)依賴關(guān)系。關(guān)系。由于函數(shù)依賴與屬性之間的聯(lián)絡類型有關(guān),所以在確定由于函數(shù)依賴與
27、屬性之間的聯(lián)絡類型有關(guān),所以在確定屬性間的函數(shù)依賴關(guān)系時,可以從分析屬性間的聯(lián)絡類屬性間的函數(shù)依賴關(guān)系時,可以從分析屬性間的聯(lián)絡類型入手,便可確定屬性間的函數(shù)依賴。型入手,便可確定屬性間的函數(shù)依賴。 4 4函數(shù)依賴關(guān)系的存在與時間無關(guān)。函數(shù)依賴關(guān)系的存在與時間無關(guān)。由于函數(shù)依賴是指關(guān)系中的一切元組應該滿足的由于函數(shù)依賴是指關(guān)系中的一切元組應該滿足的約束條件,而不是指關(guān)系中某個或某些元組所約束條件,而不是指關(guān)系中某個或某些元組所滿足的約束條件。滿足的約束條件。當關(guān)系中的元組添加、刪除或更新后都不能破壞當關(guān)系中的元組添加、刪除或更新后都不能破壞這種函數(shù)依賴。這種函數(shù)依賴。因此,必需根據(jù)語義來確定屬
28、性之間的函數(shù)依賴,因此,必需根據(jù)語義來確定屬性之間的函數(shù)依賴,而不能單憑某一時辰關(guān)系中的實踐數(shù)據(jù)值來判而不能單憑某一時辰關(guān)系中的實踐數(shù)據(jù)值來判別。別。例如,對于關(guān)系方式例如,對于關(guān)系方式S S,假設(shè)沒有給出無重名的,假設(shè)沒有給出無重名的學生這種語義規(guī)定,那么即使當前關(guān)系中沒有學生這種語義規(guī)定,那么即使當前關(guān)系中沒有重名的記錄,也只能存在函數(shù)依賴重名的記錄,也只能存在函數(shù)依賴SNOSNSNOSN,而不能存在函數(shù)依賴而不能存在函數(shù)依賴SNSNOSNSNO,由于假設(shè)新添,由于假設(shè)新添加一個重名的學生,函數(shù)依賴加一個重名的學生,函數(shù)依賴SNSNOSNSNO必然不必然不成立。成立。所以函數(shù)依賴關(guān)系的存在
29、與時間無關(guān),而只與數(shù)所以函數(shù)依賴關(guān)系的存在與時間無關(guān),而只與數(shù)據(jù)之間的語義規(guī)定有關(guān)。據(jù)之間的語義規(guī)定有關(guān)。 5 5函數(shù)依賴可以保證關(guān)系分解的無損銜接性。函數(shù)依賴可以保證關(guān)系分解的無損銜接性。設(shè)設(shè)R RX X,Y Y,Z Z,X X,Y Y,Z Z為不相交的屬性集合,為不相交的屬性集合,假設(shè)假設(shè)XYXY或或XZ,XZ,那么有那么有R(XR(X,Y Y,Z)=RXZ)=RX,YY* *RXRX,ZZ,其中,其中,RXRX,YY表示關(guān)系表示關(guān)系R R在屬性在屬性X X,Y Y上的投上的投影,影, RX RX,ZZ表示關(guān)系表示關(guān)系R R在屬性在屬性X X,Z Z上的上的投影。即投影。即R RX X,Y
30、 Y,Z Z等于其投影在等于其投影在X X上的自上的自然銜接,這樣便保證了關(guān)系然銜接,這樣便保證了關(guān)系R R分解后不會喪失分解后不會喪失原有的信息,稱作關(guān)系分解的無損銜接性。原有的信息,稱作關(guān)系分解的無損銜接性。例如,對于關(guān)系方式例如,對于關(guān)系方式SCDSCD,有,有SNOSNOSNSN,AGEAGE,DEPTDEPT,MNMN,SCDSCDSNOSNO,SNSN,AGEAGE,DEPTDEPT,MNMN,CNOCNO,SCORESCORE=SCDSNO=SCDSNO,SNSN,AGEAGE,DEPTDEPT,MNMN* *SCDSNOSCDSNO,CNOCNO,SCORESCORE,也就是說
31、,用其,也就是說,用其投影在投影在SNOSNO上的自然銜接可復原關(guān)系方式上的自然銜接可復原關(guān)系方式SCDSCD。2.2.1.2 2.2.1.2 函數(shù)依賴的根本性質(zhì)函數(shù)依賴的根本性質(zhì)1 1投影性。投影性。根據(jù)平凡的函數(shù)依賴的定義可知,根據(jù)平凡的函數(shù)依賴的定義可知,一組屬性函數(shù)決議它的一切子集一組屬性函數(shù)決議它的一切子集例如,在關(guān)系例如,在關(guān)系SCDSCD中,中,SNOSNO,CNOCNOSNOSNO和和SNOSNO,CNOCNOCNOCNO。2 2擴張性。擴張性。假設(shè)假設(shè)XYXY且且WZWZ,那么,那么X X,W WY Y,Z Z。例如,例如,SNOSNOSNSN,AGEAGE,DEPTMNDE
32、PTMN,那么有,那么有SNOSNO,DEPTDEPTSNSN,AGEAGE,MNMN。3 3合并性。合并性。假設(shè)假設(shè)XYXY且且XZXZ那么必有那么必有XXY Y,Z Z。例如,在關(guān)系例如,在關(guān)系SCDSCD中,中,SNOSNOSN,AGESN,AGE,SNOSNODEPT,MNDEPT,MN,那么有,那么有SNOSNOSN,AGESN,AGE,DEPTDEPT,MNMN。4 4分解性。分解性。假設(shè)假設(shè)XXY Y,Z Z, ,那么那么XYXY且且XZXZ。很顯。很顯然,分解性為合并性的逆過程然,分解性為合并性的逆過程由合并性和分解性,很容易得到以下現(xiàn)實:由合并性和分解性,很容易得到以下現(xiàn)實:
33、XA1XA1,A2A2,,An,An成立的充分必要條件是成立的充分必要條件是XAiXAii=1,2,ni=1,2,n成立。成立。 2.2.2 2.2.2 函數(shù)依賴的邏輯蘊涵函數(shù)依賴的邏輯蘊涵定義定義2.2 2.2 設(shè)設(shè)F F是關(guān)系方式是關(guān)系方式R R上的一個函數(shù)依上的一個函數(shù)依賴集合,賴集合,X X、Y Y是是R R的屬性子集,假設(shè)從的屬性子集,假設(shè)從F F的函數(shù)依賴能推倒出的函數(shù)依賴能推倒出XYXY,那么稱,那么稱F F邏輯邏輯地蘊涵地蘊涵XYXY,或稱,或稱XYXY可以從可以從F F中導出,中導出,或或XYXY邏輯蘊涵于邏輯蘊涵于F F。定義定義2.3 2.3 被被F F邏輯蘊涵的函數(shù)依賴
34、的集合稱邏輯蘊涵的函數(shù)依賴的集合稱為為F F的閉包的閉包ClosureClosure,計為,計為F+F+。普通。普通情況下,情況下, F+ F+包含或等于包含或等于F F。假設(shè)兩者相。假設(shè)兩者相等,那么稱等,那么稱F F是函數(shù)依賴的完備集。是函數(shù)依賴的完備集。2.2.3 2.2.3 完全函數(shù)依賴與部分函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴定義定義2.4 2.4 設(shè)關(guān)系方式設(shè)關(guān)系方式R(U)R(U),U U是屬性選集,是屬性選集,X X和和Y Y是是U U的子的子集,集,假設(shè)假設(shè)XYXY,并且對于,并且對于X X的任何一個真子集的任何一個真子集X,X,都有都有X YX Y,那么稱那么稱Y Y對對X
35、X完全函數(shù)依賴完全函數(shù)依賴Full Functional Full Functional DependencyDependency,記作,記作 X Y X Y。假設(shè)對假設(shè)對X X的某個真子集的某個真子集XX,有,有XYXY,那么稱,那么稱Y Y對部分函對部分函數(shù)依賴數(shù)依賴Partial Functional DependencyPartial Functional Dependency,記作,記作X X Y Y。例如,在關(guān)系方式例如,在關(guān)系方式SCDSCD中,由于中,由于SNO SCORESNO SCORE,且,且CNO CNO SCORESCORE,所以有:,所以有:SNOSNO,CNOCN
36、O SCORE SCORE 。而而SNOAGESNOAGE,所以,所以SNOSNO,CNOCNO AGE AGE。由定義由定義2.42.4可知:可知:只需當決議要素是組合屬性時,討論部分函數(shù)依賴才有只需當決議要素是組合屬性時,討論部分函數(shù)依賴才有意義意義當決議要素是單屬性時,只能是完全函數(shù)依賴。當決議要素是單屬性時,只能是完全函數(shù)依賴。例如,在關(guān)系方式例如,在關(guān)系方式S SSNOSNO,SNSN,AGEAGE,DEPTDEPT,決議要素,決議要素為單屬性為單屬性SNOSNO,有,有SNOSNOSNSN,AGEAGE,DEPTDEPT,不存在部,不存在部分函數(shù)依賴。分函數(shù)依賴。 fp fp2.2
37、.4 2.2.4 傳送函數(shù)依賴傳送函數(shù)依賴定義定義2.5 2.5 設(shè)有關(guān)系方式設(shè)有關(guān)系方式R RU U,U U是屬性選集,是屬性選集,X X,Y Y,Z Z是是U U的子集,的子集,假設(shè)假設(shè)XYXY,但,但Y XY X,而,而YZYZY XY X,Z YZ Y,那么稱那么稱Z Z對對X X傳送函數(shù)依賴傳送函數(shù)依賴Transitive Transitive Functional DependencyFunctional Dependency, 記記作:作:X X Z Z。假設(shè)假設(shè)YXYX,那么,那么X YX Y,這時稱,這時稱Z Z對對X X直接函數(shù)依直接函數(shù)依賴,而不是傳送函數(shù)依賴。賴,而不是
38、傳送函數(shù)依賴。例如,在關(guān)系方式例如,在關(guān)系方式SCDSCD中,中,SNODEPTSNODEPT,但,但DEPT DEPT SNOSNO,而,而DEPTNMNDEPTNMN,那么有,那么有SNO MNSNO MN。當學。當學生不存在重名的情況下,有生不存在重名的情況下,有SNOSNSNOSN,SNSNOSNSNO,SNO SNSNO SN,SNDEPTNSNDEPTN,這時,這時DEPTDEPT對對SNOSNO是直是直接函數(shù)依賴,而不是傳送函數(shù)依賴。接函數(shù)依賴,而不是傳送函數(shù)依賴。綜上所述,函數(shù)依賴分為完全函數(shù)依賴、部分函綜上所述,函數(shù)依賴分為完全函數(shù)依賴、部分函數(shù)依賴和傳送函數(shù)依賴三類,它們是
39、規(guī)范化實數(shù)依賴和傳送函數(shù)依賴三類,它們是規(guī)范化實際的根據(jù)和規(guī)范化程度的準那么,下面我們將際的根據(jù)和規(guī)范化程度的準那么,下面我們將以引見的這些概念為根底,進展數(shù)據(jù)庫的規(guī)范以引見的這些概念為根底,進展數(shù)據(jù)庫的規(guī)范設(shè)計。設(shè)計。 tt2.3 范式范式 規(guī)范化的根本思想是消除關(guān)系方式中的數(shù)據(jù)冗余,消規(guī)范化的根本思想是消除關(guān)系方式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不適宜的部分,處理數(shù)據(jù)插入、刪除除數(shù)據(jù)依賴中的不適宜的部分,處理數(shù)據(jù)插入、刪除時發(fā)生異常景象。時發(fā)生異常景象。 這就要求關(guān)系數(shù)據(jù)庫設(shè)計出來的關(guān)系方式要滿足一定這就要求關(guān)系數(shù)據(jù)庫設(shè)計出來的關(guān)系方式要滿足一定的條件。的條件。 我們把關(guān)系數(shù)據(jù)庫的規(guī)范化過程
40、中為不同程度的規(guī)范我們把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同規(guī)范稱為范式化要求設(shè)立的不同規(guī)范稱為范式Normal FormNormal Form。 由于規(guī)范化的程度不同,就產(chǎn)生了不同的范式。由于規(guī)范化的程度不同,就產(chǎn)生了不同的范式。 滿足最根本規(guī)范化要求的關(guān)系方式叫第一范式,滿足最根本規(guī)范化要求的關(guān)系方式叫第一范式, 在第一范式中進一步滿足一些要求為第二范式,在第一范式中進一步滿足一些要求為第二范式, 以此類推就產(chǎn)生了第三范式等概念。以此類推就產(chǎn)生了第三范式等概念。 每種范式都規(guī)定了一些限制約束條件。每種范式都規(guī)定了一些限制約束條件。 范式的概念最早由范式的概念最早由E.F
41、.CoddE.F.Codd提出。提出。從從19711971年起,年起,CoddCodd相繼提出了關(guān)系的三級規(guī)范相繼提出了關(guān)系的三級規(guī)范化方式,即第一范式化方式,即第一范式1NF1NF、第二范式、第二范式2NF2NF、第三范式第三范式3NF3NF。19741974年,年,CoddCodd和和BoyceBoyce以共同提出了一個新的以共同提出了一個新的范式的概念,即范式的概念,即Boyce-CoddBoyce-Codd范式,簡稱范式,簡稱BCBC范式。范式。19761976年年FaginFagin提出了第四范式,提出了第四范式,后來又有人定義了第五范式。后來又有人定義了第五范式。至此在關(guān)系數(shù)據(jù)庫規(guī)
42、范中建立了一個范式系列:至此在關(guān)系數(shù)據(jù)庫規(guī)范中建立了一個范式系列:1NF,2NF,3NF,BCNF,4NF,5NF,1NF,2NF,3NF,BCNF,4NF,5NF,一級比一級有更嚴一級比一級有更嚴厲的要求。厲的要求。各個范式之間的聯(lián)絡可以表示為:各個范式之間的聯(lián)絡可以表示為:5NF 4NF BCNF 3NF 2NF 1NF5NF 4NF BCNF 3NF 2NF 1NF如圖如圖2.32.3所示。所示。 圖圖2.3 2.3 各種范式之間的關(guān)系各種范式之間的關(guān)系下面逐一引見各級范式及其規(guī)范化。下面逐一引見各級范式及其規(guī)范化。 2.3.1 2.3.1 第一范式第一范式第一范式第一范式First N
43、ormal FormFirst Normal Form是最根本的規(guī)是最根本的規(guī)范方式,即關(guān)系中每個屬性都是不可再分的簡單范方式,即關(guān)系中每個屬性都是不可再分的簡單項。項。定義定義2.6 2.6 假設(shè)關(guān)系方式假設(shè)關(guān)系方式R R,其一切的屬性均為簡,其一切的屬性均為簡單屬性,即每個屬性都城是不可再分的,那么稱單屬性,即每個屬性都城是不可再分的,那么稱R R屬于第一范式,簡稱屬于第一范式,簡稱1NF1NF,記作,記作R R1NF1NF。在第在第2 2章討論關(guān)系的性質(zhì)時,我們把滿足這個條章討論關(guān)系的性質(zhì)時,我們把滿足這個條件的關(guān)系稱為規(guī)范化關(guān)系。件的關(guān)系稱為規(guī)范化關(guān)系。在關(guān)系數(shù)據(jù)庫系統(tǒng)中只討論規(guī)范化的
44、關(guān)系,凡是在關(guān)系數(shù)據(jù)庫系統(tǒng)中只討論規(guī)范化的關(guān)系,凡是非規(guī)范化的關(guān)系方式必需化成規(guī)范化的關(guān)系。非規(guī)范化的關(guān)系方式必需化成規(guī)范化的關(guān)系。在非規(guī)范化的關(guān)系中去掉組合項就能化成規(guī)范化在非規(guī)范化的關(guān)系中去掉組合項就能化成規(guī)范化的關(guān)系的關(guān)系每個規(guī)范化的關(guān)系都屬于每個規(guī)范化的關(guān)系都屬于1NF1NF,這也是它之所以,這也是它之所以稱為稱為“第一的緣由。第一的緣由。 然而,一個關(guān)系方式僅僅屬于第一范式是不然而,一個關(guān)系方式僅僅屬于第一范式是不適用的。適用的。在在2.12.1節(jié)中給出的關(guān)系方式節(jié)中給出的關(guān)系方式SCDSCD屬于第一范式,屬于第一范式,但其具有大量的數(shù)據(jù)冗余,具有插入異常、刪但其具有大量的數(shù)據(jù)冗余,
45、具有插入異常、刪除異常、更新異常等弊端。除異常、更新異常等弊端。為什么會存在這種問題呢?為什么會存在這種問題呢?讓我們分析一下讓我們分析一下SCDSCD中的函數(shù)依賴關(guān)系,它的中的函數(shù)依賴關(guān)系,它的關(guān)系鍵是關(guān)系鍵是SNOSNO,CNOCNO的屬性組合,所以有:的屬性組合,所以有: SNOSNO,CNOCNO SCORE SCORESNOSNSNOSN,SNOSNO,CNOCNO SN SNSNOAGESNOAGE,SNOSNO,CNOCNO AGE AGESNODEPTSNODEPT,SNOSNO,CNOCNO DEPT DEPTSNO MNSNO MN,SNOSNO,CNOCNO MN MN
46、fppppt我們可以用函數(shù)信任圖表示以上函數(shù)依賴關(guān)系,如圖我們可以用函數(shù)信任圖表示以上函數(shù)依賴關(guān)系,如圖2.42.4所示。所示。 SN,AGE,DEPTMNSCORESNOCNOPPf由此可見,在SCD中,既存在完全函數(shù)依賴,又存在部分函數(shù)依賴和傳送函數(shù)依賴。這種情況往往在數(shù)據(jù)庫中是不允許的,也正是由于關(guān)系中存在著復雜的函數(shù)依賴,才導致數(shù)據(jù)操作中出現(xiàn)了種弊端。抑制這些弊端的方法是用投影運算將關(guān)系分解,去掉過于復雜的函數(shù)依賴關(guān)系,向更高一級的范式進展轉(zhuǎn)換。 T2.3.2 2.3.2 第二范式第二范式2.3.2.1 2.3.2.1 第二范式的定義第二范式的定義定義定義2.7 2.7 假設(shè)關(guān)系方式假
47、設(shè)關(guān)系方式R R1NF1NF,且每個非主屬,且每個非主屬性都完全函數(shù)依賴于性都完全函數(shù)依賴于R R的每個關(guān)系鍵,那么稱的每個關(guān)系鍵,那么稱R R屬于第二范式屬于第二范式Second Normal FormSecond Normal Form,簡稱,簡稱2NF2NF,記作,記作R R2NF2NF。在關(guān)系方式在關(guān)系方式SCDSCD中,中,SNOSNO,CNOCNO為主屬性,為主屬性,AGEAGE,DEPTDEPT,SNSN,MNMN,SCORESCORE均為非主屬性,經(jīng)上述均為非主屬性,經(jīng)上述分析,存在非主屬性對關(guān)系鍵的部分函數(shù)依賴,分析,存在非主屬性對關(guān)系鍵的部分函數(shù)依賴,所以所以SCD 2NF
48、SCD 2NF。而如圖而如圖2.22.2所示的由所示的由SCDSCD分解的三個關(guān)系方式分解的三個關(guān)系方式S S,D D,SCSC,其中,其中S S的關(guān)系鍵為的關(guān)系鍵為SNOSNO,D D的關(guān)系鍵為的關(guān)系鍵為DEPTDEPT,都是單屬性,不能夠存在部分函數(shù)依賴。都是單屬性,不能夠存在部分函數(shù)依賴。而對于而對于SCSC,SNOSNO,CNOCNO SCORESCORE。所以。所以SCDSCD分分解后,消除了非主屬性對關(guān)系鍵的部分函數(shù)依解后,消除了非主屬性對關(guān)系鍵的部分函數(shù)依賴,賴,S S,D D,SCSC均屬于均屬于2NF2NF。 f經(jīng)以上分析,可以得到兩個結(jié)論:1從1NF關(guān)系中消除非主屬性對關(guān)系
49、鍵的部分函數(shù)依賴,那么可得到2NF關(guān)系。2假設(shè)R的關(guān)系鍵為單屬性,或R的全體屬性均為主屬性,那么R2NF。2.3.2.2 2NF2.3.2.2 2NF規(guī)范化規(guī)范化2NF2NF規(guī)范化是指把規(guī)范化是指把1NF1NF關(guān)系方式經(jīng)過投影分解轉(zhuǎn)換關(guān)系方式經(jīng)過投影分解轉(zhuǎn)換成成2NF2NF關(guān)系方式的集合。關(guān)系方式的集合。分解時遵照的根本原那么就是分解時遵照的根本原那么就是“一事一地,讓一事一地,讓一個關(guān)系只描畫一個實體或者實體間的聯(lián)絡。假一個關(guān)系只描畫一個實體或者實體間的聯(lián)絡。假設(shè)多于一個實體或聯(lián)絡,那么進展投影分解。設(shè)多于一個實體或聯(lián)絡,那么進展投影分解。下面以關(guān)系方式下面以關(guān)系方式SCDSCD為例,來闡明
50、為例,來闡明2NF2NF規(guī)范化的過規(guī)范化的過程程例例2.1 2.1 將將SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)規(guī)范到規(guī)范到2NF2NF。由由SNOSNSNOSN,SNOAGESNOAGE,SNODEPTSNODEPT,SNOSNO,CNOCNO SCORESCORE,可以判別,關(guān)系,可以判別,關(guān)系SCDSCD至少描畫了兩個實體,至少描畫了兩個實體,一個為學生實體,屬性有一個為學生實體,屬性有SNOSNO、SNSN、AGEAGE、DEPTDEPT、MNMN;另一個是學生與課程的聯(lián)絡選課,屬性有另一個是學
51、生與課程的聯(lián)絡選課,屬性有SNOSNO、CNOCNO和和SCORESCORE。根據(jù)分解的原那么,我們可以將根據(jù)分解的原那么,我們可以將SCDSCD分解成如下分解成如下兩個關(guān)系,如圖兩個關(guān)系,如圖2.52.5所示。所示。 fSD(SNO,SN,AGE,DEPT,MN),描畫學生實體;SC(SNO,CNO,SCORE),描畫學生與課程的聯(lián)絡。SD SNOSNAGEDEPTMNS1趙亦17計算機劉偉S2錢爾18信息王平S3孫珊20信息王平S4李思21自動化劉偉SC SC SNOCNOSCORES1C190S1C285S2C557S2C680S2C7S2C570S3C10S3C270S3C485S4C
52、193圖3.5 關(guān)系SD和SC 對于分解后的兩個關(guān)系對于分解后的兩個關(guān)系SDSD和和SCSC,主鍵分別為,主鍵分別為SNOSNO和和SNOSNO,CNOCNO,非主屬性對主鍵完全函數(shù)依賴。因此,非主屬性對主鍵完全函數(shù)依賴。因此,SDSD2NF2NF,SCSC2NF2NF,而且前面曾經(jīng)討論,而且前面曾經(jīng)討論,SCDSCD的這種分的這種分解沒有喪失任何信息,具有無損銜接性。解沒有喪失任何信息,具有無損銜接性。 分解后,分解后,SDSD和和SCSC的函數(shù)依賴分別如圖的函數(shù)依賴分別如圖2.62.6和和2.72.7所示。所示。 SNOSNSNOCNOSCOREAGEDEPTMN圖圖2.6 SD2.6 S
53、D中的函數(shù)依賴關(guān)系中的函數(shù)依賴關(guān)系 圖圖2.7 SC2.7 SC中的函數(shù)依賴關(guān)系中的函數(shù)依賴關(guān)系 1NF1NF的關(guān)系方式經(jīng)過投影分解轉(zhuǎn)換成的關(guān)系方式經(jīng)過投影分解轉(zhuǎn)換成2NF2NF后,消除了一后,消除了一些數(shù)據(jù)冗余。些數(shù)據(jù)冗余。 分析圖分析圖2.52.5中中SDSD和和SCSC中的數(shù)據(jù),可以看出,它們存儲的中的數(shù)據(jù),可以看出,它們存儲的冗余度比關(guān)系方式冗余度比關(guān)系方式SCDSCD有了較大輻度的降低。有了較大輻度的降低。 這樣便可在一定程度上防止數(shù)據(jù)更新所呵斥的數(shù)據(jù)不這樣便可在一定程度上防止數(shù)據(jù)更新所呵斥的數(shù)據(jù)不一致性的問題。一致性的問題。 由于把學生的根本信息與選課信息分開存儲,那么學由于把學生
54、的根本信息與選課信息分開存儲,那么學生根本信息因沒選課而不能插入的問題得到理處理,生根本信息因沒選課而不能插入的問題得到理處理,插入異常景象得到了部分改善。插入異常景象得到了部分改善。 同樣,假設(shè)某個學生不再選修同樣,假設(shè)某個學生不再選修C1C1課程,只在選課關(guān)系課程,只在選課關(guān)系SCSC中刪去該該學生選修中刪去該該學生選修C1C1的記錄即可,而的記錄即可,而SDSD中有關(guān)該中有關(guān)該學生的其它信息不會遭到任何影響,也處理了部分刪學生的其它信息不會遭到任何影響,也處理了部分刪除異常問題。除異常問題。 因此可以說關(guān)系方式因此可以說關(guān)系方式SDSD和和SCSC在性能上比在性能上比SCDSCD有了顯著
55、提有了顯著提高。高。 下面對下面對2NF2NF規(guī)范化作方式化的描畫。規(guī)范化作方式化的描畫。設(shè)關(guān)系方式設(shè)關(guān)系方式R RX X,Y Y,Z Z,R R1NF1NF,但但R R 不是不是2NF2NF,其中,其中,X X是鍵屬性,是鍵屬性,Y Y,Z Z是非鍵屬性,是非鍵屬性,且存在部分函數(shù)依賴,且存在部分函數(shù)依賴,X X Y Y。設(shè)。設(shè)X X可表示為可表示為X1X1、X2X2,其中,其中X1 YX1 Y。那。那么么R RX X,Y Y,Z Z可以分解為可以分解為RX1RX1,YY和和RXRX,ZZ。由于由于X1YX1Y,所以,所以R(XR(X,Y Y,Z)=RX1Z)=RX1,YY* *RX1RX1
56、,X2X2,Z=RX1Z=RX1,YY* *RXRX,ZZ,即即R R等于其投影等于其投影RX1RX1,YY和和XX,ZZ在在X1X1上的自然銜接,上的自然銜接,R R的分解具有無損的分解具有無損銜接性。銜接性。由于由于X1 YX1 Y,因此,因此RX1RX1,YY2NF2NF。假設(shè)假設(shè)RXRX,ZZ不是不是2NF2NF,可以按照上述,可以按照上述方法繼續(xù)進展投影分解,直到將方法繼續(xù)進展投影分解,直到將RXRX,ZZ分解為屬于分解為屬于2NF2NF關(guān)系的集合,且這關(guān)系的集合,且這種分解必定是有限的。種分解必定是有限的。 pff2.3.2.3 2NF2.3.2.3 2NF的缺陷的缺陷2NF2NF
57、的關(guān)系方式處理了的關(guān)系方式處理了1NF1NF中存在的一些問題,中存在的一些問題,2NF2NF規(guī)范化的程度比規(guī)范化的程度比1NF1NF前進了一步,但前進了一步,但2NF2NF的關(guān)的關(guān)系方式在進展數(shù)據(jù)操作時,依然存在著一些問題:系方式在進展數(shù)據(jù)操作時,依然存在著一些問題:1 1數(shù)據(jù)冗余。每個系名和系主任的名字存儲的數(shù)據(jù)冗余。每個系名和系主任的名字存儲的次數(shù)等于該系的學生人數(shù)。次數(shù)等于該系的學生人數(shù)。2 2插入異常。當一個新系沒有招生時,有關(guān)該插入異常。當一個新系沒有招生時,有關(guān)該系的信息無法插入。系的信息無法插入。3 3刪除異常。某系學生全部畢業(yè)而沒有招生時,刪除異常。某系學生全部畢業(yè)而沒有招生時
58、,刪除全部學生的記錄也隨之刪除了該系的有關(guān)信刪除全部學生的記錄也隨之刪除了該系的有關(guān)信息。息。4 4更新異常。改換系主任時,仍需改動較多的更新異常。改換系主任時,仍需改動較多的學生記錄。學生記錄。之所以存在這些問題,是由于在之所以存在這些問題,是由于在SCDSCD中存在著非中存在著非主屬性對主鍵的傳送依賴。主屬性對主鍵的傳送依賴。分析分析SCDSCD中的函數(shù)依賴關(guān)系,中的函數(shù)依賴關(guān)系,SNOSNSNOSN,SNOAGESNOAGE,SNODEPTSNODEPT,DEPTMNDEPTMN,SNO MNSNO MN,非主屬性,非主屬性MNMN對主鍵對主鍵SNOSNO傳送依賴。傳送依賴。為此,對關(guān)系
59、方式為此,對關(guān)系方式SCDSCD還需進一步簡化,消除這還需進一步簡化,消除這種傳送依賴,得到種傳送依賴,得到3NF3NF。 t2.3.3 2.3.3 第三范式第三范式2.3.3.1 2.3.3.1 第三范式的定義第三范式的定義定義定義2.8 2.8 假設(shè)關(guān)系方式假設(shè)關(guān)系方式R R2NF2NF,且每,且每個非主屬性都不傳送依賴于個非主屬性都不傳送依賴于R R的每個關(guān)的每個關(guān)系鍵,那么稱系鍵,那么稱R R屬于第三范式屬于第三范式Third Third Normal FormNormal Form,簡稱,簡稱3NF3NF,記作,記作R R3NF3NF。第三范式具有如下性質(zhì):第三范式具有如下性質(zhì):1
60、1假設(shè)假設(shè)R R3NF3NF,那么,那么R R也是也是2NF2NF。2 2假設(shè)假設(shè)R R2NF2NF,那么,那么R R不一定是不一定是3NF3NF。2.3.3.2 3NF2.3.3.2 3NF規(guī)范化規(guī)范化3NF3NF規(guī)范化是指把規(guī)范化是指把2NF2NF關(guān)系方式經(jīng)過投影分關(guān)系方式經(jīng)過投影分解轉(zhuǎn)換成解轉(zhuǎn)換成3NF3NF關(guān)系方式的集合。關(guān)系方式的集合。和和2NF2NF的規(guī)范化時遵照的原那么一樣,即的規(guī)范化時遵照的原那么一樣,即“一事一地,讓一個關(guān)系只描畫一個實體一事一地,讓一個關(guān)系只描畫一個實體或者實體間的聯(lián)絡?;蛘邔嶓w間的聯(lián)絡。下面以下面以2NF2NF關(guān)系方式關(guān)系方式SDSD為例,來闡明為例,來闡
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人雇傭合同模板
- 2025年國際信貸合同(三)
- 中外合資生產(chǎn)制造合同(有限責任)
- 個人經(jīng)營性借款合同范例
- 中外勞務派遣合同樣式參考
- 二手房交易合同終止合同書
- 個人墓地購置合同細則
- 事業(yè)單位臨時工勞動合同條款
- 委托貸款借款協(xié)議書年
- IT行業(yè)合同聘用細則及范本
- 2024年廣州金融控股集團有限公司招聘筆試沖刺題(帶答案解析)
- 中國食物成分表2018年(標準版)第6版
- 九三學社申請入社人員簡歷表
- 卓有成效的管理者讀后感3000字
- 七年級下冊-備戰(zhàn)2024年中考歷史總復習核心考點與重難點練習(統(tǒng)部編版)
- 巖土工程勘察服務投標方案(技術(shù)方案)
- 實驗室儀器設(shè)備驗收單
- 新修訂藥品GMP中藥飲片附錄解讀課件
- 蒙特利爾認知評估量表北京版
- 領(lǐng)導干部個人有關(guān)事項報告表(模板)
- GB/T 7631.18-2017潤滑劑、工業(yè)用油和有關(guān)產(chǎn)品(L類)的分類第18部分:Y組(其他應用)
評論
0/150
提交評論