大數據學習筆記(四)NoSQL數據庫

  1. 掌握NoSQL與關係數據庫的區別與聯繫;
  2. 掌握四大類型NoSQL數據庫的特點和應用場景;
  3. 瞭解NoSQL數據庫的三大基石;

A: 比較NoSQL數據庫與關係數據庫的優缺點?

NoSQL數據庫的優點:
1.可以很容易通過添加更多設備來支持更大規模的數據,NoSQL在設計之初就充分考慮了橫向擴展的需求,可以很容易通過添加廉價設備實現擴展,可以和雲計算緊密結合
2.不存在數據庫模式,可以自由靈活定義並存儲各種不同類型的數據
3.在NoSQL數據庫卻無法實現數據完整性
4.大多數NoSQL都能提供較高的可用性

NoSQL數據庫的缺點:
1.沒有關係代數理論作爲基礎
2.很多NoSQL數據庫沒有面向複雜查詢的索引,雖然NoSQL可以使用MapReduce來加速查詢,但是,在複雜查詢方面的性能仍然不如RDBMS
3.很多NoSQL數據庫放鬆了對事務ACID四性的要求,而是遵守BASE模型,只能保證最終一致性
4.NoSQL還沒有行業標準,不同的NoSQL數據庫都有自己的查詢語言,很難規範應用程序接口
5.NoSQL在技術支持方面仍然處於起步階段,還不成熟,缺乏有力的技術支持
6.NoSQL數據庫雖然沒有DBMS複雜,也難以維護

RDBMS關係數據庫的優點:
1.有關係代數理論作爲基礎
2.藉助於索引機制可以實現快速查詢(包括記錄查詢和範圍查詢)
3.任何一個RDBMS都可以很容易實現數據完整性,比如通過主鍵或者非空約束來實現實體完整性,通過主鍵、外鍵來實現參照完整性,通過約束或者觸發器來實現用戶自定義完整性
4.RDBMS已經標準化(SQL)
5.RDBMS經過幾十年的發展,已經非常成熟,Oracle等大型廠商都可以提供很好的技術支持

RDBMS關係數據庫的缺點:
1.很難實現橫向擴展,縱向擴展的空間也比較有限,性能會隨着數據規模的增大而降低
2.需要定義數據庫模式,嚴格遵守數據定義和相關約束條件
3.RDBMS嚴格遵守事務ACID模型,可以保證事務強一致性
4.RDBMS在任何時候都以保證數據一致性爲優先目標,其次纔是優化系統性能,隨着數據規模的增大,RDBMS爲了保證嚴格的一致性,只能提供相對較弱的可用性
5.RDBMS需要專門的數據庫管理員(DBA)維護

B:試述鍵值數據庫、列族數據庫、文檔數據庫、和圖數據庫的適用場景和優缺點?

1.鍵值數據庫:
優點:擴展性好,靈活性好,大量寫操作時性能高
缺點:無法存儲結構化信息,條件查詢效率較低
2.列族數據庫:
優點:查找速度快,可擴展性強,容易進行分佈式擴展,複雜性低
缺點:功能較少,大都不支持強事務一致性
3.文檔數據庫:
優點:性能好(高併發),靈活性高,複雜性低,數據結構靈活
提供嵌入式文檔功能,將經常查詢的數據存儲在同一個文檔中
既可以根據鍵來構建索引,也可以根據內容構建索引
缺點:缺乏統一的查詢語法
4.圖形數據庫:
優點:靈活性高,支持複雜的圖形算法,可用於構建複雜的關係圖譜
缺點:複雜性高,只能支持一定的數據規模

在這裏插入圖片描述

C:鍵值數據庫和列族數據庫

在這裏插入圖片描述
在這裏插入圖片描述

D:三大基石CAP理論

所謂CAP是指:
C~Consistency一致性,是指任何一個讀操作總是能夠讀到之前完成的寫操作的結果,也就是在分佈式環境中,多點的數據是一致的,或者說,所有節點在同一時間具有相同的數據
A~Availability可用性,是指快速獲取數據,可以在確定的時間內返回操作結果,保證每個請求不管成功或者失敗都有響應;
P~Tolerance of Network Partition分區容忍性,是指當出現網絡分區的情況時(即系統中的一部分節點無法和其他節點進行通信),分離的系統也能夠正常運行,也就是說,系統中任意信息的丟失或失敗不會影響系統的繼續運作。
在這裏插入圖片描述
CAP之間關係
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章