數(shù)據(jù)庫(kù)原理與應(yīng)用 課件全套 張千帆 第1-14章 緒論、-關(guān)系型數(shù)據(jù)庫(kù) -數(shù)據(jù)庫(kù)技術(shù)的新發(fā)展_第1頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用 課件全套 張千帆 第1-14章 緒論、-關(guān)系型數(shù)據(jù)庫(kù) -數(shù)據(jù)庫(kù)技術(shù)的新發(fā)展_第2頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用 課件全套 張千帆 第1-14章 緒論、-關(guān)系型數(shù)據(jù)庫(kù) -數(shù)據(jù)庫(kù)技術(shù)的新發(fā)展_第3頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用 課件全套 張千帆 第1-14章 緒論、-關(guān)系型數(shù)據(jù)庫(kù) -數(shù)據(jù)庫(kù)技術(shù)的新發(fā)展_第4頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用 課件全套 張千帆 第1-14章 緒論、-關(guān)系型數(shù)據(jù)庫(kù) -數(shù)據(jù)庫(kù)技術(shù)的新發(fā)展_第5頁(yè)
已閱讀5頁(yè),還剩527頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章緒論本章介紹數(shù)據(jù)庫(kù)系統(tǒng)的基本概念。數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用1.2數(shù)據(jù)管理技術(shù)的發(fā)展1.3數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)1.4數(shù)據(jù)模型1.5E-R模型主要內(nèi)容1.6邏輯數(shù)據(jù)模型的分類1.1數(shù)據(jù)庫(kù)系統(tǒng)基本概念數(shù)據(jù)庫(kù)系統(tǒng)基本概念1.1基本概念信息(Information)人們對(duì)于客觀事物屬性和運(yùn)動(dòng)狀態(tài)的反映。信息所描述的內(nèi)容能夠通過(guò)某種載體,如符號(hào)、聲音、文字、圖形、圖像等來(lái)表征和傳播。信息具有可感知、可存儲(chǔ)、可加工、可傳遞和可再生等屬性。數(shù)據(jù)(Data)描述現(xiàn)實(shí)世界事物的符號(hào)記錄,在計(jì)算機(jī)科學(xué)中是指所有能輸入到計(jì)算機(jī)中并被計(jì)算機(jī)程序處理的符號(hào)的總稱。對(duì)于計(jì)算機(jī)科學(xué)而言,數(shù)據(jù)的含義極其廣泛,如數(shù)字、文字、圖形、圖像、聲音等都可以通過(guò)編碼而歸之于數(shù)據(jù)的范疇?;靖拍钚畔⑴c數(shù)據(jù)的關(guān)聯(lián)信息是指經(jīng)過(guò)加工處理并可以對(duì)人類客觀行為產(chǎn)生影響的數(shù)據(jù)表現(xiàn)形式。任何事物的屬性都是可以通過(guò)數(shù)據(jù)來(lái)表示的。數(shù)據(jù)是信息的符號(hào)表示,是信息的具體表現(xiàn)形式,或稱載體;信息是數(shù)據(jù)的內(nèi)涵,是數(shù)據(jù)的語(yǔ)義解釋。數(shù)據(jù)是現(xiàn)象,信息更反映本質(zhì)。信息處理的基本環(huán)節(jié)將原始信息表示成源數(shù)據(jù),然后對(duì)源數(shù)據(jù)進(jìn)行處理而抽取或推導(dǎo)出新的數(shù)據(jù),即結(jié)果數(shù)據(jù)。信息處理的基本環(huán)節(jié)主要包括信息的收集、信息的輸入、信息的加工、信息的輸出、信息的存儲(chǔ)和傳輸,其中信息加工是信息處理的核心?;靖拍顢?shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱DB)長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)集合數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)系統(tǒng)的核心部分,是數(shù)據(jù)庫(kù)系統(tǒng)的管理對(duì)象數(shù)據(jù)庫(kù)特征①數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存的;②長(zhǎng)期存儲(chǔ);③可為多用戶共享;④數(shù)據(jù)獨(dú)立性較高;⑤統(tǒng)一管理。

基本概念數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。是基礎(chǔ)軟件,是一個(gè)大型復(fù)雜的軟件系統(tǒng)??茖W(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)。DBMS的主要功能1)數(shù)據(jù)庫(kù)定義功能2)數(shù)據(jù)庫(kù)查詢和操縱功能3)數(shù)據(jù)庫(kù)運(yùn)行管理功能4)數(shù)據(jù)庫(kù)的建立和維護(hù)功能5)數(shù)據(jù)字典DBMS數(shù)據(jù)子語(yǔ)言(1)數(shù)據(jù)定義語(yǔ)言(簡(jiǎn)稱DDL);(2)數(shù)據(jù)操縱語(yǔ)言(簡(jiǎn)稱DML);(3)數(shù)據(jù)控制語(yǔ)言(簡(jiǎn)稱DCL)?;靖拍顢?shù)據(jù)庫(kù)系統(tǒng)(DatabaseSystem,簡(jiǎn)稱DBS)通常是指帶有數(shù)據(jù)庫(kù)的計(jì)算機(jī)應(yīng)用系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)的組成數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng)計(jì)算機(jī)軟件硬件系統(tǒng)人員用戶數(shù)據(jù)管理技術(shù)的發(fā)展1.2數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程20世紀(jì)50年代中期以前人工管理階段20世紀(jì)50年代后期到60年代中期文件系統(tǒng)階段20世紀(jì)60年代后期數(shù)據(jù)庫(kù)系統(tǒng)階段21世紀(jì)至今數(shù)據(jù)庫(kù)系統(tǒng)新發(fā)展1)人工管理階段背景計(jì)算機(jī)主要用于科學(xué)計(jì)算數(shù)據(jù)量小、結(jié)構(gòu)簡(jiǎn)單,如高階方程、曲線擬和等外存為順序存取設(shè)備磁帶、卡片、紙帶,沒(méi)有磁盤(pán)等直接存取設(shè)備沒(méi)有操作系統(tǒng),沒(méi)有數(shù)據(jù)管理軟件用戶用機(jī)器指令編碼,通過(guò)紙帶機(jī)輸入程序和數(shù)據(jù),程序運(yùn)行完畢后,由用戶取走紙帶和運(yùn)算結(jié)果,再讓下一用戶上機(jī)操作1)人工管理階段訪問(wèn)訪問(wèn)訪問(wèn)數(shù)據(jù)集1數(shù)據(jù)集2數(shù)據(jù)集n應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n1)人工管理階段特點(diǎn)用戶完全負(fù)責(zé)數(shù)據(jù)管理工作數(shù)據(jù)的組織、存儲(chǔ)結(jié)構(gòu)、存取方法、輸入輸出等數(shù)據(jù)完全面向特定的應(yīng)用程序用戶使用自己的數(shù)據(jù),數(shù)據(jù)不保存,用完就撤走數(shù)據(jù)與程序沒(méi)有獨(dú)立性程序中存取數(shù)據(jù)的子程序隨著存儲(chǔ)結(jié)構(gòu)的改變而改變磁帶的特點(diǎn)優(yōu)點(diǎn):廉價(jià)地存放大容量數(shù)據(jù)缺點(diǎn):順序訪問(wèn);1%所需,100%訪問(wèn)2)文件系統(tǒng)階段背景計(jì)算機(jī)不但用于科學(xué)計(jì)算,還用于管理外存有了磁盤(pán)、磁鼓等直接存取設(shè)備有了專門(mén)管理數(shù)據(jù)軟件,一般稱為文件系統(tǒng)2)文件系統(tǒng)階段數(shù)據(jù)集1數(shù)據(jù)集2數(shù)據(jù)集n文件系統(tǒng)應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n2)文件系統(tǒng)階段特點(diǎn)系統(tǒng)提供一定的數(shù)據(jù)管理功能存取方式支持對(duì)文件的基本操作,用戶不必考慮物理細(xì)節(jié)數(shù)據(jù)仍是面向應(yīng)用的一個(gè)數(shù)據(jù)文件對(duì)應(yīng)一個(gè)或幾個(gè)用戶程序數(shù)據(jù)與程序有一定的獨(dú)立性文件的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)由系統(tǒng)進(jìn)行轉(zhuǎn)換,數(shù)據(jù)在存儲(chǔ)上的改變不一定反映在程序上2)文件系統(tǒng)階段人事處洗衣房宿管中心文件系統(tǒng)學(xué)號(hào)姓名性別出生年月學(xué)院專業(yè)年級(jí)籍貫人事處洗衣房宿管中心文件系統(tǒng)學(xué)號(hào)姓名性別出生年月學(xué)院專業(yè)年級(jí)籍貫人事處洗衣房宿管中心文件系統(tǒng)學(xué)號(hào)姓名性別出生年月學(xué)院專業(yè)年級(jí)籍貫學(xué)號(hào)姓名性別學(xué)院專業(yè)住址人事處學(xué)號(hào)卡號(hào)姓名密碼余額文件系統(tǒng)管理數(shù)據(jù)示例2)文件系統(tǒng)階段缺點(diǎn)數(shù)據(jù)與程序的獨(dú)立性差數(shù)據(jù)的共享性差,冗余度大數(shù)據(jù)的不一致性數(shù)據(jù)查詢困難數(shù)據(jù)完整性難于保證3)數(shù)據(jù)庫(kù)系統(tǒng)階段背景計(jì)算機(jī)管理的數(shù)據(jù)量大,關(guān)系復(fù)雜,共享性要求強(qiáng)外存有了大容量的磁盤(pán),光盤(pán)硬件價(jià)格下降,編制和維護(hù)軟件及應(yīng)用程序成本相對(duì)增加3)數(shù)據(jù)庫(kù)系統(tǒng)階段數(shù)據(jù)1統(tǒng)一存取數(shù)據(jù)2數(shù)據(jù)n應(yīng)用程序2應(yīng)用程序1應(yīng)用程序n3)數(shù)據(jù)庫(kù)系統(tǒng)階段數(shù)據(jù)庫(kù)管理數(shù)據(jù)應(yīng)用示例宿管中心洗衣房人事處卡號(hào)密碼學(xué)號(hào)姓名性別住址籍貫學(xué)院出生年月專業(yè)余額3)數(shù)據(jù)庫(kù)系統(tǒng)階段特點(diǎn)1面向全組織的復(fù)雜的數(shù)據(jù)結(jié)構(gòu)支持全企業(yè)的應(yīng)用而不是某一個(gè)應(yīng)用數(shù)據(jù)反映了客觀事物間的本質(zhì)聯(lián)系,而不是著眼于面向某個(gè)應(yīng)用,是有結(jié)構(gòu)的數(shù)據(jù)。這是數(shù)據(jù)庫(kù)系統(tǒng)的主要特征之一,與文件系統(tǒng)的根本差別。文件系統(tǒng)只是記錄的內(nèi)部有結(jié)構(gòu),一個(gè)文件的記錄之間是個(gè)線性序列,記錄之間無(wú)聯(lián)系特點(diǎn)2數(shù)據(jù)的冗余度小,易擴(kuò)充數(shù)據(jù)面向整個(gè)系統(tǒng),而不是面向某一應(yīng)用,數(shù)據(jù)集中管理,數(shù)據(jù)共享,因此冗余度小節(jié)省存儲(chǔ)空間,減少存取時(shí)間,且可避免數(shù)據(jù)之間的不相容性和不一致性每個(gè)應(yīng)用選用數(shù)據(jù)庫(kù)的一個(gè)子集,只要重新選取不同子集或者加上一小部分?jǐn)?shù)據(jù),就可以滿足新的應(yīng)用要求,這就是易擴(kuò)充性3)數(shù)據(jù)庫(kù)系統(tǒng)階段特點(diǎn)3具有較高的數(shù)據(jù)獨(dú)立性把數(shù)據(jù)庫(kù)的定義和描述從應(yīng)用程序中分離出去數(shù)據(jù)描述是分級(jí)的(全局邏輯、局部邏輯、存儲(chǔ))數(shù)據(jù)的存取由系統(tǒng)管理,用戶不必考慮存取路徑等細(xì)節(jié),從而簡(jiǎn)化了應(yīng)用程序特點(diǎn)4數(shù)據(jù)由DBMS統(tǒng)一管理與控制數(shù)據(jù)的安全性控制(Security)數(shù)據(jù)的完整性控制(Integrity)并發(fā)控制(Concurrency)4)數(shù)據(jù)庫(kù)新發(fā)展隨著互聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)、云計(jì)算、人工智能等新一代信息技術(shù)的發(fā)展,傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)與其它新興技術(shù)結(jié)合,形成了多種滿足特定應(yīng)用領(lǐng)域的新型數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)技術(shù)與網(wǎng)通信絡(luò)技術(shù)融合的分布式數(shù)據(jù)庫(kù)系統(tǒng)與面向?qū)ο蠹夹g(shù)融合的面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)與多媒體技術(shù)融合的多媒體數(shù)據(jù)庫(kù)與人工智能技術(shù)融合的智能數(shù)據(jù)庫(kù)與大數(shù)據(jù)融合的NoSQL(NotOnlySQL)數(shù)據(jù)庫(kù)?!瓟?shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)1.33.1三級(jí)模式

