G. Mecca – [email protected] – Università della BasilicataG. Mecca – [email protected] – Università della Basilicata
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)
2G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Sommario
Introduzione Il Processo di Sviluppo dell’Applicazione
AnalisiModello ConcettualeProgettazione
Il Processo di Sviluppo della Base di DatiQualità della Base di Dati
Progettazione della Base di Dati >> Sommario
3G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Introduzione
Scopo di questo ciclo di lezionistudiare l’analisi e la progettazione di basi di
datiuna delle attività fondamentali del progetto di
applicazioni su basi di dati Approccio usato
utilizzeremo UMLe non il modello entità-relazione tradizionale
Progettazione della Base di Dati >> Introduzione
4G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Introduzione
Attenzionetradizionalmente: 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 conseguenzail progetto della base di dati deve essere
visto nell’ambito del prog. dell’applicazione
Progettazione della Base di Dati >> Introduzione
5G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
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)
Progettazione della Base di Dati >> Il Processo di Sviluppo
6G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Il Processo di Sviluppo: Le Attività
Studio di Fattibilità Analisi dei Requisiti Progettazione Sviluppo Test Installazione ed Uso Manutenzione
Progettazione della Base di Dati >> Il Processo di Sviluppo
7G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Il Processo di Sviluppo
Tradizionalmentemetodologie “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
Progettazione della Base di Dati >> Il Processo di Sviluppo
8G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Il Processo di Sviluppo
Recentementemetodologie “agili” (più flessibili e libere)cicli brevi di progetto e sviluppoin ogni ciclo si svolgono molte delle attività
elencatees: Xtreme Programming
(http://www.extremeprogramming.org)es: RUP (Rational Unified Process)
Progettazione della Base di Dati >> Il Processo di Sviluppo
9G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Studio di Fattibilità
Fase preliminarenon rientra nel ciclo di progetto e sviluppo
Obiettivivalutazione dei costi e dei beneficinormalmente richiede un’analisi dei requisiti
preliminareè necessario valutare aspetti organizzativi
(impatto del sistema inf. sull’organizzazione)si sceglie la piattaforma tecnologica
Progettazione della Base di Dati >> Il Processo di Sviluppo
10G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Analisi dei Requisiti
Obiettivocapire come funziona la realtà di interessecapire come deve funzionare l’applicazionestudiare le funzioni dell’applicazionestudiare i dati dell’applicazione
Un’utile strumento per cominciarei Casi d’Uso di UML (“Use Cases”)carte CRC (“Class-Responsiblity-Collabor.”)
Progettazione della Base di Dati >> Analisi dei Requisiti
11G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Modello Concettuale
Descrizione dei dati dell’applicazionediagramma delle classialto 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’applicazioneguidare la progettazione della base di dati
Progettazione della Base di Dati >> Analisi dei Requisiti
12G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Progettazione
Obiettivodefinire l’architettura dell’applicazione in
termini di componentidefinire la struttura della base di dati (tabelle,
attributi, vincoli)definire la struttura delle classi (proprietà,
metodi, visibilità) Dovrebbe guidare la fase di sviluppo
Progettazione della Base di Dati >> Progettazione
13G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Il Processo di Sviluppo
In questo corsoci concentriamo esclusivamente sulle attività
collegate alla progettazione dei dativisione molto parziale del processola 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)
Progettazione della Base di Dati >> Progettazione
14G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Il Processo di Sviluppo della BD
Punto di partenzadefinizione del modello concettuale dei dati
Progettazione Logicadallo 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
Progettazione della BD >> Il Processo di Sviluppo della BD
15G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Il Processo di Sviluppo della BD
Progettazione logicaviene condotta sulla base di un semplice
algoritmo sistematico Progettazione fisica
attività mista: progettazione e “tuning”richiede di valutare le prestazionidifficilmente sistematizzabileconta molto l’esperienza
Progettazione della BD >> Il Processo di Sviluppo della BD
16G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Qualità della Base di Dati
Obiettivo della progettazione della bdprodurre 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)
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
17G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Qualità della Base di Dati
Una tabella non normalizzata
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
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 nonci siano altre tabelle per studenti, corsi ed esami
18G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Qualità della Base di Dati
Anomalie di aggiornamentose 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 cancellazionese ad uno studente vengono annullati gli esami
sostenuti, dobbiamo cancellarlo
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
19G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Qualità della Base di Dati
Intuitivamenteil problema è legato al fatto che la relazione
descrive dati relativi a “concetti” diversi In particolare
gli studenti ed il loro anno di corsoi corsi ed il loro docentegli esami sostenuti dagli studenti per i corsi
ed il voto riportato
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
20G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Qualità della Base di Dati
Per questa ragione, si dice che“la tabella non è normalizzata”
Per ottenere una bd normalizzatasarebbe stato necessario progettare le
tabelle in modo che ciascuna descriva un concetto
ovvero “normalizzare” per decomposizione la tabella originale
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
21G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Qualità della Base di Dati
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
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
studente annoCorso
Pinco Palla 1
Pinco Pietro 2
Bruno Pasquale 1
Rossi Paolo 2
corso docente
Programmazione F. Totti
Basi di Dati C. Vieri
Tecnologie Web A. Del Piero
studente corso voto
Pinco Palla Programmazione 27
Pinco Pietro Programmazione 24
Bruno Pasquale Basi di Dati 30
Rossi Paolo Basi di Dati 25
Pinco Palla Tecnologie Web 30
Bruno Pasquale Programmazione 21
22G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Qualità della Base di Dati
Il nostro approccionon ci porremo il problema della
normalizzazionedescriveremo 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à
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
23G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Sommario
Introduzione Il Processo di Sviluppo dell’Applicazione
AnalisiModello ConcettualeProgettazione
Il Processo di Sviluppo della Base di DatiQualità della Base di Dati
Progettazione della Base di Dati >> Sommario
24G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Termini della Licenza
Termini della Licenza
This work is licensed under the Creative Commons Attribution-ShareAlike 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.