Sobes.tech
Middle

Čo je normalizácia a denormalizácia v kontexte práce s databázami?

sobes.tech AI

Odpoveď od AI

Normalizácia je proces organizácie údajov v databáze s cieľom znížiť redundanciu a zlepšiť integritu údajov. Denormalizácia je proces pridávania redundantných údajov do databázy na zlepšenie výkonu dotazov.

Normalizácia:

  • Princípy: Odstránenie opakujúcich sa skupín, závislosti medzi nesúvisiacimi atribútmi.
  • Formy normalizácie (hlavné):
    • 1NF (Prvá normálna forma): Atómové hodnoty v stĺpcoch, absencia opakujúcich sa skupín.
    • 2NF (Druhá normálna forma): V 1NF + absencia čiastočných závislostí.
    • 3NF (Tretia normálna forma): V 2NF + absencia tranzitívnych závislostí.
    • Boyce-Coddova normálna forma (BCNF): Prísnejšia verzia 3NF.
  • Výhody:
    • Zníženie redundancie údajov (úspora miesta).
    • Zlepšenie konzistencie údajov.
    • Zjednodušenie modifikácie údajov (vloženie, aktualizácia, vymazanie).
  • Nevýhody:
    • Zvýšenie počtu tabuliek.
    • Nutnosť spájania tabuliek na získanie úplných informácií (JOIN), čo môže znížiť výkon dotazov.

Denormalizácia:

  • Princípy: Vedomé porušenie pravidiel normalizácie na zrýchlenie čítania údajov.
  • Typické techniky:
    • Duplikácia údajov (napríklad uloženie názvu produktu v tabuľke objednávok).
    • Zlučovanie tabuliek.
    • Predbežný výpočet agregovaných hodnôt.
  • Výhody:
    • Zvyšuje výkon dotazov (najmä SELECT).
    • Znižuje počet JOIN-ov.
    • Môže byť užitočné pre správy a OLAP systémy.
  • Nevýhody:
    • Zvýšenie redundancie údajov (strata miesta).
    • Riziko nekonzistentnosti údajov.
    • Zložitosť pri modifikácii údajov (potreba aktualizovať údaje na viacerých miestach).

Voľba medzi normalizáciou a denormalizáciou závisí od špecifikácií aplikácie, priorít (integrita údajov alebo výkon) a povahy dotazov. Zvyčajne sa normalizácia aplikuje na OLTP systémy (online transakcie) a denormalizácia na OLAP systémy (analytické spracovanie) alebo v kritických oblastiach s vysokým výkonom OLTP.