ACID properties characterize RDBMS (Relational Database Management System) database processing or a data warehouse. Originally coined in the early 1980s, according to DAMA DMBoK, the ACID philosophy consists of requirements for generating and maintaining reliable database transactions. ACID provides consistency before, during and after transactions through five properties:
- Atomic: Each task in a transaction succeeds or the entire transaction is rolled back.
- Consistent: A transaction maintains a valid state for the database before and after its completion and cannot leave the database in an inconsistent state.
- Isolated: A transaction not yet committed must not interfere with another transaction and must remain isolated.
- Durable: Committed transactions persist in the database and can be recovered in case of database failure.
Other Definitions of ACID Include:
- “A database model providing a safe environment for processing data as the data is consistent, stable and may use multiple memory locations.” (Keith Foote)
- An “acronym that refers to a set of guarantees that database transactions are processed reliably.” (University of Texas).
- Data properties ensuring that a database is not made inconsistent, by an individual transaction, and that transactions are executed quickly. (Florida Institute of Technology)
- “A guarantee for consistency at the expense of availability and/or partition tolerance.” (UC San Diego)
Consider transferring $50 from one account (A) to another (B). Atomicity prevents money only withdrawn from A without it going to B. Consistency means that the transaction math works. The money can’t just magically appear from or disappear into the system’s ether. Isolation allows multiple transactions to occur (e.g. a transfer can occur, a paycheck can be deposited, and the electricity bill can be paid without confusion). Durability gives sanity upon logging into an account as once the transaction completes the updates to the database must persist (e.g. the transfer of $50 has taken place even if the system fails).
Businesses Use ACID Database Types to:
- Make decisions about database architecture and usage
- Understand database technologies and have meaningful conversations around them
- Manage operations
- Maintain data integrity even if the database suffers an outage or a failure
Image used under license from Shutterstock.com