Database Systems: The Complete Book- P10: Database Systems and Database Design and Application courses offered at the junior, senior and graduate levels in Computer Science departments. Written by well-known computer scientists, this introduction to database systems offers a comprehensive approach, focusing on database design, database use, and implementation of database applications and database management systems | 880 CHAPTER 17. COPING WITH SYSTEM FAILURES . ISSUES AND MODELS FOR RESILIENT OPERATION 881 Is the Correctness Principle Believable Given that a database transaction could be an ad-hoc modification command issued at a terminal perhaps by someone who doesn t understand the implicit constraints in the mind of the database designer is it plausible to assume all transactions take the database from a consistent state to another consistent state Explicit constraints are enforced by the database so any transaction that violates them will be rejected by the system and not change the database at all. As for implicit constraints one cannot characterize them exactly under any circumstances. Our position justifying the correctness principle is that if someone is given authority to modify the database then they also have the authority to judge what the implicit constraints are. There is a converse to the correctness principle that forms the motivation for both the logging techniques discussed in this chapter and the concurrency control mechanisms discussed in Chapter 18. This converse involves two points 1. A transaction is atomic that is it must be executed as a whole or not at all. If only part of a transaction executes then there is a good chance that the resulting database state will not be consistent. 2. Transactions that execute simultaneously are likely to lead to an inconsistent state unless we take steps to control their interactions as we shall in Chapter 18. The Primitive Operations of Transactions Let us now consider in detail how transactions interact with the database. There are three address spaces that interact in important ways 1. The space of disk blocks holding the database elements. 2. The virtual or main memory address space that is managed by the buffer manager. 3. The local address space of the transaction. For a transaction to read a database element that element must first be brought to a main-memory buffer or buffers if it is not already .