




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本人錢雪忠,交流聯(lián)系Email:
qxzvb@163.com或
xzqian@
新學期好!關(guān)于本課程
對本課程的一點認識
第1章緒論
本章要點
本章從數(shù)據(jù)庫基本概念與知識出發(fā),依次介紹了數(shù)據(jù)庫系統(tǒng)的特點、數(shù)據(jù)模型的三要素及其常見數(shù)據(jù)模型、數(shù)據(jù)庫系統(tǒng)的內(nèi)部體系結(jié)構(gòu)等重要概念與知識。本章的另一重點是圍繞數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)介紹其功能、組成與操作,還介紹了數(shù)據(jù)庫技術(shù)的研究點及其發(fā)展變化情況。
本章目錄
1.1數(shù)據(jù)庫系統(tǒng)概述1.2數(shù)據(jù)模型1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.4數(shù)據(jù)庫系統(tǒng)的組成1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展*
1.6小結(jié)習題
1.1數(shù)據(jù)庫系統(tǒng)概述
1.1.1數(shù)據(jù),數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展1.1.3數(shù)據(jù)庫系統(tǒng)的特點
返回本章首頁1.1.1數(shù)據(jù),數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫系統(tǒng)返回本節(jié)首頁定義
數(shù)據(jù)是用來記錄信息的可識別的符號,是信息的具體表現(xiàn)形式。表現(xiàn)形式
數(shù)據(jù)是數(shù)據(jù)庫中存儲的基本對象。按廣義的理解來說,數(shù)據(jù)的種類有很多,如文字、圖像、音頻、視頻、語言等等都可以轉(zhuǎn)化為計算機可以識別的標識,可以以數(shù)字化后的二進制形式存入計算機。在日常生活中人們可以對事務(wù)直接用自然語言描述。在計算機中存儲和處理時,就要抽出對這些事物感興趣的特征組成一個記錄來描述,如學生(趙一,女,23,1982.05)。與信息的聯(lián)系
數(shù)據(jù)解釋的含義稱為數(shù)據(jù)的語義(即信息),數(shù)據(jù)與其語義是不可分的??梢赃@樣認為:數(shù)據(jù)是信息的符號表示或載體,信息則是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋。數(shù)據(jù)(Data)返回本節(jié)首頁數(shù)據(jù)庫(DataBase,簡稱DB)數(shù)據(jù)庫
從字面意思來說就是存放數(shù)據(jù)的倉庫。具體而言就是長期存放在計算機內(nèi)的有組織的可共享的數(shù)據(jù)集合,可供多用戶共享,數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有盡可能小的冗余度和較高的數(shù)據(jù)獨立性和易擴張性。數(shù)據(jù)庫具有兩個比較突出的特點①把在特定的環(huán)境中與某應(yīng)用程序相關(guān)的數(shù)據(jù)及其聯(lián)系集中在一塊并按照一定的結(jié)構(gòu)形式進行存儲,即集成性。②數(shù)據(jù)庫中的數(shù)據(jù)能被多個應(yīng)用程序的用戶所使用,即共享性。返回本節(jié)首頁數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)
數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心組成部分,是對數(shù)據(jù)進行管理的大型系統(tǒng)軟件,用戶在數(shù)據(jù)庫系統(tǒng)中的一些操作都是由數(shù)據(jù)庫管理系統(tǒng)來實現(xiàn)的。功能:數(shù)據(jù)定義
DBMS提供數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL),用戶通過它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象(包括表、視圖、索引、存儲過程等)進行定義。定義相關(guān)的數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)和有關(guān)的約束條件。數(shù)據(jù)操縱
DBMS提供數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML),通過DML操縱數(shù)據(jù)實現(xiàn)對數(shù)據(jù)庫的一些基本操作,如查詢,插入,刪除和修改等等。其中,國際標準數(shù)據(jù)庫操作語言——SQL語言就是DML的一種。
返回本節(jié)首頁數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)數(shù)據(jù)庫的運行管理這一功能是數(shù)據(jù)庫管理系統(tǒng)的核心所在。DBMS通過數(shù)據(jù)庫在建立、運用和維護時統(tǒng)一管理和控制,以保證數(shù)據(jù)安全、正確、有效的正常運行。DBMS主要通過數(shù)據(jù)的安全性控制、完整性控制、多用戶應(yīng)用環(huán)境的并發(fā)性控制和數(shù)據(jù)庫數(shù)據(jù)的系統(tǒng)備份與恢復四個方面來實現(xiàn)對數(shù)據(jù)庫的統(tǒng)一控制功能的。數(shù)據(jù)庫的建立和維護功能
數(shù)據(jù)庫的建立和維護功能包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能、數(shù)據(jù)庫的轉(zhuǎn)儲、恢復功能、重組織功能和性能監(jiān)視、分析功能等。
返回本節(jié)首頁數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)其它功能DBMS與網(wǎng)絡(luò)中其它軟件系統(tǒng)的通信;多個DBMS系統(tǒng)間的數(shù)據(jù)轉(zhuǎn)換;異構(gòu)數(shù)據(jù)庫之間的互訪和互操作;DBMS開發(fā)工具的支持功能;DBMSInternet網(wǎng)絡(luò)功能等。常用的數(shù)據(jù)庫管理系統(tǒng)有:Oracle、MSSQLServer、DB2、MySQL、PostgreSQL、Sybase、Informix、Ingres、ACCESS、VFP系列、KingbaseES、PBASE、EASYBASE、Openbase、Ipedo、Tamino等等。返回本節(jié)首頁數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡稱DBS)
數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,主要有數(shù)據(jù)庫(及相關(guān)硬件)、數(shù)據(jù)庫管理系統(tǒng)(及開發(fā)工具)(及相關(guān)軟件)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶這幾部分。其中,在數(shù)據(jù)庫的建立、使用和維護的過程要有專門的人員來完成,這些人被稱為數(shù)據(jù)庫管理員(DataBaseAdministrator,簡稱DBA)。常用開發(fā)工具有:Java語言、.NET平臺及語言如C#等、C語言、PHP、VC++等。數(shù)據(jù)庫系統(tǒng)可以用圖1.1表示。數(shù)據(jù)庫系統(tǒng)在整個計算機系統(tǒng)中的地位如圖1.2所示。返回本節(jié)首頁圖1.1數(shù)據(jù)庫系統(tǒng)返回本節(jié)首頁
圖1.2數(shù)據(jù)庫在計算機系統(tǒng)中的地位
返回本節(jié)首頁1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展
談數(shù)據(jù)管理技術(shù),先要講到數(shù)據(jù)處理,所謂數(shù)據(jù)處理是指對各種數(shù)據(jù)進行收集、存儲、加工和傳播的一系列活動的總和。數(shù)據(jù)管理則是數(shù)據(jù)處理的中心問題,為此,數(shù)據(jù)管理是指對數(shù)據(jù)進行分類、組織、編碼、存儲、檢索和維護的管理活動總稱。就用計算機來管理數(shù)據(jù)而言,數(shù)據(jù)管理是指數(shù)據(jù)在計算機內(nèi)的一系列活動的總和。數(shù)據(jù)管理技術(shù)已經(jīng)歷了人工管理、文件系統(tǒng)及數(shù)據(jù)庫系統(tǒng)三個發(fā)展階段。這三個階段的特點及其比較如表1.1所示。人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段返回本節(jié)首頁表1.1數(shù)據(jù)管理三個階段的比較人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段應(yīng)用背景科學計算科學計算、管理大規(guī)模管理背硬件背景無直接存取存儲設(shè)備磁盤、磁鼓大容量磁盤景軟件背景沒有操作系統(tǒng)有文件系統(tǒng)有數(shù)據(jù)庫管理系統(tǒng)處理方式批處理聯(lián)機實時處理、批處理聯(lián)機實時處理、分布處理、批處理數(shù)據(jù)的管理者用戶(程序員)文件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)面向的對象某一應(yīng)用程序某一應(yīng)用現(xiàn)實世界特數(shù)據(jù)的共享程度無共享,冗余度極大共享性差,冗余度大共享性高,冗余度小數(shù)據(jù)的獨立性不獨立,完全依賴于程序獨立性差具有高度的物理獨立性和一定的邏輯獨立性點數(shù)據(jù)的結(jié)構(gòu)化無結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu)、整體無結(jié)構(gòu)整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述數(shù)據(jù)控制能力應(yīng)用程序自己控制應(yīng)用程序自己控制由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復能力返回本節(jié)首頁
人工管理階段
20世紀50年代中期以前,計算機主要用于科學計算。硬件設(shè)施方面:外存只有紙帶、卡片、磁帶,沒有磁盤等直接存取設(shè)備;軟件方面:沒有操作系統(tǒng)和管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式是批處理。人工管理數(shù)據(jù)具有以下幾個特點:數(shù)據(jù)不保存應(yīng)用程序管理數(shù)據(jù)數(shù)據(jù)不共享
數(shù)據(jù)是面向應(yīng)用的,一組數(shù)據(jù)只能對應(yīng)一個程序。如果多個應(yīng)用程序涉及某些相同的數(shù)據(jù),則由于必須各自進行定義,無法進行數(shù)據(jù)的參照,因此程序間有大量的冗余數(shù)據(jù)。
數(shù)據(jù)不具有獨立性
數(shù)據(jù)的獨立性包括了數(shù)據(jù)的邏輯獨立性和數(shù)據(jù)的物理獨立性。當數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化時,必須對應(yīng)用程序做相應(yīng)的修改。在人工管理階段,程序與數(shù)據(jù)之間的對應(yīng)關(guān)系可用圖1.3表示。返回本節(jié)首頁圖1.3人工管理階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系返回本節(jié)首頁
文件系統(tǒng)階段
20世紀50年代后期到60年代中期,這時計算機已大量用于數(shù)據(jù)的管理。硬件方面:有了磁盤、磁鼓等直接存取存儲設(shè)備;軟件方面:操作系統(tǒng)中已經(jīng)有了專門的管理軟件,一般稱為文件系統(tǒng);處理方式有批處理、聯(lián)機實時處理。特點如下:數(shù)據(jù)長期保存文件系統(tǒng)管理數(shù)據(jù)數(shù)據(jù)共享性差,冗余度大數(shù)據(jù)獨立性差在文件系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系如圖1.4所示。返回本節(jié)首頁圖1.4文件系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系返回本節(jié)首頁數(shù)據(jù)庫系統(tǒng)階段
20世紀60年代后期以來,計算機用于管理的規(guī)模更為龐大,數(shù)據(jù)量急劇增長,硬件已有大容量磁盤,硬件價格下降;軟件則價格上升,使得編制、維護軟件及應(yīng)用程序成本相對增加;處理方式上,聯(lián)機實時處理要求更多,分布處理也在考慮之中。介于這種情況,文件系統(tǒng)的數(shù)據(jù)管理滿足不了應(yīng)用的需求,為解決共享數(shù)據(jù)的需求,隨之從文件系統(tǒng)中分離出了專門軟件系統(tǒng)——數(shù)據(jù)庫管理系統(tǒng),用來統(tǒng)一管理數(shù)據(jù)。數(shù)據(jù)庫系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系可用圖1.5表示。返回本節(jié)首頁圖1.5數(shù)據(jù)庫系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系返回本節(jié)首頁結(jié)論
綜上所述,如圖1.6所示,隨著數(shù)據(jù)管理技術(shù)的不斷發(fā)展,應(yīng)用程序不斷從底層的、低級的、物理的數(shù)據(jù)管理工作中解脫出來,能獨立的、較高邏輯級別地輕松處理數(shù)據(jù)庫數(shù)據(jù)。從而能極大地提高了應(yīng)用軟件的生產(chǎn)力。目前關(guān)系數(shù)據(jù)庫系統(tǒng)已逐漸淘汰了網(wǎng)狀數(shù)據(jù)庫和層次數(shù)據(jù)庫,成為當今最流行的商用數(shù)據(jù)庫系統(tǒng)。返回本節(jié)首頁圖1.6三個階段應(yīng)用程序與數(shù)據(jù)管理的工作任務(wù)劃分示意圖
1.1.3數(shù)據(jù)庫系統(tǒng)的特點
主要特點:數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)的共享性高,冗余度低,易擴充數(shù)據(jù)獨立性高數(shù)據(jù)由DBMS統(tǒng)一管理和控制結(jié)論返回本節(jié)首頁數(shù)據(jù)結(jié)構(gòu)化
數(shù)據(jù)結(jié)構(gòu)化是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的根本區(qū)別。在文件系統(tǒng)中,相互獨立的文件的記錄內(nèi)部是有結(jié)構(gòu)的。傳統(tǒng)文件的最簡單形式是等長同格式的記錄集合。例如:一個教師人事記錄文件。
每個記錄都有如圖1.7的記錄格式:圖1.7教師記錄格式示例圖1.8主記錄——詳細記錄格式示例圖1.9教師王名記錄示例返回本節(jié)首頁數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁圖1.7教師記錄格式示例圖1.8主記錄——詳細記錄格式示例圖1.9教師王名記錄示例數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁圖1.10教師數(shù)據(jù)組織這樣就可以節(jié)省許多存儲空間,靈活性也相對提高。但這樣建立的文件還有局限性,因為這種結(jié)構(gòu)上的靈活性只是針對一個應(yīng)用而言。而圖1.10教師數(shù)據(jù)組織,這種數(shù)據(jù)組織方式為各部分的管理提供了必要的記錄,使數(shù)據(jù)結(jié)構(gòu)化了。這就要求在描述數(shù)據(jù)時不僅要描述數(shù)據(jù)本身,還要描述數(shù)據(jù)之間的聯(lián)系。在文件系統(tǒng)中,盡管其記錄內(nèi)已經(jīng)有了某些結(jié)構(gòu),但記錄之間沒有聯(lián)系。數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)不再針對某一應(yīng)用,而是面向全組織,是整體結(jié)構(gòu)化的。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且存取數(shù)據(jù)的方式也是很靈活的,可以存取數(shù)據(jù)庫中的某一個數(shù)據(jù)項(或字段)、一組數(shù)據(jù)項、一個記錄或是一組記錄。而在文件系統(tǒng)中,數(shù)據(jù)的最小單位是記錄(一次一記錄的讀寫),粒度不能細到數(shù)據(jù)項。數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)整體結(jié)構(gòu)化是由數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型(見下節(jié))來描述而體現(xiàn)出來的。為此,數(shù)據(jù)庫的數(shù)據(jù)及其聯(lián)系是無需應(yīng)用程序自己來定義和解釋的,這是數(shù)據(jù)庫系統(tǒng)的重要優(yōu)點之一。數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁數(shù)據(jù)的共享性高,冗余度低,易擴充數(shù)據(jù)庫系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng),因此數(shù)據(jù)可以被多個用戶、多個應(yīng)用共享使用。數(shù)據(jù)共享可以大大的減少數(shù)據(jù)冗余,節(jié)約存儲空間。數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不相容性與不一致性。所謂數(shù)據(jù)的不一致性是指同一數(shù)據(jù)不同拷貝的值不一樣。采用人工管理或文件系統(tǒng)管理時,由于數(shù)據(jù)被重復存儲,當不同的應(yīng)用使用和修改不同的拷貝時就容易造成數(shù)據(jù)的不一致。在數(shù)據(jù)庫中數(shù)據(jù)共享,減少了由于數(shù)據(jù)冗余造成的不一致現(xiàn)象。返回本節(jié)首頁數(shù)據(jù)的共享性高,冗余度低,易擴充
由于數(shù)據(jù)面向整個系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)系統(tǒng)彈性大,易于擴充,可以適應(yīng)各種用戶的要求??梢匀≌w數(shù)據(jù)的各種子集用于不同的應(yīng)用系統(tǒng),當應(yīng)用需求改變或增加時,只要重新選取不同的子集或加上一部分數(shù)據(jù)便可以滿足新的需求。返回本節(jié)首頁
數(shù)據(jù)獨立性高
數(shù)據(jù)獨立性包括了數(shù)據(jù)的物理獨立性和數(shù)據(jù)的邏輯獨立性兩方面。物理獨立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的。也就是說,數(shù)據(jù)在磁盤上的數(shù)據(jù)庫中怎樣存儲是由DBMS管理的,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當數(shù)據(jù)的物理存儲改變時,應(yīng)用程序不用改變。邏輯獨立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的整體邏輯結(jié)構(gòu)是相互獨立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不需修改的。返回本節(jié)首頁
數(shù)據(jù)獨立性高
數(shù)據(jù)獨立性是由DBMS的三級模式結(jié)構(gòu)與二級映象功能來保證的,將在后面介紹。數(shù)據(jù)與程序的獨立,把數(shù)據(jù)的定義從程序中分離出去,加上數(shù)據(jù)的存取又由DBMS負責,從而簡化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護和修改。返回本節(jié)首頁數(shù)據(jù)由DBMS統(tǒng)一管理和控制數(shù)據(jù)庫是長期在計算機內(nèi)有組織的大量的可共享的數(shù)據(jù)集合
,數(shù)據(jù)庫的共享是并發(fā)的共享,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時存取數(shù)據(jù)庫中的同一塊數(shù)據(jù)。
DBMS提供以下幾方面的數(shù)據(jù)控制功能:(1)數(shù)據(jù)的安全性控制
(2)數(shù)據(jù)的完整性約束
(3)并發(fā)控制
(4)數(shù)據(jù)庫恢復
返回本節(jié)首頁結(jié)論目前,數(shù)據(jù)庫已經(jīng)成為現(xiàn)代信息系統(tǒng)的不可分離的重要組成部分。
數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序為中心轉(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段。這樣既便于數(shù)據(jù)的集中管理,又有利于應(yīng)用程序的研制和維護,提高了數(shù)據(jù)的利用率和相容性,提高了決策的可靠性。數(shù)據(jù)庫技術(shù)是計算機領(lǐng)域中發(fā)展最快的技術(shù)之一,數(shù)據(jù)庫技術(shù)的發(fā)展是沿著數(shù)據(jù)模型的主線展開的。返回本節(jié)首頁1.2數(shù)據(jù)模型
模型是現(xiàn)實世界特征的模擬和抽象。數(shù)據(jù)模型也是一種模型,它能實現(xiàn)對現(xiàn)實世界數(shù)據(jù)特征的抽象。數(shù)據(jù)模型應(yīng)滿足三方面的要求:比較真實地模擬現(xiàn)實世界;容易為人所理解;便于在計算機上實現(xiàn)。根據(jù)模型應(yīng)用的不同目的,分為兩類。第一類模型是概念模型,也稱信息模型。一般應(yīng)具有以下能力:(1)具有對現(xiàn)實世界的抽象與表達能力(2)完整、精確的語義表達力(3)易于理解和修改。(4)易于向DBMS所支持的數(shù)據(jù)模型轉(zhuǎn)換
返回本章首頁1.2數(shù)據(jù)模型
另一類模型是數(shù)據(jù)模型,包括層次模型、網(wǎng)狀模型、關(guān)系模型等,它是按計算機系統(tǒng)對數(shù)據(jù)建模,主要用于DBMS的實現(xiàn)。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ),各種機器上實現(xiàn)的DBMS軟件都是基于某種數(shù)據(jù)模型的。返回本章首頁為了把現(xiàn)實世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型,人們常常首先將現(xiàn)實世界抽象為信息世界,然后將信息世界轉(zhuǎn)換(或數(shù)據(jù)化)為機器世界。這一過程如圖1.11所示。圖1.11現(xiàn)實世界中客觀對象的抽象過程=======
1.2數(shù)據(jù)模型返回本章首頁1.2.1數(shù)據(jù)模型的組成要素數(shù)據(jù)模型描述了系統(tǒng)的三個方面:靜態(tài)特性、動態(tài)特性和完整性約束條件。一般由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成,是嚴格定義的一組概念的集合。返回本節(jié)首頁1.2.1數(shù)據(jù)模型的組成要素
一、數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述系統(tǒng)的靜態(tài)特性,是所研究的對象類型的集合。二、數(shù)據(jù)操作數(shù)據(jù)操作用于描述系統(tǒng)的動態(tài)特性,是指對數(shù)據(jù)庫中各種對象及對象的實例允許執(zhí)行的操作的集合。三、數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。數(shù)據(jù)模型應(yīng)該反映和規(guī)定本數(shù)據(jù)模型必須遵守的基本的通用的完整性約束條件。數(shù)據(jù)模型還應(yīng)該提供自定義完整性約束條件的機制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。返回本節(jié)首頁圖1.12數(shù)據(jù)模型的三要素示意圖
要說明的是圖1.12是簡單化、邏輯示意的圖,數(shù)據(jù)模型的三要素在數(shù)據(jù)庫中都是嚴格定義的一組概念的集合。在關(guān)系數(shù)據(jù)庫可以簡單理解為:數(shù)據(jù)結(jié)構(gòu)是表結(jié)構(gòu)定義及其它數(shù)據(jù)庫對象定義的命令集;數(shù)據(jù)操作是數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)操作(操作命令、語法規(guī)定、參數(shù)說明等)命令集;數(shù)據(jù)完整性約束是各關(guān)系表約束的定義及操作約束規(guī)則等的集合。1.2.2概念模型概念模型是現(xiàn)實世界到機器世界的一個中間層次。信息世界中的基本概念概念模型的表示層次模型概述返回本節(jié)首頁信息世界中的基本概念主要有:實體:實體是指客觀存在并可以相互區(qū)別的事物。屬性:屬性是指實體所具有的某一特性。碼:碼是指唯一標識實體的屬性集。域:域是指屬性的取值范圍,具有相同的數(shù)據(jù)類型的數(shù)據(jù)集合。實體型:具有相同屬性的實體必然具有共同的特征和性質(zhì)。實體集:實體集是指同型實體的集合。聯(lián)系:在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有關(guān)聯(lián)的。兩個實體型之間的聯(lián)系有以下三種:一對一聯(lián)系;一對多聯(lián)系;多對多聯(lián)系。兩個實體型之間的三類聯(lián)系可以用如圖1.13、1.14所示來表示。返回本節(jié)首頁圖1.13兩個實體型之間的三類聯(lián)系示意圖返回本節(jié)首頁圖1.14兩個實體型之間的三類聯(lián)系返回本節(jié)首頁
單個或多個實體型之間也有類似于兩個實體型之間的三種聯(lián)系類型。例如,對于教師、課程與參考書三個實體型,如果一門課程可以有若干個教師講授,使用若干本參考書,而每個教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書三者間的聯(lián)系是一對多的,如圖1.15(a)所示。要注意的是三個實體型之間多對多聯(lián)系與三個實體型兩兩之間的多對多聯(lián)系(共有三個)的語義及E-R圖是不同的。信息世界中的基本概念返回本節(jié)首頁圖1.15兩個實體型之間的三類聯(lián)系返回本節(jié)首頁
同一個實體型對應(yīng)的實體集內(nèi)的各實體之間也可以存在一對一、一對多、多對多的聯(lián)系的(可以把一個實體集邏輯上看成兩個與原來一樣的實體集來理解)。例如:同學實體集內(nèi)部同學與同學之間老朋友的關(guān)系可能是多對多的(如圖1.16所示),這是因為每位同學的老朋友往往有多位。信息世界中的基本概念返回本節(jié)首頁圖1.16一個實體型實體之間的多對多聯(lián)系返回本節(jié)首頁概念模型的表示最常用的是實體—聯(lián)系方法。該方法用E-R圖來描述現(xiàn)實世界的概念模型。E-R圖提供了表示實體型、屬性和聯(lián)系的方法。實體型:用矩形表示,矩形框內(nèi)寫明實體名。屬性:用橢圓表示,橢圓形內(nèi)寫明屬性名。并用無向邊將其與相應(yīng)的實體連接起來。聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1、1:n或m:n)。返回本節(jié)首頁如右圖1.17所示就是一個班級、學生的概念模型(用E-R圖表示),班級實體型與學生實體型之間很顯然是一對多關(guān)系。應(yīng)用時應(yīng)針對某實際情況,試著設(shè)計反映實際內(nèi)容的實體及實體聯(lián)系的E-R圖。概念模型的表示返回本節(jié)首頁E-R模型在數(shù)據(jù)庫概念設(shè)計過程中根據(jù)需要可進行變換,包括實體類型、聯(lián)系類型和屬性的分裂、合并和增刪等,以滿足概念模型的設(shè)計、優(yōu)化等的需要。E-R模型的變換
返回本節(jié)首頁垂直分裂,如圖1.18所示。E-R模型的變換
返回本節(jié)首頁圖1.18實體類型的垂直分裂聯(lián)系類型也可分裂。如教師與課程間的“擔任”教學任務(wù)的聯(lián)系,可分裂為“主講”和“輔導”兩個新的聯(lián)系類型,如圖1.19所示。E-R模型的變換
返回本節(jié)首頁圖1.19聯(lián)系類型的分裂1.2.3基本E-R模型的擴展*基本E-R(實體-聯(lián)系)模型是對現(xiàn)實世界的一種抽象,它的主要成份是實體、聯(lián)系和屬性,以實體、屬性和聯(lián)系三個抽象概念為基礎(chǔ)的E-R數(shù)據(jù)模型是基本E-R數(shù)據(jù)模型。但是在現(xiàn)實世界中還有一些特殊的語義,需要擴展E-R模型(ExtendedE-Rdatamodel,簡稱ERRdatamodel)的概念才能更好地模擬與抽象現(xiàn)實世界。返回本節(jié)首頁1、屬性的分類
2、聯(lián)系的再理解
3、實體的角色
4、依賴聯(lián)系與弱實體
5、特殊化和普遍化
6、聚集
7、范疇返回本節(jié)首頁1.2.3基本E-R模型的擴展*1、屬性的分類
擴展E-R圖中的屬性,有這幾種分類:簡單屬性與復合屬性、單值屬性與多值屬性、NULL屬性、派生屬性與基本屬性等。簡單屬性與復合屬性單值屬性與多值屬性NULL屬性派生屬性與基本屬性返回本節(jié)首頁1、屬性的分類——簡單屬性與復合屬性
返回本節(jié)首頁
在E-R模型中,屬性的取值范圍稱為域,屬性可以是單域的簡單屬性,即不可再分的屬性,如學號、年齡、性別;也可以是多域的組合屬性。復合屬性由簡單屬性和其他復合屬性組成。復合屬性中允許包含其他復合屬性,這意味著屬性可以是一個層次結(jié)構(gòu)。復合屬性可用一個樹形結(jié)構(gòu)表示,圖1.20表示通信地址這一屬性的層次結(jié)構(gòu)。圖1.20通信地址屬性返回本節(jié)首頁1、屬性的分類——單值屬性與多值屬性
返回本節(jié)首頁
在E-R模型中,屬性的取值可以是單值的(single-valued),是指同一實體的屬性只能取一個值;也可以是多值的(multi-valued),是指同一實體的某個屬性可能取多個值。例如某個學生的學號、姓名、性別、年齡等屬性上的取值是唯一的,它們是單值屬性;而學生的“聯(lián)系電話”應(yīng)該是多值屬性,因為如今一位學生往往有多個聯(lián)系電話的。多值屬性用雙橢圓形表示。如圖1.21為學生實體E-R圖。圖1.21含多值屬性的學生實體E-R圖返回本節(jié)首頁1、屬性的分類——NULL屬性
當某個屬性對某個實體不適用、屬性值未知或?qū)傩灾禃簳r未定時,也可用空缺符Null來表示。Null表示“無意義”或“不確定”。如通訊錄(姓名、email、電話、BP),若某人沒有email地址,則在email屬性上取值為Null。要注意的是作為碼的屬性,它的取值不能為Null的。返回本節(jié)首頁1、屬性的分類——派生屬性與基本屬性
返回本節(jié)首頁
可以從其他相關(guān)的屬性或?qū)嶓w派生出來的屬性稱為派生屬性,相反不能由其它屬性或?qū)嶓w派生出來的屬性為基本屬性或存儲屬性。如學生(學號、姓名、平均成績),選課(學號、課程號、成績),則平均成績可由學生所選課程的總成績除以課程總數(shù)來計算得到,則稱“平均成績”為派生屬性,而選課實體型中的“成績”為基本屬性。圖1.22含派生屬性的學生實體E-R圖返回本節(jié)首頁2、聯(lián)系的再理解
實體型間的聯(lián)系,具體來說是多個實體間的相互關(guān)聯(lián)。聯(lián)系集是同類聯(lián)系的集合。定義1-x聯(lián)系集是n(n≥1)個實體集上的數(shù)學關(guān)系,這些實體集不必互異。如果E1,E2,…,En為n個實體集,那么聯(lián)系集R是{(e1,e2,…,en)|e1∈E1,e2∈E2,…,en∈En}的一個子集,而(e1,e2,…,en)是一個聯(lián)系。關(guān)于聯(lián)系的內(nèi)容有聯(lián)系的元數(shù)、聯(lián)系的類型和聯(lián)系的實體參與度等三方面。返回本節(jié)首頁2、聯(lián)系的再理解——聯(lián)系的元數(shù)定義一個聯(lián)系涉及到的實體集個數(shù),稱為該聯(lián)系的元數(shù)或度數(shù)(Degree)。通常,同一個實體集內(nèi)部實體之間的聯(lián)系,稱為一元聯(lián)系,也稱為遞歸聯(lián)系;兩個不同實體集實體之間的聯(lián)系,稱為二元聯(lián)系;三個不同實體集實體之間的聯(lián)系,稱為三元聯(lián)系。以此類推。返回本節(jié)首頁2、聯(lián)系的再理解——聯(lián)系的類型定義聯(lián)系涉及到的實體集之間實體對應(yīng)的方式,稱為聯(lián)系的類型。這里“實體的對應(yīng)方式”是指實體集E1中一個實體與實體集E2中至多有一個還是多個實體有聯(lián)系,同時相反看實體集E2中一個實體與實體集E1中至多有一個還是多個實體有聯(lián)系(注意E1與E2可以是指相同的實體集)。二元聯(lián)系的類型有:一對一(1:1),一對多(1:N)或多對一(N:1),多對多(M:N)等三種。在E-R數(shù)據(jù)模型中,這種聯(lián)系類型還可推廣到多元聯(lián)系。如三元聯(lián)系可分為:M:N:P,1:N:P,1:1:P,1:1:1等種類。這種實體間聯(lián)系的約束也稱為基數(shù)比約束(cardinalityratioconstraint)。返回本節(jié)首頁2、聯(lián)系的再理解——聯(lián)系的實體參與度定義設(shè)二元聯(lián)系有兩個實體集E1和E2,E1中每個實體與E2中有聯(lián)系實體的數(shù)目的最小值min和最大值max,稱為E1實體的參與度,用(min,max)形式表示。返回本節(jié)首頁例如:學校里規(guī)定每學期學生至少選修3門課程,最多選修8門課程;每門課程至多有60人選修,最少可以沒人選修。這樣,學生實體的參與度是(3,8),課程實體的參與度是(0,60),如圖1.23所示。2、聯(lián)系的再理解——聯(lián)系的實體參與度返回本節(jié)首頁圖1.23聯(lián)系的類型及實體的參與度2、聯(lián)系的再理解——聯(lián)系的實體參與度在E-R圖表示時,如果無向邊為雙線,則表示該實體完全參與;如果無向邊畫為單線,則表示該實體部分參與。如圖1.24所示。實體參與聯(lián)系的方式也是重要的語義約束,稱為參與約束(participationconstraint)?;鶖?shù)比約束和參與約束構(gòu)成聯(lián)系的語義約束,有時合稱為結(jié)構(gòu)約束(structuralconstraint)。這些概念很容易推廣到多元聯(lián)系的(具體略),這樣對實體參與聯(lián)系的程度有定性與定量的概念了。返回本節(jié)首頁圖1.24部分參與與完全參與的表示返回本節(jié)首頁3、實體的角色
實體在聯(lián)系中的作用稱為實體的角色。當同一個實體集不止一次參與一個聯(lián)系集時,為區(qū)分各實體的參與聯(lián)系的方式,需要顯式指明其角色。如學生與學生間的班長關(guān)系,職工與職工之間的領(lǐng)導關(guān)系(如圖1.25),課程之間的先修關(guān)系等。當需要顯式區(qū)分角色時,在連接菱形和矩形的線上加上說明性標注以區(qū)別不同的角色。返回本節(jié)首頁圖1.25“職工”實體在“領(lǐng)導”聯(lián)系中的不同角色返回本節(jié)首頁4、依賴聯(lián)系與弱實體
(1)依賴聯(lián)系在現(xiàn)實世界中,有些實體對另一些實體有很強的依賴關(guān)系,即一個實體的存在必須以另一實體的存在為前提。比如,一個職工可能有多個社會關(guān)系,社會關(guān)系是多值屬性,為了消除冗余,設(shè)計兩個實體:職工與社會關(guān)系。在職工與社會關(guān)系中,社會關(guān)系的信息以職工信息的存在為前提,因此社會關(guān)系的存在以職工的存在為前提。這說明了職工與社會關(guān)系是一種依賴聯(lián)系。返回本節(jié)首頁4、依賴聯(lián)系與弱實體
(1)依賴聯(lián)系如果實體A的存在依賴于實體B的存在,則稱A依賴聯(lián)系于B,B稱作支配實體,A稱作從屬實體。如果B被刪除,則A也要被刪除。例如考慮分期付款的例子,對每一個“貸款”實體,有若干個“還款”實體與之關(guān)聯(lián),“還款”實體存在依賴于“貸款”實體。完全參與與依賴聯(lián)系的關(guān)系:設(shè)A與B間存在聯(lián)系R,若A的存在依賴于B,則A必然是完全參與聯(lián)系R。返回本節(jié)首頁4、依賴聯(lián)系與弱實體
(2)弱實體一個實體對于另一些實體具有很強的依賴聯(lián)系,而且該實體的主碼部分或全部從其父實體中獲得,稱該實體為弱實體(即從屬實體),另一實體稱為強實體(即支配實體)。如在人事管理系統(tǒng)中,職工子女的信息就是以職工的存在為前提的,子女實體是弱實體,職工實體是強實體,子女與職工的聯(lián)系是一種強依賴聯(lián)系。返回本節(jié)首頁4、依賴聯(lián)系與弱實體
在E-R圖中用雙線框的矩形表示弱實體,與弱實體聯(lián)系的聯(lián)系用雙線菱形框表示,從聯(lián)系集用雙線(全部參與)連接弱實體集,用箭頭(一對多聯(lián)系)指向強實體集。弱實體集的分辨符用下劃虛線標明。如圖1.26所示。返回本節(jié)首頁圖1.26弱實體的表示方法5、特殊化和普遍化
我們知道一個實體集是具有某些共性的實體的集合。這些實體一方面具有共性,另一方面還具有各自的特殊性。往往一個實體集可以按照某個特征區(qū)分為幾個實體集,例如學生這個實體集可以分為研究生、本科生、大專生等子集。如果需要的話,還可以把研究生這個實體集再分為博士生、碩士生等子集。這個從普遍到特殊的過程,叫做特殊化(specialization)。與特殊化相反的過程則叫普遍化,即把幾個具有某些共性的實體集概括成一個更普遍的實體集。例如,把研究生、本科生、大專生三個實體集概括為學生實體集,還可以把學生、教師、職工這些實體集概括為“人”這個實體集。從一般到特殊,從特殊到一般,本來就是人們認識世界常用的方法。因而在E-R數(shù)據(jù)模型中引入特殊化和普遍化這兩個概念,對模擬現(xiàn)實世界是有用的。返回本節(jié)首頁5、特殊化和普遍化
超實體集與子實體集間的多層繼承關(guān)系,能形成實體集間的層次結(jié)構(gòu)(Hierarchy)關(guān)系,子實體集一般只繼承一個超實體集。若子實體集參與繼承到多個超實體集,則形成所謂的格結(jié)構(gòu)(Lattice)。如在職進修生子實體集同時繼承超實體集教職工與超實體集學生的情況所示。因此,在數(shù)據(jù)模型中,引入子實體集,可以很方便地描述實體集中部分實體的特殊屬性和聯(lián)系。返回本節(jié)首頁5、特殊化和普遍化
特殊化和普遍化可用擴展的E-R圖表示,圖1.27是一個例子。
返回本節(jié)首頁圖1.27特殊化的應(yīng)用6、聚集
聯(lián)系之間存在重疊,如何表達聯(lián)系之間的聯(lián)系?在基本E-R數(shù)據(jù)模型中,只有實體才能參與聯(lián)系,不允許聯(lián)系參與聯(lián)系。在擴展E-R數(shù)據(jù)模型中,可以把聯(lián)系看成由參與組合而成的新的實體,其屬性為參與聯(lián)系的實體的屬性和聯(lián)系的屬性的并。這種新的實體稱為參與聯(lián)系的實體的聚集(aggregation)。有了聚集這個抽象概念,聯(lián)系也可以參與聯(lián)系。圖1.28是應(yīng)用聚集的例子。聚集是一種抽象,通過它聯(lián)系被作為高層實體集。例如設(shè)實體集A與實體集B有聯(lián)系R,則實體A、B以及聯(lián)系R整體可被看成是另一高層實體集C。提出與使用聚集的概念能帶來這些好處:能一定程度上來消除冗余;能將聯(lián)系作為抽象實體看待,增加了分析問題的新思路;這樣能允許聯(lián)系之間存在聯(lián)系,有了新的表達能力。返回本節(jié)首頁6、聚集
實例:職工參加項目,并在此過程中可能使用機器,則其E-R圖的設(shè)計有兩種方案可選,如圖1.28(聯(lián)系表為表1.2所示)、圖1.29(聯(lián)系表為表1.3、表1.4所示)所示,其中圖1.29是應(yīng)用聚集的一個例子。讀者可分析這兩種方案的利弊。返回本節(jié)首頁圖1.28三個實體間的聯(lián)系的E-R圖返回本節(jié)首頁圖1.29應(yīng)用聚集的E-R圖返回本節(jié)首頁7、范疇在模擬現(xiàn)實世界時,有時要用到由不同類型的實體組成的實體集,例如車主這個實體集的成員可能是單位,也可能是個人。這種由不同類型實體組成的實體集不同于前面所定義的實體集,為了區(qū)分起見,特名之為范疇(category)。設(shè)E1,E2,…En是n個不同類型的實體集,則范疇T課定義為:
T(E1∪E2∪…∪En)返回本節(jié)首頁7、范疇E1,E2,…En也稱為T的超實體集。圖1.30是應(yīng)用范疇一個例子,其中賬戶是個范疇,可以是單位,也可以是個人。用旁含“U”的圓圈的“ISA”三角形標記來表示并操作。范疇也繼承其超實體集的屬性,但與子實體集的繼承規(guī)則不一樣。子實體集繼承所有超實體集的屬性,例如圖1-27的在職進修生繼承教職工和學生的所有屬性。返回本節(jié)首頁7、范疇而范疇的繼承是有選擇性的,例如在圖1.30中,如果賬戶是單位,則繼承單位的屬性;如果賬戶是個人,則繼承人的屬性。這叫選擇性繼承。范疇與具有多超實體集的子實體集在形式上有些相似,但意義完全不同。范疇是超實體集并的子集,而子實體集是超實體集交的子集。例如,圖1.26中在職進修生既是教職工成員,又是學生的成員,而在圖1.30中,賬戶只是一個單位或者一個個人。返回本節(jié)首頁圖1.30應(yīng)用范疇的E-R圖返回本節(jié)首頁1.2.4層次模型返回本節(jié)首頁
在數(shù)據(jù)庫領(lǐng)域中,有四種最常用的數(shù)據(jù)模型,它們是:被稱為非關(guān)系模型的層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P?。本章簡要介紹層次模型、網(wǎng)狀模型、關(guān)系模型。層次模型的數(shù)據(jù)結(jié)構(gòu)多對多聯(lián)系在層次模型中的表示層次模型的數(shù)據(jù)操縱與約束條件層次模型的存儲結(jié)構(gòu)層次模型的優(yōu)缺點層次模型的數(shù)據(jù)結(jié)構(gòu)
在數(shù)據(jù)庫中,對滿足以下兩個條件的數(shù)據(jù)模型稱為層次模型。(1)有且僅有一個節(jié)點無雙親,這個節(jié)點稱為“根節(jié)點”。(2)其他節(jié)點有且僅有一個雙親。一個層次模型在理論上可以包含任意有限個記錄型和字段,但任何實際的系統(tǒng)都會因為存儲容量或?qū)崿F(xiàn)復雜度而限制層次模型中包含的記錄型個數(shù)和字段的個數(shù)。若用圖來表示,層次模型是一棵倒立的樹。節(jié)點層次(Level)從根開始定義,根為第一層,根的子女稱為第二層,根稱為其子女的雙親,同一雙親的子女稱為兄弟。返回本節(jié)首頁層次模型的數(shù)據(jù)結(jié)構(gòu)
圖1.31
給出了一個系的層次模型。層次模型對具有一對多的層次關(guān)系的描述非常自然、直觀、容易理解,這是層次數(shù)據(jù)庫的突出優(yōu)點。
圖1.32
是圖1.31的具體化,成為一個教師-學生層次數(shù)據(jù)庫。
圖1.33
是圖1.32數(shù)據(jù)模型的一個值。返回本節(jié)首頁圖1.31一個層次模型的示例
返回本節(jié)首頁
圖1.32教師-學生數(shù)據(jù)庫模型
返回本節(jié)首頁
圖1.33教師-學生數(shù)據(jù)庫的一個值返回本節(jié)首頁層次模型的存儲結(jié)構(gòu)
層次數(shù)據(jù)庫中不僅要存儲數(shù)據(jù)本身,還要存儲數(shù)據(jù)之間的層次聯(lián)系。方法:(1)鄰接法按照層次樹前序的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來體現(xiàn)層次順序。例如對于圖1.34(a)的數(shù)據(jù)庫,按鄰接法存放圖1.34(b)中以記錄A1為首的層次記錄實例集,則應(yīng)如圖1.35所示存放。返回本節(jié)首頁層次模型的存儲結(jié)構(gòu)
(2)鏈接法用指引元來反映數(shù)據(jù)之間的層次聯(lián)系。則如圖1.36所示,其中圖1.36(a)每個記錄設(shè)兩類指引元,分別指向最左邊的子女和最近的兄弟,這種鏈接方法稱為子女-兄弟鏈接法;圖1.36(b)按樹的前序順序鏈接各記錄值,這種鏈接方法稱為層次序列鏈接法。返回本節(jié)首頁圖1.34層次數(shù)據(jù)庫及其實例返回本節(jié)首頁圖1.35鄰接法返回本節(jié)首頁A1B1C1C2C3C4B2C5C6B3C7C8C9……圖1.36鏈接法返回本節(jié)首頁層次模型的優(yōu)缺點
優(yōu)點:
(1)層次模型本身比較簡單
(2)實體間聯(lián)系是固定的(3)良好的完整性支持
缺點
:
(1)層次模型表示非層次性的方法很笨拙
(2)對插入和刪除操作的限制太多
(3)查詢子女結(jié)點必須通過雙親結(jié)點,缺乏快速定位機制。
(4)由于結(jié)構(gòu)嚴密,層次命令趨于程序化。返回本節(jié)首頁1.2.5網(wǎng)狀模型
網(wǎng)狀數(shù)據(jù)模型的典型代表是DBTG系統(tǒng),也稱CODASYL系統(tǒng),它是20世紀70年代數(shù)據(jù)系統(tǒng)語言研究會CODASYL(ConferenceOnDataSystemsLanguage)下屬的數(shù)據(jù)庫任務(wù)組(DataBaseTaskGroup,簡稱DBTG)提出的一個系統(tǒng)方案。圖1.37給出了一個抽象的簡單的網(wǎng)狀模型。
返回本節(jié)首頁圖1.37簡單的網(wǎng)狀模型
返回本節(jié)首頁一、網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)
在數(shù)據(jù)庫中,把滿足以下兩個條件的基本層次聯(lián)系集合稱為網(wǎng)狀模型:(1)
允許一個以上的結(jié)點無雙親;(2)
一個結(jié)點可以有多于一個的雙親。它去掉了層次模型的兩個限制,此外它還許兩個結(jié)點之間有多種聯(lián)系。因此網(wǎng)狀模型可以更直接地去描述現(xiàn)實世界。以教師授課為例,看看網(wǎng)狀數(shù)據(jù)庫模式是怎樣組織數(shù)據(jù)的。
返回本節(jié)首頁按照常規(guī)語義,一個教師可以講授若干門課程,一門課程可以由多個教師講授,因此教師與課程之間是多對多聯(lián)系。這里引進一個教師授課的連結(jié)記錄,它由兩個數(shù)據(jù)項組成,即教師號、課程號,表示某個教師講授一門課程。圖1.38為教師授課數(shù)據(jù)庫的網(wǎng)狀數(shù)據(jù)庫模式。
一、網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)
返回本節(jié)首頁圖1.38為教師授課數(shù)據(jù)庫的網(wǎng)狀數(shù)據(jù)庫模式。
返回本節(jié)首頁二、網(wǎng)狀模型的數(shù)據(jù)操作與完整性約束
DBTG在模式DDL中提供了定義DBTG數(shù)據(jù)庫完整性的若干概念和語句,主要有:
(1)支持記錄碼的概念,碼即唯一標識記錄的數(shù)據(jù)項的集合。(2)保證一個聯(lián)系中雙親記錄和子女記錄之間是一對多的聯(lián)系。(3)可以支持雙親記錄和子女記錄之間某些約束條件。
返回本節(jié)首頁三、網(wǎng)狀模型的存儲結(jié)構(gòu)
常用的方法是鏈接法,包括單向鏈接、雙向鏈接、環(huán)狀鏈接、向首鏈接等,此外其他實現(xiàn)方法,如指引元陣列法、二進制陣列法、索引法等,依具體系統(tǒng)不同而不同。教師任課數(shù)據(jù)庫中,記錄之間的聯(lián)系用單向環(huán)狀鏈接法實現(xiàn),如圖1.39所示。返回本節(jié)首頁圖1.39教師/授課/課程的網(wǎng)狀數(shù)據(jù)庫實例
返回本節(jié)首頁四、網(wǎng)狀模型的優(yōu)缺點
優(yōu)點主要有:
(1)能夠更為直接地描述現(xiàn)實世界
(2)具有良好的性能,存取效率較高。缺點主要有:
(1)結(jié)構(gòu)比較復雜,而且隨著應(yīng)用環(huán)境的擴大,數(shù)據(jù)庫的結(jié)構(gòu)就變得越來越復雜
.(2)其DDL、DML語言復雜,用戶不容易使用。
返回本節(jié)首頁1.2.6關(guān)系模型
關(guān)系模型是目前最重要的一種模型。美國IBM公司的研究員E.F.Codd于1970年發(fā)表題為“大型共享系統(tǒng)的關(guān)系數(shù)據(jù)庫的關(guān)系模型”的論文,文中首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型。數(shù)據(jù)庫領(lǐng)域當前的研究工作都是以關(guān)系方法為基礎(chǔ)的。
數(shù)據(jù)模型的三個組成要素,主要體現(xiàn)如下:一、關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)二、關(guān)系模型的數(shù)據(jù)操縱與約束條件
三、關(guān)系模型的存儲結(jié)構(gòu)
返回本節(jié)首頁關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)
關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。每一行稱為一個元組,每一列稱為一個屬性(或字段)
通過圖1.40所示的教師登記表,介紹關(guān)系模型中的相關(guān)的術(shù)語關(guān)系:一個關(guān)系對應(yīng)一張二維表,圖1.40表示的就是一張教師登記表元組:二維表中的一行稱為一個元組屬性:二維表中的一列稱為一個屬性,對應(yīng)每一個屬性的名字稱為屬性名
主碼:二維表中的某個屬性或是屬性組可以唯一確定一個元組,則稱為主碼,也稱為關(guān)系鍵
返回本節(jié)首頁域:屬性的取值范圍稱為域
分量:元組中的一個屬性值
關(guān)系模式:表現(xiàn)為關(guān)系名和屬性集的集合,是對關(guān)系的具體描述。一般表示為:關(guān)系名(屬性1,屬性2,…,屬性N)關(guān)系模型要求關(guān)系必須是規(guī)范化的,即要求關(guān)系必須滿足一定規(guī)范條件,關(guān)系的每一個分量必須是一個不可分的數(shù)據(jù)項,不允許表中還有表.例如:圖1.41
中出產(chǎn)日期是可分的數(shù)據(jù)項,出產(chǎn)日期有可以分為年,月,日。因此,圖1.41的表就不符合關(guān)系模型要求。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)
返回本節(jié)首頁圖1.40關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及術(shù)語返回本節(jié)首頁圖1.41表中有表的示例返回本節(jié)首頁二、關(guān)系模型的數(shù)據(jù)操縱與約束條件
關(guān)系模型的操作主要包括查詢、插入、刪除和修改數(shù)據(jù)。這些操作必須滿足關(guān)系的完整性約束條件,即實體完整性、參照完整性和用戶定義完整性。
在非關(guān)系模型中,操作對象是單個記錄,而關(guān)系模型中的數(shù)據(jù)操作是集合操作,操作對象和操作結(jié)果都是關(guān)系,即若干元組的集合
.關(guān)系模型把對數(shù)據(jù)的存取路徑向用戶隱蔽起來,從而大大地提高了數(shù)據(jù)的獨立性。返回本節(jié)首頁
在關(guān)系數(shù)據(jù)模型中,實體及實體間的聯(lián)系都用表來表示。在數(shù)據(jù)庫的物理組織中,表以文件形式存儲,每一個表通常對應(yīng)一種文件結(jié)構(gòu),也有多個表對應(yīng)一種文件結(jié)構(gòu)。三、關(guān)系模型的存儲結(jié)構(gòu)返回本節(jié)首頁
關(guān)系模型優(yōu)點:(1)有較強的數(shù)學理論根據(jù)。(2)數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用。(3)關(guān)系模型的存取路徑對用戶透明,具有更高的數(shù)據(jù)獨立性、更好的安全保密性。關(guān)系模型具有查詢效率不如非關(guān)系模型效率高缺點。為了提高性能,必須對用戶的查詢進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的負擔。關(guān)系模型原來有查詢效率不如非關(guān)系模型效率高的缺點,但目前關(guān)系模型查詢效率已不差了。為了提高性能,DBMS會對用戶的查詢進行系統(tǒng)級優(yōu)化運行,這種優(yōu)化功能對開發(fā)數(shù)據(jù)庫管理系統(tǒng)提出了更高要求。四、關(guān)系模型的優(yōu)缺點
返回本節(jié)首頁1.2.7面向?qū)ο竽P?面向?qū)ο髷?shù)據(jù)模型(Object-Orienteddatamodel,簡稱O-Odatamodel)就是一種可擴展的數(shù)據(jù)模型。它又稱對象數(shù)據(jù)模型(Objectdatamodel),以面向?qū)ο髷?shù)據(jù)模型為基礎(chǔ)的DBMS稱為O-ODBMS或?qū)ο髷?shù)據(jù)庫管理系統(tǒng)(ODBMS)。面向?qū)ο髷?shù)據(jù)模型提出于20世紀70年代末,80年代初。它吸收了語義數(shù)據(jù)模型和知識表示模型的一些基本概念,同時又借鑒了面向?qū)ο蟪绦蛟O(shè)計語言和抽象數(shù)據(jù)類型的一些思想。面向?qū)ο髷?shù)據(jù)模型及其數(shù)據(jù)庫系統(tǒng)依然在不斷發(fā)展成熟中,其相關(guān)的概念與術(shù)語仍不統(tǒng)一。返回本節(jié)首頁1.2.7面向?qū)ο竽P?雖然關(guān)系模型比層次模型、網(wǎng)狀模型簡單靈活,但它還不能很好地表達現(xiàn)實世界中存在的許多復雜的數(shù)據(jù)結(jié)構(gòu),譬如CAD數(shù)據(jù)、圖形數(shù)據(jù)、嵌套遞歸的數(shù)據(jù)等,它們就需要如面向?qū)ο竽P瓦@樣的新模型來表達。面向?qū)ο竽P椭?,基本的概念是對象、類及其實例、類的層次結(jié)構(gòu)和繼承、對象的標識等。返回本節(jié)首頁1.2.7面向?qū)ο竽P?(1)對象(Object)對象是現(xiàn)實世界中實體的模型化,與記錄概念相仿,但遠比記錄復雜。每個對象有一個惟一的標識符,把狀態(tài)(State)和行為havior)封裝(Encapsulate)在一起。其中,對象的狀態(tài)是該對象屬性值的集合,對象的行為是在對象狀態(tài)上操作的方法集。返回本節(jié)首頁1.2.7面向?qū)ο竽P?(2)類(Class)和實例(Instance)一個數(shù)據(jù)庫一般包含大量的對象。如果每個對象都附有屬性和方法的定義說明,則會有大量的重復。為了解決這個問題,同時也為了概念上的清晰,常常把類似的對象歸并為類。類中每個對象稱為實例。同一類的對象具有共同的屬性和方法,這些屬性和方法可以在類中統(tǒng)一說明,而不必在類的每個實例中重復。消息傳送到對象后,可以在其所屬的類中找到相應(yīng)的方法和屬性說明。同一類中的對象的屬性雖然是一樣的,但這些屬性所取的值會因各個實例而各不同。因此,屬性又稱為實例變量。有些變量的值在全類中是共同的,這些變量稱為類變量。返回本節(jié)首頁1.2.7面向?qū)ο竽P?(3)類層次結(jié)構(gòu)和繼承類的子集也可以定義為類,稱為這個類的子類,而該類稱為子類的超類(superclass)。子類還可以再分為子類,如此可以形成一個層次結(jié)構(gòu)。圖2-35是一個類層次結(jié)構(gòu)的例子,一個子類可有多個超類,有直接的,也有間接地。一個對象既屬于它的類,也屬于它的所有超類。為了在概念上區(qū)分起見,在O-O數(shù)據(jù)模型中,對象與類之間的關(guān)系有時用不同的名詞。對象只能是它所屬類中最特殊化的那個子類的實例,但可以是它的所有超類的成員。返回本節(jié)首頁圖1.42類層次結(jié)構(gòu)返回本節(jié)首頁1.2.7面向?qū)ο竽P?(4)對象的標識在O-O數(shù)據(jù)模型中,每個對象都有一個在系統(tǒng)內(nèi)惟一的和不變的標識符,稱為對象標識符(ObjectIdentifier,簡稱OID)。OID一般由系統(tǒng)產(chǎn)生,用戶不得修改。兩個對象即使屬性值和方法都一樣,若OID不同,則仍被認為是兩個相等而不同的對象。面向?qū)ο髷?shù)據(jù)模型已經(jīng)用做O-ODBMS的數(shù)據(jù)模型。由于其語義豐富,表達比較自然,它也適合作為數(shù)據(jù)庫概念設(shè)計的數(shù)據(jù)模型(即概念模型)。隨著面向?qū)ο蟪绦蛟O(shè)計的廣發(fā)應(yīng)用和數(shù)據(jù)庫新應(yīng)用的不斷涌現(xiàn)。面向?qū)ο髷?shù)據(jù)模型可望在計算機科學技術(shù)領(lǐng)域中得到普遍的認可。返回本節(jié)首頁表1.5數(shù)據(jù)模型比較表返回本節(jié)首頁比較項層次模型網(wǎng)狀模型關(guān)系模型面向?qū)ο竽P蛣?chuàng)始1968年IBM公司的IMS系統(tǒng)1969年CODASYL的DBTG報告(1971年通過)1970年E.F.Codd提出關(guān)系模型20世紀80年代典型產(chǎn)品IMSIDS/Ⅱ,IMAGE/3000,IDMS等Oracle,Sybase,DB2,SQLServer等ONTOSDB盛行時期20世紀70年代20世紀70年代到80年代中期20世紀80年代至今20世紀90年代至今數(shù)據(jù)結(jié)構(gòu)復雜(樹形結(jié)構(gòu)),要加樹形限制復雜(有向圖結(jié)構(gòu)),結(jié)構(gòu)上無需嚴格限制簡單(二維表),無需嚴格限制復雜(嵌套,遞歸),無需嚴格限制數(shù)據(jù)聯(lián)系通過指針連接記錄型,聯(lián)系單一通過指針連接記錄型,聯(lián)系多樣,較復雜通過聯(lián)系表(含外碼),聯(lián)系多樣通過對象標識查詢語言過程式,一次一記錄。查詢方式單一(雙親到子女)過程式,一次一記錄。查詢方式多樣非過程式,一次一集合。查詢方式多樣面向?qū)ο笳Z言實現(xiàn)難易在計算機中實現(xiàn)較方便在計算機中實現(xiàn)較困難在計算機中實現(xiàn)較方便在計算機中實現(xiàn)有一定難度數(shù)學理論基礎(chǔ)樹(研究不規(guī)范,不透徹)無向圖(研究不規(guī)范,不透徹)關(guān)系理論(關(guān)系代數(shù)、關(guān)系演算),研究深入、透徹、連通有向圖(研究還不透徹)表1.6現(xiàn)實世界、信息世界、機器世界/關(guān)系數(shù)據(jù)庫間術(shù)語對照表現(xiàn)實世界信息世界機器世界/關(guān)系數(shù)據(jù)庫事物實體記錄/元組(或行)若干同類事物實體集記錄集(即文件)/元組集(即關(guān)系)若干特征刻畫的事物實體型記錄型/二維表框架(即關(guān)系模式)事物的特征屬性字段(或數(shù)據(jù)項)/屬性(或列)事物之間的關(guān)聯(lián)實體型(或?qū)嶓w)之間的聯(lián)系記錄型之間的聯(lián)系/聯(lián)系表(外碼)事物某特征的所有可能值域字段類型/域事物某特征的一個具體值一個屬性值字段值/分量可區(qū)分同類事物的特征或若干特征碼關(guān)鍵字段/關(guān)系鍵(或主碼)返回本節(jié)首頁1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)
可以有多種不同的層次或不同的角度來考查數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)。從數(shù)據(jù)庫管理系統(tǒng)內(nèi)部系統(tǒng)結(jié)構(gòu)看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu)。從數(shù)據(jù)庫外部的體系結(jié)構(gòu)看,數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)分為單用戶結(jié)構(gòu)、主從式結(jié)構(gòu)、集中式結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶/服務(wù)器、并行結(jié)構(gòu)、瀏覽器/應(yīng)用服務(wù)器/數(shù)據(jù)庫服務(wù)器多層結(jié)構(gòu)等。
1.3.1數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)
1.3.2數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨立性
1.3.3數(shù)據(jù)庫管理系統(tǒng)的工作過程
返回本章首頁數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)
這里,所謂“模式”是指對數(shù)據(jù)的邏輯或物理的結(jié)構(gòu)(包括數(shù)據(jù)及數(shù)據(jù)間的聯(lián)系)、數(shù)據(jù)特征、數(shù)據(jù)約束等的定義和描述,是對數(shù)據(jù)的一種抽象、一種表示。例如,關(guān)系模式是對關(guān)系的一種定義和描述,學生(學號,姓名,性別,年齡)是一個學生關(guān)系模式,而('200401','李立勇','男',20)是學生關(guān)系模式的一個值,稱為模式的實例。模式反映的是數(shù)據(jù)的本質(zhì)、核心或型的方面,模式是靜態(tài)的、穩(wěn)定的、相對不變的。數(shù)據(jù)的模式表示是人們對數(shù)據(jù)的一種把握與認識手段。數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是對模式型方面的結(jié)構(gòu)表示,而模式的實例是依附于三級模式結(jié)構(gòu)的,是動態(tài)不斷變化的。返回本節(jié)首頁數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)
數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是指外模式、模式和內(nèi)模式。如圖1.44
一、外模式(ExternalSchema)
外模式也稱子模式(SubSchema)或用戶模式,是三級模式的最外層,它是數(shù)據(jù)庫用戶能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。把普通用戶看到和使用的數(shù)據(jù)庫內(nèi)容稱為視圖。視圖集也稱為用戶級數(shù)據(jù)庫,它對應(yīng)于外模式。外模式通常是模式的子集。一個數(shù)據(jù)庫可以有多個外模式。同一外模式也可以為某一用戶的多個應(yīng)用系統(tǒng)所用,但一個應(yīng)用程序只能使用一個外模式。
返回本節(jié)首頁數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)
返回本節(jié)首頁圖1.44數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)二、模式(Schema)模式又稱概念模式,也稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖,是數(shù)據(jù)視圖的全部。它是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層。概念模式實際上是數(shù)據(jù)庫數(shù)據(jù)在邏輯級上的視圖。一個數(shù)據(jù)庫只有一個模式。定義模式時不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),而且要定義數(shù)據(jù)之間的聯(lián)系、定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)
返回本節(jié)首頁三、內(nèi)模式(InternalSchema)
內(nèi)模式也稱為存儲模式,一個數(shù)據(jù)庫只有一個內(nèi)模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。
數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)
返回本節(jié)首頁數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu)概念比較,請參見表1.7
比較
外模式
模式
內(nèi)模式
定義
也稱子模式或用戶模式,還稱用戶級模式
也稱邏輯模式,還稱概念級模式
也稱存儲模式,還稱物理級模式
是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述
是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它包括:數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)之間的聯(lián)系和與數(shù)據(jù)有關(guān)的安全性、完整性要求。
它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述。
特點1
是各個具體用戶所看到的數(shù)據(jù)視圖,是用戶與DB的接口。
是所有用戶的公共數(shù)據(jù)視圖。一般只有DBA能看到全部
數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。特點2
可以有多個外模式
只有一個模式
只有一個內(nèi)模式返回本節(jié)首頁數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu)概念比較,請參見表1.7比較
外模式
模式
內(nèi)模式
特點3
針對不同用戶,有不同的外模式描述。每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中其余數(shù)據(jù)是不可見的。所以外模式是保證數(shù)據(jù)庫安全性的一個有力措施。
數(shù)據(jù)庫模式以某一種數(shù)據(jù)模型(層狀、網(wǎng)狀、關(guān)系)為基礎(chǔ),統(tǒng)一綜合地考慮所有用戶的需求,并將這些需求有機地結(jié)合成一個邏輯整體。以前由DBA定義,現(xiàn)基本由DBMS定義。
特點4
面向應(yīng)用程序或最終用戶。由DBA定義與管理。
由DBA定義或由DBMS預先設(shè)置。
DDL
DBMS提供三種模式的描述語言(DDL)來嚴格定義三種模式。如:子模式DDL、模式DDL和內(nèi)模式DDL。子模式DDL和用戶選用的程序設(shè)計語言具有相容的語法。如:Cobol子模式DDL。關(guān)系數(shù)據(jù)庫三種模式的描述語言統(tǒng)一于SQL語言中。
返回本節(jié)首頁數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨立性
為了能夠在內(nèi)部實現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫管理系統(tǒng)在這三級模式之間提供了兩層映象:外模式/模式映象,模式/內(nèi)模式映象。
這兩層映象保證了數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。一、外模式/模式映象
模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng)都有一個外模式/模式映象,它定義了該外模式與模式之間的對應(yīng)關(guān)系。
當模式改變時,由數(shù)據(jù)庫管理員對各個外模式/模式映象作相應(yīng)改變,可以使外模式保持不變。
應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱為數(shù)據(jù)邏輯獨立性。
返回本節(jié)首頁二、模式/內(nèi)模式映象
數(shù)據(jù)庫中只有一個模式,也只有一個內(nèi)模式,所以模式/內(nèi)模式映象是唯一的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。當數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映象作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨立性,簡稱為數(shù)據(jù)物理獨立性。在數(shù)據(jù)庫的三級模式結(jié)構(gòu)中,數(shù)據(jù)庫模式即全局邏輯結(jié)構(gòu)是數(shù)據(jù)庫的中心與關(guān)鍵,它獨立于數(shù)據(jù)庫的其他層次。
數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨立性
返回本節(jié)首頁數(shù)據(jù)庫的內(nèi)模式依賴于它的全局邏輯結(jié)構(gòu),但獨立于數(shù)據(jù)庫的用戶視圖即外模式,也獨立于具體的存儲設(shè)備。數(shù)據(jù)庫的外模式面向具體的應(yīng)用程序,它定義在邏輯模式之上,但獨立于內(nèi)模式和存儲設(shè)備。數(shù)據(jù)庫的二級映象保證了數(shù)據(jù)庫外模式的穩(wěn)定性,從而根本上保證了應(yīng)用程序的穩(wěn)定性,使得數(shù)據(jù)庫系統(tǒng)具有較高的數(shù)據(jù)與程序的獨立性。數(shù)據(jù)庫的三級模式與二級映象使得數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去。
數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨立性
返回本節(jié)首頁1.3.3數(shù)據(jù)庫管理系統(tǒng)的工作過程
數(shù)據(jù)庫管理系統(tǒng)控制的數(shù)據(jù)操作過程基于數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)與二級映象功能,總體操作過程能從其讀或?qū)懸粋€用戶記錄的過程大體反映出來。下面就以應(yīng)用程序從數(shù)據(jù)庫中讀取一個用戶記錄的過程(如圖1.45所示)來說明。
按照步驟解釋運行過程如下:
(1)應(yīng)用程序A向DBMS發(fā)出從數(shù)據(jù)庫中讀用戶數(shù)據(jù)記錄的命令;(2)DBMS對該命令進行語法檢查、語義檢查,并調(diào)用應(yīng)用程序A對應(yīng)的子模式,檢查A的存取權(quán)限,決定是否執(zhí)行該命令。如果拒絕執(zhí)行,則轉(zhuǎn)(10)向用戶返回錯誤信息返回本節(jié)首頁1.3.3數(shù)據(jù)庫管理系統(tǒng)的工作過程
返回本節(jié)首頁圖1.45DBMS讀取用戶記錄的過程示意圖1.3.3數(shù)據(jù)庫管理系統(tǒng)的工作過程
(3)在決定執(zhí)行該命令后,DBMS調(diào)用模式,依據(jù)子模式/模式映象的定義,確定應(yīng)讀入模式中的哪些記錄;(4)DBMS調(diào)用內(nèi)模式,依據(jù)模式/內(nèi)模式映象的定義,決定應(yīng)從哪個文件、用什么存取方式、讀入哪個或哪些物理記錄;(5)DBMS向操作系統(tǒng)發(fā)出執(zhí)行讀取所需物理記錄的命令;返回本節(jié)首頁(6)操作系統(tǒng)執(zhí)行從物理文件中讀數(shù)據(jù)的有關(guān)操作;(7)操作系統(tǒng)將數(shù)據(jù)從數(shù)據(jù)庫的存儲區(qū)送至系統(tǒng)緩沖區(qū);(8)DBMS依據(jù)內(nèi)模式/模式(模式/內(nèi)模式映象的反方向看待,并不是另一種新映象,模式/子模式映象也是類似情況)、模式/子模式映象的定義,導出應(yīng)用程序A所要讀取的記錄格式;1.3.3數(shù)據(jù)庫管理系統(tǒng)的工作過程
返回本節(jié)首頁(9)DBMS將數(shù)據(jù)記錄從系統(tǒng)緩沖區(qū)傳送到應(yīng)用程序A的用戶工作區(qū);(10)DBMS向應(yīng)用程序A返回命令執(zhí)行情況的狀態(tài)信息。至此,DBMS就完成了一次讀用戶數(shù)據(jù)記錄的過程。DBMS向數(shù)據(jù)庫寫一個用戶數(shù)據(jù)記錄的過程經(jīng)歷的環(huán)節(jié)類似于讀,只是過程基本是相反而已。由DBMS控制的大量用戶數(shù)據(jù)的存取操作,可以理解為就是由許許多多這樣的讀或?qū)懙幕具^程組合完成的。
1.3.3數(shù)據(jù)庫管理系統(tǒng)的工作過程
返回本節(jié)首頁
1.4數(shù)據(jù)庫系統(tǒng)的組成
數(shù)據(jù)庫系統(tǒng)是指計算機系統(tǒng)中引入數(shù)據(jù)庫后的整個人機系統(tǒng)。為此,數(shù)據(jù)庫系統(tǒng)應(yīng)由計算機硬件、數(shù)據(jù)庫、計算機軟件及各類人員組成。一、硬件平臺
二、數(shù)據(jù)庫
數(shù)據(jù)庫是存放數(shù)據(jù)的地方,是存儲在計算機內(nèi)有組織的大量可共享的數(shù)據(jù)集合,具有盡可能少的冗余和較高的數(shù)據(jù)獨立性,有完整的自我保護能力和數(shù)據(jù)恢復能力。
返回本章首頁
1.4數(shù)據(jù)庫系統(tǒng)的組成
三、軟件數(shù)據(jù)庫系統(tǒng)的軟件主要包括:(1)支持DBMS運行的操作系統(tǒng);(2)DBMS:DBMS可以通過操作系統(tǒng)對數(shù)據(jù)庫的數(shù)據(jù)進行存取、管理和維護;(3)具有與數(shù)據(jù)庫接口的高級語言及其編譯系統(tǒng);(4)以DBMS為核心的應(yīng)用開發(fā)工具,為特定應(yīng)用環(huán)境開發(fā)的數(shù)據(jù)庫應(yīng)用系統(tǒng)。
返回本章首頁
四、用戶進行管理和維護數(shù)據(jù)庫系統(tǒng)的人員——數(shù)據(jù)庫管理員;具體職責包括:(1)決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu)(2)決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略(3)定義數(shù)據(jù)的安全性要求和完整性約束條件(4)監(jiān)控數(shù)據(jù)庫的使用和運行(5)數(shù)據(jù)庫的改進和重組重構(gòu)
1.4數(shù)據(jù)庫系統(tǒng)的組成
返回本章首頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)分析設(shè)計的人員——系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計人員;具體開發(fā)數(shù)據(jù)庫系統(tǒng)的人員——數(shù)據(jù)庫應(yīng)用程序員;使用數(shù)據(jù)庫系統(tǒng)的人員——最終用戶。
1.4數(shù)據(jù)庫系統(tǒng)的組成
返回本章首頁1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展*
1.5.1數(shù)據(jù)庫技術(shù)的研究領(lǐng)域數(shù)據(jù)庫技術(shù)的研究領(lǐng)域十分廣泛,概括地而言包括以下三方面:
1、DBMS系統(tǒng)軟件的研制
2、數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計與開發(fā)的研制
3、數(shù)據(jù)庫理論的研究
1.5.2數(shù)據(jù)庫技術(shù)的發(fā)展數(shù)據(jù)庫技術(shù)產(chǎn)生于20世紀60年代中期,由于其在商業(yè)領(lǐng)域的成功應(yīng)用,在20世紀80年代后,得到迅速推廣,新的應(yīng)用對數(shù)據(jù)庫技術(shù)在數(shù)據(jù)存儲和管理方面提出了更高的要求,從而進一步推動了數(shù)據(jù)庫技術(shù)的發(fā)展。返回本章首頁1、數(shù)據(jù)模型的發(fā)展和三代數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ),數(shù)據(jù)模型的發(fā)展帶動著數(shù)據(jù)庫系統(tǒng)不斷更新?lián)Q代。數(shù)據(jù)模型的發(fā)展可以分為三個階段:第一階段為格式化數(shù)據(jù)模型,包括層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型
第二階段為關(guān)系數(shù)據(jù)模型
第三階段則是以面向?qū)ο髷?shù)據(jù)模型為代表的非傳統(tǒng)數(shù)據(jù)模型
1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁據(jù)上述的數(shù)據(jù)模型三個發(fā)展階段,數(shù)據(jù)庫系統(tǒng)也可以相應(yīng)地劃分為三代:第一代數(shù)據(jù)庫系統(tǒng)為層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)
第二代數(shù)據(jù)庫系統(tǒng)為關(guān)系數(shù)據(jù)庫系統(tǒng)
新一代數(shù)據(jù)庫系統(tǒng)(即第三代)的發(fā)展呈現(xiàn)百花齊放的局面1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁2、數(shù)據(jù)庫技術(shù)與其他相關(guān)技術(shù)的結(jié)合
將數(shù)據(jù)庫技術(shù)與其他相關(guān)技術(shù)相結(jié)合,是當代數(shù)據(jù)庫技術(shù)發(fā)展的主要特征之一
(1)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與面向?qū)ο蠹夹g(shù)相結(jié)合的產(chǎn)物。1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁(2)分布式數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與計算機網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。(3)并行數(shù)據(jù)庫系統(tǒng)并行數(shù)據(jù)庫系統(tǒng)就是在并行計算機上運行的具有并行處理能力的數(shù)據(jù)庫系統(tǒng),它是數(shù)據(jù)庫技術(shù)與并行計算機技術(shù)相結(jié)合的產(chǎn)物。1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁(4)多媒體數(shù)據(jù)庫系統(tǒng)多媒體數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與多媒體技術(shù)相結(jié)合的產(chǎn)物。(5)主動數(shù)據(jù)庫系統(tǒng)主動數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與人工智能技術(shù)相結(jié)合的產(chǎn)物。
(6)模糊數(shù)據(jù)庫系統(tǒng)模糊數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與模糊技術(shù)相結(jié)合的產(chǎn)物。
1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁3、數(shù)據(jù)庫技術(shù)的新應(yīng)用數(shù)據(jù)庫技術(shù)在不同領(lǐng)域中的應(yīng)用,也導致了一些新型數(shù)據(jù)庫系統(tǒng)的出現(xiàn),這些應(yīng)用領(lǐng)域往往無法直接使用傳統(tǒng)數(shù)據(jù)庫系統(tǒng)來管理和處理其中的數(shù)據(jù)對象。(1)數(shù)據(jù)倉庫系統(tǒng)
(2)工程數(shù)據(jù)庫系統(tǒng)
1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展*
1.5.3數(shù)據(jù)庫行業(yè)發(fā)展趨勢目前,數(shù)據(jù)庫行業(yè)出現(xiàn)了互為補充的三大陣營:OldSQL數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫和NewSQL數(shù)據(jù)庫。(1)OldSQL數(shù)據(jù)庫,即傳統(tǒng)關(guān)系數(shù)據(jù)庫,可擴展性差,支持事務(wù)處理為主;OldSQL主要為Oracle、IBM、Microsoft等國外數(shù)據(jù)庫廠商所壟斷,達夢、金倉等國產(chǎn)廠商仍處于追趕狀態(tài)。返回本章首頁1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域及其發(fā)展*
1.5.3數(shù)據(jù)庫行業(yè)發(fā)展趨勢(2)NoSQL數(shù)據(jù)庫,旨在滿足分布式體系結(jié)構(gòu)的可擴展性需求和(或)無模式數(shù)據(jù)管理需求;NoSQL數(shù)據(jù)庫系統(tǒng)有:基于Hadoop架構(gòu)的Apache的HBase、Google的Bigtable、Amazon的Dynamo、Facebook的Cass
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工績效考核體系搭建與實施手冊激勵員工發(fā)展
- 山東省青島市2025-2026屆高三上學期8月調(diào)研檢測地理試題(解析版)
- 遼寧省凌源市2024-2025學年高一上學期第一次月考地理試題(解析版)
- 江西省新九校協(xié)作體2024-2025學年高二下學期第二次聯(lián)考地理試題(解析版)
- 2025年蕪湖市國有資本投資運營有限公司校園招聘2人模擬試卷及答案詳解(考點梳理)
- 2025廣西廣西民族大學招聘1人(國際合作與交流處外事科工作人員)考前自測高頻考點模擬試題附答案詳解(模擬題)
- 2025遼寧鞍山市事業(yè)單位招聘大學生退役士兵50人考前自測高頻考點模擬試題附答案詳解(模擬題)
- 2025黑龍江齊齊哈爾市尚志市招聘警務(wù)輔助人員60人考前自測高頻考點模擬試題及答案詳解(典優(yōu))
- 社會責任與企業(yè)信譽承諾書(6篇)
- 房屋提前解除租賃合同7篇
- DL-T 2594-2023 電力企業(yè)標準化工作 評價與改進
- 《血管活性藥物靜脈輸注護理》標準解讀
- 一道美麗的風景作文500字
- 個人簡歷模板表格式
- 現(xiàn)網(wǎng)終端問題分析報告
- 第十五章巷道與井筒施工測量
- GB/T 13384-2008機電產(chǎn)品包裝通用技術(shù)條件
- FZ/T 07019-2021針織印染面料單位產(chǎn)品能源消耗限額
- 《計算機輔助翻譯》課程教學大綱
- 電廠化學運行規(guī)程
- 新版香港朗文1A-6B全部單詞匯總
評論
0/150
提交評論