Recent Articles



































ACID



         


In databases, ACID stands for Atomicity, Consistency, Isolation, and Durability. They are considered to be the key transaction processing features of a database management system, or DBMS. Without them, the integrity of the database cannot be guaranteed.

In the context of databases, a single logical operation on the data is called a transaction. This is not a logical operation such as a logical AND or logical NOT. A transfer of funds from one account to another is considered as such a transaction, for example, even though it might consist of multiple tasks (debiting one account and crediting another). The ACID properties guarantee that such transactions are processed reliably.

Implementing the ACID properties correctly is not simple. Processing a transaction often requires a number of small changes to be made, including updating Write ahead logging and Shadow paging. In both cases, locks must be acquired on all information that is read and updated. In write ahead logging, atomicity is guaranteed by ensuring that all REDO and UNDO information is written to a log before it is written to the database. In shadowing, updates are applied to a copy of the database, and the new copy is activated when the transaction commits. The copy refers to unchanged parts of the old version of the database, rather than being an entire duplicate.

In a network environment, it is difficult to guarantee ACID properties.

In distributed transactions, two-phase commit is typically applied to ensure that each participant in the transaction agrees on whether the transaction should be committed or not.

Care must be taken when running transactions in parallel. Two phase locking is typically applied to guarantee full isolation.

The 1995 MUMPS programming language Standard includes Transaction Processing as one of its built-in commands.


The ACID concept is described in ISO/IEC 10026-1:1992 Section 4.







  View Live Article   This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License