DBMS
DBMS Part-1
- DBMS Introduction
- DBMS Architecture
- Database Approach vs Traditional File System
- Advantages of DBMS
- Data Models in DBMS
- Schemas in DBMS
- Instances in DBMS
- Data Independence in DBMS
- Database Languages in DBMS
- Interfaces in DBMS
- Structure of DBMS
- Functions of DBA and Designer
- Entities and Attributes in DBMS
- ER Diagram in DBMS
- Generalization, Specialization and Aggregation in DBMS
- Converting ER Diagram to Tables in DBMS
- Difference between Object Oriented, Network and Relational Data Models
DBMS Part-2
- Relational Data Model in DBMS
- Keys in DBMS
- SQL Introduction
- DDL(Data Definition Language)
- DML(Data Manipulation Language)
- Integrity Constraints in DBMS
- Complex SQL Queries
- Joins in DBMS
- Indexing in DBMS
- Triggers in DBMS
- Assertions in DBMS
- Relational Algebra in DBMS
- Tuple Relational Calculus in DBMS
- Domain Relational Calculus in DBMS
DBMS Part-3
- Introduction to Normalization in DBMS
- Normal Forms in DBMS
- Functional Dependency in DBMS
- Decomposition in DBMS
- Dependency Preserving Decomposition in DBMS
- Lossless Join Decomposition in DBMS
- Problems with Null Values and Dangling Tuples
- Multivalued Dependency in DBMS
- Query Optimization in DBMS
- Algorithms for Select, Project and Join Operations in DBMS
- Query Optimization Methods in DBMS
DBMS Part-4
- Transactions in DBMS
- Serializability in DBMS
- Recoverability in DBMS
- Recovery Techniques in DBMS
- Log Based Recovery in DBMS
- Checkpoint in DBMS
- Deadlock in DBMS
- Concurrency Control in DBMS
- Lock Based Protocol in DBMS
- Timestamp Based Protocol in DBMS
- Validation Based Protocol in DBMS
- Multiple Granularity in DBMS
- Multi-Version Concurrency Control(MVCC) in DBMS
- Recovery with Concurrent Transactions in DBMS
DBMS Part-5
Recovery with Concurrent Transactions in DBMS
Recovery ka matlab kya hota hai?
Jab multiple transactions ek saath (concurrently) chal rahe hote hain aur system crash ho jaata hai (jaise power failure, server crash), toh DBMS ko database ko wapas sahi state mein laana padta hai. Is process ko recovery kehte hain.
Recovery zaroori kyun hoti hai?
Sochiye do transactions hain:
T1: Account A se ₹100 hata kar B mein daal raha hai.
T2: A aur B ka balance check kar raha hai.
Agar system crash ho gaya beech mein, toh DBMS ko ensure karna hota hai:
Koi aadha transaction save na ho.
Database phir se consistent ho.
ACID properties follow ho rahi ho.
ACID Properties – Short Recap
| Property | Meaning |
|---|---|
| A – Atomicity | Ya toh pura transaction chale, ya bilkul na chale. |
| C – Consistency | Database hammesha valid state mein ho. |
| I – Isolation | Transactions ek dusre ko effect na karein. |
| D – Durability | Commit hone ke baad changes permanent ho jayein. |
Recovery ke Mechanisms (Tools)
Jab multiple transactions ek saath chal rahe hote hain, DBMS recovery ke liye ye tools use karta hai:
1. Log-Based Recovery (Write-Ahead Logging)
2. Checkpoints
3. Concurrency Control (Schedules)
4. Undo aur Redo
1. Log-Based Recovery
DBMS har transaction ka record (log) banaata hai, jismein old value aur new value hoti hai. Ye log pehle likha jaata hai, fir actual database mein change hota hai.
Example Log:
<T1, START>
<T1, A, 1000, 900> // A ki value 1000 se 900 hui
<T1, COMMIT>
Agar system crash ho jaye, toh DBMS ye log dekh ke decide karta hai:
Redo karein agar transaction commit ho chuka hai.
Undo karein agar transaction abhi tak commit nahi hua.
2. Checkpoints
Checkpoint ek aisa point hota hai jahan DBMS current state ko save kar leta hai.
Advantage:
Recovery fast hoti hai.
Sirf checkpoint ke baad wale logs hi padne padte hain.
Diagram:
...Purane Logs...
<Checkpoint>
<T1, START>
<T2, START>
<T1, A, 500, 450>
Crash ke baad DBMS recovery ko checkpoint se start karta hai, pura log padhne ki zarurat nahi padti.
3. Concurrency Control & Schedules
Jab multiple transactions ek saath chal rahe hote hain, toh DBMS serializability aur locking jaise rules use karta hai.
Ye ensure karta hai:
Transactions ek valid order mein chalein.
Recovery correctly undo/redo kar sake.
4. Undo aur Redo Operations
Undo:
Jab transaction commit nahi hua ho.
Database original value pe wapas jaata hai.
Redo:
Jab transaction commit ho gaya ho.
Changes ko dobara apply kiya jaata hai.
Example: Concurrent Transactions ke saath Recovery
Initial Values:
A = ₹1000, B = ₹2000
Transactions:
T1: A se ₹100 hata kar B mein daalta hai.
T2: A aur B ka balance print karta hai.
Crash Point:
System crash ho gaya jab A update ho chuka tha but B abhi update nahi hua.
Log:
<T1, START>
<T1, A, 1000, 900>
<T2, START>
<T2, READ A>
<T2, READ B>
<T1, B, 2000, 2100>
<T1, COMMIT>
<T2, COMMIT>
Recovery:
T1 committed hai → Redo dono changes (A = 900, B = 2100)
T2 committed hai → koi change nahi kiya, toh kuch nahi karna
Agar T1 commit nahi karta, toh Undo hota (A wapas ₹1000 pe aata).
Final Database State:
| Account | Value |
|---|---|
| A | ₹900 |
| B | ₹2100 |
Database ab bhi sahi aur consistent hai. Saare committed transactions apply ho chuke hain.
Summary
| Mechanism | Kaam |
|---|---|
| Logging | Changes record karta hai |
| Checkpoints | Recovery ko fast banata hai |
| Concurrency Control | Safe concurrent execution ke liye |
| Undo/Redo | Database ko correct state mein laata hai |