柚子快報激活碼778899分享:NoSQL(非關系型數(shù)據(jù)庫)
柚子快報激活碼778899分享:NoSQL(非關系型數(shù)據(jù)庫)
目錄
前言:
一、NoSQL的類別
1.1 鍵值(key-value)存儲數(shù)據(jù)庫
1.2 列存儲數(shù)據(jù)庫
1.3 文檔型數(shù)據(jù)庫
1.4 圖形數(shù)據(jù)庫
二、NoSQL適應場景
三、在分布式數(shù)據(jù)庫中的CAP原理
3.1 傳統(tǒng)的ACID
3.2 CAP
四、什么是BASE
前言:
????????NoSQL(Not Only SQL)即不僅僅是SQL,泛指非關系型的數(shù)據(jù)庫,它可以作為關系型數(shù)據(jù)庫的良好補充。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,非關系型的數(shù)據(jù)庫現(xiàn)在成了一個極其熱門的新領域,非關系數(shù)據(jù)庫產(chǎn)品的發(fā)展非常迅速。
一、NoSQL的類別
1.1 鍵值(key-value)存儲數(shù)據(jù)庫
說明:這一類數(shù)據(jù)庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數(shù)據(jù),Key/Value模型對于IT系統(tǒng)來說優(yōu)勢在于簡單、易部署。
應用:內(nèi)容緩存,主要用于處理大量數(shù)據(jù)的高訪問負載。
產(chǎn)品:Tokyo Cabinet/Tyrant、==Redis==、Voldemort、Berkeley DB。
優(yōu)勢:快速查詢。
劣勢:存儲數(shù)據(jù)的結(jié)構(gòu)化較低。
1.2 列存儲數(shù)據(jù)庫
說明:這部分數(shù)據(jù)庫通常是用來應對分布式存儲的海量數(shù)據(jù)。鍵仍然存在,但是它們的特點是指向了多個列,這些列是由列家族來安排的。
應用:分布式文件系統(tǒng)。
產(chǎn)品:Cassandra,==HBase==,Riak。
優(yōu)勢:查找速度快,可擴展性強,更容易進行分布式擴展。
劣勢:功能較低,具有局限性。
1.3 文檔型數(shù)據(jù)庫
說明:該類型的數(shù)據(jù)模型 是版本化的文檔,半結(jié)構(gòu)化的文檔以特定的格式存儲,如JSON。文檔型數(shù)據(jù)庫可以看作是鍵值數(shù)據(jù)庫的升級版,允許之間嵌套鍵值。而且文檔型數(shù)據(jù)庫比鍵值數(shù)據(jù)庫的查詢效率更高。
應用:Web應用。
產(chǎn)品:CouchDB,==MongoDB==。
優(yōu)勢:查詢效率較高。
劣勢:數(shù)據(jù)結(jié)構(gòu)復雜,缺乏統(tǒng)一查詢語法。
1.4 圖形數(shù)據(jù)庫
說明:圖形結(jié)構(gòu)的數(shù)據(jù)庫同其他行列以及剛性結(jié)構(gòu)的SQL數(shù)據(jù)庫不同,它是使用靈活的圖形模型,并且能夠擴展到多個服務器上。NoSQL數(shù)據(jù)庫沒有標準的查詢語言(SQL),因此進行數(shù)據(jù)庫查詢需要制定數(shù)據(jù)模型。許多NoSQL數(shù)據(jù)庫都有REST格式的數(shù)據(jù)接口或者查詢API。
應用:社交網(wǎng)絡。
產(chǎn)品: ==Neo4j==,InfoGrid,Infinite Graph。
優(yōu)勢:利用圖結(jié)構(gòu)相關算法。
劣勢:需要對整個圖做計算才能得出結(jié)果,不容易做分布式的集群方案。
二、NoSQL適應場景
1、數(shù)據(jù)模型比較簡單
2、需要靈活性更強的IT系統(tǒng)
3、對數(shù)據(jù)庫性能要求較高
4、不需要高度的數(shù)據(jù)一致性
5、對于給定的key,比較容易映射出復雜的關系和環(huán)境
6、取最新的數(shù)據(jù)(排行)
7、數(shù)據(jù)緩存
三、在分布式數(shù)據(jù)庫中的CAP原理
3.1 傳統(tǒng)的ACID
關系型數(shù)據(jù)庫遵循ACID規(guī)則,事務在英文中是transaction,和現(xiàn)實世界中的交易很類似,它有如下四個特性:
A (Atomicity) 原子性 指事務里的所有操作要么都成功,要么都失敗。事務成功的條件是事務里的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。 C (Consistency) 一致性 指數(shù)據(jù)庫要一直處于一致的狀態(tài),事務的運行不會改變數(shù)據(jù)庫原本的一致性約束。 I (Isolation) 隔離性 指并發(fā)的事務之間不會互相影響,如果一個事務要訪問的數(shù)據(jù)正在被另外一個事務修改,只要另外一個事務未提交,它所訪問的數(shù)據(jù)就不受未提交事務的影響。 D (Durability) 持久性 是指一旦事務提交后,它所做的修改將會永久的保存在數(shù)據(jù)庫中,即使出現(xiàn)宕機也不會丟失。
3.2 CAP
C 強一致性
A 可用性
P 分區(qū)容錯性
CAP 理論是指在分布式存儲系統(tǒng)中,最多只能實現(xiàn)上述兩點。由于當前的網(wǎng)絡硬件存在延遲丟包等問題,所以分區(qū)容忍性是我們必須要實現(xiàn)的。所以我們只能在一致性和可用性之間進行權(quán)衡,沒有任何的SQL系統(tǒng)能夠兼顧這三點。
CA 傳統(tǒng)sql數(shù)據(jù)庫
AP 大多數(shù)網(wǎng)站架構(gòu)的選擇
CP nosql數(shù)據(jù)庫
注意:在做分布式架構(gòu)的時候必須做出取舍。==一致性和可用性之間取一個平衡==。對于大多數(shù)web應用,其實并不需要強一致性。因此犧牲C換取P,這是目前分布式數(shù)據(jù)庫產(chǎn)品的方向。
CAP理論的核心是:一個分布式系統(tǒng)不可能同時很好的滿足一致性,可用性和分區(qū)容錯性這三個需求,最多只能同時較好的滿足兩個。因此,根據(jù) CAP 原理將 NoSQL 數(shù)據(jù)庫分成了滿足 CA 原則、滿足 CP 原則和滿足 AP 原則三 大類:
CA - 單點集群,滿足一致性,可用性的系統(tǒng),通常在可擴展性上不太強大。 CP - 滿足一致性,分區(qū)容忍性的系統(tǒng),通常性能不是特別高。 AP - 滿足可用性,分區(qū)容忍性的系統(tǒng),通??赡軐σ恢滦砸蟮鸵恍?。
四、什么是BASE
BASE 是為了解決關系型數(shù)據(jù)庫強一致性引起的問題而導致可用性降低而提出的解決方案.
基本可用(Basically Available)
軟狀態(tài)(Soft state)
最終一致(Eventually consistent)
它的思想是通過讓系統(tǒng)放松對某一時刻數(shù)據(jù)一致性的要求來換取系統(tǒng)整體伸縮性和性能上改觀。
柚子快報激活碼778899分享:NoSQL(非關系型數(shù)據(jù)庫)
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。