Belangrijk: Dit artikel is automatisch vertaald, bekijk de disclaimer. De Engelse versie van dit artikel vindt u hier voor referentiedoeleinden.
Wat wilt u doen?
Uitleg bij regels voor referentiële integriteit
Met regels voor referentiële integriteit wordt voorkomen dat databasegebruikers per ongeluk de toewijzing tussen verwante kolommen verbreken.
Stel bijvoorbeeld dat u een database hebt met de naam Boeken, met twee tabellen, Uitgaven en Auteurs. In dit voorbeeld heeft elke uitgave slechts één auteur, maar kan elke auteur meerdere uitgaven hebben, zodat een een-op-veel relatie ontstaat. De tabel aan de 'één'-zijde van de relatie wordt de bovenliggende tabel genoemd. De tabel aan de 'veel'-zijde is de onderliggende tabel.
Als een gebruiker meer informatie wil opvragen over een boek en de auteur, gebruikt deze een query waarin sleutels worden gebruikt om elk boek in de tabel Uitgaven te koppelen aan de bijbehorende auteur in de tabel Auteurs. De bovenliggende tabel (Auteurs) moet een primaire sleutel hebben die de unieke id vormt voor elke rij. De tabel Uitgaven moet een kolom hebben met de Auteur-id voor elke uitgave. Deze kolom wordt de externe sleutel genoemd. De primaire sleutel duidt elke auteur aan en de externe sleutel geeft aan welke boeken door welke auteur zijn geschreven.
Als een gebruiker de Auteur-id wijzigt in de bovenliggende tabel, en de Auteur-id niet bijwerkt in de tabel Uitgaven, beschikken de boeken in de tabel Uitgaven niet langer over een geldige auteur.
In plaats van de Auteur-id te moeten wijzigen in beide tabellen, kunt u regels voor referentiële integriteit instellen, die de gewenste actie voor u ondernemen. U kunt er bijvoorbeeld voor kiezen om bepaalde acties te laten uitvoeren door het databasemodel als een sleutel wordt gewijzigd in of verwijderd uit de bovenliggende tabel.
Opmerking: De termen bovenliggende en onderliggende worden gebruikt voor iets heel anders in categorieën die zijn gemaakt met de shapes bovenliggend item naar categorie, Categoryen categorie kind betekenen. Zie voor meer informatie over categorieën definiëren categorieën in een databasemodeldiagram.
Acties instellen voor referentiële integriteit
-
Dubbelklik op de relatie waarvoor u een referentiële actie wilt instellen.
-
Klik in het venster Database-eigenschappen, onder Categorieën, op Referentiële actie.
-
Klik op de actie die u in de database wilt laten ondernemen met betrekking tot de overeenkomende waarde in de onderliggende tabel. U kunt kiezen uit de volgende acties:
-
Geen actie Als een waarde in de primaire sleutel van een bovenliggende tabel wordt gewijzigd of verwijderd, wordt de overeenkomende waarde in de externe sleutel van de onderliggende tabel niet gewijzigd.
-
Trapsgewijs Als een waarde in de primaire sleutel van een bovenliggende tabel wordt gewijzigd of verwijderd, wordt de overeenkomende waarde in de externe sleutel van de onderliggende tabel gewijzigd of verwijderd, zodat deze met de primaire sleutel overeenkomt.
-
NULL instellen Als een waarde in de primaire sleutel van een bovenliggende tabel wordt gewijzigd of verwijderd, wordt de overeenkomende waarde in de externe sleutel van de onderliggende tabel ingesteld op NULL.
-
Standaardwaarden instellen Als een waarde in de primaire sleutel van een bovenliggende tabel wordt gewijzigd of verwijderd, wordt de overeenkomende waarde in de externe sleutel van de onderliggende tabel ingesteld op een standaardwaarde die u hebt gekozen.
-
Niet afdwingen Met deze actie worden de regels voor referentiële integriteit voor deze relatie uitgeschakeld.
-
Opmerking: Als de opties NULL instellen en Standaardwaarden instellen worden uitgeschakeld, wordt de relatie waarschijnlijk ingesteld op Optioneel op het tabblad Diversen van het venster Database-eigenschappen voor de relatie.
Een standaardwaarde instellen voor een kolom
Als u de actie Standaardwaarden instellen wilt gebruiken, moet u een standaardwaarde voor de kolom opgeven.
-
Dubbelklik op de tabel in het diagram om het venster Database-eigenschappen te openen.
-
Klik onder Categorieën op Kolommen, klik op de kolom waarvoor u een standaardwaarde wilt instellen en klik op Bewerken.
-
Voer op het tabblad Definitie van het dialoogvenster Kolomeigenschappen de waarde in die u als standaardwaarde wilt instellen.
Referentiële integriteit weergeven met behulp van een notatie
U kunt documentopties instellen om de referentiële-integriteitsnotatie naast de relatielijnen in het model weer te geven of te verbergen.
Wat betekenen de letters in de notatie van referentiële integriteit?
In de referentiële-integriteitsnotatie worden relaties aangeduid met twee letters die door middel van een dubbele punt van elkaar worden gescheiden, in de vorm [actie die is ondernomen in de bovenliggende tabel]:[resultaat in de onderliggende tabel]. Het voorbeeld d:C betekent dat wanneer er iets wordt verwijderd uit de bovenliggende tabel ('delete'), de wijziging trapsgewijs ('Cascade') wordt toegepast op de onderliggende tabel.
Acties in de bovenliggende tabel worden aangeduid met een kleine letter:
-
u Gegevens in de bovenliggende tabel worden bijgewerkt.
-
d gegevens in de bovenliggende tabel is verwijderd.
De resulterende actie in de onderliggende tabel wordt met een hoofdletter aangeduid:
-
R Geen actie De onderliggende tabel niet wijzigen.
-
C Trapsgewijs De wijziging repliceren in de onderliggende tabel.
-
D Standaardwaarden instellen De standaardwaarde invoegen die u eerder hebt ingesteld voor de betreffende kolom in de onderliggende tabel.
-
N Null instellen De onderliggende tabel instellen op NULL.
-
(Leeg) De referentiële integriteit niet afdwingen voor deze relatie.
Opmerking: Deze instellingen zijn niet zozeer van invloed op een model als op wat er daadwerkelijk gebeurt in een database. Als u reverse-engineering toepast op een bestaande database om een model te verkrijgen, krijgt u inzicht in het ontwerp van de database voor wat betreft referentiële integriteit. In een model dat u geheel vanaf het begin opbouwt, kunt u deze instellingen gebruiken om het gedrag te documenteren voor de database die u modelleert.
Referentiële integriteit weergeven
-
Wijs Opties aan in het menu Database en klik op Document.
-
Schakel het selectievakje Referentiële integriteit in onder Weergeven op het tabblad Relaties.