4.4.21 · HinglishDatabases

Normalization — 1NF, 2NF, 3NF, BCNF — anomalies each resolves

1,900 words9 min readRead in English

4.4.21 · Coding › Databases


Hum normalize KYUN karte hain?

Anomaly KYA hota hai? Ek aisi situation jahan table ki structure hi kharab behaviour force karti hai:

  • Insert anomaly — aap fact A record nahi kar sakte jab tak aapko unrelated fact B bhi pata na ho.
  • Update anomaly — ek real-world fact change karne ke liye aapko kai rows edit karni padti hain; ek chhoot gayi → inconsistency.
  • Delete anomaly — ek row delete karne se ek unrelated fact bhi accidentally destroy ho jaata hai.

YE KYUN hota hai? Kyunki humne do independent facts ko ek row mein thuns diya. Fix hamesha same recipe hai: us dependency ko dhundho jo belong nahi karti, aur use apni table mein split karo. Normal forms bas batate hain ki kaun si dependency offender hai.


Functional dependencies: pure topic ki language

Table ke FDs aap KAISE padhte hain? Real-world rules list karo ("ek student ka ek hi advisor hota hai", "ek advisor ek hi department mein belong karta hai") — wahi hain FDs.


Chaar forms — har ek agli-buri dependency ko khatam karta hai

Form Forbids (offending FD ) Seedha matlab
1NF non-atomic / repeating values har cell mein ek hi value
2NF non-prime, key ka proper part koi partial dependency nahi
3NF superkey nahi aur non-prime koi transitive dependency nahi
BCNF superkey nahi (bas itna hi) har determinant ek superkey hai

1NF — atomic values


2NF — no partial dependency

YE sirf composite keys pe KYUN aata hai: partial dependency ke liye ek ≥2 columns wali key chahiye taki ek "part" exist kare. Agar aapki key single column hai, aap automatically 2NF mein hain.


3NF — no transitive dependency


BCNF — har determinant ek superkey hai

3NF se stronger KYUN hai: 3NF allow karta hai ek aisa determinant jo superkey nahi hai, jab tak dependent attribute prime ho. BCNF us loophole ko hata deta hai.

Figure — Normalization — 1NF, 2NF, 3NF, BCNF — anomalies each resolves


Recall Feynman: ek 12-saal ke bacche ko explain karo

Socho ek notebook jisme, har baar jab koi dost milne aata hai, aap naye line par uska poora phone number, ghar ka address, aur birthday likhte ho. Agar aapka dost ghar badal le, to aapko har line dhundhni hogi aur address fix karna hoga — ek chhoot gayi aur ab aapki notebook khud se disagree karti hai. Normalization kehta hai: har fact apni chhoti table mein sirf ek baar likho. Doston ke addresses ek "Address book" mein rahein, visits ek "Visit log" mein jo sirf naam se friend ko point kare. Address ek jagah change karo — ho gaya. Har normal form (1, 2, 3, BCNF) bas ek stricter rule hai ki "kya ye fact sahi book mein likha hai?"


Active recall

(functional dependency) ka kya matlab hai?
Agar do rows par agree karti hain to unhe par bhi agree karna hoga; , ko determine karta hai.
Prime attribute kya hota hai?
Ek aisa attribute jo kam se kam ek candidate key mein belong karta ho.
1NF kya require karta hai?
Har attribute value atomic ho — koi repeating groups, lists, ya nested relations nahi.
Single-attribute candidate key wala relation automatically kis form mein hota hai?
2NF (partial dependency ke liye composite key ka proper subset chahiye hota hai).
Partial dependency define karo.
Ek non-prime attribute ka kisi candidate key ke proper subset par depend karna (2NF violate karta hai).
Transitive dependency define karo.
Ek non-prime attribute ka kisi doosre non-prime attribute par depend karna (3NF violate karta hai).
FD , non-prime ke liye 3NF condition batao.
superkey hai YA prime hai.
BCNF condition batao.
Har non-trivial FD ke liye, superkey hona chahiye (koi "prime" exception nahi).
3NF ⊄ BCNF KYUN ho sakta hai?
3NF ek non-superkey determinant allow karta hai agar dependent attribute prime ho; BCNF forbid karta hai.
Dependency preservation kaun si form sacrifice kar sakti hai?
BCNF — iski decomposition saare FDs nahi rakh sakti; 3NF ko hamesha dependency-preserving banaya ja sakta hai.
Normalization jin teen anomaly types ko fix karta hai unke naam batao.
Insert, Update (modification), aur Delete anomalies.
Teach(Student,Subject,Teacher) mein Teacher→Subject ke saath ye 3NF mein kyun hai lekin BCNF mein nahi?
Subject prime hai (3NF loophole satisfy hua), lekin Teacher superkey nahi hai (BCNF violate hua).
Forms ka inclusion ordering kya hai?
BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF (BCNF sabse strict hai).

Connections

  • Functional Dependencies — har normal form ke neeche ka algebra.
  • Candidate Keys and Superkeys — 2NF/3NF/BCNF test karne ke liye zaroori.
  • Decomposition — Lossless Join and Dependency Preservation — split ki quality.
  • Denormalization for Performance — jaanboojhkar ulta trade-off.
  • ER Modeling — achhe ER designs aksar already 3NF mein hote hain.
  • Indexes and Joins — over-normalizing read speed kyun hurt kar sakta hai.

Concept Map

causes

includes

includes

includes

defines

attributes are

removes

uses language of

step 1

forbids partial dep

forbids transitive dep

every determinant a superkey

checks

Duplicated facts in one row

Anomalies

Insert anomaly

Update anomaly

Delete anomaly

Functional dependency X to Y

Candidate key

Prime vs non-prime

Normalization

1NF atomic values

2NF

3NF

BCNF