首頁  >  文章  >  資料庫  >  nosql資料庫的特點是什麼

nosql資料庫的特點是什麼

青灯夜游
青灯夜游原創
2022-11-28 19:43:4121030瀏覽

nosql特點:1、靈活的可擴充性;nosql去掉了關聯式資料庫的關係型特性,資料之間無關係,很簡單就能夠擴展。 2、靈活的資料模型;NoSQL採用鍵/值、列族等非關係模型,允許在一個資料元素中儲存不同類型的資料。 3.NoSQL可以憑藉自身良好的橫向擴展能力,充分自由利用雲端運算基礎設施,很好地融人到雲端運算環境中。 4.nosql有著非常高的讀寫效能,特別是在大數據量之下。 5、高可用。

nosql資料庫的特點是什麼

本教學操作環境:windows7系統、Dell G3電腦。

NoSQL簡介

#  NoSQL是一種不同於關聯式資料庫的資料庫管理系統設計方式,是對非關係型資料庫的統稱,它所採用的資料模型並非傳統關係型資料庫的關聯式模型,而是類似鍵/值、列族、文件等非關聯式模型。 NoSQL資料庫沒有固定的表格結構,通常不存在連線操作,也沒有嚴格遵守ACID約束。因此,與關聯式資料庫相比,NoSQL具有靈活的水平可擴展性,可以支援海量資料儲存。

什麼是ACID? 

  • #事務的原子性 (Atomicity)#是指一個交易要麼全部執行,要麼不執行,也就是說一個事務不可能只執行了一半就停止了。例如你從提款機拿錢,這個交易可以分成兩個步驟:1劃卡,2出錢。不可能劃了卡,而錢卻沒出來。這兩步必須同時完成,要嘛就不完成。
  • 交易的一致性##(Consistency)是指交易的運作並不會改變資料庫中資料的一致性。例如,完整性約束了a b=10,一個交易改變了a,那麼b也應該要隨之改變。
  • 獨立性(Isolation):事務的獨立性也有稱作隔離性,是指兩個以上的事務不會出現交錯執行的狀態。因為這樣可能會導致數據不一致。
  • 持久性(Durability):交易的持久性是指交易執行成功以後,該交易對資料庫所做的更改便是持久的保存在資料庫之中,不會無緣無故的回滾

NoSQL資料庫的特性

1)靈活的可擴展性

 傳統的關係型資料庫由於自身設計機制的原因,通常很難實現“橫向擴展”,在面對資料庫負載大規模增加時,往往需要透過升級硬體來實現「縱向擴展」。 NoSQL資料庫在設計之初就是為了滿足「橫向擴展」的需求,因此天生就具備良好的水平擴展能力。

2)靈活的資料模型

關係資料庫具有規範的定義,遵守各種嚴格的約束條件。這種做法雖然保證了業務系統對資料一致性的需求,但是過於死板的資料模型,也意味著無法滿足各種新興的業務需求。相反,NoSQL資料庫採用鍵/#值、列族等非關聯模型,允許在一個資料元素中儲存不同類型的數據。

3)與雲端運算緊密地融合

      雲端運算具有良好的水平擴展能力,可依照資源使用進行自由伸縮,各種資源可動態加人或退出,NoSQL資料庫可憑藉自身良好的橫向擴展能力,充分自由利用雲端運算基礎設施,很好地融人到雲端運算環境中,建構基於NoSQL的雲端資料庫服務。  

(4)大數據量,高效能

nosql資料庫都有非常高的讀寫效能,特別是在大數據量之下,一樣也表現的非常的優秀,這主要得益於它的無關係性,資料庫的結構簡單。

通常的nosql使用Query Cache。

nosql的Cache是​​記錄級的,是一種細粒度的Cache,所以說,nosql從這方面來說的話,效能就要高了很多了。

(5)高可用

高可用也是nosql很明顯的一個特點,nosql在不太影響效能的情況之下,就能夠非常方便的實現高可用的架構,典型的例如:Cassandra、HBase模型,透過模型的話也可以實現高可用。

NoSQL興起的原因

#1##關係資料庫已經無法滿足Web2.0的需求#。 主要表現在以下幾個方面:

  • 1)無法滿足大量資料的管理需求

  •     對上述網站而言,很快就可以產生超過10億筆的記錄,對於關聯式資料庫來說,在一張10億筆記錄的表裡進行SQL查詢,效率極度低。

  • #2)無法滿足資料高並發的需求

  • ##3#)無法滿足高可擴展性和高可用性的需求

