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.