Open In App

Serializability in DBMS

Last Updated : 06 Oct, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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:

Transaction-1

Transaction-2

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 Graph

Precedence Graph

It 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 & View

Types of Serializability – Conflict & View

1. 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.

  1. Different transactions should be used for the two procedures.
  2. The identical data item should be present in both transactions.
  3. 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.

Transaction – 1 (t1)

Transaction – 2 (t2)

Transaction – 3 (t3)

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 transactions

DAG of transactions

As 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.

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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.
  3. 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:

Transaction-1 (t1)

Transaction-2 (t2)

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’:

Transaction-1 (t1)

Transaction-2 (t2)

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

FAQs on Serializability in DBMS

Q.1: How does a DBMS achieve serializability?

Answer:

Through concurrency control techniques like locking, timestamp ordering, and optimistic concurrency control, DBMS accomplish serializability. The simultaneous access to the database is still permitted while these methods make sure that transactions are carried out in a serializable order.

Q.2: How is View Serializability different from Conflict Serializability?

Answer:

A lower type of serializability than conflict serializability is view serializability. View serializability just needs that transactions yield the same final result as a serial schedule, whereas conflict serializability demands that transactions do not have conflicting accesses to the same data item. As a result, some schedules that are considered conflict serializable may not be.

Q.3: What distinguishes strong serializability from weak serializability?

Answer:

A stronger type of serializability than weak serializability is strong serializability. A schedule must be comparable to a serial schedule in strong serializability, where transactions are carried out in the same sequence as they were in the original schedule. A schedule just needs to be conflict equal to a serial schedule in weak serializability.

Q.4: What does serializability testing’s precedence graph entail?

Answer:

An instrument for determining if conflicts can be serialized in a schedule is a precedence graph. Each transaction is represented as a node in a precedence graph, and if the operation in the second transaction depends on the operation in the first transaction, a directed edge is drawn from one node to the next. The schedule can be serialized to resolve conflicts if the graph is acyclic.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads