Primärnyckel

Varför oss?

Vad betyder 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, etc.) och ACCOUNTS_MASTER, som lagrar olika bankkontodata (datum då kontot skapades, kontotyp, uttagsgränser eller motsvarande kontoinformation, etc.).

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, t.ex. 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 t.ex. 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.

Relaterade termer

Margaret Rouse
Teknikexpert

Margaret Rouse är en prisbelönt teknisk skribent och lärare som är känd för sin förmåga att förklara komplexa tekniska ämnen för en icke-teknisk affärspublik. Under de senaste tjugo åren har hennes förklaringar publicerats på TechTargets webbplatser och hon har citerats som en auktoritet i artiklar av New York Times, Time Magazine, USA Today, ZDNet, PC Magazine och Discovery Magazine.Margarets idé om en rolig dag är att hjälpa IT- och affärsproffs att lära sig tala varandras högt specialiserade språk. Om du har ett förslag på en ny definition eller hur man kan förbättra en teknisk förklaring, vänligen maila Margaret eller kontakta…