A database transaction is a unit of interaction with a database management system or similar system that is treated in a coherent and reliable way independent of other transactions. Ideally, a database system will guarantee all of the ACID properties for each transaction. In practice, these properties are often relaxed somewhat to provide better performance.
In database products the ability to handle transactions allows the user to ensure that integrity of a database is maintained.
A single transaction might require several queries, each reading and/or writing information in the database. When this happens it is usually important to be sure that the database is not left with only some of the queries carried out. For example, when doing a money transfer, if the money was debited from one account, it is important that it also be credited to the depositing account. Also, transactions should not interfere with each other. For more information about desirable transaction properties, see ACID.
A simple transactions is usually issued to the database system in a language like SQL in this form:
Begin the transaction
Execute several queries (although any updates to the database aren't actually visible to the outside world yet)
Commit the transaction (updates become visible if the transaction is successful)
If the transaction fails at any point (possibly before getting to the Commit phase), the database system will rollback any changes. All other transactions will behave the same way as if the transaction had never existed.
Transactions always operate on a consistent view of the data and when they end always leave the data in a consistent state.
The effects of concurrently running transactions are invisible to this transaction, and the effects of this transaction are invisible to others until the transaction is committed.
Until the transaction commits, not only are any changes made by that transaction not durable, but are guaranteed not to persist in the face of a system failure, as crash recovery will rollback their effects.
A databasetransaction is a unit of interaction with a databasemanagement system or similar system that is treated in a coherent and reliable way independent of other transactions that must be either entirely completed or aborted.
In database products the ability to handle transactions allows the user to ensure that integrity of a database is maintained.
When this happens it is usually important to be sure that the database is not left with only some of the queries carried out.