版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1要點(diǎn)關(guān)系規(guī)范化理論研究背景規(guī)范化(Normalization)理論1NF、2NF、3NF、BCNF、4NF等范式關(guān)系模式規(guī)范化的必要性及方法第六章關(guān)系數(shù)據(jù)理論26.1問題的提出問題提出:針對(duì)一個(gè)具體問題,如何構(gòu)造合適的(更好的)數(shù)據(jù)模式,即如何更好地設(shè)計(jì)數(shù)據(jù)的邏輯結(jié)構(gòu)?關(guān)系數(shù)據(jù)理論的研究背景關(guān)系模型建立在嚴(yán)格的數(shù)據(jù)理論基礎(chǔ)上,并可向別的數(shù)據(jù)模型轉(zhuǎn)換,因此常以關(guān)系模型為背景來討論這個(gè)問題3背景知識(shí)數(shù)據(jù)模式(schema)數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征描述,如數(shù)據(jù)記錄的構(gòu)成,數(shù)據(jù)間的聯(lián)系,安全性、完整性要求等。常以某一種數(shù)據(jù)模型為基礎(chǔ)關(guān)系模型的形式化定義:R(U,D,dom,F),本章簡化為R(U,F)關(guān)系模型R的一個(gè)關(guān)系r:U上的一個(gè)關(guān)系r滿足F屬性組一組數(shù)據(jù)依賴4一個(gè)例子:學(xué)生-課程-成績管理客觀存在的事實(shí)一個(gè)系有若干學(xué)生,但一個(gè)學(xué)生只屬于一個(gè)系;一個(gè)系只有一名負(fù)責(zé)人;一個(gè)學(xué)生可以選修多門課程,每門課程有若干學(xué)生選修;每個(gè)學(xué)生學(xué)習(xí)每一門課程有一個(gè)成績?cè)O(shè)計(jì)如下單個(gè)模式屬性組U={學(xué)號(hào)SNO,系名SDEPT,系負(fù)責(zé)人MN,課程名CNAME,成績G}數(shù)據(jù)依賴該模式存在的問題?怎么改善這個(gè)模式?5問題和改進(jìn)該模式存在的問題插入異常:一個(gè)系無學(xué)生或未安排課程時(shí),無法存入系與負(fù)責(zé)人刪除異常:刪除一個(gè)系的所有學(xué)生信息時(shí),系與負(fù)責(zé)人也丟失冗余太大:負(fù)責(zé)人姓名重復(fù)存入更新異常:當(dāng)某系負(fù)責(zé)人更換時(shí),須更新該系所有學(xué)生信息中的信息,更新不完全時(shí),易造成數(shù)據(jù)不一致原因:數(shù)據(jù)依賴存在一些不合適的性質(zhì),需尋找更好的模式,如S(SNO,SDEPT,)SG(SNO,CNAME,G,
)DEPT(SDEPT,MN,)SNOCNOGSDEPTMN66.2規(guī)范化意圖討論一個(gè)關(guān)系屬性間不同的依賴情況討論如何根據(jù)屬性間依賴關(guān)系來判定關(guān)系是否有某些不合適的性質(zhì)數(shù)據(jù)依賴概念反映客觀世界數(shù)據(jù)間的相互關(guān)聯(lián)通過一個(gè)關(guān)系中屬性間值的相等與否來體現(xiàn)兩種重要的數(shù)據(jù)依賴函數(shù)依賴(FunctionalDependency,FD)多值依賴(MultivaluedDependency,MVD)76.2.1函數(shù)依賴定義1設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作術(shù)語和記號(hào),但,則稱是非平凡的函數(shù)依賴,但,則稱是平凡的函數(shù)依賴若,則X叫做決定因素若,,則記作若Y不函數(shù)依賴于X,則記作8對(duì)函數(shù)依賴的說明換句話說:任何時(shí)候若某一關(guān)系中的兩個(gè)元組中的X屬性組的值相等,則元組中對(duì)應(yīng)的屬性組Y的值也相等,類似于函數(shù)概念,Y=f(X)需要指出的是:關(guān)系R中,如果屬性組X是一個(gè)候選碼或碼,則屬性組Y一定函數(shù)依賴于X(這與候選碼的定義一致)事實(shí)上:如果關(guān)系R上有函數(shù)依賴XY,而屬性X不是一個(gè)候選碼,則R中可能存在一些數(shù)據(jù)冗余例如:R(Sno,Sdept,MN,Cname,Grade)中有函數(shù)依賴Sdept->MN,而Sdept并不是候選碼,表中數(shù)據(jù)有大量冗余出現(xiàn)9函數(shù)依賴定義2在R(U)中,如果,并且對(duì)于X的任何一個(gè)真子集X’,都有,則稱Y對(duì)X完全函數(shù)依賴,記作若,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴,記作定義3在R(U)中,如果,(),,則稱Z對(duì)X傳遞函數(shù)依賴,記作FP傳遞10116.2.2碼用函數(shù)依賴的概念來定義碼定義4設(shè)K為R(U,F)中的屬性或?qū)傩越M合,若則K為R的候選碼(CandidateKey)。若候選碼多于一個(gè),則選定其中的一個(gè)為主碼(PrimaryKey)相關(guān)術(shù)語包含在任何一個(gè)候選碼中的屬性,叫做主屬性不包含在任何碼中的屬性,叫做非主屬性整個(gè)屬性組是碼,稱為全碼F12碼定義5關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱X是R的外部碼(ForeignKey),也稱為外碼★主碼與外碼提供了一個(gè)表示關(guān)系間聯(lián)系的手段SC(Sno,Cno,Grade)Studen(Sno,Sname,….)Course(Cno,Cname,….)136.2.3范式范式:符合某種級(jí)別(條件、要求)的關(guān)系模式范式種類1NF,2NF,3NF,BCNF,4NF,5NF按級(jí)別(條件、要求)由低到高:通常稱某一關(guān)系模式R為第幾范式,記作R
xNF1NF2NF3NFBCNF4NF5NF141NF(FirstNormalForm)定義:關(guān)系R中每個(gè)分量都是不可分割的數(shù)據(jù)項(xiàng),則R1NF說明:1NF是關(guān)系模式的基本要求舉例:關(guān)系模式S-L-C(學(xué)號(hào)SNO,系SDEPT,住處SLOC,課程CNO,成績G)是1NF15166.2.42NF定義:若R1NF,且每個(gè)非主屬性完全依賴于碼,則R2NF說明:不存在非主屬性部分依賴于碼的關(guān)系為2NF舉例:關(guān)系模式
S-L-C(SNO,
SDEPT,SLOC,
CNO,
G)函數(shù)依賴圖GSNOCNOSDEPTSLOC關(guān)系模式S-L-C是不是2NF?不是,因?yàn)镾DEPT和SLOC部分依賴于碼前面的實(shí)例是不是2NF?17不是2NF可能出現(xiàn)的問題插入異常某學(xué)生沒有選課時(shí),無法插入其系、住處等信息刪除異常某學(xué)生所有的選課信息都刪除后,其系、住處等信息也被刪除修改復(fù)雜(更新異常)學(xué)生轉(zhuǎn)系時(shí),除了修改其系名外,還需修改其住處信息;另外,若該學(xué)生選修了多門課程,則其對(duì)應(yīng)的重復(fù)存儲(chǔ)的系、住處等信息需一一修改冗余同系的所有學(xué)生的住處信息重復(fù)存儲(chǔ),同一學(xué)生選多門課程時(shí),其系、住處信息重復(fù)存儲(chǔ)18解決辦法模式分解依賴關(guān)系分析上例中的模式分解為下列兩個(gè)模式,該模式是2NFSC(SNO,CNO,G)(SNO,CNO)GS-L(SNO,SDEPT,SLOC)SNOSDEPT,SNOSLOC,SDEPTSLOCGSNOCNOSDEPTSLOC19分解說明一個(gè)1NF,但非2NF的關(guān)系總是可以被分解成為一組2NF的關(guān)系規(guī)范化過程中通過一組投影運(yùn)算消除部分依賴,建議作如下分解(第一步分解)已知關(guān)系R(A,B,C,D),(A,B)為主碼,即(A,B)->C,(A,B)->D,且A->D,則將R分解成為兩個(gè)投影:
R1(A,D),A為主碼
R2(A,B,C),(A,B)為主碼,A為外碼 這樣,R可以通過R1和R2的自然連接運(yùn)算得以恢復(fù),即滿足分解的無損連接性206.2.53NF定義:若R2NF,且它的任何一個(gè)非主屬性都不傳遞依賴于任何候選碼,則R3NF說明:即不存在非主屬性部分依賴和傳遞依賴于碼的關(guān)系為3NF推論:不存在非主屬性的模式為3NF上例中得到的關(guān)系模式是2NF
SC(SNO,CNO,G); S-L(SNO,SDEPT,SLOC);S-L中存在傳遞傳遞依賴,故該模式不是3NFSNOSDEPTSLOC21不是3NF可能存在的問題插入異常只有當(dāng)知道某學(xué)生的系時(shí)才能插入其住處信息刪除異常當(dāng)刪除某系對(duì)應(yīng)的所有學(xué)生時(shí),有關(guān)該系學(xué)生住處的信息也被刪除掉了修改異常一個(gè)系及其住處信息重復(fù)出現(xiàn),只更新一個(gè)元組中對(duì)應(yīng)的系及其住處時(shí)可能導(dǎo)致數(shù)據(jù)不一致冗余同系學(xué)生的住處重復(fù)存儲(chǔ)22解決方法繼續(xù)模式分解如上例中的模式可分解為3NF
SC(SNO,CNO,G);(SNO,CNO)G S-D(SNO,SDEPT);SNOSDEPT
D-L(SDEPT,SLOC);SDEPTSLOCSNOSDEPTSLOCSDEPTGSNOCNO23分解說明一個(gè)2NF,但非3NF的關(guān)系總是可以被分解成為一組3NF的關(guān)系規(guī)范化過程中通過一組投影運(yùn)算消除傳遞依賴,建議作如下分解(第二步分解)已知關(guān)系R(A,B,C),A為主碼(A->B,A->C),且B->C,
則將R分解成為兩個(gè)投影:
R1(B,C),B為主碼
R2(A,B),A為主碼,B為外碼 這樣,R可以通過R1和R2的自然連接運(yùn)算得以恢復(fù),分解滿足分解的無損連接性243NF的進(jìn)一步說明在不考慮主屬性對(duì)碼的部分依賴和傳遞依賴時(shí),可以認(rèn)為是實(shí)現(xiàn)了徹底的分離,已消除了插入異常,刪除異常,修改異常,冗余等問題但是,當(dāng)關(guān)系中存在兩個(gè)或更多的候選碼時(shí),尤其是有幾個(gè)候選碼、且候選碼內(nèi)的屬性又有部分復(fù)合或交迭時(shí),僅僅滿足3NF仍有問題,需要進(jìn)一步分解成BCNF256.2.6BCNF(Boyce/CoddNormalForm)定義:若每一個(gè)決定因素都包含(或是)碼,則RBCNF說明BCNF中所有的依賴都是包含碼的依賴一個(gè)BCNF范式必是3NF,但一個(gè)3NF范式不一定是BCNF(3NF中可能存在主屬性對(duì)碼的部分和傳遞依賴)BCNF是在函數(shù)依賴范疇內(nèi)對(duì)關(guān)系模式的徹底分離,已消除了插入和刪除異常通常認(rèn)為BCNF是擴(kuò)充的第三范式,一般數(shù)據(jù)庫設(shè)計(jì)達(dá)到BCNF已足夠26實(shí)例例1:SJP(學(xué)生S,課程J,名次P)(S,J)和(J,P)均為候選碼函數(shù)依賴為(S,J)P,(J,P)S其中,兩個(gè)決定因素均包含(是)候選碼可見SJPBCNF例2:STJ(學(xué)生S,教師T,課程J)(S,T)和(S,J)均為候選碼函數(shù)依賴為(S,J)T,(S,T)J,TJ其中,為決定T因素,但不包含任何一個(gè)候選碼可見STJ3NF,但STJBCNF27例子前例是3NF,也是BCNFSC(SNO,CNO,G);(SNO,CNO)GS-D(SNO,SDEPT);SNOSDEPTD-L(SDEPT,SLOC);SDEPTSLOCSNOSDEPTSLOCSDEPTGSNOCNO286.2.7規(guī)范化理論規(guī)范化概念:將一個(gè)低一級(jí)范式的關(guān)系模式分解為若干個(gè)高一級(jí)范式的關(guān)系模式的過程目的:設(shè)計(jì)正確、良好的關(guān)系模式基本思想:逐步消除關(guān)系模式的數(shù)據(jù)依賴中不合適的部分,使模式達(dá)到一定程度的分離,但又不丟失原模式中的信息模式分解的實(shí)質(zhì):投影29幾個(gè)事實(shí)模式分解可以消除冗余,解決更新異常等問題,但也要付出做連接運(yùn)算等昂貴的代價(jià)需要強(qiáng)調(diào)的是:對(duì)已知關(guān)系模式的范式等級(jí)是語義上的,而不僅僅是看某個(gè)時(shí)刻關(guān)系中的數(shù)據(jù)值,必須考察數(shù)據(jù)間的依賴即便是知道了數(shù)據(jù)依賴,也不能證明一個(gè)關(guān)系是否3NF。我們只能首先假設(shè)這個(gè)關(guān)系是3NF,而去驗(yàn)證給出的關(guān)系中沒有違反數(shù)據(jù)依賴的情形30規(guī)范化理論如何辨別一個(gè)關(guān)系模式的“好壞”?不存在部分和傳遞函數(shù)依賴等“不好”的性質(zhì)的模式是“好”模式,否則會(huì)出現(xiàn)冗余和插入、刪除、更新等異?,F(xiàn)象規(guī)范化過程是用于設(shè)計(jì)好的數(shù)據(jù)庫的有力輔助,但并不是唯一的方法最初的設(shè)計(jì)中盡量做到“概念單一化”,即做到讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或?qū)嶓w間的一種聯(lián)系,這樣所設(shè)計(jì)的關(guān)系模式將會(huì)接近或達(dá)到第三范式,甚至達(dá)到BCNF31規(guī)范化過程小結(jié)1NF2NF3NFBCNF4NF消除非主屬性對(duì)碼的部分函數(shù)依賴消除非主屬性對(duì)碼的傳遞函數(shù)依賴消除主屬性對(duì)碼的部分和傳遞函數(shù)依賴消除多值依賴32練習(xí)設(shè)計(jì)關(guān)于供應(yīng)商供應(yīng)零件的數(shù)據(jù)庫,要求達(dá)到3NF最初的設(shè)計(jì):R(S#,Sname,City,Status,P#,Pname,Color,Weight,QTY)主碼:(S#,P#)函數(shù)依賴:S#Sname,S#Status,S#City,CityStatus,P#Pname,P#Color,P#Weight可見,其中有部分依賴,還有傳遞依賴。該模式僅為1NF33分解第一步分解,消除部分依賴,得到:
R1(S#,P#,QTY),(S#,P#)為碼
R2(S#,Sname,City,Status),S#為碼
R3(P#,Pname,Color,Weight),P#為碼其中,R1和R3都已達(dá)到3NF,但R2還存在傳遞依賴,僅僅是2NF第二步分解,消除R2中的傳遞依賴,
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中圖版必修2地理上冊(cè)階段測試試卷含答案
- 的擔(dān)保合同范文
- 導(dǎo)游聘用勞動(dòng)合同
- 留置擔(dān)保合同
- 網(wǎng)絡(luò)直播服務(wù)合同
- 2025解除勞動(dòng)合同通知書
- 2025勞動(dòng)合同變更程序
- 2025年蘇教新版七年級(jí)物理上冊(cè)月考試卷
- 2025年粵教版八年級(jí)歷史下冊(cè)階段測試試卷
- 2025年浙教版必修二地理上冊(cè)階段測試試卷
- 改革開放教育援藏的創(chuàng)新及其成效
- 第3課+中古時(shí)期的西歐(教學(xué)設(shè)計(jì))-【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 山東省濟(jì)寧市2023年中考數(shù)學(xué)試題(附真題答案)
- 班組建設(shè)工作匯報(bào)
- 供應(yīng)鏈金融與供應(yīng)鏈融資模式
- 工程類工程公司介紹完整x
- 板帶生產(chǎn)工藝熱連軋帶鋼生產(chǎn)
- 關(guān)鍵工序特殊過程培訓(xùn)課件精
- 輪機(jī)備件的管理(船舶管理課件)
- 統(tǒng)編《道德與法治》三年級(jí)下冊(cè)教材分析
- 國際尿失禁咨詢委員會(huì)尿失禁問卷表
評(píng)論
0/150
提交評(píng)論