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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

(4)每個(gè)學(xué)生學(xué)習(xí)每門課程有一個(gè)成績(jī)。第五頁(yè),共七十三頁(yè),2022年,8月28日4.1.2不合理的關(guān)系模式存在的問題

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

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

--學(xué)號(hào)是有了,但學(xué)生尚未選修,所以課程名不知道求學(xué)校有多少系?

--結(jié)果不正確,在學(xué)生表中還未有計(jì)算機(jī)系含在內(nèi)問計(jì)算機(jī)負(fù)責(zé)人是誰?

--不知道,計(jì)算機(jī)系不存在

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(3)

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

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

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

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

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

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

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

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

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

定義4.3

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

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

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

定義4.4

設(shè)K為R(U,F(xiàn))中的屬性或?qū)傩约希鬕f

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

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

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

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

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

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

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

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

定義4.5

關(guān)系模式R中屬性或?qū)傩越MX并非R的主碼,但X是另外一個(gè)關(guān)系模式S的主碼,則稱X是R的外部碼或外部關(guān)系鍵(ForeignKey),也稱外碼。

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

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

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

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

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

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

1.第二范式的定義定義4.7如果關(guān)系模式R∈1NF,R(U,F(xiàn))中的所有非主屬性都完全函數(shù)依賴于任意一個(gè)候選關(guān)鍵字,則稱關(guān)系R是屬于第二范式(SecondNormalForm),簡(jiǎn)稱2NF,記作R∈2NF。從定義可知,滿足第二范式的關(guān)系模式R中,不可能有某非主屬性對(duì)某候選關(guān)鍵字存在部分函數(shù)依賴.分析SDC關(guān)系模式,它的候選碼是(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

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

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

-系名和系負(fù)責(zé)人重復(fù)存儲(chǔ)3次,sc中課程號(hào)重復(fù)存儲(chǔ)3次,學(xué)號(hào)重復(fù)3次更新異常(減輕,但仍存在)

-修改計(jì)算機(jī)系負(fù)責(zé)人仍要修改3次插入異常(減輕,但仍存在)

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

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

--取消選修,未刪除學(xué)生信息

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

第三范式具有如下性質(zhì):

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

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

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

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

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

2.3NF的規(guī)范化

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

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

-修改計(jì)算機(jī)系負(fù)責(zé)人只修改條記錄即可插入異常不再

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

CD計(jì)算機(jī)張文斌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第三十五頁(yè),共七十三頁(yè),2022年,8月28日4.2.7BC范式1、存在問題的3NF示例例4.3設(shè)有關(guān)系模式SCS(SNO,SN,CNO,SCORE)假設(shè)不重名候選碼?(SNO,CNO)和(SN,CNO)

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

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

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

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

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

BCNF規(guī)范化實(shí)例

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

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

1)插入異常:

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

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

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

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

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

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

如:STK關(guān)系第四十二頁(yè),共七十三頁(yè),2022年,8月28日4.2.7BC范式

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

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

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

1.多值依賴

(1)多值依賴的定義

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

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

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

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

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

第五十二頁(yè),共七十三頁(yè),2022年,8月28日4.2.8多值依賴與4NF(3)多值依賴的性質(zhì)①多值依賴具有對(duì)稱性。即若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均成立。這說明,如果兩個(gè)相交的屬性子集均多值依賴于另一個(gè)屬性子集,則這兩個(gè)屬性子集因相交而分割成的三部分也都多值依賴于該屬性子集。第五十三頁(yè),共七十三頁(yè),2022年,8月28日4.2.8多值依賴與4NF2.第四范式(4NF)(1)第四范式(4NF)的定義定義4.11

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

經(jīng)過上面分析可以得知:一個(gè)BCNF的關(guān)系模式不一定是4NF,而4NF的關(guān)系模式必定是BCNF的關(guān)系模式,即4NF是BCNF的推廣,4NF范式的定義涵蓋了BCNF范式的一定。

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

(2)4NF的分解

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

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

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

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

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

第五十七頁(yè),共七十三頁(yè),2022年,8月28日

4.2.9規(guī)范化小結(jié)

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

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

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

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

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

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

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

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

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

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

第六十一頁(yè),共七十三頁(yè),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ī)則,很容易得到這樣一個(gè)重要事實(shí):引理4.1X→…成立的充分必要條件是X→成立(i=1,2,…k)。定義4.13

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

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

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

,…,X→

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

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

定義4.14

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

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

Xf+

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

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

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

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

第六十七頁(yè),共七十三頁(yè),2022年,8月28日習(xí)題

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

A.AD→E

B.BC→E

C.DC→AB

D.DB→A第六十八頁(yè),共七十三頁(yè),2022年,8月28日6、設(shè)關(guān)系模式R屬于第一范式,若在R中消除了部分函數(shù)依賴,則R至少屬于()。A.第一范式B.第二范式C.第三范式D.第四范式7、若關(guān)系模式R中的屬性都是主屬性,則R至少屬于()。A.第三范式B.BC范式C.第四范式D.第五范式8、下列關(guān)于函數(shù)依賴的敘述中,哪一個(gè)是不正確的。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、在關(guān)系模式R(A,B,C)中,有函數(shù)依賴集F={AB→C,BC→A},則R最高達(dá)到()。A.第一范式B.第二范式C.第三范式D.BC范式10、設(shè)有關(guān)系模式R(A,B,C),其函數(shù)依賴集F={A→B,B→C},則關(guān)系R最高達(dá)到()。

A.1NFB.2NFC.3NFD.BCNF習(xí)題

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論