《計(jì)算機(jī)導(dǎo)論》課件-計(jì)算機(jī)導(dǎo)論第八章_第1頁
《計(jì)算機(jī)導(dǎo)論》課件-計(jì)算機(jī)導(dǎo)論第八章_第2頁
《計(jì)算機(jī)導(dǎo)論》課件-計(jì)算機(jī)導(dǎo)論第八章_第3頁
《計(jì)算機(jī)導(dǎo)論》課件-計(jì)算機(jī)導(dǎo)論第八章_第4頁
《計(jì)算機(jī)導(dǎo)論》課件-計(jì)算機(jī)導(dǎo)論第八章_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第八章數(shù)據(jù)庫系統(tǒng)8.1數(shù)據(jù)管理技術(shù)的發(fā)展概況8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.3數(shù)據(jù)庫系統(tǒng)簡述8.4數(shù)據(jù)模型8.5關(guān)系模型和關(guān)系代數(shù)8.6關(guān)系模式的規(guī)范化8.7數(shù)據(jù)庫設(shè)計(jì)

8.1數(shù)據(jù)管理技術(shù)的發(fā)展概況8.1.1人工管理階段8.1.2文件系統(tǒng)管理階段8.1.3數(shù)據(jù)庫系統(tǒng)管理階段8.1數(shù)據(jù)管理技術(shù)的發(fā)展概況8.1.1人工管理階段這一階段數(shù)據(jù)管理的任務(wù)完全由程序設(shè)計(jì)人員自負(fù)其責(zé),程序員必須自行設(shè)計(jì)數(shù)據(jù)的組織方式,因此稱為人工管理。這個(gè)階段最基本的特征是完全分散的手工方式,具體表現(xiàn)在:(1)系統(tǒng)沒有專用的軟件對數(shù)據(jù)進(jìn)行管理。(2)數(shù)據(jù)不具有獨(dú)立性。(3)數(shù)據(jù)不保存。(4)數(shù)據(jù)不共享。人工管理階段的程序和數(shù)據(jù)之間是一一對應(yīng)的關(guān)系,其特點(diǎn)如圖8.1所示。8.1數(shù)據(jù)管理技術(shù)的發(fā)展概況8.1.2文件系統(tǒng)管理階段這一時(shí)期的數(shù)據(jù)處理系統(tǒng)是把計(jì)算機(jī)中的數(shù)據(jù)組織成相互獨(dú)立的被命名的數(shù)據(jù)文件,并可按文件的名字來進(jìn)行訪問,對文件中的記錄進(jìn)行存取。這個(gè)階段的基本特征是有了面向應(yīng)用、具有數(shù)據(jù)管理功能的文件系統(tǒng),數(shù)據(jù)可以長期保存在計(jì)算機(jī)外存上,可以對數(shù)據(jù)進(jìn)行反復(fù)處理,并支持文件的查詢、修改、插入和刪除等操作。具體其表現(xiàn)為:(1)有了專門的數(shù)據(jù)管理軟件,即文件系統(tǒng)。(2)數(shù)據(jù)管理方面,實(shí)現(xiàn)了數(shù)據(jù)對程序的一定的獨(dú)立性。(3)文件類型多樣化。(4)以記錄為單位進(jìn)行數(shù)據(jù)存取。在文件系統(tǒng)管理階段,程序和數(shù)據(jù)(組織成文件的形式)之間的對應(yīng)關(guān)系,其特點(diǎn)如圖8.2所示。8.1數(shù)據(jù)管理技術(shù)的發(fā)展概況8.1.3數(shù)據(jù)庫系統(tǒng)管理階段為了解決多用戶、多應(yīng)用共享數(shù)據(jù)的需求,使數(shù)據(jù)為盡可能多的應(yīng)用程序服務(wù),出現(xiàn)了專門管理數(shù)據(jù)的軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)DBMS(DatabaseManagementSystem)。主要表現(xiàn)在:(1)數(shù)據(jù)是面向全組織的,具有整體結(jié)構(gòu)性。(2)數(shù)據(jù)冗余度小,共享性高,易于擴(kuò)充。(3)數(shù)據(jù)庫管理系統(tǒng)提供了統(tǒng)一的數(shù)據(jù)管理和控制功能。(4)數(shù)據(jù)與程序具有很高的獨(dú)立性。(5)數(shù)據(jù)的最小存取單位是數(shù)據(jù)項(xiàng)。在數(shù)據(jù)庫系統(tǒng)管理階段,程序和數(shù)據(jù)(組織成文件并存儲(chǔ)在數(shù)據(jù)庫中)之間的對應(yīng)關(guān)系,其特點(diǎn)如圖8.3所示。8.1數(shù)據(jù)管理技術(shù)的發(fā)展概況表8-1給出了數(shù)據(jù)管理技術(shù)在手工管理、文件系統(tǒng)管理和數(shù)據(jù)庫系統(tǒng)管理三個(gè)不同發(fā)展階段的對比。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.1網(wǎng)狀和層次數(shù)據(jù)庫管理系統(tǒng)8.2.2關(guān)系數(shù)據(jù)庫管理系統(tǒng)8.2.3數(shù)據(jù)庫管理系統(tǒng)和方法的新進(jìn)展8.2.4我國數(shù)據(jù)庫技術(shù)發(fā)展概況8.2數(shù)據(jù)庫技術(shù)發(fā)展概況根據(jù)數(shù)據(jù)庫管理系統(tǒng)所使用的邏輯模型,數(shù)據(jù)庫管理系統(tǒng)的發(fā)展可分為三個(gè)發(fā)展階段:第一代數(shù)據(jù)庫管理系統(tǒng)-網(wǎng)狀和層次數(shù)據(jù)庫管理系統(tǒng)。第二代數(shù)據(jù)庫管理系統(tǒng)-關(guān)系數(shù)據(jù)庫管理系統(tǒng)。新一代數(shù)據(jù)庫管理系統(tǒng)-面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)和XML數(shù)據(jù)庫管理系統(tǒng)等。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.1網(wǎng)狀和層次數(shù)據(jù)庫管理系統(tǒng)1964年,通用電氣公司的查爾斯·巴赫曼(CharlesW.Bachman)主持設(shè)計(jì)和開發(fā)了最早的網(wǎng)狀數(shù)據(jù)庫管理系統(tǒng)IDS(IntegratedDataStore),奠定了網(wǎng)狀數(shù)據(jù)庫的基礎(chǔ),并在當(dāng)時(shí)得到了廣泛的發(fā)行和應(yīng)用。網(wǎng)狀模型用網(wǎng)狀結(jié)構(gòu)表示實(shí)體與實(shí)體之間的多種復(fù)雜聯(lián)系,包括一對一聯(lián)系、一對多聯(lián)系和多對多聯(lián)系。網(wǎng)狀模型中節(jié)點(diǎn)間的聯(lián)系是任意的,且任意兩個(gè)節(jié)點(diǎn)之間都可以有聯(lián)系,因而網(wǎng)狀數(shù)據(jù)模型可以很自然和直接地描述現(xiàn)實(shí)世界中實(shí)體與實(shí)體之間的錯(cuò)綜復(fù)雜的聯(lián)系。網(wǎng)狀數(shù)據(jù)模型使用記錄和記錄值表示實(shí)體集和實(shí)體,每個(gè)結(jié)點(diǎn)表示一個(gè)記錄,每個(gè)記錄包含若干個(gè)字段。記錄之間的聯(lián)系用結(jié)點(diǎn)間的有向線段表示,用來表示兩個(gè)記錄間的一對多的聯(lián)系。但網(wǎng)狀數(shù)據(jù)模型運(yùn)算復(fù)雜,處理起來非常困難,也不利于用戶使用。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.1網(wǎng)狀和層次數(shù)據(jù)庫管理系統(tǒng)層次模型(hierarchicalmodel)用樹形結(jié)構(gòu)來表示各類實(shí)體以及實(shí)體間的聯(lián)系。實(shí)體用記錄來表示,實(shí)體間的聯(lián)系用有向邊來表示。由于層次模型是樹形結(jié)構(gòu),所以非常簡單直觀,處理方便,但是層次模型只能表示節(jié)點(diǎn)之間的一對一的聯(lián)系和一對多的聯(lián)系,而無法直接表示實(shí)體之間的多對多聯(lián)系。圖8.5是一個(gè)學(xué)校組織的層次模型表示8.2數(shù)據(jù)庫技術(shù)發(fā)展概況數(shù)據(jù)庫的三級(jí)模式是指外模式、概念模式和內(nèi)模式,如圖8.6所示。其中,外模式是用戶模式,是數(shù)據(jù)庫的局部邏輯結(jié)構(gòu),概念模式是數(shù)據(jù)庫的總體邏輯結(jié)構(gòu),內(nèi)模式是數(shù)據(jù)庫的物理結(jié)構(gòu)。為了能完成數(shù)據(jù)的訪問,在三級(jí)模式之間,存在兩層映像進(jìn)行模式的轉(zhuǎn)換,即外模式/模式映像和模式/內(nèi)模式映像。其中,外模式/模式映像提供了數(shù)據(jù)的邏輯獨(dú)立性,模式和內(nèi)模式映像提供了數(shù)據(jù)的物理獨(dú)立性。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.2關(guān)系數(shù)據(jù)庫管理系統(tǒng)第一代數(shù)據(jù)庫系統(tǒng)存在的主要缺點(diǎn)是,用戶在對網(wǎng)狀和層次數(shù)據(jù)庫進(jìn)行存取數(shù)據(jù)時(shí),仍然需要明確數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),指出具體的存取路徑。對這一缺點(diǎn)的改進(jìn)導(dǎo)致了關(guān)系數(shù)據(jù)庫管理系統(tǒng)的產(chǎn)生。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.3數(shù)據(jù)庫管理系統(tǒng)和方法的新進(jìn)展幾種有代表性的新型數(shù)據(jù)庫管理系統(tǒng):1.面向?qū)ο髷?shù)據(jù)庫系統(tǒng)。面向?qū)ο髷?shù)據(jù)庫是面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)與數(shù)據(jù)庫技術(shù)相結(jié)合的產(chǎn)物。面向?qū)ο髷?shù)據(jù)模型有以下特點(diǎn):

