您的当前位置:首页 >数据库 >NOSQL数据库能否符合ACID特性? 正文
时间:2025-11-05 11:50:50 来源:网络整理编辑:数据库
必须重新理解ACID作为事务系统属性的含义,而不管底层数据模型如何。译自Can NoSQL Databases Be ACID Compliant?,作者 Srinivasan Seshadri。AC
必须重新理解ACID作为事务系统属性的据库含义,而不管底层数据模型如何。符合
译自Can NoSQL Databases Be ACID Compliant?特性,作者 Srinivasan Seshadri。据库

ACID特性概念传统上与关系型数据库相关联,符合导致对其在NoSQL系统中适用性的特性误解。一些知名网站,据库例如AWS,符合断言NoSQL无法符合ACID特性。特性与这些观点相反,据库ACID(原子性、符合一致性、特性隔离性、据库持久性)并非关系型数据库所独有,符合而是特性事务处理系统的基石。
让我们探讨这些误解以及为什么NoSQL数据库能够——而且经常——遵守ACID特性。
早期的NoSQL系统优先考虑性能和可用性,经常放松ACID保证,这导致了NoSQL本质上不符合ACID特性的认知。
另一个重要的混淆来源在于对ACID中“C”(一致性)的解释。许多人错误地认为它要求引用完整性约束,而NoSQL数据库通常不支持这一点。然而,ACID的一致性概念更广泛,并不固有地要求引用完整性,企商汇允许NoSQL数据库在适当的情况下实现ACID一致性。
原子性、一致性和持久性属性是由Jim Gray在其关于事务的开创性论文中提出的。虽然ACID首字母缩略词后来才出现,但基本概念起源于Gray对事务处理的讨论。值得注意的是,Gray对一致性的定义并不依赖于关系型数据库特有的引用完整性约束。相反,它包含一个更广泛的概念:
“事务是对状态的转换,具有原子性(全部或无)、持久性(效果能够在故障后存活)和一致性(正确的转换)的特性。”
Jim Gray和Andreas Reuter后来这样定义一致性:
“事务是对状态的正确转换。作为一个组采取的行动不会违反与状态相关的任何完整性约束。这要求事务是源码下载一个正确的程序。”
这突出表明,ACID是一个用于确保事务处理系统(无论是否为关系型)正确性和可靠性的框架。
此外,Gray和Reuter将事务处理系统定义为:
“事务处理系统(TP系统)管理与数据库交互以表示和操作现实世界状态的应用程序。它们通常支持分布式、具有严格可用性和性能要求的异构环境。历史上,TP系统开创了诸如容错存储、分布式计算以及最值得注意的是ACID特性等概念。”
甚至在关系型系统之前,例如IBM在20世纪70年代的信息管理系统(IMS),就已经支持ACID事务,远在该首字母缩略词被创造出来之前。
ACID一致性可以理解为数据库系统内各个层提供的一组保证:
层级
用途
查询层
支持 SQL、Cypher、Gremlin、GQL 等查询语言
事务层
为操作多条记录或键值对提供事务保证
复制层
在多个节点之间提供一致的副本复制
二级索引层
为节点上存储的记录提供二级索引
存储层
在节点上存储记录或键值对
这些层说明ACID一致性是整个数据库系统协调保证的结果。高防服务器特别是,这些保证是由查询语言或数据模型层以下的层提供的,这些层可以通过引入更多关于该数据库系统必须确保的完整性约束的概念来增加ACID保证。
一个常见的混淆来源是ACID和CAP(一致性、可用性、分区容忍性)中“一致性”一词的双重使用。在ACID中,一致性指的是事务状态转换相对于用户定义约束(例如主键、引用完整性)的正确性。在CAP中,一致性表示分布式系统中副本之间的数据一致性。
请注意:
在严格串行化隔离级别下运行的符合ACID特性的分布式数据库固有地满足CAP的一致性(线性化)要求。缺乏CAP一致性(线性化)意味着未能满足ACID的原子性和严格串行化隔离保证。BASE(基本可用,软状态,最终一致性)理念随着NoSQL数据库的出现而出现,以解决Web应用程序的可扩展性需求。早期的NoSQL系统优先考虑可用性和分区容错性,通常会放宽ACID保证。这种区别导致了一种误解,即NoSQL数据库无法实现ACID一致性。
然而,NoSQL系统的发展模糊了这些界限。许多现代NoSQL数据库现在支持:
强一致性模型(CAP中的C)具有串行化保证的事务(ACID中的A、I和D)主键等约束的强制执行一些NoSQL数据库声称具有ACID一致性,并有强大的技术实现作为支撑。但是,请注意,并非所有这些系统都可以在严格的串行化隔离级别运行。例如:
DynamoDB:根据AWS,“DynamoDB支持原子性、一致性、隔离性和持久性(ACID)事务,从而能够跨表内和跨表中的多个项目实现复杂的业务逻辑。” 提供具有严格ACID保证的多文档事务。MongoDB提供具有严格 ACID 保证的多文档事务。Aerospike:将在2025年初的8.0服务器版本中发布对严格可串行化ACID事务的支持。Databricks的Delta Lake:在分布式对象存储上提供ACID兼容的表存储。这些例子表明,NoSQL数据库能够并且确实实现了ACID一致性,这使得它们适合于关键任务应用程序。
ACID不是关系数据库的遗留物,而是事务处理系统中的一个基础概念。现代NoSQL数据库已经发展到包含ACID保证,挑战了它们天生就是“BASE”的过时说法。随着数据库生态系统的不断创新,必须重新定义我们对ACID的理解,将其视为事务系统的属性,而不管底层数据模型如何。
通过消除这些误解,我们可以更好地理解NoSQL数据库在为各种应用程序提供可靠、一致和可扩展的解决方案方面的能力。
电脑声卡和蓝牙连接教程(无线音频传输的便捷方式及操作步骤)2025-11-05 11:48
探索K650E在现代科技领域的应用(发挥K650E高性能与创新特性的多重应用场景)2025-11-05 11:44
使用U盘重新安装系统的完整教程(轻松实现系统重装,快速提升电脑性能)2025-11-05 11:15
小米2s搭载MIUI8(一触即发的华丽主题,让你爱不释手)2025-11-05 10:21
蓝魅手机体验报告(领先科技与出色性能的完美结合)2025-11-05 10:12
使用联想电脑和U盘重装电脑系统的教程(详细步骤和注意事项让您轻松完成)2025-11-05 10:11
如何使用U盘安装Windows7系统(全面指南及步骤详解,帮助您轻松完成安装过程)2025-11-05 09:55
显卡显存位宽高的重要性与影响(探讨显存位宽高对显卡性能的关键因素)2025-11-05 09:42
解析以3500主机配置的性能和优势(揭秘3500主机配置的卓越表现及最佳用途)2025-11-05 09:36
三星手机如何使用U盘重装系统(U盘重装系统教程及注意事项)2025-11-05 09:20
游戏本的多功能之旅(发现游戏本的更多可能性,让生活更加便捷高效)2025-11-05 11:45
笔记本电脑不断重启的解决方法(遭遇笔记本电脑频繁重启?别担心,这里有解决方案!)2025-11-05 11:43
破解WiFi密码的方法与技巧(掌握WiFi安全,保护个人网络隐私)2025-11-05 11:35
打造高性能台式电脑的配置清单推荐(轻松组装你的理想电脑,提升工作和娱乐体验)2025-11-05 11:13
DostyleHS309耳机(探索音乐的终极享受,尽在DostyleHS309耳机)2025-11-05 10:52
回收站清空数据的恢复时间(回收站清空数据后能否恢复?恢复时间有多久?)2025-11-05 10:34
使用洛金U盘重装系统教程(轻松实现系统重装,洛金U盘助您快速解决电脑问题)2025-11-05 10:08
华擎K4(功能强大、性能稳定,华擎K4成为追求高品质计算体验的首选)2025-11-05 09:26
护你妹卫生巾的优点与使用方法(选择合适的护你妹卫生巾,让你妹妹更舒适自在)2025-11-05 09:16
手把手教你制作U盘系统大师(简单易懂的U盘系统制作教程,助你成为大师)2025-11-05 09:12