Difference between Conflict and View Serializability - GeeksforGeeks

17 Feb, 2021
Prerequisite – Types of Schedules in DBMS 
Serializable Schedule : A transaction schedule is serializable if its outcome is equal to the outcome of its transactions executed serially i.e. sequentially without overlapping in time. A serializable schedule always leaves the database in consistent state. A serial schedule is always a serializable schedule because a new transaction only starts when the older one has finished execution. 
Example – Let us consider the following schedule and see if it is serializable. 
 
Now, let us figure out if the above schedule is serializable. 
 
Swapping R(X) of T1 and R(Y) of T2.Swapping R(X) of T1 and W(Y) of T2.
Swapping R(X) of T1 and R(Y) of T2.
Swapping R(X) of T1 and W(Y) of T2.
 
Thus, after changing the conflicting operations in the initial schedule we get a serial schedule. Hence, this schedule is serializable. 
Types of Serializable Schedules :  
Result Equivanent ScheduleConflict Equivalent Schedule or Conflict SerializabilityView Equivanent Schedule or View Serializability
Result Equivanent Schedule
Conflict Equivalent Schedule or Conflict Serializability
View Equivanent Schedule or View Serializability
Difference between Conflict and View Serializability : 
 
Example for Conflict Serializability – Let us consider the following transaction schedule and test it for Conflict Serializabilit
 
Now, we will list all the conflicting operations. Further, we will determine whether the schedule is conflict serializable using Precedence Graph. 
Two operations are said to be conflicting if the belong to different transaction, operate on same data and at least one of them is a write operation.  
R3(X) and W2(X) [ T3 -> T2 ]W1(Y) and R3(Y) [ T1 -> T3 ]W1(Y) and W2(Y) [ T1 -> T2 ]R3(Y) and W2(Y) [ T3 -> T2 ]
R3(X) and W2(X) [ T3 -> T2 ]
W1(Y) and R3(Y) [ T1 -> T3 ]
W1(Y) and W2(Y) [ T1 -> T2 ]
R3(Y) and W2(Y) [ T3 -> T2 ]
Constructing the precedence graph, we see there are no cycles in the graph. Therefore, the schedule is Conflict Serializable. 
 
The serializable schedule is,  
T1 -> T3 -> T2 
Example for View Serializability – Let us consider the following transaction schedule and test it for View Serializability. 
 
As we know that if a schedule is Conflict Serializable, then it is View Serializable also. So first let us check for Conflict Serializability. 
The conflicting operations for this schedule are –  
R1(A) and W2(A) [ T1 -> T2 ]R1(A) and W2(A) [ T1 -> T3 ]W2(A) and R3(A) [ T2 -> T3 ]W2(A) and W1(A) [ T2 -> T1 ]W2(A) and W3(A) [ T2 -> T3 ]R3(A) and W1(A) [ T3 -> T1 ]W3(A) and W1(A) [ T1 -> T3 ]
R1(A) and W2(A) [ T1 -> T2 ]
R1(A) and W2(A) [ T1 -> T3 ]
W2(A) and R3(A) [ T2 -> T3 ]
W2(A) and W1(A) [ T2 -> T1 ]
W2(A) and W3(A) [ T2 -> T3 ]
R3(A) and W1(A) [ T3 -> T1 ]
W3(A) and W1(A) [ T1 -> T3 ]
Constructing the precedence graph for conflicting operations in the schedule. 
 
As we can see that there is a cycle in the precedence graph, it means that the given schedule is not Conflict Serializable. Now, on checking for blind write we get that there exists a blind write W2(A) in the given schedule. Thus, the schedule may or may not be View Serializable. 
In order to check for View Serializability, we will draw aDependency Graph of the schedule. From the given schedule we gather the following points :  
T1 reads A before T2 updates A thus, T1 must execute before T2.T3 does the final update on A thus, it must execute in the end.
T1 reads A before T2 updates A thus, T1 must execute before T2.
T3 does the final update on A thus, it must execute in the end.
Constructing the dependency graph. 
 
As there exists no cycle in the graph, we can say that the given schedule is View Serializable. The serializable schedule is T1 -> T2 -> T3. 
jugnugill
DBMS
Difference Between
GATE CS
DBMS
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Deadlock in DBMS
Types of Functional dependencies in DBMS
KDD Process in Data Mining
What is Temporary Table in SQL?
Conflict Serializability in DBMS
Difference between BFS and DFS
Class method vs Static method in Python
Differences between TCP and UDP
Difference between var, let and const keywords in JavaScript
Differences between IPv4 and IPv6