NoSql 簡介

1. 概述

  1. NoSQL(Not Only SQL),"不單單是SQL", 泛指非關係型的數據庫;
  2. 特色:
    • 易擴展;
    • 在大數據量下,NoSQL 數據庫具備很是高的讀寫性能;
    • 多樣靈活的數據模型;
  3. RDBMS(關係型數據庫)和NoSQL 比較
    • RDBMS
      • 高度組織化結構化數據;
      • 結構化查詢語言(SQL);
      • 數據和關係都存儲在單獨的表中;
      • 數據操做語言,數據定義語言;
      • 嚴格的一致性;
      • 基礎事務;
    • NoSQL
      • 沒有聲明性查詢語言;
      • 沒有預約義的模式;
      • 鍵值對存儲,列存儲,文檔存儲,圖形數據庫;
      • 最終一致型,而非ACID屬性;
      • 非結構化和不可預知的數據;
      • CAP 定理;
      • 高性能,高可用性和可伸縮性;
  4. 3V + 3高
    • 大數據時代的3V
      • 海量(Volume)
      • 多樣(Variety)
      • 實時(Velocity)
    • 互聯網需求的3高
      • 高併發
      • 高可擴
      • 高性能

2. NoSQL 的數據模型

2.1 Bson

  • Bson 是一種類json的二進制形式的存儲格式,即Binary JSON;
  • 支持內嵌的文檔對象和數組對象;

2.2 聚合模型

  • KV 鍵值
  • Bson
  • 列族
  • 圖形

2.3 NoSQL 數據庫的四大分類

  • KV鍵值: Redis等;
  • 文檔型數據庫(bson格式比較多): MongoDB,基於分佈式文件存儲的數據庫;
  • 列存儲數據庫: HBase,分佈式文件系統;
  • 圖關係數據庫: 存放社交網絡,推薦系統等,專一於構建關係圖譜;

3. 在分佈數據庫中CAP原理

3.1 CAP

  • C:Consistency(強一致性)
  • A:Availability(可用性)
  • P:Partition tolerance(分區容錯性)

3.2 CAP 原理

  1. CAP理論的核心是:一個分佈式系統不可能同時很好的知足一致性,可用性和分區容錯性這三個需求,最多隻能同時
    較好的知足兩個;
  2. 分區容錯性是必需要實現的;
  3. 根據CAP原理,將NoSQL數據庫分紅了知足CA原則,知足CP原則和知足AP原則三大類:
    • CA,單點集羣,知足一致性,可用性的系統,一般在擴展性上不太強大;(傳統Oracle數據庫)
    • CP,知足一致性,分區容錯性的系統,一般性能不是特別高;(Redis,Mongodb)
    • AP,知足可用性,分區容錯性的系統,一般可能對一致性要求低一些;(大多數網站架構的選擇)

4. BASE

  • BASE 就是爲了解決關係數據庫強一致性引發的問題而引發的可用性下降,而提出的解決方案;
  • BASE
    • 基本可用(Basically Available)
    • 軟狀態(Soft state)
    • 最終一致(Eventually consistent)

5. 分佈式和集羣

  • 分佈式:不一樣的多臺服務器上面部署不一樣的服務模塊(工程),它們之間經過Rpc/Rmi之間通訊和調用,對外提供服務和組內協做;
  • 集羣:不一樣的多臺服務器上面部署相同的服務模塊,經過分佈式調度軟件進行統一的調度,對外提供服務和訪問;


參考資料sql

相關文章
相關標籤/搜索