0% found this document useful (0 votes)
209 views

Chapter-3: Transaction Management and Concurrency Control

This document discusses transaction management and concurrency control in databases. It defines a transaction as a logical unit of work that reads and/or writes data and must be completed or aborted as a whole. The key properties of transactions are outlined as atomicity, consistency, isolation, and durability (ACID). Concurrency control techniques like locking are used to isolate transactions and ensure serializability. The scheduler coordinates concurrent transactions and uses locking strategies and deadlock handling to maintain data integrity.

Uploaded by

shemse
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
209 views

Chapter-3: Transaction Management and Concurrency Control

This document discusses transaction management and concurrency control in databases. It defines a transaction as a logical unit of work that reads and/or writes data and must be completed or aborted as a whole. The key properties of transactions are outlined as atomicity, consistency, isolation, and durability (ACID). Concurrency control techniques like locking are used to isolate transactions and ensure serializability. The scheduler coordinates concurrent transactions and uses locking strategies and deadlock handling to maintain data integrity.

Uploaded by

shemse
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 39

Chapter-3

Transaction Management and


Concurrency Control

1
What is a Transaction?
 Any action that reads from and/or writes to a
database. It may consist of:
 Simple SELECT statement to generate list of
table contents
 Series of related UPDATE statements to change
values of attributes in various tables
 Series of INSERT statements to add rows to one
or more tables
 Combination of SELECT, UPDATE, and INSERT
statements 2
What is a Transaction? (continued)

 Transaction is logical unit of work that must be


either entirely completed or aborted
 Successful transactions change 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
 Equivalent of a single SQL statement in an
application program or transaction

3
Evaluating Transaction Results

 Not all transactions update database


 SQL code represents a transaction because
database was accessed
 Improper or incomplete transactions can have
devastating effect on database integrity
 Some DBMSs provide means by which user
can define enforceable constraints
 Other integrity rules are enforced
automatically by the DBMS

4
Transaction Properties (ACIDS)

 Atomicity
 Requires that all operations (SQL requests) of
a transaction be completed or none are
completed.
 Consistency
 The database must begin in a consistent state
and end in a consistent state
 Consistent state = all integrity constraints satisfied.

5
Transaction Properties (continued)
 Isolation
 Data used during execution of a transaction
cannot be used by second transaction until
first one is completed
 Durability
 Transactionchanges that are saved to the
database cannot be lost even if the system
crashes.
 No changes are saved to the database until the
transaction completes successfully.

6
Transaction Properties (continued)

 Serializability
 Ensures that concurrent execution of several
transactions yields consistent results

7
Transaction Management with SQL

 ANSI has defined standards that govern


SQL database transactions
 Transaction support is provided by two
SQL statements: COMMIT and
ROLLBACK

8
Transaction Management with SQL
(continued)
 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
 COMMIT statement is reached
 ROLLBACK statement is reached
 End of program is reached
 Program is abnormally terminated
9
The Transaction Log
 A DBMS uses a transaction log to keep track
of all transactions that update the database.
 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 transaction
 “Before” and “after” values for updated fields
 Pointers to previous and next transaction log entries for
the same transaction
 Ending (COMMIT) of the transaction

10
The Transaction Log (continued)

11
Concurrency Control
 Coordination of simultaneous transaction
execution in a multiprocessing database
system
 Objective is to ensure serializability of
transactions in a multiuser database
environment

12
Concurrency Control (continued)

 Simultaneous execution of transactions


over a shared database can create several
data integrity and consistency problems
 Lostupdates
 Uncommitted data
 Inconsistent retrievals

13
Lost Updates

14
Lost Updates (continued)

15
Uncommitted Data

16
Uncommitted Data (continued)

17
Inconsistent Retrievals

18
Inconsistent Retrievals
(continued)

19
Inconsistent Retrievals
(continued)

20
The Scheduler
 Special DBMS program
 Purpose is to establish order of operations
within which concurrent transactions are
executed
 Interleaves execution of database
operations to ensure serializability and
isolation of transactions

21
The Scheduler (continued)
 Bases its actions on concurrency control
algorithms
 Ensures computer’s 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

22
The Scheduler (continued)

23
The Scheduler (continued)
 The scheduler bases its actions on
concurrency control algorithms, such
as locking or time stamping methods to
determine the appropriate order

24
Concurrency Control with 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
 Responsiblefor assigning and policing the
locks used by transactions

25
Lock Granularity
 Indicates level of lock use
 Locking can take place at following levels:
 Database
 Table
 Page
 Row
 Field (attribute)

26
Lock Granularity (continued)
 Database-level lock
 Entire database is locked
 Table-level lock
 Entire table is locked
 Page-level lock
 Entire diskpage is locked

27
Lock Granularity (continued)
 A diskpage (page) is the equivalent of a
diskblock which is directly addressable section
of a disk.
 A page has a fixed size, such as 4k, 8k, or 16k.
 E.g. if you want to write only 73 bytes to a 4k
page, the entire 4k must be read from disk,
updated in memory and written back to disk
 Page-level locks are currently the most used
multi-user DBMS locking methods.

28
Lock Granularity (continued)
 Row-level lock
 Allows concurrent transactions to access different
rows of same table, even if rows are located on same
page
 A row-level lock is less restrictive than the
previous locking methods.
 Advantage: it improves the availability of data.
 Disadvantage: its management require high overhead
(a lock exists for every row in a table).
 Field-level lock
 Allows concurrent transactions to access same row,
as long as they require use of different fields
(attributes) within that row

29
Lock Types
 Binary lock
 Has only two states: locked (1) or unlocked (0)
 Exclusive lock
 Access is specifically reserved for transaction that
locked object
 Must be used when potential for conflict exists
 Issued when a transaction needs to update data and
no locks are currently held on it.
 Shared lock
 Concurrent transactions are granted Read access on
basis of a common lock
30
Lock Types (continued)
 Although locks prevent serious data
inconsistencies, they can lead to two major
problems:
 The resulting transaction schedule may not be
serializable.
 The schedule may create deadlocks.

31
Two-Phase Locking to Ensure
Serializability
 Defines how transactions acquire and relinquish
locks
 Guarantees serializability, but it does not prevent
deadlocks
 Growing phase - Transaction acquires all
required locks without unlocking any data
 Shrinking phase - Transaction releases all
locks and cannot obtain any new lock

32
Two-Phase Locking to Ensure Serializability
(continued)

 The two-phase locking protocol is governed by


the following rules:
 Two transactions cannot have conflicting locks
 No unlock operations can precede a lock operation in
the same transaction.
 No data are affected until all locks are obtained – that
is until the transaction is in its locked point.

33
Two-Phase Locking to Ensure Serializability
(continued)

34
Deadlocks
 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

35
Deadlocks (continued)

36
Deadlocks (continued)

 Controlled through:
 Deadlock Prevention
 Deadlock Detection
 Deadlock Avoidance

37
Concurrency Control with Time Stamping
Methods
 Assigns global unique time stamp to each transaction
 Produces 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

 All database operations (read and write) within


the same transaction must have the same time
stamp.
38
Concurrency Control with Optimistic Methods

 Optimistic approach
 Based on assumption that 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

39

You might also like