Sobes.tech
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:

  1. 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.
  2. 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ó a RESTRICT-hez a standard ellenőrzésnél, de futásidőben eltérhet.
  3. 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ó a RESTRICT-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.