ACID Transactions
ACID transactions guarantee that a group of database operations behaves as a single, reliable unit that is atomic, consistency-preserving, isolated from other transactions, and durable once committed.
Definition
A transaction is a unit of work consisting of one or more database operations that the system executes with the ACID guarantees: atomicity, consistency, isolation, and durability; it terminates either by commit (making its effects permanent) or by abort (undoing all its effects).
Scope
This topic covers the transaction abstraction and the four ACID properties in detail: atomicity (all-or-nothing commit or abort), consistency (each transaction moves the database from one valid state to another), isolation (concurrent transactions do not interfere observably), and durability (committed effects persist through failures). It treats commit and abort semantics and how the properties relate to concurrency control and recovery. It excludes the specific protocols that implement isolation and durability, which are adjacent topics.
Core questions
- What does each of the ACID properties guarantee?
- How do commit and abort define a transaction's all-or-nothing behavior?
- How does isolation relate to serializability and concurrency control?
- How is durability achieved despite system crashes?
- What are the limits of the transaction model for long-running or distributed work?
Key concepts
- transaction unit of work
- atomicity
- consistency
- isolation
- durability
- commit and abort
- rollback
- transaction state model
Key theories
- Atomicity and durability
- Atomicity ensures a transaction's effects are applied entirely or not at all, even across failures, and durability ensures that once a transaction commits its changes survive crashes; both are implemented through logging and recovery.
- Consistency and isolation
- Consistency requires each committed transaction to preserve the database's integrity constraints, and isolation requires that concurrent transactions produce results equivalent to some serial order, hiding intermediate states from one another.
- The transaction concept and its limits
- The transaction abstraction simplifies reasoning about failures and concurrency, but Gray noted limitations for long-lived activities and across system boundaries, motivating later work on sagas and distributed transactions.
Clinical relevance
ACID transactions are the reason databases can be trusted with critical operations: a funds transfer, an inventory deduction, or a reservation either completes fully or not at all and survives crashes, which is why transactional databases are the backbone of banking, commerce, and record-keeping systems.
History
Jim Gray articulated the transaction concept and its virtues and limitations in 1981; Härder and Reuter coined the ACID acronym in their 1983 survey of transaction-oriented recovery. These ideas, developed around IBM's System R, became the standard model of reliable data processing and shaped every subsequent database system.
Key figures
- Jim Gray
- Andreas Reuter
- Theo Härder
Related topics
Seminal works
- gray1981
- haerder1983
- gray1992
Frequently asked questions
- What is the difference between consistency in ACID and the consistency in the CAP theorem?
- They are different notions. ACID consistency means a transaction preserves the database's integrity constraints, moving it between valid states. CAP consistency refers to all replicas in a distributed system agreeing on the latest value. A system can satisfy one without the other, so the same word denotes distinct properties in the two contexts.
- Are ACID properties independent of each other?
- They are conceptually distinct guarantees but are implemented by overlapping mechanisms. Atomicity and durability come from logging and recovery; isolation comes from concurrency control; and consistency is preserved jointly by the application's transaction logic and the system's enforcement of the other three properties.