Co je to cizí klíč (Foreign Key) v relační databázy?

Cizí klíč je klíč, který se používá k definování vztahu mezi dvěma tabulkami v relační databázi. Je to v podstatě sloupec nebo skupina sloupců v jedné tabulce, který odkazuje na primární klíč (Primary Key) v jiné tabulce. Cizí klíč je důležitý, protože pomáhá udržovat integritu dat v databázi. Zajišťuje, aby data v cizí tabulce byla vždy platná a aby odkazovala na existující záznamy v primární tabulce.

 
 
cizí klíč

Jak cizí klíč funguje?

Při definování cizího klíče se určuje, který sloupec nebo skupina sloupců v jedné tabulce (cizí tabulka) odkazuje na primární klíč v jiné tabulce (primární tabulka).

Například, pokud máte tabulku Owners s primárním klíčem PK OwnerID a tabulku Dogs s cizím klíčem FK OwnerID, cizí klíč FK OwnerID v tabulce Dogs odkazuje na primární klíč PK OwnerID v tabulce Owners.

Tím, že definujete cizí klíč, zajišťujete, že hodnota v poli OwnerID v tabulce Dogs musí existovat i v tabulce Owners.

 
cizí klíč foreign key

Příklady použití cizích klíčů

Cizí klíče se používají v mnoha různých situacích a to například:

Pro vytvoření vztahů mezi tabulkami

Cizí klíče pomáhají definovat, jak jsou tabulky v databázi propojeny. Propojení se vytváří na principu vazby. Vazby mezi tabulkami mohou být vytvořeny různými způsoby. Záleží, jak jsou data v jedné tabulce vztaženy k datům v jiné tabulce. Níže si uvedeme několik druhů vazeb:

1:1 je nejjednodušším typ vazby. Používá se k reprezentaci vztahu, kde každý záznam v jedné tabulce odpovídá pouze jednomu záznamu v druhé tabulce. Například, pokud máte tabulku Zákazníci s primárním klíčem ID zákazníka a tabulku Adresy s primárním klíčem ID adresy, můžete použít 1:1 vazbu k reprezentaci vztahu mezi zákazníkem a jeho adresou.

1:N nejběžnější typ vazby. Používá se pro vztahy, kde každý záznam v jedné tabulce může odpovídat více záznamům v druhé tabulce. Například, pokud máte tabulku Zákazníci s primárním klíčem ID zákazníka a tabulku Objednávky s primárním klíčem ID objednávky, můžete použít 1:N vazbu k reprezentaci vztahu mezi zákazníkem a jeho objednávkami.

N:M samozřejmě nejsložitějším typem vazby. Používá se k vytvoření vztahu, kde každý záznam v jedné tabulce může odpovídat více záznamům v druhé tabulce a naopak. Například, pokud máte tabulku Knihy s primárním klíčem ID knihy a tabulku Autori s primárním klíčem ID autora, můžete použít N:M vazbu k reprezentaci vztahu mezi knihami a jejich autory.

Pro zajištění integrity dat

Dále pomáhají také zabránit tomu, aby se do databáze dostaly neplatná data.

Pro zlepšení výkonu dotazů

Mohou ale být i použity k optimalizaci dotazů, které se vztahují k více tabulkám.

Cizí klíče jsou důležitým nástrojem pro návrh a správu relačních databází. Pomáhají udržovat integritu dat, zlepšovat výkon dotazů a usnadňují porozumění vztahům mezi tabulkami.