Strategie
di
proge-o
•  Come
procediamo
con
tante
specifiche
anche
de-agliate?
Come
ci
orizzon'amo?
•  Strategie:
Basi
di
da'
–  top‐down:
•  Lo
schema
conce-uale
viene
prodo-o
mediante
una
serie
di
raffinamen'
successivi
a
par're
da
uno
schema
iniziale
che
descrive
le
specifiche
con
pochi
conceC
molto
astraC
–  bo-om‐up:
Proge-azione
e
Qualità
di
uno
schema
conce-uale
•  Le
specifiche
iniziali
sono
suddivise
in
componen'
via
via
più
piccole
fino
a
che
non
descrivono
un
frammento
elementare
di
interesse.
Le
varie
componen'
vengono
poi
integrate
fino
a
giungere
allo
schema
finale
–  inside‐out:
1
Strategia
top‐down
•  Si
individuano
solo
alcuni
conceC
fondamentali
e
poi
si
parte
da
ques'
espnadendosi
a
“macchia
d’olio”
Strategia
bo-om‐up
Specifiche
1,1
Schema 1,1
Schema finale
Specifiche1,2
1,2
Schema
(0,1)
(1,1)
Telefono
Direzione
Impiegato
Codice
(0,N)
Partecipazione
Afferenza
(0,1)
Data
(1,N)
Progetto
Budget
Nome
(1,N)
(1,N)
(0,1)
Dipartimento
Nome
(1,1)
Composizione
(1,N)
Sede
Specifiche
2,2
Schema 2,2
Una
metodologia
•  Analisi
dei
requisi'
–  Analizzare
i
requisi'
ed
eliminare
le
ambiguità
–  Costruire
un
glossario
dei
termini
–  Raggruppare
i
requisi'
in
insiemi
omogenei
•  Passo
base
–  Definire
uno
schema
scheletro
con
i
conceC
più
rilevan'
•  Passo
itera'vo
(da
ripetere
finché
non
si
è
soddisfaC)
–  Raffinare
i
conceC
presen'
sulla
base
delle
loro
specifiche
–  Aggiungere
conceC
per
descrivere
specifiche
non
descri-e
•  Analisi
di
qualità
(ripetuta
e
distribuita)
Via
Indirizzo
CAP
Specifiche
2,1
Schema 2,1
Specifiche Specifiche
1
Specifiche 2
Schema
Schema
intermedio
iniziale
Schema
Specifiche
intermedio
Schema
finale
Cognome
2
–  Verificare
le
qualità
dello
schema
e
modificarlo
Città
6
1
Una
metodologia
con
integrazione
In
pra'ca
•  Analisi
dei
requisi'
•  Passo
base
•  Decomposizione
–  decomporre
i
requisi'
con
riferimento
ai
conceC
nello
schema
scheletro
•  Passo
itera'vo,
per
ogni
so-oschema
•  Integrazione
–  integrare
i
vari
so-oschemi
in
uno
schema
complessivo,
facendo
riferimento
allo
schema
scheletro
•  Analisi
di
qualità
•  si
procede
di
solito
con
una
strategia
mista:
–  si
individuano
i
conceC
principali
e
si
realizza
uno
schema
scheletro
–  sulla
base
di
questo
si
può
decomporre
–  poi
si
raffina,
si
espande,
si
integra
•  Si
individuano
i
conceC
più
importan',
ad
esempio
perché
più
cita'
o
perché
indica'
esplicitamente
come
cruciali
e
li
si
organizza
in
un
semplice
schema
conce-uale
7
Qualità
di
uno
schema
conce-uale
8
Completezza
e
Corre-ezza
–  corre-ezza
–  completezza
–  leggibilità
–  minimalità
•  Rappresentare
in
modo
completo
e
corre-oi
requisi'
•  Sono
proprietà
ovvie
ma
sulle
quali
c’è
poco
da
aggiungere
•  Per
la
completezza:
–  assicurarsi
che
i
da'
consentano
di
eseguire
tu-e
le
applicazioni
•  Per
la
corre-ezza:
–  assicurarsi
che
sia
possibile
popolare
la
base
di
da'
anche
con
informazione
parzialmente
incompleta
durante
fasi
iniziali
della
sua
evoluzione
9
Leggibilità
Conce-uale
10
Leggibilità
grafica
11
12
2
Requisiti della base di dati
Progettazione
concettuale
Schema concettuale
Basi
di
Da'
Progettazione
logica
Schema logico
Progettazione
fisica
Schema fisico
13
14
Carico
applicativo
ObieCvo
della
proge-azione
logica
•  "tradurre"
lo
schema
conce-uale
in
uno
schema
logico
che
rappresen'
gli
stessi
da'
in
maniera
corre-a
ed
efficiente
•  Ingresso:
Schema E-R
Ristrutturazione dello
schema E-R
–  schema
conce-uale
–  informazioni
sul
carico
applica'vo
–  modello
logico
Modello
logico
•  Uscita:
Schema E-R
ristrutturato
Traduzione nel
modello logico
–  schema
logico
–  documentazione
associata
•  Non
si
tra-a
di
una
pura
e
semplice
traduzione!
Schema
logico
–  alcuni
aspeC
non
sono
dire-amente
rappresentabili
–  è
necessario
considerare
le
prestazioni
15
Ristru-urazione
schema
E‐R
16
Prestazioni?
•  Mo'vazioni:
•  Per
oCmizzare
il
risultato
abbiamo
bisogno
di
analizzare
le
prestazioni
a
questo
livello
•  Ma:
–  semplificare
la
traduzione
–  "oCmizzare"
le
prestazioni
•  Osservazione:
–  uno
schema
E‐R
ristru-urato
non
è
(più)
uno
schema
conce-uale
nel
senso
stre-o
del
termine
17
–  le
prestazioni
non
sono
valutabili
con
precisione
su
uno
schema
conce-uale!
18
3
(0,1)
Cognome
Prestazioni,
approssimate
(1,1)
Telefono
Direzione
Impiegato
•  Consideriamo:
–  “indicatori”
dei
parametri
che
regolano
le
prestazioni
Afferenza
–  numero
di
occorrenze
previste
•  tempo:
Budget
(1,N)
Sede
Progetto
–  numero
di
occorrenze
(di
en'tà
e
rela'onship)
visitate
durante
un’operazione
Nome
Composizione
Data
(1,N)
Dipartimento
(1,1)
(0,1)
Partecipazione
•  spazio:
(1,N)
(0,1)
(0,N)
Codice
(1,N)
Via
Indirizzo
Nome
CAP
Città
19
20
Telefono
Cognome
Esempio
di
valutazione
di
costo
(1,N)
Impiegato
•  Operazione:
–  trova
tuC
i
da'
di
un
impiegato,
del
dipar'mento
nel
quale
lavora
e
dei
progeC
ai
quali
partecipa
Codice
(0,N)
Partecipazione
•  Si
costruisce
una
tavola
degli
accessi
basata
su
uno
schema
di
navigazione
(1,N)
(0,1)
(1,N)
Afferenza
Dipartimento
(1,1)
Nome
(0,1)
Data
Progetto
Budget
Nome
21
22
Analisi
delle
ridondanze
ACvità
della
ristru-urazione
•  Una
ridondanza
in
uno
schema
E‐R
è
una
informazione
significa'va
ma
derivabile
da
altre
•  Analisi
delle
ridondanze
•  Eliminazione
delle
generalizzazioni
•  Par'zionamento/accorpamento
di
en'tà
e
rela'onship
•  Scelta
degli
iden'ficatori
primari
•  in
questa
fase
si
decide
se
eliminare
le
ridondanze
eventualmente
presen'
o
mantenerle
(o
anche
di
introdurne
di
nuove)
23
24
4
Ridondanze
ACvità
della
ristru-urazione
•  Vantaggi
– Analisi
delle
ridondanze
– Eliminazione
delle
generalizzazioni
– Par'zionamento/accorpamento
di
en'tà
e
rela'onship
– Scelta
degli
iden'ficatori
primari
–  semplificazione
delle
interrogazioni
•  Svantaggi
–  appesan'mento
degli
aggiornamen'
–  maggiore
occupazione
di
spazio
25
26
A01
Eliminazione
delle
gerarchie
E0
•  il
modello
relazionale
non
può
rappresentare
dire-amente
le
generalizzazioni
•  en'tà
e
rela'onship
sono
invece
dire-amente
rappresentabili
•  si
eliminano
perciò
le
gerarchie,
sos'tuendole
con
en'tà
e
rela'onship
A02
R1
E1
E2
A11
A21
E3
R2
Tre
possibilità
• 
1. 
2. 
3. 
accorpamento
delle
figlie
della
generalizzazione
nel
genitore
accorpamento
del
genitore
della
generalizzazione
nelle
figlie
sos'tuzione
della
generalizzazione
con
rela'onship
E4
27
A01
28
A02
A01
A02
(0,1)
A11
A21
E0
E3
R1
E0
R1
E3
(0,1)
TIPO
(0,..)
R2
1. 
accorpamento delle figlie
della generalizzazione nel
genitore
E4
29
E1
E2
A11
A21
R2
E4
30
5
A01
A02
R11
R12
E3
E1
E2
R2
A01 A11 A02
A01 A21 A02
E0
E4
R1
E1
E2
A11
A21
E3
R2
E4
accorpamento del genitore della
generalizzazione nelle figlie
31
A01
A02
E0
R1
32
•  la
scelta
fra
le
alterna've
si
può
fare
con
metodo
simile
a
quello
visto
per
l'analisi
delle
ridondanze
(però
non
basato
solo
sul
numero
degli
accessi)
E3
• 
(0,1)
(0,1)
(1,1)
(1,1)
RG1
1.  conviene
se
gli
accessi
al
padre
e
alle
figlie
sono
contestuali
RG2
2.  conviene
se
gli
accessi
alle
figlie
sono
dis'n'
E1
E2
A11
A21
R2
3.  conviene
se
gli
accessi
alle
en'tà
figlie
sono
separa'
dagli
accessi
al
padre
• 
E4
sostituzione della
generalizzazione
con relationship
A01
è
possibile
seguire
alcune
semplici
regole
generali:
sono
anche
possibili
soluzioni
“ibride”,
sopra-u-o
in
gerarchie
a
più
livelli
33
34
A02
A01
A02
(0,1)
E0
R1
A11
E3
E0
TIPO
R1
E3
(0,1)
RG2
(1,1)
E1
E2
A11
A21
E2
R2
A21
E4
35
R2
E4
36
6
ACvità
della
ristru-urazione
– Analisi
delle
ridondanze
– Eliminazione
delle
generalizzazioni
– Par'zionamento/accorpamento
di
en'tà
e
rela'onship
– Scelta
degli
iden'ficatori
primari
•  Ristru-urazioni
effe-uate
per
rendere
più
efficien'
le
operazioni
in
base
a
un
semplice
principio
•  Gli
accessi
si
riducono:
–  separando
a-ribu'
di
un
conce-o
che
vengono
accedu'
separatamente
–  raggruppando
a-ribu'
di
conceC
diversi
accedu'
insieme
37
ACvità
della
ristru-urazione
38
Scelta
degli
iden'ficatori
principali
•  operazione
indispensabile
per
la
traduzione
nel
modello
relazionale
•  Criteri
•  Analisi
delle
ridondanze
•  Eliminazione
delle
generalizzazioni
•  Par'zionamento/accorpamento
di
en'tà
e
rela'onship
•  Scelta
degli
iden'ficatori
principali
–  assenza
di
opzionalità
–  semplicità
–  u'lizzo
nelle
operazioni
più
frequen'
o
importan'
39
40
Traduzione
verso
il
modello
relazionale
Se
nessuno
degli
iden'ficatori
soddisfa
i
requisi'
vis'?
Si introducono nuovi attributi (codici) contenenti
valori speciali generati appositamente per
questo scopo
41
•  idea
di
base:
–  le
en'tà
diventano
relazioni
sugli
stessi
a-ribu'
–  le
rela'onship
diventano
relazioni
sugli
iden'ficatori
delle
en'tà
coinvolte
(più
gli
a-ribu'
propri)
42
7
En'tà
e
rela'onship
mol'
a
mol'
Cognome Matricola
Nome
(1,N)
(0,N)
Impiegato
Codice
Data inizio
En'tà
e
rela'onship
mol'
a
mol'
Progetto
Partecipazione
Impiegato(Matricola,
Cognome,
S'pendio)
Proge-o(Codice,
Nome,
Budget)
Partecipazione(Matricola,
Codice,
DataInizio)
•  con
vincoli
di
integrità
referenziale
fra
–  Matricola
in
Partecipazione
e
(la
chiave
di)
Impiegato
–  Codice
in
Partecipazione
e
(la
chiave
di)
Proge-o
Stipendio
Budget
Impiegato(Matricola, Cognome, Stipendio)
Progetto(Codice, Nome, Budget)
Partecipazione(Matricola, Codice, DataInizio)
43
44
Nota Nomi più espressivi per gli attributi
della chiave della relazione che
rappresenta la relationship
•  La
traduzione
non
riesce
a
tener
conto
delle
cardinalità
minime
delle
rela'onship
mol'
a
mol'
(se
non
con
vincoli
di
CHECK
complessi
e
poco
usa')
Impiegato(Matricola, Cognome, Stipendio)
Progetto(Codice, Nome, Budget)
Partecipazione(Matricola, Codice, DataInizio)
Partecipazione(Impiegato, Progetto, DataInizio)
45
Rela'onship
n‐arie
Rela'onship
ricorsive
Nome
Quantità
(0,N)
Composizione
Composto
Costo
Prodotto
Nome
46
Quantità
Partita IVA
(0,N)
(0,N)
Fornitore
Genere
Codice
(1,N)
Fornitura
Prodotto
(1,N)
Componente
Nome
Dipartimento
Codice
Prodotto(Codice, Nome, Costo)
Composizione(Composto, Componente, Quantità)
47
Telefono
Fornitore(PartitaIVA, Nome)
Prodotto(Codice, Genere)
Dipartimento(Nome, Telefono)
Fornitura(Fornitore, Prodotto, Dipartimento, Quantità)
48
8
Rela'onship
uno
a
mol'
Cognome
Data
nascita
(1,1)
Giocatore
Ingaggio
Città
Soluzione
più
compa-a
Nome
(0,N)
Squadra
Contratto
Ruolo
Colori sociali
Giocatore(Cognome, DataNascita, Ruolo)
Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio)
Squadra(Nome, Città, ColoriSociali)
•  corretto?
Giocatore(Cognome,
DataNascita,
Ruolo)
Contra-o(CognGiocatore,
DataNascG,
Squadra,
Ingaggio)
Squadra(Nome,
Ci-à,
ColoriSociali)
Giocatore(Cognome, DataNasc, Ruolo, Squadra, Ingaggio)
Squadra(Nome, Città, ColoriSociali)
•  con vincolo di integrità referenziale fra Squadra in
Giocatore e la chiave di Squadra
•  se la cardinalità minima della relationship è 0, allora
Squadra in Giocatore deve ammettere valore nullo
49
Nota
50
En'tà
con
iden'ficazione
esterna
•  La
traduzione
riesce
a
rappresentare
efficacemente
la
cardinalità
minima
della
partecipazione
che
ha
1
come
cardinalità
massima:
Cognome
Matricola
Nome
(1,1)
Studente
–  0
:
valore
nullo
ammesso
–  1
:
valore
nullo
non
ammesso
Città
(1,N)
Università
Iscrizione
Indirizzo
AnnoDiCorso
Studente(Matricola, Università, Cognome, AnnoDiCorso)
Università(Nome, Città, Indirizzo)
•  con vincolo …
51
Rela'onship
uno
a
uno
52
Una
possibilità
privilegiata
Data inizio
Cognome
Data inizio
Sede
Codice
(1,1)
Impiegato
Cognome
Nome
(0,1)
(1,1)
Direzione
Stipendio
Sede
Codice
Dipartimento
Impiegato
Stipendio
Telefono
Nome
(1,1)
Direzione
Dipartimento
Telefono
Impiegato (Codice, Cognome, Stipendio)
•  varie possibilità:
•  fondere da una parte o dall'altra
•  fondere tutto?
Dipartimento (Nome, Sede, Telefono, Direttore, InizioD)
•  con vincolo di integrità referenziale, senza valori nulli
53
54
9
Sede
Codice
(0,1)
Impiegato
(0,1)
Telefono
Direzione
Data inizio
Cognome
(0,1)
Cognome
Un
altro
caso
Impiegato
Nome
(0,1)
Direzione
Codice
Dipartimento
Stipendio
Partecipazione
(1,N)
Telefono
Progetto
•  Associazione uno a uno con partecipazione
opzionale da entrambe le entità
Budget
55
(0,N)
(1,1)
(0,N)
Nome
(1,1)
Afferenza
(0,1)
Data
Dipartimento
Nome
(1,1)
Composizione
(1,N)
Sede
Via
Indirizzo
CAP
Città
56
Schema
finale
Impiegato(Codice, Cognome,
Dipartimento,Sede, Data*)
Dipartimento(Nome, Città, Telefono, Direttore*)
Sede(Città, Via, CAP)
Progetto(Nome, Budget)
Partecipazione(Impiegato, Progetto)
57
10
Scarica

Strategie di proge.o Strategia top‐down Strategia bo.om‐up Una