Basi di Dati Progettazione di Basi di Dati
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 – mecca@unibas. it – Università della Basilicata
Progettazione della Base di Dati >> Sommario m Introduzione m Il Processo di Sviluppo dell’Applicazione ðAnalisi ðModello Concettuale ðProgettazione m Il Processo di Sviluppo della Base di Dati ðQualità della Base di Dati G. Mecca - mecca@unibas. it - Basi di Dati 2
Progettazione della Base di Dati >> Introduzione m 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 m Approccio usato ðutilizzeremo UML ðe non il modello entità-relazione tradizionale G. Mecca - mecca@unibas. it - Basi di Dati 3
Progettazione della Base di Dati >> Introduzione m 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 m Di conseguenza ðil progetto della base di dati deve essere visto nell’ambito del prog. dell’applicazione G. Mecca - mecca@unibas. it - Basi di Dati 4
Progettazione della Base di Dati >> Il Processo di Sviluppo dell’Applicazione m Applicazioni di complessità medio-alta ðè necessario un processo di sviluppo sistematico ðinsieme di fasi e modelli m Il punto di partenza ði requisiti iniziali (tipicamente incompleti) m Il punto di arrivo ðil sistema installato e funzionante (da manutenere) G. Mecca - mecca@unibas. it - Basi di Dati 5
Progettazione della Base di Dati >> Il Processo di Sviluppo: Le Attività m Studio di Fattibilità m Analisi dei Requisiti m Progettazione m Sviluppo m Test m Installazione ed Uso m Manutenzione G. Mecca - mecca@unibas. it - Basi di Dati 6
Progettazione della Base di Dati >> Il Processo di Sviluppo m 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 - mecca@unibas. it - Basi di Dati 7
Progettazione della Base di Dati >> Il Processo di Sviluppo m 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 - mecca@unibas. it - Basi di Dati 8
Progettazione della Base di Dati >> Il Processo di Sviluppo Studio di Fattibilità m Fase preliminare ðnon rientra nel ciclo di progetto e sviluppo m 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 - mecca@unibas. it - Basi di Dati 9
Progettazione della Base di Dati >> Analisi dei Requisiti m Obiettivo ðcapire come funziona la realtà di interesse ðcapire come deve funzionare l’applicazione ðstudiare le funzioni dell’applicazione ðstudiare i dati dell’applicazione m Un’utile strumento per cominciare ði Casi d’Uso di UML (“Use Cases”) ðcarte CRC (“Class-Responsiblity-Collabor. ”) G. Mecca - mecca@unibas. it - Basi di Dati 10
Progettazione della Base di Dati >> Analisi dei Requisiti Modello Concettuale m Descrizione dei dati dell’applicazione ðdiagramma delle classi ðalto livello di astrazione (ancora indipendente dall’implementazione) m 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 - mecca@unibas. it - Basi di Dati 11
Progettazione della Base di Dati >> Progettazione m 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à) m Dovrebbe guidare la fase di sviluppo G. Mecca - mecca@unibas. it - Basi di Dati 12
Progettazione della Base di Dati >> Progettazione Il Processo di Sviluppo m 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 - mecca@unibas. it - Basi di Dati 13
Progettazione della BD >> Il Processo di Sviluppo della BD m Punto di partenza ðdefinizione del modello concettuale dei dati m Progettazione Logica ðdallo schema concettuale viene derivato uno schema logico standard e i necessari schemi esterni m Progettazione Fisica ðlo schema logico viene sottoposto a verifica e viene ottimizzato m Sviluppo e Manutenzione G. Mecca - mecca@unibas. it - Basi di Dati 14
Progettazione della BD >> Il Processo di Sviluppo della BD m Progettazione logica ðviene condotta sulla base di un semplice algoritmo sistematico m Progettazione fisica ðattività mista: progettazione e “tuning” ðrichiede di valutare le prestazioni ðdifficilmente sistematizzabile ðconta molto l’esperienza G. Mecca - mecca@unibas. it - Basi di Dati 15
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità della Base di Dati m Obiettivo della progettazione della bd ðprodurre una base di dati di qualità m Qualità della base di dati ð“normalizzazione” (progettazione logica): garantisce che la base di dati non presenta anomalie ðefficienza delle operazioni (progettazione fisica) G. Mecca - mecca@unibas. it - Basi di Dati 16
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità della Base di Dati m Una tabella non normalizzata studente anno. Corso 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 - mecca@unibas. it - Basi di Dati 17
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità della Base di Dati m Anomalie di aggiornamento ðse l’anno di corso di uno studente varia, è necessario modificare il valore in diverse ennuple m Anomalie di inserimento ðse uno studente non ha ancora sostenuto esami non è possibile inserirlo nella base di dati m Anomalie di cancellazione ðse ad uno studente vengono annullati gli esami sostenuti, dobbiamo cancellarlo G. Mecca - mecca@unibas. it - Basi di Dati 18
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità della Base di Dati m Intuitivamente ðil problema è legato al fatto che la relazione descrive dati relativi a “concetti” diversi m 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 - mecca@unibas. it - Basi di Dati 19
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità della Base di Dati m Per questa ragione, si dice che ð“la tabella non è normalizzata” m 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 - mecca@unibas. it - Basi di Dati 20
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità della Base di Dati studente Pinco Palla corso docente Programmazione F. Totti Basi di Dati C. Vieri anno. Corso 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 21 Bruno Pasquale Basi di Dati Rossi Paolo 2 studente anno. Corso 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 - mecca@unibas. it - Basi di Dati 21
Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità della Base di Dati m 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 - mecca@unibas. it - Basi di Dati 22
Progettazione della Base di Dati >> Sommario m Introduzione m Il Processo di Sviluppo dell’Applicazione ðAnalisi ðModello Concettuale ðProgettazione m Il Processo di Sviluppo della Base di Dati ðQualità della Base di Dati G. Mecca - mecca@unibas. it - Basi di Dati 23
Termini della Licenza m This work is licensed under the Creative Commons Attribution. Share. Alike 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. m Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-Share. Alike” 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 - mecca@unibas. it - Basi di Dati 24
- Slides: 24