Skip to content

Normalizace databáze

Normalizace databáze je postup dekompozce, kterým databázi přeorganizujeme tak, aby se redukovaly [[Datová anomálie|datové anomálie]].

[!tldr] - Normalizace je postup, kterým změníme databázi tak, aby se redukovaly [[Datová anomálie|datové anomálie]] - Anomálie v datech mohou vznikat použitím [[Data Query Language|příkazů pro manipulaci s daty]]

Normální formy jsou pravidla, podle kterých určujeme, zda je databáze normalizovaná nebo ne. Pokud relace nesplňují normální formu, rozloží se na menší relace, které už pravidla splňují.

První normální forma

Cílem první normální formy je eliminovat opakující se skupiny a vícenásobné hodnoty v jednom sloupci.

Pro splnění první normální formy je třeba dodržet následující podmínky:

  • Každý atribut (sloupec) obsahuje jenom atomické (dále nedělitelné) hodnoty.
  • Všechny záznamy (řádky) mají stejný počet atributů (sloupců).
  • Každý záznam (řádek) je jedinečný.

Příklad

Uvažujme relaci \(\text{Studenti}(RC, jmeno, prijmeni, adresa, oceneni)\).

  • Adresa může být složena z vícero informací (ulice, PSČ, číslo domu, město, ...)
  • Ocenění může být vícehodnotové

Aby byla relace v 1NF, lze jí upravit takto:

  • \(Studenti(RC, jmeno, prijmeni, ulice, mesto, psc)\)
  • \(Oceneni(RC, oceneni)\)

Druhá normální forma

Cílem druhé normální formy je odstranit částečné závislosti na složeném primárním klíči.

Pro splnění druhé normální formy je třeba dodržet následující podmínky:

  • Je v první normální formě
  • Všechny neklíčové atributy (sloupce) musí být plně závislé na primárním klíči.

Příklad

Uvažujme relaci \(Prihlasky(RC, jmeno, prijmeni, univerzita, adresa\_univerzity)\).

  • Adresa univerzity není funkčně závislá na klíči \(\{RC, univerzita\}\)
  • Jméno a příjmení také nejsou funkčně závislé na klíči

Aby byla relace v 2NF, lze jí upravit takto:

  • \(Prihlasky(RC, univerzita)\)
  • \(Lide(RC, jmeno, prijmeni)\)
  • \(Univerzity(univerzita, adresa\_univerzity)\)

Třetí normální forma

Třetí normální forma si klade za cíl odstranit tranzitivní (přechodné) závislosti.

Pro splnění třetí normální formy je třeba dodržet následující podmínky:

  • Je v druhé normální formě
  • Všechny neklíčové atributy musí být nezávislé na jiných neklíčových atributech (žádné tranzitivní závislosti).
  • Nesmí existovat přechodné závislosti