Cudzí kľúč sa líši od super kľúča, kandidátskeho kľúča alebo primárneho kľúča, pretože cudzí kľúč je ten, ktorý sa používa na prepojenie dvoch tabuliek alebo na vytvorenie prepojenia medzi nimi.
Tu, v tejto časti, rozoberieme cudzí kľúč, jeho použitie a pozrieme sa na niekoľko príkladov, ktoré nám pomôžu pochopiť fungovanie a použitie cudzieho kľúča. Uvidíme aj jeho praktickú implementáciu na databáze, teda vytvorenie a vymazanie cudzieho kľúča v tabuľke.
Čo je cudzí kľúč
Cudzí kľúč je ten, ktorý sa používa na prepojenie dvoch tabuliek cez primárny kľúč. Znamená to, že stĺpce jednej tabuľky ukazujú na atribút primárneho kľúča druhej tabuľky. Ďalej to znamená, že ak je nejaký atribút nastavený ako primárny kľúč, atribút bude fungovať v inej tabuľke ako atribút cudzieho kľúča. Ale mali by ste vedieť, že cudzí kľúč nemá nič spoločné s primárnym kľúčom.
Použitie cudzieho kľúča
Použitie cudzieho kľúča je jednoducho prepojiť atribúty dvoch tabuliek pomocou atribútu primárneho kľúča. Používa sa teda na vytváranie a udržiavanie vzťahu medzi týmito dvoma vzťahmi.
Príklad cudzieho kľúča
Poďme diskutovať o príklade na pochopenie fungovania cudzieho kľúča.
js načítať
Zvážte dve tabuľky Študent a oddelenie s príslušnými atribútmi, ako je uvedené v štruktúre tabuľky nižšie:
V tabuľkách je jeden atribút, ktorý vidíte, bežný, tj Stud_Id , ale má iné kľúčové obmedzenia pre obe tabuľky. V tabuľke Študent je pole Stud_Id a primárny kľúč pretože jedinečne identifikuje všetky ostatné polia tabuľky Študent. Na druhej strane, Stud_Id je a cudzí kľúč atribút pre tabuľku Katedra, pretože funguje ako atribút primárneho kľúča pre tabuľku Študent. Znamená to, že tabuľka Študent aj Tabuľka Katedry sú navzájom prepojené vďaka atribútu Stud_Id.
čo je export v linuxe
Na nižšie uvedenom obrázku si môžete pozrieť nasledujúcu štruktúru vzťahu medzi týmito dvoma tabuľkami.
Poznámka: Referenčná integrita v DBMS je vyvinutá z konceptu cudzieho kľúča. Je jasné, že primárny kľúč je samotný existujúci kľúč a cudzí kľúč vždy odkazuje na primárny kľúč v nejakej inej tabuľke, v ktorej je tabuľka, ktorá obsahuje primárny kľúč, známa ako referenčná tabuľka alebo nadradená tabuľka pre druhú tabuľku, ktorá má cudzí kľúč.
Vytvorenie obmedzenia cudzieho kľúča
Na CREATE TABLE
Nižšie je syntax, vďaka ktorej sa naučíme vytváranie cudzieho kľúča v tabuľke:
CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) );
Takže týmto spôsobom môžeme nastaviť cudzí kľúč pre tabuľku v databáze MYSQL.
V prípade vytvorenia cudzieho kľúča pre tabuľku na serveri SQL alebo Oracle bude fungovať nasledujúca syntax:
konvertovať dátum reťazca
CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) );
Na ALTER TABLE
Nasleduje syntax na vytvorenie obmedzenia cudzieho kľúča v ALTER TABLE:
ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id);
Zahodenie cudzieho kľúča
Na vymazanie cudzieho kľúča je možné použiť nižšie opísanú syntax:
ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment;
Takže týmto spôsobom môžeme zahodiť cudzí kľúč pomocou ALTER TABLE v databáze MYSQL.
Bod na zapamätanie
Keď zahodíte cudzí kľúč, musíte sa postarať o integritu tabuliek, ktoré sú pripojené cez cudzí kľúč. V prípade, že vykonáte zmeny v jednej tabuľke a narušíte integritu oboch tabuliek, môže sa zobraziť určité chyby v dôsledku nesprávneho prepojenia medzi týmito dvoma tabuľkami.
Referenčné akcie
Existuje niekoľko akcií, ktoré súvisia s akciami vykonanými držiteľom tabuľky cudzieho kľúča:
1) Kaskáda
Keď vymažeme riadky v nadradenej tabuľke (t. j. ten, ktorý obsahuje primárny kľúč), vymažú sa aj rovnaké stĺpce v druhej tabuľke (t. j. ten, ktorý obsahuje cudzí kľúč). Akcia je teda známa ako Cascade .
2) Nastavte NULL
Takáto referenčná akcia zachováva referenčnú integritu oboch tabuliek. Keď manipulujeme/odstraňujeme odkazovaný riadok v nadradenej/odkazovanej tabuľke, v podradenej tabuľke (tabuľka s cudzím kľúčom), hodnota takéhoto odkazujúceho riadka je nastavená ako NULL. Takáto referenčná akcia je známa ako Nastavte hodnotu NULL .
reťazec v poli c
3) Nastavte DEFAULT
Takáto akcia sa uskutoční, keď sa aktualizujú hodnoty v odkazovanom riadku nadradenej tabuľky alebo sa riadok vymaže, hodnoty v podradenej tabuľke sa nastavia na predvolené hodnoty stĺpca.
mvc java
4) Obmedziť
Ide o obmedzenie, kde hodnotu odkazovaného riadka v nadradenej tabuľke nemožno upraviť alebo odstrániť, pokiaľ na ňu neodkazuje cudzí kľúč v podradenej tabuľke. Ide teda o normálnu referenčnú akciu cudzieho kľúča.
5) Žiadna akcia
Je to tiež obmedzenie cudzieho kľúča, ale implementuje sa až po pokuse o úpravu alebo vymazanie odkazovaného riadka nadradenej tabuľky.
6) Spúšťače
Všetky tieto a ďalšie referenčné akcie sú v podstate implementované ako spúšťače, kde sú akcie cudzieho kľúča veľmi podobné alebo takmer podobné spúšťačom definovaným používateľom. V niektorých prípadoch sú však objednané referenčné akcie nahradené ich ekvivalentnými spúšťačmi definovanými používateľom, aby sa zabezpečilo správne vykonanie spúšťača.