Prima di imparare la differenza tra chiave primaria e chiave esterna, impariamo:
Cosa sono le chiavi?
Le chiavi sono attributi che ti aiutano a identificare una riga (tupla) in una relazione (tabella). Ti permettono di trovare la relazione tra due tabelle. Le chiavi consentono di identificare in modo univoco una riga in una tabella mediante una combinazione di una o più colonne in quella tabella. La chiave del database è utile anche per trovare un record o una riga univoca dalla tabella.
Che cos'è la relazione con il database?
La relazione del database è costituita da associazioni tra una o più tabelle create utilizzando istruzioni di join. Viene utilizzato per recuperare in modo efficiente i dati dal database. Esistono principalmente tre tipi di relazioni: 1) Uno a uno, 2) Uno a molti, 3) Molti a molti.
Cos'è la chiave primaria?
Un vincolo di chiave primaria è una colonna o un gruppo di colonne che identifica in modo univoco ogni riga nella tabella del sistema di gestione del database relazionale. Non può essere un duplicato, il che significa che lo stesso valore non dovrebbe apparire più di una volta nella tabella.
Una tabella può avere più di una chiave primaria. La chiave primaria può essere definita a livello di colonna o di tabella. Se crei una chiave primaria composta, dovrebbe essere definita a livello di tabella.
Cos'è la chiave esterna?
La chiave esterna è una colonna che crea una relazione tra due tabelle. Lo scopo della chiave esterna è mantenere l'integrità dei dati e consentire la navigazione tra due diverse istanze di un'entità. Funge da riferimento incrociato tra due tabelle poiché fa riferimento alla chiave primaria di un'altra tabella. Ogni relazione nel database dovrebbe essere supportata da una chiave esterna.
PRINCIPALI DIFFERENZE:
- Un vincolo di chiave primaria è una colonna che identifica in modo univoco ogni riga nella tabella del sistema di gestione del database relazionale, mentre la chiave esterna è una colonna che crea una relazione tra due tabelle.
- La chiave primaria non accetta mai valori nulli mentre la chiave esterna può accettare più valori nulli.
- Puoi avere solo una singola chiave primaria in una tabella mentre puoi avere più chiavi esterne in una tabella.
- Il valore della chiave primaria non può essere rimosso dalla tabella padre mentre il valore del valore della chiave esterna può essere rimosso dalla tabella figlio.
- Due righe non possono avere valori identici per una chiave primaria, mentre una chiave esterna può contenere valori duplicati.
- Non ci sono limitazioni nell'inserimento dei valori nella colonna della tabella durante l'inserimento di qualsiasi valore nella tabella della chiave esterna, assicurarsi che il valore sia presente in una colonna di una chiave primaria.
Perché utilizzare la chiave primaria?
Ecco i contro / vantaggi dell'utilizzo della chiave primaria:
- Lo scopo principale della chiave primaria è identificare ogni record nella tabella del database.
- È possibile utilizzare una chiave primaria quando non si consente a qualcuno di immettere valori nulli.
- Se elimini o aggiorni i record, verrà eseguita l'azione specificata per garantire l'integrità dei dati.
- Esegui l'operazione di limitazione per rifiutare l'operazione di eliminazione o aggiornamento per la tabella padre.
- I dati sono organizzati in una sequenza di indice cluster ogni volta che si organizza fisicamente la tabella DBMS.
Perché utilizzare la chiave esterna?
Ecco i motivi importanti per utilizzare la chiave esterna:
- Le chiavi esterne ti aiutano a migrare le entità utilizzando una chiave primaria dalla tabella padre.
- Una chiave esterna consente di collegare due o più tabelle insieme.
- Rende i dati del database coerenti.
- Una chiave esterna può essere utilizzata per abbinare una colonna o una combinazione di colonne con la chiave primaria in una tabella padre.
- Il vincolo di chiave esterna SQL viene utilizzato per assicurarsi che l'integrità referenziale del genitore di dati corrisponda ai valori nella tabella figlio.
Esempio di chiave primaria
Sintassi:
Di seguito è riportata la sintassi della chiave primaria:
CREATE TABLE(Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);
Qui,
- Table_Name è il nome della tabella che devi creare.
- Column_Name è il nome della colonna con la chiave primaria.
Esempio:
StudID | Rotolo n | Nome di battesimo | Cognome | |
---|---|---|---|---|
1 | 11 | Tom | Prezzo | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
2 | 12 | Nick | Wright | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
3 | 13 | Dana | Natan | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
Nell'esempio sopra, abbiamo creato una tabella studenti con colonne come StudID, Roll No, First Name, Last Name ed Email. StudID viene scelto come chiave primaria perché può identificare in modo univoco altre righe nella tabella.
Esempio di chiave esterna
Sintassi:
Di seguito è riportata la sintassi della chiave esterna:
CREATE TABLE