第6章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第1頁
第6章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第2頁
第6章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第3頁
第6章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第4頁
第6章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第5頁
已閱讀5頁,還剩83頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)第第6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)6.1 數(shù)據(jù)庫基本概念數(shù)據(jù)庫基本概念 6.2 數(shù)據(jù)模型數(shù)據(jù)模型 6.3 數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu) 習(xí)題習(xí)題 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)6.1 數(shù)據(jù)庫基本概念數(shù)據(jù)庫基本概念 6.1.1 信息、數(shù)據(jù)和數(shù)據(jù)處理 人類的社會活動和生產(chǎn)活動,離不開對信息的收集、保存、利用和處理,特別是當(dāng)今生產(chǎn)力突飛猛進(jìn),新技術(shù)層出不窮,信息量迅速劇增,人類社會進(jìn)入了信息化的階段。那么什么是信息呢?信息是人們用來對客觀世界直接進(jìn)行描述、可在人們之間進(jìn)行傳遞的一些知識。信息需要被加工和處理、需要被交流和使用

2、。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,計(jì)算機(jī)具有的高速處理能力和存儲容量巨大的特點(diǎn),使得人們有可能對大量的信息進(jìn)行保存和加工處理。為了記載信息,人們使用各種各樣的物理符號和它們的組合來表示信息,這些符號及其組合就是數(shù)據(jù)。數(shù)據(jù)是信息的具體表示形式,信息是數(shù)據(jù)的有意義的表現(xiàn)。由此可見,信息和數(shù)據(jù)有一定的區(qū)別,信息是觀念性的,數(shù)據(jù)是物理性的。在有些場合信息和數(shù)據(jù)難以區(qū)分,信息本身就是數(shù)據(jù)化了的,數(shù)據(jù)本身是一種信息。因此在很多場合不對它們進(jìn)行區(qū)分,信息處理與數(shù)據(jù)處理往往指同一個概念,計(jì)算機(jī)之間交換數(shù)據(jù)也可以說成是交換信息等等。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技

3、術(shù)基礎(chǔ) 有了數(shù)據(jù)就產(chǎn)生了數(shù)據(jù)處理的問題,人們收集到的各種數(shù)據(jù)需要經(jīng)過加工處理。所謂數(shù)據(jù)處理包括對數(shù)據(jù)的收集、記載、分類、排序、存儲和計(jì)算等工作。其目的是使有效的信息資源得到合理和充分地利用,從而促進(jìn)社會生產(chǎn)力的發(fā)展。 數(shù)據(jù)處理經(jīng)過了手工處理、機(jī)械處理、電子數(shù)據(jù)處理三個階段。今天,用計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理方法的研究已成為計(jì)算機(jī)技術(shù)中的主要課題之一,數(shù)據(jù)庫技術(shù)已成為社會信息化時代不可缺少的方法和工具。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 6.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展 隨著計(jì)算機(jī)數(shù)據(jù)處理技術(shù)的發(fā)展,數(shù)據(jù)管理技術(shù)先后經(jīng)歷了三個發(fā)展階段,即人工管理階段、文件系統(tǒng)管理階段和數(shù)據(jù)庫系統(tǒng)管理階段。 1人

4、工管理階段 在20世紀(jì)50年代中期以前,計(jì)算機(jī)主要用于科學(xué)計(jì)算。當(dāng)時的硬件狀況是:外存只有紙帶、卡片、磁帶,沒有磁盤等直接存取的存儲設(shè)備;軟件狀況是:沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式是批處理。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)圖6-1 程序與數(shù)據(jù)的存放應(yīng)用程序1數(shù)據(jù)集合1應(yīng)用程序2數(shù)據(jù)集合2應(yīng)用程序n數(shù)據(jù)集合n數(shù)據(jù)程序第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 對數(shù)據(jù)的管理是由程序員個人考慮和安排的,一個程序?qū)?yīng)于一組數(shù)據(jù),進(jìn)行程序設(shè)計(jì)時,往往也要對數(shù)據(jù)的結(jié)構(gòu)、存儲方式、輸入輸出方式等進(jìn)行設(shè)計(jì)。嚴(yán)格地說,這種管理只是一種技巧,這是數(shù)據(jù)自由管理的方式,因此,這一階段又

5、稱為自由管理階段。其特點(diǎn)是:數(shù)據(jù)不能長期保存,數(shù)據(jù)與程序不獨(dú)立,一組數(shù)據(jù)對應(yīng)于一個程序,沒有軟件系統(tǒng)對數(shù)據(jù)進(jìn)行管理,基本上沒有文件的概念。程序與數(shù)據(jù)的存放形式如圖6-1所示。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 2文件系統(tǒng)管理階段 20世紀(jì)50年代后期到60年代中期,計(jì)算機(jī)軟硬件都得到了發(fā)展,計(jì)算機(jī)不僅用于科學(xué)計(jì)算,還大量用于管理。這時硬件方面已有了磁盤、磁鼓等直接存取的存儲設(shè)備;軟件方面,操作系統(tǒng)中已經(jīng)有了專門的數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng);數(shù)據(jù)處理方式上不僅有了批處理,而且能夠聯(lián)機(jī)實(shí)時處理。該階段的數(shù)據(jù)管理具有如下特點(diǎn):第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (1) 數(shù)據(jù)可

6、以長期保存。 (2) 由文件系統(tǒng)管理數(shù)據(jù)。文件系統(tǒng)把數(shù)據(jù)組織成相互獨(dú)立的數(shù)據(jù)文件,利用“按文件名進(jìn)行訪問,按記錄進(jìn)行存取”的管理技術(shù),可以對文件進(jìn)行修改、插入和刪除的操作。程序和數(shù)據(jù)之間由文件系統(tǒng)提供存取方法進(jìn)行轉(zhuǎn)換,使應(yīng)用程序與數(shù)據(jù)之間有了一定的獨(dú)立性,程序員可以不必過多地考慮物理細(xì)節(jié),將精力集中于算法。 但是,文件系統(tǒng)仍存在以下缺點(diǎn)。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (1) 數(shù)據(jù)共享性差,冗余度大。在文件系統(tǒng)中,一個數(shù)據(jù)文件基本上對應(yīng)于一個應(yīng)用程序,即數(shù)據(jù)仍然是面向應(yīng)用的。當(dāng)不同的應(yīng)用程序具有部分相同的數(shù)據(jù)時,也必須建立各自的文件,而不能共享相同的數(shù)據(jù),因此數(shù)據(jù)的冗余度大,浪費(fèi)

7、存儲空間。同時,由于相同數(shù)據(jù)的重復(fù)存儲、各自管理,容易造成數(shù)據(jù)的不一致性,給數(shù)據(jù)的修改和維護(hù)帶來困難。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)圖6-2 文件系統(tǒng)管理示意圖 應(yīng)用程序1文件1應(yīng)用程序2文件2應(yīng)用程序n文件n文件管理系統(tǒng)第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (2) 數(shù)據(jù)獨(dú)立性差。文件系統(tǒng)中的文件是為某一特定應(yīng)用服務(wù)的,文件的邏輯結(jié)構(gòu)對該應(yīng)用程序來說是優(yōu)化的。因此,要想對現(xiàn)有的數(shù)據(jù)再增加一些新的應(yīng)用會很困難,系統(tǒng)不容易擴(kuò)充。一旦數(shù)據(jù)的邏輯結(jié)構(gòu)改變,必須修改應(yīng)用程序;應(yīng)用程序的改變,也將引起文件的數(shù)據(jù)結(jié)構(gòu)的改變。因此數(shù)據(jù)與程序之間仍缺乏獨(dú)立性??梢?,文件系統(tǒng)仍然是一個不具有

8、彈性的無結(jié)構(gòu)的數(shù)據(jù)集合,即文件之間是孤立的,不能反映現(xiàn)實(shí)世界事物之間的內(nèi)在聯(lián)系。在文件系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系如圖6-2所示。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 3數(shù)據(jù)庫系統(tǒng)管理階段 20世紀(jì)60年代后期以來,計(jì)算機(jī)軟硬件技術(shù)得到了飛速發(fā)展,同時,計(jì)算機(jī)用于管理的規(guī)模越來越大,應(yīng)用越來越廣泛,數(shù)據(jù)量急劇增加,多種應(yīng)用、多種語言互相覆蓋地共享數(shù)據(jù)集合的要求越來越強(qiáng)烈。為了解決多用戶、多應(yīng)用共享數(shù)據(jù),使數(shù)據(jù)為盡可能多的應(yīng)用服務(wù),顯然,文件系統(tǒng)已不能滿足應(yīng)用需求,于是數(shù)據(jù)庫技術(shù)便應(yīng)運(yùn)而生。出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS,DataBase Management

9、 System)。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)圖6-3 數(shù)據(jù)庫系統(tǒng)管理示意圖應(yīng)用程序1應(yīng)用程序2應(yīng)用程序nDBMS數(shù)據(jù)庫第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 數(shù)據(jù)庫系統(tǒng)管理數(shù)據(jù)比文件系統(tǒng)具有明顯的優(yōu)點(diǎn),從文件系統(tǒng)到數(shù)據(jù)庫系統(tǒng),標(biāo)志著數(shù)據(jù)管理技術(shù)的飛躍。在數(shù)據(jù)庫系統(tǒng)中,應(yīng)用程序與數(shù)據(jù)之間的關(guān)系可用圖6-3來表示。 與文件系統(tǒng)管理階段相比,數(shù)據(jù)庫系統(tǒng)管理階段具有以下的一些特點(diǎn):第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 1) 數(shù)據(jù)結(jié)構(gòu)化 數(shù)據(jù)結(jié)構(gòu)化是數(shù)據(jù)庫主要特征之一,是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的根本區(qū)別。 在文件系統(tǒng)中,相互獨(dú)立的文件的記錄內(nèi)部是有結(jié)構(gòu)的,傳統(tǒng)文件的最簡單形

10、式是等長同格式的記錄集合,但記錄之間是沒有聯(lián)系的,并且文件是面向某一應(yīng)用的。而實(shí)際系統(tǒng)往往涉及許多應(yīng)用,在數(shù)據(jù)庫系統(tǒng)中不僅要考慮某個應(yīng)用的數(shù)據(jù)結(jié)構(gòu),還要考慮整個組織的數(shù)據(jù)結(jié)構(gòu)。這就要求在描述數(shù)據(jù)時不僅要描述數(shù)據(jù)本身,還要描述數(shù)據(jù)之間的聯(lián)系。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)不再針對某一應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且存取數(shù)據(jù)的方式也很靈活,可以存取數(shù)據(jù)庫中的某一個數(shù)據(jù)項(xiàng)、一組數(shù)據(jù)項(xiàng)、一個記錄或一組記錄。而在文件系統(tǒng)中,數(shù)據(jù)的最小存取單位是記錄,粒度不能細(xì)到數(shù)據(jù)項(xiàng)。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 2) 數(shù)據(jù)的共享性高

11、、冗余度低、易擴(kuò)充 數(shù)據(jù)庫系統(tǒng)是從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng),因此數(shù)據(jù)可以被多個用戶、多個應(yīng)用共享使用。數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲空間。數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不相容性與不一致性。 數(shù)據(jù)庫中的數(shù)據(jù)是面向整個系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個應(yīng)用共享使用,而且容易增加新的應(yīng)用,可以適應(yīng)各種應(yīng)用需求。當(dāng)應(yīng)用需求改變或增加時,只要重新選取整體數(shù)據(jù)的不同子集,便可以滿足新的要求,這就使得數(shù)據(jù)庫系統(tǒng)具有彈性大,易擴(kuò)充的特點(diǎn)。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 3) 數(shù)據(jù)獨(dú)立性高 數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫領(lǐng)域中一個常用術(shù)語,包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)

