Il progetto di Basi di Dati e Sistemi Informativi consiste nella realizzazione di un database relazionale. Alcuni esempi tipici (che vi
invito a non sottopormi, siate quindi originali!) sono la gestione di un campionato di (fanta)calcio, il sistema di contabilità
di un negozio/azienda, le prenotazioni per un albergo, i noleggi di una videoteca, ...
Per l'approvazione della scelta del
progetto dovete inviare per posta elettronica al docente l'analisi dei requisiti del problema. Non saranno accettati
problemi generici (ad esempio, la gestione generica di un magazzino o del rapporto con clienti e fornitori).
La relazione, da consegnare in formato pdf, deve discutere le problematiche di analisi dei requisiti, progettazione concettuale,
logica e fisica, secondo la seguente scaletta:
analisi dei requisiti (1 punto): descrizione dei requisiti in linguaggio naturale e rilevamento e correzione delle ambiguità.
Si organizzi un glossario dei termini e dei concetti fondamentali (con descrizione, indicazione sinonimi/omonimi o altre anomalie,
eventuali correzioni, collegamenti) ed una tabella con la dozzina (circa) di operazioni che il database deve soddisfare, più o
meno equamente suddivise in interrogazioni ed aggiornamenti; evitare operazioni ripetitive (esempio: inserimento cliente, inserimento
fornitore, ...) ed interrogazioni troppo banali (esempio: restituire elenco clienti), cercando di privilegiare query complesse (esempio:
trovare i rappresentanti che nel mese scorso hanno fatturato sopra la media).
Verrà valutato anche il livello dell'italiano!!!
progettazione concettuale (2 punti): scelta della strategia di progetto, sviluppo dello schema E/R, eventuale integrazione di viste
parziali, presentazione dello schema E/R finale.
Si segua fedelmente l'analisi dei requisiti, mostrando passo dopo passo l'evoluzione dello schema E/R secondo la strategia adottata.
progettazione logica (4 punti): ottimizzazione, semplificazione, traduzione, normalizzazione.
Si descriva sullo schema E/R il volume dei dati (numero di istanze per entità/associazione, cardinalità) in
base alle proprie stime. Le operazioni devono quindi essere specificate (tipo, schema di navigazione, frequenza) e analizzate
quantitativamente (calcolo del costo di accesso allo schema E/R). Sulla base del carico di lavoro si possono valutare eventuali
informazioni derivate (attributi, associazioni) e parti dello schema E/R ristrutturabili (accorpamenti orizzontali/verticali).
Si consiglia di sfruttare questa fase per guidare la scelta delle semplificazioni (gerarchie di generalizzazione) e degli
identificatori.
Si consiglia inoltre di normalizzare rispetto a 3NF e, se possibile, BCNF. Eventuali deroghe devono trovare giustificazione nell'analisi del carico di lavoro svolta.
Lo schema di database relazionale risultante deve essere implementato in un database MySQL. Le operazioni devono essere presentate
in termini di comandi MySQL, esattamente nel modo in cui verrebbero realizzate attraverso il client testuale MySQL. Nel gestire
operazioni complesse si consiglia di considerare strumenti come ad esempio transazioni, procedure e trigger.
progettazione fisica (1 punto): analisi dei costi di accesso sulla base delle query e del carico di lavoro definiti nelle fasi
precedenti e in funzione di indici e strutture dati.
Si consiglia di individuare alcune delle operazioni più costose e di confrontare l'efficienza di alcuni tra i possibili metodi
di accesso.
implementazione (2 punti) di un modulo software in C di interfaccia al database MySQL per la realizzazione di alcune delle
operazioni principali.
Si consiglia di individuare alcune tra le operazioni di interrogazione/aggiornamento più complesse. La realizzazione
di applicazioni che demandano il controllo dei vincoli al dbms è considerato un punto a favore.
Per l'implementazione si consiglia di ricorrere all'account MySQL abilitato in laboratorio STI. I sorgenti relativi all'ultima fase vanno allegati alla relazione
(solo in formato elettronico) e, una volta compilati, devono consentire l'accesso al database presente in laboratorio STI.
Tutte le fasi, ad eccezione eventualmente delle ultime due, devono essere realizzate affinchè il progetto venga valutato.
Per l'accesso al DBMS MySQL su Linux in laboratorio rivolgersi al docente e consultare il
manuale breve.
Template del progetto.