DBMS-nycklar: Kandidat-, primär-, super- och främmande typer

⚡ Smart sammanfattning

Nycklar i DBMS är attribut som unikt identifierar en rad i en tabell och etablerar relationer mellan tabeller. Åtta nyckeltyper, från super- och primary-nyckel till foreign- och surrogatnyckel, upprätthåller identitet och integritet i en relationsdatabas.

  • 🗝️ Kärnsyfte: En nyckel identifierar en unik rad och länkar relaterade tabeller så att data förblir konsekventa.
  • 🔝 Supernyckel: Alla attributuppsättningar som identifierar rader, eventuellt med extra attribut utöver minimumvärdet.
  • Primärnyckel: Den valda kandidatnyckeln, aldrig null och aldrig duplicerad, en per tabell.
  • 🎯 Kandidatnyckel: En minimal supernyckel utan redundanta attribut; primärnyckeln väljs från dessa.
  • 🔁 Alternativ nyckel: Alla kandidatnyckel som inte är vald som primärnyckel.
  • 🔗 Främmande nyckel: En kolumn som refererar till en annan tabells primärnyckel för att upprätthålla referensintegritet.
  • 🧩 Komposit och surrogat: Sammansatta nycklar kombinerar kolumner för unikhet; en surrogatnyckel är en genererad ersättningsnyckel.

DBMS-nycklar Kandidat Super Primary

Vad är nycklar i DBMS?

Nycklar i DBMS är ett attribut eller en uppsättning attribut som hjälper dig att identifiera en rad (tupel) i en relation (tabell). De låter dig hitta relationen mellan två tabeller. Nycklar hjälper dig att unikt identifiera en rad i en tabell genom en kombination av en eller flera kolumner, och de är också användbara för att hitta en unik post i tabellen.

Exempel:

Anställnings-ID Förnamn Efternamn
11 Andrew Johnson
22 Tom Trä
33 Alex Hale

I exemplet ovan är anställnings-ID en primärnyckel eftersom den unikt identifierar en anställningspost. I den här tabellen kan ingen annan anställd ha samma anställnings-ID.

Varför behöver vi en nyckel?

Här är några anledningar till att använda en nyckel i ett databasstyrt system:

  • Nycklar hjälper dig att identifiera vilken rad som helst med data i en tabell. I en verklig applikation kan en tabell innehålla tusentals poster, och posterna kan dupliceras. Nycklar säkerställer att du kan identifiera en tabellpost unikt trots dessa utmaningar.
  • De låter dig etablera och identifiera relationer mellan tabeller.
  • De hjälper dig att stärka identitet och integritet i relationen.

Typer av nycklar i DBMS

Det finns huvudsakligen åtta olika typer av nycklar i DBMS, och varje nyckel har sin egen funktionalitet:

  1. Supernyckeln
  2. Primärnyckel
  3. Kandidatnyckel
  4. Alternativ nyckel
  5. Främmande nyckel
  6. Sammansatt nyckel
  7. Sammansatt nyckel
  8. Surrogatnyckel

Tabellen nedan sammanfattar alla åtta i korthet innan var och en förklaras i detalj.

Nyckel På en rad Unik?
Supernyckeln Alla attributuppsättningar som identifierar en rad, extrafunktioner tillåtna Ja
Kandidatnyckel En minimal supernyckel, inget redundant attribut Ja
Primärnyckel Den valda kandidatnyckeln, inte null Ja
Alternativ nyckel En kandidatnyckel som inte valts som primär Ja
Främmande nyckel Refererar till en primärnyckel i en annan tabell Nej
Sammansatt nyckel Två eller flera attribut, vart och ett eventuellt icke-unikt Kombinerad
Sammansatt nyckel Två eller flera kolumner kombinerade för unikhet Kombinerad
Surrogatnyckel En genererad artificiell identifierare Ja

Vad är en supernyckel?

En supernyckel är en grupp av en eller flera nycklar som identifierar rader i en tabell. En supernyckel kan ha ytterligare attribut som inte behövs för unik identifiering.

Exempel:

