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

Autor: Laura McKinney
Data Creației: 1 Aprilie 2021
Data Actualizării: 5 Mai 2024
Anonim
Diferența dintre Ninja și Samurai
Video: Diferența dintre Ninja și Samurai

Conţinut


Tastele sunt atributul sau un set de atribute care sunt utilizate pentru a accesa tuplurile dintr-o tabelă sau sunt de asemenea folosite pentru a construi o relație între două tabele. În acest articol, vom discuta despre cheia primară și candidatul și diferențele dintre acestea. Atât cheia primară cât și cea cheie a candidaților identifică în mod unic un tuple într-o relație sau tabel. Dar, cel mai important punct care le diferențiază este faptul că poate exista doar unul cheia principala într-o relație. Cu toate acestea, pot exista mai multe cheie de candidat într-o relație.

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

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațieCheia principalaCheia candidatului
De bazăÎn orice relație poate exista o singură cheie primară.Poate exista mai mult de o cheie de candidat într-o relație.
NULNiciun atribut al unei chei primare nu poate conține valoare NULL.Atributul unei chei Candidate 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ă specificarea cheii de candidat.
CaracteristicăCheia primară descrie cel mai important atribut pentru relație.Cheile candidaților prezintă candidații care se pot califica pentru cheia primară.
ViceversaO cheie primară este o cheie de candidat.Dar nu este obligatoriu ca fiecare cheie de candidat să fie o cheie primară.


Definiția Primary Key

Cheia principala este un atribut sau un set de atribute care vor identifica în mod unic fiecare tuple dintr-o relație. Nu poate fi decât unu cheie primară pentru fiecare relație. Trebuie să aveți grijă ca o cheie primară nu contine un NUL valoare și trebuie să aibă unic valoare pentru fiecare tuple din relație. Valorile atributului / atributelor cheii primare trebuie să fie static, adică, valoarea atributului nu ar trebui niciodată sau mai rar schimbată.

Unul dintre Cheile candidatului devine calificat pentru a deveni o cheie primară. norme faptul că o cheie de candidat trebuie să fie calificată pentru a deveni primar este că valoarea cheie nu ar trebui să fie niciodată NUL și trebuie să fie unic pentru toate tuplurile.

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


Se recomandă să descoperiți cheia primară a unei relații înainte de a introduce alte atribute ale unei relații, deoarece cheia primară identifică fiecare tuple în mod unic. Este mai bine să alegeți un singur atribut sau un număr mic de atribute ca cheie primară, ceea ce face ușoară gestionarea relațiilor.

Acum să vedem un exemplu de cheie primară.

Student {ID, Prenume, Prenume, Vârstă, Adresă}

Aici vom descoperi mai întâi cheile candidatului. Mi-am dat seama Două cheile candidatului {ID} și {Prenumele, prenumele} întrucât vor identifica în mod unic fiecare elev în relația Student. Acum, aici voi alege ID-ul ca cheie principală pentru că uneori se poate întâmpla ca doi studenți să aibă aceleași nume și prenume, deci va fi ușor să urmărești un student cu ID-ul.

Definiția Candidate Key

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

Deși fiecare cheie de candidat se califică pentru a deveni cheie primară, doar una poate fi aleasă ca cheie primară. Normele pe care o cheie candidată necesită să devină cheia principală sunt valoarea atributului cheii nu poate fi niciodată NUL în orice domeniu al cheii, trebuie să fie unic și static.

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

Să înțelegem cheia candidatului cu un exemplu. Dacă adăugăm alte câteva atribute relației Student, am discutat mai sus.

Student {ID, Prenume, Prenume, Vârstă, Adresă, DOB, nume_departament}

Aici îmi dau seama Două chei de candidat care sunt {ID}, {Prenumele, prenumele, DOB}. Deci, puteți înțelege cheile candidatului sunt una care identifică în mod unic un tuple într-o relație.

  1. Punctul de bază care diferențiază cheia primară de cheia de candidat este faptul că poate exista o singură primară pentru orice relație dintr-o schemă. Cu toate acestea, pot exista mai multe chei de candidat pentru o singură relație.
  2. Atributul sub 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ță poate găsi tuplurile într-o relație de referință. Cheia de candidat poate fi NULL, cu excepția cazului în care constrângerea atributului este specificată nu nulă.
  3. Este opțională specificarea unei chei primare, dar nu poate exista o relație fără cheile de candidat.
  4. Tasta primară descrie atributul unic și cel mai important al unei relații, în timp ce, tastele candidat oferă candidaților dintre care unul poate fi selectat ca cheie primară.
  5. Fiecare cheie primară este o cheie de candidat, dar invers nu este adevărat.

Concluzie:

Este opțional pentru o relație specificarea unei chei primare. Pe de altă parte, dacă declarați o relație, cheile de candidat trebuie să fie prezente în această relație pentru a construi o relație bună.