Il modello Entity-Relationship per il progetto

Transcript

Il modello Entity-Relationship per il progetto
1
Il modello Entity-Relationship
per il progetto delle basi di
dati
Massimo Paolucci
([email protected])
DIST – Università di Genova
Le metodologie di progettazione delle Basi
di Dati
‰ Una metodologia di progettazione consiste
generalmente in:
•
Generare una decomposizione in passi successivi e
indipendenti dell'intera attività di progetto.
•
Stabilire una serie di strategie da seguire nei vari passi.
•
Stabilire alcuni modelli di riferimento, per descrivere i dati in
ingresso e in uscita dalle varie fasi.
2
3
Ciclo di vita di un S.I.
Studio di fattibilità
Raccolta ed analisi dei
requisiti
Progettazione
Implementazione
Validazione e collaudo
Funzionamento
4
Le tre fasi in cui si deve articolare un
progetto di database sono:
‰La progettazione concettuale.
Rappresentare le specifiche con una descrizione formale e completa
senza preoccuparsi né della modalità con cui queste informazioni
verranno definite in un sistema reale.
‰La progettazione logica.
Traduzione dello schema concettuale in termini del modello di dati
proprio del tipo di DBMS a disposizione. In questa fase si tiene conto
anche dei criteri di ottimizzazione delle rappresentazioni, in base alle
operazioni da effettuare sui dati.
‰La progettazione fisica.
Lo schema logico è completato con la specifica dei parametri di
memorizzazione dei dati.
5
Requisiti della
base di dati
Progettazione di basi di dati
Progettazione concettuale
SCHEMA CONCETTUALE
Progettazione logica
SCHEMA LOGICO
Progettazione fisica
SCHEMA FISICO
I diagrammi Entità-Relazione (ER Diagram)
‰ Sono uno strumento per la progettazione concettuale di
DB.
‰ Da essi può essere agevolmente ricavato lo schema fisico
di DB relazionali.
‰ Sono utilizzati in strumenti di progettazione assistita
(CASE)
‰ La sintassi utilizzata è semplice ed intuitiva.
6
I diagrammi Entità-Relazione (ER Diagram)
(cont.)
7
‰ La specifica del DB definita è composta da:
‰ Un insieme di diagrammi ER
Rappresentano i dati operativi che devono essere
strutturati nel SI
‰ Un insieme di dizionari dei dati associati ai diagrammi ER
Descrivono verbalmente i diagrammi per mezzo di
tabelle riassuntive
‰ Un insieme di vincoli di integrità sui dati
Specificano condizioni particolari che non possono
essere desunte dai diagrammi.
Le componenti dei diagrammi ER
Entità:
Classi/insiemi di oggetti riguardo i quali si ha interesse a
raccogliere informazioni.
Entità
Esempi
Impiegato
Città
Fornitore
8
Le componenti dei diagrammi ER (cont.)
9
Relazione:
Legame logico tra entità riguardo il quale si ha interesse
raccogliere informazioni.
Relazione
Esempio
Residenza
Persona
Città
10
Esempi di relazione
Sede lavoro
Due relazioni binarie
tra le stesse entità
Residenza
Persona
Città
Componente
Una relazione ricorsiva
main
Parte
sub
Dipartimento
Una relazione ternaria
Fornitore
Fornitura
Prodotto
Le componenti dei diagrammi ER (cont.)
11
Attributi:
Specificano le informazioni che devono essere raccolte
riguardo entità e relazioni.
Attributo 1
...


Relazione
Entità
Attributo 1
Attributo 2
...
z

identificatore
Esempio
Esame
Studente
z
Matricola
Nome
Voto
Data esame

Corso
Nome
Anno di corso

z


Le componenti dei diagrammi ER (cont.)
Gli attributi possono anche essere composti.
Entità
Attributo 1
Attributo Composto [Comp1,
Comp2,...]
...
z

Esempio
Persona
C.F
Nome
Indirizzo [Via, CAP, Città]
....
z

12
Le componenti dei diagrammi ER (cont.)
13
Gli attributi possono essere obbligatori oppure opzionali.
Entità
Attributo obb (obbligatorio - default)
Attributo obb (1) (obbligatorio - esplicito)
 Attributo opz (0) (opzionale)
z

Esempio
Persona
C.F
Nome
Targa auto (0)
z

Le componenti dei diagrammi ER (cont.)
Nota
Gli attributi che possiedono una molteplicità il più delle
volte rappresentano entità.
Esempio
Persona
C.F
Nome
Targa auto (0, N)
z

Persona
z
C.F
Nome

Possesso
Auto
z
Targa auto
14
15
Un esempio di diagramma ER
Direzione
codice
cognome
stipendio
età
z

Impiegato

nome
budget
data consegna
z

nome
telefono

data afferenza
Composizione
Partecipazione

z
Dipartimento
Afferenza
data inizio
Progetto
Sede
z
città
indirizzo [civico, via, CAP]

Nota: esempi di notazioni alternative
città
Sede
indirizzo
civico
via
CAP
Persona
Possesso
Auto
Le componenti dei diagrammi ER (cont.)
Cardinalità delle relazione:
Specifica il numero minimo e massimo delle occorrenze
delle entità nelle relazioni.
(min1, max1)
Entità 1
(min2, max2)
Relaz. R
Entità 2
min1: il numero minimo di volte in cui Entità 1 partecipa alla Relaz. R
max1: il numero massimo di volte in cui Entità 1 partecipa alla Relaz.
R
min può valere:
• 0
la relazione è opzionale per l’entità
• 1
la relazione è obbligatoria per l’entità
max può valere:
• 1
l’entità può partecipare una sola volta alla relazione
• N
l’entità può partecipare più volte alla relazione
16
17
Esempio di cardinalità
(1, N)
Impiegato
(0, N)
Assegnamento
Incarico
Significato:
ad un impiegato viene sempre assegnato un incarico
ad un impiegato possono essere assegnati più incarichi
un incarico può anche non essere (ancora) assegnato ad un
impiegato
uno stesso incarico può essere assegnato a tanti impiegati
Le componenti dei diagrammi ER (cont.)
Tipi di cardinalità delle relazione:
Sono possibili tre tipi di relazioni in funzione della cardinalità
massima:
Relazioni 1-1
“uno a uno”
Relazioni 1-N (oppure N-1)
“uno a molti”
Relazioni N-N
“molti a molti”
Esempi
(0, 1)
Relazione 1-1
Ordine
Relazione 1-N
Persona
Relazione N-N
Turista
(1, 1)
Vendita
(1, 1)
Fattura
(0, N)
Residenza
(1, N)
Città
(0, N)
Prenotazione
Viaggio
18
Le componenti dei diagrammi ER (cont.)
19
Identificatori:
Sono attributi che individuano univocamente un’entità.
L’identificatore può essere:
z
Singolo
Attributo 1
Attributo 2
...
z
Entità
z
identificatore

Multiplo (composto)
Attributo 1
Attributo 2
Attributo 3
...
z
Entità
z
identificatori
z
Esterno
Studente
z
Matricola
Nome
(1, 1)
Iscrizione
(0, N)
Università
z
identificatori

Nome
Città

Un esempio di diagramma ER (cont.)
(0, 1)
codice
cognome
stipendio
età
z

Impiegato
(0, 1)
Afferenza

(0, N)
Partecipazione

(1, N)
nome
budget
data consegna
z

Progetto
(1, 1)
Direzione
(1, N)
data afferenza
z
Dipartimento
nome
telefono

(1, 1)
Composizione
data inizio
(1, N)
Sede
z
città
indirizzo [civico, via, CAP]

20
Le componenti dei diagrammi ER (cont.)
21
Gerarchie:
Specificano legami gerarchici tra entità, ossia
generalizzazioni (bottom-up) o specializzazioni (top-down).
Per mezzo delle gerarchie si esprimono:
z
Generalizzazioni totali
Persona
Donna
Uomo
z
Generalizzazioni parziali
Professionista
z
Avvocato
Sottinsiemi
Ingegnere
Persona
Studente
Le componenti dei diagrammi ER (cont.)
Gli attibuti nelle gerarchie vengono ereditati dalle entità
superiori a quelle inferiori.
Esempi
CF
cognome
Persona età
z


situazione militare
Uomo
Donna
CF
cognome
età
z

Persona

situazion
e militare
Uomo
Donna
stipendio
orario
matricola
Impiegato Studente
Segretario Direttore


Progettista
Responsabile
di progetto
22
Le componenti dei diagrammi ER (cont.)
23
Il dizionario del dati:
E’ composto da due tabelle:
z
Tabella delle Entità
Entità
z
Descrizione
Attributi
Identificatore
Tabella delle Relazioni
Relazione
Descrizione
Entità coinvolte
Attributi
Le componenti dei diagrammi ER (cont.)
Il vincoli di integrità sui dati dati:
Corrisponde all’insieme delle regole che non sono
deducibili dal diagramma.
Esempio
(0, 1)
(0, 1)
codice
cognome Impiegato
stipendio
età
(0, N)
(1, N)
z

