




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第1章章 數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論 1.1 數(shù)據(jù)庫系統(tǒng)的應(yīng)用1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.3 數(shù)據(jù)庫系統(tǒng)的構(gòu)成1.4 數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)1.5 數(shù)據(jù)庫系統(tǒng)研究概述1.6 小結(jié)數(shù)據(jù)庫系統(tǒng)的定義數(shù)據(jù)庫系統(tǒng)的定義 數(shù)據(jù)庫管理系統(tǒng)(數(shù)據(jù)庫管理系統(tǒng)(DBMS) 由一個(gè)互相關(guān)聯(lián)的數(shù)據(jù)的集合和一組用以訪問這些數(shù)據(jù)的程序組成。這個(gè)數(shù)據(jù)結(jié)合通常稱之為數(shù)據(jù)庫數(shù)據(jù)庫,其中包含了關(guān)于某個(gè)企業(yè)的信息。DBMS的主要目標(biāo)是要提供一種可以方便、高效地存儲(chǔ)數(shù)據(jù)庫信息的途徑。1.1 數(shù)據(jù)庫系統(tǒng)的應(yīng)用數(shù)據(jù)庫系統(tǒng)的應(yīng)用1.1.1 數(shù)據(jù)庫系統(tǒng)的應(yīng)用領(lǐng)域數(shù)據(jù)庫系統(tǒng)的應(yīng)用領(lǐng)域數(shù)據(jù)庫的應(yīng)用領(lǐng)域非常廣泛,無論是家庭、企業(yè)、政府部門,都需
2、要使用數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)信息。傳統(tǒng)數(shù)據(jù)庫中的很大一部分用于商務(wù)領(lǐng)域,如證券機(jī)構(gòu)、銀行、企業(yè)的銷售部門、醫(yī)院、公司以及國家政府部門、國防軍工領(lǐng)域、科技發(fā)展領(lǐng)域等。以下是數(shù)據(jù)庫系統(tǒng)一些具有代表性的應(yīng)用。 (1) 航空售票系統(tǒng):是最先使用地理分布式數(shù)據(jù)庫的行業(yè)之一,通過網(wǎng)絡(luò)上分散的結(jié)點(diǎn)來訪問中央數(shù)據(jù)庫系統(tǒng)。這個(gè)系統(tǒng)主要用來存儲(chǔ)和管理航班信息(如航班號、飛機(jī)型號、機(jī)組號、起飛地、目的地、起飛時(shí)間、到達(dá)時(shí)間、飛行狀態(tài)等)、機(jī)票信息(如票價(jià)、折扣、是否有票等)和座位預(yù)定信息(如座位分配、座位確認(rèn)、餐飲選擇等)。(2) 銀行賬務(wù)管理系統(tǒng):用于存儲(chǔ)客戶的信息、賬戶、存貸款信息以及銀行的交易記錄等,同時(shí)也管理記錄
3、信用卡消費(fèi)的情況和產(chǎn)生每月清單等。(3) 學(xué)校學(xué)籍管理系統(tǒng):用于存儲(chǔ)學(xué)生姓名、課程名、所選課程及成績等信息。(4) 電子政務(wù)系統(tǒng):將政府機(jī)構(gòu)的經(jīng)濟(jì)管理、市場監(jiān)管、社會(huì)管理和公共服務(wù)這四大職能電子化、網(wǎng)絡(luò)化。(5) 銷售管理系統(tǒng):用于管理客戶、訂貨、庫存、往來賬款、產(chǎn)品信息、銷售人員,以及收集與處理市場有關(guān)信息。(6) 人力資源管理系統(tǒng):包括人事日常事務(wù)、薪酬、招聘、培訓(xùn)、考核以及人力資源的管理。(7) 企業(yè)資源規(guī)劃(Enterprise Resource Planning,簡稱ERP):用來合并一個(gè)企業(yè)中的各種功能領(lǐng)域,包括產(chǎn)品生產(chǎn)、銷售、分發(fā)、市場、財(cái)務(wù)和人力資源等。(8) 電子商務(wù)系統(tǒng):利
4、用Web技術(shù)來傳輸和處理商業(yè)信息,在Internet上進(jìn)行商務(wù)活動(dòng),其主要功能包括基于互聯(lián)網(wǎng)的廣告、訂貨、付款、客戶服務(wù)和貨物遞交等銷售、售前和售后服務(wù),以及市場調(diào)查分析、財(cái)務(wù)核計(jì)及生產(chǎn)安排等多項(xiàng)利用Internet開發(fā)的商業(yè)活動(dòng)。 數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最快的領(lǐng)域之一,也是應(yīng)用最廣的技術(shù)之一。隨著信息時(shí)代的發(fā)展,當(dāng)今數(shù)據(jù)庫系統(tǒng)是一個(gè)大家族,數(shù)據(jù)模型豐富多樣,新技術(shù)層出不窮,應(yīng)用領(lǐng)域日益廣泛。以下是當(dāng)前數(shù)據(jù)庫的一些新的應(yīng)用領(lǐng)域。(1) 多媒體數(shù)據(jù)庫。多媒體數(shù)據(jù)庫主要存儲(chǔ)與多媒體相關(guān)的數(shù)據(jù),如聲音、圖像和視頻等數(shù)據(jù)。多媒體數(shù)據(jù)庫最大的特點(diǎn)是數(shù)據(jù)連續(xù),而且數(shù)據(jù)量比較大,存儲(chǔ)需要的空間較大
5、。(2) 移動(dòng)數(shù)據(jù)庫。移動(dòng)數(shù)據(jù)庫是在移動(dòng)計(jì)算機(jī)系統(tǒng)上發(fā)展起來的,如筆記本電腦、掌上計(jì)算機(jī)等。該數(shù)據(jù)庫最大的特點(diǎn)是通過無線數(shù)字通信網(wǎng)絡(luò)傳輸數(shù)據(jù)。移動(dòng)數(shù)據(jù)庫可以隨時(shí)隨地獲取和訪問數(shù)據(jù),為商務(wù)應(yīng)用和一些緊急情況帶來了很大的便利。(3) 空間數(shù)據(jù)庫??臻g數(shù)據(jù)庫目前發(fā)展比較迅速。它主要包括地理信息數(shù)據(jù)庫(又稱為地理信息系統(tǒng),即Geographic Information System,簡稱GIS)和計(jì)算機(jī)輔助設(shè)計(jì)(Computer-Aided Design,簡稱CAD)數(shù)據(jù)庫。其中地理信息數(shù)據(jù)庫一般存儲(chǔ)與地圖相關(guān)的信息數(shù)據(jù);計(jì)算機(jī)輔助設(shè)計(jì)數(shù)據(jù)庫一般存儲(chǔ)設(shè)計(jì)信息的空間數(shù)據(jù),如機(jī)械、集成電路以及電子設(shè)備設(shè)計(jì)
6、圖等。 (4) 網(wǎng)格數(shù)據(jù)庫。網(wǎng)格數(shù)據(jù)庫是把整個(gè)網(wǎng)絡(luò)整合成一個(gè)虛擬的、巨大的超級計(jì)算環(huán)境,實(shí)現(xiàn)計(jì)算資源、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專家資源等的全面共享。其目的是解決多機(jī)構(gòu)虛擬組織中的資源共享和協(xié)同工作問題。(5) 傳感器數(shù)據(jù)庫技術(shù)。傳感器網(wǎng)絡(luò)由大量的低成本設(shè)備組成,用來測量諸如目標(biāo)位置、環(huán)境溫度和濕度等數(shù)據(jù)。每個(gè)設(shè)備都是一個(gè)數(shù)據(jù)源,將會(huì)提供重要的數(shù)據(jù),這就產(chǎn)生了新的數(shù)據(jù)管理需求,同時(shí)也要求傳感器數(shù)據(jù)庫系統(tǒng)解決好傳感器設(shè)備特有的移動(dòng)性、分散性、動(dòng)態(tài)性和傳感器資源的有限性等特點(diǎn)所帶來的許多新問題。 (6) 信息檢索系統(tǒng)。信息檢索就是根據(jù)用戶輸入的信息,從數(shù)據(jù)庫中查找相關(guān)的文檔或信息,并
7、把查找的信息反饋給用戶。信息檢索領(lǐng)域和數(shù)據(jù)庫是同步發(fā)展的,它是一種典型的聯(lián)機(jī)文檔管理系統(tǒng)或者聯(lián)機(jī)圖書目錄。(7) 分布式信息檢索數(shù)據(jù)庫。分布式信息檢索數(shù)據(jù)庫是隨著Internet的發(fā)展而產(chǎn)生的數(shù)據(jù)庫。它一般用于因特網(wǎng)及遠(yuǎn)距離計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中。特別是隨著電子商務(wù)的發(fā)展,這類數(shù)據(jù)庫發(fā)展更加迅猛。許多網(wǎng)絡(luò)用戶(如個(gè)人、公司或企業(yè)等)在自己的計(jì)算機(jī)中存儲(chǔ)信息,同時(shí)希望通過網(wǎng)絡(luò)使用發(fā)送電子郵件、文件傳輸、遠(yuǎn)程登錄方式和別人共享這些信息。分布式信息檢索便滿足了這一要求。 (8) 專家決策系統(tǒng)。專家決策系統(tǒng)也是數(shù)據(jù)庫應(yīng)用的一部分。由于越來越多的數(shù)據(jù)可以聯(lián)機(jī)獲取,特別是企業(yè)通過這些數(shù)據(jù)可以對企業(yè)的發(fā)展作出更好
8、的決策,以使企業(yè)更好地運(yùn)行,因此人工智能的發(fā)展,使得專家決策系統(tǒng)的應(yīng)用更加廣泛。1.1.2 數(shù)據(jù)庫應(yīng)用系統(tǒng)示例數(shù)據(jù)庫應(yīng)用系統(tǒng)示例圖1-1給出了一個(gè)有關(guān)職工項(xiàng)目管理系統(tǒng)數(shù)據(jù)庫的簡單示例。應(yīng)用該數(shù)據(jù)庫,可以查詢到全公司職工和職工工資信息、公司正在進(jìn)行或者已經(jīng)完成的項(xiàng)目信息,以及職工參加項(xiàng)目的情況,并對這些相關(guān)信息進(jìn)行維護(hù)。圖1-1是該應(yīng)用系統(tǒng)所涉及的部分?jǐn)?shù)據(jù)信息。圖1-1 職工項(xiàng)目管理系統(tǒng)數(shù)據(jù)庫圖1-1所示數(shù)據(jù)庫由5個(gè)文件組成,每個(gè)文件都存儲(chǔ)了同一記錄結(jié)構(gòu)的數(shù)據(jù)。Employee文件文件存儲(chǔ)了每個(gè)職工的相關(guān)信息,包括職工的職工號、姓名、性別、年齡、婚否、職稱和所在部門號;Item文件文件存儲(chǔ)了有關(guān)
9、項(xiàng)目的基本信息,包括項(xiàng)目編號、項(xiàng)目名稱、起始日期、終止日期、項(xiàng)目經(jīng)費(fèi)和驗(yàn)收日期;Item_Emp文件文件存儲(chǔ)了有關(guān)職工參與項(xiàng)目的信息,包括項(xiàng)目編號、參加該項(xiàng)目的職工編號、職工在該項(xiàng)目中的排名;Salary文件文件存儲(chǔ)了有關(guān)職工的薪酬信息,包括職工號、基本工資、津貼、物價(jià)補(bǔ)貼、養(yǎng)老保險(xiǎn)、醫(yī)療保險(xiǎn)和公積金;Department文件文件存儲(chǔ)了有關(guān)部門的基本信息,包括部門號、部門名稱、聯(lián)系電話和部門經(jīng)理。要定義這個(gè)數(shù)據(jù)庫,必須指定每個(gè)文件的記錄結(jié)構(gòu),并指定各個(gè)數(shù)據(jù)元素的數(shù)據(jù)類型。為了構(gòu)建這個(gè)職工項(xiàng)目管理系統(tǒng)數(shù)據(jù)庫,必須把每個(gè)職工、項(xiàng)目、職工參與項(xiàng)目情況等信息都以記錄的形式存儲(chǔ)在適當(dāng)?shù)奈募小_@里需要注
10、意的是,不同文件中的記錄可能是相關(guān)的。比如,Employee文件中的部門號Dno與Department文件中所存儲(chǔ)的部門號Dno有關(guān)。該職工項(xiàng)目管理系統(tǒng)數(shù)據(jù)庫構(gòu)建好以后,接下來,就要考慮如何對數(shù)據(jù)進(jìn)行存儲(chǔ)操作以及讀取操作。比如,需要做的查詢操作有:查詢所有參加了200801項(xiàng)目的職工號、姓名和職稱;查詢職工胡一民參加的所有項(xiàng)目情況。又如,可能要執(zhí)行的數(shù)據(jù)更新操作有:將參加200802項(xiàng)目的職工的津貼值都增加200;刪除所有張小華參與項(xiàng)目的相關(guān)信息等。這些都是職工項(xiàng)目管理系統(tǒng)的任務(wù)。 這個(gè)示例系統(tǒng)將貫穿本書的大多數(shù)章節(jié)。要實(shí)現(xiàn)這樣一個(gè)管理系統(tǒng),首先需要從需求分析階段開始為該系統(tǒng)設(shè)計(jì)一個(gè)新的數(shù)據(jù)庫
11、。在本書的第2章著重介紹了概念設(shè)計(jì)階段的成果實(shí)體-聯(lián)系(Entity-Relationship,簡稱ER)模型,接著實(shí)現(xiàn)邏輯設(shè)計(jì),將ER模型轉(zhuǎn)換成用商業(yè)數(shù)據(jù)庫管理系統(tǒng)DBMS實(shí)現(xiàn)的數(shù)據(jù)模型(即關(guān)系模型)來表達(dá),并利用第7章所講解的規(guī)范化理論改進(jìn)該數(shù)據(jù)庫設(shè)計(jì),最后對該關(guān)系模型進(jìn)行物理設(shè)計(jì),為存儲(chǔ)和訪問數(shù)據(jù)庫提供進(jìn)一步的詳細(xì)規(guī)范說明。整個(gè)數(shù)據(jù)庫設(shè)計(jì)過程將在第8章中借助于某種具體的計(jì)算機(jī)輔助設(shè)計(jì)工程(Computer-Aided Software Engineering,簡稱CASE)工具來整體實(shí)現(xiàn)。在第3、4、5章中,通過具體的數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì)實(shí)現(xiàn)整個(gè)系統(tǒng)所預(yù)設(shè)的各個(gè)功能,包括從數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查
12、詢到一些特定的業(yè)務(wù)邏輯功能的實(shí)現(xiàn),以及保證數(shù)據(jù)的正確有效和安全性。1.2 數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)管理技術(shù)的發(fā)展1.2.1 人工管理階段人工管理階段20世紀(jì)50年代中期以前,計(jì)算機(jī)本身的水平較低。在硬件方面,計(jì)算機(jī)的運(yùn)算速度低、內(nèi)存容量小,外存還沒有磁盤等直接存取的存儲(chǔ)設(shè)備;在軟件方面,還沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件。這一階段的計(jì)算機(jī)主要用于科學(xué)計(jì)算。這個(gè)階段數(shù)據(jù)管理的特點(diǎn)是:(1) 數(shù)據(jù)不保存。需要時(shí)把數(shù)據(jù)輸入,用完就撤走。數(shù)據(jù)不保存在計(jì)算機(jī)中。(2) 沒有管理數(shù)據(jù)的軟件系統(tǒng)。應(yīng)用程序不僅要管理數(shù)據(jù)的邏輯結(jié)構(gòu),還要設(shè)計(jì)其物理結(jié)構(gòu)、存取方法、輸入/輸出方法等。當(dāng)存儲(chǔ)改變時(shí),程序中存取數(shù)據(jù)的子
13、程序就需隨之改變,即數(shù)據(jù)和程序不具有獨(dú)立性。(3) 基本上沒有文件概念。數(shù)據(jù)的組織方式必須由程序員自行設(shè)計(jì)。(4) 數(shù)據(jù)是面向應(yīng)用的。一組數(shù)據(jù)只對應(yīng)于一個(gè)應(yīng)用程序。即使兩個(gè)應(yīng)用程序都涉及到了某些相同數(shù)據(jù),也必須各自定義,無法相互利用,不僅在程序之間有大量重復(fù)數(shù)據(jù),還易產(chǎn)生數(shù)據(jù)的不一致性(相同數(shù)據(jù)在不同程序中出現(xiàn)的值不同)。 在人工管理階段,上述數(shù)據(jù)與程序關(guān)系的特點(diǎn)如圖1-2所示。圖1-2 人工管理階段數(shù)據(jù)與程序的關(guān)系1.2.2 文件系統(tǒng)階段文件系統(tǒng)階段從20世紀(jì)50年代后期到60年代中期,計(jì)算機(jī)的硬件、軟件都有了很大發(fā)展:有了磁盤、磁鼓等直接存取的存儲(chǔ)設(shè)備;有了操作系統(tǒng),其中有專門管理數(shù)據(jù)的文
14、件系統(tǒng);在處理方式上,不僅有了文件批處理,而且能夠聯(lián)機(jī)實(shí)時(shí)處理。此時(shí),計(jì)算機(jī)不僅用于科學(xué)計(jì)算,還大量用于管理。文件系統(tǒng)階段有以下幾個(gè)特點(diǎn):(1) 數(shù)據(jù)存放在數(shù)據(jù)文件中,數(shù)據(jù)文件可長期保存在外存,需要時(shí),可方便地把數(shù)據(jù)文件調(diào)入內(nèi)存。因此,可經(jīng)常方便地對文件進(jìn)行檢索、修改、插入和刪除等操作。 (2) 數(shù)據(jù)文件由記錄組成(記錄由數(shù)據(jù)組成)。數(shù)據(jù)的存取基本上以記錄為單位,按文件名訪問,按記錄進(jìn)行存取。數(shù)據(jù)的邏輯結(jié)構(gòu)保存在使用數(shù)據(jù)的應(yīng)用程序中。應(yīng)用程序取得記錄后,首先根據(jù)數(shù)據(jù)的邏輯結(jié)構(gòu)把記錄分解成有含義的數(shù)據(jù),然后才使用這些數(shù)據(jù);應(yīng)用程序要存儲(chǔ)數(shù)據(jù)時(shí),首先要把數(shù)據(jù)組成記錄,才能進(jìn)一步把記錄存入數(shù)據(jù)文件。
15、(3) 程序和數(shù)據(jù)有了一定的獨(dú)立性。由于有了管理數(shù)據(jù)的軟件文件管理系統(tǒng),文件的邏輯結(jié)構(gòu)(記錄的邏輯結(jié)構(gòu))與存儲(chǔ)結(jié)構(gòu)由系統(tǒng)進(jìn)行了轉(zhuǎn)換。文件在存儲(chǔ)上的改變不一定反映到程序上,既可大大節(jié)省維護(hù)程序的工作量,程序員也可不必過多地考慮物理細(xì)節(jié),可把精力集中在算法上。(4) 文件多樣化。由于有了直接存取存儲(chǔ)設(shè)備,也就有了索引文件、鏈接文件、直接存取文件等。 在文件系統(tǒng)階段,用戶雖有了一定的方便,但系統(tǒng)仍有很多缺點(diǎn),這主要有:(1) 數(shù)據(jù)冗余度大。由于數(shù)據(jù)的基本存取單位是記錄,因此,程序員之間很難明白他人數(shù)據(jù)文件的邏輯結(jié)構(gòu)。雖然在理論上,一個(gè)用戶可通過文件管理系統(tǒng)訪問很多數(shù)據(jù)文件,但實(shí)際上,一個(gè)數(shù)據(jù)文件只能
16、對應(yīng)于同一個(gè)程序員的一個(gè)或幾個(gè)程序,不能共享,數(shù)據(jù)仍然是面向應(yīng)用的。隨著應(yīng)用的增加,數(shù)據(jù)文件也同步增加,且數(shù)據(jù)很多都是相同的。數(shù)據(jù)冗余度大,不僅浪費(fèi)存儲(chǔ)空間,而且數(shù)據(jù)的修改和維護(hù)也較困難,容易造成數(shù)據(jù)的不一致性(同一數(shù)據(jù)在多處出現(xiàn),但值不同)。 (2) 數(shù)據(jù)和程序缺乏獨(dú)立性。文件處理過程中,如果某一用戶要完成一個(gè)特定的軟件應(yīng)用,那么必須將該應(yīng)用中所需要的文件的定義和實(shí)現(xiàn)當(dāng)作該應(yīng)用編程的一部分,即文件是為特定程序服務(wù)的,改變數(shù)據(jù)的邏輯結(jié)構(gòu)就必須修改程序。應(yīng)用程序若有改變,就可能影響文件中數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),因此,數(shù)據(jù)和程序缺乏獨(dú)立性。這樣,文件系統(tǒng)仍然是一個(gè)不具有彈性的無結(jié)構(gòu)的數(shù)據(jù)集合。文件之間是孤
17、立的,不能反映現(xiàn)實(shí)世界中事物之間的內(nèi)在聯(lián)系。在文件系統(tǒng)階段,數(shù)據(jù)與程序的關(guān)系如圖1-3所示。 圖1-3 文件系統(tǒng)階段數(shù)據(jù)與程序的關(guān)系1.2.3 數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段20世紀(jì)60年代后期,計(jì)算機(jī)硬件、軟件有了更進(jìn)一步的發(fā)展。計(jì)算機(jī)的運(yùn)算速度快,內(nèi)存容量大,并有了大容量磁盤。隨著管理數(shù)據(jù)規(guī)模的增大,文件系統(tǒng)的缺點(diǎn)越來越令人難以忍受。人們迫切盼望能有數(shù)據(jù)冗余度小、可共享數(shù)據(jù)的系統(tǒng)。 文件系統(tǒng)中,數(shù)據(jù)為什么難以共享呢?原因就在于:數(shù)據(jù)的邏輯結(jié)構(gòu)不在數(shù)據(jù)文件中(在對應(yīng)的應(yīng)用程序中)。在文件系統(tǒng)中,采用“按文件名訪問,按記錄存取”的數(shù)據(jù)管理技術(shù),一般用戶雖然都可以訪問文件、數(shù)據(jù),但卻不知道這些數(shù)據(jù)
18、的含義,當(dāng)然就不能共享數(shù)據(jù)了。以如下一條記錄為例:1005張三7006151800設(shè)計(jì)所一般用戶很難理解其數(shù)據(jù)的邏輯結(jié)構(gòu),甚至連數(shù)據(jù)的創(chuàng)建者在經(jīng)過一段時(shí)間后重新看到此記錄時(shí),也會(huì)感到不可理解了。但如果數(shù)據(jù)的顯示形式為職工號 姓名 出生日期 工資 部門1005 張三 700615 1800 設(shè)計(jì)所則數(shù)據(jù)的邏輯結(jié)構(gòu)就比較清楚,共享自然就容易了。數(shù)據(jù)的邏輯結(jié)構(gòu)包含:數(shù)據(jù)的含義(名稱)、類型、數(shù)據(jù)本身的約束條件以及數(shù)據(jù)之間的關(guān)系(約束條件)等。 定義數(shù)據(jù)時(shí),能簡單又明確地定義數(shù)據(jù)的邏輯結(jié)構(gòu);存定義數(shù)據(jù)時(shí),能簡單又明確地定義數(shù)據(jù)的邏輯結(jié)構(gòu);存儲(chǔ)數(shù)據(jù)時(shí),能同時(shí)把數(shù)據(jù)的邏輯結(jié)構(gòu)也存入數(shù)據(jù)文件,儲(chǔ)數(shù)據(jù)時(shí),能同
19、時(shí)把數(shù)據(jù)的邏輯結(jié)構(gòu)也存入數(shù)據(jù)文件,就成了改進(jìn)文件系統(tǒng)的關(guān)鍵,從而出現(xiàn)了數(shù)據(jù)管理的新方式數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBase System,簡稱,簡稱DBS)。在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)以一種全新的方式數(shù)據(jù)庫方式存儲(chǔ);管理數(shù)據(jù)庫生成、修改的是一種新的管理數(shù)據(jù)的軟件數(shù)據(jù)庫管理系數(shù)據(jù)庫管理系統(tǒng)統(tǒng)(DataBase Management System,簡稱,簡稱DBMS)。數(shù)據(jù)庫數(shù)據(jù)庫(DataBase,簡稱,簡稱DB)是存儲(chǔ)在計(jì)算機(jī)系統(tǒng)內(nèi)的有結(jié)構(gòu)的數(shù)據(jù)集合,是相關(guān)數(shù)據(jù)的集合,數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和維護(hù)。在此,數(shù)據(jù)(Data)指的是可記錄的客觀事實(shí),并且有隱含的含義。例如,考慮某班級的全體同學(xué)(甚
20、至是全校的學(xué)生)的姓名、出生日期、電話號碼和家庭地址,把這些數(shù)據(jù)保存在一個(gè)帶索引的通訊簿上,或者使用Access、Excel等軟件保存到某個(gè)電子文檔中,這就是帶隱含含義的相關(guān)數(shù)據(jù)的集合,就是一個(gè)數(shù)據(jù)庫。在數(shù)據(jù)庫中,數(shù)據(jù)與數(shù)據(jù)的含義(數(shù)據(jù)名稱及說明)同時(shí)存儲(chǔ)。數(shù)據(jù)的最小存取單位是構(gòu)成記錄的、有名稱的、有含義的最小數(shù)據(jù)單位數(shù)據(jù)項(xiàng)。定義數(shù)據(jù)庫時(shí),必須定義數(shù)據(jù)項(xiàng)的邏輯結(jié)構(gòu)。使用數(shù)據(jù)庫時(shí),以數(shù)據(jù)項(xiàng)名存儲(chǔ)數(shù)據(jù)、更新數(shù)據(jù)以及查詢和使用數(shù)據(jù)。所以,在數(shù)據(jù)庫中,不僅包含數(shù)據(jù)本身,還包含了數(shù)據(jù)結(jié)構(gòu)和約束的完整性定義或者描述。這些定義存儲(chǔ)在數(shù)據(jù)庫管理系統(tǒng)的目錄(Catalog)中,稱為數(shù)據(jù)庫的元數(shù)據(jù)數(shù)據(jù)庫的元數(shù)據(jù)(
21、Meta-Data)(也稱數(shù)據(jù)字典也稱數(shù)據(jù)字典),元數(shù)據(jù)描述了數(shù)據(jù)庫的結(jié)構(gòu)。任何合法用戶都可在數(shù)據(jù)庫管理系統(tǒng)的元數(shù)據(jù)的幫助下,利用數(shù)據(jù)項(xiàng)名方便地訪問數(shù)據(jù)庫中的數(shù)據(jù)及它們的邏輯定義,并使用這些數(shù)據(jù)(即使所用數(shù)據(jù)是其他人建立的,也不會(huì)增加使用的難度),亦即數(shù)據(jù)可高度共享。由于數(shù)據(jù)可高度共享,因此,在數(shù)據(jù)庫中,數(shù)據(jù)不再以各個(gè)應(yīng)用程序各自的要求來分別存儲(chǔ),而是把整個(gè)系統(tǒng)所有的數(shù)據(jù),根據(jù)它們之間固有的關(guān)系,分門別類地加以存儲(chǔ)。也就是說,數(shù)據(jù)庫中的數(shù)據(jù)不再是互相獨(dú)立、毫無聯(lián)系的,不再有有害的、不必要的冗余了。數(shù)據(jù)與應(yīng)用程序互相獨(dú)立,數(shù)據(jù)可為所有合法用戶共享??梢姡瑪?shù)據(jù)庫系統(tǒng)區(qū)別于傳統(tǒng)文件處理系統(tǒng)的最重要特
22、征就是引入了數(shù)據(jù)庫這個(gè)概念,以及產(chǎn)生了專門用來實(shí)現(xiàn)和維護(hù)數(shù)據(jù)庫而建立的通用軟件數(shù)據(jù)庫管理系統(tǒng)。也就是說,數(shù)據(jù)庫是存儲(chǔ)在計(jì)算機(jī)系統(tǒng)內(nèi)的有結(jié)構(gòu)的數(shù)據(jù)的集合,數(shù)據(jù)是由數(shù)據(jù)庫管理系統(tǒng)管理的。數(shù)據(jù)庫系統(tǒng)的出現(xiàn),極大地推動(dòng)了計(jì)算機(jī)數(shù)據(jù)管理事業(yè),也極大地推動(dòng)了計(jì)算機(jī)事業(yè)本身??梢院敛豢鋸埖卣f,目前,計(jì)算機(jī)的任何應(yīng)用都離不開數(shù)據(jù)庫。數(shù)據(jù)庫系統(tǒng)的水平已經(jīng)成為國家實(shí)力的標(biāo)志之一。1.3 數(shù)據(jù)庫系統(tǒng)的構(gòu)成數(shù)據(jù)庫系統(tǒng)的構(gòu)成1.3.1 數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBase System,簡稱DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,由計(jì)算機(jī)硬件、操作系統(tǒng)、DBMS、DB、應(yīng)用程序和用戶以及數(shù)據(jù)庫開發(fā)
23、和管理人員等組成。數(shù)據(jù)庫系統(tǒng)中,程序與數(shù)據(jù)的關(guān)系如圖1-4所示。圖1-4 數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)與程序的關(guān)系與文件系統(tǒng)相比,DBS有如下四個(gè)主要特點(diǎn):1整體數(shù)據(jù)結(jié)構(gòu)化整體數(shù)據(jù)結(jié)構(gòu)化整體數(shù)據(jù)的結(jié)構(gòu)化是數(shù)據(jù)庫的主要特征之一。數(shù)據(jù)的邏輯結(jié)構(gòu)存儲(chǔ)在數(shù)據(jù)庫(數(shù)據(jù)字典)中。數(shù)據(jù)項(xiàng)是數(shù)據(jù)庫組織的基礎(chǔ)。由于整體數(shù)據(jù)的結(jié)構(gòu)化可減少乃至消除不必要的數(shù)據(jù)冗余,因此節(jié)約了整體數(shù)據(jù)的存儲(chǔ)空間,避免了數(shù)據(jù)的不一致性和不相容性(數(shù)據(jù)不符合規(guī)定的約束條件)。2數(shù)據(jù)的共享度高數(shù)據(jù)的共享度高在DBMS的管理下,由于數(shù)據(jù)與數(shù)據(jù)的邏輯結(jié)構(gòu)同時(shí)存儲(chǔ)在數(shù)據(jù)庫中;顯示數(shù)據(jù)時(shí),可同時(shí)顯示數(shù)據(jù)的邏輯結(jié)構(gòu);整個(gè)組織的整體數(shù)據(jù)被綜合考慮,整體數(shù)據(jù)結(jié)構(gòu)化
24、。因而,DBS的數(shù)據(jù)共享度較高。合法用戶都可很方便地使用數(shù)據(jù)庫中的數(shù)據(jù),且不用擔(dān)心出現(xiàn)數(shù)據(jù)的不一致性和不相容性。數(shù)據(jù)庫中的數(shù)據(jù)可適應(yīng)各種合法用戶的合理要求以及各種應(yīng)用的要求,可以方便地?cái)U(kuò)充新的應(yīng)用,因而,數(shù)據(jù)共享度高。 3數(shù)據(jù)的獨(dú)立性高數(shù)據(jù)的獨(dú)立性高數(shù)據(jù)的獨(dú)立性是指數(shù)據(jù)與應(yīng)用程序之間的關(guān)聯(lián)性。數(shù)據(jù)和數(shù)據(jù)的結(jié)構(gòu)是存儲(chǔ)在數(shù)據(jù)庫中的(在外存上),是由DBMS管理的。應(yīng)用程序既不存儲(chǔ)數(shù)據(jù),也不存儲(chǔ)數(shù)據(jù)的邏輯結(jié)構(gòu)。當(dāng)用戶需要數(shù)據(jù)時(shí),DBMS把數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換成用戶需要的格式后,再提供給用戶使用。用戶程序要處理的只是所面對的數(shù)據(jù)。用戶所面對數(shù)據(jù)的結(jié)構(gòu)并非數(shù)據(jù)庫中數(shù)據(jù)的實(shí)際存儲(chǔ)結(jié)構(gòu),也非數(shù)據(jù)庫中數(shù)據(jù)的邏輯
25、結(jié)構(gòu),僅僅是所面對數(shù)據(jù)的邏輯結(jié)構(gòu)而已。因此,應(yīng)用程序存取數(shù)據(jù)的子程序既可簡化又可規(guī)范化。 當(dāng)數(shù)據(jù)庫中數(shù)據(jù)的實(shí)際存儲(chǔ)方式改變時(shí),DBMS可以適當(dāng)改變轉(zhuǎn)換數(shù)據(jù)的方式,而使用戶面對數(shù)據(jù)的邏輯結(jié)構(gòu)保持不變,從而處理數(shù)據(jù)的應(yīng)用程序也可保持不變,這稱為數(shù)據(jù)的物理獨(dú)立性;當(dāng)數(shù)據(jù)庫中數(shù)據(jù)的邏輯結(jié)構(gòu)發(fā)生變化時(shí),DBMS也可適當(dāng)改變數(shù)據(jù)的轉(zhuǎn)換方式,而使用戶面對數(shù)據(jù)的邏輯結(jié)構(gòu)保持不變,使得處理數(shù)據(jù)的應(yīng)用程序仍可保持不變,這稱為數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)與程序互相獨(dú)立,不僅可方便地編制各種應(yīng)用程序,而且可大大減輕應(yīng)用程序的維護(hù)工作。 4高度的數(shù)據(jù)控制能力(1) 較高的數(shù)據(jù)安全性(Security)。在DBMS管理下,只有
26、合法用戶才能訪問數(shù)據(jù)庫,才能訪問他有權(quán)訪問的數(shù)據(jù),才能對數(shù)據(jù)進(jìn)行他有權(quán)進(jìn)行的操作,且操作必須合法。(2) 較好的數(shù)據(jù)完整性(Integrity)。由DBMS而不是用戶程序自動(dòng)檢查數(shù)據(jù)的一致性、相容性,保證數(shù)據(jù)符合完整性約束條件。(3) 較強(qiáng)的并發(fā)控制能力。DBMS提供并發(fā)控制手段,使多個(gè)用戶程序同時(shí)對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作時(shí),可以得到有效控制,即保證共享、并發(fā)操作,且不致破壞數(shù)據(jù)的完整性。(4) 較強(qiáng)的數(shù)據(jù)恢復(fù)能力。計(jì)算機(jī)系統(tǒng)出現(xiàn)各種故障是很正常的,數(shù)據(jù)庫中的數(shù)據(jù)遭到破壞、丟失也是可能的。DBMS必須具有某些數(shù)據(jù)庫的恢復(fù)功能,即使數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到正確狀態(tài)的功能。上述各種數(shù)據(jù)控制功能都不是
27、用戶程序的功能,而是DBMS的功能。它保證了數(shù)據(jù)庫系統(tǒng)的正常運(yùn)行,也大大簡化了應(yīng)用程序。 1.3.2 數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,簡稱DBMS)是在操作系統(tǒng)支持下工作的數(shù)據(jù)管理軟件,是支持用戶創(chuàng)建和維護(hù)數(shù)據(jù)庫的一組程序包。對內(nèi),它負(fù)責(zé)管理數(shù)據(jù)庫;對外,它向用戶提供一整套命令。利用這些命令,合法用戶可以建立數(shù)據(jù)庫、定義數(shù)據(jù),對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行各種合法的操作。數(shù)據(jù)是可以共享的,操作是可以同時(shí)進(jìn)行的。 DBMS是數(shù)據(jù)庫系統(tǒng)(DBS)的關(guān)鍵內(nèi)容。只有采用高質(zhì)量的DBMS,才有可能建立高質(zhì)量的DBS。DBMS有如下六個(gè)基本功能:1數(shù)
28、據(jù)定義數(shù)據(jù)定義(Data Definition)DBMS提供了數(shù)據(jù)定義語言(Data Definition Language,簡稱DDL)。用戶利用DDL可方便地定義數(shù)據(jù)庫中數(shù)據(jù)的邏輯結(jié)構(gòu)(其中最基本的是數(shù)據(jù)與數(shù)據(jù)的含義同時(shí)定義)。用戶在分析、研究整個(gè)系統(tǒng)所有數(shù)據(jù)的基礎(chǔ)上,全面安排和定義數(shù)據(jù)的結(jié)構(gòu),并將數(shù)據(jù)庫存儲(chǔ)在DBMS控制的存儲(chǔ)介質(zhì)上。 2數(shù)據(jù)操縱數(shù)據(jù)操縱(Data Manipulation)DBMS提供了數(shù)據(jù)操縱語言(Data Manipulation Language,簡稱DML)。用戶利用DML可以實(shí)現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的各種操作:插入、查詢、修改或刪除等。例如,查詢數(shù)據(jù)庫以獲取所需數(shù)據(jù)
29、、更新數(shù)據(jù)庫以反映客觀世界的變化以及由數(shù)據(jù)生成報(bào)表等。3完整性約束檢查完整性約束檢查(Integrity Constraint Check)所謂完整性約束,是指數(shù)據(jù)必須符合的一些規(guī)定,如學(xué)生的學(xué)號必須唯一、所屬部門必須存在、出生年份不能在1900年以前等。DBMS應(yīng)能支持一些常用的完整性約束檢查功能。 4訪問控制訪問控制(Access Control)數(shù)據(jù)庫中的數(shù)據(jù)不屬于任何程序,數(shù)據(jù)可以共享(Sharing),但只有合法用戶才可以訪問他可以訪問的數(shù)據(jù),才能進(jìn)行他可以執(zhí)行的數(shù)據(jù)操作,這就是訪問控制。DBMS提供了數(shù)據(jù)控制語言(Data Control Language,簡稱DCL)來實(shí)現(xiàn)對不同
30、級別用戶的訪問控制功能。5并發(fā)控制(Concurrency Control)共享數(shù)據(jù)庫允許多個(gè)用戶和程序并發(fā)地訪問數(shù)據(jù)庫,這就可能引起沖突,引起數(shù)據(jù)的不一致。因此,DBMS應(yīng)有并發(fā)控制的功能,確保試圖更新同一數(shù)據(jù)的多個(gè)用戶能夠以一種受控的方式完成各自的工作,即避免并發(fā)操作時(shí)可能帶來的數(shù)據(jù)不一致性。6數(shù)據(jù)庫恢復(fù)(Database Recovery)數(shù)據(jù)庫是有可能遭到破壞的。因此,DBMS應(yīng)具有恢復(fù)數(shù)據(jù)庫的功能。 1.3.3 數(shù)據(jù)庫系統(tǒng)人員的構(gòu)成數(shù)據(jù)庫系統(tǒng)人員的構(gòu)成設(shè)計(jì)、構(gòu)建、使用和管理數(shù)據(jù)庫的人員是構(gòu)成數(shù)據(jù)庫系統(tǒng)不可或缺的一部分。對于一個(gè)小型數(shù)據(jù)庫應(yīng)用系統(tǒng)而言,常常集所有職能于一人,由一人來完成
31、定義、構(gòu)建、使用以及維護(hù)數(shù)據(jù)庫,也就不存在什么分工。但是,對于一個(gè)大型數(shù)據(jù)庫系統(tǒng)而言,數(shù)據(jù)庫的設(shè)計(jì)、使用和維護(hù)工作就需要多人共同參與,我們可以將這些人員根據(jù)所行使職能的不同進(jìn)行分類,有數(shù)據(jù)庫管理員、數(shù)據(jù)庫設(shè)計(jì)者、應(yīng)用系統(tǒng)開發(fā)人員以及終端用戶。 1數(shù)據(jù)庫管理員數(shù)據(jù)庫管理員數(shù)據(jù)庫管理員(DataBase Administrator,簡稱DBA)是數(shù)據(jù)庫所屬單位的代表。一個(gè)單位決定開發(fā)一個(gè)數(shù)據(jù)庫系統(tǒng)時(shí),首先就應(yīng)確定DBA的人選。DBA不僅應(yīng)當(dāng)熟悉系統(tǒng)軟件,還應(yīng)熟悉本單位的業(yè)務(wù)工作。DBA應(yīng)自始至終地參加整個(gè)數(shù)據(jù)庫系統(tǒng)的研制開發(fā)工作,開發(fā)成功后,DBA又將負(fù)責(zé)全面管理和控制數(shù)據(jù)庫系統(tǒng)的運(yùn)行和維護(hù)工作。
32、 DBA的主要職責(zé)有:(1) 在用戶與數(shù)據(jù)庫開發(fā)人員之間進(jìn)行協(xié)調(diào)和溝通。DBA須在用戶和數(shù)據(jù)庫開發(fā)人員之間建立溝通和聯(lián)系,使開發(fā)人員確實(shí)知道用戶的所有目的和要求,使用戶熟悉開發(fā)人員的開發(fā)思路和具體布局。(2) 參與數(shù)據(jù)庫設(shè)計(jì)工作。DBA應(yīng)熟悉數(shù)據(jù)庫的整體布局及其緣由,熟悉數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)、存取策略及其緣由,既要提高效率又要便利廣大用戶。(3) 決定數(shù)據(jù)的完整性約束條件和不同用戶的存取權(quán)限。DBA必須保證數(shù)據(jù)庫的數(shù)據(jù)符合完整性要求,必須保證數(shù)據(jù)庫的安全,因此,DBA必須確定符合實(shí)際的數(shù)據(jù)完整性約束條件,確定每個(gè)用戶對數(shù)據(jù)庫的存取權(quán)限。(4) 保證數(shù)據(jù)庫的正常運(yùn)行,進(jìn)行數(shù)據(jù)庫的維護(hù)工作。數(shù)據(jù)庫投入
33、運(yùn)行后,DBA應(yīng)監(jiān)視數(shù)據(jù)庫的運(yùn)行,進(jìn)行事先規(guī)定的備份工作,及時(shí)處理出現(xiàn)的問題,一旦出現(xiàn)故障,數(shù)據(jù)庫遭到破壞,應(yīng)及時(shí)恢復(fù)。運(yùn)行期內(nèi),數(shù)據(jù)庫的各種維護(hù)工作也由DBA負(fù)責(zé)。(5) 提出數(shù)據(jù)庫的重構(gòu)計(jì)劃。當(dāng)用戶的需求有較大的改變時(shí),DBA還應(yīng)及時(shí)提出數(shù)據(jù)庫的重構(gòu)計(jì)劃,供部門負(fù)責(zé)人參考。 2數(shù)據(jù)庫設(shè)計(jì)者數(shù)據(jù)庫設(shè)計(jì)者通常情況下,數(shù)據(jù)庫設(shè)計(jì)者就是由數(shù)據(jù)庫管理員DBA擔(dān)任的。數(shù)據(jù)庫設(shè)計(jì)者需要識(shí)別存儲(chǔ)到數(shù)據(jù)庫中的數(shù)據(jù),并選擇適當(dāng)?shù)慕Y(jié)構(gòu)來表示和存儲(chǔ)這些數(shù)據(jù)。這就使得他們必須要能和系統(tǒng)的終端用戶進(jìn)行溝通,分析用戶需求,并針對用戶需求來進(jìn)行數(shù)據(jù)庫各個(gè)階段的設(shè)計(jì)建模。同時(shí)參與用戶需求分析以及確定系統(tǒng)事務(wù)的規(guī)范說明的人員
34、還有系統(tǒng)分析員(System Analyst,簡稱SA)。 3應(yīng)用系統(tǒng)開發(fā)人員應(yīng)用系統(tǒng)開發(fā)人員(即應(yīng)用程序員),需要用程序來實(shí)現(xiàn)該數(shù)據(jù)庫應(yīng)用系統(tǒng)的各功能模塊,并完成數(shù)據(jù)庫的調(diào)試、安裝以及維護(hù)。通常,應(yīng)用系統(tǒng)開發(fā)人員還需要負(fù)責(zé)對應(yīng)用系統(tǒng)的終端用戶進(jìn)行系統(tǒng)的使用培訓(xùn)。 4終端用戶終端用戶(End User)是指那些利用應(yīng)用系統(tǒng)的用戶界面以查詢、更新或生成報(bào)表等形式訪問數(shù)據(jù)庫的人員。事實(shí)上,數(shù)據(jù)庫主要就是為了終端用戶的使用而存在的。以上所提到的數(shù)據(jù)庫管理員、數(shù)據(jù)庫設(shè)計(jì)者、應(yīng)用系統(tǒng)開發(fā)人員、終端用戶等人員都是針對某個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)過程存在的人員。其實(shí),還存在一些與該應(yīng)用系統(tǒng)特定數(shù)據(jù)庫本身似乎并無關(guān)
35、聯(lián),但卻是數(shù)據(jù)庫系統(tǒng)發(fā)展中不可缺少的人員組成,比如數(shù)據(jù)庫管理系統(tǒng)(DBMS)設(shè)計(jì)和開發(fā)者、CASE工具等數(shù)據(jù)庫相關(guān)工具的開發(fā)者。 1.4 數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)1.4.1 數(shù)據(jù)的三級模式結(jié)構(gòu)數(shù)據(jù)的三級模式結(jié)構(gòu)歸根結(jié)底,數(shù)據(jù)庫中的數(shù)據(jù)是被廣大用戶使用的,任何用戶不希望自己面對的數(shù)據(jù)邏輯結(jié)構(gòu)發(fā)生變化(數(shù)據(jù)可以變化,如某人的月工資從2000元變?yōu)?000元),否則,應(yīng)用程序就必須重寫。即使數(shù)據(jù)的存儲(chǔ)介質(zhì)發(fā)生變化,單個(gè)用戶所面對數(shù)據(jù)的邏輯結(jié)構(gòu)也不發(fā)生變化。數(shù)據(jù)庫中,整體數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)的需求發(fā)生變化是有可能的、正常的、有時(shí)也是必需的。而單個(gè)用戶不希望自己面對的局部數(shù)據(jù)的邏輯結(jié)構(gòu)發(fā)生變
36、化也是合理的,必須尊重的。為此,各實(shí)際的數(shù)據(jù)庫管理系統(tǒng)雖然使用的環(huán)境不同,內(nèi)部數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不同,使用的語言也不同,但一般都采用三級模式結(jié)構(gòu)。1模式和實(shí)例模式和實(shí)例將數(shù)據(jù)庫的描述和數(shù)據(jù)庫本身加以區(qū)別,是非常重要的。數(shù)據(jù)庫的描述稱為數(shù)據(jù)庫模式(Data Schema),模式是對全體數(shù)據(jù)的邏輯結(jié)構(gòu)、聯(lián)系和約束的描述。模式是在數(shù)據(jù)庫設(shè)計(jì)階段就確定下來的,并且一般不會(huì)頻繁地修改。圖1-5表示的是圖1-1所示數(shù)據(jù)庫的模式圖,圖中顯示了每個(gè)記錄類型的結(jié)構(gòu),但沒有包含具體的數(shù)據(jù)。模式中的每一個(gè)對象(如Employee、Item等)稱為一個(gè)模式構(gòu)造(Schema Construct)。當(dāng)然,在圖1-5中只表示
37、了模式的一些方面,如記錄類型的名字(如Employee等)、數(shù)據(jù)項(xiàng)(如Eno、Ename等)等,模式的其他方面并沒有表示出來,比如記錄項(xiàng)的數(shù)據(jù)類型、記錄類型之間的關(guān)系、有關(guān)數(shù)據(jù)的約束等。 圖1-5 數(shù)據(jù)庫模式圖數(shù)據(jù)庫中存儲(chǔ)的實(shí)際數(shù)據(jù)會(huì)隨著客觀現(xiàn)實(shí)的變化而被修改,例如,公司新增了一位員工或者員工的工資發(fā)生了改變,數(shù)據(jù)庫都要進(jìn)行相應(yīng)的修改。一個(gè)特定時(shí)刻數(shù)據(jù)庫中的即時(shí)數(shù)據(jù)稱為該數(shù)據(jù)庫模式的一個(gè)實(shí)例(Instance)或者狀態(tài)。因此,數(shù)據(jù)庫模式是穩(wěn)定的,而實(shí)例是在不斷變化、不斷更新的。2數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的三級模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的三級模式結(jié)構(gòu)數(shù)據(jù)的三級模式結(jié)構(gòu)包含有外模式、模式和內(nèi)模式,如圖1-6
38、所示。其目的是將用戶應(yīng)用和物理數(shù)據(jù)庫分離出來。圖1-6 數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的三級模式結(jié)構(gòu)為了支持?jǐn)?shù)據(jù)的三級模式,DBMS必須提供這三級模式之間的兩級映像,即外模式/模式映像與模式/內(nèi)模式映像。1) 模式(Schema)模式也稱邏輯模式(Logical Schema),是數(shù)據(jù)庫中全體數(shù)據(jù)在邏輯上的視圖。它通常以某種數(shù)據(jù)模型為基礎(chǔ),定義數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu),例如,數(shù)據(jù)記錄的名稱,數(shù)據(jù)項(xiàng)的名稱、類型、域值等;還要定義數(shù)據(jù)項(xiàng)之間的聯(lián)系,不同記錄之間的聯(lián)系;以及定義與數(shù)據(jù)有關(guān)的安全性、完整性等要求。安全性主要指保密性。2) 外模式(External Schema)外模式也稱子模式(Sub Schem
39、a)或用戶模式,是個(gè)別用戶組的數(shù)據(jù)庫視圖。每個(gè)外模式描述的是一個(gè)特定用戶組所感興趣的那部分?jǐn)?shù)據(jù)庫,而對該用戶組隱藏了數(shù)據(jù)庫的其他部分。外模式是模式的子集。不同用戶的外模式是不同的(可相互覆蓋)。數(shù)據(jù)庫管理系統(tǒng)提供外模式描述語言(Sub-DDL)來描述外模式。Sub-DDL給出的用以定義一個(gè)用戶數(shù)據(jù)視圖的全部語句稱為此用戶的外模式。3) 內(nèi)模式(Internal Schema)內(nèi)模式也稱存儲(chǔ)模式(Storage Schema)。它既定義了數(shù)據(jù)庫中全部數(shù)據(jù)的物理結(jié)構(gòu),還定義了數(shù)據(jù)的存儲(chǔ)方法、存取策略等。內(nèi)模式與數(shù)據(jù)存儲(chǔ)的軟件和硬件環(huán)境有關(guān)。DBMS提供內(nèi)模式描述語言(內(nèi)模式DDL)來描述和定義內(nèi)模
40、式。對于一個(gè)數(shù)據(jù)庫系統(tǒng)來說,只有一個(gè)模式和一個(gè)內(nèi)模式,但可以有多個(gè)外模式。實(shí)際的數(shù)據(jù)庫與內(nèi)模式對應(yīng),應(yīng)用程序則與外模式有關(guān)。模式/內(nèi)模式映像是唯一的,但有多個(gè)外模式/模式映像,每一個(gè)外模式都有一個(gè)外模式/模式映像(包含在該外模式定義中)。 1.4.2 數(shù)據(jù)獨(dú)立性數(shù)據(jù)獨(dú)立性三級模式結(jié)構(gòu)中,在外模式與模式之間通過外模式/模式映像進(jìn)行轉(zhuǎn)換。當(dāng)模式改變時(shí),只要相應(yīng)改變外模式/模式映像,即可使外模式保持不變。在模式與內(nèi)模式之間通過模式/內(nèi)模式映像進(jìn)行轉(zhuǎn)換。當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變時(shí),只要相應(yīng)改變模式/內(nèi)模式映像,即可使模式保持不變,從而,外模式也可保持不變。有了這二級轉(zhuǎn)換,就使數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有較高的邏
41、輯獨(dú)立性和物理獨(dú)立性。 1外模式外模式/模式映像和數(shù)據(jù)的邏輯獨(dú)立性模式映像和數(shù)據(jù)的邏輯獨(dú)立性數(shù)據(jù)的邏輯獨(dú)立性,是指當(dāng)數(shù)據(jù)庫的模式發(fā)生改變時(shí),只需要改變存在于外模式和概念模式之間的映射轉(zhuǎn)換,無需改變外模式或應(yīng)用程序??梢酝ㄟ^改變概念模式(如在模式中增加新的記錄類型),只要不破壞原有記錄類型之間的聯(lián)系(在原有記錄類型之間增加新的數(shù)據(jù)項(xiàng),或者在某些記錄類型中增加新的數(shù)據(jù)項(xiàng)),只需相應(yīng)改變各個(gè)外模式/模式的映像,即對模式重新邏輯重組后,引用外模式構(gòu)造的應(yīng)用程序可以不必修改。 2模式模式/內(nèi)模式映像和數(shù)據(jù)的物理獨(dú)立性內(nèi)模式映像和數(shù)據(jù)的物理獨(dú)立性數(shù)據(jù)的物理獨(dú)立性,是指當(dāng)數(shù)據(jù)庫的內(nèi)模式發(fā)生改變時(shí),系統(tǒng)只要改
42、變概念模式和內(nèi)模式之間的映射轉(zhuǎn)換,而不必改變模式,從而更不需要改變內(nèi)模式。當(dāng)對某些物理文件進(jìn)行重新組織時(shí),很可能需要對內(nèi)模式作出相應(yīng)的變動(dòng),例如創(chuàng)建一種新的存取結(jié)構(gòu)以提高檢索或更新的效率。如果此時(shí)數(shù)據(jù)仍以原來的形式保存在數(shù)據(jù)中,那么概念模式不必改變,從而不會(huì)影響外模式或者應(yīng)用程序。 1.4.3 SQL中的三級模式結(jié)構(gòu)中的三級模式結(jié)構(gòu)應(yīng)該指出,三級模式結(jié)構(gòu)并不是關(guān)系模型特有的,其他數(shù)據(jù)模型也同樣可以有這種結(jié)構(gòu),但是,關(guān)系模型特別適合于實(shí)現(xiàn)三級模式結(jié)構(gòu)。概念模型是很容易用關(guān)系模型來實(shí)現(xiàn)的。外模式也可以用對概念模型中的關(guān)系進(jìn)行各種關(guān)系操作來定義(操作的結(jié)果也是關(guān)系,所以外模式也是關(guān)系模型),但內(nèi)模式
43、卻不是用關(guān)系模型實(shí)現(xiàn)的。相反,內(nèi)模式仍然與以前的格式是相同的。DBMS中采用的關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言結(jié)構(gòu)化查詢語言(Structure Query Language,簡稱SQL)支持?jǐn)?shù)據(jù)庫的三級模式結(jié)構(gòu),如圖1-7所示。從圖中可以看出,模式與基本表相對應(yīng),外模式與視圖相對應(yīng),內(nèi)模式與存儲(chǔ)文件相對應(yīng)?;颈砗鸵晥D都稱為關(guān)系。1基本表基本表(Base Table)基本表是模式的基本內(nèi)容。每個(gè)基本表都是一個(gè)實(shí)際存在的關(guān)系。 圖1-7 SQL支持的數(shù)據(jù)庫模式2視圖視圖(View)視圖是外模式的基本單位,用戶通過視圖使用數(shù)據(jù)庫中基于基本表的數(shù)據(jù)(基本表也可作為外模式使用)。一個(gè)視圖雖然也是一個(gè)關(guān)系,但是它
44、與基本表有著本質(zhì)的區(qū)別。任何一個(gè)視圖都是從已有的若干關(guān)系導(dǎo)出的關(guān)系,它只是邏輯上的定義,實(shí)際中并不存在。在導(dǎo)出時(shí),給出一個(gè)視圖的定義(從哪幾個(gè)關(guān)系中、根據(jù)什么標(biāo)準(zhǔn)選取數(shù)據(jù)、組成一個(gè)什么名稱的關(guān)系等),此定義存放在數(shù)據(jù)庫(數(shù)據(jù)字典)中,但沒有真正執(zhí)行此定義(并未真正生成此關(guān)系)。3存儲(chǔ)文件存儲(chǔ)文件存儲(chǔ)文件是內(nèi)模式的基本單位。每一個(gè)存儲(chǔ)文件可存儲(chǔ)一個(gè)或多個(gè)基本表的內(nèi)容。一個(gè)基本表可有若干索引,索引也存儲(chǔ)在存儲(chǔ)文件中。存儲(chǔ)文件的存儲(chǔ)結(jié)構(gòu)對用戶是透明的。對于目前常用的關(guān)系模型來說,一般用戶面對的僅僅是外模式。數(shù)據(jù)庫管理員負(fù)責(zé)模式、外模式的定義和模式、外模式之間的映像定義,以及內(nèi)模式中的索引。至于內(nèi)模式
45、的其他內(nèi)容(包括模式/內(nèi)模式的映像)都是由DBMS負(fù)責(zé)的。 1.4.4 面對用戶的數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)面對用戶的數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)三級模式結(jié)構(gòu)是數(shù)據(jù)庫系統(tǒng)最本質(zhì)的系統(tǒng)結(jié)構(gòu),它是從數(shù)據(jù)結(jié)構(gòu)的角度來看待問題的,而用戶是以數(shù)據(jù)庫系統(tǒng)的服務(wù)方式來看待數(shù)據(jù)庫系統(tǒng)的,這就是數(shù)據(jù)庫系統(tǒng)的軟件體系結(jié)構(gòu)。根據(jù)這種觀點(diǎn),當(dāng)今的數(shù)據(jù)庫系統(tǒng)大致可以分為四類:集中式系統(tǒng)、文件服務(wù)器系統(tǒng)、客戶/服務(wù)器系統(tǒng)和瀏覽器/服務(wù)器系統(tǒng)。1集中式系統(tǒng)集中式系統(tǒng)集中式系統(tǒng)是指一臺(tái)主機(jī)帶上多個(gè)用戶終端的數(shù)據(jù)庫系統(tǒng)。在集中式系統(tǒng)中,DBMS、DB、應(yīng)用程序都是集中存放在主機(jī)上的。用戶通過終端可以并發(fā)地訪問主機(jī)上的數(shù)據(jù)庫,共享其中的數(shù)據(jù),但所
46、有的處理數(shù)據(jù)的工作都由主機(jī)完成。用戶在一個(gè)終端上提出要求,主機(jī)根據(jù)用戶的要求訪問數(shù)據(jù)庫,運(yùn)行應(yīng)用程序?qū)?shù)據(jù)進(jìn)行處理,并把處理結(jié)果回送該終端輸出。集中式處理的優(yōu)點(diǎn)在于簡單、可靠、安全;缺點(diǎn)是主機(jī)的任務(wù)很重,終端數(shù)有限,當(dāng)主機(jī)出現(xiàn)故障時(shí),整個(gè)系統(tǒng)也不能使用。2文件服務(wù)器系統(tǒng)文件服務(wù)器系統(tǒng)在文件服務(wù)器系統(tǒng)中,有一臺(tái)計(jì)算機(jī)作為文件服務(wù)器使用,在服務(wù)器中存放可共享的數(shù)據(jù)庫。各個(gè)用戶通過自己的PC機(jī)來訪問服務(wù)器。但服務(wù)器的功能僅僅為在數(shù)據(jù)庫中檢索出用戶需要的文件,并把這些數(shù)據(jù)文件傳送到用戶的PC機(jī)上,服務(wù)器并不處理數(shù)據(jù)文件。在用戶的PC機(jī)上,再由DBMS對數(shù)據(jù)進(jìn)行處理。如果用戶對數(shù)據(jù)文件作了修改,還必須把
47、整個(gè)數(shù)據(jù)文件回傳服務(wù)器進(jìn)行保存。在文件服務(wù)器系統(tǒng)中,文件服務(wù)器的工作比較單一,僅僅為接受要求、檢索文件、發(fā)送文件,對文件的處理都是由用戶的PC機(jī)進(jìn)行的。但是,在網(wǎng)絡(luò)上要傳送整個(gè)文件,就會(huì)降低整個(gè)系統(tǒng)的性能。 3客戶客戶/服務(wù)器系統(tǒng)服務(wù)器系統(tǒng)(Client/Server,簡稱,簡稱C/S)C/S結(jié)構(gòu)模式由一個(gè)服務(wù)器(Server)與多個(gè)客戶機(jī)(Client)組成。在客戶/服務(wù)器系統(tǒng)中,數(shù)據(jù)庫也是存放在服務(wù)器上的。但是,用戶終端提出數(shù)據(jù)請求后,服務(wù)器不僅檢索出文件,而且對文件進(jìn)行操作,然后,只向用戶發(fā)送查詢的結(jié)果而不是整個(gè)文件,用戶的機(jī)器(稱為客戶機(jī))再根據(jù)用戶對數(shù)據(jù)的要求,對數(shù)據(jù)作進(jìn)一步的加工。
48、4瀏覽器瀏覽器/服務(wù)器系統(tǒng)服務(wù)器系統(tǒng)(Browse/Server,簡稱,簡稱B/S)瀏覽器/服務(wù)器結(jié)構(gòu)方式是基于互聯(lián)網(wǎng)的一種分布式結(jié)構(gòu)方式,一般由客戶機(jī)、應(yīng)用服務(wù)器及數(shù)據(jù)庫服務(wù)器三部分組成,即在客戶機(jī)和數(shù)據(jù)庫服務(wù)器之間增加了一個(gè)應(yīng)用服務(wù)器(也稱為Web服務(wù)器的中間層)。這種三層體系結(jié)構(gòu)如圖1-8所示。圖1-8 三層體系結(jié)構(gòu)示意圖 B/S模式是從傳統(tǒng)的兩層C/S模式發(fā)展起來的新的網(wǎng)絡(luò)結(jié)構(gòu)模式,其本質(zhì)是三層結(jié)構(gòu)的C/S模式。在用戶的計(jì)算機(jī)(Browse端)上安裝瀏覽器(如IE)軟件,在服務(wù)器(Server端)上存放數(shù)據(jù)并且安裝服務(wù)應(yīng)用程序,服務(wù)器有WWW服務(wù)器和文件服務(wù)器等。用戶通過瀏覽器訪問服務(wù)
49、器,并進(jìn)行信息瀏覽、文件傳輸和電子郵件等服務(wù)。這樣減少了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本。1.4.5 用戶訪問數(shù)據(jù)庫的過程用戶訪問數(shù)據(jù)庫的過程實(shí)際數(shù)據(jù)庫系統(tǒng)的情況是互不相同的,實(shí)際數(shù)據(jù)庫系統(tǒng)所使用的術(shù)語也是有差異的。各種教材、各篇文章所使用的術(shù)語也是不統(tǒng)一的,這需要讀者在使用時(shí)進(jìn)行比照理解。為使讀者對數(shù)據(jù)庫系統(tǒng)工作有一個(gè)整體的概念,我們介紹一下訪問數(shù)據(jù)庫的主要步驟,該過程如圖1-9所示。圖1-9 訪問數(shù)據(jù)庫的主要步驟首先,內(nèi)存被劃分為很多區(qū)。其中,有一個(gè)面向整個(gè)數(shù)據(jù)庫的區(qū)域稱為系統(tǒng)緩沖區(qū),每執(zhí)行一個(gè)應(yīng)用程序則會(huì)開辟一個(gè)用戶工作區(qū)。當(dāng)一個(gè)應(yīng)用程序要從數(shù)據(jù)庫中讀取數(shù)據(jù)時(shí),它的整個(gè)過程是:(1) 用戶在應(yīng)用程序中發(fā)出命令,指明外模式名。(2) DBMS根據(jù)該命令,調(diào)出所需外模式,并檢查用戶的權(quán)利。若通過檢查,則繼續(xù)執(zhí)行;否則,拒絕執(zhí)行。(3) DBMS根據(jù)外模式/模式轉(zhuǎn)換,確認(rèn)所需數(shù)據(jù)在模式上的有關(guān)信息。(4) DBMS根據(jù)模式/內(nèi)模式轉(zhuǎn)換,確認(rèn)所需數(shù)據(jù)在內(nèi)模式上的有關(guān)信息。(5) DBMS向操作系統(tǒng)發(fā)出讀取相應(yīng)數(shù)據(jù)的請求。(6) 操作系統(tǒng)把有關(guān)數(shù)據(jù)從外存調(diào)入到系統(tǒng)緩沖區(qū)中。(7) DBMS把數(shù)據(jù)按外模
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 18910.64-2025液晶顯示器件第6-4部分:測試方法帶動(dòng)態(tài)背光的液晶顯示模塊
- 計(jì)算機(jī)自動(dòng)化技術(shù)試題及答案
- 材料疲勞壽命評估誤差分析重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 行政法學(xué)案例探討與答案發(fā)布
- 社區(qū)火災(zāi)應(yīng)急預(yù)案論文(3篇)
- 技術(shù)員考試準(zhǔn)備試題與答案
- 森林火災(zāi)瞬間應(yīng)急預(yù)案范文(3篇)
- 行政法學(xué)動(dòng)態(tài)研究試題及答案
- 風(fēng)險(xiǎn)管理在企業(yè)優(yōu)化決策中的應(yīng)用試題及答案
- 《環(huán)保與生活》課件-第十三篇
- ktv入股協(xié)議合同范例
- 吸氧并發(fā)癥預(yù)防及處理
- GB 20943-2025交流-直流和交流-交流電源能效限定值及能效等級
- 民法典下物業(yè)服務(wù)合同培訓(xùn)
- 遙感數(shù)據(jù)質(zhì)量評價(jià)-洞察分析
- 推拿培訓(xùn)協(xié)議合同范例
- 某風(fēng)電場項(xiàng)目海上升壓站施工組織設(shè)計(jì)
- 健身器材采購項(xiàng)目投標(biāo)方案
- Linux操作系統(tǒng)期末復(fù)習(xí)題(含答案)
- 高考化學(xué)一輪復(fù)習(xí)知識(shí)清單:鈉及其重要化合物
- 醫(yī)院行風(fēng)建設(shè)教育
評論
0/150
提交評論