




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6章關系數據庫設計理論定西廣播電視大學肖武德第6章關系數據庫設計理論定西廣播電視大學肖1本章要點
1.深入理解函數依賴和鍵碼的概念。學會計算屬性的封閉集。 2.模式設計是本章的重點。了解數據冗余和更新異常產生的根源;理解關系模式規范化的途徑;準確理解第一范式、第二范式、第三范式和BC范式的含義、聯系與區別;
本章要點 1.深入理解函數依賴和鍵碼的概念。學會計算屬性的2
深入理解模式分解的原則;熟練掌握模式分解的方法,能正確而熟練的將一個關系模式分解成屬于第三范式或BC范式的模式。 3.了解多值依賴和第四范式的概念,掌握把關系模式分解成屬于第四范式的模式的方法。深入理解模式分解的原則;熟練掌握模式分解的方法3學生關系Student的實例如下:SnoSNSDMNCNG99230 賀小華計算機周光OS9699239 金謙計算機周光OS9099239 金謙計算機周光編譯9299851 陳剛建筑王勇建筑89學生關系Student的實例如下:4SnoSNSnoSDSDMNSnoCNGSnoSN56.1函數依賴——6.1.1定義如果關系R的兩個元組在屬性A1,A2,…An上一致(也就是,兩個元組在這些屬性所對應的各個分量具有相同的值),則它們在另一個屬性B上也一致。那么,我們就說在關系R中屬性B函數依賴于屬性A1A2…An。 A1A2…AnB,
“A1,A2,…,An函數決定B”。A1A2…An稱為決定因素。
6.1函數依賴——6.1.1定義如果關系R的兩個元組在66.1.2關系的鍵碼
如一個或多個屬性的集合{A1,…,An}滿足如下條件,稱該集合為關系R的鍵碼: 1.這些屬性函數決定該關系的所有其它屬性。 2.{A1,…,An}的任何真子集都不能函數決定R的所有其它屬性,鍵碼必須是最小的。6.1.2關系的鍵碼 如一個或多個屬性的集合{A1,76.1.3超鍵碼包含鍵碼的屬性集稱為“超鍵碼”。因此,每個鍵碼都是超鍵碼。某些超鍵碼不是(最小的)鍵碼。每個超鍵碼都滿足鍵碼的第一個條件:函數決定它所在的關系的所有其它屬性。超鍵碼不必滿足鍵碼的第二個條件:最小化條件。6.1.3超鍵碼包含鍵碼的屬性集稱為“超鍵碼”。86.1.4函數依賴規則(1)分解/合并規則 可以把每個函數依賴右邊的屬性分解,從而使其右邊只出現一個屬性。同樣,我們也可以把左邊相同的依賴的聚集用一個依賴來表示,該依賴的左邊沒變,而右邊則為所有屬性組成的一個屬性集。兩種情況下,新的依賴集都等價于舊的依賴集。6.1.4函數依賴規則(1)分解/合并規則9函數依賴規則(2)平凡依賴規則 對于函數依賴A1A2…AnB來說,如果B是A中的某一個,我們就稱之為“平凡的”。 對于函數依賴A1A2…AnB1B2…Bm,·如果B是A的子集,則稱該依賴為平凡的。 ·如果B中至少有一個屬性不在A中,則稱該依賴為非平凡的。函數依賴規則(2)平凡依賴規則10函數依賴規則(2)
·如果B中沒有一個屬性在A中,則稱該依賴為完全非平凡的。·函數依賴A1A2…AnB1B2…Bm等價于A1A2…AnC1C2…Ck,其中 C是B的子集,但不在A中出現。我們稱這個規則為“平凡依賴規則”。
函數依賴規則(2) ·如果B中沒有一個屬性在A中,則稱該依賴11函數依賴規則(3)傳遞規則 傳遞規則使我們能把兩個函數依賴級聯成一個新的函數依賴。 ·如果A1A2…AnB1B2…Bm和B1B2…BmC1C2…Ck,在關系R中成立,則A1A2…AnC1C2…Ck在R中也成立。這個規則就稱為傳遞規則。函數依賴規則(3)傳遞規則126.1.5計算屬性的封閉集
假設{A1,A2,…,An}是屬性集,記為A,S是函數依賴集。 屬性集A在依賴集S下的封閉集是這樣的屬性集X,它使得滿足依賴集S中的所有依賴的每個關系也都滿足AX。也就是說,A1A2…AnX是蘊含于S中的函數依賴。用{A1,…,An}+表示屬性集A1…An的封閉集。允許出現平凡依賴,所以A1,…,An在{A1,…,An}+中。6.1.5計算屬性的封閉集 假設{A1,A2,…,A13
下面我們進一步理解封閉集的實際含義:
對于給定的函數依賴集S,屬性集A函數決定的屬性的集合就是屬性集A在依賴集S下的封閉集。
下面我們進一步理解封閉集的實際含義: 對于給定的函數依14
學會計算某屬性集的封閉集,還可以根據給定的函數依賴集推導蘊含于該依賴集的其他函數依賴。 已知: 關系模式R(A,B,C,D)
函數依賴ABC,CD,DA
求:蘊含于給定函數依賴的所有非平凡函數依賴。 學會計算某屬性集的封閉集,還可以根據給定的函數依賴集推導15
首先考慮各種屬性組合的封閉集。然后,依次分析各屬性集的封閉集,從中找出該屬性集所具有的新的函數依賴。 單屬性:A+=A,B+=B,C+=ACD,D+=AD 新依賴:CA (1)
ABC,CD,DA 首先考慮各種屬性組合的封閉集。然后,依次分析各屬性集的封16ABC,CD,DA
雙屬性:AB+=ABCD,AC+=ACD,AD+=AD,BC+=ABCD,BD+=ABCD,CD+=ACD新依賴:ABD ACD BCABDA CDABCDBDC(7)ABC,CD,DA17三屬性:A
B
C+=ABCD,A
B
D+=ABCD,ACD+=ACD,B
C
D+=ABCD新依賴:ABCDABDC BCDA (3)四屬性:A
B
C
D+=ABCD無新依賴_____鍵碼(3) ____超鍵碼(4)三屬性:ABC+=ABCD,ABD+=ABCD,AC186.2模式設計——6.2.1問題的提出設計關系數據庫模式時,特別是從面向對象的ODL設計或從E/R設計直接向關系數據庫模式轉換時,很容易出現的問題是冗余性,即一個事實在多個元組中重復。造成這種冗余的最常見的原因是,企圖把一個對象的單值和多值特性包含在一個關系中。6.2模式設計——6.2.1問題的提出設計關系數據庫模式19
當我們企圖把太多的信息存放在一個關系時,就會出現數據冗余和更新異常等問題。主要表現如下: 1.
數據冗余。 2.
修改異常。 3.
刪除異常。 4.插入異常。參看實例 當我們企圖把太多的信息存放在一個關系時,就會出現數據206.2.2問題的根源(1)
關系的鍵碼函數決定該關系的所有其它屬性。由于鍵碼能唯一確定一個元組,所以,也可以說關系的鍵碼函數決定該關系的所有屬性。一個關系中的所有屬性都函數依賴于該關系的鍵碼。不同的屬性在關系模式中所處的地位和扮演的角色是不同的。把鍵碼所在的屬性稱為主屬性,而把鍵碼屬性以外的屬性稱為非主屬性。6.2.2問題的根源(1)關系的鍵碼函數決定該關系的所21問題的根源(2)
不同的屬性對鍵碼函數依賴的性質和程度是有差別的。有的屬于直接依賴,有的屬于間接依賴(通常稱為傳遞依賴)。當鍵碼由多個屬性組成時,有的屬性函數依賴于整個鍵碼屬性集,而有的屬性只函數依賴于鍵碼屬性集中的一部分屬性。問題的根源(2)不同的屬性對鍵碼函數依賴的性質和程度是有差22 ·完全依賴與部分依賴
對于函數依賴WA,如果存在VW(V是W的真子集)而函數依賴VA成立,則稱A部分依賴于W;若不存在這種V,則稱A完全依賴于W。 當存在非主屬性對鍵碼部分依賴時,就會產生數據冗余和更新異常。若非主屬性對鍵碼完全函數依賴,則不會出現類似問題。 ·完全依賴與部分依賴23 ·傳遞依賴
對于函數依賴XY,如果YX(X不函數依賴于Y)而函數依賴YZ成立,則稱Z對X傳遞依賴。 如果XY,且YX,則X,Y相互依賴,這時Z與X之間就不是傳遞依賴,而是直接依賴了。我們以前所討論的函數依賴大多數是直接依賴。 ·傳遞依賴246.2.3解決的途徑
部分依賴和傳遞依賴有一個共同之處,這就是,二者都不是基本的函數依賴,而都是導出的函數依賴:部分依賴是以對鍵碼的某個真子集的依賴為基礎傳遞依賴的基礎則是通過中間屬性聯系在一起的兩個函數依賴。
6.2.3解決的途徑部分依賴和傳遞依賴有一個共同之處,25導出的函數依賴在描述屬性之間的聯系方面并沒有比基本的函數依賴提供更多的信息。在一個函數依賴集中,導出的依賴相對于基本的依賴而言,雖然從形式上看多一種描述方式,但從本質上看,則完全是冗余的。正是由于關系模式中存在對鍵碼的這種冗余的依賴導致數據庫中的數據冗余和更新異常。導出的函數依賴在描述屬性之間的聯系方面并沒有比基本的函數依賴26解決的途徑——消除關系模式中各屬性對鍵碼的冗余的依賴。由于冗余的依賴有部分依賴與傳遞依賴之分,而屬性又有主屬性與非主屬性之別,把解決的途徑分為幾個不同的級別,以屬于第幾范式來區別。解決的途徑——消除關系模式中各屬性對鍵碼的冗余的依賴。27
范式就是符合某一種級別的關系模式的集合。 目前主要有六種范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。第一范式需滿足的要求最低,在第一范式基礎上滿足進一步要求的為第二范式:
1NF2NF3NFBCNF4NF5NF通過分解把屬于低級范式的關系模式轉換為幾個屬于高級范式的關系模式的集合,這一過程稱為規范化。 范式就是符合某一種級別的關系模式的集合。28第一范式(1NF)如果一個關系模式R的所有屬性都是不可分的基本數據項,則這個關系屬于第一范式。在任何一個關系數據庫系統中,第一范式是對關系模式的一個最起碼的要求。不滿足第一范式的數據庫模式不能稱為關系數據庫。第一范式(1NF)如果一個關系模式R的所有屬性都是不可分的基29第二范式(2NF)若關系模式R屬于第一范式,且每個非主屬性都完全函數依賴于鍵碼,則R屬于第二范式。第二范式就是不允許關系模式中的非主屬性部分函數依賴于鍵碼。
第二范式(2NF)若關系模式R屬于第一范式,且每個非主屬性都30
學生關系模式Student(Sno,Sname,Sdept,Mname,Cname,Grade)。該關系模式存在如下部分依賴:Sno,CnameSname,Sdept,Mname
顯然不滿足“每個非主屬性都完全函數依賴于鍵碼”的條件。所以學生關系模式不屬于第二范式。P學生關系模式Student(Sno,Sname,Sdept31關系分解的含義關系R的分解包括兩個方面,一方面是把R的屬性分開,以構成兩個新的關系模式:另一方面是通過對R的元組進行投影而產生兩個新的關系。關系分解的含義關系R的分解包括兩個方面,一方面是把R的屬性分32分解的過程
給定一個模式為{A1,A2,…,An}的關系R,我們可以把R分解為兩個關系S和T,模式分別為{B1,B2,…,Bm}和{C1,C2,…,Ck},使得: 1.{A1,…,An}= {B1,…,Bm}∪{C1,…,Ck}分解的過程 給定一個模式為{A1,A2,…,An}的關系33
2.關系S中的元組是R的所有元組在{B1,…,Bm}上的投影。對于R的當前實例的每個元組t,取t在屬性B1,B2,…,Bm上的分量。這些分量構成一個元組,它屬于S的當前實例。 3.類似地,關系T中的元組是R的當前實例中的元組在屬性集{C1,C2,…,Ck}上的投影。 2.關系S中的元組是R的所有元組在{B1,…,Bm}上的投34第三范式(3NF)
若關系模式R屬于第一范式,且每個非主屬性都不傳遞依賴于鍵碼,則R屬于第三范式。這里應說明一點:屬于第三范式的關系模式必然屬于第二范式。因為可以證明部分依賴蘊含著傳遞依賴。第三范式(3NF)若關系模式R屬于第一范式,且每個非主屬性35關系模式S1(Sno,Sname,Sdept,Mname)由于存在傳遞依賴而不屬第三范式.S1分解成兩個關系模式S11(Sno,Sname,Sdept)S12(Sdept,Mname)關系模式36BC范式(BCNF)
若關系模式R屬于第一范式,且每個屬性都不傳遞依賴于鍵碼,則R屬于BC范式。通常BC范式的條件有多種等價的表述:每個非平凡依賴的左邊必須包含鍵碼;每個決定因素必須包含鍵碼。BC范式既檢查非主屬性,又檢查主屬性。當只檢查非主屬性時,就成了第三范式。滿足BC范式的關系都必然滿足第三范式。BC范式(BCNF)若關系模式R屬于第一范式,且每個屬性都37關系模式STC(SN,TN,CN,G)
SN,CNTN,G SN,TNCN,G TNCN
鍵碼為:{SN,CN}和{SN,TN}。 關系模式STC分解成 SC(SN,CN,G) ST(SN,TN)
關系模式STC(SN,TN,CN,G)38關系模式STC的實例
SN TN CN G
楊紫蘭
文松
程序設計90
楊紫蘭
孫蘭竹
數據庫88魏紅孫蘭竹
數據庫92魏紅
田梅程序設計86關系模式STC的實例39分解后關系模式ST的實例如下:SNTN楊紫蘭
文松
楊紫蘭
孫蘭竹
魏紅
孫蘭竹
魏紅
田梅
SNCNG楊紫蘭
程序90楊紫蘭
數據庫
88魏紅
數據庫
92魏紅
程序86分解后關系模式ST的實例如下:SNTN楊紫蘭文松楊紫蘭40ST和SC以SN為公共屬性進行連接:SNTN CN G(真/偽)楊紫蘭文松 程序 90 √楊紫蘭文松 數據庫88 ×楊紫蘭孫蘭竹 程序90 ×楊紫蘭孫蘭竹 數據庫88 √ST和SC以SN為公共屬性進行連接:416.2.4分解的原則
主要涉及兩個原則: ·無損連接(LosslessJoin) 如果對新的關系進行自然連接得到的元組的集合與原關系完全一致,則稱為無損連接。 無損連接反映了模式分解的數據等價原則。6.2.4分解的原則主要涉及兩個原則:42
·保持依賴(PreserveDependency) 如果分解后總的函數依賴集與原函數依賴集保持一致,則稱為保持依賴。 保持依賴反映了模式分解的依賴等價原則。依賴等價保證了分解后的模式與原有的模式在數據語義上的一致性。 ·保持依賴(PreserveDependency)436.2.5分解的方法
關系模式分解的基礎是鍵碼和函數依賴。當我們對關系模式中屬性之間的內在聯系做了深入、準確的分析,確定了鍵碼和函數依賴之后,模式分解因有章(規則)可循,有法(方法)可依而顯得簡單明了。
6.2.5分解的方法關系模式分解的基礎是鍵碼和函數依賴44模式分解的兩個規則(1)
·公共屬性共享 要把分解后的模式連接起來,公共屬性是基礎。若分解時模式之間未保留公共屬性,則只能通過笛卡爾積相連,導致元組數量膨脹,真實信息丟失,結果失去價值。保留公共屬性,進行自然連接是分解后的模式實現無損連接的必要條件。模式分解的兩個規則(1) ·公共屬性共享45模式分解的兩個規則(2)
·相關屬性合一
把以函數依賴的形式聯系在一起的相關屬性放在一個模式中,從而使原有的函數依賴得以保持。這是分解后的模式實現保持依賴的充分條件。然而,對于存在部分依賴或傳遞依賴的相關屬性則不應放在一個模式中,因為這正是導致數據冗余和更新異常的根源,從而也正是模式分解所要解決的問題。模式分解的兩個規則(2) ·相關屬性合一46模式分解的三種方法部分依賴歸子集;完全依賴隨鍵碼。
要使不屬于第二范式的關系模式“升級”,就要消除非主屬性對鍵碼的部分依賴。解決的辦法就是對原有模式進行分解。分解的關鍵在于:找出對鍵碼部分依賴的非主屬性所依賴的鍵碼的真子集,把這個真子集與所有相應的非主屬性組合成一個新的模式;對鍵碼完全依賴的所有非主屬性則與鍵碼組合成另一個新模式。
模式分解的三種方法部分依賴歸子集;完全依賴隨鍵碼。47學生選課SC(Sno,Sname,Ssex,Sage,Cno,Cname,Grade)
CnoCnameSnoSname,Ssex,SageSno,CnoGrade Sno,CnoSname,Ssex,Sage Sno,CnoCnamePPPP48本例中有兩個部分依賴,一個完全依賴,結果原來模式一分為三:
SC1(Sno,Sname,Ssex,Sage) SC2(Cno,Cname) SC3(Sno,Cno,Grade)
本例中有兩個部分依賴,一個完全依賴,結果原來模式一分為三:49基本依賴為基礎,中間屬性作橋梁
要使不屬于第三范式的關系模式“升級”,就要消除非主屬性對鍵碼的傳遞依賴。解決的辦法非常簡單:以構成傳遞鏈的兩個基本依賴為基礎形成兩個新的模式,這樣既切斷了傳遞鏈,又保持了兩個基本依賴,同時又有中間屬性作為橋梁,跨接兩個新的模式,從而實現無損的自然連接。基本依賴為基礎,中間屬性作橋梁50
找違例自成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股權捐贈協議書
- 在農村分家分房協議書
- 租賃空調協議書
- 菜籽收購協議書
- 職工派遣協議書
- 桌游店入股合同協議書
- 電梯索賠協議書
- 美國垃圾協議書
- 資料委托協議書
- 股東陽光協議書
- 年產二十萬噸合成氨轉化工段設計
- 《煤礦安全規程》專家解讀(詳細版)
- DB63-T 1806-2020金屬非金屬露天礦山企業安全生產風險分級管控和隱患排查治理實施指南
- 供應過程的核算說課市公開課金獎市賽課一等獎課件
- 2023年海南省中考英語試題
- 智慧海南總體方案(2020-2025年)
- DG-TJ 08-2122-2021 保溫裝飾復合板墻體保溫系統應用技術標準
- SFR-SE-ARC-0031激光跟蹤設置-作業指導書
- 錄音棚、攝影棚、直播室設計方案
- 安全生產隱患排查概述PPT課件
- CRCC認證目錄
評論
0/150
提交評論