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.