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 */
);