Naturlig nøkkel

En **naturlig nøkkel**, også kjent som **forretningsnøkkel** eller **domenenøkkel**, er type unik nøkkel i en database dannet av attributter som eksisterer og brukes i den ytre verden utenfor databasen (med andre ord forretnings-domenet eller diskursuniverset). I en relasjonsmodell er en naturlig nøkkel en supernøkkel, og er derfor en funksjonell avhengighet for alle attributter i en relasjon. 

En naturlig nøkkel tjener to komplementære formål:
* Den gir et middel for unik identifikasjon av data
* Den pålegger en regel, spesielt en unikhetsbegrensning, for å sikre at data forblir unike i et informasjonssystem

Unikhetsbegrensningen sikrer unikhet av data innenfor en bestemt teknisk kontekst (for eksempel en mengde av verdier i en tabell, fil eller relasjonsvariabel) ved å avvise inndata av data som ellers ville vært i strid med begrensningen. Dette betyr at brukeren kan stole på en garantert korrespondanse mellom fakta identifisert av nøkkelverdier registrert i et system og det eksterne diskursdomenet (én enkelt versjon av sannheten i henhold til Kimball).

En naturlig nøkkel skiller seg fra en surrogatnøkkel som ikke har noen betydning utenfor selve databasen og ikke er basert på observasjoner fra den virkelige verden eller er ment som en uttalelse om virkeligheten som modelleres. En naturlig nøkkel gir derfor en viss datakvalitetsgaranti, mens en surrogat ikke gjør det. Det er vanlig at dataelementer har flere nøkler, hvorav et hvilket som helst antall kan være naturlige eller surrogater.

## Fordeler
Fordelene ved å bruke en naturlig nøkkel for å identifisere oppføringer i en relasjon inkluderer mindre lagringsbehov. Ettersom den naturlige nøkkelen er en attributt som er relatert til forretningen eller den virkelige verden lagres den i de fleste tilfeller allerede i relasjonen, hvilket sparer lagringsplass sammenlignet med om man skulle opprettet en ny kolonne for lagring av av en surrogatnøkkel.

En annen fordel med å bruke naturlige nøkler er at det forenkler håndhevelse av datakvaliteten, og de er lettere å relatere til virkeligheten når man designer databasesystemet. De forenkler datakvaliteten ettersom bruk av en naturlig nøkkel som er unik i den virkelige verden sikrer at det ikke kan være flere oppførnger med samme primærnøkkel. Å sammenligne databasemodellen med et virkelig scenario er en viktig del av utformingen av en databasemodell, og når en naturlig nøkkel brukes i tabellene i databasen vil det være enklere for databaseteknikeren å konstruere databasesystemet.

## Ulemper
Bruk av naturlige nøkler som unike identifikatorer i en tabell har én hovedulempe, hvilket er dersom det skjer endringer i forretningsregler eller endringer i regler for en attributt i den virkelige verden. Definisjonen av strukturen til den naturlige nøkkel-attributten kan bli endret i fremtiden.

For eksempel hvis man har en tabell som lagrer informasjonen om norske borgere basert på personnummer som den naturlige nøkkelen kan dette utgjøre et problem i fremtiden dersom myndighetene av en eller annen grunn endrer strukturen til personnummeret, for eksempel ved å øke antallet sifre i personnummeret. I så fall må en databaseadministrator endre modellen i tabellen, og kanskje også oppdatere oppføringene i tabellen. I andre tilfeller kan dette hindre forbedring av systemet på grunn av den omfattende innsatsen som vil kreves for å gjennomføre endringen, som for eksempel med kunnskapsstyringssystemet Confluence sin manglende funksjonalitet for å representere flere sider med samme tittel.

## Referanser