logo

Idegen kulcs a DBMS-ben

Az idegen kulcs különbözik a szuperkulcstól, jelöltkulcstól vagy elsődleges kulcstól, mivel az idegen kulcs az, amelyet két tábla összekapcsolására vagy a kettő közötti kapcsolat létrehozására használnak.

Ebben a részben az idegen kulcsról, annak használatáról fogunk beszélni, és néhány olyan példát nézünk meg, amelyek segítenek megérteni az idegen kulcs működését és használatát. Látni fogjuk a gyakorlati megvalósítását is adatbázison, azaz egy táblán lévő idegen kulcs létrehozását és törlését.

Mi az az idegen kulcs

Az idegen kulcs az, amelyet két tábla összekapcsolására használnak az elsődleges kulcson keresztül. Ez azt jelenti, hogy az egyik tábla oszlopai a másik tábla elsődleges kulcs attribútumára mutatnak. Ez azt is jelenti, hogy ha bármely attribútum elsődleges kulcs attribútumként van beállítva, akkor egy másik táblában idegen kulcs attribútumként fog működni. De tudnia kell, hogy az idegen kulcsnak semmi köze az elsődleges kulcshoz.

Idegen kulcs használata

Az idegen kulcs használata egyszerűen két tábla attribútumainak összekapcsolását jelenti egy elsődleges kulcs attribútum segítségével. Így a két kapcsolat közötti kapcsolat létrehozására és fenntartására szolgál.

Példa az idegen kulcsra

Nézzünk meg egy példát az idegen kulcs működésének megértéséhez.

mac operációs rendszerek

Tekintsünk két táblázatot Diák és Osztály a megfelelő attribútumokkal, amint az az alábbi táblázatstruktúrában látható:

Idegen kulcs a DBMS-ben
Idegen kulcs a DBMS-ben

A táblázatokban egy attribútum, látható, közös, azaz Stud_Id , de mindkét táblára különböző kulcskorlátozások vonatkoznak. A Student táblában a Stud_Id mező a elsődleges kulcs mert egyedileg azonosítja a Student tábla összes többi mezőjét. Másrészt a Stud_Id a idegen kulcs attribútumot a Tanszék tábla számára, mert az elsődleges kulcs attribútumként működik a Student tábla számára. Ez azt jelenti, hogy mind a Hallgató, mind a Tanszék tábla össze van kapcsolva egymással a Stud_Id attribútum miatt.

Az alábbi ábrán a két tábla kapcsolatának alábbi struktúrája látható.

Idegen kulcs a DBMS-ben

Megjegyzés: A DBMS-ben a hivatkozási integritást az idegen kulcs koncepciójából fejlesztették ki. Nyilvánvaló, hogy az elsődleges kulcs egy egyedül létező kulcs, az idegen kulcs pedig mindig hivatkozik egy másik tábla elsődleges kulcsára, amelyben az elsődleges kulcsot tartalmazó tábla a másik tábla hivatkozott táblájaként vagy szülőtáblájaként ismert. rendelkezik az idegen kulccsal.

Idegen kulcs kényszer létrehozása

A TÁBLÁZAT LÉTREHOZÁSA menüpontban

Az alábbiakban látható a szintaxis, amellyel megtanulhatjuk az idegen kulcs létrehozását egy táblázatban:

10/40
 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) ); 

Így tehát beállíthatunk egy idegen kulcsot egy táblához a MYSQL adatbázisban.

Ha idegen kulcsot hoz létre egy táblához SQL-ben vagy Oracle szerverben, a következő szintaxis fog működni:

 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) ); 

Az ALTER TABLE-n

Az alábbi szintaxis az ALTER TABLE idegen kulcs kényszer létrehozásához:

 ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id); 

Idegenkulcs leejtése

Az idegen kulcs törléséhez az alábbiakban leírt szintaxis használható:

c# szótár
 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

Így ily módon eldobhatunk egy idegen kulcsot az ALTER TABLE segítségével a MYSQL adatbázisban.

Ne feledje

Az idegen kulcs eldobásakor ügyelni kell az idegen kulccsal összekapcsolt táblák integritására. Ha módosít egy táblát, és megzavarja mindkét tábla integritását, bizonyos hibákat jeleníthet meg a két tábla közötti nem megfelelő kapcsolat miatt.

Referenciaműveletek

Vannak olyan műveletek, amelyek az idegen kulcs tábla tulajdonosa által végrehajtott műveletekhez kapcsolódnak:

do és while ciklus java-ban

1) Kaszkád

Ha a szülőtáblában (azaz az elsődleges kulcsot tartalmazó) sorokat törölünk, akkor a másik tábla (azaz az idegen kulcsot tartalmazó) oszlopai is törlődnek. Így az akciót ún Vízesés .

2) Állítsa be a NULL értéket

Az ilyen hivatkozási művelet megőrzi mindkét tábla hivatkozási integritását. Amikor manipulálunk/törölünk egy hivatkozott sort a szülő/hivatkozott táblában, a gyermek táblában (idegen kulccsal rendelkező tábla), az ilyen hivatkozási sor értéke NULL lesz. Az ilyen végrehajtott referenciaművelet ún Állítsa NULL-ra .

3) Állítsa be az ALAPÉRTÉKET

Ilyen művelet akkor történik, amikor a szülőtábla hivatkozott sorában az értékeket frissítjük, vagy a sort töröljük, az utódtábla értékeit az oszlop alapértelmezett értékére állítjuk.

4) Korlátozás

Ez az a korlátozási megszorítás, amikor a szülő táblában a hivatkozott sor értéke nem módosítható vagy törölhető, hacsak nem hivatkozik rá az utódtáblában lévő idegen kulcs. Így ez egy idegen kulcs normál hivatkozási művelete.

illessze be a vízjelet a Wordbe

5) Nincs művelet

Ez egyben az idegen kulcs korlátozása is, de csak a szülőtábla hivatkozott sorának módosítása vagy törlése után valósul meg.

6) Triggerek

Mindezek és más hivatkozási műveletek alapvetően triggerként valósulnak meg, ahol az idegen kulcs műveletei nagyon hasonlóak vagy csaknem hasonlóak a felhasználó által meghatározott triggerekhez. Bizonyos esetekben azonban az elrendelt hivatkozási műveleteket a megfelelő, felhasználó által definiált triggerekkel helyettesítik a megfelelő trigger-végrehajtás biztosítása érdekében.