Middle
Wat is de integriteit van referentieverbindingen?
sobes.tech AI
Antwoord van AI
Referentiële integriteit is een eigenschap van gegevens in een relationele database die garandeert dat de verwijzingen tussen tabellen geldig blijven. Het voorkomt de volgende problemen:
- Het verwijderen van een rij uit de "ouder"-tabel waarnaar rijen in de "kind"-tabel verwijzen.
- Het wijzigen van de primaire sleutel in de "ouder"-tabel waarnaar rijen in de "kind"-tabel verwijzen, zonder deze verwijzingen bij te werken.
- Het invoegen van een rij in de "kind"-tabel met een verwijzing naar een niet-bestaande primaire sleutel in de "ouder"-tabel.
Het wordt geïmplementeerd met behulp van buitenlandse sleutels (FOREIGN KEY).
Voorbeelden van beperkingen voor buitenlandse sleutels:
- ON DELETE CASCADE: Bij het verwijderen van een rij in de oudertabel worden de overeenkomstige rijen in de kindtabel ook verwijderd.
- ON DELETE SET NULL: Bij het verwijderen van een rij in de oudertabel wordt de bijbehorende buitenlandse sleutel in de kindtabel op NULL gezet.
- ON DELETE RESTRICT: Het verwijderen van een rij in de oudertabel is verboden als er verwijzingen naar bestaan in de kindtabel.
- ON UPDATE CASCADE: Bij het bijwerken van de primaire sleutel in de oudertabel worden de overeenkomstige buitenlandse sleutels in de kindtabel ook bijgewerkt.
-- Voorbeeld van tabel "users" (ouder)
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL
);
-- Voorbeeld van tabel "orders" (kind) met buitenlandse sleutel
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 /* Voorbeeld van beperking */
ON UPDATE CASCADE /* Voorbeeld van beperking */
);