Hva er en surrogatnøkkel?
En surrogatnøkkel er en unik identifikator som brukes til å representere en enhet i en database, uavhengig av dens eksterne identifikasjonsattributter. Det er en erstatning for den naturlige nøkkelen. De genereres for det meste som et automatisk økende serienummer i raden, men kan også genereres ved hjelp av tilfeldige tall, hash-verdier eller UUID-er (universelt unike identifikatorer).
Fordeler med surrogatnøkkel
* Forenkler databasedesignet ved å redusere kompleksiteten og redundansen forbundet med bruk av naturlige nøkler
* Sikrer unikhet og integritet til primærnøkkelen
*Unngår den potensielle ytelseseffekten av å bruke store eller sammensatte naturlige nøkler i spørringer og sammenføyninger.
Ulemper med surrogatnøkkel
* Introduserer et ekstra nivå av abstraksjon mellom den virkelige entiteten og dens representasjon i databasen
*Krev riktig ledelse for å sikre at de genereres og tildeles unikt og konsekvent.
Når skal jeg bruke en surrogatnøkkel?
Surrogatnøkkel brukes vanligvis:
* Når enhetens naturlige nøkkel ikke er garantert unik (for eksempel et kundenavn).
* Når enhetens naturlige nøkkel er kompleks (for eksempel en kombinasjon av flere attributter)
* Når det er behov for å skille primærnøkkelen fra forretningslogikken knyttet til enheten
* Når den naturlige nøkkelen kan endres over tid, er fremstilling uegnet som en stabil, langsiktig identifikator.