第3章-關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論2-范式用_第1頁(yè)
第3章-關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論2-范式用_第2頁(yè)
第3章-關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論2-范式用_第3頁(yè)
第3章-關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論2-范式用_第4頁(yè)
第3章-關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論2-范式用_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

3.3關(guān)系模式的規(guī)范化--范式

設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)時(shí),關(guān)系模式不可以隨意建立,它們必須滿足一定的規(guī)范化要求,滿足不同程度要求的為不同范式。滿足最低要求的叫第一范式,簡(jiǎn)稱1NF(FirstNormalForm)。在第一范式中滿足進(jìn)一步要求的為第二范式,其余以此類推。

R滿足第幾范式,記為:R∈xNF。

各種范式之間的關(guān)系是:5NF

4NF

BCNF

3NF

2NF

lNF

一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解,轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,該過(guò)程稱為規(guī)范化。1NF3NF2NF4NFBCNF5NF數(shù)據(jù)獨(dú)立性低高3.3.1第一范式(1NF)定義:如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則稱R是第一范式(FirstNormalForm)的關(guān)系模式。記為R

lNF。不是1NF的關(guān)系稱為非規(guī)范化的關(guān)系,滿足1NF的關(guān)系稱為規(guī)范化的關(guān)系。關(guān)系數(shù)據(jù)庫(kù)研究的關(guān)系都是規(guī)范化的關(guān)系。1NF是關(guān)系數(shù)據(jù)庫(kù)中關(guān)系的最低要求。例:將該表規(guī)范成1NF可以有二種方法:保留職工號(hào)的碼的地位,把電話號(hào)碼拆分成單位電話和住宅電話兩個(gè)屬性。第二種方法是保留職工號(hào)的碼的地位。維持原模式不變,但強(qiáng)制每個(gè)元組只能錄入一個(gè)電話號(hào)碼??筛鶕?jù)應(yīng)用需要確定一種。滿足第一范式的關(guān)系是否還存在問(wèn)題?

例,設(shè)有關(guān)系模式SC(SNo,CNo,GRADE,CREDIT),其中CREDIT表示學(xué)分。函數(shù)依賴:(SNo,CNo)

GRADE,CNo

CREDIT,主碼是(SNo,CNo)。該關(guān)系模式在實(shí)際使用中會(huì)出現(xiàn)下列問(wèn)題:①數(shù)據(jù)冗余。同一門(mén)課的學(xué)分存儲(chǔ)多次。②更新異常。同一門(mén)課的學(xué)分變化了,要修改多次③插入異常。當(dāng)主屬性學(xué)號(hào)為空時(shí)不能插入。④刪除異常。如某課程不開(kāi)了,則會(huì)刪除學(xué)生信息。原因在于關(guān)系模式SC中的非主屬性CREDIT部分函數(shù)依賴于碼(SNo,CNo):

(SNo,CNo)

CREDIT。P3.3.2第二范式(2NF)定義:若R∈lNF,且每一個(gè)非主屬性都完全函數(shù)依賴于碼,則R∈2NF。上例中的關(guān)系模式SC顯然不是2NF,因?yàn)樗嬖诓糠忠蕾嚕?/p>

(SNo,CNo)

CREDIT

將上述非2NF的關(guān)系SC規(guī)范化為2NF關(guān)系,應(yīng)設(shè)法消除部分依賴。P通過(guò)投影把它分解為以下兩個(gè)關(guān)系模式:

SCG(SNo,CNo,GRADE)//CNo是外鍵

C(CNo,CREDIT)

新關(guān)系模型包括兩個(gè)關(guān)系模式,它們之間通過(guò)SCG中的外鍵CNo相聯(lián)系,需要時(shí)再自然聯(lián)接,則恢復(fù)了原來(lái)的關(guān)系。3.3.2第二范式(2NF)滿足2NF的關(guān)系模式是否就沒(méi)問(wèn)題了?例,關(guān)系模式SD(SNo,SName,DNo,DName,Location),主碼是SNo,不存在部分依賴,屬于2NF。但仍然存在大量冗余,關(guān)于系的重復(fù)值隨著學(xué)生的增加而增加。在插入、刪除或修改元組時(shí)也將產(chǎn)生異常情況。分析其原因,由于關(guān)系中存在傳遞依賴:

SNo

Location,(SNo

DNo,DNo

Location,DNo

DName

)。3.3.3第三范式(3NF)

定義:如果關(guān)系模式R(U,F(xiàn))中若不存在這樣的碼X,屬性組Y及非主屬性組Z(ZY)使得XY,(YX)YZ成立,則R(U,F(xiàn))

3NF。

第二種定義:

如果關(guān)系模式R(U,F(xiàn))中的所有非主屬性對(duì)碼都不存在傳遞依賴,則R(U,F(xiàn))

3NF。

定理:如果R∈3NF,則R∈2NF。

證明:

假設(shè)R∈2NF,則R∈3NF。

則R中非主屬性A部分依賴于碼K,則存在:

K'

K,使得K'→A。因?yàn)镵‘是K的子集,所以有:K→K’,但K‘→K。于是有K→K’,K’→K,K’→A,并且A不屬于K’,因而非主屬性A傳遞依賴于碼K,則R不屬于3NF(R∈3NF

)。證畢。3.3.3第三范式(3NF)3.3.3第三范式(3NF)上例的關(guān)系模式SD(SNo,SName,DNo,DName,Location),顯然不滿足3NF,因?yàn)樗嬖趥鬟f依賴:SNo

DNo,DNo

Location

,將關(guān)系模式SD分解為兩個(gè)關(guān)系模式:

S(SNo,SName,DNo)

D(DNo,DName,Location)

則這兩個(gè)關(guān)系模式都滿足3NF。

注意:投影時(shí)不能從關(guān)系S中遺漏外碼DNO,否則這兩個(gè)關(guān)系之間將失去聯(lián)系,就不能通過(guò)自然聯(lián)接再恢復(fù)原來(lái)的關(guān)系了。3.3.3第三范式(3NF)

部分函數(shù)依賴和傳遞函數(shù)依賴是產(chǎn)生冗余、異常的兩個(gè)重要原因,3NF消除了大部分冗余、異常,具有較好的性能。

但3NF并沒(méi)有要求消除主屬性對(duì)候選碼的傳遞依賴,如果存在這種情況,3NF模式仍然可能發(fā)生存儲(chǔ)異?,F(xiàn)象。3.3.4BCNF

定義:關(guān)系模式R(U,F(xiàn))

1NF。若XY,且YX,則X必含有碼,則R

BCNF。或者定義:如果關(guān)系模式R(U,F(xiàn))的所有屬性都不傳遞依賴于R的任何候選碼,那么稱關(guān)系模式R

BCNF。

定理:如果R

BCNF,則R

3NF。證明留為課后作業(yè)。3.3.4BCNF結(jié)論:所有非主屬性對(duì)每一個(gè)碼都是完全函數(shù)依賴。所有主屬性對(duì)每一個(gè)不包含它的碼,也是完全函數(shù)依賴。沒(méi)有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。BCNF范式排除了任何屬性對(duì)碼的傳遞依賴和部分依賴。3.3.4BCNF下面用2個(gè)例子說(shuō)明屬于3NF的關(guān)系模式有的屬于BCNF,有的不屬于BCNF:

關(guān)系模式SJP(S,J,P)中,S是學(xué)生,J表示課程,P表示名次。每一個(gè)學(xué)生選修每門(mén)課程的成績(jī)有一個(gè)名次,每門(mén)課程的每一名次只有一個(gè)學(xué)生(即沒(méi)有并列名次)。由語(yǔ)義可得到下面的函數(shù)依賴:

(S,J)→P,(J,P)→S(S,J)與(J,P)都是候選碼。

SJP

3NF,且SJP

BCNF。3.3.4BCNF例:

關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。每一教師只教一門(mén)課。每門(mén)課有若干教師,某一學(xué)生選定某門(mén)課,就對(duì)應(yīng)一個(gè)固定的教師。由語(yǔ)義可得到如下的函數(shù)依賴:T→J;(S,J)→T;(S,T)→J。

這里(S,J),(S,T)都是候選碼。

STJ

3NF,STJ

BCNF(主屬性J傳遞依賴于碼SJ)3.3.4BCNF

3NF的“不徹底”性表現(xiàn)在可能存在主屬性對(duì)碼的部分依賴和傳遞依賴。非BCNF的關(guān)系模式也可以通過(guò)分解成為BCNF。例如STJ可分解為:

