Differenza tra chiave primaria e chiave esterna

In un sistema di gestione di database relazionali (RDBMS), i dati sono archiviati in tabelle. Poiché una grande quantità di dati viene archiviata nelle tabelle, esiste sempre la possibilità che i dati possano diventare non organizzati o contenere duplicati. Inoltre, quando abbiamo bisogno di recuperare i dati in base alle nostre esigenze da quei dati enormi, l'attività diventa difficile. Il concetto di chiave viene utilizzato in RDBMS per identificare i record nella tabella da migliaia di righe di dati. Inoltre, l'utilizzo di Key aiuta a stabilire la relazione tra le tabelle in modo che i dati possano essere referenziati tra le varie tabelle. Pertanto, la chiave del sistema di gestione di database relazionali mantiene l'integrità a livello di tabella e l'integrità referenziale. In questo articolo, esamineremo in dettaglio la differenza tra la chiave primaria e la chiave esterna.

La chiave primaria in una tabella identifica i record in modo univoco e la chiave esterna fa riferimento alla chiave primaria di un'altra tabella. Prendiamo l'esempio di due tabelle: tabelle Employee e Retribuzione per comprendere i concetti di chiave primaria ed estera. Se la tabella Employee ha la chiave primaria come Employee_ID, una tabella Employee_ID deve essere presente nella tabella degli stipendi poiché deve avere una relazione tra queste due tabelle avendo una chiave esterna nella tabella degli stipendi che può fare riferimento alla chiave primaria di la tabella Employee.

Confronto testa a testa tra chiave primaria e chiave esterna (infografica)

Di seguito sono riportate le 6 principali differenze tra chiave primaria e chiave esterna:

Differenze chiave tra chiave primaria e chiave esterna

Discutiamo alcune delle principali differenze chiave tra chiave primaria e chiave esterna:

  • La chiave primaria identifica i record in una tabella in modo univoco mentre la chiave esterna viene utilizzata per collegare le tabelle, ovvero fa riferimento alla chiave primaria di un'altra tabella.
  • La colonna Chiave primaria in una tabella non può avere valori Null e deve sempre avere valori univoci. Ma la chiave esterna nella tabella può contenere valori Null e può anche avere valori duplicati.
  • Una tabella può avere solo una chiave primaria mentre può esserci più di una chiave esterna per una tabella.
  • L'indice viene creato automaticamente per la chiave primaria mentre, per la chiave esterna, gli indici non vengono creati automaticamente.
  • È facile eliminare il vincolo di chiave esterna sebbene faccia riferimento alla chiave primaria. Ma l'eliminazione del vincolo chiave primaria può creare record con record figlio che non hanno record padre.

Tabella di confronto tra chiave primaria e chiave esterna

La tabella seguente riassume i confronti tra chiave primaria e chiave esterna:

Chiave primariaChiave esterna
La chiave primaria di una tabella in RDBMS può essere una singola colonna o può comprendere più di una colonna che viene utilizzata per identificare ciascuna riga in una tabella in modo univoco. Nel caso della chiave primaria costituita da più di una colonna, i dati di ciascuna colonna vengono utilizzati per decidere l'unicità di una riga. Una tabella in RDMBS può avere solo una chiave primaria.La chiave esterna può essere una singola colonna o può essere composta da più di una colonna in una tabella utilizzata per fare riferimento alla chiave primaria di un'altra tabella. La chiave esterna può essere utilizzata per collegare le tabelle in RDBMS. A differenza dell'attributo Chiave primaria, una tabella in RDBMS può avere più di una chiave esterna.
Esistono poche condizioni che devono essere soddisfatte affinché una colonna sia una chiave primaria in una tabella. Una delle condizioni è che la chiave primaria deve contenere un valore univoco per ciascun record. Pertanto, una tabella in RDBMS non può contenere valori duplicati per due righe per l'attributo Chiave primaria.A differenza della chiave primaria di una tabella in RDBMS, la chiave esterna può contenere valori duplicati. Ciò consente di avere valori duplicati per le righe di una tabella per l'attributo chiave esterna.
L'altra condizione di una colonna che soddisfa essere una chiave primaria è che non deve contenere valori Null.Ma la chiave esterna di una tabella in RDBMS può contenere valori Null.
Durante la definizione della tabella viene specificata una chiave primaria ed è obbligatorio definire la chiave primaria.A differenza della chiave primaria, non esiste una definizione di tabella specifica per indicare una chiave come chiave esterna.
Non è possibile eliminare il vincolo Chiave primaria da una tabella padre con la chiave esterna della tabella figlio ad essa riferita. Pertanto, la tabella figlio deve essere eliminata prima di eliminare la tabella padre.Tuttavia, se è necessario eliminare il vincolo di chiave esterna in una tabella, è possibile eliminarlo dalla tabella figlio anche se si riferisce alla chiave primaria della tabella padre.

La chiave primaria viene indicizzata automaticamente, ovvero la chiave primaria viene memorizzata in un indice per una tabella e questo indice aiuta a gestire il requisito di unicità e, di conseguenza, i valori della chiave esterna vengono facilmente riferiti ai corrispondenti valori della chiave primaria.Nel caso di una chiave esterna, gli indici non vengono creati automaticamente e generalmente l'amministratore del database li definisce.

Conclusione

Le chiavi primaria e esterna non solo implementano diversi tipi di integrità, ma creano anche relazioni tra le tabelle. Le chiavi primaria ed esterna assicurano inoltre che le colonne create per la relazione debbano contenere valori corrispondenti e che i record univoci siano mantenuti nella tabella. Il sistema di gestione del database relazionale funziona in modo efficiente grazie alla presenza della chiave primaria e esterna.

Il vincolo Chiave primaria aiuta ad applicare automaticamente l'integrità dei dati poiché impedisce di inserire o aggiornare una riga duplicata di dati. Usando i vincoli chiave impedisce anche di eliminare la riga dalla tabella chiave primaria dalla tabella padre in modo che non vengano creati tali record figlio per i quali non esiste alcun record padre. Inoltre, quando una riga in riferimento alla chiave primaria viene eliminata o aggiornata nella tabella padre, l'integrità referenziale viene mantenuta dalla chiave esterna. Le chiavi hanno un ruolo vitale nello stabilire collegamenti tra le tabelle del database e anche all'interno della tabella.

Articoli consigliati

Questa è una guida per chiave primaria e chiave esterna. Qui discutiamo le differenze tra chiave primaria e chiave esterna con infografica e tabella di confronto. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. WebLogic vs WebSphere
  2. ROLAP vs MOLAP vs HOLAP
  3. GoCD vs Jenkins
  4. Debito vs finanziamento azionario

Categoria: