Hvad er en fremmed nøgle?
Databaser er sammensat af tabeller, hvor data eller information er gemt. En fremmed nøgle er en mekanisme i en relationsdatabase, der giver mulighed for tilknytning af disse tabeller, eller for, at tabellerne har et forhold til hinanden. Der er unikke egenskaber, som en fremmed nøgle skal have. Det skal være en kolonne eller en gruppe kolonner i en tabel, hvis værdier opretter et forhold til værdier i en anden tabel i den samme database.
En fremmed nøgle garanterer, at rækker i en tabel svarer til rækker i en anden tabel, hvorved der etableres databasebaserede forhold eller referencer. Tabellen, der indeholder den udenlandske nøgle, er "barn", og den anden tabel er "forælder". Det er muligt for værdien af en fremmed nøgle at være null eller tom og for den faktisk at referere til eller forholde sig til det, der er kendt som den primære nøgle i den tabel, hvor den findes. Dette er kendt som selvhenvisning.
Man skal have en god forståelse af, hvad en primær nøgle er, før man forsøger at forstå begrebet bag fremmede nøgler. For eksempel, hvis der er to tabeller i en database, der gemmer information om udgivne bøger til et websted, der sælger bøger, kan den ene tabel være udgivertabellen og den anden bøger-tabellen. Forlagstabellen kunne bestå af to kolonner, en primær nøgle, der altid er unik for hver post og en kolonne for udgivernavne. Mindst tre kolonner udgør bøger-tabellen med den primære nøgle eller en unik identifikator for hver bog, titlen på bøger og en kolonne, hvorigennem der oprettes et forhold til forlagstabellen. Denne søjle ville være den udenlandske nøgle.
Den primære nøgle til forlagstabellen kunne være noget i retning af "pub_id" med værdier af: P01, P02, P03 osv. Der vil blive oprettet et forhold til bøger-tabellen, hvis den indeholdt en pub_id-kolonne med de samme værdier. Dette ville være den udenlandske nøgle, der ville relatere denne underordnede tabel tilbage til dens forælder - udgivertabellen.
En fremmed nøgle kan dog have et andet kolonnenavn end den overordnede nøgle, den refererer til. En sund forståelse af arbejdet med primære og udenlandske nøgler er vigtig for at bevare referencemæssig integritet. Meget store databaser, der er sammensat af mange tabeller, eller som involverer en sammenkoblingstabel, indeholder mere end en type forhold, hvilket kan komplicere opgaven med at arbejde med fremmede nøgler.