ST(S,T)與TJ(T,J),它們都是BCNF。一個(gè)模式中的關(guān)系模式如果都屬于BCNF,那么在函數(shù)依賴范疇內(nèi),它已實(shí)現(xiàn)了徹底的分離,消除了插入和刪除的異常。3.3.4BCNF關(guān)系滿足3NF卻違反BCNF,一般在下列情況下發(fā)生:關(guān)系中包括兩個(gè)或更多的復(fù)合候選碼。候選碼間有重疊屬性。如,關(guān)系模式STJ(S,T,J),(S,J),(S,T)都是候選碼。3.3.4BCNF

分解指南:可以將任何不符合BCNF的關(guān)系分解成符合BCNF的關(guān)系,但是在所有情況下都將一個(gè)關(guān)系轉(zhuǎn)化為符合BCNF的關(guān)系并不一定是最佳選擇。因?yàn)樵趯?duì)關(guān)系從3NF分解為BCNF時(shí),有可能會(huì)丟失一些函數(shù)依賴(看下面例子)。而且在分解后的關(guān)系中要滿足原來(lái)的函數(shù)依賴是非常困難的。在這種情況下,最好只將關(guān)系規(guī)范到3NF,在3NF中,所有的函數(shù)依賴都會(huì)保留下來(lái)。3.3.4BCNF范式例,考慮模式,R(A,B,C),FD={AB→C,C→B}

由于B是主屬性,R

3NF,R

BCNF,對(duì)它做BCNF分解,于是得到R1{C,B}和R2{A,B},丟失了函數(shù)依賴AB→C。3.4多值依賴和4NF

1.問(wèn)題的提出

以上完全是在函數(shù)依賴的范疇內(nèi)討論問(wèn)題。屬于BCNF的關(guān)系模式是否就很完美了呢?例,學(xué)校中某一門(mén)課程由多個(gè)教員講授,他們使用相同的一套參考書(shū)。每個(gè)教員可以講授多門(mén)課程,每種參考書(shū)可以供多門(mén)課程使用。我們可以用一個(gè)非規(guī)范化的關(guān)系來(lái)表示教員T,課程C和參考書(shū)B(niǎo)之間的關(guān)系:3.4多值依賴和4NF課程C

教員T

參考書(shū)B(niǎo)

-----------------------------------

物理李勇

普通物理學(xué)

王軍

光學(xué)原理

物理習(xí)題集

-----------------------------------

數(shù)學(xué)

李勇

數(shù)學(xué)分析

張平

微分方程

高等代數(shù)3.4多值依賴和4NF

課程C教員T參考書(shū)B(niǎo)

------------------------

物理

李勇

普通物理學(xué)

物理

李勇

光學(xué)原理

物理

李勇

物理習(xí)題集

物理王軍普通物理學(xué)

物理王軍光學(xué)原理

物理王軍物理習(xí)題集

數(shù)學(xué)李勇數(shù)學(xué)分析

數(shù)學(xué)李勇微分方程

數(shù)學(xué)李勇高等代數(shù)

數(shù)學(xué)張平數(shù)學(xué)分析

數(shù)學(xué)張平微分方程

數(shù)學(xué)張平高等代數(shù)

3.4多值依賴和4NF

關(guān)系模式Teaching(C,T,B)的碼是(C,T,B),即A1l_Key。Teaching∈BCNF。

Teaching模式中存在的問(wèn)題:

