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不同。