Čo viete o normálnych formách v databázach?
sobes.tech AI
Odpoveď od AI
Normálne formy (NF) sú súbor pravidiel a odporúčaní pre navrhovanie štruktúry relačnej databázy, zamerané na minimalizáciu redundancie dát a prevenciu anomálií pri vkladaní, aktualizácii a odstraňovaní.
Hlavné normálne formy:
-
Prvá normálna forma (1NF):
- Každý atribút (stĺpec) by mal obsahovať atomárne (nerozdieliteľné) hodnoty.
- Žiadne opakujúce sa skupiny atribútov.
- Každý riadok by mal byť jedinečný (prítomnosť primárneho kľúča).
-
Druhá normálna forma (2NF):
- Je v 1NF.
- Každý neklúčový atribút by mal úplne závisieť od celého primárneho kľúča (ak je primárny kľúč zložený).
-
Tretia normálna forma (3NF):
- Je v 2NF.
- Žiadne tranzitívne závislosti neklúčových atribútov od primárneho kľúča (neklúčový atribút by nemal závisieť od iného neklúčového atribúta).
-
Forma Boyce-Codd (BCNF):
- Prísnejšia verzia 3NF.
- Každá netriviálna závislosť $X \to Y$ by mala mať $X$ ako superkľúč.
-
Štvrtá normálna forma (4NF):
- Je v BCNF.
- Žiadne mnohoznačné závislosti.
-
Piata normálna forma (5NF):
- Je v 4NF.
- Žiadne závislosti spojení.
Ciele normalizácie:
- Zníženie redundancie dát.
- Prevencia anomálií (vkladanie, aktualizácie, odstraňovanie).
- Zabezpečenie integrity dát.
- Zjednodušenie štruktúry databázy.
Príklad:
Tabuľka s redundanciou (nie v 1NF):
| ЗаказID | Товар | Цена |
|---|---|---|
| 1 | Ноутбук, Мышь | 1000, 20 |
| 2 | Клавиатура | 50 |
Normalizovaná tabuľka (v 1NF a vyššie):
Tabuľka "Objednávky":
| ЗаказID |
|---|
| 1 |
| 2 |
Tabuľka "Položky objednávky":
| ПозицияID | ЗаказID | Товар | Цена |
|---|---|---|---|
| 1 | 1 | Ноутбук | 1000 |
| 2 | 1 | Мышь | 20 |
| 3 | 2 | Клавиатура | 50 |
Normalizácia je dôležitý krok pri navrhovaní, ale nadmerná normalizácia môže viesť k zvýšeniu počtu spojení pri dopytoch, čo môže negatívne ovplyvniť výkon. Výber optimálnej úrovne normalizácie závisí od konkrétnych požiadaviek a kompromisov. Niekedy sa používa denormalizácia na optimalizáciu výkonu v určitých scenároch, vedome porušujúc pravidlá normálnych foriem.