Differenza tra chiave esterna e chiave primaria

Il differenza fondamentale tra chiave esterna e chiave primaria è quella La chiave esterna è una colonna o un insieme di colonne che fanno riferimento a una chiave primaria oa una chiave candidata di un'altra tabella, mentre la chiave primaria è una colonna o un insieme di colonne che possono essere utilizzate per identificare in modo univoco una riga in una tabella.

Una colonna o una serie di colonne che possono essere utilizzate per identificare o accedere a una riga oa un gruppo di righe in un database è chiamata chiave. Una chiave primaria in un database relazionale è una combinazione di colonne in una tabella che identificano in modo univoco una riga della tabella. La chiave esterna in un database relazionale è un campo in una tabella che corrisponde alla chiave primaria di un'altra tabella. La chiave esterna viene utilizzata per incrociare le tabelle di riferimento.

CONTENUTO

1. Panoramica e differenza chiave
2. Cos'è la chiave esterna
3. Qual è la chiave primaria
4. Confronto affiancato: chiave esterna e chiave primaria in formato tabulare
5. Sommario

Cos'è la chiave esterna?

La chiave esterna è un vincolo referenziale tra due tabelle. Identifica una colonna o un insieme di colonne in una tabella, chiamata tabella di riferimento che fa riferimento a un insieme di colonne in un'altra tabella, chiamata tabella di riferimento. La chiave esterna o le colonne nella tabella di riferimento devono essere la chiave primaria o una chiave candidata (una chiave che può essere utilizzata come chiave primaria) nella tabella di riferimento. Inoltre, le chiavi esterne consentono il collegamento di dati su più tabelle. Pertanto, la chiave esterna non può contenere valori che non compaiono nella tabella a cui si riferisce. Quindi il riferimento fornito dalla chiave esterna consente di collegare le informazioni in più tabelle e ciò diventerebbe essenziale con i database normalizzati. Più righe nella tabella di riferimento possono fare riferimento a una singola riga nella tabella di riferimento.

Figura 01: mappatura delle chiavi esterne

Nello standard ANSI SQL, il vincolo FOREIGN KEY definisce le chiavi esterne. Inoltre, è possibile definire le chiavi esterne durante la creazione del tavolo stesso. Una tabella può avere più chiavi esterne e possono fare riferimento a tabelle diverse.

Qual è la chiave primaria?

La chiave primaria è una colonna o una combinazione di colonne che definisce in modo univoco una riga in una tabella di un database relazionale. Una tabella può avere al massimo una chiave primaria. La chiave primaria applica il vincolo NOT NOT implicito. Pertanto, una colonna con chiave primaria non può contenere valori NULL. La chiave primaria può essere un normale attributo nella tabella che è garantito come un numero di previdenza sociale, o potrebbe essere un valore univoco generato dal sistema di gestione del database come un identificatore univoco globale (GUID) in Microsoft SQL Server.

Figura 02: chiave primaria

Inoltre, il vincolo PRIMARY KEY in ANSI SQL Standard definisce le chiavi primarie. È anche possibile definire una chiave primaria durante la creazione della tabella. Oltre a ciò, SQL consente alla chiave primaria di essere costituita da una o più colonne e ogni colonna inclusa nella chiave primaria viene implicitamente definita come NOT NULL. Ma alcuni sistemi di gestione dei database richiedono di rendere esplicitamente NOT NULL le colonne della chiave primaria.

Qual è la differenza tra chiave esterna e chiave primaria?

 Chiave esterna e chiave primaria

Chiave esterna è una colonna o un gruppo di colonne in una tabella del database relazionale che fornisce un'associazione tra i dati in due tabelle. La chiave primaria è una colonna della tabella del database relazionale speciale o una combinazione di più colonne che consente di identificare in modo univoco tutti i record della tabella.
NULLO
La chiave esterna accetta il valore NULL. Il valore della chiave primaria non può essere NULL.
Numero di chiavi
La tabella può avere più chiavi esterne. La tabella può avere solo una chiave primaria.
  Duplicazione
Le tuple possono avere un valore duplicato per un attributo di chiave esterna. Due tuple in una relazione non possono avere valori duplicati per un attributo chiave primaria.

Riepilogo: chiave esterna e chiave primaria

La differenza tra la chiave esterna e la chiave primaria è che la chiave esterna è una colonna o un insieme di colonne che fanno riferimento a una chiave primaria oa una chiave candidata di un'altra tabella, mentre la chiave primaria è una colonna o un insieme di colonne che possono essere utilizzate in modo univoco identificare una riga in una tabella.

Riferimento:

1. "Chiave straniera". Wikipedia, Wikimedia Foundation, 12 maggio 2018. Disponibile qui  
2. "Chiave primaria". Wikipedia, Wikimedia Foundation, 3 aprile 2018. Disponibile qui 

Cortesia dell'immagine:

1.'Foreign-Key-Mapping'By MovGP0 - Opera propria, (CC BY-SA 3.0) attraverso Commons Wikimedia  
2.'Erd-id-as-primary-key'di UniCollab - Opera propria, (CC BY-SA 3.0) attraverso Commons Wikimedia