Vad är en sammansatt nyckel?

I databasorganisationsteknologi är en ”nyckel” ett speciellt attribut i en tabell som används för att unikt identifiera en specifik enhet. En sammansatt nyckel använder två eller flera attribut för att uppnå samma mål; endast när de hittas i tandem betyder dessa objekt en ”matchning” med målobjektet. Sammansatta nycklar används vanligtvis för tabeller vars informationsstruktur är för komplex för att fungera med en enda nyckel. Ett annat krav på sammansatta nycklar är att inget av de individuella valda attributen för en sammansatt nyckel kan se ut som en enkel, enattributnyckel på egen hand.

Ett av de mest grundläggande exemplen på en databastabell som kräver en sammansatt nyckel är en anställd eller studentkatalog. Föreställ dig att tabellen innehåller en lista för ”Förnamn” och en annan lista för ”Efternamn.” I sig skulle varken förnamn eller efternamn på en viss student eller anställd vara tillräckligt för att garantera en unik identifiering, eftersom det är möjligt att två eller flera personer i databasen kan ha matchande för- eller efternamn. När den paras ihop med en sammansatt nyckel – med både ”Förnamn” och ”Efternamn” för att identifiera en viss elev eller anställd – ökar sannolikheten avsevärt att varje kombination av för- och efternamn är unika. Således är endast en sammansatt nyckel av för- och efternamn tillräcklig för att unikt identifiera en viss student eller anställd.

Kom ihåg att sammansatta nycklar endast ska användas om en enkel-attributs ”enkel” nyckel är otillräcklig. Om varje elev eller anställd också hade ett unikt identifikationsnummer skulle det göra behovet av sammansatta nycklar helt överflödigt, om vi fortsätter med föregående exempel. Om en viss student eller anställd kunde identifieras enbart med sitt nummer, skulle det inte finnas något behov av att bry sig om vare sig deras för- eller efternamn; det enda attributet som spelar roll är identifikationsnumret.

Även om varje enskilt attribut i en sammansatt nyckel är icke-unik i sig, kan alla attribut ändå väljas som en främmande nyckel. En främmande nyckel länkar samman två eller flera tabeller i en databas. Tänk till exempel på en universitetsdatabas där det finns en separat tabell för studentinformation och lärarinformation, och kombinationen av ”Förnamn” plus ”Efternamn” används som en sammansatt nyckel i studenttabellen. Samma sammansatta tangentkombination av ”Förnamn” plus ”Efternamn” kan därför användas för att länka samman elev- och lärartabellerna, vilket ger en gateway mellan de två.