數(shù)據(jù)庫(kù)原理及應(yīng)用第二版第6章 關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論_第1頁
數(shù)據(jù)庫(kù)原理及應(yīng)用第二版第6章 關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論_第2頁
數(shù)據(jù)庫(kù)原理及應(yīng)用第二版第6章 關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論_第3頁
數(shù)據(jù)庫(kù)原理及應(yīng)用第二版第6章 關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論_第4頁
數(shù)據(jù)庫(kù)原理及應(yīng)用第二版第6章 關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)是在給定的應(yīng)用環(huán)境下,創(chuàng)建滿足用戶需求且性能良好的關(guān)系模式、建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能有效存儲(chǔ)和管理數(shù)據(jù),滿足用戶需求。 規(guī)范化理論研究的是關(guān)系模式中各屬性之間的依賴關(guān)系及其對(duì)關(guān)系模式性能的影響,探討“好”的關(guān)系模式應(yīng)具備的性質(zhì)。1第 6 章 關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論 6.1 函數(shù)依賴 6.2 關(guān)系規(guī)范化 26.1 函數(shù)依賴一、函數(shù)依賴基本概念 公式: Y=f( X )自變量因變量把X函數(shù)決定Y,或Y函數(shù)依賴于X表示為: X Y關(guān)系數(shù)據(jù)庫(kù)中的函數(shù)依賴注重語義上的關(guān)系, 比如: 省=f(城市)3定義:如果有一個(gè)關(guān)系模式R(A1,A2,An),X和Y為A1,A2,An的子集,那么

2、對(duì)于關(guān)系R中的任意一個(gè)X值,都只有一個(gè)Y值與之對(duì)應(yīng),則稱X函數(shù)決定Y,或Y函數(shù)依賴于X。例如:對(duì)學(xué)生關(guān)系模式:Student(Sno, SName, Sdept, Sage)有:SnoSName, SnoSdept, SnoSage對(duì)學(xué)生修課關(guān)系模式:SC(Sno, Cno, Grade)有:(Sno, Cno)Grade4形式化定義:設(shè)有關(guān)系模式R(A1,A2,An),X和Y均為A1,A2,An的子集,r是R的任一具體關(guān)系,t1、t2是r中的任意兩個(gè)元組;如果t1X=t2X t1Y=t2Y,則稱X函數(shù)決定Y,或Y函數(shù)依賴于X,記為XY。5二、一些術(shù)語和符號(hào) 設(shè)有關(guān)系模式R(A1,A2,An)

3、,X和Y均為A1,A2,An的子集如果XY,但Y不包含于X,則稱X Y是 非平凡的函數(shù)依賴。如果Y不函數(shù)依賴于X,則記作X Y。如果XY,則稱X為決定因子。如果XY,并且Y X,則記作X Y 。如果XY,并且對(duì)于X的一個(gè)任意真子集X 都有X Y,則稱Y完全函數(shù)依賴于X,記作 X Y;如果X Y成立,則稱Y部分函數(shù)依賴于X,記作 X Y 。如果XY(非平凡函數(shù)依賴,并且Y X)、YZ,則稱Z傳遞函數(shù)依賴于X。6例1:有關(guān)系模式: SC(Sno,Sname,Cno,Credit,Grade) 主碼為(Sno, Cno) 函數(shù)依賴關(guān)系有: SnoSname (Sno, Cno) Sname (Sno

4、, Cno) Grade7例2:有關(guān)系模式: S(Sno,Sname,Dept,Dept_master) 假設(shè)一個(gè)系只有一個(gè)主任,主碼為Sno。函數(shù)依賴關(guān)系有: Sno Sname 由于:Sno Dept Dept Dept_master 所以有:Sno Dept_master8三、為什么要討論函數(shù)依賴 設(shè)有描述學(xué)生修課及住宿情況的關(guān)系模式: S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sno Sdept SLOC Cno Grade 9812101 計(jì)算機(jī) 2公寓 DB 809812101 計(jì)算機(jī) 2公寓 OS 859821101 信息 1公寓 C 909821101 信息

5、 1公寓 DS 849821102 信息 1公寓 OS 78存在問題數(shù)據(jù)冗余問題數(shù)據(jù)更新問題數(shù)據(jù)插入問題數(shù)據(jù)刪除問題96.2 關(guān)系規(guī)范化 一、關(guān)系模式中的碼1、候選碼 設(shè)K為R (U, F)中的屬性或?qū)傩越M,若K fU,則K為R候選碼。(K為決定R全部屬性值的最小屬性組)。主碼:關(guān)系R (U, F)中可能有多個(gè)候選碼,則選其中一個(gè)作為主碼全碼:候選碼為整個(gè)屬性組。主屬性與非主屬性: 在R (U, F)中,包含在任一候選碼中的屬性稱為主屬性,不包含在任一候選碼中的屬性稱為非主屬性。10例:SC(Sno,Cno,Grade)其候選碼為:(Sno,Cno),也為主碼則主屬性為: Sno,Cno ,

