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 confronto | Chiave primaria | Chiave unica |
---|---|---|
Di base | Viene 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 NULL | La chiave primaria non accetta valori NULL. | Unique accetterà un valore NULL. |
Numero di chiavi che possono essere definite nella tabella | Solo una chiave primaria | Più di una |
Indice | Crea indice cluster | Crea 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.
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.
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
- 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.
- Una tabella può avere solo la chiave primaria mentre ci possono essere più vincoli unici su una tabella.
- 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.