Innholdsfortegnelse:
Definisjon - Hva betyr kandidatnøkkel?
En kandidatnøkkel er en kolonne, eller sett med kolonner, i en tabell som kan identifisere hvilken som helst databasepost uten å henvise til andre data. Hver tabell kan ha en eller flere kandidatnøkler, men en kandidatnøkkel er unik, og den kalles primærnøkkelen. Dette er vanligvis det beste blant kandidatnøklene du kan bruke til identifikasjon.
Når en nøkkel er sammensatt av mer enn en kolonne, er den kjent som en sammensatt nøkkel.
Techopedia forklarer kandidatnøkkel
Den beste måten å definere kandidatnøkler er med et eksempel: En banks database blir designet. For å definere hver kundes konto unikt, kan du bruke en kombinasjon av kundens fødselsdato og et sekvensnummer for hver av hans eller hennes kontoer. Så Andrew Smiths brukskonto kan nummereres 120344-1, og sparekontoen hans 120344-2. En kandidatnøkkel er nettopp opprettet.
Dette kan gi problemer. Hva om mer enn en person med samme fødselsdato ønsker å åpne en konto i banken?
På grunn av slike potensielle fallgruver, er et ofte brukt alternativ å lage en unik kandidatnøkkel. I dette tilfellet kan bankens database gi unike kontonumre som garantert forhindrer problemet akkurat fremhevet. For godt mål kan disse kontonumrene ha en viss innebygd logikk. For eksempel kan kontroll av kontoer begynne med et "C", etterfulgt av året og måneden for opprettelsen, og innen den måneden, et sekvensielt nummer. Så Andrew Smiths brukskonto kan nå være C-200805-22. Selv uten å henvise andre steder, kan en teller identifisere at dette var den 22. brukskontoen som ble opprettet i mai 2008. Sparekontoer følger den samme logikken, men med en "S" i stedet for "C."
Merk at det er mulig å identifisere hver konto ved bruk av de nevnte fødselsdatoene og et sekvensielt nummer, så dette er en kandidatnøkkel som potensielt kan brukes til å identifisere poster. Imidlertid er det blitt demonstrert en mye bedre måte å gjøre det samme på: å lage en kandidatnøkkel. Hvis den valgte kandidatnøkkelen faktisk er så god at den absolutt kan identifisere hver eneste post, bør den brukes som den primære nøkkelen. Alle databaser tillater definisjon av en, og bare en, primærnøkkel per tabell.
