關系數(shù)據(jù)庫設計理論_第1頁
關系數(shù)據(jù)庫設計理論_第2頁
關系數(shù)據(jù)庫設計理論_第3頁
關系數(shù)據(jù)庫設計理論_第4頁
關系數(shù)據(jù)庫設計理論_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

關系數(shù)據(jù)庫設計理論第一頁,共七十三頁,2022年,8月28日關系模式的表示定義關系的描述稱為關系模式(RelationSchema)。一個關系模式應當是一個五元組。它可以形式化地表示為:R(U,D,dom,F)。其中R為關系名,U為組成該關系的屬性名集合,D為屬性組U中屬性所來自的域的集合,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關系集合。關系模式通常可以簡記為:R(A1,A2,…,An)或R(U)。其中R為關系名,A1,A2,…,An為屬性名。而域名及屬性向域的映象常常直接說明為屬性的類型、長度。第二頁,共七十三頁,2022年,8月28日4.1問題的提出

如何使用關系模型設計關系數(shù)據(jù)庫?也就是面對一個現(xiàn)實問題,如何選擇一個比較好的關系模式的集合?其中每個關系模式又由哪些屬性組成?這就是數(shù)據(jù)庫邏輯設計主要關心的問題第三頁,共七十三頁,2022年,8月28日4.1.1規(guī)范化理論概述關系數(shù)據(jù)庫設計理論主要包括三個方面的內容:函數(shù)依賴、范式(NormalForm)和模式設計。其中函數(shù)依賴起著核心作用,是模式分解和模式設計的基礎,范式是模式分解的標準。關系數(shù)據(jù)庫設計時要遵循一定的規(guī)范化理論。只有這樣才可能設計出一個較好的數(shù)據(jù)庫來。前面已經講過關系數(shù)據(jù)庫設計的關鍵所在是關系數(shù)據(jù)庫模式的設計,也就是關系模式的設計。那么到底什么是好的關系模式呢?某些不好的關系模式可能導致哪些問題?下面通過例子對這些問題進行分析。第四頁,共七十三頁,2022年,8月28日4.1.2不合理的關系模式存在的問題

[例1]要求設計學生-課程數(shù)據(jù)庫,其關系模式SDC如下:SDC(SNO,SN,AGE,DEPT,MN,CNO,SCORE)根據(jù)實際情況,這些數(shù)據(jù)有如下語義規(guī)定:

(1)一個系有若干個學生,但一個學生只屬于一個系;

(2)一個系只有一名系主任,但一個系主任可以同時兼幾個系的系主任;

(3)一個學生可以選修多門功課,每門課程可被若干個學生選修;

(4)每個學生學習每門課程有一個成績。第五頁,共七十三頁,2022年,8月28日4.1.2不合理的關系模式存在的問題

根據(jù)上述語義規(guī)定并分析以上關系中的數(shù)據(jù),我們可以看出,(SNO,CNO)屬性的組合能唯一標識一個元組(每行中SNO與CNO的組合均是不同的),所以(SNO,CNO)是該關系模式的主關系鍵(即主鍵,又名主碼等)。但在進行數(shù)據(jù)庫的操作時,會出現(xiàn)以下幾方面的問題。數(shù)據(jù)冗余(2)插入異常(3)刪除異常(4)修改異常因此,把不好的關系數(shù)據(jù)庫模式轉變?yōu)檩^好的關系數(shù)據(jù)庫模式,即關系的規(guī)范化第六頁,共七十三頁,2022年,8月28日4.1.2不合理的關系模式存在的問題示例數(shù)據(jù)主碼是(SNO,CNO)SNO(5)SN(8)AGE(4)DEPT(8)MN(8)CNO(3)SCORE(4)S1趙紅20計算機張文斌C190S1趙紅20計算機張文斌C285S1趙紅20計算機張文斌C357S2王小明17計算機張文斌C180S2王小明17計算機張文斌C273S2王小明17計算機張文斌C370S3吳小林19計算機張文斌C175S3吳小林19計算機張文斌C270S3吳小林19計算機張文斌C385第七頁,共七十三頁,2022年,8月28日4.1.2不合理的關系模式存在的問題數(shù)據(jù)冗余總字節(jié)數(shù)=(5+8+4+8+8+3+4)*9系名和系負責人重復9次學號和姓名重復3次課程名重復3次第八頁,共七十三頁,2022年,8月28日4.1.2不合理的關系模式存在的問題插入異常計算機系成立,尚未招生—無法插入

--在學生表存儲數(shù)據(jù)必須保證其實體完整性-主屬性不能為空,故學號和課程名不能為空。招生完畢,但學生尚未選課—無法插入

--學號是有了,但學生尚未選修,所以課程名不知道求學校有多少系?

--結果不正確,在學生表中還未有計算機系含在內問計算機負責人是誰?

--不知道,計算機系不存在

由于信息不全,導致應該存儲的數(shù)據(jù)無法存儲。第九頁,共七十三頁,2022年,8月28日4.1.2不合理的關系模式存在的問題刪除異常計算機系06級學生畢業(yè),刪除所有該年級學生

--由于計算機系只有06級學生,被刪除后,連帶計算機系負責人信息一起被刪除。問學校有幾個系?問計算機系負責人是誰?若s2學生取消三門選修課程,則學要刪除對該學生對應的三條記錄。該學生記錄信息也因此被刪除這個時候如果問問計算機系有多少學生?刪除元組時導致額外信息的丟失第十頁,共七十三頁,2022年,8月28日4.1.2不合理的關系模式存在的問題修改異常(更新異常)計算機系負責人改為張文瑞需要修改9條記錄某學生改名,則該學生的所有記錄都要逐一修改SN的值由于數(shù)據(jù)重復存儲導致更新操作復雜。第十一頁,共七十三頁,2022年,8月28日4.1.2不合理的關系模式存在的問題上述問題的根本原因學生關系模式的規(guī)范化程度較低解決辦法通過規(guī)范化理論對其進行規(guī)范化,可以逐步降低和消除上述問題

