Kompositnyckel
I databasdesign är en sammansatt nyckel en kandidatnyckel som består av två eller flera attribut (tabellkolumner) som tillsammans unikt identifierar en entitetsförekomst (tabellrad). En sammansatt nyckel är en sammansatt nyckel för vilken varje attribut som utgör nyckeln är en främmande nyckel i sin egen rätt.
Fördelar
Sammansatta nycklar har liknande fördelar som en naturlig nyckel eftersom den ofta är sammansatt av flera naturliga nyckelattribut.
Lagring
Sammansatta nycklar använder mindre diskutrymme jämfört med att definiera en surrogatnyckelkolumn , detta beror på att den sammansatta nyckeln redan existerar som attribut i tabellen och inte behöver definieras i tabellen bara för unik identifiering. Detta förenklar bordet och sparar även utrymme.
Lättare att implementera och använda
Sammansatta nycklar är lätta att implementera i ett databasschema eftersom deras komponentdelar redan är namngivna objekt i databasen. När de också är naturliga nycklar är de ofta intuitiva för verkliga scenarier. De används ofta när en icke-sammansatt nyckel inte alltid unikt identifierar en post. Till exempel kan ett personnamn ofta, men inte alltid, vara unikt i en given databas, och något annat fält som t.ex. födelsedatum kan läggas till för att göra unikheten mycket mer sannolikt.
Nackdelar
Kravändringar
Affärskraven och reglerna kan ändras vilket kan ändra formatet för vissa verkliga enheter. Sammansatta nycklar är bildade av flera naturliga nycklar som är relaterade till den verkliga världen och med förändringen av deras format i den verkliga världen kommer även deras format i databasen att ändras. Detta är obekvämt eftersom antalet attribut för sammansatt nyckel kommer att ändras och alla främmande nycklar skulle behöva uppdateras.
Komplexitet och förvaring
En sammansatt nyckel består av flera attribut och den sammansatta nyckeln kommer att refereras till i flera tabeller som den främmande nyckeln, detta använder mycket diskutrymme eftersom flera kolumner lagras som den främmande nyckeln istället för bara en. Detta gör schemat komplicerat och frågorna blir dyrare CPU eftersom DBMS för varje anslutning måste jämföra tre attribut istället för kanske en i fallet med en enda naturlig nyckel.
Exempel
Ett exempel är en enhet som representerar de moduler varje student går på vid universitetet. Entiteten har ett studentID och en modulkod som primärnyckel. Vart och ett av attributen som utgör primärnyckeln är en enkel nyckel eftersom var och en representerar en unik referens när man identifierar en student i en instans och en modul i den andra, så denna nyckel är en sammansatt nyckel.
Om du däremot använder samma exempel, föreställ dig att vi identifierade en elev med deras förnamn + efternamn . I en tabell som representerar elever skulle vår primära nyckel nu vara förnamn + efternamn . Eftersom elever kan ha samma förnamn eller samma efternamn är dessa attribut inte enkla nycklar. Primärnyckeln förnamn + efternamn för elever är en sammansatt nyckel.
Se även
- Relationsdatabas
- Kandidatnyckel
- Primärnyckel
- Alternativ nyckel
- Främmande nyckel
- Unik nyckel
- Surrogatnyckel
- Supernyckel
externa länkar
- Composite Inverse Functional Properties : för ett motsvarande begrepp i den semantiska webben
- Relation Database referensvillkor, Keys : En översikt över de olika typerna av nycklar i en RDBMS
- Olika typer av nycklar i en databas : En översikt över alla typer av nycklar som används i en RDBMS