Inhoudsopgave:
- Definitie - Wat betekent Referential Integrity (RI)?
- Techopedia verklaart Referential Integrity (RI)
Definitie - Wat betekent Referential Integrity (RI)?
Referentiële integriteit (RI) is een relationeel databaseconcept, dat stelt dat tabelrelaties altijd consistent moeten zijn. Met andere woorden, elk veld met een externe sleutel moet overeenkomen met de primaire sleutel waarnaar wordt verwezen door de externe sleutel. Alle wijzigingen in het primaire sleutelveld moeten dus worden toegepast op alle buitenlandse sleutels, of helemaal niet. Dezelfde beperking is ook van toepassing op buitenlandse sleutels, omdat updates (maar niet noodzakelijkerwijs verwijderingen) moeten worden doorgegeven aan de primaire bovenliggende sleutel.
Techopedia verklaart Referential Integrity (RI)
Overweeg een bankdatabase, die twee tabellen bevat:
- CUSTOMER_MASTER-tabel: deze bevat basisgegevens van de klant / rekeninghouder zoals naam, sofinummer, adres en geboortedatum.
- ACCOUNTS_MASTER-tabel: hier worden basisbankgegevens opgeslagen, zoals het type account, de datum waarop de account is aangemaakt, de rekeninghouder en de opnamelimieten.
Om elke klant / rekeninghouder in de CUSTOMER_MASTER-tabel uniek te identificeren, wordt een primaire sleutelkolom met de naam CUSTOMER_ID gemaakt.
Om een klant- en bankrekeningrelatie in de tabel ACCOUNTS_MASTER te identificeren, moet naar een bestaande klant in de tabel CUSTOMER_MASTER worden verwezen. De kolom CUSTOMER_ID - ook gemaakt in de tabel ACCOUNTS_MASTER - is dus een externe sleutel. Deze kolom is speciaal omdat de waarden niet nieuw zijn gemaakt. In plaats daarvan moeten deze waarden verwijzen naar bestaande en identieke waarden in de primaire sleutelkolom van een andere tabel, de kolom CUSTOMER_ID van de tabel CUSTOMER_MASTER.
Referentiële integriteit is een standaard die betekent dat elke CUSTOMER_ID-waarde in de tabel CUSTOMER_MASTER niet mag worden bewerkt zonder de overeenkomstige waarde in de tabel ACCOUNTS_MASTER te bewerken. Als bijvoorbeeld het klant-ID van Andrew Smith wordt gewijzigd in de tabel CUSTOMER_MASTER, moet deze wijziging ook worden toegepast op de tabel ACCOUNTS_MASTER, waardoor de accountinformatie van Andrew Smith kan worden gekoppeld aan zijn klant-ID.
