Corso di Laboratorio di Basi di Dati Progetto d`esame: “gestione voli”
Transcript
Corso di Laboratorio di Basi di Dati Progetto d`esame: “gestione voli”
Corso di Laboratorio di Basi di Dati, A.A. 2007-2008 Progetto “gestione voli” Corso di Laboratorio di Basi di Dati Progetto d’esame: “gestione voli” Prof. Pierluigi Pierini Anno accademico 2007-2008 Premessa La specifica del problema, data nei paragrafi seguenti, è necessariamente (come in ogni caso reale) incompleta e presumibilmente in alcuni punti ambigua o contraddittoria. Lo studente deve immaginare di raffinare e disambiguare la specifica mediante l’interazione con il committente. In effetti, dovrà fare uno sforzo di valutazione delle possibili alternative, per poi scegliere in maniera motivata. Le motivazioni delle scelte fatte vanno chiaramente documentate nel progetto e verranno discusse in sede di revisione. Specifiche di progetto Si vuole realizzare una base di dati per l’informatizzazione di un sistema di gestione dei voli. Un volo potrà essere registrato da una compagnia aerea autorizzata, che lo programma con un certo anticipo, indicando: ∗ il numero identificativo del volo che, associato alla sigla identificativa della compagnia aerea, rappresenta il codice del volo stesso ∗ il tipo dell’aeromobile che effettuerà quel volo; ∗ l’equipaggio, identificando i nominativi ed i ruoli (pilota, copilota, assistenti, ecc..) del personale di bordo; ∗ gli aeroporti, le date e gli orari previsti di decollo e di atterraggio, sia per i nodi iniziale e finale di partenza ed arrivo sia per gli eventuali nodi intermedi di scalo. Il tempo deve essere indicato secondo il riferimento UTC al meridiano di Greenwich. La compagnia aerea può modificare o cancellare il volo fino a quando esso non viene preso in carico dal pilota. Da questo momento il pilota diventa l’unico soggetto autorizzato a modificare i dati del volo o a cancellarlo. Quando il pilota prende in carico l’aeromobile, dovrà rintracciare il volo assegnatogli in base al codice identificativo, e confermare i dati di volo immessi dalla compagnia, oppure potrà modificare, in caso di necessità, gli orari, l’aeromobile e la composizione dell’equipaggio. Inoltre verrà associato ai dati di volo il codice di identificazione IFF necessario alle rilevazioni radar. Il pilota dovrà anche indicare, per ogni scalo intermedio e per lo scalo di destinazione, gli aeroporti alternativi da raggiungere in caso di necessità (ad esempio per congestione dello scalo primario o per particolari motivi di emergenza) Il personale di bordo deve rispettare degli intervalli di riposo tra un volo ed un altro (definito in 8 ore per voli nazionali e continentali, e 24 ore per voli intercontinentali) pertanto ogni componente dell’equipaggio non potrà esere assegnato ad altri voli prima dello scadere dell’intervallo previsto. 14/11/2007 Pagina 1 Corso di Laboratorio di Basi di Dati, A.A. 2007-2008 Progetto “gestione voli” Gli organi di controllo del traffico aereo debbono poter effettuare una serie di verifiche e controlli su ciascun volo, in particolare: ∗ devono rintracciare i dati della compagnia aerea che ha programmato il volo, ed in particolare: la ragione sociale, il codice di identificazione, i dati di autorizzazione, i riferimenti per i contatti amministrativo e per le emergenze, gli aerei che possiede, il personale dipendente e le relative qualifiche; ∗ devono poter verificare che nel caso in cui l’aereo effettivamente utilizzato per un determinato volo sia diverso da quello previsto, la sua classe sia uguale o al più superiore rispetto a quella dell’aereo previsto; ∗ per ogni pilota devono poter controllare quali classi di aerei è abilitato a pilotare. ∗ devono verificare se gli aeroporti indicati non presentino elementi di incompatibilità con il volo in oggetto, in particolare relativamente a: o la classe degli aeromobili in grado di atterrare e decollare dalle piste disponibili o il tipo di traffico (internazionale o solo nazionale) che può essere gestito. Infine, a fronte dei controlli sopra elencati, devono autorizzare un pilota, che ha preso in carico un aereo, a effettuare il volo. Solo dopo questa autorizzazione un volo diventerà “attivo” e potrà essere acquisito dal controllo di volo che assisterà il pilota durante le successive fasi del volo, fino all’atterraggio nell’aeroporto di destinazione. Completate le operazioni di sbarco, il pilota potrà rilasciare il volo che potrà essere “archiviato” dalla compagnia aerea in un archivio storico. Note E’ possibile inserire procedure di gestione addizionali che si ritengano utili. Ci sono indubbiamente molti vincoli che possono essere applicati ai contenuti di questa base di dati: alcuni sono chiaramente deducibili dalle specifiche date. L’individuazione dei vincoli e la loro implementazione costituiscono un requisito fondamentale per lo sviluppo di un progetto realistico, e ne verrà tenuto conto durante la valutazione finale. Alcune delle funzionalità richieste potrebbero non essere realizzabili con singole query ma coordinando più query tra loro. Ciò potrebbe essere risolto con l’uso di strumenti più avanzati come le procedure messe a disposizione dal DBMS, o codice in linguaggio di programmazione (C, Java, PHP, ecc…) integrato col DBMS. Non c’è l’obbligo di usare tali strumenti avanzati, che, peraltro, aumenterebbe il valore del progetto. Nel caso si decida di non utilizzare tali strumenti, è necessario comunque presentare le procedure sotto forma di pseudocodice, e realizzare le query che si utilizzerebbero al loro interno. Svolgimento del Progetto Comprende i seguenti punti: 1. Definizione formale, Analisi e Strutturazione dei requisiti. 2. Progettazione concettuale utilizzando il modello Entità-Relazione. 3. Formalizzazione dei vincoli di integrità. 4. Ristrutturazione ed ottimizzazione dello schema ER. 5. Traduzione nel modello relazionale. 6. Implementazione del progetto. 14/11/2007 Pagina 2 Corso di Laboratorio di Basi di Dati, A.A. 2007-2008 Progetto “gestione voli” Tutte le fasi del progetto dovranno essere corredate da adeguata documentazione che illustri quanto viene realizzato e le scelte intraprese. In particolare, dovranno essere necessariamente inclusi nella documentazione gli schemi ER risultanti dai passi (2) e (4), debitamente commentati, il modello relazionale della base di dati ottenuto al passo (5), in cui siano messe in evidenza le chiavi delle varie tabelle e le relazioni tra queste ultime, e tutto il codice SQL usato nell’implementazione, comprendente gli statement necessari alla creazione della base di dati, alcuni statement che mostrino esempi di inserimento dati nel DB, e il codice di tutte le query/operazioni richieste. Per l’implementazione del progetto si suggeriscono i seguenti DBMS open source: ∗ Postgresql [Unix, gratuito] ∗ Interbase [Windows, la versione 6 è gratuita] ∗ Firebird [Windows e Linux, gratuito, basato sulla versione 6 di Interbase] ∗ MySQL [Windows e Linux, gratuito] L’uso di altri DBMS dovrà essere preventivamente concordato con il docente. Nota : Access è fortemente sconsigliato. Opzionalmente, il DB realizzato può essere dotato di un’interfaccia scritta con un linguaggio di programmazione a scelta (ad es. Java, C++, PHP). Tuttavia, non è richiesto di curare i dettagli grafici di tale interfaccia. Ulteriori Informazioni Questa specifica è disponibile in formato PDF sulla pagina web del corso di Laboratorio Basi di Dati 2007-2008, all’indirizzo http://www.univaq.it/~luigi.vetrano/labDB. Ulteriori informazioni e chiarimenti sulle specifiche possono essere richiesti direttamente via email all’indirizzo [email protected]. Si ricorda che tutti i gruppi di lavoro che intendono sostenere l’esame del corso devono registrarsi inviando il nominativo dei componenti il gruppo, il progetto scelto, il DBMS, il sistema operativo e, eventualmente, il linguaggio di programmazione, che si intendono utilizzare, all’indirizzo email [email protected]. 14/11/2007 Pagina 3