Transactions and concurrency
In addition to their data model, most practical databases attempt to enforce a database transaction model that has desirable data integrity properties. Ideally, the database software should enforce the ACID rules:
- Atomicity - either all or no operations are completed. (Transactions that can't be finished must be completely undone.)
- Consistency - all transactions must leave the database in consistent state.
- Isolation - transactions can't interfere with each other's work and incomplete work isn't visible to other transactions.
- Durability - successful transactions must persist through crashes.
In practice, many DBMS's allow some of these rules to be relaxed for better performance.
Concurrency control is a method used to ensure transactions are executed in a safe manner and follows the ACID rules. The DBMS must be able to ensure only serializable, recoverable schedules are allowed, and that no actions of committed transactions are lost while undoing aborted transactions.
See also
References
Source | Copyright