Scelta di una chiave primaria per un database

I database dipendono dalle chiavi per archiviare, ordinare e confrontare o creare relazioni tra i record. Se conosci i database da un po', probabilmente hai sentito parlare di diversi tipi di chiavi: chiavi primarie, chiavi candidate, e chiavi esterne.

Quando crei una nuova tabella di database, ti viene chiesto di selezionarne una chiave primaria che identificherà in modo univoco ogni record memorizzato in quella tabella.

uomo che lavora alla tastiera del computer

Perché una chiave primaria è importante

La selezione di una chiave primaria è una delle decisioni più critiche che prenderai nel progettazione di un nuovo database. Il vincolo più importante è che devi assicurarti che la chiave selezionata sia univoca. Se è possibile che due record (passati, presenti o futuri) condividano lo stesso valore per un attributo, è una scelta sbagliata per una chiave primaria.

Un altro aspetto importante di una chiave primaria è il suo utilizzo da parte di altre tabelle che si collegano ad essa in un database relazionale. In questo aspetto, una chiave primaria funge da destinazione di un puntatore. A causa di queste interdipendenze, una chiave primaria deve esistere quando viene creato un record e non può mai cambiare.

Scelte scadenti per le chiavi primarie

Quella che alcune persone potrebbero considerare una scelta ovvia per una chiave primaria potrebbe invece essere una scelta sbagliata. Ecco alcuni esempi:

  • codici di avviamento postale non fare buone chiavi primarie per una tabella di città. Se stai creando una semplice tabella di ricerca delle città, il codice postale sembra essere una chiave primaria logica. Tuttavia, dopo ulteriori indagini, potresti renderti conto che più di una città condivide un codice postale. Ad esempio, le città del New Jersey di Neptune, Neptune City, Tinton Falls e Wall Township condividono tutte il codice postale 07753.
  • Numeri di previdenza sociale non fanno buone chiavi primarie per molte ragioni. La maggior parte delle persone considera il proprio SSN privato e non lo desidera chiaramente visibile agli utenti del database. Inoltre, alcune persone non hanno SSN.
  • Indirizzi email sono anche una cattiva scelta per una chiave primaria. Sebbene siano unici, potrebbero cambiare nel tempo. Inoltre, non tutti hanno un indirizzo email.

Cosa rende una buona chiave primaria

Quindi, come si sceglie una chiave primaria efficace? Nella maggior parte dei casi, rivolgiti al tuo sistema di database per assistenza.

Una procedura consigliata nella progettazione del database consiste nell'utilizzare una chiave primaria generata internamente. Tuo sistema di gestione del database può normalmente generare un identificatore univoco che non ha alcun significato al di fuori del sistema di database.

Ad esempio, potresti utilizzare il tipo di dati Contatore automatico di Microsoft Access per creare un campo denominato RecordID. Il tipo di dati Contatore incrementa automaticamente il campo ogni volta che si crea un record. Sebbene il numero stesso non abbia significato, fornisce un modo affidabile per fare riferimento a un singolo record nelle query.

Una buona chiave primaria è generalmente breve, utilizza numeri ed evita caratteri speciali o un mix di caratteri maiuscoli e minuscoli per facilitare ricerche e confronti rapidi nel database.