版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、SQL Server 2000SQL Server 2000 針對一個具體的數(shù)據(jù)庫系統(tǒng),開發(fā)人員要做兩件事:針對一個具體的數(shù)據(jù)庫系統(tǒng),開發(fā)人員要做兩件事:創(chuàng)建創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫,編制應(yīng)用程序編制應(yīng)用程序,其中創(chuàng)建數(shù)據(jù)庫是基礎(chǔ)。,其中創(chuàng)建數(shù)據(jù)庫是基礎(chǔ)。 對于關(guān)系數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫首先要確定數(shù)據(jù)庫由哪些表對于關(guān)系數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫首先要確定數(shù)據(jù)庫由哪些表組成,各表有什么屬性,即設(shè)計關(guān)系模式。組成,各表有什么屬性,即設(shè)計關(guān)系模式。 如何設(shè)計合理、高效的關(guān)系數(shù)據(jù)庫呢?設(shè)計的理論依據(jù)是如何設(shè)計合理、高效的關(guān)系數(shù)據(jù)庫呢?設(shè)計的理論依據(jù)是什么呢?本章就是針對這些問題作一些理論上的探討。什么呢?本章就是針對這些
2、問題作一些理論上的探討。 第第7 7章章 關(guān)系數(shù)據(jù)庫設(shè)計理論關(guān)系數(shù)據(jù)庫設(shè)計理論SQL Server 2000SQL Server 20007.1 7.1 關(guān)系模式的評價關(guān)系模式的評價7.2 7.2 函數(shù)依賴函數(shù)依賴7.3 7.3 范式范式第第7 7章章 關(guān)系數(shù)據(jù)庫設(shè)計理論關(guān)系數(shù)據(jù)庫設(shè)計理論SQL Server 2000SQL Server 20007.1 7.1 關(guān)系模式的評價關(guān)系模式的評價一、關(guān)系模式一、關(guān)系模式 關(guān)系模式是對關(guān)系(表)的描述,為了能夠清楚地刻劃出一關(guān)系模式是對關(guān)系(表)的描述,為了能夠清楚地刻劃出一個關(guān)系,關(guān)系模式需要由五部分組成,即:個關(guān)系,關(guān)系模式需要由五部分組成,即:
3、R R(U U,D D,DOMDOM,F(xiàn) F)其中:其中:R R:關(guān)系名關(guān)系名 U U:全體屬性集合全體屬性集合 D D:屬性域的集合屬性域的集合 DOMDOM:U U和和D D之間的映射關(guān)系的集合之間的映射關(guān)系的集合 F F:屬性間數(shù)據(jù)的依賴關(guān)系的集合,即組成關(guān)系的各個元屬性間數(shù)據(jù)的依賴關(guān)系的集合,即組成關(guān)系的各個元組必須滿足的完整性約束條件。這些約束或者通過對屬性取值范組必須滿足的完整性約束條件。這些約束或者通過對屬性取值范圍的限定,例如學(xué)生成績必須在圍的限定,例如學(xué)生成績必須在01000100之間,或者通過屬性值間之間,或者通過屬性值間的相互關(guān)聯(lián)(主要體現(xiàn)于值的相等與否)反映出來,后者稱
4、為數(shù)的相互關(guān)聯(lián)(主要體現(xiàn)于值的相等與否)反映出來,后者稱為數(shù)據(jù)依賴。據(jù)依賴。 SQL Server 2000SQL Server 2000一、關(guān)系模式一、關(guān)系模式 由于在關(guān)系模式由于在關(guān)系模式R R(U U,D D,DOMDOM,F(xiàn) F)中,影響數(shù)據(jù)庫模中,影響數(shù)據(jù)庫模式設(shè)計的主要是式設(shè)計的主要是U U和和F F,D D和和DOMDOM對其影響不大,關(guān)系模式簡化對其影響不大,關(guān)系模式簡化為三元組:為三元組: R R(U U,F(xiàn) F)7.1 7.1 關(guān)系模式的評價關(guān)系模式的評價 關(guān)系是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容,不同時刻關(guān)系是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容,不同時刻關(guān)系模式中的關(guān)系可能有所不
5、同,但它們必須滿足關(guān)系模關(guān)系模式中的關(guān)系可能有所不同,但它們必須滿足關(guān)系模式中式中F F所指定的完整性約束條件。即當(dāng)且僅當(dāng)所指定的完整性約束條件。即當(dāng)且僅當(dāng)U U上的一個關(guān)上的一個關(guān)系系r r滿足滿足F F時,時,r r稱為關(guān)系模式稱為關(guān)系模式R R(U U,F(xiàn) F)的一個關(guān)系。的一個關(guān)系。SQL Server 2000SQL Server 2000二、關(guān)系模式的評價二、關(guān)系模式的評價1、關(guān)系數(shù)據(jù)庫設(shè)計的核心關(guān)系數(shù)據(jù)庫設(shè)計的核心:關(guān)系模式的設(shè)計。:關(guān)系模式的設(shè)計。 2、關(guān)系模式的設(shè)計目標(biāo)關(guān)系模式的設(shè)計目標(biāo):按照一定的原則從數(shù)量眾多而又相:按照一定的原則從數(shù)量眾多而又相互關(guān)聯(lián)的數(shù)據(jù)中,構(gòu)造出一組
6、既能較好地反映現(xiàn)實(shí)世界,而又互關(guān)聯(lián)的數(shù)據(jù)中,構(gòu)造出一組既能較好地反映現(xiàn)實(shí)世界,而又有良好的操作性能的關(guān)系模式。有良好的操作性能的關(guān)系模式。7.1 7.1 關(guān)系模式的評價關(guān)系模式的評價SQL Server 2000SQL Server 2000 3 3 、關(guān)系模式的評價標(biāo)準(zhǔn)、關(guān)系模式的評價標(biāo)準(zhǔn) 例:要求設(shè)計一個教學(xué)管理數(shù)據(jù)庫,希望從該數(shù)據(jù)庫中得例:要求設(shè)計一個教學(xué)管理數(shù)據(jù)庫,希望從該數(shù)據(jù)庫中得到學(xué)生學(xué)號、學(xué)生姓名、年齡、系別、系主任姓名、學(xué)生學(xué)習(xí)到學(xué)生學(xué)號、學(xué)生姓名、年齡、系別、系主任姓名、學(xué)生學(xué)習(xí)的課程和該課程的成績等信息。若將這些信息設(shè)計為一個關(guān)系,的課程和該課程的成績等信息。若將這些信息設(shè)
7、計為一個關(guān)系,關(guān)系模式為:關(guān)系模式為: 教學(xué)(學(xué)號,姓名,年齡,系名,系主任,課程名,成績)教學(xué)(學(xué)號,姓名,年齡,系名,系主任,課程名,成績)7.1 7.1 關(guān)系模式的評價關(guān)系模式的評價SQL Server 2000SQL Server 2000教學(xué)(學(xué)號,姓名,年齡,系名,系主任,課程名,成績)教學(xué)(學(xué)號,姓名,年齡,系名,系主任,課程名,成績)學(xué)號學(xué)號姓名姓名年齡年齡系名系名系系主任主任課程名課程名成績成績9800198001李華李華2121計算機(jī)計算機(jī)王民王民C C語言語言90909800198001李華李華2121計算機(jī)計算機(jī)王民王民高等數(shù)學(xué)高等數(shù)學(xué)80809800298002張平張
8、平2222計算機(jī)計算機(jī)王民王民C C語言語言65659800298002張平張平2222計算機(jī)計算機(jī)王民王民高等數(shù)學(xué)高等數(shù)學(xué)70709800398003陳兵陳兵2121數(shù)學(xué)數(shù)學(xué)趙敏趙敏高等數(shù)學(xué)高等數(shù)學(xué)95959800398003陳兵陳兵2121數(shù)學(xué)數(shù)學(xué)趙趙敏敏 離散數(shù)學(xué)離散數(shù)學(xué)75759900199001陸莉陸莉2323物理物理王珊王珊普通物理普通物理85857.1 7.1 關(guān)系模式的評價關(guān)系模式的評價SQL Server 2000SQL Server 2000以上關(guān)系存在下面幾個問題以上關(guān)系存在下面幾個問題 (1)(1)數(shù)據(jù)冗余較大數(shù)據(jù)冗余較大。一個學(xué)生只有一個姓名,但上面的表中若一個學(xué)生選
9、。一個學(xué)生只有一個姓名,但上面的表中若一個學(xué)生選幾門課,則該學(xué)生的姓名就要重復(fù)幾次。同樣一個系也只有一個系主任,上幾門課,則該學(xué)生的姓名就要重復(fù)幾次。同樣一個系也只有一個系主任,上表中系主任的姓名重復(fù)就更多了。表中系主任的姓名重復(fù)就更多了。 (2)(2)修改異常修改異常。假如計算機(jī)系的系主任換了,那么上表中的四條記錄的系。假如計算機(jī)系的系主任換了,那么上表中的四條記錄的系主任都需要修改,假如改得不一樣,或少改一處,就會造成數(shù)據(jù)不一致。主任都需要修改,假如改得不一樣,或少改一處,就會造成數(shù)據(jù)不一致。 (3)(3)插入異常插入異常。假如新成立了一個系:化工系,并且也有了系主任,但還。假如新成立了一
10、個系:化工系,并且也有了系主任,但還沒有招學(xué)生,所以不能在上表中插入化工系的記錄,也就不能在數(shù)據(jù)庫中保沒有招學(xué)生,所以不能在上表中插入化工系的記錄,也就不能在數(shù)據(jù)庫中保存化工系的系名和系主任的信息。同樣如果新增一門課,但還沒有學(xué)生選修,存化工系的系名和系主任的信息。同樣如果新增一門課,但還沒有學(xué)生選修,所以也不能插入該課程。所以也不能插入該課程。 (4)(4)刪除異常刪除異常。如果數(shù)學(xué)系的學(xué)生全畢業(yè)了,則需要刪除該系的學(xué)生記錄,。如果數(shù)學(xué)系的學(xué)生全畢業(yè)了,則需要刪除該系的學(xué)生記錄,但如果該系的學(xué)生全刪除了,則該系的系名、系主任信息也從數(shù)據(jù)庫中刪除但如果該系的學(xué)生全刪除了,則該系的系名、系主任信
11、息也從數(shù)據(jù)庫中刪除了。了。7.1 7.1 關(guān)系模式的評價關(guān)系模式的評價SQL Server 2000SQL Server 2000結(jié)論:結(jié)論: 以上關(guān)系模式不是一個好的關(guān)系模式。以上關(guān)系模式不是一個好的關(guān)系模式。 一個好的關(guān)系模式,除了能滿足用戶對信息存儲和查詢一個好的關(guān)系模式,除了能滿足用戶對信息存儲和查詢的基本要求外,還應(yīng)具備下列條件:的基本要求外,還應(yīng)具備下列條件:(1)盡可能少的數(shù)據(jù)冗余;)盡可能少的數(shù)據(jù)冗余;(2)沒有插入異常;)沒有插入異常;(3)沒有刪除異常;)沒有刪除異常;(4)沒有更新異常。)沒有更新異常。 7.1 7.1 關(guān)系模式的評價關(guān)系模式的評價SQL Server 2
12、000SQL Server 2000 對于有問題的關(guān)系模式,可以通過模式分解的方法使之對于有問題的關(guān)系模式,可以通過模式分解的方法使之規(guī)范化,上述關(guān)系模式如果分解為如下三個關(guān)系則可以克服規(guī)范化,上述關(guān)系模式如果分解為如下三個關(guān)系則可以克服以上出現(xiàn)的問題。以上出現(xiàn)的問題。 學(xué)生(學(xué)號,姓名,年齡,系名)學(xué)生(學(xué)號,姓名,年齡,系名) 系(系名,系主任)系(系名,系主任) 選課(學(xué)號,課程名,成績)選課(學(xué)號,課程名,成績) 如何分解關(guān)系模式,分解的依據(jù)是什么?下二節(jié)將討論如何分解關(guān)系模式,分解的依據(jù)是什么?下二節(jié)將討論這些問題。這些問題。7.1 7.1 關(guān)系模式的評價關(guān)系模式的評價SQL Ser
13、ver 2000SQL Server 20007.2 7.2 函數(shù)依賴函數(shù)依賴一、數(shù)據(jù)依賴一、數(shù)據(jù)依賴 數(shù)據(jù)依賴就是指同一關(guān)系中屬性值的相互依賴和相互數(shù)據(jù)依賴就是指同一關(guān)系中屬性值的相互依賴和相互制約,即一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)制約,即一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系。如學(xué)生的學(xué)號將決定學(xué)生姓名,課程名將間的相互關(guān)系。如學(xué)生的學(xué)號將決定學(xué)生姓名,課程名將決定有哪些參考書等等。決定有哪些參考書等等。 數(shù)據(jù)依賴分?jǐn)?shù)據(jù)依賴分函數(shù)依賴函數(shù)依賴、多值依賴多值依賴和和連接依賴連接依賴等,其中等,其中函數(shù)依賴是最基本的一種數(shù)據(jù)依賴。函數(shù)依賴是最基本的一種數(shù)據(jù)依賴。SQ
14、L Server 2000SQL Server 2000二、函數(shù)依賴二、函數(shù)依賴函數(shù)依賴的定義:函數(shù)依賴的定義: 設(shè)有關(guān)系模式設(shè)有關(guān)系模式R R(U U),),U U是屬性集,是屬性集,X X和和Y Y是是U U的子集,的子集,r r是是R R(U U)的任一個關(guān)系。如果的任一個關(guān)系。如果r r中不可能存在兩個元組在中不可能存在兩個元組在X X上上的屬性值相等,而的屬性值相等,而Y Y上的屬性值不等,即任意的兩個元組上的屬性值不等,即任意的兩個元組t1t1和和t2t2,若,若t1(X)=t2(X)t1(X)=t2(X),必有必有t1(Y)=t2(Y)t1(Y)=t2(Y),那么我們稱屬性組那么
15、我們稱屬性組X X函數(shù)確定函數(shù)確定屬性組屬性組Y Y,或者說或者說Y Y函數(shù)依賴函數(shù)依賴于于X X。記為記為X X Y Y,其中其中X X叫決定因素,叫決定因素,Y Y叫依賴因素。叫依賴因素。7.2 7.2 函數(shù)依賴函數(shù)依賴SQL Server 2000SQL Server 2000 簡單地說,對于任意兩個元組,如果它們的簡單地說,對于任意兩個元組,如果它們的X X屬性組值相屬性組值相同,則它們的同,則它們的Y Y屬性組值也相同,我們就說屬性組值也相同,我們就說X X函數(shù)確定函數(shù)確定Y Y,或者或者說說Y Y函數(shù)依賴于函數(shù)依賴于X X。 更簡單的表達(dá):對于每一個確定的更簡單的表達(dá):對于每一個確
16、定的X X,Y Y的值就被唯一地的值就被唯一地確定,則說確定,則說X X函數(shù)確定函數(shù)確定Y Y,或者說或者說Y Y函數(shù)依賴于函數(shù)依賴于X X。 7.2 7.2 函數(shù)依賴函數(shù)依賴如關(guān)系:公民(身份證號,姓名,地址,工作單位)如關(guān)系:公民(身份證號,姓名,地址,工作單位) 身份證號一確定,則其地址就唯一確定,因此身份證號函數(shù)確身份證號一確定,則其地址就唯一確定,因此身份證號函數(shù)確定地址。定地址。 而姓名一確定,不一定能確定地址。而姓名一確定,不一定能確定地址。SQL Server 2000SQL Server 2000例:說出下列關(guān)系模式中的一些函數(shù)依賴。例:說出下列關(guān)系模式中的一些函數(shù)依賴。學(xué)生
17、(學(xué)號,姓名,年齡,性別)學(xué)生(學(xué)號,姓名,年齡,性別)選課(學(xué)號,課程號,成績)選課(學(xué)號,課程號,成績)7.2 7.2 函數(shù)依賴函數(shù)依賴SQL Server 2000SQL Server 2000結(jié)論:結(jié)論:如果屬性組如果屬性組A A 屬性組屬性組B B,則,則A BA B函數(shù)依賴關(guān)系是屬性間的一種多對一的關(guān)系。函數(shù)依賴關(guān)系是屬性間的一種多對一的關(guān)系。 如果如果X X YY,且且XYXY,則,則X X和和Y Y是一對一關(guān)系。是一對一關(guān)系。如學(xué)號與身份證號。如學(xué)號與身份證號。7.2 7.2 函數(shù)依賴函數(shù)依賴SQL Server 2000SQL Server 2000三、函數(shù)依賴的幾種特例三、
18、函數(shù)依賴的幾種特例 1、平凡函數(shù)依賴與非平凡函數(shù)依賴、平凡函數(shù)依賴與非平凡函數(shù)依賴 由于由于Y X Y X 時,一定有時,一定有XYXY,平凡函數(shù)依賴必然成立,平凡函數(shù)依賴必然成立,沒有意義,所以一般所說的函數(shù)依賴總是指非平凡函數(shù)依賴。沒有意義,所以一般所說的函數(shù)依賴總是指非平凡函數(shù)依賴。若若Y X Y X ,則稱,則稱XYXY為平凡函數(shù)依賴。為平凡函數(shù)依賴。7.2 7.2 函數(shù)依賴函數(shù)依賴如果如果XYXY,且且Y XY X,則,則XYXY 稱為非平凡函數(shù)依賴。稱為非平凡函數(shù)依賴。SQL Server 2000SQL Server 2000推論:如果推論:如果XY ,且,且X是單個屬性,則是單
19、個屬性,則X Y2、完全函數(shù)依賴與部分函數(shù)依賴、完全函數(shù)依賴與部分函數(shù)依賴如果如果XY XY ,且對于任何且對于任何X XX X,都有都有X YX Y,則稱則稱y y完完全依賴于全依賴于x x,記作記作X YX Y如果如果XYXY,但,但Y Y不完全依賴于不完全依賴于X X,則稱則稱Y Y部分函數(shù)依賴于部分函數(shù)依賴于X X,記作記作X YX Y7.2 7.2 函數(shù)依賴函數(shù)依賴如:選課(學(xué)號,課程號,課程名,成績)如:選課(學(xué)號,課程號,課程名,成績)(學(xué)號,課程號)(學(xué)號,課程號) 成績成績(學(xué)號,課程號)(學(xué)號,課程號) 課程名課程名因?yàn)橐驗(yàn)?課程號課程號 課程名課程名 SQL Server
20、 2000SQL Server 20003、傳遞函數(shù)依賴、傳遞函數(shù)依賴 如果如果XY XY , YZYZ,且且Y XY X, Y XY X,則稱,則稱Z Z傳遞函數(shù)傳遞函數(shù)依賴于依賴于X X。記作。記作X X 傳遞傳遞Z Z 如:學(xué)生(學(xué)號,姓名,系名,系主任)如:學(xué)生(學(xué)號,姓名,系名,系主任)顯然系主任傳遞函數(shù)依賴于學(xué)號,顯然系主任傳遞函數(shù)依賴于學(xué)號,因?yàn)閷W(xué)號因?yàn)閷W(xué)號系名,系名系名,系名系主任系主任7.2 7.2 函數(shù)依賴函數(shù)依賴SQL Server 2000SQL Server 2000 思考題:已知關(guān)系模式思考題:已知關(guān)系模式R R(學(xué)生學(xué)號,課程名,學(xué)生專業(yè)號,學(xué)生學(xué)號,課程名,學(xué)生
21、專業(yè)號,專業(yè)名,成績),說出下面是什么關(guān)系?專業(yè)名,成績),說出下面是什么關(guān)系?(學(xué)生學(xué)號,課程名,學(xué)生專業(yè)號)(學(xué)生學(xué)號,課程名,學(xué)生專業(yè)號) 成績成績 學(xué)生學(xué)號學(xué)生學(xué)號 專業(yè)名專業(yè)名(學(xué)生學(xué)號,專業(yè)名)(學(xué)生學(xué)號,專業(yè)名) 成績成績(學(xué)生學(xué)號,課程名)(學(xué)生學(xué)號,課程名) 成績成績(課程名,專業(yè)名,成績)(課程名,專業(yè)名,成績) (課程名,成績)(課程名,成績) (函數(shù)依賴,部分函數(shù)依賴)(函數(shù)依賴,部分函數(shù)依賴) (函數(shù)依賴,傳遞函數(shù)依賴)(函數(shù)依賴,傳遞函數(shù)依賴) (不是函數(shù)依賴)(不是函數(shù)依賴) (完全函數(shù)依賴)(完全函數(shù)依賴) (平凡函數(shù)依賴)(平凡函數(shù)依賴) 練習(xí) :7.2 7.
22、2 函數(shù)依賴函數(shù)依賴SQL Server 2000SQL Server 20004、侯選碼、侯選碼 我們已經(jīng)知道,如果某屬性組的值能唯一確定整個元組的我們已經(jīng)知道,如果某屬性組的值能唯一確定整個元組的值,則稱該屬性組為候選碼或侯選關(guān)鍵字。值,則稱該屬性組為候選碼或侯選關(guān)鍵字。 如(學(xué)號,姓名,性別,年齡)中,學(xué)號是關(guān)鍵字,如(學(xué)號,姓名,性別,年齡)中,學(xué)號是關(guān)鍵字, (學(xué)號,姓名)不是關(guān)鍵字,性別不是關(guān)鍵字。(學(xué)號,姓名)不是關(guān)鍵字,性別不是關(guān)鍵字。 現(xiàn)在給出候選碼的精確定義。現(xiàn)在給出候選碼的精確定義。 設(shè)有關(guān)系模式設(shè)有關(guān)系模式R R(U U),),U U為屬性全集,為屬性全集,X X是是U
23、 U的子集,如果的子集,如果有有X UX U,則稱則稱X X是是R R的一個候選碼。的一個候選碼。 也就是也就是X U,X U,且不存在且不存在Y XY X,使得使得Y YU U。 候選碼如果有多個,可以選其中的一個作為主碼。候選碼如果有多個,可以選其中的一個作為主碼。7.2 7.2 函數(shù)依賴函數(shù)依賴SQL Server 2000SQL Server 20007.3 7.3 范式范式范式范式:關(guān)系模式滿足的約束條件稱為范式。根據(jù)滿足規(guī):關(guān)系模式滿足的約束條件稱為范式。根據(jù)滿足規(guī)范化的程度不同,范式由低到高分為范化的程度不同,范式由低到高分為1NF1NF,2NF2NF,3NF3NF,BCNFBC
24、NF,4NF4NF,5NF5NF關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化:把一個低一級的關(guān)系模式分解為高:把一個低一級的關(guān)系模式分解為高一級關(guān)系模式的過程。一級關(guān)系模式的過程。 SQL Server 2000SQL Server 2000 如果關(guān)系模式如果關(guān)系模式R,其所有屬性都是不可再分的基本數(shù)據(jù)項(xiàng),其所有屬性都是不可再分的基本數(shù)據(jù)項(xiàng),則稱則稱R屬于第一范式,屬于第一范式,R1NF例例1:R(姓名,身份,年齡)姓名,身份,年齡) 姓名姓名 身份身份 年齡年齡 - 張三張三 男學(xué)生男學(xué)生 17 李四李四 女教師女教師 27 林林林林 女作家女作家 29R不屬于不屬于1NF7.3 7.3 范式范式一、第
25、一范式(一、第一范式(1NF1NF)SQL Server 2000SQL Server 2000第一范式是作為一個關(guān)系模式的最起碼要求,是一定要滿第一范式是作為一個關(guān)系模式的最起碼要求,是一定要滿足的。足的。第一范式僅是關(guān)系模式的最低要求,僅僅滿足第一范式是第一范式僅是關(guān)系模式的最低要求,僅僅滿足第一范式是不夠的。不夠的。如前面所講的關(guān)系模式:如前面所講的關(guān)系模式:如:教學(xué)(學(xué)號,姓名,年齡,系名,系主任,課程名,如:教學(xué)(學(xué)號,姓名,年齡,系名,系主任,課程名,成績)成績)它滿足第一范式,但存在較大數(shù)據(jù)冗余和插入、刪除、修它滿足第一范式,但存在較大數(shù)據(jù)冗余和插入、刪除、修改異常。改異常。7.
26、3 7.3 范式范式一、第一范式(一、第一范式(1NF1NF)SQL Server 2000SQL Server 2000 如關(guān)系模式如關(guān)系模式R1NF,且每個非主屬性且每個非主屬性完全函數(shù)依賴于完全函數(shù)依賴于候選候選碼,則稱碼,則稱R屬于第二范式,屬于第二范式,R2NF。主屬性:候選碼中的屬性稱為主屬性。主屬性:候選碼中的屬性稱為主屬性。非主屬性:不包含在任何候選碼中的屬性稱為非主屬性非主屬性:不包含在任何候選碼中的屬性稱為非主屬性二、第二范式(二、第二范式(2NF2NF)7.3 7.3 范式范式SQL Server 2000SQL Server 20007.3 7.3 范式范式二、第二范式
27、(二、第二范式(2NF2NF)例例1:判斷:判斷R(教師編號,教師地址,課程號,課程名)是否(教師編號,教師地址,課程號,課程名)是否屬于第二范式。屬于第二范式。 候選碼:(教師編號,課程號)候選碼:(教師編號,課程號) 非主屬性:教師地址,課程名非主屬性:教師地址,課程名因?yàn)橐驗(yàn)? (: (教師編號,課程號教師編號,課程號) ) 教師地址教師地址 ( (教師編號,課程號教師編號,課程號) ) 課程名課程名所以本關(guān)系模式不屬于第二范式。所以本關(guān)系模式不屬于第二范式。SQL Server 2000SQL Server 2000 例例2 2:判斷:判斷 選課(學(xué)號,課程號,成績)是否屬于選課(學(xué)號
28、,課程號,成績)是否屬于2NF 2NF ,假如規(guī)定一個學(xué)生一門課只有一個成績假如規(guī)定一個學(xué)生一門課只有一個成績候選碼:(學(xué)號,課程號)候選碼:(學(xué)號,課程號) 非主屬性:成績非主屬性:成績因?yàn)槌煽兺耆瘮?shù)依賴于(學(xué)號,課程號)因?yàn)槌煽兺耆瘮?shù)依賴于(學(xué)號,課程號) 所以屬于所以屬于2NF2NF7.3 7.3 范式范式SQL Server 2000SQL Server 2000 例例3 3:判斷教師上課:判斷教師上課teach(teacher,class,course) 2NF? teach(teacher,class,course) 2NF? 假定一位教師給同一個班至多上一門課,一門課可以由多
29、位教假定一位教師給同一個班至多上一門課,一門課可以由多位教師上,一名老師也可上多門課。師上,一名老師也可上多門課。候選碼:(候選碼:(teacher,classteacher,class) 非主屬性:非主屬性: coursecourse因?yàn)橐驗(yàn)閏oursecourse完全函數(shù)依賴于(完全函數(shù)依賴于( teacher,classteacher,class) 所以屬于所以屬于2NF2NF7.3 7.3 范式范式SQL Server 2000SQL Server 2000不滿足第二范式的關(guān)系模式必然存在各種存儲異常。如例不滿足第二范式的關(guān)系模式必然存在各種存儲異常。如例1 1滿足了滿足了2NF2NF
30、是不是就不存在存儲異常呢?不是。是不是就不存在存儲異常呢?不是。例:學(xué)生(學(xué)號,姓名,年齡,系名,系主任,系辦電話)例:學(xué)生(學(xué)號,姓名,年齡,系名,系主任,系辦電話)它滿足它滿足2NF2NF,但還存如下問題;但還存如下問題;存在數(shù)據(jù)冗余:大量的系信息冗余;存在數(shù)據(jù)冗余:大量的系信息冗余;它存在插入異常:系剛成立,沒有學(xué)生時不能添加系;它存在插入異常:系剛成立,沒有學(xué)生時不能添加系;它存在刪除異常:某系學(xué)生全部畢業(yè),系的信息丟失;它存在刪除異常:某系學(xué)生全部畢業(yè),系的信息丟失;它存在修改異常:系辦電話改動,需要改動多處。它存在修改異常:系辦電話改動,需要改動多處。因此,滿足了因此,滿足了2NF
31、2NF還不夠。還不夠。7.3 7.3 范式范式SQL Server 2000SQL Server 2000 如果關(guān)系模式如果關(guān)系模式R2NFR2NF,且,且R R的任一非主屬性都的任一非主屬性都不傳遞函數(shù)依賴不傳遞函數(shù)依賴于任何候選碼,則稱于任何候選碼,則稱R R屬于第三范式,屬于第三范式,R3NFR3NF 例例4:判斷上述關(guān)系模式:判斷上述關(guān)系模式 R1(學(xué)號,姓名,年齡,系名,系(學(xué)號,姓名,年齡,系名,系主任)是否滿足主任)是否滿足3NF。步驟:它滿足步驟:它滿足2NF(例(例4已證明)已證明)因?yàn)閷W(xué)號因?yàn)閷W(xué)號系名系名 系名系名系主任系主任 所以系主任傳遞函數(shù)依賴于學(xué)號所以系主任傳遞函數(shù)
32、依賴于學(xué)號即本關(guān)系模式不滿足即本關(guān)系模式不滿足3NF。三、第三范式(三、第三范式(3NF3NF)7.3 7.3 范式范式SQL Server 2000SQL Server 2000 不滿足不滿足3NF3NF的關(guān)系模式存在各種存儲異常。那么滿足的關(guān)系模式存在各種存儲異常。那么滿足3NF3NF的的關(guān)系模式是不是就不存在存儲異常呢?一般情況下是可以了,關(guān)系模式是不是就不存在存儲異常呢?一般情況下是可以了,但有些特殊情況下依然還存在存儲異常。但有些特殊情況下依然還存在存儲異常。例例5:判斷關(guān)系模式:判斷關(guān)系模式 選課(學(xué)號,姓名,課程號,成績)選課(學(xué)號,姓名,課程號,成績)3NF?步驟:它是否滿足步
33、驟:它是否滿足2NF?不是。?不是。既然不滿足既然不滿足2NF,當(dāng)然不滿足,當(dāng)然不滿足3NF。7.3 7.3 范式范式SQL Server 2000SQL Server 2000如:如:教學(xué)(學(xué)生,教師,課程),假定每一教師只能講一門教學(xué)(學(xué)生,教師,課程),假定每一教師只能講一門課,每門課由若干教師講授,每個學(xué)生選修某門課時就對應(yīng)課,每門課由若干教師講授,每個學(xué)生選修某門課時就對應(yīng)一個固定的教師。一個固定的教師。候選碼:(候選碼:(學(xué)生,教師),(學(xué)生,課程)學(xué)生,教師),(學(xué)生,課程)三個屬性都是主屬性,沒有非主屬性,滿足三個屬性都是主屬性,沒有非主屬性,滿足2NF和和3NF。但該關(guān)系模式
34、還是有數(shù)據(jù)冗余和存儲異常。如但該關(guān)系模式還是有數(shù)據(jù)冗余和存儲異常。如插入異常:無法存儲不選課的學(xué)生和不開課的教師插入異常:無法存儲不選課的學(xué)生和不開課的教師刪除異常:無法刪除一個學(xué)生的選課信息刪除異常:無法刪除一個學(xué)生的選課信息更新異常:某門課的某位教師換了,則選該教師的所有記錄均更新異常:某門課的某位教師換了,則選該教師的所有記錄均需修改。需修改。數(shù)據(jù)冗余大:一個學(xué)生選多門課,需重復(fù)存放該學(xué)生的信息數(shù)據(jù)冗余大:一個學(xué)生選多門課,需重復(fù)存放該學(xué)生的信息7.3 7.3 范式范式SQL Server 2000SQL Server 2000問題存在的原因:問題存在的原因: 主屬性部分函數(shù)依賴于侯選碼
35、主屬性部分函數(shù)依賴于侯選碼 (注(注2NF,3NF是要求非主屬是要求非主屬性對侯選碼的要求,而不是主屬性對侯選碼的要求)性對侯選碼的要求,而不是主屬性對侯選碼的要求) 如(學(xué)生,教師)如(學(xué)生,教師)課程,而教師課程,而教師課程,所以課程部分依課程,所以課程部分依賴于碼(學(xué)生,教師)賴于碼(學(xué)生,教師)7.3 7.3 范式范式SQL Server 2000SQL Server 2000四、四、BCBC范式(范式(BCNFBCNF)設(shè)關(guān)系模式設(shè)關(guān)系模式R R(U U)1NF1NF,如果對于如果對于R R的每個非平凡函數(shù)依的每個非平凡函數(shù)依賴賴X YX Y(Y XY X),),則則X X必包含候選
36、碼,那么必包含候選碼,那么RBCNFRBCNF。即若即若每一個決定因素都包含碼,則每一個決定因素都包含碼,則RBCNFRBCNF。由由BCNFBCNF的定義可以看出,每個的定義可以看出,每個BCNFBCNF的關(guān)系模式都具有如下的關(guān)系模式都具有如下性質(zhì):性質(zhì):所有非主屬性都完全函數(shù)依賴于每個侯選碼所有非主屬性都完全函數(shù)依賴于每個侯選碼所有主屬性都完全函數(shù)依賴于每個不包含它的侯選碼所有主屬性都完全函數(shù)依賴于每個不包含它的侯選碼沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性( (即每一即每一個決定因素都包含碼個決定因素都包含碼) )從函數(shù)依賴范疇內(nèi),從函數(shù)依
37、賴范疇內(nèi),BCNFBCNF已經(jīng)達(dá)到了最高的要求。已經(jīng)達(dá)到了最高的要求。推論:如果推論:如果R R只有一個侯選碼,且只有一個侯選碼,且R R 3NF3NF,則,則R R必屬于必屬于BCNFBCNF7.3 7.3 范式范式SQL Server 2000SQL Server 2000BCNFBCNF與與3NF3NF的區(qū)別的區(qū)別:3NF3NF只強(qiáng)調(diào)非主屬性對碼的完全直只強(qiáng)調(diào)非主屬性對碼的完全直接依賴,而接依賴,而BCNFBCNF不僅強(qiáng)調(diào)非主屬性對碼的完全直接依不僅強(qiáng)調(diào)非主屬性對碼的完全直接依賴,而且強(qiáng)調(diào)主屬性對碼的完全直接依賴,它包括賴,而且強(qiáng)調(diào)主屬性對碼的完全直接依賴,它包括3NF3NF。7.3 7
38、.3 范式范式SQL Server 2000SQL Server 2000 將關(guān)系模式轉(zhuǎn)化為較高級的范式稱為關(guān)系模式的規(guī)范化。將關(guān)系模式轉(zhuǎn)化為較高級的范式稱為關(guān)系模式的規(guī)范化。 關(guān)系模式屬于范式的級別越高,出現(xiàn)異常的概率越小,所關(guān)系模式屬于范式的級別越高,出現(xiàn)異常的概率越小,所以我們應(yīng)該讓關(guān)系模式盡可能屬于較高級的范式。以我們應(yīng)該讓關(guān)系模式盡可能屬于較高級的范式。 關(guān)系模式的規(guī)范化通常是采用分解的辦法,也就是將關(guān)系關(guān)系模式的規(guī)范化通常是采用分解的辦法,也就是將關(guān)系模式分解為幾個關(guān)系模式,使每個關(guān)系模式都達(dá)到更高的范式模式分解為幾個關(guān)系模式,使每個關(guān)系模式都達(dá)到更高的范式級別。但這種分解要求信息
39、不能有損失。級別。但這種分解要求信息不能有損失。 五、關(guān)系模式的規(guī)范化五、關(guān)系模式的規(guī)范化7.3 7.3 范式范式SQL Server 2000SQL Server 2000范式小結(jié):范式小結(jié):1NF 消除非主屬性對侯選碼的部分依賴消除非主屬性對侯選碼的部分依賴2NF 消除非主屬性對侯選碼的傳遞依賴消除非主屬性對侯選碼的傳遞依賴3NF 消除主屬性對侯選碼的部分依賴和傳遞依賴消除主屬性對侯選碼的部分依賴和傳遞依賴BCNF 消除非平凡且非函數(shù)依賴的多值依賴消除非平凡且非函數(shù)依賴的多值依賴 4NF 消除不是由侯選碼蘊(yùn)含的連接依賴消除不是由侯選碼蘊(yùn)含的連接依賴5NF7.3 7.3 范式范式SQL Server 2000SQL Server 2000 例:設(shè)關(guān)系模式例:設(shè)關(guān)系模式R(學(xué)號,課程號,成績,教師姓名,教師地學(xué)號,課程號,成績,教師姓名,教師地址)規(guī)定:每個學(xué)生每學(xué)一門課只有一個成績,每門課只有一個址)規(guī)定:每個學(xué)生每學(xué)一門課只有一個成績,每門課只有一個教師任教,每個教師只有一個地址,且教師沒有同名同姓。教師任教,每個教師只有一個地址,且教師沒有同名同姓。要求:要求:(1)寫出)寫出R的基本函數(shù)依賴:的基本函數(shù)依賴:存在如下基本函數(shù)依賴:存在如下基本函數(shù)依賴:(學(xué)號,課程號)(學(xué)號,課程號)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報書:反常亞擴(kuò)散在保險與金融中的應(yīng)用
- 課題申報書:俄蘇中亞歷史地理學(xué)史研究
- 13《湖中心亭看雪》公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 上海閔行職業(yè)技術(shù)學(xué)院《基礎(chǔ)教育改革研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海旅游高等專科學(xué)?!冬F(xiàn)代通信系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海立信會計金融學(xué)院《康復(fù)護(hù)理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上??茖W(xué)技術(shù)職業(yè)學(xué)院《高分子材料助劑與配方設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 4.1+光的直線+教學(xué)課件+2024-2025學(xué)年人教版物理八年級上冊+
- 上海交通大學(xué)《環(huán)境儀器分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 歷史與社會:人教版九年級第五單元第一課第三框《西歐的復(fù)興與聯(lián)合》教學(xué)實(shí)錄
- 古詩詞誦讀《書憤》公開課一等獎創(chuàng)新教學(xué)設(shè)計統(tǒng)編版高中語文選擇性必修下冊
- 二年級上冊數(shù)學(xué)說課課件 7.《認(rèn)識時間》 人教版 共24張
- 化工和危險化學(xué)品企業(yè)重大事故隱患重點(diǎn)排查事項(xiàng)清單(參考模板)
- 2022年國家糧食和物資儲備局直屬聯(lián)系單位招聘考試試卷及答案解析
- 2024年四川省成考(專升本)生理學(xué)護(hù)理學(xué)專業(yè)考試真題含解析
- 市政公用工程安全文明施工監(jiān)理實(shí)施細(xì)則樣本
- 采購部經(jīng)理年度工作總結(jié)
- 預(yù)防網(wǎng)絡(luò)成癮心理課課件
- 航道工程學(xué)-航道疏浚分解課件
- pvc電纜保護(hù)管制造工藝
- 壓力容器焊接技術(shù)培訓(xùn)
評論
0/150
提交評論