Databases are often described in terms of their ACID properties (e.g. "eventual consistency"), so knowing the vocabulary is useful when considering a database solution. Some contemporary database management systems intentionally disregard ACID properties in a tradeoff for other gains.
ACID is an acronym representing four traits of a database transaction that will guarantee valid data even if the transaction is not completed. Transactions that violate these principles will leave the database in an unknown or invalid state.
- Atomicity: a transaction must either complete all operations of the transaction or no operations.
- Consistency: a transaction that completes must conform to all and any constraints on the data.
- eventual consistency: in a distributed database, a change to the data in one instance will take time to propogate to other instances. Eventual consistency means that this change will eventually propogate ("converge"), and all relational constraints and rules will be applied; but before then, anything goes: old, invalid date might be retrieved instead.
- Isolation: a transaction's operations must not influence (be visible to) other transactions until the transaction is complete. Rather, transactions executed at the same time must behave as if they were executed one at a time.
- Durability: the changes made by a completed transaction must be permanent.
The influential paper describing these properties is "Principles of Transaction-Oriented Database Recovery" by Haerder and Reuter, 1983.