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.