Chiavi primarie e chiavi esterne

12 maggio 2009

Se consideriamo un lungo elenco di persone, come l’elenco del telefono ad esempio, risulta plausibile trovare omonimie tra le persone, questo significa che alla coppia di informazioni nome, cognome corrisponde più di un record.

Risulta indispensabile allora realizzare un meccanismo che ci permetta di idenitificare in modo univoco i record, anche se hanno tutti i campi uguali tra loro.

La “chiave primaria”

La soluzione è quella di inserire nella tabella un nuovo campo che funzioni da chiave primaria; è il più importante tra tutti gli attributi e garantisce l’individuazione di un determinato record all’interno di una tabella.

Tipicamente si tratta di un numero intero che viene incrementato automaticamente da Access ogni volta che aggiungiamo un record.

Non è sempre indispensabile creare un campo a parte; a volte esiste già un campo che è univoco per natura (ad esempio il codice fiscale) oppure si riescono a raggruppare un gruppo di più campi che presi tutti assieme costituiscono un elemento univoco. Ma è molto più frequente, specie nelle piccole applicazioni, che la chiave primaria sia un campo numerico, spesso indicato come campo ID (identificatore).

Figura 3. Tabella con chiave primaria

Tabella con chiave primaria

L’unicità di questo campo viene inoltre garantita dal fatto che, quando cancelliamo un record, il suo ID non è più riutilizzato. Ad esempio, se cancelliamo l’autore con identificativo 23, quella chiave viene persa per sempre.

La “chiave esterna”

Riportiamo il concetto di chiave primaria nel contesto della biblioteca: possiamo immaginare che ogni libro nella tabella dei libri sia riconoscibile univocamente dagli altri grazie al suo “ID”. Sarà molto comodo poter indicare solo questo numeretto per raggiungere sicuramente un certo testo.

Abbiamo anche detto che le tabelle possono essere messe in relazione tra loro. Prendiamo ad esempio la relazione tra libro e autore:

     Libro  ->  scritto da  ->  Autore

Supponiamo che un libro sia scritto da un autore e che un autore abbia scritto diversi libri. Secondo il discorse della chiave primaria la tabella Autore avrà un codice ID che identifica univocamente ogni autore. Quindi, per associare un libro ad un autore possiamo prevedere un campo, nella tabella Libro che contenga il codice dell’autore. Questo campo viene detto chiave esterna.

Possiamo pensare di effettuare lo stesso ragionamento anche per la relazione edito da con la casa editrice: il campo casa editrice nella tabella Libro è una chiave esterna e corrisponde ad un campo ID (chiave primaria) della tabella case editrici.

Figura 4. Tabella con chiavi esterne

Tabella con chiavi esterne

Vantaggi pratici

Discorsi concettuali a parte il lavoro con le relazioni semplifica anche alcuni aspetti più pratici. Ad esempio possiamo essere certi che se inseriamo 100 libri della stessa casa editrice, scrivendo il nome 100 volte commetteremo qualche errore e comunque potremmo non scriverlo in modo identico e coerente ogni volta.

Se invece selezioniamo lo stesso nome da un elenco possiamo sbagliare editore me non avere lo stesso nome scritto male o in modo diverso. Questo garantisce miglior coerenza e semplicità di reperimento delle informazioni. Se, ad esempio cercassimo l’editore “Mondadori” il sistema non capirebbe che “Mondadori”, “mondadori”, “MONDADORI” e “Mondadorri” sono la stessa cosa.

Prendiamo anche ad esempio la modifica di un dato come l’indirizzo dell’editore. Ci convinciamo facilmente che è molto più semplice modificarlo una volta sola (mantenendo inalterato l’ID) che riscriverlo su centinaia di record dei libri.

Tutte le lezioni

1 ... 3 4 5 ... 18

Se vuoi aggiornamenti su Chiavi primarie e chiavi esterne inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Chiavi primarie e chiavi esterne

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy