關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論課件_第1頁
關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論課件_第2頁
關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論課件_第3頁
關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論課件_第4頁
關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

關(guān)係資料庫設(shè)計(jì)理論

一個(gè)資料庫應(yīng)用系統(tǒng)往往涉及到多方面的複雜的數(shù)據(jù)資訊。例如,在學(xué)生管理資訊系統(tǒng)中,要涉及到學(xué)生、院系、宿舍、課程、成績等數(shù)據(jù)。再例如,在產(chǎn)品銷售資料庫中設(shè)計(jì)到產(chǎn)品、類別、倉庫、銷售單、銷售明細(xì)單等數(shù)據(jù)。如何將所涉及到的數(shù)據(jù)組織存入到資料庫中?是放在一個(gè)表中存放還是分放在幾個(gè)表中存放?每個(gè)表應(yīng)由哪些屬性組成?怎樣設(shè)計(jì)才是科學(xué)合理的呢?解決之法是用RDB設(shè)計(jì)理論:規(guī)範(fàn)化理論例如:產(chǎn)品報(bào)價(jià)資料庫5.1數(shù)據(jù)依賴數(shù)據(jù)依賴在關(guān)係模式中廣泛存在,影響巨大。恰當(dāng)?shù)臄?shù)據(jù)依賴是必要的。但不必要的數(shù)據(jù)依賴會(huì)對(duì)關(guān)係模式產(chǎn)生不好的影響。進(jìn)行資料庫設(shè)計(jì)時(shí)要深入分析數(shù)據(jù)間的依賴。本節(jié)主要介紹關(guān)係模式中的數(shù)據(jù)依賴的相關(guān)概念,分析數(shù)據(jù)依賴對(duì)關(guān)係模式的影響。5.1數(shù)據(jù)依賴5.1.1關(guān)係模式中的數(shù)據(jù)依賴5.1.2數(shù)據(jù)依賴分類5.1.3一個(gè)關(guān)係模式中的函數(shù)依賴5.1.4函數(shù)依賴對(duì)關(guān)係模式的影響5.1.5函數(shù)依賴的概念5.1.6平凡函數(shù)依賴和非平凡函數(shù)依賴5.1.7完全函數(shù)依賴和部分函數(shù)依賴5.1.8傳遞函數(shù)依賴、碼5.1.1關(guān)係模式中的數(shù)據(jù)依賴1.關(guān)係模式描述為:

R(U,D,DOM,F(xiàn))

R為關(guān)係名。U屬性名集合。D為屬性組U中屬性所來自的域。DOM屬性向域的映象的集合。F為屬性間數(shù)據(jù)的依賴關(guān)係集合。2.數(shù)據(jù)依賴F:限定組成關(guān)係的各元組必須滿足的完整性約束條件。如屬性的取值範(fàn)圍;或者屬性值間的相互關(guān)聯(lián)(即數(shù)據(jù)依賴)。3.關(guān)係模式的簡(jiǎn)述為:

R(U,F(xiàn))5.1.2數(shù)據(jù)依賴分類1.關(guān)係模式中的數(shù)據(jù)依賴有多種,比較重要的是函數(shù)依賴、多值依賴、連接依賴。2.函數(shù)依賴:關(guān)係模式中屬性間的普遍存在函數(shù)依賴。例:student(sno,sname,ssex,sage,sdept)

該關(guān)係模式中存在以下函數(shù)依賴:

Sno—>sname,Sno—>ssex,Sno—>sdept。3.多值依賴:一門課由多個(gè)老師上,使用同一套參考書。4.連接依賴:關(guān)係與關(guān)係間往往存在聯(lián)繫。5.1.3學(xué)校關(guān)係模式的函數(shù)依賴snocnamegradesdeptMname如學(xué)校資料庫模式:一個(gè)系有若干學(xué)生,一個(gè)學(xué)生只屬於一個(gè)系;一個(gè)系只有一個(gè)系主任;一個(gè)學(xué)生可以選修多門課程,每門課程有若干同學(xué)選修;每個(gè)學(xué)生所學(xué)的每門課程都有成績。假設(shè)學(xué)校資料庫模式僅由一個(gè)表構(gòu)成。

student(sno,sdept,mname,cname,grade)各屬性為學(xué)號(hào),所在系,系主任名,課程名,成績。關(guān)係中存在的數(shù)據(jù)依賴為:5.1.4函數(shù)依賴對(duì)關(guān)係模式的影響關(guān)係模式:student(sno,sdept,mname,cname,grade)存在一些問題:1.數(shù)據(jù)冗餘太大。sdept,mname,cname重複保存。2.更新異常。3.插入異常。4.刪除異常。為什麼會(huì)出現(xiàn)這些問題呢?因?yàn)榇嬖诓缓线m的數(shù)據(jù)依賴!5.1.5函數(shù)依賴的概念定義:設(shè)R(U)是一個(gè)關(guān)係模式,U是R的屬性集合,X,Y是U的子集。對(duì)於R(U)的任意一個(gè)可能的關(guān)係r,如果r中不存在兩個(gè)元組,它們?cè)赬上的屬性相同,而在Y上的屬性不同,則稱“X函數(shù)確定Y”或”Y函數(shù)依賴於X“,記作X

Y。說明:(1)對(duì)R中所有關(guān)係實(shí)例而言;(2)資料庫設(shè)計(jì)者可作強(qiáng)制規(guī)定,如姓名不能同名;(3)如X

Y,X稱為決定屬性集;(4)如X

Y,並且Y

X則記為X

Y;(5)若Y不函數(shù)依賴於X,記作X—\—>Y。5.1.6平凡函數(shù)依賴和非平凡函數(shù)依賴

定義:在關(guān)係模式R(U),U是R的屬性集合,X,Y是U的子集,如果X

Y,但Y不包含於X,則稱X

Y是非平凡函數(shù)依賴,若Y包含於X,則稱X

Y是平凡函數(shù)依賴。說明:(1)對(duì)任一關(guān)係模式,平凡函數(shù)依賴必然成立。(2)本接只討論非平凡函數(shù)依賴。(3)非平凡函數(shù)依賴易產(chǎn)生問題。5.1.7完全函數(shù)依賴和部分函數(shù)依賴定義:在關(guān)係模式R(U),U是R的屬性集合,X,Y是U的子集。如果

X

Y,並且對(duì)於X的任何一個(gè)真子集X1,都有X1——|Y,,則稱“Y完全函數(shù)依賴於X”,記作X

Y。若X

Y,但Y不完全函數(shù)依賴於X,則稱Y部分函數(shù)依賴X,記作X—P

Y。說明:(1)部分函數(shù)依賴易產(chǎn)生問題。(2)完全函數(shù)依賴中,X為決定屬性,Y為非決定屬性。5.1.8傳遞函數(shù)依賴,碼傳遞函數(shù)依賴定義:在關(guān)係模式R(U),如果X

Y,Y——>Z,且Y不包含於X,Y——\

X,則稱“Z傳遞函數(shù)依賴於X”,記作X——>>Z。碼定義:設(shè)K為關(guān)係模式R(U,F(xiàn))中的屬性或?qū)傩越M。若K

U,則稱K是一個(gè)候選碼。若關(guān)係模式R有多個(gè)候選碼,則選定其中的一個(gè)為主碼。碼、候選碼、主碼、外部碼。5.2範(fàn)式理論

範(fàn)式:是指符合某一級(jí)別的關(guān)係模式的集合。目前主要有6種範(fàn)式:

1NF>2NF>3NF>BCNF>4NF>5NF6種範(fàn)式的規(guī)範(fàn)化程度依次增強(qiáng),滿足後一種。範(fàn)式的關(guān)係模式必然滿足前一種範(fàn)式。本節(jié)主要講述這六種範(fàn)式的特點(diǎn)。5.2範(fàn)式理論

5.2.11NF及存在的問題5.2.22NF及存在的問題5.2.33NF及存在的問題5.2.4BCNF及存在的問題5.2.54NF及存在的問題5.2.65NF5.2.7學(xué)校管理資料庫分析5.2.8STC資料庫分析5.2.11NF及存在的問題

snocnosdeptslocgrade1NF定義:如果一個(gè)關(guān)係模式R的所有屬性是不可分的基本資料項(xiàng)目,則R∈1NF。滿足1NF的關(guān)係模式並不一定是一個(gè)好關(guān)係模式。SLC(sno,sdept,sloc,cno,grade)主碼為(sno,cno)。該模式存在非主屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴。該模式中存在以下三個(gè)問題。數(shù)據(jù)冗餘太大;更新異常;插入異常;刪除異常。

5.2.11NF關(guān)係模式的分解對(duì)SLC(sno,sdept,sloc,cno,grade)分解,變?yōu)椋?/p>

