數據庫管理系統檢視原始碼討論檢視歷史
數據庫管理系統 | |
---|---|
數據庫管理系統,是一種操縱和管理數據庫的大型軟件,用於建立、使用和維護數據庫。用戶通過dbms訪問數據庫中的數據,數據庫管理員也通過dbms進行數據庫維護工作。它可使多個應用程序和用戶用不同的方法在同時或不同時刻去建立,修改和詢問數據庫。
主要組成
提供數據定義語言(ddl)。用它書寫的數據庫模式被翻譯為內部表示。數據庫的邏輯結構、完整性約束和物理儲
存結構保存在內部的數據字典中。數據庫的各種數據操作(如查找、修改、插入和刪除等)和數據庫的維護管理都是以數據庫模式為依據的。
應用程序的編譯
把包含着訪問數據庫語句的應用程序,編譯成在dbms支持下可運行的目標程序。
交互式查詢
提供易使用的交互式查詢語言,如sql。dbms負責執行查詢命令,並將查詢結果顯示在屏幕上。
數據的組織與存取
提供數據在外圍儲存設備上的物理組織與存取方法。
事務運行管理
提供事務運行管理及運行日誌,事務運行的安全性監控和數據完整性檢查,事務的並發控制及系統恢復等功能。
數據庫的維護
為數據庫管理員提供軟件支持,包括數據安全控制、完整性保障、數據庫備份、數據庫重組以及性能監控等維護工具。
主要功能
數據定義
DBMS提供數據定義語言DDL(Data Definition Language),供用戶定義數據庫的三級模式結構、兩級映像以及完整性約束和保密限制等約束。DDL主要用於建立、修改數據庫的庫結構。DDL所描述的庫結構僅僅給出了數據庫的框架,數據庫的框架信息被存放在數據字典(Data Dictionary)中。
數據操作
DBMS提供數據操作語言DML(Data Manipulation Language),供用戶實現對數據的追加、刪除、更新、查詢等操作。
摺疊數據庫的運行管理
數據庫的運行管理功能是DBMS的運行控制、管理功能,包括多用戶環境下的並發控制、安全性檢查和存取限制控制、完整性檢查和執行、運行日誌的組織管理、事務的管理和自動恢復,即保證事務的原子性。這些功能保證了數據庫系統的正常運行。[1] 數據組織、存儲與管理
DBMS要分類組織、存儲和管理各種數據,包括數據字典、用戶數據、存取路徑等,需確定以何種文件結構和存取方式在存儲級上組織這些數據,如何實現數據之間的聯繫。數據組織和存儲的基本目標是提高存儲空間利用率,選擇合適的存取方法提高存取效率。[2]
數據庫的保護
數據庫中的數據是信息社會的戰略資源,所以數據的保護至關重要。DBMS對數據庫的保護通過4個方面來實現:數據庫的恢復、數據庫的並發控制、數據庫的完整性控制、數據庫安全性控制。DBMS的其他保護功能還有系統緩衝區的管理以及數據存儲的某些自適應調節機制等。
數據庫的維護
這一部分包括數據庫的數據載入、轉換、轉儲、數據庫的重組合重構以及性能監控等功能,這些功能分別由各個使用程序來完成。
通信
DBMS具有與操作系統的聯機處理、分時系統及遠程作業輸入的相關接口,負責處理數據的傳送。對網絡環境下的數據庫系統,還應該包括DBMS與網絡中其他軟件系統的通信功能以及數據庫之間的互操作功能。
主要特點
(1)採用複雜的數據模型表示數據結構,數據冗餘小,易擴充,實現了數據共享。
(2)具有較高的數據和程序獨立性,數據庫的獨立性有物理獨立性和邏輯獨立性。
(3)數據庫系統為用戶提供了方便的用戶接口。
(4)數據庫系統提供4個方面的數據控制功能,分別是並發控制、恢復、完整性和安全性。數據庫中各個應用程序所使用的數據由數據庫系統統一規定,按照一定的數據模型組織和建立,由系統統一管理和集中控制。
(5)增加了系統的靈活性。
層次結構
根據處理對象的不同,數據庫管理系統的層次結構由高級到低級依次為應用層、語言翻譯處理層、數據存取層、數據存儲層、操作系統。
應用層
應用層是DBMS與終端用戶和應用程序的界面層,處理的對象是各種各樣的數據庫應用。
語言翻譯處理層
語言翻譯處理層是對數據庫語言的各類語句進行語法分析、視圖轉換、授權檢查、完整性檢查等。
數據存取層
數據存取層處理的對象是單個元組,它將上層的集合操作轉換為單記錄操作。
數據存儲層
數據存儲層處理的對象是數據頁和系統緩衝區。
操作系統
操作系統是DBMS的基礎。操作系統提供的存取原語和基本的存取方法通常是作為和DBMS存儲層的接口。
其他資料
選擇原則
(1)構造數據庫的難易程度
需要分析數據庫管理系統有沒有範式的要求,即是否必須按照系統所規定的數據模型分析現實世界,建立相應的模型;數據庫管理語句是否符合國際標準,符合國際標準則便於系統的維護、開發、移植;有沒有面向用戶的易用的開發工具;所支持的數據庫容量,數據庫的容量特性決定了數據庫管理系統的使用範圍。
(2)程序開發的難易程度
有無計算機輔助軟件工程工具CASE——計算機輔助軟件工程工具可以幫助開發者根據軟件工程的方法提供各開發階段的維護、編碼環境,便於複雜軟件的開發、維護。有無第四代語言的開發平台——第四代語言具有非過程語言的設計方法,用戶不需編寫複雜的過程性代碼,易學、易懂、易維護。
有無面向對象的設計平台——面向對象的設計思想十分接近人類的邏輯思維方式,便於開發和維護。對多媒體數據類型的支持——多媒體數據需求是今後發展的趨勢,支持多媒體數據類型的數據庫管理系統必將減少應用程序的開發和維護工作。
(3)數據庫管理系統的性能分析
包括性能評估(響應時間、數據單位時間吞吐量)、性能監控(內外存使用情況、系統輸入/輸出速率、SQL語句的執行,數據庫元組控制)、性能管理(參數設定與調整)。
(4)對分布式應用的支持
包括數據透明與網絡透明程度。數據透明是指用戶在應用中不需指出數據在網絡中的什麼節點上,數據庫管理系統可以自動搜索網絡,提取所需數據;網絡透明是指用戶在應用中無需指出網絡所採用的協議。數據庫管理系統自動將數據包轉換成相應的協議數據。
(5)並行處理能力
支持多CPU模式的系統(SMP,CLUSTER,MPP),負載的分配形式,並行處理的顆粒度、範圍。
(6)可移植性和可擴展性
可移植性指垂直擴展和水平擴展能力。垂直擴展要求新平台能夠支持低版本的平台,數據庫客戶機/服務器機制支持集中式管理模式,這樣保證用戶以前的投資和系統;水平擴展要求滿足硬件上的擴展,支持從單CPU模式轉換成多CPU並行機模式( SMP, CLUSTER, MPP)
(7)數據完整性約束
數據完整性指數據的正確性和一致性保護,包括實體完整性、參照完整性、複雜的事務規則。
(8)並發控制功能
對於分布式數據庫管理系統,並發控制功能是必不可少的。因為它面臨的是多任務分布環境,可能會有多個用戶點在同一時刻對同一數據進行讀或寫操作,為了保證數據的一致性,需要由數據庫管理系統的並發控制功能來完成。
(9)容錯能力
異常情況下對數據的容錯處理。評價標準:硬件的容錯,有無磁盤鏡象處理功能軟件的容錯,有無軟件方法。
(10)安全性控制
包括安全保密的程度(帳戶管理、用戶權限、網絡安全控制、數據約束)
(11)支持多種文字處理能力
包括數據庫描述語言的多種文字處理能力(表名、域名、數據)和數據庫開發工具對多種文字的支持能力。
(12) 數據恢復的能力
當突然停電、出現硬件故障、軟件失效、病毒或嚴重錯誤操作時,系統應提供恢複數據庫的功能,如定期轉存、恢復備份、回滾等,使系統有能力將數據庫恢復到損壞以前的狀態。
常見品牌
SYBASE、DB2、ORACLE、MySQL、ACCESS、VF、Foxpro、MS SQL Server、Informix、PostgreSQL。