A Database Transaction is a logical unit of processing in a DBMS which entails one or more database access operation. In a nutshell, database transactions represent real-world events of any enterprise. Show
All types of database access operation which are held between the beginning and end transaction statements are considered as a single logical transaction in DBMS. During the transaction the database is inconsistent. Only once the database is committed the state is changed from one consistent state to another. In this tutorial, you will learn: Facts about Database Transactions
Why do you need concurrency in Transactions?A database is a shared resource accessed. It is used by many users and processes concurrently. For example, the banking system, railway, and air reservations systems, stock market monitoring, supermarket inventory, and checkouts, etc. Not managing concurrent access may create issues like:
States of TransactionsThe various states of a transaction concept in DBMS are listed below:
Let’s study a state transition diagram that highlights how a transaction moves between these various states.
ACID Properties are used for maintaining the integrity of database during transaction processing. ACID in DBMS stands for Atomicity, Consistency, Isolation, and Durability.
ACID Property in DBMS with example:Below is an example of ACID property in DBMS: Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y ENDTransaction 1 is transferring $50 from account X to account Y. Transaction 2 is crediting each account with a 10% interest payment. If both transactions are submitted together, there is no guarantee that the Transaction 1 will execute before Transaction 2 or vice versa. Irrespective of the order, the result must be as if the transactions take place serially one after the other. Types of TransactionsBased on Application areas
Based on Actions
Based on Structure
What is a Schedule?A Schedule is a process creating a single group of the multiple parallel transactions and executing them one by one. It should preserve the order in which the instructions appear in each transaction. If two transactions are executed at the same time, the result of one transaction may affect the output of other. Example Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product QuantityIf Transaction 2 is executed before Transaction 1, outdated information about the product quantity will be read. Hence, schedules are required. Parallel execution in a database is inevitable. But, Parallel execution is permitted when there is an equivalence relation amongst the simultaneously executing transactions. This equivalence is of 3 Types. RESULT EQUIVALENCE: If two schedules display the same result after execution, it is called result equivalent schedule. They may offer the same result for some value and different results for another set of values. For example, one transaction updates the product quantity, while other updates customer details. View Equivalence View Equivalence occurs when the transaction in both the schedule performs a similar action. Example, one transaction inserts product details in the product table, while another transaction inserts product details in the archive table. The transaction is the same, but the tables are different. CONFLICT Equivalence In this case, two transactions update/view the same set of data. There is a conflict amongst transaction as the order of execution will affect the output. What is Serializability?Serializability is the process of search for a concurrent schedule who output is equal to a serial schedule where transaction are execute one after the other. Depending on the type of schedules, there are two types of serializability: Summary:
A transaction can be defined as a group of tasks. A single task is the minimum processing unit which cannot be divided further. Let’s take an example of a simple transaction. Suppose a bank employee transfers Rs 500 from A's account to B's account. This very simple and small transaction involves several low-level tasks. A’s Account Open_Account(A) Old_Balance = A.balance New_Balance = Old_Balance - 500 A.balance = New_Balance Close_Account(A)B’s Account Open_Account(B) Old_Balance = B.balance New_Balance = Old_Balance + 500 B.balance = New_Balance Close_Account(B)ACID PropertiesA transaction is a very small unit of a program and it may contain several lowlevel tasks. A transaction in a database system must maintain Atomicity, Consistency, Isolation, and Durability − commonly known as ACID properties − in order to ensure accuracy, completeness, and data integrity.
SerializabilityWhen multiple transactions are being executed by the operating system in a multiprogramming environment, there are possibilities that instructions of one transactions are interleaved with some other transaction.
In a multi-transaction environment, serial schedules are considered as a benchmark. The execution sequence of an instruction in a transaction cannot be changed, but two transactions can have their instructions executed in a random fashion. This execution does no harm if two transactions are mutually independent and working on different segments of data; but in case these two transactions are working on the same data, then the results may vary. This ever-varying result may bring the database to an inconsistent state. To resolve this problem, we allow parallel execution of a transaction schedule, if its transactions are either serializable or have some equivalence relation among them. Equivalence SchedulesAn equivalence schedule can be of the following types − Result EquivalenceIf two schedules produce the same result after execution, they are said to be result equivalent. They may yield the same result for some value and different results for another set of values. That's why this equivalence is not generally considered significant. View EquivalenceTwo schedules would be view equivalence if the transactions in both the schedules perform similar actions in a similar manner. For example −
Conflict EquivalenceTwo schedules would be conflicting if they have the following properties −
Two schedules having multiple transactions with conflicting operations are said to be conflict equivalent if and only if −
Note − View equivalent schedules are view serializable and conflict equivalent schedules are conflict serializable. All conflict serializable schedules are view serializable too. States of TransactionsA transaction in a database can be in one of the following states −
|