Databaser er avhengige av nøkler for å lagre, sortere og sammenligne eller opprette relasjoner mellom poster. Hvis du har vært rundt i databaser en stund, har du sannsynligvis hørt om forskjellige typer nøkler: primærnøkler, kandidatnøkler og fremmednøkler.
Når du oppretter en ny databasetabell, blir du bedt om å velge én primærnøkkel som unikt vil identifisere hver post som er lagret i den tabellen.
Hvorfor en primærnøkkel er viktig
Valget av en primærnøkkel er en av de mest kritiske avgjørelsene du vil ta i utformingen av en ny database. Den viktigste begrensningen er at du må sørge for at den valgte nøkkelen er unik. Hvis det er mulig at to poster (fortid, nåtid eller fremtid) deler samme verdi for et attributt, er det et dårlig valg for en primærnøkkel.
Et annet viktig aspekt ved en primærnøkkel er bruken av den av andre tabeller som lenker til den i en relasjonsdatabase. I dette aspektet fungerer en primærnøkkel som målet for en peker. På grunn av disse gjensidige avhengighetene må en primærnøkkel eksistere når en post opprettes, og den kan aldri endres.
Dårlige valg for primærnøkler
Det noen kanskje anser som et åpenbart valg for en primærnøkkel, kan være et dårlig valg i stedet. Her er noen eksempler:
- Postkoder er ikke gode primærnøkler for en tabell med byer. Hvis du lager en enkel oppslagstabell over byer, ser postnummer ut til å være en logisk primærnøkkel. Men etter nærmere undersøkelser vil du kanskje innse at mer enn én by deler et postnummer. For eksempel deler New Jersey-byene Neptune, Neptune City, Tinton Falls og Wall Township alle postnummeret 07753.
- personnummer er ikke gode primærnøkler av mange grunner. De fleste anser sitt SSN som privat og vil ikke ha det godt synlig for databasebrukere. I tillegg har noen personer ikke SSN-er.
- E-postadresser er også et dårlig valg for en primærnøkkel. Selv om de er unike, kan de endre seg over tid. Dessuten har ikke alle en e-postadresse.
What Makes a Good Primærnøkkel
Så, hvordan velger du en effektiv primærnøkkel? I de fleste tilfeller kan du henvende deg til databasesystemet for å få støtte.
En beste praksis innen databasedesign er å bruke en internt generert primærnøkkel. Databasebehandlingssystemet ditt kan norm alt generere en unik identifikator som ikke har noen betydning utenfor databasesystemet.
Du kan for eksempel bruke Microsoft Access AutoNumber-datatypen til å opprette et felt k alt RecordID. Datatypen Autonummerering øker automatisk feltet hver gang du oppretter en post. Selv om nummeret i seg selv er meningsløst, gir det en pålitelig måte å referere til en individuell post i spørringer.
En god primærnøkkel er vanligvis kort, bruker tall og unngår spesi altegn eller en blanding av store og små bokstaver for å lette raske databaseoppslag og sammenligninger.