第十二頁,共七十三頁,2022年,8月28日4.2規(guī)范化

本節(jié)將討論下述內容:首先討論一個關系屬性間不同的依賴情況,討論如何根據(jù)屬性間的依賴情況來判定關系是否具有某些不合適的性質。通常按屬性間依賴情況來區(qū)分關系規(guī)范化的程度為第一范式、第二范式、第三范式、BC范式和第四范式等。然后直觀地描述如何將具有不合適性質的關系轉換為更合適的形式。第十三頁,共七十三頁,2022年,8月28日4.2.1函數(shù)依賴

⒈函數(shù)依賴定義4.1設關系模式R(U,F(xiàn)),U是屬性全集,F(xiàn)是U上的函數(shù)依賴集,X和Y是U的子集,如果對于R(U)的任意一個可能的關系r,對于X的每一個具體值,Y都有唯一的具體的值與之對應,則稱X函數(shù)決定Y,或Y函數(shù)依賴于X,記X→Y。我們稱X為決定因素,Y為依賴因素。當Y不函數(shù)依賴于X時,記作:XY。當X→Y且Y→X時,則記作:XY。函數(shù)依賴有幾點需要說明:(1)平凡的函數(shù)依賴與非平凡的函數(shù)依賴當屬性集Y是屬性集X的子集時,則必然存在著函數(shù)依賴X→Y,這種類型的函數(shù)依賴稱為平凡的函數(shù)依賴。如果Y不是X子集,則稱X→Y為非平凡的函數(shù)依賴。若不特別聲明,我們討論的都是非平凡的函數(shù)依賴。第十四頁,共七十三頁,2022年,8月28日4.2.1函數(shù)依賴

(2)函數(shù)依賴與屬性間的聯(lián)系類型有關①

在一個關系模式中,如果屬性X與Y有1:1聯(lián)系時,則存在函數(shù)依賴X→Y,Y→X,即XY。例如,當學生沒有重名時,SNOSN。②

如果屬性X與Y有m:1的聯(lián)系時,則只存在函數(shù)依賴X→Y。例如,SNO與AGE,DEPT之間均為m:1聯(lián)系,所以有SNO→AGE,SNO→DEPT。③

如果屬性X與Y有m:n的聯(lián)系時,則X與Y之間不存在任何函數(shù)依賴關系。例如,一個學生可以選修多門課程,一門課程又可以為多個學生選修,所以SNO與CNO之間不存在函數(shù)依賴關系。第十五頁,共七十三頁,2022年,8月28日4.2.1函數(shù)依賴

(3)函數(shù)依賴的語義范疇的概念我們只能根據(jù)語義來確定一個函數(shù)依賴,而不能按照其形式化定義來證明一個函數(shù)依賴是否成立。

(4)函數(shù)依賴關系的存在與時間無關

(5)函數(shù)依賴可以保證關系分解的無損連接性⒉函數(shù)依賴的基本性質

(1)投影性根據(jù)平凡的函數(shù)依賴的定義可知,一組屬性函數(shù)決定它的所以子集。例如,在關系SDC中,(SNO,CNO)→SNO和(SNO,CNO)→CNO。說明:投影性產生的是平凡的函數(shù)依賴,需要時也能使用的。第十六頁,共七十三頁,2022年,8月28日4.2.1函數(shù)依賴

(2)擴張性若X→Y且W→Z,則(X,W)→(Y,Z)。例如,SNO→(SN,AGE),DEPT→MN,則有(SNO,DEPT)→(SN,AGE,MN)。說明:擴張性實現(xiàn)了兩函數(shù)依賴決定因素與被決定因素的分別合并作用。

(3)

合并性若X→Y且X→Z則必有X→(Y,Z)。例如,在關系SDC中,SNO→(SN,AGE),SNO→DEPT,則有SNO→(SN,AGE,DEPT)。說明:決定因素相同的兩函數(shù)依賴被決定因素的可以合并。第十七頁,共七十三頁,2022年,8月28日4.2.1函數(shù)依賴

(4)分解性若X→(Y,Z),則X→Y且X→Z。很顯然,分解性為合并性的逆過程。說明:決定因素能決定全部,當然也能決定全部中的部分。由合并性和分解性,很容易得到以下事實:

X→A1,A2,…,An成立的充分必要條件是X→Ai(i=1,2,…,n)成立。

第十八頁,共七十三頁,2022年,8月28日4.2.1函數(shù)依賴

3.完全/部分函數(shù)依賴和傳遞/非傳遞函數(shù)依賴定義4.2

設有關系模式R(U),U是屬性全集,X和Y是U的子集,X→Y,并且對于X的任何一個真子集X',都有X‘

Y,則稱Y對X完全函數(shù)依賴(FullFunctionalDependency),

記作XfY。如果對X的某個真子集X',有X'→Y,則稱Y對X部分函數(shù)依賴(PartialFunctionalDependency),記作XpY

第十九頁,共七十三頁,2022年,8月28日4.2.1函數(shù)依賴

定義4.3

設有關系模式R(U),U是屬性全集,X,Y,Z是U的子集,若X→Y,但YX,而Y→Z,(YX)則稱Z對X傳遞函數(shù)依賴(TransitiveFunctionalDependency),記作:XtZ

