为什么 Nosql 不酸

已发表: 2022-11-19

关于 NoSQL 数据库是否“酸性”存在很多争论。 反对 NoSQL 数据库的主要论点是它们不支持传统关系数据库的所有功能。 NoSQL 数据库通常设计为比关系数据库更具可扩展性和更易于使用,但它们牺牲了一些使关系数据库更健壮的功能。 例如,NoSQL 数据库通常不支持事务,这是关系数据库的一大特点。 这意味着如果您使用的是 NoSQL 数据库,您可能不得不放弃一些您在关系数据库中习惯使用的功能。

NoSQL 数据库不符合 ACID。 一种始终如一的心态,即它具有可塑性、柔软性和一致性。 因此,如果亚马逊使用此功能,您将始终可以从他们那里购买书籍,但他们无法预测何时会售罄。 它们旨在反驳布鲁尔定理。

Oracle、MySQL、PostgreSQL 和 Microsoft SQL 都能够支持事务中的ACID 属性。 让我们来看一个典型的 NoSQL 故事。

NoSQL 数据库可用于存储ACID 数据。 在其最初的设计中,该系统不包括 DBMS 的“管理系统”组件。

Nosql是否具有酸性?

图片来源 – https://dotnettutorials.net

这个问题没有确定的答案,因为它取决于 NoSQL 的具体实现。 一些 NoSQL 数据库确实具有 acid 属性,而另一些则没有。

术语原子性是指事务必须在多个操作不存在的情况下执行的事实。 数据一致性是指数据库中的所有数据必须与交易发生时的原样准确记录。 我们认为隔离是一种完全保密的状态,可以防止任何其他交易干扰我们正在进行的工作。 事务的持久性表示与它一起完成的其他事务将继续工作。 NoSQL 数据库管理方法与严格的 ACID 规则相反。 因此,对于那些想要在严格环境中运行的人来说,NoSQL 数据库并不是最佳选择。 遵循 ACID 标准的数据库通常更可靠、更高效,并能为用户提供更一致的体验。


Nosql 是酸还是碱?

图片来源:https://infodecisionnel.com

关系数据库的 ACID(原子性、一致性、隔离性和持久性)属性紧随 NoSQL 数据库的 ACID(属性、一致性、隔离性和持久性)属性。

对生成 ACID 的数据库有强烈的需求。 在大数据时代,我们需要可以扩展的技术。 NoSQL 数据库可以更有效地处理大型和复杂的数据。 与传统的 RDBMS相比,这些解决方案不使用表格关系,因此不会造成相同的存储问题。 有时我们更喜欢可用性而不是一致性是很自然的。 当 ACID 模型有点矫枉过正时,最好有一个基本属性。 如果您需要一致性但更喜欢刚性结构,那么关系数据库是一个不错的选择。 没有必要像许多系统那样为每个系统在 RDBMS 和 NoSQL 之间做出选择。

NoSQL数据库是一种不依赖于ACID事务的新型数据库。 (广义上定义为可用、软状态、最终一致性。)一般意义上的数据普遍可用。 如果请求未得到答复,则可能会被拒绝。 它是执行 ACID 事务的最常见的数据库系统类型。 支持MySQL、PostgreSQL、SQLite、SQL Server等数据库。 面向对象数据库是一种不需要ACID事务处理的新型数据库。 但是,当收到对请求的响应时,响应不能保证数据的可用性。 如果无法获得数据,将在某个时候提供。 在软状态下,对数据的更新不是永久性的; 此功能允许连续更新数据。 一致性至关重要:确保数据始终是最新的,即使有很多更新。

Mongodb 对酸属性的支持

术语一致性是指数据在写入数据库时​​应在多长时间内与多次读取操作保持一致。 如上所述,数据库应该能够保证所有并发运行的事务不会相互影响。 数据库的持久性表明它即使在断电或其他灾难性事件后也能正常运行。 换句话说,虽然 MongoDB 不是 ACID 兼容数据库,但它确实支持一些关键的 ACID 特性,例如原子性和持久性。

为什么 Mongodb 不酸?

MongoDB 不酸,因为它不支持事务。 交易是酸合规的基本组成部分。 MongoDB 也不支持外键,这是 acid 合规性的另一个重要部分。

MongoDB 4.0 添加了多文档 ACID 事务。 PostgreSQL 具有原生的 ACID 合规性支持,而 MongoDB 长期以来一直无法做到这一点。 我们不清楚 MongoDB 是否将 ACID 放在首位,或者用户是否关心它。 MongoDB 4.0 版包括多文档 ACID 事务保证。 根据 Eliot Horowitz 的说法,文档模型消除了对 ACID 事务的需求。 产品、服务器和企业工具副总裁 Grigori Melnik 认为这是一种写入 MongoDB 的新颖方式。 在 MongoDB 的 V4.2 版本中,跨多个分片实现的事务将成为可能。

尽管 MongoDB 过去支持多种数据存储引擎,但只有 WiredTiger 可以用于事务。 为什么 ACID 对 MongoDB 如此重要? 对于 EDB 对 ACID 事务的承诺,我们不确定我们能说些什么,但我们可以告诉您一件事:它非常重视 ACID 事务。 尽管排在第 7 位,但事实仍然是使用 SQL 等标准查询语言仍然具有重要价值。 随着您开发更多应用程序来访问您的数据,您将被迫以蔓延模式构建它们,从而增加复杂性。 PostgreSQL 作为最流行的通用数据库,仍然是最佳选择。

Mongodb 完全兼容酸吗?

另一方面,多仪器 ACID 事务可用于需要它们的用例。 他们欣赏能够以通常不需要多文档事务的方式对数据进行建模的灵活性,但是当他们这样做时这是可能的。

Nosql是否支持酸

Nosql 数据库不支持 acid 事务。 这意味着他们不能保证交易会被正确处理,并且数据可能会在交易过程中丢失或损坏。

Nosql 数据库:基本模型更持久和一致

大多数 Nosql 数据库不支持 ACID 属性,更愿意使用可承受滥用且更耐用的基础模型。