12、的邏輯獨(dú)立性。 數(shù)據(jù)的物理獨(dú)立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨(dú)立的。也就是說,數(shù)據(jù)在磁盤上的數(shù)據(jù)庫中怎樣存儲是由DBMS管理的,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu)。這樣,當(dāng)數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 數(shù)據(jù)的邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。 數(shù)據(jù)與程序的獨(dú)立,把數(shù)據(jù)的定義從程序中分離出去,加上數(shù)據(jù)的存取又由DBMS負(fù)責(zé),從而簡化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改工作。 數(shù)據(jù)獨(dú)立性是由DBMS的二級映像功

13、能來保證的,這將在稍后討論。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 4) 統(tǒng)一的數(shù)據(jù)管理和控制 數(shù)據(jù)庫對系統(tǒng)中的用戶來說是共享資源,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時存取數(shù)據(jù)庫中的同一個數(shù)據(jù)。因此,DBMS必須提供以下幾方面的數(shù)據(jù)控制和保護(hù)功能。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (1) 數(shù)據(jù)的安全性保護(hù)。數(shù)據(jù)的安全性是指保護(hù)數(shù)據(jù)以防止不合法的使用所造成的數(shù)據(jù)泄密和破壞,使每個用戶只能按規(guī)定,對某種數(shù)據(jù)以某些方式進(jìn)行使用和處理。例如,系統(tǒng)用檢查口令或其它手段來檢查用戶身份,合法用戶才能進(jìn)入數(shù)據(jù)庫系統(tǒng);系統(tǒng)提供數(shù)據(jù)存取權(quán)限的定義機(jī)制,當(dāng)用戶對數(shù)據(jù)庫執(zhí)行操作時,系統(tǒng)自

14、動檢查用戶能否執(zhí)行這些操作,檢查通過后才能執(zhí)行允許的操作。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (2) 數(shù)據(jù)的完整性控制。數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性、有效性和相容性。完整性檢查提供必要的功能,保證數(shù)據(jù)庫中的數(shù)據(jù)在輸入和修改過程中始終符合原來的定義和規(guī)定,在有效的范圍內(nèi),保證數(shù)據(jù)之間滿足一定的關(guān)系。例如,月份是112之間的正整數(shù),學(xué)生年齡是1545間的整數(shù),學(xué)生學(xué)號是惟一的,學(xué)生所在的系院必須是有效存在的等。 (3) 數(shù)據(jù)庫恢復(fù)。計(jì)算機(jī)系統(tǒng)的軟硬件故障、操作員的失誤以及惡意的破壞都會影響到數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫部分或全部數(shù)據(jù)的丟失。因此DBMS必須具有將數(shù)據(jù)庫從錯誤狀態(tài)恢

15、復(fù)到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))的功能。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (4) 并發(fā)控制。當(dāng)多個用戶的并發(fā)進(jìn)程同時存取、修改數(shù)據(jù)庫時,可能會發(fā)生相互干擾而得到錯誤的結(jié)果或使得數(shù)據(jù)庫的完整性遭到破壞,因此必須對多用戶的并發(fā)操作加以控制和協(xié)調(diào)。 數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)進(jìn)入從以加工數(shù)據(jù)的程序?yàn)橹行霓D(zhuǎn)向以共享的數(shù)據(jù)庫為中心的新階段。這樣既便于數(shù)據(jù)的集中管理,又有利于應(yīng)用程序的研制和維護(hù),提高了數(shù)據(jù)的利用率和相容性,提高了決策的可靠性。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 6.1.3 數(shù)據(jù)庫系統(tǒng) 1數(shù)據(jù)庫 所謂數(shù)據(jù)庫是長期儲存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的

16、數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為一定范圍內(nèi)的各種用戶共享。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 2數(shù)據(jù)庫管理系統(tǒng)(DBMS) 了解了數(shù)據(jù)和數(shù)據(jù)庫的概念,接下來的問題是如何科學(xué)地組織和存儲數(shù)據(jù),如何高效地獲取和維護(hù)數(shù)據(jù),完成這個任務(wù)的是一個系統(tǒng)軟件數(shù)據(jù)庫管理系統(tǒng)。DBMS是位于用戶與操作系統(tǒng)之間的一個數(shù)據(jù)管理軟件,是一個幫助用戶建立、使用和管理數(shù)據(jù)庫的軟件系統(tǒng),是數(shù)據(jù)庫與用戶之間的接口。它的基本功能應(yīng)包括以下幾個方面: (1) 數(shù)據(jù)定義功能。DBMS提供數(shù)據(jù)定義語言(DDL),用戶通過定義語言可以方便地對數(shù)據(jù)

17、庫中的數(shù)據(jù)對象進(jìn)行定義。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (2) 數(shù)據(jù)操縱功能。DBMS提供數(shù)據(jù)操縱語言(DML),用戶通過操縱語言操縱數(shù)據(jù),實(shí)現(xiàn)對數(shù)據(jù)庫的基本操作,如查詢、插入、刪除和修改。 (3) 數(shù)據(jù)庫的運(yùn)行管理。數(shù)據(jù)庫在建立、運(yùn)行和維護(hù)時由DBMS統(tǒng)一管理、統(tǒng)一控制,以保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。 (4) 數(shù)據(jù)庫的建立和維護(hù)功能。它包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù)功能,數(shù)據(jù)庫的重組織功能,以及性能監(jiān)視、分析功能等。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 3數(shù)據(jù)庫系統(tǒng)(DBS,DataBase Syste

18、m) 數(shù)據(jù)庫系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)(及其工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成,如圖6-4所示。應(yīng)當(dāng)指出的是,數(shù)據(jù)庫的建立、使用和維護(hù)等工作只靠一個DBMS遠(yuǎn)遠(yuǎn)不夠,還要有專門的人員來完成,這些人被稱為數(shù)據(jù)庫管理員(DBA,DataBase Adiministrator)。 在一般不引起混淆的情況下常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)圖6-4 數(shù)據(jù)庫系統(tǒng)示意圖數(shù)據(jù)庫操作系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)應(yīng)用開發(fā)工具應(yīng)用系統(tǒng)用戶用戶用戶數(shù)據(jù)庫管理員第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 由于數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)量都

