Č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:
-
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).
-
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.
-
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.