Primární klíč vs jedinečný 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 jednoznač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é kombinací sloupců v tabulce, které jednoznačně identifikují řádek. Ale je to považováno za speciální případ jedinečného klíče.
Co je jedinečný klíč?
Jak již bylo zmíněno, jedinečný klíč je jeden sloupec nebo sada sloupců, které mohou jednoznačně identifikovat řádek v tabulce. Jedinečný klíč je tedy omezen tak, že žádné jeho dvě hodnoty nejsou stejné. Jednou z důležitých vlastností je, že jedinečné klíče nevynucují omezení NOT NULL. Protože NULL představuje chybějící hodnotu, pokud dva řádky mají ve sloupci hodnotu NULL, neznamená to, že hodnoty jsou stejné. Sloupec definovaný jako jedinečný klíč umožňuje v tomto sloupci pouze jednu hodnotu NULL. Pak to lze použít k jedinečné identifikaci konkrétní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, jednoznačně identifikuje 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 maximálně jeden primární klíč. Primární klíč vynucuje implicitní omezení NOT NULL. Sloupec, který je definován jako primární klíč, tedy nemůže obsahovat hodnoty NULL. Primárním klíčem může být normální atribut v tabulce, který je zaručeně jedinečný, jako je číslo sociálního pojištění, nebo to může být jedinečná hodnota vygenerovaná systémem správy databází, jako je globálně jedinečný identifikátor (GUID) v Microsoft SQL Server. Primární klíče jsou definovány prostřednictvím omezení PRIMARY KEY v ANSI SQL Standard. Primární klíč lze také definovat při vytváření tabulky. SQL umožňuje, aby se primární klíč skládal z jednoho nebo více sloupců a každý sloupec, který je součástí primárního klíče, je implicitně definován jako NOT NULL. Některé systémy pro správu databází však vyžadují, aby sloupce primárního klíče explicitně NENÍ NULL.
Rozdíl mezi primárním klíčem a jedinečným klíčem
I když primární klíč i jedinečný klíč tvoří jeden nebo více sloupců, které mohou jednoznačně identifikovat řádek v tabulce, mají některé důležité rozdíly. Nejdůležitější je, že 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 speciální případ jedinečného klíče. Dalším rozdílem je, že primární klíče mají implicitní omezení NOT NULL, zatímco jedinečný klíč toto omezení nemá. Sloupce jedinečného klíče proto mohou nebo nemusí obsahovat hodnoty NULL, ale sloupce primárního klíče nemohou obsahovat hodnoty NULL.