Sobes.tech
Middle

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