In this article, we are going to explain the serializability concept and how this concept affects the DBMS deeply, we also understand the concept of serializability with some examples, and we will finally conclude this topic with an example of the importance of serializability. The DBMS form is the foundation of the most modern applications, and when we design the form properly, it provides high-performance and relative storage solutions to our application.
What is a serializable schedule, and what is it used for?
If a non-serial schedule can be transformed into its corresponding serial schedule, it is said to be serializable. Simply said, a non-serial schedule is referred to as a serializable schedule if it yields the same results as a serial timetable.
Non-serial Schedule
A schedule where the transactions are overlapping or switching places. As they are used to carry out actual database operations, multiple transactions are running at once. It's possible that these transactions are focusing on the same data set. Therefore, it is crucial that non-serial schedules can be serialized in order for our database to be consistent both before and after the transactions are executed.
Example:
|
R(a)
|
|
W(a)
|
|
| R(b)
|
| W(b)
|
R(b)
|
|
| R(a)
|
W(b)
|
|
| W(a)
|
We can observe that Transaction-2 begins its execution before Transaction-1 is finished, and they are both working on the same data, i.e., "a" and "b", interchangeably. Where "R"-Read, "W"-Write
Serializability testing
We can utilize the Serialization Graph or Precedence Graph to examine a schedule's serializability. A schedule's full transactions are organized into a Directed Graph, what a serialization graph is.
Precedence GraphIt can be described as a Graph G(V, E) with vertices V = "V1, V2, V3,..., Vn" and directed edges E = "E1, E2, E3,..., En". One of the two operations—READ or WRITE—performed by a certain transaction is contained in the collection of edges. Where Ti -> Tj, means Transaction-Ti is either performing read or write before the transaction-Tj.
Types of Serializability
There are two ways to check whether any non-serial schedule is serializable.
Types of Serializability - Conflict & View1. Conflict serializability
Conflict serializability refers to a subset of serializability that focuses on maintaining the consistency of a database while ensuring that identical data items are executed in an order. In a DBMS each transaction has a value and all the transactions, in the database rely on this uniqueness. This uniqueness ensures that no two operations with the conflict value can occur simultaneously.
For example lets consider an order table and a customer table as two instances. Each order is associated with one customer even though a single client may place orders. However there are restrictions for achieving conflict serializability in the database. Here are a few of them.
- Different transactions should be used for the two procedures.
- The identical data item should be present in both transactions.
- Between the two operations, there should be at least one write operation.
Example
Three transactions—t1, t2, and t3—are active on a schedule "S" at once. Let's create a graph of precedence.
|
R(a)
|
|
|
| R(b)
|
|
|
| R(b)
|
| W(b)
|
|
W(a)
|
|
|
|
| W(a)
|
| R(a)
|
|
| W(a)
|
|
It is a conflict serializable schedule as well as a serial schedule because the graph (a DAG) has no loops. We can also determine the order of transactions because it is a serial schedule.
DAG of transactionsAs there is no incoming edge on Transaction 1, Transaction 1 will be executed first. T3 will run second because it only depends on T1. Due to its dependence on both T1 and T3, t2 will finally be executed.
Therefore, the serial schedule's equivalent order is: t1 --> t3 --> t2
Note: A schedule is unquestionably consistent if it is conflicting serializable. A non-conflicting serializable schedule, on the other hand, might or might not be serial. We employ the idea of View Serializability to further examine its serial behavior.
2. View Serializability
View serializability is a kind of operation in a serializable in which each transaction should provide some results, and these outcomes are the output of properly sequentially executing the data item. The view serializability, in contrast to conflict serialized, is concerned with avoiding database inconsistency. The view serializability feature of DBMS enables users to see databases in contradictory ways.
To further understand view serializability in DBMS, we need to understand the schedules S1 and S2. The two transactions T1 and T2 should be used to establish these two schedules. Each schedule must follow the three transactions in order to retain the equivalent of the transaction. These three circumstances are listed below.
- The first prerequisite is that the same kind of transaction appears on every schedule. This requirement means that the same kind of group of transactions cannot appear on both schedules S1 and S2. The schedules are not equal to one another if one schedule commits a transaction but it does not match the transaction of the other schedule.
- The second requirement is that different read or write operations should not be used in either schedule. On the other hand, we say that two schedules are not similar if schedule S1 has two write operations whereas schedule S2 only has one. The number of the write operation must be the same in both schedules, however there is no issue if the number of the read operation is different.
- The second to last requirement is that there should not be a conflict between either timetable. execution order for a single data item. Assume, for instance, that schedule S1's transaction is T1, and schedule S2's transaction is T2. The data item A is written by both the transaction T1 and the transaction T2. The schedules are not equal in this instance. However, we referred to the schedule as equivalent to one another if it had the same number of all write operations in the data item.
What is view equivalency?
Schedules (S1 and S2) must satisfy these two requirements in order to be viewed as equivalent:
- The same piece of data must be read for the first time. For instance, if transaction t1 is reading "A" from the database in schedule S1, then t1 must also read A in schedule S2.
- The same piece of data must be used for the final write. As an illustration, if transaction t1 updated A last in S1, it should also conduct final write in S2.
- The middle sequence need to follow suit. As an illustration, if in S1 t1 is reading A, and t2 updates A, then in S2 t1 should read A, and t2 should update A.
View Serializability refers to the process of determining whether a schedule's views are equivalent.
Example
We have a schedule "S" with two concurrently running transactions, "t1" and "t2."
Schedule - S:
|
R(a)
|
|
W(a)
|
|
| R(a)
|
| W(a)
|
R(b)
|
|
W(b)
|
|
| R(b)
|
| W(b)
|
By switching between both transactions' mid-read-write operations, let's create its view equivalent schedule (S').
Schedule - S':
|
R(a)
|
|
W(a)
|
|
R(b)
|
|
W(b)
|
|
| R(a)
|
| W(a)
|
| R(b)
|
| W(b)
|
It is a view serializable schedule since a view similar schedule is conceivable.
Note: A conflict serializable schedule is always viewed as serializable, but vice versa is not always true.
Advantages of Serializability
- Execution is predictable: In serializable, the DBMS's threads are all performed simultaneously. The DBMS doesn't include any such surprises. In DBMS, no data loss or corruption occurs and all variables are updated as intended.
- DBMS executes each thread independently, making it much simpler to understand and troubleshoot each database thread. This can greatly simplify the debugging process. The concurrent process is therefore not a concern for us.
- Lower Costs: The cost of the hardware required for the efficient operation of the database can be decreased with the aid of the serializable property. It may also lower the price of developing the software.
- Increased Performance: Since serializable executions provide developers the opportunity to optimize their code for performance, they occasionally outperform non-serializable equivalents.
For a DBMS transaction to be regarded as serializable, it must adhere to the ACID properties. In DBMS, serializability comes in a variety of forms, each having advantages and disadvantages of its own. Most of the time, choosing the best sort of serializability involves making a choice between performance and correctness.
Making the incorrect choice for serializability might result in database issues that are challenging to track down and resolve. You should now have a better knowledge of how serializability in DBMS functions and the different types that are available thanks to this guide.
Similar Reads
View Serializability in DBMS
In database systems, concurrent execution of transactions is used to improve resource utilization and system throughput. However, concurrency can lead to inconsistencies in the database if not handled properly. View Serializability ensures that even though transactions run concurrently, their outcom
7 min read
Result Serializability in DBMS
Prerequisite - Serializable Schedules Equivalence of Schedules : A schedule is a way of representing the order in which the operations of transactions get executed. Based on different properties related to the schedules such as end result, the order of execution of transactions two schedules might b
2 min read
Conflict Serializability in DBMS
A schedule is a sequence in which operations (read, write, commit, abort) from multiple transactions are executed in a database. Serial or one by one execution of schedules has less resource utilization and low throughput. To improve it, two or more transactions are run concurrently. Conflict Serial
6 min read
Recoverability in DBMS
Recoverability is a critical feature of database systems that ensures the database can return to a consistent and reliable state after a failure or error. It guarantees that the effects of committed transactions are saved permanently, while uncommitted transactions are rolled back to maintain data i
7 min read
Serializability in Distributed Systems
In distributed systems, where processes run across multiple machines or nodes, ensuring data consistency is essential but challenging. Serializability is a crucial concept that guarantees the outcome of concurrent transactions is consistent with some sequential execution, preserving the integrity of
8 min read
Polygraph to check View Serializability in DBMS
In a Database Management System (DBMS), ensuring that transactions execute correctly without conflicts is important. One way to check this is through view serializability, which ensures that a schedule produces the same final result as some serial execution of transactions. To check view serializabi
7 min read
What is Normalization in DBMS?
The normalization concept for relational databases, developed by E.F. Codd, the inventor of the relational database model, is from the 1970s. Before Codd, the most common method of storing data was in large, cryptic, and unstructured files, generating plenty of redundancy and lack of consistency. Wh
8 min read
Relational Model in DBMS
The Relational Model represents data and their relationships through a collection of tables. Each table also known as a relation consists of rows and columns. Every column has a unique name and corresponds to a specific attribute, while each row contains a set of related data values representing a r
10 min read
What is Relationship in DBMS?
A database is a structured data set that is usually electronically written in a computer system and stored as data. With their primary purpose being to maintain, keep, and extract data correctly, databases are important. In many practical situations, data is never an isolated file, and its correlati
5 min read
Transaction in DBMS
In a Database Management System (DBMS), a transaction is a sequence of operations performed as a single logical unit of work. These operations may involve reading, writing, updating, or deleting data in the database. A transaction is considered complete only if all its operations are successfully ex
10 min read