DBMS-nøkler: Kandidat-, primær-, super- og fremmedtyper

⚡ Smart oppsummering

Nøkler i DBMS er attributter som unikt identifiserer en rad i en tabell og etablerer relasjoner mellom tabeller. Åtte nøkkeltyper, fra super- og primærnøkkel til fremmednøkkel og surrogatnøkkel, håndhever identitet og integritet på tvers av en relasjonsdatabase.

  • 🗝️ Kjerneformål: En nøkkel identifiserer en unik rad og lenker relaterte tabeller slik at dataene forblir konsistente.
  • 🔝 Supernøkkel: Ethvert attributtsett som identifiserer rader, muligens med ekstra attributter utover minimumsverdien.
  • Primærnøkkel: Den valgte kandidatnøkkelen, aldri null og aldri duplisert, én per tabell.
  • 🎯 Kandidatnøkkel: En minimal supernøkkel uten redundante attributter; primærnøkkelen velges fra disse.
  • 🔁 Alternativ nøkkel: Enhver kandidatnøkkel som ikke er valgt som primærnøkkel.
  • 🔗 Utenlandsk nøkkel: En kolonne som refererer til en annen tabells primærnøkkel for å håndheve referanseintegritet.
  • 🧩 Kompositt og surrogat: Sammensatte nøkler kombinerer kolonner for unikhet; en surrogatnøkkel er en generert erstatningsnøkkel.

DBMS-nøkler Kandidat Super Primær

Hva er nøkler i DBMS?

Nøkler i DBMS er et attributt eller et sett med attributter som hjelper deg med å identifisere en rad (tuple) i en relasjon (tabell). De lar deg finne relasjonen mellom to tabeller. Nøkler hjelper deg med å identifisere en rad i en tabell unikt ved en kombinasjon av én eller flere kolonner, og de er også nyttige for å finne en unik post i tabellen.

Eksempel:

Ansatt ID Fornavn Etternavn
11 Andrew Johnson
22 Tom Treverk
33 Alex Hale

I eksemplet ovenfor er ansatt-ID en primærnøkkel fordi den unikt identifiserer en ansattpost. I denne tabellen kan ingen andre ansatte ha samme ansatt-ID.

Hvorfor trenger vi en nøkkel?

Her er noen grunner til å bruke en nøkkel i et DBMS:

  • Nøkler hjelper deg med å identifisere en hvilken som helst rad med data i en tabell. I en virkelig applikasjon kan en tabell inneholde tusenvis av poster, og postene kan dupliseres. Nøkler sikrer at du kan identifisere en tabellpost unikt til tross for disse utfordringene.
  • De lar deg etablere og identifisere relasjoner mellom tabeller.
  • De hjelper deg med å håndheve identitet og integritet i forholdet.

Typer nøkler i DBMS

Det finnes hovedsakelig åtte forskjellige typer nøkler i DBMS, og hver nøkkel har sin egen funksjonalitet:

  1. Supernøkkel
  2. Primærnøkkel
  3. Kandidatnøkkel
  4. Alternativ nøkkel
  5. Foreign Key
  6. Sammensatt nøkkel
  7. Komposittnøkkel
  8. Surrogatnøkkel

Tabellen nedenfor oppsummerer alle åtte på et raskt blikk før hver enkelt forklares i detalj.

nøkkel På én linje Unik?
Supernøkkel Ethvert attributtsett som identifiserer en rad, ekstra tillatt Ja
Kandidatnøkkel En minimal supernøkkel, ingen overflødige attributter Ja
Primærnøkkel Den valgte kandidatnøkkelen, ikke null Ja
Alternativ nøkkel En kandidatnøkkel som ikke er valgt som primærnøkkel Ja
Foreign Key Refererer til en primærnøkkel i en annen tabell Nei
Sammensatt nøkkel To eller flere attributter, hvorav hver muligens ikke er unik Kombinert
Komposittnøkkel To eller flere kolonner kombinert for unikhet Kombinert
Surrogatnøkkel En generert kunstig identifikator Ja

Hva er en supernøkkel?

En supernøkkel er en gruppe med én eller flere nøkler som identifiserer rader i en tabell. En supernøkkel kan ha tilleggsattributter som ikke er nødvendige for unik identifikasjon.

