Nosql 數據管理系統與模型的比較

Nosql 數據管理系統與模型的比較

英文原文:A Comparison Of NoSQL Database Management Systems And Models

標籤: NoSQL Redis Riak memcached
參與翻譯(5人)

簡介

NoSQL數據嘗試着提供那些關係數據庫所不能提供的功能,無論是爲了存儲簡單的鍵值對(key-value),更短的時間長度,高速緩存,還是保持數據的非結構化集合(比如collections),這些都是在關係型數據庫和SQL(Structured Query Language)中很難實現的。

在這篇DigitalOcean的文章中,我們將介紹各種流行的NoSQL數據庫系統,介紹他們的作用以及功能,因而幫助你,根據你的易用系統的需求來決定選擇哪一個NoSQL數據庫。

搖光
搖光
翻譯於 11天前

0人頂

 翻譯的不錯哦!

術語表

1. 數據庫管理系統

2. NoSQL 數據庫管理系統

  1. 基於鍵/值

  2. 基於列

  3. 基於文檔

  4. 基於圖形

3. 基於鍵/值的 NoSQL 數據庫管理系統

  1. 流行的基於鍵/值的數據庫

  2. 何時使用

4. 基於列 NoSQL 數據庫管理系統

  1. 流行的基於列的數據庫

  2. 何時使用

5. 基於文檔的 NoSQL 數據庫管理系統

  1. 流行的基於文檔的數據庫

  2. 何時使用

6. 基於圖形的 NoSQL 數據庫管理系統

  1. 流行的基於圖形的數據庫

  2. 何時使用

7. NoSQL數據庫管理系統與關係型數據庫管理系統的比較

  1. 何時使用 NoSQL Databases

數據庫管理系統

數據庫是爲各種不同的信息(數據)提供邏輯上模型化的存儲空間。除了無模式以外的每個數據庫,都有一個模型爲所處理的數據提供結構。數據庫管理系統是管理各種形狀,大小和類型的數據庫的應用程序(或庫)。

