數(shù)據(jù)庫(kù)是它是大量數(shù)據(jù)的集合,這些數(shù)據(jù)長(zhǎng)時(shí)間存儲(chǔ)在計(jì)算機(jī)中,井井有條,可共享且受統(tǒng)一管理。數(shù)據(jù)庫(kù)是一種以某種方式存儲(chǔ)在一起的數(shù)據(jù)集合,可以與多個(gè)用戶共享,具有最小的可能冗余,并且獨(dú)立于應(yīng)用程序。可以將其視為電子文件柜-存儲(chǔ)電子文件的地方,用戶可以在文件中添加,查詢,更新和刪除數(shù)據(jù)。那么數(shù)據(jù)庫(kù)有哪些種類?
DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))主要通過(guò)數(shù)據(jù)的保存格式進(jìn)行分類,現(xiàn)階段主要分為以下幾種類型。
層次數(shù)據(jù)庫(kù)(Hierarchical?Database,HDB)
層次數(shù)據(jù)庫(kù)是最早研制成功的數(shù)據(jù)庫(kù)系統(tǒng),它把數(shù)據(jù)通過(guò)層次結(jié)構(gòu)(樹形結(jié)構(gòu))的方式表現(xiàn)出來(lái)。層次數(shù)據(jù)庫(kù)曾經(jīng)是數(shù)據(jù)庫(kù)的主流,但隨著關(guān)系數(shù)據(jù)庫(kù)的出現(xiàn)和普及,現(xiàn)在已經(jīng)很少使用了。
比較具有代表性的層次數(shù)據(jù)庫(kù)是 IMS(Information Management System)數(shù)據(jù)庫(kù),由 IBM 公司研制成功。
關(guān)系型數(shù)據(jù)庫(kù)(Relational?Database,RDB)
關(guān)系型數(shù)據(jù)庫(kù)是現(xiàn)在應(yīng)用最廣泛的數(shù)據(jù)庫(kù)。關(guān)系型數(shù)據(jù)庫(kù)在 1969 年誕生,可謂歷史悠久。和 Excel 工作表一樣,關(guān)系型數(shù)據(jù)庫(kù)也采用由行和列組成的二維表來(lái)管理數(shù)據(jù),所以簡(jiǎn)單易懂。同時(shí),它還使用 SQL(Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言)對(duì)數(shù)據(jù)進(jìn)行操作。
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)采用表格的存儲(chǔ)方式,數(shù)據(jù)以行和列的方式進(jìn)行存儲(chǔ),要讀取和查詢都十分方便。下表是一些在關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
比較具有代表性的關(guān)系型數(shù)據(jù)庫(kù)有 Oracle Database、SQL Server、DB2、PostgreSQL 和MySQL。
面向文檔(Document-Oriented)數(shù)據(jù)庫(kù)
文檔型數(shù)據(jù)庫(kù)的靈感來(lái)自于 Lotus Notes 辦公軟件,和最后一種鍵值存儲(chǔ)數(shù)據(jù)庫(kù)類似。文檔型數(shù)據(jù)庫(kù)可以看作是鍵值數(shù)據(jù)庫(kù)的升級(jí)版,允許之間嵌套鍵值。而且文檔型數(shù)據(jù)庫(kù)比鍵值數(shù)據(jù)庫(kù)的查詢效率更高。
面向文檔數(shù)據(jù)庫(kù)會(huì)將數(shù)據(jù)以文檔的形式存儲(chǔ)。每個(gè)文檔都是一系列數(shù)據(jù)項(xiàng)的集合。每個(gè)數(shù)據(jù)項(xiàng)都有一個(gè)名稱與對(duì)應(yīng)的值,值既可以是簡(jiǎn)單的數(shù)據(jù)類型,如字符串、數(shù)字和日期等;也可以是復(fù)雜的類型,如有序列表和關(guān)聯(lián)對(duì)象。
數(shù)據(jù)存儲(chǔ)的最小單位是文檔,同一個(gè)表中存儲(chǔ)的文檔屬性可以是不同的,數(shù)據(jù)可以使用XML、JSON或者JSONB等多種形式存儲(chǔ)。
具有代表性的面向文檔數(shù)據(jù)庫(kù)有 MongDB 和 CouchDB。
列存儲(chǔ)(Column-oriented)數(shù)據(jù)庫(kù)
列存儲(chǔ)數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)存在列族(column family)中,一個(gè)列族用來(lái)存儲(chǔ)經(jīng)常被一起查詢的相關(guān)數(shù)據(jù)。例如,如果有一個(gè) Person 類,我們經(jīng)常會(huì)一起查詢他們的姓名和年齡而不是薪資。這種情況下,姓名和年齡就會(huì)被放入一個(gè)列族中,而薪資則在另一個(gè)列族中。
列存儲(chǔ)數(shù)據(jù)庫(kù)通常用來(lái)應(yīng)對(duì)分布式存儲(chǔ)的海量數(shù)據(jù)。具有代表性的列存儲(chǔ)數(shù)據(jù)庫(kù)有 Cassandra 和 HBase。
XML 數(shù)據(jù)庫(kù)(XML?Database,XMLDB)
XML 數(shù)據(jù)庫(kù)是一種支持對(duì) XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)格式文檔進(jìn)行存儲(chǔ)和查詢等操作的數(shù)據(jù)管理系統(tǒng)。在系統(tǒng)中,開發(fā)人員可以對(duì)數(shù)據(jù)庫(kù)中的 XML 文檔進(jìn)行查詢、導(dǎo)出和指定格式的序列化。
鍵值存儲(chǔ)數(shù)據(jù)庫(kù)(Key-Value?Store,KVS)
鍵值存儲(chǔ)數(shù)據(jù)庫(kù)是用來(lái)保存查詢所使用的主鍵和值的組合的數(shù)據(jù)庫(kù)。具有編程語(yǔ)言知識(shí)的讀者可以把它想象成關(guān)聯(lián)數(shù)組或者散列。
近年來(lái),具有代表性的鍵值存儲(chǔ)數(shù)據(jù)庫(kù)有 Redis、Memcached 和 MemcachedDB。關(guān)于數(shù)據(jù)庫(kù)有哪些種類的內(nèi)容介紹到這里就結(jié)束了,想了解更多關(guān)于數(shù)據(jù)庫(kù)的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。