Che cos’è una chiave primaria?

Una chiave primaria è una voce in un database che è univoca per un singolo record. Questa chiave è generalmente derivata in due modi: un codice identificativo univoco dall’esterno del database o un numero generato dall’interno del database. Quando il database conterrà informazioni che sono sempre univoche per la voce, come un numero di previdenza sociale o un numero di identificazione della parte, queste vengono generalmente utilizzate come chiave primaria. Quando i dati non avranno un tale identificatore, il database creerà spesso numeri basati sui suoi sistemi interni per dare a ciascun record un codice univoco.

Ci sono tre principali restrizioni su una chiave primaria: esistenza, unicità e immutabilità. Una chiave deve esistere al momento della creazione del record, non può essere aggiunta in seguito. Ogni chiave deve essere completamente diversa da qualsiasi altra chiave. Ciò significa che gli identificatori comuni, come il nome o la data di nascita, non possono essere utilizzati perché è possibile che due persone nascano lo stesso giorno con lo stesso nome. Infine, una chiave primaria non può mai essere modificata una volta creata.

Poiché un database può potenzialmente avere un numero infinito di voci, anche una chiave primaria deve essere infinita. Per assicurarsi che un database non esaurisca mai le chiavi, la maggior parte dei record utilizza un codice numerico per la chiave. Poiché i numeri possono sempre aumentare e i computer possono semplicemente aggiungere zeri segnaposto alle voci più vecchie, un sistema non finirà mai le chiavi. A volte questi numeri si basano su informazioni non univoche, ma viene aggiunto un identificatore univoco per assicurarsi che la chiave sia valida.

I database utilizzeranno una chiave primaria per organizzare i dati. Poiché la chiave non viene mai ripetuta, quell’informazione consentirà al database di mantenere ogni record separato dall’altro. Ogni informazione in un record è ricollegata alla chiave; in questo modo, indipendentemente da ciò che accade al sistema, il database può ricostruire i record da informazioni sciolte.

L’assegnazione di una chiave primaria significativa è spesso considerata una pratica migliore rispetto alla generazione automatica di un valore. Ciò fornirà al record un identificatore che funge sia da chiave che da dati. Nei database di piccole dimensioni, questa distinzione è raramente necessaria, ma nei sistemi di grandi dimensioni lo spazio extra utilizzato da una chiave generata può comportare un serio ingombro del database. Ciò rallenterà il sistema e richiederà al database molto più spazio di archiviazione.