常見的 NoSQL 數據庫有哪些?一篇詳盡(圖表展示)

關係型數據庫產品很多,如 MySQL、Oracle、Microsoft SQL Sever 等,但它們的基本模型都是關係型數據模型。

非關係型數據庫又稱爲:NoSQL ,沒有統一的模型,而且是非關係型的。

常見的 NoSQL 數據庫包括鍵值數據庫、列族數據庫、文檔數據庫和圖形數據庫,其具體分類和特點如表所示:

1、分類:

NoSQL 數據庫並沒有一個統一的架構,兩種不同的 NoSQL 數據庫之間的差異程度,遠遠超過兩種關係型數據庫之間的不同。

可以說,NoSQL 數據庫各有所長,一個優秀的 NoSQL 數據庫必然特別適用於某些場合或者某些應用,在這些場合中會遠遠勝過關係型數據庫和其他的 NoSQL 數據庫。

分類 相關產品 應用場景 數據模型 優點 缺點
鍵值數據庫 RedisMemcached、Riak 內容緩存,如會話、配置文件、參數等;
頻繁讀寫、擁有簡單數據模型的應用
<key,value> 鍵值對,通過散列表來實現 擴展性好,靈活性好,大量操作時性能高 數據無結構化,通常只被當做字符串或者二進制數據,只能通過鍵來查詢值
列族數據庫 Bigtable、HBase、Cassandra 分佈式數據存儲與管理 以列族式存儲,將同一列數據存在一起 可擴展性強,查找速度快,複雜性低 功能侷限,不支持事務的強一致性
文檔數據庫 MongoDB、CouchDB Web 應用,存儲面向文檔或類似半結構化的數據 <key,value> 
value 是 JSON 結構的文檔
數據結構靈活,可以根據 value 構建索引 缺乏統一查詢語法
圖形數據庫 Neo4j、InfoGrid 社交網絡、推薦系統,專注構建關係圖譜 圖結構 支持複雜的圖形算法 複雜性高,只能支持一定的數據規模

2、特點:

根據上面圖標中列出的常見的 NoSQL 數據庫分類,我們簡單介紹下各類數據庫的特點。

1) 鍵值數據庫

這一類數據庫主要會使用到一個散列表,這個表中有一個特定的鍵和一個指針指向特定的數據。

鍵值模型對於 IT 系統來說,其優勢在於簡單、易部署。鍵值數據庫可以按照鍵對數據進行定位,還可以通過對鍵進行排序和分區,以實現更快速的數據定位。

2) 列族數據庫

列族數據庫通常用來應對分佈式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列,如圖所。

此列族數據庫表中由兩行組成,每一行都有關鍵字 Row Key,每一行由多個列族組成,即 Column-Family-1 和 Column-Family-2,而每個列族由多個列組成。

3) 文檔數據庫

文檔數據庫的靈感來自 Lotus Notes 辦公軟件,它與鍵值數據庫類似。該類型的數據模型是版本化的文檔,文檔以特定的格式存儲,如 JSON。

文檔數據庫可以看作鍵值數據庫的升級版,允許之間嵌套鍵值,如圖所示。

4) 圖形數據庫

圖形數據庫來源於圖論中的拓撲學,以節點、邊及節點之間的關係來存儲複雜網絡中的數據,如圖所示。

這種拓撲結構類似 E-R 圖,但在圖形模式中,關係和節點本身就是數據,而在 E-R 圖中,關係描述的是一種結構。

 

少俠請留步 ... ヾ(◍°∇°◍)ノ゙ ... 
歡迎點贊評論加關注,讓更多人看到學到賺到
更多精彩,請關注我的"今日頭條號":Java雲筆記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章