數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件全套 第1-11章 數(shù)據(jù)庫概論 -Java Web 與 MySQL 數(shù)據(jù)庫編程_第1頁
數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件全套 第1-11章 數(shù)據(jù)庫概論 -Java Web 與 MySQL 數(shù)據(jù)庫編程_第2頁
數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件全套 第1-11章 數(shù)據(jù)庫概論 -Java Web 與 MySQL 數(shù)據(jù)庫編程_第3頁
數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件全套 第1-11章 數(shù)據(jù)庫概論 -Java Web 與 MySQL 數(shù)據(jù)庫編程_第4頁
數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件全套 第1-11章 數(shù)據(jù)庫概論 -Java Web 與 MySQL 數(shù)據(jù)庫編程_第5頁
已閱讀5頁,還剩678頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)庫原理與開發(fā)技術(shù)大數(shù)據(jù)·數(shù)據(jù)分析·項(xiàng)目開發(fā)第1章數(shù)據(jù)庫概論本章主要內(nèi)容:(1)四大基本概念:數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)(2)數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)(3)四種數(shù)據(jù)模型:概念模型、邏輯模型、外部模型、內(nèi)部模型(4)四種邏輯模型:網(wǎng)狀模型、層次模型、關(guān)系模型、對象模型(5)DBMS的四大控制功能:恢復(fù)、并發(fā)、完整性、安全性(6)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu):三層模式、二級映像1.1數(shù)據(jù)庫技術(shù)研究的核心問題1.1.1信息(Information)與數(shù)據(jù)(Data)

什么是數(shù)據(jù)庫?它研究和解決的核心問題是什么?它是如何將現(xiàn)實(shí)世界中的事物及其聯(lián)系,一步一步地以0-1二進(jìn)制形式,存儲在計(jì)算機(jī)內(nèi)的?

自從語言、以及文字誕生后,人類就從野蠻社會進(jìn)入了文明社會,人們可以用語言進(jìn)行交流、用文字記錄信息。

所謂信息,就是現(xiàn)實(shí)世界中,事物的存在方式或運(yùn)動狀態(tài)在人腦中的反映。人除了吃飯和睡覺,大部分時間都用在和外界的信息溝通上。信息的處理和傳承,需要一個媒介,媒介上所記錄的符號,都可以稱為數(shù)據(jù)(廣義數(shù)據(jù))。1.1.1信息(Information)與數(shù)據(jù)(Data)圖1-15000多年前寫在泥板上的楔形文字(左)和我國商朝的甲骨文(右)1.1.1信息(Information)與數(shù)據(jù)(Data)但是,電子計(jì)算機(jī)發(fā)明后,人類進(jìn)入了信息時代,記錄信息的媒介是計(jì)算機(jī)的存儲器。此時,數(shù)據(jù)有比較明確的范疇(稱為狹義數(shù)據(jù))。定義1-1數(shù)據(jù)(Data)是指描述事物的符號記錄,它是數(shù)據(jù)庫系統(tǒng)研究、處理的對象。數(shù)據(jù)的種類(也稱數(shù)據(jù)的表現(xiàn)形式)有:數(shù)字、文字、圖形、動畫、圖像、聲音等。只有在計(jì)算機(jī)中,可以通過0-1二進(jìn)制表示的東西,才能夠稱為數(shù)據(jù)。1.1.1信息(Information)與數(shù)據(jù)(Data)

數(shù)據(jù)與信息的區(qū)別:信息的含義比數(shù)據(jù)要廣,無法在計(jì)算機(jī)中用0-1二進(jìn)制表示的信息,不能稱為數(shù)據(jù),例如,“桂花香”是信息,但不是數(shù)據(jù)。數(shù)據(jù)與信息的聯(lián)系:(1)數(shù)據(jù)是信息的載體,信息是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)語義的解釋。(2)數(shù)據(jù)表示了信息,而信息只有通過數(shù)據(jù)形式表現(xiàn)出來,才能夠被人們理解和接受。例如,單獨(dú)一個數(shù)字“8”,是8歲呢?還是8個人?亦或銷售量增長8倍?一個脫離了信息含義的數(shù)據(jù),是沒有意義的。1.1.1信息(Information)與數(shù)據(jù)(Data)在數(shù)據(jù)庫中,數(shù)據(jù)有下面兩個特征:(1)任何一個數(shù)據(jù),都含有類型和取值之意。

(2)數(shù)據(jù)受數(shù)據(jù)類型和取值范圍的約束。不同類型的數(shù)據(jù),其表示形式、存儲方式以及能進(jìn)行的操作運(yùn)算各不相同。在使用計(jì)算機(jī)處理數(shù)據(jù)時,應(yīng)特別重視數(shù)據(jù)類型,并為數(shù)據(jù)選擇合適的類型。常見的類型有:數(shù)值型、字符串型、日期型、邏輯型、二進(jìn)制型等。1.1.1信息(Information)與數(shù)據(jù)(Data)由于計(jì)算機(jī)存儲器本身的特點(diǎn),人們不能直接將信息儲存在計(jì)算機(jī)內(nèi),也不能將計(jì)算機(jī)內(nèi)的數(shù)據(jù)直接表現(xiàn)為信息而呈現(xiàn)在人們面前。這涉及到數(shù)據(jù)與信息的兩次“轉(zhuǎn)換”。如圖1-2所示。例如,字母“A”的ASCII值為65,轉(zhuǎn)為二進(jìn)制保存在計(jì)算機(jī)內(nèi),為“01000001”;漢字“中”的Unicode碼值為20013,轉(zhuǎn)為二進(jìn)制保存在計(jì)算機(jī)內(nèi),為“0100111000101101”。1.1.2數(shù)據(jù)處理(DataProcessing)與數(shù)據(jù)管理(DataManagement)圍繞數(shù)據(jù)所做的工作,均可稱為數(shù)據(jù)處理,也稱信息處理,具體包括:數(shù)據(jù)的收集、整理、組織、加工、存儲、維護(hù)、檢索、傳輸?shù)取@?,對已知?shù)據(jù)的加工,可推導(dǎo)出一些新的數(shù)據(jù),這些新的數(shù)據(jù)又表示了新的信息。如表1-1所示,按性別統(tǒng)計(jì)學(xué)生人數(shù)。學(xué)號姓名性別籍貫專業(yè)出生日期

數(shù)據(jù)處理

分組計(jì)數(shù)18078101張山男江西南昌計(jì)算機(jī)2002.07.06性別人數(shù)18078102李四女廣東汕頭計(jì)算機(jī)2003.01.12男218071103王二男河北邯鄲應(yīng)用數(shù)學(xué)2002.09.08女1表1-1學(xué)生基本信息及按性別統(tǒng)計(jì)人數(shù)1.1.2數(shù)據(jù)處理(DataProcessing)與數(shù)據(jù)管理(DataManagement)數(shù)據(jù)管理是數(shù)據(jù)處理中最基本的工作,是其他數(shù)據(jù)處理的核心,具體可分為3項(xiàng)內(nèi)容:(1)數(shù)據(jù)的組織、保存和轉(zhuǎn)儲。數(shù)據(jù)管理要將收集到的數(shù)據(jù)合理地進(jìn)行分類組織,將其存儲在介質(zhì)上,并能長期保存。

(2)數(shù)據(jù)的維護(hù)。根據(jù)需要,數(shù)據(jù)管理可對數(shù)據(jù)進(jìn)行插入、修改、刪除等操作。

(3)數(shù)據(jù)的檢索、統(tǒng)計(jì),滿足各種應(yīng)用需求。1.1.3數(shù)據(jù)庫(DataBase,簡稱DB)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)

定義1-2數(shù)據(jù)庫(DB)是指長期存儲在計(jì)算機(jī)內(nèi)、有一定組織的、統(tǒng)一管理的、相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按照某種數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并能為各種用戶共享。歸納起來,數(shù)據(jù)庫具有永久存儲、有組織和可共享三個基本特點(diǎn)。1.1.3數(shù)據(jù)庫(DataBase,簡稱DB)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)例如,人們可以用自然語言來描述一個學(xué)生的信息:張山同學(xué),男,2003年8月20日出生,江西南昌人,計(jì)算機(jī)系,2021年9月入學(xué)。這條記錄,在計(jì)算機(jī)中可以這樣描述:(張山,男,20030820,江西南昌,計(jì)算機(jī)系,202109)把學(xué)生的姓名、性別、出生日期、籍貫、專業(yè)、入學(xué)時間等組織在一起,構(gòu)成一條記錄,保存在數(shù)據(jù)庫中,成為數(shù)據(jù)庫中的數(shù)據(jù),這樣的數(shù)據(jù)是有結(jié)構(gòu)的。另外,張山同學(xué)選擇了多門課程,有高等數(shù)學(xué)、大學(xué)英語等,每門課程都有考試成績,他還會在圖書館借很多書看。每本書又可被多個學(xué)生借閱。這些數(shù)據(jù),以及它們的聯(lián)系,如圖1-3所示。1.1.3數(shù)據(jù)庫(DataBase,簡稱DB)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)如何將這些數(shù)據(jù),以及它們的聯(lián)系存儲在計(jì)算機(jī)內(nèi)?顯然,僅有數(shù)據(jù)庫是不夠的。因?yàn)閿?shù)據(jù)庫本身只是一些相關(guān)數(shù)據(jù)的集合,要管理這些數(shù)據(jù),必須要有專門的軟件,這就是數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)。1.1.3數(shù)據(jù)庫(DataBase,簡稱DB)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)

定義1-3數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指位于用戶(User)與操作系統(tǒng)(OperatingSystem)之間的一層數(shù)據(jù)管理軟件,它為用戶或應(yīng)用程序提供訪問DB的方法,包括DB的創(chuàng)建、查詢、更新及各種數(shù)據(jù)控制。數(shù)據(jù)庫應(yīng)用系統(tǒng)的結(jié)構(gòu),如圖1-4所示。

數(shù)據(jù)庫技術(shù)是一門重要的計(jì)算機(jī)軟件學(xué)科,是研究如何將現(xiàn)實(shí)世界中的信息轉(zhuǎn)為數(shù)據(jù)庫中的數(shù)據(jù),并對數(shù)據(jù)庫進(jìn)行有效管理、存取和檢索,同時向用戶提供共享、安全、可靠的信息服務(wù)。(數(shù)據(jù)庫技術(shù)研究的兩個核心問題)1.1.3數(shù)據(jù)庫(DataBase,簡稱DB)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫技術(shù)研究和處理的對象是數(shù)據(jù),它涉及到數(shù)據(jù)的各種結(jié)構(gòu)。所謂數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式及數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的物理結(jié)構(gòu)兩種。

數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)間的聯(lián)系和表示方式,與數(shù)據(jù)的存儲位置無關(guān),具體可分四種:(1)集合結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)中的元素“同屬一個集合”。

(2)線性結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)中的元素存在一對一的相互關(guān)系。

(3)樹形結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)中的元素存在一對多的相互關(guān)系。

(4)圖形結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)中的元素存在多對多的相互關(guān)系。1.1.3數(shù)據(jù)庫(DataBase,簡稱DB)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)

數(shù)據(jù)的物理結(jié)構(gòu),也稱數(shù)據(jù)的存儲結(jié)構(gòu),是指數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲方式,主要有:順序存儲、鏈接存儲、索引存儲、散列存儲等。邏輯結(jié)構(gòu)用于設(shè)計(jì)算法,存儲結(jié)構(gòu)用于算法編碼實(shí)現(xiàn)。

定義1-4數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)是由數(shù)據(jù)庫、DBMS及其應(yīng)用開發(fā)工具、應(yīng)用程序和數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)組成的數(shù)據(jù)處理系統(tǒng)。它包括四個組成部分:計(jì)算機(jī)硬件、軟件、數(shù)據(jù)資源、數(shù)據(jù)庫管理員。在不引起混淆的情況下,人們一般把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展計(jì)算機(jī)的數(shù)據(jù)處理應(yīng)用,首先要把大量的信息,以數(shù)據(jù)的形式存放在存儲器中。存儲器的容量、存儲速率等直接影響到數(shù)據(jù)管理技術(shù)的發(fā)展。這個發(fā)展過程,大致可以分為三個階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫管理階段。1.人工管理階段(20世紀(jì)50年代中期)在這一階段,計(jì)算機(jī)主要用于科學(xué)計(jì)算,外存設(shè)備只有磁帶、卡片和紙帶,軟件只有匯編語言,沒有操作系統(tǒng)和數(shù)據(jù)管理方面的軟件。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展數(shù)據(jù)處理的方式基本上是人工管理的批處理方式,其特點(diǎn)主要表現(xiàn)在:(1)沒有文件的概念。執(zhí)行任務(wù)時,原始數(shù)據(jù)隨程序一起輸入內(nèi)存,計(jì)算完成后將數(shù)據(jù)結(jié)果輸出,然后退出計(jì)算機(jī)系統(tǒng),所有數(shù)據(jù)一并釋放。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)(指數(shù)據(jù)的表示方式)和物理結(jié)構(gòu)(指數(shù)據(jù)的存儲方式)沒有區(qū)別。

(2)數(shù)據(jù)沒有獨(dú)立性。這是因?yàn)閿?shù)據(jù)是面向程序的,而每個應(yīng)用程序都要考慮數(shù)據(jù)的存儲結(jié)構(gòu)、存取方法、輸出輸入方式等內(nèi)容。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)發(fā)生變化時,應(yīng)用程序必須進(jìn)行相應(yīng)的修改。

(3)數(shù)據(jù)無法進(jìn)行共享。一組數(shù)據(jù)只對應(yīng)一個程序,當(dāng)多個程序需要使用同一組數(shù)據(jù)時,只有在各自的程序中,自行輸入。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展2.文件系統(tǒng)階段(20世紀(jì)50年代后期至60年代后期)這一階段,隨著數(shù)據(jù)量的增加,計(jì)算機(jī)不僅用于科學(xué)計(jì)算,還可用于數(shù)據(jù)管理。外部存儲器出現(xiàn)了磁盤、磁鼓。軟件方面,出現(xiàn)了操作系統(tǒng),并出現(xiàn)了世界上第一個高級編程語言:Fortran(是由美國IBM公司1954年發(fā)布的)。數(shù)據(jù)處理的方式,既有批處理,也有聯(lián)機(jī)實(shí)時處理。這一階段,數(shù)據(jù)管理的特點(diǎn)主要表現(xiàn)在:1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展文件系統(tǒng)階段,其特點(diǎn)主要表現(xiàn)在:(1)數(shù)據(jù)以“文件”的形式,可以長期保存在外存設(shè)備上,因此,可以對數(shù)據(jù)進(jìn)行查詢、插入、修改、刪除等操作。(2)數(shù)據(jù)有了邏輯結(jié)構(gòu)和物理結(jié)構(gòu)之分,但數(shù)據(jù)的結(jié)構(gòu)具備設(shè)備獨(dú)立性而不具備邏輯獨(dú)立性。這是因?yàn)?,?shù)據(jù)以文件形式存在,應(yīng)用程序可按文件名直接對數(shù)據(jù)記錄進(jìn)行訪問,不必關(guān)心數(shù)據(jù)的物理位置,當(dāng)改變存儲設(shè)備時,不必改變應(yīng)用程序。但是,數(shù)據(jù)文件是為特定應(yīng)用服務(wù)的,文件的邏輯結(jié)構(gòu)也對應(yīng)于應(yīng)用程序。一旦數(shù)據(jù)的邏輯結(jié)構(gòu)發(fā)生改變,則必須修改對應(yīng)的應(yīng)用程序,這使得要想對現(xiàn)有的數(shù)據(jù)增加新的應(yīng)用非常困難,程序也難以擴(kuò)展。(3)數(shù)據(jù)面向應(yīng)用,不面向程序,可重復(fù)使用。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展文件系統(tǒng)暴露出下面3個缺陷:(1)多個程序使用同一個文件時,都要進(jìn)行重復(fù)存儲,導(dǎo)致數(shù)據(jù)冗余(Redundancy)。(2)由于數(shù)據(jù)冗余,當(dāng)進(jìn)行數(shù)據(jù)更新時,可能使同一個數(shù)據(jù)在不同的文件中不一致(Inconsistency)。(3)數(shù)據(jù)間聯(lián)系較弱(PoorDataRelationship)。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展例如,某高校的人事處、財(cái)務(wù)處、教務(wù)處各自建立了自己的教工管理文件,內(nèi)容為:教工檔案文件(教工編號,教工姓名,性別,出生日期,手機(jī)號,學(xué)歷,職稱)教工工資文件(教工編號,教工姓名,手機(jī)號,檔案工資,職稱工資,職務(wù)工資)教工任課文件(教工編號,教工姓名,手機(jī)號,所學(xué)專業(yè),任教課程)每一個教工的手機(jī)號在3個文件中重復(fù)出現(xiàn),這就是“數(shù)據(jù)冗余”。如果要修改某教工的手機(jī)號,就要修改3個文件中的數(shù)據(jù),否則會引起同一數(shù)據(jù)在3個文件中不一致。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展3.數(shù)據(jù)庫管理階段(20世紀(jì)60年代后期至今)

1963年,美國Honeywell公司的IDS(IntegratedDataStore)系統(tǒng)投入運(yùn)行,揭開了數(shù)據(jù)庫技術(shù)的序幕,隨后發(fā)生的3件大事,標(biāo)志著數(shù)據(jù)庫技術(shù)的正式誕生,并在數(shù)據(jù)庫領(lǐng)域,相繼產(chǎn)生了4位計(jì)算機(jī)圖靈獎獲得者。查爾斯·巴赫曼埃德加·科德吉姆·格雷邁克爾·斯通布雷克網(wǎng)狀數(shù)據(jù)庫之父

關(guān)系數(shù)據(jù)庫之父

事務(wù)處理權(quán)威

數(shù)據(jù)庫的布道者1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展

第一件大事:1961年,美國通用電氣公司(GE)的查爾斯·巴赫曼成功地開發(fā)出世界上第一個數(shù)據(jù)庫管理系統(tǒng),也是第一個網(wǎng)狀DBMS——集成數(shù)據(jù)存儲(IntegratedDataStore,IDS),奠定了網(wǎng)狀數(shù)據(jù)庫的基礎(chǔ),它的設(shè)計(jì)思想和實(shí)現(xiàn)技術(shù)被后來許多數(shù)據(jù)庫產(chǎn)品所仿效。

第二件大事:1968年,美國的IBM公司推出了層次模型的數(shù)據(jù)庫管理系統(tǒng)IMS(InformationManagementSystem)。

