In een relationele database of een conceptueel model daarvoor, zoals een ER-model, is een verwijzende sleutel (ook wel vreemde sleutel genoemd; in het Engels: foreign key) een verzameling velden van een tabel die dient als verwijzing naar een andere tabel; dat wil zeggen, die uitsluitend waarden van de primaire sleutel van die andere tabel bevat.

Voorbeeld bewerken

Stel dat we een database willen ontwerpen om informatie over huwelijken in op te slaan.

Laat de tabel Persoon de noodzakelijke gegevens bevatten over personen, bijvoorbeeld voornaam, achternaam, geboortedatum, geboorteplaats, geboorteadres, geboorteadres en nationaliteit. Dan kan { voornaam, achternaam, geboortedatum, geboorteadres ) de primaire sleutel zijn.

Een huwelijk is een verbintenis tussen twee personen, maar een tabel Huwelijk met velden gehuwde 1, gehuwde 2 en trouwdatum, waarbij de eerste twee personen bevatten, is onmogelijk, omdat een persoon geen waarde is.

In de plaats daarvan nemen we daarom de primaire sleutel op: Huwelijk krijgt dan als velden trouwdatum, voornaam1, achternaam1, geboortedatum1, geboorteadres1, voornaam2, achternaam2, geboortedatum2, geboorteadres2 en trouwdatum, waarbij { voornaam1, achternaam1, geboortedatum1, geboorteplaats1, geboorteadres1 } en { voornaam2, achternaam2, geboortedatum2, geboorteplaats2, geboorteadres2 } verwijzende sleutels zijn naar de primaire sleutel van Persoon.

Hieruit blijkt dat het werken met sleutels van meerdere velden onoverzichtelijk kan worden. Een veel gebruikt alternatief is om aan elke Persoon een uniek nummer toe te wijzen, dat als primaire sleutel aan Persoon toe te voegen, en als verwijzende sleutels in Huwelijk te gebruiken. Zo'n uniek nummer wordt een surrogaatsleutel genoemd.