數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)…用戶An用戶A3用戶A2用戶A1宿主語(yǔ)言+DML宿主語(yǔ)言+DML宿主語(yǔ)言+DML宿主語(yǔ)言+DML數(shù)據(jù)庫(kù)概念模式內(nèi)模式

概念級(jí)數(shù)據(jù)庫(kù)DBA視圖物理級(jí)數(shù)據(jù)庫(kù)系統(tǒng)程序員視圖

外模式1外模式2用戶級(jí)數(shù)據(jù)庫(kù)用戶視圖…外模式N數(shù)據(jù)庫(kù)管理系統(tǒng)操作系統(tǒng)3.1三級(jí)模式外模式(Sub-Schema)又稱為子模式、用戶模式或用戶視圖。是數(shù)據(jù)庫(kù)用戶(包括程序員和最終用戶)能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。模式(Schema)又稱邏輯模式、概念模式。所有用戶的公共數(shù)據(jù)視圖。是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的描述。內(nèi)模式(StorageSchema)又稱存儲(chǔ)模式、物理模式是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述。是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。3.2二級(jí)映像概念模式/外模式映像外模式1外模式2概念模式內(nèi)模式概念模式/內(nèi)模式映像…外模式N數(shù)據(jù)的邏輯獨(dú)立性數(shù)據(jù)的物理獨(dú)立性兩級(jí)映像3.2二級(jí)映像外模式/模式映像定義某一個(gè)外模式和模式之間的對(duì)應(yīng)關(guān)系,映象定義通常包含在各外模式中。當(dāng)模式改變時(shí),修改外模式/模式映像,使外模式保持不變,從而應(yīng)用程序可以保持不變,稱為數(shù)據(jù)的邏輯獨(dú)立性。模式/內(nèi)模式映像定義數(shù)據(jù)邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。存儲(chǔ)結(jié)構(gòu)改變時(shí),修改模式/內(nèi)模式映像,使模式保持不變,從而應(yīng)用程序可以保持不變,稱為數(shù)據(jù)的物理獨(dú)立性。數(shù)據(jù)模型1.4信息的抽象過(guò)程現(xiàn)實(shí)世界信息世界計(jì)算機(jī)世界三個(gè)數(shù)據(jù)范疇:現(xiàn)實(shí)世界、信息世界和計(jì)算機(jī)世界應(yīng)用概念模型數(shù)據(jù)模型抽象、概念化轉(zhuǎn)換、形式化信息的抽象過(guò)程信息的循環(huán)經(jīng)歷了三個(gè)領(lǐng)域:現(xiàn)實(shí)世界、信息世界和數(shù)據(jù)世界。1)現(xiàn)實(shí)世界(RealWord),指存在于人們頭腦之外的客觀世界,是具體事物和抽象概念的總和,是數(shù)據(jù)處理的源泉。事物可分成“對(duì)象”與“性質(zhì)”兩大類。2)信息世界(InformationWorld),指現(xiàn)實(shí)世界在人們頭腦中的反映。信息世界的主要對(duì)象是實(shí)體以及實(shí)體間的相互聯(lián)系。3)數(shù)據(jù)世界(DataWorld),指數(shù)據(jù)庫(kù)系統(tǒng)的處理對(duì)象?,F(xiàn)實(shí)世界中的事實(shí)經(jīng)過(guò)信息世界轉(zhuǎn)換成信息,并經(jīng)過(guò)加工、編碼進(jìn)入計(jì)算機(jī)世界。三類數(shù)據(jù)模型1)概念數(shù)據(jù)模型,簡(jiǎn)稱為概念模型,是獨(dú)立于任何計(jì)算機(jī)實(shí)現(xiàn)的。這類數(shù)據(jù)模型完全不涉及信息在計(jì)算機(jī)系統(tǒng)中的表示問(wèn)題,只用來(lái)描述某個(gè)特定的組織所關(guān)心的信息結(jié)構(gòu)。2)邏輯數(shù)據(jù)模型,簡(jiǎn)稱為邏輯模型,是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,直接面向數(shù)據(jù)庫(kù)中的數(shù)據(jù)的邏輯結(jié)構(gòu)。3)物理數(shù)據(jù)模型,簡(jiǎn)稱為物理模型,屬于底層數(shù)據(jù)模型,通過(guò)諸如記錄格式、記錄順序和存取路徑等表示信息,描述數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)中的實(shí)際存儲(chǔ)方式。存取路徑是一個(gè)特殊的結(jié)構(gòu),用于在數(shù)據(jù)庫(kù)文件中有效地搜索一個(gè)特定的數(shù)據(jù)庫(kù)記錄。概念模型中的基本概念實(shí)體(Entity)客觀存在并可相互區(qū)分的事物叫實(shí)體屬性(Attribute)實(shí)體所具有的某一特性碼(Key)能唯一標(biāo)識(shí)實(shí)體的屬性或?qū)傩越M域(Domain)屬性的取值范圍概念模型中的基本概念實(shí)體型(EntityType)實(shí)體名與其屬性名集合共同構(gòu)成實(shí)體型例:學(xué)生(學(xué)號(hào)、姓名、年齡、性別、系、年級(jí))注意實(shí)體型與實(shí)體(值)之間的區(qū)別,后者是前者的一個(gè)特例如(0308100,王平,19,男,管理學(xué)院,2)是一個(gè)實(shí)體(值)實(shí)體集(EntitySet)同型實(shí)體的集合稱為實(shí)體集如全體學(xué)生E-R模型1.5E-R模型組成要素實(shí)體(Entity)ER模型中實(shí)體即實(shí)體型用矩形表示,矩形框內(nèi)寫(xiě)明實(shí)體名。屬性(Relationship)用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)。E-R模型組成要素聯(lián)系實(shí)體之間的相互關(guān)聯(lián)用菱形表示,菱形框內(nèi)寫(xiě)明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型。聯(lián)系的種類(如右圖)一對(duì)一聯(lián)系(1:1)一對(duì)多聯(lián)系(1:n)多對(duì)多聯(lián)系(m:n)聯(lián)系也可以有屬性,如學(xué)生與課程之間有選課聯(lián)系,每個(gè)選課聯(lián)系都有一個(gè)成績(jī)作為其屬性。元或度(Degree)參與聯(lián)系的實(shí)體集的個(gè)數(shù)稱為聯(lián)系的元。數(shù)據(jù)抽象方法定義某一類概念作為現(xiàn)實(shí)世界中一組對(duì)象的類型。抽象了對(duì)象值和對(duì)象型之間的“ismemberof”的語(yǔ)義。分類(Classification)定義某一類型的組成部分。抽象了對(duì)象內(nèi)部類型和成分之間“

ispartof

”的語(yǔ)義。聚集(Aggregation)定義類型之間的一種子集聯(lián)系。抽象了類型之間的“

issubsetof

”的語(yǔ)義。概括(Generalization)學(xué)生

張軍學(xué)生姓名學(xué)號(hào)系別本科生研究生學(xué)生姓名學(xué)號(hào)論文軍訓(xùn)

王平E-R模型設(shè)計(jì)流程是是局部E-R模型確定公共實(shí)體類型合并兩個(gè)局部E-R模型檢查并消除沖突還有沖突否無(wú)還有未合并的局部E-R模型全局E-R模型否基本E-R模型是還可優(yōu)化否E-R模型設(shè)計(jì)流程圖1)局部E-R模型設(shè)計(jì)現(xiàn)實(shí)世界的事物能作為屬性對(duì)待的,盡量作為屬性對(duì)待。屬性不能再有需要描述的性質(zhì),必須是不可分的數(shù)據(jù)項(xiàng)。屬性不能與其他實(shí)體具有聯(lián)系。2)全局E-R模型設(shè)計(jì)集成方法多個(gè)局部E-R模型一次集成逐步集成,用累加的方式一次集成兩個(gè)局部E-R模型

集成的步驟合并局部E-R模型,生成初步E-R模型屬性沖突:屬性類型不同、屬性取值范圍不同、屬性取值單位不同結(jié)構(gòu)沖突:同一對(duì)象在不同應(yīng)用中的抽象不同、同一實(shí)體在不同E-R模型中屬性組成不同、實(shí)體之間的聯(lián)系在不同E-R模型中呈現(xiàn)不同的類型命名沖突:同名異義、異名同義修改和重構(gòu),消除不必要的冗余,生成基本E-R模型E-R模型設(shè)計(jì)實(shí)例1)數(shù)據(jù)需求描述考慮一個(gè)機(jī)械制造廠的工廠技術(shù)部門(mén)和工廠供應(yīng)部門(mén)。技術(shù)部門(mén)關(guān)心的是產(chǎn)品性能參數(shù)、產(chǎn)品由哪些零件組成、零件的材料和耗用量等;工廠供應(yīng)部門(mén)關(guān)心的是產(chǎn)品的價(jià)格、使用材料的價(jià)格和材料的庫(kù)存量等。E-R模型設(shè)計(jì)實(shí)例2)局部E-R模型設(shè)計(jì)技術(shù)部門(mén)的局部E-R模型產(chǎn)品組成零件mn零件數(shù)零件號(hào)零件名耗用量材料名產(chǎn)品號(hào)產(chǎn)品名性能參數(shù)E-R模型設(shè)計(jì)實(shí)例2)局部E-R模型設(shè)計(jì)供應(yīng)部門(mén)的局部E-R模型庫(kù)存量倉(cāng)庫(kù)倉(cāng)庫(kù)號(hào)倉(cāng)庫(kù)名類別地點(diǎn)材料價(jià)格材料號(hào)材料名產(chǎn)品號(hào)產(chǎn)品產(chǎn)品名價(jià)格n存放m存放量耗用量使用mnE-R模型設(shè)計(jì)實(shí)例3)全局E-R模型的設(shè)計(jì)地點(diǎn)耗用量使用材料價(jià)格庫(kù)存量mn倉(cāng)庫(kù)倉(cāng)庫(kù)號(hào)倉(cāng)庫(kù)名n類別存放材料號(hào)材料名m存放量性能參數(shù)產(chǎn)品產(chǎn)品號(hào)產(chǎn)品名價(jià)格組成零件零件號(hào)零件名m零件數(shù)n耗用量消耗mn集成的初步E-R模型E-R模型設(shè)計(jì)實(shí)例3)全局E-R模型的設(shè)計(jì)類別產(chǎn)品號(hào)圖4改進(jìn)的E-R模型性能參數(shù)零件數(shù)材料價(jià)格產(chǎn)品倉(cāng)庫(kù)倉(cāng)庫(kù)號(hào)倉(cāng)庫(kù)名n地點(diǎn)存放材料號(hào)材料名m產(chǎn)品名價(jià)格存放量組成零件零件號(hào)零件名m耗用量n消耗mn邏輯數(shù)據(jù)模型的分類1.6邏輯數(shù)據(jù)模型的分類1層次數(shù)據(jù)模型12網(wǎng)狀數(shù)據(jù)模型23關(guān)系數(shù)據(jù)模型31)層次模型層次模型是用樹(shù)形結(jié)構(gòu)來(lái)表示實(shí)體與實(shí)體之間聯(lián)系的模型。其中樹(shù)的結(jié)點(diǎn)表示實(shí)體,邊表示聯(lián)系。學(xué)校管理學(xué)院計(jì)算機(jī)學(xué)院生命科學(xué)學(xué)院外國(guó)語(yǔ)學(xué)院信息管理系市場(chǎng)營(yíng)銷系工商管理系計(jì)算機(jī)系計(jì)算中心網(wǎng)絡(luò)中心生物系環(huán)境系動(dòng)物中心生物工程中心資源所英語(yǔ)系日語(yǔ)系

學(xué)校院系設(shè)置的層次模型1)層次模型層次模型描述了數(shù)據(jù)之間的層次關(guān)系層次模型中的樹(shù)為有序樹(shù),實(shí)體之間的聯(lián)系關(guān)系是單向的,樹(shù)結(jié)點(diǎn)中任何結(jié)點(diǎn)的任何屬性都是不可再分的簡(jiǎn)單型數(shù)據(jù)。有且僅有一個(gè)結(jié)點(diǎn)無(wú)雙親,這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn)其它結(jié)點(diǎn)有且僅有一個(gè)雙親結(jié)點(diǎn)層次模型只能描述數(shù)據(jù)之間一對(duì)一或一對(duì)多的關(guān)系多對(duì)多聯(lián)系在層次模型中的表示冗余結(jié)點(diǎn)法虛擬結(jié)點(diǎn)法層次數(shù)據(jù)模型的存儲(chǔ)結(jié)構(gòu)鄰接法鏈接法2)網(wǎng)狀模型網(wǎng)狀模型用網(wǎng)狀結(jié)構(gòu)來(lái)表示實(shí)體與實(shí)體間聯(lián)系。其中結(jié)點(diǎn)表示實(shí)體,邊表示聯(lián)系。結(jié)點(diǎn)之間的聯(lián)系可以是一對(duì)一、一對(duì)多和多對(duì)多的。網(wǎng)狀模型描述了數(shù)據(jù)之間的網(wǎng)狀關(guān)系。網(wǎng)絡(luò)數(shù)據(jù)模型3)關(guān)系模型關(guān)系數(shù)據(jù)模型是三種基本數(shù)據(jù)中最晚發(fā)展但相對(duì)建模能力最強(qiáng)的。關(guān)系數(shù)據(jù)模型用二維表格(即集合論中的關(guān)系)來(lái)表示實(shí)體和實(shí)體間的聯(lián)系,保證了對(duì)實(shí)體和聯(lián)系的描述的一致性。表中的每一行是一個(gè)元組,相當(dāng)于一個(gè)記錄。每一列是一個(gè)屬性值集,列可以命名稱為屬性名。關(guān)系是元組的集合。關(guān)系數(shù)據(jù)模型有嚴(yán)格的數(shù)學(xué)基礎(chǔ),可直接表達(dá)多對(duì)多的聯(lián)系。3)關(guān)系模型校園卡和商戶之間的多對(duì)多聯(lián)系可以表示為下圖“消費(fèi)清單”表的關(guān)系,包含五個(gè)屬性(列),分別是流水號(hào)、卡號(hào)、商戶編號(hào)、消費(fèi)金額、消費(fèi)時(shí)間關(guān)系數(shù)據(jù)模型用簡(jiǎn)單的線性數(shù)據(jù)結(jié)構(gòu)表示了校園卡與商戶之間多對(duì)多的聯(lián)系。第2章關(guān)系型數(shù)據(jù)庫(kù)本章主要介紹關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)完整性、數(shù)據(jù)操作的相關(guān)概念和常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用2.1關(guān)系數(shù)據(jù)庫(kù)概述2.2E-R模型轉(zhuǎn)換為關(guān)系模型2.3關(guān)系完整性約束2.4關(guān)系代數(shù)主要內(nèi)容2.5常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)概述2.12.1.1關(guān)系域:一組具有相同數(shù)據(jù)類型的值的集合。例:整數(shù)、介于某個(gè)取值范圍的整數(shù)實(shí)數(shù)、指定長(zhǎng)度的字符串集合……笛卡爾積:給定一組域D1,D2,…,Dn,其笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}元組:笛卡兒積中每一個(gè)元素(d1,d2,…,dn)稱為n元組。分量:元素中的每一個(gè)值di叫做一個(gè)分量。關(guān)系:D1ⅩD2Ⅹ…ⅩDn的子集叫作域D1,D2,…,Dn上的關(guān)系,表示為R(D1,D2,…,Dn

)其中R是關(guān)系名,n為關(guān)系的度關(guān)系是笛卡兒積的有限子集,所以關(guān)系也是一個(gè)二維表。表的每行對(duì)應(yīng)一個(gè)元組,每列對(duì)應(yīng)一個(gè)域,稱為屬性。2.1.1關(guān)系碼:能夠唯一標(biāo)識(shí)一個(gè)元組的屬性或?qū)傩约?,又稱鍵、關(guān)鍵字。碼分為超碼、候選碼、主碼、外碼。超碼:能夠唯一標(biāo)識(shí)一個(gè)元組的一個(gè)或多個(gè)屬性的集合。如果K是一個(gè)超鍵,那么所有包含K的集合也是超鍵。候選碼:能夠唯一標(biāo)識(shí)一個(gè)元組的最小屬性集,即候選鍵是沒(méi)有多余屬性的超鍵。候選鍵中的屬性稱為主屬性(PrimeAttribute),不包含在任何候選鍵中的屬性稱為非主屬性(Non_primeAttribute)。主碼:若一個(gè)關(guān)系有多個(gè)候選鍵,選定其中一個(gè)為主鍵。主鍵的諸屬性稱為主屬性。外碼:設(shè)屬性F是關(guān)系R的一個(gè)屬性,但不是關(guān)系R的主鍵,并對(duì)應(yīng)著關(guān)系S的主鍵K,如圖2-1所示。F在R中的取值要參照關(guān)系S中K的取值,稱關(guān)系R為參照關(guān)系(ReferencingRelation)或從表,關(guān)系S為被參照關(guān)系(ReferencedRelation)或主表,并稱F是關(guān)系R的外鍵(ForeignKey)。關(guān)系R和S不一定是不同的關(guān)系,但是K與F的域相同。非碼屬性:不包含在任何候選碼中的屬性。全碼:關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的候選碼。2.1.1關(guān)系2.1.1關(guān)系基本關(guān)系的性質(zhì)關(guān)系是一種規(guī)范化的二維表,作為關(guān)系的二維表必須滿足下列6條性質(zhì):(1)同一屬性(列)中的分量是相同類型的數(shù)據(jù),即取自同一個(gè)域。(2)屬性(列)的順序可以是任意的。(3)元組(行)的順序可以是任意的。(4)任意兩個(gè)元組(即兩行)不能完全相同。(5)屬性必須有不同的名稱,但不同的屬性可以取自相同的域。(6)所有屬性必須都是不可分解的,即表中不允許有子表。2.1.1關(guān)系9800019198000281980003719800028939800029812.1.2關(guān)系模式關(guān)系模式(RelationSchema):對(duì)關(guān)系的描述。元組集合的結(jié)構(gòu)

屬性構(gòu)成

屬性來(lái)自的域

屬性與域之間的映象關(guān)系完整性約束條件關(guān)系模式是型、關(guān)系是值關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的關(guān)系模式可以形式化地表示為:

R(U,D,DOM,F(xiàn))R

關(guān)系名U

組成該關(guān)系的屬性名集合D

U中屬性所來(lái)自的域DOM

屬性向域的映象集合F

屬性間數(shù)據(jù)的依賴關(guān)系的集合2.1.3關(guān)系模型關(guān)系模型組成要素?cái)?shù)據(jù)結(jié)構(gòu)在關(guān)系模型中,無(wú)論是實(shí)體還是實(shí)體之間的聯(lián)系均由單一的結(jié)構(gòu)類型即關(guān)系來(lái)表示。關(guān)系操作增加、刪除、修改、查詢(并、交、差、選擇、投影、連接、除)關(guān)系代數(shù)、關(guān)系演算、SQL關(guān)系完整性實(shí)體完整性參照完整性用戶自己定義的完整性2.1.4關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù):在一個(gè)給定的應(yīng)用領(lǐng)域中,所有關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)的型與值關(guān)系數(shù)據(jù)庫(kù)的型:關(guān)系數(shù)據(jù)庫(kù)模式,是對(duì)關(guān)系數(shù)據(jù)庫(kù)的描述關(guān)系數(shù)據(jù)庫(kù)的值:關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常稱為關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)(RelationalDBMS,簡(jiǎn)稱為RDBMS)以其結(jié)構(gòu)簡(jiǎn)單、通俗易懂、使用方便等特點(diǎn),深受廣大用戶的歡迎,是目前使用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng)。E-R模型轉(zhuǎn)換為關(guān)系模型2.2E-R模型轉(zhuǎn)換為關(guān)系模型模型與關(guān)系數(shù)據(jù)模型的要素對(duì)照表關(guān)系數(shù)據(jù)模型可由基本E-R模型轉(zhuǎn)換得到2.2.1具有簡(jiǎn)單屬性的實(shí)體的表示(1)設(shè)E為只具有n個(gè)簡(jiǎn)單屬性的實(shí)體,則關(guān)系E表示為這n個(gè)屬性的集合。(2)實(shí)體的主鍵為轉(zhuǎn)換得到的關(guān)系的主鍵。(3)關(guān)系中的一個(gè)元組對(duì)應(yīng)一個(gè)實(shí)體值。S(SNO,SNAME,DEPT)學(xué)生姓名學(xué)號(hào)系別例:簡(jiǎn)單屬性:不可再分的屬性一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)同名的關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。2.2.2具有復(fù)雜屬性的實(shí)體的表示1)復(fù)合屬性:可以劃分為更小的屬性如果實(shí)體具有復(fù)合屬性,可以用子屬性替代復(fù)合屬性,也可以把復(fù)合屬性升級(jí)為一個(gè)實(shí)體,用一個(gè)新的關(guān)系表示。2)多值屬性:屬性上有多于一個(gè)的取值多值屬性需要升級(jí)為一個(gè)新的關(guān)系,例如,對(duì)于實(shí)體的一個(gè)多值屬性M,構(gòu)建關(guān)系R,該關(guān)系由M以及M所在的實(shí)體的主鍵構(gòu)成。R的主鍵由其所有屬性構(gòu)成的全鍵。R的外鍵是由M所在實(shí)體的主鍵所生成的屬性。3)派生屬性:從其他相關(guān)的屬性或?qū)嶓w派生出來(lái)的屬性值派生屬性不在關(guān)系模式中顯性表示,只是在需要時(shí)通過(guò)計(jì)算得到。2.2.2具有復(fù)雜屬性的實(shí)體的表示教師

職工號(hào)

姓名

通訊地址

街道

街道號(hào)

街道名

門(mén)牌號(hào)

{電話號(hào)碼}

出生日期

年齡()teacher(TID,name,province,city,street_number,street_name,apt_number,birthday)TID是主鍵teacher_phone(TID,phone)(TID,phone)是主鍵,TID是外鍵復(fù)雜屬性的表示示例2.2.3二元聯(lián)系的表示1)1:1聯(lián)系的表示把任意一端的主鍵及聯(lián)系本身的屬性與另一端對(duì)應(yīng)的關(guān)系合并。廠長(zhǎng)號(hào)姓名年齡廠長(zhǎng)廠名地點(diǎn)工廠管理11方法一:廠長(zhǎng)(廠長(zhǎng)號(hào),廠號(hào),姓名,年齡)

工廠(廠號(hào),廠名,地點(diǎn))方法二:廠長(zhǎng)(廠長(zhǎng)號(hào),姓名,年齡)

工廠(廠號(hào),廠長(zhǎng)號(hào),廠名,地點(diǎn))廠號(hào)1:1聯(lián)系的表示示例2.2.3二元聯(lián)系的表示2)1:n聯(lián)系的表示把“1”端的關(guān)鍵字以及聯(lián)系的屬性與“n”端對(duì)應(yīng)的關(guān)系合并。合并后的關(guān)系的鍵是“n”端實(shí)體的鍵。1:n聯(lián)系的表示示例學(xué)號(hào)教工號(hào)姓名工作單位教師姓名專業(yè)學(xué)生指導(dǎo)1n教師(教工號(hào),教師姓名,工作單位)學(xué)生(學(xué)號(hào),教工號(hào),姓名,專業(yè),班級(jí))班級(jí)2.2.3二元聯(lián)系的表示3)m:n聯(lián)系的表示m:n聯(lián)系必須轉(zhuǎn)換為一個(gè)新的關(guān)系,新關(guān)系的屬性包括與該聯(lián)系相關(guān)的各實(shí)體的鍵以及聯(lián)系的屬性。各實(shí)體主鍵的集合構(gòu)成了該關(guān)系的主鍵,各主鍵對(duì)應(yīng)的屬性是該關(guān)系的外鍵。m:n聯(lián)系的表示示例學(xué)號(hào)姓名年齡學(xué)生課程號(hào)課程名學(xué)時(shí)數(shù)課程學(xué)習(xí)mn成績(jī)學(xué)生(學(xué)號(hào),姓名,年齡)課程(課程號(hào),課程名,學(xué)時(shí)數(shù))學(xué)習(xí)(學(xué)號(hào),課程號(hào),成績(jī))

2.2.4多元聯(lián)系的表示多元聯(lián)系的轉(zhuǎn)換方法與二元聯(lián)系轉(zhuǎn)化方法相同,具體表述如下:1)1:1:1聯(lián)系可以把任選意兩個(gè)實(shí)體的鍵以及聯(lián)系的屬性放在第三個(gè)實(shí)體的關(guān)系中。2)1:1:n聯(lián)系可以把兩個(gè)1端實(shí)體的鍵以及聯(lián)系的屬性放在n端實(shí)體的關(guān)系中。3)1:m:n聯(lián)系轉(zhuǎn)換成由m端和n端實(shí)體的鍵以及聯(lián)系的屬性構(gòu)成的新關(guān)系,新關(guān)系的鍵為m端和n端實(shí)體的鍵的組合。4)m:n:p聯(lián)系轉(zhuǎn)換成由三端實(shí)體的鍵以及聯(lián)系的屬性構(gòu)成的新關(guān)系,新關(guān)系的鍵為三個(gè)實(shí)體的鍵的組合。關(guān)系完整性約束2.3關(guān)系完整性約束數(shù)據(jù)庫(kù)通過(guò)完整性約束保證數(shù)據(jù)的相容性和正確性。

一是數(shù)據(jù)庫(kù)中的數(shù)據(jù)與現(xiàn)實(shí)世界中的應(yīng)用需求的相容性和正確性;二是數(shù)據(jù)庫(kù)中數(shù)據(jù)之間的相容性和正確性。關(guān)系模型中有三類完整性約束:實(shí)體完整性參照完整性用戶定義完整性。1)實(shí)體完整性實(shí)體完整性規(guī)則1)主鍵約束

每個(gè)表只能有一個(gè)主鍵,構(gòu)成主鍵的每一列值不

能為空值,且主鍵必須能夠唯一標(biāo)識(shí)表中每一行,任意兩行在主鍵上不能具有相同的值。2)候選鍵約束

候選鍵與主鍵一樣,必須非空且唯一。1)實(shí)體完整性學(xué)號(hào)不能為空值或重復(fù)的值。因?yàn)闆](méi)有學(xué)號(hào)的學(xué)生在這個(gè)數(shù)據(jù)庫(kù)中是不存在的,而且也不存在不同學(xué)生具有相同學(xué)號(hào)的情況。實(shí)體完整性可以保證數(shù)據(jù)庫(kù)中記錄的唯一性1)實(shí)體完整性(1)實(shí)體完整性規(guī)則是針對(duì)基本關(guān)系而言的。一個(gè)基本表通常對(duì)應(yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集。(2)現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識(shí)。(3)關(guān)系模型中以主碼作為唯一性標(biāo)識(shí)。(4)主碼中的屬性即主屬性不能取空值。主屬性取空值,就說(shuō)明存在某個(gè)不可標(biāo)識(shí)的實(shí)體,即存在不可區(qū)分的實(shí)體,這與第(2)點(diǎn)相矛盾,因此這個(gè)規(guī)則稱為實(shí)體完整性。說(shuō)

明2)參照完整性參照完整性規(guī)則設(shè)F是關(guān)系R的外鍵,并對(duì)應(yīng)關(guān)系S的主鍵K,則F在關(guān)系R中的取值要么是空值,要么等于關(guān)系S中某個(gè)元組的主鍵值。關(guān)系R和關(guān)系S可以是不同的關(guān)系,也可以是同一個(gè)關(guān)系2)參照完整性插入規(guī)則:在子表中插入記錄時(shí)應(yīng)遵循的規(guī)則限制(Constraint):若父表中不存在匹配的關(guān)鍵字值,則禁止插入操作進(jìn)行。忽略(Abort):允許插入,不遵守參照完整性約束條件。這時(shí)數(shù)據(jù)庫(kù)完全處于自由狀態(tài)。2)參照完整性刪除規(guī)則:在父表中刪除記錄時(shí)應(yīng)遵循的規(guī)則級(jí)聯(lián)(Cascade):先刪除子表中的所有相關(guān)記錄。限制(Constraint):若子表中存在相關(guān)匹配的記錄,則禁止刪除操作進(jìn)行。忽略(Abort):允許刪除,不理會(huì)子表中的相應(yīng)記錄,即不遵守參照完整性約束條件。這時(shí)數(shù)據(jù)庫(kù)完全處于自由狀態(tài)。2)參照完整性更新規(guī)則:當(dāng)父表的關(guān)鍵字被修改時(shí)應(yīng)遵循的規(guī)則;級(jí)聯(lián)(Cascade):用新的關(guān)鍵字值更新子表中的所有相關(guān)記錄。限制(Constraint):若子表中存在匹配的相關(guān)記錄,則禁止更新操作進(jìn)行。忽略(Abort):允許更新,不遵守參照完整性約束條件。這時(shí)數(shù)據(jù)庫(kù)完全處于自由狀態(tài)。2)參照完整性例:班級(jí)(班級(jí)編號(hào),班級(jí)名稱)

學(xué)生(學(xué)號(hào),班級(jí)編號(hào),姓名,性別)3)用戶完整性用戶定義的完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。用戶定義的完整性沒(méi)有統(tǒng)一的規(guī)則,由數(shù)據(jù)庫(kù)設(shè)計(jì)人員根據(jù)具體應(yīng)用中數(shù)據(jù)的語(yǔ)義要求來(lái)創(chuàng)建。3)用戶完整性3)用戶完整性3)用戶完整性由用戶自定義的完整性,數(shù)據(jù)庫(kù)必須同樣遵守。實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的約束條件,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。而用戶自定義完整性反映了用戶的要求,是用戶自行定義的。完整性的實(shí)現(xiàn)uniquechecknot

null關(guān)系代數(shù)2.4關(guān)系代數(shù)概述運(yùn)算對(duì)象是關(guān)系運(yùn)算結(jié)果亦為關(guān)系關(guān)系代數(shù)的集合運(yùn)算分類:傳統(tǒng)的集合運(yùn)算(并、交、差、廣義笛卡爾積)專門(mén)的關(guān)系運(yùn)算兩種類型(投影、選擇、連接、除)關(guān)系代數(shù)運(yùn)算符關(guān)系代數(shù)概述2.4.1傳統(tǒng)的集合運(yùn)算并設(shè)關(guān)系R和關(guān)系S都有n個(gè)屬性,且相應(yīng)的屬性取自同一個(gè)域。對(duì)關(guān)系R與關(guān)系S進(jìn)行并操作,結(jié)果仍是一個(gè)具有n個(gè)屬性的關(guān)系。該關(guān)系由關(guān)系R和關(guān)系S中的所有元組組成,相同的元組只保存一次,可記作:R∪S≡{t|t∈R∨t∈S}2.4.1傳統(tǒng)的集合運(yùn)算2.4.1傳統(tǒng)的集合運(yùn)算交設(shè)關(guān)系R和關(guān)系S都有n個(gè)屬性,且相應(yīng)的屬性取自同一個(gè)域。對(duì)關(guān)系R與關(guān)系S進(jìn)行交操作,結(jié)果仍是一個(gè)有n個(gè)屬性的關(guān)系,該關(guān)系由既屬于關(guān)系R又屬于關(guān)系S的所有元組組成,可記作:R∩S≡{t|t∈R∧t∈S}2.4.1傳統(tǒng)的集合運(yùn)算2.4.1傳統(tǒng)的集合運(yùn)算差設(shè)關(guān)系R和關(guān)系S都有n個(gè)屬性,且相應(yīng)的屬性取自同一個(gè)域。對(duì)關(guān)系R與關(guān)系S進(jìn)行差(Difference)操作,結(jié)果仍是一個(gè)有n個(gè)屬性的關(guān)系,該關(guān)系由屬于關(guān)系R且不屬于關(guān)系S的所有元組組成,可記作:R-S≡{t|t∈R∧t?S}2.4.1傳統(tǒng)的集合運(yùn)算2.4.1傳統(tǒng)的集合運(yùn)算廣義笛卡爾積設(shè)關(guān)系R有n個(gè)屬性,關(guān)系S有m個(gè)屬性,關(guān)系R和關(guān)系S的廣義笛卡爾積是一個(gè)有n+m個(gè)屬性的關(guān)系,該關(guān)系的元組由關(guān)系R的元組和關(guān)系S的元組兩兩組合而成,元組的個(gè)數(shù)為關(guān)系R和關(guān)系S元組個(gè)數(shù)的乘積,可記作:R×S≡{(tr,ts)|tr∈R∧ts∈S}2.4.1傳統(tǒng)的集合運(yùn)算2.4.2專門(mén)的關(guān)系運(yùn)算π投影(選列)投影(Projection)是根據(jù)某些條件對(duì)關(guān)系進(jìn)行垂直分割,產(chǎn)生一個(gè)只有部分屬性的新關(guān)系,新關(guān)系中的屬性可以重新安排順序。投影運(yùn)算可記作:πA1,A2,…,An(R)其中,A1,A2,…,An是對(duì)關(guān)系R進(jìn)行投影運(yùn)算后保留在新關(guān)系中的屬性。2.4.2專門(mén)的關(guān)系運(yùn)算ABC123456223關(guān)系R

B,C(R)BC2356ABC1234562232.4.2專門(mén)的關(guān)系運(yùn)算δ選擇(選行)根據(jù)條件對(duì)關(guān)系作水平分割,產(chǎn)生一個(gè)僅由符合條件的元組構(gòu)成的新關(guān)系。選擇運(yùn)算可記作:σF(R)其中,F(xiàn)表示選擇條件。2.4.2專門(mén)的關(guān)系運(yùn)算ABC123456223關(guān)系R

A=1∨B=5(R)ABC1234562.4.2專門(mén)的關(guān)系運(yùn)算?連接(拼表)連接(Join)是從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足特定條件的元組,可記作:R

FS其中,F(xiàn)表示連接條件。如果連接條件中使用“=”作為連接運(yùn)算符,將從兩個(gè)關(guān)系的笛卡爾積中選取公共屬性的取值相等的元組構(gòu)成新的關(guān)系,則該連接運(yùn)算稱為等值連接(EqualJoin),可記為:R

A=BS自然連接(NaturalJoin)是一種特殊的等值連接,會(huì)去掉等值連接中重復(fù)的屬性,語(yǔ)法格式種省略等值連接條件,可記為:R

S

2.4.2專門(mén)的關(guān)系運(yùn)算關(guān)系R1關(guān)系R2等值連接R1.B=R2.B自然連接R1.B=R2.B2.4.2專門(mén)的關(guān)系運(yùn)算÷除給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集YX包含S在Y上投影的集合。可記作:R÷S={tr[X]|tr∈R∧πY(S)?Yx}其中,Yx為x在R中的象集,x=tr[X]。2.4.2專門(mén)的關(guān)系運(yùn)算關(guān)系R1關(guān)系R2R1÷R22.4.3關(guān)系代數(shù)運(yùn)算的應(yīng)用實(shí)例飯卡管理系統(tǒng)中共有6個(gè)數(shù)據(jù)表,如下所示:學(xué)生(學(xué)號(hào),飯卡號(hào),姓名,性別,院系

)主碼為學(xué)號(hào),外部碼為飯卡號(hào);飯卡(飯卡號(hào),密碼,辦卡日期,注銷日期,狀態(tài),余額),主碼為飯卡號(hào);消費(fèi)記錄(消費(fèi)記錄號(hào),售飯機(jī)號(hào),飯卡號(hào),消費(fèi)金額,消費(fèi)日期)主碼為消費(fèi)記錄號(hào),外部碼為售飯機(jī)號(hào)、飯卡號(hào);售飯機(jī)(售飯機(jī)編號(hào),狀態(tài),位置)主碼為售飯機(jī)號(hào);工作人員(工作人員編號(hào),姓名,性別,年齡)主碼為工作人員編號(hào);操作(工作人員編號(hào),售飯機(jī)編號(hào),操作日期)主碼為工作人員編號(hào)和售飯機(jī)編號(hào)的組合編碼。2.4.3關(guān)系代數(shù)運(yùn)算的應(yīng)用實(shí)例例1:檢索學(xué)號(hào)為012006033925的學(xué)生姓名與所在院系。π姓名,院系(σ學(xué)號(hào)=‘012006033925’(學(xué)生))π3,5(σ1=‘012006033925’(學(xué)生))例2:檢索持有00000001號(hào)飯卡的學(xué)生的學(xué)號(hào)與姓名。π學(xué)號(hào),姓名(σ飯卡號(hào)=‘00000001’(學(xué)生))例3:檢索管理學(xué)院或機(jī)械學(xué)院的學(xué)生學(xué)號(hào)和姓名。π學(xué)號(hào),姓名(σ院系=‘管理學(xué)院’∨院系=‘機(jī)械學(xué)院‘(學(xué)生))2.4.3關(guān)系代數(shù)運(yùn)算的應(yīng)用實(shí)例2.4.3關(guān)系代數(shù)運(yùn)算的應(yīng)用實(shí)例例6:檢索操作過(guò)所有售飯機(jī)的工作人員的姓名。(1)工作人員對(duì)售飯機(jī)的操作情況π工作人員編號(hào),售飯機(jī)編號(hào)(操作)(2)全部售飯機(jī)π售飯機(jī)編號(hào)

