數(shù)據(jù)庫系統(tǒng)原理-6_第1頁
數(shù)據(jù)庫系統(tǒng)原理-6_第2頁
數(shù)據(jù)庫系統(tǒng)原理-6_第3頁
數(shù)據(jù)庫系統(tǒng)原理-6_第4頁
數(shù)據(jù)庫系統(tǒng)原理-6_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)原理第六章關(guān)系數(shù)據(jù)理論黃穗副教授主講暨南大學(xué)信息學(xué)院計(jì)算機(jī)系2/40【教學(xué)目標(biāo)】

通過觀察關(guān)系模式產(chǎn)生的四種典型問題了解規(guī)范化的必要性。掌握函數(shù)依賴的分析方法,掌握范式判斷的標(biāo)準(zhǔn)和分析方法。掌握范式分解的基本步驟。

【教學(xué)重點(diǎn)】函數(shù)依賴分析的步驟和方法,各個(gè)范式的判斷標(biāo)準(zhǔn),范式分解方法?!窘虒W(xué)難點(diǎn)】函數(shù)依賴分析,范式標(biāo)準(zhǔn)的掌握與運(yùn)用。范式分解所產(chǎn)生的問題。3/40第一節(jié)、規(guī)范化問題【教學(xué)目標(biāo)】了解規(guī)范化理論針對的主要問題了解關(guān)系模式存在的函數(shù)依賴及分析方法教學(xué)進(jìn)度4/40引言

解決數(shù)據(jù)庫的邏輯設(shè)計(jì)問題,即面對一個(gè)具體的應(yīng)用需要,應(yīng)當(dāng)構(gòu)造幾個(gè)關(guān)系表?每個(gè)表中設(shè)置哪些屬性?如何評價(jià)現(xiàn)有的關(guān)系模式?設(shè)計(jì)不當(dāng)會造成哪些問題?關(guān)系數(shù)據(jù)理論的三大內(nèi)容

數(shù)據(jù)依賴、范式分析、模式設(shè)計(jì)。數(shù)據(jù)依賴概念

關(guān)系中諸屬性數(shù)據(jù)之間內(nèi)在、固有的關(guān)聯(lián)性,是語義的體現(xiàn)。分析數(shù)據(jù)依賴應(yīng)從客觀事物本身的規(guī)律和習(xí)慣著手,著重語義的分析與理解,不偏信部分?jǐn)?shù)據(jù)。數(shù)據(jù)依賴中包括函數(shù)依賴和多值依賴。掌握函數(shù)依賴部分。函數(shù)依賴—象自變量與因變量一樣的對應(yīng)關(guān)系。例:公司與董事長(1-1),學(xué)號與姓名(1-m)。課程與老師(m-n),學(xué)號與選課(m-n)。5/40關(guān)系模式的四類問題

數(shù)據(jù)冗余、插入異常、刪除異常、修改復(fù)雜。例1:S(sno,sname,ssex,course,grade)關(guān)系模式中各屬性分別代表學(xué)號、姓名、性別、課程和成績。

數(shù)據(jù)冗余以選課數(shù)目為基數(shù),重復(fù)sno和sname;

插入異常若某學(xué)生尚未選課,但無法插入表中;

刪除異常若需要?jiǎng)h除某學(xué)生的成績記錄,則全失;

修改復(fù)雜若修改學(xué)生姓名,則要修改所有相關(guān)記錄。恰當(dāng)?shù)年P(guān)系模式設(shè)計(jì)應(yīng)當(dāng)是:

S(sno,sname,ssex),C(sno,course,grade)。仍然有冗余。例2:教師/教室及其使用情況的數(shù)據(jù)定義如下關(guān)系模式:R(職工號,姓名,性別,年齡,職稱,教室號,類型,座位數(shù),使用時(shí)間)

6/40存在的問題?冗余?插入?修改?刪除?應(yīng)當(dāng)劃分成幾個(gè)表?R1(職工號,姓名,性別,年齡,職稱)R2(教室號,類型,座位數(shù))R3(職工號,教室號,使用時(shí)間)(碼)7/40第二節(jié)、規(guī)范化【教學(xué)目標(biāo)】掌握函數(shù)依賴分析方法掌握范式判斷標(biāo)準(zhǔn)掌握范式分解方法8/40根據(jù)函數(shù)依賴的定義,可以找出下面規(guī)律:①在一個(gè)關(guān)系模式中,如果屬性X、Y有1:1聯(lián)系,則存在函數(shù)依賴XY、YX,可記作XY。設(shè)X,Y為關(guān)系中的屬性或?qū)傩越M,它們的所有可能取值組成兩個(gè)集合。如果對于X中的任一具體值Y中至多有一個(gè)值與之對應(yīng),稱X,Y這兩個(gè)屬性之間是一對一聯(lián)系。例:在圖書關(guān)系中,借書證號是唯一的,如果讀者沒有重名的,姓名與借書證號兩個(gè)屬性之間是1:1聯(lián)系。另外,一本書有若干副本,它們有相同的書名、作者、分類號等,但每本書有唯一的書編號。書名與書編號之間是1:m②如果屬性X、Y是1:m的聯(lián)系,則存在函數(shù)依賴YX,但XY。③如果屬性X、Y是n:m的聯(lián)系,則X與Y之間不存在任何函數(shù)依賴。9/40幾個(gè)函數(shù)依賴的概念

函數(shù)依賴的記號:XY。非平凡的函數(shù)依賴、平凡的函數(shù)依賴、決定因素(自變量)、完全函數(shù)依賴、部分函數(shù)依賴、傳遞函數(shù)依賴(注意與直接依賴區(qū)別)。幾個(gè)關(guān)鍵術(shù)語

碼(主碼、候選碼)、外碼、全碼、主屬性、非主屬性。

K為R<U,F(xiàn)>中的屬性或?qū)傩越M合,若K

fU,則K為R的候選碼,候選碼多于一個(gè)時(shí)選定其中一個(gè)為主碼,主碼通常就是屬性個(gè)數(shù)最少的那個(gè)候選碼。10/40碼(關(guān)鍵字)定義:在關(guān)系模式R(U)中,K是U中的屬性或?qū)傩越M。如果K—U,則稱K為關(guān)系R(U)的一個(gè)候選關(guān)鍵字。R(U)中若有一個(gè)以上的候選關(guān)鍵字,則選定其中一個(gè)作為主關(guān)鍵字。如果K是屬性組,可稱為組合關(guān)鍵字,或合成關(guān)鍵字。包含在任意一個(gè)候選關(guān)鍵字中的屬性,稱為主屬性。不包含在任何候選關(guān)鍵字中的屬性稱為非主屬性。11/40候選碼具有的兩個(gè)性質(zhì):(1)標(biāo)識的唯一性:對于R(U)中的每一個(gè)元組,K的值確定后,該元組就相應(yīng)確定了。(2)無冗余性:當(dāng)K是屬性組的情況下,K的任何一部分都不能唯一標(biāo)識該元組。這是定義中的完全函數(shù)依賴的意義。例:確定下述關(guān)系的函數(shù)依賴、碼,主屬性和非主屬性

1、人員(員工號,姓名,性別,部門號,工資號)依賴:員工號姓名、性別部門號決定工作部門,工資號決定收入。碼:員工號非屬性:姓名、性別、部門號、工資號

2、學(xué)生(學(xué)號,姓名,性別,身份證號,班級號,宿舍)依賴:學(xué)號姓名、性別、身份證號、班級號、宿舍碼:學(xué)號、身份證號(假如身份證號不重復(fù))12/403、借書(借書證號,姓名,性別,書名,書號,分類號,出版社)依賴:借書證號姓名、性別書號書名、分類號、出版社碼:(借書證號,書號)4、化驗(yàn)單(科室,姓名,化驗(yàn)項(xiàng)目,化驗(yàn)時(shí)間,結(jié)果,正常值)依賴:化驗(yàn)項(xiàng)目正常值(科室,姓名,化驗(yàn)項(xiàng)目,化驗(yàn)時(shí)間)結(jié)果碼:(科室,姓名,化驗(yàn)項(xiàng)目,化驗(yàn)時(shí)間)5、供應(yīng)(商戶編號,商戶名稱,商戶所在地,供應(yīng)零件號,供應(yīng)量)商戶編號商戶名稱、商戶所在地(商戶編號,供應(yīng)零件號)供應(yīng)量碼:(商戶編號,供應(yīng)零件號)6、送貨(顧客名,顧客地址,商品名,供應(yīng)商名,供應(yīng)商地址)依賴:顧客地址顧客名碼:(供應(yīng)商名,供應(yīng)商地址,商品名,顧客地址)顧客名顧客地址商品名供應(yīng)商名供應(yīng)商地址陳牛津中山一路122號405房電視機(jī)H23-T海爾中貿(mào)城702杜子騰隴西街33號之一102房冰箱BCD233H西門子和平街266號1203費(fèi)紅忠江城南路255號306房洗衣機(jī)JD690金羚金順商貿(mào)城210913/40范式的關(guān)系

INF2NF3NFBCNF4NF5NF。通過模式分解可將低級范式轉(zhuǎn)換為高級范式。分解后的模式與原來的模式存在三種關(guān)系:

A、分解具有無損連接;

B、分解保持函數(shù)依賴;

C、分解既要無損連接,又要保持函數(shù)依賴。1NF2NF3NF4NF、BCNF各級范式的關(guān)系14/40第一范式(INF)每一個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng)。例1:科室(科室編號、科室名稱、科室成員、科主任)是1NF嗎?不是1NF,因?yàn)椤翱瞥蓡T”屬性設(shè)置不當(dāng)(科成員包含科主任),為什么不認(rèn)為“科主任”設(shè)置不當(dāng)呢?若將關(guān)系模式改成:科室(科室編號、科室名稱、科室成員)合適嗎?例2:如何將下述數(shù)據(jù)規(guī)范成1NF?15/40第一種方法是重復(fù)存儲職工號和姓名。第二種方法是保留職工號的關(guān)鍵字地位,把電話號碼拆分成單位電話和住宅電話兩個(gè)屬性。第三種方法是保留職工號的關(guān)鍵字地位。維持原模式不變,但強(qiáng)制每個(gè)元組只能錄入一個(gè)電話號碼。以上三種選擇,第一種最不可取,后兩種選擇可根據(jù)應(yīng)用需要確定一種。16/40部分依賴的例子例:關(guān)系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。函數(shù)依賴包括:

(Sno,Cno)fGrade

Sno→Sdept(Sno,Cno)PSdept部分依賴

Sno→Sloc(Sno,Cno)PSloc部分依賴

Sdept→Sloc17/40SLC的碼為(Sno,Cno)非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno,Cno)SLC為第1范式。SnoCnoGradeSdeptSlocSLC關(guān)系18/40SLC不是一個(gè)好的關(guān)系模式(1)插入異常 假設(shè)Sno=95102,Sdept=IS,Sloc=N的學(xué)生還未選課,因課程號是主屬性,因此該學(xué)生的信息無法插入SLC。(2)刪除異常假定某個(gè)學(xué)生本來只選修了3號課程這一門課?,F(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個(gè)元組都要?jiǎng)h除。19/40SLC不是一個(gè)好的關(guān)系模式(3)數(shù)據(jù)冗余度大如果一個(gè)學(xué)生選修了10門課程,那么他的Sdept和Sloc值就要重復(fù)存儲了10次。(4)修改復(fù)雜例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時(shí),還可能需要修改住處(Sloc)。如果這個(gè)學(xué)生選修了K門課,則必須無遺漏地修改K個(gè)元組中全部Sdept、Sloc信息。20/40原因

Sdept、Sloc部分函數(shù)依賴于碼。解決方法

SLC分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴

SC(Sno,Cno,Grade)

SL(Sno,Sdept,Sloc)21/402NF的定義

若關(guān)系模式R∈1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴于R的碼,則R∈2NF。 前面的例子:

SLC(Sno,Sdept,Sloc,Cno,Grade)∈1NFSLC(Sno,Sdept,Sloc,Cno,Grade)∈2NFSC(Sno,Cno,Grade)至少∈2NFSL(Sno,Sdept,Sloc)至少∈2NF22/40采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。關(guān)鍵是尋找碼,分清主屬性與非主屬性,然后判斷有無部分函數(shù)依賴的情況,最后進(jìn)行分解。注意:碼—既包括主碼和也含候選碼。兩個(gè)推論:1、全碼情況必符合2NF;2、碼均為單一屬性,必符合2NF。23/402NF例子例1、工程預(yù)算(工程號、材料號、數(shù)量、單價(jià)、開工日期、完工日期)。確定依賴關(guān)系、碼、范式,并將模式分解為更高的范式。工程號材料號數(shù)量單價(jià)開工日期完工日期A023001JT0120105.602-5-2102-6-30A023001BR03292126.502-5-2102-6-30B030233TJ03561526.7003-8-103-12-3C026780CE1266320002-6-702-6-1824/40依賴分析:工程號開工日期、完工日期,材料號單價(jià)。(工程號,材料號)數(shù)量碼:(工程號,材料號)部分依賴:開工日期、完工日期與工程號,單價(jià)與材料號。屬于1NF。存在的問題:工程暫時(shí)不用材料不能錄入。宜分解為:(工程號、開工日期、完工日期)(材料號、單價(jià))和(工程號、材料號、數(shù)量)例2、已知R={S,D,I,B,O,}有依賴F{SD,IB,BO,OI}。分析碼、函數(shù)依賴、范式,并合理地分解模式。碼(S,I)、(S,B)、(S,O),D部分依賴于S。屬于1NF分解為:(S,D)、(S,I)、(I,B,O)25/40例3、設(shè)有關(guān)系模式選課SCl(S#,C#,GRADE,CREDIT)其中,S#表示學(xué)號,C#表示課程號,GRADE表示成績,CREDIT表示學(xué)分。S#C#GRADECREDIT

S#或C#都不能單獨(dú)確定成績GRADE。GRADE只能由屬性組合(S#,C#)來確定。課程學(xué)分CREDIT是C#決定的,C#CREDIT。由此可知:因此存在部分依賴只屬于INF。分解為:

R1(S#,C#,GRADE)

R2(C#,CREDIT)(S#,C#)fGRADE(S#,C#)p

CREDIT26/403NF定義:若關(guān)系模式R∈2NF,且關(guān)系模式R(U,F(xiàn))中的所有非主屬性對任何候選碼都不存在傳遞依賴,則稱此關(guān)系模式只是第三范式的。記為R3NF。

每一個(gè)非主屬性既不部分依賴于碼,也不傳遞依賴于碼。

在2NF基礎(chǔ)上查驗(yàn)有無傳遞依賴,注意區(qū)別直接依賴。例:關(guān)系T(課程名、教師名、教師職稱)設(shè):一課一師。依賴:課程名教師名,教師名教師職稱碼:課程名,傳遞依賴:課程名與教師職稱。2NF。分解為(課程名、教師名)和(教師名、職稱)考慮:一課多師?關(guān)系名排課表?可排教師表?碼:(課程名,教師名),教師職稱是部分依賴,1NF。

27/40關(guān)系W(工號、姓名、工種、定額)設(shè):一人一工種。依賴:工號姓名,工種;工種定額。碼:工號。存在傳遞依賴:工號定額。屬于2NF。正確的分解方案:W1(工號、姓名、工種),

W2(工號、定額)設(shè)有關(guān)系模式倉庫保管WPE(W#,P#,E#,QNT)其中各屬性分別表示倉庫號W#、器件號P#、職工號E#、數(shù)量QNT。一些具體實(shí)例如下頁的表所示。它所反映的語義是:

(1)一個(gè)倉庫有多個(gè)職工;

(2)一個(gè)職工僅在一個(gè)倉庫工作;

(3)每個(gè)倉庫里一種器件由專人負(fù)責(zé),但一個(gè)人可以管理幾種器件。28/40

29/40根據(jù)語義可以分析出以下函數(shù)依賴:(W#,P#)QNT,(W#,P#)E#,E#W#,(E#,P#)QNT

依賴圖:E#P#W#QNT30/40部分函數(shù)依賴和傳遞函數(shù)依賴是產(chǎn)生存儲異常的兩個(gè)重要原因,3NF消除了大部分存儲異常,具有較好的性能。但3NF并沒有要求消除主屬性對候選關(guān)鍵字的傳遞依賴,如果存在這種情況,3NF模式仍然可能發(fā)生存儲異?,F(xiàn)象。31/40BCNF

設(shè)R是一個(gè)關(guān)系模式,F(xiàn)是它的依賴集,R屬于BCNF當(dāng)且僅當(dāng)其F中每個(gè)依賴的決定因素必定包含R的某個(gè)候選碼。

判斷一個(gè)模式是否BCNF:(1)所有非主屬性對每一個(gè)候選碼完全依賴;(2)所有主屬性對每一個(gè)不包含它的候選碼完全依賴;(3)沒有任何屬性完全依賴于非候選碼的任何一組屬性。例1:C(Cno,Cname,Pcno)碼:Cno,無傳遞依賴,至少屬于3NF,也屬于BCNF。考慮:若某關(guān)系碼是唯一的單屬性,它符合BCNF的條件是什么?有無反例?若碼是單屬性,但有多個(gè)候選碼,成為BCNF的條件又是什么?例2:SJP(學(xué)生,課程,名次),無并列名次。碼:(學(xué)生、課程)和(課程,名次)屬于BCNF。因無非主屬性,且主屬性對碼也是完全依賴。32/40

例3:關(guān)系STJ(學(xué)生、教師、課程)一師教一課。碼:(學(xué)生、課程)和(學(xué)生,教師)。符合3NF。因(S,J)T,TJ不構(gòu)成傳遞依賴!但不符合BCNF的條件。因?yàn)椋河薪處熣n程,所以教師是一個(gè)決定因素,但是它不是候選碼,它單獨(dú)不具備候選碼資格。例4:關(guān)系R(城市、街道、郵編)碼:(城市,街道)和(郵編,街道),符合3NF,BCNF?不是!因?yàn)橛朽]編城市,郵編是一個(gè)決定因素,但它卻不能單獨(dú)成為碼。33/40多值依賴與第四范式(4NF)多值依賴

給定關(guān)系模式R及其屬性A和B,對于一給定的A值,就有一組B屬性值與之對應(yīng),而與其它的屬性(R-A-B)沒有關(guān)系,則稱“B多值依賴于A”或“A多值決定B”。記作:AB。多值依賴的特點(diǎn):互補(bǔ)、增廣、傳遞。例:學(xué)校中某一門課程由多個(gè)教師講授,他們使用相同的一套參考書。關(guān)系模式Teaching(C,T,B),其中:課程C、教師T和參考書B參考數(shù)據(jù)見下頁的表格34/40普通物理學(xué)光學(xué)原理物理習(xí)題集普通物理學(xué)光學(xué)原理物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)…李勇李勇李勇王軍王軍王軍李勇李勇李勇張平張平張平

…物理物理物理物理物理物理數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)

