In part, the requirement for correctness and reliability is the burden of the application programming staff … However, even the most carefully implemented application program is vulnerable to certain errors that are beyond its control. These potential errors arise from two sources: concurrency and failures.
Multiprogramming is essential for attaining high performance. Its effect is to allow many programs to interleave their executions. That is, they execute concwrently. When such programs interleave their accessesto the database, they can interfere. Avoiding this interference is called the concurrency control problem.
Systems that solve the concurrency control and recovery problems allow their users to assume that each of their programs executes atomically — as if no other programs were executing concurrently — and reliably — as if there were no failures. This abstraction of an atomic and reliable execution of a program is called a transaction.
Concurrency control is the activity of coordinating the actions of processes that operate in parallel, access shared data, and therefore potentially interfere with each other. recovery …
study this problem using a model of database systems … the main component of this model is the transaction… the goal of concurrency control and recovery is to ensure that transactions execute atomically:
In general, a transaction is free to control its internal execution using any available mechanism. Only interactions between different transactions need to be controlled by the DBS.