Wat is een buitenlandse sleutel?
Databases zijn samengesteld uit tabellen waarin gegevens of informatie zijn opgeslagen. Een externe sleutel is een mechanisme in een relationele database waarmee de tabellen kunnen worden gekoppeld of de tabellen een relatie met elkaar kunnen hebben. Er zijn unieke kenmerken die een externe sleutel moet hebben. Het moet een kolom of een groep kolommen in een tabel zijn waarvan de waarden een relatie tot stand brengen met waarden in een andere tabel in dezelfde database.
Een externe sleutel garandeert dat rijen in een tabel overeenkomen met rijen in een andere tabel, waardoor databasebrede relaties of referenties worden opgebouwd. De tabel met de externe sleutel is het "kind" en de andere tabel is de "ouder". Het is mogelijk dat de waarde van een externe sleutel nul of leeg is en dat deze daadwerkelijk verwijst naar of verwijst naar wat bekend staat als de primaire sleutel van de tabel waarin deze wordt gevonden. Dit staat bekend als zelfverwijzing.
Men moet een goed begrip hebben van wat een primaire sleutel is voordat men probeert het concept achter buitenlandse sleutels volledig te begrijpen. Als er bijvoorbeeld twee tabellen in een database zijn die informatie opslaan over gepubliceerde boeken voor een website die boeken verkoopt, kan de ene tabel de uitgevers-tabel zijn en de andere de boeken-tabel. De uitgevers-tabel kan uit twee kolommen bestaan, een primaire sleutel die altijd uniek is voor elke record en een kolom met de naam van de uitgever. Een minimum van drie kolommen zou de boekentabel vormen, met de primaire sleutel of unieke identificatie voor elk boek, de titels van boeken en een kolom via welke een relatie zou worden opgebouwd met de uitgeverslijst. Die kolom zou de externe sleutel zijn.
De primaire sleutel voor de uitgevers-tabel kan zoiets zijn als "pub_id" met waarden van: P01, P02, P03, enz. Er zou een relatie tot stand worden gebracht met de boekentabel als deze een pub_id-kolom met dezelfde waarden bevat. Dit zou de externe sleutel zijn die deze onderliggende tabel weer zou relateren aan de bovenliggende tabel - de uitgeverslijst.
Een externe sleutel kan echter een andere kolomnaam hebben dan de bovenliggende sleutel waarnaar deze verwijst. Een goed begrip van de werking van primaire en externe sleutels is essentieel om de referentiële integriteit te behouden. Zeer grote databases die uit veel tabellen bestaan of die een junctietabel bevatten, bevatten meer dan één type relatie, wat de taak van het werken met buitenlandse sleutels kan bemoeilijken.