Základní rozdíl mezi primárním klíčem a jedinečným klíčem je, že primární klíč neakceptuje hodnoty NULL, zatímco hodnoty NULL jsou povoleny v rámci omezení Unique key.
Srovnávací graf
Základ pro srovnání | Primární klíč | Jedinečný klíč |
---|---|---|
Základní | Používá se jako jedinečný identifikátor pro každý řádek v tabulce. | Také jednoznačně určuje řádek, který není definován jako primární klíč. |
Přijetí hodnoty NULL | Primární klíč nepřijme hodnoty NULL. | Unikátní bude akceptovat hodnotu NULL. |
Počet kláves, které lze definovat v tabulce | Pouze jeden primární klíč | Víc než jeden |
Index | Vytvoří seskupený index | Vytvoří index bez shluků |
Definice primárního klíče
Sloupec může být volán jako primární klíč jeho tabulky, pokud jedinečně identifikuje každou n-tici (řádek) v této tabulce. Vynucuje omezení integrity tabulky. V tabulce je povolen pouze jeden primární klíč. Primární klíč nepřijímá duplicitní a NULL hodnoty. Primární klíč je vybrán s opatrností tam, kde změny mohou nastat jen zřídka, což znamená, že primární klíč v tabulce se mění velmi zřídka.
Pojďme pochopit pojem primární klíč pomocí tabulky. Zde vytváříme tabulku nazvanou Studentská tabulka, která má atributy jako Roll_number, Name, Batch, Phone_number, Citizen_ID.
Na primární klíč lze odkazovat pomocí cizího klíče. Vytvoří jedinečný klastrovaný index na tabulce. V clusterovém indexu jsou datové řádky tříděny a uloženy v tabulce nebo pohledech na základě jejich klíčových hodnot. V tabulce může být pouze jeden shlukovaný index, důvodem je to, že datové řádky v tabulce lze třídit pouze v jednom pořadí.
Definice jedinečného klíče
Podobně jako u primárního klíče, i Unique key constraints jednoznačně identifikují jednotlivou n-tici v relaci. Mezi nimi však existují určité rozdíly. Tabulka může mít více než jeden jedinečný klíč. Jedinečná omezení klíče mohou přijmout pouze jednu hodnotu NULL pro sloupec.
Pochopme to s podobným příkladem, kdy jsme měli tabulku Student s atributy Roll_number, Name, Batch, Phone_number a Citizen_ID. Atribut číslo role je přiřazen primárnímu klíči.
Unikátní omezení jsou také odkazována cizím klíčem. Může být použit, když někdo chce vynutit omezení ve sloupci a skupině sloupců, která není primárním klíčem. Na rozdíl od primárního klíče generuje index bez clusterů . Non-clusterové indexy mají odlišnou strukturu od datových řádků. Každá položka klíče-hodnota v ní ukazuje na řádek dat, který obsahuje hodnotu klíče, proto používá ukazatele.
Klíčové rozdíly mezi primárním klíčem a jedinečným klíčem
- Pokud atribut deklarován jako primární klíč, nebude akceptovat hodnoty NULL. Na druhé straně, když atribut deklarovaný jako jedinečný může přijmout jednu hodnotu NULL.
- Tabulka může mít pouze primární klíč, zatímco tabulka může obsahovat více jedinečných omezení.
- Klastrovaný index se automaticky vytvoří, když je definován primární klíč. Naproti tomu jedinečný klíč generuje index bez clusterů.
Závěr
Primární klíč a jedinečný klíč slouží k určení jedinečného identifikátoru pro řádky tabulky s jedinečnými hodnotami ve sloupci nebo skupině sloupců. Tato klíčová omezení jsou výrazně diferencovaná, kde každá tabulka může mít maximálně jeden primární klíč, zatímco tabulka může mít více jedinečných klíčů, které nejsou primární.