數(shù)據(jù)庫原理與應(yīng)用第1章數(shù)據(jù)庫系統(tǒng)概述.ppt
《數(shù)據(jù)庫原理與應(yīng)用第1章數(shù)據(jù)庫系統(tǒng)概述.ppt》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫原理與應(yīng)用第1章數(shù)據(jù)庫系統(tǒng)概述.ppt(139頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1,數(shù)據(jù)庫原理及應(yīng)用,主編:陳志泊人民郵電出版社,2,參考書目1.薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論(第三版).北京:高等教育出版社,20012.李昭原.數(shù)據(jù)庫原理與應(yīng)用.北京:科學(xué)出版社,20003.張健沛.數(shù)據(jù)庫原理及應(yīng)用系統(tǒng)開發(fā).北京:中國水利水電出版社,19994.王珊,陳紅.數(shù)據(jù)庫系統(tǒng)原理教程.北京:清華大學(xué)出版社,19995.(美)PhilipJ.Pratt,JoseJ.Adamski.陸洪毅,楊文波,程華等譯.數(shù)據(jù)庫管理系統(tǒng)基礎(chǔ).北京:機械工業(yè)出版社.19996.AbrahamSilberschatz,HenryF.Korth,S.Sudarshan.楊冬青,唐世渭等譯.數(shù)據(jù)庫系統(tǒng)概念.北京:機械工業(yè)出版社.20007.HectorGarcia-Molina,JeffreyD.Ullman,JenniferWidom.楊冬青,唐世渭,徐其鈞等譯.數(shù)據(jù)庫系統(tǒng)實現(xiàn).北京:機械工業(yè)出版社,20018.章立民.SQLServer2000中文版完全實戰(zhàn).北京:中國鐵道出版社,2001,3,,第1章數(shù)據(jù)庫系統(tǒng)概述,4,本章概要,在本章中,首先介紹數(shù)據(jù)庫中有關(guān)的主要概念,然后回顧數(shù)據(jù)管理技術(shù)的三個發(fā)展階段。要求了解數(shù)據(jù)庫的三個發(fā)展階段及各階段的主要特點,掌握數(shù)據(jù)庫中的有關(guān)的基本概念、數(shù)據(jù)庫系統(tǒng)的組成及各部分的主要功能。重點掌握實體、屬性定義和實體型之間的聯(lián)系類型及特點。了解三種數(shù)據(jù)模型的特點及區(qū)別,為后面各章的學(xué)習(xí)打下基礎(chǔ)。了解面向?qū)ο髷?shù)據(jù)模型的基本特征。,5,1.1信息、數(shù)據(jù)與數(shù)據(jù)處理,1.1.1數(shù)據(jù)與信息在數(shù)據(jù)處理中,我們最常用到的基本概念就是數(shù)據(jù)和信息,信息與數(shù)據(jù)有著不同的含義。1.信息(Information)(1)信息的定義信息是關(guān)于現(xiàn)實世界事物的存在方式或運動狀態(tài)的反映的綜合,具體說是一種被加工為特定形式的數(shù)據(jù),但這種數(shù)據(jù)形式對接收者來說是有意義的,而且對當(dāng)前和將來的決策具有明顯的或?qū)嶋H的價值。如“2000年碩士研究生將擴招30%”,對接受者有意義,使接受者據(jù)此作出決策。,,6,(2)信息的特征信息源于物質(zhì)和能量,它不可能脫離物質(zhì)而存在,信息的傳遞需要物質(zhì)載體,信息的獲取和傳遞要消耗能量。如信息可以通過報紙、電臺、電視、計算機網(wǎng)絡(luò)進行傳遞。信息是可以感知的,人類對客觀事物的感知,可以通過感覺器官,也可以通過各種儀器儀表和傳感器等,不同的信息源有不同的感知形式。如報紙上刊登的信息通過視覺器官感知,電臺中廣播的信息通過聽覺器官感知。信息是可存儲、加工、傳遞和再生的。動物用大腦存儲信息,叫做記憶。計算機存儲器、錄音、錄像等技術(shù)的發(fā)展,進一步擴大了信息存儲的范圍。借助計算機,還可對收集到的信息進行取舍整理。,7,2.數(shù)據(jù)(Data)(1)數(shù)據(jù)的定義數(shù)據(jù)是用來記錄信息的可識別的符號,是信息的具體表現(xiàn)形式。(2)數(shù)據(jù)的表現(xiàn)形式可用多種不同的數(shù)據(jù)形式表示同一信息,而信息不隨數(shù)據(jù)形式的不同而改變。如“2000年碩士研究生將擴招30%”,其中的數(shù)據(jù)可改為漢字形式“兩千年”、“百分之三十”。數(shù)據(jù)的概念在數(shù)據(jù)處理領(lǐng)域中已大大地拓寬了,其表現(xiàn)形式不僅包括數(shù)字和文字,還包括圖形、圖象、聲音等。這些數(shù)據(jù)可以記錄在紙上,也可記錄在各種存儲器中。,8,3.數(shù)據(jù)與信息的聯(lián)系數(shù)據(jù)是信息的符號表示或載體,信息則是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋。如上例中的數(shù)據(jù)2000、30%被賦予了特定的語義,它們就具有了傳遞信息的功能。1.1.2數(shù)據(jù)處理數(shù)據(jù)處理是將數(shù)據(jù)轉(zhuǎn)換成信息的過程,包括對數(shù)據(jù)的收集、存儲、加工、檢索、傳輸?shù)纫幌盗谢顒印F淠康氖菑拇罅康脑紨?shù)據(jù)中抽取和推導(dǎo)出有價值的信息,作為決策的依據(jù)??捎孟率胶唵蔚谋硎拘畔?、數(shù)據(jù)與數(shù)據(jù)處理的關(guān)系:信息=數(shù)據(jù)+數(shù)據(jù)處理數(shù)據(jù)是原料,是輸入,而信息是產(chǎn)出,是輸出結(jié)果。“信息處理”的真正含義應(yīng)該是為了產(chǎn)生信息而處理數(shù)據(jù)。,9,1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展,數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展數(shù)據(jù)處理的中心問題是數(shù)據(jù)管理。數(shù)據(jù)管理是指對數(shù)據(jù)的組織、分類、編碼、存儲、檢索和維護。隨著計算機硬件和軟件的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個發(fā)展階段。1.人工管理階段(50年代中期以前)這一階段計算機主要用于科學(xué)計算。硬件中的外存只有卡片、紙帶、磁帶,沒有磁盤等直接存取設(shè)備。軟件只有匯編語言,沒有操作系統(tǒng)和管理數(shù)據(jù)的軟件。數(shù)據(jù)處理的方式基本上是批處理。,,10,人工管理階段的特點如下:1)數(shù)據(jù)不保存因為當(dāng)時計算機主要用于科學(xué)計算,對于數(shù)據(jù)保存的需求尚不迫切。2)系統(tǒng)沒有專用的軟件對數(shù)據(jù)進行管理每個應(yīng)用程序都要包括數(shù)據(jù)的存儲結(jié)構(gòu)、存取方法、輸入方式等,程序員編寫應(yīng)用程序時,還要安排數(shù)據(jù)的物理存儲,因此程序員負(fù)擔(dān)很重。3)數(shù)據(jù)不共享數(shù)據(jù)是面向程序的,一組數(shù)據(jù)只能對應(yīng)一個程序。多個應(yīng)用程序涉及某些相同的數(shù)據(jù)時,也必須各自定義,無法互相利用、互相參照,因此程序之間有大量的冗余數(shù)據(jù)。,11,4)數(shù)據(jù)不具有獨立性程序依賴于數(shù)據(jù),如果數(shù)據(jù)的類型、格式、或輸入輸出方式等邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化,必須對應(yīng)用程序做出相應(yīng)的修改。在人工管理階段,程序與數(shù)據(jù)之間的關(guān)系可用圖1.1表示。,圖1-1人工管理階段,12,2.文件系統(tǒng)階段(50年代后期至60年代中期)這一階段,計算機不僅用于科學(xué)計算,還大量用于信息管理。大量的數(shù)據(jù)存儲、檢索和維護成為緊迫的需求。硬件有了磁盤、磁鼓等直接存儲設(shè)備。在軟件方面,出現(xiàn)了高級語言和操作系統(tǒng)。操作系統(tǒng)中有了專門管理數(shù)據(jù)的軟件,一般稱為文件系統(tǒng)。處理方式有批處理,也有聯(lián)機處理。,13,文件管理數(shù)據(jù)的特點如下:①數(shù)據(jù)以文件形式可長期保存下來用戶可隨時對文件進行查詢、修改和增刪等處理。②由文件系統(tǒng)管理數(shù)據(jù)程序員只與文件名打交道,不必明確數(shù)據(jù)的物理存儲,而由文件系統(tǒng)提供的存取方法實現(xiàn)數(shù)據(jù)的存取,從而實現(xiàn)了“按文件名訪問,按紀(jì)錄進行存取”的數(shù)據(jù)管理技術(shù)。③程序與數(shù)據(jù)間有一定獨立性由于文件系統(tǒng)在程序與數(shù)據(jù)文件之間的存取轉(zhuǎn)換作用,使得,14,在文件系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系可用圖1.2表示。,圖1-2文件系統(tǒng)階段,,,15,與人工管理階段相比,文件系統(tǒng)階段對數(shù)據(jù)的管理有了很大的進步,但一些根本性問題仍沒有徹底解決,主要表現(xiàn)在以下三方面:①數(shù)據(jù)共享性差、冗余度大、易造成數(shù)據(jù)不一致各數(shù)據(jù)文件之間沒有有機的聯(lián)系,一個文件基本上對應(yīng)于一個應(yīng)用程序,及文件仍然是面向應(yīng)用的。當(dāng)不同的應(yīng)用程序所使用的數(shù)據(jù)具有共同部分時,也必須分別建立自己的數(shù)據(jù)文件,數(shù)據(jù)不能共享。同時,由于相同數(shù)據(jù)的重復(fù)存儲,各自管理,在對數(shù)據(jù)進行更新操作時,不但浪費磁盤空間,同時也易造成數(shù)據(jù)的不一致性。②數(shù)據(jù)獨立性差數(shù)據(jù)和程序相互依賴,一旦改變數(shù)據(jù)的邏輯結(jié)構(gòu),必須修改相應(yīng)的應(yīng)用程序,修改文件結(jié)構(gòu)的定義。而應(yīng)用程序發(fā)生變化,如改用另一種程序設(shè)計語言來編寫程序,也將引起文件的數(shù)據(jù)結(jié)構(gòu)的改變。,16,3.數(shù)據(jù)庫系統(tǒng)階段(60年代末開始)60年代后期,計算機應(yīng)用于管理的規(guī)模更加龐大,數(shù)據(jù)量急劇增加;硬件方面出現(xiàn)了大容量磁盤,使計算機聯(lián)機存取大量數(shù)據(jù)成為可能;硬件價格下降,而軟件價格上升,使開發(fā)和維護系統(tǒng)軟件的成本增加。文件系統(tǒng)的數(shù)據(jù)管理方法已無法適應(yīng)開發(fā)應(yīng)用系統(tǒng)的的需要。為解決多用戶、多個應(yīng)用程序共享數(shù)據(jù)的需求,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。,17,,20世紀(jì)60年代末期出現(xiàn)的對數(shù)據(jù)管理技術(shù)有奠基作用的三件大事,標(biāo)志著以數(shù)據(jù)庫系統(tǒng)為基本手段的數(shù)據(jù)管理新階段的開始。(1)1968年,美國IBM公司推出了商品化的基于層次模型的信息管理系統(tǒng)(IMS)。(2)1969年,美國數(shù)據(jù)系統(tǒng)語言協(xié)會(CODASYL)的數(shù)據(jù)庫任務(wù)組(DBTG)發(fā)布了一系列研究數(shù)據(jù)庫方法的DBTG報告,提出了網(wǎng)狀數(shù)據(jù)模型。(3)1970年,美國IBM公司的E.F.Codd連續(xù)發(fā)表文章,提出了關(guān)系模型,奠定了關(guān)系數(shù)據(jù)庫管理系統(tǒng)的理論基礎(chǔ),一直沿用至今。,18,數(shù)據(jù)庫系統(tǒng)階段管理數(shù)據(jù)的特點如下:(1)數(shù)據(jù)結(jié)構(gòu)化按照某種數(shù)據(jù)模型,將全組織的各種數(shù)據(jù)組織到一個結(jié)構(gòu)化的數(shù)據(jù)庫中,整個組織的數(shù)據(jù)不是一盤散沙,可表示出數(shù)據(jù)之間的有機關(guān)聯(lián)。數(shù)據(jù)庫中的數(shù)據(jù)不再僅僅針對某個應(yīng)用,而是面向全組織,不僅數(shù)據(jù)內(nèi)部是結(jié)構(gòu)化的,整體也是結(jié)構(gòu)化的;不僅描述了數(shù)據(jù)本身,也描述了數(shù)據(jù)間的有機聯(lián)系,從而較好地反映了現(xiàn)實世界事物間的自然聯(lián)系。,19,例:要建立學(xué)生成績管理系統(tǒng),系統(tǒng)包含學(xué)生(學(xué)號、姓名、性別、系別、年齡)、課程(課程號、課程名)、成績(學(xué)號、課程號、成績)等數(shù)據(jù),分別對應(yīng)三個文件。若采用文件處理方式,因為文件系統(tǒng)只表示記錄內(nèi)部的聯(lián)系,而不涉及不同文件記錄之間的聯(lián)系,要想查找某個學(xué)生的學(xué)號、姓名、所選課程的名稱和成績,必須編寫一段不很簡單的程序來實現(xiàn)。而采用數(shù)據(jù)庫方式,數(shù)據(jù)庫系統(tǒng)不僅描述數(shù)據(jù)本身,還描述數(shù)據(jù)之間的聯(lián)系,上述查詢可以非常容易地聯(lián)機查到。,20,,(2)數(shù)據(jù)共享性高、冗余度低所謂數(shù)據(jù)共享是指數(shù)據(jù)庫中的一組數(shù)據(jù)集合可為多個應(yīng)用和多個用戶共同使用。這是數(shù)據(jù)庫系統(tǒng)階段的最大改進,數(shù)據(jù)不再面向某個應(yīng)用程序而是面向整個系統(tǒng),當(dāng)前所有用戶可同時存取庫中的數(shù)據(jù)。這樣便減少了不必要的數(shù)據(jù)冗余,節(jié)約存儲空間,同時也避免了數(shù)據(jù)之間的不相容性與不一致性。,21,3.數(shù)據(jù)獨立性高數(shù)據(jù)的獨立性是指邏輯獨立性和物理獨立性。數(shù)據(jù)的邏輯獨立性是指當(dāng)數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時,數(shù)據(jù)的局部邏輯結(jié)構(gòu)不變,由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必須修改,從而保證了數(shù)據(jù)與程序間的邏輯獨立性。例如,在原有的記錄類型之間增加新的聯(lián)系,或在某些記錄類型中增加新的數(shù)據(jù)項,均可確保數(shù)據(jù)的邏輯獨立性。數(shù)據(jù)的物理獨立性是指當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,數(shù)據(jù)的邏輯結(jié)構(gòu)不變,從而應(yīng)用程序也不必改變。例如,改變存儲設(shè)備和增加新的存儲設(shè)備,或改變數(shù)據(jù)的存儲組織方式,均可確保數(shù)據(jù)的物理獨立性。,22,4.有統(tǒng)一的數(shù)據(jù)控制功能數(shù)據(jù)庫為多個用戶和應(yīng)用程序所共享,對數(shù)據(jù)的存取往往是并發(fā)的,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時存取數(shù)據(jù)庫中的同一個數(shù)據(jù),為確保數(shù)據(jù)庫數(shù)據(jù)的正確有效和數(shù)據(jù)庫系統(tǒng)的有效運行,數(shù)據(jù)庫管理系統(tǒng)提供下述四方面的數(shù)據(jù)控制功能。(1)數(shù)據(jù)的安全性(security)控制:防止不合法使用數(shù)據(jù)造成數(shù)據(jù)的泄露和破壞,保證數(shù)據(jù)的安全和機密;例如,系統(tǒng)提供口令檢查或其他手段來驗證用戶身份,防止非法用戶使用系統(tǒng);也可以對數(shù)據(jù)的存取權(quán)限進行限制,只有通過檢查后才能執(zhí)行相應(yīng)的操作。(2)數(shù)據(jù)的完整性(integrity)控制:系統(tǒng)通過設(shè)置一些完整性規(guī)則以確保數(shù)據(jù)的正確性、有效性和相容性。,23,正確性是指數(shù)據(jù)的合法性,如年齡屬于數(shù)值型數(shù)據(jù),只能含0,1,…9,不能含字母或特殊符號;有效性是指數(shù)據(jù)是否在其定義的有效范圍,如月份只能用1~12之間的正整數(shù)表示;相容性是指表示同一事實的兩個數(shù)據(jù)應(yīng)相同,否則就不相容,如一個人不能有兩個性別。(3)并發(fā)(concurrency)控制:多用戶同時存取或修改數(shù)據(jù)庫時,防止相互干擾而提供給用戶不正確的數(shù)據(jù),并使數(shù)據(jù)庫受到破壞。,24,(4)數(shù)據(jù)恢復(fù)(recovery):當(dāng)數(shù)據(jù)庫被破壞或數(shù)據(jù)不可靠時,系統(tǒng)有能力將數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到最近某一時刻的正確狀態(tài)。數(shù)據(jù)庫系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系可用圖1.3表示。圖1-5程序與數(shù)據(jù)只見的關(guān)系,25,從文件系統(tǒng)管理發(fā)展到數(shù)據(jù)庫系統(tǒng)管理是信息處理領(lǐng)域的一個重大變化。在文件系統(tǒng)階段,人們關(guān)注的是系統(tǒng)功能的設(shè)計,因此程序設(shè)計處于主導(dǎo)地位,數(shù)據(jù)服從于程序設(shè)計;而在數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)的結(jié)構(gòu)設(shè)計成為信息系統(tǒng)首先關(guān)心的問題。數(shù)據(jù)庫技術(shù)經(jīng)歷了以上三個階段的發(fā)展,已有了比較成熟的數(shù)據(jù)庫技術(shù),但隨著計算機軟硬件的發(fā)展,數(shù)據(jù)庫技術(shù)仍需不斷向前發(fā)展。,26,1.2.2數(shù)據(jù)庫技術(shù)的研究領(lǐng)域數(shù)據(jù)庫學(xué)科的研究范圍主要包括以下三個領(lǐng)域:1.數(shù)據(jù)庫管理系統(tǒng)軟件的研制DBMS是數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)。DBMS的研制包括研制DBMS本身及以DBMS為核心的一組相互聯(lián)系的軟件系統(tǒng),包括工具軟件和中間件。研制的目標(biāo)是提高系統(tǒng)的性能和提高用戶的生產(chǎn)率。2.數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計的研究范圍包括:數(shù)據(jù)庫的設(shè)計方法、設(shè)計工具和設(shè)計理論的研究,數(shù)據(jù)模型和數(shù)據(jù)建模的研究,計算機輔助數(shù)據(jù)庫設(shè)計及其軟件系統(tǒng)的研究,數(shù)據(jù)庫設(shè)計規(guī)范和標(biāo)準(zhǔn)的研究等。,27,3.數(shù)據(jù)庫理論數(shù)據(jù)庫理論的研究主要集中于關(guān)系規(guī)范化理論、關(guān)系數(shù)據(jù)理論等。近年來,隨著人工智能與數(shù)據(jù)庫理論的結(jié)合以及并行計算技術(shù)的發(fā)展,數(shù)據(jù)庫邏輯演繹和知識推理、并行算法等都成為新的研究方向。隨著數(shù)據(jù)庫應(yīng)用領(lǐng)域的不斷擴展,計算機技術(shù)的迅猛發(fā)展,數(shù)據(jù)庫技術(shù)與人工智能技術(shù)、網(wǎng)絡(luò)通信技術(shù)、并行計算技術(shù)等到相互滲透、相互結(jié)合,使數(shù)據(jù)庫技術(shù)不斷涌現(xiàn)新的研究方向。,28,1.3數(shù)據(jù)庫系統(tǒng)的組成,數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成。主要由數(shù)據(jù)庫、數(shù)據(jù)庫用戶、計算機軟件系統(tǒng)和計算機硬件系統(tǒng)四部分組成。1.數(shù)據(jù)庫數(shù)據(jù)庫是存儲在計算機內(nèi)有組織的共享的數(shù)據(jù)集合。它可以供用戶共享,具有盡可能小的冗余度和較高的數(shù)據(jù)獨立性,使得數(shù)據(jù)存儲最優(yōu),數(shù)據(jù)最容易操作,并且具有完善的自我保護能力和數(shù)據(jù)恢復(fù)能力。,,29,數(shù)據(jù)庫特點如下:1)集成性:把某特定應(yīng)用環(huán)境中的各種應(yīng)用相關(guān)的數(shù)據(jù)及其數(shù)據(jù)之間的聯(lián)系全部地集中地并按照一定的結(jié)構(gòu)形式進行存儲,或者說,把數(shù)據(jù)庫看成為若干個單個性質(zhì)不同的數(shù)據(jù)文件的聯(lián)合和統(tǒng)一的數(shù)據(jù)整體。2)共享性:數(shù)據(jù)庫中的數(shù)據(jù)可為多個不同的用戶所共享,即多個不同的用戶,使用多種不同的語言,為了不同的應(yīng)用目的,而同時存取數(shù)據(jù)庫,甚至同時存取同一塊數(shù)據(jù)。,30,2.用戶用戶是指使用數(shù)據(jù)庫的人,即對數(shù)據(jù)庫的存儲、維護和檢索等操作。用戶分為三類:1)第一類用戶,終端用戶(EndUser)主要是使用數(shù)據(jù)庫的各級管理人員、工程技術(shù)人員、科研人員,一般為非計算機專業(yè)人員;2)第二類用戶,應(yīng)用程序員(ApplicationProgrammer)負(fù)責(zé)為終端用戶設(shè)計和編制應(yīng)用程序,以便終端用戶對數(shù)據(jù)庫進行存取操作。3)第三類用戶,數(shù)據(jù)庫管理員(DadabaseAdministrator,簡稱DBA)DBA是指全面負(fù)責(zé)數(shù)據(jù)庫系統(tǒng)的“管理、維護和正常使用的”人員,其職責(zé)如下:,31,①參與數(shù)據(jù)庫設(shè)計的全過程,決定數(shù)據(jù)庫的結(jié)構(gòu)和信息內(nèi)容;②決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略,以獲得較高的存取效率和存儲空間利用率;③幫助終端用戶使用數(shù)據(jù)庫系統(tǒng);④定義數(shù)據(jù)的安全性和完整性,負(fù)責(zé)分配用戶對數(shù)據(jù)庫的使用權(quán)限和口令管理;⑤監(jiān)督控制數(shù)據(jù)庫的使用和運行,改進和重新構(gòu)造數(shù)據(jù)庫系統(tǒng)。當(dāng)數(shù)據(jù)庫受到破壞時,應(yīng)負(fù)責(zé)恢復(fù)數(shù)據(jù)庫;當(dāng)數(shù)據(jù)庫的結(jié)構(gòu)需要改變時,完成對數(shù)據(jù)結(jié)構(gòu)的修改。⑥改進和重組重構(gòu)數(shù)據(jù)庫DBA不僅要有較高的技術(shù)專長和較深的資歷,并應(yīng)具有了解和闡明管理要求的能力。特別對于大型數(shù)據(jù)庫系統(tǒng),DBA極為重要。對于常見的微機數(shù)據(jù)庫系統(tǒng),通常只有一個用戶,常常不設(shè)DBA,DBA的職責(zé)由應(yīng)用程序員或終端用戶代替。,32,3.軟件(Software)系統(tǒng)負(fù)責(zé)數(shù)據(jù)庫存取、維護和管理的軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS),數(shù)據(jù)庫系統(tǒng)的各類人員對數(shù)據(jù)庫的各種操作請求,都由DBMS完成,DBMS是數(shù)據(jù)庫系統(tǒng)的核心軟件。4.硬件(Hardware)系統(tǒng)存儲和運行數(shù)據(jù)庫系統(tǒng)的硬件設(shè)備。包括CPU、內(nèi)存、大容量的存儲設(shè)備、外部設(shè)備等。,33,數(shù)據(jù)庫系統(tǒng)層次結(jié)構(gòu)圖如下圖由上圖看出:DBMS在操作系統(tǒng)(OS)的支持下工作,應(yīng)用程序在DBMS支持下才能使用數(shù)據(jù)庫。,34,1.4數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu),可以從多種不同的角度考查數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)。從數(shù)據(jù)庫管理系統(tǒng)的角度看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)內(nèi)部的體系結(jié)構(gòu);從數(shù)據(jù)庫最終用戶的角度看,數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)分為集中式結(jié)構(gòu)、分布式結(jié)構(gòu)和客戶/服務(wù)器結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)外部的體系結(jié)構(gòu)。1.4.1數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)1.數(shù)據(jù)庫系統(tǒng)模式的概念模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。例如:學(xué)生記錄定義為(學(xué)號、姓名、性別、系別、年齡),稱為記錄型,而(001101,張立,男,計算機,20)則是該記錄型的一個記錄值。模式只是對記錄型的描述,而與具體的值無關(guān)。,35,在數(shù)據(jù)庫系統(tǒng)中,對于同一意義下的數(shù)據(jù),如:學(xué)生數(shù)據(jù),從計算機中處理的二進制表示到用戶處理的諸如學(xué)生姓名、年齡等概念的數(shù)據(jù)之間,存在著許多抽象和轉(zhuǎn)換。2.數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)通常DBMS把數(shù)據(jù)庫從邏輯上分為三級,即外模式、模式和內(nèi)模式,它們分別反映了看待數(shù)據(jù)庫的三個角度。三級模式結(jié)構(gòu)如圖1.8所示。,36,圖1.8數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu),37,1)模式模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,又稱概念模式或概念視圖。視圖可理解為一組記錄的值,用戶或程序員看到和使用的數(shù)據(jù)庫的內(nèi)容。模式處于三級結(jié)構(gòu)的中間層,它是整個數(shù)據(jù)庫實際存儲的抽象表示,也是對現(xiàn)實世界的一個抽象,是現(xiàn)實世界某應(yīng)用環(huán)境(企業(yè)或單位)的所有信息內(nèi)容集合的表示,也是所有個別用戶視圖綜合起來的結(jié)果,所以又稱用戶共同視圖。它表示了數(shù)據(jù)庫的整體數(shù)據(jù)。由多個“概念記錄”組成,包含數(shù)據(jù)庫的所有信息,也稱“概念數(shù)據(jù)庫”、“DBA視圖”。DBMS提供模式描述語言(模式DDL)來定義模式。,38,2)外模式又稱子模式或用戶模式或外視圖,是三級結(jié)構(gòu)的最外層,個別用戶只對整個數(shù)據(jù)庫的一部分感興趣,所以外視圖是個別用戶看到和使用的數(shù)據(jù)庫內(nèi)容,因此也常把外視圖稱為用戶數(shù)據(jù)庫。它由多種外記錄值構(gòu)成,這些記錄值是概念視圖的某一部分的抽象表示。即個別用戶看到和使用的數(shù)據(jù)庫內(nèi)容,也稱“用戶DB”。由多個“外記錄值”組成,是概念視圖的某一部分的抽象表示。從邏輯關(guān)系上看,外模式包含于概念模式。DBMS提供子模式描述語言(子模式DDL)來定義子模式。,39,3)內(nèi)模式又稱存儲模式或內(nèi)視圖,是三級結(jié)構(gòu)中的最內(nèi)層,也是靠近物理存儲的一層,即與實際存儲數(shù)據(jù)方式有關(guān)的一層,由多個存儲記錄組成,但并非物理層,不必關(guān)心具體的存儲位置。DBMS提供內(nèi)模式描述語言(內(nèi)模式DDL)來定義內(nèi)模式。在數(shù)據(jù)庫系統(tǒng)中,外模式可有多個,而概念模式、內(nèi)模式只能各有一個。內(nèi)模式是整個數(shù)據(jù)庫實際存儲的表示,而概念模式是整個數(shù)據(jù)庫實際存儲的抽象表示,外模式是概念模式的某一部分的抽象表示。,40,,1.4.2數(shù)據(jù)庫系統(tǒng)的二級映象數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別,它使用戶能邏輯地抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機內(nèi)部的存儲方式,把數(shù)據(jù)的具體組織交給DBMS管理。為了能夠在內(nèi)部實現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換,DBMS在三級模式之間提供了二級映象功能。,41,,1.模式/內(nèi)模式映象數(shù)據(jù)庫中的模式和內(nèi)模式都只有一個,所以模式/內(nèi)模式映象是唯一的。它確定了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。例如,存儲結(jié)構(gòu)變化時,模式/內(nèi)模式映象也應(yīng)有相應(yīng)的變化,使其概念模式仍保持不變,即把存儲結(jié)構(gòu)的變化的影響限制在概念模式之下,這使數(shù)據(jù)的存儲結(jié)構(gòu)和存儲方法較高的獨立于應(yīng)用程序,通過映象功能保證數(shù)據(jù)存儲結(jié)構(gòu)的變化不影響數(shù)據(jù)的全局邏輯結(jié)構(gòu)的改變,從而不必修改應(yīng)用程序,即確保了數(shù)據(jù)的物理獨立性。,42,,2.外模式/模式映象數(shù)據(jù)庫中的同一模式可以有任意多個外模式,對于每一個外模式,都存在一個外模式/模式映象。它確定了數(shù)據(jù)的局部邏輯結(jié)構(gòu)與全局邏輯結(jié)構(gòu)之間的對應(yīng)關(guān)系。例如,在原有的記錄類型之間增加新的聯(lián)系,或在某些記錄類型中增加新的數(shù)據(jù)項時,使數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變,外模式/模式映象也發(fā)生相應(yīng)的變化,這一映象功能保證了數(shù)據(jù)的局部邏輯結(jié)構(gòu)不變,由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必須修改,從而保證了數(shù)據(jù)與程序間的邏輯獨立性。,43,1.4.3三級結(jié)構(gòu)的優(yōu)點(1)保證數(shù)據(jù)的獨立性。將模式和內(nèi)模式分開,保證了數(shù)據(jù)的物理獨立性;將外模式和模式分開,保證了數(shù)據(jù)的邏輯獨立性。(2)簡化了用戶接口。按照外模式編寫應(yīng)用程序或敲入命令,而不需了解數(shù)據(jù)庫內(nèi)部的存儲結(jié)構(gòu),方便用戶使用系統(tǒng)。(3)有利于數(shù)據(jù)共享。在不同的外模式下可有多個用戶共享系統(tǒng)中數(shù)據(jù),減少了數(shù)據(jù)冗余。(4)利于數(shù)據(jù)的安全保密。在外模式下根據(jù)要求進行操作,不能對限定的數(shù)據(jù)操作,保證了其他數(shù)據(jù)的安全。,44,1.5數(shù)據(jù)庫系統(tǒng)的外部體系結(jié)構(gòu),1.單用戶結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)2.主從式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)3.分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)4.客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)5.瀏覽器/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),45,1.6數(shù)據(jù)庫管理系統(tǒng)(DBMS),數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)進行管理的大型系統(tǒng)軟件,它是數(shù)據(jù)庫系統(tǒng)的核心組成部分,用戶在數(shù)據(jù)庫系統(tǒng)中的一切操作,包括數(shù)據(jù)定義、查詢、更新及各種控制,都是通過DBMS進行的。DBMS就是實現(xiàn)把用戶意義下的抽象的邏輯數(shù)據(jù)處理轉(zhuǎn)換成計算機中的具體的物理數(shù)據(jù)的處理軟件,這給用戶帶來很大的方便。,,46,1.6.1DBMS的主要功能1.數(shù)據(jù)定義DBMS提供數(shù)據(jù)定義語言DDL(DataDefineLanguage),定義數(shù)據(jù)的模式、外模式和內(nèi)模式三級模式結(jié)構(gòu),定義模式/內(nèi)模式和外模式/模式二級映象,定義有關(guān)的約束條件,例如,為保證數(shù)據(jù)庫安全而定義的用戶口令和存取權(quán)限,為保證正確語義而定義完整性規(guī)則。2.數(shù)據(jù)操縱DBMS提供數(shù)據(jù)操縱語言DML(DataManipulationLanguage)實現(xiàn)對數(shù)據(jù)庫的基本操作,包括檢索、插入、修改、刪除等。SQL語言就是DML的一種。,47,3.數(shù)據(jù)庫運行管理DBMS對數(shù)據(jù)庫的控制主要通過四個方面實現(xiàn):數(shù)據(jù)的安全性控制數(shù)據(jù)的完整性控制多用戶環(huán)境下的并發(fā)控制數(shù)據(jù)庫的恢復(fù)以確保數(shù)據(jù)正確有效和數(shù)據(jù)庫系統(tǒng)的正常運行。4.數(shù)據(jù)庫的建立和維護功能包括數(shù)據(jù)庫的初始數(shù)據(jù)的裝入,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù)、重組織,系統(tǒng)性能監(jiān)視、分析等功能。5.數(shù)據(jù)通信DBMS提供與其他軟件系統(tǒng)進行通信的功能。實現(xiàn)用戶程序與DBMS之間的通信,通常與操作系統(tǒng)協(xié)調(diào)完成。6.數(shù)據(jù)組織、存儲和管理,48,1.6.2DBMS的組成DBMS是許多“系統(tǒng)程序”所組成的一個集合。每個程序都有自己的功能,共同完成DBMS的一件或幾件工作。1.語言編譯處理程序(1)數(shù)據(jù)定義語言DDL及其編譯程序它把用DDL編寫的各級源模式編譯成各級目標(biāo)模式,這些目標(biāo)模式是對數(shù)據(jù)庫結(jié)構(gòu)信息的描述,而不是數(shù)據(jù)本身,它們被保存在數(shù)據(jù)字典中,供以后數(shù)據(jù)操縱或數(shù)據(jù)控制時使用。(2)數(shù)據(jù)操縱語言DML及其編譯程序,實現(xiàn)對數(shù)據(jù)庫的基本操作。DML有兩類,一類是宿主型,嵌入在高級語言中,不能單獨使用;另一類是自主型或自含型,可獨立地交互使用。,49,2.系統(tǒng)運行控制程序,主要包括以下幾部分:系統(tǒng)總控程序:是DBMS運行程序的核心,用于控制和協(xié)調(diào)各程序的活動;安全性控制程序:防止未被授權(quán)的用戶存取數(shù)據(jù)庫中的數(shù)據(jù);完整性控制程序:檢查完整性約束條件,確保進入數(shù)據(jù)庫中的數(shù)據(jù)的正確性、有效性和相容性;并發(fā)控制程序:協(xié)調(diào)多用戶、多任務(wù)環(huán)境下各應(yīng)用程序?qū)?shù)據(jù)庫的并以操作,保證數(shù)據(jù)的一致性;數(shù)據(jù)存取和更新程序:實施對數(shù)據(jù)庫數(shù)據(jù)的檢索、插入、修改、刪除等操作;通信控制程序:實現(xiàn)用戶程序與DBMS間的通信。,50,3.系統(tǒng)建立、維護程序,主要包括以下幾部分:裝配程序:完成初始數(shù)據(jù)庫的數(shù)據(jù)裝入;重組程序:當(dāng)數(shù)據(jù)庫系統(tǒng)性能變壞時(如查詢速度變慢),需要重新組織數(shù)據(jù)庫,重新裝入數(shù)據(jù);系統(tǒng)恢復(fù)程序:當(dāng)數(shù)據(jù)庫系統(tǒng)受到破壞時,將數(shù)據(jù)庫系統(tǒng)恢復(fù)到以前某個正確的狀態(tài)。4.數(shù)據(jù)字典(DataDictionary,簡稱DD)用來描述數(shù)據(jù)庫中有關(guān)信息的數(shù)據(jù)目錄,包括數(shù)據(jù)庫的三級模式、數(shù)據(jù)類型、用戶名、用戶權(quán)限等有關(guān)數(shù)據(jù)庫系統(tǒng)的信息,起著系統(tǒng)狀態(tài)的目錄表的作用,幫助用戶、DBA、DBMS本身使用和管理數(shù)據(jù)庫。,51,1.6.3DBMS的數(shù)據(jù)存取的過程在數(shù)據(jù)庫系統(tǒng)中,DBMS與操作系統(tǒng)、應(yīng)用程序、硬件等協(xié)同工作,共同完成數(shù)據(jù)各種存取操作,其中DBMS起著關(guān)鍵的作用。DBMS對數(shù)據(jù)的存取通常需要以下幾步:1.用戶使用某種特定的數(shù)據(jù)操作語言向DBMS發(fā)出存取請求;2.DBMS接受請求并解釋轉(zhuǎn)換成及其代碼指令;3.DBMS依次檢查外模式、外模式/模式映象、模式、模式/內(nèi)模式映象及存儲結(jié)構(gòu)定義;4.DBMS對存儲數(shù)據(jù)庫執(zhí)行必要的存取操作;5.從對數(shù)據(jù)庫的存取操作中接受結(jié)果;6.對得到的結(jié)果進行必要的處理;7.將處理的結(jié)果返回給用戶。上述存取過程中還包括安全性控制、完整性控制,以確保數(shù)據(jù)的正確性、有效性和一致性。,52,1.7數(shù)據(jù)模型,1.7.1數(shù)據(jù)模型的組成要素數(shù)據(jù)模型是模型的一種,是現(xiàn)實世界數(shù)據(jù)特征的抽象。數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的約束條件三個要素組成。1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述系統(tǒng)的靜態(tài)特性。數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型的集合,它是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面。在數(shù)據(jù)庫系統(tǒng)中,人們通常按照其數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型。數(shù)據(jù)結(jié)構(gòu)有層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)和關(guān)系結(jié)構(gòu)三種類型,按照這三種結(jié)構(gòu)命名的數(shù)據(jù)模型分別稱為層次模型、網(wǎng)狀模型和關(guān)系模型。,,53,2.數(shù)據(jù)操作數(shù)據(jù)操作用于描述系統(tǒng)的動態(tài)特性。數(shù)據(jù)操作是對數(shù)據(jù)庫中各種數(shù)據(jù)操作的集合,包括操作及相應(yīng)的操作規(guī)則。如數(shù)據(jù)的檢索、插入、刪除和修改等。數(shù)據(jù)模型必須定義這些操作的確切含義、操作規(guī)則以及實現(xiàn)操作的語言。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)該提供定義完整性約束條件的機制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。例如,在學(xué)生數(shù)據(jù)庫中,學(xué)生的年齡不得超過40歲。,54,1.7.2數(shù)據(jù)之間的聯(lián)系1.三個世界的劃分由于計算機不能直接處理現(xiàn)實世界中的具體事物,所以人們必須將具體事物轉(zhuǎn)換成計算機能夠處理的數(shù)據(jù)。在數(shù)據(jù)庫中用數(shù)據(jù)模型來抽象、表示和處理現(xiàn)實世界中的數(shù)據(jù)。數(shù)據(jù)庫即是模擬現(xiàn)實世界中某應(yīng)用環(huán)境(一個企業(yè)、單位或部門)所涉及的數(shù)據(jù)的集合,它不僅要反映數(shù)據(jù)本身的內(nèi)容,而且要反映數(shù)據(jù)之間的聯(lián)系。這個集合或者包含了信息的一部分(用用戶視圖模擬),或者包含了信息的全部(用概念視圖模擬),而這種模擬是通過數(shù)據(jù)模型來進行的。,55,為了把現(xiàn)實世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型,在實際的數(shù)據(jù)處理過程中,首先將現(xiàn)實世界的事物及聯(lián)系抽象成信息世界的信息模型,然后再抽象成計算機世界的數(shù)據(jù)模型。信息模型并不依賴于具體的計算機系統(tǒng),不是某一個DBMS所支持的數(shù)據(jù)模型,它是計算機內(nèi)部數(shù)據(jù)的抽象表示,是概念模型;概念模型經(jīng)過抽象,轉(zhuǎn)換成計算機上某一DBMS支持的數(shù)據(jù)模型。所以說,數(shù)據(jù)模型是現(xiàn)實世界的兩級抽象的結(jié)果。在數(shù)據(jù)處理中,數(shù)據(jù)加工經(jīng)歷了現(xiàn)實世界、信息世界和計算機世界三個不同的世界,經(jīng)歷了兩級抽象和轉(zhuǎn)換。這一過程如圖1.6所示。,56,圖1.6數(shù)據(jù)處理的抽象和轉(zhuǎn)換過程,57,2.信息世界中的基本概念在信息世界中,常用的主要概念如下:1)實體(Entity)客觀存在并且可以相互區(qū)別的“事物”稱為實體。實體可以是可觸及的對象,如一個學(xué)生,一本書,一輛汽車;也可以是抽象的事件,如一堂課,一次比賽等。2)屬性(Attributes)實體的某一特性稱為屬性。如學(xué)生實體有學(xué)號、姓名、年齡、性別、系等方面的屬性。屬性有"型"和“值”之分,"型"即為屬性名,如姓名、年齡、性別是屬性的型;“值”即為屬性的具體內(nèi)容,如(990001,張立,20,男,計算機)這些屬性值的集合表示了一個學(xué)生實體。,58,3)實體型(EntityType)若干個屬性型組成的集合可以表示一個實體的類型,簡稱實體型。如學(xué)生(學(xué)號,姓名,年齡,性別,系)就是一個實體型。4)實體集(EntitySet)同型實體的集合稱為實體集。如所有的學(xué)生、所有的課程等。5)鍵(Key)能唯一標(biāo)識一個實體的屬性或?qū)傩约Q為實體的鍵。如學(xué)生的學(xué)號,學(xué)生的姓名可能有重名,不能作為學(xué)生實體的鍵。,59,6)域(Domain)屬性值的取值范圍稱為該屬性的域。如學(xué)號的域為6位整數(shù),姓名的域為字符串集合,年齡的域為小于40的整數(shù),性別的域為(男,女)。7)聯(lián)系(Relationship)在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系同樣也要抽象和反映到信息世界中來,在信息世界中將被抽象為實體型內(nèi)部的聯(lián)系和實體型之間的聯(lián)系。實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系;實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。反映實體型及其聯(lián)系的結(jié)構(gòu)形式稱為實體模型,也稱作信息模型,它是現(xiàn)實世界及其聯(lián)系的抽象表示。,60,兩個實體型之間的聯(lián)系有如下三種類型:(1)一對一聯(lián)系(1:1)實體集A中的一個實體至多與實體集B中的一個實體相對應(yīng),反之亦然,則稱實體集A與實體集B為一對一的聯(lián)系。記作1:1。如:班級與班長,觀眾與座位,病人與床位。(2)一對多聯(lián)系(1:n)實體集A中的一個實體與實體集B中的多個實體相對應(yīng),反之,實體集B中的一個實體至多與實體集A中的一個實體相對應(yīng)。記作1:n。如:班級與學(xué)生、公司與職員、省與市。(3)多對多(m:n)實體集A中的一個實體與實體集B中的多個實體相對應(yīng),反之,實體集B中的一個實體與實體集A中的多個實體相對應(yīng)。記作(m:n)。如:教師與學(xué)生,學(xué)生與課程,工廠與產(chǎn)品。,61,實際上,一對一聯(lián)系是一對多聯(lián)系的特例,而一對多聯(lián)系又是多對多聯(lián)系的特例??梢杂脠D形來表示兩個實體型之間的這三類聯(lián)系,如圖書1.7所示。ABABAB(a)(b)(c)圖1.7不同實體集實體之間的聯(lián)系,62,3.計算機世界中的基本概念信息世界中的實體抽象為計算機世界中的數(shù)據(jù),存儲在計算機中。在計算機世界中,常用的主要概念如下:1)字段(Field)對應(yīng)于屬性的數(shù)據(jù)稱為字段,也稱為數(shù)據(jù)項。字段的命名往往和屬性名相同。如學(xué)生有學(xué)號、姓名、年齡、性別、系等字段。2)記錄(Record)對應(yīng)于每個實體的數(shù)據(jù)稱為記錄。如一個學(xué)生(990001,張立,20,男,計算機)為一個記錄。3)文件(File)對應(yīng)于實體集的數(shù)據(jù)稱為文件。如所有學(xué)生的記錄組成了一個學(xué)生文件。,63,在計算機世界中,信息模型被抽象為數(shù)據(jù)模型,實體型內(nèi)部的聯(lián)系抽象為同一記錄內(nèi)部各字段間的聯(lián)系,實體型之間的聯(lián)系抽象為記錄與記錄之間的聯(lián)系?,F(xiàn)實世界是設(shè)計數(shù)據(jù)庫的出發(fā)點,也是使用數(shù)據(jù)庫的最終歸宿。實體模型和數(shù)據(jù)模型是現(xiàn)實世界事物及其聯(lián)系的兩級抽象。而數(shù)據(jù)模型是實現(xiàn)數(shù)據(jù)庫系統(tǒng)的根據(jù)。通過以上的介紹,我們可總結(jié)出三個世界中各術(shù)語的對應(yīng)關(guān)系如圖1.8所示?,F(xiàn)實世界信息世界計算機世界事物總體實體集文件事物個體實體記錄特征屬性字段事物間聯(lián)系實體模型數(shù)據(jù)模型圖1.8三個世界各術(shù)語的對應(yīng)關(guān)系,64,1.7.3數(shù)據(jù)模型的分類數(shù)據(jù)模型的好壞,直接影響數(shù)據(jù)庫的性能。數(shù)據(jù)模型的選擇,是設(shè)計數(shù)據(jù)庫的一項首要任務(wù)。目前最常用的數(shù)據(jù)模型有層次模型(HierarchicalModel)、網(wǎng)狀模型(NetworkModel)和關(guān)系模型(RelationalModel)。這三種數(shù)據(jù)模型的根區(qū)別在于數(shù)據(jù)結(jié)構(gòu)不同,即數(shù)據(jù)之間聯(lián)系的表示方式不同。層次模型用“樹結(jié)構(gòu)”來表示數(shù)據(jù)之間的聯(lián)系;網(wǎng)狀模型是用“圖結(jié)構(gòu)”來表示數(shù)據(jù)之間的聯(lián)系;關(guān)系模型是用“二維表”來表示數(shù)據(jù)之間的聯(lián)系。,65,其中層次模型和網(wǎng)狀模型是早期的數(shù)據(jù)模型,統(tǒng)稱為非關(guān)系模型。20世紀(jì)70年代至80年代初,非關(guān)系模型的數(shù)據(jù)庫系統(tǒng)非常流行,在數(shù)據(jù)庫系統(tǒng)產(chǎn)品中占據(jù)了主導(dǎo)地位,現(xiàn)在已逐漸被關(guān)系模型的數(shù)據(jù)庫系統(tǒng)取代,但在美國等國,由于早期開發(fā)的應(yīng)用系都是基于層次數(shù)據(jù)庫或網(wǎng)狀數(shù)據(jù)庫系統(tǒng),因此目前層次數(shù)據(jù)庫或網(wǎng)狀數(shù)據(jù)庫的系統(tǒng)仍很多。20世紀(jì)80年代以來,面向?qū)ο蟮姆椒ê图夹g(shù)在計算機各個領(lǐng)域,包括程序設(shè)計語言、軟件工程、計算機硬件等各方面都產(chǎn)生了深遠的影響,出現(xiàn)了一種新的數(shù)據(jù)模型——面向?qū)ο蟮臄?shù)據(jù)模型,66,1.層次模型層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,采用層次模型的數(shù)據(jù)庫的典型代表是IBM公司的IMS(InformationManagementSystem)數(shù)據(jù)庫管理系統(tǒng),現(xiàn)實世界中,許多實體之間的聯(lián)系都表現(xiàn)出一種很自然的層次關(guān)系,如家族關(guān)系,行政機構(gòu)等。層次模型用一棵“有向樹”的數(shù)據(jù)結(jié)構(gòu)來表示各類實體以及實體間的聯(lián)系。在樹中,每個結(jié)點表示一個記錄類型,結(jié)點間的連線(或邊)表示記錄類型間的關(guān)系,每個記錄類型可包含若干個字段,記錄類型描述的是實體,字段描述實體的屬性,各個記錄類型及其字段都必須命名。如果要存取某一記錄型的記錄,可以從根結(jié)點起,按照有向樹層次向下查找。,67,圖1.9是層次模型有向樹的示意圖。結(jié)點A為根結(jié)點,D,F,G為葉結(jié)點,B,C為兄結(jié)點……圖1.9層次模型有向樹的示意圖,68,1.層次模型的特征(1)有且僅有一個結(jié)點沒有雙親,該結(jié)點就是根結(jié)點;(2)根以外的其他結(jié)點有且僅有一個雙親結(jié)點,這就使得層次數(shù)據(jù)庫系統(tǒng)只能直接處理一對多的實體關(guān)系;(3)任何一個給定的記錄值只有按其路徑查看時,才能顯出它的全部意義,沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在。例如:以下是一個層次模型的例子,如圖1.10所示。,圖1.10TS數(shù)據(jù)庫模型,69,層次數(shù)據(jù)庫為TS,它具有四個記錄型,分別是:記錄型D(系)是根結(jié)點,由字段D#(系編號)、DN(系名)、DL(系地點)組成,它有兩個孩子結(jié)點,:R和S,記錄型R(教研室)是D的孩子結(jié)點,同時又是T的雙親結(jié)點,它由R#(教研室編號)、RN(教研室名)兩個字段組成,記錄型S(學(xué)生)由S#(學(xué)號)、SN(姓名)、SS(成績)三個字段組成,記錄型T(教師)由T#(職工號)、TN(姓名)、TD(研究方向)三個字段組成,S與T是葉結(jié)點,它們沒有子女結(jié)點,由D到R,R到T,由D到S均是一對多的關(guān)系。,70,對應(yīng)上述數(shù)據(jù)模型的一個值,該值是D02系(計算機系)記錄值及其所有后代記錄值組成的一棵樹,D02系有3個教研室子記錄值:R01、R02、R03和3個學(xué)生記錄值:S63871、S63874、S63876,教研室R01有3個教師記錄值:T2101、T17090、T3501.,71,2.層次模型的數(shù)據(jù)操縱與數(shù)據(jù)完整性約束層次模型的數(shù)據(jù)操縱主要有查詢、插入、刪除和修改,進行插入、刪除和修改操作時要滿足層次模型的完整性約束條件。進行插入操作時,如果沒有相應(yīng)的雙親結(jié)點值就不能插入子女結(jié)點值;進行刪除操作時,如果刪除雙親結(jié)點值,則相應(yīng)的子女結(jié)點值也被同時刪除;修改操作時,應(yīng)修改所有相應(yīng)的記錄,以保證數(shù)據(jù)的一致性。,72,3.層次模型的優(yōu)缺點層次模型的優(yōu)點主要有:(1)比較簡單,只需很少幾條命令就能操縱數(shù)據(jù)庫,比較容易使用。(2)結(jié)構(gòu)清晰,結(jié)點間聯(lián)系簡單,只要知道每個結(jié)點的雙親結(jié)點,就可知道整個模型結(jié)構(gòu)。現(xiàn)實世界中許多實體間的聯(lián)系本來就呈現(xiàn)出一種很自然的層次關(guān)系,如表示行政層次,家族關(guān)系很方便。(3)它提供了良好的數(shù)據(jù)完整性支持。,73,層次模型的缺點主要有:(1)不能直接表示兩個以上的實體型間的復(fù)雜的聯(lián)系和實體型間的多對多聯(lián)系,只能通過引入冗余數(shù)據(jù)或創(chuàng)建虛擬結(jié)點的方法來解決,易產(chǎn)生不一致性。(2)對數(shù)據(jù)的插入和刪除的操作限制太多。(3)查詢子女結(jié)點必須通過雙親結(jié)點。,74,2.網(wǎng)狀模型現(xiàn)實世界中事物之間的聯(lián)系更多的是非層次關(guān)系的,用層次模型表示這種關(guān)系很不直觀,網(wǎng)狀模型克服了這一弊病,可以清晰的表示這種非層次關(guān)系。20世紀(jì)70年代,數(shù)據(jù)系統(tǒng)語言研究會CODASYL(ConferenceOnDataSystemLanguage)下屬的數(shù)據(jù)庫任務(wù)組DBTG(DataBaseTaskGroup)提出了一個系統(tǒng)方案,DBTG系統(tǒng),也稱CODASYL系統(tǒng),成為了網(wǎng)狀模型的代表。網(wǎng)狀模型取消了層次模型的兩個限制,兩個或兩個以上的結(jié)點都可以有多個雙親結(jié)點,則此時有向樹變成了有向圖,該有向圖描述了網(wǎng)狀模型。,75,網(wǎng)狀模型的特征(1)有一個以上的結(jié)點沒有雙親;(2)至少有一個結(jié)點可以有多于一個雙親。即允許兩個或兩個以上的結(jié)點沒有雙親結(jié)點,允許某個結(jié)點有多個雙親結(jié)點,則此時有向樹變成了有向圖,該有向圖描述了網(wǎng)狀模型。網(wǎng)狀模型中每個結(jié)點表示一個記錄型(實體),每個記錄型可包含若干個字段(實體的屬性),結(jié)點間的連線表示記錄類型(實體)間的父子關(guān)系。,76,如:學(xué)生和課程間的關(guān)系。一個學(xué)生可以選修多門課程,一門課程可以由多個學(xué)生選修。如圖1.11所示圖1.11學(xué)生與課程的網(wǎng)狀模型,77,2.網(wǎng)狀模型的數(shù)據(jù)操縱與完整性約束網(wǎng)狀模型的數(shù)據(jù)操縱主要包括查詢、插入、刪除和修改數(shù)據(jù)。插入數(shù)據(jù)時,允許插入尚未確定雙親結(jié)點值的子女結(jié)點值,如可增加一名尚未分配到某個教研室的新教師,也可增加一些剛來報到,還未分配宿舍的學(xué)生。刪除數(shù)據(jù)時,允許只刪除雙親結(jié)點值,如可刪除一個教研室,而該教研室所有教師的信息仍保留在數(shù)據(jù)庫中。修改數(shù)據(jù)時,可直接表示非樹形結(jié)構(gòu),而無需像層次模型那樣增加冗余結(jié)點,因此,修改操作時只需更新指定記錄即可。它沒有像層次數(shù)據(jù)庫那樣有嚴(yán)格的完整性約束條件,只提供一定的完整性約束。,78,3.網(wǎng)狀模型的優(yōu)缺點網(wǎng)狀模型的優(yōu)點主要有:(1)能更為直接地描述客觀世界,可表示實體間的多種復(fù)雜聯(lián)系。(2)具有良好的性能和存儲效率網(wǎng)狀模型的缺點主要有(1)結(jié)構(gòu)復(fù)雜,其DDL語言極其復(fù)雜。(2)數(shù)據(jù)獨立性差,由于實體間的聯(lián)系本質(zhì)上是通過存取路徑表示的,因此應(yīng)用程序在訪問數(shù)據(jù)時要指定存取路徑。,79,3.關(guān)系模型關(guān)系模型是發(fā)展較晚的一種模型,1970年美國IBM公司的研究員E.F.Codd首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型。他發(fā)表了題為“大型共享數(shù)據(jù)銀行數(shù)據(jù)的關(guān)系模型”(ARelationModelofDataforLargeSharedDataBanks),在文中解釋了關(guān)系模型,定義了某些關(guān)系代數(shù)運算,研究了數(shù)據(jù)的函數(shù)相關(guān)性,定義了關(guān)系的第三范式,從而開創(chuàng)了數(shù)據(jù)庫的關(guān)系方法和數(shù)據(jù)規(guī)范化理論的研究,他為此獲得了1981年的圖靈獎。此后許多人把研究方向轉(zhuǎn)到關(guān)系方法上,陸續(xù)出現(xiàn)了關(guān)系數(shù)據(jù)庫系統(tǒng)。1977年IBM公司研制的關(guān)系數(shù)據(jù)庫的代表SystemR開始運行,其后又進行了不斷的改進和擴充,出現(xiàn)了基于SystemR的數(shù)據(jù)庫系統(tǒng)SQL/DB。,80,20世紀(jì)80年代以來,計算機廠商新推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系模型,非關(guān)系系統(tǒng)的產(chǎn)品也都加上了關(guān)系接口。數(shù)據(jù)庫領(lǐng)域當(dāng)前的研究工作也都是以關(guān)系方法為基礎(chǔ)。關(guān)系數(shù)據(jù)庫已成為目前應(yīng)用最廣泛的數(shù)據(jù)庫系統(tǒng),如現(xiàn)在廣泛使用的小型數(shù)據(jù)庫系統(tǒng)Foxpro、Acess,大型數(shù)據(jù)庫系統(tǒng)Oracle、Informix、Sybase、SQLServer等都是關(guān)系數(shù)據(jù)庫系統(tǒng)。,81,1.關(guān)系模型的基本概念關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是一個“二維表框架”組成的集合,每個二維表又可稱為關(guān)系,所以關(guān)系模型是“關(guān)系框架”的集合。關(guān)系模型與層次模型、網(wǎng)狀模型不同,它是建立在嚴(yán)格的數(shù)學(xué)概念之上的。圖1.12給出了教學(xué)數(shù)據(jù)庫的關(guān)系模型及其實例,包含五個關(guān)系:教師關(guān)系T、學(xué)生關(guān)系S、課程關(guān)系C、選課關(guān)系SC和授課關(guān)系TC,分別對應(yīng)五張表。下面以圖1.12為例,介紹關(guān)系模型中所涉及的一些基概念。,82,T(教師表),83,S(學(xué)生表),84,C(課程表),85,SC(選課表)TC(授課表),86,(1)關(guān)系(Relation)一個關(guān)系對應(yīng)一張二維表,如圖1.12的五張表對應(yīng)五個關(guān)系。(2)元組(Tuple)表格中的一行,如S表中的一個學(xué)生記錄即為一個元組。(3)屬性(Attribute)表格中的一列,相當(dāng)于記錄中的一個字段,如S表中有五個屬性(學(xué)號,姓名,性別,年齡,系別)。(4)關(guān)鍵字(Key)可唯一標(biāo)識元組的屬性或?qū)傩约?,也稱為關(guān)系鍵或主碼,如S表中學(xué)號可以唯一確定一個學(xué)生,為學(xué)生關(guān)系的主碼。,87,(5)域(Domain)屬性的取值范圍,如年齡的域是(14~40),性別的域是(男,女)。(6)分量每一行對應(yīng)的列的屬性值,即元組中的一個屬性值,如學(xué)號、姓名、年齡等均是一個分量。(7)關(guān)系模式對關(guān)系的描述,一般表示為:關(guān)系名(屬性1,屬性2,……屬性n),如:學(xué)生(學(xué)號,姓名,性別,年齡,系別)。,88,在關(guān)系模型中,實體是用關(guān)系來表示的,如:學(xué)生(學(xué)號,姓名,性別,年齡,系別)課程(課程號,課程名,課時)實體間的關(guān)系也是用關(guān)系來表示的,如:學(xué)生和課程之間的關(guān)系選課關(guān)系(學(xué)號,課程號,成績),89,2.關(guān)系模型的數(shù)據(jù)操縱與完整性約束數(shù)據(jù)操縱主要包括查詢、插入、刪除和修改數(shù)據(jù),這些操作必須滿足關(guān)系的完整性約束條件,即實體完整性、參照完整性和用戶定義的完整性。有關(guān)完整性的具體含義將在下一章介紹。在非關(guān)系模型中,操作對象是單個記錄,而關(guān)系模型中的數(shù)據(jù)操作是集合操作,操作對象和操作結(jié)果都是關(guān)系,即若干元組的集合;用戶只要指出“干什么”,而不必詳細(xì)說明“怎么干”,從而大大地提高了數(shù)據(jù)的獨立性,提高了用戶的生產(chǎn)率。,90,3、關(guān)系模型的優(yōu)缺點關(guān)系模型的優(yōu)點主要有:(1)與非關(guān)系模型不同,它有較強的數(shù)學(xué)理論根據(jù)。(2)數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用,不僅用關(guān)系描述實體,而且用關(guān)系描述實體間的聯(lián)系。(3)關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫建立和開發(fā)的工作。關(guān)系模型的缺點主要有:由于存取路徑對用戶透明,查詢效率往往不如非關(guān)系模型,因此,為了提高性能,必須對用戶的查詢表示進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的負(fù)擔(dān)。,91,1.8數(shù)據(jù)模型與數(shù)據(jù)庫系統(tǒng)的發(fā)展,數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ),數(shù)據(jù)模型的發(fā)展經(jīng)歷了格式化數(shù)據(jù)模型(層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型的統(tǒng)稱)、關(guān)系數(shù)據(jù)模型和面向?qū)ο蟮臄?shù)據(jù)模型三個階段,按照這種劃分,數(shù)據(jù)庫技術(shù)的發(fā)展也經(jīng)歷了三個發(fā)展階段。,92,1.8.1第一代數(shù)據(jù)庫系統(tǒng)層次數(shù)據(jù)庫系統(tǒng)和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型分別為層次模型和網(wǎng)狀模型,但從本質(zhì)上講層次模型是網(wǎng)狀模型的特例,二者從體系結(jié)構(gòu)、數(shù)據(jù)庫語言到數(shù)據(jù)存儲管理上均具有共同的特征,都是格式化模型,屬于第一代數(shù)據(jù)庫系統(tǒng)。第一代數(shù)據(jù)庫系統(tǒng)的特點是:1.支持三級模式的體系結(jié)構(gòu)層次數(shù)據(jù)庫和網(wǎng)狀數(shù)據(jù)庫均支持三級模式結(jié)構(gòu),即外模式、模式和內(nèi)模式,并通過外模式與模式、模式與內(nèi)模式二級映象,保證了數(shù)據(jù)的物理獨立性和邏輯獨立性。2.用存取路徑來表示數(shù)據(jù)之間的聯(lián)系數(shù)據(jù)庫不僅存儲數(shù)據(jù)而且存儲數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)之間的聯(lián)系在層次和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)中是用存取路徑來表示和實現(xiàn)的。,93,3.獨立的數(shù)據(jù)定義語言第一代數(shù)據(jù)庫系統(tǒng)使用獨立的數(shù)據(jù)定義語言來描述數(shù)據(jù)庫的三級模式以及二級映象。格式一經(jīng)定義就很難修改,這就要求數(shù)據(jù)庫設(shè)計時,不僅要充分考慮用戶的當(dāng)前需求,還要了解需求可能的變化和發(fā)展。4.導(dǎo)航的數(shù)據(jù)操縱語言導(dǎo)航的含義就是用戶使用某種高級語言編寫程序,一步一步的引導(dǎo)程序按照數(shù)據(jù)庫中預(yù)先定義的存取路徑來訪問數(shù)據(jù)庫,最終達到要訪問的數(shù)據(jù)目標(biāo)。在訪問數(shù)據(jù)庫時,每次只能存取一條記錄值。若該記錄值不滿足要求就沿著存取路徑查找下一條記錄值。,94,1.8.2第二代數(shù)據(jù)庫系統(tǒng)第二代數(shù)據(jù)庫系統(tǒng)是指支持關(guān)系數(shù)據(jù)模型的關(guān)系數(shù)據(jù)庫系統(tǒng)。關(guān)系模型不僅簡單、清晰,而且有關(guān)系代數(shù)作為語言模型,有關(guān)系數(shù)據(jù)理論作為理論基礎(chǔ)。所以在關(guān)系模型提出后,很快便從實驗室走向了社會,20世紀(jì)80年代幾乎所有新開發(fā)的數(shù)據(jù)庫系統(tǒng)都是關(guān)系型數(shù)據(jù)庫系統(tǒng)。這些商用數(shù)據(jù)庫系統(tǒng)的運行,特別是微機RDBMS的使用,使數(shù)據(jù)庫技術(shù)日益廣泛地應(yīng)用到企業(yè)管理、情報檢索、輔助決策等各個方面,成為實現(xiàn)和優(yōu)化信息系統(tǒng)的基本技術(shù)。,95,關(guān)系模型之所以能成為深受廣大用戶歡迎的數(shù)據(jù)模型,與第一代數(shù)據(jù)庫系統(tǒng)所支持的格式化模型相比,主要具有以下特點:關(guān)系模型的概念單一,實體以及實體之間的聯(lián)系都用關(guān)系來表示;關(guān)系模型以關(guān)系代數(shù)為基礎(chǔ),形式化基礎(chǔ)好;數(shù)據(jù)獨立性強,數(shù)據(jù)的物理存取路徑對用戶隱蔽;關(guān)系數(shù)據(jù)庫語言是非過程化的,將用戶從編程數(shù)據(jù)庫記錄的導(dǎo)航式檢索中解脫出來,大大降低了用戶編程的難度。,96,1.8.3傳統(tǒng)數(shù)據(jù)庫的局限性一般說來,將第一代數(shù)據(jù)庫和第二代數(shù)據(jù)庫稱為傳統(tǒng)數(shù)據(jù)庫。由于傳統(tǒng)數(shù)據(jù)庫尤其是關(guān)系數(shù)據(jù)庫系統(tǒng)具有許多優(yōu)點,人們紛紛采用數(shù)據(jù)庫技術(shù)來進行數(shù)據(jù)管理,數(shù)據(jù)庫技術(shù)被應(yīng)用到了許多新的領(lǐng)域,如計算機輔助設(shè)計/計算機輔助制造(CAD/CAM),計算機輔助工程(CASE),圖像處理等,這些新領(lǐng)域的應(yīng)用不僅需要傳統(tǒng)數(shù)據(jù)庫所具有的快速檢索和修改數(shù)據(jù)的特點,而且在應(yīng)用中提出了一些新的數(shù)據(jù)管理的需求,如要求數(shù)據(jù)庫能夠處理聲音、圖像、視頻等多媒體數(shù)據(jù)。在這些新領(lǐng)域中,傳統(tǒng)數(shù)據(jù)庫暴露了其應(yīng)用的局限性,主要表現(xiàn)在以下幾個方面:,97,1.面向機器的語法數(shù)據(jù)模型傳統(tǒng)數(shù)據(jù)庫中采用的數(shù)據(jù)模型是面向機器的語法數(shù)據(jù)模型,只強調(diào)數(shù)據(jù)的高度結(jié)構(gòu)化,只能存儲離散的數(shù)據(jù)和有限的數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系,語義表示能力較差,無法表示客觀世界中的復(fù)雜對象,如聲音、圖像、視頻等多媒體數(shù)據(jù),工程、測繪等領(lǐng)域中的非格式化數(shù)據(jù)。此外,傳統(tǒng)數(shù)據(jù)模型缺乏數(shù)據(jù)抽象,無法揭示數(shù)據(jù)之間的深層含義和內(nèi)在聯(lián)系。2.數(shù)據(jù)類型簡單、固定傳統(tǒng)的DBMS主要面向事務(wù)處理,只能處理簡單的數(shù)據(jù)類型,如整數(shù)、實數(shù)、字符串、日期等,而不能根據(jù)特定的需要定義新的數(shù)據(jù)類型。例如,不能定義包含三個實數(shù)分量(x,y,z)的數(shù)據(jù)類型circle來表示圓,而只能分別定義三個實型的字段。這樣對于復(fù)雜的數(shù)據(jù)類型只能由用戶編寫程序來處理,加重了用戶的負(fù)擔(dān),也不能保證數(shù)據(jù)的一致性。,98,3.結(jié)構(gòu)與行為完全分離從應(yīng)用程序員的角度來看,在某一應(yīng)用領(lǐng)域內(nèi)標(biāo)識的對象可以包含兩方面的內(nèi)容,即對象的結(jié)構(gòu)和對象的行為。傳統(tǒng)的數(shù)據(jù)庫可以采用一定的數(shù)據(jù)庫模式來表示前者,而對于后者,卻不能直接存儲和處理,必須通過另外的應(yīng)用程序加以實現(xiàn)。例如,對于多媒體數(shù)據(jù),雖然可以在帶有前面所提到的缺陷的情況下以簡單的二進制代碼形式存儲其結(jié)構(gòu),但卻無法存儲其行為(如播放聲音、顯示圖像等)。這樣,這些多媒體數(shù)據(jù)必須由相應(yīng)的應(yīng)用程序來識別,而對于其他不了解其格式的用戶來說,數(shù)據(jù)庫中存儲的是沒有任何意義的二進制數(shù)據(jù)。由此可見,在傳統(tǒng)數(shù)據(jù)庫中,對象的結(jié)構(gòu)可以存儲在數(shù)據(jù)庫中,而對象的行為必須由應(yīng)用程序來表示,對象的結(jié)構(gòu)與行為完全相分離。,99,4.被動響應(yīng)傳統(tǒng)數(shù)據(jù)庫只能根據(jù)用戶的命令執(zhí)行特定的服務(wù),屬于被動響應(yīng),用戶要求做什么,系統(tǒng)就做什么。而在實際應(yīng)用中,往往要求一個系統(tǒng)能夠管理它本身的狀態(tài),在發(fā)現(xiàn)異常情況時及時通知用戶;能夠主動響應(yīng)某些操作或外部事件,自動采取規(guī)定的行動等等。例如,一個倉庫管理系統(tǒng)除了希望數(shù)據(jù)庫系統(tǒng)能夠正確,高效地存儲有關(guān)物品的數(shù)據(jù),還希望數(shù)據(jù)庫系統(tǒng)能夠?qū)}庫庫存進行監(jiān)控,當(dāng)庫存太少或太多時主動向用戶發(fā)出警告。要完成這樣的工作,數(shù)據(jù)庫系統(tǒng)必須更加主動、更加智能化,而傳統(tǒng)的數(shù)據(jù)庫顯然不能適應(yīng)這一要求。5.事務(wù)處理能力較差傳統(tǒng)數(shù)據(jù)庫只能支持非嵌套事務(wù),對于較長事務(wù)的運行較慢,且中事務(wù)發(fā)生故障時恢復(fù)比較困難。由于存在上述種種缺陷,使得傳統(tǒng)數(shù)據(jù)庫無法滿足新領(lǐng)域的應(yīng)用需求,數(shù)據(jù)庫技術(shù)遇到了挑戰(zhàn),在這種情況下,新一代數(shù)據(jù)庫技術(shù)應(yīng)運而生。,100,1.8.4第三代數(shù)據(jù)庫系統(tǒng)1.第三代數(shù)據(jù)庫系統(tǒng)的特點第三代數(shù)據(jù)庫系統(tǒng)是指支持面向?qū)ο螅∣bjectOriented,簡稱OO)數(shù)據(jù)模型的數(shù)據(jù)庫系統(tǒng)。在數(shù)據(jù)庫面臨許多新的應(yīng)用領(lǐng)域時,1989年9月,一批專門研究面向?qū)ο蠹夹g(shù)的著名學(xué)者著文“面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)宣言”,提出繼第一代(層次、網(wǎng)狀)和第二代(關(guān)系)數(shù)據(jù)庫系統(tǒng)后,新一代DBS將是OODBS。1990年9月,一些長期從事關(guān)系數(shù)據(jù)庫理論研究的學(xué)者組建了高級DBMS功能委員會,發(fā)表了“第三代數(shù)據(jù)庫系統(tǒng)宣言”的文章,提出了第三代DBMS應(yīng)具有的三個基本特點。,101,1.第三代數(shù)據(jù)庫系統(tǒng)應(yīng)支持面向?qū)ο蟮臄?shù)據(jù)模型除提供傳統(tǒng)的數(shù)據(jù)管理服務(wù)外,第三代數(shù)據(jù)庫系統(tǒng)應(yīng)支持?jǐn)?shù)據(jù)管理、對象管理和知識管理,支持更加豐富的對象結(jié)構(gòu)和規(guī)則,以提供更加強大的管理功能,支持更加復(fù)雜的數(shù)據(jù)類型,以便能夠處理非傳統(tǒng)的數(shù)據(jù)元素(如超文本、圖片、聲音等)。90年代成功的DBMS都會提供上述服務(wù)。有關(guān)OO模型的基本內(nèi)容,將在下一節(jié)“面向?qū)ο蟮臄?shù)據(jù)庫技術(shù)”中詳細(xì)介紹。2.第三代數(shù)據(jù)庫系統(tǒng)必須保持或繼承第二代數(shù)據(jù)庫系統(tǒng)的優(yōu)點第三代數(shù)據(jù)庫系統(tǒng)不僅能很好的支持對象管理和規(guī)則管理,還要更好地支持原有的數(shù)據(jù)管理,保持第二代數(shù)據(jù)庫系統(tǒng)的非過程化的數(shù)據(jù)存取方式和數(shù)據(jù)獨立性。,102,3.第三代數(shù)據(jù)庫系統(tǒng)必須具有開放性數(shù)據(jù)庫系統(tǒng)的開放性(o- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)庫 原理 應(yīng)用 系統(tǒng) 概述
鏈接地址:http://www.3dchina-expo.com/p-11536418.html