E’ necessaria la chiave primaria in una tabella?

ChiavePrimaria

In un file di Microsoft Access, la chiave primaria applicata a un campo di una tabella, permette di individuare in modo univoco e inconfondibile ogni record della tabella stessa.
La chiave primaria è quindi unica, e nella tabella non può essere duplicata.

Per esempio in una tabella di contatti, non sarà opportuno applicare la chiave primaria al campo “nome” oppure al “cognome”;
sarà più consono pensare al “numero di telefono cellulare” (tipico di ogni persona) oppure al “codice fiscale” (anche questo caratteristico di ogni contatto). 
Nel dubbio di non aver individuato il campo più opportuno, si dovrà creare un campo ID con “numerazione automatica ed attribuire la chiave primaria a quello…

Se ci saranno due contatti a nome e cognome di Mario Rossi, il campo ID sarà comunque diverso e sempre unico e inconfondibile.

In realtà non è sempre indispensabile definire la chiave primaria per ogni tabella, anche se raccomandato.

Diventa però tassativo qualora si voglia mettere la tabella in relazione ad un’altra o più tabelle.
Nell’esempio di seguito abbiamo due tabelle: RegistrazioneDati e Automobili:

ChiavePrimaria

Se vogliamo registrare dei dati recuperando il numero di targa dell’automobile dalla tabella delle automobili, e al contempo vedere anche il modello dell’automobile scelta, possiamo creare una query mettendo in relazione le due tabelle.

ChiavePrimaria

Il risultato della query visualizzata sarà il seguente:

ChiavePrimaria

Se nella tabella Automobili non ci fosse stata la chiave primaria sul campo della relazione, la relazione stessa non avrebbe potuto essere tipicamente definita e, con questa situazione di dubbio, non sarebbe stato possibile aggiungere dei record nella query (vedi la freccia rossa).

In questo caso invece, proprio in virtù della definizione della chiave primaria sul campo “targa” (tipicamente inconfondibile) della tabella Automobili, non ci saranno problemi di confondibilità e sarà quindi possibile aggiungere i record.

Buon lavoro
R 🙂 bert 🙂