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
Query Optimization in DBMS
Query Optimization kya hota hai?
Query Optimization ek process hai jisme DBMS (Database Management System) decide karta hai ki ek SQL query ko fastest aur sabse efficient way se kaise run kiya jaaye.
Matlab: Jab aap koi SQL query likhte ho, toh use chalane ke multiple tareeke ho sakte hain. Query Optimizer unme se best aur sabse sasta (kam time aur kam resource lene wala) tareeka choose karta hai.
Query Optimization ka Goal:
Query ko is tareeke se execute karna ki:
-
Minimum time lage
-
Kam memory ya CPU use ho
-
Fast result mile
Query Optimization zaruri kyu hai?
Sochiye aapne query likhi:
SELECT * FROM students WHERE age > 20;
Ye query do tareeke se chal sakti hai:
-
Poora table scan kare (har row check kare)
-
Agar age pe index hai, toh sirf relevant rows direct pick kare
Obviously, second option fast hoga – aur yahi kaam karta hai Query Optimizer.
Real-Life Example (Analogy)
Jaise aap Google Maps pe ek jagah search karte ho – wo aapko multiple routes dikhata hai, aur aap fastest route choose karte ho.
DBMS bhi wahi karta hai – multiple query plans me se fastest choose karta hai.
Query Optimization ke Steps
Query optimize karne ke kuch main steps hote hain:
Step 1: Parsing aur Translation
-
Pehle DBMS query ko check karta hai ki sahi hai ya nahi (syntax + meaning).
-
Fir usse convert karta hai internal format me – jaise query tree ya relational algebra expression.
Example:
SELECT name FROM students WHERE age > 20;
Iska Relational Algebra expression:
π_name (σ_age > 20 (students))
Query Tree Diagram:
π_name
|
σ_age > 20
|
students
Step 2: Query Tree Optimization
Ab system query tree ko optimize karta hai taaki fast ho jaye. Isse kehte hain logical optimization.
Kuch Common Optimizations:
-
-> Select conditions ko neeche le jaate hain (predicate pushdown)
-
-> Duplicate operations hata dete hain
-
-> Index use karne ki koshish karte hain
Step 3: Execution Plans Banana
DBMS multiple execution plans banata hai – alag alag tareeko se:
-
Table scan
-
Index scan
-
Nested loop join
-
Merge join
-
Hash join
Example:
SELECT name
FROM students
WHERE age > 20 AND department = 'CSE';
Do possible plans:
-
Plan A: Full table scan → har row check karo
-
Plan B: Index use karo
age
pe → fir filter karodepartment = 'CSE'
Agar age
indexed hai, toh Plan B fast hoga
Step 4: Cost Estimation
Har execution plan ka cost calculate kiya jaata hai:
-
CPU time
-
Disk I/O
-
Memory use
-
Kitne rows scan karni padengi
DBMS apne statistics (jaise table size, rows count, index info) ka use karta hai cost nikalne ke liye.
Step 5: Best Plan Select Karna aur Execute Karna
Last step me optimizer sab plans me se lowest cost wale plan ko select karta hai aur execution engine us plan ko run karta hai.
Query Optimization Flow – Diagram
SQL Query
↓
[Parsing aur Translation]
↓
[Logical Query Plan]
↓
[Query Optimization]
↓
[Multiple Physical Plans]
↓
[Cost Estimation]
↓
[Best Plan Select]
↓
[Query Execute hoti hai]
Types of Query Optimization
Type | Description |
---|---|
Heuristic Optimization | Simple rules use karta hai (jaise selection pehle lagao). Fast hota hai but always best nahi hota. |
Cost-Based Optimization | Sab plans ka cost calculate karta hai aur sabse cheapest plan choose karta hai. Accurate hota hai. |
Full Process Summary:
-
Query likhi gayi → DBMS usse samjhta hai
-
Query ka internal tree banata hai
-
Us tree ko optimize karta hai
-
Fir alag-alag execution plans banata hai
-
Har plan ka cost estimate karta hai
-
Jo plan sabse cheap (fast) ho, usse run karta hai
Conclusion
Query Optimization ek smart feature hai jo DBMS ko fast aur efficient banata hai. Ye large database me performance boost karta hai aur ensure karta hai ki queries jaldi execute ho.