Eksempel:

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

I eksemplet ovenfor er EmpSSN og EmpNum supernøkler.

Hva er en primærnøkkel?

PRIMÆRNØKKEL in DBMS er en kolonne eller gruppe av kolonner i en tabell som unikt identifiserer hver rad i tabellen. Primærnøkkelen kan ikke være en duplikat, noe som betyr at samme verdi ikke kan forekomme mer enn én gang i tabellen. En tabell kan ikke ha mer enn én primærnøkkel.

Regler for å definere en primærnøkkel

  • To rader kan ikke ha samme primærnøkkelverdi.
  • Hver rad må ha en primærnøkkelverdi.
  • Primærnøkkelfeltet kan ikke være null.
  • Verdien i en primærnøkkelkolonne kan aldri endres eller oppdateres hvis en fremmednøkkel refererer til den primærnøkkelen.

Eksempel: I det følgende eksemplet, StudID er en primærnøkkel.

StudID Rulle nr Fornavn Etternavn Epost
1 11 Tom Pris abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Hva er en alternativ nøkkel?

ALTERNATIV NØKKEL er en kolonne eller gruppe av kolonner i en tabell som unikt identifiserer hver rad. En tabell kan ha flere valg for en primærnøkkel, men bare én kan angis som primærnøkkel. Alle nøklene som ikke er primærnøkkelen kalles alternative nøkler.

Eksempel: I denne tabellen er StudID, Roll No og Email kvalifisert til å bli primærnøkler. Men siden StudID er primærnøkkelen, blir Roll No og Email de alternative nøklene.

StudID Rulle nr Fornavn Etternavn Epost
1 11 Tom Pris abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Hva er en kandidatnøkkel?

KANDIDATNØKKEL er et sett med attributter som unikt identifiserer tupler i en tabell. En kandidatnøkkel er en supernøkkel uten gjentatte attributter. Primærnøkkelen bør velges fra kandidatnøklene. Hver tabell må ha minst én kandidatnøkkel, og en tabell kan ha flere kandidatnøkler, men bare én primærnøkkel.

Egenskaper for en kandidatnøkkel:

  • Den må inneholde unike verdier.
  • En kandidatnøkkel kan ha flere attributter.
  • Den må ikke inneholde nullverdier.
  • Den bør inneholde minimum antall felt som trengs for å sikre unikhet.
  • Den identifiserer hver post i en tabell unikt.

Eksempel: I tabellen nedenfor er StudID, Roll No og Email kandidatnøkler som hjelper oss med å identifisere en studentjournal unikt. Forholdet deres til super- og primærnøkler er en vanlig måte å forstå funksjonell avhengighet.

StudID Rulle nr Fornavn Etternavn Epost
1 11 Tom Pris abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com
Kandidatnøkkel i DBMS
Kandidatnøkkel i DBMS

Hva er en fremmednøkkel?

UTENLANDSK NØKKEL er en kolonne som oppretter en relasjon mellom to tabeller. Formålet med en fremmednøkkel er å opprettholde dataintegritet og tillate navigering mellom to forskjellige forekomster av en enhet. Den fungerer som en kryssreferanse mellom to tabeller, ettersom den refererer til primærnøkkelen til en annen tabell.

Eksempel:

gjeldCode DeptName
001 Vitenskap
002 Engelsk
005 datamaskin
Lærer-ID Fname Lnavn
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

I dette eksemplet har vi to tabeller, Lærer og Avdeling, på en skole. Slik de er nå, er det ingen måte å se hvilken lærer som jobber i hvilken avdeling.

Ved å legge til fremmednøkkelen DeptCode til Lærer-tabellen, kan vi opprette en relasjon mellom de to tabellene.

Lærer-ID gjeldCode Fname Lnavn
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Brunton

Dette konseptet er også kjent som referanseintegritet.

Hva er en sammensatt nøkkel?

SAMMENSATT NØKKEL har to eller flere attributter som lar deg unikt gjenkjenne en bestemt post. Det er mulig at hver kolonne ikke er unik i seg selv i databasen. Men når de kombineres, blir kolonnene unike. Formålet med den sammensatte nøkkelen er å unikt identifisere hver post i tabellen.

