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é kombinace sloupců v tabulce, která jednoznačně identifikuje řádek. Považuje se to však za zvláštní případ jedinečného klíče.
Co je jedinečný klíč?
Jak již bylo zmíněno dříve, jedinečný klíč je jeden sloupec nebo sada sloupců, které mohou jednoznačně identifikovat řádek v tabulce. Takže jedinečný klíč je omezen tak, že žádné 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 mají dva řádky NULL ve sloupci, 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 obsahující informace o studentech 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 designu databázetabulka může mít 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 nanejvýš 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í klíč může být normální atribut v tabulce, který je zaručeně jedinečný, například číslo sociálního zabezpečení, nebo to může být jedinečná hodnota vygenerovaná systémem správy databáze, například Globally Unique Identifier (GUID) na serveru 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 vytvoření primárního klíče z jednoho nebo více sloupců a každý sloupec, který je zahrnut v primárním klíči, je implicitně definován jako NENÍ NULL. Některé systémy pro správu databází však vyžadují, aby sloupce primárního klíče byly explicitně NE NULL.
Rozdíl mezi primárním klíčem a jedinečným klíčem
I když je primární klíč i jedinečný klíč jeden nebo více sloupců, které mohou jednoznač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 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á. Proto jedinečné klíčové sloupce mohou nebo nemusí obsahovat hodnoty NULL, ale sloupce primárního klíče nemohou obsahovat hodnoty NULL.