必威电竞|足球世界杯竞猜平台

數據庫管理系統
來源:互聯網

數據庫管理系統(Database 管理學 System,DBMS)是數據庫應用系統的核心。數據庫管理系統是一組用于數據管理的通用化軟件所組成的軟件系統,它建立在操作系統的基礎之上,是位于操作系統與用戶之間的數據管理軟件,負責數據庫中的數據組織、數據操縱、數據維護和數據控制等功能的實現。

1961年,通用電氣開發出世界上第一個數據庫管理系統——集成數據存儲(Integrated 控制資料公司 Store,IDS),標志第一代數據庫管理系統網狀數據庫管理系統的出現。1968年,IBM公司推出的IMS(In-formation Management System)是第一個出現的有標志性的大型商用數據庫管理系統。1970年,埃德加·科特(Edgar F.Codd)提出了關系數據模型用來解決第一代數據庫管理系統出現的問題。1974年,IBM公司開發了第二代數據庫管理系統關系型數據庫管理系統SystemR。該系統證實了埃德加·科特(Edgar F.Codd)的關系數據模型的可行性、有效性和優越性,并直接推動了數據操作語言SQL的出現。隨后,商業關系型數據庫系統紛紛涌現。

一般而言,數據庫管理系統主要功能有數據定義功能、數據操縱功能、數據庫運行管理、數據存儲和管理功能、數據庫的建立和維護功能、數據通信接口功能等。

系統原理

應用程序通過數據庫管理系統來訪問并維護數據,而數據庫管理系統則以特定的結構化方式來管理和保存數據。新的應用程序可以依賴于數據庫中已經存在的數據,并且只增加沒有存儲的數據,而不用重新定義所有的數據需求。要想在大量的數據中快速找到所需要的數據,并能對龐大的數據庫進行日常維護,這就需要使用數據庫管理系統。數據庫管理系統是操縱和管理數據庫的大型軟件,用于建立、使用和維護數據庫。數據庫管理系統對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。用戶通過數據庫管理系統訪問數據庫中的數據,數據庫管理員也通過數據庫管理系統進行數據庫的維護工作。數據庫管理系統可使多個應用程序并允許用戶使用不同的方法在同時或不同時刻去建立、修改和查詢數據庫。大部分數據庫管理系統提供數據定義語言、數據操作語言和數據控制語言,供用戶定義數據庫的模式結構與權限約束,實現對數據的追加、刪除等操作。

發展歷史

背景

數據庫管理系統是隨著數據庫系統的誕生而出現。20世紀50年代中期,計算機主要用于科學計算,還未出現磁盤存儲設備和操作系統軟件,數據多以穿孔紙帶這種裸文件方式進行物理的儲存和處理,數據管理主要靠人工。20世紀50年代末期,隨著磁盤、磁鼓等直接存儲設備的出現,以及軟件領域有了操作系統,計算機不僅用于科學計算,還可用于數據管理方面,因而進入了文件系統階段。這個階段是由操作系統中的文件系統模塊來管理所存儲的數據。但由于文件之間相對獨立,文件系統缺乏完整和統一的管理與共享數據的能力,因此其缺陷是,具有較多的數據冗余和數據的不一致,數據之間的聯系弱,數據的邏輯獨立性差,并且由于文件是為某一特定應用服務,難以在已有數據上擴充新的應用。20世紀60年代以后,隨著計算機在數據管理領域的普遍應用,人們對數據管理技術提出了更高的要求:希望面向企業或部門,以數據為中心組織數據,減少數據的冗余,提供更高的數據共享能力,同時要求程序和數據具有較高的獨立性,當數據的邏輯結構改變時,不涉及數據的物理結構,也不影響應用程序,從而降低應用程序的研制與維護費用。數據庫系統應運而生,數據管理進入數據庫系統階段。數據庫系統階段的應用程序與數據的關系通過數據庫管理系統(DBMS)來實現,數據庫管理系統也就此誕生。

一代時期:網狀數據庫管理系統

20世紀60年代,美國啟動了阿波羅載人登月工程。該工程需要處理和管理龐大的數據。在此背景下,1961年,通用電氣采用網狀數據模型開發出世界上第一個數據庫管理系統——集成數據存儲(Integrated 控制資料公司 Store,IDS),標志著網狀數據庫管理系統的出現,這一系統在當時得到了廣泛的發行和應用。1968年,IBM公司基于層次數據模型推出了IMS(In-formation 管理學 System),最早出現的具有標志性的大型商用數據庫管理系統,也是數據庫系統中第一個商用產品,并在商業、金融等領域得到了成功的應用。

在此期間,為了幫助建立數據庫的標準,包含了美國政府和工商界代表的數據系統語言會議(Conferenceon 數據 Systems Languages,CODASYL)成立了表處理任務組。1967年,數據系統語言會議(CODASYL)更名為數據庫任務組(DataBaseTaskGroup,DBTG)。1971年,數據庫任務組(DBTG)第一份正式的報告面世,報告包含三部分的內容:網狀數據庫模型、數據定義語言(Data Defi-nition Language,DDL)和數據操縱語言(Data Manipulation Language,DML)規范說明。DBTG系統和層次方法代表了第一代數據庫管理系統。

由于第一代數據庫管理系統主要依賴網狀或層次數據模型。這種類型的數據庫系統存在結構復雜、數據定義和數據修改操作不便的缺點,因此很快被基于關系數據模型的第二代數據庫系統所取代。

二代時期:關系數據庫管理系統

1970年,埃德加·科特(Edgar F.Codd)在其論文《大型共享數據庫的數據關系模型》(A Relational Model of 數據 for Large SharedData Banks)中首次提出了數據庫系統的關系模型,開創了數據庫關系方法和關系數據理論的研究,為數據庫技術奠定了基礎,以解決網狀、層次型數據庫系統中存在的問題。埃德加·科特(Edgar F.Codd)建議將數據保存在由行和列組成的簡單表中,而不是保存在一個層次結構中,這樣用戶查詢數據時,就不需要知道其數據結構。1974年,IBM公司開發了關系型數據庫管理系統SystemR。該系統證實了埃德加·科特(Edgar F.Codd)的關系數據模型的可行性、有效性和優越性,并直接推動了數據操作語言SQL的出現,SQL成為關系數據庫管理系統(RDBMS)的標準語言。隨后,商業關系型數據庫系統如雨后春筍般涌現出來,并被廣泛使用。典型的關系型數據庫管理系統有Oracle數據庫DB2INFORMIX、Sybase等。1976年,霍尼韋爾(Honeywell)公司開發了分時關系數據存儲(Multics Relational DataStore,MRDS,這是第一個商用關系數據庫管理系統(時態數據庫)。關系數據庫管理系統(RDBMS)被稱為第二代數據庫管理系統

由于關系數據庫系統具有模型簡單清晰、理論基礎好、數據獨立性強、數據庫語言非過程化及標準化等特色,使得其迅速在數據庫市場上取得壟斷地位且目前關系型數據庫管理系統仍然是市場份額最大的數據庫管理系統。

三代時期:對象-關系數據庫管理系統

1976年,美籍華裔計算機科學家陳品山(Peter.Chen)提出了實體聯系模型,該模型現在已被廣泛接受為概念數據庫設計技術。此外,埃德加·科特(Edgar F.Codd)試圖通過一個稱為RM/T(1979年)和后續的RM/V2(1990年)的關系模型擴展版本來解決他工作中的一些不足之處。擴展關系模型更加接近于實際世界的描述,被統一歸類為語義數據建模。為了適應越來越復雜的數據庫應用,出現了兩類新的系統:OODBMS(Object-orientedDatabase 管理學 System,面向對象的數據庫管理系統)和ORDBMS(Object-oriented Relative Database Management System,面向對象關系的數據庫管理系統)。然而,不同于先前的各種數據模型,這些模型的實際組成并不清晰。這些演變促使了第三代數據庫管理系統的出現。

20世紀90年代后,Internet、多層B/S結構、單位的數據庫必須與Web應用集成成為趨勢。20世紀90年代后期,建立了對象-關系數據庫管理系統,它既支持已被廣泛使用的SQL,具有良好的通用性,又具有面向對象的特性,支持復雜對象和復雜對象的復雜行為。對象-關系數據庫管理系統適應了新應用領域的需要和傳統應用領域深化發展的需要。人們把面向對象技術與數據庫技術相結合的系統稱為第三代數據庫管理系統或新一代數據庫管理系統。

系統分類

在數據庫中,由于數據都是按照一定的數學模型來組織的。因此,站在數據模型的角度上看,根據計算機系統所支持的數據模型不同,數據庫管理系統主要可以分為以下幾類:

層次型數據庫管理系統

層次型數據庫管理系統的典型代表是美國IBM公司研制的曾經廣泛使用的、第一個大型商用數據庫管理系統IMS。在這個系統中,數據的管理模型采用的是層次數據模型,即用樹形結構來表示實體及其之間的關系。在層次模型中,文件或記錄之間的聯系形成層次。層次數據庫把記錄集合表示成倒立的樹結構。樹的結點表示實體集,樹可以被定義成一組結點,即有一個特別指定的結點稱為根(結點),其他結點有且僅有一個父結點。結點之間的連線表示相連兩實體集之間的關系,這種關系只能是“1:m”的。通常把表示1的實體集放在上方,稱為父結點,表示M的實體集放在下方,稱為子結點。記錄之間的聯系通過指針來實現,查詢效率較高,缺點是較復雜,不易掌握。

網狀型數據庫管理系統

網狀型數據庫管理系統的典型代表是數據系統語言會議(CODASYL)提出的DBTG系統。在這個系統中,數據模型采用的是網狀模型,即用有向圖結構表示實體類型及實體間聯系。記錄之間的聯系與層次模型一樣,也是通過指針實現,可以容易地實現m:n的聯系,查詢效率也很高。但有著與層次模型類似的缺點,即數據結構復雜,編程也復雜。

關系型數據庫管理系統

關系型數據庫管理系統的數據模型采用的都是IBM公司的研究員埃德加·科特(Edgar F.Codd)在他的論文中提出的關系模型。在關系模型中,用一種稱為“關系”的二維表來組織數據,即用二維表結構來表示實體及實體之間聯系,在其背后可能存在復雜的數據結構來保證對各種數據操作的快速響應,但作為數據庫系統的用戶可以不必關系,從而提高了數據庫開發人員的效率。

常見系統

MySQL

MySQL是一個關系型數據庫管理系統(Relational DatabaseManagement System,RDBMS),由瑞典MySQL AB公司開發。MySQL是流行的關系型數據庫管理系統之一,在Web應用方面,MySQL是最好的RDBMS應用軟件之一。關系數據庫將數據存儲在不同的表中,而不是將所有數據放在一個大倉庫中,這樣提高了速度和靈活性。

Oracle

Oracle是美國甲骨文公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。比如,SilverStream就是基于數據庫的一種中間件。Oracle數據庫是目前世界上使用最為廣泛的數據庫管理系統,作為一個通用的數據庫系統,它具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫系統它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了Oracle數據庫知識,便能在各種類型的機器上使用它。

MicrosoftSQL Server

SQL Server是微軟推出的關系數據庫管理系統,具有使用方便、可伸縮性好、與相關軟件集成程度高等優點,可跨越從運行Microsoft Windows 98的筆記本計算機到運行Microsoft Windows 2012的大型多處理器的服務器等多種平臺使用。MicrosoftSQL Server是一個全面的數據庫平臺,其使用集成的商業智能(Business Intel-ligence,BI)工具提供了企業級的數據管理。Microsoft SQL Server數據庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使用戶可以構建和管理用于業務的高可用和高性能的數據應用程序。

Access

Access是微軟推出的一個小型的關系型數據庫管理系統,它與Word、Excel、PowerPoint一樣,也是Office系列辦公軟件的重要組成部分之一。Access 功能強大、操作簡單,為用戶提供了一個數據管理工具集和數據庫應用程序的開發環境,主要適用于小型數據庫系統的開發,是目前流行的桌面數據庫管理系統之一。

PostgreSQL

PostgreSQL是一種特性非常齊全的自由軟件的對象關系型數據庫管理系統(ORDBMS),以加利福尼亞大學計算機系開發的POSTGRES為基礎。POSTGRES的許多領先概念只是在比較遲的時候才出現在商業網站數據庫中。PostgreSQL支持大部分的SQL標準并且提供了很多其他現代特性,如復雜查詢、外鍵觸發器視圖、事務完整性和多版本并發控制等。同樣,PostgreSQL也可以用許多方法擴展,如通過增加新的數據類型、函數、操作符、聚集函數、索引方法和過程語言等進行擴展。另外,因為許可證的靈活性,任何人都可以以任何目的免費使用、修改和分發PostgreSQL

BigTable

BigTable是非關系型數據庫管理系統,是一個稀疏的、分布式的、持久化存儲的多維度排序Map,可以快速且可靠地處理PB級別的數據,并且能夠部署到上千臺機器上。BigTable 已經在超過60個谷歌的產品和項目上得到了應用,包括Google Analytics、Google 金融、Orkut、Personalized Search、Writely和Google Earth,這些產品對BigTable 提出了不同的需求,有的需要高吞吐量的批處理,有的需要及時提供響應數據給最終用戶。它們使用的BigTable集群的配置也有很大的差異,有的集群只有幾臺服務器,有的則需要上千臺服務器、存儲幾百TB的數據。

Cassandra

Cassandra是一個免費的、開源的、分布式的、寬列存儲的NoSQL數據庫管理系統,旨在跨許多商業服務器處理大量數據。

MongoDB

MongoDB是其同名公司(原名10Gen)開發的一款以高性能和高可擴展為特征的開源軟件,它是面向文檔的NoSQL數據庫管理系統。

CouchDB

CouchDB是一個開源的面向文檔的數據管理系統。CouchDB可以安裝在大部分操作系統上,包括LinuxMac OS。CouchDB的文檔更新模型是無鎖的,對此CouchDB與SQL,CouchDB的結構無須預定義,沒有固定模式,是任意結構的文檔的集合;數據不必滿足任何范式,存在數據冗余;用戶無須了解文檔結構甚至是文檔名;屬于動態模式下的靜態查詢。

系統功能

一般來說,數據庫管理系統的功能主要包括以下六個方面。

數據定義功能

數據定義包括定義構成數據庫結構的模式、存儲模式和外模式,定義各個外模式與模式之間的映射,定義模式與存儲模式之間的映射,定義有關的約束條件。例如,為保證數據庫中的數據具有正確的語義而定義的完整性規則、為保證數據庫安全而定義的用戶口令和存取權限等。

數據操縱功能

數據操縱包括對數據庫數據的檢索、插入、修改和刪除等基本操作。

數據庫運行管理

對數據庫的運行進行管理是數據庫管理系統運行時的核心部分,包括多用戶環境下的并發控制、安全性檢查和存取限制控制、完整性檢查和執行、運行日志的組織管理、事務的管理和自動恢復(即保證事務的原子性)、數據庫的內部維護(如索引數據字典的自動維護)等。所有訪問數據庫的操作都要在這些控制程序的統一管理下進行,以保證數據庫系統的正常運行,以及數據的安全性、完整性、一致性和多用戶對數據庫的并發使用。

數據存儲和管理功能

數據庫中需要存放多種數據,如數據字典、用戶數據、存取路徑等,數據庫管理系統負責分門別類地組織、存儲和管理這些數據,確定以何種文件結構和存取方式在外圍儲存設備上物理地組織這些數據,如何實現數據之間的聯系,以便提高存儲空間利用率以及提高隨機查找、順序查找、增加、刪除、修改等操作的時間效率。

數據庫的建立和維護功能

建立數據庫包括數據庫初始數據的輸入與數據轉換等。維護數據庫包括數據庫的轉儲與恢復、數據庫的重組織與重構造、性能的監視與分析等。

數據通信接口功能

數據庫管理系統需要提供與其他軟件系統進行通信的功能。例如,提供與其他數據庫管理系統或文件系統的接口,從而能夠將數據轉換為另一個數據庫管理系統或文件系統能夠接收的格式,或者接收其他數據庫管理系統或文件系統的數據。除了上述功能以外,為了適應數據共享的環境,現代數據庫管理系統一般還要具備數據的完整性維護、安全性保護、多用戶并發控制和故障恢復等功能。

系統組成

連接管理器和安全管理器

連接管理器提供建立數據庫連接的設備。它可以在本地或通過網絡設置,后者更常見。它驗證登錄憑據,如用戶名和密碼,并返回連接句柄。數據庫連接可以作為單個進程運行,也可以作為進程中的線程運行。線程表現了進程的內部執行路徑,是處理器調度的最小單位。一個進程可包含多個線程,這些線程之間可以資源共享(如內存)。安全管理器驗證用戶是否具有執行所需的數據庫操作的相應權限。例如,某些用戶擁有數據讀取權限,另一些用戶擁有數據寫入權限。安全管理器從目錄中檢索這些權限。

DDL編譯器

DDL編譯器編譯 DDL中的數據定義。理想情況下,DBMS應該提供三個DDL:一個用于內部數據模型,一個用于邏輯數據模型,一個用于外部數據模型。然而,對于使用SQL作為DDL的關系數據庫來說,多數情況下都是具有三個不同指令集的單個DDL。DDL編譯器首先解析DDL定義并檢查其語法正確性。然后,它將數據定義轉換為內部形式,并在出錯時輸出錯誤提示。編譯成功后,它會在目錄中注冊數據定義,數據庫管理系統的所有其他組件都可以通過目錄使用這些定義。

查詢處理器

查詢處理器是數據庫管理系統最重要的組成部分之一。它幫助我們進行與數據庫查詢相關的操作,如檢索數據、插入數據、更新數據和從數據庫中刪除數據。大多數DBMS供應商都有自己的專用查詢處理器,它通常包括DML編譯器、查詢解釋器、查詢重寫器、查詢優化器和查詢執行器

四層架構:存儲管理器

存儲管理器管理物理文件訪問,保證數據的正確和高效存儲,并具備數據存儲的自適應調節機制。它由事務管理器、緩沖區管理器、鎖管理器和恢復管理器組成。

DBMS工具

除了前面討論過的組件之外,數據庫管理系還附帶了各種工具。加載工具支持對各種來源(例如其他數據庫管理系、文本文件、Excel文件等)的信息加載數據庫。重組工具自動重組數據以提高性能。性能監視工具報告各種關鍵性能指標,例如占用的存儲空間、查詢響應時間和事務吞吐量,以對數據庫管理系統進行監管。用戶管理工具支持創建用戶組或賬戶,并為它們分配權限。數據庫管理系工具通常還包括一個備份和恢復工具。

DBMS接口

數據庫管理系統需要與多方成員進行交互,例如數據庫設計人員、數據庫管理員、應用程序和最終用戶。為了促進這些交互,它提供各種用戶接口,如基于網絡的接口、獨立的查詢語言接口、命令行接口、基于表單的接口、用戶圖形界面、自然語言接口、應用程序編程接口(API)、管理界面和網絡接口。

工作模式

數據庫管理系統是對數據進行管理的軟件系統,是數據庫系統的核心組成部分,用戶在數據庫系統中的一切操作,包括數據定義、查詢、更新及各種控制,都是通過數據庫管理系統進行的。

數據庫管理系統的工作模式如下:

1接收應用程序的數據請求和處理請求。

2將用戶的數據請求轉換成復雜的機器代碼。

3實現對數據庫的操作。

4從對數據庫的操作中接收查詢結果。

5對查詢結果進行處理。

6將處理結果返回給用戶。

數據庫管理系統總是基于某種數據模型,因此可以將數據庫管理系統看成是某種數據模型在計算機系統上的具體實現。根據數據模型的不同,數據庫管理系統已分成層次型、網狀型、關系型和面向對象型等。在不同的計算機系統中,由于缺乏統一的標準,即使是同種數據模型的數據庫管理系統,在用戶接口、系統功能等方面也常常是不相同的。

系統特征

數據結構化且統一管理

由于數據庫系統采用復雜的數據模型表示數據結構,數據模型不僅描述數據本身的特點,還描述數據之間的聯系,數據不再面向某個具體的應用程序,而是面向整個應用系統。數據維護簡單方便、容易擴展,數據冗余明顯減少,真正實現了數據的共享。

數據獨立性較高

數據的獨立性是指數據與程序獨立,將應用程序中的數據定義和管理等功能分離出來,由DBMS負責數據的存儲和管理。由于數據在數據庫管理系統的管理下使用三級模式結構,因此,數據的邏輯獨立性和物理獨立性就明顯地體現出來。應用程序員不必關心數據的存儲位置和訪問方法等問題,只要知道數據的邏輯結構即可,從而減輕了負擔。

數據控制功能強大

數據庫管理系統提供了數據控制功能,以適用多用戶并發共享數據庫的需要。數據控制功能包括對數據庫中數據的安全性、完整性、并發和恢復的控制。

界面友好

數據庫管理系統的用戶接口應面向應用、面向用戶。需提供方便的編程接口,以建立應用程序訪問數據庫的通道;使用戶可通過多種方式、易用的語言對數據庫進行復雜操作。

發展趨勢

數據庫管理系統的發展趨勢是在關系型數據庫的基礎上,將面向對象的某些特性(如繼承)添加上去,稱為“對象一關系型數據庫”,但本質上仍然是一個關系型數據庫。面向元數據方法的優點是通俗易懂,特別適合信息系統中數據層上的設計與實現。面向元數據方法的缺點是只能實現二維表格,不能實現窗口界面。

參考資料 >

生活家百科家居網