5.2.2 definire le chiavi

5.2.2.1 Definire una chiave primaria

La potenza di un sistema di database relazionali come Microsoft Access deriva dalla capacità di trovare velocemente e unire le informazioni memorizzate in tabelle diverse utilizzando query, maschere e report. A questo scopo è necessario che ogni tabella includa un campo o un set di campi che identifichi in modo univoco ogni record memorizzato nella tabella. Queste informazioni vengono definite chiave primaria della tabella. Dopo aver stabilito la chiave primaria per una tabella, per assicurare l'univocità verrà impedito l'inserimento di valori duplicati o Null nei campi chiave primaria.

In Microsoft Access è possibile definire tre tipi di chiavi primarie: Contatore, a campo singolo e multicampo.

Immaginiamo allora di avere creato la seguente semplice tabella e di volerla salvare

il programma ci avverte che non è stata definita alcuna chiave primaria. Come leggiamo dal messaggio, non è indispensabile definire una chiave primaria in una tabella , ma essa diventa indispensabile se vogliamo collegare la tabella che stiamo costruendo ad altre. Il programma chiede se deve definire per noi, automaticamente una chiave primaria. Clicchiamo sul pulsante Si

notiamo, analizzando la struttura della tabella, che Access ha introdotto un nuovo campo nella tabella , denominato ID e di tipo contatore. Osserviamo che questo campo è indicizzato e i duplicati non sono ammessi, come conviene ad una chiave primaria. Altra opzione interessante è quella dei Nuovi valori , essa indica in che modo verrà aggiornato il valore di questo campo. Essendo un campo contatore, infatti, esso non viene modificato dall’utente ma si modifica automaticamente ogni volta che cominciamo a riempire di dati un nuovo record. Se è impostata l’opzione Nuovo valore a incremento, il campo contatore si incrementa progressivamente

Se impostiamo la condizione Nuovi valori  - Casuale il programma inserirà un valore numerico casuale nel campo, facendo comunque in modo che tale valore sia unico per quel record

Per inserire manualmente un campo chiave primaria in una tabella si procede nella maniera seguente,

per impostare tale campo come chiave primaria, occorre selezionarlo cliccando sulla linguetta che si trova alla sua sinistra e cliccare sul pulsante Chiave primaria

Il comando Chiave primaria i può attivare anche dal menu a comparsa che appare selezionando il campo e cliccando sul tasto destro del mouse

L’ultima alternativa è quella di accedere al menu Modifica

Non è detto che un campo chiave debba essere necessariamente di tipo contatore. Consideriamo, ad esempio, la seguente tabella

Notiamo, prima di iniziare, che abbiamo almeno due record in cui il campo Nome presenta lo stesso contenuto. Proviamo ugualmente a fare di questo campo una chiave primaria

il programma genererà un messaggio di errore indicando che i dati già contenuti nella tabella violano la regola di univocità.

Supponiamo, però, di essere sicuri che non vi potranno essere due record che abbiano contemporaneamente lo stesso nome e cognome. Possiamo allora creare una chiave multicampo, costituita, cioè, dalla combinazione dei due campi Nome e Cognome. Per creare una chiave multicampo, tenendo premuto il tasto CTRL e cliccando con il mouse, selezioniamo i campi Nome e Cognome, cliccando poi sul pulsante Chiave

Possiamo creare chiavi multicampo di complessità qualsiasi