第5章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第1頁
第5章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第2頁
第5章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第3頁
第5章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第4頁
第5章 關(guān)系數(shù)據(jù)庫規(guī)范化理論_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章關(guān)系數(shù)據(jù)庫規(guī)范化理論5.1 數(shù)據(jù)依賴5.1.1 問題的提出5.1.2 函數(shù)依賴的基本概念5.1.3 候選碼5.1.1 問題的提出現(xiàn)假定有一個描述學(xué)生成績管理的數(shù)據(jù)庫,用一個單一的關(guān)系模式XSCJ來表示。XSCJ關(guān)系模式表示為:XSCJ(Sno,SName,Sdept,Director,Cno,Cname,Cscore)其中:各屬性代表的中文含義依次為:學(xué)生、學(xué)生姓名、所在系名、系主任、課程號、課程名、課程成績。并且,該關(guān)系模式有如下數(shù)據(jù)語義規(guī)定:系與學(xué)生之間是1:n的聯(lián)系,即:一個系有多名學(xué)生,而一名學(xué)生只屬于一個系;系與系主任之間是1:1的聯(lián)系,即:一個系只有一名主任,一名系主任也只在一個系任職;學(xué)生與課程之間是m:n的聯(lián)系,即:一名學(xué)生可選修多門課程,而每門課程有多名學(xué)生選修;每個學(xué)生學(xué)習(xí)一門課程有一個成績。5.1.1 問題的提出現(xiàn)假設(shè)有如表5-1所示的關(guān)系模式XSCJ的一個具體實例。表5-1XSCJ表SnoSnameSdeptDirectorCnoCnameCscoreS1張強計算機系李軍C01數(shù)據(jù)庫85S2王紅電子系宋鵬C01數(shù)據(jù)庫90S3周穎計算機系李軍C01數(shù)據(jù)庫75S1張強計算機系李軍C02數(shù)據(jù)結(jié)構(gòu)80S2王紅電子系宋鵬C02數(shù)據(jù)結(jié)構(gòu)565.1.1 問題的提出1. 插入異常(InsertionAnomalies)所謂插入異常,表現(xiàn)為向關(guān)系中插入元組卻插不進(jìn)去。從上述XSCJ關(guān)系模式可以看出:由于學(xué)號決定系,要想插入學(xué)生所在系的信息,則必須先有學(xué)生的學(xué)號,但是,如果該系還未招生,就沒有學(xué)生,于是該系的信息就無法插入。2. 刪除異常(DeletionAnomalies)刪除異常表現(xiàn)為刪除某一數(shù)據(jù)信息連帶刪除了其它不應(yīng)該刪除的信息。例如如果某個系的學(xué)生全部畢業(yè)了,于是,在刪除該系學(xué)生信息的同時,該系及其系主任的信息也隨之被刪除了。3. 數(shù)據(jù)冗余(DataRedundancy)比如,每一個系主任的姓名在每一個元組中都重復(fù)出現(xiàn),其重復(fù)次數(shù)與與該系每一個學(xué)生的每一門功課的成績出現(xiàn)的次數(shù)一樣多。存在大量的數(shù)據(jù)冗余,從而浪費大量的存儲空間。4. 更新異常(UpdateAnomalies)由于存在大量數(shù)據(jù)冗余,系統(tǒng)要付出很大代價來維護(hù)數(shù)據(jù)庫的完整性。否則就帶來數(shù)據(jù)不一致的危險。比如,當(dāng)某系的系主任更換后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每個元組。所謂數(shù)據(jù)依賴(DataDependency),是指一個關(guān)系內(nèi)部屬性與屬性之間的一種約束關(guān)系,這種約束關(guān)系是通過關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系。這種數(shù)據(jù)依賴是現(xiàn)實世界中屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語義的體現(xiàn)。數(shù)據(jù)依賴有很多種,其中最重要的是函數(shù)依賴(FunctionalDependency,簡稱FD)和多值依賴(MultivaluedDependency,簡稱MVD)。5.1.2 函數(shù)依賴的基本概念定義5.1設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集。若對于R(U)的任意一個可能的關(guān)系r,r中任意兩個元組t1和t2,如果t1[X]=t2[X],則t1[Y]=t2[Y],那么稱X函數(shù)地確定Y,或Y函數(shù)地依賴于X,記作:X→Y。下面介紹一些術(shù)語和記號。X→Y,但則稱X→Y是非平凡的函數(shù)依賴。若不特別聲明,總是討論非平凡的函數(shù)依賴。X→Y,但YX則稱X→Y是平凡的函數(shù)依賴。若X→Y,則X叫做決定因素(Determinant)。若X→Y,Y→X,則X與Y一一對應(yīng),記作X←→Y。若Y函數(shù)不依賴于X,則記作定義5.2設(shè)R是一個具有屬性集合U的關(guān)系模式,如果X→Y,并且對于X的任何一個真子集X’,X’→Y都不成立,則稱Y完全函數(shù)依賴于X。記作:若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對X是部分函數(shù)依賴,記作:定義5.3設(shè)R是一個具有屬性集合U的關(guān)系模式,X、Y、ZU,如果(),且,,則稱Z對X傳遞依賴,記作:加上條件,是因為如果Y→X,則X←→Y,實際上是X→Z,是直接函數(shù)依賴而不是傳遞函數(shù)依賴。5.1.3 候選碼定義5.4

