Lär dig vad som menas med en primärnyckel inom datahantering. Techopedia förklarar allt från grunden och ger dig tydliga exempel.
Vad är en primärnyckel?
En primärnyckel är en speciell tabellkolumn (eller kombination av kolumner) i en relationsdatabas som är avsedd att unikt identifiera varje tabellpost.
En primärnyckel används som en unik identifierare för att snabbt analysera data i tabellen. En tabell kan inte ha mer än en primärnyckel.
En primärnyckels viktigaste egenskaper är följande:
- Den måste innehålla ett unikt värde för varje datarad.
- Den kan inte innehålla nollvärden.
- Varje rad måste ha ett primärnyckelvärde.
En primärnyckel kan använda ett eller flera fält som redan finns i den underliggande datamodellen, eller så kan ett specifikt extrafält skapas för att vara primärnyckel.
Techopedia förklarar primärnyckel
Primärnyckelkonceptet är avgörande för en effektiv relationsdatabas. Utan primärnyckeln och de närbesläktade begreppen för främmande nycklar skulle relationsdatabaser inte fungera.
Eftersom en tabell lätt kan innehålla tusentals poster (inklusive dubbletter) är en primärnyckel nödvändig för att säkerställa att en tabellpost alltid kan identifieras på ett unikt sätt.
Alla nycklar som kommer från verkliga observationer och attribut kallas naturliga primärnycklar, i motsats till surrogatprimärnycklar som istället tilldelas godtyckligt till varje post.
Nästan alla individer hanterar naturliga primärnycklar ofta men omedvetet i vardagen.
Till exempel tilldelas studenter rutinmässigt unika identifikationsnummer (ID-nummer), och alla amerikanska medborgare har statligt tilldelade och unikt identifierbara socialförsäkringsnummer. Gatuadresser eller körkortsnummer är exempel på primärnycklar som används för att unikt identifiera (respektive) platser eller bilar.
Ett annat exempel är en databas som måste innehålla alla data som lagras av en affärsbank. Två av databastabellerna är CUSTOMER_MASTER, som lagrar grundläggande och statiska kunddata (namn, födelsedatum, adress, personnummer, m.m.) och ACCOUNTS_MASTER, som lagrar olika bankkontodata (datum då kontot skapades, kontotyp, uttagsgränser eller motsvarande kontoinformation, m.m.).
För att unikt identifiera kunder väljs en kolumn eller en kombination av kolumner för att garantera att två kunder aldrig har samma unika värde. Vissa kolumner elimineras därför omedelbart, till exempel efternamn och födelsedatum.
En bra primärnyckelkandidat är den kolumn som är avsedd för personnummer. Vissa kontoinnehavare kanske dock inte har personnummer, så denna kolumn är inte aktuell.
Nästa logiska alternativ är att använda en kombination av kolumner, till exempel att lägga till efternamnet till födelsedatumet till e-postadressen, vilket resulterar i en lång och besvärlig primärnyckel.
Det bästa alternativet är att skapa en separat primärnyckel i en ny kolumn med namnet CUSTOMER_ID. Då genererar databasen automatiskt ett unikt nummer varje gång en kund läggs till, vilket garanterar en unik identifiering.
När denna nyckel skapas anges kolumnen som primärnyckel i det SQL-skript som skapar tabellen, och alla null-värden avvisas automatiskt.
Kontonumret som är kopplat till varje CUSTOMER_ID möjliggör säker hantering av kundfrågor och snabba söktider (som med alla indexerade tabeller.)
En kund kan exempelvis bli ombedd att ange sitt efternamn vid en bankförfrågan. En fråga om ett vanligt efternamn (t.ex. Smith) kommer sannolikt att ge flera resultat.
Om du använder funktionen för unikhet för primärnyckeln garanteras ett resultat vid sökning av data.