Fondamenti di Informatica II: Basi di dati
VI Appello 2012-13
31gennaio 2014
Nome:
Cognome:
Matricola:
Esercizio 1
Date le relazioni R1(A,B,C), R2(D,E, F) e la seguente query in algebra relazionale.
Π
E
(R1 ⊲⊳A=E R2)
⊲⊳B=E R1
Scrivere una query SQL equivalente
select distinct X1.E, X2.A, X2.B, X2.C
from (R2 join R1 X3 on X3.A=E)
join R1 X2 on X2.B=E
Esercizio n.2
Si consideri la seguente tabella:
Tabella
(CodVolo, DurataVolo, OraPartenza, OraArrivo, Data, CodPilota, Ritardo,
NomePilota, TelefonoPilota, IndirizzoPilota, CittàPartenza, CittàArrivo)
Identificare la chiave e tutte le dipendenze funzionali non banali presenti: tenere conto che
la tabella mantiene le informazioni sui voli giornalieri e che un volo (CodVolo) ha sempre
la stessa ora e la stessa città di partenza e la stessa ora e la stessa città di arrivo.
Ciascun volo può avere piloti diversi in giorni diversi e, ovviamente, il suo ritardo non
sarà sempre lo stesso. Inoltre un pilota può effettuare un solo volo durante una giornata.
CodVolo, Data
CodVolo → DurataVolo, OraPartenza, OraArrivo, CittàPartenza,CittàArrivo
CodPilota → Nome, Telefono, Indirizzo
CodVolo, Data → Pilota, Ritardo
Data, Pilota → CodVolo, Ritardo
Verificare che la tabella sia in forma normale di Boyce-Codd, nel caso non lo sia
decomporla senza perdite mantenendo le dipendenze funzionali e indicare per ciascuna
tabella creata le chiavi.
Voli (CodVolo, Durata, OraPartenza, OraArrivo, CittàPartenza,CittàArrivo)
Piloti (CodPilota, Nome, Telefono, Indirizzo)
Decolli (CodVolo, Data, Pilota, Ritardo)
1
Fondamenti di Informatica II: Basi di dati
VI Appello 2012-13
31gennaio 2014
Esercizio 3
Lo studente fornisca la definizione di Terza Forma Normale
Soluzione:
Una tabella r è in Terza Forma Normale se per ogni dipendenza funzionale non banale
definita su di essa è verificata almeno una delle seguenti condizioni:
1)
X
è superchiave di
2) Ogni attributo in
Y
X Y
r
è contenuto in almeno una chiave di
r.
Esercizio 4
Considerare la seguente base di dati:
CLIENTI (Codice, Nome, Cognome, Indirizzo, Città)
NOLEGGI (CodCliente, TargaAuto, GiornoPrelievo, MesePrelievo, AnnoPrelievo, GiornoRestituzione,
MeseRestituzione, AnnoRestituzione)
AUTOVETTURE (Targa, Modello, Colore, AnnoImmatricolazione, Costo-Giornaliero)
a) Scrivere una espressione in algebra relazionale che elenchi Nome e Cognome dei clienti che non
hanno mai noleggiato una BMW.
ΠN,C (Clienti) –
ΠN,C (ΠN,C,cc (Clienti) ⊲⊳CC=Cod (ΠCC, TA (Noleggi) ⊲⊳TA=T ΠT (Mod=’BMW’ (Autovetture))))
b) Formulare l’ interrogazione precedente nel calcolo dei domini.
 Nome:n, Cognome:cg  Clienti(Codice:c, Nome:n, Cognome:cg,…)  ( Clienti(Codice:c,
Nome:n, Cognome:cg,…)  Noleggi (CodCliente:c, TargaAuto:ta,…)  Autovettura (CodCliente:c,
TargaAuto:ta, Modello:m, …)  m=’BMW’
Esercizio 5.
Classificare il seguente schedule (come: NonSR, VSR, CSR); nel caso lo schedule sia VSR oppure
CSR, indicare uno schedule seriale ad esso equivalente.
r1(x),r2(y),w1(x),r3(y),r3(z),r1(z),w3(x),w3(z),w3(x),w3(y)
VSR e CSR, T1 T2 T3 è uno schedule seriale equivalente.
2