Sobes.tech
Middle

Mi az a referenciamutatók integritása?

sobes.tech MI

Válasz az MI-től

A referenciális integritás egy olyan adatjellemző a relációs adatbázisokban, amely biztosítja, hogy a táblák közötti hivatkozások érvényesek maradjanak. Megakadályozza a következő problémákat:

  • Egy "szülő" tábla sorának törlése, amelyre a "gyermek" tábla sorai hivatkoznak.
  • A "szülő" tábla elsődleges kulcsának módosítása, amelyre a "gyermek" tábla sorai hivatkoznak, anélkül, hogy ezeket a hivatkozásokat frissítenénk.
  • Egy sor beszúrása a "gyermek" táblába, amely egy nem létező elsődleges kulcsra hivatkozik a "szülő" táblában.

Ezt külső kulcsok (FOREIGN KEY) segítségével valósítják meg.

Példák külső kulcsokra vonatkozó korlátozásokra:

  • ON DELETE CASCADE: Amikor egy sort törölnek a "szülő" táblából, a hozzá tartozó sorok a "gyermek" táblában is törlődnek.
  • ON DELETE SET NULL: Amikor egy sort törölnek a "szülő" táblából, a megfelelő külső kulcs a "gyermek" táblában NULL értékre lesz állítva.
  • ON DELETE RESTRICT: Egy sor törlése a "szülő" táblából megtagadható, ha rá hivatkozó sorok vannak a "gyermek" táblában.
  • ON UPDATE CASCADE: Amikor a "szülő" tábla elsődleges kulcsa frissül, a "gyermek" tábla megfelelő külső kulcsai is frissülnek.
-- "users" tábla példája (szülő)
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(255) NOT NULL
);

-- "orders" tábla példája (gyermek) külső kulccsal
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
        ON DELETE CASCADE /* Korlátozás példája */
        ON UPDATE CASCADE /* Korlátozás példája */
);