資料庫管理系統
出自 MBA智库百科(https://wiki.mbalib.com/)
資料庫管理系統(Database Management System,DBMS),有時也被稱為資料庫管理器(Database Manager)
目錄 |
資料庫管理系統(Database Management System,DBMS)是一種操縱和管理資料庫的大型軟體,是用於建立、使用和維護資料庫。它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。用戶通過dbms訪問資料庫中的數據,資料庫管理員也通過dbms進行資料庫的維護工作。它提供多種功能,可使多個應用程式和用戶用不同的方法在同時或不同時刻去建立,修改和詢問資料庫。它使用戶能方便地定義和操縱數據,維護數據的安全性和完整性,以及進行多用戶下的併發控制和恢複數據庫。
按功能劃分,資料庫管理系統大致可分為6個部分:
(1)模式翻譯:提供數據定義語言(ddl)。用它書寫的資料庫模式被翻譯為內部表示。資料庫的邏輯結構、完整性約束和物理儲存結構保存在內部的數據字典中。資料庫的各種數據操作(如查找、修改、插入和刪除等)和資料庫的維護管理都是以資料庫模式為依據的。
(2)應用程式的編譯:把包含著訪問資料庫語句的應用程式,編譯成在dbms支持下可運行的目標程式。
(3)互動式查詢:提供易使用的互動式查詢語言,如sql。dbms負責執行查詢命令,並將查詢結果顯示在屏幕上。
(4)數據的組織與存取:提供數據在外圍儲存設備上的物理組織與存取方法。
⑸事務運行管理:提供事務運行管理及運行日誌,事務運行的安全性監控和數據完整性檢查,事務的併發控制及系統恢復等功能。
(6)資料庫的維護:為資料庫管理員提供軟體支持,包括數據安全控制、完整性保障、資料庫備份、資料庫重組以及性能監控等維護工具。
基於關係模型的資料庫管理系統已日臻完善,並已作為商品化軟體廣泛應用於各行各業。它在各戶伺服器結構的分散式多用戶環境中的應用,使資料庫系統的應用進一步擴展。隨著新型數據模型及數據管理的實現技術的推進,可以預期dbms軟體的性能還將更新和完善,應用領域也將進一步地拓寬。
它所提供的功能有以下幾項:
(1)數據定義功能。DBMS提供相應數據語言來定義(DDL)資料庫結構,它們是刻畫資料庫框架,並被保存在數據字典中。
(2)數據存取功能。DBMS提供數據操縱語言(DML),實現對資料庫數據的基本存取操作:檢索,插入,修改和刪除。
(3)資料庫運行管理功能。DBMS提供數據控制功能,即是數據的安全性、完整性和併發控制等對資料庫運行進行有效地控制和管理,以確保數據正確有效。
(4)資料庫的建立和維護功能。包括資料庫初始數據的裝入,資料庫的轉儲、恢復、重組織,系統性能監視、分析等功能。
(5)資料庫的傳輸。DBMS提供處理數據的傳輸,實現用戶程式與DBMS之間的通信,通常與操作系統協調完成。
根據處理對象的不同,資料庫管理系統的層次結構由高級到低級依次為應用層、語言翻譯處理層、數據存取層、數據存儲層、操作系統。
(1)應用層。應用層是DBMS與終端用戶和應用程式的界面層,處理的對象是各種各樣的資料庫應用。
(2)語言翻譯處理層。語言翻譯處理層是對資料庫語言的各類語句進行語法分析、視圖轉換、授權檢查、完整性檢查等。
(3)數據存取層。數據存取層處理的對象是單個元組,它將上層的集合操作轉換為單記錄操作。
(4)數據存儲層。數據存儲層處理的對象是數據頁和系統緩衝區。
(5)操作系統。操作系統是DBMS的基礎。操作系統提供的存取原語和基本的存取方法通常是作為和DBMS存儲層的介面。
數據管理技術的發展大致經歷了人工管理階段(20世紀50年代中期前)、文件系統階段(20世紀50年代後期到60年代中期)、資料庫階段(20世紀60年代末到70年代末)和高級資料庫技術階段(20世紀80年代初開始)。
資料庫是長期存儲在電腦內的、有組織的、可共用的數據的集合。
資料庫管理系統(DBMS)是一種負責資料庫的定義、建立、操作、管理和維護的軟體系統。其目的是保證數據安全可靠,提高資料庫應用的簡明性和方便性。DBMS的工作機理是把用戶對數據的操作轉化為對系統存儲文件的操作,有效地實現資料庫3級之間的轉化。資料庫管理系統的主要職能有資料庫的定義和建立、資料庫的操作、資料庫的控制、資料庫的維護、故障恢復和數據通信。
資料庫系統(DBS)是實現有組織地、動態地存儲大量關聯數據方便多用戶訪問的電腦軟體、硬體和數據資源組成的系統。一個典型的資料庫系統包括資料庫、硬體、軟體(應用程式)和資料庫管理員(DBA)4個部分。根據電腦的系統結構,DBS可分成集中式、客戶/伺服器式、並行式和分散式4種。
(1)採用複雜的數據模型表示數據結構,數據冗餘小,易擴充,實現了數據共用。
(2)具有較高的數據和程式獨立性,資料庫的獨立性有物理獨立性和邏輯獨立性。
(3)資料庫系統為用戶提供了方便的用戶介面。
(4)資料庫系統提供4個方面的數據控制功能,分別是併發控制、恢復、完整性和安全性。資料庫中各個應用程式所使用的數據由資料庫系統統一規定,按照一定的數據模型組織和建立,由系統統一管理和集中控制。
(5)增加了系統的靈活性。
高級資料庫技術階段的主要標誌是分散式資料庫系統和麵向對象資料庫系統的出現。
集中式系統的弱點是隨著數據量的增加,系統相當龐大、操作複雜、開銷大,而且因為數據集中存儲,大量的通信都要通過主機,造成擁擠。分散式資料庫系統的主要特點是數據在物理上分散存儲,在邏輯上是統一的。分散式資料庫系統的多數處理就地完成,各地的電腦由數據通信網路相聯繫。
面向對象資料庫系統是面向對象的程式設計技術與資料庫技術相結合的產物。面向對象資料庫系統的主要特點是具有面向對象技術的封裝性和繼承性,提高了軟體的可重用性。
從目前的資料庫系統來看,主要存在以下缺點。
(1)採用靜態數據模型,數據類型和操作簡單、固定,只能處理短壽命事務。
(2)不能適應電腦輔助設計、電腦輔助軟體工程、圖像處理、超文本和多媒體等新的應用。
資料庫的未來發展趨勢如下:
(1)分散式數據管理。
(2)支持面向對象的數據模型。
(3)體繫結構適應功能擴展,能處理複雜數據類型和長壽命事務,能和以前的資料庫共存。
(4)資料庫技術與其他學科相結合(分散式資料庫、並行資料庫、多媒體資料庫、Internet資料庫、知識庫、演繹資料庫和主動資料庫)。
選擇資料庫管理系統時應從以下幾個方面予以考慮:
(1) 構造資料庫的難易程度。
需要分析資料庫管理系統有沒有範式的要求,即是否必須按照系統所規定的數據模型分析現實世界,建立相應的模型;資料庫管理語句是否符合國際標準,符合國際標準則便於系統的維護、開發、移植;有沒有面向用戶的易用的開發工具;所支持的資料庫容量,資料庫的容量特性決定了資料庫管理系統的使用範圍。
(2) 程式開發的難易程度。
有無電腦輔助軟體工程工具CASE——電腦輔助軟體工程工具可以幫助開發者根據軟體工程的方法提供各開發階段的維護、編碼環境,便於複雜軟體的開發、維護。有無第四代語言的開發平臺——第四代語言具有非過程語言的設計方法,用戶不需編寫複雜的過程性代碼,易學、易懂、易維護。有無面向對象的設計平臺——面向對象的設計思想十分接近人類的邏輯思維方式,便於開發和維護。對多媒體數據類型的支持 ——多媒體數據需求是今後發展的趨勢,支持多媒體數據類型的資料庫管理系統必將減少應用程式的開發和維護工作。
(3) 資料庫管理系統的性能分析。
包括性能評估(響應時間、數據單位時間吞吐量)、性能監控(內外存使用情況、系統輸入/輸出速率、SQL語句的執行,資料庫元組控制)、性能管理(參數設定與調整)。
(4) 對分散式應用的支持。
包括數據透明與網路透明程度。數據透明是指用戶在應用中不需指出數據在網路中的什麼節點上,資料庫管理系統可以自動搜索網路,提取所需數據;網路透明是指用戶在應用中無需指出網路所採用的協議。資料庫管理系統自動將數據包轉換成相應的協議數據。
(5) 並行處理能力。
支持多CPU模式的系統(SMP,CLUSTER,MPP),負載的分配形式,並行處理的顆粒度、範圍。
(6) 可移植性和可括展性。
可移植性指垂直擴展和水平擴展能力。垂直擴展要求新平臺能夠支持低版本的平臺,資料庫客戶機/ 伺服器機制支持集中式管理模式,這樣保證用戶以前的投資和系統;水平擴展要求滿足硬體上的擴展,支持從單CPU模式轉換成多CPU並行機模式( SMP, CLUSTER, MPP)
(7) 數據完整性約束。
數據完整性指數據的正確性和一致性保護,包括實體完整性、參照完整性、複雜的事務規則。
(8) 併發控制功能。
對於分散式資料庫管理系統,併發控制功能是必不可少的。因為它面臨的是多任務分佈環境,可能會有多個用戶點在同一時刻對同一數據進行讀或寫操作,為了保證數據的一致性,需要由資料庫管理系統的併發控制功能來完成。評價併發控制的標準應從下麵幾方面加以考慮:
保證查詢結果一致性方法
數據鎖的顆粒度(數據鎖的控制範圍,表、頁、元組等)
數據鎖的升級管理功能
死鎖的檢測和解決方法
(9) 容錯能力。
異常情況下對數據的容錯處理。評價標準:硬體的容錯,有無磁碟鏡象處理功能軟體的容錯,有無軟體方法異常情況的容錯功能
(10) 安全性控制
包括安全保密的程度(帳戶管理、用戶許可權、網路安全控制、數據約束)
(11) 支持漢字處理能力
包括資料庫描述語言的漢字處理能力(表名、功能變數名稱、數據)和資料庫開發工具對漢字的支持能力。
(12)當突然停電、出現硬體故障、軟體失效、病毒或嚴重錯誤操作時,系統應提供恢複數據庫的功能,如定期轉存、恢復備份、回滾等,使系統有能力將資料庫恢復到損壞到以前的狀態。
Oracle
Oracle是一個最早商品化的關係型資料庫管理系統,也是應用廣泛、功能強大的資料庫管理系統。Oracle作為一個通用的資料庫管理系統,不僅具有完整的數據管理功能,還是一個分散式資料庫系統,支持各種分散式功能,特別是支持 Internet應用。作為一個應用開發環境,Oracle提供了一套界面友好、功能齊全的資料庫開發工具。Oracle使用PL/SQL語言執行各種操作,具有可開放性、可移植性、可伸縮性等功能。特別是在Oracle 8i中,支持面向對象的功能,如支持類、方法、屬性等,使得Oracle 產品成為一種對象/關係型資料庫管理系統。目前最新版本是Oracle 11g。
PostgreSQL
PostgreSQL 是一個自由的對象-關係資料庫伺服器(資料庫管理系統),它在靈活的 BSD-風格許可證下發行。它在其他開放源代碼資料庫系統(比如 MySQL 和 Firebird),和專有系統比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server之外,為用戶又提供了一種選擇。
Microsoft SQL Server
Microsoft SQL Server是一種典型的關係型資料庫管理系統。可以在許多操作系統上運行,它使用Transact-SQL語言完成數據操作。由於Microsoft SQL Server是開放式的系統,其它系統可以與它進行完好的交互操作。目前最新版本的產品為Microsoft SQL Server 2008,它具有可靠性、可伸縮性、可用性、可管理性等特點,為用戶提供完整的資料庫解決方案。
Microsoft Access
作為Microsoft Office組件之一的Microsoft Access是在Windows環境下非常流行的桌面型資料庫管理系統。使用Microsoft Access無需編寫任何代碼,只需通過直觀的可視化操作就可以完成大部分數據管理任務。在Microsoft Access資料庫中,包括許多組成資料庫的基本要素。這些要素是存儲信息的表、顯示人機交互界面的窗體、有效檢索數據的查詢、信息輸出載體的報表、提高應用效率的巨集、功能強大的模塊工具等。它不僅可以通過ODBC與其它資料庫相連,實現數據交換和共用,還可以與Word、Excel等辦公軟體進行數據交換和共用,並且通過對象鏈接與嵌入技術在資料庫中嵌入和鏈接聲音、圖像等多媒體數據。