在本文中,我們將簡要介紹NoSQL數據庫的四種類型。
什么是NoSQL數據庫?一般而言,以不同于關系數據庫的格式存儲數據的數據庫被稱為NoSQL數據庫。NoSQL代表“不僅是 SQL”,它涉及這樣一個事實,即數據庫可以完全使用“無SQL”來存儲和管理數據,或者它可以結合使用新方法(NoSQL)的靈活性和傳統關系系統(SQL)的強大功能。
NoSQL數據存儲有哪些不同類型?NoSQL數據庫可以分為四種類型:
一、鍵值(KV)商店
這是最簡單的NoSQL數據庫類型。在這種類型下,數據以鍵/值對的形式存儲。對于每個鍵,都有一個分配給它的值。每個Key都是唯一的,只接受字符串,而對應于特定Key的值可以接受String、JSON、XML等。由于這種行為,它能夠處理海量數據。
鍵值存儲將數據維護為由索引鍵和值組成的對。KV使用索引Key存儲查詢值。數據庫中的每個項目都存儲在鍵(索引)和值對中。KV存儲類似于關系數據庫,但每個表只有兩列。
一些KV存儲甚至可能允許基本連接來幫助我們掃描,如果有復合連接,它們可能不是合適的選擇。有多個KV Stores可用,每個KV Stores的主要區別在于它們對CAP定理的適應以及它們的內存v/s存儲使用配置。KV存儲具有快速查詢性能,最適合需要內容緩存的應用程序,例如不斷更新前 10 名得分和玩家的游戲網站。
1、特點:一致性;交易;查詢特征;數據結構和縮放。
2、優點:簡單數據模型;可擴展;值可以包括JSON、XML、靈活的模式;;由于它的簡單性,速度極快;最適合數據不高度相關的情況。
3、缺點:沒有關系,創建自己的外鍵;不適合復雜數據;缺乏掃描功能;不適合操作而不是CRUD(創建、讀取、更新、刪除)
二、文檔存儲
文檔存儲是鍵值存儲簡單性的擴展,其中值存儲在結構化文檔(如 XML或JSON)中。文檔存儲使得在面向對象軟件中映射對象變得容易。
文檔數據庫是無模式的,我們不必事先定義模式并遵守它。它允許我們以文檔格式(JSON、XML等)存儲復雜數據。文檔數據庫不支持關系。文檔存儲中的每個文檔都是獨立的,沒有關系完整性。
文檔存儲可以用于KV存儲數據庫的所有用例,但它還有額外的優點,比如沒有僅通過鍵查詢的限制,甚至可以查詢文檔中的屬性,而且每個文檔中的數據可以在不同的格式。例如,一個產品評論網站,零個或多個用戶可以評論每個產品,每個評論都可以被其他用戶評論,零個到多個用戶可以喜歡或不喜歡。
例如,一個產品評論網站,零個或多個用戶可以對每個產品進行評論,每個評論都可以被其他用戶評論,并且可以被零個或多個用戶喜歡或不喜歡。
1、特點:更快的查詢;由于其結構,可以輕松處理大量數據;靈活的索引。
2、優點:簡單而強大的數據模型;可擴展;開放格式;沒有外鍵。
3、缺點:不適用于關系數據;查詢僅限于鍵和索引;Map Reduce 用于更重要的查詢
三、列族數據存儲或寬列數據存儲
寬列數據存儲采用混合方法,將關系數據庫的聲明性特征游戲與基于鍵值對且完全可變的鍵值存儲模式相結合。寬列數據庫將數據表存儲為數據列的部分而不是數據行。列族數據庫將列族中的數據存儲為具有許多與行鍵關聯的列的行。列族是一組經常一起訪問的相關數據。
1、特點:多維密鑰存儲;本質上是持久的;分散式;高靈活性。
2、優點:支持半結構化數據;自然索引;可擴展。
3、缺點:不適用于關系數據。
四、圖數據庫
圖數據庫的特定用途是存儲面向圖的數據結構。圖數據庫是任何提供無索引鄰接的存儲系統。這意味著每個節點都包含一個指向其相鄰元素的直接指針,并且不需要進行索引查找。隨著節點數量的增加,一跳的成本保持不變。
圖數據庫針對遍歷連接數據進行了優化,例如遍歷社交網絡上的聯系人列表以找出連接程度。圖數據庫通常帶有靈活的數據模型,這意味著不需要定義邊和頂點的類型。
1、特點:靈活性;敏捷;提高性能,即使有大量數據。
2、優點:極其強大;連接的數據在本地索引;可以提供酸;實時結果;敏捷結構。
3、缺點:難以橫向擴展,但可以縱向擴展。
總結:NoSQL數據庫的四種類型分別為鍵值 (KV) 存儲、文檔存儲、列族數據存儲和圖形數據庫。
審核編輯:湯梓紅
-
SQL
+關注
關注
1文章
750瀏覽量
43902 -
數據庫
+關注
關注
7文章
3712瀏覽量
64030 -
nosql
+關注
關注
0文章
38瀏覽量
9961
發布評論請先 登錄
相關推薦
評論