Vad är en primärnyckel?

En primärnyckel är en post i en databas som är unik för en enda post. Denna nyckel härleds vanligtvis på ett av två sätt: en unik identifieringskod utanför databasen eller ett genererat nummer från databasen. När databasen kommer att innehålla information som alltid är unik för posten, såsom ett personnummer eller delidentifikationsnummer, används dessa vanligtvis som en primärnyckel. När data inte kommer att ha en sådan identifierare, kommer databasen ofta att skapa nummer baserat på dess interna system för att ge varje post en unik kod.

Det finns tre huvudbegränsningar för en primärnyckel: existens, unikhet och oföränderlighet. En nyckel måste finnas när posten skapas – den kan inte läggas till senare. Varje nyckel måste vara helt olik alla andra tangenter. Det betyder att vanliga identifierare, som namn eller födelsedatum, inte kan användas eftersom det är möjligt att två personer är födda på samma dag med samma namn. Slutligen kan en primärnyckel aldrig ändras när den väl har skapats.

Eftersom en databas potentiellt kan ha ett oändligt antal poster måste en primärnyckel också vara oändlig. För att säkerställa att en databas aldrig tar slut på nycklar använder de flesta poster en numerisk kod för nyckeln. Eftersom siffror alltid kan bli större och datorer helt enkelt kan lägga till platshållande nollor till äldre poster, kommer ett system aldrig att få slut på nycklar. Ibland är dessa siffror baserade på icke-unik information, men en unik identifierare läggs till för att säkerställa att nyckeln är genomförbar.

Databaser kommer att använda en primärnyckel som ett sätt att organisera data. Eftersom nyckeln aldrig upprepas, kommer den informationen att tillåta databasen att hålla varje post åtskild från alla andra. Varje del av informationen i en post kopplas tillbaka till nyckeln; på det sättet, oavsett vad som händer med systemet, kan databasen bygga om posterna från lös information.

Att tilldela en meningsfull primärnyckel ses ofta som en bättre metod än att automatiskt generera ett värde. Detta kommer att ge posten en identifierare som både fungerar som en nyckel och tillhandahåller data. I små databaser är denna distinktion sällan nödvändig, men i stora system kan det extra utrymmet som används av en genererad nyckel resultera i allvarlig databasuppsvällning. Detta kommer både att sakta ner systemet och göra att databasen kräver betydligt mer lagringsutrymme.