About

In computer science, ACID (atomicity, consistency, isolation, durability) is a set of properties that guarantee transactions are processed reliably.

They defines a concurrency model.

Traditional database (ie non distributed database) follows this rules. In a distributed database, traditional database would be categorize as the AC type of the cap theorem. Conventional databases assume no network partitioning and are not distributed.

ACID rules

Ideally, the software should enforce the ACID rules, summarized here:

  • Atomicity: Either all the tasks in a transaction must happen, or none of them. The transaction must be completed, or else it must be undone (rolled back). Atomicity = the Transaction must fail of succeed. Either all occur or none of them occur.
  • Consistency: Every transaction must preserve the integrity constraints — the declared consistency rules — of the database. It cannot leave the data in a contradictory state. A series of database operations does not violate any integrity constraints during execution.
  • Isolation: Two simultaneous transactions cannot interfere with one another. Intermediate results within a transaction must remain invisible to other transactions. The intermediate state of a series of database operations cannot be seen by other series of database operations.
  • Durability: Completed transactions cannot be aborted later or their results discarded. They must persist through (for instance) restarts of the DBMS after crashes. A series of database operations that have committed are guaranteed to survive permanently.

Weaker concurrency model

In practice, many DBMSs allow the selective relaxation of most of these rules — for better performance or on a distributed system

Documentation / Reference