2. Integrita

2.1. Integritní omezení

Integritní omezení je nástrojem, který brání ukládání nesprávných dat či ztrátě nebo poškození stávajících záznamů při práci s databází. Integritní omezení většinou vyplývají z matematické teorie nebo aplikační logiky. Obecně se rozlišuje několik typů integritních omezení.

  • NOT NULL
  • PRIMARY KEY
  • UNIQUE
  • FOREIGN KEY
  • CHECK


NOT NULL

Integritní omezení NOT NULL znamená, že sloupec nesmí obsahovat hodnotu NULL.



PRIMARY KEY

Primární klíč jednoznačně identifikuje každý záznam v tabulce. Každá tabulka může mít maximálně jeden primární klíč, kterým může být jeden sloupec nebo kombinace více sloupců. Primární klíč nesmí nabývat hodnoty NULL, z tohoto důvodu je mu implicitně přiřazeno omezení NOT NULL. Z důvodu jednoznačné identifikace má implicitně nastaveno také omezení UNIQUE.



UNIQUE

Toto integritní omezení, stejně jako primární klíč, zajišťuje jedinečnost hodnoty ve sloupci a může být samostatně použito na více sloupců tabulky.



FOREIGN KEY

Integritní omezení FOREIGN KEY představuje tzv. cizí klíč. Jedná se o atribut nebo skupinu atributů jedné relace, které jsou primárním klíčem v jiné relaci. Aplikuje se tedy na atributy nebo skupinu atributů relací, které jsou ve vzájemném vztahu. Pokud dojde k manipulaci se záznamy relací, které jsou v nějakém vztahu, toto integritní omezení kontroluje existenci záznamů, kterých se operace týká.



Podle způsobu aplikace integritního omezení FOREIGN KEY lze při vytváření tabulek definovat jeden ze tří možných vztahů 1:1, 1:N nebo N:M.


1:1

Vytvoření vztahu 1:1 mezi tabulkami vyžaduje následující kroky.

  1. Vytvořit dvě tabulky (tabulku A a tabulku B) s definovaným primárním klíčem (PRIMARY KEY) v obou tabulkách.
  2. Vytvořit cizí klíč (FOREIGN KEY) v tabulce B na atributu, který odkazuje (REFERENCES) na primární klíč tabulky A.
  3. Přiřadit cizímu klíči v tabulce B integritní omezení UNIQUE.



1:N

Vytvoření vztahu 1:N mezi tabulkami vyžaduje následující kroky.

  1. Vytvořit dvě tabulky (tabulku A a tabulku B) s definovaným primárním klíčem (PRIMARY KEY) v obou tabulkách.
  2. Vytvořit cizí klíč (FOREIGN KEY) v tabulce B na atributu, který odkazuje (REFERENCES) na primární klíč tabulky A.



N:M

Vytvoření vztahu N:M mezi tabulkami vyžaduje následující kroky.

  1. Vytvořit dvě tabulky (tabulku A a tabulku B) s definovaným primárním klíčem (PRIMARY KEY) v obou tabulkách.
  2. Vytvořit třetí tabulku C s dvěma cizími klíči, kde každý z nich odkazuje (REFERENCES) na primární klíč jedné z tabulek A a B.



CHECK

Pomocí integritního omezení CHECK lze definovat podmínku, kterou musí splňovat ukládaná hodnota, např. musí být v určitém rozsahu.