第三件大事:1970年,美國IBM公司的埃德加·科德(EdgarF.Codd)在刊物《CommunicationoftheACM》上發(fā)表了“大型共享數(shù)據(jù)庫的關(guān)系模型”(ARelationalModelofDataforLargeSharedDataBanks)的論文,文中首次提出了數(shù)據(jù)庫的關(guān)系模型。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展第3位獲得圖靈獎(1998年度)的是吉姆·格雷(JimGray),他使關(guān)系模型的技術(shù)實(shí)用化,為關(guān)系型DBMS成熟并順利進(jìn)入市場起到了關(guān)鍵性的作用。他在事務(wù)處理方面取得了突出的貢獻(xiàn),成為該技術(shù)領(lǐng)域公認(rèn)的權(quán)威。格雷進(jìn)入數(shù)據(jù)庫領(lǐng)域時,關(guān)系數(shù)據(jù)庫的理論框架已經(jīng)成熟,但在關(guān)系數(shù)據(jù)庫管理系統(tǒng)的實(shí)現(xiàn)和產(chǎn)品開發(fā)中,各大公司都遇到了一些技術(shù)問題,例如,在數(shù)據(jù)量愈來愈大、用戶共享訪問數(shù)據(jù)庫愈來愈多的情況下,如何保障數(shù)據(jù)的完整性(Integrity)、安全性(Security)、并發(fā)性(Concurrency),以及一旦出現(xiàn)故障后,數(shù)據(jù)庫如何實(shí)現(xiàn)從故障中恢復(fù)(Recovery)。這些問題如果不能圓滿解決,無論哪個公司的數(shù)據(jù)庫產(chǎn)品都無法進(jìn)入實(shí)用,最終不能被用戶所接受。正是在解決這些重大的技術(shù)問題,使DBMS成熟并順利進(jìn)入市場的過程中,格雷發(fā)揮了十分關(guān)鍵的作用。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展第4位因數(shù)據(jù)庫領(lǐng)域研究和開發(fā)而獲得圖靈獎(2014年度)的是邁克爾·斯通布雷克(MichaelStonebraker)。他是數(shù)據(jù)庫領(lǐng)域的布道者、關(guān)系數(shù)據(jù)庫軟件Ingres和PostgreSQL的創(chuàng)始人。Ingres在關(guān)系數(shù)據(jù)庫的查詢語言設(shè)計(jì)、查詢處理、存取方法、并發(fā)控制和查詢重寫等技術(shù)上都有重大貢獻(xiàn)。他在關(guān)系數(shù)據(jù)庫方面的研究成果對現(xiàn)今市場上的產(chǎn)品有很深的影響,例如,兩大主流數(shù)據(jù)庫Sybase和SQLServer的技術(shù)構(gòu)架和基礎(chǔ)源代碼都來自Ingres。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展歸納起來,在數(shù)據(jù)庫階段,數(shù)據(jù)管理的方式有如下4個特點(diǎn):(1)數(shù)據(jù)結(jié)構(gòu)化程度高。在文件系統(tǒng)中,文件中的記錄內(nèi)部已有某些結(jié)構(gòu),但是這些記錄之間缺乏聯(lián)系。數(shù)據(jù)庫系統(tǒng)采用數(shù)據(jù)模型表示整體的數(shù)據(jù)結(jié)構(gòu),它不僅描述數(shù)據(jù)本身的特點(diǎn),還描述數(shù)據(jù)之間的聯(lián)系。實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的根本區(qū)別所在。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展例如,針對某高校人事處、財(cái)務(wù)處、教務(wù)處各自建立的教工管理文件的弊端,用數(shù)據(jù)庫管理,通過教工編號,以指針的形式,指向教工工資、任課記錄,如圖1-6所示。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展(2)數(shù)據(jù)的共享性好,冗余度低。數(shù)據(jù)庫系統(tǒng)從全局的角度描述和處理數(shù)據(jù),數(shù)據(jù)不再面向某個特定的應(yīng)用,而是整個應(yīng)用系統(tǒng)。因此,數(shù)據(jù)可以被多個用戶、多個應(yīng)用程序所共享。數(shù)據(jù)共享可以降低數(shù)據(jù)冗余、節(jié)約存儲空間,能夠避免數(shù)據(jù)之間的不相容性和不一致性,提高數(shù)據(jù)庫系統(tǒng)的性能。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展(3)數(shù)據(jù)獨(dú)立性高,容易擴(kuò)充。

定義1-5數(shù)據(jù)獨(dú)立性是指應(yīng)用程序與數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)之間相互獨(dú)立。它包括物理獨(dú)立性和邏輯獨(dú)立性。在數(shù)據(jù)的物理結(jié)構(gòu)改變時,盡量不影響到數(shù)據(jù)的邏輯結(jié)構(gòu)及應(yīng)用程序,這樣就認(rèn)為數(shù)據(jù)庫達(dá)到了物理獨(dú)立性。在數(shù)據(jù)的整體邏輯結(jié)構(gòu)改變時,盡量不影響到用戶的邏輯結(jié)構(gòu)及應(yīng)用程序,這樣就認(rèn)為數(shù)據(jù)庫達(dá)到了邏輯獨(dú)立性。數(shù)據(jù)的獨(dú)立性把數(shù)據(jù)的定義和管理從程序中分離出去,用戶的應(yīng)用程序既不用考慮數(shù)據(jù)的存儲結(jié)構(gòu),也不用擔(dān)心數(shù)據(jù)的整體邏輯結(jié)構(gòu)的變化,只需要通過數(shù)據(jù)庫系統(tǒng)提供的程序接口(Interface)操作數(shù)據(jù)庫,從而簡化了程序的編制,減少了應(yīng)用程序的維護(hù)和修改成本。1.1.4數(shù)據(jù)庫技術(shù)的由來和發(fā)展(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制。數(shù)據(jù)庫的共享會帶來數(shù)據(jù)庫的安全隱患,數(shù)據(jù)的并發(fā)會破壞數(shù)據(jù)庫的完整性。為此,DBMS提供了如下四大控制功能,也稱四大保護(hù)功能:

1)數(shù)據(jù)的安全性:保護(hù)數(shù)據(jù)安全,防止不合法的使用而造成數(shù)據(jù)的破壞或丟失。2)數(shù)據(jù)的完整性:保證數(shù)據(jù)庫中的數(shù)據(jù)是正確的、有效的和相容的。例如,性別只能為男或女、考試成績只能在0~100之間取值等。3)并發(fā)控制:當(dāng)多個用戶同時操作數(shù)據(jù)庫同一數(shù)據(jù)項(xiàng)時,可能發(fā)生相互干擾而得到錯誤的結(jié)果,或破壞數(shù)據(jù)庫的完整性,因此,必須對多用戶的并發(fā)操作進(jìn)行控制和協(xié)調(diào)。4)數(shù)據(jù)庫恢復(fù):當(dāng)因軟件故障、硬件故障、或人為的操作而導(dǎo)致數(shù)據(jù)庫發(fā)生意外時,DBMS能夠把數(shù)據(jù)庫恢復(fù)到最近某一時刻的正確狀態(tài)。1.2數(shù)據(jù)模型本章主要內(nèi)容:(1)四大基本概念:數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)(2)數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)(3)四種數(shù)據(jù)模型:概念模型、邏輯模型、外部模型、內(nèi)部模型(4)四種邏輯模型:網(wǎng)狀模型、層次模型、關(guān)系模型、對象模型(5)DBMS的四大控制功能:恢復(fù)、并發(fā)、完整性、安全性(6)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu):三層模式、二級映像1.2數(shù)據(jù)模型1.2.1數(shù)據(jù)模型的定義及組成計(jì)算機(jī)不能直接處理現(xiàn)實(shí)世界中的客觀事物,人們只有將現(xiàn)實(shí)事物轉(zhuǎn)成數(shù)字化的數(shù)據(jù),才能讓計(jì)算機(jī)識別處理。這就需要對客觀事物進(jìn)行抽象、模擬,以建立適合于數(shù)據(jù)庫系統(tǒng)進(jìn)行管理的數(shù)據(jù)模型。模型(Model)是對現(xiàn)實(shí)世界的抽象。它能形象、直觀地揭示事物的本質(zhì)特征。

定義1-6數(shù)據(jù)模型(DataModel,DM)是對現(xiàn)實(shí)世界數(shù)據(jù)特征的模擬和抽象。它是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。1.2.1數(shù)據(jù)模型的定義及組成埃德加·科德認(rèn)為,一個基本的數(shù)據(jù)模型是一組向用戶提供的規(guī)則,這些規(guī)則規(guī)定數(shù)據(jù)結(jié)構(gòu)如何組織以及允許進(jìn)行何種操作。通常,一個數(shù)據(jù)庫的數(shù)據(jù)模型由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的約束條件三部分組成,也稱數(shù)據(jù)模型的三要素。(1)數(shù)據(jù)結(jié)構(gòu):描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系,是對系統(tǒng)靜態(tài)特性的描述。(2)數(shù)據(jù)操作:用于描述系統(tǒng)的動態(tài)特征,包括數(shù)據(jù)的插入、修改、刪除和查詢。數(shù)據(jù)模型必須定義這些操作的準(zhǔn)確含義、操作符號、操作規(guī)則及實(shí)現(xiàn)操作的語言。

(3)數(shù)據(jù)約束:數(shù)據(jù)的約束條件實(shí)際上是一組完整性規(guī)則的集合。完整性規(guī)則是指數(shù)據(jù)模型中的數(shù)據(jù)及其聯(lián)系所具有的制約和存儲規(guī)則,限制數(shù)據(jù)的取值類型及取值范圍,以保證數(shù)據(jù)的正確、有效和相容。1.2.2信息的3種世界及描述好的數(shù)據(jù)模型應(yīng)滿足三個方面的要求:一是能比較真實(shí)地模擬現(xiàn)實(shí)世界,二是容易為人所理解,三是便于在計(jì)算機(jī)內(nèi)實(shí)現(xiàn)。僅靠一種數(shù)據(jù)模型要很好、全面的滿足這三點(diǎn)是非常困難的。比較可行的方法是,根據(jù)不同的應(yīng)用層次進(jìn)行不同的數(shù)據(jù)抽象,建立不同的數(shù)據(jù)模型。信息的3種世界是指現(xiàn)實(shí)世界、信息世界、計(jì)算機(jī)世界(也稱機(jī)器世界,或物理世界)。數(shù)據(jù)庫是計(jì)算機(jī)對現(xiàn)實(shí)世界中事物及其聯(lián)系的模擬,數(shù)據(jù)庫中存儲的數(shù)據(jù),來源于現(xiàn)實(shí)世界的信息流。在處理信息流前,必須先對其進(jìn)行分析,并用一定的方法加以描述,然后將這些描述轉(zhuǎn)換成計(jì)算機(jī)所能接受的數(shù)據(jù)。1.2.2信息的3種世界及描述

1.現(xiàn)實(shí)世界中的信息描述現(xiàn)實(shí)世界泛指存在于人腦之外的客觀世界,俗稱大自然。人們是通過客觀存在的事物及其特性、事物之間的相互聯(lián)系,及事物的發(fā)生、變化過程,來了解和認(rèn)識現(xiàn)實(shí)世界的。

例如,某高校有多個學(xué)院,每個學(xué)院都會開設(shè)多個專業(yè),各專業(yè)會招收許多學(xué)生,每個學(xué)生會選修多門課程等等。1.2.2信息的3種世界及描述

