Tartalomjegyzék:
Meghatározás - Mit jelent az idegen kulcs?
Az idegen kulcs egy oszlop vagy oszlopcsoport egy relációs adatbázis táblában, amely kapcsolatot teremt a két táblázat adatai között. A táblák közötti kereszthivatkozásként működik, mivel hivatkozik egy másik tábla elsődleges kulcsára, és így kapcsolatot létesít közöttük.
A relációs adatbázisrendszer táblázatainak nagy része megfelel az idegen kulcs fogalmának. Komplex adatbázisokban és adattárházakban a tartomány adatait több táblába kell összeadni, ezáltal fenntartva a kapcsolatukat. A referenciális integritás fogalma az idegen kulcselméletből származik.
Az idegen kulcsok és azok megvalósítása összetettebbek, mint az elsődleges kulcsok.
A Techopedia magyarázza az Foreign Key-t
Minden idegen kulcsként működő oszlopnak megfelelő értéknek kell lennie a hivatkozási táblázatban. Különös figyelmet kell fordítani az adatok beillesztésekor és az adatok eltávolításakor az idegen kulcs oszlopából, mivel a gondatlan törlés vagy beillesztés tönkreteheti a két tábla közötti kapcsolatot.
Például, ha két tábla van, az ügyfél és a megrendelés, akkor kapcsolat létesíthető közöttük egy idegen kulcs bevezetésével a megrendelési táblába, amely utal az ügyfél-azonosítóra az ügyféltáblában. Az ügyfélazonosító oszlop létezik mind az ügyfél, mind a megrendelési táblázatokban. A megrendelési táblázatban szereplő ügyfélazonosító idegen kulcsvá válik, utalva az ügyféltáblázat elsődleges kulcsára. Bejegyzés beszúrásához a megrendelési táblázatba be kell tartani az idegen kulcs korlátozását. Sikertelen olyan ügyfélazonosító megadására tett kísérlet, amely nem található az ügyféltáblában, megőrzi a táblázat referencia-integritását.
Néhány, az idegen kulcsművelettel kapcsolatos referenciaművelet a következőket foglalja magában:
- Kaszkád: Ha a szülőtáblán sorokat törölnek, akkor az utódtáblában lévő idegen kulcs oszlopokat is törlik, és lépcsőzetes törlést hoznak létre.
- Set Null: Ha a szülőtáblában egy hivatkozott sort törölnek vagy frissítenek, a hivatkozási sor idegen kulcs értékeit nullra állítják a referencia integritásának fenntartása érdekében.
- Triggerek: A referenciaműveleteket rendszerint triggerekként hajtják végre. Sok szempontból az idegen kulcsműveletek hasonlóak a felhasználó által definiált eseményindítókhoz. A megfelelő végrehajtás biztosítása érdekében a rendelt referenciaműveleteket időnként felváltják a felhasználó által meghatározott egyenértékű triggerekkel.
- Alapértelmezett érték: Ez a referenciaművelet hasonló a "beállított nullhoz". Az utódtábla idegen kulcs értékeit az alapértelmezett oszlopértékre állítják be, ha a szülőtáblában szereplő hivatkozott sort törlik vagy frissítik.
- Korlátozás: Ez egy idegen kulcshoz társított normál referenciaművelet. A szülőtáblában szereplő értéket nem lehet törölni vagy frissíteni, hacsak egy másik táblában idegen kulcs hivatkozik rá.
- Nincs művelet: Ez a referenciaművelet funkciója hasonló a "korlátozás" művelethez, azzal a különbséggel, hogy a művelet nélküli ellenőrzést csak a tábla megváltoztatása után hajtják végre.