6、Grade為非主屬性2、外碼定義:若R(U,F(xiàn))的屬性(組)X(X屬于U)是另一個(gè)關(guān)系S的主碼,則稱X為R的外碼。例:S(Sno,Sname,Ssex,Sdept,Sage) SC(Sno,Cno,Grade)11二、范式 關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系要滿足一定的要求,滿足不同程度要求的為不同的范式。滿足最低要求的為第一范式,簡(jiǎn)稱1NF(First Normal Form)。在第一范式中進(jìn)一步滿足一些要求的為第二范式,簡(jiǎn)稱2NF,依此類推,還有3NF,BCNF,4NF,5NF。121、第一范式 定義:不包含重復(fù)組的關(guān)系(即不包含非原子項(xiàng)的屬性)是第一范式的關(guān)系。 系名稱 高級(jí)職稱人數(shù)教授 副教授 計(jì)算機(jī)

7、系 610信息管理系 35電子與通訊系 48系名稱教授 副教授 計(jì)算機(jī)系 610信息管理系 35電子與通訊系 48132、第二范式 定義:如果R(U,F)1NF,并且R中的每個(gè)非主屬性都完全函數(shù)依賴于主碼,則R(U,F)2NF。 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)就不是2NF的。 因?yàn)椋⊿no,Cno)是主碼, 而又有:SnoSdept, 因此有: (Sno,Cno) Sdept14分解過程為:用組成主碼的屬性集合的每一個(gè)子集作為主碼構(gòu)成一個(gè)表將依賴于這些主碼的屬性放置到相應(yīng)的表中去掉只由主碼的子集構(gòu)成的表 S-L-C關(guān)系模式分解后的形式為: S-L(Sno,S

8、dept,Sloc) S-C(Sno,Cno,Grade) S-L有:Sno Sdept,Sno SLOC:是2NF S-C有:(Sno, Cno) Grade:是2NF 數(shù)據(jù)冗余插入異常153、第三范式 定義:如果R(U,F) 2NF,并且所有非主屬性都不傳遞依賴于主碼,則R(U,F) 3NF。 關(guān)系模式S-L(Sno,Sdept,Sloc) 因?yàn)橛校?SnoSdept,SdeptSloc 因此有:Sno Sloc 因此,不是3NF的關(guān)系模式。16分解過程:(1)對(duì)于不是候選碼的每個(gè)決定因子,從表中 刪去依賴于它的所有屬性;(2)新建一個(gè)表,新表中包含在原表中所有依 賴于該決定因子的屬性;(

9、3)將決定因子作為新表的主碼。S-L分解后的關(guān)系模式為: S-D(Sno,Sdept) S-L(Sdept,Sloc)對(duì)S-D,有:Sno Sdept,因此S-D是3NF的對(duì)S-L,有:Sdept Sloc,因此S-L也是3NF的174、BCNF BCNF也叫Boyce-Codd范式,它是3NF的進(jìn)一步規(guī)范化,即限制條件更嚴(yán)格。 例如:設(shè)關(guān)系模式TCS(T,C,S),T表示教師,C表示課程,S表示學(xué)生。語義假設(shè)是,每一位教師只講授一門課程;每門課程由多個(gè)教師講授;某一學(xué)生選定某門課程,就對(duì)應(yīng)于一確定的教師。根據(jù)語義假設(shè),TCS的函數(shù)依賴是: (S,C)T,(S,T)C,TC。18對(duì)于TCS,(

10、S,C)和(S,T)都是候選鍵,兩個(gè)候選鍵相交,有公共的屬性S。TCS中不存在非主屬性,也就不可能存在非主屬性對(duì)鍵的部分依賴或傳遞依賴,所以TCS3NF。但從TCS的一個(gè)關(guān)系實(shí)例分析,仍存在一些問題。 TCST1C1S1T1C1S2T2C1S3T2C1S4T3C2S2T4C2S2T4C3S219A、數(shù)據(jù)冗余。雖然每個(gè)教師只開一門課,但每個(gè)選修該教師該門課程的學(xué)生元組都要記錄這一信息。B、插入異常。當(dāng)某門課程本學(xué)期不開,自然就沒有學(xué)生選修。沒有學(xué)生選修,因?yàn)橹鲗傩圆荒転榭眨處熒显撻T課程的信息就無法插入。C、刪除異常。如果選修某門課程的學(xué)生全部畢業(yè),刪除學(xué)生記錄的同時(shí),隨之也刪除了教師開設(shè)該門課

11、程的信息。D、更新異常。當(dāng)某個(gè)教師開設(shè)的某門課程改名后,所有選修該教師該門課程的學(xué)生元組都要進(jìn)行修改,如果漏改某個(gè)數(shù)據(jù),則破壞了數(shù)據(jù)的完整性。 20定義:若關(guān)系模式R1NF,且能決定其它屬性取值的屬性(組)必定包含碼,則RBCNF。 或者,我們也可以說:如果一個(gè)關(guān)系的每個(gè)決定因子都是候選碼,則其是BCNF。 或者:如果R3NF,并且不存在主屬性對(duì)非碼的函數(shù)依賴,則其是BCNF。BCNF規(guī)范化:把3NF關(guān)系模式通過投影分解轉(zhuǎn)換成BCNF關(guān)系模式的集合。將TCS分解為兩個(gè)關(guān)系模式ST(S,T)和TC(T,C)。其中ST的鍵為S,TC的鍵為T; ST , TC 。STBCNF,TCBCNF。211N

12、F2NF3NFBCNF消除決定屬性不是候選鍵的非平凡的函數(shù)依賴消除非主屬性對(duì)鍵的部分函數(shù)依賴消除非主屬性對(duì)鍵的傳遞函數(shù)依賴消除主屬性對(duì)鍵的部分和傳遞函數(shù)依賴關(guān)系規(guī)范化步驟226.3 關(guān)系模式的分解準(zhǔn)則 模式分解要滿足:模式分解具有無損連接性;模式分解能夠保持函數(shù)依賴。 無損連接是指分解后的關(guān)系通過自然連接可以恢復(fù)成原來的關(guān)系,即通過自然連接得到的關(guān)系與原來的關(guān)系相比,既不多出信息、又不丟失信息。 保持函數(shù)依賴分解是指在模式的分解過程中,函數(shù)依賴不能丟失的特性,即模式分解不能破壞原來的語義。 23例:S-D-L(Sno,Dept,Sloc)有函數(shù)依賴: Sno Dept, Dept Loc 不是

13、第三范式的。三種分解方案,分別為:方案1:S-L(Sno,Sloc),D-L(Dept,Sloc)方案2:S-D(Sno,Dept),S-L(Sno,Sloc)方案3:S-D(Sno,Dept),D-L(Dept,Sloc) 這三種分解方案得到的關(guān)系模式都是第三范式的,那么如何比較這三種方案的好壞呢?由此在將一個(gè)關(guān)系模式分解為多個(gè)關(guān)系模式時(shí)除了提高規(guī)范化程度之外,還需要考慮其他的一些因素。24S_D_L關(guān)系模式某時(shí)刻的數(shù)據(jù)(r)Sno Dept Sloc S01D1 L1 S02 D2 L2 S03 D2 L2 S04 D3 L1 Sno Sloc S01L1 S02 L2 S03 L2 S0

14、4 L1 Dept Sloc D1 L1 D2 L2 D3 L1 Sno Dept Sloc S01D1 L1 S01D3L1S02 D2 L2 S03 D2L2S04D1 L1S04 D3L1S_L(r11) D_L (r12)r11*r12 (r)方案一25無損連接性 將關(guān)系模式R分解為關(guān)系模式R1,R2,Rn,若對(duì)于R中的任何一個(gè)可能的r,都有r r1*r2*rn,即r在R1,R2,Rn上的投影的自然連接等于r,則稱關(guān)系模式R的這個(gè)分解具有無損連接性。 26Sno Sloc S01L1 S02 L2 S03 L2 S04 L1 Sno Dept S01D1S02 D2 S03 D2S04

15、 D3 Sno Dept Sloc S01D1 L1 S02 D2 L2 S03 D2L2S04 D3 L1 S_D(r21) S_L (r22)S_D_L關(guān)系模式某時(shí)刻的數(shù)據(jù)(r)Sno Dept Sloc S01D1 L1 S02 D2 L2 S03 D2 L2 S04 D3L1 r21*r22 (r)方案二27 方案2自然連接后恢復(fù)成了原來的關(guān)系,因此,分解方案2具有無損連接性。 但如果假設(shè)學(xué)生S03從D2系轉(zhuǎn)到了D3系,則需在r21中將(S03,D2)改為(S03,D3),同時(shí)還需要在r22中將(S03,L2)改為(S03,L1)。如果這兩個(gè)修改沒有同時(shí)進(jìn)行,則數(shù)據(jù)庫(kù)中就會(huì)出現(xiàn)不一致信息。這是由于這樣分解得到的兩個(gè)關(guān)系模式?jīng)]有保持原來的函數(shù)依賴關(guān)系造成的。原有的函數(shù)依賴Dept Sloc在分解后跨在了兩個(gè)關(guān)系模式上。因此分解方案2沒有保持原有的函數(shù)依賴關(guān)系,也不是好的分解方法。28 分解方案3既滿足無損連接性,又保持了原有的函數(shù)依賴關(guān)系,因此它是有個(gè)好的分解方法。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論