設(shè)R是一個具有屬性集合U的關(guān)系模式,,如果K滿足:則稱K為R的候選碼(Candidatekey)。主碼一個關(guān)系的候選碼不一定只有一個。若候選碼多于一個.則選定其中的一個作為主碼。因此一個關(guān)系的主碼是惟一的。主屬性包含在任何一個候選碼中的屬性,叫做主屬性。非主屬性不包含在任何一個候選碼中的屬性,叫做非主屬性。定義5.5

關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個關(guān)系模式的碼,則稱X是R的外部碼(Foreignkey),也稱外碼。在選課關(guān)系中,(學(xué)生號,課程號)是該關(guān)系的碼,學(xué)生號、課程號又分別是組成主碼的屬性(但單獨不是碼),它們分別是學(xué)生關(guān)系和課程關(guān)系的主碼,所以是選課關(guān)系的兩個外碼。5.2 關(guān)系模式的規(guī)范化5.2.1 關(guān)系與范式5.2.2 第一范式(1NF)5.2.3 第二范式(2NF)5.2.4 第三范式(3NF)5.2.5 BCNF5.2.6 規(guī)范化小結(jié)5.2.1 關(guān)系與范式規(guī)范化的基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不合適的部分,解決數(shù)據(jù)插入、刪除與修改時發(fā)生的異常現(xiàn)象。這就要求關(guān)系數(shù)據(jù)庫設(shè)計出來的關(guān)系模式要滿足一定的條件。關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同的標(biāo)準(zhǔn)或準(zhǔn)則稱為范式。滿足最低要求的叫第一范式,簡稱1NF。在第一范式中滿足進(jìn)一步要求的為第二范式(2NF),其余以此類推。R為第幾范式就可以寫成R∈xNF(x表示某范式名)。各個范式之間存在一種包含的關(guān)系,即:1NF2NF3NFBCNF4NF5NF5.2.2 第一范式(1NF)定義5.6