…參考書B教員T課程C用二維表表示Teaching

35/40………課程C教員T參考書B

物理

數(shù)學(xué)

計(jì)算數(shù)學(xué)李勇王軍

李勇張平

張平周峰

普通物理學(xué)光學(xué)原理物理習(xí)題集

數(shù)學(xué)分析微分方程高等代數(shù)

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

Teach具有唯一候選碼(C,T,B),即全碼。Teaching∈BCNF。Teaching模式中存在以下的問題。36/401、數(shù)據(jù)冗余度大:有多少教師,參考書就要存儲多少次。2、插入操作復(fù)雜:當(dāng)某一課程增加一名任課教師時(shí),該課程有多少本參照書,就必須插入多少個(gè)元組,例如物理課增加一名教師劉關(guān),需要插入兩個(gè)元組:(物理,劉關(guān),普通物理學(xué))、(物理,劉關(guān),光學(xué)原理)3、刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個(gè)元組。4、修改操作復(fù)雜:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個(gè)元組產(chǎn)生原因:存在多值依賴37/40

互補(bǔ)性:若XY,則XU-X-Y(U是全屬性集)

增廣性:若XY,V<W,則WYVY

傳遞性:若XY,YZ,則XZ-Y。

4NF

如果對于每個(gè)非平凡多值依賴XY,X都含有碼,則稱4NF。當(dāng)依賴只包含函數(shù)依賴時(shí),4NF就是BCNF?;蛘哒f4NF允許的非平凡的多值依賴實(shí)際上是函數(shù)依賴。

平凡多值依賴:若XY,而Z=U-X-Y為空。U為屬性集合。則稱Y平凡依賴于X。38/40對于任何沒有說明的關(guān)聯(lián),作出適當(dāng)?shù)募僭O(shè),建立合理的依賴關(guān)系。范式檢驗(yàn)條件校正(規(guī)范化)第一范式(1NF)關(guān)系中沒有非原子屬性和嵌套關(guān)系。為每個(gè)非原子屬性和嵌套

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論