4.4.22 · HinglishDatabases

Denormalization — when and why

1,769 words8 min readRead in English

4.4.22 · Coding › Databases


Denormalization HAI kya?


Denormalize KYUN karein? (Trade-off, derive karke)

Chalo pehle principles se sochte hain, rules yaad karne ki jagah.

Maano ek query ko tables mein spread data chahiye. Unhe combine karne ke liye database joins perform karta hai. Do tables aur ka nested-loop join bina indexes ke roughly rows examine karta hai, ya par index hone par . tables ko chain karna is kaam ko multiply kar deta hai.

Figure — Denormalization — when and why

KAISE: common techniques


Worked examples


Common mistakes


Active recall

Recall Quick self-test (chhupaao aur jawaab do)
  • Denormalization kya trade karta hai, aur kis direction mein?
  • Denormalize karne ki inequality batao.
  • Teen denormalization techniques bolo.
  • Duplicated data ko "guard" kyun karna zaroori hai?
  • Ek aisa case bolo jahan nahi karna chahiye denormalize.
Recall Feynman: 12 saal ke bachche ko samjhao

Socho tumhara toy box super tidy hai: cars ek box mein, wheels doosre mein, stickers teesre mein (ye normalized hai — kuch repeat nahi hota). Lekin har baar jab tum finished car se khelna chahte ho, tumhe teen boxes mein bhaagna padta hai aur assemble karna padta hai — slow! Toh tum kuch fully-built cars shelf par ready rakhte ho (ye denormalized hai — copies, jaldi grab ho jaati hain). Pakad: agar tum asli cars ko repaint karo, toh shelf copies bhi repaint karna yaad rakhna padega, nahi toh woh galat dikhenge. Tum ready-made copies sirf unhi toys ki rakhte ho jinse tum hamesha khelte ho, unki nahi jo tum mushkil se use karte ho.


Connections

  • Normalization (1NF 2NF 3NF BCNF) — jise hum partially undo kar rahe hain
  • Update Insert Delete Anomalies — woh khatre jo denormalization wapas laati hai
  • Indexing — reads speed karne ka alternative tarika, data duplicate kiye bina
  • Materialized Views — denormalization ki cached-query form
  • Database Triggers — duplicates sync rakhne ka common mechanism
  • OLTP vs OLAP — OLAP/warehouses (star schema) design se heavily denormalized hote hain
  • CAP Theorem — distributed systems aksar cross-node joins avoid karne ke liye denormalize karte hain
Denormalization kya hai?
Ek normalized schema mein deliberately controlled redundancy add karna taaki reads fast ho jaayein, write complexity aur storage ki keemat par.
Denormalize karne par kaun sa path sasta hota hai aur kaun sa mehenga?
Reads saste ho jaate hain (kam joins); writes mehengi ho jaati hain (duplicates sync mein rakhne padte hain).
Denormalize kab karna chahiye — rule batao.
Jab ho — read/write ratio sync-to-join cost ratio se zyada ho.
Char denormalization techniques bolo.
Pre-joined/merged tables, pre-computed derived columns, inline repeating/array columns, materialized views.
Never-normalized schema denormalization se alag kyun hai?
Denormalization ek already-normalized design ki deliberate optimization hai; un-normalized schema bas ek missing design step hai.
Denormalization kaun sa khatraa wapas laati hai aur isse kaise guard karein?
Update anomalies / data drift; triggers, transactions, app-layer invariants, ya scheduled refresh se guard karo.
Ek aisa case batao jahan denormalize nahi karna chahiye.
Write-heavy, correctness-critical systems (jaise financial ledger) jahan high ho aur sync exact hona zaroori ho.
Normalization reads kyun slow karta hai?
Data bahut saari tables mein split hota hai, isliye reads ko unhe JOIN karke wapas jodhna padta hai, aur join cost table sizes aur tables ki sankhya ke saath badhti hai.
Reads speed karne ke liye denormalization ka sasta alternative kya hai?
Proper indexing — ye reads speed karta hai bina data duplicate kiye ya drift ka risk liye.

Concept Map

splits into

makes

forces

cost

adds controlled

risk

guarded by

shifts cost to

speeds up

worth it when

derived from

via techniques

Normalization

Small non-redundant tables

Writes safe

JOINs to re-assemble

Slow reads

Denormalization

Redundancy

Update anomaly

Triggers, app logic, refresh

Write path

fr/fw > Csync/Cjoin

Delta = fr*Cjoin - fw*Csync

Pre-joined tables, aggregates