(1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書(shū)就要存儲(chǔ)多少次。

(2)插入操作復(fù)雜:當(dāng)某一課程增加一名任課教師時(shí),該課程有多少本參照書(shū),就必須插入多少個(gè)元組。當(dāng)物理增加一名講課教員周英時(shí),必須插入3個(gè)元組:(物理,周英,普通物理學(xué)),(物理,周英,光學(xué)原理),(物理,周英,物理習(xí)題集)(3)刪除操作復(fù)雜:某一門(mén)課要去掉一本參考書(shū),該課程有多少名教師,就必須刪除多少個(gè)元組。(4)修改操作復(fù)雜:某一門(mén)課要修改一本參考書(shū),該課程有多少名教師,就必須修改多少個(gè)元組。產(chǎn)生原因: 存在多值依賴3.4多值依賴和4NF3.4多值依賴和4NF2.多值依賴定義

設(shè)R(U)是屬性集U上的一個(gè)關(guān)系模式。X,Y,Z是的U的子集,并且Z=U-X-Y。關(guān)系模式R(U)中Y多值依賴于X(記作X→→Y)成立,當(dāng)且僅當(dāng)對(duì)R(U)的任一關(guān)系r,給定的一對(duì)(X,Z)值,有一組Y的值,這組值僅僅決定于X值而與Z值無(wú)關(guān)。或者:對(duì)R的任一關(guān)系r,在r中存在元組t(x,y1,z1)和s(x,y2,z2),則存在元組w(x,y2,z1)和v(x,y1,z2),則稱X→→Y在R上成立。3.4多值依賴和4NF在關(guān)系模式Teaching中,對(duì)于C的每一個(gè)值,T有一組值與之對(duì)應(yīng),而不論B取何值因此T多值依賴于C,即C→→T。即,對(duì)于一個(gè)(物理,光學(xué)原理)有一組T值{李勇,王軍},這組值僅僅決定于課程C上的值(物理)。也就是說(shuō)對(duì)于另一個(gè)(物理,普通物理學(xué))它對(duì)應(yīng)的一組T值仍是{李勇,王軍},盡管這時(shí)參考書(shū)B(niǎo)的值已經(jīng)改變了。3.4多值依賴和4NF多值依賴形式化定義:在R(U)的任一關(guān)系r中,如果存在元組t,s使得t[X]=s[X],那么就必然存在元組w,v∈r(w,v

可以與t,s相同),使得:w[X]=v[X]=t[X]=s[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z],則Y多值依賴于X,記作X→→Y。其中,X,Y是U的子集,Z=U-X-Y。

txy1

z2sxy2

z1wxy1

z1vxy2

z2

3.4多值依賴和4NF

平凡的多值依賴和非平凡的多值依賴定義:若X→→Y,而U-X-Y=

,則X→→Y為平凡的多值依賴。

否則稱X→→Y為非平凡的多值依賴。3.4多值依賴和4NF3.4NF定義關(guān)系模式R〈U,F(xiàn)〉∈lNF,如果對(duì)于R的每個(gè)非平凡多值依賴X→→Y(Y

X),X都含有碼(即X→Y),則稱R〈U,F〉

4NF。

4NF限制屬性之間不允許有非平凡且非函數(shù)依賴的多值依賴。4NF所允許的非平凡的多值依賴實(shí)際上是函數(shù)依賴。

定理:如果R

4NF,則R

BCNF。(留為作業(yè))

多值依賴的問(wèn)題在于數(shù)據(jù)冗余太大??梢杂猛队胺纸獾姆椒ㄏシ瞧椒睬曳呛瘮?shù)依賴的多值依賴。3.4多值依賴和4NF例,關(guān)系模式WSC(W,S,C)中,W表示倉(cāng)庫(kù),S表示保管員,C表示商品。假設(shè)每個(gè)倉(cāng)庫(kù)有若干保管員,有若干商品;每個(gè)保管員保管所在倉(cāng)庫(kù)的所有商品,每種商品被所有保管員保管。

WSC

W1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3...3.4多值依賴和4NF顯然W→→S,W→→C,都是非平凡的多值依賴,并且W不為碼,因此,模式WSC4NF,但是WSCBCNF,但WSC關(guān)系模式,數(shù)據(jù)冗余仍然比較大??梢詫㈥P(guān)系模式WSC分解為兩個(gè)關(guān)系模式:

WS(W,S)、

WC(W,C)

這樣,在WS和WC中,雖然仍然存在多值依賴,但它們已經(jīng)是平凡的多值依賴。WS和WC不存在非平凡的非函數(shù)依賴的多值依賴,因此,WS和WC都為4NF。3.5

連接依賴和5NF1.連接依賴的定義設(shè)U是關(guān)系模式R的屬性集,X1、…、Xn是U的子集,并且U=X1∪X2∪…∪Xn,對(duì)于R的任一關(guān)系r,都有r為其在各Xi(1=1,…,n)上的投影的連接,即r=πx1(r)?πx2

(r)?…?πxn(r),則稱R滿足連接依賴(JoinDependency,JD),記為*(X1,…,Xn)。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論