使用對象數(shù)據(jù)模型將客觀世界按語義組織成由各個(gè)相互關(guān)聯(lián)的對象單元組成的復(fù)雜系統(tǒng)。一個(gè)對象使用屬性和行為進(jìn)行描述,其中屬性描述了對象的靜態(tài)特征,而行為描述了對象的動(dòng)態(tài)特征,即具有的功能。語義上相似的對象被組織成類。類是對象的集合,對象只是類的一個(gè)實(shí)例,通過創(chuàng)建類的實(shí)例實(shí)現(xiàn)對象的訪問和操作。對象數(shù)據(jù)模型具有“封裝”、“繼承”、“多態(tài)”等面向?qū)ο蟮幕咎卣?。方法?shí)現(xiàn)類似于關(guān)系數(shù)據(jù)庫中的存儲(chǔ)過程,但存儲(chǔ)過程并不和特定對象相關(guān)聯(lián),方法實(shí)現(xiàn)是類的一部分。在實(shí)際應(yīng)用中,面向?qū)ο髷?shù)據(jù)庫可以實(shí)現(xiàn)一些帶有復(fù)雜數(shù)據(jù)描述的應(yīng)用系統(tǒng),如時(shí)態(tài)和空間事務(wù)、多媒體數(shù)據(jù)管理等。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.3數(shù)據(jù)庫管理系統(tǒng)和方法的新進(jìn)展2.分布式數(shù)據(jù)庫系統(tǒng)。簡單來說,分布式數(shù)據(jù)庫系統(tǒng)DDBS(DistributedDatabaseSystem)就是“邏輯上集中、物理上分布”的數(shù)據(jù)庫。它將一個(gè)單體數(shù)據(jù)庫變成若干個(gè)異地分布的小型數(shù)據(jù)庫功能節(jié)點(diǎn),對外提供服務(wù)。分布式數(shù)據(jù)庫系統(tǒng)是分布式技術(shù)、網(wǎng)絡(luò)通信技術(shù)和數(shù)據(jù)庫技術(shù)相結(jié)合的產(chǎn)物。集中式數(shù)據(jù)庫與分布式數(shù)據(jù)庫的架構(gòu):與集中式數(shù)據(jù)庫相比,分布式數(shù)據(jù)庫系統(tǒng)具有以下優(yōu)勢:8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.3數(shù)據(jù)庫管理系統(tǒng)和方法的新進(jìn)展3.XML數(shù)據(jù)庫系統(tǒng)。XML數(shù)據(jù)庫是XML技術(shù)和數(shù)據(jù)庫技術(shù)結(jié)合的產(chǎn)物。XML具有自描述、可擴(kuò)展、內(nèi)容和表示分離等特點(diǎn),得到了廣泛的應(yīng)用,已經(jīng)成為數(shù)據(jù)表示和交換的事實(shí)上的國際標(biāo)準(zhǔn)。XML數(shù)據(jù)庫的實(shí)現(xiàn)有以下幾種方式:第一種類型是用現(xiàn)有的數(shù)據(jù)庫支持對XML數(shù)據(jù)的管理,稱為支持XML的數(shù)據(jù)庫。這種數(shù)據(jù)庫采用的數(shù)據(jù)模型可以是任何一種非XML數(shù)據(jù)模型,只要提供對XML數(shù)據(jù)的管理即可,因此,在支持XML的數(shù)據(jù)庫系統(tǒng)中,其核心是XML數(shù)據(jù)和底層數(shù)據(jù)模型的相互轉(zhuǎn)換。第二種類型是純XML數(shù)據(jù)庫。XML作為一種通用的半結(jié)構(gòu)化標(biāo)記語言,完全可以用來作為表示和描述數(shù)據(jù)的基本數(shù)據(jù)模型。純XML數(shù)據(jù)庫就是以XML作為描述數(shù)據(jù)的基本數(shù)據(jù)模型,它所存儲(chǔ)的數(shù)據(jù)就是XML文檔的集合。由于純XML數(shù)據(jù)庫管理系統(tǒng)是直接存儲(chǔ)XML數(shù)據(jù)本身,因此在數(shù)據(jù)庫引擎訪問XML數(shù)據(jù)時(shí),不像第一種支持XML的數(shù)據(jù)庫系統(tǒng)那樣,無需執(zhí)行任何數(shù)據(jù)轉(zhuǎn)換工作,因而效率更高,這是二者的主要區(qū)別。第三種類型是混合XML數(shù)據(jù)庫,其實(shí)質(zhì)就是純XML數(shù)據(jù)庫和支持XML的數(shù)據(jù)庫的混合類型。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.3數(shù)據(jù)庫管理系統(tǒng)和方法的新進(jìn)展4.圖數(shù)據(jù)庫系統(tǒng)。圖數(shù)據(jù)庫是基于圖模型并使用圖結(jié)構(gòu)進(jìn)行語義操作的數(shù)據(jù)庫,它使用頂點(diǎn)、邊和屬性來表示和存儲(chǔ)數(shù)據(jù),支持?jǐn)?shù)據(jù)的CRUD,即創(chuàng)建(Create)、讀?。≧etrieve)、更新(Update)和刪除(Delete)。5.文檔型數(shù)據(jù)庫。

文檔型數(shù)據(jù)庫是NoSQL中非常重要的一個(gè)分支,它主要用來存儲(chǔ)、索引并管理面向文檔的數(shù)據(jù)或者類似的半結(jié)構(gòu)化數(shù)據(jù)。文檔型數(shù)據(jù)庫使用面向文檔的數(shù)據(jù)組織方式,文檔就是文檔型數(shù)據(jù)庫的最小單位。6.鍵值(Key-value)數(shù)據(jù)庫系統(tǒng)。

鍵值數(shù)據(jù)庫是NoSQL領(lǐng)域中應(yīng)用范圍最廣的,也是涉及產(chǎn)品最多的一種模型。鍵值數(shù)據(jù)庫適用于頻繁讀寫的應(yīng)用場景,允許通過鍵來查找對應(yīng)的值。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.3數(shù)據(jù)庫管理系統(tǒng)和方法的新進(jìn)展7.列式存儲(chǔ)數(shù)據(jù)庫。列式存儲(chǔ)數(shù)據(jù)庫是就是以列相關(guān)存儲(chǔ)架構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫,主要適合于批量數(shù)據(jù)處理和即時(shí)查詢。列式存儲(chǔ)數(shù)據(jù)庫也是NoSQL數(shù)據(jù)庫中非常重要的一種模式,較有代表性的是Cassandra,它已經(jīng)由Facebook轉(zhuǎn)交給Apache進(jìn)行管理。8.NewSQL數(shù)據(jù)庫。NewSQL數(shù)據(jù)庫是一種新型關(guān)系數(shù)據(jù)庫,目的是為了整合RDBMS所提供的ACID事務(wù)特性,以及前述NoSQL所提供的橫向可擴(kuò)展性。NewSQL數(shù)據(jù)庫的典型代表有:基于H-Store(一種設(shè)計(jì)用于OLTP工作負(fù)載的內(nèi)存數(shù)據(jù)庫)的內(nèi)存關(guān)系數(shù)據(jù)庫VoltDB9.數(shù)據(jù)倉庫和數(shù)據(jù)挖掘。

與數(shù)據(jù)庫不同的是,數(shù)據(jù)倉庫是面向主題的、整合的、穩(wěn)定的,并且時(shí)變地收集數(shù)據(jù)以支持管理決策的一種數(shù)據(jù)存儲(chǔ)形式。它是在數(shù)據(jù)庫等數(shù)據(jù)源存在的情況下,為了進(jìn)一步挖掘數(shù)據(jù)資源、輔助決策而產(chǎn)生的數(shù)據(jù)存儲(chǔ)集合。

數(shù)據(jù)挖掘也稱為數(shù)據(jù)庫中的知識(shí)發(fā)現(xiàn),是指從大量數(shù)據(jù)中挖掘出隱含的、先前未知的、對決策有潛在作用的知識(shí)和規(guī)則的過程。10.數(shù)據(jù)湖。

