top of page

Decomposition and dependency preservation.

  • Writer: Siddharth Sharma
    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


bottom of page