EmpSSN EmpNum Empname
9812345098 AB05 Visad
9876512345 AB06 Roslyn
199937890 AB07 James

I exemplet ovan är EmpSSN och EmpNum supernycklar.

Vad är en primärnyckel?

PRIMÄRNYCKEL in DBMS är en kolumn eller grupp av kolumner i en tabell som unikt identifierar varje rad i tabellen. Primärnyckeln kan inte vara en dubblett, vilket innebär att samma värde inte kan förekomma mer än en gång i tabellen. En tabell kan inte ha mer än en primärnyckel.

Regler för att definiera en primärnyckel

  • Två rader kan inte ha samma primärnyckelvärde.
  • Varje rad måste ha ett primärnyckelvärde.
  • Det primära nyckelfältet kan inte vara null.
  • Värdet i en primärnyckelkolumn kan aldrig ändras eller uppdateras om någon främmande nyckel refererar till den primärnyckeln.

Exempel: I följande exempel, StudID är en primärnyckel.

StudID Rull nr Förnamn Efternamn E-post
1 11 Tom Pris abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Vad är en alternativ nyckel?

ALTERNATIV NYCKEL är en kolumn eller grupp av kolumner i en tabell som unikt identifierar varje rad. En tabell kan ha flera alternativ för en primärnyckel, men endast en kan anges som primärnyckel. Alla nycklar som inte är primärnyckeln kallas alternativa nycklar.

Exempel: I den här tabellen är StudID, Roll No och Email kvalificerade att bli primärnycklar. Men eftersom StudID är primärnyckeln blir Roll No och Email de alternativa nycklarna.

StudID Rull nr Förnamn Efternamn E-post
1 11 Tom Pris abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Vad är en kandidatnyckel?

KANDIDATNYCKEL är en uppsättning attribut som unikt identifierar tupler i en tabell. En kandidatnyckel är en supernyckel utan upprepade attribut. Primärnyckeln ska väljas bland kandidatnycklarna. Varje tabell måste ha minst en enda kandidatnyckel, och en tabell kan ha flera kandidatnycklar men bara en enda primärnyckel.

Egenskaper för en kandidatnyckel:

  • Den måste innehålla unika värden.
  • En kandidatnyckel kan ha flera attribut.
  • Den får inte innehålla nullvärden.
  • Den bör innehålla minsta möjliga antal fält som behövs för att säkerställa unikhet.
  • Den identifierar varje post i en tabell unikt.

Exempel: I tabellen nedan är StudID, Rollnummer och E-postadress kandidatnycklar som hjälper oss att unikt identifiera en studentpost. Deras relation till supernycklar och primärnycklar är ett vanligt sätt att förstå funktionellt beroende.

StudID Rull nr Förnamn Efternamn E-post
1 11 Tom Pris abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com
Kandidatnyckel i DBMS
Kandidatnyckel i DBMS

Vad är en främmande nyckel?

FRÄMMANDE NYCKEL är en kolumn som skapar en relation mellan två tabeller. Syftet med en främmande nyckel är att upprätthålla dataintegritet och möjliggöra navigering mellan två olika instanser av en entitet. Den fungerar som en korsreferens mellan två tabeller, eftersom den refererar till primärnyckeln i en annan tabell.

Exempel:

InstCode Avdelningens namn
001 Vetenskap
002 Engelska
005 Dator
Lärar-ID Fname Lname
B002 David Warner
B017 Sara Joseph
B009 Mikrofon Brunton

I det här exemplet har vi två tabeller, Lärare och Avdelning, i en skola. Som de ser ut nu finns det inget sätt att se vilken lärare som arbetar på vilken avdelning.

Genom att lägga till den främmande nyckeln DeptCode till lärartabellen kan vi skapa en relation mellan de två tabellerna.

Lärar-ID InstCode Fname Lname
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mikrofon Brunton

Detta koncept är också känt som referensintegritet.

Vad är en sammansatt nyckel?

SAMMANSTÄLLD NYCKEL har två eller flera attribut som gör att du kan identifiera en specifik post unikt. Det är möjligt att varje kolumn inte är unik i sig själv inom databasen. Men när de kombineras blir kolumnerna unika. Syftet med den sammansatta nyckeln är att identifiera varje post i tabellen unikt.

Exempel:

Beställningsnr Serienummer Produktnamn Antal
B005 JAP102459 Mus 5
B005 DKT321573 USB 10
B005 OMG446789 LCD-skärm 20
B004 DKT321573 USB 15
B002 OMG446789 Laserskrivare 3

I det här exemplet kan inte OrderNo och ProductID vara primärnycklar, eftersom ingen av dem identifierar en post unikt. Däremot identifierar en sammansatt nyckel bestående av OrderNo och ProductID unikt varje post.

Vad är en sammansatt nyckel?

KOMPOSITNYCKEL är en kombination av två eller flera kolumner som unikt identifierar rader i en tabell. Kombinationen av kolumner garanterar unikhet, men individuell unikhet är inte garanterad. Därför kombineras de för att unikt identifiera poster i en tabell.

Skillnaden mellan en sammansatt och en kompositnyckel är att vilken del som helst av en sammansatt nyckel kan vara en främmande nyckel, men en sammansatt nyckel kan vara eller inte vara en del av en främmande nyckel.

Vad är en surrogatnyckel?

SURROGATNYCKEL är en artificiell nyckel som syftar till att unikt identifiera varje post. Denna typ av nyckel är unik eftersom den skapas när du inte har någon naturlig primärnyckel. Surrogatnycklar ger ingen betydelse åt data i tabellen och är vanligtvis ett heltal som genereras precis innan posten infogas.

Fname Efternamn Starttid Sluttid
anne Smith 09:00 18:00
jack Francis 08:00 17:00
anna McLean 11:00 20:00
Visad William 14:00 23:00

Exemplet ovan visar skifttiderna för olika anställda. Här behövs en surrogatnyckel för att unikt identifiera varje anställd. Surrogatnycklar i SQL används när:

  • Ingen egenskap har parametern för en primärnyckel.
  • Primärnyckeln är för stor eller komplicerad.

Skillnaden mellan primärnyckel och främmande nyckel

Följande är den huvudsakliga skillnaden mellan en primärnyckel och en främmande nyckel:

Primärnyckel Främmande nyckel
Hjälper dig att unikt identifiera en post i tabellen. Det är ett fält i tabellen som är primärnyckeln för en annan tabell.
En primärnyckel accepterar aldrig nullvärden. En främmande nyckel kan acceptera flera nollvärden.
Primärnyckeln är ett klustrat index, och data i tabellen är fysiskt organiserade i det klustrade indexets ordning. En främmande nyckel kan inte automatiskt skapa ett index, vare sig klustrat eller icke-klustrat. Du kan skapa ett manuellt.
Du kan ha en enda primärnyckel i en tabell. Du kan ha flera främmande nycklar i en tabell.

Vanliga frågor

Varje kandidatnyckel kan unikt identifiera en rad. Primärnyckeln är den kandidatnyckel som designern väljer; de återstående kandidatnycklarna blir alternativa nycklar.

Båda kombinerar kolumner för unikhet. I en sammansatt nyckel är varje kolumn i sig en främmande nyckel, medan en sammansatt nyckel helt enkelt sammanfogar två eller flera attribut som inte behöver vara främmande nycklar.

Använd en surrogatnyckel när inget naturligt attribut är tillförlitligt unikt, eller när den naturliga nyckeln är stor eller kan komma att ändras. Ett genererat heltal förblir stabilt och håller kopplingar enkla.

Ja. Genom att profilera kolumner för unikhet, nullfrekvens och stabilitet kan AI lista ut kandidatnycklar och föreslå en primärnyckel eller en surrogatnyckel, vilket lämnar det slutgiltiga valet till designern.

Ja. Till skillnad från en primärnyckel kan en främmande nyckel innehålla null, vilket representerar en rad som ännu inte är relaterad till någon överordnad post. En främmande nyckel som inte är null måste matcha en befintlig primärnyckel.

Sammanfatta detta inlägg med: