In computing, the ACID properties are a set of characteristics that, when enforced, will keep tables, files and databases free from corruption, either when there is a failure or when multiple users try to access the same record at the same time, to perform a transaction. Transactions are application-specific units of work, such as making several interdependent reservations for a multi-segment airline flight, a hotel, and a rental car. While the properties themselves are straightforward, implementing them can be decidedly complex, especially when dealing with distributed databases with multiple copies of the same information.
The basic properties, stated somewhat informally, require that any action that can change the information is:
- Atomic: Either every action of the transaction takes place, or, if any cannot complete, the information remains exactly the same as it was before the transaction was attempted.
- Consistent: The transaction performs correctly, within the rules of the application.
- Isolated: Every transaction runs as if there were no other instances of related transactions being attempted at the same time. In practice, this usually means that there must be a mechanism to lock the information to a transaction while changes take place.
- Durable: Once a transaction does complete, its effects are permanent and survive failures.
- "Scale Up with TP Monitors", Byte Magazine, April 1995