Recomandat, 2020

Alegerea Editorului

Diferența dintre cheia primară și cheia unică

Am studiat deja diferite tipuri de chei utilizate în baza de date și schema din articolele anterioare, și anume Diferența dintre cheia primară și cheia străină. În acest articol, distingem cheia primară și cheia unică. Atât cheia primară, cât și cheia unică sunt folosite pentru a identifica o tuplă unică și pentru a impune unicitatea într-o coloană sau într-o combinație a unei coloane.

Diferența esențială dintre cheia primară și cheia unică este aceea că cheia primară nu acceptă valori NULL, în timp ce valorile NULL sunt permise în cadrul constrângerilor cheie unice.

Diagramă de comparație

Bazele de comparațieCheia principalaCheie unică
De bazăAcesta este folosit pentru a servi ca un identificator unic pentru fiecare rând dintr-un tabel.De asemenea, determină în mod unic un rând, care nu este definit ca o cheie primară.
Acceptarea valorii NULLCheia primară nu acceptă valori NULL.Unic va accepta o valoare NULL.
Numărul de taste care pot fi definite în tabelNumai o cheie primarăMai mult de o
IndexCreează indexul grupatCreează un index nesubstituit

Definiția cheie primară

O coloană poate fi numită ca o cheie primară a tabelului său dacă identifică în mod unic fiecare tuplă (rând) din acel tabel. El impune constrângerilor de integritate la masă. Numai o cheie primară este permisă într-un tabel. Cheia primară nu acceptă valorile duplicat și NULL. Cheia primară este aleasă cu grijă în cazul în care modificările pot apărea într-o raritate, înseamnă că o cheie primară dintr-un tabel se modifică foarte rar.

Să înțelegem noțiunea de cheie primară cu ajutorul unei mese. Aici creăm o tabelă numită Tabel de studenți, care are atribute, cum ar fi numărul de rolă, numele, lotul, numărul de telefon, numărul de cetățean.

În exemplul dat, numărul rolurilor atributului nu poate avea niciodată valoare identică și NULL, deoarece fiecare student înscris într-o universitate cu un număr Roll unic. Nici doi studenți nu pot avea același număr Roll_number, iar fiecare rând dintr-un tabel este identificat în mod unic cu numărul de roluri al studenților. Deci, putem face atributul Roll_number drept cheie primară în acest caz particular.

O cheie primară poate fi menționată de o cheie străină. Creează un indice cluster unic pe masă. Într-un index grupat, rândurile de date sunt sortate și stocate într-un tabel sau vizualizări pe baza valorilor-cheie. Pot exista un singur indice cluster într-un tabel, motivul din spatele căruia este faptul că o rânduri de date dintr-un tabel pot fi sortate într-o singură ordine.

Definiția Unique key

Similar cu o cheie primară, constrângerile cheie unice identifică de asemenea o tuplă individuală unic într-o relație. Dar, există anumite diferențe între ele. O masă poate avea mai multe chei unice. Constrângerile cheie unice pot accepta o singură valoare NULL pentru o coloană.

Să înțelegem acest lucru cu exemplul similar, unde am avut un tabel Student cu numere Roll_number, Nume, Lot, Număr_număr și Citizen_ID. Atributul numărului de role este asociat cu cheia primară.

Aici Citizen_ID pot fi atribuite constrângeri unice în care fiecare intrare într-o coloană Citizen_ID trebuie să fie unică, nu duplicată, deoarece fiecare cetățean al unei țări trebuie să aibă numărul său unic de identificare. Dar, dacă un student migrează dintr-o altă țară, în acest caz, el sau ea nu ar avea Citizen_ID, iar intrarea ar putea avea o valoare NULL, deoarece un NULL este permis în constrângerea unică.

Constrângerile unice sunt de asemenea menționate de cheia externă. Poate fi folosit atunci când cineva dorește să impună restricții asupra unei coloane și a unui grup de coloane care nu este o cheie primară. Spre deosebire de cheia primară, acesta generează indicele fără cluster . Indicii non-clustered au o structură distinctă față de rândurile de date. Fiecare intrare cheie-valoare în ea indică rândul de date care conține valoarea cheie, prin urmare, folosește indicii.

Diferențe cheie între cheia primară și cheia unică

  1. Atunci când un atribut declarat ca cheie primară, nu va accepta valori NULL. Pe de altă parte, atunci când un atribut declarat ca unic poate accepta o valoare NULL.
  2. O tabelă poate avea numai cheie primară, în timp ce pe o masă pot exista mai multe constrângeri unice.
  3. Un indice Cluster creat automat atunci când este definită o cheie primară. În contrast, cheia unică generează indicele fără cluster.

Concluzie

Cheia primară și cheia unică servesc scopul identificatorului unic pentru rândurile unui tabel cu valorile unice dintr-o coloană sau un grup de coloane. Aceste constrângeri cheie sunt diferențiate semnificativ în cazul în care fiecare tabel poate avea cel mult o cheie primară, în timp ce un tabel poate avea mai multe chei unice care nu sunt primare.

Top