24
G. Mecca – [email protected] – Università della G. Mecca – [email protected] – Università della Basilicata 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)

Basi di Dati

Embed Size (px)

DESCRIPTION

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). Progettazione della Base di Dati >> Sommario. Sommario. Introduzione Il Processo di Sviluppo dell’Applicazione - PowerPoint PPT Presentation

Citation preview

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.