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:
- Super Key
- Chiave primaria
- Chiave del candidato
- Chiave alternativa
- chiave esterna
- Chiave composta
- Chiave composita
- 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 | |
|---|---|---|---|---|
| 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 | |
|---|---|---|---|---|
| 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 | |
|---|---|---|---|---|
| 1 | 11 | Tom | Prezzo | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Nathan | mno@yahoo.com |

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.
