




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、喻 國 榮 第3章 關(guān)系數(shù)據(jù)庫設(shè)計理論喻喻 國國 榮榮東南大學(xué)測繪工程系東南大學(xué)測繪工程系喻 國 榮 3.1 問題的提出問題的提出 關(guān)系數(shù)據(jù)庫設(shè)計理論主要內(nèi)容是研究如何使數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫設(shè)計理論主要內(nèi)容是研究如何使數(shù)據(jù)庫中的中的數(shù)據(jù)數(shù)據(jù)能夠準(zhǔn)確地能夠準(zhǔn)確地描述描述現(xiàn)實世界中的事物。在現(xiàn)現(xiàn)實世界中的事物。在現(xiàn)實世界中,事物往往是實世界中,事物往往是相關(guān)相關(guān)的。的。 例如,一個部門的編號確定了給部門的名稱、地址例如,一個部門的編號確定了給部門的名稱、地址以及在該部門的工作人員等。這些關(guān)系稱為以及在該部門的工作人員等。這些關(guān)系稱為數(shù)據(jù)依數(shù)據(jù)依賴賴,它是通過一個關(guān)系中屬性間值的,它是通過一個關(guān)系中屬性
2、間值的相等與否相等與否來體來體現(xiàn)數(shù)據(jù)間的相互關(guān)系,它是數(shù)據(jù)的內(nèi)在性質(zhì),是數(shù)現(xiàn)數(shù)據(jù)間的相互關(guān)系,它是數(shù)據(jù)的內(nèi)在性質(zhì),是數(shù)據(jù)定義語義的體現(xiàn)。據(jù)定義語義的體現(xiàn)。 數(shù)據(jù)依賴的類型有很多,其中最重要的是數(shù)據(jù)依賴的類型有很多,其中最重要的是函數(shù)函數(shù)的依的依賴(賴(Functional Dependency FD)和)和多值多值依賴依賴(Multi Valued Dependency MVD)。解決數(shù)據(jù)依賴)。解決數(shù)據(jù)依賴問題是數(shù)據(jù)庫模式設(shè)計的問題是數(shù)據(jù)庫模式設(shè)計的關(guān)鍵關(guān)鍵,是設(shè)計和構(gòu)建數(shù)據(jù),是設(shè)計和構(gòu)建數(shù)據(jù)庫的庫的基礎(chǔ)基礎(chǔ)。喻 國 榮 3.1 問題的提出問題的提出 數(shù)據(jù)庫建立在不合理的模式基礎(chǔ)上將產(chǎn)生一系
3、列問數(shù)據(jù)庫建立在不合理的模式基礎(chǔ)上將產(chǎn)生一系列問題題訂單編號訂單編號客戶編號客戶編號訂單日期訂單日期客戶姓名客戶姓名客戶地址客戶地址產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品金額小計P#PNQPPPT訂單金額總計訂單金額總計訂單訂單喻 國 榮 3.1 問題的提出問題的提出 產(chǎn)品訂單產(chǎn)品訂單訂單編號訂單日期客戶編號客戶姓名客戶地址產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品總計訂單總計O#ODC#CNCAP#PNQPPPTOT訂單編號訂單編號客戶編號客戶編號訂單日期訂單日期客戶姓名客戶姓名客戶地址客戶地址產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品金額小計P#PNQPPPT訂單金額總計訂單金額總計訂單訂單ORDER喻
4、 國 榮 3.1 問題的提出問題的提出 產(chǎn)品訂單產(chǎn)品訂單訂單編號訂單日期客戶編號客戶姓名客戶地址產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品總計訂單總計O#ODC#CNCAP#PNQPPPTOT(1)(2)(3)(4)(5)(6)(7)(8)(9)(10) (11) (A A)冗余問題)冗余問題:(:(6 6)- -(1010)項屬性會出現(xiàn))項屬性會出現(xiàn)重復(fù)重復(fù),即一張訂單上一個客戶可訂購幾種產(chǎn)品即一張訂單上一個客戶可訂購幾種產(chǎn)品 (B B)修改困難:對)修改困難:對ORDERORDER的元組進(jìn)行修改時可能造的元組進(jìn)行修改時可能造成數(shù)據(jù)的成數(shù)據(jù)的不一致不一致性。由于表格中有大量的重復(fù),某性。由于表格中
5、有大量的重復(fù),某個屬性變化,就要修改所有對應(yīng)元組;忘記或漏改個屬性變化,就要修改所有對應(yīng)元組;忘記或漏改一項會導(dǎo)致數(shù)據(jù)的不一致性。一項會導(dǎo)致數(shù)據(jù)的不一致性。ORDER喻 國 榮 3.1 問題的提出問題的提出 供貨商供貨商供貨商號商家店名商店地址產(chǎn)品名稱產(chǎn)品價格SUP#SNAMESADDRESSITEMPRICE(1)(2)(3)(4)(5) (A A)冗余問題;)冗余問題;(B B)修改困難)修改困難 (C C)插入問題:插入一個元組必須全部屬性都)插入問題:插入一個元組必須全部屬性都有確有確定值定值。如果供貨商還沒有提供商品,則不能將供貨。如果供貨商還沒有提供商品,則不能將供貨商的有關(guān)信息如
6、編號、姓名和地址放入數(shù)據(jù)庫。商的有關(guān)信息如編號、姓名和地址放入數(shù)據(jù)庫。SUPPLES喻 國 榮 3.1 問題的提出問題的提出 供貨商供貨商 (A A)冗余問題;)冗余問題;(B B)修改困難;()修改困難;(C C)插入問題)插入問題 (D D)刪除問題:是插入的逆問題。由于存在多余的)刪除問題:是插入的逆問題。由于存在多余的數(shù)據(jù)依賴,或者說不夠規(guī)范,刪除某個元組的信息數(shù)據(jù)依賴,或者說不夠規(guī)范,刪除某個元組的信息時,結(jié)果時,結(jié)果失去失去了關(guān)于某個屬性的所有信息,而這些了關(guān)于某個屬性的所有信息,而這些信息又是系統(tǒng)希望保留的。如刪除一個供貨商的全信息又是系統(tǒng)希望保留的。如刪除一個供貨商的全部產(chǎn)品把
7、供貨商的信息也刪除了。部產(chǎn)品把供貨商的信息也刪除了。SUPPLES供貨商號商家店名商店地址產(chǎn)品名稱產(chǎn)品價格SUP#SNAMESADDRESSITEMPRICE(1)(2)(3)(4)(5)喻 國 榮 3.1 問題的提出問題的提出 再例如,需要建立一個數(shù)據(jù)庫來描述學(xué)生的一些情再例如,需要建立一個數(shù)據(jù)庫來描述學(xué)生的一些情況。對象有學(xué)生(況。對象有學(xué)生(Sno)、系()、系(Sdept)、系主任)、系主任(MN)、課程()、課程(Cname)和成績。)和成績。 關(guān)系:(關(guān)系:(Sno ,Cname ,CGRADE,Sdept,MN) (1)一個系有若干學(xué)生,但一個學(xué)生只屬于一個系)一個系有若干學(xué)生,
8、但一個學(xué)生只屬于一個系 (2)一個系只有一名主任)一個系只有一名主任 (3)一個學(xué)生可以選修多門課程,每門課程有若干)一個學(xué)生可以選修多門課程,每門課程有若干學(xué)生選修學(xué)生選修 (4)每個學(xué)生學(xué)習(xí)每一門課程只有一個成績)每個學(xué)生學(xué)習(xí)每一門課程只有一個成績喻 國 榮 3.1 問題的提出問題的提出 如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴(屬性間的決如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴(屬性間的決定關(guān)系),我們就得到了一個描述學(xué)生的數(shù)據(jù)模式定關(guān)系),我們就得到了一個描述學(xué)生的數(shù)據(jù)模式SnoCnameSdeptMNG這個模式有這個模式有3個個“毛病毛病”(A)插入插入異常:如果一個系剛成立異常:如果一個系剛成立無
9、學(xué)生,或者雖然有了學(xué)生但尚未安無學(xué)生,或者雖然有了學(xué)生但尚未安排課程,那么我們就無法把這個系及排課程,那么我們就無法把這個系及其系主任的信息其系主任的信息存入存入數(shù)據(jù)庫數(shù)據(jù)庫學(xué)生學(xué)生(Sno)、系(、系(Sdept)、)、系主任(系主任(MN)、課程)、課程(Cname)和成績()和成績(G)。)。喻 國 榮 3.1 問題的提出問題的提出 如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴(屬性間的決如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴(屬性間的決定關(guān)系),我們就得到了一個描述學(xué)生的數(shù)據(jù)模式定關(guān)系),我們就得到了一個描述學(xué)生的數(shù)據(jù)模式SnoCnameSdeptMNG這個模式有這個模式有3個個“毛病毛病”(A)插入插
10、入異常;(異常;(B)刪除刪除異常:反異常:反過來,如果某個系的學(xué)生全部畢業(yè)了,過來,如果某個系的學(xué)生全部畢業(yè)了,我們在我們在刪除刪除該系學(xué)生選修課程的同時,該系學(xué)生選修課程的同時,把這個系及其系主任的信息也刪除了把這個系及其系主任的信息也刪除了學(xué)生學(xué)生(Sno)、系(、系(Sdept)、)、系主任(系主任(MN)、課程)、課程(Cname)和成績()和成績(G)。)。喻 國 榮 3.1 問題的提出問題的提出 如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴(屬性間的決如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴(屬性間的決定關(guān)系),我們就得到了一個描述學(xué)生的數(shù)據(jù)模式定關(guān)系),我們就得到了一個描述學(xué)生的數(shù)據(jù)模式SnoCn
11、ameSdeptMNG這個模式有這個模式有3個個“毛病毛病”(A)插入插入異常;(異常;(B)刪除刪除異常;(異常;(C)冗余冗余太太大:比如,每一個系主任的姓名與該系每一個學(xué)大:比如,每一個系主任的姓名與該系每一個學(xué)生的每一門功課的成績出現(xiàn)的次數(shù)一樣多。這樣,生的每一門功課的成績出現(xiàn)的次數(shù)一樣多。這樣,一方面浪費存儲,另一方面系統(tǒng)要付出很大代價一方面浪費存儲,另一方面系統(tǒng)要付出很大代價維護(hù)數(shù)據(jù)庫的完整性。比如,系主任更換后,就維護(hù)數(shù)據(jù)庫的完整性。比如,系主任更換后,就必須修改有關(guān)的每一個元組必須修改有關(guān)的每一個元組學(xué)生學(xué)生(Sno)、系(、系(Sdept)、)、系主任(系主任(MN)、課程)
12、、課程(Cname)和成績()和成績(G)。)。喻 國 榮 3.1 問題的提出問題的提出 如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴(屬性間的決如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴(屬性間的決定關(guān)系),我們就得到了一個描述學(xué)生的數(shù)據(jù)模式定關(guān)系),我們就得到了一個描述學(xué)生的數(shù)據(jù)模式SnoCnameSdeptMNG直觀分析,一個學(xué)生的情況與這個系直觀分析,一個學(xué)生的情況與這個系的系主任沒有必然的聯(lián)系;一個學(xué)生某的系主任沒有必然的聯(lián)系;一個學(xué)生某門課的成績與這個學(xué)生在哪個系也沒有門課的成績與這個學(xué)生在哪個系也沒有必然聯(lián)系。正是將這些必然聯(lián)系。正是將這些不相關(guān)不相關(guān)的數(shù)據(jù)放的數(shù)據(jù)放到一起從而造成了關(guān)系模式不好的特性
13、,到一起從而造成了關(guān)系模式不好的特性,解決的方法就是對原模式進(jìn)行分解解決的方法就是對原模式進(jìn)行分解需要對關(guān)系模式進(jìn)行需要對關(guān)系模式進(jìn)行規(guī)范化規(guī)范化學(xué)生學(xué)生(Sno)、系(、系(Sdept)、)、系主任(系主任(MN)、課程)、課程(Cname)和成績()和成績(G)。)。喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 客觀世界中的事物是彼此聯(lián)系的,它們互相制約??陀^世界中的事物是彼此聯(lián)系的,它們互相制約?;ハ嘁来妗_@種聯(lián)系可以分為兩類:一類是互相依存。這種聯(lián)系可以分為兩類:一類是實體與實體與實體實體之間的聯(lián)系;另一類是之間的聯(lián)系;另一類是實體內(nèi)部實體內(nèi)部各屬性之間的各屬性之間的聯(lián)系。聯(lián)系。HHOH2OH
14、2OH2OH2OH2OH2OH2O喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 一對一的關(guān)系一對一的關(guān)系 定義:設(shè)定義:設(shè)A,B為某個實體類型的兩個屬性值的集合,為某個實體類型的兩個屬性值的集合,如果如果A中的任一具體值,中的任一具體值,B中中至多至多有一個值與之對應(yīng),有一個值與之對應(yīng),并且,并且,B中的任一具體值,中的任一具體值,A中也中也至多至多有一值與之對有一值與之對應(yīng),則稱應(yīng),則稱A、B兩個屬性之間為一對一的關(guān)系。兩個屬性之間為一對一的關(guān)系。 例如:一個人只有一個生日,如果該人的姓名唯一,例如:一個人只有一個生日,如果該人的姓名唯一,則姓名與生日這兩個屬性之間的關(guān)系是一對一的關(guān)則姓名與生日這兩
15、個屬性之間的關(guān)系是一對一的關(guān)系。系。 3.2.1 關(guān)系函數(shù)的類型關(guān)系函數(shù)的類型喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 一對一的關(guān)系一對一的關(guān)系 一對多的關(guān)系一對多的關(guān)系 定義:設(shè)定義:設(shè)A,B為某個實體類型的兩個屬性值的集合,為某個實體類型的兩個屬性值的集合,如果如果A中的任一具體值,中的任一具體值,B中有中有多個多個值與之對應(yīng),但值與之對應(yīng),但是,是,B中的任一具體值,中的任一具體值,A中中至多至多有一個值與之對應(yīng),有一個值與之對應(yīng),則稱則稱A、B兩個屬性之間為一對多的關(guān)系。兩個屬性之間為一對多的關(guān)系。 例如:一個人只有一個身份證,但有多個住址,因例如:一個人只有一個身份證,但有多個住址,因此
16、,身份證與住址是一對多的關(guān)系。此,身份證與住址是一對多的關(guān)系。 3.2.1 關(guān)系函數(shù)的類型關(guān)系函數(shù)的類型喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 一對一的關(guān)系一對一的關(guān)系 一對多的關(guān)系一對多的關(guān)系 多對多的關(guān)系多對多的關(guān)系 定義:設(shè)定義:設(shè)A,B為某個實體類型的兩個屬性值的集合,為某個實體類型的兩個屬性值的集合,如果如果A中的任一具體值,中的任一具體值,B中有中有多個多個值與之對應(yīng),并值與之對應(yīng),并且,且,B中的任一具體值,中的任一具體值,A中也有中也有多個多個值與之對應(yīng),值與之對應(yīng),則稱則稱A、B兩個屬性之間為多對多的關(guān)系。兩個屬性之間為多對多的關(guān)系。 例如:學(xué)生的學(xué)號和課程之間是多對多的關(guān)系。
17、例如:學(xué)生的學(xué)號和課程之間是多對多的關(guān)系。 3.2.1 關(guān)系函數(shù)的類型關(guān)系函數(shù)的類型喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 關(guān)系模式關(guān)系模式R(U):設(shè)關(guān)系名為:設(shè)關(guān)系名為R,屬性名分別為,屬性名分別為A1、A2、An,則關(guān)系模式記為,則關(guān)系模式記為R(A1,A2,,An),令令U=A1,A2,An,即,即U是是R的全部屬性組成的集的全部屬性組成的集合,則關(guān)系模式可記為合,則關(guān)系模式可記為R(U)。 定義定義1函數(shù)依賴函數(shù)依賴:設(shè)有關(guān)系模式:設(shè)有關(guān)系模式R(U),x和和y均為屬均為屬性集性集U的子集,的子集,s和和v是是R中的中的任意任意兩個元組,如果有兩個元組,如果有sx=vx,就有,就有sy
18、=vy,則稱,則稱x函數(shù)決定了函數(shù)決定了y,或,或y函數(shù)依賴于函數(shù)依賴于x,記為,記為xy。 例如:一個學(xué)生的關(guān)系模式例如:一個學(xué)生的關(guān)系模式 S(S#, NAME, AGE, SEX) S#學(xué)生學(xué)號學(xué)生學(xué)號, NAME學(xué)生姓名學(xué)生姓名, AGE學(xué)生年齡學(xué)生年齡, SEX學(xué)生性別。學(xué)生性別。 3.2.2 函數(shù)依賴函數(shù)依賴喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 前面講了三種關(guān)系:前面講了三種關(guān)系: 一對一的關(guān)系;一對一的關(guān)系; 一對多的一對多的關(guān)系;多對多的關(guān)系關(guān)系;多對多的關(guān)系 一對一:存在函數(shù)依賴。例如一對一:存在函數(shù)依賴。例如“國家國家”與與“首都首都”之間就是互為函數(shù)依賴之間就是互為函數(shù)依
19、賴 一對多:存在函數(shù)依賴。例如一對多:存在函數(shù)依賴。例如“職工號職工號”與與“工工資資”之間就有函數(shù)依賴,但是反過來就不一定有。之間就有函數(shù)依賴,但是反過來就不一定有。 多對多:不存在任何函數(shù)依賴多對多:不存在任何函數(shù)依賴 3.2.2 函數(shù)依賴函數(shù)依賴喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 函數(shù)依賴實際上是對現(xiàn)實世界中事物的性質(zhì)之間相函數(shù)依賴實際上是對現(xiàn)實世界中事物的性質(zhì)之間相關(guān)性的關(guān)性的一種一種標(biāo)識標(biāo)識。如同數(shù)學(xué)中的。如同數(shù)學(xué)中的單值單值函數(shù)關(guān)系。函數(shù)關(guān)系。 如果如果R的所有具體關(guān)系的所有具體關(guān)系r都存在:對于都存在:對于X的的每一每一具體值,具體值,都有都有Y的的唯一唯一的具體值與之對應(yīng),則
20、稱的具體值與之對應(yīng),則稱Y函數(shù)依賴于函數(shù)依賴于X。 例如:例如: 教師名教師名系名系名 學(xué)學(xué) 號號姓名姓名 學(xué)號課程號學(xué)號課程號成績成績 數(shù)據(jù)庫設(shè)計者在定義數(shù)據(jù)庫模式時,應(yīng)指明屬性間數(shù)據(jù)庫設(shè)計者在定義數(shù)據(jù)庫模式時,應(yīng)指明屬性間的函數(shù)依賴,使數(shù)據(jù)庫管理系統(tǒng)根據(jù)設(shè)計者的意圖的函數(shù)依賴,使數(shù)據(jù)庫管理系統(tǒng)根據(jù)設(shè)計者的意圖來維護(hù)數(shù)據(jù)庫的來維護(hù)數(shù)據(jù)庫的完整性完整性。 3.2.2 函數(shù)依賴函數(shù)依賴喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 R是一個關(guān)系模式,是一個關(guān)系模式,A、B、C是其屬性,如果在是其屬性,如果在R中中的函數(shù)依賴的函數(shù)依賴AB,BC成立,函數(shù)依賴成立,函數(shù)依賴AC是否是否成立?這就是函數(shù)依賴的成
21、立?這就是函數(shù)依賴的邏輯蘊涵邏輯蘊涵所要解決的問題。所要解決的問題。 3.2.3 函數(shù)依賴的邏輯蘊涵函數(shù)依賴的邏輯蘊涵 喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 定義定義2邏輯地蘊涵:設(shè)邏輯地蘊涵:設(shè)F是關(guān)系模式是關(guān)系模式R上的一個上的一個函數(shù)函數(shù)依賴依賴集合,集合,X、Y是是R的屬性子集,如果從的屬性子集,如果從F的函數(shù)依的函數(shù)依賴可推導(dǎo)出賴可推導(dǎo)出XY,則稱,則稱F邏輯地蘊涵邏輯地蘊涵XY,或,或XY邏輯蘊涵于邏輯蘊涵于F,或,或XY可以從可以從F中導(dǎo)出。中導(dǎo)出。 定義定義3閉包、完備集:被閉包、完備集:被F邏輯蘊涵的函數(shù)依賴的集邏輯蘊涵的函數(shù)依賴的集合稱為合稱為F的的閉包閉包(Closure
22、),記為,記為F+;通常情況下,;通常情況下,F(xiàn)+包含或等于包含或等于F,如果兩者相等,則稱,如果兩者相等,則稱F是函數(shù)依賴是函數(shù)依賴的完備集。的完備集。 3.2.3 函數(shù)依賴的邏輯蘊涵函數(shù)依賴的邏輯蘊涵 喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 定義定義4 侯選鍵:設(shè)侯選鍵:設(shè)R(A1,A2,An)是一個關(guān)系模式,是一個關(guān)系模式,F(xiàn)是它的函數(shù)依賴集,是它的函數(shù)依賴集,X是是A1,A2,An的一個子集。的一個子集。如果如果XA1,A2,An F+,并且不存在,并且不存在Y包含于包含于X,使得使得YA1,A2,An F+,則稱,則稱X為為R的一個的一個侯選侯選鍵鍵。 例如:一個學(xué)生的關(guān)系模式例如:一
23、個學(xué)生的關(guān)系模式 S(S#, NAME, AGE, SEX)。函數(shù)依賴主要體現(xiàn)在:。函數(shù)依賴主要體現(xiàn)在:S#NAME, S#AGE, S#SEX,則,則S#是該關(guān)系模式的侯選鍵,是該關(guān)系模式的侯選鍵,并且是主鍵。并且是主鍵。 3.2.4 鍵鍵喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 定義定義4 侯選鍵侯選鍵 通俗地講,就是在同一組屬性子集上,通俗地講,就是在同一組屬性子集上,不不存在第二個函數(shù)屬存在第二個函數(shù)屬性,則該組屬性集為侯選鍵;性,則該組屬性集為侯選鍵; 包含在任何一個侯選鍵的屬性稱為包含在任何一個侯選鍵的屬性稱為主主屬性,不包含在侯選鍵屬性,不包含在侯選鍵中的屬性稱為非主屬性;中的屬性稱
24、為非主屬性; 對于任何一個關(guān)系來說,可能不只存在一個侯選鍵,通常選對于任何一個關(guān)系來說,可能不只存在一個侯選鍵,通常選擇其中一個作為擇其中一個作為主鍵主鍵。 鍵是鍵是唯一唯一確定一個實體的最少屬性集合。確定一個實體的最少屬性集合。 3.2.4 鍵鍵喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 定義定義5外部鍵外部鍵(Foreign Key):設(shè):設(shè)X是關(guān)系模式是關(guān)系模式R中的屬性或?qū)僦械膶傩曰驅(qū)傩越M,但性組,但X并非并非R的鍵,而是的鍵,而是另一個另一個關(guān)系模式的鍵,則稱關(guān)系模式的鍵,則稱X是是R的外部鍵。的外部鍵。例如:關(guān)系模式例如:關(guān)系模式1:PJL(P#,J#,T) 關(guān)系模式關(guān)系模式2:P( P
25、#,NAME,UNIT)P#只是關(guān)系模式只是關(guān)系模式PJL的屬性,但是關(guān)系模式的屬性,但是關(guān)系模式P的鍵,則的鍵,則P#對于關(guān)系模式對于關(guān)系模式PJL來說是外部鍵。來說是外部鍵。鍵與外部鍵提供了表示關(guān)系之間鍵與外部鍵提供了表示關(guān)系之間聯(lián)系聯(lián)系的手段,如關(guān)系模式的手段,如關(guān)系模式PJL(P#,J#,T)與關(guān)系模式與關(guān)系模式P( P#,NAME,UNIT)通過屬性通過屬性P( P# )進(jìn)行聯(lián)系進(jìn)行聯(lián)系例:學(xué)生課程:例:學(xué)生課程:S(S#, SN, ), C(C#, CN, ), SC(S#, C#, CN, G) 3.2.4 鍵鍵喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 常用的記號和術(shù)語常用的記號和術(shù)
26、語 XY,但,但X不包含也不等于不包含也不等于Y,則稱,則稱XY是非平是非平凡的函數(shù)依賴;凡的函數(shù)依賴; XY,表示,表示X為決定性因素;為決定性因素; XY,并且,并且YX,記為,記為XY; 如果如果Y不函數(shù)依賴于不函數(shù)依賴于X,則記為,則記為 XY 3.2.4 鍵鍵喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 定義定義6完全依賴、部分依賴:關(guān)系完全依賴、部分依賴:關(guān)系R(U)中,中,X和和Y是是屬性集屬性集U的兩個子集,成立的兩個子集,成立X Y。對于。對于X的任一真的任一真子集子集X, X Y不成立,稱成立,稱Y對對X完全完全函數(shù)依賴,記函數(shù)依賴,記為為XfY;如果;如果XY,但,但Y不完全函數(shù)
27、依賴于不完全函數(shù)依賴于X,則,則稱稱Y對對X部分部分函數(shù)依賴,記為函數(shù)依賴,記為XpY。 3.2.4 鍵鍵學(xué)生關(guān)系學(xué)生關(guān)系S( S#,Sname,Sdept,Sadr)S#Sname, S#Sdept, S#Sadr完全完全函數(shù)依賴函數(shù)依賴學(xué)生課程關(guān)系學(xué)生課程關(guān)系SC(S#, C#, Cname,Grade)(S#,C#)PCname部分函數(shù)依賴部分函數(shù)依賴喻 國 榮 3.2 函數(shù)依賴函數(shù)依賴 定義定義6完全依賴、部分依賴完全依賴、部分依賴 定義定義7 傳遞函數(shù)依賴:傳遞函數(shù)依賴:關(guān)系關(guān)系R(U)R(U)中,中,X X、Y Y和和Z Z是屬是屬性集性集U U的三個子集,成立的三個子集,成立X
28、YX Y,Y ZY Z,則則Z Z對對X X傳遞傳遞函數(shù)依賴。函數(shù)依賴。 職工關(guān)系職工關(guān)系E E(E E職工號,職工號,D D部門號,部門負(fù)債人部門號,部門負(fù)債人DLDL) E D,D DL, E DLE D,D DL, E DL 3.2.4 鍵鍵喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 關(guān)系模式的規(guī)范化問題是關(guān)系模式的規(guī)范化問題是E.F.Codd提出的,關(guān)系模提出的,關(guān)系模式規(guī)范化的目的:設(shè)計和構(gòu)造一個式規(guī)范化的目的:設(shè)計和構(gòu)造一個合理合理的關(guān)系模式,的關(guān)系模式,使該關(guān)系模式能夠使該關(guān)系模式能夠準(zhǔn)確準(zhǔn)確地反映現(xiàn)實世界。地反映現(xiàn)實世界。 E.F.Codd提出了提出了范式范式(Nor
29、nal Form)的概念,的概念,1971年年-1972年,提出了年,提出了1NF、2NF、3NF概念,概念,1974年,年,Codd和和Boyce提出了提出了BCNF范式,范式,1976年,年,F(xiàn)agin提提出了出了4NF。各個范式之間的包含關(guān)系如圖。各個范式之間的包含關(guān)系如圖3-1所示。所示。喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 關(guān)系模式的規(guī)范化:把一個關(guān)系模式的規(guī)范化:把一個低一級低一級范式的關(guān)系模式范式的關(guān)系模式通過模式通過模式分解分解轉(zhuǎn)換為一組轉(zhuǎn)換為一組高一級高一級范式的關(guān)系模式的范式的關(guān)系模式的過程。過程。 規(guī)范化的過程:是用一組規(guī)范化的過程:是用一組等價等價的關(guān)系
30、子模式,使關(guān)的關(guān)系子模式,使關(guān)系模式中的各關(guān)系模式達(dá)到某種程度系模式中的各關(guān)系模式達(dá)到某種程度“分離分離”,讓,讓一個關(guān)系描述一個概念、一個實體或?qū)嶓w之間的一一個關(guān)系描述一個概念、一個實體或?qū)嶓w之間的一種聯(lián)系,規(guī)范化的實質(zhì)是概念的種聯(lián)系,規(guī)范化的實質(zhì)是概念的單一單一化?;?。喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 定義定義8 第一范式:如果一個關(guān)系模式第一范式:如果一個關(guān)系模式R的每一個屬的每一個屬性的域都只包含性的域都只包含單一單一的值,則稱關(guān)系模式的值,則稱關(guān)系模式R滿足第一滿足第一范式。范式。 關(guān)系模式關(guān)系模式R的任一具體關(guān)系的任一具體關(guān)系r的每個屬性都是的每個屬性都是不可分
31、不可分的的最小數(shù)據(jù)最小數(shù)據(jù)單元。(原子數(shù)據(jù))單元。(原子數(shù)據(jù)) 即不能是即不能是一組值一組值;不能為;不能為空空值(值(NULL)。)。 3.3.1 第一范式(第一范式(1NF)供應(yīng)商號S#所在地CITY零件號P#S1BeijingP1P2P3S2ShanghaiP1P2非非1NFNameCityPhoneLiBeijing1234WangNanjingWuShanghai3456喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 不能是不能是一組值一組值;不能為;不能為空空值值 3.3.1 第一范式(第一范式(1NF)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 1NF有不必要的數(shù)
32、據(jù)有不必要的數(shù)據(jù)冗余冗余消除非主屬性對碼的消除非主屬性對碼的部分部分函數(shù)依賴函數(shù)依賴 定義定義9 第二范式:如果關(guān)系模式第二范式:如果關(guān)系模式R滿足滿足第一范式,第一范式,而且,存在而且,存在R的非主屬性部分函數(shù)依賴于候選鍵,并的非主屬性部分函數(shù)依賴于候選鍵,并且,且,R分解后的關(guān)系模式的所有非主屬性完全函數(shù)依分解后的關(guān)系模式的所有非主屬性完全函數(shù)依賴于候選鍵,則賴于候選鍵,則R分解后的關(guān)系模式滿足第二范式。分解后的關(guān)系模式滿足第二范式。 3.3.2 第二范式(第二范式(2NF)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 2NF含義:非主屬性不能只依賴單個候選碼。含義:非主屬性不能只
33、依賴單個候選碼。 將出現(xiàn)部分函數(shù)依賴的將出現(xiàn)部分函數(shù)依賴的非主屬性非主屬性和它所依賴的和它所依賴的部分部分鍵鍵一起抽出,形成新的關(guān)系(新表)。一起抽出,形成新的關(guān)系(新表)。 只有只有一個一個主屬性,(主主屬性,(主鍵鍵為一個,不是組合為一個,不是組合鍵鍵)已)已滿足完全函數(shù)依賴,就滿足了滿足完全函數(shù)依賴,就滿足了2NF。 只要看組合只要看組合鍵鍵的情況下,非主屬性與候選的情況下,非主屬性與候選鍵鍵之間是之間是否有函數(shù)依賴。否有函數(shù)依賴。 3.3.2 第二范式(第二范式(2NF)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 只有只有一個一個主屬性,(主主屬性,(主鍵鍵為一個,不是組合為
34、一個,不是組合鍵鍵)已)已滿足完全函數(shù)依賴,就滿足了滿足完全函數(shù)依賴,就滿足了2NF。 P#PD,P#QTY (P#,J#)QC J#JD,J#JM# 3.3.2 第二范式(第二范式(2NF)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 定義定義10第三范式:如果關(guān)系模式第三范式:如果關(guān)系模式R滿足滿足2NF,而且,而且,關(guān)系模式關(guān)系模式R中的非主屬性對鍵存在中的非主屬性對鍵存在傳遞傳遞函數(shù)依賴,并函數(shù)依賴,并且,且,R分解后的關(guān)系模式的任何一個非主屬性都分解后的關(guān)系模式的任何一個非主屬性都不傳不傳遞遞依賴于任何侯選鍵,則依賴于任何侯選鍵,則R分解后的關(guān)系模式滿足分解后的關(guān)系模式滿足3
35、NF。 含義:非主屬性之間含義:非主屬性之間不存在不存在依賴關(guān)系。將出現(xiàn)依賴依賴關(guān)系。將出現(xiàn)依賴的非主屬性和它所依賴的非主屬性一起抽出,形成的非主屬性和它所依賴的非主屬性一起抽出,形成新的關(guān)系(新表)。新的關(guān)系(新表)。 3.3.3 第三范式(第三范式(3NF)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 關(guān)系模式關(guān)系模式 :(1) REPORT(S#,C#,TITLE,LNAME,ROOM#,MARKS) (2)關(guān)系模式關(guān)系模式REPORT的函數(shù)依賴如下的函數(shù)依賴如下 (S#,C#)MARKS C#TITLE C#LNAME LNAMEROOM# 把關(guān)系模式把關(guān)系模式REPORT分解
36、為兩個關(guān)系模式分解為兩個關(guān)系模式 REPORT1(S#,C#,MARKS) COURSE(C#,TITLE,LNAME,ROOM#) 分解的結(jié)果:消除了非主屬性對鍵的部分依賴,分解的結(jié)果:消除了非主屬性對鍵的部分依賴, REPORT1、COURSE都屬于都屬于2NF 3.3.3 第三范式(第三范式(3NF)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 關(guān)系模式關(guān)系模式 :(1) REPORT;(;(2)消除了非主屬性對鍵的部分)消除了非主屬性對鍵的部分依賴依賴 (3) 由于由于C#LNAME,LNAMEROOM#,即存在傳遞函數(shù),即存在傳遞函數(shù)依賴,關(guān)系模式依賴,關(guān)系模式REPORT1
37、、 COURSE仍然存在問題。仍然存在問題。 解決方案:把關(guān)系模式解決方案:把關(guān)系模式COURSE再分解:再分解: REPORT1(S#,C#,MARKS) COURSE1(C#,LNAME) LECTURE(LNAME,ROOM#) 分解結(jié)果:關(guān)系模式分解結(jié)果:關(guān)系模式REPORT1、COURSE1和和LECTURE滿滿足足3NF 3.3.3 第三范式(第三范式(3NF)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 例例 3.3.3 第三范式(第三范式(3NF)學(xué)號學(xué)號S#系系SD系主任系主任SLS1D1LINGS2D1LINGS3D2WANGS4D2WANGS5D2WANG喻 國
38、榮 規(guī)范化舉例規(guī)范化舉例訂單編號訂單日期客戶編號客戶姓名客戶地址產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品總計訂單總計O#ODC#CNCAP#PNQPPPTOT訂單編號訂單編號客戶編號客戶編號訂單日期訂單日期客戶姓名客戶姓名客戶地址客戶地址產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品金額小計P#PNQPPPT訂單金額總計訂單金額總計訂單訂單ORDER3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化非規(guī)范化關(guān)系非規(guī)范化關(guān)系喻 國 榮 規(guī)范化舉例規(guī)范化舉例ORDER3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化訂單編號訂單日期客戶編號客戶姓名客戶地址產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品總計訂單總計O#ODC#CNCAP#PN
39、QPPPTOT(1)(2)(3)(4)(5)(6)(7)(8)(9)(10) (11)訂單編號產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品總計O#P#PNQPPPT(1)(6)(7)(8)(9)(10)訂單編號訂單日期客戶編號客戶姓名客戶地址訂單總計O#ODC#CNCAOT(1)(2)(3)(4)(5)(11)ORDER-1ORDER-PRODUCT-11NF喻 國 榮 規(guī)范化舉例規(guī)范化舉例3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化訂單編號產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品總計O#P#PNQPPPT(1)(6)(7)(8)(9)(10)訂單編號訂單日期客戶編號客戶姓名客戶地址訂單總計O#ODC#CNC
40、AOT(1)(2)(3)(4)(5)(11)ORDER-1ORDER-PRODUCT-11NF訂單編號產(chǎn)品編號購貨數(shù)量產(chǎn)品總計O#P#QPT(1)(6)(8)(10)產(chǎn)品編號產(chǎn)品名稱產(chǎn)品價格P#PNPP(6)(7)(9)2NF喻 國 榮 規(guī)范化舉例規(guī)范化舉例3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化訂單編號產(chǎn)品編號產(chǎn)品名稱購貨數(shù)量產(chǎn)品價格產(chǎn)品總計O#P#PNQPPPT(1)(6)(7)(8)(9)(10)訂單編號訂單日期客戶編號客戶姓名客戶地址訂單總計O#ODC#CNCAOT(1)(2)(3)(4)(5)(11)1NF訂單編號訂單日期客戶編號訂單總計O#ODC#OT(1)(2)(3)(11)客戶
41、編號客戶姓名客戶地址C#CNCA(3)(4)(5)訂單編號產(chǎn)品編號購貨數(shù)量產(chǎn)品總計O#P#QPT(1)(6)(8)(10)產(chǎn)品編號產(chǎn)品名稱產(chǎn)品價格P#PNPP(6)(7)(9)3NF喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 定義定義11BCNF范式:設(shè)一個關(guān)系模式范式:設(shè)一個關(guān)系模式R滿足函數(shù)依滿足函數(shù)依賴集賴集F,X和和A為為R中的屬性集合,且中的屬性集合,且X不包含不包含A,并,并且且R滿足第三范式,如果只要滿足第三范式,如果只要R滿足滿足XA,X就必包就必包含含R的一個侯選鍵,則的一個侯選鍵,則R滿足滿足BCNF范式。范式。 換句話說,關(guān)系模式換句話說,關(guān)系模式R中,若每一個
42、中,若每一個決定決定因素都包含因素都包含鍵,則關(guān)系模式鍵,則關(guān)系模式R屬于屬于BCNF范式。范式。 例如,考慮這樣一所院校,在該院校中每門課程有例如,考慮這樣一所院校,在該院校中每門課程有幾位教師講授,但每個教師只教一門課程,每個學(xué)幾位教師講授,但每個教師只教一門課程,每個學(xué)生可以選修幾門課程生可以選修幾門課程 例:例:ENROLS(S#,CNAME,TNAME) 3.3.4 BCNF范式(修正的第三范式)范式(修正的第三范式)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 例:例:ENROLS(S#,CNAME,TNAME) (1)關(guān)系模式關(guān)系模式ENROLS存在函數(shù)依賴:存在函數(shù)依賴
43、: (S#,CNAME)TNAME (S#,TNAME)CNAME TNAMECNAME 因為因為TNAME是決定因素,但不是鍵是決定因素,但不是鍵 ,模式,模式ENROLS滿足滿足3NF,但不滿足,但不滿足BCNF范式。范式。 (2)關(guān)系模式關(guān)系模式ENROLS 存在一些問題。存在一些問題。 解決方案:對關(guān)系模式解決方案:對關(guān)系模式ENROLS做如下分解做如下分解 CLASS(S#,TNAME) TEACH(TNAME,CNAME) 3.3.4 BCNF范式(修正的第三范式)范式(修正的第三范式)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 定義定義12多值依賴:設(shè)有關(guān)系模式多值依賴
44、:設(shè)有關(guān)系模式R,X和和Y是是R的屬的屬性子集,如果對于給定的性子集,如果對于給定的X屬性值,有一組屬性值,有一組Y屬性值屬性值與之對應(yīng),而與其它屬性(與之對應(yīng),而與其它屬性(R-X-Y,除,除X和和Y以外的以外的屬性子集)無關(guān),則稱屬性子集)無關(guān),則稱“X多值決定多值決定Y”,或,或“Y多值多值依賴于依賴于X”,并記,并記XY。 例例1 描述公司、產(chǎn)品和國家之間聯(lián)系的關(guān)系模式:描述公司、產(chǎn)品和國家之間聯(lián)系的關(guān)系模式:Sells(Company,Product,Country) 3.3.5 多值函數(shù)依賴多值函數(shù)依賴 喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 規(guī)范化小結(jié):規(guī)范化小結(jié):
45、P64:圖:圖3-2 1NF: 消除重復(fù)項和空值。消除重復(fù)項和空值。 2NF:消除非主屬性對鍵的部分函數(shù)依賴。消除非主屬性對鍵的部分函數(shù)依賴。 3NF:消除非主屬性對鍵的傳遞函數(shù)依賴。消除非主屬性對鍵的傳遞函數(shù)依賴。 總結(jié)總結(jié)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 (1)范式之間的關(guān)系。)范式之間的關(guān)系。BCNF包含包含了第三范式,第了第三范式,第三范式三范式包含包含第二范式,第二范式第二范式,第二范式包含包含第一范式。即第一范式。即一個關(guān)系模式如果屬于一個關(guān)系模式如果屬于BCNF,那么它肯定是,那么它肯定是3NF;如果是如果是3NF,則一定是,則一定是2NF,依此類推。,依此類
46、推。 第一范式(第一范式(1NF):每個):每個屬性屬性都是不可再分的,也就都是不可再分的,也就是說每個屬性必須包含可能的最小數(shù)據(jù)元素是說每個屬性必須包含可能的最小數(shù)據(jù)元素 第二范式(第二范式(2NF)關(guān)系必須按照)關(guān)系必須按照1NF來規(guī)范化,所有來規(guī)范化,所有的屬性必須的屬性必須引用引用或者或者描述描述;如果主鍵由兩個或兩個;如果主鍵由兩個或兩個以上屬性組成,那么每個屬性必須取決于組合鍵,以上屬性組成,那么每個屬性必須取決于組合鍵,而不僅僅是一個屬性而不僅僅是一個屬性 總結(jié)總結(jié)喻 國 榮 3.3 關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 (1)范式之間的關(guān)系)范式之間的關(guān)系 第三范式(第三范式(3NF):關(guān)系必須符合):關(guān)系必須符合1NF和和2NF的要求,的要求,消除消除非主屬性非主屬性對碼的傳遞依賴對碼的傳遞依賴 修正后
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度門面房出租與租賃期限調(diào)整合同
- 二零二五年度診所負(fù)責(zé)人安全責(zé)任免除合同
- 服務(wù)器采購合同共
- 無人機(jī)研發(fā)制造投資合同
- 水利設(shè)施施工合同
- 高考語文復(fù)習(xí)-文言文專題訓(xùn)練-《遼史》
- 高考語文復(fù)習(xí):文言文霍去病專練
- 農(nóng)業(yè)產(chǎn)業(yè)孵化項目合作協(xié)議書
- 業(yè)務(wù)流程外包服務(wù)協(xié)議內(nèi)容詳訂
- 數(shù)字媒體設(shè)計技能考核點
- 2023國家自然科學(xué)基金申請書
- 蜂膠表彰會中宏全國通用版模板課件
- 原始狩獵圖 (2)
- 《色彩構(gòu)成——色彩基礎(chǔ)知識》PPT課件
- 煤礦供電系統(tǒng)及供電安全講座方案課件
- 綠色建筑及材料分析及案列
- 鍍層的結(jié)合力
- 霍尼韋爾DDC編程軟件(CARE)簡介
- 實用中西醫(yī)結(jié)合診斷治療學(xué)
- 論《說文解字》中的水文化
- 德龍自卸車合格證掃描件(原圖)
評論
0/150
提交評論