19、很大,加之DBMS豐富的功能使得自身的規(guī)模也很大,因此數(shù)據(jù)庫系統(tǒng)對硬件提出了較高的要求,這些要求是:要有足夠大的內(nèi)存;要有足夠大的磁盤空間存放數(shù)據(jù)庫,足夠的磁帶做數(shù)據(jù)備份;系統(tǒng)有較高的通信能力,以提高數(shù)據(jù)傳輸率。 4數(shù)據(jù)庫系統(tǒng)的有關(guān)人員 (1) 數(shù)據(jù)庫管理員。DBA負(fù)責(zé)對整個數(shù)據(jù)庫系統(tǒng)進(jìn)行總體控制和維護(hù),以保證數(shù)據(jù)庫系統(tǒng)的正常運(yùn)行。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (2) 系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計(jì)人員。系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,他們要和用戶及DBA相結(jié)合,確定系統(tǒng)的軟硬件配置并參與數(shù)據(jù)庫系統(tǒng)的概要設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)人員負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)的確定、數(shù)據(jù)庫各級模式的設(shè)計(jì)。數(shù)據(jù)

20、庫設(shè)計(jì)人員必須參加用戶需求調(diào)查和系統(tǒng)分析,然后進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。在很多情況下,數(shù)據(jù)庫設(shè)計(jì)人員就由數(shù)據(jù)庫管理員擔(dān)任。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (3) 應(yīng)用程序員。負(fù)責(zé)設(shè)計(jì)和編寫應(yīng)用程序的程序模塊,并進(jìn)行調(diào)試和安裝。 (4) 終端用戶。他們通過聯(lián)機(jī)終端,并通過應(yīng)用程序的用戶接口使用數(shù)據(jù)庫。常用的接口方式有瀏覽器、菜單驅(qū)動、表格操作、圖形顯示、報表書寫等。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)6.2 數(shù)數(shù) 據(jù)據(jù) 模模 型型 6 .2.1 數(shù)據(jù)模型的概念 模型是現(xiàn)實(shí)世界特征的模擬和抽象。數(shù)據(jù)模型也是一種模型,它是現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象?,F(xiàn)有的數(shù)據(jù)庫系統(tǒng)均是基于某種數(shù)據(jù)模型的。

21、因此,數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ),了解數(shù)據(jù)模型的基本概念是學(xué)習(xí)數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 數(shù)據(jù)庫是某個企業(yè)、組織或部門所涉及的數(shù)據(jù)的一個綜合,它不僅要反映數(shù)據(jù)本身的內(nèi)容,而且要反映數(shù)據(jù)之間的聯(lián)系。由于計(jì)算機(jī)不可能直接處理現(xiàn)實(shí)世界中的具體事物,所以,人們必須事先把具體事物轉(zhuǎn)換成計(jì)算機(jī)能夠處理的數(shù)據(jù)。在數(shù)據(jù)庫中用數(shù)據(jù)模型這個工具來抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。 數(shù)據(jù)模型應(yīng)滿足三方面要求:一是能比較真實(shí)地模擬現(xiàn)實(shí)世界;二是容易為人們所理解;三是便于在計(jì)算機(jī)上實(shí)現(xiàn)。一種數(shù)據(jù)模型要很好地滿足這三方面的要求,在目前尚很困難。在數(shù)據(jù)庫系統(tǒng)中針對不同的使用對

22、象和應(yīng)用目的,采用不同的數(shù)據(jù)模型。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 不同的數(shù)據(jù)模型實(shí)際上是提供給人們模型化數(shù)據(jù)和信息的不同工具。根據(jù)模型應(yīng)用的不同目的,可以將這些模型劃分為兩類,它們分屬于兩個不同的層次。第一類模型是概念模型,也稱信息模型,它是按用戶的觀點(diǎn)對數(shù)據(jù)和信息建模。另一類模型是數(shù)據(jù)模型(即結(jié)構(gòu)模型),主要包括網(wǎng)狀模型、層次模型、關(guān)系模型和面向?qū)ο竽P偷?,它是按?jì)算機(jī)系統(tǒng)的觀點(diǎn)對數(shù)據(jù)建模。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 6.2.2 數(shù)據(jù)模型的要素 一般地講,數(shù)據(jù)模型是嚴(yán)格定義的一組概念的集合。這些概念精確地描述了系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。因此,數(shù)

23、據(jù)模型通常都是由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三個要素組成。 1數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型的集合。這些對象是數(shù)據(jù)庫的組成成分,它們包括兩類:一類是與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對象;一類是與數(shù)據(jù)之間聯(lián)系有關(guān)的對象。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 數(shù)據(jù)結(jié)構(gòu)是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面。因此在數(shù)據(jù)庫系統(tǒng)中,通常按照其數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型。例如層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)、關(guān)系結(jié)構(gòu)的數(shù)據(jù)模型分別命名為層次模型、網(wǎng)狀模型和關(guān)系模型。 數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)靜態(tài)特性的描述。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 2數(shù)據(jù)操作 數(shù)據(jù)操作是指對數(shù)據(jù)庫中各種對象(型)的實(shí)例(值)允許執(zhí)

24、行的操作的集合,包括操作及有關(guān)的操作規(guī)則。數(shù)據(jù)庫主要有檢索和更新(包括插入、刪除、修改)兩大類操作。數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號、操作規(guī)則(如優(yōu)先級)以及實(shí)現(xiàn)操作的語言。 數(shù)據(jù)操作是對系統(tǒng)動態(tài)特性的描述。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 3數(shù)據(jù)的完整性約束 數(shù)據(jù)的完整性約束是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和儲存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。 數(shù)據(jù)模型應(yīng)該反映和規(guī)定本數(shù)據(jù)模型必須遵守的、基本的、通用的完整性約束。例如,在關(guān)系模型中,任何關(guān)系必須滿足實(shí)體完整性和參照完整性兩

