A transaction is a series of discreet actions in an application that must all complete successfully or else all the changes in each action are backed out. For example, to transfer funds from a checking account to a savings account is a transaction with the following steps:
Check to see if the checking account has enough money to cover the transfer.
If there’s enough money in the checking account debit the amount from the checking account.
Credit the money to the savings account.
Record the transfer to the checking account log.
Record the transfer to the savings account log.
If any of these steps fails, all changes from the preceding steps must be backed out, and the checking account and savings account must be in the same state as they were before the transaction started. This event is called a rollback. If all the steps complete successfully, the transaction is in a committed state. Transactions end in either a commit or a rollback.