Chiavi DBMS: tipi di chiave candidata, super, primaria, esterna con esempio

Cosa sono le chiavi nel DBMS?

CHIAVI nel DBMS รจ un attributo o un insieme di attributi che ti aiuta a identificare una riga (tupla) in una relazione (tabella). Permettono di trovare la relazione tra due tabelle. Le chiavi ti aiutano a identificare in modo univoco una riga in una tabella tramite una combinazione di una o piรน colonne in quella tabella. La chiave รจ utile anche per trovare record o righe univoci dalla tabella. La chiave del database รจ utile anche per trovare record o righe univoci dalla tabella.

Esempio:

ID Dipendente Nome Cognome
11 Andrea Johnson
22 Tom Legno (MDF)
33 alex Sano

Nell'esempio sopra riportato, l'ID dipendente รจ una chiave primaria perchรฉ identifica in modo univoco il record di un dipendente. In questa tabella nessun altro dipendente puรฒ avere lo stesso ID dipendente.

Perchรฉ abbiamo bisogno di una chiave?

Ecco alcuni motivi per utilizzare la chiave SQL nel sistema DBMS.

  • Le chiavi ti aiutano a identificare qualsiasi riga di dati in una tabella. In un'applicazione reale, una tabella potrebbe contenere migliaia di record. Inoltre, i record potrebbero essere duplicati. Le chiavi in โ€‹โ€‹RDBMS garantiscono la possibilitร  di identificare in modo univoco un record di tabella nonostante queste sfide.
  • Consente di stabilire una relazione e identificare la relazione tra tabelle
  • Aiutarti a rafforzare lโ€™identitร  e lโ€™integritร  nella relazione.

Tipi di chiavi nel DBMS (sistema di gestione del database)

Esistono principalmente otto diversi tipi di chiavi nel DBMS e ciascuna chiave ha funzionalitร  diverse:

  1. Super Key
  2. Chiave primaria
  3. Chiave del candidato
  4. Chiave alternativa
  5. chiave esterna
  6. Chiave composta
  7. Chiave composita
  8. Chiave surrogata

Diamo un'occhiata a ciascuna delle chiavi nel DBMS con l'esempio:

  • Super chiave โ€“ Una super chiave รจ un gruppo di chiavi singole o multiple che identifica le righe in una tabella.
  • Chiave primaria - รจ una colonna o un gruppo di colonne in una tabella che identifica in modo univoco ogni riga della tabella.
  • Chiave del candidato โ€“ รจ un insieme di attributi che identificano in modo univoco le tuple in una tabella. La chiave candidata รจ una super chiave senza attributi ripetuti.
  • Chiave alternativa โ€“ รจ una colonna o un gruppo di colonne in una tabella che identifica in modo univoco ogni riga della tabella.
  • Chiave esterna โ€“ รจ una colonna che crea una relazione tra due tabelle. Lo scopo delle chiavi esterne รจ mantenere l'integritร  dei dati e consentire la navigazione tra due diverse istanze di un'entitร .
  • Chiave composta โ€“ ha due o piรน attributi che consentono di riconoscere in modo univoco un record specifico. รˆ possibile che ciascuna colonna non sia univoca di per sรฉ all'interno del database.
  • Chiave composita โ€“ รจ una combinazione di due o piรน colonne che identificano in modo univoco le righe in una tabella. La combinazione di colonne garantisce l'unicitร , sebbene l'unicitร  individuale non sia garantita.
  • Chiave surrogata โ€“ Una chiave artificiale che mira a identificare in modo univoco ciascun record รจ chiamata chiave surrogata. Questo tipo di chiave รจ unica perchรฉ viene creata quando non si dispone di alcuna chiave primaria naturale.

Cos'รจ la Superchiave?

Una superchiave รจ un gruppo di chiavi singole o multiple che identifica le righe in una tabella. Una chiave Super puรฒ avere attributi aggiuntivi non necessari per l'identificazione univoca.

Esempio:

EmpSSN NumEmp Nome personale
9812345098 AB05 indicato
9876512345 AB06 Roslyn
199937890 AB07 James

Nell'esempio sopra riportato, il nome EmpSSN e EmpNum sono superchiavi.

Cos'รจ una chiave primaria?

