第4章_關(guān)系規(guī)范化基礎(chǔ)_第1頁(yè)
第4章_關(guān)系規(guī)范化基礎(chǔ)_第2頁(yè)
第4章_關(guān)系規(guī)范化基礎(chǔ)_第3頁(yè)
第4章_關(guān)系規(guī)范化基礎(chǔ)_第4頁(yè)
第4章_關(guān)系規(guī)范化基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、返回返回1 第第4 4章章 關(guān)系規(guī)范化基礎(chǔ)關(guān)系規(guī)范化基礎(chǔ)返回返回2 S(學(xué)號(hào)學(xué)號(hào)S#,姓名姓名SN,所在系所在系SD,年齡年齡SA) C(課程號(hào)課程號(hào)C#,課程名課程名CN,先修課號(hào)先修課號(hào)PC#) SC(S#,C#,成績(jī)成績(jī)G) 檢索學(xué)生的所有情況檢索學(xué)生的所有情況 檢索年齡大于等檢索年齡大于等20歲的學(xué)生姓名歲的學(xué)生姓名 檢索先修課號(hào)為檢索先修課號(hào)為C2的課程號(hào)的課程號(hào) 檢索課程號(hào)檢索課程號(hào)C1的成績(jī)?yōu)榈某煽?jī)?yōu)锳的所有學(xué)生姓名的所有學(xué)生姓名 檢索檢索S1修讀的所有課程名及先修課號(hào)修讀的所有課程名及先修課號(hào)1. 檢索年齡為檢索年齡為23的學(xué)生所修課程名的學(xué)生所修課程名返回返回3提提 問(wèn)問(wèn)什么

2、是選擇、投影運(yùn)算?什么是選擇、投影運(yùn)算?什么是并、交、差運(yùn)算?什么是并、交、差運(yùn)算?連接運(yùn)算分幾種?連接運(yùn)算分幾種?等值連接與自然連接區(qū)別?等值連接與自然連接區(qū)別?返回返回4自然連接一定是等值連接,但等值連接自然連接一定是等值連接,但等值連接不一定是自然連接,因?yàn)樽匀贿B接要求不一定是自然連接,因?yàn)樽匀贿B接要求相等的分量必須是公共屬性,而等值連相等的分量必須是公共屬性,而等值連接要求相等的分量不一定是公共屬性接要求相等的分量不一定是公共屬性等值連接不把重復(fù)屬性去掉,而自然連等值連接不把重復(fù)屬性去掉,而自然連接要把重復(fù)屬性去掉接要把重復(fù)屬性去掉返回返回5目目 錄錄4.1 4.1 數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)4

3、.2 4.2 關(guān)系規(guī)范化關(guān)系規(guī)范化返回返回6 實(shí)體間的聯(lián)系有兩類(lèi)實(shí)體間的聯(lián)系有兩類(lèi)v 一類(lèi)是實(shí)體與實(shí)體之間的聯(lián)系v 另一類(lèi)是實(shí)體內(nèi)部各屬性間的聯(lián)系 定義屬性值間的相互關(guān)連,這就是數(shù)據(jù)依賴(lài),定義屬性值間的相互關(guān)連,這就是數(shù)據(jù)依賴(lài), 是語(yǔ)義的體現(xiàn)。是語(yǔ)義的體現(xiàn)。 數(shù)據(jù)依賴(lài)共有三種數(shù)據(jù)依賴(lài)共有三種v 函數(shù)依賴(lài)(Functional Dependency,簡(jiǎn)稱(chēng)FD)v 多值依賴(lài)(Multivalued Dependency,簡(jiǎn)稱(chēng)MVD)v 連接依賴(lài)(Join Dependency,簡(jiǎn)稱(chēng)JD) 4.1 函數(shù)依賴(lài)函數(shù)依賴(lài)返回返回7 1. 函數(shù)依賴(lài)的定義函數(shù)依賴(lài)的定義 函數(shù)依賴(lài):在關(guān)系函數(shù)依賴(lài):在關(guān)系R中,

4、中,X、 Y為為R的兩個(gè)屬性的兩個(gè)屬性或?qū)傩越M,如果對(duì)于或?qū)傩越M,如果對(duì)于R的所有關(guān)系的所有關(guān)系r都存在:都存在: 對(duì)對(duì)于于X的每一個(gè)具體值,的每一個(gè)具體值,Y都只有一個(gè)具體值與之都只有一個(gè)具體值與之對(duì)應(yīng)對(duì)應(yīng),則則稱(chēng)屬性稱(chēng)屬性Y函數(shù)依賴(lài)于屬性函數(shù)依賴(lài)于屬性X。記作。記作XY。 簡(jiǎn)單表述:如果知道簡(jiǎn)單表述:如果知道X的值的值,就可以獲得就可以獲得Y的值的值 R的一切關(guān)系都要滿(mǎn)足定義中的限定的一切關(guān)系都要滿(mǎn)足定義中的限定4.1.1 函數(shù)依賴(lài)函數(shù)依賴(lài)返回返回8學(xué)學(xué) 號(hào)號(hào)姓姓 名名專(zhuān)業(yè)名專(zhuān)業(yè)名性別性別出生時(shí)間出生時(shí)間總學(xué)分總學(xué)分001101王林王林計(jì)算機(jī)計(jì)算機(jī)男男1980-02-1050001102程

5、明程明計(jì)算機(jī)計(jì)算機(jī)男男1981-02-0150001103王燕王燕計(jì)算機(jī)計(jì)算機(jī)女女1979-10-0650001104韋嚴(yán)平韋嚴(yán)平計(jì)算機(jī)計(jì)算機(jī)男男1980-08-2650001106李方方李方方計(jì)算機(jī)計(jì)算機(jī)男男1980-11-2050例例4-1 學(xué)生情況表學(xué)生情況表學(xué)生情況(學(xué)號(hào)學(xué)生情況(學(xué)號(hào)#,姓名,性別,出生時(shí)間,總學(xué)分),姓名,性別,出生時(shí)間,總學(xué)分)學(xué)號(hào)學(xué)號(hào)姓名姓名學(xué)號(hào)學(xué)號(hào)專(zhuān)業(yè)名專(zhuān)業(yè)名學(xué)號(hào)學(xué)號(hào)性別性別學(xué)號(hào)學(xué)號(hào)總學(xué)分總學(xué)分返回返回92. 函數(shù)依賴(lài)與屬性間的聯(lián)系類(lèi)型的關(guān)系函數(shù)依賴(lài)與屬性間的聯(lián)系類(lèi)型的關(guān)系 關(guān)系模式中,如果屬性關(guān)系模式中,如果屬性X與與Y有有1:1聯(lián)系時(shí),則存在函聯(lián)系時(shí),則存

6、在函數(shù)依賴(lài)數(shù)依賴(lài)X Y。v 例如,當(dāng)學(xué)生沒(méi)有重名時(shí),SNO SN; 如果屬性如果屬性X與與Y有有m:1的聯(lián)系時(shí),則只存在函數(shù)依賴(lài)的聯(lián)系時(shí),則只存在函數(shù)依賴(lài)XY。v 例如,SNO與AGE,DEPT之間均為m:1聯(lián)系,所以有SNOAGE ,SNODEPT; 如果屬性如果屬性X與與Y有有m:n的聯(lián)系時(shí),則的聯(lián)系時(shí),則X與與Y之間不存在任之間不存在任何函數(shù)依賴(lài)關(guān)系。何函數(shù)依賴(lài)關(guān)系。4.1.1 函數(shù)依賴(lài)函數(shù)依賴(lài)返回返回101、非平凡函數(shù)依賴(lài)和平凡函數(shù)依賴(lài)、非平凡函數(shù)依賴(lài)和平凡函數(shù)依賴(lài) 設(shè)關(guān)系模式設(shè)關(guān)系模式R(U), X、 Y U:如果如果XY, 且且Y X(子集),(子集), 則稱(chēng)則稱(chēng)XY為為平凡的函數(shù)

7、依賴(lài)平凡的函數(shù)依賴(lài)。如果如果XY, 且且Y不是不是X的子集,的子集, 則稱(chēng)則稱(chēng)XY為為非平凡的函數(shù)依賴(lài)非平凡的函數(shù)依賴(lài)。例:在學(xué)生課程(例:在學(xué)生課程(學(xué)生號(hào)學(xué)生號(hào),課程號(hào)課程號(hào),成績(jī))關(guān),成績(jī))關(guān)系中,若存在函數(shù)依賴(lài)為:系中,若存在函數(shù)依賴(lài)為: (學(xué)生號(hào),課程號(hào))(學(xué)生號(hào),課程號(hào))成績(jī);(學(xué)生號(hào),課程號(hào))成績(jī);(學(xué)生號(hào),課程號(hào)) 課程號(hào);課程號(hào);4.1.2幾種特定的函數(shù)依賴(lài)幾種特定的函數(shù)依賴(lài)返回返回112、 完全函數(shù)依賴(lài)和部分函數(shù)依賴(lài)完全函數(shù)依賴(lài)和部分函數(shù)依賴(lài) 設(shè)關(guān)系模式設(shè)關(guān)系模式R(U), X, YU: 如果如果XYXY, 并且對(duì)于并且對(duì)于X X的任何一個(gè)真子集的任何一個(gè)真子集Z Z, Z

8、YZY都不成立,都不成立, 則則稱(chēng)稱(chēng)Y完全函數(shù)依賴(lài)于完全函數(shù)依賴(lài)于X。 若若XY, 但對(duì)于但對(duì)于X的某一個(gè)真子集的某一個(gè)真子集Z, 有有ZY成立,成立, 則則稱(chēng)稱(chēng)Y部分函數(shù)依賴(lài)于部分函數(shù)依賴(lài)于X。 例例: 在關(guān)系在關(guān)系SC(Sno, Cno, Grade)中,中,Sno, Cno是主碼是主碼由于:由于:Sno Grade不成立,不成立,Cno Grade也不成立也不成立因此:因此:Grade 完全函數(shù)依賴(lài)于完全函數(shù)依賴(lài)于(Sno, Cno) ;4.1.2幾種特定的函數(shù)依賴(lài)幾種特定的函數(shù)依賴(lài)返回返回123、傳遞函數(shù)依賴(lài)、傳遞函數(shù)依賴(lài)設(shè)關(guān)系模式設(shè)關(guān)系模式R(U), X U, Y U, Z U。 如

9、果如果XY, YZ成立,成立, 但但YX不成立,不成立, 且且Z-X、 Z-Y和和Y-X均不空,均不空, 則稱(chēng)則稱(chēng)XZ為傳遞函為傳遞函數(shù)依賴(lài)。數(shù)依賴(lài)。 例如:例如: 關(guān)系模式關(guān)系模式R=A, B, C, D, 其上的函數(shù)其上的函數(shù)依賴(lài)集依賴(lài)集F=AB, BC, AC, ABD, 則則AC為傳遞函數(shù)依賴(lài)。為傳遞函數(shù)依賴(lài)。 4.1.2幾種特定的函數(shù)依賴(lài)幾種特定的函數(shù)依賴(lài)返回返回13設(shè)設(shè)K為關(guān)系模式為關(guān)系模式R(U)中的屬性或?qū)傩约稀#┲械膶傩曰驅(qū)傩约?。若若KU,則,則K稱(chēng)為稱(chēng)為R的一個(gè)的一個(gè)候選碼候選碼(Candidate Key)。若關(guān)系模式若關(guān)系模式R有多個(gè)候選碼,則選定其中一個(gè)有多個(gè)候選

10、碼,則選定其中一個(gè)作作為主碼(為主碼(Primary Key)。關(guān)系模式關(guān)系模式R中屬性或?qū)傩越M中屬性或?qū)傩越MX并非并非R的碼,但的碼,但X是另一個(gè)關(guān)系模式的碼,則稱(chēng)是另一個(gè)關(guān)系模式的碼,則稱(chēng)X是是R的的外部碼外部碼(Foreign Key),也稱(chēng)為外碼。,也稱(chēng)為外碼。4.1.3 碼的函數(shù)依賴(lài)表示碼的函數(shù)依賴(lài)表示返回返回14提提 問(wèn)問(wèn)什么是函數(shù)依賴(lài)、非平凡函數(shù)依賴(lài)、完全函數(shù)依賴(lài)?什么是主屬性、非主屬性?返回返回15設(shè)有一描述學(xué)校的數(shù)據(jù)庫(kù):設(shè)有一描述學(xué)校的數(shù)據(jù)庫(kù):學(xué)生的學(xué)號(hào)(學(xué)生的學(xué)號(hào)(Sno)、所在系()、所在系(Sdept)、系主任姓)、系主任姓名(名(Mname)、課程名()、課程名(Cn

11、ame)、成績(jī)()、成績(jī)(Grade)學(xué)生信息表(學(xué)生信息表(Sno, Sdept, Mname, Cname, Grade )語(yǔ)義:一個(gè)系有若干學(xué)生,語(yǔ)義:一個(gè)系有若干學(xué)生, 一個(gè)學(xué)生只屬于一個(gè)系;一個(gè)學(xué)生只屬于一個(gè)系; 一個(gè)系只有一名主任;一個(gè)系只有一名主任; 一個(gè)學(xué)生可以選修多門(mén)課程,一個(gè)學(xué)生可以選修多門(mén)課程, 每門(mén)課程有若干學(xué)生選修;每門(mén)課程有若干學(xué)生選修; 每個(gè)學(xué)生所學(xué)的每門(mén)課每個(gè)學(xué)生所學(xué)的每門(mén)課程都有一個(gè)成績(jī)。程都有一個(gè)成績(jī)。4.2 關(guān)系規(guī)范化關(guān)系規(guī)范化返回返回16 關(guān)系模式學(xué)生信息表中存在的問(wèn)題關(guān)系模式學(xué)生信息表中存在的問(wèn)題數(shù)據(jù)冗余(太大浪費(fèi)大量的存儲(chǔ)空間)。數(shù)據(jù)冗余(太大浪費(fèi)大

12、量的存儲(chǔ)空間)。v 例:每一個(gè)系主任的姓名重復(fù)出現(xiàn)更新異常更新異常(數(shù)據(jù)冗余數(shù)據(jù)冗余 ,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大價(jià)大)v 例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組插入異常(該插的數(shù)據(jù)插不進(jìn)去)插入異常(該插的數(shù)據(jù)插不進(jìn)去) v 例,如果一個(gè)系剛成立,尚無(wú)學(xué)生,我們就無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。刪除異常(不該刪除的數(shù)據(jù)不得不刪)刪除異常(不該刪除的數(shù)據(jù)不得不刪)v 例,如果某個(gè)系的學(xué)生全部畢業(yè)了, 我們?cè)趧h除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。4.2 關(guān)系規(guī)范化關(guān)系規(guī)范化返回返回17“好好”的模式:不會(huì)發(fā)生插

13、入異常、刪除異常、的模式:不會(huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些數(shù)據(jù)依賴(lài)引起的原因:由存在于模式中的某些數(shù)據(jù)依賴(lài)引起的解決方法:通過(guò)解決方法:通過(guò)分解關(guān)系模式分解關(guān)系模式來(lái)消除其中不合來(lái)消除其中不合適的數(shù)據(jù)依賴(lài)。適的數(shù)據(jù)依賴(lài)。關(guān)系模式規(guī)范化的目的關(guān)系模式規(guī)范化的目的v解決問(wèn)題v基本思想是消除數(shù)據(jù)依賴(lài)中的不合適部分,使各關(guān)系模式達(dá)到某種程度的分離,使一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或?qū)嶓w間的一種聯(lián)系。4.2 關(guān)系規(guī)范化關(guān)系規(guī)范化返回返回18所謂關(guān)系模式的分解,就是對(duì)原有關(guān)系在不同所謂關(guān)系模式的分解,就是對(duì)原有關(guān)系在不同的屬

14、性上進(jìn)行的屬性上進(jìn)行投影投影,從而將原有關(guān)系分解為兩,從而將原有關(guān)系分解為兩個(gè)或兩個(gè)以上的含有較少屬性的多個(gè)關(guān)系個(gè)或兩個(gè)以上的含有較少屬性的多個(gè)關(guān)系關(guān)系模式經(jīng)分解后,應(yīng)與原來(lái)的關(guān)系模式等價(jià),關(guān)系模式經(jīng)分解后,應(yīng)與原來(lái)的關(guān)系模式等價(jià),即兩者對(duì)數(shù)據(jù)的使用者來(lái)說(shuō)應(yīng)該是等價(jià)的。即即兩者對(duì)數(shù)據(jù)的使用者來(lái)說(shuō)應(yīng)該是等價(jià)的。即對(duì)分解前后的關(guān)系作相同內(nèi)容的查詢(xún),應(yīng)產(chǎn)生對(duì)分解前后的關(guān)系作相同內(nèi)容的查詢(xún),應(yīng)產(chǎn)生相同的結(jié)果,這是對(duì)模式分解的基本要求。相同的結(jié)果,這是對(duì)模式分解的基本要求。關(guān)系模式分解關(guān)系模式分解返回返回19關(guān)系模式分解的標(biāo)準(zhǔn)關(guān)系模式分解的標(biāo)準(zhǔn)三種模式分解的等價(jià)定義 分解具有無(wú)損連接性 分解要保持函數(shù)依

15、賴(lài) 分解既要保持函數(shù)依賴(lài),又要具有無(wú)損連接性返回返回20 關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿(mǎn)足一定的規(guī)范化要求,對(duì)于關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿(mǎn)足一定的規(guī)范化要求,對(duì)于不同的規(guī)范化程度可用范式來(lái)衡量。不同的規(guī)范化程度可用范式來(lái)衡量。 范式(范式(Normal Form)是符合某一種級(jí)別的關(guān)系模式的是符合某一種級(jí)別的關(guān)系模式的集合集合 第一范式第一范式(1NF)(1NF) 第二范式第二范式(2NF)(2NF) 第三范式第三范式(3NF)(3NF) BC BC范式范式(BCNF)(BCNF) 第四范式第四范式(4NF)(4NF) 第五范式第五范式(5NF)(5NF)4.2 關(guān)系規(guī)范化關(guān)系規(guī)范化返回返回21各種范

16、式之間存在聯(lián)系:各種范式之間存在聯(lián)系:1NF2NF3NFBCNF 4NF5NF通常把某一關(guān)系模式通常把某一關(guān)系模式R為第為第n范式簡(jiǎn)記為范式簡(jiǎn)記為RnNF。在這些范式中,最重要的是在這些范式中,最重要的是3NF和和BCNF,它,它們是進(jìn)行規(guī)范化的主要目標(biāo)們是進(jìn)行規(guī)范化的主要目標(biāo)一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這個(gè)過(guò)程稱(chēng)為規(guī)范化。這個(gè)過(guò)程稱(chēng)為規(guī)范化。通常實(shí)際情況下,規(guī)范化到通常實(shí)際情況下,規(guī)范化到3NF就可以了。就可以了。返回返回221、第一范式(、第一范式(1NF

17、) 定義:設(shè)定義:設(shè)R是一個(gè)關(guān)系模式。是一個(gè)關(guān)系模式。 如果如果R的每個(gè)屬的每個(gè)屬性的值域都是不可分的簡(jiǎn)單數(shù)據(jù)項(xiàng)(即是原子)性的值域都是不可分的簡(jiǎn)單數(shù)據(jù)項(xiàng)(即是原子)的集合,的集合, 則稱(chēng)這個(gè)關(guān)系模式屬于第一范式則稱(chēng)這個(gè)關(guān)系模式屬于第一范式, 簡(jiǎn)簡(jiǎn)記作記作R1NF。 1NF是規(guī)范化最低的范式,它要求無(wú)重復(fù)記錄;是規(guī)范化最低的范式,它要求無(wú)重復(fù)記錄;字段不可分解。字段不可分解。在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中, 關(guān)系至少應(yīng)該關(guān)系至少應(yīng)該是第一范式。是第一范式。 不滿(mǎn)足第一范式的數(shù)據(jù)庫(kù)模式不不滿(mǎn)足第一范式的數(shù)據(jù)庫(kù)模式不能稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)。能稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)。 第一范式不能排除數(shù)據(jù)

18、冗余和異常情況的發(fā)生。第一范式不能排除數(shù)據(jù)冗余和異常情況的發(fā)生。4.2.2 常用的三種范式常用的三種范式返回返回23例如:下表描述的是職工情況。例如:下表描述的是職工情況。 職工情況表職工情況表 職工號(hào)職工號(hào)姓名姓名工資工資基本工資基本工資 職務(wù)工資職務(wù)工資 工齡工資工齡工資20017李嵐李嵐8903003020013王曉江王曉江90030040職工號(hào)職工號(hào)姓名姓名基本工資基本工資 職務(wù)工資職務(wù)工資 工齡工資工齡工資20017李嵐李嵐8903003020013王曉江王曉江90030040第一范式(第一范式(1NF) 返回返回24第一范式(第一范式(1NF) 例如:學(xué)生選課情況表如下表所示:例如

19、:學(xué)生選課情況表如下表所示: 學(xué)生選課表學(xué)生選課表 姓名姓名課程課程學(xué)期學(xué)期張三張三高數(shù)高數(shù) 普物普物 英語(yǔ)英語(yǔ)1王五王五離散數(shù)學(xué)離散數(shù)學(xué) 程序程序設(shè)計(jì)設(shè)計(jì)2姓名姓名課程課程學(xué)期學(xué)期張三張三高數(shù)高數(shù) 1王五王五離散數(shù)學(xué)離散數(shù)學(xué) 2張三張三普物普物 1張三張三英語(yǔ)英語(yǔ)1王五王五程序設(shè)計(jì)程序設(shè)計(jì)2返回返回25如果關(guān)系模式如果關(guān)系模式R是第一范式,且每個(gè)非主屬性都是第一范式,且每個(gè)非主屬性都完全依賴(lài)于碼完全依賴(lài)于碼 ,則稱(chēng),則稱(chēng)R為滿(mǎn)足第二范式的模式,為滿(mǎn)足第二范式的模式,記為:記為:R2NF模式。模式。v包含在任何候選關(guān)鍵字中的各個(gè)屬性稱(chēng)為主屬性包含在任何候選關(guān)鍵字中的各個(gè)屬性稱(chēng)為主屬性v不包含在

20、任何候選碼中的屬性稱(chēng)為非主屬性不包含在任何候選碼中的屬性稱(chēng)為非主屬性R(學(xué)號(hào)(學(xué)號(hào)#,姓名,出生日期,成績(jī))存在下列,姓名,出生日期,成績(jī))存在下列函數(shù)依賴(lài)關(guān)系:函數(shù)依賴(lài)關(guān)系:v學(xué)號(hào)學(xué)號(hào)姓名姓名 學(xué)號(hào)學(xué)號(hào)性別性別 學(xué)號(hào)學(xué)號(hào)出生日期出生日期 學(xué)號(hào)學(xué)號(hào)成績(jī)成績(jī)v每個(gè)非主屬性都完全依賴(lài)于碼每個(gè)非主屬性都完全依賴(lài)于碼 ,所以該關(guān)系,所以該關(guān)系R2NF第二范式(第二范式(2NF) 返回返回26 主關(guān)鍵字是屬性的組合,這樣的關(guān)系模式可能主關(guān)鍵字是屬性的組合,這樣的關(guān)系模式可能不是第二范式。不是第二范式。關(guān)系關(guān)系S(學(xué)號(hào)學(xué)號(hào),姓名,性別,姓名,性別,課程課程,學(xué)分),存,學(xué)分),存在下列函數(shù)依賴(lài)關(guān)系:在下列

21、函數(shù)依賴(lài)關(guān)系:v學(xué)號(hào)姓名,學(xué)號(hào)性別 ,學(xué)號(hào)課程, (課程、學(xué)號(hào))學(xué)分v非主屬性部分依賴(lài)于碼 ,故關(guān)系S不屬于2NF。對(duì)上述關(guān)系模式進(jìn)行分解,分解為兩個(gè)關(guān)系:vS1(學(xué)號(hào),姓名,性別);S2(學(xué)號(hào),課程,學(xué)分) S12NF;S22NF第二范式(第二范式(2NF) 返回返回27(1)如果R不滿(mǎn)足1NF條件,先對(duì)其分解,使其滿(mǎn)足1NF。(2)R符合1NF條件但不符合2NF條件時(shí),分解R使其滿(mǎn)足2NF。(3)R符合2NF條件但不符合3NF條件時(shí),分解R使其滿(mǎn)足3NF。關(guān)系的分解關(guān)系的分解返回返回28關(guān)系職工信息關(guān)系職工信息P(職工號(hào)職工號(hào),姓名,職稱(chēng),姓名,職稱(chēng),項(xiàng)目項(xiàng)目號(hào)號(hào),項(xiàng)目名稱(chēng),項(xiàng)目排名),項(xiàng)

22、目名稱(chēng),項(xiàng)目排名)v主碼為(職工號(hào),項(xiàng)目號(hào)),存在函數(shù)依賴(lài)如下:v(職工號(hào),項(xiàng)目號(hào)) 項(xiàng)目名稱(chēng);職工號(hào)姓名;(職工號(hào),項(xiàng)目號(hào)) 項(xiàng)目排名;職工號(hào)職稱(chēng);項(xiàng)目號(hào)項(xiàng)目名稱(chēng)。v由于非主屬性部分依賴(lài)于碼 ,故關(guān)系P不屬于2NF。對(duì)上述關(guān)系模式進(jìn)行分解,分解為三個(gè)關(guān)系:v職工信息表(職工號(hào),姓名,職稱(chēng))項(xiàng)目排名表(職工號(hào),項(xiàng)目號(hào),項(xiàng)目排名)項(xiàng)目表(項(xiàng)目號(hào),項(xiàng)目名稱(chēng))第二范式(第二范式(2NF) 返回返回29如果關(guān)系模式如果關(guān)系模式R是第二范式,且沒(méi)有一個(gè)非主是第二范式,且沒(méi)有一個(gè)非主屬性是傳遞函數(shù)依賴(lài)于碼屬性是傳遞函數(shù)依賴(lài)于碼 ,則稱(chēng),則稱(chēng)R為滿(mǎn)足第三為滿(mǎn)足第三范式的模式,記為:范式的模式,記為:R3NF

23、模式。模式。關(guān)系關(guān)系ST(學(xué)號(hào)學(xué)號(hào),樓號(hào),收費(fèi));其中包含的函,樓號(hào),收費(fèi));其中包含的函數(shù)依賴(lài)關(guān)系有:數(shù)依賴(lài)關(guān)系有:學(xué)號(hào)學(xué)號(hào)樓號(hào)樓號(hào) 樓號(hào)樓號(hào)收費(fèi)收費(fèi) 則:學(xué)號(hào)則:學(xué)號(hào)收費(fèi)收費(fèi)對(duì)上述關(guān)系模式進(jìn)行分解,分解為兩個(gè)關(guān)系:對(duì)上述關(guān)系模式進(jìn)行分解,分解為兩個(gè)關(guān)系:st1(學(xué)號(hào),樓號(hào));(學(xué)號(hào),樓號(hào)); st2(樓號(hào),收費(fèi))(樓號(hào),收費(fèi))第三范式(第三范式(3NF) 返回返回30推論推論1: 如果關(guān)系模式如果關(guān)系模式R1NF,且它的每一個(gè)且它的每一個(gè)非主屬性既不部分依賴(lài)、非主屬性既不部分依賴(lài)、 也不傳遞依賴(lài)于碼也不傳遞依賴(lài)于碼 ,則則R3NF。 推論推論2: 不存在非主屬性的關(guān)系模式一定為不存在非主屬

24、性的關(guān)系模式一定為3NF。 第三范式(第三范式(3NF) 返回返回31 關(guān)系模式關(guān)系模式R1NF,對(duì)任何非平凡的函數(shù)依賴(lài),對(duì)任何非平凡的函數(shù)依賴(lài)XY,X均包含碼,則均包含碼,則RBCNF。BCNF是從是從1NF直接定義而成的,可以證明,直接定義而成的,可以證明,如果如果RBCNF,則,則R3NF。BCNF的關(guān)系模式都具有如下的關(guān)系模式都具有如下3個(gè)性質(zhì)。個(gè)性質(zhì)。(1)所有非主屬性都完全函數(shù)依賴(lài)于每個(gè)候選碼。所有非主屬性都完全函數(shù)依賴(lài)于每個(gè)候選碼。(2)所有主屬性都完全函數(shù)依賴(lài)于每個(gè)不包含它的所有主屬性都完全函數(shù)依賴(lài)于每個(gè)不包含它的候選碼。候選碼。(3)沒(méi)有任何屬性完全函數(shù)依賴(lài)于非碼的任何一組沒(méi)有任何屬性完全函數(shù)依賴(lài)于非碼的任何一組屬性。屬性。BC范式(范式(BCNF)返回返回32 如果關(guān)系模式如果關(guān)系模式RBCNF,由定義可知,由定義可知,R中不存在任中不存在任何屬性傳遞函數(shù)依賴(lài)于或部分依賴(lài)于任何候選碼,所何屬性傳遞函數(shù)依賴(lài)于或部分依賴(lài)于任何候選碼,所以必定有以必定有R3NF。但是,如果。但是,如果R3NF,R未必屬于未必屬于BCNF。 3NF和和BCNF是以函數(shù)依賴(lài)為基礎(chǔ)的關(guān)系模式規(guī)范化程是以函數(shù)依賴(lài)為基礎(chǔ)的關(guān)系

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論