Hvad er en surrogatnøgle?
En surrogatnøgle er en unik identifikator, der bruges til at repræsentere en enhed i en database, uanset dens eksterne identifikationsattributter. Det er en erstatning for den naturlige nøgle. De genereres for det meste som et automatisk inkrementerende serienummer i rækken, men kan også genereres ved hjælp af tilfældige tal, hash-værdier eller UUID'er (universelt unikke identifikatorer).
Fordele ved surrogatnøgle
* Forenkler databasedesignet ved at reducere kompleksiteten og redundansen forbundet med at bruge naturlige nøgler
*Sikrer enestående og integritet af den primære nøgle
*Undgår den potentielle effekt af at bruge store eller sammensatte naturlige nøgler i forespørgsler og joinforbindelser.
Ulempe ved surrogatnøgle
* Introducerer et ekstra abstraktionsniveau mellem den virkelige verden og dens repræsentation i databasen
*Kræv ordentlig ledelse for at sikre, at de genereres og tildeles entydigt og konsekvent.
Hvornår skal man bruge en surrogatnøgle?
Surrogatnøgler bruges typisk:
* Når enhedens naturlige nøgle ikke garanteres at være unik (såsom et kundenavn).
* Når enhedens naturlige nøgle er kompleks (såsom en kombination af flere attributter)
* Når der er behov for at adskille den primære nøgle fra den forretningslogik, der er relateret til enheden
* Når den naturlige nøgle kan være genstand for ændringer over tid, er fremstilling uegnet som en stabil, langsigtet identifikator.