




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)系統(tǒng)概論An Introduction to Database System第六章 關(guān)系數(shù)據(jù)理論課程:數(shù)據(jù)庫(kù)原理及應(yīng)用【教學(xué)要求】 掌握函數(shù)依賴相關(guān)概念; 掌握1NF、2NF、3NF等范式判定條件; 了解數(shù)據(jù)依賴的公理系統(tǒng)等相關(guān)概念; 了解關(guān)系模式分解等價(jià)的概念?!窘虒W(xué)重點(diǎn)】 函數(shù)依賴相關(guān)概念; 侯選碼、主碼、主屬性、非主屬性、外碼等概念; 1NF、2NF、3NF等范式判定條件 關(guān)系模式的規(guī)范化經(jīng)驗(yàn)方法等 教學(xué)說(shuō)明【教學(xué)難點(diǎn)】 關(guān)系模式的規(guī)范化 多值依賴的概念 BCNF、4NF等范式的判定 【自學(xué)內(nèi)容】 其余內(nèi)容(如數(shù)據(jù)依賴的公理系統(tǒng)、模式的分解) 可安排有興趣的同學(xué)自學(xué)。 教學(xué)說(shuō)明說(shuō)明
2、:1、 本章內(nèi)容對(duì)應(yīng)教學(xué)大綱和教學(xué)計(jì)劃第4章。 2、通過(guò)本章的學(xué)習(xí),使同學(xué)們能進(jìn)行關(guān)系模式 的規(guī)范化分解,能判定關(guān)系模式的范式等級(jí),為 今后關(guān)系數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)提供理論基礎(chǔ)。本章內(nèi)容6.1: 問(wèn)題的提出: 從數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)中如何構(gòu)造一個(gè)好的數(shù)據(jù)庫(kù)模式問(wèn)題出發(fā),闡述關(guān)系規(guī)范化理論研究的實(shí)際背景。6.2: 規(guī)范化(重點(diǎn)內(nèi)容) 介紹規(guī)范化理論,討論各種范式及可能存在的插入、刪除異常,并直觀地描述解決問(wèn)題的方法。6.3: 數(shù)據(jù)依賴的公理系統(tǒng)(簡(jiǎn)要介紹)*6.4 模式的分解(自學(xué))6.1: 問(wèn)題的提出一、概念回顧二、關(guān)系模式的形式化定義三、數(shù)據(jù)依賴四、一個(gè)引例-數(shù)據(jù)依賴對(duì)關(guān)系模式的影響 1、引例 2、模式
3、存在的弊病及原因 3、直觀的解決方法 6.1: 問(wèn)題的提出 針對(duì)具體問(wèn)題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式,既: 給定一組數(shù)據(jù): 在數(shù)據(jù)庫(kù)中應(yīng)構(gòu)造幾個(gè)關(guān)系? 每個(gè)關(guān)系由哪些屬性組成? 關(guān)系數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)問(wèn)題關(guān)系規(guī)范化理論有力工具一、概念回顧 從用戶觀點(diǎn)看:它是一張二維表; 嚴(yán)格的說(shuō):是所涉及屬性的笛卡爾積的一個(gè)有意義的 真子集。 關(guān)系:關(guān)系模式:對(duì)關(guān)系的描述,可用五元組形式化表示。概念回顧 在一個(gè)給定的應(yīng)用領(lǐng)域中,所有關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù),從形式上看它由一組關(guān)系組成。關(guān)系數(shù)據(jù)庫(kù): 關(guān)系數(shù)據(jù)庫(kù)的模式: 定義一組關(guān)系的關(guān)系模式的全體。 關(guān)系數(shù)據(jù)庫(kù)模式包括: . 若干域的定義; . 在這些域上
4、定義的若干關(guān)系模式二、關(guān)系模式的形式化定義關(guān)系模式由五部分組成,即它是一個(gè)五元組: R( U, D, DOM, F )R: 關(guān)系名U: 組成該關(guān)系的屬性名集合D: 屬性組U中屬性所來(lái)自的域DOM: 屬性向域的映象集合F: 屬性間數(shù)據(jù)的依賴關(guān)系集合說(shuō)明:由于 D 和 DOM 對(duì)模式設(shè)計(jì)和關(guān)系規(guī)范化影響不大,本章將關(guān)系模式看成一個(gè)三元組: R( U, F)三、數(shù)據(jù)依賴1. 關(guān)系必須滿足一定的完整性約束條件。 有兩種表現(xiàn)形式: 依賴于值域的限制 依賴于值的相等與否的限制 數(shù)據(jù)依賴對(duì)屬性取值范圍的限制。屬性間的相互關(guān)聯(lián)。 數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)鍵。數(shù)據(jù)依賴2. 數(shù)據(jù)依賴概念與類別 是通過(guò)一個(gè)關(guān)系中屬性間值
5、的相等與否體現(xiàn)出來(lái)的數(shù)據(jù)間的相互關(guān)系。 . 是現(xiàn)實(shí)世界屬性之間相互聯(lián)系的抽象; . 是數(shù)據(jù)內(nèi)在的性質(zhì); . 是語(yǔ)義的體現(xiàn); 可見(jiàn),數(shù)據(jù)依賴是通過(guò)一個(gè)關(guān)系中屬性間值的相互關(guān)連體現(xiàn)出來(lái)的數(shù)據(jù)間的相互關(guān)系。 數(shù)據(jù)依賴數(shù)據(jù)依賴有多種類型,其中最重要的是: 函數(shù)依賴(FD:Functional Dependency) 多值依賴(MVD:Multivalued Dependency) 其他(如連接依賴) 1、引例:描述學(xué)校的數(shù)據(jù)庫(kù):涉及如下屬性: 學(xué)號(hào)(Sno) 、所在系(Sdept)、系主任姓名(Mname)、 課程名稱(Cname)、成績(jī)(Grade)四、一個(gè)引例 學(xué)校數(shù)據(jù)庫(kù)的語(yǔ)義: 一個(gè)系有若干學(xué)生
6、, 一個(gè)學(xué)生只屬于一個(gè)系; 一個(gè)系只有一名主任; 一個(gè)學(xué)生可以選修多門課程, 每門課程有若干 學(xué)生選修; 每個(gè)學(xué)生所學(xué)的每門課程都有一個(gè)成績(jī)。 若將所有信息集中在建立一個(gè)關(guān)系中處理,可設(shè)計(jì)關(guān)系模式 STUDENT ( U , F ) , 其一關(guān)系實(shí)例為:1、引例引例在這個(gè)單一的關(guān)系模式 Student 中:屬性集U Sno , Sdept , Mname , Cname , Grade 函數(shù)依賴集F = SnoSdept , SdeptMname , (Sno,Cname)Grade 如圖:CnameGradeMnameSnoSdept主碼2、模式存在的弊病及原因 1) 數(shù)據(jù)冗余太大 例:每一
7、個(gè)系主任姓名重復(fù)出現(xiàn),浪費(fèi)大量的空間。2)更新異常 數(shù)據(jù)的冗余造成更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組。模式中存在的問(wèn)題 3)插入異常該插的數(shù)據(jù)插不進(jìn)去。例如一個(gè)系剛成立,尚無(wú)學(xué)生,我們就無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。模式中存在的問(wèn)題數(shù)學(xué)系劉英該元組主屬性為空不能插入4) 刪除異常 不該刪除的數(shù)據(jù)不得不刪,例如,某個(gè)系的學(xué)生全部畢業(yè)了, 刪除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。模式中存在的問(wèn)題結(jié)論:. Student關(guān)系模式不是一個(gè)好的模式。. “好”的模式:不會(huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡
8、可能少。 模式存在的弊病的原因原因: 由于模式中存在的某些性質(zhì)不好的數(shù)據(jù)依賴(部分函數(shù)依賴、傳遞函數(shù)依賴)引起的。CnameGradeMnameSnoSdept 模式存在的弊病的原因部分函數(shù)依賴傳遞函數(shù)依賴3、直觀的解決方法 把這個(gè)單一模式分成 3 個(gè)關(guān)系模式: Stu(Sno,Sdept,Sno Sdept) Score(Sno,Cname,Grade,(Sno,Cname)Grade) Dept(Sdept,Mname,Sdept Mname)解決方法: 通過(guò)模式分解來(lái)消除其中不合適的數(shù)據(jù)依賴,使分解后的子模式不存在那些性質(zhì)不好的數(shù)據(jù)依賴分解后的子模式分析:student關(guān)系存在的弊病,它
9、們有沒(méi)有?直觀的解決方法 經(jīng)過(guò)分析,分解后的關(guān)系模式是一個(gè)好的關(guān)系數(shù)據(jù)庫(kù)模式。 從而得出結(jié)論,一個(gè)好的關(guān)系模式應(yīng)該具備以下四個(gè)條件: 盡可能少的數(shù)據(jù)冗余。 沒(méi)有插入異常。 沒(méi)有刪除異常。 沒(méi)有更新異常。 討論 一個(gè)好的關(guān)系模式是不是在任何情況下都是最優(yōu)的? 并不是,對(duì)于分解后的數(shù)據(jù)庫(kù)模式,要查詢某個(gè)學(xué)生選修課程名及所在系的系主任時(shí),就要通過(guò)連接而連接所需要的系統(tǒng)開銷非常大。 因此要以實(shí)際設(shè)計(jì)的目標(biāo)(規(guī)范化要求還是效率要求)出發(fā)來(lái)進(jìn)行設(shè)計(jì)。有關(guān)系模式WW= U ,F(xiàn) U= 日期,工號(hào),姓名,工種,定額,超額,車間,車間主任 F= 工號(hào)姓名,工號(hào)工種,工號(hào)車間,車間車間主任, 工種定額,(日期,工
10、號(hào)) 超額 分析:碼為:(日期,工號(hào)) :存在部分函數(shù)依賴和傳遞函數(shù)依賴。課后分析:6.2 規(guī)范化 1971年E.F.Codd博士首先提出了關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論,之后,此理論不斷深化、完善。規(guī)范化理論是設(shè)計(jì)關(guān)系模式的理論指導(dǎo)和強(qiáng)有力的工具。 規(guī)范化理論研究如何將一個(gè)不好的關(guān)系模式轉(zhuǎn)化為好的關(guān)系模式的理論,規(guī)范化理論圍繞范式而建立。 規(guī)范化的作用就在于盡量控制冗余,使數(shù)據(jù)保持一致,除去在表中進(jìn)行插入、刪除時(shí)產(chǎn)生的異常,使數(shù)據(jù)修改簡(jiǎn)單。6.2 規(guī)范化6.2.1 函數(shù)依賴6.2.2 碼6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴6.2.8 4NF6.
11、2.9 規(guī)范化小結(jié)1:函數(shù)依賴 定義: 設(shè)R(U)是一關(guān)系模式,U是R的屬性集合,X和Y是U的子集。對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,如果r中不存在兩個(gè)元組,它們?cè)赬上的屬性值相同,而在Y上的屬性值不同,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作:XY,其中X是決定因素。(可以認(rèn)為在X上屬性值相同,在Y上必然相同)若Y不函數(shù)依賴于X,則記作:X Y。 若XY,YX,則記作: XY。說(shuō)明 1. 所有關(guān)系實(shí)例均要滿足2. 語(yǔ)義范疇的概念3. 數(shù)據(jù)庫(kù)設(shè)計(jì)者可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定 函數(shù)依賴 函數(shù)依賴的類別: 平凡函數(shù)依賴與非平凡函數(shù)依賴 完全函數(shù)依賴與部分函數(shù)依賴 直接函數(shù)依賴與傳遞函數(shù)依賴
12、函數(shù)依賴(2)例:關(guān)系Student中SnoSname SnoSsexSnameSdept 例:關(guān)系SC中 SnoGrade(Sno,Cno)Grade函數(shù)依賴(3)平凡函數(shù)依賴與非平凡函數(shù)依賴定義: 在關(guān)系模式R(U)中,對(duì)于U的子集X和Y存在XY如果XY,但Y X,則稱XY是 非平凡的函數(shù)依賴若XY,但Y X, 則稱XY是 平凡的函數(shù)依賴 對(duì)任一關(guān)系模式,平凡函數(shù)依賴都必然成立,故一般只討論非平凡的函數(shù)依賴。函數(shù)依賴(4)例:關(guān)系Student和Sc中SnoSage ,(Sno,Cno)Grade是非平凡的函數(shù)依賴(Sno,Cno)Sno , (Sno,Cno)Cno 是平凡的函數(shù)依賴函數(shù)
13、依賴(5)完全函數(shù)依賴和部分函數(shù)依賴定義:在關(guān)系模式R(U)中,如果XY,對(duì)于X的任一真子集X都有X Y,則稱Y完全函數(shù)依賴于X,記作:XY。Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作:XY。FP函數(shù)依賴(6)例:關(guān)系Student中SnoSdept SnameSdept (sno,sname)Sdept FFP函數(shù)依賴(7) 傳遞函數(shù)依賴定義:在關(guān)系模式R(U)中,如果XY,YZ且YX,YX,則稱Z傳遞函數(shù)依賴于X,記作X Z。例:關(guān)系Student中SnoSdept,Sdeptmgr, snomgr傳遞傳遞函數(shù)依賴(8)說(shuō)明: 函數(shù)依賴不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿足的約束
14、條件,而是指R的所有關(guān)系實(shí)例均要滿足的約束條件。(不僅對(duì)R中現(xiàn)有的元組,而且針對(duì)所有將來(lái)進(jìn)入R中的元組。) 函數(shù)依賴和別的數(shù)據(jù)之間的依賴關(guān)系一樣,是語(yǔ)義范疇的概念,只能根據(jù)數(shù)據(jù)的語(yǔ)義來(lái)確定函數(shù)依賴。(所謂數(shù)據(jù)的語(yǔ)義,可以認(rèn)為是現(xiàn)實(shí)世界的經(jīng)驗(yàn)或常識(shí),是依賴于具體現(xiàn)實(shí)環(huán)境的。)2:碼(1) 定義: 設(shè)K為關(guān)系模式R(U,F)中屬性或?qū)傩越M合。若KU,則K稱為R的一個(gè)候選碼。F若R有多個(gè)候選碼,則選定其中一個(gè)作為 主碼 。 包含在任何一個(gè)候選碼中的屬性,叫做 主屬性。 不包含在任何碼中的屬性稱為非主屬性。整個(gè)屬性組是碼,稱為全碼。碼(2)例:關(guān)系Student中Sno (Sno,Sname,Ssex
15、,Sage,Sdept)討論在什么情況下,關(guān)系Student中Sname可以做主碼?例:關(guān)系SC中(Sno,Cno) (Sno,Cno,Grade)碼例2 關(guān)系模式 S(Sno,Sdept,Sage),單個(gè)屬性Sno是碼, SC(Sno,Cno,Grade)中,(Sno,Cno)是碼 例3 關(guān)系模式R(P,W,A) P:演奏者 W:作品 A:聽眾 一個(gè)演奏者可以演奏多個(gè)作品 某一作品可被多個(gè)演奏者演奏 聽眾可以欣賞不同演奏者的不同作品 碼為(P,W,A),即All-Key 碼(3)外碼定義:關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但是X是另一個(gè)關(guān)系模式的碼,則成X是R的外部碼(Foreign K
16、ey),也稱外碼。Sname Ssex Sno - - -李勇 男 200215121劉晨 女 200215122王敏 女 200215123張立 男 200515125Student Sno Cno Grade - - -200215121 1 92200215121 2 85200215121 3 88200215122 2 90200215122 3 80SC Cno Cname- -1 數(shù)據(jù)庫(kù)2 數(shù)學(xué)3 信息系統(tǒng)4 操作系統(tǒng)5 數(shù)據(jù)結(jié)構(gòu)6 數(shù)據(jù)處理 Course PKPKFKFKPK3:范式 滿足不同程度的規(guī)范(約束條件)要求的稱為不同的范式。 規(guī)范化理論把關(guān)系應(yīng)滿足的規(guī)范要求分為幾級(jí)
17、, 分別為1NF,2NF,3NF,BCNF,4NF,5NF。范式的等級(jí)越高,應(yīng)滿足的約束條件也越嚴(yán)格。 一個(gè)低一級(jí)的關(guān)系模式,可以通過(guò)模式分解轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這就是規(guī)范化的過(guò)程。 各種范式之間: 1NF(1) 定義:在關(guān)系模式R中的每一個(gè)具體關(guān)系r中,如果每個(gè)屬性值 都是不可再分的最小數(shù)據(jù)單位,則稱R是第一范式的關(guān)系,R1NF。1NF的要求是:消除非原子屬性。為使關(guān)系模式滿足1NF的要求,可以:為元組確立關(guān)鍵字。將屬性細(xì)化,盡量地小,成為原子型的屬性。 將多值屬性移動(dòng)到另一個(gè)關(guān)系里。1NF(2)例:下列關(guān)系不符合1NF的要求。工號(hào),姓名,工資,補(bǔ)貼職工號(hào),姓名,電話號(hào)碼
18、多值屬性第一范式是對(duì)關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫(kù)模式不能稱為關(guān)系數(shù)據(jù)庫(kù)但是滿足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式4:2NF(1)定義: 若R1NF,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則R2NF。 如果滿足1NF的表的主碼只有一列,則它自動(dòng)滿足2NF。2NF的要求是:消除部分函數(shù)依賴2NF(2)例4 關(guān)系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。函數(shù)依賴包括: (Sno, Cno) F Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno
19、, Cno) P Sloc Sdept Sloc 2NF(續(xù))S-L-C的碼為(Sno, Cno)S-L-C滿足第一范式。非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno)SnoCnoGradeSdeptSlocS-L-C函數(shù)依賴圖S-L-C不是一個(gè)好的關(guān)系模式(續(xù))(1) 插入異常(2) 刪除異常(3) 數(shù)據(jù)冗余度大(4) 修改復(fù)雜S-L-C不是一個(gè)好的關(guān)系模式(續(xù))原因: Sdept、 Sloc部分函數(shù)依賴于碼。解決方法 S-L-C分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴 SC(Sno, Cno, Grade) S-L(Sno, Sdept, Sloc)思考可不可以分解為S
20、C(Sno,Cno,Grade) 和S-L(Sdept,sloc)?2NF(續(xù))函數(shù)依賴圖:SnoCnoGradeSCS-LSnoSdeptSloc關(guān)系模式SC的碼為(Sno,Cno)關(guān)系模式S-L的碼為 Sno這樣非主屬性對(duì)碼都是完全函數(shù)依賴 分析 試分析SC和S-L兩個(gè)關(guān)系模式是否屬于2NF? 2NF(續(xù))例: S-L-C(Sno, Sdept, Sloc, Cno, Grade) 1NF S-L-C(Sno, Sdept, Sloc, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF S-L(Sno, Sdept, Sloc) 2NF 采用投影分解法將一個(gè)1
21、NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。 將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。 為將關(guān)系轉(zhuǎn)化為2NF關(guān)系,采用經(jīng)驗(yàn)的方法。在該方法中: 構(gòu)成碼的屬性組與被其完全函數(shù)決定的相關(guān)非主屬性組成一個(gè)子關(guān)系; 可決定其他非主屬性的碼中的主屬性和相關(guān)非主屬性構(gòu)成按決定因素組成若干子關(guān)系 2NF(續(xù))5:3NF(1)定義: 若關(guān)系模式2NF中,且R中不存在這樣的碼X,屬性組Y和非主屬性Z (Z Y),使得XY,YZ成立,YX則稱R(U,F(xiàn))3NF。3NF的要求是:消除傳遞
22、函數(shù)依賴 若R3NF,則每一個(gè)非主屬性既不部分依賴于碼也不傳遞依賴于碼。 3NF(2)例:關(guān)系模式Sdept存在傳遞函數(shù)依賴:F=SnoSdept,Sdept Mgr可以分解成兩個(gè)關(guān)系,進(jìn)一步消除數(shù)據(jù)冗余。S(Sno,Sdept )Dept(Sdept,Mgr)思考題:畫出分解前后的函數(shù)依賴圖,然后判斷分解后的關(guān)系模式S和Ddept屬于第幾范式?保證可以連接起來(lái) 為將關(guān)系轉(zhuǎn)化為3NF關(guān)系,采用經(jīng)驗(yàn)的方法。在該方法中: 構(gòu)成碼的屬性組與被其直接函數(shù)決定的相關(guān)非主屬性組成一個(gè)子關(guān)系; 可決定其他非主屬性的非主屬性和被其決定的相關(guān)非主屬性構(gòu)成相應(yīng)的子關(guān)系。3NF(3)例:規(guī)范化的過(guò)程(1)某書店購(gòu)書
23、情況匯總登記表 :例:規(guī)范化的過(guò)程(2)根據(jù)分析可以得到一組函數(shù)依賴:F= NOC#,C#CN,C#CA,B#BN,B#EU,B#UP,(NO,B#) QUA ,表中(NO,B#)為關(guān)鍵字。消除重復(fù)組后,關(guān)系模式滿足1NF的要求。例:規(guī)范化的過(guò)程(3) 將其分解成三個(gè)關(guān)系,使每一個(gè)非主屬性都完全依賴于主關(guān)鍵字,滿足2NF的要求。 例:規(guī)范化的過(guò)程(4) 進(jìn)一步消除傳遞函數(shù)依賴,滿足3NF的要求。6:BCNF(1)定義: 設(shè)關(guān)系模式R1NF。如果對(duì)于R的每個(gè)函數(shù)依賴XY,且YX,X必含有候選碼,那么RBCNF。既每一個(gè)決定屬性因素都包含碼。所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼。所有主屬性都完全
24、函數(shù)依賴于每個(gè)不包含它的候選碼(非平凡的函數(shù)依賴)。沒(méi)有任何屬性完全函數(shù)依賴于非碼的任何一組屬性BCNF的要求是:消除主屬性對(duì)碼的部分依賴和傳遞依賴。BCNF(2)例:關(guān)系模式Student中,Sno是唯一的碼,主屬性只有一個(gè)Sno, Student BCNF。例:關(guān)系模式Sc中,(Sno,Cno)是唯一的碼,主屬性有兩個(gè):Sno和Cno, SCBCNF。BCNF(3)例:關(guān)系Course模式中,有兩個(gè)候選碼:Cno和Cname,Cno和Cname都是單個(gè)屬性,彼此不相交,不存在主屬性間的部分依賴或傳遞依賴,CourseBCNF。BCNF(4)例 每一教師只教一門課。每門課由若干教師教,某一學(xué)
25、生選定某門課,就確定了一個(gè)固定的教師。某個(gè)學(xué)生選修某個(gè)教師的課就確定了所選課的名稱。思考題:試判斷是否屬于BCNF主屬性間存在部分函數(shù)依賴 SCT不是BCNF。SCT中的函數(shù)依賴SCTSTC關(guān)系模式Sct中有以下函數(shù)依賴:(S,C)T (S,T)C TCBCNF(續(xù))SCT3NF沒(méi)有任何非主屬性對(duì)碼傳遞依賴或部分依賴SCTBCNFT是決定因素,T不包含碼BCNF(續(xù))解決方法:將SCT分解為二個(gè)關(guān)系模式: ST(S,T) BCNF, TC(T,C) BCNF 沒(méi)有任何屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴STT CSTTC3NF與BCNF的關(guān)系R BCNF R 3NF充分不必要充分必要如果R3N
26、F,且R只有一個(gè)候選碼 R BCNF R 3NF7:多值依賴(1)例:學(xué)校中某一門課程由多個(gè)教師講授,他們 使用相同的一套參考書。關(guān)系模式Teaching(C, T, B) 課程C、教師T 和 參考書B課 程 C教 員 T參 考 書 B物理數(shù)學(xué)計(jì)算數(shù)學(xué)李 勇王 軍李 勇張 平張 平周 峰 普通物理學(xué)光學(xué)原理 物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析多值依賴(2)普通物理學(xué)光學(xué)原理物理習(xí)題集普通物理學(xué)光學(xué)原理物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)李 勇李 勇李 勇王 軍王 軍王 軍李 勇李 勇李 勇張 平張 平張 平 物 理物 理物 理物 理物 理物 理數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué)數(shù)
27、 學(xué)數(shù) 學(xué)數(shù) 學(xué) 參考書B教員T課程C多值依賴(3)存在多值依賴多值依賴(4)Teach具有唯一候選碼(C,T,B), 即全碼 TeachingBCNF:多值依賴(5) (2)插入操作復(fù)雜: 當(dāng)某一課程增加一名任課教師時(shí),該課程有多少本參照書,就必須插入多少個(gè)元組例如:物理課增加一名教師劉關(guān),需要插入兩個(gè)元組: (物理,劉關(guān),普通物理學(xué)) (物理,劉關(guān),光學(xué)原理)Teaching模式中存在的問(wèn)題 (1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書就要存 儲(chǔ)多少次多值依賴(3) 刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個(gè)元組 產(chǎn)生原因:存在多值依賴(4) 修改操作復(fù)雜
28、:某一門課要修改一本參考書, 該課程有多少名教師,就必須修改多少個(gè)元組多值依賴(3)定義: 設(shè)R(U)是一個(gè)屬性集U上的一個(gè)關(guān)系模式,X,Y和Z是U的子集,并且Z=U-X-Y,多值依賴XY成立,當(dāng)且僅當(dāng)對(duì)R的任一關(guān)系r,r在(X,Z)上的每個(gè)值對(duì)應(yīng)一組Y的值,這組值僅僅決定于X值,而與Z值無(wú)關(guān)。多值依賴(續(xù))平凡多值依賴和非平凡的多值依賴若XY,而Z,則稱 XY為平凡的多值依賴否則稱XY為非平凡的多值依賴多值依賴(續(xù))例關(guān)系模式WSC(W,S,C) W表示倉(cāng)庫(kù),S表示保管員,C表示商品 假設(shè)每個(gè)倉(cāng)庫(kù)有若干個(gè)保管員,有若干種商品 每個(gè)保管員保管所在的倉(cāng)庫(kù)的所有商品 每種商品被所有保管員保管 多值
29、依賴(續(xù))WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5多值依賴(續(xù))WS且WC用下圖表示這種對(duì)應(yīng) 多值依賴的性質(zhì)(1)多值依賴具有對(duì)稱性若XY,則XZ,其中ZUXY(2)多值依賴具有傳遞性若XY,YZ, 則XZ Y(3)函數(shù)依賴是多值依賴的特殊情況。若XY,則XY。(4)若XY,XZ,則XY Z。(5)若XY,XZ,則XYZ。(6)若XY,XZ,則XY-Z,XZ -Y。多值依賴與函數(shù)依賴的區(qū)別(1) 多值依賴的有效性與屬性集的范圍有關(guān)(2) 若函數(shù)依賴XY在R(U)上成立,則對(duì)于任何Y Y均有XY 成立多值依賴X
30、Y若在R(U)上成立,不能斷言對(duì)于任何Y Y有XY 成立8: 4NF定義:關(guān)系模式R(U,F)1NF,如果對(duì)R的每個(gè)非平凡多值依賴XY(YX),X都含有候選碼,則R4NF。4NF的要求是:消除非平凡且非函數(shù)依賴的多值依賴。4NF(續(xù)) 通過(guò)投影分解法消除非平凡的多值依賴?yán)?Teaching(C,T,B) 4NF 存在非平凡的多值依賴CT,且C不是碼用投影分解法把Teaching分解為如下兩個(gè)關(guān)系模式: CT(C, T) 4NF CB(C, B) 4NF CT, CB是平凡多值依賴9:規(guī)范化小結(jié)(1) 規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,使一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間
31、的一種聯(lián)系,可以認(rèn)為規(guī)范化的實(shí)質(zhì)是:概念的單一化。函數(shù)依賴的完美范式是BCNF,多值依賴的完美范式是4NF。多值依賴是連接依賴的特殊情況,當(dāng)消除了連接依賴后,將達(dá)到5NF。 關(guān)系模式的規(guī)范化通過(guò)對(duì)關(guān)系模式的分解來(lái)實(shí)現(xiàn)。規(guī)范化小結(jié)(2) 4NF消除非平凡且非函數(shù)依賴的多值依賴BCNF消除主屬性對(duì)碼的部分和傳遞依賴3NF消除非主屬性對(duì)碼的傳遞函數(shù)依賴2NF消除非主屬性對(duì)碼的部分函樹依賴1NF消除決定因素非碼的非平凡的函數(shù)依賴規(guī)范化小結(jié)(續(xù)) 不能說(shuō)規(guī)范化程度越高的關(guān)系模式就越好 在設(shè)計(jì)數(shù)據(jù)庫(kù)模式結(jié)構(gòu)時(shí),必須對(duì)現(xiàn)實(shí)世界的實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式上面的
32、規(guī)范化步驟可以在其中任何一步終止反規(guī)范化(1)規(guī)范化的優(yōu)點(diǎn)是減少了數(shù)據(jù)冗余,節(jié)約了存儲(chǔ)空間,相應(yīng)邏輯和物理的I/O次數(shù)減少,同時(shí)加快了增、刪、改的速度。完全規(guī)范化的設(shè)計(jì)并不總能生成最優(yōu)的性能,因?yàn)橐?guī)范化的設(shè)計(jì)使產(chǎn)生的關(guān)系增多,結(jié)構(gòu)更加復(fù)雜,對(duì)數(shù)據(jù)庫(kù)查詢通常需要更多的連接操作。在數(shù)據(jù)庫(kù)設(shè)計(jì)中特別對(duì)以查詢?yōu)橹鞯臄?shù)據(jù)庫(kù)設(shè)計(jì)來(lái)說(shuō),頻繁的連接嚴(yán)重影響查詢速度。反規(guī)范化(2)故有時(shí)為了提高某些查詢或應(yīng)用的性能而有意破壞規(guī)范規(guī)則,即反規(guī)范化。反規(guī)范化的好處是降低連接操作的需求、降低外碼和索引數(shù)目,減少表的個(gè)數(shù),提高查詢速度。反規(guī)范化(3)常用的反規(guī)范技術(shù)有合理增加冗余列、派生列,或重新組表幾種。復(fù)制某些數(shù)據(jù)
33、列到一些表中以便更容易地訪問(wèn)它們而不用進(jìn)行多表的連接,這些被復(fù)制的列可以是它們自己的列或外碼列。預(yù)計(jì)算和派生數(shù)據(jù)的存儲(chǔ)可以加快處理過(guò)程。撤消某些分解的實(shí)體是為避免多個(gè)連接的開銷。討論(1):下圖表示一個(gè)公司各部門的層次結(jié)構(gòu)討論(2):對(duì)每個(gè)部門,包含部門號(hào)(唯一的)D#、預(yù)算費(fèi)(BUDGET)以及此部門領(lǐng)導(dǎo)人的職工號(hào)E#(唯一的)信息。對(duì)每一個(gè)部門,還存在著關(guān)于此部門的全部職工、生產(chǎn)與科研項(xiàng)目以及辦公室的信息。職工信息包括:職工號(hào)、他所參加的生產(chǎn)與科研項(xiàng)目號(hào)(J#)、他所在的辦公室電話號(hào)碼(PHONE#)。生產(chǎn)科研項(xiàng)目包括:項(xiàng)目號(hào)(唯一的)、預(yù)算費(fèi)。辦公室信息包含辦公室房間號(hào)(唯一的)、面積。
34、討論(3):對(duì)每個(gè)職工,數(shù)據(jù)庫(kù)中有他曾擔(dān)任過(guò)的職務(wù)以及擔(dān)任某一職務(wù)時(shí)的工資歷史。對(duì)每個(gè)辦公室包含此辦公室中全部電話號(hào)碼的信息。請(qǐng)你給出認(rèn)為合理的數(shù)據(jù)依賴,把這個(gè)層次結(jié)構(gòu)轉(zhuǎn)化成一組規(guī)范化的關(guān)系。提示:此題可分步完成,第一步先轉(zhuǎn)換成一組1NF的關(guān)系,然后逐步轉(zhuǎn)換成2NF、3NF,6.3: 數(shù)據(jù)依賴的公理系統(tǒng)(1)數(shù)據(jù)依賴的公理系統(tǒng)是關(guān)系模式分解算法的理論基礎(chǔ)。 定義: 對(duì)于滿足一組函數(shù)依賴F的關(guān)系模式R,其任何一個(gè)關(guān)系r,若函數(shù)依賴XY都成立(即r中任意兩元組t,s若tX=sX,則tY=sY),則稱 F 邏輯蘊(yùn)含XY。6.3: 數(shù)據(jù)依賴的公理系統(tǒng)(2)Armstrong公理系統(tǒng) 設(shè)U為屬性集總體,
35、F是U上的一組函數(shù)依賴,于是有關(guān)系模式R(U,F(xiàn))。對(duì)于R(U,F(xiàn))來(lái)說(shuō)有下面的推理規(guī)則: A1自反律:若YXU,則XY為F所蘊(yùn)含。 A2增廣律: 若XY為F所蘊(yùn)含,且ZU,則XZYZ為F所蘊(yùn)含。 A3傳遞律: 若XY及YZ為F所蘊(yùn)含,則XZ為F所蘊(yùn)含。6.3: 數(shù)據(jù)依賴的公理系統(tǒng)(3) 根據(jù)A1,A2,A3這三條推理規(guī)則,可以得到以下三條有用的推理規(guī)則:合并規(guī)則:由XY,XZ,有XYZ。偽傳遞規(guī)則:由XY,WYZ,有XWZ。分解規(guī)則:由XY及ZY,有XZ。6.3: 數(shù)據(jù)依賴的公理系統(tǒng)(4) 定義: 在關(guān)系R(U,F(xiàn))中為F所邏輯蘊(yùn)涵的函數(shù)依賴的全體叫做F的閉包,記做:F+。 定義: 設(shè)F為屬
36、性集U上的一組函數(shù)依賴,XU,X關(guān)于函數(shù)依賴集F的閉包 XF+ 是:A|XA 定義:如果G+=F+,就說(shuō)函數(shù)依賴集F覆蓋G(F是G的覆蓋,或G是F的覆蓋),或F與G等價(jià)。F的閉包F=XY, YZF+=X,Y,Z,XY,XZ,YZ,XYZ, XX, YY, ZZ,XYX,XZX,YZY,XYZX,XY,Y Z,XYY,XZY,YZZ,XYZY,XZ,YYZ,XYZ,XZZ,YZYZ,XYZZ,XXY,XYXY,XZXY,XYZXY, XXZ,XYYZ,XZXZ,XYZYZ,XYZ,XYXZ,XZXY,XYZXZ,XZYZ,XYXYZ,XZXYZ,XYZXYZ F=XA1, , XAn的閉包F+計(jì)
37、算是一個(gè)NP完全問(wèn)題關(guān)于閉包的引理引理6.2 設(shè)F為屬性集U上的一組函數(shù)依賴,X,Y U,XY能由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y XF+用途 將判定XY是否能由F根據(jù)Armstrong公理導(dǎo)出的問(wèn)題,轉(zhuǎn)化為求出XF+ 、判定Y是否為XF+的子集的問(wèn)題6.3:數(shù)據(jù)依賴的公理系統(tǒng)(5)定理6.2 Armstrong公理系統(tǒng)是有效的、完備的 定義6.14 如果G +=F +,就說(shuō)函數(shù)依賴集F 覆蓋G(F 是G 的覆蓋,或G 是F 的覆蓋),或F與G 等價(jià)。引理6.3 F + = G + 的充分必要條件是F G + 和G F + 定義 如果函數(shù)依賴集F滿足下列條件,則稱F為一個(gè)極
38、小函數(shù)依賴集。亦稱為最小依賴集或最小覆蓋。 (1) F中任一函數(shù)依賴的右部?jī)H含有一個(gè)屬性。 (2) F中不存在這樣的函數(shù)依賴XA,使得F與F-XA 等價(jià)。 (3) F中不存在這樣的函數(shù)依賴XA, X有真子集Z使得 F-XAZA與F等價(jià)。 6.3:數(shù)據(jù)依賴的公理系統(tǒng)(6)定理6.3 每一個(gè)函數(shù)依賴集F均等價(jià)于一個(gè)極小函數(shù)依賴集 Fm 。此 Fm 稱為F的最小依賴集。 6.3:數(shù)據(jù)依賴的公理系統(tǒng)(7)F的最小依賴集Fm不唯一極小化過(guò)程( 定理6.3的證明 )也是檢驗(yàn)F是否為極小依賴集的一個(gè)算法6.4 模式的分解 把低一級(jí)的關(guān)系模式分解為若干個(gè)高一級(jí)的關(guān)系模式的方法不是唯一的 只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià),分解方法才有意義關(guān)系模式分解的標(biāo)準(zhǔn)三種模式分解等價(jià)的定義: 分解具有無(wú)損連接性 分解要保持函數(shù)依賴 分解既要保持函數(shù)依賴,又要具有無(wú)損連接性模式的分解(續(xù))例:S-L(Sno, Sdept, Sloc) F= SnoSdept,SdeptSloc,S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保密合同范本中英
- 關(guān)于加工協(xié)議合同范例
- 臨時(shí)雇傭多人合同范例
- 保安工資合同范例
- 修路外包合同范例
- 買賣狗協(xié)議合同范例
- 公司維修合同范例
- 公司意向收購(gòu)合同范例
- ??茙煼渡贤独?/a>
- 公寓包銷合作合同范本
- 夜空中最亮的星二部合唱簡(jiǎn)譜
- 《幼兒園課程》01 幼兒園課程概述
- 打井合同(范本8則)
- 風(fēng)電場(chǎng)道路和平臺(tái)工程施工設(shè)計(jì)方案
- GB/T 26695-2011家具用鋼化玻璃板
- GB/T 25052-2010連續(xù)熱浸鍍層鋼板和鋼帶尺寸、外形、重量及允許偏差
- GB/T 15057.1-1994化工用石灰石采樣與樣品制備方法
- GB/T 1094.2-2013電力變壓器第2部分:液浸式變壓器的溫升
- DB32/T 4402-2022 河湖和水利工程管理范圍劃定技術(shù)規(guī)程
- 高中課本劇 鴻門宴劇本
- 項(xiàng)目經(jīng)理崗位月度KPI績(jī)效考核表
評(píng)論
0/150
提交評(píng)論