2.信息世界中的信息描述現(xiàn)實(shí)世界的事物及其狀態(tài)在人腦中的反映,并用語言進(jìn)行描述,這就是信息世界,也稱人腦世界。信息世界所涉及的描述概念主要有:(1)實(shí)體(Entity)

現(xiàn)實(shí)世界中客觀存在、并可相互區(qū)別的事物,在信息世界中被稱為實(shí)體。實(shí)體可以是具體的對象,例如,一個人、一輛車;也可以是抽象的對象,例如,一次購物、一場比賽等。

(2)實(shí)體集(EntitySet)

性質(zhì)相同的同類實(shí)體的集合,稱為實(shí)體集。例如,某高校所有的學(xué)生、圖書館所有的借書記錄等。1.2.2信息的3種世界及描述

2.信息世界中的信息描述(3)屬性(Attribute)

實(shí)體有很多特性,一個特性稱為一個屬性,每一個屬性都有類型和取值兩層含義。例如,學(xué)生有學(xué)號、姓名、性別等;購物有購物日期、購物名稱、單價、數(shù)量等。

(4)實(shí)體標(biāo)識符(Identifier)

能唯一標(biāo)識實(shí)體的屬性或?qū)傩约?,稱為實(shí)體標(biāo)識符,也稱關(guān)鍵碼(Key)或鍵。例如,學(xué)生的學(xué)號、購物的單據(jù)編號等。1.2.2信息的3種世界及描述

3.計(jì)算機(jī)世界中的信息描述信息世界的信息在計(jì)算機(jī)中需要以數(shù)據(jù)形式存儲,這就是計(jì)算機(jī)世界,也稱機(jī)器世界。在計(jì)算機(jī)世界,對應(yīng)于信息世界中的實(shí)體、實(shí)體集、屬性以及實(shí)體的唯一標(biāo)識符,都有對應(yīng)的描述。

(1)字段(Field)

標(biāo)記實(shí)體屬性的命名單位稱為字段或數(shù)據(jù)項(xiàng),字段的命名一般與屬性名相同。例如,學(xué)生有學(xué)號、姓名、性別等字段。

(2)記錄(Record)

字段的有序集合稱為記錄。一般一條記錄描述一個實(shí)體,所有記錄又可以定義為能完整描述一個實(shí)體的字段集。例如,一個學(xué)生記錄由有序的字段集組成:(學(xué)號、姓名、性別)。1.2.2信息的3種世界及描述

3.計(jì)算機(jī)世界中的信息描述(3)文件(File)

同一類記錄的集合稱為文件。文件是用來描述實(shí)體集的。例如,所有的學(xué)生記錄組成了一個學(xué)生文件。

(4)關(guān)鍵碼(Key)

能唯一標(biāo)識文件中每條記錄的字段或字段集,稱為關(guān)鍵碼,簡稱鍵。1.2.2信息的3種世界及描述

3種世界所采用的信息描述術(shù)語的對應(yīng)關(guān)系,如表1-2所示?,F(xiàn)實(shí)世界(大自然)信息世界(人腦世界)計(jì)算機(jī)世界(機(jī)器世界)事物類實(shí)體集文件事物實(shí)體記錄特性屬性字段或數(shù)據(jù)項(xiàng)實(shí)體標(biāo)識符關(guān)鍵碼1.2.2信息的3種世界及描述

4.事物聯(lián)系的描述現(xiàn)實(shí)世界中,事物是有聯(lián)系的。這種聯(lián)系必然要在信息世界、計(jì)算機(jī)世界有所反映,即實(shí)體不是孤立靜止存在的,實(shí)體與實(shí)體之間是有聯(lián)系的。

定義1-7聯(lián)系(Relationship)是實(shí)體之間的相互關(guān)系。與一個聯(lián)系有關(guān)的實(shí)體集個數(shù),稱為聯(lián)系的元數(shù)。聯(lián)系有一元聯(lián)系、二元聯(lián)系、多元聯(lián)系,其中最常見的是二元聯(lián)系。1.2.2信息的3種世界及描述二元聯(lián)系有下面3種類型:(1)一對一聯(lián)系

如果對于實(shí)體集E1中每個實(shí)體,實(shí)體集E2中至多有一個實(shí)體與之有聯(lián)系,反之亦然,則稱實(shí)體集E1與實(shí)體集E2之間的聯(lián)系為“一對一聯(lián)系”,記為1:1。

例如,高校與校長之間的聯(lián)系,一所高校只能有一個校長,一個校長只能在一所高校任職,就是1:1聯(lián)系,稱為管理關(guān)系。1.2.2信息的3種世界及描述二元聯(lián)系有下面3種類型:(2)一對多聯(lián)系

如果實(shí)體集E1中每個實(shí)體與實(shí)體集E2中任意一個(零個或多個)實(shí)體與之有聯(lián)系,而E2中每個實(shí)體至多與E1中一個實(shí)體有聯(lián)系,則稱實(shí)體集E1與實(shí)體集E2之間的聯(lián)系為“一對多聯(lián)系”,記為1:n。例如,班級與學(xué)生之間的聯(lián)系,一個班可以有多個學(xué)生,一個學(xué)生只能屬于一個班級,就是1:n聯(lián)系,稱為屬于關(guān)系。1.2.2信息的3種世界及描述二元聯(lián)系有下面3種類型:(3)多對多聯(lián)系

如果實(shí)體集E1中每個實(shí)體與實(shí)體集E2中任意一個(零個或多個)實(shí)體與之有聯(lián)系,反之亦然,則稱實(shí)體集E1與實(shí)體集E2之間的聯(lián)系為“多對多聯(lián)系”,記為m:n。例如,一個學(xué)生可以選修多門課程,一門課程可以被多個學(xué)生選修,這樣,學(xué)生與課程之間的聯(lián)系,就是m:n聯(lián)系,可以命名為選課關(guān)系。1.2.2信息的3種世界及描述類似地,可以定義三元聯(lián)系,或一元聯(lián)系。例如,航空公司要排定航班飛行班次,每一次航行班次要一架飛機(jī),要2名駕駛員,這是一個三元聯(lián)系,如圖1-7所示。工廠里,零件的組合關(guān)系為一元聯(lián)系,一個零件可以由多個子零件組成,而一個零件又可以為其他零件的子零件,如圖1-8所示。1.3數(shù)據(jù)抽象的級別本章主要內(nèi)容:(1)四大基本概念:數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)(2)數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)(3)四種數(shù)據(jù)模型:概念模型、邏輯模型、外部模型、內(nèi)部模型(4)四種邏輯模型:網(wǎng)狀模型、層次模型、關(guān)系模型、對象模型(5)DBMS的四大控制功能:恢復(fù)、并發(fā)、完整性、安全性(6)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu):三層模式、二級映像1.3數(shù)據(jù)抽象的級別一個可用的數(shù)據(jù)庫系統(tǒng)必須高效地存儲、檢索和處理數(shù)據(jù)。這種高效性的需要促使設(shè)計(jì)者在數(shù)據(jù)庫中使用復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來表示數(shù)據(jù)。從現(xiàn)實(shí)世界的信息到數(shù)據(jù)庫存儲的數(shù)據(jù)以及用戶使用的數(shù)據(jù),是一個逐步抽象的過程。1.3.13個世界的建模根據(jù)數(shù)據(jù)抽象的級別定義了4種模型:概念模型、邏輯模型、外部模型和內(nèi)部模型。其中,概念模型是從現(xiàn)實(shí)世界到信息世界的第一次抽象,邏輯模型是從信息世界到計(jì)算機(jī)世界的第二次抽象。1.3.13個世界的建模最后,由于數(shù)據(jù)庫系統(tǒng)相關(guān)用戶的層次不同,為了對用戶屏蔽數(shù)據(jù)庫系統(tǒng)的復(fù)雜性,數(shù)據(jù)庫技術(shù)在邏輯模型的基礎(chǔ)上,對計(jì)算機(jī)世界的建模又進(jìn)行了2類抽象。一類是外部模型,它面向數(shù)據(jù)庫應(yīng)用層的開發(fā)人員,描述的是用戶對數(shù)據(jù)庫局部邏輯結(jié)構(gòu)的需求;一類是內(nèi)部模型,它面向數(shù)據(jù)庫低層的研發(fā)人員,描述的是數(shù)據(jù)在磁盤上的表示方式和存儲方式。3個世界的數(shù)據(jù)抽象級別,如圖1-10所示。1.3.13個世界的建模1.3.13個世界的建模數(shù)據(jù)抽象的過程,也是數(shù)據(jù)庫設(shè)計(jì)的過程,具體分為4步:第1步:根據(jù)用戶的需求,設(shè)計(jì)數(shù)據(jù)庫的概念模型,這是一個“綜合”的過程。

第2步:依轉(zhuǎn)換規(guī)則,把概念模型轉(zhuǎn)換為數(shù)據(jù)庫的邏輯模型,這是一個“轉(zhuǎn)換”的過程。

第3步:根據(jù)用戶的業(yè)務(wù)特點(diǎn),設(shè)計(jì)不同的外部模型,供程序員使用。也就是應(yīng)用程序使用的是數(shù)據(jù)庫的外部模型。

第4步:數(shù)據(jù)庫實(shí)現(xiàn)時,要根據(jù)具體的計(jì)算機(jī)軟件、硬件環(huán)境,將邏輯模型轉(zhuǎn)換成內(nèi)部模型。一般,上述第1步稱為數(shù)據(jù)庫的概念設(shè)計(jì),第2、3步稱為數(shù)據(jù)庫的邏輯設(shè)計(jì),第4步稱為數(shù)據(jù)庫的物理設(shè)計(jì)。四種模型的相互關(guān)系,如圖1-11所示。1.3.13個世界的建模1.3.2概念模型

