Download - Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi
![Page 1: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/1.jpg)
Corso di Basi di Dati
Esercitazione:L’algebra relazionale
Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
![Page 2: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/2.jpg)
Esercizio 1
Dato il seguente schema:
POETA(Nome, Cognome, AnnoNascita, LuogoNascita)ROMANZIERE (Nome, Cognome, Anno, LuogoNatio)
Scrivere in algebra relazionale la query che determina:
1. Il cognome dei poeti nati a Bologna nel 1966.
![Page 3: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/3.jpg)
Esercizio 1
Dato il seguente schema:
POETA(Nome, Cognome, AnnoNascita, LuogoNascita)ROMANZIERE (Nome, Cognome, Anno, LuogoNatio)
Scrivere in algebra relazionale la query che determina:
2. Nome, cognome e Luogo di nascita dei poeti che NON sono romanzieri.
![Page 4: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/4.jpg)
Esercizio 1
Dato il seguente schema:
POETA(Nome, Cognome, AnnoNascita, LuogoNascita)ROMANZIERE (Nome, Cognome, Anno, LuogoNatio)
Scrivere in algebra relazionale la query che determina:
3. Nome e cognome degli scrittori (poeti + romanzieri) il cui anno di nascita non sia definito.
![Page 5: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/5.jpg)
Esercizio 2
Dato il seguente schema:
UTENTE(CODICE,NOME,COGNOME) LIBRO(TITOLO,AUTORE) PRESTITI(TITLIBRO,CODUTENTE,DATA)
Scrivere in algebra relazionale la query che determina:
1. I titoli dei libri avuti in prestito da “Giovanni Rossi”.
![Page 6: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/6.jpg)
Esercizio 2
Dato il seguente schema:
UTENTE(CODICE,NOME,COGNOME) LIBRO(TITOLO,AUTORE) PRESTITI(TITLIBRO,CODUTENTE,DATA)
Scrivere in algebra relazionale la query che determina:
2. I titoli dei libri che non sono in prestito.
![Page 7: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/7.jpg)
Esercizio 2
Dato il seguente schema:
UTENTE(CODICE,NOME,COGNOME) LIBRO(TITOLO,AUTORE) PRESTITI(TITLIBRO,CODUTENTE,DATA)
Scrivere in algebra relazionale la query che determina:
3. Nome e cognome degli utenti che hanno avuto in prestito libri di “Verga” in data 10/5/2012.
![Page 8: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/8.jpg)
Esercizio 3
Data la seguente relazione:
R(A, B, C, D, E, F)
Quali delle seguenti proiezioni hanno lo stesso numero di righe di R?
![Page 9: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/9.jpg)
Esercizio 4
Data la seguenti relazioni:
R1(A,B,C) R2(D,E,F)
Con cardinalita’: |R1|=N1 e |R2|=N2.Indicare la cardinalita’ del join nei seguenti casi:
(con vincolo di integrita’ referenziale tra A ed E)
![Page 10: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/10.jpg)
Esercizio 5
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
Scrivere in algebra relazionale la query (ottimizzata) che determina Nome, Cognome e Data di Nascita dei clienti che in data 15/01/2013 hanno noleggiato veicoli immatricolati nel 2005.
![Page 11: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/11.jpg)
Esercizio 5
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
![Page 12: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/12.jpg)
Esercizio 5
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
![Page 13: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/13.jpg)
Esercizio 5
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
![Page 14: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/14.jpg)
Esercizio 5
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
Scrivere in algebra relazionale (ottimizzazione NON richiesta) la query che determina le targhe dei veicoli che non sono stati MAI noleggiati a Bologna.
![Page 15: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/15.jpg)
Esercizio 5
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
![Page 16: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/16.jpg)
Esercizio 6
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
Scrivere in SQL ed algebra relazionale la query che determina il Modello di veicolo piu’ noleggiato tra quelli immatricolati tra il 2000 ed il 2010.
![Page 17: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/17.jpg)
Esercizio 6
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
Algebra relazionale NON esprimibile!
![Page 18: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/18.jpg)
Esercizio 6
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)CREATE VIEW NUM_NOLEGGI(MOD,TOTALE) ASSELECT MODELLO, COUNT(*)FROM NOLEGGIO, VEICOLIWHERE ((TARGAVEICOLO=TARGA)
AND (ANNOIMMATRICOLAZIONE IN (2000,2010)))
GROUPBY MODELLO
![Page 19: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/19.jpg)
Esercizio 6
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)SELECT MODELLOFROM NUM_NOLEGGIWHERE TOTALE = (SELECT MAX(TOTALE)
FROM NUM_NOLEGGI)
![Page 20: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/20.jpg)
Esercizio 6
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
Scrivere in SQL ed algebra relazionale la query che determina Nome e Cognome dei Clienti che hanno noleggiato almeno 2 veicoli presso la sede di Bologna.
![Page 21: Corso di Basi di Dati Esercitazione: Lalgebra relazionale Home page del corso: difelice/dbsi](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5542eb64497959361e8cd84c/html5/thumbnails/21.jpg)
Esercizio 6
Data la seguenti relazioni:
VEICOLI(Targa, Modello, AnnoImmatricolazione)CLIENTI(NrPatente, Nome, Cognome,DataNascita)NOLEGGIO(TargaVeicolo,Data,PatenteCliente,SedeCitta)
SELECT NOME, COGNOMEFROM CLIENTI, NOLEGGIOWHERE ((PATENTECLIENTE = NRPATENTE)
AND (SEDECITTA=BOLOGNA))GROUP BY PATENTECLIENTE, NRPATENTEHAVING COUNT(*) >=2