Friday, 26 May 2023

Transaction

A transaction is a unit of program execution that accesses and possibly updates various data items.
 

(or)


A transaction is an execution of a user program and is seen by the DBMS as a series or list of actions i.e., the actions that can be executed by a transaction includes the reading and writing of database.

A set of logically related operations is known as transaction. The main operations of a transaction are:


Read(A): Read operations Read(A) or R(A) reads the value of A from the database and stores it in a buffer in main memory.


Write (A): Write operation Write(A) or W(A) writes the value back to the database from buffer. 

Let us take a debit transaction from an account which consists of following
operations:
i. R(A);
ii. A=A-1000;
iii. W(A);
Assume A’s value before starting of transaction is 5000.


The first operation reads the value of A from database and stores it in a buffer.
Second operation will decrease its value by 1000. So buffer will contain 4000.
Third operation will write the value from buffer to database. So A’s final value will be 4000.


Commit: After all instructions of a transaction are successfully executed, the changes made by transaction are made permanent in the database.


Rollback: If a transaction is not able to execute all operations successfully, all the changes made by transaction are undone


ACID Properties of a transaction

 
Atomicity

 
It states that all operations of the transaction take place at once if not, the transaction is aborted. 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


Consistency

The integrity constraints are maintained so that the database is consistent before and after the transaction. The execution of a transaction will leave a database in either its prior stable state or a new stable state. The consistent property of database states that every transaction sees a consistent database instance. 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.

 Total before T occurs = 600+300=900 

 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

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. 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. The concurrency control subsystem of the DBMS enforced the isolation property. 


Durability 

The durability property is used to indicate the performance of the database's consistent state. It states that the transaction made the permanent changes. 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. The recovery subsystem of the DBMS has the responsibility of Durability property.

 

Transaction States 

In a database, the transaction can be in one of the following states -

 

 

 

 

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

 

 

 

No comments:

Post a Comment

Timestamp-Based Protocols

Timestamp-Based Protocols Each transaction T i  is issued a timestamp TS( T i ) when it enters the system. •        Each transac...