Title: Transaction Management and Concurrency Control
1Chapter 9
- Transaction Management and Concurrency Control
- Database Systems Design, Implementation, and
Management, Sixth Edition, Rob and Coronel
2In this chapter, you will learn
- What a database transaction is and what its
properties are - How database transactions are managed
- What concurrency control is and what role it
plays in maintaining the databases integrity - What locking methods are and how they work
- How database recovery management is used to
maintain database integrity
3What is a Transaction?
- Any action that reads from and/or writes to a
database may consist of - Simple SELECT statement to generate a list of
table contents - A series of related UPDATE statements to change
the values of attributes in various tables - A series of INSERT statements to add rows to one
or more tables - A combination of SELECT, UPDATE, and INSERT
statements
4What is a Transaction? (continued)
- A logical unit of work that must be either
entirely completed or aborted - Successful transaction changes the database from
one consistent state to another - One in which all data integrity constraints are
satisfied - Most real-world database transactions are formed
by two or more database requests - The equivalent of a single SQL statement in an
application program or transaction
5The Relational Schema for the Ch09_SaleCo Database
6Evaluating Transaction Results
- Not all transactions update the database
- SQL code represents a transaction because
database was accessed - Improper or incomplete transactions can have a
devastating effect on database integrity - Some DBMSs provide means by which user can define
enforceable constraints based on business rules - Other integrity rules are enforced automatically
by the DBMS when table structures are properly
defined, thereby letting the DBMS validate some
transactions
7Tracing the Transaction in the Ch09_SaleCo
Database
Figure 9.2
8Transaction Properties
- Atomicity
- Requires that all operations (SQL requests) of a
transaction be completed - Durability
- Indicates permanence of databases consistent
state
9Transaction Properties (continued)
- Serializability
- Ensures that the concurrent execution of several
transactions yields consistent results - Isolation
- Data used during execution of a transaction
cannot be used by second transaction until first
one is completed
10Transaction Management with SQL
- ANSI has defined standards that govern SQL
database transactions - Transaction support is provided by two SQL
statements COMMIT and ROLLBACK - ANSI standards require that, when a transaction
sequence is initiated by a user or an application
program, - it must continue through all succeeding SQL
statements until one of four events occurs
11The Transaction Log
- Stores
- A record for the beginning of transaction
- For each transaction component (SQL statement)
- Type of operation being performed (update,
delete, insert) - Names of objects affected by the transaction (the
name of the table) - Before and after values for updated fields
- Pointers to previous and next transaction log
entries for the same transaction - The ending (COMMIT) of the transaction
12A Transaction Log
13Concurrency Control
- Coordination of simultaneous transaction
execution in a multiprocessing database system - Objective is to ensure transaction
serializability in a multiuser database
environment
14Concurrency Control
- Important ? simultaneous execution of
transactions over a shared database can create
several data integrity and consistency problems - lost updates
- uncommitted data
- inconsistent retrievals
15Normal Execution of Two Transactions
16Lost Updates
17Correct Execution of Two Transactions
18An Uncommitted Data Problem
19Retrieval During Update
20Transaction Results Data Entry Correction
21Inconsistent Retrievals
22The Scheduler
- Special DBMS program establishes order of
operations within which concurrent transactions
are executed - Interleaves the execution of database operations
to ensure serializability and isolation of
transactions
23The Scheduler (continued)
- Bases its actions on concurrency control
algorithms - Ensures computers central processing unit (CPU)
is used efficiently - Facilitates data isolation to ensure that two
transactions do not update the same data element
at the same time
24Read/Write Conflict Scenarios Conflicting
Database Operations Matrix
25Concurrency Controlwith Locking Methods
- Lock
- Guarantees exclusive use of a data item to a
current transaction - Required to prevent another transaction from
reading inconsistent data - Lock manager
- Responsible for assigning and policing the locks
used by the transactions
26Lock Granularity
- Indicates the level of lock use
- Locking can take place at the following levels
- Database
- Table
- Page
- Row
- Field (attribute)
27Lock Granularity (continued)
- Database-level lock
- Entire database is locked
- Table-level lock
- Entire table is locked
- Page-level lock
- Entire diskpage is locked
28Lock Granularity (continued)
- Row-level lock
- Allows concurrent transactions to access
different rows of the same table, even if the
rows are located on the same page - Field-level lock
- Allows concurrent transactions to access the same
row, as long as they require the use of different
fields (attributes) within that row
29A Database-Level Locking Sequence
30An Example of a Table-Level Lock
31Example of a Page-Level Lock
32An Example of a Row-Level Lock
33Lock Types
- Binary lock
- Has only two states locked (1) or unlocked (0)
- Exclusive lock
- Access is specifically reserved for the
transaction that locked the object - Must be used when the potential for conflict
exists - Shared lock
- Concurrent transactions are granted Read access
on the basis of a common lock
34An Example of a Binary Lock
35Two-Phase Lockingto Ensure Serializability
- Defines how transactions acquire and relinquish
locks - Guarantees serializability, but it does not
prevent deadlocks - Growing phase, in which a transaction acquires
all the required locks without unlocking any data - Shrinking phase, in which a transaction releases
all locks and cannot obtain any new lock
36Two-Phase Lockingto Ensure Serializability
(continued)
- Governed by the following rules
- Two transactions cannot have conflicting locks
- No unlock operation can precede a lock operation
in the same transaction - No data are affected until all locks are
obtainedthat is, until the transaction is in its
locked point
37Two-Phase Locking Protocol
38Deadlocks
- Condition that occurs when two transactions wait
for each other to unlock data - Possible only if one of the transactions wants to
obtain an exclusive lock on a data item - No deadlock condition can exist among shared
locks - Control through
- Prevention
- Detection
- Avoidance
39How a Deadlock Condition Is Created
40Concurrency Control with Time Stamping Methods
- Assigns a global unique time stamp to each
transaction - Produces an explicit order in which transactions
are submitted to the DBMS - Uniqueness
- Ensures that no equal time stamp values can exist
- Monotonicity
- Ensures that time stamp values always increase
41Wait/Die and Wound/Wait Schemes
- Wait/die
- Older transaction waits and the younger is rolled
back and rescheduled - Wound/wait
- Older transaction rolls back the younger
transaction and reschedules it
42Wait/Die and Wound/WaitConcurrency Control
Schemes
43Concurrency Controlwith Optimistic Methods
- Optimistic approach
- Based on the assumption that the majority of
database operations do not conflict - Does not require locking or time stamping
techniques - Transaction is executed without restrictions
until it is committed - Phases are read, validation, and write
44Database Recovery Management
- Database recovery
- Restores database from a given state, usually
inconsistent, to a previously consistent state - Based on the atomic transaction property
- All portions of the transaction must be treated
as a single logical unit of work, in which all
operations must be applied and completed to
produce a consistent database - If transaction operation cannot be completed,
transaction must be aborted, and any changes to
the database must be rolled back (undone)
45Transaction Recovery
- Makes use of deferred-write and write-through
- Deferred write
- Transaction operations do not immediately update
the physical database - Only the transaction log is updated
- Database is physically updated only after the
transaction reaches its commit point using the
transaction log information
46Transaction Recovery (continued)
- Write-through
- Database is immediately updated by transaction
operations during the transactions execution,
even before the transaction reaches its commit
point
47A Transaction Log for Transaction Recovery
Examples
48Summary
- Transaction
- Sequence of database operations that access the
database - Represents real-world events
- Must be a logical unit of work
- No portion of the transaction can exist by itself
- Takes a database from one consistent state to
another - One in which all data integrity constraints are
satisfied
49Summary (continued)
- SQL provides support for transactions through the
use of two statements COMMIT and ROLLBACK - Concurrency control coordinates the simultaneous
execution of transactions - Scheduler is responsible for establishing order
in which concurrent transaction operations are
executed
50Summary (continued)
- Lock guarantees unique access to a data item by a
transaction - Database recovery restores the database from a
given state to a previous consistent state