CGFT大數據技術原理中NoSQL的四大類型是什么?今天跟著小編一起看看。

1、鍵值數據庫

鍵值數據庫(Key-Value Database)會使用一個哈希表,這個表中有一個特定的Key和一個指針指向特定的Value。Key可以用來定位Value,即存儲和檢索具體的Value。Value對數據庫而言是透明不可見的,不能對Value進行索引和查詢,只能通過Key進行查詢。

Value可以用來存儲任意類型的數據,包括整型、字符型、數組、對象等。在存在大量寫操作的情況下,鍵值數據庫可以比關系數據庫取得明顯更好的性能。因為,關系數據庫需要建立索引來加速查詢,當存在大量寫操作時,索引會發生頻繁更新,由此會產生高昂的索引維護代價。

cgft

關系數據庫通常很難水平擴展,但是,鍵值數據庫天生具有良好的伸縮性,理論上幾乎可以實現數據量的無限擴容。鍵值數據庫可以進一步劃分為內存鍵值數據庫和持久化(Persistent)鍵值數據庫。內存鍵值數據庫把數據保存在內存,如Memcached和Redis;持久化鍵值數據庫把數據保存在磁盤,如BerkeleyDB、Voldmort和Riak。

2、列族數據庫

列族數據庫一般采用列族數據模型,數據庫由多個行構成,每行數據包含多個列族,不同的行可以具有不同數量的列族,屬于同一列族的數據會被存放在一起。每行數據通過行鍵進行定位,與這個行鍵對應的是一個列族,從這個角度來說,列族數據庫也可以被視為一個鍵值數據庫。列族可以被配置成支持不同類型的訪問模式,一個列族也可以被設置成放入內存當中,以消耗內存為代價來換取更好的響應性能。

3、文檔數據庫

在文檔數據庫中,文檔是數據庫的*小單位。雖然每一種文檔數據庫的部署都有所不同,但是,大都假定文檔以某種標準化格式封裝并對數據進行加密,同時用多種格式進行解碼,包括XML、YAML、JSON和BSON等,或者也可以使用二進制格式(如PDF、微軟Office文檔等)。

文檔數據庫通過鍵來定位一個文檔,因此可以看成鍵值數據庫的一個衍生品,而且前者比后者具有更高的查詢效率。對于那些可以把輸人數據表示成文檔的應用而言,文檔數據庫是*合適的一個文檔可以包含*復雜的數據結構,如嵌套對象,并且不需要采用特定的數據模式,每個文檔可能具有完全不同的結構。文檔數據庫既可以根據鍵(Key)來構建索引,也可以基于文檔內容來構建索引。

尤其是基于文檔內容的索引和查詢這種能力,是文檔數據庫不同于鍵值數據庫的地方,因為,在鍵值數據庫中,值(Value)對數據庫是透明不可見的,不能根據值來構建索引。文檔數據庫主要用于存儲并檢索文檔數據,當需要考慮很多關系和標準化約束以及需要事務支持時,傳統的關系數據庫是更好的選擇。

4、圖形數據庫

圖形數據庫以圖論為基礎,一個圖是一個數學概念,用來表示一個對象集合,包括頂點以連接頂點的邊。圖形數據庫使用圖作為數據模型來存儲數據,完全不同于鍵值、列族和文檔數據模型,可以高效地存儲不同頂點之間的關系。圖形數據庫專門用于處理具有高度相互關聯關系的數據,可以高效地處理實體之間的關系,比較適合于社交網絡、模式識別、依賴分析、推薦系統以及路徑尋找等問題。