數(shù)據(jù)湖(DataLake)是以自然或原始格式存儲(chǔ)的數(shù)據(jù)系統(tǒng)或存儲(chǔ)庫。數(shù)據(jù)湖通常是所有企業(yè)數(shù)據(jù)的單一存儲(chǔ),包括源系統(tǒng)數(shù)據(jù)的原始副本和用于報(bào)告、可視化、高級(jí)分析和機(jī)器學(xué)習(xí)等任務(wù)的轉(zhuǎn)換數(shù)據(jù)。8.2數(shù)據(jù)庫技術(shù)發(fā)展概況8.2.4我國數(shù)據(jù)庫技術(shù)發(fā)展概況國內(nèi)數(shù)據(jù)庫發(fā)展有以下幾種形式:(1)以傳統(tǒng)開源軟件為基礎(chǔ),依賴強(qiáng)大社區(qū)構(gòu)建數(shù)據(jù)庫。(2)基于商業(yè)數(shù)據(jù)庫源碼進(jìn)行開發(fā)數(shù)據(jù)庫。(3)瞄準(zhǔn)新技術(shù),采用開源和自主研發(fā)相結(jié)合的路線研發(fā)數(shù)據(jù)庫。(4)完全自主研發(fā)數(shù)據(jù)庫。8.3數(shù)據(jù)庫系統(tǒng)簡述8.3.1數(shù)據(jù)庫8.3.2數(shù)據(jù)庫管理系統(tǒng)8.3.3系統(tǒng)的開發(fā)、維護(hù)和使用人員8.3.4管理信息系統(tǒng)8.3數(shù)據(jù)庫系統(tǒng)簡述數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)是指用數(shù)據(jù)庫管理系統(tǒng)進(jìn)行數(shù)據(jù)管理和處理并支持多種應(yīng)用的信息系統(tǒng)。它包括:計(jì)算機(jī)硬件系統(tǒng)、系統(tǒng)軟件和應(yīng)用軟件、數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)以及系統(tǒng)的開發(fā)、維護(hù)和使用人員等,如圖8.12所示。8.3數(shù)據(jù)庫系統(tǒng)簡述8.3.1數(shù)據(jù)庫數(shù)據(jù)庫(Database)一般指一個(gè)長期儲(chǔ)存在計(jì)算機(jī)外存上、數(shù)據(jù)整體有結(jié)構(gòu)且可共享、面向一個(gè)組織或部門、支持多種應(yīng)用的數(shù)據(jù)集合。它具有以下特點(diǎn):數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存。如果是關(guān)系數(shù)據(jù)庫,那么它使用的數(shù)據(jù)模型就是關(guān)系模型。可以為各種用戶和應(yīng)用程序共享。也就是說,一個(gè)數(shù)據(jù)庫可以支持多個(gè)不同的應(yīng)用和用戶。數(shù)據(jù)冗余度小。數(shù)據(jù)具有整體的結(jié)構(gòu),相同的數(shù)據(jù)一般只在外存中保存一次。數(shù)據(jù)獨(dú)立性高。數(shù)據(jù)具有較高的邏輯獨(dú)立性和物理獨(dú)立性。易擴(kuò)展??梢噪S著應(yīng)用的需求而更新數(shù)據(jù)。具有一定的安全性和可靠性等機(jī)制。8.3數(shù)據(jù)庫系統(tǒng)簡述8.3.2數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)DBMS(DatabaseManagementSystem)是數(shù)據(jù)庫系統(tǒng)中的核心軟件,它是基于操作系統(tǒng)、能夠讓用戶創(chuàng)建、定義、維護(hù)數(shù)據(jù)庫以及控制對數(shù)據(jù)庫訪問的軟件系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)在整個(gè)計(jì)算機(jī)系統(tǒng)中的地位如圖8.13所示:數(shù)據(jù)庫管理系統(tǒng)接收應(yīng)用程序的數(shù)據(jù)請求和處理請求,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,將操作結(jié)果返回給應(yīng)用程序,其工作模式如圖8.14所示。8.3數(shù)據(jù)庫系統(tǒng)簡述8.3.2數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)的主要功能:數(shù)據(jù)定義:提供數(shù)據(jù)定義語言DDL(DataDefinitionLanguage),定義數(shù)據(jù)庫的模式、外模式和內(nèi)模式三級(jí)模式結(jié)構(gòu),以及外模式/模式映像和模式/內(nèi)模式映像兩層映像。DDL主要用于建立和修改數(shù)據(jù)庫的庫結(jié)構(gòu),描述了數(shù)據(jù)庫的框架,其信息被保存在數(shù)據(jù)字典DD(DataDictionary)中。數(shù)據(jù)操縱:提供數(shù)據(jù)操縱語言DML(DataManipulationLanguage),實(shí)現(xiàn)對數(shù)據(jù)庫的操作功能,如查詢、更新、修改和刪除等。數(shù)據(jù)控制:提供數(shù)據(jù)控制語言(DCL,DataControlLanguage),實(shí)現(xiàn)對數(shù)據(jù)庫的完整性、安全性等控制功能。數(shù)據(jù)組織、存儲(chǔ)和管理:分類組織、存儲(chǔ)和管理各種數(shù)據(jù),包括數(shù)據(jù)字典(元數(shù)據(jù))、用戶數(shù)據(jù)和數(shù)據(jù)的存取路徑等。事務(wù)管理:保證一組操作的原子性、一致性、隔離性和持久性。并發(fā)控制:保證多用戶對數(shù)據(jù)并發(fā)操作時(shí)的數(shù)據(jù)庫的正確性和一致性。恢復(fù)與備份:系統(tǒng)發(fā)生故障后保證數(shù)據(jù)庫的正確性和一致性。8.3數(shù)據(jù)庫系統(tǒng)簡述8.3.3系統(tǒng)的開發(fā)、維護(hù)和使用人員數(shù)據(jù)庫系統(tǒng)的開發(fā)、維護(hù)和使用人員主要包括數(shù)據(jù)庫分析和設(shè)計(jì)人員、應(yīng)用程序員、終端用戶和數(shù)據(jù)庫管理員DBA(DatabaseAdministrator)等。其中數(shù)據(jù)庫分析和設(shè)計(jì)人員負(fù)責(zé)應(yīng)用系統(tǒng)的主要開發(fā)和設(shè)計(jì)過程,這主要包括系統(tǒng)的需求分析和規(guī)格說明、數(shù)據(jù)庫系統(tǒng)的概要設(shè)計(jì)和模式設(shè)計(jì),以及確定數(shù)據(jù)庫中需要保存哪些數(shù)據(jù);應(yīng)用程序員負(fù)責(zé)編寫和使用數(shù)據(jù)庫的應(yīng)用程序以支持多種用戶的使用;終端用戶利用數(shù)據(jù)庫系統(tǒng)的接口、應(yīng)用程序或查詢語言等使用數(shù)據(jù)庫以完成日常的工作;數(shù)據(jù)庫管理員則負(fù)責(zé)數(shù)據(jù)庫系統(tǒng)的全面管理和控制,主要職責(zé)包括:邏輯設(shè)計(jì):決定數(shù)據(jù)庫中的數(shù)據(jù)的內(nèi)容和結(jié)構(gòu)。物理設(shè)計(jì):決定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)和存取策略。數(shù)據(jù)庫的控制:定義數(shù)據(jù)的安全性要求和完整性約束條件。數(shù)據(jù)庫的運(yùn)行和維護(hù):監(jiān)控?cái)?shù)據(jù)庫的使用和運(yùn)行,保證其正常高效工作,必要的時(shí)候?qū)?shù)據(jù)庫進(jìn)行重組或重構(gòu),以提高運(yùn)行效率或滿足新的應(yīng)用需要。8.3數(shù)據(jù)庫系統(tǒng)簡述8.3.4管理信息系統(tǒng)為了提高工作的效率和管理水平,管理信息系統(tǒng)大多采用數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù),使用數(shù)據(jù)庫管理系統(tǒng)進(jìn)行系統(tǒng)的設(shè)計(jì)和軟件的開發(fā)。盡管不同的管理信息系統(tǒng)所面向的業(yè)務(wù)和用戶各不相同,但所有的管理信息系統(tǒng)所針對的數(shù)據(jù)管理功能卻是高度相似的,一般都具有數(shù)據(jù)的輸入和存儲(chǔ)、數(shù)據(jù)修改、數(shù)據(jù)查詢、數(shù)據(jù)增加、數(shù)據(jù)刪除、數(shù)據(jù)匯總、數(shù)據(jù)的輸出和打印等功能。8.4數(shù)據(jù)模型8.4.1概念模型8.4.2邏輯模型8.4.3物理模型8.4數(shù)據(jù)模型數(shù)據(jù)模型(DataModel)就是用于描述數(shù)據(jù)庫結(jié)構(gòu)的概念集合,是數(shù)據(jù)庫管理的形式框架,是數(shù)據(jù)庫系統(tǒng)中用以提供信息表示和操作手段的形式框架。根據(jù)數(shù)據(jù)模型的抽象程度劃分,數(shù)據(jù)模型可以分為三種(抽象程度由高到低):概念模型、邏輯模型和物理模型。8.4.1概念模型

概念模型是按照終端用戶的觀點(diǎn)或認(rèn)識(shí)對現(xiàn)實(shí)世界進(jìn)行建模,主要用于數(shù)據(jù)庫的規(guī)劃和設(shè)計(jì)階段,它強(qiáng)調(diào)的數(shù)據(jù)的語義表達(dá),是信息世界中的模型,是對現(xiàn)實(shí)世界事物及其聯(lián)系的第一級(jí)抽象。概念模型是數(shù)據(jù)庫設(shè)計(jì)人員通過與用戶的溝通和交流,在明確了數(shù)據(jù)庫系統(tǒng)用戶的具體需求以后,確定下來的一個(gè)高層數(shù)據(jù)抽象。

常用的概念模型建模方法有實(shí)體-聯(lián)系(E-R)方法和統(tǒng)一建模語言UML(UnifiedModelingLanguage)。8.4數(shù)據(jù)模型8.4.2邏輯模型

邏輯模型是面向數(shù)據(jù)庫全局邏輯結(jié)構(gòu)的描述,屬于計(jì)算機(jī)世界中的模型,是按照計(jì)算機(jī)的觀點(diǎn)對數(shù)據(jù)建模,是對現(xiàn)實(shí)世界事物及其聯(lián)系的第二級(jí)抽象。它包括三個(gè)部分:數(shù)據(jù)的結(jié)構(gòu)部分、數(shù)據(jù)的操作部分和數(shù)據(jù)上的約束條件。

邏輯模型的設(shè)計(jì)是基于概念模型的,一般由數(shù)據(jù)庫設(shè)計(jì)人員通過手工方式或使用專門的設(shè)計(jì)工具把最初的概念模型轉(zhuǎn)換成相應(yīng)的邏輯模型而得到。

邏輯模型的設(shè)計(jì)與具體使用何種類型的數(shù)據(jù)庫管理系統(tǒng)直接相關(guān)。當(dāng)前,數(shù)據(jù)庫管理系統(tǒng)的常用邏輯模型主要有:層次模型(hierarchicalmodel)、網(wǎng)狀模型(networkmodel)、關(guān)系模型(relationalmodel)以及面向?qū)ο竽P停╫bjectorientedmodel)等。8.4數(shù)據(jù)模型8.4.3物理模型

物理模型用來描述數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)和存取方法,是數(shù)據(jù)庫設(shè)計(jì)人員通過數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)的。物理模型主要針對的是數(shù)據(jù)庫的設(shè)計(jì)人員和數(shù)據(jù)庫管理員,而終端用戶則不必考慮物理層的實(shí)現(xiàn)細(xì)節(jié)。物理模型是最低層次的數(shù)據(jù)抽象,是面向具體的計(jì)算機(jī)系統(tǒng)的。

