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