數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫應用系統(tǒng)的核心。數(shù)據(jù)庫管理系統(tǒng)是由一組基于操作系統(tǒng)的數(shù)據(jù)管理通用軟件組成的軟件系統(tǒng),是操作系統(tǒng)和用戶之間的數(shù)據(jù)管理軟件,負責實現(xiàn)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護和數(shù)據(jù)控制。1961年,美國通用電氣公司開發(fā)了世界上第一個數(shù)據(jù)庫管理系統(tǒng)——集成數(shù)據(jù)存儲(IDS ),這標志著第一代數(shù)據(jù)庫管理系統(tǒng)——網(wǎng)格數(shù)據(jù)庫管理系統(tǒng)的出現(xiàn)。1968年,IBM推出的IMS(信息管理系統(tǒng))是第一個大型商業(yè)數(shù)據(jù)庫管理系統(tǒng)。1970年,Edgar F.Codd提出了一個關系數(shù)據(jù)模型來解決第一代數(shù)據(jù)庫管理系統(tǒng)的問題。1974年,IBM開發(fā)了第二代數(shù)據(jù)庫管理系統(tǒng),關系數(shù)據(jù)庫管理系統(tǒng)SystemR。該系統(tǒng)證實了Edgar F.Codd的關系數(shù)據(jù)模型的可行性、有效性和優(yōu)越性,并直接推動了數(shù)據(jù)操作語言SQL的出現(xiàn)。隨后,商用關系數(shù)據(jù)庫系統(tǒng)相繼出現(xiàn)。一般來說,數(shù)據(jù)庫管理系統(tǒng)的主要功能包括數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)庫操作管理、數(shù)據(jù)存儲和管理、數(shù)據(jù)庫建立和維護、數(shù)據(jù)通信接口等。
發(fā)展歷史 編輯本段
背景
數(shù)據(jù)庫管理系統(tǒng)是隨著數(shù)據(jù)庫系統(tǒng)的誕生而出現(xiàn)的。50年代中期,計算機主要用于科學計算,沒有磁盤存儲設備和操作系統(tǒng)軟件。數(shù)據(jù)大多以穿孔紙帶的形式進行物理存儲和處理,數(shù)據(jù)管理主要依靠人工。50年代后期,隨著磁盤、磁鼓等直接存儲設備的出現(xiàn),以及軟件領域操作系統(tǒng)的存在,計算機不僅可以用于科學計算,還可以用于數(shù)據(jù)管理,從而進入文件系統(tǒng)階段。在這個階段,操作系統(tǒng)中的文件系統(tǒng)模塊管理存儲的數(shù)據(jù)。但是,由于文件之間的相對獨立性,文件系統(tǒng)缺乏完整統(tǒng)一的管理和共享數(shù)據(jù)的能力,因此其缺點是數(shù)據(jù)冗余和不一致性較多,數(shù)據(jù)之間的聯(lián)系較弱,數(shù)據(jù)的邏輯獨立性較差,并且由于文件服務于特定的應用,因此很難在現(xiàn)有數(shù)據(jù)上擴展新的應用。
20世紀60年代以后,隨著計算機在數(shù)據(jù)管理領域的廣泛應用,人們對數(shù)據(jù)管理技術提出了更高的要求:希望為企業(yè)或部門組織數(shù)據(jù),減少數(shù)據(jù)冗余,提供更高的數(shù)據(jù)共享能力,同時要求程序和數(shù)據(jù)具有更高的獨立性。當數(shù)據(jù)的邏輯結(jié)構(gòu)發(fā)生變化時,不涉及數(shù)據(jù)的物理結(jié)構(gòu),也不影響應用程序,從而降低了應用程序的開發(fā)和維護成本。數(shù)據(jù)庫系統(tǒng)應運而生,數(shù)據(jù)管理進入數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫系統(tǒng)階段的應用與數(shù)據(jù)的關系是通過數(shù)據(jù)庫管理系統(tǒng)(DBMS)來實現(xiàn)的,數(shù)據(jù)庫管理系統(tǒng)由此誕生。
第一代:網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)
20世紀60年代,美國啟動了阿波羅載人登月工程。這個項目需要處理和管理龐大的數(shù)據(jù)。在此背景下,1961年,美國通用電氣公司開發(fā)了世界上第一個數(shù)據(jù)庫管理系統(tǒng)——集成數(shù)據(jù)存儲(IDS),標志著網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)的出現(xiàn),這一系統(tǒng)在當時得到了廣泛的分布和應用。1968年,IBM推出了基于分層數(shù)據(jù)模型的IMS(信息管理系統(tǒng)),這是第一個標志性的大型商用數(shù)據(jù)庫管理系統(tǒng),也是數(shù)據(jù)庫系統(tǒng)中的第一個商用產(chǎn)品,并成功應用于商業(yè)、金融等領域。
在此期間,為了幫助建立數(shù)據(jù)庫標準,數(shù)據(jù)系統(tǒng)語言會議(CODASYL)成立了一個表格處理工作隊,其中包括美國政府和商業(yè)界的代表。1967年,CODASYL更名為DataBaseTaskGroup (DBTG)。1971年,數(shù)據(jù)庫任務組(DBTG)發(fā)表了第一份正式報告,該報告包括三個部分:網(wǎng)狀數(shù)據(jù)庫模型、數(shù)據(jù)定義語言(DDL)和數(shù)據(jù)操作語言(DML)的規(guī)范。DBTG系統(tǒng)和分層方法代表了第一代數(shù)據(jù)庫管理系統(tǒng)。
因為第一代數(shù)據(jù)庫管理系統(tǒng)主要依賴于網(wǎng)格或?qū)哟螖?shù)據(jù)模型。這類數(shù)據(jù)庫系統(tǒng)具有結(jié)構(gòu)復雜、數(shù)據(jù)定義和數(shù)據(jù)修改不方便的缺點,因此很快被基于關系數(shù)據(jù)模型的第二代數(shù)據(jù)庫系統(tǒng)所取代。
第二代:關系數(shù)據(jù)庫管理系統(tǒng)
1970年,Edgar F.Codd在他的論文《大型共享數(shù)據(jù)庫的數(shù)據(jù)關系模型》中提出了關系數(shù)據(jù)模型,以解決網(wǎng)絡和層次數(shù)據(jù)庫系統(tǒng)中存在的問題。Edgar F.Codd建議將數(shù)據(jù)存儲在由行和列組成的簡單表格中,而不是存儲在層次結(jié)構(gòu)中,這樣當用戶查詢數(shù)據(jù)時,就不需要知道它的數(shù)據(jù)結(jié)構(gòu)。1974年,IBM開發(fā)了關系數(shù)據(jù)庫管理系統(tǒng)SystemR。該系統(tǒng)證實了Edgar F.Codd的關系數(shù)據(jù)模型的可行性、有效性和優(yōu)越性,并直接推動了數(shù)據(jù)操作語言SQL的出現(xiàn),成為關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的標準語言。隨后,商業(yè)關系數(shù)據(jù)庫系統(tǒng)如雨后春筍般出現(xiàn)并得到廣泛應用。典型的關系數(shù)據(jù)庫管理系統(tǒng)包括Oracle、DB2、Informix、Sybase等。1976年,Honeywell公司開發(fā)了Multics關系數(shù)據(jù)庫(MRDS),這是第一個商用關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。關系數(shù)據(jù)庫管理系統(tǒng)被稱為第二代數(shù)據(jù)庫管理系統(tǒng)。由于關系數(shù)據(jù)庫系統(tǒng)具有模型簡單明了、理論基礎好、數(shù)據(jù)獨立性強、數(shù)據(jù)庫語言非過程化、標準化等特點,因此在數(shù)據(jù)庫市場上迅速取得了壟斷地位,關系數(shù)據(jù)庫管理系統(tǒng)仍然是目前市場份額最大的數(shù)據(jù)庫管理系統(tǒng)。
第三代:對象關系數(shù)據(jù)庫管理系統(tǒng)
1976年,美籍華人計算機科學家彼得。陳提出的實體關系模型作為一種概念數(shù)據(jù)庫設計技術已被廣泛接受。此外,Edgar F.Codd試圖通過稱為RM/T(1979)和隨后的RM/V2(1990)的關系模型的擴展版本來解決他的工作中的一些缺點。擴展的關系模型更接近真實世界的描述,被歸類為語義數(shù)據(jù)建模。為了適應越來越復雜的數(shù)據(jù)庫應用,出現(xiàn)了兩種新型系統(tǒng):OODBMS(面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng))和ORDBMS(面向?qū)ο箨P系數(shù)據(jù)庫管理系統(tǒng))。然而,與以前的數(shù)據(jù)模型不同,這些模型的實際組成并不清楚。這些變化促使了第三代數(shù)據(jù)庫管理系統(tǒng)的出現(xiàn)。
20世紀90年代以后,互聯(lián)網(wǎng)、多層B/S結(jié)構(gòu)和企業(yè)數(shù)據(jù)庫與Web應用的集成已經(jīng)成為一種趨勢。90年代末建立了對象關系數(shù)據(jù)庫管理系統(tǒng),不僅支持廣泛使用的SQL,而且具有良好的通用性和面向?qū)ο筇匦裕С謴碗s對象和復雜對象的復雜行為。對象關系數(shù)據(jù)庫管理系統(tǒng)滿足了新的應用領域的需求和傳統(tǒng)應用領域深化發(fā)展的需要。人們將面向?qū)ο蠹夹g與數(shù)據(jù)庫技術相結(jié)合的系統(tǒng)稱為第三代數(shù)據(jù)庫管理系統(tǒng)或新一代數(shù)據(jù)庫管理系統(tǒng)。
系統(tǒng)原理 編輯本段
應用程序通過數(shù)據(jù)庫管理系統(tǒng)訪問和維護數(shù)據(jù),而數(shù)據(jù)庫管理系統(tǒng)以特定的結(jié)構(gòu)化方式管理和保存數(shù)據(jù)。為了從大量的數(shù)據(jù)中快速找到所需的數(shù)據(jù),并對龐大的數(shù)據(jù)庫進行日常維護,有必要使用數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)是操縱和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過數(shù)據(jù)庫管理系統(tǒng)訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過數(shù)據(jù)庫管理系統(tǒng)維護數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)可以制作多個應用程序,允許用戶在同一時間或不同時間使用不同的方法建立、修改和查詢數(shù)據(jù)庫。大多數(shù)數(shù)據(jù)庫管理系統(tǒng)都提供了數(shù)據(jù)定義語言、數(shù)據(jù)操作語言和數(shù)據(jù)控制語言,供用戶定義數(shù)據(jù)庫模式結(jié)構(gòu)和權(quán)限約束,實現(xiàn)添加、刪除數(shù)據(jù)等操作。
系統(tǒng)分類 編輯本段
在數(shù)據(jù)庫中,因為數(shù)據(jù)是按照一定的數(shù)學模型組織的。因此,從數(shù)據(jù)模型的角度來看,根據(jù)計算機系統(tǒng)支持的數(shù)據(jù)模型的不同,數(shù)據(jù)庫管理系統(tǒng)主要可以分為以下幾類:
分層數(shù)據(jù)庫管理系統(tǒng)
分層數(shù)據(jù)庫管理系統(tǒng)的典型代表是IMS,它是美國IBM公司開發(fā)的第一個大型商用數(shù)據(jù)庫管理系統(tǒng),并得到了廣泛的應用。在本系統(tǒng)中,數(shù)據(jù)管理模型是分層數(shù)據(jù)模型,即采用樹結(jié)構(gòu)來表示實體及其關系。在層次模型中,文件或記錄之間的關系形成一個層次結(jié)構(gòu)。分層數(shù)據(jù)庫將記錄集表示為倒置的樹結(jié)構(gòu)。一棵樹的節(jié)點代表實體集,一棵樹可以定義為一組節(jié)點,即有一個專門指定的節(jié)點叫做根(node),其他節(jié)點只有一個父節(jié)點。節(jié)點之間的連線表示兩個相連的實體集之間的關系,只能是“1: m”。通常代表1的實體集放在最上面,稱為父節(jié)點,代表M的實體集放在最下面,稱為子節(jié)點。記錄之間的聯(lián)系是通過指針來實現(xiàn)的,查詢效率高,但缺點是復雜難掌握。
網(wǎng)絡化數(shù)據(jù)庫管理系統(tǒng)
網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)的典型代表是CODASYL提出的DBTG系統(tǒng)。在這個系統(tǒng)中,數(shù)據(jù)模型是一個網(wǎng)絡模型,即實體類型和實體之間的關系用有向圖結(jié)構(gòu)來表示。和層次模型一樣,記錄之間的關系也是通過指針來實現(xiàn)的,可以很容易地實現(xiàn)M: N關系,查詢效率高。但它也有和層次模型類似的缺點,就是數(shù)據(jù)結(jié)構(gòu)復雜,編程也復雜。
關系數(shù)據(jù)庫管理系統(tǒng)
關系數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)模型采用IBM研究員Edgar F.Codd在他的論文中提出的關系模型。在關系模型中,用一個叫做“關系”的二維表來組織數(shù)據(jù),也就是用一個二維表結(jié)構(gòu)來表示實體和實體之間的關系。背后可能有復雜的數(shù)據(jù)結(jié)構(gòu)來保證對各種數(shù)據(jù)操作的快速響應,但數(shù)據(jù)庫系統(tǒng)的用戶不需要關聯(lián),從而提高了數(shù)據(jù)庫開發(fā)人員的效率。
常見系統(tǒng) 編輯本段
MySQL
MySQL是一個關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),由瑞典的MySQL AB公司開發(fā)。MySQL是流行的關系數(shù)據(jù)庫管理系統(tǒng)之一,MySQL是Web應用中最好的RDBMS應用之一。關系數(shù)據(jù)庫將數(shù)據(jù)存儲在不同的表中,而不是將所有數(shù)據(jù)存儲在一個大倉庫中,這提高了速度和靈活性。
Oracle
Oracle是美國Oracle公司(甲骨文公司)提供的一套以分布式數(shù)據(jù)庫為核心的軟件產(chǎn)品,是目前最流行的客戶機/服務器或B/S架構(gòu)的數(shù)據(jù)庫之一。比如SilverStream就是一個基于數(shù)據(jù)庫的中間件。Oracle數(shù)據(jù)庫是目前世界上應用最廣泛的數(shù)據(jù)庫管理系統(tǒng)。作為一個通用數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能。作為關系數(shù)據(jù)庫,它是完全關系的產(chǎn)物;作為一個分布式數(shù)據(jù)庫,它實現(xiàn)了分布式處理功能。但是它的所有知識,只要在一個機型上學習甲骨文知識,就可以用在各種類型的機器上。
MicrosoftSQL Server
SQL Server是微軟公司推出的關系數(shù)據(jù)庫管理系統(tǒng),具有使用方便、可擴展性好、與相關軟件集成度高等優(yōu)點。它可以跨多種平臺使用,從運行Microsoft Windows 98的筆記本電腦到運行Microsoft Windows 2012的大型多處理器服務器。MicrosoftSQL Server是一個全面的數(shù)據(jù)庫平臺,它通過使用集成的商業(yè)智能(BI)工具來提供企業(yè)級數(shù)據(jù)管理。MicrosoftSQLServer數(shù)據(jù)庫引擎為關系數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更加安全可靠的存儲功能,使用戶能夠為企業(yè)構(gòu)建和管理高可用性和高性能的數(shù)據(jù)應用程序。
Access
Access是微軟公司推出的小型關系數(shù)據(jù)庫管理系統(tǒng)。和Word、Excel、PowerPoint一樣,也是Office系列辦公軟件的重要組成部分之一。Access功能強大,操作簡單,為用戶提供了數(shù)據(jù)管理工具集和數(shù)據(jù)庫應用程序的開發(fā)環(huán)境。它主要適用于小型數(shù)據(jù)庫系統(tǒng)的開發(fā),是目前流行的桌面數(shù)據(jù)庫管理系統(tǒng)之一。
PostgreSQL
PostgreSQL是一個自由軟件對象關系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS ),功能齊全,基于加州大學計算機系開發(fā)的PostgreSQL。POSTGRES的很多領先概念是在相對較晚的階段才出現(xiàn)在商業(yè)網(wǎng)站的數(shù)據(jù)庫中的。PostgreSQL支持大多數(shù)SQL標準,并提供許多其他現(xiàn)代功能,如復雜查詢、外鍵、觸發(fā)器、視圖、事務完整性和多版本并發(fā)控制。類似地,PostgreSQL可以在許多方面進行擴展,例如添加新的數(shù)據(jù)類型、函數(shù)、運算符、聚合函數(shù)、索引方法和過程語言。此外,由于許可證的靈活性,任何人都可以出于任何目的免費使用、修改和分發(fā)PostgreSQL。
BigTable
BigTable是一個非關系數(shù)據(jù)庫管理系統(tǒng)。它是一種稀疏的、分布式的、持久的多維排序圖,可以快速可靠地處理PB級數(shù)據(jù),可以部署到數(shù)千臺機器上。BigTable已經(jīng)應用于60多個谷歌產(chǎn)品和項目,包括谷歌分析、谷歌財務、Orkut、個性化搜索、Writely和谷歌地球。這些產(chǎn)品對BigTable提出了不同的要求,有的需要高通量批處理,有的需要及時向終端用戶提供響應數(shù)據(jù)。他們使用的BigTable集群的配置也大相徑庭。一些集群只有幾臺服務器,而另一些集群需要數(shù)千臺服務器,存儲數(shù)百TB的數(shù)據(jù)。
Cassandra
Cassandra是一個免費、開源、分布式、寬列存儲NoSQL數(shù)據(jù)庫管理系統(tǒng),旨在處理許多商業(yè)服務器上的大量數(shù)據(jù)。
MongoDB
MongoDB是由其同名公司(原名10Gen)開發(fā)的開源軟件,其特點是高性能和高可擴展性。這是一個面向文檔的NoSQL數(shù)據(jù)庫管理系統(tǒng)。
CouchDB
CouchDB是一個開源的面向文檔的數(shù)據(jù)管理系統(tǒng)。CouchDB可以安裝在大多數(shù)操作系統(tǒng)上,包括Linux和MacOSX X,CouchDB的文檔更新模型是無鎖的,所以CouchDB、SQL和CouchDB的結(jié)構(gòu)不需要預定義,沒有固定的模式,所以它是任意結(jié)構(gòu)的文檔集合。數(shù)據(jù)不必滿足任何范式,存在數(shù)據(jù)冗余;用戶不需要知道文檔結(jié)構(gòu),甚至不需要知道文檔名稱;屬于動態(tài)模式下的靜態(tài)查詢。
系統(tǒng)組成 編輯本段
連接管理器和安全管理器
連接管理器提供了建立數(shù)據(jù)庫連接的設備。可以在本地設置,也可以通過網(wǎng)絡設置,后者更常見。它驗證登錄憑證,如用戶名和密碼,并返回連接句柄。數(shù)據(jù)庫連接可以作為單個進程運行,也可以作為進程中的一個線程運行。線程代表進程的內(nèi)部執(zhí)行路徑,是處理器調(diào)度的最小單位。一個進程可以包含多個線程,這些線程可以共享資源(比如內(nèi)存)。安全管理器驗證用戶是否具有執(zhí)行所需數(shù)據(jù)庫操作的適當權(quán)限。例如,一些用戶擁有讀取數(shù)據(jù)的權(quán)限,而另一些用戶擁有寫入數(shù)據(jù)的權(quán)限。安全管理器從目錄中檢索這些權(quán)限。
DDL編譯器
DDL編譯器編譯DDL中的數(shù)據(jù)定義。理想情況下,DBMS應該提供三個DDL:一個用于內(nèi)部數(shù)據(jù)模型,一個用于邏輯數(shù)據(jù)模型,一個用于外部數(shù)據(jù)模型。然而,對于使用SQL作為DDL的關系數(shù)據(jù)庫,在大多數(shù)情況下,它是具有三個不同指令集的單個DDL。DDL編譯器首先解析DDL定義并檢查其語法正確性。然后,它將數(shù)據(jù)定義轉(zhuǎn)換為內(nèi)部形式,并在出現(xiàn)錯誤時輸出錯誤提示。編譯成功后,它將在目錄中注冊數(shù)據(jù)定義,數(shù)據(jù)庫管理系統(tǒng)的所有其他組件都可以通過目錄使用這些定義。
詢問處理程序
查詢處理器是數(shù)據(jù)庫管理系統(tǒng)最重要的組成部分之一。它幫助我們執(zhí)行與數(shù)據(jù)庫查詢相關的操作,例如從數(shù)據(jù)庫中檢索數(shù)據(jù)、插入數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)。大多數(shù)DBMS供應商都有自己專用的查詢處理器,通常包括DML編譯器、查詢解釋器、查詢重寫器、查詢優(yōu)化器和查詢執(zhí)行器。
四層架構(gòu):存儲管理器
存儲管理器管理物理文件訪問,以確保正確有效地存儲數(shù)據(jù)。它由事務管理器、緩沖管理器、鎖管理器和恢復管理器組成。
DBMS工具
除了前面討論的組件之外,數(shù)據(jù)庫管理部門還附帶了各種工具。加載工具支持從各種來源(如其他數(shù)據(jù)庫管理部門、文本文件、Excel文件等)加載信息。)到數(shù)據(jù)庫里。重組工具自動重組數(shù)據(jù)以提高性能。性能監(jiān)控工具報告各種關鍵性能指標,如占用的存儲空間、查詢響應時間和事務吞吐量,以監(jiān)督數(shù)據(jù)庫管理系統(tǒng)。用戶管理工具支持用戶組或帳戶的創(chuàng)建以及權(quán)限的分配。數(shù)據(jù)庫管理工具通常包括備份和恢復工具。
DBMS接口
數(shù)據(jù)庫管理系統(tǒng)需要與許多成員進行交互,如數(shù)據(jù)庫設計者、數(shù)據(jù)庫管理員、應用程序和最終用戶。為了促進這些交互,它提供了各種用戶接口,如基于網(wǎng)絡的接口、獨立查詢語言接口、命令行接口、基于表單的接口、用戶圖形接口、自然語言接口、應用編程接口(API)、管理接口和網(wǎng)絡接口。
系統(tǒng)功能 編輯本段
一般來說,數(shù)據(jù)庫管理系統(tǒng)的功能主要包括以下六個方面。
數(shù)據(jù)定義功能:數(shù)據(jù)定義包括定義構(gòu)成數(shù)據(jù)庫結(jié)構(gòu)的模式、存儲模式和外部模式,定義外部模式和模式之間的映射,定義模式和存儲模式之間的映射,定義相關約束。例如,為確保數(shù)據(jù)庫中數(shù)據(jù)的正確語義而定義的完整性規(guī)則、為確保數(shù)據(jù)庫的安全性而定義的用戶密碼和訪問權(quán)限等。
數(shù)據(jù)處理功能:數(shù)據(jù)操作包括數(shù)據(jù)庫數(shù)據(jù)的檢索、插入、修改和刪除等基本操作。
數(shù)據(jù)庫操作管理:管理數(shù)據(jù)庫的操作是數(shù)據(jù)庫管理系統(tǒng)的核心部分,包括并發(fā)控制、安全檢查、完整性約束的檢查和實現(xiàn)以及數(shù)據(jù)庫的內(nèi)部維護(如索引和數(shù)據(jù)字典的自動維護)。所有訪問數(shù)據(jù)庫的操作都應在這些控制程序的統(tǒng)一管理下進行,以確保數(shù)據(jù)的安全性、完整性和一致性,以及多個用戶對數(shù)據(jù)庫的并發(fā)使用。
數(shù)據(jù)存儲和管理功能:數(shù)據(jù)庫需要存儲各種數(shù)據(jù),如數(shù)據(jù)字典、用戶數(shù)據(jù)、訪問路徑等。數(shù)據(jù)庫管理系統(tǒng)負責將這些數(shù)據(jù)分門別類地組織、存儲和管理,確定用什么樣的文件結(jié)構(gòu)和訪問方式在物理上組織這些數(shù)據(jù),如何實現(xiàn)數(shù)據(jù)之間的聯(lián)系,從而提高存儲空間的利用率,提高隨機查找、順序查找、添加、刪除、修改的時間效率。
數(shù)據(jù)庫建立和維護功能:數(shù)據(jù)庫的建立包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入和數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)庫維護包括數(shù)據(jù)庫轉(zhuǎn)儲和恢復、數(shù)據(jù)庫重組和重建、性能監(jiān)控和分析等。
數(shù)據(jù)通信接口功能:數(shù)據(jù)庫管理系統(tǒng)需要提供與其他軟件系統(tǒng)通信的功能。例如,它提供了與其他數(shù)據(jù)庫管理系統(tǒng)或文件系統(tǒng)的接口,以便可以將數(shù)據(jù)轉(zhuǎn)換為另一個數(shù)據(jù)庫管理系統(tǒng)或文件系統(tǒng)可以接收的格式,或者可以接收來自其他數(shù)據(jù)庫管理系統(tǒng)或文件系統(tǒng)的數(shù)據(jù)。除上述功能外,為適應數(shù)據(jù)共享環(huán)境,現(xiàn)代數(shù)據(jù)庫管理系統(tǒng)一般還具有數(shù)據(jù)完整性維護、安全保護、多用戶并發(fā)控制和故障恢復等功能。
工作模式 編輯本段
數(shù)據(jù)庫管理系統(tǒng)是管理數(shù)據(jù)的軟件系統(tǒng),是數(shù)據(jù)庫系統(tǒng)的核心組成部分。用戶在數(shù)據(jù)庫系統(tǒng)中的所有操作,包括數(shù)據(jù)定義、查詢、更新和各種控制,都是通過數(shù)據(jù)庫管理系統(tǒng)進行的。
數(shù)據(jù)庫管理系統(tǒng)的工作模式如下:
1接收來自應用程序的數(shù)據(jù)請求和處理請求。
將用戶的數(shù)據(jù)請求轉(zhuǎn)換成復雜的機器代碼。
3 .實現(xiàn)對數(shù)據(jù)庫的操作。
4接收對數(shù)據(jù)庫操作的查詢結(jié)果。
5.處理查詢結(jié)果。
6.將處理結(jié)果返回給用戶。
數(shù)據(jù)庫管理系統(tǒng)總是基于某種數(shù)據(jù)模型,因此它可以看作是某種數(shù)據(jù)模型在計算機系統(tǒng)上的具體實現(xiàn)。根據(jù)不同的數(shù)據(jù)模型,數(shù)據(jù)庫管理系統(tǒng)分為層次型、網(wǎng)絡型、關系型和面向?qū)ο笮汀T诓煌挠嬎銠C系統(tǒng)中,由于缺乏統(tǒng)一的標準,即使是具有相同數(shù)據(jù)模型的數(shù)據(jù)庫管理系統(tǒng),在用戶界面和系統(tǒng)功能方面也往往是不同的。
系統(tǒng)特征 編輯本段
數(shù)據(jù)是統(tǒng)一組織和管理的:由于數(shù)據(jù)庫系統(tǒng)使用復雜的數(shù)據(jù)模型來表示數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)模型不僅描述了數(shù)據(jù)本身的特征,還描述了數(shù)據(jù)之間的關系,因此數(shù)據(jù)不再是面向某個特定的應用,而是面向整個應用系統(tǒng)。數(shù)據(jù)維護簡單方便,易于擴展,數(shù)據(jù)冗余明顯減少,真正實現(xiàn)了數(shù)據(jù)共享。
高度的數(shù)據(jù)獨立性:數(shù)據(jù)的獨立性是指數(shù)據(jù)和程序的獨立性,將應用程序中的數(shù)據(jù)定義和管理功能分離,由DBMS負責數(shù)據(jù)的存儲和管理。由于數(shù)據(jù)在數(shù)據(jù)庫管理系統(tǒng)的管理下采用三層模式結(jié)構(gòu),數(shù)據(jù)的邏輯獨立性和物理獨立性得到了明顯的體現(xiàn)。應用程序員不用關心數(shù)據(jù)的存儲位置和存取方法,只需要知道數(shù)據(jù)的邏輯結(jié)構(gòu),這樣就減輕了負擔。
附件列表
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領域),建議您咨詢相關領域?qū)I(yè)人士。