ACID

Summary: An acronym standing for Atomicity, Consistency, Isolation, and Durability, representing the safety guarantees provided by transactions.

Sources: chapter7

Last updated: 2026-04-17


ACID was coined in 1983 by Theo Härder and Andreas Reuter in an effort to establish precise terminology for fault-tolerance mechanisms in databases (source: chapter7).

Components

Atomicity

Atomicity refers to something that cannot be broken down into smaller parts. In the context of ACID, it describes what happens if a client wants to make several writes, but a fault occurs after some of the writes have been processed (source: chapter7). If the writes are grouped into an atomic transaction and it cannot be completed, the transaction is aborted and the database must discard or undo any writes it has made so far.

Consistency

In the context of ACID, consistency refers to an application-specific notion of the database being in a “good state” (source: chapter7). This depends on the application’s notion of invariants (e.g., in an accounting system, credits and debits must always be balanced).

Isolation

Isolation means that concurrently executing transactions are isolated from each other: they cannot step on each other’s toes (source: chapter7). The classic database textbook formalizes isolation as serializability.

Durability

Durability is the promise that once a transaction has committed successfully, any data it has written will not be forgotten, even if there is a hardware fault or the database crashes (source: chapter7).