Decomposition and dependency preservation.
- Siddharth Sharma
- Apr 30, 2025
- 2 min read
1. Introduction to Decomposition (डीकम्पोज़िशन क्या है?)
Decomposition मतलब एक बड़े relation (टेबल) को छोटे-छोटे relations में तोड़ना।इसका मुख्य उद्देश्य है:
Data redundancy (गलत दोहराव) को कम करना
Update, Insert, Delete anomalies से बचना
Data integrity (सही और consistent डेटा) को maintain करना
Decomposition को 2 important properties follow करनी पड़ती हैं:
Lossless Join Property – decomposed tables को मिलाने पर original table आए
Dependency Preservation – functional dependencies maintain रहें
2. Types of Decomposition (डीकम्पोज़िशन के प्रकार)
(i) Lossless Join Decomposition
अगर decomposed tables को join करने पर exact original table मिले, तो decomposition lossless है।ये ensure करता है कि data ना घटे ना बढ़े।
Condition for lossless join:
R1 ∩ R2 → R1 or R2 (common attribute, ek table को fully determine करे)
(ii) Dependency Preserving Decomposition
अगर original FDs को decomposed relations में enforce किया जा सके, तो dependency preserving कहलाता है।ऐसे decomposition में constraints check karne ke liye expensive joins की जरूरत नहीं पड़ती।
3. Functional Dependencies (FDs) का Role
Functional Dependency (FD):A → B मतलब A, B को uniquely determine करता है।
Example:Employee(EID, Name, DeptID, DeptName)FDs:EID → NameDeptID → DeptName
FDs redundancy और anomalies को identify करती हैं। Normalization process में help करती हैं।
4. Dependency Preservation Kya Hai?
Agar relation R को R1, R2,... में decompose किया जाए और F original FDs हों, तो:
Har Ri ki apni Fi FDs ho sakti hai
Agar F’ = F1 ∪ F2 ∪ ... और F’+ == F+, toh decomposition dependency preserving होगा।
Meaning: Original saare rules ab bhi enforce ho sakte hain, bina kisi join ke.
5. Why is Dependency Preservation Important?
Constraints check karne ke liye expensive joins na lagaye pade
Data integrity maintain rahe bina performance sacrifice kiye
Efficient transaction validation possible rahata hai
6. Example of Dependency Preserving
Relation: R(A, B, C)FDs: { A → B, B → C }
Decompose into:
R1(A, B)
R2(B, C)
Check FDs:
R1: A → B ✅
R2: B → C ✅
Original FDs preserved hai, toh yes, dependency preserving
Also lossless kyunki common attr B hai, jo kisi ek table ko determine karta hai.
7. Example of Non-Preserving Dependency
Relation: R(A, B, C)FDs: { A → B, B → C, A → C }
Decompose into:
R1(A, B)
R2(A, C)
Check FDs:
R1: A → B ✅
R2: A → C ✅
But B → C ❌ (kyunki B sirf R1 me hai, C sirf R2 me hai)
Toh B → C enforce nahi ho payega directly, toh not dependency preserving
8. Trade-offs in Decomposition
Goal | Description |
Lossless Join | Must होना चाहिए, warna data kho sakta hai |
Dependency Preservation | Accha hai but kabhi kabhar chhodna पड़ता है normal forms ke liye |
9. Normalization & Decomposition
Normalization level decide karti hai decomposition ka type:
BCNF : Best for reducing redundancy, but dependencies preserve nahi hoti हमेशा
3NF : Allows some redundancy, but both lossless & dependency preserving decomposition possible
So:
Chahiye BCNF → better structure lekin FDs maintain nahi hongi
Chahiye FDs preserve → 3NF better hai
11. Summary (थोड़ा सा Recap)
Concept | Meaning |
Decomposition | Big table ko small tables में तोड़ना |
Lossless Join | Joड़ने पर original table mile |
Dependency Preservation | Sabhi FDs enforce ho sake without joins |
Trade-off | BCNF = better normalization, 3NF = better dependency preservation |




Comments