Nøkkelforskjellen mellom fremmednøkkel og primærnøkkel er at fremmednøkkel er en kolonne eller et sett med kolonner som refererer til en primærnøkkel eller en kandidatnøkkel til en annen tabell mens primærnøkkel er en kolonne eller et sett med kolonner som kan brukes til å identifisere en rad i en tabell unikt.
En kolonne eller et sett med kolonner som kan brukes til å identifisere eller få tilgang til en rad eller et sett med rader i en database kalles en nøkkel. En primærnøkkel i en relasjonsdatabase er en kombinasjon av kolonner i en tabell som unikt identifiserer en rad i tabellen. Fremmednøkkel i en relasjonsdatabase er et felt i en tabell som samsvarer med primærnøkkelen til en annen tabell. Fremmednøkkelen brukes til å kryssreferansetabeller.
Hva er fremmednøkkel?
Fremmednøkkel er en referansebegrensning mellom to tabeller. Den identifiserer en kolonne eller et sett med kolonner i en tabell, k alt referansetabellen som refererer til et sett med kolonner i en annen tabell, k alt den refererte tabellen. Fremmednøkkelen eller kolonnene i referansetabellen må være primærnøkkelen eller en kandidatnøkkel (en nøkkel som kan brukes som primærnøkkel) i den refererte tabellen. Videre tillater fremmednøkler å koble data på tvers av flere tabeller. Derfor kan ikke fremmednøkkelen inneholde verdier som ikke vises i tabellen den refererer til. Da hjelper referansen gitt av fremmednøkkelen til å koble informasjon i flere tabeller, og dette ville blitt viktig med normaliserte databaser. Flere rader i referansetabellen kan referere til én enkelt rad i referansetabellen.
Figur 01: Foreign Key Mapping
I ANSI SQL-standarden definerer FOREIGN KEY-begrensningen fremmednøkler. Videre er det mulig å definere fremmednøklene når du lager selve tabellen. En tabell kan ha flere fremmednøkler, og de kan referere til forskjellige tabeller.
Hva er primærnøkkel?
Primærnøkkel er en kolonne eller en kombinasjon av kolonner som unikt definerer en rad i en tabell i en relasjonsdatabase. En tabell kan ha maksim alt én primærnøkkel. Primærnøkkel håndhever den implisitte NOT NULL-begrensningen. Derfor kan ikke en kolonne med primærnøkkel ha NULL-verdier. Primærnøkkel kan være et norm alt attributt i tabellen som garantert er unikt, for eksempel et personnummer, eller det kan være en unik verdi generert av databasebehandlingssystemet, for eksempel en Globally Unique Identifier (GUID) i Microsoft SQL Server.
Figur 02: Primærnøkkel
I tillegg definerer PRIMÆRKØKKEL-begrensningen i ANSI SQL Standard primærnøkler. Det er også mulig å definere en primærnøkkel når du oppretter tabellen. I tillegg til dette tillater SQL at primærnøkkelen består av én eller flere kolonner, og hver kolonne som er inkludert i primærnøkkelen er implisitt definert til å være IKKE NULL. Men noen databasebehandlingssystemer krever at primærnøkkelkolonnene eksplisitt IKKE NULL.
Hva er forskjellen mellom fremmednøkkel og primærnøkkel?
fremmednøkkel kontra primærnøkkel |
|
Fremmednøkkel er en kolonne eller gruppe med kolonner i en relasjonsdatabasetabell som gir en assosiasjon mellom data i to tabeller. | Primærnøkkel er en spesiell relasjonsdatabasetabellkolonne eller en kombinasjon av flere kolonner som gjør det mulig å identifisere alle tabellposter unikt. |
NULL | |
Udenlandsk nøkkel godtar NULL-verdi. | Primærnøkkelverdi kan ikke være NULL. |
Antall nøkler | |
Tabell kan ha flere fremmednøkler. | Tabell kan bare ha én primærnøkkel. |
Duplisering | |
Tupler kan ha en duplikatverdi for et fremmednøkkelattributt. | To tupler i en relasjon kan ikke ha dupliserte verdier for et primærnøkkelattributt. |
Sammendrag – fremmednøkkel vs primærnøkkel
Forskjellen mellom fremmednøkkel og primærnøkkel er at fremmednøkkel er en kolonne eller et sett med kolonner som refererer til en primærnøkkel eller en kandidatnøkkel til en annen tabell, mens primærnøkkel er en kolonne eller et sett med kolonner som kan brukes til å identifisere en rad i en tabell unikt.