DBMS Module5 Notes
DBMS Module5 Notes
DBMS Module5 Notes
Active state
o The active state is the first state of every transaction. In this state, the transaction is
being executed.
o For example: Insertion or deletion or updating a record is done here. But all the
records are still not saved to the database.
Partially committed
o In the partially committed state, a transaction executes its final operation, but the
data is still not saved to the database.
o In the total mark calculation example, a final display of the total marks step is
executed in this state.
Committed
A transaction is said to be in a committed state if it executes all its operations successfully.
In this state, all the effects are now permanently saved on the database system.
Failed state
o If any of the checks made by the database recovery system fails, then the transaction
is said to be in the failed state.
o In the example of total mark calculation, if the database is not able to fire a query to
fetch the marks, then the transaction will fail to execute.
Aborted
o If any of the checks fail and the transaction has reached a failed state then the
database recovery system will make sure that the database is in its previous
consistent state. If not then it will abort or roll back the transaction to bring the
database into a consistent state.
o If the transaction fails in the middle of the transaction then before executing the
transaction, all the executed transactions are rolled back to its consistent state.
o After aborting the transaction, the database recovery module will select one of the
two operations:
1. Re-start the transaction
2. Kill the transaction
Transaction property
The transaction has the four properties. These are used to maintain consistency in a
database, before and after the transaction.
Property of Transaction
1. Atomicity
2. Consistency
3. Isolation
4. Durability
Atomicity
o It states that all operations of the transaction take place at once if not, the
transaction is aborted.
o There is no midway, i.e., the transaction cannot occur partially. Each transaction is
treated as one unit and either run to completion or is not executed at all.
Atomicity involves the following two operations:
Abort: If a transaction aborts then all the changes made are not visible.
Commit: If a transaction commits then all the changes made are visible.
Example: Let's assume that following transaction T consisting of T1 and T2. A consists of
Rs 600 and B consists of Rs 300. Transfer Rs 100 from account A to account B.
T1 T2
Read(A) Read(B)
A:=A-100 Y:=Y+100
Write(A) Write(B)
After completion of the transaction, A consists of Rs 500 and B consists of Rs 400.
If the transaction T fails after the completion of transaction T1 but before completion of
transaction T2, then the amount will be deducted from A but not added to B. This shows
the inconsistent database state. In order to ensure correctness of database state, the
transaction must be executed in entirety.
Consistency
o The integrity constraints are maintained so that the database is consistent before
and after the transaction.
o The execution of a transaction will leave a database in either its prior stable state or
a new stable state.
o The consistent property of database states that every transaction sees a consistent
database instance.
o The transaction is used to transform the database from one consistent state to
another consistent state.
For example: The total amount must be maintained before or after the transaction.
1. Total before T occurs = 600+300=900
2. Total after T occurs= 500+400=900
Therefore, the database is consistent. In the case when T1 is completed but T2 fails, then
inconsistency will occur.
Isolation
o It shows that the data which is used at the time of execution of a transaction cannot
be used by the second transaction until the first one is completed.
o In isolation, if the transaction T1 is being executed and using the data item X, then
that data item can't be accessed by any other transaction T2 until the transaction T1
ends.
o The concurrency control subsystem of the DBMS enforced the isolation property.
Durability
o The durability property is used to indicate the performance of the database's
consistent state. It states that the transaction made the permanent changes.
o They cannot be lost by the erroneous operation of a faulty transaction or by the
system failure. When a transaction is completed, then the database reaches a state
known as the consistent state. That consistent state cannot be lost, even in the event
of a system's failure.
o The recovery subsystem of the DBMS has the responsibility of Durability property.
Types of Schedules in DBMS
Schedule, as the name suggests, is a process of lining the transactions and executing them
one by one. When there are multiple transactions that are running in a concurrent manner
and the order of operation is needed to be set so that the operations do not overlap each
other, Scheduling is brought into play and the transactions are timed accordingly. The
basics of Transactions and Schedules is discussed in Concurrency Control (Introduction),
and Transaction Isolation Levels in DBMS articles. Here we will discuss various types of
schedules.
R(A)
W(A)
R(B)
W(B)
R(A)
R(B)
2. where R(A) denotes that a read operation is performed on some data item
‘A’ This is a serial schedule since the transactions perform serially in the
order T1 —> T2
3. Non-Serial Schedule: This is a type of Scheduling where the operations of
multiple transactions are interleaved. This might lead to a rise in the
concurrency problem. The transactions are executed in a non-serial manner,
keeping the end result correct and same as the serial schedule. Unlike the
serial schedule where one transaction must wait for another to complete all
its operation, in the non-serial schedule, the other transaction proceeds
without waiting for the previous transaction to complete. This sort of
schedule does not provide any benefit of the concurrent transaction. It can
be of two types namely, Serializable and Non-Serializable Schedule. The
Non-Serial Schedule can be divided further into Serializable and Non-
Serializable.
a. Serializable: This is used to maintain the consistency of the database. It
is mainly used in the Non-Serial scheduling to verify whether the
scheduling will lead to any inconsistency or not. On the other hand, a
serial schedule does not need the serializability because it follows a
transaction only when the previous transaction is complete. The non-
serial schedule is said to be in a serializable schedule only when it is
equivalent to the serial schedules, for an n number of transactions. Since
concurrency is allowed in this case thus, multiple transactions can
execute concurrently. A serializable schedule helps in improving both
resource utilization and CPU throughput.
These are of two types:
1. Conflict Serializable: A schedule is called conflict serializable if it can
be transformed into a serial schedule by swapping non-conflicting
operations. Two operations are said to be conflicting if all conditions
satisfy:
• They belong to different transactions
• They operate on the same data item
• At Least one of them is a write operation
2. View Serializable: A Schedule is called view serializable if it is view
equal to a serial schedule (no overlapping transactions). A conflict
schedule is a view serializable but if the serializability contains blind
writes, then the view serializable does not conflict serializable.
b. Non-Serializable: The non-serializable schedule is divided into two
types, Recoverable and Non-recoverable Schedule.
1. Recoverable Schedule: Schedules in which transactions commit only
after all transactions whose changes they read commit are called
recoverable schedules. In other words, if some transaction T j is
reading value updated or written by some other transaction T i, then the
commit of Tj must occur after the commit of T i.
Example – Consider the following schedule involving two transactions
T1 and T2.
T1 T2
R(A)
W(A)
W(A)
R(A)
commit
commit
2. This is a recoverable schedule since T1 commits before T2, that makes
the value read by T2 correct. There can be three types of recoverable
schedule:
a. Cascading Schedule: Also called Avoids cascading
aborts/rollbacks (ACA). When there is a failure in one transaction
and this leads to the rolling back or aborting other dependent
transactions, then such scheduling is referred to as Cascading
rollback or cascading abort. Example:
R(A)
W(A)
W(A)
commit
R(A)
commit
R(A)
W(A)
R(A)
W(A)
abort
abort
R(A)
R(A)
W(A)
commit
W(A)
R(A)
commit
R(A)
W(A)
W(A)
R(A)
T1 T2
commit
abort
R(A)
W(A)
Commit
W(A)
W(A)
Commit
Commit
First of all, it is a view serializable schedule as it has view equal serial schedule
T1 —> T2 —> T3 which satisfies the initial and updated reads and final write on
variable A which is required for view serializability. Now we can see there is
write – write pair done by transactions T1 followed by T3 which is violating the
above-mentioned condition of strict schedules as T 3 is supposed to do write
operation only after T 1 commits which is violated in the given schedule. Hence
the given schedule is serializable but not strict recoverable. So, option (D) is
correct.
Log based Recovery in DBMS
The atomicity property of DBMS states that either all the operations of
transactions must be performed or none. The modifications done by an aborted
transaction should not be visible to the database and the modifications done by
the committed transaction should be visible. To achieve our goal of atomicity,
the user must first output stable storage information describing the
modifications, without modifying the database itself. This information can help
us ensure that all modifications performed by committed transactions are
reflected in the database. This information can also help us ensure that no
modifications made by an aborted transaction persist in the database.