版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)原理1
第1章
數(shù)據(jù)庫(kù)系統(tǒng)概述(緒論)2本章概要
在本章中,首先介紹數(shù)據(jù)庫(kù)中有關(guān)的主要概念,然后回顧數(shù)據(jù)管理技術(shù)的三個(gè)發(fā)展階段。重點(diǎn)掌握實(shí)體、屬性定義和實(shí)體型之間的聯(lián)系類型及特點(diǎn)。了解三種數(shù)據(jù)模型的特點(diǎn)及區(qū)別,為后面各章的學(xué)習(xí)打下基礎(chǔ)。31.1信息、數(shù)據(jù)與數(shù)據(jù)處理1.1.1數(shù)據(jù)與信息在數(shù)據(jù)處理中,我們最常用到的基本概念就是數(shù)據(jù)和信息,信息與數(shù)據(jù)有著不同的含義。1.1.1.1數(shù)據(jù)(Data)1.
數(shù)據(jù)的定義數(shù)據(jù)是用來(lái)記錄客觀事物及其屬性的符號(hào)。姓名:李明,工資:18002.
數(shù)據(jù)的表現(xiàn)形式可用多種不同的數(shù)據(jù)形式表示同一信息,而信息不隨數(shù)據(jù)形式的不同而改變。如“2008年碩士研究生將擴(kuò)招30%”,其中的數(shù)據(jù)可改為漢字形式“兩千零八年”、“百分之三十”。4
數(shù)據(jù)的概念在數(shù)據(jù)處理領(lǐng)域中已大大地拓寬了,其表現(xiàn)形式不僅包括數(shù)字和文字,還包括圖形、圖象、聲音等。這些數(shù)據(jù)可以記錄在紙上,也可記錄在各種存儲(chǔ)器中。
51.1.1.2信息(Information)信息的定義信息是關(guān)于現(xiàn)實(shí)世界事物的存在方式或運(yùn)動(dòng)狀態(tài)的反映的綜合,具體說(shuō)是一種被加工為特定形式的數(shù)據(jù),但這種數(shù)據(jù)形式對(duì)接收者來(lái)說(shuō)是有意義的,而且對(duì)當(dāng)前和將來(lái)的決策具有明顯的或?qū)嶋H的價(jià)值。
如“2008年碩士研究生將擴(kuò)招30%”,對(duì)接受者有意義,使接受者據(jù)此作出決策。61.1.1.3數(shù)據(jù)與信息的聯(lián)系數(shù)據(jù)是信息的符號(hào)表示或載體,信息則是數(shù)據(jù)的內(nèi)涵,是對(duì)數(shù)據(jù)的語(yǔ)義解釋。如上例中的數(shù)據(jù)2008、30%被賦予了特定的語(yǔ)義,它們就具有了傳遞信息的功能。1.1.2數(shù)據(jù)處理數(shù)據(jù)處理是將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程,包括對(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é)果?!靶畔⑻幚怼钡恼嬲x應(yīng)該是為了產(chǎn)生信息而處理數(shù)據(jù)。71.2數(shù)據(jù)庫(kù)技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域1.2.1數(shù)據(jù)庫(kù)技術(shù)的產(chǎn)生與發(fā)展數(shù)據(jù)處理的中心問(wèn)題是數(shù)據(jù)管理。數(shù)據(jù)管理是指對(duì)數(shù)據(jù)的組織、分類、編碼、存儲(chǔ)、檢索和維護(hù)。隨著計(jì)算機(jī)硬件和軟件的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)發(fā)展階段。1.2.1.1人工管理階段(50年代中期以前)這一階段計(jì)算機(jī)主要用于科學(xué)計(jì)算。硬件中的外存只有卡片、紙帶、磁帶,沒(méi)有磁盤等直接存取設(shè)備。軟件只有匯編語(yǔ)言,沒(méi)有操作系統(tǒng)和管理數(shù)據(jù)的軟件。數(shù)據(jù)處理的方式基本上是批處理。8人工管理階段的特點(diǎn)如下:1.數(shù)據(jù)不保存因?yàn)楫?dāng)時(shí)計(jì)算機(jī)主要用于科學(xué)計(jì)算,對(duì)于數(shù)據(jù)保存的需求尚不迫切。2.系統(tǒng)沒(méi)有專用的軟件對(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ù)。94.數(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表示。
應(yīng)用程序1數(shù)據(jù)集1應(yīng)用程序2數(shù)據(jù)集2數(shù)據(jù)集3應(yīng)用程序3圖1.1人工管理階段101.2.1.2文件系統(tǒng)階段(50年代后期至60年代中期)這一階段,計(jì)算機(jī)不僅用于科學(xué)計(jì)算,還大量用于信息管理。大量的數(shù)據(jù)存儲(chǔ)、檢索和維護(hù)成為緊迫的需求。硬件有了磁盤、磁鼓等直接存儲(chǔ)設(shè)備。在軟件方面,出現(xiàn)了高級(jí)語(yǔ)言和操作系統(tǒng)。操作系統(tǒng)中有了專門管理數(shù)據(jù)的軟件,一般稱為文件系統(tǒng)。處理方式有批處理,也有聯(lián)機(jī)處理。11文件管理數(shù)據(jù)的特點(diǎn)如下:1.數(shù)據(jù)以文件形式可長(zhǎng)期保存下來(lái)用戶可隨時(shí)對(duì)文件進(jìn)行查詢、修改和增刪等處理。2.文件系統(tǒng)可對(duì)數(shù)據(jù)的存取進(jìn)行管理程序員只與文件名打交道,不必明確數(shù)據(jù)的物理存儲(chǔ),大大減輕了程序員的負(fù)擔(dān)。
3.文件形式多樣化有順序文件、索引文件等,因而對(duì)文件的記錄可順序訪問(wèn),也可隨機(jī)訪問(wèn),更便于存儲(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)行。12在文件系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系可用圖1.2表示。
文件n應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n文件1文件2文件系統(tǒng)……
圖1.2文件系統(tǒng)階段13與人工管理階段相比,文件系統(tǒng)階段對(duì)數(shù)據(jù)的管理有了很大的進(jìn)步,但一些根本性問(wèn)題仍沒(méi)有徹底解決,主要表現(xiàn)在以下三方面:1.數(shù)據(jù)冗余度大各數(shù)據(jù)文件之間沒(méi)有有機(jī)的聯(lián)系,一個(gè)應(yīng)用程序基本上對(duì)應(yīng)于一個(gè)文件,數(shù)據(jù)不能共享。(程序一對(duì)應(yīng)數(shù)據(jù)文件一:學(xué)生信息+系的信息程序二對(duì)應(yīng)數(shù)據(jù)文件二:教師信息+系的信息)2.數(shù)據(jù)獨(dú)立性低數(shù)據(jù)和程序相互依賴,一旦改變數(shù)據(jù)的邏輯結(jié)構(gòu),必須修改相應(yīng)的應(yīng)用程序。而應(yīng)用程序發(fā)生變化,如改用另一種程序設(shè)計(jì)語(yǔ)言來(lái)編寫程序,也需修改數(shù)據(jù)結(jié)構(gòu)。3.數(shù)據(jù)一致性差由于相同數(shù)據(jù)的重復(fù)存儲(chǔ)、各自管理,在進(jìn)行更新操作時(shí),容易造成數(shù)據(jù)的不一致性。
141.2.1.3數(shù)據(jù)庫(kù)系統(tǒng)階段(60年代末開(kāi)始)60年代后期,計(jì)算機(jī)應(yīng)用于管理的規(guī)模更加龐大,數(shù)據(jù)量急劇增加;硬件方面出現(xiàn)了大容量磁盤,使計(jì)算機(jī)聯(lián)機(jī)存取大量數(shù)據(jù)成為可能;硬件價(jià)格下降,而軟件價(jià)格上升,使開(kāi)發(fā)和維護(hù)系統(tǒng)軟件的成本增加。文件系統(tǒng)的數(shù)據(jù)管理方法已無(wú)法適應(yīng)開(kāi)發(fā)應(yīng)用系統(tǒng)的的需要。為解決多用戶、多個(gè)應(yīng)用程序共享數(shù)據(jù)的需求,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫(kù)管理系統(tǒng)。15數(shù)據(jù)庫(kù)系統(tǒng)管理數(shù)據(jù)的特點(diǎn)如下:
1.數(shù)據(jù)共享性高、冗余少這是數(shù)據(jù)庫(kù)系統(tǒng)階段的最大改進(jìn),數(shù)據(jù)不再面向某個(gè)應(yīng)用程序而是面向整個(gè)系統(tǒng),當(dāng)前所有用戶可同時(shí)存取庫(kù)中的數(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ù)庫(kù)中,整個(gè)組織的數(shù)據(jù)不是一盤散沙,可表示出數(shù)據(jù)之間的有機(jī)關(guān)聯(lián)。16例:要建立學(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)單的程序來(lái)實(shí)現(xiàn)。而采用數(shù)據(jù)庫(kù)方式,數(shù)據(jù)庫(kù)系統(tǒng)不僅描述數(shù)據(jù)本身,還描述數(shù)據(jù)之間的聯(lián)系,上述查詢可以非常容易地聯(lián)機(jī)查到。173.數(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ú)立性。184.有統(tǒng)一的數(shù)據(jù)控制功能數(shù)據(jù)庫(kù)為多個(gè)用戶和應(yīng)用程序所共享,對(duì)數(shù)據(jù)的存取往往是并發(fā)的,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫(kù)中的數(shù)據(jù),甚至可以同時(shí)存取數(shù)據(jù)庫(kù)中的同一個(gè)數(shù)據(jù),為確保數(shù)據(jù)庫(kù)數(shù)據(jù)的正確有效和數(shù)據(jù)庫(kù)系統(tǒng)的有效運(yùn)行,數(shù)據(jù)庫(kù)管理系統(tǒng)提供下述四方面的數(shù)據(jù)控制功能。(1)數(shù)據(jù)的安全性(security)控制:防止不合法使用數(shù)據(jù)造成數(shù)據(jù)的泄露和破壞,保證數(shù)據(jù)的安全和機(jī)密;例如,系統(tǒng)提供口令檢查或其他手段來(lái)驗(yàn)證用戶身份,防止非法用戶使用系統(tǒng);也可以對(duì)數(shù)據(jù)的存取權(quán)限進(jìn)行限制,只有通過(guò)檢查后才能執(zhí)行相應(yīng)的操作。(2)數(shù)據(jù)的完整性(integrity)控制:系統(tǒng)通過(guò)設(shè)置一些完整性規(guī)則以確保數(shù)據(jù)的正確性、有效性和相容性。19正確性是指數(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ù)庫(kù)時(shí),防止相互干擾而提供給用戶不正確的數(shù)據(jù),并使數(shù)據(jù)庫(kù)受到破壞。20(4)數(shù)據(jù)恢復(fù)(recovery):當(dāng)數(shù)據(jù)庫(kù)被破壞或數(shù)據(jù)不可靠時(shí),系統(tǒng)有能力將數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到最近某一時(shí)刻的正確狀態(tài)。數(shù)據(jù)庫(kù)系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系可用圖1.3表示。
圖1.3數(shù)據(jù)庫(kù)系統(tǒng)階段應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng)21從文件系統(tǒng)管理發(fā)展到數(shù)據(jù)庫(kù)系統(tǒng)管理是信息處理領(lǐng)域的一個(gè)重大變化。在文件系統(tǒng)階段,人們關(guān)注的是系統(tǒng)功能的設(shè)計(jì),因此程序設(shè)計(jì)處于主導(dǎo)地位,數(shù)據(jù)服從于程序設(shè)計(jì);而在數(shù)據(jù)庫(kù)系統(tǒng)階段,數(shù)據(jù)的結(jié)構(gòu)設(shè)計(jì)成為信息系統(tǒng)首先關(guān)心的問(wèn)題。數(shù)據(jù)庫(kù)技術(shù)經(jīng)歷了以上三個(gè)階段的發(fā)展,已有了比較成熟的數(shù)據(jù)庫(kù)技術(shù),但隨著計(jì)算機(jī)軟硬件的發(fā)展,數(shù)據(jù)庫(kù)技術(shù)仍需不斷向前發(fā)展。
221.2.2數(shù)據(jù)庫(kù)技術(shù)的研究領(lǐng)域數(shù)據(jù)庫(kù)學(xué)科的研究范圍主要包括以下三個(gè)領(lǐng)域:1.數(shù)據(jù)庫(kù)管理系統(tǒng)軟件的研制DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)。DBMS的研制包括研制DBMS本身及以DBMS為核心的一組相互聯(lián)系的軟件系統(tǒng),包括工具軟件和中間件。研制的目標(biāo)是提高系統(tǒng)的性能和提高用戶的生產(chǎn)率。2.數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)的研究范圍包括:數(shù)據(jù)庫(kù)的設(shè)計(jì)方法、設(shè)計(jì)工具和設(shè)計(jì)理論的研究,數(shù)據(jù)模型和數(shù)據(jù)建模的研究,計(jì)算機(jī)輔助數(shù)據(jù)庫(kù)設(shè)計(jì)及其軟件系統(tǒng)的研究,數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范和標(biāo)準(zhǔn)的研究等。233.數(shù)據(jù)庫(kù)理論數(shù)據(jù)庫(kù)理論的研究主要集中于關(guān)系規(guī)范化理論、關(guān)系數(shù)據(jù)理論等。近年來(lái),隨著人工智能與數(shù)據(jù)庫(kù)理論的結(jié)合以及并行計(jì)算技術(shù)的發(fā)展,數(shù)據(jù)庫(kù)邏輯演繹和知識(shí)推理、并行算法等都成為新的研究方向。隨著數(shù)據(jù)庫(kù)應(yīng)用領(lǐng)域的不斷擴(kuò)展,計(jì)算機(jī)技術(shù)的迅猛發(fā)展,數(shù)據(jù)庫(kù)技術(shù)與人工智能技術(shù)、網(wǎng)絡(luò)通信技術(shù)、并行計(jì)算技術(shù)等相互滲透、相互結(jié)合,使數(shù)據(jù)庫(kù)技術(shù)不斷涌現(xiàn)新的研究方向。
241.3數(shù)據(jù)庫(kù)系統(tǒng)的組成和結(jié)構(gòu)1.3.1數(shù)據(jù)庫(kù)系統(tǒng)的組成數(shù)據(jù)庫(kù)系統(tǒng)通常是指數(shù)據(jù)庫(kù)和相應(yīng)的軟硬件系統(tǒng)。主要由數(shù)據(jù)(庫(kù))、用戶、軟件和硬件四部分組成。1.3.1.1數(shù)據(jù)(庫(kù))數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的共享的數(shù)據(jù)的集合。它可以供用戶共享,具有盡可能小的冗余度和較高的數(shù)據(jù)獨(dú)立性,使得數(shù)據(jù)存儲(chǔ)最優(yōu),數(shù)據(jù)最容易操作,并且具有完善的自我保護(hù)能力和數(shù)據(jù)恢復(fù)能力。25數(shù)據(jù)庫(kù)特點(diǎn)如下:1.集成性:把某特定應(yīng)用環(huán)境中的各種應(yīng)用相關(guān)的數(shù)據(jù)及其數(shù)據(jù)之間的聯(lián)系全部地集中地并按照一定的結(jié)構(gòu)形式進(jìn)行存儲(chǔ),或者說(shuō),把數(shù)據(jù)庫(kù)看成為若干個(gè)性質(zhì)不同的數(shù)據(jù)文件的聯(lián)合和統(tǒng)一的數(shù)據(jù)整體。2.共享性:數(shù)據(jù)庫(kù)中的一塊塊數(shù)據(jù)可為多個(gè)不同的用戶所共享,即多個(gè)不同的用戶,使用多種不同的語(yǔ)言,為了不同的應(yīng)用目的,而同時(shí)存取數(shù)據(jù)庫(kù),甚至同時(shí)存取同一塊數(shù)據(jù),即多用戶系統(tǒng)。261.3.1.2用戶用戶是指使用數(shù)據(jù)庫(kù)的人,即對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)、維護(hù)和檢索等操作。用戶分為三類:1.第一類用戶,終端用戶(EndUser)主要是使用數(shù)據(jù)庫(kù)的各級(jí)管理人員、工程技術(shù)人員、科研人員,一般為非計(jì)算機(jī)專業(yè)人員;2.第二類用戶,應(yīng)用程序員(ApplicationProgrammer)負(fù)責(zé)為終端用戶設(shè)計(jì)和編制應(yīng)用程序,以便終端用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取操作。3.第三類用戶,數(shù)據(jù)庫(kù)管理員(DadabaseAdministrator,簡(jiǎn)稱DBA)DBA是指全面負(fù)責(zé)數(shù)據(jù)庫(kù)系統(tǒng)的“管理、維護(hù)和正常使用的”人員,其職責(zé)如下:27(1)參與數(shù)據(jù)庫(kù)設(shè)計(jì)的全過(guò)程,決定數(shù)據(jù)庫(kù)的結(jié)構(gòu)和內(nèi)容;(2)定義數(shù)據(jù)的安全性和完整性,負(fù)責(zé)分配用戶對(duì)數(shù)據(jù)庫(kù)的使用權(quán)限和口令管理;(3)監(jiān)督控制數(shù)據(jù)庫(kù)的使用和運(yùn)行,改進(jìn)和重新構(gòu)造數(shù)據(jù)庫(kù)系統(tǒng)。當(dāng)數(shù)據(jù)庫(kù)受到破壞時(shí),應(yīng)負(fù)責(zé)恢復(fù)數(shù)據(jù)庫(kù);當(dāng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)需要改變時(shí),完成對(duì)數(shù)據(jù)結(jié)構(gòu)的修改。DBA不僅要有較高的技術(shù)專長(zhǎng)和較深的資歷,并應(yīng)具有了解和闡明管理要求的能力。特別對(duì)于大型數(shù)據(jù)庫(kù)系統(tǒng),DBA極為重要。對(duì)于常見(jiàn)的微機(jī)數(shù)據(jù)庫(kù)系統(tǒng),通常只有一個(gè)用戶,常常不設(shè)DBA,DBA的職責(zé)由應(yīng)用程序員或終端用戶代替。281.3.1.3軟件(Software)負(fù)責(zé)數(shù)據(jù)庫(kù)存取、維護(hù)和管理的軟件系統(tǒng),即數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,簡(jiǎn)稱DBMS),數(shù)據(jù)庫(kù)系統(tǒng)的各類人員對(duì)數(shù)據(jù)庫(kù)的各種操作請(qǐng)求,都由DBMS完成,DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心軟件。1.3.1.4硬件(Hardware)存儲(chǔ)和運(yùn)行數(shù)據(jù)庫(kù)系統(tǒng)的硬件設(shè)備。包括CPU、內(nèi)存、大容量的存儲(chǔ)設(shè)備、外部設(shè)備等。29編譯系統(tǒng)OS硬件應(yīng)用系統(tǒng)應(yīng)用開(kāi)發(fā)工具DBMS數(shù)據(jù)庫(kù)系統(tǒng)層次結(jié)構(gòu)圖如下圖由上圖看出:
DBMS在操作系統(tǒng)(OS)的支持下工作,應(yīng)用程序在DBMS支持下才能使用數(shù)據(jù)庫(kù)。301.3.2數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)可以從多種不同的角度考查數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)。從數(shù)據(jù)庫(kù)管理系統(tǒng)的角度看,數(shù)據(jù)庫(kù)系統(tǒng)通常采用三級(jí)模式結(jié)構(gòu),這是數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的體系結(jié)構(gòu);從數(shù)據(jù)庫(kù)最終用戶的角度看,數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)分為集中式結(jié)構(gòu)、分布式結(jié)構(gòu)和客戶/服務(wù)器結(jié)構(gòu),這是數(shù)據(jù)庫(kù)系統(tǒng)外部的體系結(jié)構(gòu)。1.3.2.1數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)模式(Schema)是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。例如:學(xué)生記錄定義為(學(xué)號(hào)、姓名、性別、系別、年齡),稱為記錄型,而(001101,張立,男,計(jì)算機(jī),20)則是該記錄型的一個(gè)記錄值。模式只是對(duì)記錄型的描述,而與具體的值無(wú)關(guān)。31通常DBMS把數(shù)據(jù)庫(kù)從邏輯上分為三級(jí),即外模式、模式和內(nèi)模式,它們分別反映了看待數(shù)據(jù)庫(kù)的三個(gè)角度。三級(jí)模式結(jié)構(gòu)如圖1.5所示。32應(yīng)用1應(yīng)用2應(yīng)用n……子模式1……子模式m子模式/模式映象模式模式/內(nèi)模式映象內(nèi)模式數(shù)據(jù)庫(kù)
圖1.5數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)
331.模式模式(Schema)是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,又稱概念模式或概念視圖。視圖可理解為一組記錄的值,用戶或程序員看到和使用的數(shù)據(jù)庫(kù)的內(nèi)容。模式處于三級(jí)結(jié)構(gòu)的中間層,它是整個(gè)數(shù)據(jù)庫(kù)實(shí)際存儲(chǔ)的抽象表示,也是對(duì)現(xiàn)實(shí)世界的一個(gè)抽象,是現(xiàn)實(shí)世界某應(yīng)用環(huán)境(企業(yè)或單位)的所有信息內(nèi)容集合的表示,也是所有個(gè)別用戶視圖綜合起來(lái)的結(jié)果,所以又稱用戶共同視圖。它表示了數(shù)據(jù)庫(kù)的整體數(shù)據(jù)。DBMS提供模式描述語(yǔ)言(模式DDL)來(lái)定義模式。342.外模式又稱子模式或用戶模式或外視圖,是三級(jí)結(jié)構(gòu)的最外層,個(gè)別用戶只對(duì)整個(gè)數(shù)據(jù)庫(kù)的一部分感興趣,所以外視圖是個(gè)別用戶看到和使用的數(shù)據(jù)庫(kù)內(nèi)容,因此也常把外視圖稱為用戶數(shù)據(jù)庫(kù)。它由多種外記錄值構(gòu)成,這些記錄值是概念視圖的某一部分的抽象表示。即個(gè)別用戶看到和使用的數(shù)據(jù)庫(kù)內(nèi)容,也稱“用戶DB”。由多個(gè)“外記錄值”組成,是概念視圖的某一部分的抽象表示。從邏輯關(guān)系上看,外模式包含于概念模式。DBMS提供子模式描述語(yǔ)言(子模式DDL)來(lái)定義子模式。353.內(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)模式描述語(yǔ)言(內(nèi)模式DDL)來(lái)定義內(nèi)模式。在數(shù)據(jù)庫(kù)系統(tǒng)中,外模式可有多個(gè),而概念模式、內(nèi)模式只能各有一個(gè)。內(nèi)模式是整個(gè)數(shù)據(jù)庫(kù)實(shí)際存儲(chǔ)的表示,而概念模式是整個(gè)數(shù)據(jù)庫(kù)實(shí)際存儲(chǔ)的抽象表示,外模式是概念模式的某一部分的抽象表示。364.三級(jí)結(jié)構(gòu)的優(yōu)點(diǎn)(1)保證數(shù)據(jù)的獨(dú)立性。將模式和內(nèi)模式分開(kāi),保證了數(shù)據(jù)的物理獨(dú)立性;將外模式和模式分開(kāi),保證了數(shù)據(jù)的邏輯獨(dú)立性。(2)簡(jiǎn)化了用戶接口。按照外模式編寫應(yīng)用程序或敲入命令,而不需了解數(shù)據(jù)庫(kù)內(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ù)的安全。
371.3.2.2數(shù)據(jù)庫(kù)系統(tǒng)的二級(jí)映象數(shù)據(jù)庫(kù)系統(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í)映象功能。381.模式/內(nèi)模式映象數(shù)據(jù)庫(kù)中的模式和內(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)用程序,通過(guò)映象功能保證數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的變化不影響數(shù)據(jù)的全局邏輯結(jié)構(gòu)的改變,從而不必修改應(yīng)用程序,即確保了數(shù)據(jù)的物理獨(dú)立性。392.外模式/模式映象數(shù)據(jù)庫(kù)中的同一模式可以有任意多個(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ú)立性。401.4數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)
數(shù)據(jù)庫(kù)管理系統(tǒng)是對(duì)數(shù)據(jù)進(jìn)行管理的大型系統(tǒng)軟件,它是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分,用戶在數(shù)據(jù)庫(kù)系統(tǒng)中的一切操作,包括數(shù)據(jù)定義、查詢、更新及各種控制,都是通過(guò)DBMS進(jìn)行的。DBMS就是實(shí)現(xiàn)把用戶意義下的抽象的邏輯數(shù)據(jù)處理轉(zhuǎn)換成計(jì)算機(jī)中的具體的物理數(shù)據(jù)的處理軟件,這給用戶帶來(lái)很大的方便。411.4.1DBMS的主要功能
1.數(shù)據(jù)定義DBMS提供數(shù)據(jù)定義語(yǔ)言DDL(DataDefineLanguage),定義數(shù)據(jù)的模式、外模式和內(nèi)模式三級(jí)模式結(jié)構(gòu),定義模式/內(nèi)模式和外模式/模式二級(jí)映象,定義有關(guān)的約束條件,例如,為保證數(shù)據(jù)庫(kù)安全而定義的用戶口令和存取權(quán)限,為保證正確語(yǔ)義而定義完整性規(guī)則。2.數(shù)據(jù)操縱DBMS提供數(shù)據(jù)操縱語(yǔ)言DML(DataManipulationLanguage)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的基本操作,包括檢索、插入、修改、刪除等。SQL語(yǔ)言就是DML的一種。423.數(shù)據(jù)庫(kù)運(yùn)行管理DBMS對(duì)數(shù)據(jù)庫(kù)的控制主要通過(guò)四個(gè)方面實(shí)現(xiàn):數(shù)據(jù)的安全性控制數(shù)據(jù)的完整性控制多用戶環(huán)境下的并發(fā)控制數(shù)據(jù)庫(kù)的恢復(fù)以確保數(shù)據(jù)正確有效和數(shù)據(jù)庫(kù)系統(tǒng)的正常運(yùn)行。4.數(shù)據(jù)庫(kù)的建立和維護(hù)功能包括數(shù)據(jù)庫(kù)的初始數(shù)據(jù)的裝入,數(shù)據(jù)庫(kù)的轉(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)完成。431.4.2DBMS的數(shù)據(jù)存取的過(guò)程在數(shù)據(jù)庫(kù)系統(tǒng)中,DBMS與操作系統(tǒng)、應(yīng)用程序、硬件等協(xié)同工作,共同完成數(shù)據(jù)各種存取操作,其中DBMS起著關(guān)鍵的作用。DBMS對(duì)數(shù)據(jù)的存取通常需要以下四步:1.用戶使用某種特定的數(shù)據(jù)操作語(yǔ)言向DBMS發(fā)出存取請(qǐng)求;2.DBMS接受請(qǐng)求并解釋;3.DBMS依次檢查外模式、外模式/模式映象、模式、模式/內(nèi)模式映象及存儲(chǔ)結(jié)構(gòu)定義;4.DBMS對(duì)存儲(chǔ)數(shù)據(jù)庫(kù)執(zhí)行必要的存取操作;上述存取過(guò)程中還包括安全性控制、完整性控制,以確保數(shù)據(jù)的正確性、有效性和一致性。441.5數(shù)據(jù)模型1.5.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ì)象類型的集合,它是刻畫(huà)一個(gè)數(shù)據(jù)模型性質(zhì)最重要的方面。在數(shù)據(jù)庫(kù)系統(tǒng)中,人們通常按照其數(shù)據(jù)結(jié)構(gòu)的類型來(lái)命名數(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)系模型。452.數(shù)據(jù)操作數(shù)據(jù)操作用于描述系統(tǒng)的動(dòng)態(tài)特性。數(shù)據(jù)操作是對(duì)數(shù)據(jù)庫(kù)中各種數(shù)據(jù)操作的集合,包括操作及相應(yīng)的操作規(guī)則。如數(shù)據(jù)的檢索、插入、刪除和修改等。數(shù)據(jù)模型必須定義這些操作的確切含義、操作規(guī)則以及實(shí)現(xiàn)操作的語(yǔ)言。3.數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。數(shù)據(jù)模型還應(yīng)該提供定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語(yǔ)義約束條件。例如,在學(xué)生數(shù)據(jù)庫(kù)中,學(xué)生的年齡不得超過(guò)40歲。461.5.2數(shù)據(jù)之間的聯(lián)系1.5.2.1三個(gè)世界的劃分由于計(jì)算機(jī)不能直接處理現(xiàn)實(shí)世界中的具體事物,所以人們必須將具體事物轉(zhuǎn)換成計(jì)算機(jī)能夠處理的數(shù)據(jù)。在數(shù)據(jù)庫(kù)中用數(shù)據(jù)模型來(lái)抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)。數(shù)據(jù)庫(kù)即是模擬現(xiàn)實(shí)世界中某應(yīng)用環(huán)境(一個(gè)企業(yè)、單位或部門)所涉及的數(shù)據(jù)的集合,它不僅要反映數(shù)據(jù)本身的內(nèi)容,而且要反映數(shù)據(jù)之間的聯(lián)系。這個(gè)集合或者包含了信息的一部分(用用戶視圖模擬),或者包含了信息的全部(用概念視圖模擬),而這種模擬是通過(guò)數(shù)據(jù)模型來(lái)進(jìn)行的。47為了把現(xiàn)實(shí)世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型,在實(shí)際的數(shù)據(jù)處理過(guò)程中,首先將現(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)過(guò)抽象,轉(zhuǎn)換成計(jì)算機(jī)上某一DBMS支持的數(shù)據(jù)模型。所以說(shuō),數(shù)據(jù)模型是現(xiàn)實(shí)世界的兩級(jí)抽象的結(jié)果。在數(shù)據(jù)處理中,數(shù)據(jù)加工經(jīng)歷了現(xiàn)實(shí)世界、信息世界和計(jì)算機(jī)世界三個(gè)不同的世界,經(jīng)歷了兩級(jí)抽象和轉(zhuǎn)換。這一過(guò)程如圖1.6所示。
48圖1.6數(shù)據(jù)處理的抽象和轉(zhuǎn)換過(guò)程現(xiàn)實(shí)世界信息世界(概念模型)認(rèn)識(shí)抽象計(jì)算機(jī)世界(數(shù)據(jù)模型)491.5.1.2信息世界中的基本概念在信息世界中,常用的主要概念如下:1.實(shí)體(Entity)客觀存在并且可以相互區(qū)別的“事物”稱為實(shí)體。實(shí)體可以是可觸及的對(duì)象,如一個(gè)學(xué)生,一本書(shū),一輛汽車;也可以是抽象的事件,如一堂課,一次比賽等。2.屬性(Attributes)實(shí)體的某一特性稱為屬性。如學(xué)生實(shí)體有學(xué)號(hào)、姓名、年齡、性別、系等方面的屬性。屬性有"型"和“值”之分,"型"即為屬性名,如姓名、年齡、性別是屬性的型;“值”即為屬性的具體內(nèi)容,如(990001,張立,20,男,計(jì)算機(jī))這些屬性值的集合表示了一個(gè)學(xué)生實(shí)體。503.實(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í)體的鍵。516.域(Domain)屬性值的取值范圍稱為該屬性的域。如學(xué)號(hào)的域?yàn)?位整數(shù),姓名的域?yàn)樽址希挲g的域?yàn)樾∮?0的整數(shù),性別的域?yàn)椋校?.聯(lián)系(Relationship)在現(xiàn)實(shí)世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系同樣也要抽象和反映到信息世界中來(lái),在信息世界中將被抽象為實(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)系的抽象表示。52兩個(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)品。53實(shí)際上,一對(duì)一聯(lián)系是一對(duì)多聯(lián)系的特例,而一對(duì)多聯(lián)系又是多對(duì)多聯(lián)系的特例??梢杂脠D形來(lái)表示兩個(gè)實(shí)體型之間的這三類聯(lián)系,如圖書(shū)1.7所示。
ABABAB(a)(b)(c)圖1.7不同實(shí)體集實(shí)體之間的聯(lián)系541.5.1.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é)生文件。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ù)庫(kù)的出發(fā)點(diǎn),也是使用數(shù)據(jù)庫(kù)的最終歸宿。實(shí)體模型和數(shù)據(jù)模型是現(xiàn)實(shí)世界事物及其聯(lián)系的兩級(jí)抽象。而數(shù)據(jù)模型是實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)的根據(jù)。通過(guò)以上的介紹,我們可總結(jié)出三個(gè)世界中各術(shù)語(yǔ)的對(duì)應(yīng)關(guān)系如圖1.8所示。
現(xiàn)實(shí)世界 信息世界計(jì)算機(jī)世界 事物總體 實(shí)體集文件 事物個(gè)體 實(shí)體記錄 特征 屬性字段 事物間聯(lián)系 實(shí)體模型數(shù)據(jù)模型圖1.8三個(gè)世界各術(shù)語(yǔ)的對(duì)應(yīng)關(guān)系561.5.3數(shù)據(jù)模型的分類數(shù)據(jù)模型的好壞,直接影響數(shù)據(jù)庫(kù)的性能。數(shù)據(jù)模型的選擇,是設(shè)計(jì)數(shù)據(jù)庫(kù)的一項(xiàng)首要任務(wù)。目前最常用的數(shù)據(jù)模型有層次模型(HierarchicalModel)、網(wǎng)狀模型(NetworkModel)和關(guān)系模型(RelationalModel)。這三種數(shù)據(jù)模型的根區(qū)別在于數(shù)據(jù)結(jié)構(gòu)不同,即數(shù)據(jù)之間聯(lián)系的表示方式不同。層次模型用“樹(shù)結(jié)構(gòu)”來(lái)表示數(shù)據(jù)之間的聯(lián)系;網(wǎng)狀模型是用“圖結(jié)構(gòu)”來(lái)表示數(shù)據(jù)之間的聯(lián)系;關(guān)系模型是用“二維表”來(lái)表示數(shù)據(jù)之間的聯(lián)系。57其中層次模型和網(wǎng)狀模型是早期的數(shù)據(jù)模型,統(tǒng)稱為非關(guān)系模型。20世紀(jì)70年代至80年代初,非關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)非常流行,在數(shù)據(jù)庫(kù)系統(tǒng)產(chǎn)品中占據(jù)了主導(dǎo)地位,現(xiàn)在已逐漸被關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)取代,但在美國(guó)等國(guó),由于早期開(kāi)發(fā)的應(yīng)用系都是基于層次數(shù)據(jù)庫(kù)或網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng),因此目前層次數(shù)據(jù)庫(kù)或網(wǎng)狀數(shù)據(jù)庫(kù)的系統(tǒng)仍很多。20世紀(jì)80年代以來(lái),面向?qū)ο蟮姆椒ê图夹g(shù)在計(jì)算機(jī)各個(gè)領(lǐng)域,包括程序設(shè)計(jì)語(yǔ)言、軟件工程、計(jì)算機(jī)硬件等各方面都產(chǎn)生了深遠(yuǎn)的影響,出現(xiàn)了一種新的數(shù)據(jù)模型——面向?qū)ο蟮臄?shù)據(jù)模型
581.5.3.1層次模型層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,采用層次模型的數(shù)據(jù)庫(kù)的典型代表是IBM公司的IMS(InformationManagementSystem)數(shù)據(jù)庫(kù)管理系統(tǒng),現(xiàn)實(shí)世界中,許多實(shí)體之間的聯(lián)系都表現(xiàn)出一種很自然的層次關(guān)系,如家族關(guān)系,行政機(jī)構(gòu)等。層次模型用一棵“有向樹(shù)”的數(shù)據(jù)結(jié)構(gòu)來(lái)表示各類實(shí)體以及實(shí)體間的聯(lián)系。在樹(shù)中,每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,結(jié)點(diǎn)間的連線(或邊)表示記錄類型間的關(guān)系,每個(gè)記錄類型可包含若干個(gè)字段,記錄類型描述的是實(shí)體,字段描述實(shí)體的屬性,各個(gè)記錄類型及其字段都必須命名。如果要存取某一記錄型的記錄,可以從根結(jié)點(diǎn)起,按照有向樹(shù)層次向下查找。59圖1.9是層次模型有向樹(shù)的示意圖。結(jié)點(diǎn)A為根結(jié)點(diǎn),D,F,E為葉結(jié)點(diǎn),B,C為兄弟結(jié)點(diǎn)……
圖1.9層次模型有向樹(shù)的示意圖
ABCDEF601.層次模型的特征(1)有且僅有一個(gè)結(jié)點(diǎn)沒(méi)有雙親,該結(jié)點(diǎn)就是根結(jié)點(diǎn);(2)根以外的其他結(jié)點(diǎn)有且僅有一個(gè)雙親結(jié)點(diǎn),這就使得層次數(shù)據(jù)庫(kù)系統(tǒng)只能直接處理一對(duì)多的實(shí)體關(guān)系;(3)任何一個(gè)給定的記錄值只有按其路徑查看時(shí),才能顯出它的全部意義,沒(méi)有一個(gè)子女記錄值能夠脫離雙親記錄值而獨(dú)立存在。例如:以下是一個(gè)層次模型的例子,如圖1.10所示。D#DNDLR#RNS#SNSST#TNTDTS教研室R學(xué)生S圖1.10TS數(shù)據(jù)庫(kù)模型61層次數(shù)據(jù)庫(kù)為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),它們沒(méi)有子女結(jié)點(diǎn),由D到R,R到T,由D到S均是一對(duì)多的關(guān)系。62對(duì)應(yīng)上述數(shù)據(jù)模型的一個(gè)值,該值是D02系(計(jì)算機(jī)系)記錄值及其所有后代記錄值組成的一棵樹(shù),D02系有3個(gè)教研室子記錄值:R01、R02、R03和3個(gè)學(xué)生記錄值:S63871、S63874、S63876,教研室R01有3個(gè)教師記錄值:T2101、T17090、T3501.632.層次模型的數(shù)據(jù)操縱與數(shù)據(jù)完整性約束層次模型的數(shù)據(jù)操縱主要有查詢、插入、刪除和修改,進(jìn)行插入、刪除和修改操作時(shí)要滿足層次模型的完整性約束條件。進(jìn)行插入操作時(shí),如果沒(méi)有相應(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ù)的一致性。643.層次模型的優(yōu)缺點(diǎn)層次模型的優(yōu)點(diǎn)主要有:(1)比較簡(jiǎn)單,只需很少幾條命令就能操縱數(shù)據(jù)庫(kù),比較容易使用。(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)系本來(lái)就呈現(xiàn)出一種很自然的層次關(guān)系,如表示行政層次,家族關(guān)系很方便。(3)它提供了良好的數(shù)據(jù)完整性支持。65層次模型的缺點(diǎn)主要有:(1)不能直接表示兩個(gè)以上的實(shí)體型間的復(fù)雜的聯(lián)系和實(shí)體型間的多對(duì)多聯(lián)系,只能通過(guò)引入冗余數(shù)據(jù)或創(chuàng)建虛擬結(jié)點(diǎn)的方法來(lái)解決,易產(chǎn)生不一致性。(2)對(duì)數(shù)據(jù)的插入和刪除的操作限制太多。(3)查詢子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn)。661.5.3.2網(wǎng)狀模型現(xiàn)實(shí)世界中事物之間的聯(lián)系更多的是非層次關(guān)系的,用層次模型表示這種關(guān)系很不直觀,網(wǎng)狀模型克服了這一弊病,可以清晰的表示這種非層次關(guān)系。20世紀(jì)70年代,數(shù)據(jù)系統(tǒng)語(yǔ)言研究會(huì)CODASYL(ConferenceOnDataSystemLanguage)下屬的數(shù)據(jù)庫(kù)任務(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í)有向樹(shù)變成了有向圖,該有向圖描述了網(wǎng)狀模型。67網(wǎng)狀模型的特征(1)有一個(gè)以上的結(jié)點(diǎn)沒(méi)有雙親;(2)至少有一個(gè)結(jié)點(diǎn)可以有多于一個(gè)雙親。即允許兩個(gè)或兩個(gè)以上的結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),允許某個(gè)結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn),則此時(shí)有向樹(shù)變成了有向圖,該有向圖描述了網(wǎng)狀模型。網(wǎng)狀模型中每個(gè)結(jié)點(diǎn)表示一個(gè)記錄型(實(shí)體),每個(gè)記錄型可包含若干個(gè)字段(實(shí)體的屬性),結(jié)點(diǎn)間的連線表示記錄類型(實(shí)體)間的父子關(guān)系。68如:學(xué)生和課程間的關(guān)系。一個(gè)學(xué)生可以選修多門課程,一門課程可以由多個(gè)學(xué)生選修。如圖1.11所示
圖1.11學(xué)生與課程的網(wǎng)狀模型
學(xué)生課程692.網(wǎng)狀模型的數(shù)據(jù)操縱與完整性約束網(wǎng)狀模型的數(shù)據(jù)操縱主要包括查詢、插入、刪除和修改數(shù)據(jù)。插入數(shù)據(jù)時(shí),允許插入尚未確定雙親結(jié)點(diǎn)值的子女結(jié)點(diǎn)值,如可增加一名尚未分配到某個(gè)教研室的新教師,也可增加一些剛來(lái)報(bào)到,還未分配宿舍的學(xué)生。刪除數(shù)據(jù)時(shí),允許只刪除雙親結(jié)點(diǎn)值,如可刪除一個(gè)教研室,而該教研室所有教師的信息仍保留在數(shù)據(jù)庫(kù)中。它沒(méi)有像層次數(shù)據(jù)庫(kù)那樣有嚴(yán)格的完整性約束條件,只提供一定的完整性約束。703.網(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語(yǔ)言極其復(fù)雜。(2)數(shù)據(jù)獨(dú)立性差,由于實(shí)體間的聯(lián)系本質(zhì)上是通過(guò)存取路徑表示的,因此應(yīng)用程序在訪問(wèn)數(shù)據(jù)時(shí)要指定存取路徑。711.5.3.3關(guān)系模型關(guān)系模型是發(fā)展較晚的一種模型,1970年美國(guó)IBM公司的研究員E.F.Codd首次提出了數(shù)據(jù)庫(kù)系統(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)系的第三范式,從而開(kāi)創(chuàng)了數(shù)據(jù)庫(kù)的關(guān)系方法和數(shù)據(jù)規(guī)范化理論的研究,他為此獲得了1981年的圖靈獎(jiǎng)。此后許多人把研究方向轉(zhuǎn)到關(guān)系方法上,陸續(xù)出現(xiàn)了關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。1977年IBM公司研制的關(guān)系數(shù)據(jù)庫(kù)的代表SystemR開(kāi)始運(yùn)行,其后又進(jìn)行了不斷的改進(jìn)和擴(kuò)充,出現(xiàn)了基于SystemR的數(shù)據(jù)庫(kù)系統(tǒng)SQL/DB。
7220世紀(jì)80年代以來(lái),計(jì)算機(jī)廠商新推出的數(shù)據(jù)庫(kù)管理系統(tǒng)幾乎都支持關(guān)系模型,非關(guān)系系統(tǒng)的產(chǎn)品也都加上了關(guān)系接口。數(shù)據(jù)庫(kù)領(lǐng)域當(dāng)前的研究工作也都是以關(guān)系方法為基礎(chǔ)。關(guān)系數(shù)據(jù)庫(kù)已成為目前應(yīng)用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng),如現(xiàn)在廣泛使用的小型數(shù)據(jù)庫(kù)系統(tǒng)Foxpro、Acess,大型數(shù)據(jù)庫(kù)系統(tǒng)Oracle、Informix、Sybase、SQLServer等都是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。731.關(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ù)庫(kù)的關(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)系模型中所涉及的一些基概念。74T(教師表)TNO教師號(hào)TN姓名SEX性別AGE年齡PROF職稱SAL工資COMM崗位津貼DEPT系別T1李力男47教授15003000計(jì)算機(jī)T2王平女28講師8001200信息T3劉偉男30講師9001200
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼師配班工作總結(jié)
- 來(lái)料檢驗(yàn)員工作總結(jié)
- 收款委托書(shū)(3篇)
- 福建省莆田市2024?2025學(xué)年高二上學(xué)期第一次月考數(shù)學(xué)試卷含答案
- 讀書(shū)活動(dòng)閱讀心得體會(huì)
- 吉林省長(zhǎng)春市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版開(kāi)學(xué)考試((上下)學(xué)期)試卷及答案
- 福建省泉州市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版課后作業(yè)(下學(xué)期)試卷及答案
- 茶文化與茶藝鑒賞 教案全套 楊環(huán)煥 項(xiàng)目1-6 尋茶源 中國(guó)茶文化- 品茶韻 常見(jiàn)茶葉的沖泡與鑒賞
- 護(hù)理工作年終總結(jié)匯報(bào)
- 上海市縣(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版質(zhì)量測(cè)試((上下)學(xué)期)試卷及答案
- 二年級(jí)勞動(dòng)與技術(shù)折扇課件
- 車床經(jīng)典知識(shí)幻燈片課件
- 土建歸檔資料全套表格
- 園區(qū)現(xiàn)行表格匯總移交單
- 湘教版九年級(jí)上期數(shù)學(xué)期中復(fù)習(xí) 完整版PPT
- 抖音小店客服績(jī)效考核指標(biāo)表
- 《小鯉魚(yú)跳龍門》評(píng)課稿
- XX化工有限責(zé)任公司維保方案
- 電工技師實(shí)操考試習(xí)題
- 短視頻全書(shū)電子教案完整版課件
- LVMH集團(tuán)戰(zhàn)略分析報(bào)告
評(píng)論
0/150
提交評(píng)論