層次結構
從層次結構的角度來分析資料庫管理系統的結構。資料庫管理系統可以由外至內分為四層:套用層、語言翻譯處理層、數據存取層和數據存儲層(套用層是最外層,數據存儲層是最內層)。
以下介紹每一層的功能特點:
(1)套用層:是資料庫管理系統與終端用戶和應用程式的界面,負責處理各種資料庫套用,如使用結構化查詢語言SQL發出的事務請求或嵌入通用的程式設計語言的應用程式對資料庫的請求。
(2)語言處理層:由DDL編譯器、DML編譯器、DCL編譯器、查詢器等組成,負責完成對資料庫語言的各類語句進行詞法分析、語法分析和語義分析,生成可執行的代碼。此外,還負責進行授權檢驗、視圖轉換、完整性檢查、查詢最佳化等。
(3)數據存取層:將上層的集合操作轉換為對記錄的操作,包括掃描、排序、查找、插入、刪除、修改等,完成數據的存取、路徑的維護以及並發控制等任務。
(4)數據存儲層:由檔案管理器和緩衝區管理器組成,負責完成數據的頁面存儲和系統的緩衝區管理等任務,包括打開和關閉檔案、讀寫頁面、讀寫緩衝區、頁面淘汰、內外存交換以及外層管理等。
系統結構
從系統功能方面來分析資料庫管理系統的結構。一般來說,資料庫管理系統應該具備以下功能:數據定義,數據操縱,資料庫運行管理,數據組織、存儲和管理,資料庫的建立、維護和其他。而實現這些功能就需要相應的程式模組。以下分別介紹這些相應的程式模組:
(1)數據定義模組:包括DDL翻譯處理程式(包括外模式、模式、存儲模式處理程式)、保密定義處理程式(如授權定義處理程式)、完整性約束定義處理程式等。這些程式接收相應的定義,進行語法、語義檢查,把它們翻譯為內部格式存儲在數據字典中。DDL翻譯程式還根據模式定義負責建立資料庫的框架(即形成一個空庫),等待裝入數據。
(2)數據操縱模組:包括DML處理程式、終端查詢語言解釋程式、數據存取程式、數據更新程式等。DML處理程式或終端查詢語言解釋程式對用戶數據操縱請求進行語法、語義檢查,有數據存取或更新程式完成對資料庫的存取操作。
(3)資料庫運行管理模組:包括系統初啟程式,負責初始化DBMS,建立DBMS的系統緩衝區,系統工作區,打開數據字典等等。還有安全性控制,完整性檢查、並發控制、事務管理、運行日誌管理等程式模組,在資料庫運行過程中監視著對資料庫的所有操作,控制管理資料庫資源,處理多用戶的並發操作等。它們一方面保證用戶事務的正常運行及其原子性,一方面保證資料庫的安全性和完整性。
(4)數據組織、存儲和管理模組:包括檔案讀寫與維護程式、存取路徑(如索引)管理程式、緩衝區管理程式(包括緩衝區讀、寫、淘汰模組),這些程式負責維護資料庫的數據和存取路徑,提供有效的存取方法。
三級模式結構
1975年,美國國家標準協會/標準計畫和需求委員會(ANSI/SPARC)為資料庫管理系統建立了三級模式結構,即內模式、概念模式和外模式。
(1)外模式:又稱關係子模式或用戶模式,是資料庫用戶看見的局部數據的邏輯結構和特徵的描述,即應用程式所需要的那部分資料庫結構。外模式是應用程式與資料庫系統之間的接口,是保證資料庫安全性的一個有效措施。用戶可使用數據定義語言(DDL)和數據操縱語言(DML)來定義資料庫的結構和對資料庫進行操縱。對於用戶而言,只需要按照所定義的外模式進行操作,而無需了解概念模式和內模式等的內部細節。一個資料庫可以有多個外模式。
(2)概念模式:又稱模式/關係模式/邏輯模式,是資料庫整體邏輯結構的完整描述,包括概念記錄模型、記錄長度之間的聯繫、所允許的操作以及數據的完整性、安全性約束等數據控制方面的規定。概念模式位於資料庫系統模式結構的中間層,不涉及數據的物理存儲細節和硬體環境,與應用程式、開發工具及程式設計語言無關。一個資料庫只能有一個概念模式。
(3)內模式:又稱存儲模式,是資料庫內部數據存儲結構的描述。它定義了資料庫內部記錄類型、索引和檔案的組織方式以及數據控制方面的細節。一個資料庫只能有一個內模式。
外部體系結構
從資料庫最終用戶角度看,資料庫系統的結構分為集中式(單用戶結構、主從式結構)、分散式(客戶機/伺服器結構)和多層結構,這是資料庫系統外部的體系結構。
(1)單用戶套用結構:是運行在個人計算機上的結構模式,常稱為桌面(Desktop)DBMS。屬於單用戶DBMS的主要產品有:Microsoft Access、Paradox、Fox系列。單用戶的DBMS的功能在數據的一致性維護、完整性檢查及安全性管理上是不完善的。目前,桌面資料庫管理系統中比較好的有Access、Paradox等,它基本實現了DBMS應該具有的功能。
(2)主機/終端結構:是以大型主機為中心(Mainframe.Centric)的結構模式,也稱為分時共享(Time—Sharing)模式,它是面向終端的多用戶計算機系統(主從式結構)。該結構以一台主機為核心,將作業系統、應用程式、DBMS、資料庫等數據和資源均放在該主機上,所有的套用處理均由主機承擔,每個與主機相連線的終端都是作為主機的一種I/O設備。由於是集中式管理,主機的任何錯誤都有可能導致整個系統的癱瘓。因此,這種結構對系統的主機的性能要求比較高,維護費用也較高。
(3)客戶機/伺服器(Client—Server,C/S)結構:是隨著計算機網路的廣泛使用而出現的結構模式。該結構是將一個資料庫分解為客戶機(稱為前端,Front—End)、應用程式和伺服器(稱為後端,Back-End)三部分,通過網路連線應用程式和伺服器。由於C/S結構的本質是通過對服務功能的分布實現分工服務,因而又稱為分散式服務模式。人們將C/S稱為二層結構的資料庫套用模式。
(4)多層資料庫套用結構:將應用程式放在伺服器端執行,客戶機端安裝統一的前端運行環境——瀏覽器,在客戶機和伺服器之間增加一層用於轉換的伺服器,形成三層結構的資料庫套用模式,這就是Intemet/Intranet環境下資料庫的套用模式。三層結構是由二層(C/S)結構擴展而來的,這種三層結構也稱為瀏覽器/Web 伺服器/資料庫伺服器(B/W/S)結構。