CHIAVE PRIMARIA in DBMS รจ una colonna o un gruppo di colonne in una tabella che identifica in modo univoco ogni riga della tabella. La chiave primaria non puรฒ essere un duplicato, ovvero lo stesso valore non puรฒ apparire piรน di una volta nella tabella. Una tabella non puรฒ avere piรน di una chiave primaria.

Regole per definire la chiave primaria:

  • Due righe non possono avere lo stesso valore di chiave primaria
  • รˆ necessario che ogni riga abbia un valore di chiave primaria.
  • Il campo della chiave primaria non puรฒ essere nullo.
  • Il valore in una colonna di chiave primaria non puรฒ mai essere modificato o aggiornato se una chiave esterna fa riferimento a quella chiave primaria.

Esempio:

Nel seguente esempio, StudID รจ una chiave primaria.

StudID N. rotolo Nome Cognome E-mail
1 11 Tom Prezzo abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Nathan mno@yahoo.com

Qual รจ la chiave alternativa?

CHIAVI ALTERNATIVE รจ una colonna o un gruppo di colonne in una tabella che identifica in modo univoco ogni riga della tabella. Una tabella puรฒ avere piรน scelte per una chiave primaria, ma solo una puรฒ essere impostata come chiave primaria. Tutte le chiavi che non sono chiavi primarie sono chiamate chiavi alternative.

Esempio:

In questa tabella, StudID, Roll No, Email sono qualificati per diventare una chiave primaria. Ma poichรฉ StudID รจ la chiave primaria, Roll No, Email diventa la chiave alternativa.

StudID N. rotolo Nome Cognome E-mail
1 11 Tom Prezzo abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Nathan mno@yahoo.com

Cos'รจ una chiave candidata?

CHIAVE DEL CANDIDATO in SQL รจ un insieme di attributi che identificano in modo univoco le tuple in una tabella. La chiave candidata รจ una super chiave senza attributi ripetuti. La chiave primaria deve essere selezionata tra le chiavi candidate. Ogni tabella deve avere almeno una singola chiave candidata. Una tabella puรฒ avere piรน chiavi candidate ma solo una singola chiave primaria.

Proprietร  della chiave candidata:

  • Deve contenere valori univoci
  • La chiave candidata in SQL puรฒ avere piรน attributi
  • Non deve contenere valori nulli
  • Dovrebbe contenere campi minimi per garantire l'unicitร 
  • Identificare in modo univoco ogni record in una tabella

Esempio di chiave candidata: nella tabella indicata, ID studente, numero di matricola ed e-mail sono chiavi candidate che ci aiutano a identificare in modo univoco il record dello studente nella tabella.

StudID N. rotolo Nome Cognome E-mail
1 11 Tom Prezzo abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Nathan mno@yahoo.com

Chiave del candidato
Chiave del candidato nel DBMS

Qual รจ la chiave esterna?

CHIAVE ESTERA รจ una colonna che crea una relazione tra due tabelle. Lo scopo delle chiavi esterne รจ mantenere l'integritร  dei dati e consentire la navigazione tra due diverse istanze di un'entitร . Funziona come un riferimento incrociato tra due tabelle poichรฉ fa riferimento alla chiave primaria di un'altra tabella.

Esempio:

CodiceDip NomeDip
001 Scienze
002 Inglese
005 computer
ID insegnante Fnome Lnome
B002 David Ammonitore
B017 Sara Joseph
B009 Mike brunton

In questa chiave nell'esempio di DBMS, abbiamo due tabelle, insegnamento e dipartimento in una scuola. Tuttavia, non รจ possibile vedere quale ricerca funziona in quale dipartimento.

In questa tabella, aggiungendo la chiave esterna in Deptcode al nome del Docente, possiamo creare una relazione tra le due tabelle.

ID insegnante CodiceDip Fnome Lnome
B002 002 David Ammonitore
B017 002 Sara Joseph
B009 001 Mike brunton

Questo concetto รจ noto anche come Referenziale Integrity.

Cos'รจ la chiave composta?

CHIAVE COMPOSTA ha due o piรน attributi che consentono di riconoscere in modo univoco un record specifico. รˆ possibile che ciascuna colonna non sia univoca di per sรฉ all'interno del database. Tuttavia, se combinate con l'altra colonna o colonne, la combinazione di chiavi composte diventa univoca. Lo scopo della chiave composta nel database รจ identificare in modo univoco ciascun record nella tabella.

Esempio:

