Le Chiavi

Per prima cosa vediamo il concetto di Chiave. Una Chiave Primaria ( o primary key) e' una colonna o un gruppo di colonne che identificano in maniera univoca (singola) ogni data riga rispetto alle altre. Tradotto in un linguaggio un po' più semplice, e' quell' insieme di informazioni che mi permettere di distinguere ogni singolo record da ogni altro record. Per esempio, nella tabella Antiquari il campo IDAntiquario distingue in maniera precisa ogni singolo record (non ci sono due record con lo stesso numero nel campo IDAntiquario ne' ci possono logicamente essere). questo significa che non possono esistere due righe della tabella con lo stesso codice in IDAntiquario e che se anche due antiquari avessero lo stesso nome e lo stesso cognome sarebbero comunque differenziato da un codice diverso, permettendoci così di non confonderli tra di loro, e che quindi ci verrà molto più comodo usare il codice rispetto al nome + cognome per collegarci alle altre tabelle del database.

Una Chiave Esterna (o foreign key ) e' invece una colonna presente in una tabella nella quale si registrano dati che sono la chiave primaria di un' altra tabella. per fare un' esempio con il nostro database le colonne IDVenditore e IDAcquirente della tabella antichità sono chiavi esterne in quanto fanno riferimento ai valori contenuti nella chiave primaria della tabella Antiquari, cioè IDAntiquario. In "Informatichese" questa corrispondenza viene chiamata Integrità Referenziale (o referential integrity per gli inglesofoni), ed impongono il limite che all' interno dei campi della colonna della chiave esterna non possono comparire valori che non siano stati precedentemente inseriti nella colonna della chiave primaria relativa, altrimenti ci si troverebbe di fronte ad un errore chiamato "Violazione dell' integrità referenziale" che renderebbe il database inconsistente, cioè in pratica inutilizzabile. In pratica, come risulta chiaro dall' esempio, viene utilizzata la chiave primaria di una certa tabella per fare riferimento ai dati contenuti nel record relativo senza dovere riportarli nella seconda tabella. nel nostro esempio infatti viene utilizzato il campo "IDAntiquario" per sapere chi ha comprato e chi ha venduto un determinato oggetto nella tabella Antichita, senza dovere riportare il nome ed il cognome sia dell' acquirente che del venditore.