(售飯機(jī))(3)操作過(guò)全部售飯機(jī)的工作人員編號(hào)π工作人員編號(hào),售飯機(jī)編號(hào)(操作)÷π售飯機(jī)編號(hào)(售飯機(jī))(4)所有工作人員的編號(hào)和姓名π工作人員編號(hào),姓名(工作人員)(5)從工作人員編號(hào)求工作人員姓名π姓名(π工作人員編號(hào),姓名(工作人員)

(π工作人員編號(hào),售飯機(jī)編號(hào)(操作)÷π售飯機(jī)編號(hào)(售飯機(jī))))可見(jiàn),當(dāng)查詢涉及到否定或全部值時(shí),就要用到差操作或除操作。常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)2.5常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)RDBMS指包括相互聯(lián)系的邏輯組織和存取這些數(shù)據(jù)的一套程序(數(shù)據(jù)庫(kù)管理系統(tǒng)軟件)。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)就是管理關(guān)系數(shù)據(jù)庫(kù),并將數(shù)據(jù)邏輯組織的系統(tǒng)。當(dāng)前主流的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)有Oracle、MySQL、SQLServer、IBMDB2等2.5.1OracleDatabaseORACLE數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是基于數(shù)據(jù)庫(kù)的一種中間件。ORACLE數(shù)據(jù)庫(kù)是世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類型的機(jī)器上使用它。2.5.1OracleDatabase1)高開(kāi)放性O(shè)racle數(shù)據(jù)庫(kù)可以在所有主流平臺(tái)上運(yùn)行,并且所提供的系統(tǒng)工具完全支持企業(yè)級(jí)實(shí)體關(guān)系,可以提供對(duì)企業(yè)級(jí)開(kāi)發(fā)商的全面支持。2)安全保密Oracle提供多層安全性機(jī)制。用戶標(biāo)識(shí)鑒定可以有效防止非法用戶進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng);數(shù)據(jù)文件加密機(jī)制可以在數(shù)據(jù)不幸泄露的情況下也難以被破譯;數(shù)據(jù)邏輯備份可以在計(jì)算機(jī)發(fā)生故障和其它異常時(shí)也可以快速通過(guò)備份恢復(fù)數(shù)據(jù)庫(kù),使系統(tǒng)回到正常狀態(tài)。3)高效性能Oracle系統(tǒng)具備基于規(guī)則的優(yōu)化器和基于代價(jià)的優(yōu)化器,可以對(duì)復(fù)雜的SQL形成優(yōu)異的執(zhí)行計(jì)劃,可以支持開(kāi)發(fā)人員編寫(xiě)含有大量復(fù)雜運(yùn)算的SQL語(yǔ)句。4)跨界架構(gòu)Oracle的實(shí)時(shí)應(yīng)用集群技術(shù)使得利用成本較低的服務(wù)器實(shí)現(xiàn)高性能和可靠性成為可能。同時(shí)還可以自動(dòng)實(shí)現(xiàn)數(shù)據(jù)庫(kù)并行處理和負(fù)載均衡。Oracle數(shù)據(jù)庫(kù)的特點(diǎn):2.5.2MySQLMySQL是一個(gè)精巧的SQL數(shù)據(jù)庫(kù)管理系統(tǒng),而且是開(kāi)源的數(shù)據(jù)管理系統(tǒng)。由于它的強(qiáng)大功能、靈活性、豐富的應(yīng)用編程接口(API)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛(ài)好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache和PHP/PERL結(jié)合,為建立基于數(shù)據(jù)庫(kù)的動(dòng)態(tài)網(wǎng)站提供了強(qiáng)大動(dòng)力。MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器。SQL(結(jié)構(gòu)化查詢語(yǔ)言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)語(yǔ)言。MySQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫(kù)組成。2.5.2MySQL1)開(kāi)源免費(fèi)無(wú)版權(quán)制約MySQL數(shù)據(jù)庫(kù)是開(kāi)源的,提供社區(qū)版、企業(yè)版、集群版和高級(jí)集群版等不同復(fù)雜度的軟件版本,其中社區(qū)版是免費(fèi)的。2)體積小巧使用簡(jiǎn)單MySQL的安裝體積最小可以達(dá)到10M,安裝和配置過(guò)程非常簡(jiǎn)單。3)性能卓越運(yùn)行穩(wěn)定MySQL的性能非常強(qiáng)大,與Linux、Apache和PHP組成的開(kāi)發(fā)環(huán)境應(yīng)用在許多中小型網(wǎng)站中。由于性能非常穩(wěn)定,這套開(kāi)發(fā)環(huán)境還被稱之為L(zhǎng)AMP。4)活躍用戶群體龐大MySQL的開(kāi)源特性使眾多數(shù)據(jù)庫(kù)愛(ài)好者參與到版本的優(yōu)化和改進(jìn)中,持續(xù)不斷的高度參與使MySQL的用戶形成了自己的社區(qū),用戶在社區(qū)內(nèi)通過(guò)分享解決方案和優(yōu)化特性建立的知識(shí)體系能使新用戶的問(wèn)題得到快速解答。MySQL的特點(diǎn)2.5.3MicrosoftSQLServerSQLServer是Microsoft公司推出的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2012的大型多處理器的服務(wù)器等多種平臺(tái)使用。MicrosoftSQLServer是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能(BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。MicrosoftSQLServer數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。2.5.3MicrosoftSQLServerSQLServer的特點(diǎn)1)完整的數(shù)據(jù)解決方案SQLServer提供了一整套數(shù)據(jù)解決方案,其中包括了數(shù)據(jù)存儲(chǔ)、智能分析、大數(shù)據(jù)集成和數(shù)據(jù)挖掘等完整的工具和方案。2)圖形化用戶界面SQLServer采用圖形用戶界面,富UI界面和強(qiáng)大的調(diào)試工具實(shí)現(xiàn)了操作可視化,使用戶更容易上手使用。3)易于安裝部署SQLServer提供了一系列的管理和開(kāi)發(fā)工具,支持在多個(gè)站點(diǎn)上安裝、部署和使用。在Windows平臺(tái)中具有強(qiáng)大的可伸縮性。4)高強(qiáng)度組件協(xié)作配合藉由微軟平臺(tái)的合作伙伴可以在數(shù)據(jù)庫(kù)的基礎(chǔ)上繼續(xù)開(kāi)發(fā)更高層次的集成方案,能滿足大型Web站點(diǎn)和企業(yè)級(jí)數(shù)據(jù)存儲(chǔ)和分析的需要。

2.5.4IBMDB2IBMDB2是美國(guó)IBM公司開(kāi)發(fā)的一套關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它主要的運(yùn)行環(huán)境為UNIX(包括IBM自家的AIX)、Linux、IBMi(舊稱OS/400)、z/OS,以及Windows服務(wù)器版本。DB2具備高安全性和高可靠性,還內(nèi)置了數(shù)據(jù)倉(cāng)庫(kù)管理的功能,在商業(yè)智能解決方案中,還具備數(shù)據(jù)挖掘工具,因此被業(yè)界公認(rèn)為電子商務(wù)的數(shù)據(jù)基礎(chǔ)。

2.5.4IBMDB2DB2的特點(diǎn)1)開(kāi)放性和可移植性DB2能在所有主流平臺(tái)上運(yùn)行,適用于大量結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用場(chǎng)景。此外,DB2數(shù)據(jù)庫(kù)還能非常方便地將其它數(shù)據(jù)庫(kù)的數(shù)據(jù)移植過(guò)來(lái),因此在企業(yè)中得到廣泛應(yīng)用。2)處理性能DB2可以輕松應(yīng)對(duì)超過(guò)1TB級(jí)的數(shù)據(jù),數(shù)據(jù)庫(kù)系統(tǒng)提供了一系列優(yōu)化分析工具,如DB2PD、RUNSTATS和DB2DART等,以分析數(shù)據(jù)庫(kù)的運(yùn)行狀態(tài)。3)并行性DB2把數(shù)據(jù)庫(kù)擴(kuò)充到并行、多點(diǎn)環(huán)境,支持位圖索引和對(duì)象關(guān)系,這使得DB2擁有更好的擴(kuò)展性和性能。4)分布式數(shù)據(jù)庫(kù)第3章關(guān)系模式設(shè)計(jì)本章介紹關(guān)系模式中屬性之間的依賴關(guān)系以及關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用3.1關(guān)系模式的規(guī)范化3.2關(guān)系規(guī)范化3.3求解關(guān)系模式的候選鍵3.4關(guān)系模式的分解原則主要內(nèi)容

該關(guān)系模式存在什么問(wèn)題?問(wèn)題的引入StudentIDSnameSchoolTnumberCourseIDCnameScoreCardIDPassword1204020001Ross機(jī)械學(xué)院320C0002數(shù)控編程8500011231204020001Ross機(jī)械學(xué)院320C0007大學(xué)英語(yǔ)8800011231205030020Joey機(jī)械學(xué)院320C0002數(shù)控編程76000245191206021354Monic管理學(xué)院130C0010管理信息系統(tǒng)9000044529關(guān)系模式Table_Student的實(shí)例關(guān)系模式Table_Student存在的問(wèn)題:數(shù)據(jù)冗余更新異常:由于數(shù)據(jù)冗余,數(shù)據(jù)需要修改時(shí)產(chǎn)生數(shù)據(jù)的不一致。插入異常:該插的數(shù)據(jù)插不進(jìn)去。刪除異常:不該刪除的數(shù)據(jù)被異常地刪除了。SnameSchoolCnameScorePasswordStudentIDCourseIDCardIDTnumberTable_Student中屬性間的依賴關(guān)系示例原因:存在于模式中的某些屬性之間不合理的數(shù)據(jù)依賴。解決方法:通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴。將關(guān)系模式Table_Student分解為如下5個(gè)關(guān)系模式:Student(StudentID,Sname,School,CardID)School_Teacher(School,Tnumber)Course(CourseID,Cname)Card(CardID,Password)Student_Course(StudentID,CourseID,Score)關(guān)系模式的規(guī)范化3.13.1.1關(guān)系模式的描述方式3.1.2規(guī)范化理論1)范式

不同的數(shù)據(jù)依賴條件下關(guān)系模式的分離程度2)規(guī)范化

需要對(duì)現(xiàn)存表結(jié)構(gòu)進(jìn)

行修改,把表轉(zhuǎn)化使遵循一系列先進(jìn)的范式規(guī)范化各級(jí)范式的關(guān)系3.1.2規(guī)范化理論函數(shù)依賴

設(shè)關(guān)系模式R(U)中,U是屬性集,X和Y是U的子集。如果該關(guān)系模式的任意一個(gè)可能的關(guān)系中都不可能存在兩行在X上的值相等而在Y上的值不等,即X為決定因素,Y為依賴因素,X的值決定著Y的值,則稱“Y函數(shù)依賴于X”或者“X函數(shù)決定Y”,記為X→Y。3.1.2規(guī)范化理論(1)平凡的函數(shù)依賴如果Y?X,則對(duì)于任何一個(gè)關(guān)系模式,X→Y都是必然成立的,并沒(méi)有反映新的語(yǔ)義。這種函數(shù)依賴稱為平凡的函數(shù)依賴。(2)非平凡的函數(shù)依賴如果X→Y且Y?X,這種函數(shù)依賴稱為非平凡的函數(shù)依賴。若不特別聲明,總是討論非平凡的函數(shù)依賴。(3)完全函數(shù)依賴如果X→Y且X的任何一個(gè)真子集都不能函數(shù)決定Y,則稱Y完全函數(shù)依賴于X,記為XY。3.1.2規(guī)范化理論[例]Table_Student(StudentID,Sname,School,Tnumber,CourseID,Cname,Score,CardID,PassWord)(StudentID,CourseID)→Score其真子集:StudentID?Score,CourseID?Score于是有(StudentID,CourseID)Score。3.1.2規(guī)范化理論[例]Table_Student(StudentID,Sname,School,Tnumber,CourseID,Cname,Score,CardID,PassWord)(StudentID,CourseID)→Sname其真子集:StudentID→Sname于是有(StudentID,CourseID)

Sname。3.1.2規(guī)范化理論[例]Table_Student(StudentID,Sname,School,Tnumber,CourseID,Cname,Score,CardID,PassWord)因?yàn)镾tudentID→School,School→Tnumber,且School?StudentID所以StudentID

Tnumber。3.1.2規(guī)范化理論多值依賴有關(guān)系模式R(U),其中X、Y、Z是U的子集,并且Z=U–X–Y,關(guān)系模式R(U)中,當(dāng)且僅當(dāng)滿足下列性質(zhì):對(duì)R(U)的任一關(guān)系r,給定一對(duì)(x,z)值,就有一組y值與其相對(duì)應(yīng),而且這組y值只依賴于x值,而與z值無(wú)關(guān),則稱Y多值依賴于X,記為X→→Y。若X→→Y,而Z=Φ即Z為空,則稱X→→Y為平凡的多值依賴,否則稱X→→Y為非平凡的多值依賴。3.1.2規(guī)范化理論

在某高校,每位教師可以為多個(gè)系的學(xué)生授課,可以主講多門(mén)課程。而且在每個(gè)系都是教授同樣的幾門(mén)課。即每位教師無(wú)論在哪個(gè)系授課都對(duì)應(yīng)一組自己所教授的課程。[例]TDC張芳信息管理系數(shù)據(jù)結(jié)構(gòu)張芳物流管理系數(shù)據(jù)結(jié)構(gòu)李君信息管理系數(shù)據(jù)庫(kù)技術(shù)李君財(cái)務(wù)管理系數(shù)據(jù)庫(kù)技術(shù)李君物流管理系數(shù)據(jù)庫(kù)技術(shù)李君信息管理系管理信息系統(tǒng)李君財(cái)務(wù)管理系管理信息系統(tǒng)李君物流管理系管理信息系統(tǒng)………………關(guān)系模式TDC(T,D,C)T代表教師D代表系C代表課程。候選碼是(T,D,C)TDC中存在兩個(gè)多值依賴:

T→→D和T→→C關(guān)系規(guī)范化3.23.2關(guān)系規(guī)范化1NF在關(guān)系模式R中的每一個(gè)具體關(guān)系r中,如果每個(gè)屬性值都是不可再分的最小數(shù)據(jù)單位,則稱R是第一范式的關(guān)系。記為R

1NF。學(xué)生基本信息StudentIDSnameSchoolTnumber120402000Ross機(jī)械學(xué)院320120503002Joey機(jī)械學(xué)院320StudentIDSnameSchoolTnumber120402000Ross機(jī)械學(xué)院320120503002Joey機(jī)械學(xué)院320轉(zhuǎn)化為1NF3.2關(guān)系規(guī)范化2NF根據(jù)部分函數(shù)依賴中屬性的性質(zhì),把部分函數(shù)依賴分為非主屬性對(duì)候選鍵的部分函數(shù)依賴和主屬性對(duì)候選鍵的部分函數(shù)依賴。如果關(guān)系模式R(U,F(xiàn))中的所有非主屬性都完全函數(shù)依賴于任一候選碼,則稱關(guān)系R是第二范式的。記為R

2NF。3.2關(guān)系規(guī)范化關(guān)系模式Table_Student(StudentID,Sname,School,Tnumber,CourseID,Cname,Score,CardID,Password)的候選碼是(StudentID,CourseID)和(CardID,CourseID),非主屬性包括Sname,School,Tnumber,Cname,Score,Password。該模式是否滿足二范式的要求?3.2關(guān)系規(guī)范化該關(guān)系模式存在非主屬性對(duì)候選碼的部分函數(shù)依賴:(StudentID,CourseID)

Sname(StudentID,CourseID)

School(StudentID,CourseID)

Cname(StudentID,CourseID)

Password(CardID,CourseID)

Sname(CardID,CourseID) School(CardID,CourseID) Cname(CardID,CourseID)

Password因此,關(guān)系模式Table_Student不屬于2NF。3.2關(guān)系規(guī)范化將關(guān)系模式Table_Student分解成下列四個(gè)關(guān)系模式:Student(StudentID,Sname,School,Tnumber,CardID)Course(CourseID,Cname)Card(CardID,Password)Student_Course(StudentID,CourseID,Score)SnameSchoolStudentIDTnumberCardIDCnameCourseIDPasswordCardIDStudentIDCourseIDScore3.2關(guān)系規(guī)范化3NF根據(jù)傳遞函數(shù)依賴中屬性的性質(zhì),把傳遞函數(shù)依賴分為非主屬性對(duì)鍵的部分函數(shù)依賴和主屬性對(duì)鍵的部分函數(shù)依賴。如果關(guān)系模式R(U,F)滿足2NF的要求且所有非主屬性對(duì)任何候選碼都不存在傳遞函數(shù)依賴,則稱關(guān)系模式R是第三范式,記為R

3NF。3.2關(guān)系規(guī)范化SnameSchoolStudentIDTnumberCardID關(guān)系模式Student(StudentID,Sname,School,Tnumber,CardID)中存在非主屬性對(duì)候選碼的傳遞函數(shù)依賴:StudentID→School,School→Tnumber,且School?StudentID,故StudentIDTnumberCardID→School,School→Tnumber,且School?CardID,故CardIDTnumber因此,關(guān)系模式Student不屬于3NF。3.2關(guān)系規(guī)范化將關(guān)系模式Student(StudentID,Sname,School,Tnumber,CardID)分解成下列兩個(gè)關(guān)系模式:Student(StudentID,Sname,School,CardID)School_Teacher(School,Tnumber)分解后的關(guān)系模式屬于3NF。3.2關(guān)系規(guī)范化BCNF對(duì)于關(guān)系模式R,若R中的所有非平凡的、完全的函數(shù)依賴的決定因素是碼,則R屬于BC范式(BCNF)。

若關(guān)系模式R屬于BCNF,則R有:R中所有非主屬性對(duì)每一個(gè)碼都是完全函數(shù)依賴;R中所有主屬性對(duì)每一個(gè)不包含它的碼也是完全函數(shù)依賴;R中沒(méi)有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。一個(gè)關(guān)系模式屬于BCNF,則在函數(shù)依賴的范疇內(nèi),它已實(shí)現(xiàn)了徹底的分離,已消除了插入和刪除異常。3.2關(guān)系規(guī)范化[例]:在關(guān)系模式Student_Course(StudentID,CourseID,Score)中插入新的屬性CardID,結(jié)構(gòu)修改后的關(guān)系模式Student_Course2(StudentID,CourseID,Score,CardID)。StudentIDCourseIDScoreCardIDStudent_Course2中的函數(shù)依賴請(qǐng)問(wèn):

1)Student_Course2滿足BCNF的要求嗎?2)如果不滿足BCNF的要求,請(qǐng)將其轉(zhuǎn)化為BCNF。3.2關(guān)系規(guī)范化4NF對(duì)于存在多值依賴的關(guān)系模式需要分解和優(yōu)化。如果關(guān)系模式R(U,F)屬于1NF,對(duì)于R的每個(gè)非平凡多值依賴X→→Y(Y?X),X都含有鍵,則稱R屬于第四范式,記為R

