Hoppa till innehållet

Databasnyckel

Från Wikipedia
(Omdirigerad från Primärnyckel)

Nyckel är en identitet till relationsdatabaser som används för att komma åt rätt tupel.

Primär nyckel

[redigera | redigera wikitext]

En primär nyckel är den minsta uppsättning kolumner i databasen som man behöver veta värdet på för att hitta en unik tupel i en tabell. När man skapar en tabell deklarerar man vilka kolumner som ska ingå i nyckeln. Databasen kommer sedan att bygga upp ett index över alla värden som stoppas in i tabellen. En primärnyckel kan inte tillåtas att vara tom (null) och måste alltid ha ett unikt index. En primärnyckel kan användas för att relatera en tabell till relationsnycklar (främmande nycklar, se nedan) i andra tabeller inom en relationsdatabas.

Sekundära nycklar

[redigera | redigera wikitext]

I en relationstabell kan det naturligtvis finnas flera uppsättningar kolumner som innehåller tillräckligt med information för att identifiera och hitta en unik tupel. Man kan instruera databasen att bygga index för dessa kolumner också. De brukar då kallas sekundära nycklar. De kan vara effektivt om man vet att många sökningar i databasen kommer att göras utan att ta med alla kolumner i primärnyckeln.

Till skillnad från primära nycklar så behöver de inte anges när tabellen skapas, utan kan läggas till i efterhand. Det finns inte heller något SQL-kommando för att definiera ett index som en sekundär nyckel, utan sekundärnycklar är mer ett koncept.

Det går också att skapa index över kolumner som inte innehåller tillräckligt med information för att hitta en unik tupel. Dylika index är dock inte nycklar, men de kan vara effektiva för att snabba upp sökningar som matchar flera tupler.

Främmande nycklar

[redigera | redigera wikitext]

En främmande nyckel är värdet på en primärnyckel i en annan tabell. Om en kolumn deklareras som en främmande nyckel så implicerar det ett beroende mellan de två tabellerna. Det kan till exempel vara olämpligt att ta bort en tupel ur en tabell så länge den pekas ut av en främmande nyckel i en annan tabell.

Personnummer

[redigera | redigera wikitext]

I databaser som behandlar personer behövs en databasnyckel för att undvika blanda ihop personer. Man använder gärna personnummer i Sverige bland annat hos myndigheter och banker. Om personnummer inte får användas, till exempel för kundregister, så måste man ha någon annan databasnyckel, och man använder vanligen kundnummer. Den har nackdelen att kunder ofta inte kan numret så att det blir svårare att hålla koll på återkommande kunder. Många kunder vill dock inte att företagen har koll på dem. Utomlands är det ofta hårdare restriktioner mot användande av personnummer än i Sverige.

Införandet av Dataskyddsförordningen[1] i maj 2018 innebär att regelmässigt användande av personnummer som databasnyckel i princip inte längre är tillåtet.