18 Gennaio 2007

Transcript

18 Gennaio 2007
Compito Basi di Dati. Tempo concesso: 90 minuti
18 Gennaio 2007
Nome: ______________ Cognome: _________________ Matricola: __________
Esercizio 1
Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione
delle lezioni di una scuola guida e si definisca il relativo schema E/R (nella metodologia proposta a
lezione). Si evidenzino eventuali vincoli inespressi e attributi derivati.
Una scuola guida vuole realizzare un sistema per la gestione degli iscritti e delle lezioni teoriche e pratiche
impartite.
Il sistema deve permettere la registrazione delle persone iscritte delle quali si memorizzano il nominativo,
l’indirizzo, il numero di telefono, la data di nascita e la data d’iscrizione.
La scuola guida dispone di un insieme di automobili che vengono usate durante le lezioni pratiche. Di
ciascuna automobile si memorizzano la targa, la marca, il modello e la data d’immatricolazione.
Le lezioni impartite possono essere di teoria o di guida. Di ciascuna lezione si devono memorizzare la data,
l’ora e l’insegnante che l’ha tenuta. Le lezioni di teoria sono impartite a un insieme di iscritti e si svolgono in
un’aula (si possono tenere più lezioni di teoria contemporaneamente, ma in aule diverse). Per ciascuna
lezione di teoria è necessario registrare inoltre gli argomenti affrontati e l’elenco degli iscritti presenti. Per le
lezioni di guida, che sono invece impartite ai singoli iscritti, è necessario memorizzare l’automobile utilizzata
e la durata (possono svolgersi più lezioni di guida contemporaneamente, ma ovviamente con automobili
diverse).
Le lezioni di guida devono essere pagate singolarmente. Il costo delle lezioni è riportato in un tariffario e
dipende dalla durata e dalla fascia oraria in cui si svolge (es. lezione da 30 minuti, fascia oraria 17:00-19:00,
prezzo 15€). Per ciascuna lezione di guida è necessario registrare se il pagamento è già avvenuto o meno.
Svolgimento
Compito Basi di Dati. Tempo concesso: 90 minuti
18 Gennaio 2007 Matricola: ____________
Compito Basi di Dati. Tempo concesso: 90 minuti
18 Gennaio 2007 Matricola: ____________
Esercizio 2
1) Si descrivano le strutture B-tree e B+-tree e si evidenziano le differenze esistenti.
2) E’ data la query:
SELECT Matricola, AVG(Voto)
FROM Esami
WHERE Data BETWEEN ‘1/1/1998’ AND ‘31/12/2000’
AND Corso IN (5, 7, 8, 13, 18)
GROUP BY Matricola
sulla relazione:
ESAMI(Matricola, Corso, Voto, Data, Docente)
sulla quale sono costruiti due indici: uno unclustered su Matricola e uno clustered su Corso.
Si determinino il numero di foglie dei due indici, la selettività dei predicati e il miglior piano di accesso
per la risoluzione della query tenendo conto dei seguenti dati:
NP = 2200, NT = 25000
NKCorso = 25, NKDocente = 20, NKMatricola = 5000
Data ∈ [1/1/1998, 31/12/2001], Voto ∈ [18,30] ∪ {33}, Matricola ∈ [1,5000]
Len(Corso) = 8 byte, Len(Matricola) = 4 byte, Len(Voto) = 4 byte, Len(TID)= 4 byte, D = 1Kb, u = 0.69
Si ipotizzi di utilizzare l’algoritmo Sort-Merge a Z=3 vie per l’eventuale ordinamento del risultato.
Svolgimento
Compito Basi di Dati. Tempo concesso: 90 minuti
18 Gennaio 2007 Matricola: ____________
Compito Basi di Dati. Tempo concesso: 90 minuti
18 Gennaio 2007 Matricola: ____________
Esercizio 3
Dato il seguente schema relazionale:
DESTINAZIONE( codDestinazione, nomeDestinazione )
VIAGGIO ( codViaggio, nome, codDestinazione: DESTINAZIONE, descrizione, numeroGiorni, tipoViaggio )
1. Scrivere l’espressione di algebra relazionale che visualizza le destinazioni (codDestinazione,
nomeDestinazione) per le quali non sono previsti viaggi di durata inferiore a 15 giorni.
2. Scrivere la query SQL che visualizza, per ciascuna destinazione, il numero di viaggi distinti previsti
(codDestinazione, nomeDestinazione, numeroViaggi)
3. Scrivere la query SQL che seleziona il viaggio di tipo “Avventura” che ha la durata minima (codViaggio,
nome, descrizione, numeroGiorni).
4. Scrivere la query SQL che visualizza la tipologia di viaggi (tipoViaggio) per la quale sono previsti meno
viaggi.
Svolgimento
Compito Basi di Dati. Tempo concesso: 90 minuti
18 Gennaio 2007 Matricola: ____________