G. Mecca – – 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)
2 G. Mecca - - Basi di Dati Sommario m Introduzione m Il Processo di Sviluppo dellApplicazione Analisi Modello Concettuale Progettazione m Il Processo di Sviluppo della Base di Dati Qualità della Base di Dati Progettazione della Base di Dati >> Sommario
3 G. Mecca - - Basi di Dati Introduzione m Scopo di questo ciclo di lezioni studiare lanalisi 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 Progettazione della Base di Dati >> Introduzione
4 G. Mecca - - Basi di Dati Introduzione m Attenzione tradizionalmente: il progetto dei dati è stato considerato unattività separata dal progetto dellapplicazione questo approccio non è coerente con la filosofia della programmazione ad oggetti m Di conseguenza il progetto della base di dati deve essere visto nellambito del prog. dellapplicazione Progettazione della Base di Dati >> Introduzione
5 G. Mecca - - Basi di Dati Processo di Sviluppo dellApplicazione 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) Progettazione della Base di Dati >> Il Processo di Sviluppo
6 G. Mecca - - Basi 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 Progettazione della Base di Dati >> Il Processo di Sviluppo
7 G. Mecca - - Basi 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 linefficacia di questo approccio nello sviluppo del software moderno Progettazione della Base di Dati >> Il Processo di Sviluppo
8 G. Mecca - - Basi 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 ( es: RUP (Rational Unified Process) Progettazione della Base di Dati >> Il Processo di Sviluppo
9 G. Mecca - - Basi di Dati Studio di Fattibilità m Fase preliminare non rientra nel ciclo di progetto e sviluppo m Obiettivi valutazione dei costi e dei benefici normalmente richiede unanalisi dei requisiti preliminare è necessario valutare aspetti organizzativi (impatto del sistema inf. sullorganizzazione) si sceglie la piattaforma tecnologica Progettazione della Base di Dati >> Il Processo di Sviluppo
10 G. Mecca - - Basi di Dati Analisi dei Requisiti m Obiettivo capire come funziona la realtà di interesse capire come deve funzionare lapplicazione studiare le funzioni dellapplicazione studiare i dati dellapplicazione m Unutile strumento per cominciare i Casi dUso di UML (Use Cases) carte CRC (Class-Responsiblity-Collabor.) Progettazione della Base di Dati >> Analisi dei Requisiti
11 G. Mecca - - Basi di Dati Modello Concettuale m Descrizione dei dati dellapplicazione diagramma delle classi alto livello di astrazione (ancora indipendente dallimplementazione) m Vari scopi analizzare le relazioni tra i dati (il modello) guidare la progettazione delle classi e dei componenti dellapplicazione guidare la progettazione della base di dati Progettazione della Base di Dati >> Analisi dei Requisiti
12 G. Mecca - - Basi di Dati Progettazione m Obiettivo definire larchitettura dellapplicazione 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 Progettazione della Base di Dati >> Progettazione
13 G. Mecca - - Basi di Dati 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 nellambito 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
14 G. Mecca - - Basi di Dati 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 Progettazione della BD >> Il Processo di Sviluppo della BD
15 G. Mecca - - Basi di Dati 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 lesperienza Progettazione della BD >> Il Processo di Sviluppo della BD
16 G. Mecca - - Basi di Dati 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) Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
17 G. Mecca - - Basi di Dati Qualità della Base di Dati m Una tabella non normalizzata Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità studenteannoCorsocorsovotodocente Pinco Palla1Programmazione27F. Totti Pinco Pietro2Programmazione24F. Totti Bruno Pasquale1Basi di Dati30C. Vieri Rossi Paolo2Basi di Dati25C. Vieri Pinco Palla1Tecnologie Web30A. Del Piero Bruno Pasquale1Programmazione21F. Totti NOTA: supponiamo che nella base di dati non ci siano altre tabelle per studenti, corsi ed esami
18 G. Mecca - - Basi di Dati Qualità della Base di Dati m Anomalie di aggiornamento se lanno 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 Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
19 G. Mecca - - Basi di Dati 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 Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
20 G. Mecca - - Basi di Dati 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 Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
21 G. Mecca - - Basi di Dati Qualità della Base di Dati Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità studenteannoCorsocorsovotodocente Pinco Palla1Programmazione27F. Totti Pinco Pietro2Programmazione24F. Totti Bruno Pasquale1Basi di Dati30C. Vieri Rossi Paolo2Basi di Dati25C. Vieri Pinco Palla1Tecnologie Web30A. Del Piero Bruno Pasquale1Programmazione21F. Totti studenteannoCorso Pinco Palla1 Pinco Pietro2 Bruno Pasquale1 Rossi Paolo2 corsodocente ProgrammazioneF. Totti Basi di DatiC. Vieri Tecnologie WebA. Del Piero studentecorsovoto Pinco PallaProgrammazione27 Pinco PietroProgrammazione24 Bruno PasqualeBasi di Dati30 Rossi PaoloBasi di Dati25 Pinco PallaTecnologie Web30 Bruno PasqualeProgrammazione21
22 G. Mecca - - Basi di Dati 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à Progettazione della BD >> Il Processo di Sviluppo della BD >> Qualità
23 G. Mecca - - Basi di Dati Sommario m Introduzione m Il Processo di Sviluppo dellApplicazione Analisi Modello Concettuale Progettazione m Il Processo di Sviluppo della Base di Dati Qualità della Base di Dati Progettazione della Base di Dati >> Sommario
24 G. Mecca - - Basi di Dati Termini della Licenza m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit 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-ShareAlike di Creative Commons. Per ottenere una copia della licenza, è possibile visitare oppure inviare una lettera allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.