資源描述:
《數(shù)據(jù)庫原理與SQL》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、數(shù)據(jù)庫原理與SQLSever2000第3章關(guān)系數(shù)據(jù)庫理論基礎(chǔ)(第二部分)3.6關(guān)系規(guī)范化建立關(guān)系數(shù)據(jù)庫應(yīng)遵循一定的原則,以保證數(shù)據(jù)庫的穩(wěn)定、靈活,方便。-----關(guān)系規(guī)范化的問題1、關(guān)鍵字關(guān)鍵字:在關(guān)系中用來唯一標(biāo)識(shí)一元組的一個(gè)或一組屬性關(guān)鍵字不允許為空可以是一個(gè)或多個(gè)或者全部屬性候選關(guān)鍵字:在關(guān)系中可以用來唯一標(biāo)志元組的屬性或?qū)傩越M主關(guān)鍵字:在候選關(guān)鍵字中用來指定做主關(guān)鍵字的屬性或?qū)傩越M主屬性:可作為候選關(guān)鍵字的屬性非主屬性:不能作為候選關(guān)鍵字的屬性外部關(guān)鍵字:關(guān)系中某個(gè)或某組屬性并非關(guān)鍵字卻是另一個(gè)關(guān)系的主關(guān)鍵字時(shí),稱為外部關(guān)鍵字。3.6.1一些重要概念
2、2、函數(shù)依賴關(guān)系規(guī)范化是圍繞函數(shù)依賴進(jìn)行的。在具體的關(guān)系中,函數(shù)依賴是刻畫關(guān)系中各個(gè)屬性之間相互制約而又相互依賴的關(guān)系。其中關(guān)鍵最為重要,它決定了其它的屬性值。由于關(guān)鍵字可能為某個(gè)屬性也有可能為某組屬性,因此各屬性對(duì)關(guān)鍵字存在著不同的依賴。以下給出函數(shù)依賴的嚴(yán)格定義并說明不同的依賴情況。3.6.1一些重要概念函數(shù)依賴設(shè)R(U)是屬性集U上的關(guān)系。X,Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,均有x的一個(gè)值對(duì)應(yīng)于y的惟一具體值,稱為y單值函數(shù)依賴于x,或稱X函數(shù)決定,記作x→y。若進(jìn)一步,有y→x,則x與y相互依賴,記作x←→y完全函數(shù)依賴設(shè)R(U)
3、是屬性集U上的關(guān)系。X,y是U的子集,x’是x的真子集。若對(duì)于R(U)下的任何一個(gè)可能的關(guān)系,有x→y但x→y則稱y完全函數(shù)依賴于x,記作x→y部分函數(shù)依賴若x→y且x’→y,則稱y部分依賴于x,記作x→y只有當(dāng)x為復(fù)合屬性組時(shí),才可能有部分信賴情況。3.6.1一些重要概念fp傳遞依賴在R(U)中,若x→y,但y→x,若y→z,則x→z,此稱為z傳遞函數(shù)依賴于x,記作x→y例1:假設(shè)選課關(guān)系(學(xué)號(hào),課程號(hào),教師號(hào),學(xué)生姓名,成績(jī),課程名稱,教師姓名):SCT(xh,kch,jsh,xsxm,cj,kcmc,jsxm)它們之間的依賴關(guān)系可以表示為:(sno,c
4、no)→cname(sno,cno)→tnamecno←→cname(假設(shè)所有課程均不同名)cno→tname(sno,cno)→grade3.6.1一些重要概念tp例2(參見P53[例3-9])設(shè)車間考核職工完成生產(chǎn)定額關(guān)系為:W(日期,工號(hào),姓名,工種,定額,超額,車間,車間主任)它們之間的依賴關(guān)系可以表示為:(日期,工號(hào))→超額(日期,工號(hào))→姓名(日期,工號(hào))→工種(日期,工號(hào))→車間工號(hào)→工種,工種→定額,所以工號(hào)→定額工號(hào)→車間,車間→車間主任,所以工號(hào)→車間主任3.6.1一些重要概念pfpptt3.6.2范式與規(guī)范化1、范式關(guān)系模式滿足的確定
5、約束條件稱為范式,根據(jù)滿足約束條件的級(jí)別不同,范式由低到高分為1NF,2NF,3NF,BCNF等。不同的級(jí)別范式性質(zhì)不同。滿足最低要求的叫第一范式,簡(jiǎn)稱lNF。在第一范式中滿足進(jìn)一步要求的為第二范式,其余以此類推。R為第幾范式就可以寫成R∈xNF。對(duì)于各種范式之間的聯(lián)系有BCNF 3NF 2NFlNF成立。一個(gè)低一級(jí)范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過程就叫規(guī)范化3.6.2范式與規(guī)范化2、范式的判定條件與規(guī)范化1)1NF:關(guān)系R的所有屬性都是不可再分的數(shù)據(jù)項(xiàng),則該關(guān)系屬于第一范式,記作R∈1NF.例1:工資(工號(hào),姓
6、名,工資(基本工資,年績(jī)津貼,煤電補(bǔ)貼))該關(guān)系不滿足1NF的關(guān)系稱為非規(guī)范化關(guān)系。轉(zhuǎn)化方法為:工資(工號(hào),姓名,基本工資,津貼,獎(jiǎng)金)3.6.2范式與規(guī)范化例2:參見P54的表3-26的非規(guī)范化的關(guān)系轉(zhuǎn)化為表3-27的規(guī)范化的關(guān)系僅滿足1NF,還存在問題,如P53[例3-9]以下一些記錄(參見P55的表3-28),缺點(diǎn)所在:數(shù)據(jù)冗余大:如工人基本信息重復(fù)出現(xiàn)修改麻煩:如有人更換工種,則需更改每一條相應(yīng)的信息。插入異常:日期和工號(hào)不能為NULL,若新工人還沒工作,則該工人信息不能插入到表中。刪除異常:若要?jiǎng)h除某人的所有工作記錄,則此人基本是不存在。3.6
7、.2范式與規(guī)范化1NF有數(shù)據(jù)冗余大、修改麻煩、插入異常、刪除異常等缺點(diǎn),主要原因是因?yàn)槠洳粔蛞?guī)范化,對(duì)W的約束太少。W關(guān)系中存在完全、部分、傳遞三種不同依賴情況(參見P56圖3-4)。改進(jìn)的辦法是消除同時(shí)存在于一個(gè)關(guān)系的不同的依賴情況,因此有2NF。3.6.2范式與規(guī)范化(2)2NF:若關(guān)系R∈1NF,且它的每一非主屬性都完全依賴于關(guān)鍵字,則稱R屬于第二范式。記為:R∈2NF[例3-10]對(duì)W關(guān)系加以分解,使之滿足2NF定義分解:W=W1+W2W1(日期,工號(hào),超額)W2(工號(hào),姓名,工種,定額,車間,車間主任)分解以后的記錄參見P56表3-293.6.2范
8、式與規(guī)范化表3-29W關(guān)系分解為W1和W23.6.2