Eksempel:

Bestillingsnr Produkt ID Produktnavn Antall
B005 JAP102459 Mus 5
B005 DKT321573 USB 10
B005 OMG446789 LCD-skjerm 20
B004 DKT321573 USB 15
B002 OMG446789 laser Printer 3

I dette eksemplet kan ikke Ordrenummer og ProduktID være primærnøkler hver, ettersom ingen av dem identifiserer en post unikt. En sammensatt nøkkel av Ordrenummer og ProduktID identifiserer imidlertid hver post unikt.

Hva er en sammensatt nøkkel?

KOMPOSITT NØKKEL er en kombinasjon av to eller flere kolonner som unikt identifiserer rader i en tabell. Kombinasjonen av kolonner garanterer unikhet, men individuelt unikhet er ikke garantert. Derfor kombineres de for å unikt identifisere poster i en tabell.

Forskjellen mellom en sammensatt og en komposittnøkkel er at enhver del av en sammensatt nøkkel kan være en fremmednøkkel, men en sammensatt nøkkel kan være eller ikke være en del av en fremmednøkkel.

Hva er en surrogatnøkkel?

SURROGATNØKKEL er en kunstig nøkkel som har som mål å identifisere hver post unikt. Denne typen nøkkel er unik fordi den opprettes når du ikke har noen naturlig primærnøkkel. Surrogatnøkler gir ingen betydning til dataene i tabellen og er vanligvis et heltall generert rett før posten settes inn.

Fname Etternavn Starttid Sluttid
Anne Smith 09:00 18:00
jekk Francis 08:00 17:00
Anna McLean 11:00 20:00
Vist William 14:00 23:00

Eksemplet ovenfor viser skifttidene til forskjellige ansatte. Her trengs en surrogatnøkkel for å identifisere hver ansatt unikt. Surrogatnøkler i SQL brukes når:

  • Ingen egenskaper har parameteren til en primærnøkkel.
  • Primærnøkkelen er for stor eller komplisert.

Forskjellen mellom primærnøkkel og fremmednøkkel

Følgende er hovedforskjellen mellom en primærnøkkel og en fremmednøkkel:

Primærnøkkel Foreign Key
Hjelper deg med å identifisere en post i tabellen unikt. Det er et felt i tabellen som er primærnøkkelen til en annen tabell.
En primærnøkkel aksepterer aldri nullverdier. En fremmednøkkel kan godta flere nullverdier.
Primærnøkkelen er en gruppert indeks, og dataene i tabellen er fysisk organisert i rekkefølgen til den grupperte indeksen. En fremmednøkkel kan ikke automatisk opprette en indeks, verken gruppert eller ikke-gruppert. Du kan opprette en manuelt.
Du kan ha én primærnøkkel i en tabell. Du kan ha flere fremmednøkler i en tabell.

Spørsmål og svar

Hver kandidatnøkkel kan identifisere en rad unikt. Primærnøkkelen er den ene kandidatnøkkelen designeren velger; de resterende kandidatnøklene blir alternative nøkler.

Begge kombinerer kolonner for unikhet. I en sammensatt nøkkel er hver kolonne i seg selv en fremmednøkkel, mens en sammensatt nøkkel ganske enkelt kobler sammen to eller flere attributter som ikke trenger å være fremmednøkler.

Bruk en surrogatnøkkel når ingen naturlige attributter er pålitelig unike, eller når den naturlige nøkkelen er stor eller kan endre seg. Et generert heltall forblir stabilt og holder sammenføyninger enkle.

Ja. Ved å profilere kolonner for unikhet, nullfrekvens og stabilitet, kan AI lage en kortliste over kandidatnøkler og foreslå en primærnøkkel eller en surrogatnøkkel, og dermed overlate det endelige valget til designeren.

Ja. I motsetning til en primærnøkkel kan en fremmednøkkel inneholde null, som representerer en rad som ennå ikke er relatert til noen overordnet post. En fremmednøkkel som ikke er null, må samsvare med en eksisterende primærnøkkel.

Oppsummer dette innlegget med: