【正文】
169。Silberschatz, Korth and Sudarshan, Bo Zhou Database System Concepts Chapter 15: Transactions ? Transaction Concept ? Concurrent Executions ? Serializability ? Testing for Serializability ? Recoverability ? Transaction Definition in SQL 169。Silberschatz, Korth and Sudarshan, Bo Zhou Database System Concepts Transaction Concept ? . Transaction to transfer $50 from account A to account B: 1. read(A) 4. read(B) 2. A := A – 50 5. B := B + 50 3. write(A) 6. write(B ? A transaction is a unit of program execution that accesses and possibly updates various data items. ? A transaction must see a consistent database. ? During transaction execution the database may be inconsistent. ? When the transaction is mitted, the database must be consistent. ? Two main issues to deal with: ? Failures of various kinds, such as hardware failures and system crashes ? Concurrent execution of multiple transactions 169。Silberschatz, Korth and Sudarshan, Bo Zhou Database System Concepts ACID Properties ? Atomicity. Either all operations of the transaction are properly reflected in the database or none are. ? Commit a transaction ? Rollback a transaction ? Consistency. Execution of a transaction in isolation preserves the consistency of the database. ? Isolation. Although multiple transactions may execute concurrently, each transaction must be unaware of other concurrently executing transactions. Intermediate transaction results must be hidden from other concurrently executed transactions. ? Durability. After a transaction pletes successfully, the changes it has made to the database persist, even if there are system failures. To preserve integrity of data, the database system must ensure: 169。Silberschatz, Korth and Sudarshan, Bo Zhou Database System Concepts Example of Fund Transfer ? Transaction to transfer $50 from account A to account B: 1. read(A) 2. A := A – 50 3. write(A) 4. read(B) 5. B := B + 50 6. write(B) ? Consistency requirement – the sum of A and B is unchanged by the execution of the transaction. ? Atomicity requirement — if the transaction fails after step 3 and before step 6, the system should ensure that its updates are not reflected in the database, else an inconsistency will result. ? Failure could be due to software or hardware 169。Silberschatz, Korth and Sudarshan, Bo Zhou Database System Concepts Example of Fund Transfer (Cont.) ? Durability requirement — once the user has been notified that the transaction has pleted (., the transfer of the $50 has taken place), the updates to the database by the transaction must persist despite failures. ? Isolation requirement — if between steps 3 and 6, another transaction is allowed to access the partially updated database, it will see an inconsistent database (the sum A + B will be less than it should be). ? Can be ensured trivially by running transactions serially, that is one after the other. ? However, executing multiple transactions concurrently has significant benefits, as we will see. 169。Silbers