注意:如果有Y→X,則XY,這時稱Z對X直接函數(shù)依賴,而不是傳遞函數(shù)依賴。

綜上所述,函數(shù)依賴可以有不同的分類,即有如下之分:平凡的函數(shù)依賴與非平凡的函數(shù)依賴;完全函數(shù)依賴與部分函數(shù)依賴;傳遞函數(shù)依賴與非傳遞函數(shù)依賴(即直接函數(shù)依賴),這些是比較重要的概念,它們將在關系模式的規(guī)范化進程中作為準則的主要內容而被使用到。第二十頁,共七十三頁,2022年,8月28日4.2.2碼

定義4.4

設K為R(U,F(xiàn))中的屬性或屬性集合,若Kf

U,則K為R的候選碼(或候選關鍵字或候選鍵)(Candidatekey)。若候選碼多于一個,則選定其中的一個為主碼(或稱主鍵,Primarykey).包含在任何一個候選碼中的屬性,叫做主屬性(Primeattribute)。不包含在任何候選碼中的屬性稱為非主屬性(Nonprimeattribute)或非碼屬性(Non-keyattribute)。在最簡單的情況,單個屬性是碼。最極端的情況,整個屬性組U是碼,稱為全碼(All-key)。

第二十一頁,共七十三頁,2022年,8月28日4.2.2碼

已知關系模式R(U,F(xiàn)),如何來找出R的所有候選鍵呢?方法的步驟為:1、查看函數(shù)依賴集F中的每個形如Xi→Yi的(i=1,……,n)函數(shù)依賴關系??茨男傩栽谒衁i(i=1,……,n)中沒有出現(xiàn)過,設沒出現(xiàn)過的屬性集為P(P=U-Y1-Y2……-Yn)。則當P=φ(表示空集)時,轉4;當P≠φ時,轉2。2、根據(jù)候選鍵的定義,候選鍵中應必含P(因為沒有其它屬性能決定P)??疾霵,若有PfU成立,則P為候選鍵,并且候選鍵只有一個P(考慮一下為什么呢?),轉5結束;若PfU不成立,則轉3。

第二十二頁,共七十三頁,2022年,8月28日4.2.2碼3、P可以分別與{U-P}中的每一個屬性合并,形成P1,P2,……,Pm。再分別判斷Pj

fU(j=1,……,m)是否成立?能成立則找到了一個候選鍵,沒有則放棄。合并一個屬性若不能找到或不能找全候選鍵,可進一步考慮P與{U-P}中的兩個(或三個,四個,……)屬性的所有組合分別進行合并,繼續(xù)判斷分別合并后的各屬性組對U的完全函數(shù)決定情況……;如此直到找出R的所有候選鍵為止。轉5結束。(需要提醒的是:如若屬性組K已有Kf

U,則完全不必去考察含K的其它屬性組合了,顯然它們都不可能再是候選鍵了)。

第二十三頁,共七十三頁,2022年,8月28日4.2.2碼4、若P=φ,則可以先考察Xi→Yi(i=1,……,n)中的單個Xi,判斷是否有Xi

fU?若成立則Xi為候選鍵。剩下不是候選鍵的Xi,可以考察它們兩個或多個的組合,查看其是否能完全函數(shù)決定U,從而找出其它還有可能的候選鍵。轉5結束。5、本方法結束。

定義4.5

關系模式R中屬性或屬性組X并非R的主碼,但X是另外一個關系模式S的主碼,則稱X是R的外部碼或外部關系鍵(ForeignKey),也稱外碼。

第二十四頁,共七十三頁,2022年,8月28日4.2.3范式

規(guī)范化的基本思想是消除關系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不合適的部分,解決數(shù)據(jù)插入、刪除與修改時發(fā)生的異?,F(xiàn)象。這就要求關系數(shù)據(jù)庫設計出來的關系模式要滿足一定的條件。我們把關系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設立的不同的標準或準則稱為范式(NormalForm)。滿足最低要求的叫第一范式,簡稱1NF。當把某范式看成是滿足該范式的所有關系模式的集合時,各個范式之間的集合關系可以表示為:一個低一級范式的關系模式,通過模式分解可以轉換為若干個高一級范式的關系模式的集合,這種過程就叫規(guī)范化。

第二十五頁,共七十三頁,2022年,8月28日4.2.4第一范式

第一范式(FirstNormalForm)是最基本的規(guī)范化形式,即關系中每個屬性都是不可再分的簡單項。定義4.6

如果關系模式R所有的屬性均為簡單屬性,即每個屬性都是不可再分的,則稱R屬于第一范式,簡稱1NF,記作R∈1NF。在關系數(shù)據(jù)庫系統(tǒng)中只討論規(guī)范化的關系,凡是非規(guī)范化的關系模式必須轉化成規(guī)范化的關系。在非規(guī)范化的關系中去掉組合項就能轉化成規(guī)范化的關系。每個規(guī)范化的關系都是屬于1NF。

第二十六頁,共七十三頁,2022年,8月28日4.2.5第二范式

1.第二范式的定義定義4.7如果關系模式R∈1NF,R(U,F(xiàn))中的所有非主屬性都完全函數(shù)依賴于任意一個候選關鍵字,則稱關系R是屬于第二范式(SecondNormalForm),簡稱2NF,記作R∈2NF。從定義可知,滿足第二范式的關系模式R中,不可能有某非主屬性對某候選關鍵字存在部分函數(shù)依賴.分析SDC關系模式,它的候選碼是(sno,cno),非主屬性(sn,age,dept,mn,score)(Sno,cno)f

score(Sno,cno)p

sn(Snof

sn)(Sno,cno)p

age(Sno,cno)p

dept(Sno,cno)p

mn

所以該關系模式不屬于第二范式第二十七頁,共七十三頁,2022年,8月28日4.2.5第二范式2.2NF的規(guī)范化

2NF規(guī)范化是指把1NF關系模式通過投影分解,消除非主屬性對候選關鍵字的部分函數(shù)依賴,轉換成2NF關系模式的集合的過程。注意:如果R的候選關鍵字均為單屬性,或R的全體屬性均為主屬性,則R∈2NF。將SDC關系模式分解成連個關系模式SD(sno,sn,sge,dept,mn)描述學生實體Sc(sno,cno,score)描述學生與課程的聯(lián)系第二十八頁,共七十三頁,2022年,8月28日4.2.5第二范式規(guī)范化結果SD(sno,sn,sge,dept,mn)Sc(sno,cno,score)SNO(5)SN(8)AGE(4)DEPT(8)MN(8)S1趙紅20計算機張文斌S2王小明17計算機張文斌S3吳小林19計算機張文斌SNO(5)CNO(3)SCORE(4)S1C190S1C285S1C357S2C180S2C273S2C370S3C175S3C270S3C385規(guī)范化前總字節(jié)數(shù)=(5+8+4+8+8+3+4)*9=360B規(guī)范化后總字節(jié)數(shù)=(5+8+4+8+8)*3+(5+3+4)*9=99+108=207B第二十九頁,共七十三頁,2022年,8月28日4.2.5第二范式異常問題緩解數(shù)據(jù)冗余(減輕,但仍存在)

-系名和系負責人重復存儲3次,sc中課程號重復存儲3次,學號重復3次更新異常(減輕,但仍存在)

-修改計算機系負責人仍要修改3次插入異常(減輕,但仍存在)

-計算機系成立,沒有招生,無法插入(未解決)

-招生完畢,學生尚未選修課程,可以插入學生基本信息表刪除異常(減輕,但仍存在)

--取消選修,未刪除學生信息

--刪除系中學生,仍然活導致系的信息丟失。(未解決)第三十頁,共七十三頁,2022年,8月28日4.2.6第三范式1.第三范式的定義定義4.8如果關系模式R∈2NF,R(U,F(xiàn))中所有非主屬性對任何候選關鍵字都不存在傳遞函數(shù)依賴,則稱R是屬于第三范式(ThirdNormalForm),簡稱3NF,記作R∈3NF。

第三范式具有如下性質:

(1)如果R∈3NF,則R也是2NF。

(2)如果R∈2NF,則R不一定是3NF。

第三十一頁,共七十三頁,2022年,8月28日4.2.6第三范式

2NF的關系模式解決了1NF中存在的一些問題,但2NF的關系模式SDC在進行數(shù)據(jù)操作時,仍然存在下面一些問題:

1.數(shù)據(jù)冗余2.插入異常3.刪除異常4.修改異常之所以存在這些問題,是由于在SD中存在著非主屬性對候選關鍵字的傳遞依賴。消除這種依賴就轉換成了3NF。

2.3NF的規(guī)范化

3NF規(guī)范化是指把2NF關系模式通過投影分解,消除非主屬對候選關鍵字的傳遞函數(shù)依賴,而轉換成3NF關系模式集合的過程。方法:將起傳遞關系作用函數(shù)關系中的主屬性(決定方)和非主屬性取出單獨構成一個關系模式,再將它的決定方和關系式中余下的屬性,加上主碼,構成另外一個模式。第三十二頁,共七十三頁,2022年,8月28日4.2.6第三范式對SD關系進行規(guī)范化由于只有系負責人(mn)傳遞函數(shù)依賴于sno(snodept,deptmn)故分解得到

D(dept,mn)S(sno,sn,age,dept)DEPT(8)MN(8)計算機張文斌SNO(5)SN(8)AGE(4)DEPT(8)S1趙紅20計算機S2王小明17計算機S3吳小林19計算機第三十三頁,共七十三頁,2022年,8月28日4.2.6第三范式異常問題緩解數(shù)據(jù)冗余降低-規(guī)范前學生情況總字節(jié)數(shù)(5+8+4+8+8)*3=99B-規(guī)范后學生+系總字節(jié)數(shù)(5+8+4+8)*3+(8+8)=91B更新異常不再

-修改計算機系負責人只修改條記錄即可插入異常不再

-計算機系成立可插入系,不需要招生。刪除異常不再--刪除系中學生,系的信息不會丟失。第三十四頁,共七十三頁,2022年,8月28日進一步優(yōu)化將作為外碼的字段所占空間減少,即減少重復項的空間占用。例:將系名用系號表示(2B)DNO(2)DEPT(8)MN(8)

CD計算機張文斌SNO(5)SN(8)AGE(4)DNO(2)S1趙紅20CDS2王小明17CDS3吳小林19CD優(yōu)化前總字節(jié)數(shù)91B優(yōu)化后總字節(jié)數(shù)=(5+8+4+2)*3+(2+8+8)=57+18=75B第三十五頁,共七十三頁,2022年,8月28日4.2.7BC范式1、存在問題的3NF示例例4.3設有關系模式SCS(SNO,SN,CNO,SCORE)假設不重名候選碼?(SNO,CNO)和(SN,CNO)

SCS屬于第三范式?函數(shù)依賴關系圖?存在的問題?數(shù)據(jù)冗余較大,修改異常原因?存在主屬性對候選碼的部分函數(shù)依賴解決辦法?消除主屬性對候選碼的部分函數(shù)依賴SNOSNSNOCNOOSCORESNCNOOSCORE第三十六頁,共七十三頁,2022年,8月28日4.2.7BC范式1.BC范式的定義定義4.9

