modulo lab4 --> le relazioni e l’integrità referenziale

20
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

Upload: francesco-ciclosi

Post on 28-Jan-2018

624 views

Category:

Presentations & Public Speaking


1 download

TRANSCRIPT

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