Primární klíč vs. Unikátní klíč
Sloupec nebo sada sloupců, které lze použít k identifikaci nebo přístupu k řádku nebo sadě řádků v databázi, se nazývá klíč. Jedinečný klíč je klíč, který dokáže jedinečně identifikovat řádek v tabulce v kontextu relačních databází. Jedinečný klíč se skládá z jednoho sloupce nebo sady sloupců. Primární klíč je také kombinace sloupců v tabulce, které jedinečně identifikují řádek. Je to však považováno za zvláštní případ jedinečného klíče.
Co je jedinečný klíč?
Jak bylo uvedeno výše, jedinečný klíč je jeden sloupec nebo sada sloupců, které mohou jedinečně identifikovat řádek v tabulce. Jedinečný klíč je tedy omezen tak, že jeho dvě hodnoty nejsou stejné. Jednou důležitou vlastností je, že jedinečné klíče nevynucují omezení NOT NULL. Protože NULL představuje nedostatek hodnoty, pokud dva řádky mají ve sloupci NULL, neznamená to, že jsou hodnoty stejné. Sloupec definovaný jako jedinečný klíč umožňuje v tomto sloupci pouze jednu hodnotu NULL. To pak lze použít k jedinečné identifikaci daného řádku. Například v tabulce, která obsahuje informace o studentovi, lze ID studenta definovat jako jedinečný klíč. Protože žádný dva studenti nemohou mít stejné ID, jedinečně identifikují jednoho studenta. Sloupec ID studenta tedy splňuje všechny vlastnosti jedinečného klíče. V závislosti na návrhu databáze může mít tabulka více než jeden jedinečný klíč.
Co je primární klíč?
Primární klíč je také sloupec nebo kombinace sloupců, které jednoznačně definují řádek v tabulce relační databáze. Tabulka může mít nejvýše jeden primární klíč. Primární klíč vynucuje implicitní omezení NOT NULL. Sloupec, který je definován jako primární klíč, tedy v něm nemůže obsahovat hodnoty NULL. Primární klíč může být normální atribut v tabulce, u kterého je zaručeno, že je jedinečný, například číslo sociálního zabezpečení, nebo to může být jedinečná hodnota generovaná systémem správy databází, jako je například Globálně jedinečný identifikátor (GUID) v Microsoft SQL Server. Primární klíče jsou definovány pomocí omezení PRIMARY KEY v ANSI SQL Standard. Primární klíč lze také definovat při vytváření tabulky. SQL umožňuje vytvoření primárního klíče z jednoho nebo více sloupců a každý sloupec, který je obsažen v primárním klíči, je implicitně definován jako NOT NULL. Některé systémy správy databází však vyžadují, aby sloupce primárních klíčů nebyly explicitně NULL.
Rozdíl mezi primárním klíčem a jedinečným klíčem
Přestože primární klíč i jedinečný klíč jsou jedním nebo více sloupci, které mohou jedinečně identifikovat řádek v tabulce, mají některé důležité rozdíly. A co je nejdůležitější, tabulka může mít pouze jeden primární klíč, zatímco může mít více než jeden jedinečný klíč. Primární klíč lze považovat za zvláštní případ jedinečného klíče. Další rozdíl spočívá v tom, že primární klíče mají implicitní omezení NOT NULL, zatímco jedinečný klíč toto omezení nemá. Proto jedinečné sloupce klíčů mohou nebo nemusí obsahovat hodnoty NULL, ale sloupce primárních klíčů nemohou obsahovat hodnoty NULL.