中國通信建設集團設計院有限公司第四分公司 李業田
引言:隨著大數據概念的興起,關于關系型數據庫、分布式數據庫、MPP數據庫、列式數據庫等基于不同范疇對數據庫的分類與叫法也層出不窮,那么這些各種類型的數據庫是什么區別呢,它們之間的關系又是怎么樣的,本文將帶你一起理解各種數據庫的定義與異同。
(1)關系型數據庫
即處理結構化數據的數據庫,標準數據查詢語言SQL就是一種基于關系數據庫的語言,這種語言執行關系數據庫中數據的檢索和操作。簡單的可以理解為二維數據庫,表的格式就如Excel,有行有列。
(2)非關系型數據庫
即處理非結構化數據的數據庫,例如HTML、XML、圖片、音頻、視頻等不能用傳統的行列格式的二維表來表示的非結構化數據,又叫NoSQL數據庫,NoSQL數據庫不支持Join處理,各個數據都是獨立設計的,把數據分散在多個服務器上,減少了每個服務器上的數據量,即使要處理大量數據的寫入,也變得更加容易,數據的讀入操作也同樣更加容易。
(1)集中式數據庫
集中式數據庫一般是指數據進行集中存儲的數據庫,集中式數據存儲的主要特點是能把所有數據保存在一個地方,各地遠程終端通過網絡訪問中央服務器,例如銀行的自動提款機(ATM)。
(2)分布式數據庫
狹義上來講,分布式數據庫是將原來集中式數據庫中的數據分散存儲到多個通過網絡連接的存儲節點上,以獲取更大的存儲容量和更高的并發訪問量。廣義上來說,以下三種定義都可以稱之為分布式數據庫:
1)物理數據存儲位置分散到各地的數據庫;
2)實現了分布式計算的數據庫;
3)基于分布式文件系統(HDFS)的數據庫。
在大數據的概念中,一般把基于分布式文件系統(HDFS)的數據庫定義為分布式數據庫。
(1)MPP數據庫
MPP即Massively Parallel Processing大規模并行處理,MPP數據庫仍然屬于關系型數據庫,是一種新型的數據庫集群,重點面向行業大數據,采用Shared Nothing(無共享)架構,每個Node節點的地位是完全一樣的,通過列存儲、粗粒度索引等多項大數據處理技術,再結合MPP架構高效的分布式計算模式,完成對分析類應用的支撐,運行環境多為低成本PC Server,具有高性能和高擴展性的特點,在企業分析類應用領域獲得極其廣泛的應用,這類MPP產品可以有效支撐PB級別的結構化數據分析,這是傳統數據庫技術無法勝任的,無共享架構如圖1所示:

圖1
(2)Master/Slave數據庫
Master/Slave數據庫即主從架構的數據庫,是基于客戶機/服務器模式的架構,也就是對于Master的機器,可以進行寫入操作,而對于每個Node節點來說,只充當Slave功能進行數據讀取操作,Hadoop平臺中的Hbase數據庫就是采用了Master/Slave架構來搭建的集群,Master/Slave架構如圖2所示:

圖2
(1)列式數據庫
列式數據庫是以列相關存儲架構進行數據存儲的數據庫,主要適合于批量數據處理和即時查詢。面向列的數據庫具有高擴展性,即使數據增加也不會降低相應的處理速度(特別是寫入速度),所以它主要應用于需要處理大量數據的情況。
(2)行式數據庫
普通的關系型數據庫都是以行為單位來存儲數據的,擅長以行為單位的讀入處理,比如特定條件數據的獲取。但是也存在一些關系型數據庫是列式存儲架構。
(1) Oracle、SQL server、DB2、Mysql、Sybase:關系型數據庫、集中式數據庫、行式數據庫。
(2)Hbase:非關系型數據庫、分布式數據庫、Master/Slave數據庫、列式數據庫。
(3)EMC Greenplum、HP Vertica、Google Dremel:關系型數據庫、分布式數據庫、MPP數據庫、列式數據庫。
(4)基于Mysql的Infinidb、基于Sybase的Sybase IQ:關系型數據庫、集中式數據庫、列式數據庫。
(5)Mongodb:非關系型數據庫、分布式數據庫、列式數據庫。