Acid 規則是否適用於 Nosql

已發表: 2022-11-21

NoSQL 數據庫經常被擁有大規模數據存儲並需要高性能和橫向可擴展性的組織使用。 NoSQL 數據庫也經常被擁有不適合關係數據庫的數據的組織使用。 NoSQL 數據庫和關係數據庫之間的主要區別在於 NoSQL 數據庫不使用固定模式。 這意味著 NoSQL 數據庫更加靈活並且可以輕鬆擴展。 然而,這種靈活性是有代價的。 因為 NoSQL 數據庫沒有固定的模式,所以它們不太容易查詢和更新。 這會使跟踪數據更改和確保數據完整性變得困難。 那麼,acid 規則是否適用於 nosql? 答案是否定的,acid 規則不適用於 nosql。

另一方面,NoSQL 數據庫是基礎 (*) 數據庫。 它本質上是一種軟狀態,它最終會變得一致。 因此,如果亞馬遜使用此功能,您將始終能夠從他們那裡購買一本書,但無法保證在購買時可以取書。 這些都是挑戰布魯爾定理的嘗試。

關係數據庫的ACID 屬性是我們在討論它時經常使用的術語之一。 酸是由原子、分子、固體和固體組成的,有原子性、稠度、隔離性和密度之分。 具有原子屬性的事務全部完成或失敗。

因為 nosql 數據庫並非設計為符合acid 標準,所以它們不是。 由於 ACID 所需的工作和資源,Google 被迫返回到 SQL 和 ACID,而 SQL 和 ACID 同樣困難並且需要更多資源。

與固定表數據庫不同,NoSQL 數據庫不需要固定的表結構,也不需要完整的 ACID 支持。 (Orend,2010)根據 Orend 的說法,數據最終會保持一致,這意味著它會隨著時間的推移保持穩定。

大多數 NoSQL 數據庫都不符合 ACID,主要是因為構建它們的人不了解他們在做什麼,不關心,也不知道他們在做什麼。

Nosql 可以具有酸性嗎?

圖片拍攝:medium

是的,NoSQL 可以用來存儲 ACID 數據。 如果它不存在,則原始 DBMS 設計沒有將“管理系統”視為其中的一部分。

Mongodb 添加了對多文檔 Acid 事務的支持

作為領先的 NoSQL 數據庫之一,MongoDB 在 2018 年的 4.0 版本中增加了對多文檔ACID 事務的支持,並在 2019 年將支持擴展到 4.2 版本。MongoDB 文檔模型允許將相關數據存儲在單個文檔中。 因此,MongoDB 是需要大量數據和高級事務管理的應用程序的絕佳選擇。 與所有 NoSQL 數據庫一樣,MongoDB 被歸類為具有 ACID 屬性的數據庫。 換句話說,因為他們以準確和一致的方式處理事務、更新和刪除,所以他們可以處理它們。 由於它們能夠存儲和管理大量數據,因此它們非常適合需要此功能的應用程序。

為什麼 Acid 不兼容 Nosql?

圖片拍攝:slidesharcdn

acid 與 nosql 不兼容有幾個原因。 首先,acid 需要大量磁盤空間來存儲有關已發生交易的所有信息。 其次,acid 要求將有關事務的所有信息存儲在同一個位置,這對於 nosql 數據庫很難做到。 最後,基於 acid 的數據庫通常不如 nosql 數據庫快。

MongoDB 不支持原子操作,因為它不是關係數據庫系統。 這意味著如果在同一個文檔上同時嘗試一個或兩個嘗試的操作可能不會成功。 雖然 MongoDB 有一個支持原子性的表處理程序,但它不是默認的處理程序。 市場上還有其他更符合 ACID 標準的桌椅。

Nosql 數據庫中對事務的需求

NoSQL 數據庫在早期被設計為輕量級和快速的,因此事務是次要的。 另一方面,隨著 NoSQL 數據庫的普及,事務變得越來越重要。 MongoDB 和 Cassandra 以及其他 NoSQL 數據庫依靠分佈式事務 (ACID) 來確保數據始終可用。 但是,由於 NoSQL 數據庫不依賴於關係模型,因此並不總是可以對它們使用 ACID。 關係導致將關係數據庫中的數據分組到表中。 事務詳細信息在提交後立即寫入表中。 它還確保無論數據庫發生什麼情況或丟失的節點如何,數據始終是準確的。 在 NoSQL 數據庫中,沒有表或關係。 此數據存儲在一系列文檔中。 交易是不必要的,因為文件總是一致的。 NoSQL 數據庫和關係數據庫在速度和重量上沒有區別。 交易並不總是必須的,如果不是,它們甚至可能必須是破壞性的。


Nosql是否支持酸

這個問題沒有明確的答案,因為它取決於 NoSQL 的特定實現。 一些 NoSQL 數據庫支持 ACID 事務,而另一些則不支持。 但是,一般來說,可以肯定地說大多數 NoSQL 數據庫不支持 ACID 事務。

Nosql 與 Rdbms:哪個更適合您的業務?

使用此方法的 RDBMS 與傳統 RDBMS 的不同之處在於它使用基本模型而不是記錄模型。 只要數據是一致的,它就被認為是安全的,這意味著它可能並不總是準確或最新的。 對於某些企業來說,這可能是一個主要問題,因為它會使跟踪更改和錯誤變得困難。 另一方面,數據處理系統確保數據始終正確,無論進行了多少更改。 這是一個重要的區別,因為符合 ACID 的數據庫可以被廣泛的企業使用,而不僅僅是那些在滿足特定規範的數據庫中運行的企業。 例如,如果您正在尋找可以處理大量數據的數據庫,那麼基本模型可能是一個不錯的選擇。 這是因為 Neo4j 等 NoSQL 技術使用 ACID 一致性模型,這與傳統的 RDBMS不同。