|
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.
di
|