Vad är en främmande nyckel?

Databaser är sammansatta av tabeller där data, eller information, lagras. En främmande nyckel är en mekanism i en relationsdatabas som möjliggör associering av dessa tabeller, eller för tabellerna att ha en relation med varandra. Det finns unika egenskaper som en främmande nyckel måste ha. Det måste vara en kolumn eller en grupp kolumner i en tabell vars värden upprättar en relation med värden i en annan tabell i samma databas.

En främmande nyckel garanterar att rader i en tabell motsvarar rader i någon annan tabell, och skapar därigenom databasomfattande relationer eller referenser. Tabellen som innehåller den främmande nyckeln är ”barnet” och den andra tabellen är ”föräldern”. Det är möjligt att värdet på en främmande nyckel är null eller tom och att den faktiskt refererar till eller relaterar till vad som kallas primärnyckeln i tabellen där den finns. Detta är känt som självreferens.

Man måste ha en god förståelse för vad en primärnyckel är innan man försöker förstå konceptet bakom främmande nycklar. Till exempel, om det finns två tabeller i en databas som lagrar information om publicerade böcker för en webbplats som säljer böcker, kan den ena tabellen vara förlagstabellen och den andra boktabellen. Utgivartabellen kan bestå av två kolumner, en primärnyckel som alltid är unik för varje post och en kolumn för utgivarens namn. Minst tre kolumner skulle utgöra boktabellen, innehållande den primära nyckeln eller unika identifieraren för varje bok, böckernas titlar och en kolumn via vilken en relation skulle upprättas med förlagstabellen. Den kolumnen skulle vara den främmande nyckeln.

Primärnyckeln för förlagstabellen kan vara något i stil med ”pub_id” med värden på: P01, P02, P03, etc. En relation skulle upprättas med boktabellen om den innehöll en pub_id-kolumn med samma värden. Detta skulle vara den främmande nyckeln som skulle relatera denna underordnade tabell tillbaka till sin överordnade – utgivartabellen.

En främmande nyckel kan dock ha ett annat kolumnnamn än den överordnade nyckeln som den refererar till. God förståelse för hur primära och främmande nycklar fungerar är avgörande för att upprätthålla referensintegritet. Mycket stora databaser som är sammansatta av många tabeller eller som involverar en kopplingstabell presenterar mer än en typ av relation, vilket kan komplicera arbetet med främmande nycklar.