簡而言之,數(shù)據(jù)庫是用于存儲數(shù)據(jù)的倉庫,該倉庫根據(jù)特定規(guī)則將數(shù)據(jù)存儲在磁盤上。為了方便用戶組織和管理數(shù)據(jù),它提供了一個數(shù)據(jù)庫管理系統(tǒng)。通過數(shù)據(jù)庫管理系統(tǒng),用戶可以有效地組織和管理存儲在數(shù)據(jù)庫中的數(shù)據(jù)。那么數(shù)據(jù)庫系統(tǒng)又是什么呢?數(shù)據(jù)庫的種類又有哪些呢?在了解這兩個問題之前,先來看看數(shù)據(jù)庫是什么吧。
數(shù)據(jù)庫系統(tǒng)是什么?
數(shù)據(jù)庫(DataBase,DB)提供了一個存儲空間來存儲各種數(shù)據(jù),可以將數(shù)據(jù)庫視為一個存儲數(shù)據(jù)的容器。一個數(shù)據(jù)庫可能包含許多文件,一個數(shù)據(jù)庫系統(tǒng)中通常包含許多數(shù)據(jù)庫。
數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)是用戶創(chuàng)建、管理和維護數(shù)據(jù)庫時所使用的軟件,位于用戶和操作系統(tǒng)之間,對數(shù)據(jù)庫進行統(tǒng)一管理。DBMS能定義數(shù)據(jù)存儲結(jié)構(gòu),提供數(shù)據(jù)的操作機制,維護數(shù)據(jù)庫的安全性、完整性和可靠性。
數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)由硬件和軟件共同構(gòu)成。硬件主要用于存儲數(shù)據(jù)庫中的數(shù)據(jù),包括計算機、存儲設(shè)備等。軟件部分主要包括數(shù)據(jù)庫管理系統(tǒng)、支持數(shù)據(jù)庫管理系統(tǒng)運行的操作系統(tǒng),以及支持多種語言進行應(yīng)用開發(fā)的訪問技術(shù)等。
DBMS(數(shù)據(jù)庫管理系統(tǒng))主要通過數(shù)據(jù)的保存格式進行分類,現(xiàn)階段主要分為以下幾種類型。
層次數(shù)據(jù)庫(Hierarchical?Database,HDB)
層次數(shù)據(jù)庫是最早研制成功的數(shù)據(jù)庫系統(tǒng),它把數(shù)據(jù)通過層次結(jié)構(gòu)(樹形結(jié)構(gòu))的方式表現(xiàn)出來。層次數(shù)據(jù)庫曾經(jīng)是數(shù)據(jù)庫的主流,但隨著關(guān)系數(shù)據(jù)庫的出現(xiàn)和普及,現(xiàn)在已經(jīng)很少使用了。
比較具有代表性的層次數(shù)據(jù)庫是IMS(InformationManagementSystem)數(shù)據(jù)庫,由IBM公司研制成功。
關(guān)系型數(shù)據(jù)庫(Relational?Database,RDB)
關(guān)系型數(shù)據(jù)庫是現(xiàn)在應(yīng)用最廣泛的數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫在1969年誕生,可謂歷史悠久。和Excel工作表一樣,關(guān)系型數(shù)據(jù)庫也采用由行和列組成的二維表來管理數(shù)據(jù),所以簡單易懂。同時,它還使用SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)對數(shù)據(jù)進行操作。
面向文檔(Document-Oriented)數(shù)據(jù)庫
文檔型數(shù)據(jù)庫的靈感來自于LotusNotes辦公軟件,和最后一種鍵值存儲數(shù)據(jù)庫類似。文檔型數(shù)據(jù)庫可以看作是鍵值數(shù)據(jù)庫的升級版,允許之間嵌套鍵值。而且文檔型數(shù)據(jù)庫比鍵值數(shù)據(jù)庫的查詢效率更高。
面向文檔數(shù)據(jù)庫會將數(shù)據(jù)以文檔的形式存儲。每個文檔都是一系列數(shù)據(jù)項的集合。每個數(shù)據(jù)項都有一個名稱與對應(yīng)的值,值既可以是簡單的數(shù)據(jù)類型,如字符串、數(shù)字和日期等;也可以是復(fù)雜的類型,如有序列表和關(guān)聯(lián)對象。
數(shù)據(jù)存儲的最小單位是文檔,同一個表中存儲的文檔屬性可以是不同的,數(shù)據(jù)可以使用XML、JSON或者JSONB等多種形式存儲。
具有代表性的面向文檔數(shù)據(jù)庫有MongDB和CouchDB。
列存儲(Column-oriented)數(shù)據(jù)庫
列存儲數(shù)據(jù)庫將數(shù)據(jù)存儲存在列族(columnfamily)中,一個列族用來存儲經(jīng)常被一起查詢的相關(guān)數(shù)據(jù)。例如,如果有一個Person類,我們經(jīng)常會一起查詢他們的姓名和年齡而不是薪資。這種情況下,姓名和年齡就會被放入一個列族中,而薪資則在另一個列族中。
列存儲數(shù)據(jù)庫通常用來應(yīng)對分布式存儲的海量數(shù)據(jù)。具有代表性的列存儲數(shù)據(jù)庫有Cassandra和HBase。
XML數(shù)據(jù)庫(XML?Database,XMLDB)
XML數(shù)據(jù)庫是一種支持對XML(標準通用標記語言下的一個應(yīng)用)格式文檔進行存儲和查詢等操作的數(shù)據(jù)管理系統(tǒng)。在系統(tǒng)中,開發(fā)人員可以對數(shù)據(jù)庫中的XML文檔進行查詢、導(dǎo)出和指定格式的序列化。
鍵值存儲數(shù)據(jù)庫(Key-Value?Store,KVS)
鍵值存儲數(shù)據(jù)庫是用來保存查詢所使用的主鍵(Key)和值(Value)的組合的數(shù)據(jù)庫。具有編程語言知識的讀者可以把它想象成關(guān)聯(lián)數(shù)組或者散列(hash)。
以上就是關(guān)于數(shù)據(jù)庫系統(tǒng)是什么,以及數(shù)據(jù)庫的種類有哪些的全部內(nèi)容,想了解更多關(guān)于數(shù)據(jù)庫的信息,請繼續(xù)關(guān)注中培偉業(yè)。