ACID is an acronym that stands for “Atomicity, Consistency, Isolation and Durability“. It refers to a set of properties that describe the behavior of data in databases. It was originally introduced by IBM in 1970s as a way to compare database products with each other.
The idea behind ACID is that it should be possible for any transaction to run without interference from other transactions and still produce consistent results. As such, it can help you design your database better so you don’t have problems like lost data or inconsistent reports when multiple people are using the same system at once.
What ACID does
In the ACID model, a transaction is an atomic unit of work that must be performed in its entirety. Transactions are usually started by applications and specify the actions to take place (read data or update it).
- It should always be possible for any transaction to run without interference from other transactions and still produce consistent results
- It helps you design databases in a way that is more logical and efficient.
- It can improve your database’s performance because it minimizes the locks within transactions, which would slow down other operations.
- ACID does not guarantee data integrity or consistency across multiple databases; for this you need to use distributed transaction techniques like two-phase commit with an atomic commitment protocol.
Four Elements of ACID
The four properties of POSIX transactions – atomicity, consistency, isolation and durability – form what’s known as the ACID model.
- Atomicity guarantees that either all the actions are performed successfully or none of them are.
- Consistency guarantees that once a transaction has been committed, data can’t be read from an earlier point in time and inconsistency is avoided.
- Isolation ensures that transactions appear to take place instantaneously – even if they actually took place over a period of minutes or hours.
- Durability means that when changes have been made as part of a transaction, those changes will persist on disk so other applications (or users) can see the results later on without having to redo work themselves.