Junior
Hogyan befolyásolja a külső kulcs az adatbázis integritását?
sobes.tech MI
Válasz az MI-től
Idegen kulcs (foreign key) biztosítja az adatok referenciális integritását, garantálva, hogy egy táblában (gyermek tábla) lévő értékek megfelelnek egy másik tábla (szülő tábla) oszlopának értékeinek.
Hatás az adatintegritásra:
- Megakadályozza, hogy olyan rekordokat adjunk hozzá a gyermek táblához, amelyek értéke nem létezik a szülő tábla megfelelő oszlopában. Egy nem létező szülő rekordra való hivatkozással próbálkozó beszúrás hibát eredményez.
- Korlátozza a szülő táblából törölt rekordokat, amelyekre a gyermek tábla rekordjai hivatkoznak. A törlés viselkedése a beállított (
ON DELETE) művelettől függ:RESTRICT(alapértelmezett): Törlés tiltott.CASCADE: A gyermek tábla függő rekordjait törli.SET NULL: A megfelelő oszlop értékét NULL-ra állítja (ha az oszlop engedélyezi a NULL értéket).NO ACTION: Hasonló aRESTRICT-hez a standard ellenőrzésnél, de futásidőben eltérhet.
- Korlátozza a szülő tábla rekordjainak frissítését. A frissítés viselkedése szintén a beállított (
ON UPDATE) művelettől függ:RESTRICT(alapértelmezett): Tiltja a frissítést.CASCADE: Frissíti a megfelelő értéket a gyermek tábla függő rekordjaiban.SET NULL: A megfelelő oszlop értékét NULL-ra állítja (ha az oszlop engedélyezi a NULL értéket).NO ACTION: Hasonló aRESTRICT-hez a standard ellenőrzésnél, de futásidőben eltérhet.
Az idegen kulcs segít megelőzni a "hontalan" rekordok megjelenését, és biztosítja, hogy a táblák közötti kapcsolatok helyesek maradjanak.