Innholdsfortegnelse:
Definisjon - Hva betyr Foreign Key?
En fremmed nøkkel er en kolonne eller gruppe av kolonner i en relasjonell databasetabell som gir en kobling mellom data i to tabeller. Den fungerer som en kryssreferanse mellom tabeller fordi den refererer til den primære nøkkelen til en annen tabell, og dermed oppretter en kobling mellom dem.
Flertallet av tabellene i et relasjonsdatabasesystem følger det utenlandske nøkkelbegrepet. I komplekse databaser og datavarehus må data i et domene legges til i flere tabeller, og dermed opprettholde et forhold mellom dem. Begrepet referensiell integritet er avledet fra utenlandsk nøkkelteori.
Utenlandske nøkler og implementering av disse er mer kompliserte enn primære nøkler.
Techopedia forklarer Foreign Key
For en hvilken som helst kolonne som fungerer som en fremmed nøkkel, bør en tilsvarende verdi finnes i lenketabellen. Spesiell forsiktighet må utvises mens du setter inn data og fjerner data fra den utenlandske nøkkelkolonnen, da en uforsiktig sletting eller innsetting kan ødelegge forholdet mellom de to tabellene.
For eksempel, hvis det er to tabeller, kunde og ordre, kan det opprettes et forhold mellom dem ved å innføre en fremmed nøkkel i ordretabellen som refererer til kunde-ID i kundetabellen. Kunde-ID-kolonnen eksisterer i både kunde- og ordretabeller. Kunde-IDen i ordretabellen blir den utenlandske nøkkelen, med henvisning til den primære nøkkelen i kundetabellen. For å legge inn en post i ordretabellen, må den fremmede nøkkelbegrensningen være oppfylt. Et forsøk på å oppgi en kunde-ID som ikke er til stede i kundetabellen mislykkes, og dermed opprettholder tabellens referanseintegritet.
Noen referanseaksjoner knyttet til en fremmed nøkkelhandling inkluderer følgende:
- Kaskade: Når rader i overordnet tabell blir slettet, blir de matchende utenlandske nøkkelkolonnene i underordnede tabellen også slettet, noe som oppretter en kaskaderende sletting.
- Angi null: Når en referert rad i overordnede tabellen blir slettet eller oppdatert, settes de utenlandske nøkkelverdiene i referanseraden til null for å opprettholde referanseintegriteten.
- Utløsere: Henvisningshandlinger implementeres normalt som triggere. På mange måter ligner utenlandske nøkkelhandlinger som brukerdefinerte triggere. For å sikre korrekt utførelse erstattes bestilte referanseaksjoner noen ganger med de tilsvarende brukerdefinerte utløserne.
- Angi standard: Denne referanseaksjonen ligner på "sett null." De utenlandske nøkkelverdiene i underordnet tabell er satt til standard kolonneverdi når den refererte raden i overordnede tabellen blir slettet eller oppdatert.
- Begrensning: Dette er den normale referanseaksjonen som er knyttet til en fremmed nøkkel. En verdi i overordnet tabell kan ikke slettes eller oppdateres så lenge det er referert til av en fremmed nøkkel i en annen tabell.
- Ingen handling: Denne referanseaksjonen er i funksjon som "begrens" -handlingen bortsett fra at en sjekk uten handling utføres bare etter å ha prøvd å endre tabellen.
