Recomandat, 2024

Alegerea Editorului

Diferența dintre cheia primară și cea candidată

Cheile sunt atributul sau un set de atribute care sunt folosite pentru a accesa nodurile dintr-o tabelă sau sunt, de asemenea, folosite pentru a construi o relație între două tabele. În acest articol, vom discuta cheia primară și candidată și diferențele dintre ele. Atât cheia primară, cât și cea candidată identifică în mod unic o tuplă într-o relație sau într-o masă. Dar cel mai important punct care le diferențiază este că poate exista o singură cheie primară într-o relație. Cu toate acestea, pot exista mai multe chei candidate într-o relație.

Există mai multe diferențe între cheia primară și cea candidată, pe care o voi discuta cu ajutorul graficului de comparație prezentat mai jos.

Diagramă de comparație

Bazele comparațieiCheia principalaCheia candidatului
De bazăPot exista o singură cheie primară în orice relație.Pot exista mai multe chei candidate într-o relație.
NULNiciun atribut al unei taste primare nu poate conține valoare NULL.Atributul unei taste candidat poate avea valoare NULL.
SpecificaEste opțional să specificați o cheie primară pentru orice relație.Nu poate exista o relație fără cheia candidatului specificată.
CaracteristicăCheia primară descrie cel mai important atribut al relației.Testele candidate prezintă candidații care se pot califica pentru cheia primară.
ViceversaO cheie primară este o cheie candidată.Dar nu este obligatoriu ca fiecare cheie candidată să fie o cheie primară.

Definiția Primary Key

Cheia primară este un atribut sau un set de atribute care vor identifica în mod unic fiecare tuplă dintr-o relație. Există o singură cheie primară pentru fiecare relație. Trebuie avut grijă ca o cheie primară să nu conțină niciodată o valoare NULL și trebuie să aibă valoarea unică pentru fiecare tuplă în relație. Valorile atributului / silor cheii primare trebuie să fie statice, adică valoarea atributului nu ar trebui niciodată sau rareori să se schimbe.

Unul dintre cheile candidate se califică pentru a deveni o cheie primară. Regulile pe care o cheie candidată trebuie să le îndeplinească pentru a deveni primare sunt că valoarea-cheie nu ar trebui să fie niciodată NULL și trebuie să fie unică pentru toate tuplurile.

Dacă o relație conține un atribut care este o cheie primară a unei alte relații, atunci acel atribut se numește cheie străină .

Se recomandă să dați seama de cheia primară a unei relații înainte de a introduce alte atribute ale unei relații, deoarece cheia primară identifică fiecare tuplă în mod unic. Este mai bine să alegeți un singur atribut sau un număr mic de atribute ca cheie primară, ceea ce ușurează manipularea relației.

Acum, să vedem un exemplu de cheie primară.

 Student {ID, First_name, Last_name, Age, Address} 

Aici vom găsi mai întâi cheile candidate. Am identificat două chei candidate {ID} și {First_name, Last_name} deoarece acestea vor identifica în mod unic fiecare student în relația Student. Acum, aici voi alege ID-ul ca cheia mea primară deoarece, uneori, se poate întâmpla ca doi studenți să aibă același nume și prenume, astfel încât va fi ușor să găsiți un student cu identitatea sa.

Definiția Candidate Key

O cheie candidat este un atribut sau un set de atribut care definesc în mod unic o tuplă într-o relație. Există mai multe chei candidate într-o relație. Aceste chei candidate sunt candidații care se pot califica pentru a deveni o cheie primară.

Deși fiecare cheie candidată se califică pentru a deveni o cheie primară, numai una poate fi aleasă ca o cheie primară. Regulile pe care o cheie candidată trebuie să le devină cheie primară sunt valoarea atributului cheii nu poate fi niciodată NULL în niciun domeniu al cheii, trebuie să fie unică și statică .

Dacă toate cheile candidate se califică pentru cheia primară, atunci un DBA cu experiență trebuie să ia decizia de a afla cheia primară. Nu poate exista niciodată o relație fără cheia candidatului.

Să înțelegem cheia candidatului cu un exemplu. Dacă adăugăm mai multe atribute la relația Student, am discutat mai sus.

 Student {ID, First_name, Last_name, Age, Address, DOB, Department_name} 

Aici găsesc două chei candidate care sunt {ID}, {First_name, Last_name, DOB} . Deci, puteți înțelege cheile candidate care sunt acelea care identifică în mod unic o tuplă într-o relație.

Diferențe cheie între cheia primară și cea candidată

  1. Punctul de bază care diferențiază cheia primară de cheia candidat este acela că există o singură primă pentru orice relație într-o schemă. Cu toate acestea, pot exista mai multe chei candidate pentru o singură relație.
  2. Atributul din cheia primară nu poate conține niciodată o valoare NULL, deoarece funcția principală a cheii primare este identificarea unică a unei înregistrări în relație. Chiar și o cheie primară poate fi folosită ca cheie străină în altă relație și, prin urmare, nu trebuie să fie NULL, astfel încât relația de referință să găsească tuplurile într-o relație de referință. Cheia candidatului poate fi NULL dacă nu este specificată constrângerea atributului nu este nulă.
  3. Este opțional să specificați o cheie primară, dar nu poate exista o relație fără chei candidate.
  4. Cheia primară descrie atributul unic și cel mai important al unei relații, în timp ce tastele candidate oferă candidații, printre care se poate selecta o cheie primară.
  5. Fiecare cheie primară este o cheie candidată, dar invers nu este adevărată.

Concluzie:

Este opțional pentru o relație să specificați o cheie primară. Pe de altă parte, dacă declarați o relație, cheile candidate trebuie să fie prezente în acea relație pentru a construi o relație bună.

Top