定義1-8概念模型是指表達(dá)用戶需求觀點(diǎn)的數(shù)據(jù)庫全局邏輯結(jié)構(gòu)的模型。它用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象。概念模型是從用戶需求的觀點(diǎn)出發(fā)的,這個階段的建模,不需要考慮計(jì)算機(jī)硬件和軟件,與DBMS無關(guān)。它是數(shù)據(jù)庫設(shè)計(jì)人員與用戶之間進(jìn)行交流的工具。概念模型的表示方法很多,其中最為常用的是由美籍華裔科學(xué)家陳品山(PeterChen)于1972年提出的實(shí)體關(guān)系方法(EntityRelationshipDiagram),這種方法主要用E-R圖來描述現(xiàn)實(shí)世界的概念模型,故也稱E-R模型或?qū)嶓w聯(lián)系模型。1.3.2概念模型繪制E-R圖的步驟如下:

第1步,確定所有實(shí)體集(或?qū)嶓w類型),用矩形框表示,框內(nèi)標(biāo)明實(shí)體名稱。

第2步,確定每一個實(shí)體應(yīng)包含的屬性,用橢圓框表示,框內(nèi)標(biāo)明屬性名,并通過實(shí)線連接到實(shí)體集。對于實(shí)體唯一標(biāo)識符的屬性,應(yīng)在屬性名下畫一條橫線。

第3步,確定實(shí)體集合之間的聯(lián)系類型,用菱形框表示,框內(nèi)標(biāo)明聯(lián)系的名稱,通過實(shí)線連接與之聯(lián)系的每個實(shí)體集,并在實(shí)線端部標(biāo)注聯(lián)系的類型(1:1、1:n、m:n)。1.3.2概念模型例1-1某高校要設(shè)計(jì)一個教學(xué)管理數(shù)據(jù)庫,主要的實(shí)體有:學(xué)生、課程、教師,分別命名為Student、Course、Teacher。學(xué)生的屬性有:學(xué)號sNo、姓名sName、性別Sex、出生日期dtBirthDate、年齡Age;課程的屬性有:課程編號cNo、課程名稱cName、學(xué)分Credit;教師的屬性有:教師編號tNo、教師姓名tName、職稱Title。規(guī)定:每個學(xué)生可以選修多門課、每門課可以被多個學(xué)生選修、學(xué)生選修的每門課都有一個成績Score,一個教師可以講授多門課、排課時一門課程只能由一個教師講授。其概念模型E-R圖,如圖1-12所示。1.3.2概念模型1.3.2概念模型

E-R模型的優(yōu)點(diǎn):(1)簡單,容易理解,能真實(shí)地反映用戶的需求。

(2)與計(jì)算機(jī)無關(guān),用戶容易接受,方便用戶與數(shù)據(jù)庫設(shè)計(jì)人員交流。E-R模型是對現(xiàn)實(shí)世界進(jìn)行抽象和描述的有力工具。用E-R圖表示的概念模型是獨(dú)立于具體的DBMS所支持的數(shù)據(jù)模型的,它是各種數(shù)據(jù)模型的共同基礎(chǔ)。但是,E-R模型只能說明實(shí)體間語義的聯(lián)系,不能進(jìn)一步說明詳細(xì)的數(shù)據(jù)結(jié)構(gòu)。因此,要解決一個具體的問題,一般是先設(shè)計(jì)好一個E-R模型,再把E-R模型(E-R圖)轉(zhuǎn)為讓計(jì)算機(jī)能實(shí)現(xiàn)的邏輯模型。1.3.3邏輯模型

定義1-9邏輯模型是指表達(dá)計(jì)算機(jī)實(shí)現(xiàn)觀點(diǎn)的數(shù)據(jù)庫全局邏輯結(jié)構(gòu)的模型。它用于機(jī)器世界的建模,是現(xiàn)實(shí)世界到機(jī)器世界的第二層抽象。任何一種DBMS系統(tǒng),都是基于某種邏輯模型的。根據(jù)對實(shí)體之間聯(lián)系的處理方式不同,常見的邏輯模型有下面四種。1.3.3邏輯模型

1.層次模型(HierarchicalModel,也稱樹狀模型)所謂層次模型,是指用樹狀(層次)結(jié)構(gòu)表示實(shí)體類型以及實(shí)體之間聯(lián)系的數(shù)據(jù)模型。從圖論的角度看,層次模型的結(jié)構(gòu)其實(shí)就是一個樹狀結(jié)構(gòu)。其數(shù)據(jù)結(jié)構(gòu)特征表現(xiàn)在:它只有一個結(jié)點(diǎn)沒有雙親,稱為根結(jié)點(diǎn);每個非根結(jié)點(diǎn)有且只有一個父結(jié)點(diǎn)。樹狀的結(jié)點(diǎn)為記錄類型,結(jié)點(diǎn)之間的連線表示記錄之間的聯(lián)系,上一層記錄類型和下一層記錄類型之間的聯(lián)系是1:n聯(lián)系。1.3.3邏輯模型

1.層次模型(HierarchicalModel,也稱樹狀模型)層次模型的優(yōu)點(diǎn)主要表現(xiàn)在:(1)層次模型的數(shù)據(jù)結(jié)構(gòu)簡單清晰。只要知道每個結(jié)點(diǎn)的雙親結(jié)點(diǎn)(除根結(jié)點(diǎn)外),就知道整個模型的整體結(jié)構(gòu)。

(2)層次數(shù)據(jù)庫的數(shù)據(jù)查詢效率較高。因?yàn)樵趯哟文P椭杏涗涢g的聯(lián)系用有向邊表示,這種聯(lián)系非常適合用指針來實(shí)現(xiàn)。當(dāng)要存取某個結(jié)點(diǎn)的記錄值時,DBMS沿著從根節(jié)點(diǎn)下來的這一條路徑能很快找到該記錄值,其性能優(yōu)于關(guān)系數(shù)據(jù)庫。1.3.3邏輯模型例如,高校的行政機(jī)構(gòu)是一種層次關(guān)系。系是根結(jié)點(diǎn),它有2個子結(jié)點(diǎn):教研室和班級。一個教研室有多個教師,一個班級有多名學(xué)生。教師與學(xué)生是葉結(jié)點(diǎn),它們沒有子女結(jié)點(diǎn)。其層次關(guān)系如圖1-13所示。圖1-14是系別、教師、學(xué)生層次模型數(shù)據(jù)庫對應(yīng)的一個實(shí)例。1.3.3邏輯模型

1.層次模型(HierarchicalModel,也稱樹狀模型)圖1-13系別、教師、班級、學(xué)生層次模型數(shù)據(jù)庫的一個實(shí)例1.3.3邏輯模型

1.層次模型(HierarchicalModel,也稱樹狀模型)層次模型的缺點(diǎn)主要表現(xiàn)在:(1)只能表示實(shí)體間的1:n聯(lián)系。如果要表示實(shí)體間m:n聯(lián)系,雖然通過引入冗余數(shù)據(jù)或引入虛擬結(jié)點(diǎn)來解決,這樣對插入、刪除操作的限制比較多,會導(dǎo)致數(shù)據(jù)不一致,應(yīng)用程序的編寫比較復(fù)雜。

(2)由于數(shù)據(jù)結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化,使得程序的擴(kuò)展性差。例如,當(dāng)層次比較深時,記錄的查詢每次都要從根節(jié)點(diǎn)開始。如果要刪除雙親結(jié)點(diǎn),則對應(yīng)的子女結(jié)點(diǎn)也同時會被刪除。1.3.3邏輯模型

2.網(wǎng)狀模型(NetworkModel)所謂網(wǎng)狀模型,指用網(wǎng)狀結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)特征為:它可以有一個以上的結(jié)點(diǎn)沒有雙親,至少存在一個結(jié)點(diǎn)有多于一個雙親。網(wǎng)狀模型中的每個結(jié)點(diǎn)表示一個記錄類型,結(jié)點(diǎn)之間用有向邊表示記錄類型之間的父子關(guān)系。1.3.3邏輯模型

2.網(wǎng)狀模型(NetworkModel)例如,將例題1-1中的E-R圖,轉(zhuǎn)為學(xué)生選課數(shù)據(jù)的網(wǎng)狀模式,為如圖所示。網(wǎng)狀模型的優(yōu)點(diǎn)是記錄之間的聯(lián)系通過指針來實(shí)現(xiàn),m:n聯(lián)系也比較容易實(shí)現(xiàn),查詢效率較高。但是,它的缺點(diǎn)也是致命的,主要表現(xiàn)在數(shù)據(jù)結(jié)構(gòu)復(fù)雜、編程復(fù)雜。1.3.3邏輯模型

3.關(guān)系模型(RelationalModel)由于層次模型和網(wǎng)狀模型的應(yīng)用程序編寫復(fù)雜,因此從20世紀(jì)80年代中期起,其市場已被關(guān)系模型的產(chǎn)品所取代。關(guān)系型數(shù)據(jù)庫已經(jīng)成為當(dāng)前數(shù)據(jù)庫應(yīng)用的主流。

用二維表結(jié)構(gòu)來描述實(shí)體及其聯(lián)系的數(shù)據(jù)模型,稱為關(guān)系模型。關(guān)系模型的具體內(nèi)容,第2章將詳細(xì)介紹。(1)關(guān)系模型的結(jié)構(gòu)特征

在用戶看來,一個關(guān)系模型的邏輯結(jié)構(gòu)就是一張二維表框架。關(guān)系模型由若干個關(guān)系模式(RelationalSchema)組成的集合。一個命名關(guān)系的屬性名序列稱為關(guān)系模式,它相當(dāng)于前面提到的記錄類型,它的實(shí)例稱為關(guān)系(Relation),每個關(guān)系就是一張二維表。1.3.3邏輯模型

3.關(guān)系模型(RelationalModel)例如,將例題1-1中的E-R圖,轉(zhuǎn)為學(xué)生選課數(shù)據(jù)的關(guān)系模式,結(jié)果如下。Student模式(sNo,sName,Sex,Age,dtBirthDate)Teacher模式(tNo,tName,Title)Course模式(cNo,cName,Credit,tNo)SC模式(sNo,cNo,Score)下劃線的屬性為主鍵,波浪線的屬性為外鍵。1.3.3邏輯模型

3.關(guān)系模型(RelationalModel)進(jìn)一步,將學(xué)生模式實(shí)例化,如表1-4所示的學(xué)生信息表,就是一個學(xué)生關(guān)系。學(xué)號(sNo)姓名(sName)性別(Sex)年齡(Age)出生日期(dtBirthDate)18020101張三M202000-08-0918060206李明M192001-02-18……………19070101劉燕F182002-10-061.3.3邏輯模型(2)關(guān)系模型的數(shù)據(jù)操作與完整性約束關(guān)系模型的數(shù)據(jù)操作主要包括:數(shù)據(jù)查詢和更新(插入、修改、刪除),這些操作必須滿足關(guān)系的三大完整性約束:實(shí)體完整性、參照完整性和用戶定義的完整性。其具體含義將在第2章中介紹。與層次和網(wǎng)狀模型相比,關(guān)系模型的優(yōu)點(diǎn)主要表現(xiàn)在:(1)關(guān)系模型的結(jié)構(gòu)簡單,概念比較單一,用戶易懂易用。(2)關(guān)系模型的存取路徑對用戶是透明的,從而提高了數(shù)據(jù)的獨(dú)立性,也簡化了程序員的開發(fā)工作。關(guān)系模型也有不足,最主要的是數(shù)據(jù)查詢效率不如非關(guān)系數(shù)據(jù)模型。因此,為了提高系統(tǒng)的統(tǒng)計(jì)性能,DBMS必須對用戶的查詢請求進(jìn)行優(yōu)化,這增加了開發(fā)DBMS的難度。1.3.3邏輯模型4.對象模型(ObjectModel)用對象(Object)和類(Class)來描述實(shí)體及實(shí)體之間聯(lián)系的模型,稱為對象模型。這里的對象,是指現(xiàn)實(shí)世界中實(shí)體的模型化,它把實(shí)體的狀態(tài)和行為封裝在一起。其中對象的狀態(tài)是該對象屬性值的集合,對象的行為是在對象狀態(tài)上操作的方法集。將屬性集和方法集相同的所有對象組合在一起,就構(gòu)成了一個類。

對象模型能完整描述現(xiàn)實(shí)世界中的數(shù)據(jù)結(jié)構(gòu),表達(dá)能力豐富,但模型實(shí)現(xiàn)非常復(fù)雜,遠(yuǎn)未達(dá)到普及的程度。如:PostgreSQL。1.3.4外部模型定義1-10表達(dá)用戶觀點(diǎn)的數(shù)據(jù)庫局部邏輯結(jié)構(gòu)的模型,稱為外部模型。在應(yīng)用系統(tǒng)中,經(jīng)常是根據(jù)業(yè)務(wù)的特點(diǎn)分成若干個業(yè)務(wù)窗口,每一個業(yè)務(wù)窗口都有特定的約束和需求。在實(shí)際使用時,可以為不同的業(yè)務(wù)窗口設(shè)計(jì)不同的外部模型,其模式稱為視圖(View)。例如,在例題1-1中的E-R圖中,為了查看學(xué)生的選課信息,可以定義一個學(xué)生選課視圖為:SC_View(sNo,sName,cNo,cName,Score)。1.3.5內(nèi)部模型(也稱物理模型)定義1-11表達(dá)數(shù)據(jù)庫物理結(jié)構(gòu)的模型,稱為內(nèi)部模型。它是數(shù)據(jù)庫最低層的抽象,它描述了數(shù)據(jù)在存儲器上的存儲方式(文件的結(jié)構(gòu)、空間的分配等)和存取方法(包括:主索引和輔助索引)。內(nèi)部模型是與計(jì)算機(jī)硬件和軟件密切相關(guān)聯(lián)的。因此,從事這個級別的設(shè)計(jì)人員,必須具備全面的計(jì)算機(jī)硬件和軟件知識。在計(jì)算機(jī)存儲器中,常用的數(shù)據(jù)描述術(shù)語有:1.3.5內(nèi)部模型(也稱物理模型)(1)位(bit,b)。一個二進(jìn)制位簡稱“位”,一個位只能取1或0兩種狀態(tài)。

(2)字節(jié)(byte,B)。8個二進(jìn)制位稱為一個字節(jié),字節(jié)是信息的基本單位。一個字節(jié)理論上可以表示28=256個不同的字符,但由于首位被保留用作校驗(yàn)位,因此一個字節(jié)可以表示27=128個字符,這就是常用的ASCII碼。

(3)字(Word)。數(shù)在計(jì)算機(jī)中的表示稱為機(jī)器數(shù),由于計(jì)算機(jī)存儲一個參與運(yùn)算的機(jī)器數(shù)所使用的電子器件的基本個數(shù)是固定的,通常把這種具有固定位數(shù)的二進(jìn)制串稱為字。字是由若干個字節(jié)組成的。一個字所含的二進(jìn)制位的位數(shù)稱為字長。字長是CPU一次能夠處理的二進(jìn)制數(shù)據(jù)的位數(shù),它決定了CPU內(nèi)的寄存器和總線的數(shù)據(jù)寬度。單位時間內(nèi)處理的數(shù)據(jù)越多,處理器的性能就越高。例如,常用的PC有16位、32位、64位、128位等。1.3.5內(nèi)部模型(也稱物理模型)(4)塊(Block)。也稱物理塊或物理記錄。塊是內(nèi)存和外存交換信息的最小單位,每塊的大小一般為210~214B。內(nèi)、外存信息交換是由操作系統(tǒng)的文件系統(tǒng)實(shí)現(xiàn)的。

(5)桶(Bucket)。外存的邏輯單位。一個桶可以包含一個物理塊或多個在空間上不一定連續(xù)的塊。1.4數(shù)據(jù)庫的體系結(jié)構(gòu):三層模式和兩級映像本章主要內(nèi)容:(1)四大基本概念:數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)(2)數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)(3)四種數(shù)據(jù)模型:概念模型、邏輯模型、外部模型、內(nèi)部模型(4)四種邏輯模型:網(wǎng)狀模型、層次模型、關(guān)系模型、對象模型(5)DBMS的四大控制功能:恢復(fù)、并發(fā)、完整性、安全性(6)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu):三層模式、二級映像1.4數(shù)據(jù)庫的體系結(jié)構(gòu):三層模式和兩級映像數(shù)據(jù)庫中的數(shù)據(jù)有“型”(Type)和“值”(Value)之分?!靶汀笔侵笖?shù)據(jù)的類型和結(jié)構(gòu)的說明,“值”是“型”的具體賦值。例如,學(xué)生信息可以定義為(學(xué)號,姓名,性別,年齡),在邏輯模型中,被稱為學(xué)生的型,而(18070101,張三,男,19)是某一學(xué)生的具體賦值,是一個實(shí)例。1.4.1數(shù)據(jù)庫模式的概念1.4.1數(shù)據(jù)庫模式的概念

定義1-12模式(Schema)是指DB中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的語義描述。它僅涉及“型”的描述,不涉及具體的取值。模式的當(dāng)前取值,稱為模式的一個實(shí)例(Instance)。在數(shù)據(jù)庫的描述中,模式相對穩(wěn)定,而數(shù)據(jù)庫中的數(shù)據(jù)不斷發(fā)生變化,故實(shí)例頻繁變動。模式反映數(shù)據(jù)庫的結(jié)構(gòu),實(shí)例反映數(shù)據(jù)庫某一時刻的狀態(tài)。1.4.2三層模式體系結(jié)構(gòu):邏輯模式、外模式、內(nèi)模式數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)有3個層次:外部模型、邏輯模型和內(nèi)部模型。這3個層次用DB的數(shù)據(jù)定義語言來定義,定義后的內(nèi)容,稱為“模式”,對應(yīng)為外模式、邏輯模式和內(nèi)模式。1.邏輯模式(schema)

定義1-13邏輯模式,簡稱模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它不僅定義了數(shù)據(jù)的邏輯結(jié)構(gòu),包括數(shù)據(jù)項(xiàng)的名字、類型、取值范圍,還要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的完整性、安全性等要求。1.4.2三層模式體系結(jié)構(gòu):邏輯模式、外模式、內(nèi)模式例如,根據(jù)例1-1的需求,寫出學(xué)生記錄類型的邏輯模式如表1-5所示。邏輯模式不涉及數(shù)據(jù)的存儲方式、訪問技術(shù)等細(xì)節(jié),也與具體的應(yīng)用程序、程序的開發(fā)工具無關(guān)。數(shù)據(jù)項(xiàng)中文含義類型長度約束缺省值sNo學(xué)號char8實(shí)體標(biāo)識符sName姓名varchar30不能為空Sex性別char1只能取值:M、FM-男Age年齡integer4取0到100之間的整數(shù)0dtBirthDate出生日期date81.4.2三層模式體系結(jié)構(gòu):邏輯模式、外模式、內(nèi)模式2.外模式(ExternalSchema)

定義1-14外部模式,也稱子模式,或用戶模式,是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是與某一應(yīng)用有關(guān)的數(shù)據(jù)邏輯表示。它是某個或某幾個用戶所看到的數(shù)據(jù)庫的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是邏輯模式的子集,每個用戶需要通過一個外模式來使用數(shù)據(jù)庫。由于不同的用戶對應(yīng)用程序的需求不同,則其對應(yīng)的外模式描述也不同。因此,一個數(shù)據(jù)庫可以有多個外模式。1.4.2三層模式體系結(jié)構(gòu):邏輯模式、外模式、內(nèi)模式2.外模式(ExternalSchema)外模式能極大保護(hù)數(shù)據(jù)庫的安全性。每個用戶只能看到和訪問所對應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中的其余數(shù)據(jù)是無法看到的。有了外模式后,程序員不用關(guān)心邏輯模式,只與外模式發(fā)生聯(lián)系,按照外模式的結(jié)構(gòu)存儲和操縱數(shù)據(jù)。1.4.2三層模式體系結(jié)構(gòu):邏輯模式、外模式、內(nèi)模式3.內(nèi)模式(InternalSchema)

定義1-15內(nèi)部模式,也稱存儲模式,或物理模式,是數(shù)據(jù)在存儲介質(zhì)上的物理結(jié)構(gòu)和存儲方式的描述。它定義了數(shù)據(jù)庫所有內(nèi)部記錄類型、索引和文件的組織方式以及數(shù)據(jù)控制方面的細(xì)節(jié)。例如,根據(jù)數(shù)據(jù)類型及其數(shù)據(jù)之間的聯(lián)系不同,不同的數(shù)據(jù),其存儲方式會不一樣,例如,一個表有多個文件,有數(shù)據(jù)文件、有索引文件,它們的存儲方式是不一樣的,有順序存儲、有散列存儲、或聚簇存儲等。一個數(shù)據(jù)庫有多個外模式,但只有一個邏輯模式、一個內(nèi)模式。邏輯模式對應(yīng)于概念級,外模式對應(yīng)于用戶級,內(nèi)模式對應(yīng)于物理級。1.4.3數(shù)據(jù)庫的兩級映像:外模式/模式映像、模式/內(nèi)模式映像由于三層模式的數(shù)據(jù)結(jié)構(gòu)可能不一樣,為了能夠在DBMS內(nèi)部實(shí)現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換,DBMS在這三層模式之間定義了兩級映像:外模式/模式映像、模式/內(nèi)模式映像。文件管理系統(tǒng)的主要缺陷之一就是用戶程序過分地依賴存儲的數(shù)據(jù)及數(shù)據(jù)的邏輯結(jié)構(gòu),當(dāng)數(shù)據(jù)的存儲方式或邏輯結(jié)構(gòu)發(fā)生變化時,程序不得不重新編寫,以保證原來用戶的要求。這種程序?qū)?shù)據(jù)依賴性的弊端在數(shù)據(jù)庫系統(tǒng)中獲得了極大的改進(jìn)。其根本原因就在于DBMS提供了這兩級映像功能。正是有了這兩級映像,才保證數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)具備了較高的數(shù)據(jù)邏輯獨(dú)立性和物理獨(dú)立性。1.4.3數(shù)據(jù)庫的兩級映像:外模式/模式映像、模式/內(nèi)模式映像

定義1-16三層模式之間存在著兩級映像:(1)外模式/模式映像存在于外模式和邏輯模式之間,用于定義外模式和邏輯模式之間的對應(yīng)性,它放在外模式中描述。

(2)模式/內(nèi)模式映像邏輯模式和內(nèi)模式之間,用于定義邏輯模式和內(nèi)模式之間的對應(yīng)性,它放在內(nèi)模式中描述。DB的三層模式和兩級映像結(jié)構(gòu),稱為“數(shù)據(jù)庫的體系結(jié)構(gòu)”,也稱“三層體系結(jié)構(gòu)”,或“數(shù)據(jù)抽象的三個級別”。如圖1-16所示。1.4.3數(shù)據(jù)庫的兩級映像:外模式/模式映像、模式/內(nèi)模式映像1.4.4高度的數(shù)據(jù)獨(dú)立性

定義1-17數(shù)據(jù)獨(dú)立性(DataIndependence)是指應(yīng)用程序和數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)之間相互獨(dú)立,不受影響。在修改數(shù)據(jù)結(jié)構(gòu)(邏輯結(jié)構(gòu)或物理結(jié)構(gòu))時,盡可能不修改應(yīng)用程序,則稱系統(tǒng)達(dá)到了數(shù)據(jù)獨(dú)立性目標(biāo)。數(shù)據(jù)獨(dú)立性分邏輯數(shù)據(jù)獨(dú)立性和物理數(shù)據(jù)獨(dú)立性兩個級別。(1)邏輯數(shù)據(jù)獨(dú)立性

如果邏輯模式要修改,例如,增加記錄類型、增加數(shù)據(jù)項(xiàng)、改變屬性的數(shù)據(jù)類型,只要對外模式/邏輯模式映像作相應(yīng)的修改,可以使外模式和應(yīng)用程序盡可能保持不變,這時,稱數(shù)據(jù)庫達(dá)到了邏輯數(shù)據(jù)獨(dú)立性,簡稱邏輯獨(dú)立性。1.4.4高度的數(shù)據(jù)獨(dú)立性(2)物理數(shù)據(jù)獨(dú)立性

如果物理模式要修改,例如,硬件發(fā)生了變化,數(shù)據(jù)庫的存儲結(jié)構(gòu)要發(fā)生改變,只要對模式/內(nèi)模式映像作相應(yīng)的修改,可以使邏輯模式可能保持不變,即內(nèi)模式的修改盡量不影響邏輯模式,當(dāng)然對外模式和應(yīng)用程序的影響更小,這時,稱數(shù)據(jù)庫達(dá)到了物理數(shù)據(jù)獨(dú)立性,簡稱物理獨(dú)立性。數(shù)據(jù)和應(yīng)用程序之間的獨(dú)立性,可使數(shù)據(jù)的定義和描述從應(yīng)用程序中分離出去。而且,由于數(shù)據(jù)的存取由DBMS管理,簡化了應(yīng)用程序的編制,極大減少了應(yīng)用程序的維護(hù)和修改成本。1.4.4高度的數(shù)據(jù)獨(dú)立性數(shù)據(jù)庫的三層模式結(jié)構(gòu)確實(shí)是一個理想的結(jié)構(gòu),但是,它也給系統(tǒng)增加了兩個額外的開銷。第一,要在系統(tǒng)中保存三層模式結(jié)構(gòu)、兩級映像的內(nèi)容,并進(jìn)行管理;第二,用戶與數(shù)據(jù)庫之間的數(shù)據(jù)傳輸要在三層體系結(jié)構(gòu)中來回轉(zhuǎn)換,增加了時間開銷。當(dāng)然,隨著計(jì)算機(jī)硬件性能的提高和操作系統(tǒng)的不斷完善,數(shù)據(jù)庫系統(tǒng)的性能會越來越好。在數(shù)據(jù)庫技術(shù)中,用戶是指使用數(shù)據(jù)庫的應(yīng)用程序或聯(lián)機(jī)終端用戶。編寫應(yīng)用程序的語言,稱為主語言或宿主語言(HostLanguage),例如,C、C++、C#、Java、Python等。1.5數(shù)據(jù)庫管理系統(tǒng)(DBMS)本章主要內(nèi)容:(1)四大基本概念:數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)(2)數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)(3)四種數(shù)據(jù)模型:概念模型、邏輯模型、外部模型、內(nèi)部模型(4)四種邏輯模型:網(wǎng)狀模型、層次模型、關(guān)系模型、對象模型(5)DBMS的四大控制功能:恢復(fù)、并發(fā)、完整性、安全性(6)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu):三層模式、二級映像1.5數(shù)據(jù)庫管理系統(tǒng)(DBMS)

DBMS是整個數(shù)據(jù)庫系統(tǒng)的核心,對DB的一切操作,包括DB的定義、數(shù)據(jù)的查詢、更新和各種控制,都是通過DBMS來完成的。1.5.1DBMS的工作模式1.5.1DBMS的工作模式概括起來,DBMS的工作模式如下5點(diǎn):

(1)接受應(yīng)用程序?qū)?shù)據(jù)庫的數(shù)據(jù)請求。

(2)對用戶的數(shù)據(jù)請求進(jìn)行解釋、編譯,并將編譯的結(jié)果給操作系統(tǒng)。

(3)OS按照接受的機(jī)器指令,對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)操作,并將結(jié)果返回給DBMS。

(4)DBMS對OS返回的結(jié)果進(jìn)行解釋、轉(zhuǎn)換。

(5)將轉(zhuǎn)換的結(jié)果返回應(yīng)用程序。用戶對數(shù)據(jù)庫的操作,是DBMS通過外部層、邏輯層、內(nèi)部層,最后通過OS操縱存儲器中的數(shù)據(jù),逐步完成的。同時,DBMS為應(yīng)用程序在內(nèi)存中開辟一個DB的系統(tǒng)緩沖區(qū),用于數(shù)據(jù)的傳輸和格式的轉(zhuǎn)換。三層結(jié)構(gòu)的定義則存放在DBMS的數(shù)據(jù)字典中。1.5.2DBMS的主要功能一般來說,DBMS主要包括以下四個方面的功能:

DBMS提供的數(shù)據(jù)描述語言DDL(DataDefinitionLanguage),用來定義數(shù)據(jù)庫結(jié)構(gòu)的三層模式(外模式、邏輯模式、內(nèi)模式)、兩級映像(外模式/模式、模式/內(nèi)模式)的內(nèi)涵,定義數(shù)據(jù)的完整性約束、安全性控制等。

1.數(shù)據(jù)庫的定義功能1.5.2DBMS的主要功能

DBMS提供的數(shù)據(jù)操縱語言DML(DataManipulationLanguage),用來實(shí)現(xiàn)對數(shù)據(jù)查詢(Select)和數(shù)據(jù)更新(插入Insert、修改Update、刪除Delete)兩類操作。

2.數(shù)據(jù)庫的操縱功能按照語言的級別,DML可分為過程性DML和非過程性DML兩種。(1)過程化DML(proceduralDML):是指用戶編程時,不僅需要指定獲取什么數(shù)據(jù),還要指定如何獲取這些數(shù)據(jù)。

(2)聲明式DML(declarativeDML):也稱非過程化DML,只要求用戶指定需要什么數(shù)據(jù),而不需要關(guān)心如何獲取這些數(shù)據(jù)。關(guān)系型DML屬于非過程化DML。一般聲明式DML比過程化DML易學(xué)易用。但是,由于用戶無需指定如何獲取數(shù)據(jù),這要求DBMS必須提供訪問數(shù)據(jù)的高效途徑。1.5.2DBMS的主要功能

3.數(shù)據(jù)庫的保護(hù)功能(也稱DB的四大控制功能)DBMS提供的數(shù)據(jù)控制語言DCL(DataControlLanguage),可以實(shí)現(xiàn)對數(shù)據(jù)庫的運(yùn)行控制,包括并發(fā)控制(即處理多個用戶同時使用某些數(shù)據(jù)時可能產(chǎn)生的問題)、安全性檢查、完整性約束條件的檢查和執(zhí)行、數(shù)據(jù)庫的故障恢復(fù)等。所有對數(shù)據(jù)庫的操作都要在DCL統(tǒng)一管理下運(yùn)行,以保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。1.5.2DBMS的主要功能4.數(shù)據(jù)庫的維護(hù)功能數(shù)據(jù)庫的結(jié)構(gòu)建立之后,就可以向數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的載入、轉(zhuǎn)儲(導(dǎo)入導(dǎo)出)、轉(zhuǎn)換等操作。這些功能通常由一些實(shí)用程序或管理工具來完成。1.6

數(shù)據(jù)庫系統(tǒng)(DBS)本章主要內(nèi)容:(1)四大基本概念:數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)(2)數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)(3)四種數(shù)據(jù)模型:概念模型、邏輯模型、外部模型、內(nèi)部模型(4)四種邏輯模型:網(wǎng)狀模型、層次模型、關(guān)系模型、對象模型(5)DBMS的四大控制功能:恢復(fù)、并發(fā)、完整性、安全性(6)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu):三層模式、二級映像1.6

數(shù)據(jù)庫系統(tǒng)(DBS)數(shù)據(jù)庫系統(tǒng)是指采用了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)。它由數(shù)據(jù)庫、計(jì)算機(jī)硬件、軟件和用戶四部分組成。1.6.1DBS的組成1.數(shù)據(jù)庫DBS里的數(shù)據(jù)庫,是指與應(yīng)用程序相關(guān)的全部數(shù)據(jù)的集合。它是整個DBS最寶貴的資源,具體包括兩部分,第一是數(shù)據(jù)庫中,各種數(shù)據(jù)結(jié)構(gòu)的描述,第二是應(yīng)用數(shù)據(jù)的集合,這是數(shù)據(jù)庫的主體。

2.計(jì)算機(jī)硬件1.6.1DBS的組成與數(shù)據(jù)庫技術(shù)相關(guān)的硬件包括:CPU、內(nèi)存、外存、輸出/輸入等設(shè)備。在DBS中,特別要關(guān)注存儲器的存取速度、存儲性能的穩(wěn)定性等指標(biāo),隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,還應(yīng)關(guān)注與互聯(lián)網(wǎng)的數(shù)據(jù)通信能力。1.6.1DBS的組成3.軟件

DBS中所包含的軟件主要有:DBMS、OS、各種宿主語言和應(yīng)用開發(fā)支撐軟件等程序。DBS的核心軟件是DBMS,目前任何一種DBMS都必須在某一個OS平臺的支持下才能運(yùn)行。常用的OS平臺主要有:Windows、Unix、Linux,常用的關(guān)系型DBMS主要有:Oracle、IBMDB2、Sybase、MSSQLServer、MySQL、PostgreSQL等。

一般DBMS都對外提供了與數(shù)據(jù)庫進(jìn)行交互的接口(Interface),宿主語言通過這些接口可以操作數(shù)據(jù)庫中的數(shù)據(jù)。1.6.1DBS的組成4.用戶

DBS中的用戶(user),主要有三類:(1)終端用戶

終端用戶是指數(shù)據(jù)庫應(yīng)用系統(tǒng)的使用人員,一般不是計(jì)算機(jī)專業(yè)人員。

(2)應(yīng)用程序員應(yīng)用程序員是根據(jù)用戶的需求負(fù)責(zé)設(shè)計(jì)和調(diào)試應(yīng)用程序的開發(fā)人員。他們懂得使用高級語言及數(shù)據(jù)庫相關(guān)的基礎(chǔ)知識。

(3)數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)在DBS中,數(shù)據(jù)庫的創(chuàng)建、使用和維護(hù)等工作只靠DBMS軟件是遠(yuǎn)遠(yuǎn)不夠的,需要有專門的人員來負(fù)責(zé),這類人員被稱為數(shù)據(jù)庫管理員。它是一種角色,可以是一個人,也可以是一組人,通常是由具有較高計(jì)算機(jī)技術(shù)水平和較好管理經(jīng)驗(yàn)的專業(yè)人員擔(dān)當(dāng)。1.6.1DBS的組成4.用戶DBA(DataBaseAdministrator)的主要職責(zé)包括:

1)定義數(shù)據(jù)庫的內(nèi)容;2)決定數(shù)據(jù)庫的存儲方式和存儲路徑;3)負(fù)責(zé)與用戶之間的聯(lián)絡(luò);4)定義安全性規(guī)則,及用戶訪問數(shù)據(jù)庫的授權(quán);5)定義完整性規(guī)則,監(jiān)督數(shù)據(jù)庫的日常運(yùn)行;6)負(fù)責(zé)數(shù)據(jù)庫的轉(zhuǎn)儲和故障后的恢復(fù)工作。1.6.2DBS體系結(jié)構(gòu)的類別從數(shù)據(jù)庫應(yīng)用管理系統(tǒng)的終端用戶角度看,DBS體系結(jié)構(gòu)可以分成:集中式、客戶端/服務(wù)器式、瀏覽器/服務(wù)器式和分布式四種。

1.集中式DBS所謂集中式DBS,是指整個數(shù)據(jù)系統(tǒng),包括DBMS、應(yīng)用軟件、數(shù)據(jù)等都安裝在一臺電腦上,由一個用戶獨(dú)立使用,不與其他電腦共享。

這種系統(tǒng)是數(shù)據(jù)庫的早期應(yīng)用,現(xiàn)在已經(jīng)很少見了。1.6.2DBS體系結(jié)構(gòu)的類別

2.客戶端/服務(wù)器式(Client/Server,簡稱C/S)隨著計(jì)算機(jī)網(wǎng)路技術(shù)的發(fā)展和PC電腦的廣泛應(yīng)用,C/S式的數(shù)據(jù)庫系統(tǒng)得到了應(yīng)用。其特點(diǎn)是:前端通過宿主語言編程,將一些功能放在客戶端電腦上執(zhí)行,另一些功能放在后臺服務(wù)器上數(shù)據(jù)庫端執(zhí)行。這樣可以減輕服務(wù)器端的負(fù)擔(dān)。前端應(yīng)用程序功能,包括:數(shù)據(jù)輸入、圖形界面、格式處理、報(bào)表輸出等。

后端功能包括:數(shù)據(jù)存取方法、查詢優(yōu)化、并發(fā)控制、恢復(fù)、數(shù)據(jù)訪問控制等。C/S結(jié)構(gòu)的主要缺點(diǎn)是:升級維護(hù)部方便,需要在每個客戶機(jī)上安裝客戶應(yīng)用程序。每當(dāng)應(yīng)用程序修改后,都要在所有的客戶機(jī)上,更新此應(yīng)用程序。1.6.2DBS體系結(jié)構(gòu)的類別

3.瀏覽器/服務(wù)器式(Browse/Server,簡稱B/S)

B/S結(jié)構(gòu)是為了解決C/S結(jié)構(gòu)的弊端而提出來的。在B/S結(jié)構(gòu)中,客戶端不需要安裝應(yīng)用程序軟件,只需要通過客戶端瀏覽器,以及中間業(yè)務(wù)邏輯層,訪問后臺數(shù)據(jù)庫。這種模式不受時間、地點(diǎn)的限制,升級維護(hù)也很方便。1.6.2DBS體系結(jié)構(gòu)的類別

4.分布式DBS(Distributed-DBS)利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),把分布在不同地點(diǎn)的數(shù)據(jù)庫系統(tǒng)聯(lián)系在一起。整個系統(tǒng)中的數(shù)據(jù),邏輯上是一個整體,但物理上卻分布在計(jì)算機(jī)網(wǎng)絡(luò)不同的結(jié)點(diǎn)上。網(wǎng)絡(luò)中的每個結(jié)點(diǎn),既可以處理本地?cái)?shù)據(jù)庫系統(tǒng)的數(shù)據(jù),執(zhí)行本地局部的應(yīng)用,又可以訪問多個異地結(jié)點(diǎn)數(shù)據(jù)庫中的數(shù)據(jù),執(zhí)行全局的應(yīng)用。第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)本章主要內(nèi)容:(1)關(guān)系模型的術(shù)語:元組、關(guān)系、屬性、關(guān)系模式、主鍵、外鍵(2)規(guī)范化的關(guān)系:關(guān)系的6條性質(zhì)(3)3類完整性規(guī)則:實(shí)體完整性、參照完整性、用戶定義的完整性(4)關(guān)系代數(shù)運(yùn)算:集合運(yùn)算、代數(shù)運(yùn)算(投影、選擇、連接)(5)關(guān)系代數(shù)表達(dá)式2.1

關(guān)系模型在機(jī)器世界建模中,描述數(shù)據(jù)的術(shù)語有記錄、文件、字段(或數(shù)據(jù)項(xiàng))、關(guān)鍵碼等,這些在關(guān)系模型中,也有對應(yīng)的術(shù)語。2.1.1基本術(shù)語定義2-1用二維表格表示實(shí)體集,用關(guān)鍵碼表示實(shí)體之間聯(lián)系的數(shù)據(jù)模型,稱為關(guān)系模型(RelationalModel)。對關(guān)系模型的語義描述,稱為關(guān)系模式(RelationalSchema)。通俗講,關(guān)系模式就是關(guān)系名及所含屬性的有序集合。例如,表2-1是一張學(xué)生信息登記表,它是一個二維表格,它對應(yīng)的關(guān)系模式為:2.1.1基本術(shù)語學(xué)生模式(sNo,sName,Sex,Age,dtBirthDate,ID)學(xué)號(sNo)姓名(sName)性別(Sex)年齡(Age)出生日期(dtBirthDate)身份證號(ID)18020101張三M202000-08-09360502…000118060206李明M192001-02-18360301…000219070101劉燕F182002-10-06360802…0003表2-1:在關(guān)系模型中,實(shí)體的字段(Field)稱為屬性,一列(Column)就是一個屬性;一行(Row)就是一條記錄(Record),也稱元組(Tuple),它表示一個具體的實(shí)體,元組的集合稱為關(guān)系(Relation)或?qū)嵗↖nstance)。記錄類型稱為關(guān)系模式。2.1.1基本術(shù)語學(xué)生關(guān)系={(18020101,張三,M,20,2000-08-09,36

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論