4NF。3.2關(guān)系規(guī)范化TDC中唯一的候選碼是(T,D,C),存在兩個(gè)多值依賴:T→→D和T→→C。這兩個(gè)多值依賴都是非平凡的多值依賴,且其決定因素不含碼,而只是碼的一部分,所以TDC不屬于4NF。消除其主碼內(nèi)的多值依賴可得到滿足4NF的兩個(gè)關(guān)系:TD和TC,如表所示。求解關(guān)系模式的候選鍵3.33.3.1候選鍵的求解方法關(guān)系模式的候選鍵是指能夠唯一標(biāo)識(shí)關(guān)系的元組的一個(gè)屬性或?qū)傩越M可以根據(jù)候選鍵的定義從屬性之間的聯(lián)系判斷候選鍵。也可以根據(jù)函數(shù)依賴的定義判斷關(guān)系模式的候選鍵,如果關(guān)系模式中所有的屬性都函數(shù)依賴于某個(gè)屬性或?qū)傩越M,則該屬性或?qū)傩越M即為關(guān)系模式R的候選鍵。3.3.1候選鍵的求解方法1)邏輯蘊(yùn)涵設(shè)關(guān)系模式R(U,F)中U為屬性集,F(xiàn)為函數(shù)依賴集,任何一個(gè)F中的函數(shù)依賴或者能夠從F中推導(dǎo)出來(lái)的函數(shù)依賴X→Y,都稱F邏輯蘊(yùn)涵X→Y,或稱X→Y被F邏輯蘊(yùn)含。[例]:設(shè)關(guān)系模式student(SID,sname,gender,college,MID)的函數(shù)依賴集合F={SID→sname,SID→gender,SID→college,college→MID},函數(shù)依賴SID→MID是否被F邏輯蘊(yùn)含?由SID→college,college→MID可以推出SID→MID在student上也成立,則除了SID→sname,SID→gender,SID→college,college→MID被F邏輯蘊(yùn)涵外,SID→MID也被F邏輯蘊(yùn)涵,或稱F邏輯蘊(yùn)涵SID→MID。3.3.1候選鍵的求解方法2)函數(shù)依賴集合F的閉包設(shè)F為一個(gè)函數(shù)依賴集合,F(xiàn)的閉包是指F邏輯蘊(yùn)涵的所有函數(shù)依賴集合。F的閉包記為F?[例]:關(guān)系模式student(SID,sname,gender,college,MID)中,函數(shù)依賴集合F的閉包F?={SID→sname,SID→gender,SID→college,college→MID,SID→MID}。3.3.1候選鍵的求解方法3)屬性或?qū)傩约拈]包的閉包基于函數(shù)依賴集合F的閉包,可以求解任何一個(gè)屬性或?qū)傩约軌蚝瘮?shù)決定的所有屬性。屬性或?qū)傩约芎瘮?shù)決定的所有屬性,稱為該屬性或?qū)傩约拈]包,記為XF+。設(shè)關(guān)系模式R中,U為屬性集,F(xiàn)為函數(shù)依賴集,如果一個(gè)屬性或?qū)傩约疿能函數(shù)決定關(guān)系模式的所有屬性,即XF+=U,則X為關(guān)系模式的一個(gè)超鍵。如果XF+=U且X的任何真子集關(guān)于F的閉包都不為U,則X是關(guān)系模式R的一個(gè)候選鍵。3.3.1候選鍵的求解方法求解復(fù)雜關(guān)系模式的候選鍵,首先需要求解邏輯蘊(yùn)涵,然后求解函數(shù)依賴集的閉包和屬性集的閉包。3.3.2Armstrong公理設(shè)U為關(guān)系模式R上的屬性全集,F(xiàn)為U上的一組函數(shù)依賴,對(duì)于關(guān)系模式R<U,F(xiàn)>有如下推理規(guī)則:(1)自反律。若屬性集Y包含于屬性集X,屬性集X包含于U,則X→Y在R上成立。(2)增廣律。若X→Y在R上成立,且屬性集Z包含于屬性集U,則XZ→YZ在R上成立。(3)傳遞律。若X→Y和Y→Z在R上成立,則X→Z在R上成立。(4)合并規(guī)則。若X→Y,X→Z同時(shí)在R上成立,則X→YZ在R上成立。(5)分解規(guī)則。若X→W在R上成立,且屬性集Z包含于W,則X→Z在R上也成立。(6)偽傳遞規(guī)則。若X→Y在R上成立,且WY→Z,則XW→Z也成立。3.3.2Armstrong公理[例]:設(shè)關(guān)系模式R中,U={A,B,C,D,E,F},F(xiàn)={AD→E,AE→BC,BE→DF,CD→E,CEF→D,DE→F,E→C,F→AB},判斷DF→CE是否屬于F?。由F→AB知F→A,DF→AD。又知AD→E,E→C,由傳遞律得AD→C,由合并規(guī)則得AD→CE。由傳遞律得DF→CE,所以DF→CE屬于F?。通過(guò)上述步驟找到了F的一個(gè)邏輯蘊(yùn)含DF→CE。反復(fù)使用Armstrong公理,可以找出F邏輯蘊(yùn)涵的所有函數(shù)依賴,進(jìn)而得到F?。3.3.3求解屬性集的閉包求解屬性集X的閉包X?的算法如下:(1)選X作為閉包X?的初值X(0)。(2)由X(i)計(jì)算X(i+1)時(shí),它是由X(i)并上屬性集合A所組成,其中A滿足下列條件:Y?X(i),且F中存在函數(shù)依賴Y→Z,而A?Z因?yàn)閁是有窮的,所以上述過(guò)程經(jīng)過(guò)有限步之后會(huì)達(dá)到X(i)=X(i+1),此時(shí)X(i)為所求的X?。3.3.3求解屬性集的閉包[例]已知關(guān)系模式R<U,F(xiàn)>,U={A,B,C,D,E,G,H},F(xiàn)={A→B,B→C,A→E,B→H,CD→G},求關(guān)系R的碼。①選AD為碼,求(AD)?。設(shè)X(0)=AD。②計(jì)算X(1):在F中找其左邊為A或D或AD的函數(shù)依賴,如A→B,A→E,所以,X(1)=AD?BE=ABDE。③計(jì)算X(2):在F中找包含X(1)的函數(shù)依賴,除去已使用過(guò)的函數(shù)依賴外,還有B→C,B→H,所以,X(2)=ABDE?CH=ABCDEH。④計(jì)算X(3):在F中找包含X(3)的函數(shù)依賴,除去已使用過(guò)的函數(shù)依賴外,還有CD→G,所以,X(3)=ABCDEH?G=ABCDEGH。因?yàn)椋ˋD)?=ABCDEGH,根據(jù)碼的定義,可知AD是關(guān)系R的碼。3.3.3簡(jiǎn)化候選鍵的求解過(guò)程對(duì)于關(guān)系模式R中的任何一個(gè)函數(shù)依賴X→Y,左邊的屬性X是決定性屬性,右邊的屬性Y是依賴性屬性。如果關(guān)系模式的某個(gè)屬性只出現(xiàn)在函數(shù)依賴的左邊,這個(gè)屬性不僅是決定性屬性,且不能由其它決定性屬性推導(dǎo)出來(lái),一定是任一候選鍵的組成部分,稱為L(zhǎng)類屬性。對(duì)于那些只出現(xiàn)在函數(shù)依賴右邊的屬性則一定不是主屬性,不存在于關(guān)系模式的任何候選鍵中,稱為R類屬性。在函數(shù)依賴的左右兩邊都出現(xiàn)過(guò)的屬性,稱為L(zhǎng)R類屬性。沒(méi)有辦法直接判斷LR類屬性是否包含在候選鍵中,需要通過(guò)屬性的閉包進(jìn)行分析。在函數(shù)依賴左右兩邊均未出現(xiàn)的孤立屬性,稱為N類屬性。N類屬性雖然不能決定其他屬性,但是也不能由其他屬性推導(dǎo)出來(lái),N類屬性是任一候選鍵的組成部分。根據(jù)以上屬性的分類方法,可以排除求解R類屬性的閉包,簡(jiǎn)化候選鍵的求解過(guò)程。3.3.3簡(jiǎn)化候選鍵的求解過(guò)程[例]:設(shè)關(guān)系模式R(U,F),U={A,B,C,D,E},F(xiàn)={AB→CD,E→D,D→E,AE→BC,B→E},求所有候選鍵。A不在函數(shù)依賴集合F中任何一個(gè)函數(shù)依賴的右邊出現(xiàn),R的候選鍵必含A;A+=A,所以A不是候選鍵。(AB)(0)=AB,AB→CD,B→E,所以(AB)(1)=ABCDE。(AB)+=ABCDE=U,所以AB是候選鍵。(AC)(0)=AC,(AC)+=AC,所以AC不是候選鍵。(AD)(0)=AD,D→E,所以(AD)(1)=ADE。E→D,AE→BC,所以(AD)(2)=ADEBC。(AD)+=ADEBC=U,所以AD是候選鍵。(AE)(0)=AE,AE→BC,E→D,所以(AE)(1)=AEBCD。(AE)+=AEBCD=U,所以AE是候選鍵。3個(gè)及3個(gè)以上屬性且含A的子集都含AB或AD或AE,都是超鍵,不是候選鍵。所以R的候選鍵有AB,AD,AE。關(guān)系模式的分解原則3.43.4關(guān)系模式的分解原則1)無(wú)損連接性可通過(guò)對(duì)分解后形成的關(guān)系的某種連接運(yùn)算使之還原到分解前的關(guān)系。2)函數(shù)依賴保持性分解過(guò)程中不能丟失或破壞原有關(guān)系的函數(shù)依賴。關(guān)系的分解不是唯一的。3.4關(guān)系模式的分解原則R(U,F(xiàn)),U={A1,A2,……An},F(xiàn)是函數(shù)依賴集

={R1(U1,F(xiàn)1),R2(U2,F(xiàn)2),……RK(Uk,F(xiàn)k)}是R的一個(gè)分解,如果對(duì)于R的任一滿足F的關(guān)系r都有:r=

R1(r)?

R2(r)……

Rk(r)=m

(r)稱

是滿足F的無(wú)損連接分解。3.4關(guān)系模式的分解原則R(U,F(xiàn)),U={A1,A2,……An},F(xiàn)是函數(shù)依賴集,

={R1(U1,F(xiàn)1),R2(U2,F(xiàn)2),……RK(Uk,F(xiàn)k)}是R的一個(gè)分解,若F=

R1(F)U

R2(F)U……U

Rk(F),稱

具有函數(shù)依賴保持性。3.4.1無(wú)損連接性的判斷方法設(shè)關(guān)系模式R的屬性集U={A1,…,An},函數(shù)依賴集為F。R的一個(gè)分解ρ={R1,…,Rk}。(1)把關(guān)系模式的分解結(jié)果表示為一張k行n列的二維表格,每一行對(duì)應(yīng)一個(gè)分解后的子模式Ri(1≤i≤k),每一列對(duì)應(yīng)一個(gè)屬性Aj(1≤j≤n)。單元格的值分為兩類,一類是子模式中有的屬性,一類是子模式中沒(méi)有的屬性,表示方法為:如果Aj在Ri中,那么在表格的第i行第j列處填上符號(hào)aj,否則填上符號(hào)bij。(2)對(duì)每一個(gè)函數(shù)依賴X→Y,做下列操作:如果表中存在兩行或多行中X列上具有相同的符號(hào),則將這些行上Y列上的值也改為相同。如果這些行的Y列上有一個(gè)值是aj,那么其它行的Y列上的值也改成aj;否則改動(dòng)行下標(biāo)最小的bmj(m為這些行的最小行號(hào))。若某個(gè)bij被改動(dòng),則該列中凡是與bij相同的符號(hào)均作相同的改動(dòng)。(3)直到某一個(gè)子模式所在的行全是a,即該子模式可以函數(shù)決定原關(guān)系模式R的所有屬性,可以斷定ρ相對(duì)于F是無(wú)損連接分解。3.4.1無(wú)損連接性的判斷方法[例]:設(shè)關(guān)系模式R中屬性集U={A,B,C,D,E,F},函數(shù)依賴集合F={A→BC,CD→E,B→D,BE→F,EF→A},分解ρ={R1(A,B,C),R2(B,D),R3(B,E,F)}是否具備無(wú)損連接性?根據(jù)關(guān)系模式R的函數(shù)依賴集合F,可知R1中存在函數(shù)依賴A→BC,R2中存在函數(shù)依賴B→D,R3中存在函數(shù)依賴是BE→F。(1)構(gòu)造初始表格,如表所示。表13.4.1無(wú)損連接性的判斷方法(

溫馨提示

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