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