SlideShare a Scribd company logo
1 of 20
Download to read offline
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/
facebook
https://www.facebook.com/francesco.ciclosi
twitter
@francyciclosi
www
http://www.francescociclosi.it

More Related Content

What's hot

What's hot (20)

MODULO 07: L’interazione tra il microprocessore e la memoria di sistema
MODULO 07: L’interazione tra il microprocessore e la memoria di sistemaMODULO 07: L’interazione tra il microprocessore e la memoria di sistema
MODULO 07: L’interazione tra il microprocessore e la memoria di sistema
 
MODULO 18 –> Il sistema operativo
MODULO 18 –> Il sistema operativoMODULO 18 –> Il sistema operativo
MODULO 18 –> Il sistema operativo
 
MODULO 12 –> I dispositivi di input e/o di output
MODULO 12 –> I dispositivi di input e/o di outputMODULO 12 –> I dispositivi di input e/o di output
MODULO 12 –> I dispositivi di input e/o di output
 
MODULO 05: Fondamenti di informatica
MODULO 05: Fondamenti di informaticaMODULO 05: Fondamenti di informatica
MODULO 05: Fondamenti di informatica
 
MODULO 06: La produzione dei microprocessori e dei chip di memoria
MODULO 06: La produzione dei microprocessori e dei chip di memoriaMODULO 06: La produzione dei microprocessori e dei chip di memoria
MODULO 06: La produzione dei microprocessori e dei chip di memoria
 
MODULO 17 –> Il modello di licenza del software
MODULO 17 –> Il modello di licenza del softwareMODULO 17 –> Il modello di licenza del software
MODULO 17 –> Il modello di licenza del software
 
MODULO 03 - Il sistema binario
MODULO 03 - Il sistema binarioMODULO 03 - Il sistema binario
MODULO 03 - Il sistema binario
 
MODULO 10 –> La scheda madre e il BIOS
MODULO 10 –> La scheda madre e il BIOSMODULO 10 –> La scheda madre e il BIOS
MODULO 10 –> La scheda madre e il BIOS
 
MODULO 13 --> Le memorie secondarie
MODULO 13 --> Le memorie secondarieMODULO 13 --> Le memorie secondarie
MODULO 13 --> Le memorie secondarie
 
MODULO 28 –> La Business Continuity Management
MODULO 28 –> La Business Continuity ManagementMODULO 28 –> La Business Continuity Management
MODULO 28 –> La Business Continuity Management
 
MODULO 25 –> Fondamenti delle tecnologie per il web
MODULO 25 –> Fondamenti delle tecnologie per il webMODULO 25 –> Fondamenti delle tecnologie per il web
MODULO 25 –> Fondamenti delle tecnologie per il web
 
MODULO 26 –> Il controllo degli accessi
MODULO 26 –> Il controllo degli accessiMODULO 26 –> Il controllo degli accessi
MODULO 26 –> Il controllo degli accessi
 
MODULO 27 –> Dai virus al malware
MODULO 27 –> Dai virus al malwareMODULO 27 –> Dai virus al malware
MODULO 27 –> Dai virus al malware
 
MODULO 14 --> La crittografia delle informazioni
MODULO 14 --> La crittografia delle informazioniMODULO 14 --> La crittografia delle informazioni
MODULO 14 --> La crittografia delle informazioni
 
MODULO 23 –> Le reti geografiche
MODULO 23 –> Le reti geograficheMODULO 23 –> Le reti geografiche
MODULO 23 –> Le reti geografiche
 
MODULO 19 –> Fondamenti dell’infrastruttura di rete
MODULO 19 –> Fondamenti dell’infrastruttura di reteMODULO 19 –> Fondamenti dell’infrastruttura di rete
MODULO 19 –> Fondamenti dell’infrastruttura di rete
 
MODULO 22 –> Lo spazio degli indirizzi IP
MODULO 22 –> Lo spazio degli indirizzi IPMODULO 22 –> Lo spazio degli indirizzi IP
MODULO 22 –> Lo spazio degli indirizzi IP
 
MODULO 24 –> I servizi di rete
MODULO 24 –> I servizi di reteMODULO 24 –> I servizi di rete
MODULO 24 –> I servizi di rete
 
MODULO 21 –> Le reti locali
MODULO 21 –> Le reti localiMODULO 21 –> Le reti locali
MODULO 21 –> Le reti locali
 
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...
 

Similar to MODULO LAB4 --> Le relazioni e l’integrità referenziale

Similar to MODULO LAB4 --> Le relazioni e l’integrità referenziale (16)

MODULO LAB1 --> Introduzione alle basi di dati
MODULO LAB1 --> Introduzione alle basi di datiMODULO LAB1 --> Introduzione alle basi di dati
MODULO LAB1 --> Introduzione alle basi di dati
 
MODULO LAB2 --> Lo scenario di studio: il mercato del lavoro
MODULO LAB2 --> Lo scenario di studio: il mercato del lavoroMODULO LAB2 --> Lo scenario di studio: il mercato del lavoro
MODULO LAB2 --> Lo scenario di studio: il mercato del lavoro
 
MODULO OD3: Gli Open Data nelle Marche
MODULO OD3: Gli Open Data nelle MarcheMODULO OD3: Gli Open Data nelle Marche
MODULO OD3: Gli Open Data nelle Marche
 
MODULO OD1: Gli Open data, cosa sono e a cosa servono
MODULO OD1: Gli Open data, cosa sono e a cosa servonoMODULO OD1: Gli Open data, cosa sono e a cosa servono
MODULO OD1: Gli Open data, cosa sono e a cosa servono
 
MODULO IB01 –> Elementi di base
MODULO IB01 –> Elementi di baseMODULO IB01 –> Elementi di base
MODULO IB01 –> Elementi di base
 
MODULO OD4: Un esempio di utilizzo degli Open Data
MODULO OD4: Un esempio di utilizzo degli Open DataMODULO OD4: Un esempio di utilizzo degli Open Data
MODULO OD4: Un esempio di utilizzo degli Open Data
 
MODULO OD5: Cenni di Open Government e del sistema SATA
MODULO OD5: Cenni di Open Government e del sistema SATAMODULO OD5: Cenni di Open Government e del sistema SATA
MODULO OD5: Cenni di Open Government e del sistema SATA
 
MODULO E02 –> Scelte di consumo intertemporale
MODULO E02 –> Scelte di consumo intertemporaleMODULO E02 –> Scelte di consumo intertemporale
MODULO E02 –> Scelte di consumo intertemporale
 
MODULO 20 –> Introduzione al TCP/IP
MODULO 20 –> Introduzione al TCP/IPMODULO 20 –> Introduzione al TCP/IP
MODULO 20 –> Introduzione al TCP/IP
 
MODULO E01 –> Scelte d’investimento per un’impresa
MODULO E01 –> Scelte d’investimento per un’impresaMODULO E01 –> Scelte d’investimento per un’impresa
MODULO E01 –> Scelte d’investimento per un’impresa
 
MODULO 00 –> Presentazione del corso
MODULO 00 –> Presentazione del corsoMODULO 00 –> Presentazione del corso
MODULO 00 –> Presentazione del corso
 
E. Berntsen, Il Censimento permanente delle Istituzioni Pubbliche: strategia ...
E. Berntsen, Il Censimento permanente delle Istituzioni Pubbliche: strategia ...E. Berntsen, Il Censimento permanente delle Istituzioni Pubbliche: strategia ...
E. Berntsen, Il Censimento permanente delle Istituzioni Pubbliche: strategia ...
 
MODULO IB02 –> I bit e la loro memorizzazione
MODULO IB02 –> I bit e la loro memorizzazioneMODULO IB02 –> I bit e la loro memorizzazione
MODULO IB02 –> I bit e la loro memorizzazione
 
F. Oropallo C.-Boselli-M.S.Causo-Workshop Istat
F. Oropallo C.-Boselli-M.S.Causo-Workshop IstatF. Oropallo C.-Boselli-M.S.Causo-Workshop Istat
F. Oropallo C.-Boselli-M.S.Causo-Workshop Istat
 
MODULO IB03 –> La memoria principale
MODULO IB03 –> La memoria principaleMODULO IB03 –> La memoria principale
MODULO IB03 –> La memoria principale
 
Riforma dispacciamento elettrico (RDE)- Principali linee d'azione
Riforma dispacciamento elettrico (RDE)- Principali linee d'azioneRiforma dispacciamento elettrico (RDE)- Principali linee d'azione
Riforma dispacciamento elettrico (RDE)- Principali linee d'azione
 

MODULO LAB4 --> Le relazioni e l’integrità referenziale

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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).
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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)
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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).
  • 19. 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
  • 20. 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/ facebook https://www.facebook.com/francesco.ciclosi twitter @francyciclosi www http://www.francescociclosi.it