Obsah:
Definícia - Čo znamená cudzí kľúč?
Cudzí kľúč je stĺpec alebo skupina stĺpcov v tabuľke relačnej databázy, ktorá poskytuje spojenie medzi údajmi v dvoch tabuľkách. Funguje ako krížový odkaz medzi tabuľkami, pretože odkazuje na primárny kľúč inej tabuľky, čím vytvára spojenie medzi nimi.
Väčšina tabuliek v relačnom databázovom systéme dodržiava koncepciu cudzieho kľúča. V zložitých databázach a skladoch údajov sa údaje v doméne musia pridávať do viacerých tabuliek, čím sa zachováva ich vzájomný vzťah. Koncept referenčnej integrity je odvodený z teórie cudzích kľúčov.
Cudzie kľúče a ich implementácia sú zložitejšie ako primárne kľúče.
Techopedia vysvetľuje cudzí kľúč
Pre každý stĺpec, ktorý slúži ako cudzí kľúč, by v tabuľke prepojení mala existovať zodpovedajúca hodnota. Pri vkladaní údajov a odstraňovaní údajov zo stĺpca cudzieho kľúča je potrebné venovať osobitnú pozornosť, pretože neopatrné vymazanie alebo vloženie môže zničiť vzťah medzi týmito dvoma tabuľkami.
Napríklad, ak existujú dve tabuľky, zákazník a objednávka, môže sa medzi nimi vytvoriť vzťah zavedením cudzieho kľúča do tabuľky objednávok, ktorá odkazuje na ID zákazníka v zákazníckej tabuľke. Stĺpec ID zákazníka existuje v tabuľkách zákazníkov aj objednávok. ID zákazníka v tabuľke objednávok sa stáva cudzím kľúčom a odkazuje na primárny kľúč v tabuľke zákazníkov. Na vloženie záznamu do tabuľky objednávok musí byť splnené obmedzenie cudzieho kľúča. Pokus o zadanie ID zákazníka, ktorý sa nenachádza v tabuľke zákazníkov, zlyhá, a tak sa zachováva referenčná integrita tabuľky.
Niektoré referenčné akcie spojené s akciou cudzieho kľúča zahŕňajú nasledujúce:
- Kaskáda: Keď sa odstránia riadky v nadradenej tabuľke, odstránia sa aj zodpovedajúce stĺpce cudzích kľúčov v podradenej tabuľke, čím sa vytvorí kaskádové vymazanie.
- Set Null: Keď sa referenčný riadok v nadradenej tabuľke vymaže alebo aktualizuje, hodnoty cudzieho kľúča v referenčnom riadku sa nastavia na null, aby sa zachovala referenčná integrita.
- Spúšťače: Referenčné akcie sa zvyčajne implementujú ako spúšťače. Akcie cudzích kľúčov sú v mnohých ohľadoch podobné spúšťačom definovaným používateľom. Aby sa zabezpečilo správne vykonanie, sú objednané referenčné akcie niekedy nahradené ich ekvivalentnými spúšťačmi definovanými používateľmi.
- Nastaviť predvolené: Táto referenčná akcia je podobná ako „nastavená na null“. Hodnoty cudzieho kľúča v podradenej tabuľke sú nastavené na predvolenú hodnotu stĺpca, keď je referenčný riadok v nadradenej tabuľke odstránený alebo aktualizovaný.
- Obmedzenie: Toto je normálna referenčná akcia spojená s cudzím kľúčom. Hodnotu v nadradenej tabuľke nemožno odstrániť ani aktualizovať, pokiaľ sa na ňu odkazuje cudzím kľúčom v inej tabuľke.
- Žiadna akcia: Táto referenčná akcia je vo svojej funkcii podobná akcii „obmedziť“ s tým rozdielom, že kontrola bez akcie sa vykoná až po pokuse o zmenu tabuľky.
