Concurrent execution of transactions over shared database creates several data integrity and consistency problems
Need for Concurrency
AU: MAY-17,19, Marks 15
Following are the purposes of concurrency control -
• To ensure isolation
• To resolve read-write or write-write conflicts
• To preserve consistency of database
• Concurrent execution of transactions
over shared database creates several data integrity and consistency problems -
these are
(1) Lost update problem: This problem occurs when two transactions that access the
same database items have their operations interleaved in a way that makes the
value of some database item incorrect.
For example - Consider following transactions
(1) Salary of Employee is read during transaction T1.
(2) Salary of Employee is read by another transaction T2.
(3) During transaction T1, the salary is incremented by 200
(4) During transaction T2, the salary is incremented by 500
The result of the above sequence is that the update made by
transaction T1 is completely lost. Therefor this problem is called as lost
update problem.
(2) Dirty read or Uncommited read problem: The dirty read is a situation in
which one transaction reads the data immediately after the write operation of
previous transaction
For example - Consider following transactions -
Assume initially salary is = 1000
(1) At the time t1, the transaction T2 updates the salary to
1200
(2) This salary is read at time t2 by transaction T1.
Obviously it is 1200
(3) But at the time t3, the transaction T2 performs Rollback by undoing
the changes made by T1 and T2 at time t1 and t2.
(4) Thus the salary again becomes = 1000. This
situation leads to Dirty Read or Uncommited Read because here the read made at
time t2(immediately after roid update of another transaction) becomes a dirty
read.
(3) Non-repeatable read problem
This problem is also known as inconsistent
analysis problem. This problem occurs when a particular transaction sees two
different values for the same row within its lifetime. For example-
(1) At time t1, the transaction T1 reads the
salary as 1000
(2) At time t2 the transaction T2 reads
the same salary as 1000 and updates it to 1200
(3) Then at time t3, the transaction T2
gets committed.
(4) Now when the transaction T1 reads the same
salary at time t4, it gets different value than what it had read at
time t1. Now, transaction T1, cannot repeat its reading
operation. Thus inconsistent values are obtained.
Hence the name of this problem is non-repeatable read or
inconsistent analysis problem.
(4) Phantom read problem
The phantom read problem is a special case of non repeatable read
problem.
This is a problem in which one of the transaction makes the changes in
the database system and due to these changes another transaction can not read
the data item which it has read just recently. For example -
(1) At time t1, the transaction T1 reads the value
of salary as 1000
(2) At time t2, the transaction T2 reads the value
of the same salary as 1000
(3) At time t3, the transaction T1 deletes the
variable salary.
(4) Now at time t4, when T2 again reads the salary
it gets error. Now transaction T2 can not identify the reason why it
is not getting the salary value which is read just few time back.
This problem occurs due to changes in the database and is
called phantom read problem.
Review Questions
1. Discuss the violations caused by each of the
following: dirty read, non repeatable read and phantoms with suitable example. AU:
May-17, Marks 13
2. What is concurrency control? How it is
implemented in DBMS ? Briefly elaborate diagrams and examples. AU:
May-19, Marks 15
Database Management System: Unit III: Transactions : Tag: : Transactions - Database Management System - Need for Concurrency
Database Management System
CS3492 4th Semester CSE Dept | 2021 Regulation | 4th Semester CSE Dept 2021 Regulation