UNIVERSITA' DELLA CALABRIA Corso di Laurea in Informatica Basi di Dati a.a. 2012-2013 Laboratorio 31B Esercitatori : Ing. G. Laboccetta – Dott.ssa V. Policicchio UNIVERSITA' DELLA CALABRIA Progetto Didattico Durante le lezioni saranno realizzate tutte le fasi di sviluppo del sistema informatico. Ogni fase è composta da diversi step, ciascuno dei quali porta alla produzione di più documenti. L'insieme di tali documenti costituisce la documentazione del sistema informatico che gli studenti devono produrre durante le lezioni. Il sistema informatico deve essere costituito da una base di dati realizzata su un DBMS relazionale (MySQL) interrogabile mediante SQL. UNIVERSITA' DELLA CALABRIA Progetto didattico Il progetto didattico consiste nella realizzazione di un Sistema Informativo per la gestione delle attività di una videoteca UNIVERSITA' DELLA CALABRIA Gruppi di lavoro Il progetto didattico deve essere svolto prevalentemente durante le lezioni di laboratorio in gruppi di due-tre persone. Inviare una mail con oggetto “[Basi di Dati A.A.12-13] Gruppi di Laboratorio" con la composizione del gruppo (specificare <Matricola, Cognome, Nome, email> per ogni componente) all’indirizzo [email protected]. UNIVERSITA' DELLA CALABRIA Progettazione della base di dati UNIVERSITA' DELLA CALABRIA Progettazione concettuale Obiettivo: Rappresentare i dati della realtà d’interesse in termini di un modello (descrizione) formale, ad alto livello, indipendente dal DBMS • Input: – Descrizione della realtà d’interesse (per sapere quali dati rappresentare) • Output: – Schema concettuale (rappresentazione dei dati in un modello di dati concettuale, eventualmente con vincoli esterni) • Qualità: – correttezza e completezza della rappresentazione UNIVERSITA' DELLA CALABRIA Progettazione logica Obiettivo: Rappresentare i dati della realtà d’interesse in termini dei costrutti logici di una classe di DBMS (quelli basati su un determinato modello logico) o Input: - Schema concettuale (prodotto dalla progettazione concettuale) - DBMS scelto (per sapere quale modello logico di dati adottare) - Previsioni del carico applicativo (per l’ottimizzazione della base di dati) o Output: - Schema logico (rappresentazione dei dati in un modello di dati logico, eventualmente con vincoli complessi) o Qualità: - Correttezza e completezza della rappresentazione - Efficienza della manipolazione dei dati UNIVERSITA' DELLA CALABRIA Progettazione Fisica Obiettivo: Rappresentare i dati della realtà di interesse attraverso le strutture dati di uno specifico DBMS o Input: – Schema logico (prodotto della progettazione logica) – DBMS scelto (per sapere quali strutture dati fisiche utilizzare) – Previsioni del carico applicativo (per l’ottimizzazione della base di dati) o Output: – Schema fisico (Tipicamente nei DBMS attuali consiste in uno schema logico + alcune scelte relative all’effettiva implementazione su DBMS di detto schema) o • Qualità: – Efficienza rispetto al carico applicativo UNIVERSITA' DELLA CALABRIA Modelli di dati I prodotti della varie fasi della progettazione sono schemi basati su specifici modelli di dati: Schema concettuale modello concettuale Schema logico modello logico Schema fisico modello logico + parametri fisici UNIVERSITA' DELLA CALABRIA Modelli dei dati adottati – Schema concettuale: • Modello Entità-Relazione (ER) – Schema logico: • Modello Relazionale • DDL: SQL-standard – Schema fisico: • Modello relazionale + strutture fisiche • DDL: SQL supportato dal DBMS scelto (MySQL) UNIVERSITA' DELLA CALABRIA Fasi e Step del Progetto Analisi dei Requisiti e Progettazione Concettuale: 1. I. II. III. IV. Raccolta e Analisi dei Requisiti Progettazione dello schema Entità-Relazione (ER) Specifica delle funzioni per operare sui dati Stima del carico applicativo del sistema informatico Progettazione Logica della base di dati: 2. I. II. Ristrutturazione dello schema ER in uno schema ER semplificato orientato al modello relazionale Traduzione dello schema ER ristrutturato in uno schema relazionale UNIVERSITA' DELLA CALABRIA Fasi e Step del Progetto 4. Progettazione Fisica ed implementazione della base di dati: Realizzazione della base di dati sul DBMS relazionale opensource MySQL 5. II. Realizzazione dei controlli di congruenza della base di dati III. Popolamento delle tabelle IV. Realizzazione delle interrogazioni per operare sui dati I. UNIVERSITA' DELLA CALABRIA Analisi dei Requisiti e Progettazione Concettuale Comprende attività (interconnesse) di 1. Raccolta dei requisiti 2. Analisi dei requisiti 3. Costruzione dello schema concettuale 4. Costruzione del glossario UNIVERSITA' DELLA CALABRIA Raccolta e Analisi dei requisiti La raccolta dei requisiti consiste nella raccolta delle specifiche della realtà di interesse espresse in linguaggio naturale. Possibili fonti: utenti, che forniscono interviste e documentazione apposita documentazione esistente: • normative (leggi, regolamenti di settore) • regolamenti interni, procedure aziendali • realizzazioni preesistenti UNIVERSITA' DELLA CALABRIA Raccolta e Analisi dei requisiti L’analisi e la ristrutturazione dei requisiti è fondamentale per (1) eliminare ambiguità, (2) filtrare inesattezze e (3) individuare informazioni ridondanti L’analisi in genere inizia con i la raccolta dei primi requisiti e spesso procede per «raffinamenti successivi» delle specifiche raccolte. UNIVERSITA' DELLA CALABRIA Raccolta e Analisi dei requisiti Spunti per l’interazione con il committente: Effettuare spesso verifiche di comprensione e coerenza Verificare anche per mezzo di esempi (generali e relativi a casi limite) Richiedere definizioni e classificazioni Far evidenziare gli aspetti essenziali rispetto a quelli marginali. UNIVERSITA' DELLA CALABRIA Requisiti: documentazione descrittiva Regole generali costruire un glossario dei termini individuare omonimi e sinonimi e unificare i termini rendere esplicito il riferimento fra termini riorganizzare le frasi per concetti UNIVERSITA' DELLA CALABRIA Requisiti: documentazione descrittiva (1/3) Documenti prodotti Descrizione sintetica della realtà di interesse Glossario dei termini LINEA TERMINE NUOVO TERMINE MOTIVAZIONE CORREZIONE 5 Sinonimo 11 Omonimo 12 Termine troppo generico… …… …. …. …… UNIVERSITA' DELLA CALABRIA Requisiti: documentazione descrittiva (2/3) Documenti prodotti Specifiche complete che descrivano in modo approfondito e non ambiguo la realtà di interesse, facendo distinzioni fra: • i dati SPECIFICHE RISTRUTTURATE 1 2 3 4 ………………………. • le operazioni sui dati 1. 2. Analisi Puntuali Analisi Aggregate UNIVERSITA' DELLA CALABRIA Requisiti: documentazione descrittiva (3/3) Documenti prodotti Raffinamento delle specifiche e individuazione dei concetti di base FRASI DI CARATTERE GENERALE ………………………. FRASI RELATIVE A… …………………………….. UNIVERSITA' DELLA CALABRIA Progettazione schema concettuale • La progettazione concettuale della base di dati ha come scopo la produzione di uno schema entità relazione (ER) che modelli la realtà di interesse. • Questo tipicamente avviene attraverso la produzione di diversi schemi ER corrispondenti ai vari livelli di raffinamento. Documenti prodotti: Discussione di scelte critiche nella produzione dello schema ER finale Schema ER finale Vincoli dello schema non esprimibili dal modello ER, espressi in linguaggio naturale in modo preciso e puntuale Dizionario dei dati (descrizione schematica di entità e delle relazioni dello schema ER) UNIVERSITA' DELLA CALABRIA Specifica delle funzioni Accanto alle specifiche sui dati vanno raccolte le specifiche sulle operazioni di manipolazione degli stessi Tali operazioni possono essere di: – Lettura – Scrittura: • Aggiornamento • Inserimento • Cancellazione UNIVERSITA' DELLA CALABRIA Lo schema ER finale Lo schema ER finale deve essere prodotto in forma completa, cioè indicando: - gli attributi di ogni entità e di ogni relationship - gli identificatori di ogni entità - le cardinalità di ogni relationship - i ruoli per le relationship (se necessari) UNIVERSITA' DELLA CALABRIA Dizionario dei dati Il dizionario dei dati espressi nello schema concettuale deve essere redatto in forma schematica e deve contenere per ogni entità: 1. 2. 3. descrizione del suo significato descrizione e dominio di ogni attributo (quando necessario); se l'attributo è derivato, la relativa regola di computazione identificatori dell'entità (con specifico riferimento alle relationship e alle entità coinvolte in eventuali identificazioni esterne) per ogni relationship: 1. descrizione del suo significato 2. descrizione e dominio di ogni attributo 3. ruolo della partecipazione di ogni entità coinvolta nelle relationship mettendo in evidenza il significato del ruolo (motivando, se necessario, la scelta delle cardinalità). UNIVERSITA' DELLA CALABRIA PROGETTAZIONE LOGICA OBIETTIVO: “Tradurre" lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente UNIVERSITA' DELLA CALABRIA Progettazione logica Obiettivo: Rappresentare i dati della realtà d’interesse in termini dei costrutti logici di una classe di DBMS (quelli basati su un determinato modello logico) • Input: Schema concettuale (output della progettazione concettuale) Modello logico DBMS scelto (conforme al modello logico scelto) Previsioni del carico applicativo (per ottimizzare la base di dati rispetto ad esso) • Output: Schema logico + documentazione associata • Qualità: Correttezza e completezza della rappresentazione Efficienza della manipolazione dei dati UNIVERSITA' DELLA CALABRIA Progettazione logica Carico applicativo Schema E-R Ristrutturazione dello schema E-R Schema E-R ristrutturato Modello logico Traduzione nel modello logico Schema logico UNIVERSITA' DELLA CALABRIA Ristrutturazione schema E-R Motivazioni: semplificare la traduzione "ottimizzare" le prestazioni Osservazione: uno schema E-R ristrutturato non è (più) uno schema concettuale nel senso stretto del termine UNIVERSITA' DELLA CALABRIA Attività della ristrutturazione • Analisi delle ridondanze • Eliminazione delle generalizzazioni • Partizionamento/accorpamento di entità e relazioni • Scelta degli identificatori primari UNIVERSITA' DELLA CALABRIA Attività di Ristrutturazione - Dettagli Analisi delle ridondanze (si tiene conto dell’efficienza) Eliminazione degli attributi multivalore Eliminazione degli attributi composti (eventuale vincolo (0,1) diventa vincolo esterno) Eliminazione delle ISA e delle generalizzazioni vincoli per entità figlie della stessa entità padre con uno stesso attributo vincoli di generalizzazione (disgiuntezza e completezza) si noti che tutte le entità diventano disgiunte UNIVERSITA' DELLA CALABRIA Attività di Ristrutturazione - Dettagli Scelta degli identificatori principali tutte le entità devono avere un identificatore – altrimenti introdurre codice eliminazione di cicli di identificatori principali esterni 6. Specifica degli ulteriori vincoli esterni vincoli derivanti dalla ristrutturazione riformulazione dei vincoli esterni dello schema originario 7. Riformulazione delle operazioni e delle specifiche sul carico applicativo in termini dello schema ristrutturato UNIVERSITA' DELLA CALABRIA Progettazione Logica - Documentazione Documenti prodotti: Schema ER ristrutturato Discussione di scelte critiche nella ristrutturazione dello schema ER Dizionario dei dati (descrizione schematica di entità e delle relazioni dello schema ER ristrutturato) Vincoli dello schema non esprimibili dal modello ER, espressi in linguaggio naturale in modo preciso e puntuale Traduzione dello schema ER ristrutturato nel modello logico UNIVERSITA' DELLA CALABRIA Documentazione - Dizionario dei dati Il dizionario dei dati espressi nello schema logico deve essere redatto in forma schematica e deve contenere per ogni entità: 1. descrizione del suo significato 2. descrizione e tipo* di ogni attributo; se l'attributo è derivato, la relativa regola di computazione 3. identificatori dell'entità (con specifico riferimento alle relationship e alle entità coinvolte in eventuali identificazioni esterne) per ogni relationship: 1. descrizione del suo significato 2. descrizione e tipo* di ogni attributo 3. ruolo della partecipazione di ogni entità coinvolta nelle relationship mettendo in evidenza il significato del ruolo (motivando, se necessario, la scelta delle cardinalità). * Il tipo è quello scelto nel particolare DBMS per rappresentare il dominio dell’attributo