
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Precedence Graph for Testing Conflict Serializability in DBMS
Conflict serializability orders any conflicting operations in the same way as some serial execution. A pair of operations is said to conflict if they operate on the same data item and one of them is a write operation.
That means,
Readi(x) readj(x) - non conflict read-read operation
Readi(x) writej(x) - conflict read-write operation.
Writei(x) readj(x) - conflict write-read operation.
Writei(x) writej(x) - conflict write-write operation.
Where, I and j denote two different transactions Ti and Tj.
Precedence graph
Now consider a precedence graph for testing conflict serializability. It is used to check conflict serializability.
Steps for precedence graph
For each transaction T, put a node or vertex in the graph.
For each conflicting pair, put an edge from Ti to Tj.
If there is a cycle in the graph then schedule is not conflict serializable else schedule is conflict serializable.
Let us consider some examples.
Example 1
Cycle is present so it is not conflict serializable.
Example 2
Cycle is not present, so it is conflict serializable.
Example 3
Cycle is not present, so it is conflict serializable.