Partecipazione

(1, N)
nome
budget
data consegna
z
Progetto
(1, 1)
Direzione
Afferenza

data afferenza
z
Dipartimento
nome
telefono

(1, 1)
Composizione
data inizio
(1, N)
Sede
z
città
indirizzo [civico, via, CAP]

• un impiegato può dirigere solo un dipartimento alla volta
• un impiegato non può avere un salario maggiore del direttore
• il budget di un progetto deve essere maggiore della somma degli stipendi
degli impiegati coinvolti
24
25
Modellazione dei dati con UML
‰ Unified Modeling Language
• Un linguaggio (e notazione) universale, per
rappresentare sistemi software
• Uno standard OMG (Object Management Group)
• Autori:
ƒ Grady Booch
ƒ Ivar Jacobson
ƒ Jim Rumbaugh
• Co-proponenti: Microsoft, IBM, Oracle, HP, Platinum,
Sterling, Unysis (e tanti altri)
Modellazione dei dati con UML
26
‰ Il diagramma delle classi
• Le componenti principali nei diagrammi delle classi sono le
classi e le associazioni che corrispondono sostanzialmente alle
entità e alle relazioni del modello
• Le classi vengono rappresentate da rettangoli contenenti, in
alto, il nome della classe e, al loro interno, gli attributi ad essa
associati
• Le associazioni binarie si presentano con delle linee che
congiungono le classi coinvolte nell’associazione, mentre per le
associazioni n-arie, la notazione grafica e’ la stessa del modello
E-R
• Gli attributi di una associazione vengono indicati attraverso le
classi di associazione che descrivono appunto le relative
proprietà
• La relazione di aggregazione è un’associazione speciale che
aggrega uno o più concetti che in un singolo concetto
composito
• Le generalizzazioni, in modo similare ai diagrammi E-R, sono
indicate con opportune frecce, linee continue che terminano in
un triangolo vuoto, che collegano i concetti figli al padre
27
Modellazione dei dati con UML
Direzione
1
0..1
Impiegato
1..*
Codice {id}
Cognome
Stipendio
Eta
Dipartimento
0..1
Nome {id}[1]
Telefono[1..*]
Afferenza
-Data Afferenza
1..*
Partecipazione
1
<<identificante>>
Data Inizio
*
1..*
Progetto
Nome {id}
Budget
Data Consegna
Sede
Citta' {id}
Indirizzo
28
Modellazione dei dati con UML
Persona
Professionista
Codice fiscale {id}
Cognome
Eta'
Uomo
Situazione militare
-Partita IVA {id}
-Indirizzo
Donna
Avvocato
Ingegnere
Dottore
Specializzazione
29
La progettazione concettuale
‰ La raccolta dei requisiti
‰ Le principali fonti per d’informazione per l’acquisizione
delle specifiche sono:
• Gli utenti delle applicazioni
• La documentazione esistente
• Eventuali realizzazioni preesistenti
‰ Strumenti
• Uso del linguaggio naturale
• Interviste con il cliente e gli utenti finali
• Questionari
• Workshop
30
La progettazione concettuale
‰ La raccolta dei requisiti
‰ L’attività di specifica è atta a formalizzare un documento
illustrante le informazioni raccolte
• Scegliere il corretto livello di astrazione
• Standardizzare la struttura delle frasi
• Evitare frasi contorte
• Unificare i termini (possibilmente evitando sinonimi)
• Rendere esplicito il contesto di riferimento
• Costruire un glossario dei termini
31
La progettazione concettuale
‰ Criteri di rappresentazione
• Un concetto che ha proprietà significative atte a
descrivere classi di oggetti deve essere rappresentato con
una entità
• Un concetto senza caratteristiche proprie rilevanti e
avente struttura semplice verrà rappresentato come
attributo di un concetto cui si riferisce
• L’associazione tra due o più concetti del dominio
applicativo è rappresentata con una relazione tra le
rispettive entità
• Entità aventi caratteristiche comuni possono essere
associate facendo uso della struttura di generalizzazione
La progettazione concettuale
‰ Strategie di progetto
• Top-down - Lo schema concettuale è il frutto di una
serie di raffinamenti successivi a partire da uno
schema generale in cui sono presenti pochi concetti ad
un alto livello di astrazione
• Bottom-up - Lo schema concettuale è costruito
attraverso una serie di fusioni successive a partire da
un insieme di schemi elementari in cui vengono
rappresentati singoli frammenti della realtà di interesse
• Inside-out - Si basa sulla strategia bottom-up avendo
però come base di partenza gli schemi dei concetti più
rilevanti nel dominio applicativo
• Mista - Lo scheletro dello schema viene costruito con
una strategia bottom-up che mantiene però un alto
livello di astrazione dei concetti rappresentati. Lo
schema risultante è poi raffinato con strategia topdown
32
La progettazione logica: dai diagrammi
ER alla struttura del DB relazionale
33
‰ Il modello ER viene sviluppato dall’analisi dei requisiti
procedendo generalmente in modo top-down.
‰ La progettazione logica consiste nel definire la struttura
del DB relazionale partendo dal modello relazionale.
‰ Prima della traduzione il diagramma ER va riorganizzato:
Eliminare le ridondanze
Eliminare le generalizzazioni
Partizionare/accorpare entità e/o associazioni
Scegliere gli identificatori primari
z
z
z
z
‰ Questo passaggio da struttura concettuale a struttura
logica non è necessario con modelli object-oriented.
34
Ristrutturazione dei diagrammi ER
Ð Eliminazione delle ridondanze
Le ridondanze sono causate da dati derivabili (che
dovrebbero essere aggiornati).
L’eliminazione può essere fatta valutando i singoli casi.
Esempi:
Importo netto
IVA
Importo lordo

Fattura
importo totale Acquisto

(1, N)

Composizione
(1, N)
Prodotto
prezzo

35
Ristrutturazione dei diagrammi ER (cont.)
Ð Eliminazione delle generalizzazioni
z
A01
A02
R1
E0

E1

(x, y)
E2
A11

E3
R2
E4
A21
Tre possibilità:
1.
Accorpamento delle entità figlie con l’entità madre
A01
A02
A11
A21
Tipo
z

R1
E0
E3
(0, y)
R2
E4
36
Ristrutturazione dei diagrammi ER (cont.)
2.
Suddivisione delle caratteristiche dell’entità madre nelle entità figlie
R11
R12
A01
A02
A11
z
E1

3.
A01
A02
A21
z
E2

(x, y)
E3
R2
E4
Sostituzione delle generalizzazioni con associazioni.
z
A01
A02

(0,1)
R1
E0
E3
(0,1)
Rg1
Rg2
(1,1)
(1,1)
E1

A11
E2

A21
(x, y)
R2
E4
37
Ristrutturazione dei diagrammi ER (cont.)
Ð Partizionare/accorpare entità o associazioni
Questo significa:
a.
Suddividere in più entità distinte gruppi di dati che sono
usati separatamente da diverse procedure.
codice
cognome
stipendio
data nascita
indirizzo
livello
ritenute
z

Esempio
Impiegato
codice
Dati Anag.
cognome
data nascita
indirizzo
z
(1, 1)
(1, 1)
Dati Lavor.
Dati impiegato

codice
stipendio
livello
ritenute
z


38
Ristrutturazione dei diagrammi ER (cont.)
b.
Suddividere associazioni che contengono informazioni
che vengono utilizzate separatamente.
Esempio
z
cognome
ruolo

(1, N)
(1, N)
composizione
Giocatore


Squadra
z
nome
città

data acquisto
data cessione (0,1)

data acquisto
comp. attuale
(1, 1)
z
cognome
ruolo

Giocatore
(1, N)
(0, N)
(1, N)
comp. precedente


data acquisto
data cessione
Squadra
z
nome
città

39
Ristrutturazione dei diagrammi ER (cont.)
c.
Eliminare attributi multivalore.
Esempio
nome
indirizzo
città
telefono (1,N)
z
Agenzia
z
numero
Telefono
(1, 1)
Recapito

(1, N)
Agenzia
nome
indirizzo
città
z

40
Ristrutturazione dei diagrammi ER (cont.)
d.
Accorpare entità (associazioni).
Esempio
CF
cognome
nome
età
z

Persona
(0, 1)
(1, 1)
Intestazione
CF
cognome Persona
nome
età
indirizzo (0,1)
interno (0,1)
z

z
indirizzo
Appartamento zinterno
Traduzione dei diagrammi ER nel
modello relazionale
41
‰ Definire le tabelle specificando le chiavi primarie ed esterne.
Ð Le regole di traduzione
1.
Entità:
diventano tabelle ed i loro identificatori chiavi primarie.
2.
Associazioni N-N:
diventano tabelle con chiave primaria formata
dall’unione delle chiavi delle entità coinvolte.
3.
Associazioni 1-N:
gli attributi dell’associazione e la chiave primaria della
tabella relativa all’entità dal lato “N” sono inclusi nella
tabella relativa all’entità dal lato “1”.
Traduzione dei diagrammi ER nel modello
relazionale (cont.)
Ð Le regole di traduzione
4.
Entità con identificatori esterni:
si procede come per le associazioni 1-N ma la chiave
primaria risulta composta.
5.
Associazioni 1-1:
se obbligatorie si procede come per le 1-N scegliendo il
lato in cui includere gli attributi e la chiave esterna;
se una opzionale si includono gli attributi e la chiave
esterna sul lato “obbligatorio”;
se entrambe opzionali si costruisce una tabella
autonoma come per il caso N-N.
42
Traduzione dei diagrammi ER nel modello
relazionale (cont.)
43
Esempi di regole di traduzione: associazioni molti a molti
matricola
cognome
stipendio
z

Impiegato
(0, N)
Partecipazione
(0, N)
codice
budget
nome
z
Progetto

data inizio

Schema Relazionale
IMPIEGATI (Matricola, Cognome, Stipendio)
PROGETTI (Codice, Nome, Budget)
PARTECIPAZIONI (Matricola, Codice, DataInizio)
PARTECIPAZIONI (Impiegato, Progetto, DataInizio)
Traduzione dei diagrammi ER nel modello
relazionale (cont.)
Esempi di regole di traduzione: associazioni molti a molti ricorsiva
(0, N)
Composizione
(0, N)
quantità

Composto
Prodotto
codice
costo
nome
Componente
z
Schema Relazionale
PRODOTTI (Codice, Nome, Costo)
COMPOSIZIONI (Composto, Componente, Quantità)
44
Traduzione dei diagrammi ER nel modello
relazionale (cont.)
45
Esempi di regole di traduzione: associazioni molti a molti ternaria
z
nome
Dipartimento telefono
(1, N)
z
(0, N)
P.IVA
Nome ditta Fornitore

Fornitura
(1, N)
Prodotto
z
codice
genere

quantità

Schema Relazionale
PRODOTTI (Codice, Genere)
FORNITORI (P_IVA, NomeDitta)
DIPARTIMENTI (Nome, Telefono)
FORNITURE (Fornitore, Prodotto, Dipartimento, Quantità)
Traduzione dei diagrammi ER nel modello
relazionale (cont.)
Esempi di regole di traduzione: associazioni uno a molti
data nascita
cognome
ruolo
z
z
Giocatore
(1,1)
Contratto
(0, N)
ingaggio
Squadra
nome
città
colori sociali
z


Schema Relazionale
SQUADRE (Nome, Città, ColoriSociali)
GIOCATORI (DataNascita, Cognome, NomeSquadra, Ruolo, Ingaggio)
Foreig
n Key
46
Traduzione dei diagrammi ER nel modello
relazionale (cont.)
47
Esempi di regole di traduzione: entità con identificatore esterno
matricola
cognome
anno iscizione
z

Studente
(1,1)
(1,N
)
Iscrizione
Università
nome
città
indirizzo
z

Schema Relazionale
STUDENTI (Matricola, NomeUniversità, Cognome, AnnoIscrizione)
UNIVERSITA’ (Nome, Città, Indirizzo)
Traduzione dei diagrammi ER nel modello
relazionale (cont.)
48
Esempi di regole di traduzione: associazioni uno a uno (obbligatoria)
codice
cognome
stipendio
z

Direttore
(1,1)
Direzione
(0, 1)
data inizio
Dipartimento
nome
telefono
sede
z


Schema Relazionale
DIRETTORI (Codice, Cognome, Stipendio, DipartimentoDiretto, InizioDirezione)
DIPARTIMENTI (Nome, Telefono, Sede)
in alternativa
DIRETTORI (Codice, Cognome, Stipendio)
DIPARTIMENTI (Nome, Telefono, Sede, Direttore, InizioDirezione)
Traduzione dei diagrammi ER nel modello
relazionale (cont.)
Esempi di regole di traduzione: associazioni uno a uno (opzionale)
codice
cognome
stipendio
z

Impiegato
(0,1)
Direzione
(0, 1)
Dipartimento
data inizio
nome
telefono
sede
z


Schema Relazionale
IMPIEGATI (Codice, Cognome, Stipendio)
DIPARTIMENTI (Nome, Telefono, Sede, Direttore, InizioDirezione)
in alternativa
IMPIEGATI (Codice, Cognome, Stipendio)
DIPARTIMENTI (Nome, Telefono, Sede)
DIREZIONI (Direttore, Dipartimento, DataInizioDirezione)
49