Nøkkel (database)
Kildeløs: Denne artikkelen mangler kildehenvisninger, og opplysningene i den kan dermed være vanskelige å verifisere. Kildeløst materiale kan bli fjernet. Helt uten kilder. (10. okt. 2015) |
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
[rediger | rediger kilde]Utdypende artikkel: 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
[rediger | rediger kilde]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
[rediger | rediger kilde]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
[rediger | rediger kilde]Et nøkkelattributt er et attributt som er med i (minst) én kandidatnøkkel.
Fremmednøkkel
[rediger | rediger kilde]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.