Differenza tra chiave primaria e chiave candidata

Chiave primaria vs chiave candidata
 

Sebbene la chiave primaria sia selezionata tra le chiavi candidate, esistono alcune differenze tra la chiave primaria e le altre chiavi candidate, che verranno discusse in dettaglio in questo articolo. La progettazione di database è una delle attività più importanti che dovrebbero essere svolte quando si conservano e si memorizzano i dati. Durante questo processo di progettazione, devono essere create diverse tabelle con molte relazioni. Per accedere a queste tabelle in un database, vengono utilizzati diversi tipi di chiavi nei moderni database che progettano linguaggi come MYSQL, MSAccess, SQLite, ecc. Di queste chiavi, le chiavi candidate e le chiavi primarie sono diventate essenziali nelle pratiche di progettazione del database.

Cos'è una Candidate Key?

La chiave candidata è una singola colonna o una serie di colonne in una tabella di un database che può essere utilizzata identificare in modo univoco qualsiasi record del database senza fare riferimento a nessun altro dato. Ogni tabella di un database può avere una o più chiavi candidate. È possibile creare un set di chiavi candidate utilizzando dipendenze funzionali. Ci sono alcune caratteristiche importanti in una chiave candidata. Loro sono;

• le chiavi candidate devono essere univoche all'interno del dominio e non devono contenere alcun valore NULL.

• la chiave candidata non dovrebbe mai cambiare e deve contenere lo stesso valore per un'occorrenza specifica di un'entità.

Lo scopo principale di una chiave candidata è aiutare a identificare una singola riga su milioni di righe in una grande tabella. Ogni chiave candidata è qualificata per diventare una chiave primaria. Tuttavia, tra tutte le chiavi candidate, la chiave candidata più importante e speciale diventerà la chiave primaria di una tabella ed è la migliore tra le chiavi candidate.

Cos'è una chiave primaria?

Una chiave primaria è la migliore chiave candidata di una tabella utilizzata per identificare in modo univoco i record che sono memorizzati in una tabella. Quando creiamo una nuova tabella in un database, ci viene chiesto di selezionare una chiave primaria. Pertanto, la selezione di una chiave primaria per una tabella è la decisione più critica che dovrebbe essere presa da un progettista di database. Il vincolo più importante, che deve essere considerato quando si decide una chiave primaria, è che la colonna selezionata della tabella deve contenere solo valori univoci e non deve contenere alcun valore NULL. Alcune delle chiavi primarie comunemente utilizzate durante la progettazione delle tabelle sono il Numero di previdenza sociale (SSN), l'ID e il Numero di carta d'identità nazionale (NIC).

Il programmatore dovrebbe ricordare di scegliere attentamente una chiave primaria perché è difficile da cambiare. Pertanto, secondo i programmatori, la best practice per la creazione di una chiave primaria consiste nell'utilizzare una chiave primaria generata internamente come ID record creata dal tipo di dati AutoNumber di MS Access. Se proviamo a inserire un record in una tabella con una chiave primaria che duplica un record esistente, l'inserimento fallirà. Il valore della chiave primaria non dovrebbe continuare a cambiare, quindi è più importante mantenere una chiave primaria statica.

Una chiave primaria è la migliore chiave candidata.

Qual è la differenza tra chiave primaria e chiave candidata?

• Una chiave candidata è la colonna che si qualifica come unica mentre la chiave primaria è la colonna che identifica univocamente un record.

• Una tabella senza chiavi candidate non rappresenta alcuna relazione.

• Ci possono essere molte chiavi candidate per una tabella in un database, ma dovrebbe esserci una sola chiave primaria per una tabella.

• Sebbene la chiave primaria sia una delle chiavi candidate, a volte è l'unica chiave candidata.

• Una volta selezionata una chiave primaria, le altre chiavi candidate diventano chiavi univoche.

• Praticamente una chiave candidata può contenere valori NULL anche se al momento non contiene alcun valore. Pertanto, la chiave candidata non è qualificata per una chiave primaria poiché la chiave primaria non deve contenere alcun valore NULL.

• Potrebbe anche essere possibile che le chiavi candidate, che al momento sono uniche, possano contenere valori duplicati che squalificano una chiave candidata da diventare una chiave primaria.

Sommario:

Chiave primaria contro chiave candidata

La chiave candidata e la chiave primaria sono chiavi essenziali utilizzate nella progettazione di database al fine di identificare in modo univoco i dati in un record e creare relazioni tra le tabelle di un database. Una tabella deve contenere solo una chiave primaria e può contenere più di una chiave candidata. Oggi, la maggior parte dei database è in grado di generare automaticamente la propria chiave primaria. Pertanto, la chiave primaria e le chiavi candidate forniscono un supporto numeroso ai sistemi di gestione del database.

Immagini per gentile concessione: 

  1. Chiave primaria di  SqlPac (CC BY-SA 3.0)