02.21 5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

數據是一個企業的核心資產,幾乎所有的企業應用系統都是圍繞數據來進行的,包括數據的增刪改查,數據對企業,甚至國家來說,有著不可估量的價值,比如,一個企業的所有客戶的信息,一個投資機構的投入和收益信息,BAT公司的應用系統的源代碼,京東的物流配送信息等等。在數據積累中,雖然有些把數據作為文本文件來保存的,但大多數情況下,為了方便地管理和提取數據,一般都會採用數據庫來積累數,隨著技術的發展,業務需求的多樣化,出現了各種各樣的數據庫類型。

  • 關係數據庫

  • 列式數據庫

  • 鍵值數據庫

  • 圖像圖形數據庫

  • 分佈式文檔數據庫

下面分別一一說明其代表的產品以及其主要特點。

5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

關係數據庫

關係型數據一直為我們所用,比如Oracle,MySQL,SQL Server,Postgress.保存到關係數據庫的數據必須滿足一定要求,用通用的話來說就是滿足一定的數據範式,比如主鍵,外鍵,數據的冗餘;舉個例子,學生的信息可以保存到數據庫中,班級的信息也可以保存到數據庫中,而且一個班級包括很多學生,他們之間通過外鍵還可以建立一種1對多的對應關係,這些信息和關係可以通過關係型數據庫進行存儲,值得注意的是,關係型數據庫,需要預先定義其表結構,而且存儲前需要定義其對應的數據類型或者長度,一旦有新的屬性加入,就要修改其表的結構。傳統的關係型數據庫其實就是行式數據庫,就是一行一行的方式來存儲信息的。

5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

列式數據庫

列式數據庫一般應用於對應大量的字符串數據,實例如HBase,cassandra,Sybase IQ,HP Vertica、EMC Greenplum等。列式數據庫從一開始就是面向大數據環境下數據倉庫的數據分析而產生,主要適合於批量數據處理和即時查詢。下面這2張圖形象的說明了什麼是列式數據庫,什麼是行式數據庫已經兩者之間的區別。

5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

  • 極高的裝載速度 (最高可以等於所有硬盤IO 的總和,基本是極限了)

  • 適合大量的數據而不是小數據

  • 實時加載數據僅限於增加(刪除和更新需要解壓縮Block 然後計算然後重新壓縮儲存)

  • 高效的壓縮率,不僅節省儲存空間也節省計算內存和CPU,為什麼具有高壓縮率呢?因為存儲的數據類型是一樣的。

  • 非常適合做聚合操作。

鍵值數據庫

即Key-Value存儲,簡稱KV存儲。它是NoSQL存儲的一種方式。它的數據按照鍵值對的形式進行組織,索引和存儲。KV存儲非常適合不涉及過多數據關係業務關係的業務數據,同時能有效減少讀寫磁盤的次數,比SQL數據庫存儲擁有更好的讀寫性能。典型的產品有: 亞馬遜的DynamoDB,redis。

5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

圖形數據庫

圖形數據庫不是專門用來存儲圖形圖像的,而是因為其用圖狀結構來維持其數據之間的關係,所以叫做圖形數據庫。Neo4j,Sones就是其典型代表。

在圖數據結構中,只有兩種基本的數據類型 即節點(Node)和關係(Relationship),節點(Node)可以擁有屬性,關係(Relationship)也可以擁有屬性 ,屬性都是以鍵值對的方式存儲,節點(Node)與節點(Node)的聯繫通過關係(Relationship)進行建立,他們建立的關係是有方向的。

5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

Neo4j是一個高性能的,NOSQL圖形數據庫,它將結構化數據存儲在網絡上而不是表中。Neo4j也可以被看作是一個高性能的圖引擎,該引擎具有成熟數據庫的所有特性。程序員工作在一個面向對象的、靈活的網絡結構下而不是嚴格、靜態的表中——但是他們可以享受到具備完全的事務特性、企業級的數據庫的所有好處。Neo4j因其嵌入式、高性能、輕量級等優勢,越來越受到關注。其支持幾乎所有的主流的開發語言

5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

分佈式文檔存儲數據庫

不需要定義,應用靈活,文檔存儲支持對結構化數據的訪問,不同於關係模型的是,文檔存儲沒有強制的架構。與關係模型不同的是,文檔存儲模型支持嵌套結構。例如,文檔存儲模型支持XML和JSON文檔,字段的“值”又可以嵌套存儲其它文檔。文檔存儲模型也支持數組和列值鍵。與鍵值存儲不同的是,文檔存儲關心文檔的內部結構。這使得存儲引擎可以直接支持二級索引,從而允許對任意字段進行高效查詢。支持文檔嵌套存儲的能力,使得查詢語言具有搜索嵌套對象的能力,XQuery就是一個例子。MongoDB通過支持在查詢中指定JSON字段路徑實現類似的功能。比如,CouchDB,MongoDB等。


5大數據庫種類,如果你全部在實際項目中用過,絕對是大神!

  • 如果你想繼續深入的話,請給我在文末留言,如果大於10人我將繼續深入下去。

  • 如果你有任何疑問需要探討,歡迎在文章末尾留言,我儘量在第一時間個大家回覆。


分享到:


相關文章: