A database system must ensure proper execution of transactions
despite failures—either the entire transaction executes, or none of it does. Furthermore,
it must manage concurrent execution of transactions in a way that
avoids the introduction of inconsistency. In our funds-transfer example, a transaction
computing the customer’s total balance might see the checking-account
balance before it is debited by the funds-transfer transaction, but see the savings
balance after it is credited. As a result, it would obtain an incorrect result.