1. 程式人生 > 實用技巧 >面向初學者的圖形資料庫:為什麼我們需要NoSQL資料庫,ACID與BASE的解釋說明

面向初學者的圖形資料庫:為什麼我們需要NoSQL資料庫,ACID與BASE的解釋說明

Table of Contents

為什麼我們需要NoSQL資料庫

NoSQL資料庫的Many&Motley世界

資料量

資料速度

資料種類

資料價

結論

ACID與BASE的解釋說明

ACID一致性模型


為什麼我們需要NoSQL資料庫


NoSQL資料庫是生活中的那些東西,都無助地定義一個只有它們是什麼不是,而不是由他們什麼,即防定義。

NoSQL是不只是SQL的厚臉皮縮寫,或者更是對抗性的,是SQL的否定。這種反定義向您介紹了NoSQL運動開始的原因:基於SQL的關係資料庫並不總是足夠的

關係資料庫(RDBMS)仍然有其完美的用例,RDBMS經常可以與NoSQL資料庫一起很好地利用兩種技術的優勢。(這就是Neo4j正式選擇不僅僅將SQL作為NoSQL的定義的原因,因為SQL仍然在任何後端中都有它的位置。)但是,仍然很清楚,關係資料模型不能滿足所有資料需求。

因此,一旦其他資料儲存及其隨附的資料模型可用,NoSQL資料庫技術的普及便會(並將繼續)迅速增長。今天,除了證明為什麼我們現在比以往任何時候都需要它們更多的理由之外,我們還將定義NoSQL資料庫。

在本“面向初學者的圖資料庫”部落格系列中,我將帶您瞭解圖技術的基礎知識,假設您在該領域幾乎沒有(或沒有)背景。在過去的幾週中,我們解決了為什麼圖技術是未來為什麼關聯資料很重要資料建模的基礎知識陷阱),為什麼資料庫查詢語言很重要命令式和宣告式查詢語言之間差異使用圖的預測建模圖搜尋演算法的理論基礎

本週,我們將討論NoSQL資料庫的各種世界-為什麼它們如此流行。

NoSQL資料庫的Many&Motley世界


NoSQL資料庫是各種各樣的資料儲存技術,它們之間的差異遠非相同,因此很難對其特徵進行全面的概括。

在接下來的幾週中,我們將探索幾種型別的NoSQL資料庫和其他重要的NoSQL定義。我們的遊覽將涵蓋被稱為集合儲存(以下以藍色突出顯示)的組,包括鍵值儲存,列族儲存和文件儲存以及各種型別的圖形技術(綠色),其中包括屬性圖,超圖和RDF三重商店。

NoSQL資料庫空間概述。藍色的象限統稱為集合儲存。

從歷史上看,大多數企業級Web應用程式都執行在關係資料庫(RDBMS)之上。但是僅在過去的十年中,資料格局就發生了巨大變化,並且傳統RDBMS部署根本無法管理。

NoSQL資料庫的興起尤其是針對以下三個資料挑戰:

  • 資料量
  • 資料速度
  • 資料種類
  • 資料價

我們將在下面進一步詳細探討這些挑戰。

資料量


毫不奇怪,隨著資料儲存量的急劇增加,資料量(即儲存資料的大小)已成為企業採用NoSQL資料庫的主要驅動力。

當大型資料集儲存在關係資料庫中時,它們變得太笨拙。特別是,查詢執行時間隨著表的大小和JOIN數量的增加而增加(所謂的JOIN pain)。

但是,這並不總是關係資料庫本身的錯。相反,它與基礎資料模型有關

為了避免JOIN的痛苦,NoSQL世界提供了幾種替代關係模型的方法。儘管這些NoSQL資料模型可以更好地處理當今更大的資料集,但其中大多數都不如關係模型那麼具有表現力。唯一的例外是圖模型,它實際上更具表達力。(在接下來的幾週中將對此進行更多介紹。)

資料速度


但是數量並不是現代企業系統必須解決的唯一問題。除了龐大之外,當今的資料通常會快速變化。

因此,資料速度(即資料隨時間變化的速率)是NoSQL資料庫設計要克服的下一個主要挑戰。

速度很少是靜態指標。許多速度測量取決於應用程式內部和外部變化的背景,其中一些會對整個系統產生重大影響。

再加上資料量大,資料速度的變化要求資料庫不僅要處理高水平的編輯(技術術語:寫入負載),還要處理資料庫活動高峰。關係資料庫根本不準備處理持續的寫入負載水平,如果調優不當,可能會在高峰活動期間崩潰。

但是資料速度的另一個方面是NoSQL技術可以幫助我們克服:資料結構的變化速度。換句話說,這不僅與特定資料點的快速變化有關,而且還與資料模型本身快速變化有關

資料結構通常由於兩個主要原因而移動。首先是業務的快速發展。隨著企業的變化,其資料需求也隨之變化。

其次,資料採集通常是實驗性的。有時,您的應用程式會捕獲某些資料點,以防萬一您以後需要它們。通常,證明對您的業務有價值的資料仍然存在,但是如果不值得,則這些資料點通常會被拋在一邊。因此,這些實驗性的新增和消除會定期影響您的資料模型。

