Sobes.tech
Middle

Co je normalizace?

sobes.tech AI

Odpověď od AI

Normalizace dat v kontextu databází je proces organizace dat za účelem snížení redundance a zlepšení integrity dat. Dosahuje se tím, že velké tabulky se dělí na menší a jejich vztahy se spojují.

Hlavní cíle:

  • Odstranění duplicit dat.
  • Zlepšení integrity dat (eliminace anomálií při vkládání, aktualizaci a mazání).
  • Zvýšení efektivity ukládání a dotazů (v některých případech).

Proces normalizace je založen na principech normálních forem (NF). Nejčastější:

  • První normální forma (1NF): Atomická data v buňkách, absence opakujících se skupin sloupců.
  • Druhá normální forma (2NF): Je v 1NF a každý neklíčový atribut je plně funkčně závislý na celém primárním klíči.
  • Třetí normální forma (3NF): Je v 2NF a neexistují tranzitivní funkční závislosti neklíčových atributů na primárním klíči přes jiné neklíčové atributy.

Příklad:

Původní tabulka "Objednávky_Zboží":

ID objednávky Datum objednávky ID zboží Název zboží Cena zboží Množství Jméno zákazníka Adresa zákazníka
1 2023-10-27 101 Telefon 500 1 Ivan Petrov Puskina u. 10
1 2023-10-27 102 Sluchátka 100 2 Ivan Petrov Puskina u. 10
2 2023-10-27 101 Telefon 500 1 Maria Ivanova Lermontov u. 5

Po normalizaci (do 3NF):

"Objednávky":

ID objednávky Datum objednávky ID zákazníka
1 2023-10-27 1
2 2023-10-27 2

"Položky objednávky":

ID položky ID objednávky ID zboží Množství
1 1 101 1
2 1 102 2
3 2 101 1

"Zboží":

ID zboží Název zboží Cena zboží
101 Telefon 500
102 Sluchátka 100

"Zákazníci":

ID zákazníka Jméno zákazníka Adresa zákazníka
1 Ivan Petrov Puskina u. 10
2 Maria Ivanova Lermontov u. 5

Nicméně, nadměrná normalizace může vést ke zvýšení počtu spojení (JOIN) při provádění dotazů, což může snížit výkon. Proto při návrhu databáze často hledají rovnováhu mezi stupněm normalizace a výkonem. Denormalizace je proces úmyslného narušení normálních forem za účelem zlepšení výkonu, obvykle přidáním redundance.