Raccomandato, 2024

Scelta Del Redattore

Differenza tra chiave primaria e chiave univoca

Abbiamo già studiato diversi tipi di chiavi utilizzate nel database e nello schema negli articoli precedenti, ovvero Differenza tra chiave primaria e chiave esterna. In questo articolo, distinguiamo la chiave primaria e la chiave univoca. Sia la chiave primaria che la chiave univoca vengono utilizzate per identificare una tupla in modo univoco e impone l'unicità in una colonna o in una combinazione di una colonna.

La differenza essenziale tra la chiave primaria e la chiave univoca è che la chiave primaria non accetta valori NULL mentre i valori NULL sono consentiti all'interno dei vincoli di chiave Univoci.

Grafico comparativo

Base per il confrontoChiave primariaChiave unica
Di baseViene utilizzato come identificatore univoco per ogni riga di una tabella.Determina anche in modo univoco una riga, che non è definita come una chiave primaria.
Accettazione del valore NULLLa chiave primaria non accetta valori NULL.Unique accetterà un valore NULL.
Numero di chiavi che possono essere definite nella tabellaSolo una chiave primariaPiù di una
IndiceCrea indice clusterCrea un indice non in cluster

Definizione della chiave primaria

Una colonna può essere chiamata come chiave primaria della sua tabella se identifica in modo univoco ogni tupla (riga) in quella tabella. Applica vincoli di integrità alla tabella. Solo una chiave primaria è consentita in una tabella. La chiave primaria non accetta i valori duplicato e NULL. La chiave primaria viene scelta con cura dove le modifiche possono verificarsi in modo raro, significa che una chiave primaria in una tabella cambia molto raramente.

Comprendiamo la nozione di chiave primaria con l'aiuto di una tabella. Qui stiamo creando una tabella denominata come tabella Studente, che ha attributi come Numero_roll, Nome, Batch, Numero telefonico, Citizen_ID.

Nell'esempio indicato, il numero di roll di attributi non può mai avere il valore NULL e identico, poiché ogni studente si è iscritto in un'università con un numero di rotolo univoco. Due studenti non possono avere lo stesso numero Roll e ogni riga in una tabella viene identificata in modo univoco con il numero del rotolo degli studenti. Quindi, possiamo rendere l'attributo Roll_number come una chiave primaria in questo caso particolare.

Una chiave primaria può essere referenziata da chiave esterna. Crea un indice cluster univoco sulla tabella. In un indice cluster le righe di dati vengono ordinate e memorizzate in una tabella o in viste in base ai relativi valori chiave. Può esserci un solo indice cluster in una tabella, la ragione di ciò è che le righe di dati in una tabella possono essere ordinate in un solo ordine.

Definizione di chiave unica

Simile a una chiave primaria, i vincoli di chiave Unica identificano anche una singola tupla in modo univoco in una relazione. Ma ci sono alcune differenze tra loro. Una tabella può avere più di una chiave univoca. I vincoli di chiave univoci possono accettare solo un valore NULL per una colonna.

Comprendiamo questo con l'esempio simile, in cui avevamo una tabella Studente con gli attributi Roll_number, Name, Batch, Phone_number e Citizen_ID. L'attributo numero di rollio è assegnato con la chiave primaria.

Qui Citizen_ID può essere assegnato con vincoli univoci in cui ogni voce in una colonna Citizen_ID deve essere univoca, non duplicata perché ogni cittadino di un Paese deve avere il proprio numero di identificazione Unico. Ma, se uno studente emigra da un altro paese, in quel caso, lui o lei non avrebbe il Citizen_ID e la voce potrebbe avere un valore NULL come un NULL è permesso nel vincolo univoco.

Anche i vincoli univoci fanno riferimento alla chiave esterna. Può essere utilizzato quando qualcuno vuole applicare vincoli su una colonna e un gruppo di colonne che non è una chiave primaria. A differenza della chiave primaria, genera l' indice non in cluster . Gli indici non in cluster hanno una struttura distinta dalle righe di dati. Ogni voce di valore chiave in essa punta alla riga di dati che contiene il valore della chiave, quindi utilizza i puntatori.

Differenze chiave tra la chiave primaria e la chiave univoca

  1. Quando un attributo è dichiarato come chiave primaria, non accetta valori NULL. D'altra parte, quando un attributo dichiarato come Unico può accettare un valore NULL.
  2. Una tabella può avere solo la chiave primaria mentre ci possono essere più vincoli unici su una tabella.
  3. Un indice cluster creato automaticamente quando viene definita una chiave primaria. Al contrario, la chiave Unique genera l'indice non in cluster.

Conclusione

La chiave primaria e la chiave univoca servono allo scopo di un identificatore univoco per le righe di una tabella con i valori univoci in una colonna o un gruppo di colonne. Questi vincoli chiave sono significativamente differenziati in cui ogni tabella può avere al massimo una chiave primaria mentre una tabella può avere più chiavi univoche che non sono primarie.

Top