MODULO LAB4 --> Le relazioni e l’integrità referenziale
-
Upload
francesco-ciclosi -
Category
Presentations & Public Speaking
-
view
624 -
download
1
Transcript of MODULO LAB4 --> Le relazioni e l’integrità referenziale
Insegnamento di Informatica – a.a. 2015-16
Le relazioni e l’integrità referenziale
INSEGNAMENTO DI INFORMATICA – A.A. 2015-16
Francesco Ciclosi
Macerata, 18 novembre 2015
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Premessa metodologica
Gli scenari descritti sono
ricavati dal volume in uso:
IT4PS - Le basi di dati per
Economia
• P. Atzeni, A. De Checchi, G.
Sindoni, M. Tirelli, G. Fiorentino,
A. P. Pala
• Editore: Mc Graw Hill
• ISBN: 9788838673177
• Gennaio 2006
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Alcune definizioni
Una relazione esprime un legame tra tabelle
La possibilità di definire questo legame
caratterizza il modello relazionale
Più precisamente: una relazione è un legame che
unisce i campi comuni di due tabelle
Realizzare le tabelle nell’ottica delle future
relazioni è un ottimo approccio per la
realizzazione di un database ben funzionante
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Le relazioni e l’integrità referenziale
Una relazione stabilisce un legame di
corrispondenza tra due campi di due tabelle
• Tabella primaria
• Tabella secondaria
Una regola di integrità referenziale stabilisce che
l’esistenza di uno o più valori del campo della
tabella secondaria (su cui è definita la relazione)
è condizionata dall’esistenza dello stesso valore
nella tabella primaria
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Abbiamo realizzato la 5° rappresentazione Rappresentazione 5
• Paese (Codice, areageografica, nome);
• TassDOccuPaesi (id, anno, rifpaese, tasso);
• persona (CF, rifterritorio, datanascita, sesso, ….);
• posizione (data, persona, tipo, settore, durata, stato);
• stato (id, stato);
• settore (id, descrizione);
• tipologialavoro (id, tipo);
• duratacontratto (id, durata).
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Le relazioni definite nel nostro esempio
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Relazioni: requisiti (1/2)
Le tabelle da mettere in relazione devono avere
campi comuni
• Non è richiesto che i campi abbiano lo stesso nome
• È richiesto che i campi abbiano lo stesso formato
(valore della proprietà Dimensione Campo)
La tabella primaria gestisce la relazione
stabilendo il tipo di legame
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Relazioni: requisiti (2/2)
Il campo della tabella primaria viene detto chiave
primaria e deve essere:
• La chiave primaria della tabella
• Un indice univoco
Il campo della tabella secondaria viene detto
chiave esterna e non deve necessariamente avere
un valore univoco
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
La chiave primaria
Serve a identificare in modo univoco il record che
partecipa alla relazione
Può essere composta da un campo o da un gruppo
di campi
Il suo utilizzo offre vari vantaggi:
1. Impedisce l’inserimento di record duplicati
2. Velocizza le ricerche sulle informazioni memorizzate
Se la tabella non è vuota la chiave primaria (che è
parte di una relazione) è irremovibile
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Tipi di relazioni (1/2)
Possono essere di tre tipi:
• Uno-a-molti ad ogni record della tabella primaria
corrisponde uno o più record della tabella correlata
• Uno-a-uno collega le informazioni di due tabelle
secondo una relazione univoca (a un record della
prima tabella corrisponde uno e un solo record della
seconda tabella e viceversa)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Tipi di relazioni (2/2) Molti-a-molti
A un record di una tabella A possono corrispondere
più record di una tabella B
Si tratta di una relazione «fittizia» che si risolve
introducendo una nuova tabella C detta di congiunzione
La chiave primaria della tabella C è formata dalla chiave
primaria della tabella A più la chiave primaria della
tabella B
La tabella C è poi posta in relazione con le altre tabelle
A e B mediante le rispettive chiavi
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Tipi di join
Esistono tre tipi di join che includono nei risultati
della query valori differenti:
• Join interno (o inner join) include solo i record in cui i campi
del collegamento contengono lo stesso valore sia nella tabella
primaria che in quella secondaria
• Join esterno sinistro (o left join) include tutti i record della
tabella a sinistra (primaria) che soddisfano i criteri imposti, anche
se privi di corrispondenza nella tabella a destra (secondaria)
• Join esterno destro (o right join) include tutti i record della
tabella a destra (correlata) e solo quelli della tabella a sinistra
(primaria) in cui i campi collegati sono uguali
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Vincoli d’integrità referenziale Rappresenta un insieme di regole atte a garantire che:
1. Una relazione sia valida
2. Non vengano eliminati o modificati per errore i dati
correlati
Può essere attivata manualmente se valgono:
1. Entrambe le tabelle devono appartenere allo stesso DB
2. Il campo corrispondente della tabella primaria deve essere
una chiave primaria o disporre di un indice univoco
3. I campi correlati devono contenere lo stesso tipo di dati
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Effetti dell’integrità referenziale (1/2)
Se è attivata l’integrità referenziale valgono i
seguenti vincoli:
1. Nel campo collegato della tabella secondaria non
si possono immettere valori che non siano già
presenti nel campo correlato della tabella primaria
2. Non è possibile cancellare record della tabella
primaria che sono in relazione con altri della
tabella correlata
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Effetti dell’integrità referenziale (2/2)
3. Non è possibile modificare i valori della chiave
primaria nella tabella primaria se il record
corrispondente è in relazione con uno o più
record nella tabella correlata
ATTENZIONE
Non si tratta di limiti, bensì di protezioni
contro l’inconsistenza dei dati
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Due opzioni interessanti
Aggiorna i campi correlati a catena
• Ogni volta che si modifica la chiave primaria di un
record, la stessa verrà automaticamente aggiornata al
nuovo valore in tutti i record correlati
Elimina campi correlati a catena
• Quando viene eliminato un record nella tabella
principale, verranno eliminati anche tutti i record
correlati nella tabella collegata
• Da usare con moltissima moderazione e attenzione
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Verso la sesta rappresentazione
Applicando le regole dell’integrità referenziale
andiamo ora a perfezionare la nostra
rappresentazione
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Creazione della 6° rappresentazione
• Paese (Codice, areageografica, nome);
• TassDOccuPaesi (id, anno, rifpaese, tasso);
• persona (CF, rifterritorio, datanascita, sesso, ….);
• posizione (data, persona, tipo, settore, durata, stato);
• stato (id, stato);
• settore (id, descrizione);
• tipologialavoro (id, tipo);
• duratacontratto (id, durata).
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Al lavoro
Procediamo ora a implementare
1. le relazioni
2. i vincoli d’integrità referenziale
all’interno del nostro database di Microsoft Access
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015 CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
I miei contatti linkedin
http://it.linkedin.com/pub/francesco-ciclosi/62/680/a06/
https://www.facebook.com/francesco.ciclosi
@francyciclosi
www
http://www.francescociclosi.it