Databases
ACID
ACID (on databases) refer to the properties of a transactional database.
Compare with BASE, used on NoSQL models.
Atomicity
The database changes that are executed by a transaction take effect on all nodes involved, or on none of the nodes. That is, the transaction either succeeds entirely, or it fails entirely.
In many applications, it is important that a series of write operations are performed atomically inside a transaction. The atomicity property ensures that a transaction takes effect on all nodes, or none.
Consistency
The consistency property ensures that a transaction always leaves the DBMS in a consistent state. The DB must ensure that no inconsistencies occur if the program, the DB or the computer crashes while a write operation is in progress.
Isolation
The isolation property ensures that transactions that execute on different nodes in a network, and access and manipulate the same data records, do not interfere with each other.
A classical problem in concurrency control theory is the "lost update problem".
A transaction system makes it possible to execute two or more processes concurrently that manipulate the same record. The programmer does not need to check that the updates are synchronous; this is overseen by the transaction handler. All programs accessing the database through the transaction system can be written as if they had sole access to the data.
Durability
The durability property ensures that changes made to the DBMS by a transaction are permanent. Once a transaction is committed, all changes made to the database are durable, that is, they are written safely to disc and do not become corrupted and do not disappear.