25、個條件(稍后討論這兩個完整性約束)。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 6.2.3 概念模型E-R模型 為了把現(xiàn)實(shí)世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型,人們常常首先將現(xiàn)實(shí)世界抽象為信息世界,然后將信息世界轉(zhuǎn)換為機(jī)器世界。概念模型用于信息世界的建模,與具體的DBMS無關(guān)。概念模型是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言,因此概念模型一方面應(yīng)該具有較強(qiáng)的語義表達(dá)能力,能夠方便、直接地表達(dá)應(yīng)用中的各種語義知識,另一方面它還應(yīng)該簡單、清晰、易于用戶理解。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)

26、 1信息世界中的基本概念 信息世界涉及的概念主要有: 1) 實(shí)體(Entity) 客觀存在并可相互區(qū)別的事物稱為實(shí)體。實(shí)體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。例如,一個職工、一個學(xué)生、一門課、一個部門、學(xué)生的一次選課、部門的一次定貨等都是實(shí)體。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 2) 屬性(Attribute) 實(shí)體所具有的某一特性稱為屬性。一個實(shí)體可以由若干個屬性來刻畫。例如,學(xué)生實(shí)體可以由學(xué)號、姓名、性別、出生年份、系、入學(xué)時間等屬性組成,如(20020124,張亮,男,1984,計(jì)算機(jī)系,2002)表征了一個學(xué)生。 3) 碼(Key) 惟一標(biāo)識實(shí)體的屬性集稱為碼。

27、例如學(xué)號是學(xué)生實(shí)體的碼。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 4) 域(Domain) 屬性的取值范圍稱為該屬性的域。例如,性別的域?yàn)?男,女),學(xué)號的域?yàn)?位整數(shù),年齡的域?yàn)樾∮?5的整數(shù)。 5) 實(shí)體型(Entity Type) 具有相同屬性的實(shí)體必然具有共同的特性和性質(zhì)。用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體,稱為實(shí)體型。例如,學(xué)生(學(xué)號,姓名,性別,出生年份,系,入學(xué)時間)就是一個實(shí)體型。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 6) 實(shí)體集(Entity Set) 同型實(shí)體的集合稱為實(shí)體集。例如,全體學(xué)生就是一個集合,即實(shí)體集。 7) 聯(lián)系(Relationship)

28、 在現(xiàn)實(shí)世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實(shí)體(型)內(nèi)部的聯(lián)系和實(shí)體(型)之間的聯(lián)系。實(shí)體內(nèi)部的聯(lián)系通常是指組成實(shí)體的各屬性之間的聯(lián)系。實(shí)體之間的聯(lián)系通常是指不同實(shí)體集之間的聯(lián)系。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 兩個實(shí)體型之間的聯(lián)系可以分為三類: (1) 一對一聯(lián)系(1 1)。如果對于實(shí)體集A中的每一個實(shí)體,實(shí)體集B中至多有一個(也可以沒有)實(shí)體與之聯(lián)系,反之亦然,則稱實(shí)體集A與實(shí)體集B具有一對一聯(lián)系,記為1 1。例如,學(xué)校里面,一個班級只有一個正班長,而一個班長只在一個班中任職,則班級與班長之間具有一對一聯(lián)系。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)

29、庫技術(shù)基礎(chǔ) (2) 一對多聯(lián)系(1 n)。如果對于實(shí)體集A中的每一個實(shí)體,實(shí)體集B中有n個(n0)實(shí)體與之聯(lián)系,反之,對于實(shí)體集B中的每一個實(shí)體,實(shí)體集A中至多有一個實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B具有一對多聯(lián)系,記為1 n。例如,一個班級中有若干名學(xué)生,而每個學(xué)生只在一個班級中學(xué)習(xí),則班級與學(xué)生之間具有一對多聯(lián)系。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (3) 多對多聯(lián)系(m n)。如果對于實(shí)體集A中的每一個實(shí)體,實(shí)體集B中有n個(n0)實(shí)體與之聯(lián)系。反之,對于實(shí)體集B中的每一個實(shí)體,實(shí)體集A中也有m個(m0)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B具有多對多聯(lián)系,記為m n。例如,一

30、個課程同時有若干名學(xué)生選修,而一個學(xué)生可以同時選修多門課程,則課程與學(xué)生之間具有多對多聯(lián)系。 實(shí)際上,一對一聯(lián)系是一對多聯(lián)系的特例,而一對多聯(lián)系又是多對多聯(lián)系的特例。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 實(shí)體型之間的這種一對一、一對多、多對多聯(lián)系不僅存在于兩個實(shí)體型之間,也存在于兩個以上的實(shí)體型之間。例如,對于課程、教師與參考書三個實(shí)體型,如果一門課程可以有若干個教師講授,使用若干本參考書,而每一個教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書之間的聯(lián)系是一對多的。 同一個實(shí)體集內(nèi)的各實(shí)體之間也可以存在一對一、一對多、多對多的聯(lián)系。例如,職工實(shí)體集內(nèi)部具有領(lǐng)導(dǎo)與

31、被領(lǐng)導(dǎo)的聯(lián)系,即某一職工(干部)“領(lǐng)導(dǎo)”若干名職工,而一個職工僅被另外一個職工直接領(lǐng)導(dǎo),因此這是一對多的聯(lián)系。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 2概念模型的表示方法 概念模型是對信息世界建模,所以概念模型應(yīng)該能夠方便、準(zhǔn)確地表示出信息世界中的常用概念。概念模型的表示方法很多,其中最為常用的是P.P.S.Chen于1976年提出的實(shí)體聯(lián)系方法(Entity-Relationship Approach)。該方法用ER圖來描述現(xiàn)實(shí)世界的概念模型,ER方法也稱為ER模型。 ER圖提供了表示實(shí)體型、屬性和聯(lián)系的方法。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 實(shí)體型:用矩形表示,矩形框內(nèi)寫

