




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1第七章第七章 關(guān)系數(shù)據(jù)庫設(shè)計理論關(guān)系數(shù)據(jù)庫設(shè)計理論廣東工業(yè)大學CIMS重點實驗室2=關(guān)系模式規(guī)范化的必要性關(guān)系模式規(guī)范化的必要性=函數(shù)依賴的概念函數(shù)依賴的概念=關(guān)系的范式關(guān)系的范式=關(guān)系模式分解關(guān)系模式分解廣東工業(yè)大學CIMS重點實驗室3數(shù)據(jù)冗余數(shù)據(jù)冗余:如系名、系主任存儲次數(shù)為:如系名、系主任存儲次數(shù)為=學生人數(shù)學生人數(shù)*選課門數(shù)選課門數(shù)插入異常插入異常:當某系沒有招生時,有關(guān)系的信息無法插入:當某系沒有招生時,有關(guān)系的信息無法插入刪除異常刪除異常:學生全部畢業(yè)后,有關(guān)系的基礎(chǔ)信息也無:學生全部畢業(yè)后,有關(guān)系的基礎(chǔ)信息也無更新異常更新異常:某系換主任:某系換主任規(guī)范化的必要性規(guī)范化的必要性
2、SnoSnameSageSdept系主任系主任CnoGrade01李用李用20計算機計算機王五王五19201李用李用20計算機計算機王五王五28501李用李用20計算機計算機王五王五38803趙揚趙揚21材料材料馬八馬八25004張昕昕張昕昕19材料材料馬八馬八378SnoSnameSageSdept系主任系主任CnoGrade01李用李用20計算機計算機王五王五19201李用李用20計算機計算機王五王五28501李用李用20計算機計算機王五王五38803趙揚趙揚21材料材料馬八馬八25004張昕昕張昕昕19材料材料馬八馬八378廣東工業(yè)大學CIMS重點實驗室4規(guī)范化的必要性規(guī)范化的必要性數(shù)據(jù)
3、冗余盡可能少數(shù)據(jù)冗余盡可能少數(shù)據(jù)冗余:數(shù)據(jù)量猛增,系統(tǒng)負擔加重數(shù)據(jù)冗余:數(shù)據(jù)量猛增,系統(tǒng)負擔加重數(shù)據(jù)冗余:數(shù)據(jù)冗余:為保證數(shù)據(jù)的一致、完整,維護工作量增加為保證數(shù)據(jù)的一致、完整,維護工作量增加數(shù)據(jù)冗余:易產(chǎn)生錯誤的統(tǒng)計數(shù)據(jù)冗余:易產(chǎn)生錯誤的統(tǒng)計/查詢結(jié)果查詢結(jié)果外碼是關(guān)系數(shù)據(jù)庫不可缺少的外碼是關(guān)系數(shù)據(jù)庫不可缺少的“數(shù)據(jù)冗余數(shù)據(jù)冗余”不能產(chǎn)生插入不能產(chǎn)生插入/刪除異常刪除異常多種信息混合存儲在一張表內(nèi)多種信息混合存儲在一張表內(nèi)將將“靜態(tài)信息靜態(tài)信息”與與“動態(tài)信息動態(tài)信息”分開分開不能由于更新引起數(shù)據(jù)不一致不能由于更新引起數(shù)據(jù)不一致當數(shù)據(jù)冗余過大,冗余數(shù)據(jù)不能全面更新當數(shù)據(jù)冗余過大,冗余數(shù)據(jù)不能
4、全面更新外碼的更新一致性通過外碼的更新一致性通過DBMS自動控制自動控制廣東工業(yè)大學CIMS重點實驗室5R(U, F)簡化表示簡化表示關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴R(U, D, DOM, F)關(guān)系名關(guān)系名屬性名集合屬性名集合域的集合域的集合屬性向域?qū)傩韵蛴虻挠诚蟮挠诚髮傩蚤g數(shù)據(jù)屬性間數(shù)據(jù)的依賴關(guān)系的依賴關(guān)系廣東工業(yè)大學CIMS重點實驗室6例:例: U= Sno, Sname, Sdept, Mname, Cname, Grade一個系有若干學生,但一個學生只屬于一個系一個系有若干學生,但一個學生只屬于一個系一個系只有一個系主任一個系只有一個系主任一個學生可選修多門課,每門課有多個學生選修一個學生可
5、選修多門課,每門課有多個學生選修每個學生只有一個名字每個學生只有一個名字每個學生所學的每門課程都有一個成績每個學生所學的每門課程都有一個成績FSno Sdept, Sdept Mname, (Sno, Cname) Grade關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴主主碼碼廣東工業(yè)大學CIMS重點實驗室7n一對一關(guān)系(一對一關(guān)系(1 1) U= Sno, Sname, Sdept, Mname, Cname, Gradeu如果該學校中學生無重名如果該學校中學生無重名, 則學號與姓名之間是則學號與姓名之間是1 1關(guān)系關(guān)系u一個學號唯一地決定一個姓名一個學號唯一地決定一個姓名u一個姓名也可決定唯一的學號一個姓名也
6、可決定唯一的學號u設(shè)設(shè)X、 Y是關(guān)系是關(guān)系R的兩個屬性(集)。的兩個屬性(集)。 如果對于如果對于X中的任一中的任一具體值,具體值,Y中至多有一個值與之對應(yīng),且反之亦然中至多有一個值與之對應(yīng),且反之亦然,則稱則稱X、 Y兩屬性間是一對一關(guān)系。兩屬性間是一對一關(guān)系。關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴廣東工業(yè)大學CIMS重點實驗室8n一對多關(guān)系(一對多關(guān)系(1 m) U= Sno, Sname, Sdept, Mname, Cname, Gradeu如:學號與系如:學號與系(Sdept) 之間是之間是1 m關(guān)系關(guān)系u一個學號唯一地決定一個系一個學號唯一地決定一個系(Sdept)u一個系一個系(Sdept)
7、不能決定唯一的學號(對應(yīng)多個)不能決定唯一的學號(對應(yīng)多個)u設(shè)設(shè)X、 Y是關(guān)系是關(guān)系R的兩個屬性(集)。的兩個屬性(集)。 如果對于如果對于X中的任一中的任一具體值,具體值,Y中至多有一個值與之對應(yīng),而中至多有一個值與之對應(yīng),而Y中的一個值卻可中的一個值卻可以和以和X中的中的n個值(個值(n0)相對應(yīng),則稱)相對應(yīng),則稱Y對對X是一對多關(guān)系。是一對多關(guān)系。關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴廣東工業(yè)大學CIMS重點實驗室9n多對多關(guān)系(多對多關(guān)系(n m) U= Sno, Sname, Sdept, Mname, Cname, Gradeu如:學號與課程名稱如:學號與課程名稱(Cname) 之間是之間是
8、n m關(guān)系關(guān)系u一個學號對應(yīng)了多門課程名稱一個學號對應(yīng)了多門課程名稱(Cname) u一個課程名稱一個課程名稱(Cname) 對應(yīng)了多個學號對應(yīng)了多個學號u設(shè)設(shè)X、 Y是關(guān)系是關(guān)系R的兩個屬性(集)。的兩個屬性(集)。 如果對于如果對于X中的任一具體值,中的任一具體值,Y中有中有m(m0)個值與之對應(yīng),)個值與之對應(yīng),而而Y中的一個值也可以和中的一個值也可以和X中的中的n個值(個值(n0)相對)相對應(yīng)應(yīng),則稱則稱Y對對X是多對多關(guān)系。是多對多關(guān)系。關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴廣東工業(yè)大學CIMS重點實驗室10=屬性間的三種關(guān)系實際上是:屬性間的三種關(guān)系實際上是:屬性值之間相互依賴又相互制約的反映,
9、稱為屬屬性值之間相互依賴又相互制約的反映,稱為屬性間的數(shù)據(jù)依賴。性間的數(shù)據(jù)依賴。 數(shù)據(jù)依賴是現(xiàn)實世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)依賴是現(xiàn)實世界屬性間相互聯(lián)系的抽象,是世界內(nèi)在的性質(zhì)世界內(nèi)在的性質(zhì),是語義的體現(xiàn)。是語義的體現(xiàn)。 =數(shù)據(jù)依賴共有三種數(shù)據(jù)依賴共有三種函數(shù)依賴(函數(shù)依賴(Functional Dependency,簡稱簡稱FD)多值依賴(多值依賴(Multivalued Dependency,簡稱簡稱MVD)連接依賴(連接依賴(Join Dependency,簡稱簡稱JD)關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴廣東工業(yè)大學CIMS重點實驗室11設(shè)設(shè)R(U)是一個關(guān)系模式,是一個關(guān)系模式,X和和Y是是
10、U的子集。對于任意的子集。對于任意一個可能的關(guān)系一個可能的關(guān)系r,如果不存在兩個元組,它們在如果不存在兩個元組,它們在X上上的屬性值相同,在的屬性值相同,在Y上的屬性值不同,則:上的屬性值不同,則: X函數(shù)確定函數(shù)確定Y 或或 Y函數(shù)依賴于函數(shù)依賴于XABCDEFa1b15d137a1b15d27da2b35d32ra2b35d32ga3b26d136a6b66d528YABCDEFa1b15d137a1b15d13da2b35d32ra2b35d32ga3b26d136a6b66d528X YX Y關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴XXY廣東工業(yè)大學CIMS重點實驗室12=如果兩屬性集如果兩屬性集X、
11、Y間是間是1 1關(guān)系,則存在函關(guān)系,則存在函數(shù)依賴:數(shù)依賴: XY。 如:如果不允許同名學生如:如果不允許同名學生存在,則有:存在,則有: SnoSname。 =如果兩屬性集如果兩屬性集Y 、 X間是間是1 m關(guān)系關(guān)系,則存在函則存在函數(shù)依賴:數(shù)依賴: XY。 如:如: SnoSdept=如果兩屬性集如果兩屬性集X、 Y間是間是m n關(guān)系關(guān)系,則不存在則不存在函數(shù)依賴。函數(shù)依賴。 如如Sno與與Cname之間即如此。之間即如此。 U= Sno, Sname, Sdept, Mname, Cname, Grade關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴廣東工業(yè)大學CIMS重點實驗室13=在關(guān)系模式在關(guān)系模式R(
12、U)中,如果中,如果 ,并且對于,并且對于X的任意真子集的任意真子集X,都有都有 ,則稱則稱Y完全函數(shù)依賴于完全函數(shù)依賴于X, 記作記作 。否。否則稱則稱Y部分函數(shù)依賴于部分函數(shù)依賴于X,記作記作 部分函數(shù)依賴部分函數(shù)依賴YX YX YXfYXpSnoSnameSsexSageSdept98001李用李用M20計算機計算機98002王儀王儀M18機電工程機電工程98003趙揚趙揚F21材料材料98004張昕昕張昕昕F19材料材料98005王順德王順德M20機電工程機電工程關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴XXY廣東工業(yè)大學CIMS重點實驗室14=若若R(U)是一個關(guān)系模式,對于是一個關(guān)系模式,對于U的子
13、集的子集X和和Y,有有XABCDEa1 b15d13a1 b15d13a2 b35d32a2 b15d42a3 b26d13a6 b66d52平凡函數(shù)依賴平凡函數(shù)依賴是非平凡函數(shù)依賴那么稱但YXXYYX,是平凡函數(shù)依賴那么稱但YXXYYX,非平凡函非平凡函數(shù)依賴數(shù)依賴ABCDEa1 b15d13a1 b15d13a2 b35d32a2 b15d42a3 b26d13a6 b66d52關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴YXY廣東工業(yè)大學CIMS重點實驗室15=在關(guān)系模式在關(guān)系模式R(U)中,如果中,如果 , , , 則則稱稱Z對對X傳遞函數(shù)依賴。傳遞函數(shù)依賴。傳遞函數(shù)依賴傳遞函數(shù)依賴YX XY SnoSn
14、ameSsexSageSdeptMname98001李用李用M20計算機計算機陳一陳一98002王儀王儀M18機電工程機電工程王五王五98003趙揚趙揚F21材料材料李四李四98004張昕昕張昕昕F19材料材料李四李四98005王順德王順德M20機電工程機電工程王五王五XZY )(ZY YZ關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴廣東工業(yè)大學CIMS重點實驗室16設(shè)設(shè)K為關(guān)系模式為關(guān)系模式R(U,F(xiàn))中的屬性或?qū)傩约现械膶傩曰驅(qū)傩约?,若若則則 K稱為稱為R的一個候選碼。的一個候選碼。 =碼碼UKfSnoSname Ssex SageSdeptMname98001李用李用M20計算機計算機陳一陳一98002
15、王儀王儀M18機電機電王五王五98003趙揚趙揚F21材料材料李四李四98004張昕昕張昕昕F19材料材料李四李四98005王順德王順德M20機電機電王五王五關(guān)于數(shù)據(jù)依賴關(guān)于數(shù)據(jù)依賴碼碼廣東工業(yè)大學CIMS重點實驗室17=符合某種級別的關(guān)系模式的集合符合某種級別的關(guān)系模式的集合關(guān)系必須滿足一定的要求關(guān)系必須滿足一定的要求滿足不同程度的要求滿足不同程度的要求INF非規(guī)范化關(guān)系非規(guī)范化關(guān)系2NF5NF3NF4NFNFNFBCNFNFNFNF54321關(guān)系范式關(guān)系范式1NF廣東工業(yè)大學CIMS重點實驗室18=非規(guī)范化的關(guān)系非規(guī)范化的關(guān)系當一個關(guān)系中的所有分量都是不可分的數(shù)據(jù)項時當一個關(guān)系中的所有分量
16、都是不可分的數(shù)據(jù)項時,該關(guān)系是規(guī)范化的該關(guān)系是規(guī)范化的關(guān)系范式關(guān)系范式具有組合數(shù)據(jù)項的非規(guī)范化的表具有多值數(shù)據(jù)項非規(guī)范化表廣東工業(yè)大學CIMS重點實驗室19=如果一個關(guān)系模式如果一個關(guān)系模式R的所有屬性都是不可分的基本的所有屬性都是不可分的基本數(shù)據(jù)項,則:數(shù)據(jù)項,則:NFR1SLC(Sno, Sname, Sdept, Dloc, Cno, Grade)滿足滿足NFSLC 1CnoSnoSdeptDlocGrade候選碼候選碼DlocCnoSnoSnameCnoSnoSdeptCnoSnoppp),(),(),(GradeCnoSnof),(部分函數(shù)依賴部分函數(shù)依賴數(shù)據(jù)冗余太多數(shù)據(jù)冗余太多。如
17、:選修。如:選修10門課,其他相關(guān)信息重復門課,其他相關(guān)信息重復10次次更新復雜更新復雜。如:轉(zhuǎn)系需修改。如:轉(zhuǎn)系需修改 Dloc插入異常插入異常。如:未選課的學生,無法插入。如:未選課的學生,無法插入刪除異常刪除異常。如:若某學生全部的課程都不選了,將刪除他的其他信息。如:若某學生全部的課程都不選了,將刪除他的其他信息關(guān)系范式關(guān)系范式Sname廣東工業(yè)大學CIMS重點實驗室20=如果一個關(guān)系模式如果一個關(guān)系模式 ,且每個非主屬性都完且每個非主屬性都完全函數(shù)依賴于全函數(shù)依賴于R的碼,則:的碼,則:NFR1關(guān)系范式關(guān)系范式NFR2SC(Sno, Cno, Grade)NFSC 2CnoSnoSn
18、ameSdeptDlocGrade候選碼候選碼傳遞函傳遞函數(shù)依賴數(shù)依賴將將SL與與SC分開降低冗余度分開降低冗余度轉(zhuǎn)系需修改轉(zhuǎn)系需修改 SL中的記錄中的記錄未選課的學生,可插入未選課的學生,可插入SL刪除選課只與刪除選課只與SC有關(guān)有關(guān)SL(Sno, Sname, Sdept, Dloc)NFSL 2Sno存在問題得到緩解存在問題得到緩解數(shù)據(jù)冗余太多數(shù)據(jù)冗余太多。如:。如:Dloc更新復雜更新復雜。如:轉(zhuǎn)系需修改如:轉(zhuǎn)系需修改 Dloc插入異常插入異常。如:無學生的系如:無學生的系刪除異常刪除異常。如:學生全畢業(yè)如:學生全畢業(yè)仍有問題仍有問題廣東工業(yè)大學CIMS重點實驗室21=對于關(guān)系模式對于
19、關(guān)系模式R,每個非主屬性既不部分函數(shù)依賴于每個非主屬性既不部分函數(shù)依賴于R的候的候選碼,也不傳遞函數(shù)依賴于選碼,也不傳遞函數(shù)依賴于R的候選碼,則:的候選碼,則:關(guān)系范式關(guān)系范式NFR3SnameSdept一個系的地址信息只存儲一次一個系的地址信息只存儲一次轉(zhuǎn)系只需修改對應(yīng)轉(zhuǎn)系只需修改對應(yīng)Sno中的中的Sdept新系無學生可插入新系無學生可插入DL關(guān)系中關(guān)系中學生全畢業(yè)學生全畢業(yè)DL關(guān)系中有關(guān)系關(guān)系中有關(guān)系Sdept和和Dloc的信息的信息SD(Sno, Sname, Sdept)NFSD3Sno候選碼候選碼存在問題存在問題得到緩解得到緩解DL( Sdept, Dloc)NFDL3DlocSde
20、pt候選碼候選碼廣東工業(yè)大學CIMS重點實驗室22=推論:推論:不存在非主屬性的關(guān)系模式一定為不存在非主屬性的關(guān)系模式一定為3NF。關(guān)系范式關(guān)系范式例例 :授課(學生:授課(學生,教師教師,課程)課程) 假設(shè)該校規(guī)定: 一個教師只能教一門課,每門課可由多個教師講授。 學生一旦選定某門課,教師就相應(yīng)地固定。 根據(jù)語義關(guān)系的函數(shù)依賴集為: F= 教師教師課程課程,(學生(學生,課程)課程)教師教師,(學生(學生,教師)教師)課程課程 該關(guān)系的候選碼為(學生學生, ,課程課程)或(學生學生, ,教師教師),因此三個屬性都是主屬性,由于不存在非主屬性不存在非主屬性,該關(guān)系一定是3NF的。廣東工業(yè)大學C
21、IMS重點實驗室23關(guān)系范式關(guān)系范式CnoSTC(Sno, Tno, Cno)NFSD3Sno候選碼候選碼TnoTnoSno候選碼候選碼Cno存在存在問題問題數(shù)據(jù)冗余數(shù)據(jù)冗余。如:。如:Sno更新復雜更新復雜。如:教師改課后。如:教師改課后插入異常插入異常。如:未選課的學生。如:未選課的學生刪除異常刪除異常。如:學生全畢業(yè)。如:學生全畢業(yè)所有的屬性都是主屬性所有的屬性都是主屬性廣東工業(yè)大學CIMS重點實驗室24=所有非主屬性都完全函數(shù)依賴于每個候選碼所有非主屬性都完全函數(shù)依賴于每個候選碼=所有主屬性都完全函數(shù)依賴于每個不包含它的候選碼所有主屬性都完全函數(shù)依賴于每個不包含它的候選碼=無任何屬性傳
22、遞函數(shù)依賴于非碼的任何一組屬性無任何屬性傳遞函數(shù)依賴于非碼的任何一組屬性TnoST(Sno, Tno)BCNFST SnoCnoTnoTC(Cno, Tno)BCNFTC關(guān)系范式關(guān)系范式廣東工業(yè)大學CIMS重點實驗室25=3NF與與BCNF是以函數(shù)依賴為基礎(chǔ)的關(guān)系模式規(guī)范化程是以函數(shù)依賴為基礎(chǔ)的關(guān)系模式規(guī)范化程度的測度度的測度=如果滿足如果滿足BCNF,在函數(shù)依賴的范疇內(nèi),達到了最高在函數(shù)依賴的范疇內(nèi),達到了最高的規(guī)范化程度,消除了插入異常和刪除異常的規(guī)范化程度,消除了插入異常和刪除異常關(guān)系范式關(guān)系范式(Sno, Sname, Ssex, Sage, Sdept)BCNFStudent( Cn
23、o, Cname, Cpno,Ccredit)BCNFCourse(Sno, Cno, Grade)BCNFSC廣東工業(yè)大學CIMS重點實驗室26=例:開課表例:開課表關(guān)系范式關(guān)系范式教師教師課程課程班級班級王富強王富強張海水張海水李小平李小平機制工藝機制工藝00級機自本科級機自本科00級機自??萍墮C自專科01級機自本科級機自本科陳小毛陳小毛肖小兵肖小兵控制工程控制工程01級機自本科級機自本科00級機自本科級機自本科吳桂華吳桂華王嫦娥王嫦娥生產(chǎn)管理生產(chǎn)管理00級工業(yè)工程本科級工業(yè)工程本科01級工業(yè)工程本科級工業(yè)工程本科每門課由哪每門課由哪些老師開設(shè)些老師開設(shè)每門課哪些班每門課哪些班級需要開設(shè)級
24、需要開設(shè)廣東工業(yè)大學CIMS重點實驗室27=例:規(guī)范化的開課表例:規(guī)范化的開課表關(guān)系范式關(guān)系范式教師教師課程課程班級班級王富強機制工藝00級機自本科王富強機制工藝00級機自專科王富強機制工藝01級機自本科張海水機制工藝00級機自??茝埡K畽C制工藝00級機自本科張海水機制工藝01級機自本科李小平機制工藝00級機自本科李小平機制工藝00級機自??评钚∑綑C制工藝01級機自本科陳小毛控制工程01級機自本科陳小毛控制工程00級機自本科肖小兵控制工程01級機自本科肖小兵控制工程00級機自本科廣東工業(yè)大學CIMS重點實驗室28=多值依賴多值依賴 與函數(shù)依賴不同,函數(shù)依賴是屬性值之間的約束與函數(shù)依賴不同,函數(shù)
25、依賴是屬性值之間的約束關(guān)系,而多值依賴是元組值之間的約束關(guān)系。關(guān)系,而多值依賴是元組值之間的約束關(guān)系。=設(shè)設(shè) R(U) 是屬性集是屬性集U上的一個關(guān)系模式,上的一個關(guān)系模式,X、 Y、 Z是是U的子(屬性)集,且的子(屬性)集,且Z=U-X-Y。 如果對如果對R(U)的任一關(guān)系的任一關(guān)系r,給定一對(,給定一對(x,z)值)值,都有一組都有一組Y值與之值與之對應(yīng),這組對應(yīng),這組Y值僅僅決定值僅僅決定于于x值而與值而與z值無關(guān)。值無關(guān)。 稱稱Y多多值依賴于值依賴于X,或,或X多值決定多值決定Y,記作,記作XY。上例:課程上例:課程教師,課程教師,課程班級班級如果如果Z=(即(即Z為空集)為空集)
26、,則稱則稱XY為平凡的多為平凡的多值依賴值依賴,否則為非平凡多值依賴否則為非平凡多值依賴關(guān)系范式關(guān)系范式廣東工業(yè)大學CIMS重點實驗室29=多值依賴的性質(zhì)多值依賴的性質(zhì)多值依賴具有對稱性。多值依賴具有對稱性。 4若若XY,則,則XZ,其中,其中Z=U-X-Y多值依賴具有傳遞性。多值依賴具有傳遞性。 4若若XY,YZ,則,則XZ-Y。 若若XY,XZ,則,則XYZ。 若若XY,XZ,則,則XYZ。 若若XY,XZ,則,則XY-Z,XZ-Y。關(guān)系關(guān)系R(A,B,C),如果如果A決定決定B的多個值的多個值,A決定決定C的的多個值多個值,B和和C相互獨立相互獨立,這時才存在多值依賴這時才存在多值依賴關(guān)
27、系范式關(guān)系范式廣東工業(yè)大學CIMS重點實驗室30=第四范式(第四范式(4NF)如果關(guān)系模式如果關(guān)系模式R1NF,對于,對于R的每個的每個平凡的多平凡的多值依賴值依賴XY(YX),),X含有碼,則稱含有碼,則稱R是第是第四范式,即四范式,即R4NF。 一個關(guān)系模式如果屬于一個關(guān)系模式如果屬于4NF,則一定屬于則一定屬于BCNF,但但一個一個BCNF的關(guān)系模式不一定是的關(guān)系模式不一定是4NF的的,R中所有的中所有的非平凡多值依賴實際上是函數(shù)依賴。非平凡多值依賴實際上是函數(shù)依賴。 在前面例子中,課程在前面例子中,課程教師,課程教師,課程班級,班級,且都是非平凡的多值依賴。且都是非平凡的多值依賴。但該
28、關(guān)系的碼是全碼,但該關(guān)系的碼是全碼,而課程沒有包含碼(只是碼的一部分),所以該而課程沒有包含碼(只是碼的一部分),所以該關(guān)系模式屬于關(guān)系模式屬于BCNF而不屬于而不屬于4NF 關(guān)系范式關(guān)系范式廣東工業(yè)大學CIMS重點實驗室31=第四范式(第四范式(4NF)如將其分解為兩個關(guān)系:可達到如將其分解為兩個關(guān)系:可達到4NF: 教師開課(課程,教師)教師開課(課程,教師) 班級選課(課程,班級)班級選課(課程,班級)4這兩個關(guān)系中:這兩個關(guān)系中:課程課程教師教師,課程課程班級班級,它,它們均是平凡多值依賴。們均是平凡多值依賴。 即關(guān)系中已不存在非平凡、即關(guān)系中已不存在非平凡、 非非函數(shù)依賴的多值依賴函
29、數(shù)依賴的多值依賴,所以它們均是所以它們均是4NF。關(guān)系范式關(guān)系范式廣東工業(yè)大學CIMS重點實驗室32=例:例:關(guān)系范式關(guān)系范式廣東工業(yè)大學CIMS重點實驗室33=例例:項目項目供應(yīng)商供應(yīng)商, 項目項目零件。多值依賴具有以下性質(zhì)零件。多值依賴具有以下性質(zhì)但該關(guān)系的碼是全碼(項目但該關(guān)系的碼是全碼(項目,供應(yīng)商供應(yīng)商,零件)零件),而項目沒有包而項目沒有包含碼(只是碼的一部分)含碼(只是碼的一部分),所以該關(guān)系模式屬于所以該關(guān)系模式屬于BCNF而不而不屬于屬于4NF。 如將其分解為兩個關(guān)系,可達到如將其分解為兩個關(guān)系,可達到4NF: 需求(項目需求(項目, ,零件)零件) 供應(yīng)(項目供應(yīng)(項目,
30、,供應(yīng)商)供應(yīng)商)這兩個關(guān)系中這兩個關(guān)系中,項目項目零件零件,項目項目供應(yīng)商供應(yīng)商,它們均是平它們均是平凡多值依賴。凡多值依賴。 即關(guān)系中已不存在非平凡、即關(guān)系中已不存在非平凡、 非函數(shù)依賴的多非函數(shù)依賴的多值依賴值依賴,所以它們均是所以它們均是4NF。 關(guān)系范式關(guān)系范式廣東工業(yè)大學CIMS重點實驗室34=第四范式(第四范式(4NF)函數(shù)依賴可看成是多值依賴的特例函數(shù)依賴可看成是多值依賴的特例,即函數(shù)依賴的即函數(shù)依賴的一定是多值依賴;多值依賴是函數(shù)依賴的概括一定是多值依賴;多值依賴是函數(shù)依賴的概括,即即存在多值依賴的關(guān)系存在多值依賴的關(guān)系,不一定存在函數(shù)依賴。不一定存在函數(shù)依賴。 在一般應(yīng)用中
31、,即使作數(shù)據(jù)存儲操作,也只要達在一般應(yīng)用中,即使作數(shù)據(jù)存儲操作,也只要達到到BCNF就可以了。就可以了。 4因為應(yīng)用中具有多值依賴的關(guān)系較少,因此需要達到因為應(yīng)用中具有多值依賴的關(guān)系較少,因此需要達到4NF的情況也就比較少。的情況也就比較少。 還有與數(shù)據(jù)依賴中的連接依賴(還有與數(shù)據(jù)依賴中的連接依賴(JD)有關(guān)的第五)有關(guān)的第五范式(范式(5NF).關(guān)系范式關(guān)系范式廣東工業(yè)大學CIMS重點實驗室35=什么是規(guī)范化什么是規(guī)范化一個低一級范式的關(guān)系模式,通過一個低一級范式的關(guān)系模式,通過模式分解模式分解可可以轉(zhuǎn)化為若干個高一級范式的關(guān)系模式的集合,以轉(zhuǎn)化為若干個高一級范式的關(guān)系模式的集合,這一過程叫
32、做關(guān)系模式的規(guī)范化。這一過程叫做關(guān)系模式的規(guī)范化。 規(guī)范化理論是在與規(guī)范化理論是在與SQL編程語言結(jié)合時產(chǎn)生的。編程語言結(jié)合時產(chǎn)生的。數(shù)據(jù)庫被規(guī)范化后數(shù)據(jù)庫被規(guī)范化后,其中的任何數(shù)據(jù)子集都可以用其中的任何數(shù)據(jù)子集都可以用基本的基本的SQL操作符獲取。操作符獲取。 數(shù)據(jù)庫不進行規(guī)范化,就必須通過編寫大量復雜數(shù)據(jù)庫不進行規(guī)范化,就必須通過編寫大量復雜代碼來查詢數(shù)據(jù)。代碼來查詢數(shù)據(jù)。 這就是規(guī)范化的重要性所在這就是規(guī)范化的重要性所在廣東工業(yè)大學CIMS重點實驗室36關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室37關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化=滿足第三范式為基本要求滿足第
33、三范式為基本要求=把一個非規(guī)范化的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換成第三范式把一個非規(guī)范化的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換成第三范式一般經(jīng)過以下幾步:一般經(jīng)過以下幾步: 對那些存在組合碼的屬性,進行結(jié)構(gòu)分解,使之對那些存在組合碼的屬性,進行結(jié)構(gòu)分解,使之成為屬于第一范式的關(guān)系。成為屬于第一范式的關(guān)系。 對有非主屬性部分函數(shù)依賴的關(guān)系繼續(xù)分解,使對有非主屬性部分函數(shù)依賴的關(guān)系繼續(xù)分解,使所得關(guān)系都是屬于第二范式。所得關(guān)系都是屬于第二范式。若有非主屬性傳遞依賴于碼,則繼續(xù)分解之,使若有非主屬性傳遞依賴于碼,則繼續(xù)分解之,使得關(guān)系都屬于第三范式。得關(guān)系都屬于第三范式。廣東工業(yè)大學CIMS重點實驗室38關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化
34、=規(guī)范化程度越高,分解就越細,所得數(shù)據(jù)庫的數(shù)據(jù)規(guī)范化程度越高,分解就越細,所得數(shù)據(jù)庫的數(shù)據(jù)冗余就越小,且更新錯誤也可相對減少冗余就越小,且更新錯誤也可相對減少。 =數(shù)據(jù)庫設(shè)計滿足的范式數(shù)據(jù)庫設(shè)計滿足的范式越高,其數(shù)據(jù)處理的越高,其數(shù)據(jù)處理的開銷也越大開銷也越大。如果某一關(guān)系經(jīng)過數(shù)據(jù)大量加載后,主要用于如果某一關(guān)系經(jīng)過數(shù)據(jù)大量加載后,主要用于檢索,那么,即使它是一個低范式的關(guān)系,也檢索,那么,即使它是一個低范式的關(guān)系,也不要去追求高范式而將其不斷進行分解。不要去追求高范式而將其不斷進行分解。 4因為在檢索時,又會通過多個關(guān)系的自然連接才能獲因為在檢索時,又會通過多個關(guān)系的自然連接才能獲得全部信息
35、,從而降低了數(shù)據(jù)的檢索效率。得全部信息,從而降低了數(shù)據(jù)的檢索效率。 廣東工業(yè)大學CIMS重點實驗室39關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化=在規(guī)范化理論中,模式分解以及判斷在規(guī)范化理論中,模式分解以及判斷分解是否等價是有一定算法的。分解是否等價是有一定算法的。 =函數(shù)依賴的公理系統(tǒng)是模式分解算法函數(shù)依賴的公理系統(tǒng)是模式分解算法的基礎(chǔ),它可以從已知的函數(shù)依賴,推的基礎(chǔ),它可以從已知的函數(shù)依賴,推導出其他函數(shù)依賴。導出其他函數(shù)依賴。=1974年由年由Armstrong提出來的,常被稱提出來的,常被稱為為Armstrong公理系統(tǒng)公理系統(tǒng)廣東工業(yè)大學CIMS重點實驗室40=Armstrong公理系統(tǒng)
36、公理系統(tǒng) 設(shè)有關(guān)系模式設(shè)有關(guān)系模式R(U,F),),X,Y,Z,WU,則對則對R(U,F)有:)有: 4A1(自反律):(自反律): 若若YX,則則XY; 4A2(增廣律):(增廣律): 若若XY,則則XZYZ; 4A3(傳遞律):(傳遞律): 若若XY,YZ,則則XZ。說明:說明: XZ表示表示XZ。關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室41=由由Armstrong公理系統(tǒng)公理系統(tǒng),可以得到以下三個可以得到以下三個推論:推論: 合成規(guī)則:合成規(guī)則: 若若XY,XZ,則:,則: XYZ; 分解規(guī)則:分解規(guī)則: 若若XYZ,則:,則:XY,XZ; 偽傳遞規(guī)則:若偽傳遞
37、規(guī)則:若XY,WYZ,則:,則: XWZ。=引理:引理: XA1A2Ak 成立的充分必要條件是成立的充分必要條件是 XAi (i=1,2,k) 成立成立關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室42= 例例 : 設(shè)關(guān)系模式設(shè)關(guān)系模式R(A,B,C,G,H,I), 函數(shù)依賴集為函數(shù)依賴集為 F=AB, AC, CGH, CGI, BH, 利用規(guī)則利用規(guī)則, 可以得到可以得到 R中存在以下幾個函數(shù)依賴:中存在以下幾個函數(shù)依賴: 1. AH。 l由于由于AB,BH,使用傳遞律可得到,使用傳遞律可得到AH。 2. CGHI。 l由于由于CGH,CGI,由合成律可得,由合成律可得
38、CGHI。 3. AGI。 l由于由于AC,CGI,由偽傳遞律可推出,由偽傳遞律可推出AGI。關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室43=分解的方法不是唯一的分解的方法不是唯一的=保證分解后的關(guān)系模式與原關(guān)系模式等價保證分解后的關(guān)系模式與原關(guān)系模式等價=例:例:SdeptSloc傳遞函數(shù)依賴傳遞函數(shù)依賴SL(Sno, Sdept, Sloc)NFSL2SnoSnoSdeptSloc98001計算機計算機一舍一舍98002機電工程機電工程五舍五舍98003材料材料四舍四舍98004材料材料四舍四舍98005機電工程機電工程五舍五舍98006自動化自動化一舍一舍關(guān)系范式
39、模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室44=例:例:SL(Sno, Sdept, Sloc)NFSL2關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化Sno980019800298003980049800598006分解分解SD(Sdept)SN(Sno)SO(Sloc)Sdept計算機計算機機電工程機電工程材料材料自動化自動化Sloc一舍一舍五舍五舍四舍四舍NFSL598002在哪個系?在哪個系?98003住第幾舍?住第幾舍?信息丟失信息丟失廣東工業(yè)大學CIMS重點實驗室45=例:例:SL(Sno, Sdept, Sloc)NFSL2關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化分解分解NL(
40、Sno, Sloc)DL(Sdept, Sloc)98001在哪個系?在哪個系?SnoSloc98001一舍一舍98002五舍五舍98003四舍四舍98004四舍四舍98005五舍五舍98006一舍一舍SdeptSloc計算機計算機一舍一舍機電工程機電工程五舍五舍材料材料四舍四舍自動化自動化一舍一舍信息丟失信息丟失廣東工業(yè)大學CIMS重點實驗室46=例:例:SL(Sno, Sdept, Sloc)NFSL2關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化分解分解ND(Sno, Sdept)NL(Sno, Sloc)SnoSloc01一舍一舍02五舍五舍03四舍四舍04四舍四舍05五舍五舍06一舍一舍Sno
41、Sdept01計算機計算機02機電機電03材料材料04材料材料05機電機電06自動化自動化什么都知道了但還有麻煩仍有仍有問題問題數(shù)據(jù)冗余太多數(shù)據(jù)冗余太多如:同一個系更新復雜更新復雜如:轉(zhuǎn)系需修改 Sloc插入異常插入異常如:無學生的系刪除異常刪除異常如:學生全畢業(yè)廣東工業(yè)大學CIMS重點實驗室47=例:例:SL(Sno, Sdept, Sloc)NFSL2關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化分解分解DL(Sdept, Sloc)ND(Sno, Sdept)這樣就全這樣就全好了!好了!SnoSdept01計算機計算機02機電機電03材料材料04材料材料05機電機電06自動化自動化SdeptSlo
42、c計算機計算機一舍一舍機電工程機電工程五舍五舍材料材料四舍四舍自動化自動化一舍一舍廣東工業(yè)大學CIMS重點實驗室48設(shè)關(guān)系模式設(shè)關(guān)系模式R被分解為若干:被分解為若干:R1, R2, . Rn, 若若R與與R1、 R2、 Rn自然連接的結(jié)自然連接的結(jié)果相當,則稱果相當,則稱R的這個分解具有無損連接的這個分解具有無損連接性。性。關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室49 設(shè)設(shè)=R1,R2,Rk是關(guān)系模式是關(guān)系模式R(U,F)的一)的一個分解,如果對于個分解,如果對于R的任一滿足的任一滿足F的關(guān)系的關(guān)系r,都有,都有 則稱分解則稱分解滿足函數(shù)依賴集滿足函數(shù)依賴集F的無損連
43、接。的無損連接。關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室50ND(Sno, Sdept)NL(Sno, Sloc)= SL(Sno, Sdept, Sloc)SnoSdeptSloc01計算機計算機一舍一舍02機電機電五舍五舍03材料材料四舍四舍04材料材料四舍四舍05機電機電五舍五舍06自動化自動化一舍一舍=無損連接關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化SnoSloc01一舍一舍02五舍五舍03四舍四舍04四舍四舍05五舍五舍06一舍一舍SnoSdept01計算機計算機02機電機電03材料材料04材料材料05機電機電06自動化自動化廣東工業(yè)大學CIMS重點實驗室51=
44、檢驗分解的無損連接性檢驗分解的無損連接性 輸入:輸入: 關(guān)系模式關(guān)系模式R(A1,A2,An);); R上的函數(shù)依賴集上的函數(shù)依賴集F; R上的分解上的分解=R1,R2,Rk。 輸出:輸出: 是否具有無損連接性。是否具有無損連接性。 =步驟:步驟: 構(gòu)造一構(gòu)造一k行行n列的表(或矩陣),第列的表(或矩陣),第i行對應(yīng)于分行對應(yīng)于分解后的關(guān)系模式解后的關(guān)系模式Ri,第,第j列對應(yīng)于屬性列對應(yīng)于屬性Aj關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化jjiijijjiaARMbAR廣東工業(yè)大學CIMS重點實驗室52=檢驗分解的無損連接性檢驗分解的無損連接性=步驟:步驟: 構(gòu)造一構(gòu)造一k行行n列的表(或矩陣),
45、第列的表(或矩陣),第i行對應(yīng)于分解行對應(yīng)于分解后的關(guān)系模式后的關(guān)系模式Ri,第,第j列對應(yīng)于屬性列對應(yīng)于屬性Aj對對F中的每一個函數(shù)依賴進行反復的檢查和處理。中的每一個函數(shù)依賴進行反復的檢查和處理。4取取F中一個函數(shù)依賴中一個函數(shù)依賴XY,在,在X的分量中尋找相同的行,的分量中尋找相同的行,然后將這些行中的然后將這些行中的Y分量改為相同的符號。分量改為相同的符號。 即如果其中即如果其中之一為之一為aj,則將則將bij改為改為aj; 若其中無若其中無aj,則改為,則改為bij 如:如: 兩個符號分別為兩個符號分別為b23和和b13,則將它們統(tǒng)一改為則將它們統(tǒng)一改為b23或或b13。如此反復進行
46、,直至如此反復進行,直至M無可改變?yōu)橹?。如果發(fā)現(xiàn)某無可改變?yōu)橹?。如果發(fā)現(xiàn)某一行變成了一行變成了a1,a2,an,則,則具有無損連接性;具有無損連接性; 否則否則,不具有無損連接性不具有無損連接性關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室53=例例 :設(shè)關(guān)系模式設(shè)關(guān)系模式R(U,F)中)中,U=A,B,C,D,E, F=ABC,CD,DE R的一個分解:的一個分解: =R1(A,B,C),R2(C,D),R3(D,E)。 試判斷試判斷具有無損連接性具有無損連接性。關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室54設(shè)關(guān)系模式設(shè)關(guān)系模式R被分解為若干被分解
47、為若干R1, R2, .Rn, 若若F所邏輯蘊涵的函數(shù)依賴一定也由分解得所邏輯蘊涵的函數(shù)依賴一定也由分解得 到的某個關(guān)系模式中的函數(shù)依賴到的某個關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊所邏輯蘊 涵,則稱涵,則稱R的這個分解是保持函數(shù)依賴。的這個分解是保持函數(shù)依賴。關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化廣東工業(yè)大學CIMS重點實驗室55設(shè)關(guān)系模式設(shè)關(guān)系模式R的一個分解的一個分解=R1,R2,Rk,F(xiàn)是是R的依賴集,的依賴集,如果如果F等價于等價于 則稱分解則稱分解具有依賴保持性。具有依賴保持性。 關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化12( )( )( )KRRRFFF廣東工業(yè)大學CIMS重點實驗室56跨在兩個關(guān)系跨在兩個關(guān)系模式上模式上SL(Sno, Sdept, Sloc)NFSL2分解分解SnoSlocSnoSdept傳遞函數(shù)依賴關(guān)系范式模式規(guī)范化關(guān)系范式模式規(guī)范化SdeptSlocSnoND(Sno, Sdept)NL(Sno, Sloc)=SL(Sno, Sdept, Sloc)廣東工業(yè)大學CIMS重點實驗室57SL(Sno, Sdept, Sloc)NFSL2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車間內(nèi)部承包經(jīng)營與設(shè)備維護一體化合同范本
- 采石場安全生產(chǎn)責任承包管理協(xié)議
- 高標準廠房木結(jié)構(gòu)建造與施工一體化服務(wù)合同
- 老人照料及護理課件
- 石場安全生產(chǎn)三年行動方案
- 安全管理三違指的是什么
- 突發(fā)事件應(yīng)急處置機制和預案
- 贛州市安全生產(chǎn)電視電話會議
- 美術(shù)信息化技術(shù)課件
- 生產(chǎn)制造安全事故案例
- 職工健康小屋管理制度
- 2025年江西省中考英語試卷真題(含標準答案及解析)
- 2025年有限空間作業(yè)安全知識測試試卷
- 工地施工特種設(shè)備管理制度
- 2025年數(shù)字內(nèi)容創(chuàng)作師資格考試試卷及答案
- 胖東來投訴管理制度
- 2024-2025新入職員工安全培訓考試試題及完整答案【一套】
- 2025年內(nèi)蒙古鄂爾多斯機場管理集團鄂爾多斯市空港實業(yè)有限公司招聘筆試參考題庫含答案解析
- 瀝青路面施工質(zhì)量控制要點課件
- 2025年鄭州市公安機關(guān)招聘警務(wù)輔助人員題庫帶答案分析
- CJ/T 340-2016綠化種植土壤
評論
0/150
提交評論