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