32、明實(shí)體名。 屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來。 聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1 1,1 n,m n)。如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來。 現(xiàn)實(shí)世界中的任何數(shù)據(jù)集合,均可用ER圖來描述。圖6-5和圖6-6給出了一些簡單的例子。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 圖6-5 實(shí)體的聯(lián)系(a) 實(shí)體內(nèi)部的聯(lián)系;(b) 兩個實(shí)體之間的聯(lián)系;(c) 多個實(shí)體之間的聯(lián)系職工領(lǐng)導(dǎo)1n廠長管理工廠11學(xué)校領(lǐng)導(dǎo)系1n工人生產(chǎn)產(chǎn)品mn(a)(b)(c)工廠工-產(chǎn)-零1產(chǎn)品零件mn第第

33、6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 圖6-6 實(shí)體與聯(lián)系的屬性(a) 實(shí)體的屬性;(b) 聯(lián)系的屬性產(chǎn)品號產(chǎn)品名型號主要性能產(chǎn)品學(xué)號姓名性別年齡學(xué)生(a)(b)產(chǎn)品使用材料數(shù)量mn學(xué)生選修課程成績mn第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) ER模型有兩個明顯的優(yōu)點(diǎn):一是接近人的思想,容易理解;二是與計(jì)算機(jī)無關(guān),用戶容易接受。因此,ER模型已經(jīng)成為數(shù)據(jù)庫概念設(shè)計(jì)的一種重要方法,它是設(shè)計(jì)人員和不熟悉計(jì)算機(jī)的用戶之間的共同語言。一般遇到一個實(shí)際問題,總是先設(shè)計(jì)一個ER模型,然后再把ER模型轉(zhuǎn)換成計(jì)算機(jī)能實(shí)現(xiàn)的數(shù)據(jù)模型。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 6.2.4 常用的數(shù)據(jù)模

34、型 不同的數(shù)據(jù)模型具有不同的數(shù)據(jù)結(jié)構(gòu)形式。目前最常用的數(shù)據(jù)結(jié)構(gòu)模型有層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P汀F渲袑哟文P秃途W(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。非關(guān)系模型的數(shù)據(jù)庫系統(tǒng)在20世紀(jì)70年代非常流行,到了20世紀(jì)80年代,逐漸被關(guān)系模型的數(shù)據(jù)庫系統(tǒng)取代,但在美國等一些國家里,由于歷史的原因,目前層次和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)仍為某些用戶所使用。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 20世紀(jì)80年代以來,面向?qū)ο蟮姆椒ê图夹g(shù)在計(jì)算機(jī)各個領(lǐng)域,包括程序設(shè)計(jì)語言、軟件工程、信息系統(tǒng)設(shè)計(jì)等各方面都產(chǎn)生了深遠(yuǎn)的影響,也促進(jìn)了數(shù)據(jù)庫中面向?qū)ο髷?shù)據(jù)模型的研究和發(fā)展。 1層次模型(Hierarchical M

35、odel) 層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,層次數(shù)據(jù)庫系統(tǒng)采用層次模型作為數(shù)據(jù)的組織方式。層次模型是以記錄類型為結(jié)點(diǎn)的有向樹,即樹的每一個結(jié)點(diǎn)都表示一個記錄類型,它有如下特點(diǎn):第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)圖6-7 層次模型 R1R2R3R4R5第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (1) 有且僅有一個結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),這個結(jié)點(diǎn)稱為根結(jié)點(diǎn); (2) 根以外的其它結(jié)點(diǎn)有且只有一個雙親結(jié)點(diǎn); (3) 每個結(jié)點(diǎn)可以有若干個孩子結(jié)點(diǎn)。 凡滿足以上條件的數(shù)據(jù)結(jié)構(gòu)模型稱為層次模型。如圖6-7所示就是一個層次模型。 層次數(shù)據(jù)庫系統(tǒng)的典型代表是IBM公司的IMS(Informa

36、tion Management Systems)數(shù)據(jù)庫管理系統(tǒng),這是1968年IBM公司推出的第一個大型商用數(shù)據(jù)庫管理系統(tǒng),曾經(jīng)得到廣泛的使用,目前,仍然有某些特定用戶在使用。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 2網(wǎng)狀模型(Network Model) 在現(xiàn)實(shí)世界中事物之間的聯(lián)系更多的是非層次關(guān)系,若用層次模型表示很不直接,網(wǎng)狀模型則可以克服這一缺點(diǎn)。網(wǎng)狀數(shù)據(jù)庫系統(tǒng)采用網(wǎng)狀模型作為數(shù)據(jù)的組織方式,網(wǎng)狀模型是以記錄類型為結(jié)點(diǎn)的有向圖。在網(wǎng)狀模型中,數(shù)據(jù)間緊密相連,呈現(xiàn)出一種網(wǎng)狀的關(guān)系形式,圖6-8中的數(shù)據(jù)模型都是網(wǎng)狀模型。它的特征是: (1) 允許一個以上的結(jié)點(diǎn)無雙親; (2) 允許一

37、個結(jié)點(diǎn)有多于一個的雙親; (3) 任意兩個結(jié)點(diǎn)之間可以有多于一個以上的聯(lián)系。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)圖6-8 網(wǎng)狀模型R1R3R2R4R1R2R4R3第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 網(wǎng)狀數(shù)據(jù)模型的典型代表是DBTG系統(tǒng),它是20世紀(jì)70年代數(shù)據(jù)系統(tǒng)語言研究會(Conference On Data System Language)下屬的數(shù)據(jù)庫任務(wù)組(DBTG,DataBase Task Group)提出的一個系統(tǒng)方案。DBTG系統(tǒng)雖然不是實(shí)際的軟件系統(tǒng),但是它提出的基本概念、方法和技術(shù)具有普遍意義。它對于網(wǎng)狀數(shù)據(jù)庫系統(tǒng)的研制和發(fā)展起了重大的影響。后來不少的實(shí)際系

38、統(tǒng)都采用了DBTG模型或者簡化的DBTG模型。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 3關(guān)系模型(Relational Model) 關(guān)系模型是目前最常用的一種數(shù)據(jù)模型。關(guān)系數(shù)據(jù)庫系統(tǒng)采用關(guān)系模型作為數(shù)據(jù)的組織方式。1970年美國IBM公司San Jose研究室的研究員E. F. Codd首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型,開創(chuàng)了數(shù)據(jù)庫關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究,為數(shù)據(jù)庫技術(shù)奠定了理論基礎(chǔ)。由于E. F. Codd的杰出貢獻(xiàn),他于1981年獲得ACM圖靈獎。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 20世紀(jì)80年代以來,計(jì)算機(jī)廠商新推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系模型,非關(guān)系模型的

39、產(chǎn)品也大都加上了關(guān)系接口。數(shù)據(jù)庫領(lǐng)域當(dāng)前的研究工作也大都是以關(guān)系方法為基礎(chǔ)。 用表格結(jié)構(gòu)表示實(shí)體以及實(shí)體之間聯(lián)系的模型稱為關(guān)系模型。關(guān)系模型比較簡單,容易被初學(xué)者所接受。與以往的模型不同,關(guān)系模型是建立在嚴(yán)格的數(shù)學(xué)概念基礎(chǔ)上的一種數(shù)據(jù)模型,它的數(shù)據(jù)結(jié)構(gòu)是二維表,即由行和列組成,這個表就叫作關(guān)系。表6-1所列的職工情況表就是一個關(guān)系。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)表6-1 職工情況表 編 號姓 名職 稱工 齡工 資出生日期1001王 明工程師101150001/20/701024田 麗助 工5980010/09/752048張 升高 工201450009/28/624006胡中華助

40、 工3870005/28/78第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 下面結(jié)合表6-1,介紹關(guān)系模型中的一些術(shù)語。 (1) 關(guān)系(Relation):一個關(guān)系對應(yīng)一張二維表,二維表名就是關(guān)系名,如表6-1職工情況表。 (2) 元組(Tuple):表中的一行即為一個元組,如表6-1中的(1001,王明,工程師,10,11500,01/20/70)為一個元組。 (3) 屬性(Attribute):表中的一列即為一個屬性,給每一個屬性起一個名字即屬性名。如表6-1有六列,對應(yīng)六個屬性,屬性名分別為編號、姓名、職稱、工齡、工資、出生日期。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) (4) 分量

41、(Component):元組中的一個屬性值。 (5) 主碼(Key):表中的某個屬性組,它可以惟一確定一個元組。如表6-1中的編號,可以惟一確定一個職工,也就成為本關(guān)系的主碼。 (6) 域(Domain):屬性的取值范圍,如工資的域是(500.05000.0)。 (7) 關(guān)系模式(Relation Schema):對關(guān)系的描述稱為關(guān)系模式,一般表示為:關(guān)系名(屬性1,屬性2,屬性n)第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 例如表6-1的關(guān)系可表示為 職工情況表(編號,姓名,職稱,工齡,工資,出生日期) 關(guān)系模型與層次、網(wǎng)狀模型的最大區(qū)別是關(guān)系模型用表格的數(shù)據(jù)而不是通過指針鏈來表示和實(shí)現(xiàn)實(shí)

42、體間的聯(lián)系。關(guān)系模型中數(shù)據(jù)結(jié)構(gòu)單一,只有二維表格,通??砂驯砀窨闯梢粋€集合,因此集合論、數(shù)理邏輯等知識可引入到關(guān)系模型中來。一般認(rèn)為它是一種比較有前途的模型。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 4面向?qū)ο竽P?Object-Oriented Model) 由于關(guān)系模型比層次、網(wǎng)狀模型更為簡單靈活,因此,數(shù)據(jù)處理領(lǐng)域中,關(guān)系數(shù)據(jù)庫的使用已相當(dāng)普遍。但是,現(xiàn)實(shí)世界存在著許多含有更復(fù)雜數(shù)據(jù)結(jié)構(gòu)的實(shí)際應(yīng)用領(lǐng)域,例如CAD數(shù)據(jù)、圖形數(shù)據(jù)等,需要有一種數(shù)據(jù)模型來表達(dá)這類信息,在人工智能研究中也出現(xiàn)了類似的需要,這種數(shù)據(jù)模型就是面向?qū)ο蟮臄?shù)據(jù)模型。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 2

43、0世紀(jì)80年代中后期,數(shù)據(jù)庫界掀起了面向?qū)ο蠹夹g(shù)與數(shù)據(jù)庫技術(shù)相結(jié)合的研究熱潮,對于什么是面向?qū)ο髷?shù)據(jù)庫,它應(yīng)該具有哪些特性,如何去實(shí)現(xiàn)它,大家有各自不同的見解,因此研究工作百花齊放,各自按照自己的方法去實(shí)現(xiàn)自己的系統(tǒng)。經(jīng)過十余年的研究與實(shí)踐,現(xiàn)在歸納起來,面向?qū)ο蠹夹g(shù)與數(shù)據(jù)庫技術(shù)相結(jié)合的途徑主要有以下兩種: 一種途徑是以面向?qū)ο蟪绦蛟O(shè)計(jì)語言為基礎(chǔ)進(jìn)行擴(kuò)展,研究持久的程序設(shè)計(jì)語言,使之具有數(shù)據(jù)庫功能;或者直接將數(shù)據(jù)庫系統(tǒng)的特性與面向?qū)ο蟪绦蛟O(shè)計(jì)語言的特性結(jié)合起來,研制面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)(OODBS)。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) OODBS的商品化現(xiàn)狀遠(yuǎn)不如20世紀(jì)80年代中后

