




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、,1,第1章 數(shù)據(jù)庫系統(tǒng)概述,為什么學(xué)習(xí)數(shù)據(jù)庫?,數(shù)據(jù)庫技術(shù)是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最快的領(lǐng)域之一,也是應(yīng)用最廣的技術(shù)之一。它已成為各行各業(yè)存儲(chǔ)數(shù)據(jù)、管理信息、共享資源的最先進(jìn)最常用的技術(shù)。 數(shù)據(jù)庫技術(shù)研究的問題是:如何科學(xué)地組織和存儲(chǔ)數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù),如何更廣泛、更安全地共享數(shù)據(jù)。,3,數(shù)據(jù)庫應(yīng)用例1,4,如航空售票系統(tǒng),包括的數(shù)據(jù)項(xiàng): 1)座位預(yù)定信息:座位分配、座位確認(rèn)等 2)航班信息:航班號(hào)、飛機(jī)型號(hào)、機(jī)組號(hào)、起飛地、目的地、起飛時(shí)間、到達(dá)時(shí)間等。 3)機(jī)票信息:票價(jià)、折扣、有無等。 系統(tǒng)工作: 1)查詢:某一時(shí)間內(nèi)從某個(gè)指定地到另一指定地的航班,是否
2、有可以選擇的座位、飛機(jī)型號(hào)、票價(jià)、折扣等。 2)更新:登記航班、分配座位等 3)統(tǒng)計(jì):統(tǒng)計(jì)經(jīng)常乘坐某一航班的乘客信息等。,數(shù)據(jù)庫應(yīng)用例2,5,圖書管理系統(tǒng),包括的主要數(shù)據(jù)項(xiàng): 1)圖書信息:書號(hào)、書名、作者姓名、出版日期等 2)作者信息:姓名、性別、住址、電話等 3)出版社信息:名稱、地址、社長(zhǎng)、電話等 4)讀者信息:姓名、借書號(hào)、借書數(shù)量等 管理工作: 1)查詢:查看圖書、檢索指定作者的圖書、檢索指定出版社出版的圖書等。 2)更新:新書登記、作者信息等,1.1 信息、數(shù)據(jù)、數(shù)據(jù)處理與數(shù)據(jù)管理 1.2 數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展 1.3 數(shù)據(jù)庫系統(tǒng)的組成 1.4 數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu) 1.5 數(shù)據(jù)
3、庫系統(tǒng)的外部體系結(jié)構(gòu) 1.6 數(shù)據(jù)庫管理系統(tǒng)(DBMS) 1.7 數(shù)據(jù)模型 1.8 四種數(shù)據(jù)模型 1.9 數(shù)據(jù)庫系統(tǒng)的發(fā)展 1.10 數(shù)據(jù)庫技術(shù)與其他相關(guān)技術(shù)的結(jié)合,6,通訊錄: 圖書館:,7,數(shù)據(jù)庫,數(shù)據(jù)的倉庫,即數(shù)據(jù)存放的地方,小數(shù)據(jù)庫 可用手工管理,大型數(shù)據(jù)庫 必須由計(jì)算機(jī)進(jìn)行管理,計(jì)算機(jī)三大主要應(yīng)用領(lǐng)域?,科學(xué)計(jì)算,過程控制,數(shù)據(jù)處理,70%,1.1 信息、數(shù)據(jù)、數(shù)據(jù)處理與數(shù)據(jù)管理,1.1.1 數(shù)據(jù)與信息,8,信息的特征,信息,能源,材料,客觀世界的三大要素,采集并加工、傳遞,消息 情報(bào) 指令 數(shù)據(jù) 信號(hào),學(xué)號(hào):S1 姓名:趙亦 性別:女 年齡:17歲 所在系別:計(jì)算機(jī),源于物質(zhì)和能量
4、,可以感知,可存儲(chǔ)、加工、 傳遞和再生,信息是關(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%”,其中的數(shù)據(jù) 可改為漢字形式“兩千年”、“百分之三十”。,9,S1 趙亦 女 17歲 計(jì)算機(jī),數(shù)字 文字 圖形 圖象 聲音等,數(shù)據(jù) 數(shù)據(jù)是信息的具體表現(xiàn)形式 數(shù)據(jù)的表現(xiàn)形式,數(shù)據(jù)與信息的聯(lián)系 如上例中的數(shù)據(jù)2000、30%被賦予了特定的語義,它們就具有了傳遞信息的功能。,10,數(shù)據(jù)是信息的符號(hào)表示或載體 信息是數(shù)據(jù)的內(nèi)涵,是對(duì)數(shù)據(jù)的語義解
5、釋,1.1.2 數(shù)據(jù)處理與數(shù)據(jù)管理,信息數(shù)據(jù)數(shù)據(jù)處理,11,將數(shù)據(jù)轉(zhuǎn)換成信息 包括數(shù)據(jù)的收集、 管理、加工利用 乃至信息輸出,數(shù)據(jù)的收集、 整理、組織、 編碼、存儲(chǔ)、 維護(hù)、檢索、 傳輸?shù)炔僮?數(shù)據(jù)處理,數(shù)據(jù)管理,產(chǎn)出 輸出結(jié)果,原料 輸入,“數(shù)據(jù)處理”的真正含義應(yīng)該是為了產(chǎn)生信息而處理數(shù)據(jù),1.2 數(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ā)展階段。,12,人工管理階段,人工管理階段(50年代中期以前)應(yīng)用背景 這一階段計(jì)算機(jī)主要用于科學(xué)計(jì)算。
6、硬件中的外存只有卡片、紙帶、磁帶,沒有磁盤等直接存取設(shè)備。 軟件只有匯編語言,沒有操作系統(tǒng)和管理數(shù)據(jù)的軟件。 數(shù)據(jù)處理的方式基本上是批處理。,13,人工管理階段,人工管理階段的特點(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ù)。,14,人工管理階段,4
7、. 數(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表示。,15,文件系統(tǒng)階段(50年代后期至60年代中期),應(yīng)用背景 這一階段,計(jì)算機(jī)不僅用于科學(xué)計(jì)算,還大量用于信息管理。 大量的數(shù)據(jù)存儲(chǔ)、檢索和維護(hù)成為緊迫的需求。 硬件有了磁盤、磁鼓等直接存儲(chǔ)設(shè)備。 在軟件方面,出現(xiàn)了高級(jí)語言和操作系統(tǒng)。 操作系統(tǒng)中有了專門管理數(shù)據(jù)的軟件,一般稱為文件系統(tǒng)。 處理方式有批處理,也有聯(lián)機(jī)處理。,16,文件系統(tǒng)階段,文件管理數(shù)據(jù)的特點(diǎn)如下: 1. 數(shù)據(jù)以文件形式可長(zhǎng)期保存下來:用
8、戶可隨時(shí)對(duì)文件進(jìn)行查詢、修改和增刪等處理。 2. 文件系統(tǒng)可對(duì)數(shù)據(jù)的存取進(jìn)行管理:程序員只與文件名打交道,不必明確數(shù)據(jù)的物理存儲(chǔ),大大減輕了程序員的負(fù)擔(dān)。 3. 文件形式多樣化:有順序文件、倒排文件、索引文件等,因而對(duì)文件的記錄可順序訪問,也可隨機(jī)訪問,更便于存儲(chǔ)和查找數(shù)據(jù)。 4. 程序與數(shù)據(jù)間有一定獨(dú)立性:由專門的軟件即文件系統(tǒng)進(jìn)行數(shù)據(jù)管理,程序和數(shù)據(jù)間由軟件提供的存取方法進(jìn)行轉(zhuǎn)換,數(shù)據(jù)存儲(chǔ)發(fā)生變化不一定影響程序的運(yùn)行。,17,文件系統(tǒng)階段,在文件系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系可用圖1.2表示。,18,圖1.2 文件系統(tǒng)階段,文件系統(tǒng)階段,與人工管理階段相比,文件系統(tǒng)階段對(duì)數(shù)據(jù)的管理有了很大
9、的進(jìn)步,但一些根本性問題仍沒有徹底解決,主要表現(xiàn)在以下三方面: 數(shù)據(jù)冗余度大:各數(shù)據(jù)文件之間沒有有機(jī)的聯(lián)系,一個(gè)文件基本上對(duì)應(yīng)于一個(gè)應(yīng)用程序,數(shù)據(jù)不能共享。 數(shù)據(jù)獨(dú)立性低:數(shù)據(jù)和程序相互依賴,一旦改變數(shù)據(jù)的邏輯結(jié)構(gòu),必須修改相應(yīng)的應(yīng)用程序。而應(yīng)用程序發(fā)生變化,如改用另一種程序設(shè)計(jì)語言來編寫程序,也需修改數(shù)據(jù)結(jié)構(gòu)。 數(shù)據(jù)一致性差:由于相同數(shù)據(jù)的重復(fù)存儲(chǔ)、各自管理,在進(jìn)行更新操作時(shí),容易造成數(shù)據(jù)的不一致性。,19,數(shù)據(jù)庫系統(tǒng)階段(60年代末開始),背景 60年代后期,計(jì)算機(jī)應(yīng)用于管理的規(guī)模更加龐大,數(shù)據(jù)量急劇增加; 硬件方面出現(xiàn)了大容量磁盤,使計(jì)算機(jī)聯(lián)機(jī)存取大量數(shù)據(jù)成為可能; 硬件價(jià)格下降,而軟件
10、價(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)。,20,數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)庫系統(tǒng)管理數(shù)據(jù)的特點(diǎn)如下: 1、數(shù)據(jù)共享性高、冗余少: 這是數(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ù)之間的不相容性與不一致性。 2、數(shù)據(jù)結(jié)構(gòu)化 按照某種數(shù)據(jù)模型,將全組織的各種數(shù)據(jù)組織到一個(gè)結(jié)構(gòu)化的數(shù)據(jù)庫中,整個(gè)組織的數(shù)據(jù)不是一盤散沙,可表示出數(shù)據(jù)之間的
11、有機(jī)關(guān)聯(lián)。,21,數(shù)據(jù)庫系統(tǒng)階段,例:要建立學(xué)生成績(jī)管理系統(tǒng),系統(tǒng)包含如下數(shù)據(jù),并 分別對(duì)應(yīng)三個(gè)文件。 學(xué)生(學(xué)號(hào)、姓名、性別、系別、年齡) 課程(課程號(hào)、課程名) 成績(jī)(學(xué)號(hào)、課程號(hào)、成績(jī)) 若采用文件處理方式,因?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ī)查到。,22,數(shù)據(jù)庫系統(tǒng)階段,3、數(shù)據(jù)獨(dú)立性高:數(shù)據(jù)的獨(dú)立性是指邏輯獨(dú)立性和物理獨(dú)立性。 數(shù)據(jù)的邏輯獨(dú)立性是指當(dāng)數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時(shí),
12、數(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ú)立性。,23,數(shù)據(jù)庫系統(tǒng)階段,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ù),
13、為確保數(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ù)的正確性、有效性和相容性。,24,數(shù)據(jù)庫系統(tǒng)階段,正確性是指數(shù)據(jù)的合法性,如年齡屬于數(shù)值型數(shù)據(jù),只能含0,1,9,不能含字母或特殊符號(hào); 有效性是指數(shù)據(jù)是否在其定義的有效范圍,
14、如月份只能用112之間的正整數(shù)表示; 相容性是指表示同一事實(shí)的兩個(gè)數(shù)據(jù)應(yīng)相同,否則就不相容,如一個(gè)人不能有兩個(gè)性別。 (3)并發(fā)(concurrency)控制:多用戶同時(shí)存取或修改數(shù)據(jù)庫時(shí),防止相互干擾而提供給用戶不正確的數(shù)據(jù),并使數(shù)據(jù)庫受到破壞。,25,數(shù)據(jù)庫系統(tǒng)階段,(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.3 數(shù)據(jù)庫系統(tǒng)階段,26,數(shù)據(jù)庫系統(tǒng)階段,從文件系統(tǒng)管理發(fā)展到數(shù)據(jù)庫系統(tǒng)管理是信息處理領(lǐng)域的一個(gè)重大變化。 在文件系統(tǒng)階段,人們關(guān)注的是系統(tǒng)
15、功能的設(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ā)展。,27,1.3 數(shù)據(jù)庫系統(tǒng)的組成,數(shù)據(jù)庫系統(tǒng)(DBS),28,數(shù)據(jù)庫,計(jì)算機(jī)軟件系統(tǒng),數(shù)據(jù)庫用戶,計(jì)算機(jī)硬件系統(tǒng),圖1-6 數(shù)據(jù)庫系統(tǒng),用戶1,用戶2,用戶n,用戶,應(yīng)用系統(tǒng),應(yīng)用開發(fā)工具,DBMS,操作系統(tǒng)OS,數(shù)據(jù)庫,數(shù)據(jù)庫管理員,軟件系統(tǒng),數(shù)據(jù)庫 數(shù)據(jù)庫(DB)是存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合 用戶,29,集成性 ,共享性,終端用戶,應(yīng)用
16、程序員,數(shù)據(jù)庫管理員,對(duì)數(shù)據(jù)庫進(jìn)行存儲(chǔ)、維護(hù)和檢索,主要是使用數(shù)據(jù)庫的各級(jí)管理人員、工程技術(shù) 人員、科研人員,一般為非計(jì)算機(jī)專業(yè)人員,負(fù)責(zé)為終端用戶設(shè)計(jì)和編制應(yīng)用程序,以便終 端用戶對(duì)數(shù)據(jù)庫進(jìn)行存取操作。,負(fù)責(zé)設(shè)計(jì)、建立、管理和維護(hù)數(shù)據(jù)庫以及協(xié)調(diào) 用戶對(duì)數(shù)據(jù)庫要求的個(gè)人或工作團(tuán)隊(duì),軟件(Software)系統(tǒng) 硬件(Hardware)系統(tǒng) 硬件系統(tǒng)指存儲(chǔ)和運(yùn)行數(shù)據(jù)庫系統(tǒng)的硬件設(shè)備。包括CPU、內(nèi)存、大容量的存儲(chǔ)設(shè)備、外部設(shè)備等。 數(shù)據(jù)庫系統(tǒng)在整個(gè)計(jì)算 機(jī)系統(tǒng)中的地位如圖所示,30,DBMS,OS,應(yīng)用系統(tǒng),軟件系統(tǒng):,數(shù)據(jù)庫系統(tǒng)的 核心,DBMS在操作系統(tǒng)支持下工作,應(yīng)用程序在DBMS支持下才
17、能使用數(shù)據(jù)庫。,1.4 數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu),1.4.1 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu) 模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。 數(shù)據(jù)庫系統(tǒng)內(nèi)部的體系結(jié)構(gòu)從邏輯上分為三級(jí),31,型,值,模式,實(shí)例,外模式,模式,內(nèi)模式,可以從多種不同的角度考查數(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)。,32,圖1-8 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu),應(yīng)用1,應(yīng)用2,應(yīng)用n,外模式1,外模式m,外模式/模式映象,
18、模式,模式/內(nèi)模式映象,內(nèi)模式,數(shù)據(jù)庫,用戶級(jí),概念級(jí),物理級(jí),內(nèi)模式是整個(gè)數(shù)據(jù)庫實(shí)際存儲(chǔ)的表示 模式是整個(gè)數(shù)據(jù)庫實(shí)際存儲(chǔ)的抽象表示,DBMS 提供模式描述語言(模式 DDL)來定義模式。 外模式是概念模式的某一部分的抽象表示, DBMS 提供子模式描述語言(子模式 DDL)來定義子模式。,33,外模式,模式,內(nèi)模式,數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,數(shù)據(jù)庫用戶能看到并允許使用的那 部分局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它是對(duì)數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù) 據(jù)庫內(nèi)部的表示方式 .與實(shí)際存儲(chǔ)數(shù)據(jù)方式有 關(guān)的一層,由多個(gè)存儲(chǔ)記錄組成,但并非物 理層,不必關(guān)心具體的存儲(chǔ)位置。,可有多個(gè),只有一
19、個(gè),三級(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ù)的安全。,34,1.4.2 數(shù)據(jù)庫系統(tǒng)的二級(jí)映象與數(shù)據(jù)獨(dú)立性,DBMS在三級(jí)模式之間提供了二級(jí)映象功能,保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性與物理獨(dú)立性。,35,
20、模式/內(nèi)模式映象,確定了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu) 之間的對(duì)應(yīng)關(guān)系。確保了數(shù)據(jù)的物理獨(dú) 立性,例如,存儲(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ú)立性。,36,外模式/模式映象,保證了數(shù)據(jù)與程序間的邏輯獨(dú)立性,數(shù)據(jù)庫中的同一模式可以有任意多個(gè)外模式,對(duì)于每一個(gè)外模式,都存在一個(gè)外模式/模式映象。 它確定了數(shù)據(jù)的局部邏輯結(jié)構(gòu)與全局邏輯結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。 例如,在原
21、有的記錄類型之間增加新的聯(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ú)立性。,1.5 數(shù)據(jù)庫系統(tǒng)的外部體系結(jié)構(gòu),單用戶結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),主從式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),將應(yīng)用程序、DBMS、數(shù)據(jù)庫都裝在一臺(tái) 計(jì)算機(jī)上,不能共享數(shù)據(jù) 。,大型主機(jī)帶多個(gè)終端;應(yīng)用程序、 DBMS、數(shù)據(jù)庫都集中于大型主機(jī)上; 主機(jī)處理,終端輸出,是分布在計(jì)算機(jī)網(wǎng)絡(luò)上的多個(gè)邏輯相 關(guān)的數(shù)據(jù)庫的集合;數(shù)據(jù)在物
22、理上分 布,所有數(shù)據(jù)在邏輯上是整體的,結(jié) 點(diǎn)上 分別存儲(chǔ)的數(shù)據(jù)相對(duì)獨(dú)立。,從最終用戶角度來看,數(shù)據(jù)庫系統(tǒng)分為單用戶結(jié)構(gòu)、主從式 結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶服務(wù)器結(jié)構(gòu)和瀏覽器服務(wù)器結(jié)構(gòu)。,38,客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),瀏覽器/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),把DBMS的功能與應(yīng)用程序分開;管理 數(shù)據(jù)的節(jié)點(diǎn)稱為服務(wù)器應(yīng)用DBMS的節(jié) 點(diǎn)稱為客戶機(jī)??蛻魴C(jī)負(fù)責(zé)管理用戶界 面 ,接收用戶數(shù)據(jù),處理應(yīng)用邏輯,生成 數(shù)據(jù)庫服務(wù)請(qǐng)求,發(fā)送給服務(wù)器,服務(wù) 器處理后,將結(jié)果返回給客戶機(jī),并將 結(jié)果按一定格式顯示給用戶。稱為胖客 戶機(jī)模式。,客戶機(jī)端近安裝通用的瀏覽器軟件, 將客戶端運(yùn)行的應(yīng)用程序轉(zhuǎn)移到應(yīng)用 服務(wù)器上
23、,充當(dāng)了客戶機(jī)和數(shù)據(jù)庫服 務(wù)器的中介,架起了用戶界面與數(shù)據(jù)庫 之間的,1.6 數(shù)據(jù)庫管理系統(tǒng)(DBMS),39,DBS,DBMS,核心,數(shù)據(jù)定義 查詢 更新 各種控制,DBMS就是實(shí)現(xiàn)把用戶意義下的抽象的邏輯數(shù)據(jù)處理轉(zhuǎn)換成計(jì)算機(jī)中的具體的物理數(shù)據(jù)的處理軟件,這給用戶帶來很大的方便。,1.6.1 DBMS的主要功能 數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能 、數(shù)據(jù)庫運(yùn)行管理功能 、數(shù)據(jù)庫的建立和維護(hù)功能 、數(shù)據(jù)通信接口 、數(shù)據(jù)組織、存儲(chǔ)和管理 數(shù)據(jù)定義功能 定義數(shù)據(jù)的模式、外模式和內(nèi)模式三級(jí)模式結(jié)構(gòu) 定義模式/內(nèi)模式和外模式/模式二級(jí)映象 定義有關(guān)的約束條件,40,例如,為保證數(shù)據(jù)庫安全而定義的用戶口令和存取
24、權(quán)限,為保證正確語義而定義完整性規(guī)則。,數(shù)據(jù)操縱功能 提供數(shù)據(jù)操縱語言實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的基本操作:檢索、更新(包括插入、修改、刪除)等。 DML有兩類 : 自主型 宿主型 數(shù)據(jù)庫運(yùn)行管理功能 對(duì)數(shù)據(jù)庫運(yùn)行的管理是DBMS運(yùn)行的核心部分。 DBMS對(duì)數(shù)據(jù)庫的控制主要通過四個(gè)方面實(shí)現(xiàn):數(shù)據(jù)的安全性控制、數(shù)據(jù)的完整性控制、多用戶環(huán)境下的并發(fā)控制和數(shù)據(jù)庫的恢復(fù)。,41,交互式命令語言,語法簡(jiǎn)單,獨(dú)立使用,把對(duì)數(shù)據(jù)的存取語句嵌入在如Fortran、 Pascal、C等高級(jí)語言中,不能單獨(dú)使用,數(shù)據(jù)庫的建立和維護(hù)功能 數(shù)據(jù)庫的建立包括數(shù)據(jù)庫的初始數(shù)據(jù)的裝入與數(shù)據(jù)轉(zhuǎn)換等。 數(shù)據(jù)庫的維護(hù)包括數(shù)據(jù)庫的轉(zhuǎn)儲(chǔ)、恢復(fù)、重
25、組織與重構(gòu)造、系統(tǒng)性能監(jiān)視與分析等。 數(shù)據(jù)通信接口 DBMS提供與其他軟件系統(tǒng)進(jìn)行通信的功能。 實(shí)現(xiàn)用戶程序與DBMS之間的通信,通常與操作系統(tǒng)協(xié)調(diào)完成。 數(shù)據(jù)組織、存儲(chǔ)和管理 負(fù)責(zé)對(duì)數(shù)據(jù)庫中需要存放的各種數(shù)據(jù)如:數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑等的組織、存儲(chǔ)和管理工作,確定以何種文件結(jié)構(gòu)和存取方式物理地組織這些數(shù)據(jù),以提高存儲(chǔ)空間利用率和對(duì)數(shù)據(jù)庫進(jìn)行增、刪、查、改的效率等。,42,1.6.2 DBMS的組成,43,語言編譯處理程序,數(shù)據(jù)定義語言DDL及其編譯程序 它把用DDL編寫的各級(jí)源模式編譯成各級(jí)目標(biāo)模式,這些目標(biāo)模式是對(duì) 數(shù)據(jù)庫結(jié)構(gòu)信息的描述,而不是數(shù)據(jù)本身,它們被保存在數(shù)據(jù)字典中, 供以
26、后數(shù)據(jù)操縱或數(shù)據(jù)控制時(shí)使用。 數(shù)據(jù)操縱語言DML及其編譯程序 實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的基本操作。DML有兩類,一類是宿主型,嵌入在高級(jí)語 言中,不能單獨(dú)使用;另一類是自主型或自含型,可獨(dú)立地交互使用。,44,系統(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ù)庫的并發(fā)操作,保證數(shù)據(jù)的一致性; 數(shù)據(jù)存取和更新程序:實(shí)施對(duì)數(shù)據(jù)庫數(shù)據(jù)的檢索、插入、修 改、刪除等操作; 通信控
27、制程序:實(shí)現(xiàn)用戶程序與DBMS間的通信,45,系統(tǒng)建立、維護(hù)程序,數(shù)據(jù)字典,裝配程序:完成初始數(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)。,用來描述數(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ù)庫,1.6.3 DBMS的數(shù)據(jù)存取的過程,DBMS對(duì)數(shù)據(jù)的存取通常需要以下幾個(gè)步驟: (1)用戶使用某種特定的數(shù)據(jù)操作語言向DBMS
28、發(fā)出存取請(qǐng)求; (2)DBMS接受請(qǐng)求并將該請(qǐng)求解釋轉(zhuǎn)換成機(jī)器代碼指令; (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)行必要的處理,如格式轉(zhuǎn)換等。 (7)將處理的結(jié)果返回給用戶。,46,47,應(yīng)用程序,數(shù)據(jù)庫,DBMS,數(shù)據(jù)請(qǐng)求,處理結(jié)果,低層指令,結(jié)果,圖1-11 DBMS的工作方式,應(yīng)用程序,系統(tǒng)緩沖區(qū),DBMS,操作系統(tǒng),外模式,模式,內(nèi)模式,數(shù)據(jù)庫,圖1-12 DBMS存取數(shù)據(jù)的過程示意圖,1.7 數(shù)據(jù)模型,數(shù)據(jù)庫即是模擬現(xiàn)實(shí)世界中某應(yīng)
29、用環(huán)境所涉及的數(shù)據(jù)的集合?;蛘甙诵畔⒌囊徊糠郑ㄓ糜脩粢晥D模擬),或者包含了信息的全部(用概念視圖模擬),而這種模擬是通過數(shù)據(jù)模型來進(jìn)行的。 數(shù)據(jù)模型是數(shù)據(jù)庫的框架 數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ) 1.7.2 三個(gè)世界的劃分及其有關(guān)概念 三個(gè)世界的劃分 首先將現(xiàn)實(shí)世界的事物及聯(lián)系抽象成信息世界的信息模型 然后再抽象成計(jì)算機(jī)世界的數(shù)據(jù)模型 數(shù)據(jù)加工經(jīng)歷了現(xiàn)實(shí)世界、信息世界和計(jì)算機(jī)世界三個(gè)不同的世界,經(jīng)歷了兩級(jí)抽象和轉(zhuǎn)換,48,組織方式 表達(dá)方式 存取路徑,數(shù)據(jù)及其聯(lián)系,49,現(xiàn)實(shí)世界,概念模型,認(rèn)識(shí)抽象,DBMS支持的 數(shù)據(jù)模型,圖1-13 數(shù)據(jù)處理的抽象和轉(zhuǎn)換過程,50,型,值,屬性名,具
30、體值,現(xiàn)實(shí)世界 現(xiàn)實(shí)世界即客觀存在的世界 人們總是選用感興趣的最能表征該事物的若干特征來描述該事物 信息世界及其有關(guān)基本概念 實(shí)體 客觀存在并且可以相互區(qū)別的“事物”稱為實(shí)體 實(shí)體可以是具體的人、事、物,也可以是抽象的事件 屬性 實(shí)體所具有的某一特性稱為屬性 如學(xué)生實(shí)體有學(xué)號(hào)、姓名、年齡、性別、系等方面的屬性。 如姓名、年齡、性別是屬性的型;如(990001,張立,20,男, 計(jì)算機(jī))這些屬性值的集合表示了一個(gè)學(xué)生實(shí)體。,51,學(xué)生(學(xué)號(hào),姓名,年齡,性別,系),實(shí)體型 具有相同屬性的實(shí)體必然具有共同的特征 實(shí)體集 同型實(shí)體的集合稱為實(shí)體集 。如所有學(xué)生、所有的課程。 鍵 能惟一標(biāo)識(shí)一個(gè)實(shí)體的
31、屬性或?qū)傩约Q為實(shí)體的鍵 域 屬性的取值范圍稱為該屬性的域 如學(xué)號(hào)的域?yàn)?位整數(shù),姓名的域?yàn)樽址?,年齡的域?yàn)樾∮?0的整數(shù),性別的域?yàn)椋?,女)?聯(lián)系 實(shí)體型內(nèi)部的聯(lián)系通常是指組成實(shí)體的各屬性之間的聯(lián)系 實(shí)體型之間的聯(lián)系通常是指不同實(shí)體集之間的聯(lián)系 兩個(gè)實(shí)體型之間的聯(lián)系有如下三種類型 :,52,A,B,A,B,A,B,(a)一對(duì)一聯(lián)系,(b)一對(duì)多聯(lián)系,(c)多對(duì)多聯(lián)系,53,(a)一對(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),觀眾與座位,病人與床位。 (b)一對(duì)多聯(lián)系(1:n)
32、:實(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é)生、公司與職員、省與市。 (c)多對(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)品。,54,計(jì)算機(jī)世界及其有關(guān)基本概念 信息世界中的實(shí)體抽象為計(jì)算機(jī)世界中的數(shù)據(jù),存儲(chǔ)在計(jì)算機(jī)中。 字段(Field) 標(biāo)記實(shí)體屬性的命名單位稱為字段。如學(xué)生有學(xué)號(hào)、姓名、年齡、性別、系等字段。 記錄(Record) 字段的有序集合稱為記錄。如,一個(gè)學(xué)
33、生(990001,張立,20,男,計(jì)算機(jī))為一個(gè)記錄。 文件(File) 同一類記錄的集合稱為文件。所有學(xué)生的記錄組成了一個(gè)學(xué)生文件。 關(guān)鍵字(Key) 能惟一標(biāo)識(shí)文件中每個(gè)記錄的字段或字段集,稱為記錄的關(guān)鍵字 。,55,在計(jì)算機(jī)世界中,信息模型被抽象為數(shù)據(jù)模型,實(shí)體型內(nèi)部的聯(lián)系抽象為同一記錄內(nèi)部各字段間的聯(lián)系,實(shí)體型之間的聯(lián)系抽象為記錄與記錄之間的聯(lián)系。 現(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ù)。,1.7.3 數(shù)據(jù)模型的分類,56,E-R模型,概念模型 它是按用戶的觀點(diǎn)對(duì)數(shù)據(jù)和信息建模 用來描
34、述某個(gè)特定組織所關(guān)心的信息結(jié)構(gòu) 概念模型屬于信息世界中的模型 邏輯模型(或稱數(shù)據(jù)模型)和物理模型 邏輯模型是屬于計(jì)算機(jī)世界中的模型 邏輯模型主要包括層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷?物理模型描述數(shù)據(jù)在磁盤或磁帶上的存儲(chǔ)方式和存取方法,1.7.4 實(shí)體聯(lián)系模型及E-R圖,E-R圖的基本成分 :,57,學(xué)生,學(xué)號(hào),選修,(a)實(shí)體,(b)屬性,(c)聯(lián)系,1:1 1:n m:n,是廣泛應(yīng)用于數(shù)據(jù)庫設(shè)計(jì)工作中的一種概念模型,它利用 E-R圖來表示實(shí)體及其之間的聯(lián)系。,E-R圖的幾種基本形式: 兩個(gè)實(shí)體之間的聯(lián)系,58,系主任,成績(jī),領(lǐng)導(dǎo),系,學(xué)生,屬于,系,學(xué)生,選修,課程,1,1,1,
35、n,n,m,兩個(gè)以上實(shí)體間的聯(lián)系,59,數(shù)量,供應(yīng)商,供應(yīng),零件,n,m,項(xiàng)目,n,60,同一實(shí)體型內(nèi)部的1:n聯(lián)系,設(shè)計(jì)一個(gè)圖書館數(shù)據(jù)庫 對(duì)每個(gè)借閱者保存記錄:讀者號(hào),姓名,地址,性別,年齡,單位 對(duì)每本書保存記錄:書名,作者,出版社 對(duì)每一本被借出的書保存:讀者號(hào)、借出日期、應(yīng)還日期、歸還日期,61,1.7.5 數(shù)據(jù)模型的組成要素,62,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操作,數(shù)據(jù)的完整性約束,層次結(jié)構(gòu),網(wǎng)狀結(jié)構(gòu),關(guān)系結(jié)構(gòu),查詢,插入,刪除,修改,更新,正確,有效,相容,數(shù)據(jù)模型是現(xiàn)實(shí)世界中的事物及其聯(lián)系的一種模擬和抽象表示,是一種形式化描述數(shù)據(jù)、數(shù)據(jù)間聯(lián)系以及有關(guān)語義約束規(guī)則的方法,這些規(guī)則規(guī)定數(shù)據(jù)如何組織
36、以及允許進(jìn)行何種操作。,63,1.8 四種數(shù)據(jù)模型,數(shù)據(jù)模型的好壞,直接影響數(shù)據(jù)庫的性能。 數(shù)據(jù)模型的選擇,是設(shè)計(jì)數(shù)據(jù)庫的一項(xiàng)首要任務(wù)。 目前最常用的數(shù)據(jù)模型有 層次模型(Hierarchical Model) 網(wǎng)狀模型(Network Model) 關(guān)系模型(Relational Model)。 這三種數(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)系。,64,其中層次模型和網(wǎng)狀模型是早期的數(shù)據(jù)模型,統(tǒng)稱為非關(guān)系模型。20世紀(jì)70年代至80年代初
37、,非關(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ù)模型,1.8.1 層次模型,層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,采用層次模型的數(shù)據(jù)庫的典型代表是IBM公司的IMS(Information Management System)數(shù)據(jù)庫管理系統(tǒng),現(xiàn)實(shí)世界中,許多
38、實(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)起,按照有向樹層次向下查找。,65,層次模型的數(shù)據(jù)結(jié)構(gòu),66,無雙親,根節(jié)點(diǎn),根以外的其他結(jié)點(diǎn)有且僅 有一個(gè)雙親結(jié)點(diǎn); 父子結(jié)點(diǎn)之間的聯(lián)系是一 對(duì)多(1:n)的聯(lián)系 。,這就使得層次數(shù)據(jù)庫系統(tǒng)只能直接處理一對(duì)多的實(shí)體關(guān)系; 任何一個(gè)給定的記
39、錄值只有按其路徑查看時(shí),才能顯出它的全部意義,沒有一個(gè)子女記錄值能夠脫離雙親記錄值而獨(dú)立存在。,具有四個(gè)記錄型:D,R,S,T S與T是葉結(jié)點(diǎn),它們沒有子女結(jié)點(diǎn) 由D到R,R到T,由D到S均是一對(duì)多的關(guān)系,67,68,對(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.,層次模型的數(shù)據(jù)操縱與數(shù)據(jù)完整性約束 進(jìn)行插入操作時(shí),如果沒有相應(yīng)的雙親結(jié)點(diǎn)值就不能插入子女結(jié)點(diǎn)值 。 進(jìn)
40、行刪除操作時(shí),如果刪除雙親結(jié)點(diǎn)值,則相應(yīng)的子女結(jié)點(diǎn)值也被同時(shí)刪除。 修改操作時(shí),應(yīng)修改所有相應(yīng)的記錄,以保證數(shù)據(jù)的一致性。 層次模型的優(yōu)缺點(diǎn),69,結(jié)構(gòu)簡(jiǎn)單,層次分明,查詢效率高,提供良好的數(shù)據(jù)完整性支持,不能直接表示多對(duì)多聯(lián)系,插入和刪除數(shù)據(jù)限制太多,查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn),優(yōu)點(diǎn),缺點(diǎn),70,現(xiàn)實(shí)世界中事物之間的聯(lián)系更多的是非層次關(guān)系的,用層次模型表示這種關(guān)系很不直觀,網(wǎng)狀模型克服了這一弊病,可以清晰的表示這種非層次關(guān)系。 20世紀(jì)70年代,數(shù)據(jù)系統(tǒng)語言研究會(huì)CODASYL(Conference On Data System Language)下屬的數(shù)據(jù)庫任務(wù)組DBTG(Data Ba
41、se Task Group)提出了一個(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)狀模型。,1.8.2 網(wǎng)狀模型,網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu) 網(wǎng)狀模型是采用有向圖結(jié)構(gòu)表示記錄型與記錄型之間聯(lián)系的數(shù)據(jù)模型 。 每個(gè)結(jié)點(diǎn)表示一個(gè)記錄型,每個(gè)記錄型可包含若干個(gè)字段,記錄型描述的是實(shí)體。 結(jié)點(diǎn)間的帶箭頭的連線(或有向邊)表示記錄型間的1:n的父子聯(lián)系。,71,網(wǎng)狀模型的特點(diǎn): 有一個(gè)以上的結(jié)點(diǎn)沒有雙親結(jié)點(diǎn)。 允許結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn)。 允許兩個(gè)結(jié)點(diǎn)之間有多種聯(lián)系(復(fù)合
42、聯(lián)系) 。,網(wǎng)狀模型的數(shù)據(jù)操縱與完整性約束 插入數(shù)據(jù)時(shí),允許插入尚未確定雙親結(jié)點(diǎn)值的子女結(jié)點(diǎn)值。 刪除數(shù)據(jù)時(shí),允許只刪除雙親結(jié)點(diǎn)值。 修改數(shù)據(jù)時(shí),只需更新指定記錄即可。 它沒有像層次數(shù)據(jù)庫那樣有嚴(yán)格的完整性約束條件,只提供一定的完整性約束。 網(wǎng)狀模型的優(yōu)缺點(diǎn),72,可表示實(shí)體間的多種復(fù)雜聯(lián)系,具有良好的性能和存儲(chǔ)效率,數(shù)據(jù)結(jié)構(gòu)復(fù)雜,數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言復(fù)雜,數(shù)據(jù)獨(dú)立性差,由于實(shí)體間的聯(lián)系本質(zhì)上是通過存取路徑 表示的,因此應(yīng)用程序在訪問數(shù)據(jù)時(shí)要指定存取路徑。,優(yōu)點(diǎn),缺點(diǎn),73,關(guān)系模型是發(fā)展較晚的一種模型,1970年美國(guó)IBM公司的研究員E.F.Codd首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型。 他
43、發(fā)表了題為“大型共享數(shù)據(jù)銀行數(shù)據(jù)的關(guān)系模型”(A Relation Model of Data for Large Shared Data Banks),在文中解釋了關(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ù)庫的代表System R開始運(yùn)行,其后又進(jìn)行了不斷的改進(jìn)和擴(kuò)充,出現(xiàn)了基于System R的數(shù)據(jù)庫系統(tǒng)SQL/DB。,1.8.3 關(guān)系模型,74,小型數(shù)據(jù)庫系統(tǒng): Fox
44、pro、Access,大型數(shù)據(jù)庫系統(tǒng): Oracle、SQL Server、 Informix、Sybase,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),關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及有關(guān)概念,75,關(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é)概念之上的。,76,分
45、量 每一行對(duì)應(yīng)的列的屬性值,即為元組中的一個(gè)屬性值。 關(guān)鍵字(Key) 可惟一標(biāo)識(shí)一個(gè)元組的屬性或?qū)傩约?,也稱為關(guān)系鍵或主碼,如S表中學(xué)號(hào)可以惟一確定一個(gè)學(xué)生,為學(xué)生關(guān)系的主碼。 關(guān)系模式 關(guān)系模式是對(duì)關(guān)系的描述,是關(guān)系模型的“型” 。 一般表示為:關(guān)系名(屬性1,屬性2,屬性n) 如:學(xué)生(學(xué)號(hào),姓名,性別,年齡,系別) 關(guān)系實(shí)例 關(guān)系實(shí)例是關(guān)系模式的“值”,是關(guān)系的數(shù)據(jù),相當(dāng)于二維表中的數(shù)據(jù) 。,關(guān)系模型的數(shù)據(jù)操縱與完整性約束 關(guān)系模型中的數(shù)據(jù)操作是集合操作,操作對(duì)象和操作結(jié)果都是關(guān)系,即若干元組的集合。 關(guān)系模型把對(duì)數(shù)據(jù)的存取路徑隱蔽起來,用戶只要指出“干什么”,而不必詳細(xì)說明“怎么干”
46、,從而大大地提高了數(shù)據(jù)的獨(dú)立性,提高了用戶操作效率。 關(guān)系模型的優(yōu)缺點(diǎn),77,有嚴(yán)格的數(shù)學(xué)理論根據(jù),用關(guān)系描述實(shí)體間的聯(lián)系,關(guān)系模型的存取路徑對(duì)用戶透明, 具有更高的數(shù)據(jù)獨(dú)立性、更好的 安全保密性,優(yōu)點(diǎn),查詢效率不如非關(guān)系模型,缺點(diǎn),1.8.4 面向?qū)ο竽P?對(duì)象和對(duì)象標(biāo)識(shí) 對(duì)象是現(xiàn)實(shí)世界中實(shí)體的模型化。 對(duì)象標(biāo)識(shí)獨(dú)立于對(duì)象的內(nèi)容和存儲(chǔ)位置,是一種邏輯標(biāo)識(shí)符,通常由系統(tǒng)產(chǎn)生,它在整個(gè)系統(tǒng)范圍內(nèi)是惟一的。 兩個(gè)對(duì)象即使內(nèi)部狀態(tài)值和方法都相同,如標(biāo)識(shí)符不同,仍認(rèn)為是兩個(gè)相等而不同的對(duì)象。 每個(gè)對(duì)象都包含一組屬性和一組方法。,78,一個(gè)學(xué)生 一門課程 一次考試記錄,對(duì)象,屬性,方法,對(duì)象,屬性,方法
47、,現(xiàn)實(shí)世界存在著許多含有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的應(yīng)用領(lǐng)域,如CAD數(shù)據(jù)、圖形 數(shù)據(jù)等,它們需要更高級(jí)的數(shù)據(jù)庫技術(shù)表達(dá)這類信息。 面向?qū)ο蟾拍钭钤绯霈F(xiàn)在1968年的Smalltalk語言中。,79,屬性用來描述對(duì)象的狀態(tài)、組成和特性,是對(duì)象的靜態(tài)特征。 一個(gè)簡(jiǎn)單對(duì)象如整數(shù),其值本身就是其狀態(tài)的完全描述,不再需要其它屬性,這樣的對(duì)象稱為原子對(duì)象。 屬性的值也可以是復(fù)雜對(duì)象。一個(gè)復(fù)雜對(duì)象包含若干個(gè)屬性,而這些屬性作為一種對(duì)象,又可能包含多個(gè)屬性,這樣就形成了對(duì)象的遞歸引用,從而組成各種復(fù)雜對(duì)象。 方法用以描述對(duì)象的行為特性。 一個(gè)方法實(shí)際是一段可對(duì)對(duì)象操作的程序。 方法可以改變對(duì)象的狀態(tài),所以稱為對(duì)象的動(dòng)態(tài)特
48、征。如一臺(tái)計(jì)算機(jī),它不僅具有描述其靜態(tài)特征的屬性:CPU型號(hào)、硬盤大小、內(nèi)存大小等,還具有開機(jī)、關(guān)機(jī)、睡眠等動(dòng)態(tài)特征。 由此可見,每個(gè)對(duì)象都是屬性和方法的統(tǒng)一體。 與關(guān)系模型的實(shí)體概念相比,對(duì)象模型中的對(duì)象概念更為全面,因?yàn)殛P(guān)系模型主要描述對(duì)象的屬性,而忽視了對(duì)象的方法,因此會(huì)產(chǎn)生前面提到過的“結(jié)構(gòu)與行為相分離”的缺陷。,80,每一對(duì)象都由唯一的對(duì)象標(biāo)識(shí)來識(shí)別,用于確定和檢索這個(gè)對(duì)象。 對(duì)象標(biāo)識(shí)獨(dú)立于對(duì)象的內(nèi)容和存儲(chǔ)位置,是一種邏輯標(biāo)識(shí)符,通常由系統(tǒng)產(chǎn)生,在整個(gè)系統(tǒng)范圍內(nèi)是唯一的。 兩個(gè)對(duì)象即使內(nèi)部狀態(tài)值和方法都相同,如標(biāo)識(shí)符不同,仍認(rèn)為是兩個(gè)相等而不同的對(duì)象。 如同一型號(hào)的兩個(gè)零件,在設(shè)計(jì)圖
49、上被用在不同的地方,這兩個(gè)零件是“相等”的,但被視為不同的對(duì)象具有不同的標(biāo)識(shí)符。 在這一點(diǎn)上,面向?qū)ο蟮哪P团c關(guān)系模型不同,在關(guān)系模型中,如果兩個(gè)元組的屬性值完全相同,則被認(rèn)為是同一元組。,81,消息中只包含發(fā)送者的要求,它告訴接收者需要完成哪些處理。如何處理由接收者解釋。接收者獨(dú)立決定采用什么方式完成所需的處理。 在面向?qū)ο笙到y(tǒng)中對(duì)對(duì)象的操作在于選擇一個(gè)對(duì)象并通知它要作什么,該對(duì)象決定如何完成這一工作,即在它的一組方法中選擇合適的方法作用于其自身。因此,在面向?qū)ο蟮南到y(tǒng)中,對(duì)象是操作的基本單位。,類(Class)和繼承(Inheritance) 具有同樣屬性和方法集的所有對(duì)象構(gòu)成了一個(gè)對(duì)象類 ,一個(gè)對(duì)象是某一類的實(shí)例 。 類的屬性域可以是基本數(shù)據(jù)類型(如整型、實(shí)型、字符型等),也可以是類 。 類的表示具有層次性和繼承性。,82,對(duì)象,類,型,值,83,此外,類的表示具有層次性。在OO模型中,可以通過對(duì)已有的類定義進(jìn)行擴(kuò)充和細(xì)化來定義一個(gè)新類,從而形成了一種層次結(jié)構(gòu),有了超類和子類的概念。 所謂超類就是可以通過擴(kuò)充和細(xì)化導(dǎo)出其他類,而子類是指由通過擴(kuò)展類定義而得到的類。 這種層次結(jié)構(gòu)的一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)半乳濁無光釉數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)考前沖刺試卷B卷含答案
- 2023-2024學(xué)年廣東省廣州市天河區(qū)天省實(shí)驗(yàn)學(xué)校七年級(jí)(下)月考數(shù)學(xué)試卷(含答案)
- 2021-2022學(xué)年廣東省廣州市越秀區(qū)培正中學(xué)七年級(jí)(下)期中數(shù)學(xué)試卷(含答案)
- 2025年大學(xué)英語六級(jí)考試模擬試卷一
- 院感消毒知識(shí)培訓(xùn)課件
- 個(gè)人委托信息咨詢服務(wù)合同
- 物理實(shí)驗(yàn)課教案:《力學(xué)實(shí)驗(yàn)操作技巧》
- 湖北省部分名校2024-2025學(xué)年高三上學(xué)期1月期末地理試題 含解析
- 吉林省長(zhǎng)春市榆樹市2024-2025學(xué)年八年級(jí)上學(xué)期期末生物學(xué)試題(含答案)
- 2025年中考英語時(shí)文閱讀 6篇有關(guān)電影哪吒2和 DeepSeek的英語閱讀(含答案)
- 完整版臨時(shí)用水用電施工方案
- 江蘇省南通市2025屆高三第一次調(diào)研測(cè)試數(shù)學(xué)試題(南通一模)(含答案)
- 【課件】進(jìn)出口貨物報(bào)關(guān)單填制
- Codesys培訓(xùn)課件教學(xué)課件
- 合成生物學(xué)研發(fā)平臺(tái)與年產(chǎn)200噸合成生物制品項(xiàng)目可行性研究報(bào)告寫作模板-申批備案
- 創(chuàng)傷性凝血病救治
- GB/T 15314-2024精密工程測(cè)量規(guī)范
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)內(nèi)容解讀
- 酒店項(xiàng)目運(yùn)營(yíng)管理方案
- 五年(2020-2024)高考地理真題分類匯編(全國(guó))專題03地球上的大氣+原卷版
評(píng)論
0/150
提交評(píng)論