Differenza tra chiave primaria e chiave esterna in DBMS

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 4 Maggio 2024
Anonim
Chiave primaria e chiave secondaria in tabella Access. Corso 2019
Video: Chiave primaria e chiave secondaria in tabella Access. Corso 2019

Contenuto


Le chiavi sono la parte cruciale del DBMS che vengono utilizzate per identificare e stabilire una relazione tra le tabelle in uno schema. Oggi discuteremo due chiavi molto importanti di DBMS, ovvero chiave primaria e chiave esterna, e discuteremo anche la differenza tra chiave primaria e chiave esterna. Sulla strada lascia che ti dica la differenza di base tra chiave primaria ed esterna che è la chiave primaria è una delle chiavi candidate scelte dal progettista del database mentre, una chiave esterna è una chiave che si riferisce alla chiave primaria di un'altra relazione.

Ci sono molte altre differenze tra questi due, identifichiamo tali differenze con l'aiuto della tabella di confronto mostrata di seguito.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoChiave primariaChiave esterna
Di baseChiave primaria è una chiave candidata scelta che definisce in modo univoco una tupla in una relazione.La chiave esterna in una tabella si riferisce alla chiave primaria dell'altra tabella.
NULLOIl valore della chiave primaria non può mai essere NULL.La chiave esterna accetta il valore NULL.
DuplicareNon ci sono due tuple in una relazione con valori duplicati per un attributo chiave primaria.Le tuple possono avere un valore duplicato per un attributo di chiave esterna.
GammaPuò esserci solo una chiave primaria di una relazione.Possono esserci più chiavi esterne in una relazione.
Tabella temporaneaIl vincolo chiave primaria può essere definito nelle tabelle temporanee.Il vincolo di chiave esterna non può essere definito nelle tabelle temporanee.
Indice clusterPer impostazione predefinita, una chiave primaria è indicizzata in cluster.La chiave esterna non viene raggruppata automaticamente indicizzata; deve essere fatto manualmente.
InserimentoÈ possibile inserire un valore in un attributo della chiave primaria, anche se la chiave esterna di riferimento non ha quel valore nella sua colonna.Non è possibile inserire un valore in una chiave esterna, se tale valore non è presente nella colonna chiave primaria di riferimento.
cancellazionePrima di eliminare un valore chiave primaria, assicurarsi che il valore non sia ancora presente nella colonna chiave esterna di riferimento della tabella di riferimento.È possibile eliminare un valore dalla colonna chiave esterna senza preoccuparsi, se tale valore è presente nella colonna chiave primaria referenziata della relazione referenziata.


Definizione di chiave primaria

Una chiave primaria univocamente definisce le tuple in una relazione. Può essere un singolo attributo in una relazione oppure può essere un insieme di attributi in una relazione. Il valore dell'attributo chiave primaria dovrebbe mai o raramente cambiato. Poiché è un principale, significa identificare qualsiasi record in un database. La modifica di qualsiasi valore di attributo della chiave primaria creerebbe confusione.

Il progettista di database sceglie uno dei chiavi candidate come chiave primaria, prendendo in considerazione alcuni punti. La prima considerazione è che un valore dell'attributo chiave primaria non può mai contenere NULLO valore. Perché, se un valore dell'attributo della chiave primaria contiene NULL, significa che non possiamo identificare quel record nella tabella. Inoltre, viola il vincolo di integrità dell'entità. La seconda considerazione è, non ci sono due tuple in una tabella può contenere il file stesso valore per un attributo chiave primaria, in quanto violerebbe l'unicità tra le tuple.


Ci può essere solo una chiave primaria per ogni relazione. La chiave primaria è di default cluster indicizzati, il che significa che tutte le tuple in una tabella sono ordinate, in base ai valori degli attributi delle chiavi primarie. Il vincolo chiave primaria può essere definito su a tabella temporanea. Le tabelle intermedie create durante l'esecuzione di una query sono chiamate tabelle temporanee.

Mentre eliminazione una tupla da una relazione, è necessario assicurarsi che il valore della chiave primaria della tupla eliminata non sia ancora presente nella colonna chiave esterna della relazione di riferimento. Mentre il inserimento non ha alcun vincolo su una chiave primaria.

La chiave primaria di una tabella quando viene utilizzata in un'altra tabella, diventa quindi chiave esterna per quella tabella. I vincoli di chiave esterna sono discussi di seguito.

Definizione di chiave esterna

Quando una relazione R1, tra i suoi attributi, ha a primario chiave di altra relazione R2, quindi viene chiamato quell'attributo Chiave esterna per relazione R1. La relazione R1 contenente la chiave esterna viene chiamato relazione di riferimento poiché fa riferimento alla chiave primaria della relazione R2 e della relazione R2 è chiamato relazione di riferimento.
A differenza della chiave primaria, la chiave esterna può accettare NULLO valori perché, non ha il compito di identificare distintamente un record in una relazione, poiché abbiamo la chiave primaria per questo. Allo stesso modo, accetta anche la chiave esterna valori duplicati.

Una relazione può avere multiplo chiavi esterne, in quanto può avere attributi diversi che sono chiavi primarie in relazioni diverse. Il vincolo di chiave esterna può non essere definito su tabelle temporanee, una chiave esterna è a cluster indicizzati attributo.

Mentre inserzione un valore in una colonna chiave esterna della relazione di riferimento, assicurarsi che il valore di inserimento deve essere presente nella colonna chiave primaria della relazione di riferimento. Considerando che, non vi è alcun vincolo mentre eliminazione un valore dalla colonna chiave esterna.

  1. Un primario è un insieme di attributi / una chiave candidata che identifica distintamente un record in una relazione. Tuttavia, una chiave esterna in una tabella fa riferimento alla chiave primaria di un'altra tabella.
  2. Nessun attributo chiave primaria può contenere valori NULL, mentre un attributo chiave esterna può accettare il valore NULL.
  3. Una chiave primaria deve avere valori di attributo univoci, mentre una chiave esterna può avere valori di attributi duplicati.
  4. Potrebbero esserci più chiavi esterne in una relazione, ma una relazione ha solo una chiave primaria.
  5. Il vincolo chiave primaria può essere applicato alle tabelle temporanee. Tuttavia, il vincolo di chiave esterna non può essere applicato alle tabelle temporanee.
  6. Per impostazione predefinita, una chiave primaria è indicizzata in cluster, mentre una chiave esterna non viene indicizzata automaticamente in cluster, ma può essere eseguita manualmente.
  7. Durante l'inserimento di un valore in una colonna chiave esterna, assicurarsi che il valore dell'attributo di inserimento sia presente nella colonna chiave primaria di riferimento. Tuttavia, non vi sono restrizioni all'inserimento nella colonna chiave primaria.
  8. Durante l'eliminazione di un valore dalla colonna chiave primaria assicurarsi che il valore dell'attributo eliminato non sia presente nella colonna chiave esterna di riferimento. Tuttavia, non esiste alcun vincolo per l'eliminazione di un valore da una colonna di chiave esterna.

Conclusione:

Sia la chiave primaria che la chiave esterna sono essenziali per uno schema. Una chiave primaria definisce ciascuna tupla in una relazione in modo univoco, mentre una chiave esterna viene utilizzata per creare un collegamento tra due relazioni.