Databaser bruger tabeller til at organisere de oplysninger, de indeholder. De ligner regneark, f.eks. Excel, men langt mere i stand til avancerede brugere. Databaser fungerer ved hjælp af primærnøgler og fremmednøgler, der opretholder forholdet mellem tabellerne.
Referential integritet er en database funktion i relationelle database management systemer. Det sikrer, at relationerne mellem tabeller i en database forbliver nøjagtige ved at anvende begrænsninger for at forhindre brugere eller applikationer i at indtaste unøjagtige data eller pege på data, der ikke findes.
Primærnøgle
Den primære nøgle i en database tabel er en unik identifikator tildelt til hver post. Hver tabel har en eller flere kolonner udpeget som primærnøgle. Et socialt sikkerhedsnummer kan være en primær nøgle til en databaseoversigt over medarbejdere, fordi hvert socialt sikkerhedsnummer er unikt.
På grund af privatlivets bekymringer er et tildelt firma-id-nummer imidlertid et bedre valg at fungere som en primærnøgle for medarbejderne. Nogle databaseprogrammer, som f.eks. Microsoft Access, tildeler primærnøglen automatisk, men den tilfældige nøgle har ingen reel betydning. Det er bedre at bruge en nøgle med betydning for posten.
Den enkleste måde at håndhæve referentiel integritet på er ikke at tillade ændringer af en primærnøgle.
Fremmed nøgle
En fremmed nøgle er en identifikator i et bord, der matcher den primære nøgle i en anden tabel. Den fremmede nøgle skaber forholdet til et andet bord. Referenceintegritet refererer til forholdet mellem disse tabeller.
Når et bord har en fremmed nøgle til en anden tabel, angiver begrebet referential integritet, at du muligvis ikke tilføjer en post til tabellen, der indeholder den fremmede nøgle, medmindre der er en tilsvarende post i det linkede tabel. Den indeholder også teknikker, der er kendt som cascading opdatering og cascading sletning, hvilket sikrer, at ændringer, der foretages til det linkede bord, afspejles i den primære tabel.
Eksempel på referenceintegritetsregler
Overvej f.eks. Situationen, hvor du har to tabeller: Medarbejdere og ledere. Medarbejdertabellen har en udenlandsk nøgleattribut, der hedder ManagedBy, som peger på posten for hver medarbejders leder i Managers tabellen. Referential integritet håndhæver følgende tre regler:
- Du kan ikke tilføje en post til medarbejdertabellen, medmindre attributten ManagedBy peger på en gyldig post i tabellen Ledere. Referential integritet forhindrer indsættelse af ukorrekte detaljer i en tabel. Enhver operation, der ikke opfylder referential integritetsreglen, fejler.
- Hvis den primære nøgle til en post i administrationsbordet ændres, ændres alle tilsvarende poster i medarbejderbordet ved hjælp af en cascading opdatering.
- Hvis en post i administrationsbordet slettes, slettes alle tilsvarende poster i medarbejderbordet ved hjælp af en cascading-sletning.
Fordele ved referensintegritetsbegrænsninger
Brug af et relationsdatabasestyringssystem med referentiel integritet giver flere fordele:
- Forhindrer indtastning af duplikatdata
- Forhindrer en tabel i at pege på et ikke-eksisterende felt i en anden tabel
- Garanterer sammenhæng mellem "partnered" tabeller
- Forhindrer sletning af en post, der indeholder en værdi, der henvises til af en fremmed nøgle i en anden tabel
- Forhindrer tilføjelse af en post til en tabel, der indeholder en fremmednøgle, medmindre der er en primærnøgle i det linkede bord