Referanseintegritet

Fra Wikipedia, den frie encyklopedi
Et eksempel på en database hvor referanseintegritet ikke har blitt håndhevet. I dette eksemplet er det en fremmednøkkel-verdi (artist_id) i albumtabellen som refererer til en ikke-eksisterende artist. Med andre ord er det en fremmednøkkel-verdi uten tilsvarende primærnøkkel-verdi i den refererte tabellen. I dette tilfellet var det som skjedde at en artisten Aerosmith med artist_id lik 4 ble slettet fra artisttabellen, men albumet Eat the Rich refererte til denne artisten. Dersom referanseintegritet hadde blitt håndhevet ville dette ikke vært mulig.

Referanseintegritet er en egenskap av data som sier at alle referanser er gyldige. I forbindelse med relasjonsdatabaser kreves det at dersom en verdi av en attributt (kolonne) av en relasjon (tabell) refererer til en verdi av en annet attributt (enten i samme eller en annen relasjon), så må også den refererte verdien eksistere.[1]

For at referanseintegritet skal holde i en relasjonsdatabase kan hver kolonne i en tabell det er erklært en fremmednøkkel bare inneholde nullverdier eller verdier fra en foreldretabell sin primærnøkkel eller en kandidatnøkkel.[2] Når en fremmednøkkelverdi brukes må den med andre ord referere til en gyldig, eksisterende primærnøkkel i en foreldretabell. Dersom man for eksempel sletter en oppføring som inneholder en verdi som er referert til av en fremmednøkkel i en annen tabell vil dette bryte referanseintegriteten. Noen databasehåndteringssystemer for relasjonsdatabaser (RDBMS) kan håndheve referanseintegritet, vanligvis enten ved å også slette sekundærnøkkel-rader for å opprettholde integritet, eller ved å returnere en feilmelding og ikke utføre slettingen. Hvilken metode som brukes kan bestemmes av en referanseintegritetsbegrensning definert i en dataordbok.

Adjektivet "referanse" beskriver handlingen som en fremmednøkkel utfører ved å henvise til en lenket kolonne i en annen tabell. Enkelt sagt garanterer referanseintegritet at målet som det refereres til vil bli funnet. Mangel på referanseintegritet i en database kan føre til at relasjonsdatabaser returnerer ufullstendige data, vanligvis uten indikasjon på feil.

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]

  1. ^ Chapple, Mike. «Referential Integrity». About.com. Arkivert fra originalen 25. september 2004. Besøkt 20. mars 2011. 
  2. ^ Coronel et al. (2013). Database Systems 10th ed. Cengage Learning, ISBN 978-1-111-96960-8