Primárny kľúč verzus jedinečný kľúč
Stĺpec alebo skupina stĺpcov, ktoré možno použiť na identifikáciu alebo prístup k riadku alebo množine riadkov v databáze, sa nazýva kľúč. Jedinečný kľúč je kľúč, ktorý dokáže jedinečne identifikovať riadok v tabuľke v kontexte relačných databáz. Jedinečný kľúč sa skladá z jedného stĺpca alebo zo súboru stĺpcov. Primárny kľúč je tiež kombináciou stĺpcov v tabuľke, ktoré jednoznačne identifikujú riadok. Považuje sa to však za osobitný prípad jedinečného kľúča.
Čo je jedinečný kľúč?
Ako už bolo spomenuté, jedinečný kľúč je jeden stĺpec alebo skupina stĺpcov, ktoré dokážu jedinečne identifikovať riadok v tabuľke. Jedinečný kľúč je teda obmedzený tak, že jeho dve hodnoty nie sú rovnaké. Jednou dôležitou vlastnosťou je, že jedinečné kľúče nevynucujú obmedzenia NOT NULL. Pretože NULL predstavuje nedostatok hodnoty, ak dva riadky majú NULL v stĺpci, neznamená to, že hodnoty sú rovnaké. Stĺpec definovaný ako jedinečný kľúč umožňuje v tomto stĺpci iba jednu hodnotu NULL. Potom je možné tento jedinečný riadok jednoznačne identifikovať. Napríklad v tabuľke, ktorá obsahuje informácie o študentovi, ID študenta možno definovať ako jedinečný kľúč. Keďže žiadny z dvoch študentov nemôže mať rovnaké ID, jedinečne identifikuje jedného študenta. Stĺpec ID študenta teda spĺňa všetky vlastnosti jedinečného kľúča. V závislosti od dizajnu databázy môže mať tabuľka viac ako jeden jedinečný kľúč.
Čo je primárny kľúč?
Primárny kľúč je tiež stĺpec alebo kombinácia stĺpcov, ktoré jednoznačne definujú riadok v tabuľke relačnej databázy. Tabuľka môže obsahovať najviac jeden primárny kľúč. Primárny kľúč vynúti implicitné obmedzenie NOT NULL. Stĺpec, ktorý je definovaný ako primárny kľúč, nemôže v ňom obsahovať hodnoty NULL. Primárny kľúč môže byť normálnym atribútom v tabuľke, o ktorom je zaručené, že je jedinečný, napríklad číslo sociálneho zabezpečenia, alebo by to mohla byť jedinečná hodnota vygenerovaná systémom na správu databázy, ako je napríklad Globálne jedinečný identifikátor (GUID) v Microsoft SQL Server. Primárne kľúče sú definované pomocou obmedzenia PRIMARY KEY v štandarde ANSI SQL. Primárny kľúč možno definovať aj pri vytváraní tabuľky. SQL umožňuje, aby bol primárny kľúč tvorený jedným alebo viacerými stĺpcami a každý stĺpec, ktorý je zahrnutý v primárnom kľúči, je implicitne definovaný ako NOT NULL. Niektoré systémy správy databáz však vyžadujú, aby stĺpce primárneho kľúča boli explicitne NIE NULL.
Rozdiel medzi primárnym kľúčom a jedinečným kľúčom
Aj keď primárny kľúč aj jedinečný kľúč sú jedným alebo viacerými stĺpcami, ktoré dokážu jedinečne identifikovať riadok v tabuľke, majú niektoré dôležité rozdiely. Najdôležitejšie je, že tabuľka môže mať iba jeden primárny kľúč, zatiaľ čo môže mať viac ako jeden jedinečný kľúč. Primárny kľúč možno považovať za osobitný prípad jedinečného kľúča. Ďalším rozdielom je to, že primárne kľúče majú implicitné obmedzenie NOT NULL, zatiaľ čo jedinečný kľúč toto obmedzenie nemá. Preto jedinečné stĺpce kľúčov môžu alebo nemusia obsahovať hodnoty NULL, ale stĺpce primárnych kľúčov nemôžu obsahovať hodnoty NULL.