如果關系模式R∈1NF,且所有的函數(shù)依賴X→Y(Y不包含于X,即YX),決定因素X都包含了R的一個候選碼,則稱R屬于BC范式(Boyce-CoddNormalForm),記作R∈BCNF。由BCNF的定義可以得到以下結論,一個滿足BCNF的關系模式有:

(1)所有非主屬性對每一個候選碼都是完全函數(shù)依賴。

(2)所有的主屬性對每一個不包含它的候選碼都是完全函數(shù)依賴。(非平凡的函數(shù)依賴)

(3)沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。第三十七頁,共七十三頁,2022年,8月28日4.2.7BC范式

BCNF規(guī)范化實例

設有關系模式STK(S,T,K),S表示學生,T表示教師,K表示課程。假設每一位教師只講授一門課程;每門課程由多個教師講授;某一學生選定某門課程,就對應一個確定的教師。STK的函數(shù)依賴是:(S,K)→T,(S,T)→K,T→K候選碼:(S,K)和(S,T)且兩個候選碼有交集s

關系中的所有屬性都是主屬性?STK屬于第三范式(完美嗎?)STK不屬于BCNF范式(T→K,T是決定因素,而T不包含候選碼)STK的問題:

1)插入異常:

--新生入校,未選修課程,不能插入(K是主屬性不能為空)

--新開的課,還未有學生選修,不能插入?第三十八頁,共七十三頁,2022年,8月28日4.2.7BC范式2)刪除異常

--選修過課程的學生全部畢業(yè),學生信息要被刪除,相對應教師和課程信息也被刪除。造成教師和課程信息丟失。3)數(shù)據(jù)冗余大

--如一個教師只上一門課,但所有選修該課程的學生都要反復記錄這個信息。4)修改復雜

--課程名改,所有選修過該課程的學生所在元組都要改。第三十九頁,共七十三頁,2022年,8月28日4.2.7BC范式改進將屬于第三范式的STK關系采用投影分解法分為兩個關系,STK

分解為ST(S,T)其中S是碼S→TTK(T,K)其中T是碼T→K實際上這一過程消除了原有的主屬性傳遞函數(shù)依賴于碼和部分函數(shù)依賴于碼。(前提是一個教師只教授一門課,所以不存在一個學生對應兩個教師的情形,否則一個教師就要上兩門以上的課程了。)第四十頁,共七十三頁,2022年,8月28日4.2.7BC范式緩解:1)ST關系中可以存儲未選修課程的學生,TK關系可以存儲未有學生選修的課程—插入異常緩解2)選修過某門課程的學生全部畢業(yè),只會刪除ST中相應的元組不影響TK中教師開課的信息—刪除異常緩解3)每個教師開設課程信息只在TK中存儲一次—降低冗余4)選課或改名,只在TK中修改一個元組—簡化修改第四十一頁,共七十三頁,2022年,8月28日4.2.7BC范式3NF與BCNF關系1)如果關系模式R屬于BCNF,則必屬于3NF2)如果關系模式R屬于3NF,且只有一個候選碼,則R一定屬于BCNF3)如果關系模式R屬于3NF,R的候選碼多于一個,但每個候選碼只包含一個屬性,則R一定屬于BCNF3)如果關系模式R屬于3NF,R的候選碼多于一個,并且候選碼包含多個屬性時,則R可能不是BCNF

如:STK關系第四十二頁,共七十三頁,2022年,8月28日4.2.7BC范式

考察關系S(sno,sn,sex,age,dept)因為sn允許重名,故只有一個碼sno,所以S屬于BCNF??疾礻P系C(cno,cname,cpno,credit)因為cname不允許重名,故cno和cname都是碼,但cno和cname都是單屬性,不存在主屬性的部分函數(shù)依賴和傳遞函數(shù)依賴所以C屬于BCNF考察關系SC(sno,cno,score),(sno,cno)是碼且是唯一的碼,所以SC屬于BCNF事實證明:只有兩個屬性的關系模式一定是BCNF第四十三頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF屬于BCNF的關系模式函數(shù)依賴:一個完美的關系模式多值依賴例如:假設學校中一門課程可由多名教師教授,教學中他們使用相同的一套參考書,這樣可用表1非規(guī)范化的關系來表示課程C、教師T、參考書R間的關系。課程C教師T參考書R數(shù)據(jù)庫系統(tǒng)概論計算數(shù)學薩師煊王珊張平周峰數(shù)據(jù)庫與應用數(shù)據(jù)庫系統(tǒng)Sqlserver2000數(shù)學分析微分方程第四十四頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF用二維表表示課程C教師T參考書R數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論計算數(shù)學計算數(shù)學計算數(shù)學計算數(shù)學薩師煊薩師煊薩師煊王珊王珊王珊張平張平周峰周峰數(shù)據(jù)庫與應用數(shù)據(jù)庫系統(tǒng)Sqlserver2000數(shù)據(jù)庫與應用數(shù)據(jù)庫系統(tǒng)Sqlserver2000數(shù)學分析微分方程數(shù)學分析微分方程第四十五頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF規(guī)范后的關系模式CTR,只有唯一的一個函數(shù)依賴(C,T,R)→U,所以該關系模式的碼是全碼,因而該關系模式屬于BCNFCTR存在的問題:1)數(shù)據(jù)冗余課程、教師、參考書都被多次存儲2)插入異常當某一課程增加一名任課教師,有多少參考書就必須插入幾條元組。例如:計算數(shù)學增加一個任課教師王剛,需要插入兩個元組。(計算數(shù)學,王剛,數(shù)學分析)(計算數(shù)學,王剛,微分方程)3)刪除異常,若要刪除某一門課程的參考書,與該參考書有關的元組都要被刪除。第四十六頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF4)修改操作復雜