設(shè)R是一個關(guān)系模式。如果R的每個分量都是不可再分的數(shù)據(jù)項,則稱該關(guān)系模式R屬于第一范式,記作R1NF。幾乎所有商用DBMS都規(guī)定:關(guān)系的屬性是原子的,即要求關(guān)系均為第一范式。因此關(guān)系最起碼必須規(guī)范化為第一范式。5.2.3 第二范式(2NF)定義5.7若R1NF,且每一個非主屬性完全函數(shù)依賴于碼,則稱該關(guān)系模式R屬于第二范式,記作R2NF。換言之,2NF關(guān)系中不存在非主屬性對候選碼的部分函數(shù)依賴。若出現(xiàn)了非主屬性對候選碼的部分函數(shù)依賴.該模式就不滿足2NF的條件。5.2.4 第三范式(3NF)1、3NF的定義定義5.8如關(guān)系模式R2NF,且它的任何非主屬性都不傳遞依賴于任何候選碼,則稱R屬于第三范式,記作R3NF。因此從定義可以得出,3NF是從1NF消除非主屬性對碼的部分函數(shù)依賴和從2NF消除傳遞函數(shù)依賴而得到的關(guān)系模式。也就是說,一個關(guān)系模式R3NF,則每一個非主屬性極不部分依賴于碼也不傳遞依賴于碼。5.2.5 BCNF定義5.9若關(guān)系模式R是1NF,如果對于R的每一個非平凡函數(shù)依賴X→Y,X必含有一個候選碼,則稱R屬于BCNF范式。由BCNF的定義可以得出以下結(jié)論:若R∈BCNF,則所有非主屬性對每一個碼都是完全函數(shù)依賴所有的主屬性對每一個不包含它的碼,也是完全函數(shù)依賴沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性若R屬于BCNF,則R必定屬于3NF,反之,若R屬于3NF,則R未必屬于BCNF。5.2.6 規(guī)范化小結(jié)規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的“分離”,即“一事一地”的模式設(shè)計原則。讓一個關(guān)系描述一個概念、一個實體或者實體間的一種聯(lián)系。若多于一個概念就把它“分離”出去。因此所謂規(guī)范化實質(zhì)上是概念的單一化。關(guān)系模式規(guī)范化的基本步驟如圖5-1所示。5.2.6 規(guī)范化小結(jié)5.3 模式分解上一節(jié)討論的規(guī)范化的過程實際上就是模式分解的過程,即把一個關(guān)系模式分解為幾個子關(guān)系模式,使得這些子模式具有指定的規(guī)范化形式。把低一級的關(guān)系模式分解為若干個高一級的關(guān)系模式的方法不是唯一的,只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價,分解方法才有意義。要保證分解后的關(guān)系模式與原關(guān)系模式等價。有三種標(biāo)準(zhǔn):分解具有無損連接性。分解要保持函數(shù)依賴。分解既要保持函數(shù)依賴,又要保持無損連接性。5.3 模式分解無損連接是指分解后的關(guān)系通過自然連接可以恢復(fù)成原來的關(guān)系,即分解后的關(guān)系通過自然連接得到的關(guān)系與原來的關(guān)系相比,既不多出信息,又不丟失信息。這是進(jìn)行模式分解必須滿足的條件。如果一個分解具有無損連接性,則它能夠保證不丟失信息;如果一個分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況。分解具有無損連接性和分解保持函數(shù)依賴是兩個互相獨立的標(biāo)準(zhǔn)。具有無損連接性的分解不一定能夠保持函數(shù)依賴;同樣,保持函數(shù)依賴的分解也不一定具有無損連接性。5.3 模式分解定義5.10設(shè)關(guān)系模式R(U,F(xiàn))被分解為若干個關(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的分解具有無損連接性。5.3 模式分解定義5.11設(shè)關(guān)系模式R(U,F(xiàn))被分解為若干個關(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所邏輯蘊含的函數(shù)依賴一定也由分解得到的某個關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊含,則稱關(guān)系模式R的分解具有保持函數(shù)依賴性。5.3 模式分解若要求分解具有無損連接性,則模式的分解一定能夠達(dá)到4NF;若要求分解保持函數(shù)依賴,則模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF范式;若要求既具有無損連接性,又保持函數(shù)依賴,則模式分散一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。習(xí)題1. 理解并給出下列術(shù)語的含義:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞函數(shù)依賴、候選碼、外碼、主屬性、2NF、3NF、BCNF。2. 關(guān)系模式可能存在的異常有哪些?引起這些異常的原因是什么?3. 判斷下列模式分別屬于第幾范式?并說明理由。R1(A,B,C,D),F(xiàn)1={A→B,AC→D}R2(A,B,C,D),F(xiàn)2={AB→C,AC→D,C→B}R3(A,B,C,D,F(xiàn)3={AB→CD,C→A,D→B}R4(A,B,C,D),

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論