Nosql

NoSQL 和傳統的 RDBMS 有什麼區別?

  • May 17, 2016

NoSQL 和傳統的 RDBMS 有什麼區別?

在過去的幾個月裡,NoSQL 經常在技術新聞中被提及。相對於傳統的 RDBMS,它最重要的特性是什麼?差異發生在什麼級別(物理的、邏輯的)?

使用 NoSQL 的最佳地點在哪裡?為什麼?

NoSQL 代表“Not only SQL”,通常表示該數據庫不是過去幾十年非常流行的關係數據庫。

NoSQL之所以近幾年如此火爆,主要是因為關係型數據庫從一台伺服器上發展出來後,就不再那麼好用了。換句話說,它們在分佈式系統中不能很好地擴展。您提到的所有大型網站 Google、Yahoo、Facebook 和 Amazon(我對 Digg 了解不多)都有大量數據並將數據儲存在分佈式系統中,原因有幾個。可能是數據不適合在一台伺服器上,或者對高可用性有要求

CAP定理

分佈式系統的屬性可以用CAP 定理來描述。在三個屬性中,您最多只能擁有兩個:

  • 一致性**_**
  • 可用性**_**
  • 網路分區容忍度

Amazon Dynamo 使用最終一致性來接近獲得所有三個屬性。在學習 NoSQL 數據庫和分佈式系統時,這篇論文Dynamo:Amazon 的高可用鍵值儲存值得一讀。Amazon Dynamo 具有 A 和 P 屬性。

Google 對BigTable採取了不同的方法,它具有 C 和 A 屬性。

其他 NoSQL 數據庫

正如我在開頭所寫的,還有許多其他類型的 NoSQL 數據庫,它們是為不同的需求而設計的。例如像Neo4j這樣的圖形數據庫、像CouchDB這樣的文件數據庫和像OrientDB這樣的多模型/對像數據庫。

最後我想說,關係數據庫將繼續流行。它們非常靈活且可維護。但它們並不總是最好的選擇。

引用自:https://dba.stackexchange.com/questions/5