0
0
DbmsConceptBeginner · 3 min read

What is Cascading Rollback in DBMS: Explanation and Example

In a database, cascading rollback happens when rolling back one transaction causes other dependent transactions to roll back too. This occurs because those transactions rely on data changed by the first transaction, so undoing one forces undoing all related changes to keep data consistent.
⚙️

How It Works

Imagine you are stacking blocks, and each block depends on the one below it. If the bottom block falls, all blocks above it must fall too. In databases, transactions can depend on each other like these blocks. When one transaction fails and is rolled back, any other transactions that used its changes must also be rolled back to avoid errors or inconsistent data.

This chain reaction of undoing transactions is called cascading rollback. It ensures the database stays correct by removing all changes that depend on a failed transaction. Without cascading rollback, some transactions might use invalid data, causing bigger problems.

💻

Example

This example shows two transactions where the second depends on the first. If the first transaction is rolled back, the second must also roll back.

sql
BEGIN TRANSACTION T1;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- T1 not committed yet

BEGIN TRANSACTION T2;
SELECT balance FROM accounts WHERE id = 1; -- reads uncommitted data from T1
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
-- T2 depends on T1's changes

ROLLBACK TRANSACTION T1; -- T1 fails and rolls back
-- Cascading rollback forces T2 to rollback too because it used T1's data
Output
Transaction T1 rolled back. Transaction T2 rolled back due to dependency on T1.
🎯

When to Use

Cascading rollback is important in systems where transactions depend on each other's data before committing. It is common in databases that allow read uncommitted or dirty reads, where one transaction can see changes made by another uncommitted transaction.

Use cascading rollback to maintain data integrity when transactions are interdependent. For example, in banking systems, if a money transfer transaction fails, any related transactions that rely on its changes must also be undone to prevent incorrect balances.

Key Points

  • Cascading rollback happens when one transaction rollback causes others to rollback.
  • It maintains database consistency by undoing dependent changes.
  • Occurs in systems allowing transactions to read uncommitted data.
  • Prevents data corruption from partial or failed transactions.

Key Takeaways

Cascading rollback ensures all dependent transactions are undone when one fails.
It prevents inconsistent or corrupted data in the database.
Occurs mainly when transactions read uncommitted changes from others.
Important for maintaining integrity in complex, interdependent operations.