注: 要學習更多數據庫管理系統知識, 請查閱我們的文章: 瞭解數據庫(http://link_to_10_1_understanding_databases).

趙亮-碧海情天
趙亮-碧海情天
翻譯於 11天前

1人頂

 翻譯的不錯哦!

其它翻譯版本(1)

NoSQL 數據庫管理系統

在過去的十年裏,針對各種應用,基於各種理由,大部分開發人員或系統管理員都選擇了關係型數據。儘管沒有足夠的靈活性,但是由於非常多的關係型數據庫(RDBMS)的強大的特性,允許創建,查詢以及使用複雜的數據庫,已經足以應對絕大多數的需求。但是一直到不久前,各種不同的需求開始大量上升。

"NoSQL"這個概念是在十年前提出的,很有意思的是NoSQL被認定爲另外一種關係數據庫,然而在NoSQL背後是有不同的想法的,就是擯棄標準化SQL的使用。把各種其他的非關係型數據庫作爲NoSQL數據庫的這種想法,在未來的幾年裏,這種思想會持續的增長的。

搖光
搖光
翻譯於 11天前

1人頂

 翻譯的不錯哦!

其它翻譯版本(1)

從設計上,NoSQL 數據庫和管理系統都是非關係型(也稱非範式型)的。它們並非基於同一種模型(如關係型數據庫的關係模型),而是每種數據庫依據其不同的功能目標,選擇了不同的模型。

NoSQL 數據庫不同的操作模型和功能系統幾乎有一大把:

  • 鍵 / 值:

如 Redis,MemcacheDB等。

  • 列:

如 Cassandra,HBase等。

  • 文檔:

如 MongoDB,Couchbase等。

  • 圖形:

如 OrientDB,Neo4J等。

爲了更好地理解每種數據庫管理系統的不同角色和底層技術,我們快速地過一遍這4種操作模型吧。

戴倉薯
戴倉薯
翻譯於 11天前

0人頂

 翻譯的不錯哦!

基於鍵 / 值

在我們瞭解 NoSQL 模型的旅程中,第一站先來到基於鍵/值對的數據庫系統,因爲這可以說是最基礎和最骨幹的 NoSQL 實現。

這一類的數據庫的原理在於鍵值對應,類似字典類型(dictionary)。其中沒有結構,也沒有關係。在連接上數據庫服務器(如 Redis)後,應用程序可以聲明一個鍵(如 the_answer_to_life),並且給出對應的值(如 42)。此後只要提供同樣的鍵,就能檢索出這個值。

鍵/值數據庫系統一般是用來快速存儲基礎信息的,有時也用來存儲不那麼基礎的信息——之前經過處理,例如,CPU 和內存的密集計算。這類數據庫極其快速,效率很高,並且通常很容易擴展。

:在計算機術語中,字典類型通常指的是一種特定的數據對象。這種類型由一系列獨立的鍵值對集合組成。

戴倉薯
戴倉薯
翻譯於 11天前

1人頂

 翻譯的不錯哦!

其它翻譯版本(1)

基於列的存儲

列存儲的NoSQL數據管理系統是基於簡單的鍵/值對來實現的。

儘管在網上看起來非常複雜並且難以理解,但這些數據庫創建集合卻非常簡單,它們使用鍵/值對來匹配一條記錄。

不像傳統的關係型數據庫那樣需要定義模式,列存儲的NoSQL數據庫不需要提前知道數據的結構,它們可以直接插入含有一列或者多列的記錄,而且每條記錄包含的列屬性可以不同。

Triangle23
Triangle23
翻譯於 11天前

1人頂

 翻譯的不錯哦!

其它翻譯版本(1)

基本上,基於列的NoSQL數據庫就是個二維數組,每個鍵(即 行/記錄)都連接有一個或多個 鍵/值對,這些管理系統允許非常巨大和非結構化的數據被保存和使用(例如有非常多信息的記錄)。

這些數據庫通常用在當必須存儲大量信息記錄,簡單的 鍵/值對 不足以應對時。基於列實現的數據庫管理系統,模式自由的模型,擴容性非常好。

趙亮-碧海情天
趙亮-碧海情天
翻譯於 10天前

0人頂

 翻譯的不錯哦!

基於文檔

基於文檔的 NoSQL 數據庫系統,就像一波瞬間席捲了許多人的最新潮流。這類數據庫系統工作原理與基於列的數據庫類似;然而,它們支持更深層的嵌套,能得到複雜的結構(例如,文檔包含在一個文檔裏,而這個文檔又包含在另一個文檔裏)。

文檔克服了基於列的數據庫中鍵/值嵌套只能有一級或兩級的限制。基本上,無論多麼複雜、無論什麼形態的結構都能形成一個文檔,而文檔就可以用這類數據庫系統來儲存。

儘管它們有這樣強大的特性,並且支持以獨立的鍵來查詢記錄,基於文檔的數據庫系統相比其他系統仍然有自己的問題和不足之處。例如,檢索記錄中的一個值就需要牽扯出整個記錄,update 也是如此,而這都會嚴重地影響性能。

戴倉薯
戴倉薯
翻譯於 10天前

0人頂

 翻譯的不錯哦!

基於圖形

最後來看看 NoSQL 數據庫系統中的奇葩——基於圖形的系統。

基於圖形的數據庫系統模型表示數據的方式與上文提到的三種模型截然不同。他們使用樹形的結構(也就是所說的“圖形”),包括結點和通過關係(relation)相互連接的邊。

與數學類似,某些特定操作在這類模型上會格外簡單。這要感謝樹形結構能鏈接信息、將相關信息(例如相關聯的人)分組的本質。

這類數據庫通常應用於關係(connection)需要建立明確邊界的場景。例如,當你註冊隨便一個社交網絡時,你朋友與你的關係,和他們朋友的朋友與你的關係,使用基於圖形的數據庫系統來處理會簡單很多。

戴倉薯
戴倉薯
翻譯於 10天前

0人頂

 翻譯的不錯哦!

基於鍵 / 值的 NoSQL 數據庫系統

鍵/值型的數據存儲往往表現很好,容易使用,並且通常有很好的擴展性。

流行的基於鍵 / 值的數據庫

一些流行的基於鍵/值的數據存儲如下:

  • Redis:

內存中的鍵/值存儲,附有可選的持久化功能。

  • Riak:

高度分佈式的,自我複製(replicated)的鍵/值存儲。

  • Memcached / MemcacheDB:

基於內存的分佈式鍵/值存儲。

何時使用?

基於鍵/值的數據存儲一些常見的使用場景有:

  • 緩存:

快速緩存數據,以供將來——可能是頻繁地——使用。

  • 用作隊列:

部分鍵/值存儲(例如 Redis)支持list,set,queue等類型。

  • 分佈式信息 / 任務處理:

可以用來實現觀察者/發佈訂閱(Pub/Sub)模式。

  • 保存活躍狀態信息:

需要維護一個狀態的應用很適合使用鍵/值存儲。

基於列的 NoSQL 數據庫系統

基於列的數據存儲非常強大,它們能夠可靠地存儲非常大規模的重要數據。儘管在數據的組成方面並不“靈活”,這類數據庫仍然功能強大,性能良好。

戴倉薯
戴倉薯
翻譯於 10天前

0人頂

 翻譯的不錯哦!

流行的基於列的數據庫

一些流行的基於列的數據存儲有:

  • Cassandra:

建立在 BigTable 和 DynamoDB 基礎上的基於列的數據存儲。

  • HBase:

爲 Apache Hadoop 設計的數據存儲,創意來自 BigTable。

何時使用?

基於列的數據存儲的一些流行用例:

  • 保存非結構化和非易失性的信息:

如果需要長時間保存一個巨大的屬性和值的集合,基於列的數據存儲是非常方便的。

  • 擴容:

基於列的數據存儲天生是高度可擴容的。他們可以處理那些有可怕數量的信息。

基於文檔的 NoSQL 數據庫管理系統

基於文檔的數據存儲非常適於保存許多不相關的複雜信息,不同結構之間可以有高度的可變性。

趙亮-碧海情天
趙亮-碧海情天
翻譯於 10天前

0人頂

 翻譯的不錯哦!

流行的基於文檔的數據庫

流行的一些基於文檔的數據存儲:

  • Couchbase:

基於JSON, 兼容“內存緩衝”的基於文檔的數據存儲。

  • CouchDB:

一個衝破性的基於文檔的數據存儲。

  • MongoDB:

一個非常流行和功能很好的數據庫。

使時使用:

使用基於文檔的數據存儲的一些普遍情況:

  • 嵌套的信息:

基於文檔的數據存儲允許很深的嵌套,和複雜的數據結構。

  • JavaScript友好性:

基於文檔的數據存儲的最具決定性的功能之一是他們與應用程序交互的方式:利用對JS友好的JSON。

基於圖形的NoSQL數據庫管理系統

基於圖形的數據存儲提供了一個非常獨特的功能,是任何其他數據庫管理系統無法相比的。

趙亮-碧海情天
趙亮-碧海情天
翻譯於 10天前

0人頂

 翻譯的不錯哦!

流行的基於圖形的數據庫

一些流行的基於圖形的數據庫如下:

  • OrientDB:

一個非常快速的基於圖形和文檔的混合 NoSQL 數據存儲,使用 Java 編寫,包含幾種不同的操作模式。

  • Neo4J:

一個非範式的,基於圖形的 Java 編寫的數據存儲,非常熱門而強大。

何時使用?

基於圖形的數據庫一些常見的使用情景如下:

  • 處理複雜的關聯信息:

如同在簡介中說過的一樣,圖形數據庫在處理複雜但相關聯的信息方面極其高效而易用。例如兩個實體和與它們不同層次間接連接的實體之間的關聯。

  • 建模和處理分類:

圖形數據庫尤擅牽涉到關係的各種情形。以關係的方式來建模數據、爲各種數據分類,用這類數據庫可以處理得很好。

戴倉薯
戴倉薯
翻譯於 10天前

0人頂

 翻譯的不錯哦!

NoSQL數據庫與關係數據庫管理系統的比較

爲了對NoSQL解決方案不同於關係數據庫管理系統之處有一個清晰畫面,讓我們創建一個快速的比較表:

何時使用NoSQL數據庫

  • 尺寸問題:

如果數據集將會非常大,來自NoSQL家族的數據庫管理系統更容易實現持續擴容。

  • 速度:

NoSQL數據庫通常更快,對於寫入來說有時非常快。讀取也可以很快,這取決於NoSQL數據庫的類型和查詢的數據。

  • Schema-free 的設計:

趙亮-碧海情天
趙亮-碧海情天
翻譯於 11天前

0人頂

 翻譯的不錯哦!


關係數據庫管理系統從一開始就需要結構化。NoSQL解決方案提供了大量的靈活性。
  • 自動(或簡單的複製/擴容):

NoSQL數據庫正在迅速增長,今天他們正在積極建立-廠商試圖解決共同的問題,其中一個顯然是複製和縮放。不像關係數據庫管理系統那樣,NoSQL解決方案可以很容易的在簇上擴容和工作。

  • 多重選擇:

當來選擇一個NoSQL數據存儲時,正如我們已經討論的,有多種模式,你可以從中選擇獲得最滿意的數據庫管理系統——這取決於你的數據類型。

發佈了36 篇原創文章 · 獲贊 24 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章