




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第四章 關系數據庫的規(guī)范化設計第4章 關系數據庫的規(guī)范化設計 關系數據庫的規(guī)范化設計是指如何選擇一個 比較好的關系模式集合. 規(guī)范化設計理論主要包括三個方面的內容: 數據依賴、范式和模式設計方法. 其中數據依賴起著核心的作用. 數據依賴研究 數據之間的聯(lián)系,范式是關系模式的標準. 規(guī)范化設計理論對關系數據庫結構的設計起 著重要的作用.4.1.1 關系模型的外延和內涵外延就是通常所說的關系、表或當前值. 由于用戶經常對關系進行插入、刪除和修改操作,因此外延是與時間有關的,隨著時間的推移在不斷變化.內涵是與時間獨立的,是對數據的定義以及數據完整性約束的定義. 對數據的定義包括對關系、屬性、域的定義
2、和說明.對數據完整性約束的定義涉及面較廣,主要包括以下幾個方面:靜態(tài)約束: 涉及到數據之間聯(lián)系(稱為“數據依賴”)、主鍵和值域的設計.動態(tài)約束: 定義各種操作(插入、刪除、修改)對關系值的影響. 4.1.2 關系模式的冗余和異常問題例4.1 TNAMEADDRESSC#CNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4 數據冗余 如果一個教師教幾門課程,那么這個教師的地址就要重復存儲幾次。4.1.2 關系模式的冗余和異常問題操作異常修改異常 如教師t1教三門課程,在關系中就會有三個元組. 如果他的地址變了,這三個元組中的地址都要改變. 若
3、有一個元組中的地址未更改,就會造成這個教師的地址不惟一.插入異常 如果一個教師剛調來,尚未分派教學任務,那么要將教師的姓名和地址存儲到關系中去時,在屬性C#和CNAME上將為空值.刪除異常 如果要取消教師t3的教學任務,那么就要把這個教師的元組刪去,同時也把t3的地址信息從表中刪去了.4.1.3 關系模式的非形式化設計準則 關系模式的設計應盡可能只包含有直接聯(lián)系的屬性,不要包 含有間接聯(lián)系的屬性. 關系模式的設計應盡可能使得相應關系中不出現(xiàn)插入、刪除 和修改等操作異?,F(xiàn)象。如果出現(xiàn)異常,則要清楚地加以說 明,并確保更新數據庫的操作正確. 關系模式的設計應盡可能使得相應關系中避免放置經常為空 值
4、的屬性 . 關系模式的設計應盡可能使得關系的等值連接在主鍵和外鍵 的屬性上進行,并且保證連接以后不會生成額外的元組. 4.2 函數依賴 規(guī)范化 規(guī)范化理論正是用來改造關系模式,通過分解關系模式來消除其中不合適的數據依賴,以解決插入異常、刪除異常、更新異常和數據冗余問題。 4.2.1 函數依賴的定義(一) 定義4.1 設有關系模式 R(U),X 和 Y 是屬性集 U 的子集, 函數依賴是形為 XY 的一個命題, 只要 r 是 R 的當前關系,對 r 中任意兩個元組 t 和 s,都有 tX=sX蘊涵 tY=sY,那么稱FD XY在關系模式R (U)中成立. “X函數確定Y” 或 “Y函數依賴于X”
5、,記作XY.4.2.1 函數依賴的定義(二)例4.2 ABCDABCDa1b1c1d1a1b1c1d1a1b1c2d2a1b2c2d2a2b2c3d3a2b2c3d3a3b1c4d4a3b2c4d4圖 關系模式R 的兩個關系 函數依賴的說明: 1. 函數依賴不是指關系模式R的某個或某些關系實例滿足的約束條件,而是指R的所有關系實例均要滿足的約束條件。2. 函數依賴是語義范疇的概念。只能根據數據的語義來確定函數依賴。 例如“姓名年齡”這個函數依賴只有在不允許有同名人的條件下成立3. 數據庫設計者可以對現(xiàn)實世界作強制的規(guī)定。如 規(guī)定不允許同名人出現(xiàn),函數依賴“姓名年齡”成立。所插入的元組必須滿足規(guī)
6、定的函數依賴,若發(fā)現(xiàn)有同名人存在, 則拒絕裝入該元組。定義4.2 如果XY和YX同時成立,則可記為XY. 即在關系中,X值和Y值具有一一對應關系.4.2.1 函數依賴的定義(四)例4.3 設有關系模式R(ABCD),在R的關系中,屬性值有這樣 的聯(lián)系:A值與B值有一對多聯(lián)系,C值與D值之間有一 對一聯(lián)系,試根據這些規(guī)則寫出相應的函數依賴.B A, C D, D C4.2.2 FD的邏輯蘊涵定義4.3 設F是在關系模式R上成立的函數依賴的集合,XY是一個函數依賴。如果對于R的每個滿足F的關系r也滿足XY,那么稱F邏輯蘊涵XY,記為: F XY.定義4.4 設F是函數依賴集,被 F 邏輯蘊涵的函數
7、依賴全體構成的集合,稱為函數依賴集F的閉包(closure),記為F+.即 F+= XY |記為FXY. 4.2.3 FD的推理規(guī)則(二)定理4.1 FD推理規(guī)則A1、A2和A3是正確的.即:如果XY是從F用推理規(guī)則導出的,那么 XY在F+中. 定理4.2 FD的其他5條推理規(guī)則:A4(合并性,Union):XY , XZ XYZ A5(分解性,Decomposition):XY , ZY XZ A6(偽傳遞性):XY , WYZ WXZ A7(復合性,Reflexivity):XY , WZ XWYZ A8(通用一致性定理):XY , WZ X(W-Y)YZ 平凡函數依賴與非平凡函數依賴 定
8、義4.5 在關系模式R(U)中,對于U的子集X和Y,如果XY,但Y X,則稱XY是非平凡的FD若XY,但Y X, 則稱XY是平凡的FD例:在關系SC(Sno, Cno, Score)中, 非平凡函數依賴: (Sno, Cno) Score 平凡函數依賴: (Sno, Cno) Sno (Sno, Cno) Cno4.2.4 FD和關鍵碼的聯(lián)系定義4.6 設關系模式R的屬性集是U,X是U的一個子集.如果XU在R上成立,那么稱X是R的一個超鍵.如果XU在R上成立,但對于X的任一真子集X1都有X1U不成立,那么稱X是R上的一個候選鍵.本章的鍵都是指候選鍵FD和關鍵碼的聯(lián)系例4.6 在學生選課、教師任
9、課的關系模式中:R(S#,SNAME,C#,SCORE,CNAME,TNAME,TITLE) 如果規(guī)定:每個學生每學一門課只有一個成績;每個學生只有一個姓名;每個課程號只有一個課程名;每門課程只有一個任課教師. 根據這些規(guī)則,可以知道(S#,C#)能函數決定R的全部屬性,并且是一個候選鍵。雖然(S#,SNAME,C#,TNAME)也能函數決定R的全部屬性,但相比之下,只能說是一個超鍵,而不能說是候選鍵,因為其中含有多余屬性。 4.3 關系模式的分解特性把低一級的關系模式分解為若干個高一級的關系模式只有能夠保證分解后的關系模式與原關系模式等價,分解方法才有意義關系模式分解的標準: 分解具有無損連
10、接性 分解要保持函數依賴 分解既要保持函數依賴,又要具有無損連接性4.3.2 無損分解(一)例4.9rCC4343rABCr1AB2A111111112112圖 未丟失信息的分解 (b)(c)(a) rABCr1ABr2AC r1r2AB1141114111231213111212(a)(b)(c)(d)圖 丟失信息的分解 4.3.3 無損分解的測試方法(二)a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBAa4a3b32b31CDa4a3a2a1BCb14b13a2a1ABDCBA圖4.12 算法4.3的運用示意圖(一) (a) 初始表格 (a) 修改后的表格
11、a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBAa4a3b32b31CDa4a3a2b1BCb14b13a2b1ABDCBA(a) 初始表格 (a) 修改后的表格 圖4.13 算法4.3的運用示意圖(二) 4.3.3 無損分解的測試方法(三)定理4.8 如果FD XY在模式R上成立,且XY=,那么R分解成=RY,XY 是無損分解.4.4 關系模式的范式關系模式的好與壞,用什么標準衡量? 這標準就是模式的范式(Normal Forms,簡記為NF).范式是符合某一種級別的關系模式的集合.關系數據庫中的關系必須滿足一定的要求. 滿足不同程度要求的為不同范式.基于FD
12、的范式有1NF、2NF、3NF、BCNF等多種.1NF是關系模式的基礎;2NF已成為歷史,一般不再提及;數據庫設計中最常用的是3NF和BCNF.4.4.1 第一范式(1NF)定義4.13 如果關系模式R的每個關系r的屬性值都是不可分的原子值,那么稱R是第一范式(first normal form,簡記為1NF)的模式。滿足1NF的關系稱為規(guī)范化的關系,否則稱為非規(guī)范化的關系。例如: 關系模式R(NAME,ADDRESS,PHONE), 如果一個人有兩個電話號碼(PHONE),那么在關系中至少要出現(xiàn)兩個元組,以便存儲這兩個號碼。1NF是關系模式應具備的最起碼的條件 4.4.2 第二范式(2NF)
13、(一)定義4.14 對于FD WA,如果存在XW有XA成立,那么稱WA是局部依賴(A局部依賴于W);否則稱WA是完全依賴。 完全依賴也稱為“左部不可約依賴”.如果A是關系模式R的候選鍵中屬性,那么稱A是R的主屬性;否則稱A是R的非主屬性.定義4.16 如果關系模式R是1NF,且每個非主屬性完全函數依賴于候選鍵,那么稱R是第二范式(2NF)的模式. 第二范式(2NF)(二)例: R(S#,C#,SCORE,T#,TITLE) (S#,C#)是R的候選鍵。 R上有兩個FD: (S#,C#)(SCORE, T#,TITLE), C#(T#,TITLE). C# S# SCORE T# TITLE非主
14、屬性 T# 和 TITLE 局部函數依賴于碼(S, C)第二范式(2NF)(三) 因此前一個FD是局部依賴,R不是2NF模式. 此時R的關系就會出現(xiàn)冗余和異?,F(xiàn)象.數據冗余度大、插入異常、刪除異常、修改復雜. 如果把R分解成 R1(C#,T#,TITLE) R2(S#,C#,SCORE)第二范式(2NF)(四) 局部依賴(S#,C#)(T#,TITLE)就消失了. R1和R2都是2NF模式. S#C#ScoreR2R1C#T#TITLE思考:如何分解模式至第二范式?第二范式(2NF)(五)分解成2NF模式集的算法:設關系模式R(U),主鍵是W,R上還存在FD XZ,并且Z是非主屬性和XW,那么
15、WZ就是一個局部依賴。此時應把R分解成兩個模式R1(XZ),主鍵是X;(存在FD XZ )R2(Y),其中Y=U-Z, 主鍵仍是W,外鍵是X(REFERENCES R1)。利用外鍵和主鍵的聯(lián)接可以從R1和R2重新得到R.如果R1和R2還不是2NF,則重復上述過程,一直到數據庫模式中每一個關系模式都是2NF為止. 4.4.3 第三范式(3NF)(一)定義4.17 如果XY,YA,且YX和 AY,那么稱XA是傳遞依賴(A傳遞依賴于X).定義4.18 如果關系模式R是1NF,且每個非主屬性都不傳遞依賴于R的候選鍵,那么稱R是第三范式(3NF)的模式。如果數據庫模式中每個關系模式都是3NF,則稱其為3
16、NF的數據庫模式 .第三范式(3NF)(二)若存在函數依賴 C#T# 和 T#TITLE,那么C#TITLE 就是一個傳遞依賴,即R1不是3NF模式.此時R1的關系中也會出現(xiàn)冗余和異常操作。譬如一個教師開設五門課程,那么關系中就會出現(xiàn)五個元組,教師的地址就會重復五次.R1C#T#TITLE第三范式(3NF)(三)如果把R1分解成R11 (C#,T#) 和R12 (T#,TITLE)后,C#TITLE就不會出現(xiàn)在R11和R12中。這樣R11和R12都是3NF模式。C#T#R11T#TITLER12思考:如何分解模式至第三范式?第三范式(3NF)(四)分解成3NF模式集的算法設關系模式R(U),主
17、鍵是W,R上還存在FD XZ. 并且Z是非主屬性,ZX,X不是候選鍵,這樣WZ就是一個傳遞依賴。此時應把R分解成兩個模式:R1(XZ),主鍵是X; R2(Y),其中Y=U-Z, 主鍵仍是W, 外鍵是X(REFERENCES R1).利用外鍵和主鍵相匹配機制,R1和R2通過聯(lián)接可以重新得到R.如果R1和R2還不是3NF,則重復上述過程,一直到數據庫模式中每一個關系模式都是3NF為止. 第三范式(3NF)(五)若R3NF,則R的每一個非主屬性既不局部函數依賴于候選碼也不傳遞依賴于候選碼.如果R3NF,則R也是2NF.定義4.22 設關系模式R,當R上每一個FD XY滿足下列三個條件之一時:YXX是R的超鍵Y是主屬性. 關系模式R就是3NF模式. 規(guī)范化(小結)關系模式規(guī)范化的基本步驟 1NF 消除非主屬性對碼的局部函數依賴消除決定屬性 2NF集非碼的非平 消除非主屬性對碼的傳遞函數依賴凡函數依賴 3NF 消除主屬性對碼的局部和傳遞函數依賴 BCNF 規(guī)范化的基本思想 消除不合適的數據依賴
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦物基絕熱材料的研發(fā)考核試卷
- 環(huán)境設計畢設答辯
- 呼吸機轉運病人操作規(guī)范與流程
- 喉軟化病人麻醉管理
- 人體的營養(yǎng)和呼吸
- 睡眠呼吸暫停低通氣綜合癥
- 新青年麻醉學科核心課程體系建設
- 手衛(wèi)生依從性監(jiān)測數據解讀
- 自然語言及語音處理項目式教程 習題庫 02-多選題
- 供應鏈金融創(chuàng)新應用2025:中小微企業(yè)融資新策略解析
- 油罐車駕駛員日??己思殑t
- 主體結構工程驗收自評報告
- 中國音樂史與名作欣賞智慧樹知到答案章節(jié)測試2023年吉林師范大學
- 各級醫(yī)療機構醫(yī)院分級診療18個常見病分級診療流程(2023年版)
- 測控電路復習題及答案
- BEC商務英語中級考試閱讀真題
- GB/T 41735-2022綠色制造激光表面清洗技術規(guī)范
- MT/T 198-1996煤礦用液壓鑿巖機通用技術條件
- LY/T 1787-2016非結構用集成材
- GB/T 3880.3-2012一般工業(yè)用鋁及鋁合金板、帶材第3部分:尺寸偏差
- GB/T 1503-2008鑄鋼軋輥
評論
0/150
提交評論