Progetto di una base di dati Lo svolgimento del progetto deve essere articolato in fasi, ognuna delle quali deve portare alla produzione di uno o più documenti; l'insieme dei documenti costituirà la documentazione completa del progetto che gli studenti devono preparare e consegnare obbligatoriamente in sede d'esame durante la prova orale. Esistono varie decomposizioni in fasi del processo di sviluppo di un sistema informativo. Si propone una decomposizione articolata in sei fasi come illustrato di seguito. Fasi del progetto 1. Raccolta e analisi dei requisiti della realtà di interesse espressi in linguaggio naturale, documentata con: o una descrizione sintetica della realtà di interesse; o le specifiche complete, ristrutturate e non ambigue, che descrivano in modo compiuto la realtà di interesse (di solito alcune pagine); o le operazioni previste sui dati o glossario dei termini 2. Progettazione concettuale della base di dati con la produzione di uno schema EntityRelationship (E-R), che modelli la realtà di interesse. È necessario documentare: o Vari livelli di astrazione dello schema concettuale (quelli prodotti adoperando una particolare strategia di progettazione). o Lo schema E-R finale 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). o Un glossario dei concetti espressi nello schema concettuale, che contenga: • per ogni entità: 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: descrizione del suo significato; descrizione e dominio di ogni attributo; ruolo della partecipazione di ogni entità coinvolta nelle relationship mettendo in evidenza il significato del ruolo (motivando, se necessario, la scelta delle cardinalità). o I vincoli dello schema non esprimibili dal modello E-R. 3. Analisi delle prestazioni sullo Schema E-R: produzione di un elenco delle procedure per la gestione dei dati memorizzati nella base di dati, ciascuna con una breve descrizione in linguaggio naturale. E' buona norma far sì che l'insieme di operazioni copra tutto lo schema concettuale. Occorre inoltre effettuare delle previsioni sul carico applicativo della base di dati. 4. Progettazione logica, articolata secondo le due attività: o ristrutturazione dello schema concettuale (analisi delle ridondanze, eliminazione delle gerarchie, accorpamenti e partizionamenti, scelta degli identificatori primari), con opportuna documentazione delle scelte fatte; o traduzione dello schema concettuale ristrutturato in uno schema relazionale (completo di vincoli di chiave e di riferimento). 5. Realizzazione dell'applicazione formata dall'implementazione della base di dati secondo lo schema logico prodotto nella quarta fase e dall'implementazione delle operazioni descritte durante la prima e la terza fase, nel DBMS relazionale open-source MySQL 5.0. La documentazione di questa parte consiste nel listato delle istruzioni SQL per: o la definizione dello schema della base di dati (SQL-DDL); o la definizione delle interrogazioni per la visualizzazione dei dati (SQL-DML); o la definizione delle operazioni per la manipolazione dei dati (aggiornamenti, inserimenti, cancellazioni) (SQL-DML). 6. Test dell'applicazione. La documentazione di questa parte consiste nella definizione del contenuto di test della base di dati e nella stampa dei risultati delle interrogazioni su tali dati.