SL(sno,sdept,sloc)SC(sno,cno,grade)分解後,去掉了非主屬性sdept對(duì)碼的部分函數(shù)依賴。snosnosdeptslocsdeptsloc5.2.22NF及存在的問題定義:若關(guān)係模式R∈1NF,並且每一個(gè)非主屬性都完全函數(shù)依賴於R的碼,則稱R∈2NF。即不存在非主屬性對(duì)碼的部分函數(shù)依賴。如果碼中只包含一個(gè)屬性且屬於1NF,則R必屬於2NF。SLC分解後的SL和SC關(guān)係模式都屬於2NF。分解後異常情況減少。但關(guān)係模式SL(sno,sdept,sloc)仍SL存在操作異常:冗餘大,更新異常,插入異常,刪除異常的情況。其原因是還存在sloc對(duì)sno的傳遞函數(shù)依賴5.2.22NF的分解對(duì)SL(sno,sdept,sloc)作進(jìn)一步的分解,去掉sloc對(duì)sno傳遞依賴:

SD(sno,sdept)DL(sdept,sloc)這時(shí),SD和DL的函數(shù)依賴是正常的。分解後在一定程度上解決了:數(shù)據(jù)冗餘大、更新異常、插入異常、刪除異常的情況。snosdeptslocsnosdeptslocsdept5.2.33NF及存在的問題定義:若關(guān)係模式R<U,F(xiàn)>中不存在候選碼X,屬性組Y,以及非主屬性Z(Z不包含於Y),使得X

Y,Y

Z和Y—\

X成立,則R∈3NF。若R∈3NF,則R的每一個(gè)非主屬性既不部分函數(shù)依賴於候選碼,也不傳遞函數(shù)依賴於候選碼。

SD(sno,sdept),DL(sdept,sloc)屬於3NF。但3NF並不一定就是一個(gè)好的關(guān)係模式。它並不能完全消除異常情況和數(shù)據(jù)冗餘。5.2.33NF的問題及分解例:STJ(S,T,J)S表示學(xué)生,T表示教師,J表示課程。假若每一教師只教一門課,每門課有若干教師教,某一學(xué)生選定的某門課就確定了一個(gè)固定的教師。STJ中存在兩個(gè)候選碼(S,J)和(S,T),它存在以下數(shù)據(jù)依賴:(S,J)

T,(S,T)

J,T

J。即STJ中存在主屬性J部分依賴於碼(S,T)。該模式仍存在以下情況:數(shù)據(jù)冗餘太大。更新異常。插入異常。刪除異常。對(duì)STJ分解,變?yōu)椋篠T(S,T),TJ(T,J)分解後,解決了上述幾種異常情況。5.2.4BCNF定義:若關(guān)係模式R<U,F(xiàn)>∈1NF,如果對(duì)於R的每個(gè)函數(shù)依賴X

Y,若Y不包含於X,則X必含有候選碼。那麼R∈BCNF。即在關(guān)係模式R<U,F(xiàn)>中,如果每個(gè)決定屬性都包含候選碼,則R∈BCNF。即在3NF的基礎(chǔ)上,消除了主屬性對(duì)碼的部分依賴和傳遞依賴,所在屬性都不部分依賴或傳遞依賴於碼。5.2.4BCNF三個(gè)性質(zhì)BCNF具有三個(gè)性質(zhì):(1)所有非主屬性都完全函數(shù)依賴於每個(gè)候選碼。(2)所有主屬性都完全函數(shù)依賴於每個(gè)不包含它的候選碼。(3)沒有任何屬性完全函數(shù)依賴於非碼的任何一組屬性。如果R中只有一個(gè)候選碼,如R∈3NF,則必R∈BCNF。5.2.43NF

BCNF小結(jié)3NF和BCNF是以函數(shù)依賴為基礎(chǔ)的關(guān)係模式規(guī)範(fàn)化程度的測(cè)度。如果一個(gè)關(guān)係資料庫中的所有關(guān)係模式都屬於BCNF,那麼在函數(shù)依賴依賴範(fàn)疇內(nèi),它已實(shí)現(xiàn)了模式的徹底分解,達(dá)到了最高的規(guī)範(fàn)化程度。5.2.5一個(gè)存在多值依賴的關(guān)係模式關(guān)係模式:TEACH(C,T,B),C表示課程,T表示教師,B表示參考書。假設(shè)某一門課由多個(gè)教師講授,一門課使用相同的一套參考書。關(guān)係模式存在以下依賴:數(shù)學(xué)

[鄧海,陳紅]

[高數(shù),數(shù)學(xué)分析,微分方程]物理

[李東,張強(qiáng),劉明]

