A Transaction is an atomic unit of work that modifies data. A transaction encloses one or more program statements, all of which either complete or roll back. Transactions enable multiple users to access the same data concurrently. Transactions simplify application programming because they free the programmer from dealing with failure recovery and concurrent access by multiple users. The transaction manager ensures that a task completes or is rolled back to the last completed step.