Differenza tra chiave primaria e chiave esterna
Entrambe le chiavi primarie e la chiave esterna sono utilizzate nei sistemi di gestione di database relazionali (RDBMS), dove la chiave primaria è un campo identificato in modo univoco che può essere usato come riferimento per mettere in relazione le tabelle nel sistema di database. D’altra parte, la chiave esterna non è un campo unico, e viene utilizzata per connettersi con la chiave primaria di qualche altra tabella all’interno dello stesso database. A differenza di una chiave primaria, un campo foreign key può contenere valori NULL.
Confronto Testa a Testa tra Chiave Primaria e Chiave Esterna (Infografica)
Di seguito le 6 principali differenze tra Chiave Primaria e Chiave Esterna:
Inizia il tuo corso gratuito di sviluppo software
Sviluppo web, linguaggi di programmazione, Test software & altri
Differenze tra chiave primaria e chiave esterna
Discutiamo alcune delle principali differenze tra chiave primaria e chiave esterna:
- La Chiave Primaria identifica i record di una tabella in modo univoco, mentre la Chiave Esterna è usata per collegare le tabelle, cioè, per esempio, la chiave esterna.e., la Chiave Primaria di un’altra tabella.
- La colonna Chiave Primaria in una tabella non può avere valori Null e deve sempre avere valori unici. Ma la Chiave Esterna nella tabella può contenere valori nulli e può anche avere valori duplicati.
- Una tabella può avere solo una Chiave Primaria, mentre ci può essere 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 cancellare il vincolo Chiave Esterna anche se si riferisce alla Chiave Primaria. Ma la cancellazione del vincolo della chiave primaria può creare record con record figli che non hanno un record padre.
Tabella di confronto tra Chiave Primaria e Chiave Esterna
La tabella sottostante riassume il confronto tra Chiave Primaria e Chiave Esterna:
Chiave primaria | Chiave esterna Key |
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 ogni riga di una tabella in modo univoco. Nel caso della chiave primaria composta da più di una colonna, i dati di ogni colonna sono usati 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ò consistere in più di una colonna in una tabella che viene utilizzata per fare riferimento alla Chiave Primaria di un’altra tabella. La Foreign Key può essere usata per collegare le tabelle in RDBMS. A differenza dell’attributo Chiave Primaria, una tabella in RDBMS può avere più di una Chiave Esterna. |
Ci sono alcune condizioni che devono essere soddisfatte perché una colonna sia una Chiave Primaria in una tabella. Una delle condizioni è che la chiave primaria deve contenere un valore unico per ogni record. Quindi una tabella in RDBMS non può avere valori duplicati per due righe per l’attributo Primary Key. | A differenza della Primary Key di una tabella in RDBMS, la Foreign Key può contenere valori duplicati. Questo permette di avere valori duplicati per le righe di una tabella per l’attributo foreign key. |
L’altra condizione di una colonna che soddisfa per essere una chiave primaria è che non deve contenere valori Null. | Ma la chiave esterna di una tabella in RDBMS può contenere valori Null. |
Una Chiave Primaria è specificata durante la definizione della tabella, ed è obbligatorio definire la Chiave Primaria. | A differenza della Chiave Primaria, non esiste una definizione specifica di tabella per indicare una Chiave Esterna. |
Non è possibile eliminare il vincolo di Chiave Primaria da una Tabella padre con la Chiave Esterna della Tabella figlia che fa riferimento ad essa. Quindi la tabella figlia deve essere cancellata prima di cancellare la tabella padre. | Ma se abbiamo bisogno di cancellare il vincolo di chiave esterna di una tabella, può essere cancellato dalla tabella figlia anche se si riferisce alla chiave primaria della tabella madre. |
La chiave primaria è indicizzata automaticamente, cioè la chiave primaria viene memorizzata in un indice per una tabella, e questo indice aiuta a gestire il requisito di unicità, e per questo, i valori della chiave esterna sono facilmente riferiti ai corrispondenti valori della chiave primaria. | In un caso di chiave esterna, gli indici non vengono creati automaticamente e di solito; l’amministratore del database li definisce. |
Conclusione
Le Chiavi Primarie ed Estere non solo implementano diversi tipi di integrità ma creano anche relazioni tra le tabelle. Le chiavi Primarie ed Estere assicurano anche che le colonne della relazione devono contenere valori corrispondenti, e che i record unici sono mantenuti nella tabella. Il sistema di gestione dei database relazionali funziona in modo efficiente grazie alla presenza della Chiave Primaria e della Chiave Esterna.
Il vincolo della Chiave Primaria aiuta ad applicare automaticamente l’integrità dei dati in quanto impedisce di inserire o aggiornare una riga di dati duplicata. L’uso dei vincoli chiave impedisce la cancellazione della riga dalla tabella della chiave primaria dalla tabella madre in modo che non vengano creati record figli per i quali non esiste un record padre. Inoltre, quando una riga in riferimento alla chiave primaria viene cancellata 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 alla Chiave Primaria vs Chiave Esterna. Qui discutiamo le differenze tra Chiave Primaria e Chiave Esterna con infografiche e tabelle di confronto. Puoi anche leggere gli altri articoli consigliati per saperne di più –
- WebLogic vs WebSphere
- ROLAP vs MOLAP vs HOLAP
- SQL Keys
- Travis vs Jenkins