MODELLO E/R
Modellazione dei dati
Modellare i dati significa:
costruire una rappresentazione semplificata
della realtà osservata,
individuandone gli elementi caratterizzanti
e i legami intercorrenti tra essi.
Modellazione dei dati
La progettazione di un modello di dati avviene su 3 livelli:
1. CONCETTUALE
2. LOGICO
3. FISICO
Modellazione dei dati
Realtà
Modello concettuale
Rappresenta la realtà dei
dati e le relazioni tra essi
attraverso uno schema
(Modello E/R)
Modello logico
Modello fisico
Rappresenta l’effettiva
installazione degli archivi
elettronici
Rappresenta il modo
attraverso cui i dati sono
organizzati negli archivi
elettronici. Descrive
quindi la composizione ed
il formato dei dati nel loro
aspetto di struttura logica
dei dati.
Modellazione dei dati
Il modello concettuale si definisce tramite lo SCHEMA
dei dati, cioè una rappresentazione INDIPENDENTE da:
• dai valori assegnati ai dati
• dalle applicazioni che useranno i dati
• dalle viste parziali dei dati da parte degli utenti
Il modello E/R
Il modello entità/associazioni (Entity/Relationship)
strumento utilizzato per costruire un modello
concettuale dei dati indipendente dalle applicazioni.
=> risultato: lo schema E/R
rappresentazione grafica che permette di individuare
gli elementi del modello concettuale e le associazioni
tra esse.
Gli elementi di un modello entità/associazioni sono:
• entità
• associazioni,
• attributi.
L’entità
L’entità è un oggetto (concreto o astratto) che ha un
significato anche quando viene considerato in modo isolato
ed è di interesse per la realtà che si vuole modellare.
Esempi di entità:
una persona,
un modello di automobile,
un movimento contabile,
una prova sostenuta da uno studente.
L’entità
Le entità possono essere classificate secondo un certo
criterio di omogeneità definendo il tipo di entità attraverso
un nome.
Es.:
• gli studenti di una scuola sono classificabili nel tipo
entità Studente.
• i diversi modelli di automobile sono classificabili nel
tipo entità Automobile.
Ciascuno studente rappresenta un’istanza dell’entità
Studente.
Ad esempio Fabio Carbone, Luigi Bianchi, ecc…
sono istanze di Studenti.
II/II
L’entità
Nella rappresentazione grafica le entità sono identificate
con un rettangolo contenente all’interno il nome dell’entità.
Ad Esempio la rappresentazione delle entità Studente,
Automobile e Persona:
STUDENTE
AUTOMOBILE
PERSONA
L’associazione
L’associazione (relationship)
un’interazione tra le entità.
PERSONA
è
un
legame
che
stabilisce
AUTOMOBILE
Ogni associazione ha due versi:
• ogni verso ha un’entità di partenza e una di arrivo;
• ogni verso inoltre ha una descrizione che consente di
comprenderne il significato.
L’associazione
Posseduta da
PERSONA
AUTOMOBILE
Possiede
tra l’entità Persona e l’entità Automobile esiste un’associazione che
può essere descritta secondo due versi:
• una persona possiede una o più automobili;
• un’automobile è posseduta da una persona.
L’associazione
Un altro simbolismo usato per descrivere un’associazione è
un rombo con la descrizione dell’associazione:
PERSONA
Possiede
AUTOMOBILE
Gli attributi
Le proprietà delle entità e delle associazioni vengono descritte
attraverso gli attributi.
Esempi di attributi per l’entità Automobile sono: Modello, Produttore,
Cilindrata, PrezzoListino.
AUTOMOBILE
PrezzoListino
Cilindrata
Produttore
Modello
Gli attributi
Le caratteristiche di ogni attributo sono :
• il formato: indica il tipo di valori che assume; i tre formati base
sono: carattere, numerico, data/ora.
• la dimensione indica la quantità massima di caratteri o cifre
inseribili.
• l’opzionalità indica la possibilità di non essere sempre valorizzato:
l’attributo è obbligatorio se deve avere valore non nullo, facoltativo se
sono accettabili valori nulli.
Il valore nullo (in inglese Null) rappresenta un’informazione
mancante, inapplicabile o sconosciuta.
Gli attributi
L’insieme dei possibili valori assunti da un attributo si chiama
dominio dell’attributo. I valori appartenenti al dominio sono
omogenei tra loro, cioè sono dello stesso tipo.
Esempio: attributi di uno studente
STUDENTE
Nome {fabio, Antonio,ecc…}
Cognome {Maldini, Del Piero,Vieri…}
Matricola  {numeri interi}
Data Nascita  {date}
DataNascita
Matricola
Cognome
Nome
Oss. Età deriva da Data Nascita => definire solo gli attributi
elementari e non quelli derivati
Gli attributi
Nel caso del formalismo con il rombo si possono rappresentare gli
attributi dell’associazione:
PERSONA
Possiede
DataAcquisto
AUTOMOBILE
PrezzoAcquisto
Gli attributi DataAcquisto e PrezzoAcquisto non sono attributi né
dell’entità Persona, né dell’entità Automobile,
=> sono attributi dell’associazione tra le due entità.
Gli attributi
Si indica con il termine chiave o chiave primaria (primary key)
l’insieme di uno o più attributi che consentono di distinguere
un’istanza dall’altra per la stessa entità.
Nella descrizione grafica, gli attributi chiave vengono sottolineati
(oppure se ne colora il cerchietto)
Esempi:
STUDENTE
DataNascita
Matricola
Cognome
NOME
PRODOTTO
Prezzo
Descrizione
Codice
Le associazioni tra entità (1)
Cardinalità dell’associazione
Un’associazione tra le entità può essere:
• obbligatoria: quando il legame tra le entità deve essere
sempre presente (linea continua nello Schema E/R)
•opzionale: quando può essere presente (linea tratteggiata
nello Schema E/R)
PERSONA
Intestato a
CONTOCORRENTE
Titolare di
Le associazioni tra entità (2)
Il grado di un verso dell’associazione indica quante istanze
dell’entità di arrivo si associano all’istanza di partenza.
Il grado può essere a uno oppure a molti e pertanto le associazioni
tra due entità si classificano nei seguenti tipi:
a. Associazione 1:1 (uno a uno) o biunivoca
ad ogni elemento del primo insieme E1 corrisponde uno e un
solo elemento del secondo insieme E2, e viceversa.
E1
E2
Ogni istanza della prima entità è associata ad una sola istanza della
seconda entità e viceversa.
Le associazioni tra entità (3)
Esempio: l’associazione tra Studente e l’entità Diploma,
in una scuola superiore, è biunivoca perché ad ogni
studente corrisponde uno e un solo diploma.
Il simbolismo che indica il grado a uno dell’associazione
tra le entità è la linea stessa.
STUDENTE
1
Rilasciato
Possedere
Patente – Automobilista, ecc…
1
Attestato di
DIPLOMA
Le associazioni tra entità (3)
Rappresentazione alternativa
(0,1)
STUDENTE
Possi
ede
Uno studente può
possedere 0 o al più 1
attestato di diploma
(1,1)
Attestato di
DIPLOMA
Le associazioni tra entità (3)
Rappresentazione alternativa
(0,1)
STUDENTE
Possi
ede
Un Attestato è posseduto
da almeno 1 studente ed al
più da 1 studente (uno e
uno solo)
(1,1)
Attestato di
DIPLOMA
Le associazioni tra entità
b. Associazione 1:N (uno a molti) o semplice
ad un elemento di E1 possono corrispondere più elementi di
E2, mentre ad ogni elemento di E2 deve corrispondere uno e un
solo elemento di E1.
E1
E2
Ogni istanza della prima entità si può associare a uno o più istanze
della seconda entità, mentre ogni istanza della seconda entità si deve
associare ad una sola istanza della prima.
Le associazioni tra entità
Esempio: gestione movimenti su un conto corrente.
Su ogni conto si possono effettuare una o più operazioni,
ma ogni movimento si riferisce ad un solo conto corrente.
Riferito a
1
CONTOCORRENTE
Movimentato da
N
MOVIMENTO
Le associazioni tra entità
il verso Movimentato da (opzionale) è di grado a molti,
mentre il verso Riferito a (obbligatorio) è di grado a uno.
Riferito a
1
CONTOCORRENTE
Movimentato da
N
Il grado a molti si rappresenta con
l’aggiunta di altre due linee in prossimità
dell’entità di arrivo.
MOVIMENTO
Le associazioni tra entità
Rappresentazione alternativa
(0,N)
CONTOCORRENTE
Rifer
ito
Un Conto Corrente può
riferirsi a 0 o al più N
Movimenti
(1,1)
MOVIMENTO
Le associazioni tra entità
Rappresentazione alternativa
(0,N)
CONTOCORRENTE
Rifer
ito
(1,1)
MOVIMENTO
Un Movimento deve
riferirsi a 1 solo Conto
Corrente
Le associazioni tra entità
c. Associazione N:N (molti a molti) o complessa
ad un elemento dell’insieme E1 possono corrispondere più
elementi dell’insieme E2 e viceversa.
E1
E2
Ogni istanza della prima entità si può associare a uno o più istanze
della seconda entità e viceversa.
Le associazioni tra entità
Per esempio
nell’associazione tra l’entità Studente e l’entità Materia, uno studente
può essere verificato su una o più materie, e una materia può essere
oggetto di verifica da parte di uno o più studenti.
STUDENTE
STUDENTE
Oggetto di verifica per
Verificato in
(0,N)
Verif
ica
(0,N)
MATERIA
MATERIA
Le associazioni tra entità
OSS. 1:
Le associazioni 1:N sono molto più frequenti delle associazioni di
tipo 1:1 e di tipo N:M.
STUDENTE
N
Oggetto di verifica per
Verificato in
N
MATERIA
OSS. 2
L’associazione N:M può essere facilmente scomposta in due
associazioni 1:M, anche per consentire di rappresentare gli attributi
dell’associazione (maggiore chiarezza)
OSS. 3
Se volessimo tenere traccia del voto che uno Studente ha preso in
una Materia?
Le associazioni tra entità
Dal precedente esempio:
Il modello diventa più chiaro introducendo una terza entità Prova,
avente come attributi la data e il voto della verifica.
Infatti data e voto ottenuto non sono attributi nè di STUDENTE e nè
di MATERIA ma di PROVA
STUDENTE
1
Verificato con
Data
Sostenuta da
PROVA
N
N
Voto
Riferita a
1 Control.con
MATERIA
Le associazioni tra entità
Matricola
Cognome
Nome
123456789
Rossi
Fabio
987654321
Bianchi
Filippo
555654687
Verdi
Andrea
Matricola
ID_Materia
123456789
1
1
987654321 1
Verificato con
123456789 2
987654321
1
Data
STUDENTE
Voto
02/10/2012
Sostenuta
da
5
02/10/2012
8
PROVA
22/05/2012N 6
15/12/2012
ID_Materia
Nome
1
Matematica
2
Informatica
3
Fisica
7
MATERIA
Le associazioni tra entità
Rappresentazione alternativa
STUDENTE
(0,N)
Sosti
ene
Data
(1,1)
PROVA
Voto
(1,1)
riferi
ta
(0,N)
MATERIA
REGOLE DI LETTURA
Servono a controllare la bontà dello Schema E/R prodotto.
Ogni
<nome entità Partenza> può/deve essere
<nome verso Associazione> un solo / uno o più
<nome entità Arrivo>
Entità di Partenza
Può
essere
Può
essere
Deve
essere
Un
solo
Un
solo
Uno
o più
Uno
o più
Deve
essere
Entità di Arrivo
Esempio Regole di Lettura
FORNITORE
1
Abbinato a
Fornito da
PRODOTTO
N
• Ogni fornitore PUO’ ESSERE abbinato (fornire) a UNO O PIU’
prodotti
• Ogni prodotto DEVE ESSERE fornito da UN SOLO fornitore
Le associazioni tra entità
Gruppo Esercizi 1: Rappresentare con uno Schema E/R indicando il
grado dei versi e l’obbligatorietà o l’opzionalità delle associazioni.
Applicare anche le regole di lettura
1. Una materia può essere seguita da uno o più
allievi, un allievo può seguire una o più materie.
2. Un Comune appartiene a una sola regione e ogni
regione può comprendere più comuni
3. Ai clienti di un bar piacciono molti tipi di birra,
un tipo di birra viene scelto da molti clienti
Esempio Regole di Lettura
MATERIA
N
ALLIEVO
N
•Una materia può essere seguita da uno o più allievi, un allievo può
seguire una o più materie.
Esempio Regole di Lettura
COMUNE
REGIONE
N
1
Un Comune appartiene a una sola regione e ogni regione può
comprendere più comuni
Esempio Regole di Lettura
CLIENTE
BIRRA
N
N
Ai clienti di un bar piacciono molti tipi di birra, un tipo di birra può
essere scelto da molti clienti
Le associazioni tra entità
Gruppo Esercizi 1: Rappresentare con uno Schema E/R indicando il
grado dei versi e l’obbligatorietà o l’opzionalità delle associazioni.
Applicare anche le regole di lettura
4. Un elettore può votare per un solo partito, un
partito può essere votato da più elettori
5. Un attore può fare molti film, ogni film ha come
interpreti molti attori
6. Un reparto vende più prodotti, ogni prodotto è
venduto in un solo reparto
Le regole di derivazione del modello logico
Dal modello concettuale dei dati è possibile ottenere il modello
logico dei dati => si può definire la struttura degli archivi adatti per
organizzare i dati.
Le strutture dati scelte per il modello logico devono rendere facili le
operazioni di manipolazione e veloci le attività di ritrovamento dei
dati richiesti.
Il modello logico si ricava applicando le Regole di Derivazione:
1. ogni entità diventa una tabella;
2. ogni attributo di un’entità diventa un campo(colonna) della
tabella, cioè il nome di un campo nella struttura del record
3. ogni campo del record eredita le caratteristiche dell’attributo
dell’entità da cui deriva;
Le regole di derivazione del modello logico
4. l’identificatore univoco di un’entità diventa la chiave primaria
nel record dell’archivio derivato;
5. l’associazione uno a uno diventa un archivio unico, il cui
tracciato record contiene i campi corrispondenti agli attributi
della prima e della seconda entità;
6. nell’associazione uno a molti l’identificatore univoco dell’entità
di partenza (TABELLA LATO 1) diventa chiave esterna (foreign
key) dell’entità di arrivo associata (TABELLA LATO MOLTI)
7. l’associazione con grado molti a molti diventa un nuovo archivio
(in aggiunta agli archivi derivati dalle due entità), il cui record
contiene gli identificatori univoci delle due entità e gli eventuali
attributi dell’associazione.
Le regole di derivazione del modello logico
ESEMPIO associazione 1:1
Associazione tra l’entità CodiceFiscale e l’entità Cittadino: è
un’associazione uno a uno in quanto ad ogni cittadino è assegnato
uno ed un solo codice fiscale.
CODICE FISCALE 1
1
CITTADINO
l’archivio avrà gli attributi dell’una e dell’altra entità:
AnagrafiTributarie (CodiceFiscale, Cognome, Nome, DataNascita)
Il campo CodiceFiscale diventa chiave primaria.
Le regole di derivazione del modello logico
Archivio
Campo
AnagrafiTributarie
CodiceFiscale
Cognome
Nome
DataNascita
Chiave Formato Dimension
e
primaria
carattere
carattere
carattere
data/ora
16
30
25
8
In generale dall’associazione uno ad uno del modello concettuale
viene derivato un unico archivio che contiene gli attributi della
prima e della seconda entità.
Le regole di derivazione del modello logico
ESEMPIO associazione 1:N
Associazione tra l’entità Contratto e l’entità Dipendente è una
relazione uno a molti, in quanto ogni contratto può essere sottoscritto
da uno o più dipendenti, e ogni dipendente è regolato da un solo
contratto di lavoro.
CONTRATTO
1
DIPENDENTE
N
la chiave primaria dell’archivio Contratti diventa chiave esterna
nell’archivio Dipendenti.
Contratti (Codice, Descrizione, StipendioBase, DataScadenza)
Dipendenti (Matricola, Cognome, Nome, Indirizzo, Qualifica,
CodiceContratto(fk))
Le regole di derivazione del modello logico
Archivio
Campo
Chiave
Formato
Dimensione
Contratto
Codice
Descrizione
StipendioBase
DataScadenza
primaria numerico
carattere
numerico
data/ora
3
30
10
8
Dipendenti
Matricola
Cognome
Nome
Indirizzo
Qualifica
CodiceContratto
primaria carattere
carattere
carattere
carattere
carattere
esterna numerico
7
30
25
30
10
3
Le regole di derivazione del modello logico
Agli attributi dell’entità Dipendente (a molti) è stata aggiunta come
chiave esterna CodiceContratto, cioè la chiave primaria dell’entità
Contratto (a uno).
In generale dal modello concettuale vengono derivate le tabelle che
rappresentano le entità e l’associazione uno a molti viene tradotta
aggiungendo agli attributi dell’entità “a molti” la chiave dell’entità
“a uno”.
Le regole di derivazione del modello logico
ESEMPIO associazione N:M
Si considerino l’entità Docente e l’entità Classe per una scuola: tra le
due entità si può stabilire un’associazione molti a molti, in quanto
ogni docente può insegnare in una o più classi, e ogni classe ha uno o
più docenti.
DOCENTE
CLASSE
Accanto agli archivi Docenti e Classi, viene creato un nuovo
archivio, chiamato Insegna, il cui record contiene gli attributi chiave
dei due archivi considerati.
Le regole di derivazione del modello logico
Se vengono considerati anche gli attributi dell’associazione, questo
nuovo archivio di legame contiene, oltre alle chiavi delle due entità
anche gli attributi assegnati all’associazione: il numero delle ore di
insegnamento del docente in una classe non è attributo né di Docente,
né di Classe, ma dell’associazione; esso diventa un campo nel nuovo
archivio Insegna.
Docenti (Codice, Nome , Qualifica, Materia)
Classi (Sigla, NumeroAlunni, Aula)
Insegna (CodiceDocente(fk), SiglaClasse(fk), NumeroOre)
Le regole di derivazione del modello logico
Archivio
Campo
Chiave
Formato
Dimension
e
Docenti
Codice
Nome
Qualifica
Materia
primaria
carattere
carattere
carattere
carattere
5
40
7
3
Classi
Sigla
NumeroAlunni
Aula
primaria
carattere
numerico
numerico
3
2
3
Insegna
CodiceDocente
SiglaClasse
NumeroOre
prim,est
prim,est
carattere
carattere
numerico
5
3
2
Le regole di derivazione del modello logico
In generale quindi vengono derivati gli archivi corrispondenti alle
entità e l’associazione molti a molti viene tradotta con un terzo
archivio contenente le chiavi delle due entità e gli eventuali attributi
dell’associazione.
Scarica

modello logico