Chiavi di base che semplificano la gestione del database
I database utilizzano le tabelle per organizzare le informazioni. Ogni tabella è costituita da un numero di righe, ciascuna delle quali corrisponde a un singolo record del database. Quindi, come fanno i database a mantenere questi record in ordine? È attraverso l'uso delle chiavi.
Chiavi primarie
Il primo tipo di chiave di cui parleremo è la chiave primaria. Il chiave primaria identifica in modo univoco ogni record in una tabella. Ogni tabella del database dovrebbe avere una o più colonne designate come chiave primaria.
Esempio di chiave primaria
Supponiamo di avere una tabella chiamata Impiegati che contiene informazioni sul personale per ogni dipendente della nostra azienda. Avremmo bisogno di selezionare una chiave primaria appropriata che identificherebbe in modo univoco ogni dipendente. Il tuo primo pensiero potrebbe essere quello di utilizzare il nome del dipendente. Tuttavia, questo non funzionerebbe perché è concepibile assumere due dipendenti con lo stesso nome. Una scelta migliore potrebbe essere quella di utilizzare il numero ID univoco assegnato a ciascun dipendente al momento dell'assunzione.
Alcune organizzazioni utilizzano i numeri di previdenza sociale (o identificatori governativi simili) come chiave primaria perché ogni dipendente ne ha già uno e sono garantiti per essere univoci. Tuttavia, l'uso dei numeri di previdenza sociale per questo scopo è controverso a causa di problemi di privacy.
Se lavori per un'organizzazione governativa, l'utilizzo di un numero di previdenza sociale potrebbe non essere legale ai sensi del Privacy Act del 1974. Per questo motivo, la maggior parte delle organizzazioni è passata all'uso di identificatori univoci come l'ID dipendente o l'ID studente.
Dopo aver deciso una chiave primaria e configurato il database, il sistema di gestione del database impone l'unicità della chiave. Ad esempio, se inserisci un record in una tabella con una chiave primaria che duplica un record esistente, l'inserimento avrà esito negativo.
La maggior parte dei database è anche in grado di generare chiavi primarie. Microsoft Access, ad esempio, può essere configurato per utilizzare il tipo di dati Contatore per assegnare un ID univoco a ogni record nella tabella. Sebbene efficace, questa è una cattiva pratica di progettazione perché ti lascia con un valore insignificante in ogni record della tabella. Invece, usa quello spazio per memorizzare qualcosa di utile.
Chiavi Esterne
Un altro tipo di chiave è il chiave esterna. La chiave esterna crea relazioni naturali tra le tabelle. Esistono relazioni naturali tra le tabelle nella maggior parte delle strutture di database.
Esempio di chiave esterna
Tornando al nostro database Impiegati, immaginiamo di voler aggiungere al database una tabella contenente le informazioni dipartimentali. Questa nuova tabella potrebbe essere chiamata Departments e conterrebbe una grande quantità di informazioni sull'intero dipartimento.
Vorremmo anche includere informazioni sui dipendenti del reparto, ma sarebbe ridondante avere le stesse informazioni in due tabelle (Dipendenti e Reparti). Quindi, invece, creeremmo una relazione tra le due tabelle.
Creazione di una relazione tra tabelle
Supponiamo che la tabella Departments utilizzi la colonna Department Name come chiave primaria. Per creare una relazione tra le due tabelle, aggiungeremo una nuova colonna alla tabella Impiegati chiamata Reparto.
Successivamente, inseriremo il nome del dipartimento a cui appartiene ciascun dipendente. Quindi, informiamo il sistema di gestione del database che la colonna Reparto nella tabella Impiegati è una chiave esterna che fa riferimento alla tabella Reparti.
Non esiste un vincolo di unicità per una chiave esterna perché, ad esempio, potremmo avere più di un dipendente che appartiene a un singolo reparto. Allo stesso modo, non è necessario che una voce nella tabella Reparti debba avere una voce corrispondente nella tabella Impiegati perché potremmo avere un reparto senza dipendenti.