#2、

##關係資料庫的關鍵功能在Web 2.0時代成為「雞肋」  關聯式資料庫的關鍵功能包括完善的事務機制和高效率的查詢機制。但是,關聯式資料庫引以為傲的兩個關鍵特性,到了

Web2.0時代卻成了雞肋,主要表現在以下幾個方面:

#(1)  Web 2.0網站系統通常不會要求嚴格的資料庫事務

    對許多Web 2.0網站而言,資料庫事務已不是那麼重要。資料庫事務通常有一套複雜的實作機制來確保資料庫一致性,需要大量系統開銷,對於包含大量頻繁即時讀寫請求的Web 2.0網站而言,實現事務的代價是難以承受的。

(2)

Web 2.0並沒有要求嚴格的讀寫即時性#

    對於關聯式資料庫而言,一旦有資料記錄成功插人資料庫中,就可以立即被查詢。

對於Web 2.0而言,沒有這種即時讀寫需求。

(3)Web 2.0通常不包含大量複雜的SQL查詢

    複雜的SQL查詢通常包含多個表連接操作。但是,Web 2.0網站在設計時就已經盡量減少甚至避免這類操作,通常只採用單表的主鍵查詢,因此關係資料庫的查詢最佳化機制在Web 2.0中也就難以有所作為。

NoSQL與關聯式資料庫的比較 

# RDBMS:關聯式資料庫

nosql資料庫的特點是什麼

nosql資料庫的特點是什麼

nosql資料庫的特點是什麼

#NoSQL與關聯式資料庫比較 小結:

##(

1)關係資料庫優勢:以完善的關係代數理論作為基礎,有嚴格的標準,支持事務ACID四性,借助索引機制可以實現高效

的查詢

,技術成熟,有專業公司的技術支援:可擴展性較差,無法較好支援海量資料存儲,資料模型太死板、無法較好支援

Web2.0

應用,事務機制影響了系統的整體性能等

#2

NoSQL資料庫

#優勢

:可以支援超大規模資料存儲,靈活的資料模型可以很好地支援

Web2.0

#應用,具有強大的橫向擴展能力等########### ####劣勢#########:缺乏數學理論基礎,複雜查詢效能不高,大都無法實現事務強一致性,很難實現資料完整性,技術尚不成熟,缺乏專業團隊的技術支持,維護較困難等###############(3)關係資料庫和######NoSQL######資料庫各有優缺點,彼此無法取代###############關係資料庫應用場景######:電信、銀行等領域的關鍵業務系統,需要保證強事務一致性######### ####NoSQL######資料庫應用程式場景######:網際網路企業、傳統企業的非關鍵業務(例如資料分析)############採用混合架構######
  • 案例:亞馬遜公司就使用不同類型的資料庫來支撐它的電子商務應用
  • 對於「購物籃」這種臨時性數據,採用鍵值儲存會更有效率
  • 目前的產品和訂單資訊則適合存放在關聯式資料庫中

NoSQL的四大類型  

 NoSQL資料庫雖然數量眾多,但是,歸結起來,典型的NoSQL #資料庫通常包括鍵值資料庫列族資料庫文件資料庫圖形資料庫

 1.鍵值資料庫

 鍵值資料庫(Key-Value Database) 的表中有一個特定的Key和一個指標指向特定的Value。 Key可以用來定位Value,也就是儲存和檢索具體的Value。 Value對資料庫而言是透明不可見的,不能對Value進行索引和查詢,只能透過Key進行查詢。 Value可以用來儲存任意類型的數據,包括整數、字元型、陣列、物件等。

應用程式場景:一個面向會話的應用程式(如Web 應用程式)在使用者登入時啟動會話,並保持活動狀態直到使用者登出或會話逾時。在此期間,應用程式將所有與會話相關的資料儲存在主記憶體或資料庫中。會話資料可能包括使用者資料資訊、訊息、個人化資料和主題、建議、有針對性的促銷和折扣。每個使用者會話具有唯一的識別碼。除了主鍵之外,任何其他鍵都無法查詢會話數據,因此快速鍵值儲存更適合會話資料。一般來說,鍵值資料庫所提供的每頁開銷可能比關聯式資料庫小。

nosql資料庫的特點是什麼

2.列族資料庫 

nosql資料庫的特點是什麼

#3.文件資料庫  

nosql資料庫的特點是什麼

#4.圖形資料庫  

nosql資料庫的特點是什麼


nosql資料庫的特點是什麼

#####################5.不同類型資料庫比較分析  ############### ######################################### ##
  • MySQL:產生年代較早,而且隨著LAMP##大潮得以成熟。儘管其沒有什麼大的改進,但是新興的互聯網使用的最多的數據庫
  • #MongoDB:是個新生事物,提供更靈活的資料模型、非同步提交、地理位置索引等五花十色的功能
  • #HBase:是個「仗霸凌人」的大象兵。依仗著Hadoop的生態環境,可以有很好的擴展性。但就像象兵一樣,使用者需要養一頭大象(Hadoop),才能驅使他
  • Redis: 是鍵值儲存的代表,功能最簡單。提供隨機資料儲存。就像一根棒子一樣,沒有多餘的構造。但也正是因此,它的伸縮性特別好。就像悟空手裡的金色箍棒,大可捅破天,小能成縮成針

#NoSQL的三大基石

所謂的CAP指的是:

  • #C#Consistency##) :一致性,是指任何一個讀取操作總是能夠讀到先前完成的寫入操作的結果,也就是在分散式環境中,多點的資料是一致的 ,或者說,所有節點在同一時間都有相同的資料
  • A:Availability):可用性,是指快速取得數據,可以在確定的時間內返回操作結果,保證每個請求不管成功或失敗都有回應;
  • P

Tolerance of Network Partition

nosql資料庫的特點是什麼#):

分區容忍性,是指當出現網路分區的情況時(即係統中的一部分節點無法和其他節點進行通訊),分離的系統也能夠正常運作,也就是說,系統中任意資訊的遺失或失敗不會影響系統的繼續運作

###### ###CAP######理論告訴我們,一個分散式系統不可能同時滿足一致性、可用性和分區容忍性這三個需求,最多只能同時滿足其中兩個,正所謂「魚和熊掌不可兼得」。 #####################當處理######CAP######的問題時,可以有幾個明顯的選擇:## ####
  • CA:也就是強調一致性(C)和可用性(A),放棄分區容忍性(P),最簡單的做法是把所有與交易相關的內容都放到同一台機器上。很顯然,這種做法會嚴重影響系統的可擴展性。傳統的關聯式資料庫(MySQLSQL ServerPostgreSQL),都採用了這種設計原則,因此,擴展性都比較差

  • #CP:也就是強調一致性(C)和分區容忍性(##P),放棄可用性(##A ),當出現網路分割區的情況時,受影響的服務需要等待資料一致,因此在等待期間就無法對外提供服務

  • #AP

    :也就是強調可用性(##A)和分割區容忍性(P),放棄一致性(C),允許系統傳回不一致的資料

##BASE 

前面說到ACID ,現在要淺談一下BASE

##B

asically Availble, Soft-state, Eventual consistency)

ACID ((

BASE

原子性

Atomicity)#基本上可用

(

Basically Available)

#一致性

Consistency)軟體狀態

/
柔性交易

(Soft state)

隔離性(#Isolation)

最終一致性(#Eventual consistency)

持久性(Durable)


BASE#的基本意義是基本上可用(Basically Availble)、軟狀態(S oft-state)和最終一致性(Eventual consistency

基本上可用

       基本上可用,是指一個分散式系統的一部分發生問題變得不可用時,其他部分仍然可以正常使用,也就是允許分割區失敗的情形出現

軟狀態

        「軟狀態( soft-state)」是與「硬狀態(hard-state)」相對應的一種提法。資料庫保存的資料是「硬狀態」時,可以保證資料一致性,即確保資料一直是正確的。 「軟狀態」是指狀態可以有一段時間不同步,具有一定的滯後性

#最終一致性

      一致性的類型包括強一致性與弱一致性,二者的主要差異在於高併發的資料存取操作下,後續操作是否能夠取得最新的資料。對於強一致性而言,當執行完一次更新操作後,後續的其他讀取操作就可以保證讀到更新後的最新數據;反之,如果不能保證後續訪問讀到的都是更新後的最新數據,那麼就是弱一致性。而最終一致性只不過是弱一致性的一種特例,允許後續的存取操作可以暫時讀不到更新後的數據,但是經過一段時間之後,必須最終讀到更新後的數據。

更多程式相關知識,請造訪:程式設計教學! !

以上是nosql資料庫的特點是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn