資料庫管理系統

資料庫管理系統

資料庫管理系統(Database Management System)是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫,簡稱DBMS。它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。用戶通過DBMS訪問資料庫中的數據,資料庫管理員也通過dbms進行資料庫的維護工作。它可使多個應用程式和用戶用不同的方法在同時或不同時刻去建立,修改和詢問資料庫。大部分DBMS提供數據定義語言DDL(Data Definition Language)和數據操作語言DML(Data Manipulation Language),供用戶定義資料庫的模式結構與許可權約束,實現對數據的追加、刪除等操作。資料庫管理系統是資料庫系統的核心,是管理資料庫的軟體。資料庫管理系統就是實現把用戶意義下抽象的邏輯數據處理,轉換成為計算機中具體的物理數據處理的軟體。有了資料庫管理系統,用戶就可以在抽象意義下處理數據,而不必顧及這些數據在計算機中的布局和物理位置。

基本信息

組成

根據其功能和套用需求,資料庫管理系統通常由以下幾部分組成。

資料庫語言

資料庫語言是給用戶提供的語言,包括兩個子語言:數據定義子語言和數據操縱子語言。SQL語言就是一個集數據定義和數據操縱子語言為一體的典型資料庫語言。幾乎出現的關係資料庫系統產品都提供SQL語言作為標準資料庫語言。

(1)數據定義子語言(Data Definition Language,DLL)

數據定義語言包括資料庫模式定義和資料庫存儲結構與存取方法定義兩方面。資料庫模式定義處理程式接收用數據定義語言表示的資料庫外模式、模式、存儲模式及它們之間的映射的定義,通過各種模式翻譯程式負責將它們翻譯成相應的內部表示形式,存儲到資料庫系統中稱為數據字典的特殊檔案中,作為資料庫管理系統存取和管理數據的基本依據;而資料庫存儲結構和存取方法定義處理程式接收用數據定義語言表示的資料庫存儲結構和存取方法定義,在存儲設備上創建相關的資料庫檔案,建立起相應物理資料庫。

(2)數據操縱子語言(Data Manipulation Language,DML)

數據操縱語言用來表示用戶對資料庫的操作請求,是用戶與DBMS之間的接口。一般對資料庫的主要操作包括:查詢資料庫中的信息、向資料庫插入新的信息、從資料庫刪除信息以及修改資料庫中的某些信息等。數據操縱子語言通常又分為兩類:一類是嵌入主語言,由於這種語言本身不能獨立使用,故稱為宿主型的語言;另一類是互動式命令語言,由於這種語言本身能獨立使用,故又稱為自主型或自含型的語言。

例行程式

資料庫管理例行程式隨系統不同而各異,一般包括以下幾部分:

(1)語言翻譯處理程式

語言翻譯處理程式包括DLL翻譯程式、DML處理程式、終端查詢語言解釋程式和資料庫控制語言的翻譯程式等。

(2)系統運行控制程式

系統運行控制程式包括系統的初啟程式、檔案讀寫與維護程式、存取路徑管理程式、緩衝區管理程式、安全性控制程式、完整性檢查程式、並發控制程式事務管理、程式運行日誌管理程式和通信控制程式等。

(3)公用程式

公用程式包括定義公用程式和維護公用程式。定義公用程式包括信息格式定義、概念模式定義、外模式定義和保密定義公用程式等;維護公用程式包括數據裝入、資料庫更新、重組、重構、恢復、統計分析、工作日記轉儲和列印公用程式等。

組成部分

按功能劃分,資料庫管理系統大致可分為6個部分:

(1)模式翻譯:提供數據定義語言(ddl)。用它書寫的資料庫模式被翻譯為內部表示。資料庫的邏輯結構、完整性約束和物理儲存結構保存在內部的數據字典中。資料庫的各種數據操作(如查找、修改、插入和刪除等)和資料庫的維護管理都是以資料庫模式為依據的。

(2)應用程式的編譯:把包含著訪問資料庫語句的應用程式,編譯成在dbms支持下可運行的目標程式。

(3)互動式查詢:提供易使用的互動式查詢語言,如SQL.DBMS負責執行查詢命令,並將查詢結果顯示在螢幕上。

(4)數據的組織與存取:提供數據在外圍儲存設備上的物理組織與存取方法。

⑸事務運行管理:提供事務運行管理及運行日誌,事務運行的安全性監控和數據完整性檢查,事務的並發控制及系統恢復等功能。

(6)資料庫的維護:為資料庫管理員提供軟體支持,包括數據安全控制、完整性保障、資料庫備份、資料庫重組以及性能監控等維護工具。

層次結構

