Sobes.tech
Middle

Co je to normalizace a denormalizace v kontextu práce s databázemi?

sobes.tech AI

Odpověď od AI

Normalizace je proces organizace dat v databázi s cílem snížit redundanci a zlepšit integritu dat. Denormalizace je proces přidávání redundantních dat do databáze za účelem zlepšení výkonu dotazů.

Normalizace:

  • Principy: Odstranění opakujících se skupin, závislosti mezi nesouvisejícími atributy.
  • Formy normalizace (hlavní):
    • 1NF (První normální forma): Atomické hodnoty ve sloupcích, absence opakujících se skupin.
    • 2NF (Druhá normální forma): V 1NF + absence částečných závislostí.
    • 3NF (Třetí normální forma): V 2NF + absence tranzitivních závislostí.
    • Boyce-Coddova normální forma (BCNF): Přísnější verze 3NF.
  • Výhody:
    • Snížení redundance dat (úspora místa).
    • Zlepšení konzistence dat.
    • Zjednodušení modifikace dat (vkládání, aktualizace, mazání).
  • Nevýhody:
    • Zvýšení počtu tabulek.
    • Nutnost spojování tabulek pro získání úplných informací (JOINy), což může snížit výkon dotazů.

Denormalizace:

  • Principy: Úmyslné porušení pravidel normalizace za účelem urychlení čtení dat.
  • Typické techniky:
    • Duplikace dat (například uložení názvu produktu v tabulce objednávek).
    • Spojení tabulek.
    • Předběžný výpočet agregovaných hodnot.
  • Výhody:
    • Zvyšuje výkon dotazů (zejména SELECT).
    • Snižuje počet JOINů.
    • Může být užitečné pro reporty a OLAP systémy.
  • Nevýhody:
    • Zvýšení redundance dat (ztráta místa).
    • Riziko nekonzistence dat.
    • Zkomplikování modifikace dat (nutnost aktualizovat data na více místech).

Volba mezi normalizací a denormalizací závisí na specifikách aplikace, prioritách (integrita dat nebo výkon) a povaze dotazů. Obvykle se normalizace používá u OLTP systémů (online transakce) a denormalizace u OLAP systémů (analytické zpracování) nebo v kritických oblastech výkonu OLTP.