Anbefalet, 2024

Redaktørens Valg

Forskel mellem primære og kandidatnøgle

Taster er attributten eller et sæt attributter, der bruges til at få adgang til tupler fra et bord, eller de bruges også til at konstruere et forhold mellem to tabeller. I denne artikel skal vi diskutere Primær- og kandidatnøglen og forskellene mellem dem. Både Primær og Kandidatnøgle identificerer unikt en tuple i en relation eller et bord. Men det vigtigste punkt, der adskiller dem, er, at der kun kan være en primær nøgle i en relation. Der kan dog være mere end en kandidatnøgle i en relation.

Der er nogle flere forskelle mellem Primær og Kandidatnøgle, som jeg vil diskutere ved hjælp af sammenligningsdiagrammet vist nedenfor.

Sammenligningstabel

Grundlag for sammenligningPrimærnøgleKandidatnøgle
GrundlæggendeDer kan kun være en primær nøgle i ethvert forhold.Der kan være mere end en kandidatnøgle i en relation.
NULIngen attribut af en primærnøgle kan indeholde NULL-værdi.Attributten til en kandidatnøgle kan have NULL-værdi.
AngivDet er valgfrit at angive en primærnøgle for enhver relation.Der kan ikke være en relation uden angivet kandidatnøgle.
FeaturePrimærnøgle beskriver den vigtigste attribut for relationen.Kandidatnøgler præsenterer kandidater, der kan kvalificere sig til Primærnøgle.
Vice-VersaEn primærnøgle er en kandidatnøgle.Men det er ikke obligatorisk, at hver kandidatnøgle kan være en primær nøgle.

Definition af primærnøgle

Primærnøgle er en egenskab eller et sæt attributter, som unikt identificerer hver tuple i en relation. Der kan kun være en primærnøgle for hver relation. Det skal iagttages, at en primærnøgle aldrig skal indeholde en NULL- værdi, og den skal have den unikke værdi for hver tuple i forholdet. Værdierne af attributten / s for den primære nøgle skal være statiske, dvs. værdien af ​​attributten bør aldrig eller sjældent ændres.

En af kandidatnøglerne bliver kvalificeret til at blive en primær nøgle. Reglerne for at en kandidatnøgle skal kvalificere sig til at blive primær er, at nøgleværdien aldrig skal være NULL, og den skal være unik for alle tuples.

Hvis en relation indeholder en attribut, der er en primær nøgle til et andet forhold, så kaldes denne attribut udenlandsk nøgle .

Det anbefales at finde ud af den primære nøgle i en relation, før vi introducerer andre attributter af en relation, da primærnøgle identificerer hver tuple entydigt. Det er bedre at vælge en enkelt attribut eller et lille antal attributter som en primærnøgle, der gør forholdshåndtering nem.

Lad os nu se et eksempel på en primærnøgle.

 Student {ID, Fornavn, Efternavn, Alder, Adresse} 

Her vil vi først finde ud af kandidatnøgler. Jeg har fundet ud af to kandidatnøgler {ID} og {First_name, Last_name}, da de unikt identificerer hver elev i Studentrelationen. Nu vælger jeg ID som min primære nøgle, fordi det kan ske, at to studerende måske har samme for- og efternavne, så det er nemt at spore en elev med hans ID .

Definition af kandidatnøgle

En kandidatnøgle er en attribut eller et sæt attributter, der unikt definerer en tuple i en relation. Der er der mere end en kandidatnøgle i en relation. Disse kandidatnøgler er kandidaterne, der kan kvalificere sig til at blive en primær nøgle.

Selv om hver kandidatnøgle kvalificerer sig til at blive en primær nøgle, kan kun en vælges som en primær nøgle. De regler, som en kandidatnøgle kræver for at blive primærnøgle er attributværdien af ​​nøglen kan aldrig være NULL i et hvilket som helst domæne af nøglen, det skal være unikt og statisk .

Hvis alle kandidatnøglerne kvalificerer sig til primærnøglen, skal en erfaren DBA træffe beslutning om at finde ud af den primære nøgle. Der kan aldrig være et forhold uden kandidatnøgle.

Lad os forstå kandidatnøglen med et eksempel. Hvis vi tilføjer nogle flere attributter til Student relation, diskuterede jeg ovenfor.

 Student {ID, Fornavn, Efternavn, Alder, Adresse, DOB, Afdelingsnavn} 

Her kan jeg finde ud af to kandidatnøgler, der er {ID}, {First_name, Last_name, DOB} . Så du kan forstå kandidatnøglerne er en, der unikt identificerer en tuple i en relation.

Nøgleforskelle mellem primære og kandidatnøgle

  1. Det grundlæggende punkt, der adskiller primærnøglen fra kandidatnøglen, er, at der kun kan være en primær for ethvert forhold i et skema. Der kan dog være flere kandidatnøgler til en enkelt relation.
  2. Attributten under primærnøglen kan aldrig indeholde en NULL-værdi, da primærnøgles hovedfunktion er at identificere en rekord i relativ relation. Selv en primærnøgle kan bruges som fremmednøgle i anden relation, og derfor må det ikke være NULL, så referencens forhold kan finde tuplerne i en refereret relation. Kandidatnøglen kan være NULL, medmindre attributtsbegrænsningen er angivet ikke null.
  3. Det er valgfrit at angive en primærnøgle, men der kan ikke være et forhold uden kandidatnøgler.
  4. Primærnøgle beskriver den unikke og vigtigste egenskab af en relation, mens kandidatnøglerne giver kandidaterne, blandt hvilke man kan vælges som en primærnøgle.
  5. Hver primære nøgle er en kandidatnøgle, men omvendt er det ikke sandt.

Konklusion:

Det er valgfrit for en relation at angive en primærnøgle. På den anden side, hvis du erklærer et forhold, skal kandidatnøgler være til stede i det forhold for at opbygge et godt forhold.

Top