Differenza tra chiave esterna e chiave primaria
chiave esterna o chiave primaria
Una colonna o un insieme di colonne che possono essere utilizzati per identificare o accedere a una riga o ad un insieme di righe in un database è chiamato 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 è utilizzata per attraversare le tabelle di riferimento.
Che cosa è la chiave primaria?
La chiave primaria è una colonna o una combinazione di colonne che definiscono 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 implicito NOT NULL. Quindi una colonna che è definita come chiave primaria non può avere i valori NULL in esso. La chiave primaria può essere un attributo normale nella tabella che è garantita per essere univoco come un numero di sicurezza sociale o potrebbe essere un valore univoco generato dal sistema di gestione del database, ad esempio un GUID in Microsoft SQL Server. Le chiavi primarie sono definite tramite il vincolo PRIMARY KEY in ANSI SQL Standard. È anche possibile definire la chiave primaria quando si crea la tabella. SQL consente alla chiave primaria di essere costituita da una o più colonne e ogni colonna inclusa nella chiave primaria è implicitamente definita per NON NULL. Ma alcuni sistemi di gestione dei database richiedono che le colonne chiave primarie non siano espressamente NULL.
Che cosa è la chiave straniera?
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 si riferisce ad un insieme di colonne in un'altra tabella, denominato tabella a cui fa riferimento. La chiave esterna o le colonne nella tabella di riferimento devono essere la chiave primaria o un tasto candidato (un tasto che può essere utilizzato come chiave primaria) nella tabella referenziata. Le chiavi esterne vengono utilizzate per collegare i dati tra diverse tabelle. Di conseguenza, la chiave estera non può contenere valori che non appaiono nella tabella a cui si riferisce. Quindi il riferimento fornito dalla chiave estera può essere utilizzato per collegare le informazioni in diverse tabelle e questo diventerà essenziale con database normalizzati. Le righe multiple nella tabella di riferimento possono riferirsi a una singola riga nella tabella a cui fa riferimento. Nello standard ANSI SQL, le chiavi esterne vengono definite usando il vincolo FOREIGN KEY. Inoltre, le chiavi esterne possono essere definite quando si crea la tabella stessa. Una tabella può avere più chiavi esterne e possono fare riferimento a diverse tabelle.
Qual è la differenza tra chiave esterna e chiave primaria?
La differenza principale tra chiave primaria e chiave esterna è che la chiave primaria è una colonna o un insieme di colonne che possono essere utilizzate per identificare in modo univoco una riga in una tabella mentre la chiave esterna è una colonna o un insieme di colonne che si riferiscono a una chiave primaria o ad una chiave candidata di un altro tavolo.La chiave esterna fornisce principalmente un metodo per collegare le informazioni in diverse tabelle. Un'altra differenza è che una tabella può avere una singola chiave primaria, ma può avere più chiavi esterne che possono fare riferimento a diverse tabelle.