版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System數(shù)據(jù)庫(kù)系統(tǒng)原理數(shù)據(jù)庫(kù)系統(tǒng)原理第六講第六講 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System第第6 6講講 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論1. 問(wèn)題問(wèn)題的提出的提出2. 規(guī)范化規(guī)范化3. 數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)的公理系統(tǒng)的公理系統(tǒng)4. 模式的分解模式的分解學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System1. 問(wèn)題問(wèn)題的提出的提出 針對(duì)針對(duì)具體問(wèn)題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式
2、具體問(wèn)題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式 1 1)應(yīng)該應(yīng)該構(gòu)造幾個(gè)關(guān)系模式;構(gòu)造幾個(gè)關(guān)系模式; 2 2)每每一個(gè)關(guān)系應(yīng)該由哪一些屬性組成。一個(gè)關(guān)系應(yīng)該由哪一些屬性組成。思考:教務(wù)管理數(shù)據(jù)庫(kù)的模式?思考:教務(wù)管理數(shù)據(jù)庫(kù)的模式? 關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)問(wèn)題關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)問(wèn)題 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System概念回顧概念回顧v 關(guān)系關(guān)系v 關(guān)系關(guān)系模式模式v 關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)v 關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)的模式的模式學(xué)以致用學(xué)以致用 用以促學(xué)用以
3、促學(xué)An Introduction to Database System概念回顧概念回顧關(guān)系模式的形式化定義關(guān)系模式由五部分組成,即它是一個(gè)五元組:關(guān)系模式由五部分組成,即它是一個(gè)五元組: R(U, D, DOM, F)R: 關(guān)系名(關(guān)系名(符號(hào)化的元組語(yǔ)義)U: 組成該關(guān)系的屬性名集合組成該關(guān)系的屬性名集合D: 屬性組屬性組U中屬性所來(lái)自的域中屬性所來(lái)自的域DOM: 屬性向域的映象集合屬性向域的映象集合F: 屬性間數(shù)據(jù)的依賴(lài)關(guān)系集合屬性間數(shù)據(jù)的依賴(lài)關(guān)系集合學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System關(guān)系關(guān)系模式的簡(jiǎn)化表示模式的簡(jiǎn)化表示
4、v關(guān)系模式關(guān)系模式R(U, D, DOM, F)簡(jiǎn)化為一個(gè)三元組:)簡(jiǎn)化為一個(gè)三元組: R(U, F) 當(dāng)且僅當(dāng)當(dāng)且僅當(dāng)U上的一個(gè)關(guān)系上的一個(gè)關(guān)系r滿(mǎn)足滿(mǎn)足F時(shí),時(shí),r稱(chēng)為關(guān)系模式稱(chēng)為關(guān)系模式 R(U, F)的一個(gè)關(guān)系)的一個(gè)關(guān)系學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System問(wèn)題的問(wèn)題的提出提出數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)1) 完整性約束的表現(xiàn)形式完整性約束的表現(xiàn)形式 限定屬性取值范圍:例如學(xué)生成績(jī)必須在限定屬性取值范圍:例如學(xué)生成績(jī)必須在0-100之間之間 定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),這就定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的
5、相等與否),這就是數(shù)據(jù)依賴(lài),它是數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)鍵是數(shù)據(jù)依賴(lài),它是數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)鍵學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2)數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài) 一個(gè)關(guān)系內(nèi)部屬性與屬性之間的約束關(guān)系一個(gè)關(guān)系內(nèi)部屬性與屬性之間的約束關(guān)系 現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象 數(shù)據(jù)內(nèi)在的性質(zhì)數(shù)據(jù)內(nèi)在的性質(zhì) 語(yǔ)義的體現(xiàn)語(yǔ)義的體現(xiàn)3)數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)的類(lèi)型的類(lèi)型函數(shù)依賴(lài)(函數(shù)依賴(lài)(Functional Dependency,簡(jiǎn)記為,簡(jiǎn)記為FD)多值依賴(lài)(多值依賴(lài)(Multivalued Dependency,簡(jiǎn)記為,簡(jiǎn)記為MVD)問(wèn)
6、題的問(wèn)題的提出提出數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響對(duì)關(guān)系模式的影響【例】【例】 建立一個(gè)描述學(xué)校教務(wù)的數(shù)據(jù)庫(kù):建立一個(gè)描述學(xué)校教務(wù)的數(shù)據(jù)庫(kù): 學(xué)生的學(xué)號(hào)(學(xué)生的學(xué)號(hào)(Sno)、所在系()、所在系(Sdept) 系主任姓名(系主任姓名(Mname)、)、課程課程號(hào)號(hào)(Cno)、成績(jī)(、成績(jī)(Grade) 單一的關(guān)系模式單一的關(guān)系模式 : Student U Sno, Sdept, Mname, Cno, Grade 數(shù)據(jù)之間的關(guān)系有數(shù)據(jù)之間的關(guān)系有: 1) 一個(gè)系有若干個(gè)學(xué)生,一
7、個(gè)學(xué)生只屬于一個(gè)系;一個(gè)系有若干個(gè)學(xué)生,一個(gè)學(xué)生只屬于一個(gè)系; 2) 一個(gè)系只有一名系主任;一個(gè)系只有一名系主任; 3) 一個(gè)學(xué)生可以選修多門(mén)課程;一個(gè)學(xué)生可以選修多門(mén)課程; 4) 每個(gè)學(xué)生選修的每門(mén)課程有一個(gè)成績(jī)。每個(gè)學(xué)生選修的每門(mén)課程有一個(gè)成績(jī)。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響對(duì)關(guān)系模式的影響屬性組屬性組U上的一組函數(shù)依賴(lài)上的一組函數(shù)依賴(lài)F: F Sno Sdept, Sdept Mname, (Sno, Cno) Grade 單一的關(guān)系模式單一的關(guān)系模式 : Student SnoCno
8、SdeptMnameGrade學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響對(duì)關(guān)系模式的影響關(guān)系模式關(guān)系模式StudentStudent中存在的中存在的問(wèn)題問(wèn)題:1. 1. 數(shù)據(jù)冗余太大:數(shù)據(jù)冗余太大:如系主任的姓名,這將浪費(fèi)大量的存儲(chǔ)空間。2. 2. 更新異常(更新異常(Update AnomaliesUpdate Anomalies):):由于冗余,更新數(shù)據(jù)庫(kù)時(shí)系統(tǒng)要付出很大的代價(jià)來(lái)維護(hù)數(shù)據(jù)庫(kù)的完整性,否則面臨數(shù)據(jù)的不一致性,比如換了系主任3. 3. 插入異常(插入異常(Insertion Anomal
9、iesInsertion Anomalies):):如某個(gè)系剛成立沒(méi)有學(xué)生,則系主任的信息無(wú)法存入到數(shù)據(jù)庫(kù)。4. 4. 刪除異常(刪除異常(Deletion AnomaliesDeletion Anomalies):):如學(xué)生畢業(yè)了,要?jiǎng)h除學(xué)生的信息,則系主任的信息業(yè)被刪除了。SnoSdeptMnameCnoGrade20100001sseChen02159520100002sseChen02158920100003sseChen02157520100004sseChen021580:學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System數(shù)據(jù)依賴(lài)
10、數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響對(duì)關(guān)系模式的影響結(jié)論:結(jié)論:nStudent關(guān)系模式不是一個(gè)好的模式。關(guān)系模式不是一個(gè)好的模式。n“好好”的模式:的模式:不會(huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少不會(huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少 原因:原因:由存在于模式中的某些數(shù)據(jù)依賴(lài)引起的由存在于模式中的某些數(shù)據(jù)依賴(lài)引起的 解決方法:解決方法:通過(guò)關(guān)系模式通過(guò)關(guān)系模式的規(guī)范化的規(guī)范化來(lái)來(lái)消除其中不合適的數(shù)據(jù)依賴(lài)消除其中不合適的數(shù)據(jù)依賴(lài)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System第第6 6講講 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論1.
11、 問(wèn)題問(wèn)題的提出的提出2. 規(guī)范化規(guī)范化3. 數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)的公理系統(tǒng)的公理系統(tǒng)4. 模式的分解模式的分解學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.2.規(guī)范化規(guī)范化 2.1 函數(shù)依賴(lài)函數(shù)依賴(lài) 2.2 碼碼 2.3 范式范式 2.4 2NF 2.5 3NF 2.6 BCNF 2.7 多值依賴(lài)多值依賴(lài) 2.8 4NF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database Systemn 函數(shù)依賴(lài)是指一個(gè)關(guān)系表中屬性(列)之間的聯(lián)系。n 函數(shù)依賴(lài)關(guān)注一個(gè)屬性或?qū)傩约c另外一個(gè)屬性或?qū)傩约g的依賴(lài),亦
12、即兩個(gè)屬性或?qū)傩约g的約束。n 函數(shù)依賴(lài)是關(guān)系中屬性之間在語(yǔ)義上的關(guān)聯(lián)特性。n 數(shù)據(jù)庫(kù)設(shè)計(jì)者根據(jù)對(duì)關(guān)系R中的屬性的語(yǔ)義理解確定函數(shù)依賴(lài),確定約束R的所有元組r的函數(shù)依賴(lài)集,并獲知屬性間的語(yǔ)義關(guān)聯(lián)。符號(hào)說(shuō)明:符號(hào)說(shuō)明: R表示一個(gè)關(guān)系的模式;表示一個(gè)關(guān)系的模式; UA1,A2,An 是是R的所有屬性的集合;的所有屬性的集合; F 是是 R中函數(shù)依賴(lài)的集合;中函數(shù)依賴(lài)的集合; r 是是 R所取的值;所取的值; t X 表示元組表示元組t在屬性在屬性 X 上的取值。例如上的取值。例如 t Dname = HuangKai2.1 函數(shù)函數(shù)依賴(lài)依賴(lài)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introdu
13、ction to Database System函數(shù)依賴(lài)定義函數(shù)依賴(lài)定義n 設(shè)有一個(gè)關(guān)系模式設(shè)有一個(gè)關(guān)系模式R(U),X,YR(U),X,Y為其屬性為其屬性 U U 的子集,即的子集,即X X U,Y U,Y U, U, 設(shè)設(shè)t,st,s是關(guān)系是關(guān)系R R中的任意兩個(gè)元組,如果中的任意兩個(gè)元組,如果 tX = sX, tX = sX,則則tY=sY,tY=sY,那么稱(chēng)那么稱(chēng)Y Y函數(shù)依賴(lài)于函數(shù)依賴(lài)于 X X ,或,或 X X 函數(shù)決定函數(shù)決定 Y, Y,也可稱(chēng)也可稱(chēng) F F:X XYY在關(guān)系在關(guān)系模式模式R( U )R( U )上成立。上成立。函數(shù)依賴(lài)圖函數(shù)依賴(lài)圖u左部稱(chēng)為決定因子左部稱(chēng)為決定
14、因子u右部稱(chēng)為依賴(lài)因子。右部稱(chēng)為依賴(lài)因子。XYY函數(shù)依賴(lài)于函數(shù)依賴(lài)于X函數(shù)依賴(lài)圖函數(shù)依賴(lài)圖2.1 函數(shù)函數(shù)依賴(lài)依賴(lài)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System說(shuō)說(shuō) 明明 1. 所有關(guān)系實(shí)例均要滿(mǎn)足所有關(guān)系實(shí)例均要滿(mǎn)足2. 語(yǔ)義范疇的概念語(yǔ)義范疇的概念3. 數(shù)據(jù)庫(kù)設(shè)計(jì)者可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定數(shù)據(jù)庫(kù)設(shè)計(jì)者可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定 例如:例如:規(guī)定不允許同名人出現(xiàn),因而使得 “姓名姓名” “年齡年齡”函數(shù)依賴(lài)成立。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System在關(guān)系模式在關(guān)系模式
15、R( U )中,對(duì)于中,對(duì)于 U 的子集的子集 X 和和 Y: 如果Y X, XY顯然成立,此時(shí)稱(chēng)XY是平凡的函數(shù)依賴(lài)是平凡的函數(shù)依賴(lài) 若XY,但Y X, 則稱(chēng)XY是非平凡的函數(shù)依賴(lài)非平凡的函數(shù)依賴(lài)?yán)涸陉P(guān)系例:在關(guān)系SC(Sno, Cno, Grade)中,中, 非平凡函數(shù)依賴(lài):非平凡函數(shù)依賴(lài): (Sno, Cno) Grade 平凡函數(shù)依賴(lài):平凡函數(shù)依賴(lài): (Sno, Cno) Sno (Sno, Cno) Cno 平凡的平凡的函數(shù)依賴(lài)必然成立,它不反映任何語(yǔ)義,若不特別聲明,函數(shù)依賴(lài)必然成立,它不反映任何語(yǔ)義,若不特別聲明,總是總是討論非平凡的函數(shù)依賴(lài)。討論非平凡的函數(shù)依賴(lài)。2.1 函數(shù)
16、函數(shù)依賴(lài)依賴(lài)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System 若若XY,則則 X 稱(chēng)為稱(chēng)為這個(gè)函數(shù)依賴(lài)的決定屬性組,也這個(gè)函數(shù)依賴(lài)的決定屬性組,也稱(chēng)為決定因素(稱(chēng)為決定因素(Determinant)。)。 若若XY,YX,則記作,則記作XY。 若若Y不函數(shù)依賴(lài)于不函數(shù)依賴(lài)于X,則記作,則記作XY。2.1 函數(shù)函數(shù)依賴(lài)依賴(lài)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.1 函數(shù)依賴(lài)函數(shù)依賴(lài)完全函數(shù)依賴(lài)完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)與部分函數(shù)依賴(lài)SnoCnoSdeptMnameGrade學(xué)以
17、致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.1 函數(shù)依賴(lài)函數(shù)依賴(lài)傳遞函數(shù)依賴(lài)傳遞函數(shù)依賴(lài)定義:定義: 在R ( U ) 中,如果XY,(Y X) ,YX YZ,則 稱(chēng)Z對(duì)X傳遞函數(shù)依賴(lài)。 記為:X Z 注注: : 如果YX, 即XY,則Z直接依賴(lài)于X。 【例】【例】 在關(guān)系Std (Sno, Sdept, Mname) 中,有: (學(xué)號(hào),院系,系主任)(學(xué)號(hào),院系,系主任) Sno Sdept,Sdept Mname Mname傳遞函數(shù)依賴(lài)于Sno傳遞傳遞學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Datab
18、ase System2.2 碼碼定義(用函數(shù)依賴(lài)定義碼)定義(用函數(shù)依賴(lài)定義碼): 設(shè)K為R 中的屬性或?qū)傩越M合。若K U,則K稱(chēng)為R的侯選碼侯選碼(Candidate Key)。 若候選碼多于一個(gè),則選定其中的一個(gè)做為主碼主碼(Primary Key)F學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database Systemv 主屬性與非主屬性主屬性與非主屬性 包含在任何一個(gè)候選碼中的屬性包含在任何一個(gè)候選碼中的屬性 ,稱(chēng)為主屬性(,稱(chēng)為主屬性(Prime attribute) 不包含在任何候選碼中的屬性稱(chēng)為非主屬性(不包含在任何候選碼中的屬性稱(chēng)為非主屬性(No
19、nprime attribute)或非碼屬性()或非碼屬性(Non-key attribute) v 全碼全碼 整個(gè)屬性組是碼,稱(chēng)為全碼(整個(gè)屬性組是碼,稱(chēng)為全碼(All-key) 2.2 碼碼學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.2 碼碼【例】關(guān)系模式【例】關(guān)系模式S(Sno, Sdept, Sage),單個(gè)屬性,單個(gè)屬性Sno是碼,是碼, SC(Sno,Cno,Grade)中,()中,(Sno,Cno)是碼)是碼【例】【例】 關(guān)系模式關(guān)系模式R(P,W,A) P:演奏者:演奏者 W:作品:作品 A:聽(tīng)眾:聽(tīng)眾 一個(gè)演奏者可
20、以演奏多個(gè)作品一個(gè)演奏者可以演奏多個(gè)作品 某一作品可被多個(gè)演奏者演奏某一作品可被多個(gè)演奏者演奏 聽(tīng)眾可以欣賞不同演奏者的不同作品聽(tīng)眾可以欣賞不同演奏者的不同作品 碼為碼為(P,W,A),即,即All-Key 學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.3 2.3 范范 式式v 范式是符合某一種級(jí)別的關(guān)系模式的集合范式是符合某一種級(jí)別的關(guān)系模式的集合v 關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿(mǎn)足一定的要求。滿(mǎn)足不同程度要求的為不關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿(mǎn)足一定的要求。滿(mǎn)足不同程度要求的為不同范式同范式v 范式的種類(lèi):范式的種類(lèi):第一范式第一范式(1NF
21、)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.3 2.3 范范 式式v各種范式之間存在聯(lián)系:各種范式之間存在聯(lián)系:v某一關(guān)系模式某一關(guān)系模式R為第為第n范式,可簡(jiǎn)記為范式,可簡(jiǎn)記為RnNF。v 一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過(guò)程就叫個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過(guò)程就叫規(guī)范化規(guī)范化 。NF5NF4
22、BCNFNF3NF2NF1學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database Systemv 1NF 的定義的定義如果一個(gè)關(guān)系模式如果一個(gè)關(guān)系模式 R 的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則 R1NFn 第一范式是對(duì)關(guān)系模式的最起碼的要求,第一范式是對(duì)關(guān)系模式的最起碼的要求,不滿(mǎn)足第一范式的數(shù)據(jù)庫(kù)模式不滿(mǎn)足第一范式的數(shù)據(jù)庫(kù)模式不能稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)不能稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)學(xué)號(hào)姓名選修課程數(shù)學(xué)英語(yǔ)語(yǔ)文2014001張三908589學(xué)號(hào)姓名數(shù)學(xué)英語(yǔ)語(yǔ)文2014001張三908589n 但是滿(mǎn)足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式
23、。但是滿(mǎn)足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。1范式非1范式2.3 2.3 范范 式式 1NF1NF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database Systemn 碼函數(shù)確定非主屬性碼函數(shù)確定非主屬性院長(zhǎng)院長(zhǎng)學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)學(xué)院名學(xué)院名n 傳遞函數(shù)依賴(lài)傳遞函數(shù)依賴(lài) U 學(xué)號(hào),課程號(hào)學(xué)號(hào),課程號(hào),學(xué)院名,院長(zhǎng),成績(jī),學(xué)院名,院長(zhǎng),成績(jī) 學(xué)院名學(xué)院名學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)院長(zhǎng)院長(zhǎng)學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)n 部分函數(shù)依賴(lài)部分函數(shù)依賴(lài)學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)成績(jī)成績(jī)學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)學(xué)院名學(xué)院名學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)院長(zhǎng)院長(zhǎng)2.4 2 2NFNF學(xué)以致用學(xué)
24、以致用 用以促學(xué)用以促學(xué)An Introduction to Database System課程號(hào)課程號(hào)成績(jī)成績(jī)學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)成績(jī)成績(jī)完全函數(shù)依賴(lài):完全函數(shù)依賴(lài):部 分 函 數(shù) 依部 分 函 數(shù) 依賴(lài):賴(lài):解決方法:解決方法: 學(xué)生學(xué)生 關(guān)系分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴(lài)關(guān)系分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴(lài) SCSC(學(xué)號(hào),課程號(hào)學(xué)號(hào),課程號(hào), 成績(jī))成績(jī)) S S(學(xué)號(hào)學(xué)號(hào),學(xué)院名,院長(zhǎng)),學(xué)院名,院長(zhǎng))學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)學(xué)號(hào)學(xué)號(hào)2.4 2NF2NF“學(xué)生學(xué)生” 關(guān)系模式關(guān)系模式 學(xué)學(xué) 生生 (學(xué)號(hào),課程號(hào)學(xué)號(hào),課程號(hào),學(xué)院名,院長(zhǎng),
25、成績(jī)),學(xué)院名,院長(zhǎng),成績(jī))學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.4 2NF2NFv2NF的定義的定義 若R1NF,且每一個(gè)非主屬性完全函數(shù)依賴(lài)非主屬性完全函數(shù)依賴(lài)于碼,則R2NF。例例:Student (Sno, Sdept, Mname, Cno, Grade) 1NF Student(Sno, Sdept, Mname, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF S(Sno, Sdept, Mname) 2NF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to D
26、atabase System2.4 2 2NFNFv 2NF的定義的定義 若R1NF,且每一個(gè)非主屬性完全函數(shù)依賴(lài)非主屬性完全函數(shù)依賴(lài)于碼,則R2NF。v 采用投影分解法將采用投影分解法將一個(gè)一個(gè)1NF1NF的關(guān)系分解的關(guān)系分解為多個(gè)為多個(gè)2NF2NF的關(guān)系,的關(guān)系,可以在一定程度上可以在一定程度上減輕原減輕原1NF1NF關(guān)系中存關(guān)系中存在的異常、冗余度在的異常、冗余度大和修改復(fù)雜等問(wèn)大和修改復(fù)雜等問(wèn)題。題。學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)成績(jī)成績(jī)201400010215sseChen95201400020215sseChen89201400030215sseChen752014000
27、40215sseChen80:學(xué)號(hào)學(xué)號(hào)課程號(hào)課程號(hào)成績(jī)成績(jī)20140001021595201400020215892014000302157520140004021580:學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)20140001sseChen20140002sseChen20140003sseChen20140004sseChen:1NF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.5 2.5 3 3NFNF【例例】2NF關(guān)系模式關(guān)系模式 S (學(xué)號(hào)學(xué)號(hào), 學(xué)院名學(xué)院名, 院長(zhǎng)院長(zhǎng)) 中中 傳遞函數(shù)依賴(lài):傳遞函數(shù)依賴(lài): 學(xué)號(hào)學(xué)號(hào)學(xué)院學(xué)院 學(xué)院學(xué)院
28、 學(xué)號(hào)學(xué)號(hào) 學(xué)院學(xué)院院長(zhǎng)院長(zhǎng)S 學(xué)號(hào)學(xué)號(hào) 學(xué)院名學(xué)院名 院長(zhǎng)院長(zhǎng)傳遞函數(shù)依賴(lài)的解決方法:傳遞函數(shù)依賴(lài)的解決方法: 采用投影分解法,把采用投影分解法,把S 分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴(lài)分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴(lài) S_D(學(xué)號(hào)學(xué)號(hào), 學(xué)院)學(xué)院) D_M(學(xué)院學(xué)院,院長(zhǎng)),院長(zhǎng))傳遞依賴(lài):傳遞依賴(lài):學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.5 2.5 3 3NFNF學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名20140001sse20140002sse20140003sse20140004sse:S 學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)學(xué)號(hào)學(xué)號(hào)
29、學(xué)院名學(xué)院名S-D學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)D-M學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)sseChen:學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)20140001sseChen20140002sseChen20140003sseChen20140004sseChen:學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.5 3NFv3NF3NF的定義的定義定義:定義:關(guān)系模式關(guān)系模式R 中若不存在這樣的碼中若不存在這樣的碼 X、屬性、屬性組組Y及非主屬性及非主屬性 Z(Z Y), 使得使得 X Y,Y Z 成立,成立,Y X,則稱(chēng),則稱(chēng)R 3NF。n若若R3NF,則每一個(gè)非主屬性
30、既不部分依賴(lài)于碼也不,則每一個(gè)非主屬性既不部分依賴(lài)于碼也不傳遞依賴(lài)于碼。傳遞依賴(lài)于碼。 學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.5 3NFv 采用投影分解法將一個(gè)采用投影分解法將一個(gè)2NF的關(guān)系分解為多個(gè)的關(guān)系分解為多個(gè)3NF的關(guān)系,可以的關(guān)系,可以在一定程度上解決原在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題據(jù)冗余度大、修改復(fù)雜等問(wèn)題。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database Systemv 規(guī)范化理論是數(shù)
31、據(jù)庫(kù)邏輯設(shè)計(jì)的工具規(guī)范化理論是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具1范式范式2范式范式3范式范式關(guān)系數(shù)據(jù)模型的基本要求消除了部分函數(shù)依賴(lài)消除傳遞函數(shù)依賴(lài)目的:盡量消除插入、刪除異常,修改復(fù)雜,數(shù)據(jù)冗余目的:盡量消除插入、刪除異常,修改復(fù)雜,數(shù)據(jù)冗余2.5 3NF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System討論討論與思考與思考v1、規(guī)范化方法是否唯一,不同的規(guī)范化方法有何異同?、規(guī)范化方法是否唯一,不同的規(guī)范化方法有何異同?學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名S-D1學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)D-M1學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名S-D2學(xué)學(xué) 號(hào)號(hào)院長(zhǎng)院長(zhǎng)D-M2S 學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院
32、名院長(zhǎng)院長(zhǎng) 學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)S學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)20140001sseChen20140002sseChen20140003sseChen20140004sseChen:學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名20140001sse20140002sse20140003sse20140004sse:學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名20140001sse20140002sse20140003sse20140004sse:學(xué)院名學(xué)院名 院長(zhǎng)院長(zhǎng)sseChen:學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)20140001ss
33、eChen20140002sseChen20140003sseChen20140004sseChen:學(xué)號(hào)學(xué)號(hào)院長(zhǎng)院長(zhǎng)20140001Chen20140002Chen20140003Chen20140004Chen:v 不同規(guī)范化方法之比較不同規(guī)范化方法之比較討論討論與思考與思考學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System討論討論與思考與思考 2、規(guī)范化可能會(huì)產(chǎn)生什么樣的負(fù)面作用,請(qǐng)舉一例說(shuō)明?、規(guī)范化可能會(huì)產(chǎn)生什么樣的負(fù)面作用,請(qǐng)舉一例說(shuō)明? 學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名20140001sse20140002sse20140003sse201
34、40004sse:學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)sseChen:可能增加查詢(xún)的復(fù)雜度:可能增加查詢(xún)的復(fù)雜度: 比如需要查詢(xún)20140002號(hào)學(xué)生的院長(zhǎng)是誰(shuí)?學(xué)號(hào)學(xué)號(hào)學(xué)院名學(xué)院名院長(zhǎng)院長(zhǎng)20140001sseChen20140002sseChen20140003sseChen20140004sseChen:學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.6 BCBC范式范式( (BCNF)v定義:定義:關(guān)系模式關(guān)系模式R1NF,若,若XY且且Y X 時(shí)時(shí) X 必必含有碼,則含有碼,則R BCNF;v等價(jià)于:等價(jià)于:在一個(gè)關(guān)系模式中每一個(gè)決定屬性因素
35、都包含碼。在一個(gè)關(guān)系模式中每一個(gè)決定屬性因素都包含碼。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.6 BCBC范式范式v 若若RBCNF 所有非主屬性對(duì)每一個(gè)碼都是完全函數(shù)依賴(lài) 所有的主屬性對(duì)每一個(gè)不包含它的碼,也是完全函數(shù)所有的主屬性對(duì)每一個(gè)不包含它的碼,也是完全函數(shù)依賴(lài)依賴(lài) 沒(méi)有任何屬性完全函數(shù)依賴(lài)于非碼的任何一組屬性v R BCNF R 3NF充分不必要學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.6 BCBC范式范式【例例】 關(guān)系模式關(guān)系模式SC(Sno,Cno,G
36、rade)n SC3NFn SCBCNF【例例】 關(guān)系模式關(guān)系模式S(Sno,Sname,Sdept,Sage)n 假定假定S有兩個(gè)碼有兩個(gè)碼Sno,Snamen S3NF。n SBCNF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.6 BCBC范式范式【例例】關(guān)系模式關(guān)系模式SCR(Student,Course,Rank),假設(shè)沒(méi)有),假設(shè)沒(méi)有并列名次。并列名次。n 函數(shù)依賴(lài)函數(shù)依賴(lài): (Student,Course)Rank, (Course,Rank)Studentn (Student,Course)與()與(Course,Ra
37、nk)為候選碼)為候選碼, 屬性相交屬性相交n SCR3NF,n SCRBCNF (除了(除了(Student, Course)和()和(Course, Rank)再?zèng)])再?zèng)]有其它的有其它的決定因素決定因素)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.6 BCBC范式范式【例例】在關(guān)系模式在關(guān)系模式STC(Student,Teacher,Course)中,)中,Student表示表示學(xué)生,學(xué)生,Teacher表示教師,表示教師,Course表示課程。表示課程。 每個(gè)教師只教一門(mén)課,每門(mén)課有若干個(gè)老師,某學(xué)生選定某門(mén)課就對(duì)應(yīng)一每個(gè)教師
38、只教一門(mén)課,每門(mén)課有若干個(gè)老師,某學(xué)生選定某門(mén)課就對(duì)應(yīng)一個(gè)固定的老師。個(gè)固定的老師。 函數(shù)依賴(lài):函數(shù)依賴(lài): (Student,Course) Teacher,(Student,Teacher) Course, Teacher Course (Student,Course )和 (Student,Teacher)都是候選碼學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.6 BCBC范式范式 CSCTSTSTC中的函數(shù)依賴(lài)中的函數(shù)依賴(lài)v STC3NF 沒(méi)有任何非主屬性對(duì)碼傳遞依賴(lài)或部分依賴(lài)沒(méi)有任何非主屬性對(duì)碼傳遞依賴(lài)或部分依賴(lài) v STCB
39、CNF T是決定因素,是決定因素,T不包含碼不包含碼學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.6 BCBC范式范式v 解決方法:解決方法:將STC分解為二個(gè)關(guān)系模式: ST(S,T) BCNF, TC(T,C) BCNF 沒(méi)有沒(méi)有任何屬性任何屬性對(duì)碼的部分函數(shù)依賴(lài)和傳遞函數(shù)依賴(lài)對(duì)碼的部分函數(shù)依賴(lài)和傳遞函數(shù)依賴(lài)STSTTCTC學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.6 BCBC范式范式vR BCNF R 3NFv如果R3NF,且R只有一個(gè)候選碼 R BCNF R 3N
40、F充分不必要充分必要學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)2.7 多值依賴(lài)多值依賴(lài)An Introduction to Database System【例例】學(xué)校中某一門(mén)一門(mén)課程由多個(gè)多個(gè)教師講授,他們使用相相同同的一套參考書(shū),每個(gè)教師可以額講授多門(mén)多門(mén)課程,每種參考書(shū)可以供多門(mén)多門(mén)課程使用學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)2.7 多值依賴(lài)多值依賴(lài)An Introduction to Database Systemu 非規(guī)范化關(guān)系課程課程教師教師參考書(shū)參考書(shū)物理數(shù)學(xué)計(jì)算數(shù)學(xué)課程課程C教師教師T參考書(shū)參考書(shū)B(niǎo)物理李勇普通物理物理李勇光學(xué)原理物理李勇物理習(xí)題集物理王軍普通物理物理王軍光學(xué)原理物理王軍物
41、理習(xí)題集數(shù)學(xué)李勇數(shù)學(xué)分析數(shù)學(xué)李勇微分方程數(shù)學(xué)李勇高等代數(shù)數(shù)學(xué)張平數(shù)學(xué)分析數(shù)學(xué)張平微分方程u 規(guī)范化關(guān)系Teaching學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)2.7 多值依賴(lài)多值依賴(lài)An Introduction to Database System原因:存在多值依賴(lài)!學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.7 多值依賴(lài)多值依賴(lài)定義:定義:設(shè)R(U)是屬性集U上的一個(gè)關(guān)系模式,X, Y和Z是U的子集, 并且Z=U-X-Y。關(guān)系模式R(U)中多值依賴(lài)XY成立,當(dāng)且僅當(dāng)對(duì)R(U)的任一關(guān)系r,給定的一對(duì)(x, z )值,有一組Y的值,這組
42、值僅僅決定于x值,而與z值無(wú)關(guān)。課程課程C教師教師T參考書(shū)參考書(shū)B(niǎo)物理數(shù)學(xué)計(jì)算數(shù)學(xué)C TC B學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.7 多值依賴(lài)多值依賴(lài)u 平凡的多值依賴(lài)和非平凡的多值依賴(lài)平凡的多值依賴(lài)和非平凡的多值依賴(lài) 若X Y 有,且Z=,則稱(chēng)X Y為平凡的多值依賴(lài) 否則,稱(chēng)X Y為非平凡的多值依賴(lài) 學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.7 多值依賴(lài)多值依賴(lài)【例例】 關(guān)系模式關(guān)系模式WSC(W, S, C)lW表示倉(cāng)庫(kù),S表示保管員,C表示商品;l假設(shè)每個(gè)
43、倉(cāng)庫(kù)有若干個(gè)保管員,有若干種商品;l每個(gè)保管員保管所有倉(cāng)庫(kù)的所有商品;l每種商品被所有保管員保管。WSCw1s1c1w1s1c2w1s1c3w1s2c1w1s2c2w1s2c3w2s3c4w2s3c5w2s4c4w2s4c5學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.7 多值依賴(lài)多值依賴(lài)用下圖表示這種對(duì)應(yīng):用下圖表示這種對(duì)應(yīng):Wi學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.7 多值依賴(lài)多值依賴(lài) 性質(zhì)性質(zhì)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to
44、 Database System2.7 多值依賴(lài)多值依賴(lài) 與函數(shù)依賴(lài)的區(qū)別與函數(shù)依賴(lài)的區(qū)別學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.2.規(guī)范化規(guī)范化 2.1 函數(shù)依賴(lài)函數(shù)依賴(lài) 2.2 碼碼 2.3 范式范式 2.4 2NF 2.5 3NF 2.6 BCNF 2.7 多值依賴(lài)多值依賴(lài) 2.8 4NF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.8 4NF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2.8 4NF學(xué)以致
45、用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System規(guī)范化小結(jié)規(guī)范化小結(jié)v 關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具v 目的:目的:盡量消除插入、刪除異常,修改復(fù)雜,數(shù)據(jù)冗余v 基本思想:基本思想:逐步消除數(shù)據(jù)依賴(lài)中不合適的部分v實(shí)質(zhì):實(shí)質(zhì):概念的單一化學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System規(guī)范化小結(jié)規(guī)范化小結(jié)v 關(guān)系模式規(guī)范化的基本關(guān)系模式規(guī)范化的基本步驟步驟 1NF 消除非主屬性對(duì)碼的部分函數(shù)依賴(lài)消除決定屬性 2NF集非碼的非平 消除非
46、主屬性對(duì)碼的傳遞函數(shù)依賴(lài)凡函數(shù)依賴(lài) 3NF 消除主屬性對(duì)碼的部分和傳遞函數(shù)依賴(lài) BCNF 消除非平凡且非函數(shù)依賴(lài)的多值依賴(lài) 4NF學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System規(guī)范化小結(jié)規(guī)范化小結(jié)v 不能說(shuō)規(guī)范化程度越高的關(guān)系模式就越好v 在設(shè)計(jì)數(shù)據(jù)庫(kù)模式結(jié)構(gòu)時(shí),必須對(duì)現(xiàn)實(shí)世界的實(shí)際情況 和用戶(hù)應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反 映現(xiàn)實(shí)世界的模式v 上面的規(guī)范化步驟可以在其中任何一步終止學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System第六講第六講 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論 1
47、. 問(wèn)題問(wèn)題的提出的提出 2. 規(guī)范化規(guī)范化 3. 數(shù)據(jù)依賴(lài)數(shù)據(jù)依賴(lài)的公理系統(tǒng)的公理系統(tǒng) 4. 模式模式的分解的分解學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database Systemn 一個(gè)關(guān)系模式可能有多個(gè)函數(shù)依賴(lài)形成函數(shù)依賴(lài)集,現(xiàn)在有一個(gè)新的函數(shù)依賴(lài)不在函數(shù)依賴(lài)集里,但能從集合里根據(jù)一定的規(guī)則推導(dǎo)出來(lái),就說(shuō)那個(gè)集合邏輯蘊(yùn)涵這個(gè)新的函數(shù)依賴(lài)。n 舉例舉例: : XZ并不是顯式地表現(xiàn)出來(lái),而是從XY 和YZ推出的,這可以表示為 XY, YZ蘊(yùn)含XZn 如果一個(gè)函數(shù)依賴(lài)能夠由集合中的其他函數(shù)推出,則該函數(shù)依賴(lài)是多余的。函數(shù)依賴(lài)中需要解決的問(wèn)題:從一些已知的函數(shù)
48、依賴(lài)去判斷另外一些函數(shù)依賴(lài)是否成立。3.1 3.1 邏輯邏輯蘊(yùn)含蘊(yùn)含學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System3.1 邏輯蘊(yùn)含v邏輯蘊(yùn)含邏輯蘊(yùn)含 定義定義: : 對(duì)于滿(mǎn)足一組函數(shù)依賴(lài) F 的關(guān)系模式R ,其任何一個(gè)關(guān)系 r,若函數(shù)依賴(lài) XY 都成立, (即 r 中任意兩元組t,s,若tX=sX,則tY=sY),則稱(chēng) F 邏輯蘊(yùn)含 XY.學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System3.2 3.2 ArmstrongArmstrong公理系統(tǒng)公理系統(tǒng)關(guān)系模式關(guān)系模式R 來(lái)說(shuō)有以下的
49、推理規(guī)則:來(lái)說(shuō)有以下的推理規(guī)則: A1. 自反律自反律(Reflexivity):):若Y X U,則X Y 為F所蘊(yùn)含。 A2. 增廣律增廣律(Augmentation):):若XY 為F所蘊(yùn)含,且Z U,則 X U ZY U Z為F所蘊(yùn)含。 A3. 傳遞律傳遞律(Transitivity):):若 XY 及YZ 為F所蘊(yùn)含,則XZ 為F所 蘊(yùn)含。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System3.2 3.2 “ArmstrongArmstrong推理規(guī)則是正確推理規(guī)則是正確的的”(1)自反律自反律: 若Y X U,則X Y為F所蘊(yùn)含 證
50、證: 設(shè)Y X U 對(duì)R 的任一關(guān)系r中的任意兩個(gè)元組t,s: 若t X = s X ,由于Y X,有t y =s y ,所以XY成立,自反律得證學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System(2) 增廣律增廣律: 若XY為F所蘊(yùn)含,且Z U,則X UZY UZ 為F所蘊(yùn)含。 證:證:設(shè)XY為F所蘊(yùn)含,且Z U。 設(shè)R 的任一關(guān)系r中任意的兩個(gè)元組t,s: 若t X U Z =s X U Z,則有t X =s X 和t Z =s Z ; 由XY,于是有t Y =sY ,所以tY U Z=sY U Z,所以 X U ZY U Z為 F 所蘊(yùn)
51、含,增廣律得證。3.2 3.2 “ArmstrongArmstrong推理規(guī)則是正確推理規(guī)則是正確的的”學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System(3) 傳遞律:傳遞律:若XY及YZ為F所蘊(yùn)含,則 XZ 為 F所蘊(yùn)含。證:證:設(shè) XY 及 YZ 為 F 所蘊(yùn)含對(duì)R 的任一關(guān)系 r中的任意兩個(gè)元組 t,s:若t X =s X ,由于XY,有 t Y =sY ;再由YZ,有t Z =s Z ,所以XZ為F所蘊(yùn)含,傳遞律得證。3.2 3.2 “ArmstrongArmstrong推理規(guī)則是正確推理規(guī)則是正確的的”學(xué)以致用學(xué)以致用 用以促學(xué)用
52、以促學(xué)An Introduction to Database System3.3 Armstron公理公理推論推論1. 根據(jù)根據(jù)A1,A2,A3這三條推理規(guī)則可以得到下面這三條推理規(guī)則可以得到下面三條推理規(guī)則:三條推理規(guī)則: 合并規(guī)則:合并規(guī)則:由XY,XZ,有XY U Z。 (A2, A3) 偽傳遞規(guī)則偽傳遞規(guī)則:由XY,W U YZ,有X U WZ。 (A2, A3) 分解規(guī)則:分解規(guī)則:由XY及 ZY,有XZ。 (A1, A3)學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System2. 根據(jù)合并規(guī)則和分解規(guī)則,可得引理根據(jù)合并規(guī)則和分解規(guī)則
53、,可得引理 引理引理1 : XA1 A2Ak 成立的充分必要條件是 XAi 成立(i=l,2,k)3.3 Armstron公理公理推論推論學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System3.3 Armstron公理公理推論推論 【定義定義】在關(guān)系模式R中為F所蘊(yùn)涵的函數(shù)依賴(lài)的全體叫做F的閉包,記為F+ Armstrong公理系統(tǒng)是有效的、完備的公理系統(tǒng)是有效的、完備的 【有效性有效性】由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來(lái)的每一個(gè)函數(shù)依賴(lài)一定在 F+中; 【完備性完備性】F+中的每一個(gè)函數(shù)依賴(lài),必定可以由 F 出發(fā)根據(jù)Armstrong
54、公理推導(dǎo)出來(lái) 學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database SystemF的閉包的閉包學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System函數(shù)依賴(lài)閉包函數(shù)依賴(lài)閉包【定義】【定義】 設(shè) F 為屬性集 U 上的一組函數(shù)依賴(lài),X U, XF+ = A| XA 能由F 根據(jù)Armstrong公理導(dǎo)出,XF+ 稱(chēng)為屬性集 X 關(guān)于函數(shù)依賴(lài)集 F 的閉包.學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System關(guān)于閉包的引理關(guān)于閉包的引理v 【引理】【引理】 設(shè)F為屬
55、性集U上的一組函數(shù)依賴(lài),X,Y U,XY能 由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y XF+v 用途用途 將判定XY是否能由F根據(jù)Armstrong公理導(dǎo)出的問(wèn)題,轉(zhuǎn)化為求出XF+ 、判定Y是否為XF+的子集的問(wèn)題。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System求閉包的算法求閉包的算法算法:算法: 求屬性集X(X U)關(guān)于U上的函數(shù)依賴(lài)集F 的閉包XF+ 輸入輸入:X,F(xiàn)輸出輸出:XF+步驟:(1)令X(0)=X,i=0(2)求B,這里B = A |( V)( W)(VWFV X(i)A W);(3)X(i+1)=BX(i)
56、 (4)判斷X(i+1)= X (i)嗎?(5)若相等或X(i)=U , 則X(i)就是XF+ , 算法終止。(6)若否,則 i=i+l,返回第(2)步。 對(duì)于該算法, 令ai =|X(i)|,ai 形成一個(gè)步長(zhǎng)大于1的嚴(yán)格遞增的序列,序列的上界是 | U |,因此該算法最多 |U| - |X| 次循環(huán)就會(huì)終止。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System函數(shù)依賴(lài)閉包函數(shù)依賴(lài)閉包【例例】已知關(guān)系模式R,其中 U=A,B,C,D,E; F=ABC,BD,CE,ECB,ACB。 求(AB)F+ 。 解解: 設(shè) X(0)=AB; (1) X(
57、1)=ABCD=ABCD。 (2) X(0) X(1) X(2)=X(1)BE=ABCDE。 (3) X(2)=U,算法終止 (AB)F+ =ABCDE。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System函數(shù)依賴(lài)集等價(jià)函數(shù)依賴(lài)集等價(jià)【定義定義】 如果 G+ = F+,就說(shuō)函數(shù)依賴(lài)集F覆蓋G(F是G的覆蓋,或G是F的覆蓋),或F與G等價(jià)?!疽硪怼?F+ = G+ 的充分必要條件是F G+ ,和G F+ 證: 必要性顯然,只證充分性。(1)若FG+ ,則XF+ XG+ 。(2)任取XYF+ 則有 Y XF+ XG+ 。 所以XY (G+)+=
58、 G+。即F+ G+。(3)同理可證G+ F+ ,所以F+ = G+。學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System最小依賴(lài)集最小依賴(lài)集【定義定義】如果如果函數(shù)依賴(lài)函數(shù)依賴(lài)集集 F 滿(mǎn)足滿(mǎn)足下列條件,則下列條件,則稱(chēng)稱(chēng) F 為為一個(gè)極小函一個(gè)極小函數(shù)依賴(lài)集。亦稱(chēng)為最小依賴(lài)集或最小覆蓋。數(shù)依賴(lài)集。亦稱(chēng)為最小依賴(lài)集或最小覆蓋。 (1) F 中任一函數(shù)依賴(lài)的右部?jī)H含有一個(gè)屬性。 (2)F中不存在這樣的函數(shù)依賴(lài)XA,使得F與F- XA等價(jià)。 (3)F中不存在這樣的函數(shù)依賴(lài)XA, X 有真子集 Z 使得 F- XA ZA 與F等價(jià)。 學(xué)以致用學(xué)以致
59、用 用以促學(xué)用以促學(xué)An Introduction to Database System最小依賴(lài)集最小依賴(lài)集【例例】關(guān)系模式關(guān)系模式S,其中:,其中: U= Sno,Sdept,Mname,Cno,Grade , F= SnoSdept,SdeptMname,(Sno,Cno)Grade 設(shè)F =SnoSdept,SnoMname,SdeptMname, (Sno,Cno)Grade,(Sno,Sdept)Sdept F 是最小覆蓋,而F 不是。 因?yàn)椋篎 - SnoMname與F 等價(jià) F - (Sno,Sdept)Sdept也與F 等價(jià) 學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introd
60、uction to Database System極小化過(guò)程極小化過(guò)程【定理定理】 每一個(gè)函數(shù)依賴(lài)每一個(gè)函數(shù)依賴(lài)集集 F 均均等價(jià)于一個(gè)極小函數(shù)等價(jià)于一個(gè)極小函數(shù)依依 賴(lài)集賴(lài)集 Fm , Fm 稱(chēng)為稱(chēng)為 F 的的最小依賴(lài)集。最小依賴(lài)集。 證明證明: 構(gòu)造性證明,找出 F 的一個(gè)最小依賴(lài)集。 學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System極小化過(guò)程極小化過(guò)程學(xué)以致用學(xué)以致用 用以促學(xué)用以促學(xué)An Introduction to Database System極小化過(guò)程極小化過(guò)程【例】 F = AB,BA,BC,AC,CAFm1、Fm2都是
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職(會(huì)計(jì))會(huì)計(jì)綜合實(shí)訓(xùn)試題及答案
- 2026年午餐肉食品加工機(jī)維修(加工機(jī)調(diào)試技術(shù))試題及答案
- 2025年中職(化工技術(shù)應(yīng)用)化工單元操作專(zhuān)項(xiàng)測(cè)試試題及答案
- 2025年大學(xué)大一(交通運(yùn)輸)航空運(yùn)輸學(xué)基礎(chǔ)階段測(cè)試試題及答案
- 2025年中職農(nóng)產(chǎn)品儲(chǔ)存(農(nóng)產(chǎn)品儲(chǔ)存技術(shù))試題及答案
- 2025年大學(xué)藥理學(xué)實(shí)驗(yàn)(藥理實(shí)驗(yàn)操作)試題及答案
- 2025年高職建筑裝飾工程技術(shù)(裝飾施工實(shí)操)試題及答案
- 2025年中職生態(tài)學(xué)(生態(tài)學(xué)基礎(chǔ))試題及答案
- 2025年中職工業(yè)機(jī)器人(編程進(jìn)階實(shí)操)試題及答案
- 2025年中職網(wǎng)絡(luò)技術(shù)(網(wǎng)絡(luò)傳輸技術(shù))試題及答案
- 醫(yī)院傳染病疫情報(bào)告管理工作職責(zé)
- 基于PLC的恒壓供水控制系統(tǒng)的設(shè)計(jì)-畢業(yè)論文
- 人教鄂教版六年級(jí)下冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)
- 2024年湖南生物機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范
- 工程項(xiàng)目施工計(jì)劃書(shū)
- 2023-2024學(xué)年深圳市初三中考適應(yīng)性考試英語(yǔ)試題(含答案)
- 人教新起點(diǎn)英語(yǔ)五上《Unit5shopping》課件-課件
- 各品牌挖掘機(jī)挖斗連接尺寸數(shù)據(jù)
- GB/T 38697-2020塊菌(松露)鮮品質(zhì)量等級(jí)規(guī)格
- 三菱FX3U系列PLC編程技術(shù)與應(yīng)用-第二章課件
評(píng)論
0/150
提交評(píng)論