Numero d'ordine ID prodotto รœrรผn Adฤฑ Quantitร 
B005 GIAPPONE102459 Topo 5
B005 DKT321573 USB 10
B005 OMG446789 Monitor LCD 20
B004 DKT321573 USB 15
B002 OMG446789 Stampante laser 3

In questo esempio OrderNo e ProductID non possono essere una chiave primaria poichรฉ non identificano un record in modo univoco. Tuttavia, รจ possibile utilizzare una chiave composta da ID ordine e ID prodotto poichรฉ identifica in modo univoco ciascun record.

Cos'รจ la chiave composita?

CHIAVE COMPOSITA รจ una combinazione di due o piรน colonne che identificano in modo univoco le righe in una tabella. La combinazione di colonne garantisce l'unicitร , sebbene l'unicitร  individuale non sia garantita. Pertanto, vengono combinati per identificare in modo univoco i record in una tabella.

La differenza tra chiave composta e chiave composta รจ che qualsiasi parte della chiave composta puรฒ essere una chiave esterna, ma la chiave composta puรฒ o meno far parte della chiave esterna.

Cos'รจ una chiave surrogata?

CHIAVI SURROGATE is Una chiave artificiale che mira a identificare in modo univoco ciascun record รจ chiamata chiave surrogata. Questo tipo di chiave parziale in dbms รจ unica perchรฉ viene creata quando non si dispone di alcuna chiave primaria naturale. Non danno alcun significato ai dati della tabella. La chiave surrogata nel DBMS รจ solitamente un numero intero. Una chiave surrogata รจ un valore generato subito prima che il record venga inserito in una tabella.

Fnome Cognome Ora di inizio Fine
Anne fabbro 09:00 18:00
Giacca Francis 08:00 17:00
Anna McLean 11:00 20:00
indicato Guglielmo 14:00 23:00

Sopra, nell'esempio, sono mostrati gli orari dei turni dei diversi dipendenti. In questo esempio, รจ necessaria una chiave surrogata per identificare in modo univoco ciascun dipendente.

Chiavi surrogate sql sono ammessi quando

  • Nessuna proprietร  ha il parametro della chiave primaria.
  • Nella tabella quando la chiave primaria รจ troppo grande o complicata.

Differenza tra chiave primaria e chiave esterna

Di seguito รจ riportata la differenza principale tra chiave primaria e chiave esterna:

Chiave primaria chiave esterna
Ti aiuta a identificare in modo univoco un record nella tabella. รˆ un campo nella tabella che costituisce la chiave primaria di un'altra tabella.
La chiave primaria non accetta mai valori null. Una chiave esterna puรฒ accettare piรน valori null.
La chiave primaria รจ un indice cluster e i dati nella tabella DBMS sono organizzati fisicamente nella sequenza dell'indice cluster. Una chiave esterna non puรฒ creare automaticamente un indice, in cluster o non in cluster. Tuttavia, puoi creare manualmente un indice sulla chiave esterna.
Puoi avere la singola chiave primaria in una tabella. Puoi avere piรน chiavi esterne in una tabella.

Sintesi

  • Cos'รจ la chiave in DBMS: Una chiave in DBMS รจ un attributo o un insieme di attributi che ti aiuta a identificare una riga (tupla) in una relazione (tabella)
  • Chiavi RDBMS consentono di stabilire una relazione e identificare la relazione tra tabelle
  • Otto tipi di chiave nel DBMS sono Super, Primaria, Candidata, Alternativa, Estera, Composta, Composita e Chiave surrogata.
  • Una super chiave รจ un gruppo di chiavi singole o multiple che identifica le righe in una tabella.
  • Una colonna o un gruppo di colonne in una tabella che ci aiuta a identificare in modo univoco ogni riga di quella tabella รจ chiamata chiave primaria
  • Tutte le diverse chiavi nel DBMS che non sono chiavi primarie sono chiamate chiavi alternative
  • Una super chiave senza attributi ripetuti รจ chiamata chiave candidata
  • Una chiave composta รจ una chiave composta da numerosi campi che consentono di riconoscere in modo univoco un record specifico
  • Una chiave che ha piรน attributi per identificare in modo univoco le righe in una tabella รจ chiamata chiave composita
  • Una chiave artificiale che mira a identificare in modo univoco ciascun record รจ chiamata chiave surrogata
  • La chiave primaria non accetta mai valori null mentre una chiave esterna puรฒ accettare piรน valori null.

Riassumi questo post con: