Det er noen flere forskjeller mellom Primær og Kandidatnøkkel som jeg vil diskutere ved hjelp av sammenligningsdiagrammet som er vist nedenfor.
Sammenligningstabel
Grunnlag for sammenligning | Primærnøkkel | Kandidatnøkkel |
---|---|---|
grunn~~POS=TRUNC | Det kan bare være en primærnøkkel i alle forhold. | Det kan være mer enn en kandidatnøkkel i et forhold. |
NULL | Ingen attributt for en primærnøkkel kan inneholde NULL-verdi. | Attributtet til en kandidatnøkkel kan ha NULL-verdi. |
Spesifiser | Det er valgfritt å angi en primærnøkkel for et forhold. | Det kan ikke være et forhold uten kandidatnøkkel angitt. |
Trekk | Primærnøkkel beskriver det viktigste attributet for forholdet. | Kandidatnøkler presenterer kandidater som kan kvalifisere for Primærnøkkel. |
Omvendt | En primærnøkkel er en kandidatnøkkel. | Men det er ikke obligatorisk at hver kandidatnøkkel kan være en primærnøkkel. |
Definisjon av primærnøkkel
Primærnøkkel er et attributt eller et sett med attributter som unikt identifiserer hver tuple i et forhold. Det kan bare være en primærnøkkel for hvert forhold. Det må tas vare på at en primærnøkkel aldri skal inneholde en NULL- verdi, og den må ha den unike verdien for hver tuple i forholdet. Verdiene av attributten / s til primærnøkkelen må være statiske, dvs. verdien av attributtet skal aldri eller sjelden endres.
En av kandidatnøklene blir kvalifisert til å bli en primærnøkkel. Reglene som en kandidatnøkkel må kvalifisere til å bli primær er at nøkkelverdien aldri skal være NULL, og den må være unik for alle tuples.
Hvis en relasjon inneholder et attributt som er en primærnøkkel til et annet forhold, blir det attributtet kalt fremmednøkkel .
Det anbefales å finne ut av den primære nøkkelen til et forhold før innføring av andre attributter av et forhold som primærnøkkel identifiserer hver tuple unikt. Det er bedre å velge et enkelt attributt eller et lite antall attributter som en primærnøkkel som gjør det enkelt å håndtere relasjonsbehandling.
La oss nå se et eksempel på en primærnøkkel.
Student {ID, Fornavn, Etternavn, Alder, Adresse}
Her vil vi først finne ut kandidatnøkler. Jeg har funnet ut to kandidatnøkler {ID} og {First_name, Last_name} da de unikt identifiserer hver student i Studentrelasjonen. Nå vil jeg velge ID som min primære nøkkel fordi det noen ganger kan skje at to studenter har samme for- og etternavn, så det blir enkelt å spore en student med sin ID .
Definisjon av kandidatnøkkel
En kandidatnøkkel er et attributt eller et sett av attributt som unikt definerer en tuple i et forhold. Der er det flere enn en kandidatnøkkel i et forhold. Disse kandidatnøklene er kandidatene som kan kvalifisere til å bli en primærnøkkel.
Selv om hver kandidatnøkkel kvalifiserer til å bli en primærnøkkel, kan bare en velges som en primærnøkkel. Reglene en kandidatnøkkel krever for å bli primærnøkkel er attributtverdien til nøkkelen kan aldri være null i et hvilket som helst domenenavn, det må være unikt og statisk .
Hvis alle kandidatnøklene kvalifiserer for primærnøkkel, må en erfaren DBA ta beslutningen om å finne ut primærnøkkelen. Det kan aldri være et forhold uten kandidatnøkkel.
La oss forstå kandidatnøkkelen med et eksempel. Hvis vi legger til noen flere attributter til Studentrelasjon, diskuterte jeg ovenfor.
Student {ID, Fornavn, Etternavn, Alder, Adresse, DOB, Avdelingsnavn}
Her kan jeg finne ut to kandidatnøkler som er {ID}, {First_name, Last_name, DOB} . Så du kan forstå kandidatnøklene er en som unikt identifiserer en tuple i et forhold.
Viktige forskjeller mellom primær og kandidatnøkkel
- Det grunnleggende punktet som skiller primærnøkkel fra kandidatnøkkelen er at det kun kan være en primær for et forhold i et skjema. Det kan imidlertid være flere kandidatnøkler for et enkelt forhold.
- Attributtet under primærnøkkel kan aldri inneholde en NULL-verdi, da hovedfunksjonen til primærnøkkelen er å unikt identifisere en post i relasjon. Selv en primærnøkkel kan brukes som fremmednøkkel i andre forhold, og det må derfor ikke være NULL, slik at referanseforhold kan finne tuplene i en referert relasjon. Kandidatnøkkelen kan være NULL, med mindre attributtbegrensningen er spesifisert ikke null.
- Det er valgfritt å angi en primærnøkkel, men det kan ikke være et forhold uten kandidatnøkler.
- Primærnøkkel beskriver det unike og viktigste attributten til et forhold, mens kandidatnøklene gir kandidatene, blant hvilke man kan velges som en primærnøkkel.
- Hver primærnøkkel er en kandidatnøkkel, men omvendt er ikke sant.
Konklusjon:
Det er valgfritt for et forhold å angi en primærnøkkel. På den annen side, hvis du erklærer et forhold, må kandidatnøkler være til stede i det forholdet for å bygge et godt forhold.