--某一門課要修改一本參考書,有幾個教師任教就要修改幾個元組。產生原因:參考書的取值和教師的取值是彼此毫無關系的,都只取決于課程名。第四十七頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF

前面所介紹的規(guī)范化都是建立在函數(shù)依賴的基礎上,函數(shù)依賴表示的是關系模式中屬性間的一對一或一對多的聯(lián)系,但它并不能表示屬性間多對多的關系,因而某些關系模式雖然已經規(guī)范到BCNF,仍然存在一些弊端,本節(jié)主要討論屬性間的多對多的聯(lián)系即多值依賴問題,以及在多值依賴范疇內定義的第四范式。

1.多值依賴

(1)多值依賴的定義

第四十八頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF

定義4.10設有關系模式R(U),U是屬性全集,X,Y,Z是屬性集U的子集,且Z=U-X-Y,如果對于R的任一關系,對于X的一個確定值,存在Y的一組值與之對應,且Y的這組值僅僅決定于X的值而與Z值無關,此時稱Y多值依賴于X,或X多值決定Y,記作:X→→Y。

在多值依賴中,若X→→Y且Z=U-X-Y≠φ,則稱X→→Y是非平凡的多值依賴,否則稱為平凡的多值依賴。(是非平凡的多值依賴涉及到所有屬性)

第四十九頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF如:在關系模式CTR中,對于某一C、R屬性值組合(數(shù)據(jù)庫系統(tǒng)概論,數(shù)據(jù)庫系統(tǒng))來說,有一組T值{薩師煊,王珊},這組值僅僅決定與課程C上的值(數(shù)據(jù)庫系統(tǒng)概論)。也就是說,對于另一個C、R屬性值組合(數(shù)據(jù)庫系統(tǒng)概論,SQLServer2000),它對應的一組T值仍是{薩師煊,王珊},盡管這時參考書R的值已經改變了。因此T多值依賴于C,即:C→→T。第五十頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF下面是多值依賴的另一形式化定義:設有關系模式R(U),U是屬性全集,X、Y、Z是屬性集合U的子集,且Z=U-X-Y,r是關系模式R的任一關系,t,s是r的任意兩個元組,如果t[X]=s[X],r中必有的兩個元組u、v存在,使得:①s[x]=t[X]=u[X]=v[X]②u[Y]=t[Y]且u[Z]=s[Z]③v[Y]=s[Y]且v[Z]=t[Z]

則稱X多值決定Y或Y多值依賴于X。(2)多值依賴與函數(shù)依賴的區(qū)別第五十一頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF

①在關系模式R中,函數(shù)依賴X→Y的有效性僅僅決定與X、Y這兩個屬性集,不涉及第三個屬性集,而在多值依賴中,X→→Y在屬性集U(U=X+Y+Z)上是否成立,不僅要檢查屬性集X、Y上的值,而且要檢查屬性集U的其余屬性Z上的值。因此,如果X→→Y在屬性集W(WU)上成立,而在屬性集U上不一定成立,所以,多值依賴的有效性與屬性集的范圍有關。如果在R(U)上有X→→Y,在屬性集W(W包含U)上也成立,則稱X→→Y為R(U)的嵌入型多值依賴。②如果在關系模式R上存在函數(shù)依賴X→Y,則任何Y'包含于Y均有X→Y'成立,而多值依賴X→→Y在R上成立,但不能斷言對于任何Y'包含于Y有X→→Y'成立。

第五十二頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF(3)多值依賴的性質①多值依賴具有對稱性。即若X→→Y,則X→→Z,其中Z=U-X-Y。②多值依賴具有傳遞性。即若X→→Y,Y→→Z,則X→→Z-Y。③函數(shù)依賴可看作是多值依賴的特殊情況。即若X→Y,則X→→Y。④函數(shù)依賴合并性。即若X→→Y,X→→Z,則X→→YZ。⑤多值依賴分解性。即若X→→Y,X→→Z,則X→→(Y∩Z),X→→Y-Z,X→→Z-Y均成立。這說明,如果兩個相交的屬性子集均多值依賴于另一個屬性子集,則這兩個屬性子集因相交而分割成的三部分也都多值依賴于該屬性子集。第五十三頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF2.第四范式(4NF)(1)第四范式(4NF)的定義定義4.11

設有一關系模式R(U),U是其屬性全集,X、Y是U的子集,D是R上的數(shù)據(jù)依賴集。如果對于任一多值依賴X→→Y,此多值依賴是平凡的,或者X包含了R的一個候選碼,則稱關系模式R是第四范式的,記作:R∈4NF。

經過上面分析可以得知:一個BCNF的關系模式不一定是4NF,而4NF的關系模式必定是BCNF的關系模式,即4NF是BCNF的推廣,4NF范式的定義涵蓋了BCNF范式的一定。

第五十四頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF

(2)4NF的分解

把一個關系模式分解為4NF的方法與分解為BCNF的方法類似,就是當把一個關系模式利用投影的方法消去非平凡且非函數(shù)依賴的多值依賴,并具有無損連接性。

第五十五頁,共七十三頁,2022年,8月28日4.2.8多值依賴與4NF

數(shù)據(jù)依賴和多值依賴是兩種最重要的數(shù)據(jù)依賴。如果只考慮函數(shù)依賴,則屬于BCNF的關系模式的規(guī)范化程度已經是最高了。如果考慮多值依賴,則屬于4NF的關系模式化程度是最高的。事實上,數(shù)據(jù)依賴中除了函數(shù)依賴和多值依賴之外,還有其他的數(shù)據(jù)依賴如連接依賴。函數(shù)依賴是多值依賴的一種特殊情況,而多值依賴實際上又是連接依賴的一種特殊情況。但連接依賴不像函數(shù)依賴和多值依賴那樣可由語義直接導出,而是在關系的連接運算時才反映出來。存在連接依賴的關系模式仍可能遇到數(shù)據(jù)冗余及插入、修改、刪除異常問題。如果消除了屬于4NF的關系中存在的連接依賴,則可以進一步達到5NF的關系模式。本書不再討論連接依賴和5NF這方面的內容.第五十六頁,共七十三頁,2022年,8月28日4.2.9規(guī)范化小結

規(guī)范化就是對原關系進行投影,消除決定屬性不是候選碼的任何函數(shù)依賴。一個關系只要其分量都是不可分的數(shù)據(jù)項,就可稱作規(guī)范化的關系,也稱作1NF。消除1NF關系中非主屬性對碼的部分函數(shù)依賴,得到2NF;消除2NF關系中非主屬性對碼的傳遞函數(shù)依賴,得到3NF;消除3NF關系中主屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴,便可得到一組BCNF關系

規(guī)范化目的是使結構更合理,消除異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和修改。原則是遵從概念單一化“一事一地”原則,即一個關系模式描述一個實體或實體間的一種聯(lián)系。

第五十七頁,共七十三頁,2022年,8月28日

4.2.9規(guī)范化小結

規(guī)范的實質就是概念的單一化。方法是將關系模式投影分解成兩個或兩個以上的關系模式。要求:分解后的關系模式集合應當與原關系模式“等價”,即經過自然聯(lián)接可以恢復原關系而不丟失信息,并保持屬性間合理的聯(lián)系。注意:一個關系模式的不同分解可以得到不同關系模式集合,也就是說分解方法不是唯一的。最小冗余的要求必須以分解后的數(shù)據(jù)庫能夠表達原來數(shù)據(jù)庫所有信息為前提來實現(xiàn)。其根本目標是節(jié)省存儲空間,避免數(shù)據(jù)不一致性,提高對關系的操作效率,同時滿足應用需求。第五十八頁,共七十三頁,2022年,8月28日4.3數(shù)據(jù)依賴的公理系統(tǒng)

數(shù)據(jù)依賴的公理系統(tǒng)是模式分解算法的理論基礎,下面先討論函數(shù)依賴的一個有效而完備的公理系統(tǒng)——Armstrong公理系統(tǒng)。定義4.12

對于滿足一組函數(shù)依賴F的關系模式R(U,F(xiàn)),其任何一個關系r,若函數(shù)依賴X→Y都成立(即r中任意兩元組t,s,若t[X]=s[X],則t[Y]=s[Y]),則稱F邏輯蘊涵X→Y。

Armstrong公理系統(tǒng)設U為屬性集總體,F(xiàn)是U上的一組函數(shù)依賴,于是有關系模式R(U,F)。對R(U,F)來說有以下的推理規(guī)則:

第五十九頁,共七十三頁,2022年,8月28日4.3數(shù)據(jù)依賴的公理系統(tǒng)l

A1自反律(Reflexivity):若YXU,則X→Y為F所蘊含。l

A2增廣律(Augmentation):若X→Y為F所蘊含,且ZU,則XZ→YZ為F所蘊含。l

A3傳遞律(Transitivity):若X→Y及Y→Z為F所含,則X→Z為F所蘊含。注意:由自反律所得到的函數(shù)依賴均是平凡的函數(shù)依賴,自反律的使用并不依賴于F。

定理4.1Armstrong推理規(guī)則是正確的。下面從定義出發(fā)證明推理規(guī)則的正確性。第六十頁,共七十三頁,2022年,8月28日4.3數(shù)據(jù)依賴的公理系統(tǒng)證:(1)YXU。對R(U,F(xiàn))的任一關系r中的任意兩個元組t,s:若t[X]=s[X],由于YX,有t[Y]=s[Y],所以X→Y成立,自反律得證。(2)X→Y為F所蘊含,且ZU。設R(U,F(xiàn))的任一關系r中的任意兩個元組t,s:若t[XZ]=s[XZ],則有t[X]=s[X]和t[Z]=s[Z];由X→Y,于是有t[Y]=s[Y],所以t[YZ]=s[YZ],所以XZ→YZ為F所蘊含,增廣律得證。(3)

設X→Y及Y→Z為F所蘊含。設R(U,F(xiàn))的任一關系r中的任意兩個元組t,s:若t[X]=s[X],由X→Y,有t[Y]=s[Y];再由Y→Z,有t[Z]=s[Z],所以X→Z為F所蘊含,傳遞律得證。

第六十一頁,共七十三頁,2022年,8月28日4.3數(shù)據(jù)依賴的公理系統(tǒng)

根據(jù)A1,A2,A3這三條推理規(guī)則可以得到下面很有用的推理規(guī)則:

合并規(guī)則:由X→Y,X→Z,X→YZ。偽傳遞規(guī)則:由X→Y,WY→Z,有XW→Z。分解規(guī)則:由X→Y及ZY,有X→Z。根據(jù)合并規(guī)則和分解規(guī)則,很容易得到這樣一個重要事實:引理4.1X→…成立的充分必要條件是X→成立(i=1,2,…k)。定義4.13

在關系模式R(U,F(xiàn))中為F所蘊含的函數(shù)依賴的全體叫做F的閉包,記為:F+

第六十二頁,共七十三頁,2022年,8月28日4.3數(shù)據(jù)依賴的公理系統(tǒng)

人們把自反律,傳遞律和增廣律稱為Armstrong公理系統(tǒng)。Armstrong公理系統(tǒng)是有效的、完備的。Armstrong公理的有效性指的是:由F出發(fā)根據(jù)Armstrong公理推導出來的每一個函數(shù)依賴一定在F+中;完備性指的是F+中的每一個函數(shù)依賴,必定可以由F出發(fā)根據(jù)Armstrong公理推導出來。要證明完備性,就首先要解決如何判定一個函數(shù)依賴是否屬于由F根據(jù)Armstrong公理推導出來的函數(shù)依賴集合。當然,如果能求出這個集合,問題就解決了。但不幸的是,這是個NP完全問題。比如從F={X→

,…,X→

}出發(fā),至少可以推倒出個不同的函數(shù)依賴,為此引出了下面的概念:

第六十三頁,共七十三頁,2022年,8月28日4.3數(shù)據(jù)依賴的公理系統(tǒng)

定義4.14

設F為屬性集U上的一組函數(shù)依賴,X包含于U,Xf+={A|X→A能由F根據(jù)Armstrong公理導出},Xf+成為屬性集X關于函數(shù)依賴集F的閉包。由引理4.1容易得出:引理4.2

設F為屬性集U上的一組函數(shù)依賴,X,Y包含于U,X→Y能由F根據(jù)Armstrong公理導出的充分必要條件是Y包含于

Xf+

。于是,判定X→Y是否能由F根據(jù)Armstrong公理推導出的問題,就轉化為求出Xf+

的子集的問題。這個問題由算法4.1解決了。第六十四頁,共七十三頁,2022年,8月28日

由于本節(jié)內容為選學內容因此其它內容略,具體內容見書4.3數(shù)據(jù)依賴的公理系統(tǒng)第六十五頁,共七十三頁,2022年,8月28日4.4小結

本章討論如何設計關系模式問題。關系模式設計有好與壞之分的,其設計好壞與數(shù)據(jù)冗余度和各種數(shù)據(jù)異常問題直接相關。本章在函數(shù)依賴、多值依賴的范疇內討論了關系模式的規(guī)范化,在整個討論過程中,只采用了兩種關系運算——投影和自然連接。關系模式在分解時應保持“等價”,有數(shù)據(jù)等價和語義等價兩種,分別用無損分解和保持依賴兩個特征來衡量。前者能保持泛關系在投影聯(lián)接以后仍能恢復回來,而后者能保證數(shù)據(jù)在投影或聯(lián)接中其語義不會發(fā)生變化。第六十六頁,共七十三頁,2022年,8月28日4.4小結范式是衡量關系模式優(yōu)劣的標準,范式表達了模式中數(shù)據(jù)依賴應滿足的要求。要強調的是,規(guī)范化理論主要為數(shù)據(jù)庫設計提供了理論的指南和參考工具,并不是關系模式規(guī)范化程度越高,實際應用該關系模式就越好,實際上必須結合應用環(huán)境和現(xiàn)實世界的具體情況合理地選擇數(shù)據(jù)庫模式的范式等級。本章最后還簡介了模式分解相關的理論基礎——數(shù)據(jù)依賴的公理系統(tǒng)。

第六十七頁,共七十三頁,2022年,8月28日習題

一、選擇題1、關系模式中數(shù)據(jù)依賴問題的存在,可能會導致庫中數(shù)據(jù)插入異常,這是指()。A.插入了不該插入的數(shù)據(jù)B.數(shù)據(jù)插入后導致數(shù)據(jù)庫處于不一致狀態(tài)C.該插入的數(shù)據(jù)不能實現(xiàn)插入D.以上都不對2、若屬性X函數(shù)依賴于屬性Y時,則屬性X與屬性Y之間具有()的聯(lián)系。A.一對一B.一對多C.多對一D.多對多3、關系模式中的候選鍵()。A.有且僅有一個B.必然有多個C.可以有一或多個D.以上都不對4、規(guī)范化的關系模式中,所有屬性都必須是()。A.相互關聯(lián)的B.互不相關的C.不可分解的D.長度可變的5、設關系模式R{A,B,C,D,E},其上函數(shù)依賴集F={AB→C,DC→E,D→B},則可導出的函數(shù)依賴是()。

A.AD→E

B.BC→E

C.DC→AB

D.DB→A第六十八頁,共七十三頁,2022年,8月28日6、設關系模式R屬于第一范式,若在R中消除了部分函數(shù)依賴,則R至少屬于()。A.第一范式B.第二范式C.第三范式D.第四范式7、若關系模式R中的屬性都是主屬性,則R至少屬于()。A.第三范式B.BC范式C.第四范式D.第五范式8、下列關于函數(shù)依賴的敘述中,哪一個是不正確的。A.由X→Y,X→Z,有X→YZB.由XY→Z,有X→Z或X→ZC.由X→Y,WY→Z,有XW→ZD.由X→Y及Z?Y,有X→Z9、在關系模式R(A,B,C)中,有函數(shù)依賴集F={AB→C,BC→A},則R最高達到()。A.第一范式B.第二范式C.第三范式D.BC范式10、設有關系模式R(A,B,C),其函數(shù)依賴集F={A→B,B→C},則關系R最高達到()。

A.1NFB.2NFC.3NFD.BCNF習題

第六十九頁,共七十三頁,2022年,8月28日二、填空題1、數(shù)據(jù)依賴主要包括________依賴、________依賴和連接依賴。2、一個不好的關系模式會存在___________、________

溫馨提示

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

評論

0/150

提交評論