What Do ACID Properties Guarantee in Databases?

In classical computing, Atomicity, Consistency, Isolation, and Durability—collectively known as ACID—are four foundational properties that guarantee reliable processing of concurrent database transactions. Together, they ensure that data remains accurate, valid, and recoverable even when multiple operations execute simultaneously or when hardware and software failures occur.

Atomicity

Atomicity guarantees that each transaction is treated as a single, indivisible unit of work. Either every operation within the transaction succeeds and is permanently applied to the database, or none of them take effect. If any step fails—due to a system crash, power loss, or constraint violation—the database rolls back all partial changes, leaving the system in the exact state it was in before the transaction began.

Consistency

Consistency ensures that a transaction only transitions the database from one valid state to another. Every transaction must obey all defined rules, including data types, primary and foreign key constraints, triggers, and application-level invariants. If a transaction would leave the database in a state that violates any of these rules, the transaction is aborted and rolled back.

Isolation

Isolation guarantees that concurrent transactions execute as if they were running sequentially, without interfering with one another. When multiple transactions read and write shared data at the same time, isolation prevents concurrency anomalies such as dirty reads, non-repeatable reads, and phantom reads. Database systems implement isolation using mechanisms like locking or multi-version concurrency control, often offering configurable isolation levels that balance strict correctness against throughput.

Durability

Durability ensures that once a transaction has been committed, its changes are permanent and will survive subsequent system failures, such as crashes or power outages. Databases achieve durability by writing committed changes to non-volatile storage, typically using write-ahead logging (WAL), before acknowledging the commit to the client. Even if the system restarts immediately after a commit, the database can replay the log to restore the committed state.

Why ACID Matters for Concurrent Systems

In classical computing environments where many users and processes access shared data simultaneously, ACID properties provide a strict contract between the database and the application. By combining atomicity, consistency, isolation, and durability, databases prevent data corruption, race conditions, and partial updates, allowing developers to reason about concurrent operations safely.