Sobes.tech
Junior

Co je to normalizace v databázi?

sobes.tech AI

Odpověď od AI

Normalizace databáze je proces organizace dat v relační databázi s cílem snížit redundanci (duplicitní data) a zlepšit integritu dat. Toho se dosahuje rozdělením velkých tabulek na menší s definováním vztahů mezi nimi.

Hlavním cílem normalizace:

  • Snížení redundance dat: Vyvarovat se opakování stejné informace na různých místech.
  • Zlepšení integrity dat: Zajistit přesnost a konzistenci dat.
  • Zajištění flexibility: Zjednodušit změny a rozšíření struktury databáze.

Normalizace je definována souborem pravidel nazývaných normální formy. Nejrozšířenější jsou první tři normální formy:

  1. První normální forma (1NF):

    • Každý sloupec tabulky musí obsahovat atomické (nedělitelné) hodnoty.
    • Neexistují opakující se skupiny sloupců.
    • Každý řádek musí být unikátní (pomocí primárního klíče).
  2. Druhá normální forma (2NF):

    • Tabulka je v 1NF.
    • Všechny neklíčové atributy (sloupce, které nejsou součástí primárního klíče) plně závisí na celém primárním klíči (pokud je složený). Chybí částečné závislosti.
  3. Třetí normální forma (3NF):

    • Tabulka je v 2NF.
    • Neexistují tranzitivní závislosti. Neklíčové atributy nezávisí na jiných neklíčových atributech.

Existují i vyšší normální formy (BCNF, 4NF, 5NF, 6NF), ale 3NF je obvykle považována za dostačující pro většinu praktických účelů.

Příklad (zjednodušený):

Původní nenormovaná tabulka (objednávka zákazníka):

ID objednávky Jméno zákazníka Adresa zákazníka Zboží Množství Cena za kus
101 Jan Praha Notebook 1 50000
101 Jan Praha Myš 2 1000
102 Marie Brno Klávesnice 1 3000

Po normalizaci (například do 3NF):

Tabulka objednávek:

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

Tabulka zákazníků:

ID zákazníka Jméno zákazníka Adresa zákazníka
1 Jan Praha
2 Marie Brno

Tabulka detailů objednávky:

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

Tabulka zboží:

ID zboží Název zboží
10 Notebook
20 Myš
30 Klávesnice

De-normalizace je opakem normalizace, někdy se používá ke zlepšení výkonu čtení dat zvýšením redundance.