44、期開始研究面向?qū)ο蠹夹g(shù)與數(shù)據(jù)庫技術(shù)相結(jié)合時人們預(yù)想的高,其原因是多方面的。首先,OODBS缺乏標(biāo)準(zhǔn);其次,OODBS產(chǎn)品在安全性、完整性、堅(jiān)固性、可伸縮性、視圖機(jī)制、模式演化等許多方面都不如關(guān)系數(shù)據(jù)庫系統(tǒng)(RDBS)產(chǎn)品;另外,OODBS系統(tǒng)的應(yīng)用開發(fā)工具很少,對客戶/服務(wù)器環(huán)境的支持也不夠。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 另一種途徑是以傳統(tǒng)的關(guān)系數(shù)據(jù)庫和SQL語言為基礎(chǔ),進(jìn)行擴(kuò)展的方法。這種方法早期的典型代表是加州大學(xué)Berkeley分校研制的擴(kuò)展關(guān)系數(shù)據(jù)庫系統(tǒng)POSTGRES,它以關(guān)系數(shù)據(jù)庫系統(tǒng)Ingres為基礎(chǔ),將它的類型系統(tǒng)開放,允許將新的、用戶定義的抽象數(shù)據(jù)類型(ADT

45、)加進(jìn)來,用戶定義新的ADT時需要實(shí)現(xiàn)這個類型,即定義它的表示法和編寫它的函數(shù)。采用擴(kuò)展關(guān)系數(shù)據(jù)模型的方法建立的數(shù)據(jù)庫系統(tǒng)稱做對象關(guān)系數(shù)據(jù)庫系統(tǒng)(ORDBS),它建立在關(guān)系數(shù)據(jù)庫技術(shù)堅(jiān)實(shí)的基礎(chǔ)上,并且支持若干重要的面向?qū)ο筇匦?,能夠滿足數(shù)據(jù)庫新應(yīng)用的需求。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 面向?qū)ο髷?shù)據(jù)模型比網(wǎng)狀、層次、關(guān)系數(shù)據(jù)模型具有更加豐富的表達(dá)能力。但正因?yàn)槊嫦驅(qū)ο竽P偷呢S富的表達(dá)能力,模型相對復(fù)雜,實(shí)現(xiàn)起來較困難。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)6.3 數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu) 6.3.1 數(shù)據(jù)庫系統(tǒng)中模式的概念 在數(shù)據(jù)模型中有“型”(Type)和

46、“值”(Value)的概念。型是指對某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說明,值是型的一個具體賦值。例如,學(xué)生記錄定義為(學(xué)號,姓名,性別,系別,年齡,籍貫)記錄型,而(020301,李輝,男,計(jì)算機(jī),19,陜西)則是該記錄型的一個記錄值。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它僅僅涉及到型的描述,不涉及到具體的值。模式的一個具體值稱為模式的一個實(shí)例(Instance)。同一個模式可以有很多實(shí)例。模式是相對穩(wěn)定的,而實(shí)例是不斷變動的,因?yàn)閿?shù)據(jù)庫中的數(shù)據(jù)是在不斷更新的。模式反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系,而實(shí)例反映的是數(shù)據(jù)庫某一時刻的狀態(tài)。

47、雖然實(shí)際的DBMS產(chǎn)品種類很多,它們支持不同的數(shù)據(jù)模型,使用不同的數(shù)據(jù)庫語言,建立在不同的操作系統(tǒng)之上,數(shù)據(jù)的存儲結(jié)構(gòu)也各不相同,但它們在體系結(jié)構(gòu)上通常都具有相同的特性,即采用三級模式結(jié)構(gòu)并提供兩級映像功能。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 6.3.2 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu) 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)分為:外模式、模式和內(nèi)模式,如圖6-9所示。 1模式 模式也稱邏輯模式或概念模式,它是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,也是所有用戶的公共數(shù)據(jù)視圖。它是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,既不涉及數(shù)據(jù)的物理存儲細(xì)節(jié)和硬件環(huán)境,也與具體的應(yīng)用程序、所使用的開發(fā)工具及高級程序設(shè)計(jì)語言無關(guān)。

48、第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)圖6-9 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu) 外模式 / 模式映像應(yīng)用A應(yīng)用B外模式1應(yīng)用C外模式2應(yīng)用D應(yīng)用E外模式n模式模式 / 內(nèi)模式映像數(shù)據(jù)庫內(nèi)模式第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 模式是DBA所看到的數(shù)據(jù)庫。一個數(shù)據(jù)庫只有一個模式。數(shù)據(jù)庫模式以某一種數(shù)據(jù)類型為基礎(chǔ),統(tǒng)一綜合地考慮了所有用戶的需求,并將這些需求有機(jī)地結(jié)合成一個邏輯整體。定義模式時不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。 模式使用DBMS提供的模式數(shù)據(jù)定義語言(模式DDL)來嚴(yán)格定義。第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ)

49、 2外模式 外模式也稱子模式(SubSchema)或用戶模式,它是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,也是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。 外模式是模式的子集,一個數(shù)據(jù)庫可以有多個外模式。外模式是保證數(shù)據(jù)安全性的一個有力工具,每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中其余的數(shù)據(jù)是不可見的。 子模式使用DBMS提供的子模式數(shù)據(jù)定義語言(子模式DDL)來嚴(yán)格定義。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) 3內(nèi)模式 內(nèi)模式又稱存儲模式,一個數(shù)據(jù)庫只有一個內(nèi)模式。它描述了數(shù)據(jù)的物理結(jié)構(gòu)和存儲方式,是數(shù)據(jù)庫內(nèi)部的表示方法。例如,記錄的存儲方

50、式是順序存儲、按照B樹結(jié)構(gòu)存儲還是按Hash方法存儲;索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲,是否加密;數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定等。 內(nèi)模式使用DBMS提供的內(nèi)模式數(shù)據(jù)定義語言(內(nèi)模式DDL)來嚴(yán)格定義。 第第6 6章章 數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)基礎(chǔ) DDL是數(shù)據(jù)描述語言(Data Description Language),它是在建立數(shù)據(jù)庫時用來描述數(shù)據(jù)庫結(jié)構(gòu)的語言,有些文獻(xiàn)稱之為數(shù)據(jù)定義語言(Data Definition Language),簡稱都是DDL。用三種DDL來描述三種不同的模式,有利于實(shí)現(xiàn)數(shù)據(jù)獨(dú)立性。但實(shí)際的DBMS不一定將三種DDL分開,多數(shù)DBMS僅提供一種或者兩種DDL,同時完成這三種語言的功能。 DDL是類似高級語言的形式化語言

溫馨提示

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

評論

0/150

提交評論