NoSQL隨手記1

最近在學習db相關的知識, 隨手作了一些總結, 方便之後查閱:數據庫

 

在此以前, 我所知道的數據庫模型都是關係型數據庫系統,簡稱RDMBS, 它遵循的是ACID原則。併發

A是指原子性(Atomicity), 事物之間的原子性是指全部操做要麼作完, 要麼都不作。分佈式

C是指一致性(Consistency), 事物的運行不會改變數據庫本來的一致性。性能

I是指獨立性(Isolation),是指併發的事物之間不會影響。學習

D是指持久性(durability), 是指事物一旦提交後, 所作的修改將會永遠保存在數據庫上,即便出現宕機也不會消失。事務

 

NoSQL,指的是非關係型的數據庫。NoSQL有時也稱做Not Only SQL的縮寫,是對不一樣於傳統的關係型數據庫的數據庫管理系統的統稱。ci

NoSQL用於超大規模數據的存儲。(例如谷歌或Facebook天天爲他們的用戶收集萬億比特的數據)。這些類型的數據存儲不須要固定的模式,無需多餘操做就能夠橫向擴展。rem

 

RDBMS vs NoSQL

RDBMS
- 高度組織化結構化數據
- 結構化查詢語言(SQL) (SQL)
- 數據和關係都存儲在單獨的表中。
- 數據操縱語言,數據定義語言
- 嚴格的一致性
- 基礎事務文檔

NoSQL
- 表明着不單單是SQL
- 沒有聲明性查詢語言
- 沒有預約義的模式
-鍵 - 值對存儲,列存儲,文檔存儲,圖形數據庫
- 最終一致性,而非ACID屬性
- 非結構化和不可預知的數據
- CAP定理
- 高性能,高可用性和可伸縮性it

CAP定理(CAP theorem)

在計算機科學中, CAP定理(CAP theorem), 又被稱做 布魯爾定理(Brewer's theorem), 它指出對於一個分佈式計算系統來講,不可能同時知足如下三點:

  • 一致性(Consistency) (全部節點在同一時間具備相同的數據)
  • 可用性(Availability) (保證每一個請求無論成功或者失敗都有響應)
  • 分隔容忍(Partition tolerance) (系統中任意信息的丟失或失敗不會影響系統的繼續運做)

CAP理論的核心是:一個分佈式系統不可能同時很好的知足一致性,可用性和分區容錯性這三個需求,最多隻能同時較好的知足兩個。

所以,根據 CAP 原理將 NoSQL 數據庫分紅了知足 CA 原則、知足 CP 原則和知足 AP 原則三 大類:

  • CA - 單點集羣,知足一致性,可用性的系統,一般在可擴展性上不太強大。
  • CP - 知足一致性,分區容忍性的系統,一般性能不是特別高。
  • AP - 知足可用性,分區容忍性的系統,一般可能對一致性要求低一些。

cap-theoram-image

BASE

BASE:Basically Available, Soft-state, Eventually Consistent。 由 Eric Brewer 定義。

CAP理論的核心是:一個分佈式系統不可能同時很好的知足一致性,可用性和分區容錯性這三個需求,最多隻能同時較好的知足兩個。

BASE是NoSQL數據庫一般對可用性及一致性的弱要求原則:

  • Basically Availble --基本可用
  • Soft-state --軟狀態/柔性事務。 "Soft state" 能夠理解爲"無鏈接"的, 而 "Hard state" 是"面向鏈接"的
  • Eventual Consistency --最終一致性 最終一致性, 也是是 ACID 的最終目的。

 

ACID vs BASE

 

ACID BASE
原子性(Atomicity) 基本可用(Basically Available)
一致性(Consistency) 軟狀態/柔性事務(Soft state)
隔離性(Isolation) 最終一致性 (Eventual consistency)
持久性 (Durable)
相關文章
相關標籤/搜索