Middle
Čo je to integrita referenčných väzieb?
sobes.tech AI
Odpoveď od AI
Referenčná integrita je vlastnosť údajov v relačnej databáze, ktorá zabezpečuje, že odkazy medzi tabuľkami zostávajú platné. Predchádza nasledujúcim problémom:
- Vymazanie riadku z "rodičovskej" tabuľky, na ktorú odkazujú riadky v "dcérskej" tabuľke.
- Zmena primárneho kľúča v "rodičovskej" tabuľke, na ktorý odkazujú riadky v "dcérskej" tabuľke, bez príslušnej aktualizácie týchto odkazov.
- Vloženie riadku do "dcérskej" tabuľky s odkazom na neexistujúci primárny kľúč v "rodičovskej" tabuľke.
Implementuje sa pomocou cudzích kľúčov (FOREIGN KEY).
Príklady obmedzení pre cudzie kľúče:
- ON DELETE CASCADE: Pri vymazaní riadku v rodičovskej tabuľke sú tiež vymazané zodpovedajúce riadky v dcérskej tabuľke.
- ON DELETE SET NULL: Pri vymazaní riadku v rodičovskej tabuľke je zodpovedajúci cudzí kľúč v dcérskej tabuľke nastavený na NULL.
- ON DELETE RESTRICT: Vymazanie riadku v rodičovskej tabuľke je zakázané, ak naň existujú odkazy v dcérskej tabuľke.
- ON UPDATE CASCADE: Pri aktualizácii primárneho kľúča v rodičovskej tabuľke sa zodpovedajúce cudzie kľúče v dcérskej tabuľke tiež aktualizujú.
-- Príklad tabuľky "users" (rodič)
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL
);
-- Príklad tabuľky "orders" (dcérska) s cudzím kľúčom
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 /* Príklad obmedzenia */
ON UPDATE CASCADE /* Príklad obmedzenia */
);