ScholarGate
助手

ACID 事务

ACID 事务保证一组数据库操作作为一个单一的、可靠的单元运行,该单元具有原子性、保持一致性、与其他事务隔离,并且一旦提交就具有持久性。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

事务是一个工作单元,由一个或多个数据库操作组成,系统以 ACID 保证执行这些操作:原子性、一致性、隔离性和持久性;它通过提交(使其效果永久化)或中止(撤销其所有效果)来终止。

Scope

本主题详细介绍了事务抽象和四个 ACID 属性:原子性(全有或全无的提交或中止)、一致性(每个事务将数据库从一个有效状态转移到另一个有效状态)、隔离性(并发事务不会相互可观察地干扰)和持久性(已提交的效果在故障后仍然存在)。它讨论了提交和中止语义以及这些属性如何与并发控制和恢复相关。它不包括实现隔离和持久性的具体协议,这些是相邻主题。

Core questions

  • 每个 ACID 属性保证了什么?
  • 提交和中止如何定义事务的全有或全无行为?
  • 隔离性如何与可串行化和并发控制相关联?
  • 尽管系统崩溃,如何实现持久性?
  • 事务模型对于长时间运行或分布式工作的局限性是什么?

Key concepts

  • 事务工作单元
  • 原子性
  • 一致性
  • 隔离性
  • 持久性
  • 提交和中止
  • 回滚
  • 事务状态模型

Key theories

原子性和持久性
原子性确保事务的效果完全应用或完全不应用,即使在故障发生时也是如此;持久性确保一旦事务提交,其更改在崩溃后仍然存在;两者都通过日志记录和恢复实现。
一致性和隔离性
一致性要求每个已提交的事务都保留数据库的完整性约束;隔离性要求并发事务产生的结果等同于某种串行顺序,相互隐藏中间状态。
事务概念及其局限性
事务抽象简化了对故障和并发的推理,但 Gray 指出了其在长期活动和跨系统边界方面的局限性,这促使了后来关于 saga 和分布式事务的工作。

Clinical relevance

ACID 事务是数据库能够被信任执行关键操作的原因:资金转账、库存扣减或预订要么完全完成,要么根本不完成,并且能在崩溃中幸存,这就是为什么事务性数据库是银行、商业和记录保存系统的支柱。

History

Jim Gray 于 1981 年阐明了事务概念及其优点和局限性;Härder 和 Reuter 在 1983 年对面向事务的恢复的调查中创造了 ACID 首字母缩略词。这些围绕 IBM System R 发展起来的思想成为可靠数据处理的标准模型,并塑造了随后的每一个数据库系统。

Key figures

  • Jim Gray
  • Andreas Reuter
  • Theo Härder

Related topics

Seminal works

  • gray1981
  • haerder1983
  • gray1992

Frequently asked questions

ACID 中的一致性与 CAP 定理中的一致性有什么区别?
它们是不同的概念。ACID 一致性意味着事务保留数据库的完整性约束,使其在有效状态之间转换。CAP 一致性指的是分布式系统中所有副本都同意最新值。一个系统可以满足其中一个而不满足另一个,因此同一个词在两种情况下表示不同的属性。
ACID 属性是相互独立的吗?
它们是概念上不同的保证,但通过重叠的机制实现。原子性和持久性来自日志记录和恢复;隔离性来自并发控制;一致性则由应用程序的事务逻辑和系统对其他三个属性的强制执行共同维护。

Methods for this concept

Related concepts