Invia.cz
Last minute
Tunisko
Dovolená v Chorvatsku
Pojeďte do Egypta
Bulharsko
Vydělávejte peníze s INVIA.CZ
Cizí klíč (foreign key) je v prostředí relačních databází integritní omezení, které u tabulky vytvoří spojení jednoho nebo více jejích sloupců se sloupcem nebo sloupci jiné („cizí“) tabulky. Pokud se hodnoty dotčených sloupců shodují, poté příslušný řádek cizí tabulky rozvíjí řádek zdrojové tabulky přes toto spojení. Tomu se též říká reference nebo odkaz.
Cizí klíč umožňuje definovat akce, které mají nastat při změně nebo smazání záznamů ve zdrojové tabulce, například, po smazání záznamu z primární tabulky budou v cizí tabulce řádky se stejnou hodnotou cizího klíče, taktéž smazány, nastaveny na určitou hodnotu nebo se smazání zabrání úplně. Cizí klíče tak představují mechanismus pro udržení referenční integrity databáze.
V databázi spolku přátel psů máme následující tabulky:
osoby se sloupci osoba_id a jménopsi se sloupci pes_id, majitel a rasaAby byla data v databázi korektní, je třeba, aby každý záznam psa měl uvedeného platného majitele. Proto označíme v tabulce psi sloupec majitel jako cizí klíč, vztažený k sloupci osoba_id v tabulce osoby. Když je poté přidán záznam pro psa, databázový engine bude vyžadovat, aby číslo v poli majitel nabývalo některé z existujících hodnot id tabulky osoby. Zároveň můžeme určit, zda se při smazání osoby smažou i záznamy všech psů, kterými je majitelem, nebo zda má pokus o smazání osoby vlastnící alespoň jednoho psa selhat.