Klíč (databáze)
Klíč (anglicky key) je v databázích údaj nebo vektor údajů, který plně postačuje k jednoznačné identifikaci položky v celé databázi nebo nějaké její části, nejčastěji tabulce. Klíč, popř. jedna položka složeného klíče, má nejčastěji podobu přirozeného čísla, ale nezřídka jde i o řetězec znaků, obzvlášť pokud se hovoří o databázi v širším slova smyslu. V relačních databázích klíč mívá podobu běžného sloupce a používá se mj. ke spojování záznamů mezi tabulkami.
Pro klíče, jelikož na základě jejich hodnot se k položkám v databázi přistupuje především, jsou velice často definovány indexy.
Klasifikace klíčů
V relačních databázích se klíče nedělí jen na jednoduché a složené, ale s ohledem na konkrétní tabulky nabývají dalších přívlastků — podle toho, zda úlohu jednoznačné identifikace plní v posuzované tabulce, či v jiné.
Primární klíč
Jako primární klíč (anglicky primary key) se označuje klíč, který úlohu jednoznačné identifikace plní v tabulce, ve které je definován. Nemusí však jít o jediný takový klíč. Hodnoty primárního klíče se přejímají do jiných tabulek. Každá tabulka má nejvýše jeden primární klíč.
Primární klíč v tabulce nedovolí stejné hodnoty ve dvou záznamech. Současně bývá pravidlem, že hodnota primárního klíče musí být definována pro každou položku.
K primárnímu klíči se obvykle pojí tzv. vlastnost AUTO INCREMENT
, která aplikaci přistupující k databázi umožňuje opominout hodnotu primárního klíče při vkládání záznamu — hodnota se zadá z pořadníku, který je systémem řízení báze dat k tabulce v takovém případě veden.
Cizí klíč
Cizím klíčem (anglicky foreign key) je klíč, který úlohu jednoznačné identifikace zajišťuje v jiné tabulce, než v kontextu které je na něj nahlíženo. V kontextu posuzované tabulky unikátní být nemusí, a většině praktických použití ani není.
Není vzácným jevem, že cizí klíče se systému řízení báze dat nevyznačují. Na rozdíl od sloupců, které nejsou částí žádného klíče, však bývají indexovány.
Jiné klíče
Klíče, jež nejsou primární ani cizí, lze chápat jako prostředky zajištění jednoznačnosti „uživatelských hodnot“. Mohou být jedinou možností, jak zajistit unikátnost kombinací hodnot v několika sloupcích.
Smysluplným příkladem může být tabulka uživatelů, kde primárním klíčem je přirozené číslo, ale přihlašovací jméno rovněž musí být unikátní (řetězec je pro spojování tabulek nevhodný, neboť porovnávání řetězců je výpočetně mnohem náročnější než porovnávání celých čísel).