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