Forskellen mellem primær og kandidatnøgle

Forfatter: Laura McKinney
Oprettelsesdato: 1 April 2021
Opdateringsdato: 1 Juli 2024
Anonim
Forskellen mellem primær og kandidatnøgle - Teknologi
Forskellen mellem primær og kandidatnøgle - Teknologi

Indhold


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

Der er nogle flere forskelle mellem primær og kandidatnøgle, som jeg vil diskutere ved hjælp af sammenligningstabellen vist nedenfor.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningPrimærnøgleKandidatnøgle
GrundlæggendeDer kan kun være en primær nøgle i enhver relation.Der kan være mere end en kandidatnøgle i en relation.
NULIngen attribut for en primær nøgle kan indeholde NULL-værdi.Attributten for en kandidatnøgle kan have NULL-værdi.
AngivDet er valgfrit at specificere en primær nøgle til enhver relation.Der kan ikke være et forhold uden specificeret kandidatnøgle.
FeaturePrimær nøgle beskriver den vigtigste attribut for forholdet.Kandidatnøgler præsenterer kandidater, der kan kvalificere sig til Primær nøgle.
Vice-VersaEn primær nø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ær nøgle

Primærnøgle er en attribut eller et sæt attributter, der unikt identificerer hver tuple i en relation. Der kan kun være en primær nøgle for hver relation. Det skal sørges for, at en primær nøgle skal være aldrig indeholder en NUL værdien, og den skal have enestående værdi for hver tuple i relationen. Værdierne for attributten / -erne for den primære nøgle skal være statisk, dvs. værdien af ​​attributten bør aldrig eller sjældent ændres.

En af de Kandidatnøgler bliver kvalificeret til at blive en primær nøgle. Det regler at en kandidatnøgle skal kvalificere sig til at blive primær er, at nøgleværdien aldrig skal være NUL og det skal være enestående for alle tupler.


Hvis en relation indeholder en attribut, der er en primær nøgle til en anden relation, kaldes den attribut fremmed nøgle.

Det tilrådes at finde ud af den primære nøgle i en relation, før der introduceres andre attributter for en relation, da den primære nøgle identificerer hver tuple unikt. Det er bedre at vælge en enkelt attribut eller et lille antal attributter som en primær nøgle, det gør forholdshåndtering let.

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

Student {ID, fornavn, efternavn, alder, adresse}

Her finder vi først ud kandidatnøgler. Jeg har regnet ud to kandidatnøgler {Id} og {Fornavn efternavn} da de unikt identificerer hver studerende i Student-forholdet. Nu, her vil jeg vælge ID som min primære nøgle, fordi det undertiden kan ske, at to studerende kan have samme for- og efternavne, så det vil være let at spore en studerende med hans ID.

Definition af kandidatnøgle

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

Selvom hver kandidatnøgle kvalificerer sig til at blive en primær nøgle, kan kun én vælges som en primær nøgle. De regler, en kandidatnøgle kræver for at blive primær nøgle, er attributværdien for nøglen kan aldrig være NUL i ethvert domæne af nøglen skal det være enestående og statisk.

Hvis alle kandidatnøgler kvalificerer sig til den primære nøgle, er en erfaren DBA skal tage beslutningen om at finde ud af den primære nøgle. Der kan aldrig være en relation uden kandidatnøglen.

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 kandidat nøgler, der er {Id}, {Fornavn, efternavn, DOB}. Så du kan forstå, at kandidatnøglerne er en, der entydigt identificerer en tuple i en relation.

  1. Det grundlæggende punkt, der adskiller den primære nøgle fra kandidatnøglen er, at der kun kan være en primær for enhver relation i et skema. Der kan dog være flere kandidatnøgler til en enkelt relation.
  2. Attributten under den primære nøgle kan aldrig indeholde en NULL-værdi, da hovedfunktionen af ​​den primære nøgle er at identificere en post i relation unikt. Selv en primær nøgle kan bruges som fremmed nøgle i anden relation, og derfor må den ikke være NULL, så referencerelation kan finde tuplerne i et refereret forhold. Kandidatnøglen kan være NULL, medmindre attributbegrænsningen er angivet ikke nul.
  3. Det er valgfrit at specificere en primær nøgle, men der kan ikke være en relation uden kandidatnøgler.
  4. Primær nøgle beskriver den unikke og vigtigste egenskab ved en relation, mens kandidatnøglerne giver de kandidater, blandt hvilke en kan vælges som en primær nøgle.
  5. Hver primær nøgle er en kandidatnøgle, men omvendt er det ikke sandt.

Konklusion:

Det er valgfrit for en relation at specificere en primær nøgle. På den anden side, hvis du erklærer en relation, skal kandidatnøgler være til stede i denne relation for at konstruere en god relation.