兩種形式的資料速度對於關係資料庫來說都是有問題的。通常,高寫入負載會帶來昂貴的處理成本,而定期更改資料結構會帶來高昂的運營成本(請詢問您的DBA)。

NoSQL資料庫通過針對高寫入負載進行優化以及擁有更靈活的資料模型來應對資料速度挑戰。

資料種類


當今資料領域的第三個挑戰是資料的多樣性–即它可能是密集的或稀疏的,連線或斷開的,規則的或不規則的結構。

今天的資料比關係資料庫最初設計的目的要多樣化得多。實際上,這就是為什麼當今許多RDBMS部署的表中都有許多空值,而其程式碼中卻有空檢查的原因–這都是適應當今資料種類的一種解決方法。

另一方面,NoSQL資料庫是自下而上設計的,可以適應各種資料,並靈活地滿足未來的資料需求,每個資料庫都採用自己的策略來處理各種資料。

資料價


每當您談論資料時,總會出現很多“ V”(我在上面選擇了三個,但有大約一百萬個可供選擇)。但是幾乎總是缺少一個強大的“ V”:資料價

拉丁語的價根與價值valere相同,意思是堅強,強大,有影響力或健康。

在化學中,化合價是元素的結合力。在心理學上,它是物體的內在吸引力。在語言學中,這是一個單詞結合的元素數量。在大資料的上下文中,價是單個數據連線的趨勢以及資料集的整體連線性。

資料集的化合價以連線數與可能的連線總數之比來衡量。資料集中的連線越多,其價數就越高。

資料價隨時間增加,但不一致。網路科學家(即超級書呆子)已經描述了優先依附關係(例如,富人變得更富裕)導致了冪律分佈和具有輪輻結構的無標度網路。從字面上看,前一句話中的任何內容都不能使用關係資料庫進行分析。

隨著時間的流逝,高度密集和塊狀的資料網路趨向於發展,實際上會增加大資料及其複雜性。這是很重要的,因為很難使用傳統分析(例如基於RDBMS資料儲存的分析)來分解和探索密集而又連線不均的資料。因此,在關係資料庫還不夠的情況下需要NoSQL技術。

(如果您有興趣特別瞭解更多有關資料價的資訊,請檢視Amy Hodler和Mark Needham撰寫的這本電子書,其中部分內容已在本博文中使用。)

結論


關係資料庫不再能夠應對當今資料量,速度,多樣性或價數帶來的挑戰。但是,瞭解NoSQL資料庫如何克服這些挑戰只是為您的企業用例找到合適的資料庫的序幕。

在接下來的幾週中,我們將探討各種NoSQL技術的優缺點,以便您做出最明智的決策。

現在,您已經大致瞭解了NoSQL,是時候特別仔細地研究圖形技術了:獲得O'ReillyGraph Databases書籍的副本,並開始使用圖形技術解決實際問題。

ACID與BASE的解釋說明


對於NoSQL資料庫,資料一致性模型有時可能與關係資料庫所使用的模型大為不同(並且與其他NoSQL儲存完全不同)。

縮寫ACID和BASE已知兩種最常見的一致性模型。儘管他們經常在爭取最終勝利的戰鬥中相互競爭(請給別人錄製視訊),但這兩種一致性模型都具有優點和缺點,而且都不總是完美的契合。

讓我們仔細研究兩個資料庫一致性模型的權衡。

在本“面向初學者的圖資料庫”部落格系列中,我將帶您瞭解圖技術的基礎知識,假設您在該領域幾乎沒有(或沒有)背景。在過去的幾週中,我們解決了為什麼圖技術是未來為什麼關聯資料很重要資料建模的基礎知識陷阱),為什麼資料庫查詢語言很重要命令式和宣告式查詢語言之間差異使用圖的預測建模理論圖搜尋演算法的基礎以及為什麼我們需要NoSQL資料庫

本週,我們將仔細研究ACID和BASE資料庫一致性模型之間的主要區別以及它們之間的權衡對您的資料交易意味著什麼。

ACID一致性模型

許多開發人員通過使用關係資料庫來熟悉ACID事務。因此,一段時間以來,ACID一致性模型一直是規範。

ACID的主要保證是,它提供了一個安全的環境,可在其中操作資料。ACID的縮寫代表:

  1. Atomic:All operations in a transaction succeed or every operation is rolled back.
  2. Consistent:On the completion of a transaction, the database is structurally sound.
  3. Isolated:Transactions do not contend with one another. Contentious access to data is moderated by the database so that transactions appear to run sequentially.
  4. Durable:The results of applying a transaction are permanent, even in the presence of failures.
  1. Atomic:事務中的所有操作都會成功,或者每個操作都會回滾。
  2. 一致的:事務完成後,資料庫在結構上是健全的。
  3. 孤立:交易不相互競爭。資料庫對有爭議的資料訪問進行仲裁,以便事務似乎按順序執行。
  4. 永續性:即使存在故障,應用事務的結果也是永久的。

趕上Graph Databases for Beginners系列的其餘部分: