Diferența dintre cheia primară și cea cheie străină

Într-un sistem relațional de gestionare a bazelor de date (RDBMS), datele sunt stocate în tabele. Întrucât o cantitate uriașă de date este stocată în tabele, există întotdeauna posibilitatea ca datele să devină neorganizate sau să conțină duplicate. De asemenea, atunci când trebuie să regăsim datele în conformitate cu cerințele noastre din aceste date uriașe, sarcina devine dificilă. Conceptul de cheie este utilizat în RDBMS pentru a identifica înregistrările din tabel din mii de rânduri de date. De asemenea, utilizarea cheii ajută la stabilirea relației dintre tabele, astfel încât datele să poată fi trimise din diverse tabele. Deci, Sistemul de gestionare a bazelor de date relaționale menține integritatea la nivel de tabel, precum și integritatea referențială. În acest articol, vom examina în detaliu diferența dintre cheia primară și cea străină.

Cheia primară dintr-un tabel identifică înregistrările în mod unic, iar Cheia externă se referă la Cheia primară a unui alt tabel. Să luăm exemplul a două tabele: tabelele angajaților și salariilor pentru a înțelege conceptele de cheie primară și cea externă. Dacă tabelul Angajat are cheia primară ca Employee_ID, atunci o coloană Employee_ID trebuie să fie prezentă în tabelul Salariilor, deoarece trebuie să aibă o relație între aceste două tabele, având o cheie străină în tabelul Salariului care se poate referi la Cheia primară a tabelul angajaților.

Comparație față în cap între cheie primară și cheie străină (infografie)

Mai jos se află primele 6 diferențe între Cheia primară și Cheia externă:

Diferențele cheie între cheia primară și cheia străină

Să discutăm unele dintre diferențele cheie majore între Cheia primară și Cheia externă:

  • Cheia primară identifică înregistrările într-un tabel în mod unic, în timp ce Cheia străină este utilizată pentru a lega tabelele, adică se referă la Cheia primară a unui alt tabel.
  • Coloana cheie primară dintr-un tabel nu poate avea valori nule și ar trebui să aibă întotdeauna valori unice. Dar cheia externă din tabel poate conține valori nule și, de asemenea, poate avea valori duplicate.
  • Un tabel poate avea o singură cheie primară, în timp ce poate exista mai mult de o cheie externă pentru o tabelă.
  • Indicele este creat automat pentru cheia primară, în timp ce, pentru cheia externă, indexurile nu sunt create automat.
  • Este ușor de șters constrângerea cheii externe, deși se referă la cheia primară. Dar ștergerea constrângerii cheie primară poate crea înregistrări cu înregistrări ale copiilor care nu au înregistrare părintească.

Tabelul de comparație al cheii primare și al cheii externe

Tabelul de mai jos rezumă comparațiile dintre Cheia Primară și Cheia Străină:

Cheia principalaCheie externă
Cheia primară a unui tabel din RDBMS poate fi o singură coloană sau poate cuprinde mai mult de o coloană care este utilizată pentru a identifica în mod unic fiecare rând dintr-un tabel. În cazul cheii primare constând din mai multe coloane, datele de la fiecare coloană sunt utilizate pentru a decide unicitatea unei rânduri. Un tabel din RDMBS poate avea o singură cheie primară.Cheia externă poate fi o singură coloană sau poate consta din mai multe coloane dintr-un tabel care este utilizat pentru a face referire la cheia primară a altei tabele. Cheia externă poate fi folosită pentru a conecta tabelele din RDBMS. Spre deosebire de atributul cheie primară, un tabel din RDBMS poate avea mai mult de o cheie străină.
Există câteva condiții care ar trebui să fie satisfăcute pentru ca o coloană să fie o cheie primară într-un tabel. Una dintre condiții este ca cheia primară să conțină o valoare unică pentru fiecare înregistrare. Deci, un tabel din RDBMS nu poate fi permis să aibă valori duplicate pentru două rânduri pentru atributul cheie primară.Spre deosebire de cheia primară a unui tabel din RDBMS, Cheia străină poate conține valori duplicate. Aceasta permite a avea valori duplicate pentru rândurile unui tabel pentru atributul cheii străine.
Cealaltă condiție a unei coloane care trebuie să fie o cheie primară este aceea că aceasta nu ar trebui să conțină valori nule.Dar cheia externă a unui tabel din RDBMS poate conține valori nule.
O cheie primară este specificată în timpul definirii tabelului și este obligatorie definirea cheii primare.Spre deosebire de cheia primară, nu există o definiție specifică a tabelului pentru a indica o cheie ca cheie străină.
Nu este posibilă ștergerea constrângerii cheii primare dintr-o tabelă părinți cu cheia străină a tabelului copil care se referă la ea. Deci, Tabelul Copilului trebuie șters mai întâi înainte de a șterge tabelul Părinților.Dar dacă trebuie să ștergem constrângerea cheii externe dintr-un tabel, ea poate fi ștearsă din tabelul copil, chiar dacă se referă la cheia primară a tabelului părinte.

Cheia primară este indexată automat, adică Cheia primară este stocată într-un index pentru un tabel și acest index ajută la administrarea cerinței de unicitate și, din această cauză, valorile cheie străine sunt ușor trimise la valorile cheie primară corespunzătoare.În cazul unei chei străine, indexurile nu sunt create automat și, de obicei, administratorul bazei de date le definește.

Concluzie

Cheile primare și externe nu numai că implementează diferite tipuri de integritate, ci creează relații între tabele. Tastele primare și străine se asigură, de asemenea, că coloanele create pentru relația trebuie să conțină valori de potrivire și înregistrările unice sunt păstrate în tabel. Sistemul relațional de gestionare a bazelor de date funcționează eficient datorită prezenței cheii primare și a celor externe.

Restrângerea cheii primare ajută la aplicarea automată a integrității datelor, deoarece împiedică introducerea sau actualizarea rândului duplicat de date. Folosind restricțiile cheii, de asemenea, împiedică ștergerea rândului din tabelul cheie primară din tabelul părinte, astfel încât nu sunt create astfel de înregistrări copil pentru care nu există înregistrare părinte. De asemenea, atunci când un rând în referință la cheia primară este șters sau actualizat în tabelul părinte, integritatea referențială este menținută de cheia străină. Tastele au un rol vital în stabilirea legăturilor între tabelele bazei de date și, de asemenea, în cadrul tabelului.

Articole recomandate

Acesta este un ghid pentru cheia primară și cheia externă. Aici discutăm diferențele de cheie primară și cheie externă cu infografie și tabel de comparație. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. WebLogic vs WebSphere
  2. ROLAP vs MOLAP vs HOLAP
  3. GoCD vs Jenkins
  4. Datorii vs Finanțarea capitalurilor proprii