Sobes.tech
Junior

Čo je normalizácia v databáze?

sobes.tech AI

Odpoveď od AI

Normalizácia databázy je proces organizácie údajov v relačnej databáze s cieľom znížiť redundanciu (duplicitné údaje) a zlepšiť integritu údajov. Toho sa dosahuje rozdelením veľkých tabuliek na menšie s definovaním vzťahov medzi nimi.

Hlavným cieľom normalizácie:

  • Zníženie redundancie údajov: Vyvarovanie sa opakovania tej istej informácie na rôznych miestach.
  • Zlepšenie integrity údajov: Zabezpečenie presnosti a konzistentnosti údajov.
  • Zabezpečenie flexibility: Uľahčenie zmien a rozšírení štruktúry databázy.

Normalizácia je definovaná súborom pravidiel nazývaných normálne formy. Najrozšírenejšie sú prvé tri normálne formy:

  1. Prvá normálna forma (1NF):

    • Každý stĺpec tabuľky musí obsahovať atómové (nedeliteľné) hodnoty.
    • Neexistujú opakujúce sa skupiny stĺpcov.
    • Každý riadok musí byť jedinečný (pomocou primárneho kľúča).
  2. Druhá normálna forma (2NF):

    • Tabuľka je v 1NF.
    • Všetky ne-kľúčové atribúty (stĺpce, ktoré nie sú súčasťou primárneho kľúča) plne závisia od celého primárneho kľúča (ak je zložený). Chýbajú čiastočné závislosti.
  3. Tretia normálna forma (3NF):

    • Tabuľka je v 2NF.
    • Neexistujú tranzitívne závislosti. Ne-kľúčové atribúty nezávisia od iných ne-kľúčových atribútov.

Existujú aj vyššie normálne formy (BCNF, 4NF, 5NF, 6NF), ale 3NF sa obvykle považuje za dostatočnú pre väčšinu praktických účelov.

Príklad (zjednodušený):

Pôvodná nenormovaná tabuľka (objednávka zákazníka):

ID objednávky Meno zákazníka Adresa zákazníka Produkty Množstvo Cena za kus
101 Ján Bratislava Notebook 1 50000
101 Ján Bratislava Myš 2 1000
102 Mária Košice Klávesnica 1 3000

Po normalizácii (napríklad do 3NF):

Tabuľka objednávok:

ID objednávky ID zákazníka Dátum objednávky
101 1 2023-10-26
102 2 2023-10-26

Tabuľka zákazníkov:

ID zákazníka Meno zákazníka Adresa zákazníka
1 Ján Bratislava
2 Mária Košice

Tabuľka detailov objednávky:

ID detailu ID objednávky ID produktu Množstvo Cena za kus
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Tabuľka produktov:

ID produktu Názov produktu
10 Notebook
20 Myš
30 Klávesnica

De-normalizácia je opačný proces normalizácie, ktorý sa niekedy používa na zlepšenie výkonu čítania údajov zvýšením redundancie.