[普通物理學(xué),光學(xué)]該關(guān)係模式碼為(C,T,B),為全碼。滿足BCNF,但仍存在四種異常。為什麼呢?課程C教師T參考書B數(shù)學(xué)鄧海高數(shù)數(shù)學(xué)鄧海數(shù)學(xué)分析數(shù)學(xué)鄧海微分方程數(shù)學(xué)陳紅高數(shù)數(shù)學(xué)陳紅數(shù)學(xué)分析數(shù)學(xué)陳紅微分方程物理李東普通物理物理李東光學(xué)………5.2.5多值依靠定義一定義:設(shè)R(U)是一個(gè)屬性集U上的一個(gè)關(guān)係模式,X,Y和Z是U的子集,並且Z=U-X-Y,多值依賴X

Y成立當(dāng)且僅當(dāng)對(duì)R的任一關(guān)係r,r在(X,Z)上的每個(gè)值對(duì)應(yīng)一組Y的值,這組值僅僅決定於X值而與Z值無關(guān)。若X

Y,而Z=Ф(表示空集),則X

Y為平凡的多值依賴。否則稱X

Y為非平凡的多值依賴。5.2.5多值依靠定義二多值依賴另一定義:在關(guān)係模式R(U)的任一關(guān)係中,如果對(duì)於任意兩個(gè)元組t,s,有t[X]=s[X],就必存在元組w,v∈r(w和v可以與s和t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z],即交換s,t元組的Y值所得的兩個(gè)新元組必在r中,則稱Y多值依賴於X,記為X

Y。其中,X和Y是U的子集,Z=U-X-Y。5.2.5多值依賴具有下列性質(zhì)(1)對(duì)稱性。即X

Y,則XZ

,其中Z=U-X-Y。(2)傳遞性。即X

Y,Y

Z,則XZ

。(3)函數(shù)依賴可以看作是多值依賴的特殊情況。(4)若X

Y,X

Z,則XYZ

。(5)若X

Y,X

Z,則XY∩Z

。(6)若X

Y,X

Z,則XY-Z,XZ-Y

。(7)多值依賴的有效性與屬性集的範(fàn)圍有關(guān)。(8)若多值依賴X

Y在R(U)上成立,對(duì)於Y‘包含於Y,並不一定X

Y’成立,但是如果函數(shù)依賴X

Y在R(U)上成立,對(duì)於任何Y‘包含於Y,必定X

Y’成立。5.2.5多值依賴與4NF

對(duì)TEACH(C,T,B)處理,去掉多值依賴。分解兩個(gè)關(guān)係模式:

CT(C,T)∈4NFCB(C,B)∈4NF4NF定義:

關(guān)係模式R(U,F(xiàn))∈1NF,如果對(duì)於R的每個(gè)非平凡多值依賴X

Y(Y不包含於X),X都含有候選碼,則R∈4NF。5.2.6連接依賴分解是關(guān)係規(guī)範(fàn)化的主要手段,連接依賴是有關(guān)分解和自然連接的理論,5NF是有關(guān)如何消除子關(guān)係的插入異常和刪除異常。連接依賴:設(shè)R(U)是屬性集U上的關(guān)係模式,X1,X2,…Xn是U的子集,且U=X1∪X2∪…∪Xn,如R等於R(X1),R(X2),…R(Xn)的自然連接,則稱R在X1,X2,…Xn上具有n目連接依賴。記作,∞[X1][X2]…[Xn]。5.2.6連接依賴和5NF5NF定義:如果關(guān)係模式R中的每一個(gè)連接依賴均由R的候選碼所隱含,則稱R∈5NF。說明:(1)即指連接時(shí)所連接的屬性均為候選碼。(2)多表間的連接應(yīng)滿足5NF較好。5.2.7學(xué)校管理資料庫分析SNOCNGDNDMS1C1ACSZHANGS1C2ACSZHANGS1C4ACSZHANGS1C5BCSZHANGS2C2BCSZHANGS2C3ACSZHANGS2C4BCSZHANGS3C1BMAWANGS3C2CMAWANGS3C3AMAWANGS4C1AELLIS4C2BELLIS4C3CELLIS5C2BISZHAOS5C3CISZHAOS5C4AISZHAOSNODNS1CSS2CSS3MAS4ELS5ISSNOCNGS1C1AS1C2AS1C4AS1C5BS2C2BS2C3AS2C4BS3C1BS3C2CS3C3AS4C1AS4C2BS4C3CS5C2BS5C3CS5C4ADNDMCSZHANGMAWANGELLIISZHAOUNSCDS5.2.7學(xué)校管理資料庫的函數(shù)依賴GSNOCNDNDM5.2.7函數(shù)依賴的變換SNOCNGSC:SNODNDNDMSD:D:GSNOCNDNDMUN:fpptDNDMSNOSD:t5.2.8STC資料庫分析StudentCourseTeacherS1S1S2S2PhysicsMathsMathsPhysicsZhaoQianSunLi實(shí)例:SCTSTC函數(shù)依賴:STTCST:TC:5.3關(guān)係模式的規(guī)範(fàn)化基本思想是逐步消除數(shù)據(jù)領(lǐng)帶中不合適的部分,使模式中的各關(guān)係模式達(dá)到某種程度的“分解”,即採用“一事一地”的模式設(shè)計(jì)原則,讓一個(gè)關(guān)係描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)繫。即“概念單一化”。5.3關(guān)係模式的規(guī)範(fàn)化5.3.1規(guī)範(fàn)化步驟5.3.2關(guān)係模式的分解的準(zhǔn)則5.3.3一個(gè)關(guān)係模式分解的探討5.3.4無損連接性5.3.5保持函數(shù)依賴5.3.6學(xué)生成績登記表分析5.3.1規(guī)範(fàn)化步驟1NF2NF3NFBCNF4NF5NF消除非主屬性對(duì)碼的部分函數(shù)依賴消除非主屬性對(duì)碼的傳遞函數(shù)依賴消除主屬性對(duì)碼的部分和傳遞函數(shù)依賴消除多值依賴消除連接依賴消除決定屬性集非碼非平凡函數(shù)依賴5.3.2關(guān)係模式的分解的準(zhǔn)則要保證分解後的關(guān)係模式與原關(guān)係模式等價(jià)。有三種標(biāo)準(zhǔn):(1)分解具有無損連接性。(2)分解要保持函數(shù)依賴。(3)分解既要保持函數(shù)依賴,又解要保持無損連接性。5.3.3一個(gè)關(guān)係模式分解的探討

關(guān)係模式:SL(sno,sdept,sloc)分解方法有:方法一:SN(sno),SD(sdept),SO(sloc)丟失了很多有用的資訊,分解不能保持函數(shù)依賴,不具有無損連接性。方法二:NL(sno,sloc),DL(sdept,sloc)分解能保持函數(shù)依賴,但不具有無損連接性。方法三:ND(sno,sdept),NL(sno,sloc)分解具有無損連接性,但不能保持函數(shù)依賴。方法四:ND(sno,sdept),DL(sdept,sloc)分解既能保持函數(shù)依賴,又具有無損連接性。

5.3.4無損連接性設(shè)關(guān)係模式R(U,F(xiàn))被分解為若干個(gè)關(guān)係模式R1(U1,F(xiàn)1),R2(U2,F(xiàn)2)…..Rn(Un,F(xiàn)n),(其中U=U1∪U2……∪Un,且不存在Ui包含於Uj中,Ri為F在Ui上的投影),若R與R1,R2..…Rn自然連接的結(jié)果相等,則稱關(guān)係模式R的分解具有無損連接性。只有具有無損連接性的分解才能保證不丟失資訊。例如方法三:ND(sno,sdept),NL(sno,sloc)分解具有無損連接性,但不能保持函數(shù)依賴。5.3.5保持函數(shù)依賴設(shè)關(guān)係模式R(U,F(xiàn))被分解為若干個(gè)關(guān)係模式R1(U1,F(xiàn)1),R2(U2,F(xiàn)2)…..Rn(Un,F(xiàn)n),(其中U=U1∪U2……∪Un,且不存在Ui不包含於Uj中,Ri為F在Ui上的投影),若F所邏輯蘊(yùn)含的函數(shù)依賴一定也由分解得到的某個(gè)關(guān)係模式中的函數(shù)依賴Fi所邏輯蘊(yùn)含,則稱關(guān)係模式R的分解具有保持函數(shù)依賴。方法四:ND(sno,sdept),DL(sdept,sloc)

分解既能保持函數(shù)依賴,又具有無損連接性。5.3.6學(xué)生成績登記表分析學(xué)號(hào)姓名性別專業(yè)年級(jí)課程成績課號(hào)課名學(xué)時(shí)學(xué)分教師師號(hào)成績S1S2張三李四男女CSCS9899C1C2C3C4C5C1DBDSOSMAPHDB6060801209060334653趙錢孫李周趙M1M9M4M7M2M1907085907586如何對(duì)該關(guān)係模式進(jìn)行分解呢?5.4小結(jié)優(yōu)秀的DB設(shè)計(jì)是DBS應(yīng)用成功的基石。RDB邏輯設(shè)計(jì)以RDB規(guī)範(fàn)化理論為指導(dǎo)。不合理數(shù)據(jù)依賴會(huì)產(chǎn)生冗餘

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論