Nøkkel (database)

En nøkkel i en database er attributter/data som kan peke til eller fastsette andre data. Nøkkelbegrepet brukes i hovedsak i sammenheng med relasjonsdatabaser. I tillegg til at nøkler tjener som referanser, er de viktige integritetsregler, dvs. regler som begrenser hvilke tilstander som er lovlige i databasen (se: entitetsintegritet, domeneintegritet og referanseintegritet). Nøklene stiller krav til verdiene i databasen, som databasehåndteringssystemet må kontrollere at er oppfylt ved hver endring.

 Supernøkkel 

En supernøkkel er en eller flere data som entydig definerer en rad (eller et tuppel) i en tabell. Det innebærer at to ulike objekter ikke kan ha like verdier i en supernøkkel.

 Kandidatnøkkel 

En kandidatnøkkel er en minimal supernøkkel. Det vil si at hvis man fjerner noen attributter fra nøkkelen, er den ikke lenger en supernøkkel. Kandidatnøkler er sikre identifikatorer for en rad, og kan brukes som primærnøkler og som referanser for fremmednøkler.

 Primærnøkkel 

En primærnøkkel er en spesielt utvalgt kandidatnøkkel. Alle relasjoner i en database skal ha en og bare en primærnøkkel. Primærnøkkelen er den foretrukne metoden for å identifisere en rad i en tabell i en relasjonsdatabase.

For eksempel kan man ha en oversikt/tabell over bøker med en kolonne for ISBN. Alle bøker har ett ISBN, og ingen bøker har samme ISBN. Dette er en kandidatnøkkel, og vil være en god primærnøkkel siden ISBN er et svært stabilt attributt.

En surrogatnøkkel er en primærnøkkel som ikke har noen "naturlig" funksjon utover å fungere som primærnøkkel for tabellen. For eksempel dersom man i en tabell med en liste over brukerne av en nettside velger å benytte en systemgenerert (generert hver gang en ny bruker registrerer seg) id som primærnøkkel for å identifisere hver unike bruker. I motsetning ville det å deklarere brukerens unike brukernavn som primærnøkkelen ikke vært en surrogatnøkkel. 

I objektdatabaser har hvert objekt en unik ID som er generert av systemet og som ikke er synlig for brukere av systemet. Denne erstatter primærnøkkelen.

 Nøkkelattributt 
Et nøkkelattributt er et attributt som er med i (minst) én kandidatnøkkel.

 Fremmednøkkel 

En fremmednøkkel er en henvisning til andre data i en database. I en relasjonsdatabase peker fremmednøkkelen til en kandidatnøkkel. Vanligvis vil dette være en primærnøkkel i en annen tabell, men det er også tillatt at fremmednøkler peker til oppføringer i samme tabell som de forekommer i.

Et eksempel på bruk av fremmednøkkel er at man har to tabeller, hvor den ene inneholder informasjon om ulike forfattere og den andre er en liste over bøker. I boktabellen er det et felt som henviser til forfattertabellen. Dette er en fremmednøkkel. Det er en én-til-mange-relasjon mellom tabellene: Hver bok har bare én forfatter, men en forfatter kan ha skrevet flere bøker.

 Andre typer nøkler 
 Naturlig nøkkel

Kategori:Databaser