Čo je normalizácia?
sobes.tech AI
Odpoveď od AI
Normalizácia údajov v kontexte databáz je proces organizácie údajov s cieľom znížiť redundanciu a zlepšiť integritu údajov. Dosahuje sa rozdelením veľkých tabuliek na menšie a ich prepojením.
Hlavné ciele:
- Odstránenie duplicitných údajov.
- Zlepšenie integrity údajov (eliminácia anomálií pri vkladaní, aktualizácii a odstraňovaní).
- Zvýšenie efektívnosti ukladania a dotazov (v niektorých prípadoch).
Proces normalizácie je založený na princípoch normálnych foriem (NF). Najbežnejšie:
- Prvá normálna forma (1NF): Atómové údaje v bunkách, absencia opakujúcich sa skupín stĺpcov.
- Druhá normálna forma (2NF): Je v 1NF a každý ne-kľúčový atribút je plne funkčne závislý od celého primárneho kľúča.
- Tretia normálna forma (3NF): Je v 2NF a neexistujú tranzitívne funkčné závislosti medzi ne-kľúčovými atribútmi cez iné ne-kľúčové atribúty.
Príklad:
Pôvodná tabuľka "Objednávky_Termíny":
| ID objednávky | Dátum objednávky | ID produktu | Názov produktu | Cena produktu | Množstvo | Meno zákazníka | Adresa zákazníka |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Telefón | 500 | 1 | Ivan Petrov | Puskina u. 10 |
| 1 | 2023-10-27 | 102 | Slúchadlá | 100 | 2 | Ivan Petrov | Puskina u. 10 |
| 2 | 2023-10-27 | 101 | Telefón | 500 | 1 | Maria Ivanova | Lermontov u. 5 |
Po normalizácii (do 3NF):
"Objednávky":
| ID objednávky | Dátum 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 produktu | Množstvo |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
"Produkty":
| ID produktu | Názov produktu | Cena produktu |
|---|---|---|
| 101 | Telefón | 500 |
| 102 | Slúchadlá | 100 |
"Zákazníci":
| ID zákazníka | Meno zákazníka | Adresa zákazníka |
|---|---|---|
| 1 | Ivan Petrov | Puskina u. 10 |
| 2 | Maria Ivanova | Lermontov u. 5 |
Avšak, nadmerná normalizácia môže viesť k zvýšeniu počtu spojení (JOIN) pri vykonávaní dotazov, čo môže znížiť výkon. Preto sa pri návrhu databázy často hľadá rovnováha medzi stupňom normalizácie a výkonom. Denormalizácia je proces zámerného narušenia normálnych foriem na zlepšenie výkonu, zvyčajne pridaním nadbytočnosti.