Databasnyckel

Från Wikipedia
(Omdirigerad från Primärnyckel)
Hoppa till: navigering, sök

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.