I database dipendono dalle chiavi per archiviare, ordinare e confrontare o creare relazioni tra i record. Se sei stato in giro per un po 'di database, probabilmente hai sentito parlare di diversi tipi di chiavi: chiavi primarie, chiavi candidate e chiavi esterne. Quando crei una nuova tabella di database, ti verrà chiesto di selezionare una chiave primaria che identificherà in modo univoco ogni record archiviato in quella tabella.
Perché una chiave primaria è importante
La selezione di una chiave primaria è una delle decisioni più importanti che devi prendere nella progettazione di un nuovo database. Il vincolo più importante è che devi assicurarti che la chiave selezionata sia unica. Se è possibile che due record - passato, presente o futuro - possano condividere 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 esso in un database relazionale. In questo aspetto, una chiave primaria agisce come il bersaglio 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 chiavi primarie
Ciò che alcune persone potrebbero considerare una scelta ovvia per una chiave primaria può invece essere una scelta sbagliata. Ecco alcuni esempi:
- codici di avviamento postale non fare buone chiavi primarie per un tavolo di città. Se stai facendo una semplice tabella di ricerca delle città, il codice postale sembra essere una chiave primaria logica. Tuttavia, a seguito di ulteriori indagini, è possibile rendersi conto che più di una città condivide un codice di avviamento postale. Ad esempio, le città del New Jersey di Neptune, Neptune City, Tinton Falls e Wall Township condividono tutti il codice postale 07753.
- Numeri di previdenza sociale non fare 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. Alcune persone non hanno SSN - stranieri o immigrati che non hanno mai ricevuto una tessera di previdenza sociale. Gli SSN possono anche essere riutilizzati dopo la morte di un individuo. Un individuo può avere più di un SSN per tutta la vita quando l'Amministrazione della sicurezza sociale emette un nuovo numero in caso di frode o furto d'identità.
- Indirizzi email sono anche una scelta sbagliata per una chiave primaria. Sebbene siano unici, possono cambiare nel tempo. Inoltre, non tutti hanno un indirizzo email.
Scelta di una chiave primaria efficace
Quindi, cosa rende una buona chiave primaria? Nella maggior parte dei casi, rivolgersi al proprio sistema di database per supporto.
Una buona pratica nella progettazione del database consiste nell'utilizzare una chiave primaria generata internamente. Il tuo sistema di gestione del database può normalmente generare un identificativo univoco che non ha significato al di fuori del sistema del database. Ad esempio, è possibile utilizzare il tipo di dati AutoNumber di Microsoft Access per creare un campo denominato RecordID. Il tipo di dati Numero automatico aumenta automaticamente il campo ogni volta che si crea un record. Mentre il numero stesso non ha senso, fornisce un modo affidabile per fare riferimento a un singolo record nelle query.
Una buona chiave primaria è solitamente breve, utilizza numeri e evita caratteri speciali o un mix di caratteri maiuscoli e minuscoli per facilitare ricerche e confronti rapidi tra database.