根據處理對象的不同,資料庫管理系統的層次結構由高級到低級依次為套用層、語言翻譯處理層、數據存取層、數據存儲層、作業系統。

套用層

套用層是DBMS與終端用戶和應用程式的界面層,處理的對象是各種各樣的資料庫套用。

語言翻譯處理層

語言翻譯處理層是對資料庫語言的各類語句進行語法分析、視圖轉換、授權檢查、完整性檢查等。

數據存取層

數據存取層處理的對象是單個元組,它將上層的集合操作轉換為單記錄操作。

數據存儲層

數據存儲層處理的對象是數據頁和系統緩衝區。

作業系統

作業系統是DBMS的基礎。作業系統提供的存取原語和基本的存取方法通常是作為和DBMS存儲層的接口。

常見品牌

達夢資料庫

SYBASE

DB2

ORACLE

MySQL

ACCESS

Visual Foxpro

MS SQL Server

Informix

PostgreSQL

選擇原則

選擇資料庫管理系統時應從以下幾個方面予以考慮:

(1) 構造資料庫的難易程度。

需要分析資料庫管理系統有沒有範式的要求,即是否必須按照系統所規定的數據模型分析現實世界,建立相應的模型;資料庫管理語句是否符合國際標準,符合國際標準則便於系統的維護、開發、移植;有沒有面向用戶的易用的開發工具;所支持的資料庫容量,資料庫的容量特性決定了資料庫管理系統的使用範圍。

(2) 程式開發的難易程度。

有無計算機輔助軟體工程工具CASE——計算機輔助軟體工程工具可以幫助開發者根據軟體工程的方法提供各開發階段的維護、編碼環境,便於複雜軟體的開發、維護。有無第四代語言的開發平台——第四代語言具有非過程語言的設計方法,用戶不需編寫複雜的過程性代碼,易學、易懂、易維護。有無面向對象的設計平台——面向對象的設計思想十分接近人類的邏輯思維方式,便於開發和維護。對多媒體數據類型的支持——多媒體數據需求是今後發展的趨勢,支持多媒體數據類型的資料庫管理系統必將減少應用程式的開發和維護工作。

(3)資料庫管理系統的性能分析。

包括性能評估(回響時間、數據單位時間吞吐量)、性能監控(內外存使用情況、系統輸入/輸出速率、SQL語句的執行,資料庫元組控制)、性能管理(參數設定與調整)。

(4) 對分散式套用的支持。

包括數據透明與網路透明程度。數據透明是指用戶在套用中不需指出數據在網路中的什麼節點上,資料庫管理系統可以自動搜尋網路,提取所需數據;網路透明是指用戶在套用中無需指出網路所採用的協定。資料庫管理系統自動將數據包轉換成相應的協定數據。

(5)並行處理能力。

支持多CPU模式的系統(SMP,CLUSTER,MPP),負載的分配形式,並行處理的顆粒度、範圍。

(6) 可移植性和可擴展性。

可移植性指垂直擴展和水平擴展能力。垂直擴展要求新平台能夠支持低版本的平台,資料庫客戶機/伺服器機制支持集中式管理模式,這樣保證用戶以前的投資和系統;水平擴展要求滿足硬體上的擴展,支持從單CPU模式轉換成多CPU並行機模式( SMP, CLUSTER, MPP)

(7)數據完整性約束。

數據完整性指數據的正確性和一致性保護,包括實體完整性、參照完整性、複雜的事務規則。

(8)並發控制功能。

對於分散式資料庫管理系統,並發控制功能是必不可少的。因為它面臨的是多任務分布環境,可能會有多個用戶點在同一時刻對同一數據進行讀或寫操作,為了保證數據的一致性,需要由資料庫管理系統的並發控制功能來完成。評價並發控制的標準應從下面幾方面加以考慮:

保證查詢結果一致性方法

數據鎖的顆粒度(數據鎖的控制範圍,表、頁、元組等)

數據鎖的升級管理功能

(9) 容錯能力。

異常情況下對數據的容錯處理。評價標準:硬體的容錯,有無磁碟鏡象處理功能軟體的容錯,有無軟體方法(10) 安全性控制

包括安全保密的程度(帳戶管理、用戶許可權、網路安全控制、數據約束)

(11) 支持多種文字處理能力

包括資料庫描述語言的多種文字處理能力(表名、域名、數據)和資料庫開發工具對多種文字的支持能力。

(12)數據恢復的能力

當突然停電、出現硬體故障、軟體失效、病毒或嚴重錯誤操作時,系統應提供恢複數據庫的功能,如定期轉存、恢復備份、回滾等,使系統有能力將資料庫恢復到損壞以前的狀態。

相關詞條

相關搜尋

熱門詞條