物理數(shù)據(jù)模型描述了如何將數(shù)據(jù)存儲(chǔ)為計(jì)算機(jī)上的文件,它將信息表示為記錄格式,記錄順序和存取路徑等信息。8.5關(guān)系模型和關(guān)系代數(shù)8.5.1基本術(shù)語8.5.2關(guān)系的性質(zhì)8.5.3關(guān)系完整性約束8.5.4關(guān)系代數(shù)8.5關(guān)系模型和關(guān)系代數(shù)8.5.1基本術(shù)語關(guān)系(表)一個(gè)關(guān)系可以理解成一張規(guī)范化了的二維表,通常將一個(gè)沒有重復(fù)行和重復(fù)列的二維表看成一個(gè)關(guān)系,每個(gè)關(guān)系都有一個(gè)關(guān)系名(表名)。且在同一關(guān)系數(shù)據(jù)庫中,表名不可以重復(fù)。2.關(guān)系模式(表頭)在關(guān)系數(shù)據(jù)庫中,關(guān)系模式用表頭中的字段進(jìn)行定義,每一個(gè)字段表示一個(gè)實(shí)體的屬性,字段的類型、取值范圍等描述了相應(yīng)屬性的定義域。3.元組(記錄)關(guān)系(表)中的每一行就是一條記錄,表示實(shí)體集中的一個(gè)對象。同一個(gè)表中的不同對象彼此不同。4.屬性(字段)關(guān)系(表)中垂直方向的列,稱為屬性或字段,每一個(gè)表中的屬性名不可以重復(fù)。5.域?qū)傩缘娜≈捣秶Q為域,表示一個(gè)實(shí)體所有對象在這一屬性上可能取值的集合。8.5關(guān)系模型和關(guān)系代數(shù)8.5.1基本術(shù)語6.碼(鍵)碼是屬性或?qū)傩缘慕M合,其值能夠唯一標(biāo)識(shí)表中的一個(gè)元組(記錄)。如果一個(gè)碼中再無多余的屬性,即去掉任何一個(gè)屬性后不再滿足碼的條件,則稱這樣的碼為候選碼。在設(shè)計(jì)和實(shí)現(xiàn)數(shù)據(jù)庫的時(shí)候,必須選定且僅能選定其中的一個(gè)候選碼作為主碼,即一個(gè)關(guān)系的主碼只能有一個(gè)。所有候選碼包含的屬性稱為主屬性,而其它屬性則稱為非主屬性。7.外碼(外鍵)如果表中字段(或字段組合)的取值必須是另一個(gè)表(或本表自身)自己的主碼(或候選碼或取值唯一的字段或字段組合)的值,則稱為外碼。【例8-1】考慮下面的關(guān)系數(shù)據(jù)庫模式,它包括三個(gè)關(guān)系模式:Student(SID,SName,Sex,Age)Course(CID,CName,

Credit,PCID)Score(SID,CID,Grade)8.5關(guān)系模型和關(guān)系代數(shù)8.5.2關(guān)系的性質(zhì)關(guān)系是一種規(guī)范化了的二維表格,因此,關(guān)系和二維表格是既有聯(lián)系也有區(qū)別的兩個(gè)概念。關(guān)系的性質(zhì)如下:1.關(guān)系中不允許出現(xiàn)相同的元組(記錄)。2.關(guān)系中元組的順序(即行序)可任意。3.關(guān)系中各個(gè)屬性必須具有不同的名字,不同的屬性可來自同一個(gè)域,即它們的分量可以取自同一個(gè)域,當(dāng)然不同的屬性也可來自不同的域。4.同一屬性名下的各個(gè)屬性值必須是來自同一個(gè)域的同一類型的數(shù)據(jù)。5.關(guān)系中屬性的順序可任意交換。6.關(guān)系中每一個(gè)屬性必須是不可分的數(shù)據(jù)項(xiàng),稱為屬性值的原子性,即屬性的取值不能是值的集合,直觀地說,表中不能嵌套表。滿足這一條件的關(guān)系模式稱為規(guī)范化的關(guān)系,否則稱為非規(guī)范化的關(guān)系。8.5關(guān)系模型和關(guān)系代數(shù)8.5.3關(guān)系完整性約束為了維護(hù)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)的正確性、一致性和完整性,對關(guān)系進(jìn)行數(shù)據(jù)操作時(shí),要求必須符合一定的約束條件,稱為關(guān)系的完整性約束。在關(guān)系模型中,關(guān)系的完整性主要包括實(shí)體完整性、參照完整性和用戶自定義完整性。實(shí)體完整性實(shí)體完整性要求組成關(guān)系(表)的主碼的任意屬性均不能取空值(NULL)。2.參照完整性參照完整性要求參照關(guān)系中的每個(gè)外碼要么為空(NULL),要么等于被參照關(guān)系中某個(gè)元組的主碼。但對于外碼是否為可以為空值,要根據(jù)具體情況具體分析。3.用戶定義的完整性指對關(guān)系中每個(gè)屬性的取值的限制(或稱為約束)的具體定義。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)關(guān)系代數(shù)運(yùn)算主要有以下兩類:傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算。1.傳統(tǒng)的集合運(yùn)算傳統(tǒng)的集合運(yùn)算包括并、交、差及笛卡兒積,這些運(yùn)算均屬于二目運(yùn)算,即參與運(yùn)算的是兩個(gè)關(guān)系模式。要使并、差、交運(yùn)算有意義,必須滿足兩個(gè)條件:一是具有相同個(gè)數(shù)的屬性數(shù)目,即參與運(yùn)算的兩個(gè)關(guān)系具有相同的屬性數(shù)目;二是相容性,即這兩個(gè)關(guān)系對應(yīng)的屬性均取自同一個(gè)域。以下如不經(jīng)特別說明,均認(rèn)為參加運(yùn)算的關(guān)系滿足這兩個(gè)條件。(1)并(Union)設(shè)關(guān)系R和關(guān)系S具有相同的目K,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,并運(yùn)算的結(jié)果仍是K目關(guān)系。其形式化定義如下:R∪S={t|t∈R∨t∈S}其中,t為元組變量。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)(2)交(Intersection)設(shè)關(guān)系R和關(guān)系S具有相同的目K,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與S的交是由既屬于R又屬于S的元組構(gòu)成的集合,交運(yùn)算的結(jié)果仍是K目關(guān)系。其形式化定義如下:R∩S={t|t∈R∧t∈S}(3)差(Difference)設(shè)關(guān)系R和關(guān)系S具有相同的目K,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與S的差是由屬于R但不屬于S的元組構(gòu)成的集合,差運(yùn)算的結(jié)果仍是K目關(guān)系。其形式化定義如下:R-S={t|t∈R∧t

S}8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)【例8-2】假設(shè)有表8-5和8-6所示的兩個(gè)關(guān)系Student1和Student2,這兩個(gè)關(guān)系并、交、差運(yùn)算的結(jié)果分別如表8-7、8-8和8-9所示。重要提示:(1)進(jìn)行并、交、差運(yùn)算的兩個(gè)關(guān)系必須具有相同的結(jié)構(gòu)。對于數(shù)據(jù)庫中的表來說,是指兩個(gè)表的結(jié)構(gòu)要相同。(2)交運(yùn)算還可以使用差運(yùn)算來表示,即R∩S=R-(R-S)或者R∩S=S-(S-R)。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)(4)廣義笛卡兒積(ExtendedCartesianProduct)設(shè)關(guān)系R目是K1,元組數(shù)為m;關(guān)系S的目是K2,元組數(shù)為n;則R和S的廣義笛卡兒積是一個(gè)(K1+K2)列的(m+n)個(gè)元組的集合,記作R×S。廣義笛卡兒積是一個(gè)有序?qū)Φ募?。有序?qū)Φ牡谝粋€(gè)元素是關(guān)系R中的任何一個(gè)元組,有序?qū)Φ牡诙€(gè)元素是關(guān)系S中的任何一個(gè)元組。如果R和S中有相同的屬性名,可在屬性名前加上所屬的關(guān)系名作為限定以區(qū)分屬性是來自哪個(gè)關(guān)系。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)【例8-3】假設(shè)關(guān)系Course如表8-10所示,對關(guān)系Student1和Course做廣義笛卡兒積,運(yùn)算結(jié)果如表8-11所示。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)2.專門的關(guān)系運(yùn)算專門的關(guān)系運(yùn)算既可以從關(guān)系的水平方向進(jìn)行運(yùn)算,也可以從關(guān)系的垂直方向進(jìn)行運(yùn)算,主要包括選擇、投影和連接運(yùn)算。(1)選擇(Selection)選擇運(yùn)算是從關(guān)系的水平方向進(jìn)行運(yùn)算,是從關(guān)系R中選取符合給定條件的所有元組,生成新的關(guān)系。記作:σP(r)={t∣t

r∧P(t)}其中,條件表達(dá)式P的基本形式為XθY,θ表示運(yùn)算符,包括比較運(yùn)算符(<,<=,>,>=,=,≠)和邏輯運(yùn)算符(∧,∨,┐)等。X和Y可以是屬性、常量或簡單函數(shù)。屬性名可以用它的序號(hào)或者它在關(guān)系中列的位置來代替。若條件表達(dá)式中存在常量,則必須用英文引號(hào)將常量括起來。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)【例8-4】對表8-11中的Student1×Course做如下選擇運(yùn)算,σSID=’

s1’(Student1×Course),運(yùn)算結(jié)果如表8-11所示。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)(2)投影(Projection)投影運(yùn)算是從關(guān)系的垂直方向進(jìn)行運(yùn)算,在關(guān)系R中按要求選取指定的若干屬性列(用A表示指定的屬性列的集合),組成新的關(guān)系,記作:∏A(r)={t[A]∣t

r}投影操作是從列的角度對關(guān)系進(jìn)行垂直分割,取消某些列并重新安排列的順序。在取消某些列后,元組或許有重復(fù)。該操作會(huì)自動(dòng)取消重復(fù)的元組,僅保留一個(gè)。因此,投影操作的結(jié)果使得關(guān)系的屬性數(shù)目減少,元組數(shù)目可能也會(huì)減少。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)

【例8-5】對學(xué)生關(guān)系Student1,若要查詢學(xué)生的學(xué)號(hào)和姓名,則可以通過對學(xué)生關(guān)系做投影操作實(shí)現(xiàn)。相應(yīng)的投影操作如下,∏SID,Name(Student1)投影的結(jié)果仍是一個(gè)關(guān)系,有兩個(gè)屬性、3個(gè)元組,如表8-13所示。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)(3)連接(Join)連接運(yùn)算也稱θ連接。關(guān)系R和關(guān)系S的連接運(yùn)算表示為:R?θS={tR·tS∣tr

R∧ts

S∧(R.AopS.B)}其中,?是連接運(yùn)算符,A、B分別為關(guān)系R和S中的度數(shù)相等且可比的連接屬性集,op為比較運(yùn)算符。連接運(yùn)算是從廣義笛卡兒積R×S中選取R在A屬性(組)上的值與S在B屬性(組)上的值滿足θ的元組。因此,連接運(yùn)算也可以表示為:R?θS=σP(R×S)。在連接運(yùn)算中有兩種重要的連接:等值連接和自然連接。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)自然連接(NaturalJoin):自然連接是一種特殊的等值連接。關(guān)系R和關(guān)系S的自然連接,首先要進(jìn)行廣義笛卡兒積R×S,然后進(jìn)行R和S中所有相同屬性的等值比較的選擇運(yùn)算,最后通過投影運(yùn)算去掉重復(fù)的屬性。自然連接與等值連接的主要區(qū)別是:對于兩個(gè)關(guān)系中的相同屬性(公共屬性),在自然連接的結(jié)果中只出現(xiàn)一次。重要提示:(1)自然連接要求將兩個(gè)關(guān)系中所有相同的屬性都要一一比較,并通過“與”運(yùn)算符進(jìn)行連接。(2)當(dāng)關(guān)系R和S沒有公共屬性時(shí),R和S的自然連接就是R和S的廣義笛卡兒積R×S。等值連接(EqualJoin):當(dāng)θ為“=”時(shí)的連接操作就稱為等值連接。也就是說,等值連接運(yùn)算是從R×S中選取A屬性組與B屬性組的值相等的那些元組(如圖8.21所示)。8.5關(guān)系模型和關(guān)系代數(shù)8.5.4關(guān)系代數(shù)【例8-6】分別對關(guān)系Student1和關(guān)系Student2進(jìn)行連接、等值連接和自然連接后,運(yùn)算結(jié)果分別如表8-14、表8-15和表8-16所示。8.6關(guān)系模式的規(guī)范化8.6.1函數(shù)依賴8.6.2范式8.6關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化理論是基于函數(shù)依賴、多值依賴和連接依賴等概念,對關(guān)系模式進(jìn)行規(guī)范化(通過模式分解),使設(shè)計(jì)的關(guān)系模式冗余盡可能少,最大程度地保證不發(fā)生各種操作異常。而且,還要分解后的模式具有無損連接和保持依賴的特性。8.6關(guān)系模式的規(guī)范化8.6.1函數(shù)依賴定義8.1(函數(shù)依賴)

在關(guān)系模式r(R)中,

R,

R。對任意關(guān)系r及其中任意兩個(gè)元組ti和tj(i

j),若存在ti[

]=tj[

],即元組ti和tj在屬性(集)

上取值相等,則一定存在ti[

]=tj[

]成立,即元組ti和tj在屬性(集)

上取值也相等,則稱

函數(shù)確定

(或

函數(shù)依賴于

),記作

?!纠?-8】考慮下面的關(guān)系模式:S_D_G(SID,SName,DID,DName,CID,CName,Grade),其中SID表示學(xué)號(hào),SName表示學(xué)生姓名,DID表示系的編號(hào),DName表示系名,CID表示課程號(hào),CName表示課程名,Grade表示成績,(SID,CID)是唯一的候選碼,也是主碼。關(guān)系模式S_D_G上有以下函數(shù)依賴:SID

SNameSID

DIDDID

DNameCID

CName{SID,CID}

Grade當(dāng)然,由于(SID,CID)是主碼,因而也成立以下函數(shù)依賴:{SID,CID}

{SName,DID,DName,CName,Grade}8.6關(guān)系模式的規(guī)范化8.6.1函數(shù)依賴定義8.2(平凡函數(shù)依賴與非平凡函數(shù)依賴)

在關(guān)系模式r(R)中,

R,

R。若

,即

的子集(注:不要求一定是真子集,只要是子集就可以),則稱

是平凡函數(shù)依賴(TrivialFD),否則稱

是非平凡函數(shù)依賴(NonTrivialFD)。很顯然,對于任一關(guān)系模式,所有的平凡函數(shù)依賴都是必然成立的,所以它不反映新的語義信息,如圖8.22所示。因此,關(guān)系模式規(guī)范化時(shí)僅考慮非平凡函數(shù)依賴。8.6關(guān)系模式的規(guī)范化8.6.1函數(shù)依賴定義8.3(部分函數(shù)依賴與完全函數(shù)依賴)在關(guān)系模式r(R)中,

R,

R。對某一函數(shù)依賴

,如果存在

(注:

必須是

的真子集),使得函數(shù)依賴

也成立,則稱函數(shù)依賴

是部分函數(shù)依賴(PartialFD),否則稱函數(shù)依賴

是完全函數(shù)依賴(FullFD)。

部分函數(shù)依賴示意圖如圖8.23所示。顯然,當(dāng)

是單屬性時(shí),如果函數(shù)依賴

成立,則它一定是完全函數(shù)依賴,因?yàn)?/p>

的真子集

只有空集,不可能使得

成立。圖8.23部分函數(shù)依賴【例8-9】在關(guān)系S_D_G(SID,SName,DID,DName,CID,CName,Grade)中,而以下均為完全函數(shù)依賴:SID

SName,因?yàn)楹瘮?shù)依賴左邊是單屬性。SID

SDID,因?yàn)楹瘮?shù)依賴左邊是單屬性。SID

DName,因?yàn)楹瘮?shù)依賴左邊是單屬性。DID

DName,因?yàn)楹瘮?shù)依賴左邊是單屬性。CID

CName,因?yàn)楹瘮?shù)依賴左邊是單屬性。{SID,CID}

Grade,因?yàn)楹瘮?shù)依賴SID

Grade和CID

Grade均不成立。以下均為部分函數(shù)依賴:{SID,CID}

SName,因?yàn)槌闪ID

SName。{SID,CID}

DID,因?yàn)槌闪ID

DID。{SID,CID}

DName,因?yàn)槌闪ID

DName。{SID,CID}

CName,因?yàn)槌闪ID

CName。8.6關(guān)系模式的規(guī)范化8.6.1函數(shù)依賴定義8.4(傳遞函數(shù)依賴與非傳遞函數(shù)依賴)在關(guān)系模式r(R)中,

R,

R,

R,如果函數(shù)依賴

成立,那么函數(shù)依賴

一定成立。如果還滿足以下條件:(1)函數(shù)依賴

不成立;(2)

不成立,則稱函數(shù)依賴

為傳遞函數(shù)依賴(TransitiveFD)(如圖8.24所示),否則稱非傳遞函數(shù)依賴。

8.6關(guān)系模式的規(guī)范化8.6.2范式基于函數(shù)依賴?yán)碚?,關(guān)系模式按照規(guī)范化程度,依次可以分解成:第一范式1NF(1stNormalForm)、第二范式2NF(2ndNormalForm)、第三范式3NF(3rdNormalForm)和BC范式BCNF(Boyce-CoddNormalForm)。并且這幾種范式滿足關(guān)系BCNF

3NF

2NF

1NF(如圖8.25所示)。即1NF是最低的要求,而BCNF是基于函數(shù)依賴可以達(dá)到的最高范式。滿足BCNF范式的關(guān)系一定滿足3NF、2NF和1NF,滿足3NF范式的關(guān)系一定滿足2NF和1NF,滿足2NF范式的關(guān)系一定滿足1NF。8.6關(guān)系模式的規(guī)范化8.6.2范式定義8.5(1NF)如果關(guān)系模式r(R)的每個(gè)屬性對應(yīng)的域值都是不可分的,即取值為單值(稱為屬性的原子性),則稱r(R)屬于第一范式,記為r(R)

1NF?!纠?-11】關(guān)系S_D_G(SID,SName,DID,DName,CID,CName,Grade)中的每一個(gè)屬性都是不可再分的原子值,因而屬性1NF。定義8.6(2NF)

如果關(guān)系模式r(R)

1NF,且所有非主屬性都完全函數(shù)依賴于r(R)的候選碼,則稱r(R)屬于第二范式,記為r(R)

2NF?!纠?-13】關(guān)系S_D_G(SID,SName,DID,DName,CID,CName,Grade)中,存在以下部分函數(shù)依賴{SID,CID}

SName{SID,CID}

DID{SID,CID}

DName{SID,CID}

CName導(dǎo)致非主屬性SName,DID,DName和CName都部分函數(shù)依賴于主碼(SID,CID)。因而不是2NF,即S_D_G

2NF。對于非2NF范式的關(guān)系模式,可通過分解進(jìn)行規(guī)范化,以消除部分依賴及其引起的操作異常?!纠?-14】如將關(guān)系模式S_D_G(SID,SName,DID,DName,CID,CName,Grade)分解為以下三個(gè)關(guān)系模式:S_D(SID,SName,DID,DName)C(CID,CName)G(SID,CID,Grade)分解后的所有關(guān)系模式中,所有非主屬性對候選碼都是完全函數(shù)依賴,因此都屬于2NF范式。8.6關(guān)系模式的規(guī)范化8.6.2范式定義8.7(3NF)

如果一個(gè)關(guān)系模式r(R)

2NF,且所有非主屬性都直接函數(shù)依賴于r(R)的候選碼,則稱r(R)屬于第三范式,記為r(R)

3NF。在3NF中,不存在非主屬性對候選碼的傳遞依賴,即非主屬性不能依賴于另一個(gè)非主屬性,而只能直接依賴于候選碼本身。【例8-15】考慮例8-14分解后得到的關(guān)系模式:C(CID,CName)G(SID,CID,Grade)它們都是3NF,因?yàn)閷τ陉P(guān)系模式C(CID,CName)來說,唯一的非主屬性直接依賴于主碼CID,同理,對于關(guān)系模式G(SID,CID,Grade)來說,唯一的非主屬性Grade直接依賴于主碼(SIS,CID)。定義8.8(BCNF)

給定滿足第1NF的關(guān)系模式r(R),如果所有的成立的非平凡函數(shù)依賴

中的

是超碼,那么稱r(R)屬于Boyce-Codd范式,記為r(R)

BCNF。需要注意的是,為確定r(R)是否屬于BCNF范式,必須考慮所有成立的函數(shù)依賴。從函數(shù)依賴的角度來看,滿足BCNF的關(guān)系模式必然滿足下列條件:(1)所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼;(2)所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼;(3)沒有任何屬性完全函數(shù)依賴于非候選碼的任何一組屬性。因此,BCNF范式排除了:任何屬性(包括主屬性和非主屬性)對候選碼的部分依賴和傳遞依賴以及主屬性之間的傳遞依賴。8.7數(shù)據(jù)庫設(shè)計(jì)8.7.1數(shù)據(jù)庫設(shè)計(jì)的步驟8.7.2需求分析8.7.3概念設(shè)計(jì)8.7.4邏輯結(jié)構(gòu)設(shè)計(jì)8.7.5物理結(jié)構(gòu)設(shè)計(jì)8.7數(shù)據(jù)庫設(shè)計(jì)8.7.1數(shù)據(jù)庫設(shè)計(jì)的步驟數(shù)據(jù)庫設(shè)計(jì)就是根據(jù)用戶和應(yīng)用的要求,將企業(yè)或組織中的數(shù)據(jù)進(jìn)行合理組織,構(gòu)造出好的數(shù)據(jù)庫邏輯模式,選定合適的并符合預(yù)算的數(shù)據(jù)庫管理系統(tǒng)(DBMS),并根據(jù)給定的硬件、操作系統(tǒng)的特性等構(gòu)造好的物理模式,來建立能夠有效地存儲(chǔ)和管理數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)的過程。數(shù)據(jù)庫設(shè)計(jì)的目標(biāo),應(yīng)該是能正確反映應(yīng)用的實(shí)際情況和用戶的需求,即功能需求和性能需求等。

數(shù)據(jù)庫設(shè)計(jì)通常包括以下幾個(gè)階段:需求分析、概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫的實(shí)施以及使用與維護(hù)等,如圖8.26所示。8.7數(shù)據(jù)庫設(shè)計(jì)8.7.2需求分析需求分析是整個(gè)數(shù)據(jù)庫設(shè)計(jì)過程的基礎(chǔ)。需求分析就是從數(shù)據(jù)庫的所有用戶那里收集對數(shù)據(jù)的需求和對數(shù)據(jù)處理的要求,并把這些需求寫成用戶和設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論