Basi di Dati
Progettazione di Basi di Dati:
Introduzione
versione 2.0
Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
(vedi ultima pagina)
G. Mecca – [email protected] – Università della Basilicata
Progettazione della Base di Dati >> Sommario
Sommario
 Introduzione
 Il
Processo di Sviluppo dell’Applicazione
Analisi
Modello Concettuale
Progettazione
 Il
Processo di Sviluppo della Base di Dati
Qualità della Base di Dati
G. Mecca - [email protected] - Basi di Dati
2
Progettazione della Base di Dati >> Introduzione
Introduzione
 Scopo
di questo ciclo di lezioni
studiare l’analisi e la progettazione di basi di
dati
una delle attività fondamentali del progetto di
applicazioni su basi di dati
 Approccio
usato
utilizzeremo UML
e non il modello entità-relazione tradizionale
G. Mecca - [email protected] - Basi di Dati
3
Progettazione della Base di Dati >> Introduzione
Introduzione
 Attenzione
tradizionalmente: il progetto dei dati è stato
considerato un’attività separata dal progetto
dell’applicazione
questo approccio non è coerente con la
filosofia della programmazione ad oggetti
 Di
conseguenza
il progetto della base di dati deve essere
visto nell’ambito del prog. dell’applicazione
G. Mecca - [email protected] - Basi di Dati
4
Progettazione della Base di Dati >> Il Processo di Sviluppo
Processo di Sviluppo dell’Applicazione
 Applicazioni
di complessità medio-alta
è necessario un processo di sviluppo
sistematico
insieme di fasi e modelli
 Il
punto di partenza
i requisiti iniziali (tipicamente incompleti)
 Il
punto di arrivo
il sistema installato e funzionante (da
manutenere)
G. Mecca - [email protected] - Basi di Dati
5
Progettazione della Base di Dati >> Il Processo di Sviluppo
Il Processo di Sviluppo: Le Attività
 Studio
di Fattibilità
 Analisi dei Requisiti
 Progettazione
 Sviluppo
 Test
 Installazione ed Uso
 Manutenzione
G. Mecca - [email protected] - Basi di Dati
6
Progettazione della Base di Dati >> Il Processo di Sviluppo
Il Processo di Sviluppo
 Tradizionalmente
metodologie “pesanti” (molto rigide e
prescrittive)
processo in cascata: prima di cominciare la
fase successiva è necessario completare la
precedente
processo “monolitico”
è dimostrata l’inefficacia di questo approccio
nello sviluppo del software moderno
G. Mecca - [email protected] - Basi di Dati
7
Progettazione della Base di Dati >> Il Processo di Sviluppo
Il Processo di Sviluppo
 Recentemente
metodologie “agili” (più flessibili e libere)
cicli brevi di progetto e sviluppo
in ogni ciclo si svolgono molte delle attività
elencate
es: Xtreme Programming
(http://www.extremeprogramming.org)
es: RUP (Rational Unified Process)
G. Mecca - [email protected] - Basi di Dati
8
Progettazione della Base di Dati >> Il Processo di Sviluppo
Studio di Fattibilità
 Fase
preliminare
non rientra nel ciclo di progetto e sviluppo
 Obiettivi
valutazione dei costi e dei benefici
normalmente richiede un’analisi dei requisiti
preliminare
è necessario valutare aspetti organizzativi
(impatto del sistema inf. sull’organizzazione)
si sceglie la piattaforma tecnologica
G. Mecca - [email protected] - Basi di Dati
9
Progettazione della Base di Dati >> Analisi dei Requisiti
Analisi dei Requisiti
 Obiettivo
capire come funziona la realtà di interesse
capire come deve funzionare l’applicazione
studiare le funzioni dell’applicazione
studiare i dati dell’applicazione
 Un’utile
strumento per cominciare
i Casi d’Uso di UML (“Use Cases”)
carte CRC (“Class-Responsiblity-Collabor.”)
G. Mecca - [email protected] - Basi di Dati
10
Progettazione della Base di Dati >> Analisi dei Requisiti
Modello Concettuale
 Descrizione
dei dati dell’applicazione
diagramma delle classi
alto livello di astrazione (ancora indipendente
dall’implementazione)
 Vari
scopi
analizzare le relazioni tra i dati (il modello)
guidare la progettazione delle classi e dei
componenti dell’applicazione
guidare la progettazione della base di dati
G. Mecca - [email protected] - Basi di Dati
11
Progettazione della Base di Dati >> Progettazione
Progettazione
 Obiettivo
definire l’architettura dell’applicazione in
termini di componenti
definire la struttura della base di dati (tabelle,
attributi, vincoli)
definire la struttura delle classi (proprietà,
metodi, visibilità)
 Dovrebbe
guidare la fase di sviluppo
G. Mecca - [email protected] - Basi di Dati
12
Progettazione della Base di Dati >> Progettazione
Il Processo di Sviluppo
 In
questo corso
ci concentriamo esclusivamente sulle attività
collegate alla progettazione dei dati
visione molto parziale del processo
la visione sarà ampliata nell’ambito del corso
di ingegneria del software, in cui le attività
descritte qui sono inserite in un processo più
ampio (es: RUP)
G. Mecca - [email protected] - Basi di Dati
13
Progettazione della BD >> Il Processo di Sviluppo della BD
Il Processo di Sviluppo della BD

Punto di partenza
definizione del modello concettuale dei dati

Progettazione Logica
dallo schema concettuale viene derivato uno schema
logico standard e i necessari schemi esterni

Progettazione Fisica
lo schema logico viene sottoposto a verifica e viene
ottimizzato

Sviluppo e Manutenzione
G. Mecca - [email protected] - Basi di Dati
14
Progettazione della BD >> Il Processo di Sviluppo della BD
Il Processo di Sviluppo della BD
 Progettazione
logica
viene condotta sulla base di un semplice
algoritmo sistematico
 Progettazione
fisica
attività mista: progettazione e “tuning”
richiede di valutare le prestazioni
difficilmente sistematizzabile
conta molto l’esperienza
G. Mecca - [email protected] - Basi di Dati
15
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
Qualità della Base di Dati
 Obiettivo
della progettazione della bd
produrre una base di dati di qualità
 Qualità
della base di dati
“normalizzazione” (progettazione logica):
garantisce che la base di dati non presenta
anomalie
efficienza delle operazioni (progettazione
fisica)
G. Mecca - [email protected] - Basi di Dati
16
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
Qualità della Base di Dati
 Una
tabella non normalizzata
studente
annoCorso
corso
voto
docente
Pinco Palla
1
Programmazione
27
F. Totti
Pinco Pietro
2
Programmazione
24
F. Totti
Bruno Pasquale
1
Basi di Dati
30
C. Vieri
Rossi Paolo
2
Basi di Dati
25
C. Vieri
Pinco Palla
1
Tecnologie Web
30
A. Del Piero
Bruno Pasquale
1
Programmazione
21
F. Totti
NOTA: supponiamo che nella base di dati non
ci siano altre tabelle per studenti, corsi ed esami
G. Mecca - [email protected] - Basi di Dati
17
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
Qualità della Base di Dati

Anomalie di aggiornamento
se l’anno di corso di uno studente varia, è necessario
modificare il valore in diverse ennuple

Anomalie di inserimento
se uno studente non ha ancora sostenuto esami non
è possibile inserirlo nella base di dati

Anomalie di cancellazione
se ad uno studente vengono annullati gli esami
sostenuti, dobbiamo cancellarlo
G. Mecca - [email protected] - Basi di Dati
18
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
Qualità della Base di Dati
 Intuitivamente
il problema è legato al fatto che la relazione
descrive dati relativi a “concetti” diversi
 In
particolare
gli studenti ed il loro anno di corso
i corsi ed il loro docente
gli esami sostenuti dagli studenti per i corsi
ed il voto riportato
G. Mecca - [email protected] - Basi di Dati
19
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
Qualità della Base di Dati
 Per
questa ragione, si dice che
“la tabella non è normalizzata”
 Per
ottenere una bd normalizzata
sarebbe stato necessario progettare le
tabelle in modo che ciascuna descriva un
concetto
ovvero “normalizzare” per decomposizione la
tabella originale
G. Mecca - [email protected] - Basi di Dati
20
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
Qualità della Base di Dati
studente
Pinco Palla
corso
docente
Programmazione
F. Totti
Basi di Dati
C. Vieri
annoCorso
corso
Tecnologie
Web
A. Del Piero
1
Programmazione
voto
docente
27
F. Totti
24
F. Totti
Pinco Pietro
2
Programmazione
Bruno Pasquale
1
Basi di Dati
30
studente
corso
Basi di Dati
25
Pinco Palla
Programmazione
Tecnologie Web
30
Pinco Pietro
Programmazione
Programmazione
21
Bruno Pasquale
Basi di Dati
Rossi Paolo
2
studente
annoCorso
Pinco Palla
1
Pinco Palla
1
Bruno Pasquale
1
Pinco Pietro
2
C. Vieri
voto
C. Vieri
27
A. Del Piero
24
F. Totti
30
Bruno Pasquale
1
Rossi Paolo
Basi di Dati
25
Rossi Paolo
2
Pinco Palla
Tecnologie Web
30
Bruno Pasquale Programmazione
21
G. Mecca - [email protected] - Basi di Dati
21
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
Qualità della Base di Dati
 Il
nostro approccio
non ci porremo il problema della
normalizzazione
descriveremo un algoritmo di progettazione
che garantisce di produrre basi di dati
normalizzate
purché si parta da uno schema concettuale
di qualità (corretto e non ridondante)
effettueremo verifiche continue di qualità
G. Mecca - [email protected] - Basi di Dati
22
Progettazione della Base di Dati >> Sommario
Sommario
 Introduzione
 Il
Processo di Sviluppo dell’Applicazione
Analisi
Modello Concettuale
Progettazione
 Il
Processo di Sviluppo della Base di Dati
Qualità della Base di Dati
G. Mecca - [email protected] - Basi di Dati
23
Termini della Licenza
Termini della Licenza

This work is licensed under the Creative Commons AttributionShareAlike License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to
Creative Commons, 559 Nathan Abbott Way, Stanford, California
94305, USA.

Questo lavoro viene concesso in uso secondo i termini della
licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere
una copia della licenza, è possibile visitare
http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una
lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way,
Stanford, California 94305, USA.
G. Mecca - [email protected] - Basi di Dati
24
Scarica

ppt - Corso di Laurea in Informatica