• Non ci sono risultati.

Compito di Basi di Dati e Sistemi Informativi 13 dicembre 2006

N/A
N/A
Protected

Academic year: 2021

Condividi "Compito di Basi di Dati e Sistemi Informativi 13 dicembre 2006"

Copied!
2
0
0

Testo completo

(1)

Compito di Basi di Dati e Sistemi Informativi

13 dicembre 2006

Esercizio 1:

Sia dato il seguente schema relazionale:

V olo(codiceV olo, citt`aP artenza, citt`aArrivo, compagniaAerea);

Lavora su(volo, persona);

InStato(citt`a, stato);

InContinente(stato, continente).

Si assuma che ogni compagnia effettui al pi`u un volo per ogni coppia di citt`a (si noti come non sia rilevante il fatto che in una citt`a siano presenti uno o pi`u aeroporti). Si assuma, inoltre, che il codice del volo identifichi il volo in modo univoco (nota bene: il volo da Venezia ad Amsterdam effettuato dalla compagnia KLM avr`a un codice diverso da quello del volo da Venezia ad Amsterdam effettuato dalla compagnia Alitalia). Si assuma, infine, che ogni persona possa lavorare su pi`u voli (anche di compagnie diverse).

Definire preliminarmente le chiavi primarie e le eventuali chiavi esterne delle relazioni date. Successiva- mente, stabilire quali delle seguenti interrogazioni si possono esprimere in algebra relazionale. In tutti i casi in cui risulta possibile, formulare opportune interrogazioni in algebra relazionale che permettano di determinare (senza usare l’operatore di divisione e usando solo se necessario le funzioni aggregate):

(a) gli stati non direttamente raggiungibili da Venezia (una citt`a x `e direttamente raggiungibile da una citt`a y se esiste un volo di una qualche compagnia da y a x);

(b) le persone che lavorano su almeno due voli della stessa compagnia;

(c) le citt`a raggiungibili da Johannesburg effettuando al pi`u tre voli (esempio, Johannesburg-Lusaka, Lusaka-Ankara, Ankara-Helsinki) facendo tappa intermedia in al pi`u una citt`a europea;

(d) le citt`a raggiungibili da Johannesburg effettuando almeno due voli (esempio, Johannesburg-Lusaka, Lusaka-Bagdad, Bagdad-Damasco) senza alcuna tappa intermedia in una citt`a europea;

(e) le citt`a dalle quali si pu`o raggiungere direttamente un soprainsieme proprio delle citt`a raggiungibili direttamente da Amsterdam.

Esercizio 2:

Con riferimento all’Esercizio 1, stabilire quali interrogazioni si possono esprimere nel linguaggio SQL (si faccia riferimento allo standard SQL-92). In tutti i casi in cui risulta possibile, formulare oppor- tune interrogazioni in SQL che permettano di determinare quanto richiesto (usando solo se necessario le funzioni aggregate).

Esercizio 3:

Si vuole progettare una base di dati di supporto alla gestione di un circolo tennistico.

1

(2)

Ogni socio del circolo `e identificato univocamente dal numero della sua tessera. Di ogni socio vengono memorizzati il nome, il cognome, l’indirizzo, uno o pi`u recapiti telefonici, l’essere destro o mancino (opzionale) e il livello (immaginiamo di distinguere due livelli: i soci pi`u bravi sono quelli di livello 1, quelli meno bravi di livello 2).

Il circolo possiede pi`u campi, ciascuno identificato univocamente da un numero e caratterizzato dalla superficie (in terra battuta, sintetica, in cemento) e dalla posizione (ogni posizione sia descritta da una lettera seguita da un numero; ad esempio, posizione A2, posizione C2).

Il circolo organizza dei tornei per i soci (la partecipazione `e libera: non tutti i soci partecipano a tutte le edizioni di tutti i tornei) . Ogni torneo sia caratterizzato univocamente da un nome (esempio, Torneo Primaverile, Torneo di Natale, ..), da un insieme di sponsor e da un premio in denaro. Di ogni torneo viene svolta ogni anno una e una sola edizione. Si assuma che sponsor e premi rimangano uguali nel tempo (ad esempio, gli sponsor e il premio del Torneo Primaverile saranno sempre gli stessi). Di ogni edizione di un torneo vogliamo memorizzare i campi utilizzati. Ogni edizione di un torneo pu`o utilizzare uno o pi`u campi, tutti della stessa supeficie. I campi utilizzati per un dato torneo possono variare da un’edizione all’altra, ma la superficie su cui viene svolto rimane invariata (ad esempio, possiamo immmaginare che il Torneo di Natale si svolga sempre su campi con superficie in cemento). Di ogni edizione vogliamo inoltre memorizzare la classifica finale (la posizione di ogni socio che ha partecipato all’edizione del torneo).

Alcuni dei soci di livello 1 ricoprono il ruolo di istruttori. Per ogni istruttore vogliamo sapere la tariffa oraria e quali sono i soci che vanno a lezione da lui/lei (possono essere sia soci di livello 2 sia soci di livello 1). Assumiamo che la tariffa oraria possa variare da istruttore a istruttore.

Si definisca uno schema Entit`a-Relazioni che descriva il contenuto informativo del sistema, illustrando con chiarezza le eventuali assunzioni fatte. Lo schema dovr`a essere completato con attributi ragionevoli per ciascuna entit`a (identificando le possibili chiavi) e relazione. Vanno specificati accuratamente i vincoli di cardinalit`a e partecipazione di ciascuna relazione. Si indichino anche le eventuali regole aziendali (regole di derivazione e vincoli di integrit`a).

Esercizio 4:

Si illustrino brevemente vantaggi e svantaggi del calcolo relazionale su domini e del calcolo relazionale su tuple con dichiarazioni di range. Successivamente, con riferimento allo schema relazionale dell’Esercizio 1, formulare un’interrogazione nel calcolo relazionale su tuple con dichiarazioni di range che determini tutte le citt`a francesi direttamente raggiungibili da Venezia.

Riferimenti

Documenti correlati

• Per ogni impiegato, il codice dell’impiegato, il numero del progetto cui sta attualmente lavorando, il numero dell’ufficio e il numero del telefono a lui assegnato (si assuma che

Per ciascun appartamento, dovranno essere incluse le seguenti informazioni: un codice numerico, che iden- tifica univocamente l’appartamento all’interno del condominio cui

Di ogni corso (ad esempio, il corso di Basi di Dati), vogliamo memorizzare il nome, il docente (si assuma che ogni corso sia tenuto da un solo docente), il numero di studenti iscritti

• ogni azienda sia identificata univocamente dal nome e abbia sede in un’unica citt` a (ovviamente aziende diverse possono avere la loro sede nella stessa citt` a);.. • nell’ambito

Per ogni sala, vogliamo mantenere informazioni sul nome della sala (sale con lo stesso nome possono appartenere solo a cinema diversi) ed il numero di posti disponibili. In ogni

La base di dati dovr`a, inoltre, memorizzare informazioni sui clienti della videoteca e sui video da loro noleggiati.. Di ogni utente vogliamo mantenere nome, cognome, data di

Si assuma che il traffico stradale di ciascuna provincia sia sotto la responsabilit`a di uno specifico corpo di polizia stradale provinciale, anche se membri del corpo di polizia di

Ogni edizione di un corso sia caratterizzata dal codice del corso, dall’anno accademico (si assuma che di ogni corso venga tenuta al pi` u un’edizione per anno accademico), dal