Indholdsfortegnelse:
Definition - Hvad betyder Foreign Key?
En fremmed nøgle er en kolonne eller gruppe af kolonner i en relationel databasetabel, der giver en forbindelse mellem data i to tabeller. Det fungerer som en krydshenvisning mellem tabeller, fordi den refererer til den primære nøgle i en anden tabel, hvorved der oprettes en forbindelse mellem dem.
De fleste tabeller i et relationsdatabasesystem overholder det udenlandske nøglekoncept. I komplekse databaser og datalager skal data i et domæne tilføjes på tværs af flere tabeller, således at der opretholdes et forhold mellem dem. Begrebet referencemæssig integritet stammer fra fremmed nøgleteori.
Udenlandske nøgler og deres implementering er mere komplekse end primære nøgler.
Techopedia forklarer Foreign Key
For enhver kolonne, der fungerer som en fremmed nøgle, skal der findes en tilsvarende værdi i linketabellen. Der skal udvises særlig omhu, når du indsætter data og fjerner data fra den udenlandske nøglekolonne, da en uforsigtig sletning eller indsættelse kan ødelægge forholdet mellem de to tabeller.
Hvis der for eksempel er to tabeller, kunde og ordre, kan der oprettes et forhold mellem dem ved at indføre en fremmed nøgle i ordretabellen, der henviser til kunde-ID i kundetabellen. Kunde-ID-kolonnen findes i både kunde- og ordretabeller. Kunde-ID i ordretabellen bliver den udenlandske nøgle, der henviser til den primære nøgle i kundetabellen. For at indsætte en post i ordretabellen skal den udenlandske nøglebegrænsning være opfyldt. Et forsøg på at indtaste et kunde-id, der ikke er til stede i kundetabellen, mislykkes, hvilket bevarer tabellens referencemæssige integritet.
Nogle referenceaktioner, der er forbundet med en fremmed nøgleaktion, inkluderer følgende:
- Kaskade: Når rækker i overordnede tabel slettes, slettes de matchende fremmede nøglekolonner i underordnede tabellen, hvilket opretter en kaskaderende sletning.
- Indstil null: Når en henvist række i den overordnede tabel er slettet eller opdateret, indstilles de fremmede nøgleværdier i henvisningsraden til null for at bevare referencens integritet.
- Triggers: Henvisningshandlinger implementeres normalt som triggere. På mange måder ligner udenlandske nøgleaktioner de brugerdefinerede triggere. For at sikre korrekt udførelse erstattes bestilte referenceaktioner undertiden med deres ækvivalente brugerdefinerede triggere.
- Sæt standard: Denne referenceaktion svarer til "angiv nul." De udenlandske nøgleværdier i underordnede tabel er indstillet til standardkolonneværdien, når den henvisede række i overordnede tabel slettes eller opdateres.
- Begrænsning: Dette er den normale referenceaktion, der er forbundet med en fremmed nøgle. En værdi i den overordnede tabel kan ikke slettes eller opdateres, så længe den omtales med en fremmed nøgle i en anden tabel.
- Ingen handling: Denne referenceaktion svarer til funktion i funktionen "begræns" bortset fra, at der ikke udføres en kontrol uden handling, når du har prøvet at ændre tabellen.