Terms and Conditions:
Philip A. Bernstein wrote:Concurrency Control and Recovery In Database Systems by Philip A. Bernstein, Vassos Hadzilacos, and Nathan Goodman, is now available for free download, subject to the notice that appears on the book's copyright page. This is the original 1987 version, not a new edition. The book is being made available electronically because the hard cover version, published by Addison-Wesley Longman, is out of print.
This book is about techniques for concurrency control
A concurrency control algorithm
ensures that transactions execute atomically. It does this by controlling the interleaving of concurrent transactions, to give the illusion that transactions execute serially, one after the next, with no interleaving at all. Interleaved executions whose effects are the same as serial executions are called serializable
. Serializable executions are correct, because they support this illusion of transaction atomicity.
A recovery algorithm
monitors and controls the execution of programs so that the database includes only the results of transactions that run to a normal completion. If a failure occurs while a transaction is executing, and the transaction is unable to finish executing, then the recovery algorithm must wipe out the effects of the partially completed transaction. That is, it must ensure that the database does not reflect the results of such transactions. Moreover,it must ensure that the results of transactions that do execute are never lost.
This book covers techniques for centralized
computer systems, and for single copy, multiversion, and replicated databases. These techniques were developed by researchers and system designers principally interested in transaction processing systems and database systems. Such systems must process a relatively high volume of short transactions for data processing. Example applications include electronic funds transfer, airline reservation, and order processing. The techniques are useful for other types of applications too, such as electronic switching and computer-aided design - indeed any application that requires atomicity and reliability of concurrently executing programs that access shared data.
This book can be used as a principal or supplementary textbook in a graduate course on database systems, operating systems, or distributed systems. To make a good use of this book, one should have a basic knowledge of directed graphs and partial orders, which appears in most undergraduate textbooks on discrete mathematics.