Alcuni esercizi svolti di Algebra Relazionale Esempi di query: Esercizio 1 Si assuma il seguente schema di data base per la gestione di una biblioteca: LIBRO(codice_libro, autore, titolo) LETTORE(codice_lettore, nome, cognome) PRESTITO(codice_lettore, codice_libro, data_prestito) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Titoli dei libri presi a prestito il giorno 12/5/99; b) Autori dei libri presi a prestito dai signori Paolo Rossi; c) Codici dei lettori che hanno preso a prestito libri scritti da Gibson oppure da Sterling. a) σ data_prestito=12/5/99PRESTITO a)ππtitolo PRESTITO titolo σdata_prestito=12/5/99 LIBRO LIBRO b) σ LETTORE PRESTITO b)ππautore PRESTITO LIBRO LIBRO autore σnome=‘Paolo’ nome=‘Paolo’and andcognome=‘Rossi’ cognome=‘Rossi’LETTORE c) σ autore=‘Gibson’ororautore=‘Stirling’ LIBRO PRESTITO PRESTITO c)ππcodice_lettore codice_lettore σautore=‘Gibson’ autore=‘Stirling’LIBRO © Carlo Mereghetti Esercizi Algebra Relazionale 2 1 Esempi di query: Esercizio 2 Si assuma il seguente schema di data base per la gestione di dati riguardanti il noleggio di cd: CD(codice_cd, autore, titolo) CLIENTE(codice_cliente, nome, cognome) NOLEGGIO(codice_cliente, codice_cd, data_noleggio) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Autore e titolo dei cd noleggiati dai signori Paolo Rossi in data 20/5/99; b) Nome e cognome dei clienti che hanno noleggiato cd dei REM in data 12/10/98; c) Titolo dei cd che sono stati noleggiati dal cliente avente codice 123A oppure dal cliente avente codice 236B. a)a)ππautore, titolo (σ CLIENTE σσdata=20/5/99 NOLEGGIO CD) CD) autore, titolo (σnome=‘Paolo’ nome=‘Paolo’and andcognome=‘Rossi’ cognome=‘Rossi’ CLIENTE data=20/5/99 NOLEGGIO b) (σ CD σσdata=12/10/98 NOLEGGIO CLIENTE) b)ππnome, CLIENTE) nome,cognome cognome ( σautore=‘REM’ autore=‘REM’ CD data=12/10/98 NOLEGGIO c)c)ππtitolo (CD σσcodice_cliente=‘123A’ or codice_cliente=‘236B’ NOLEGGIO) titolo (CD codice_cliente=‘123A’ or codice_cliente=‘236B’ NOLEGGIO) © Carlo Mereghetti Esercizi Algebra Relazionale 3 Esempi di query: Esercizio 3 Si assuma il seguente schema di data base per la gestione di dati riguardanti i mondiali di calcio: MONDIALE(anno, luogo, nazione_vincitrice) ALLENATORE(cognome, nome, nazione_allenata, anno) PARTITA(anno, nazione_A, nazione_B, punteggio) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Nazioni che hanno vinto il mondiale in casa ed anno in cui ciò è avvenuto: ππnazione_vincitrice, anno (σ MONDIALE) nazione_vincitrice, anno (σluogo=nazione_vincitrice luogo=nazione_vincitrice MONDIALE) b) Anno e luogo dei mondiali vinti dalle nazioni allenate da Paolo Rossi: ππanno, luogo ((σσnome=‘Paolo’and cognome=‘Rossi’ ρρanno_all ← anno ALLENATORE anno, luogo nome=‘Paolo’and cognome=‘Rossi’ anno_all ← anno ALLENATORE MONDIALE) nazione_allenata=nazione_vincitrice nazione_allenata=nazione_vincitriceand andanno_all=anno anno_all=anno MONDIALE) c) Nazioni contro cui ha giocato la nazione vincitrice del mondiale 98 durante lo stesso. πnazione_B (σanno=1998 ρanno_vinc ← anno MONDIALE πnazione_A (σanno=1998 ρanno_vinc ← anno MONDIALE © Carlo Mereghetti ∪ nazione_vincitrice=nazione_A and anno_vinc=anno PARTITA) nazione_vincitrice=nazione_B and anno_vinc=anno PARTITA) Esercizi Algebra Relazionale 4 2 Esempi di query: Esercizio 4 Si assuma il seguente schema di data base per la raccolta di prenotazioni di posti su treni: VIAGGIATORE(codice_v, nome, cognome) TRENO(codice_t, provenienza, destinazione) PRENOTAZIONE(codice_v, codice_t, data) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Nome e cognome dei viaggiatori che in data 10/11/97 hanno prenotato posti su treni da Milano per Roma; b) Elenco delle date in cui viaggiatori dal cognome Rossi hanno effettuato prenotazioni; c) Provenienza e destinazione dei treni su cui è stata effettuata almeno una prenotazione. a)a)ππnome,cognome (σ TRENO nome,cognome (σprovenienza=‘Milano’ provenienza=‘Milano’and anddestinazione=‘Roma’ destinazione=‘Roma’ TRENO σσdata=10/11/97 PRENOTAZIONE VIAGGIATORE) VIAGGIATORE) data=10/11/97 PRENOTAZIONE b) (σ VIAGGIATORE PRENOTAZIONE) b)ππdata PRENOTAZIONE) data ( σcognome=‘Rossi’ cognome=‘Rossi’ VIAGGIATORE c)c)ππprovenienza,destinazione (PRENOTAZIONE TRENO) TRENO) provenienza,destinazione (PRENOTAZIONE © Carlo Mereghetti Esercizi Algebra Relazionale 5 Esempi di query: Esercizio 5 Si assuma il seguente schema di data base per la gestione di un video-noleggio: CLIENTE(codice_c, nome, cognome) FILM(codice_f, titolo, anno, genere) NOLEGGIO(codice_c, codice_f, data) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Nome e cognome dei clienti che hanno noleggiato film di fantascienza; b) Titolo dei film gialli noleggiati da Paolo Rossi; c) Cognome dei clienti che in data 17/3/99 hanno noleggiato film di fantascienza o film girati nel 1965. a)a)ππnome, cognome (σ FILM nome, cognome (σgenere=‘fantascienza’ genere=‘fantascienza’ FILM NOLEGGIO NOLEGGIO CLIENTE) CLIENTE) b) (σ CLIENTE b)ππtitolo titolo (σnome=‘Paolo’ nome=‘Paolo’and and‘Cognome=‘Rossi’ ‘Cognome=‘Rossi’ CLIENTE NOLEGGIO FILM) NOLEGGIO σσgenere=‘giallo’ genere=‘giallo’ FILM) c)c)ππcognome (CLIENTE σσdata=17/3/99 NOLEGGIO σσgenere=‘fantascienza’ or anno=1965 FILM) cognome (CLIENTE data=17/3/99 NOLEGGIO genere=‘fantascienza’ or anno=1965 FILM) © Carlo Mereghetti Esercizi Algebra Relazionale 6 3 Esempi di query: Esercizio 6 Si assuma il seguente schema di data base per la prenotazione di aule per esami: ESAME(codice_esame, materia, professore) AULA(codice_aula, nome, edificio, capienza) PRENOTAZIONE(codice_aula, codice_esame, data) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Edificio e nome delle aule prenotate per gli esami di fisica il giorno 12/5/99; b) Nome e capienza delle aule prenotate per esami tenuti dal Prof. Rossi; c) Edificio e nome delle aule con capienza di almeno 120 posti le quali non hanno prenotazioni in data 9/11/99 a)a)ππnome, edificio (σ ESAME σσdata=12/5/99 PRENOTAZIONE AULA) AULA) nome, edificio (σmateria=‘fisica’ materia=‘fisica’ ESAME data=12/5/99 PRENOTAZIONE b) (σ ESAME b)ππnome,capienza nome,capienza (σprofessore=‘Rossi’ professore=‘Rossi’ ESAME PRENOTAZIONE PRENOTAZIONE AULA) AULA) c)c)ππedificio, nome (σ AULA) - π (σ PRENOTAZIONE edificio, nome (σcapienza>=120 capienza>=120 AULA) - πedificio, edificio,nome nome (σdata=12/5/99 data=12/5/99 PRENOTAZIONE σσcapienza>=120 AULA) capienza>=120 AULA) © Carlo Mereghetti Esercizi Algebra Relazionale 7 Esempi di query: Esercizio 7 Si assuma il seguente schema di data base per una biblioteca: UTENTE(codice_utente,nome,cognome) LIBRO(codice_libro,titolo,autore) PRESTITI(codice_libro,codice_utente,data) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Titolo dei libri avuti in prestito da Paolo Rossi; b) Titoli dei libri scritti da Manzoni presenti in biblioteca; c) Nome e cognome degli utenti che hanno chiesto in prestito libri di Manzoni in data 10/12/96 a)a)ππtitolo (σ UTENTE PRESTITI PRESTITI titolo (σnome=‘Paolo’ nome=‘Paolo’and and‘Cognome=‘Rossi’ ‘Cognome=‘Rossi’ UTENTE LIBRO) LIBRO) b) (σ LIBRO) b)ππtitolo titolo (σautore=‘Manzoni’ autore=‘Manzoni’ LIBRO) c)c)ππnome,cognome (σ LIBRO σσdata=10/12/96 PRESTITI nome,cognome (σautore=‘Manzoni’ autore=‘Manzoni’ LIBRO data=10/12/96 PRESTITI © Carlo Mereghetti Esercizi Algebra Relazionale UTENTE) UTENTE) 8 4 Esempi di query: Esercizio 8 Si assuma il seguente schema di data base: STUDENTE(matr,nome,cognome) MATERIA(materia,codice_insegnamento,titolare) ESAME(codice_insegnamento,matr,data,voto) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Esami sostenuti dagli studenti chiamati Paolo Rossi; b) Elenco degli insegnamenti il cui titolare ha cognome Verdi; c) Nome, cognome, matricola degli studenti che hanno superato l’esame di Fisica con voto superiore a 20. a)a)ππmateria (σ STUDENTE ESAME ESAME MATERIA) MATERIA) materia (σnome=‘Paolo’ nome=‘Paolo’and and‘Cognome=‘Rossi’ ‘Cognome=‘Rossi’ STUDENTE b) (σ MATERIA) b)ππmateria materia (σtitolare=‘Verdi’ titolare=‘Verdi’ MATERIA) c)c)ππnome,cognome,matr (σ MATERIA σσvoto>20 ESAME STUDENTE) STUDENTE) nome,cognome,matr (σmateria=‘Fisica’ materia=‘Fisica’ MATERIA voto>20 ESAME © Carlo Mereghetti Esercizi Algebra Relazionale 9 Esempi di query: Esercizio 9 Si assuma il seguente schema di data base: STUDENTE(matr,nome,cognome) MATERIA(materia,codice_insegnamento,titolare) ESAME(codice_insegnamento,matr,data,voto) Tradurre in linguaggio naturale le seguenti espressioni relazionali: a) πnome,cognome(σdata=12/11/77 ESAME STUDENTE) ∪ πnome,cognome(σdata=20/11/77 ESAME STUDENTE) b) πnome,cognome ((σmateria=‘Fisica’ MATERIA ESAME) STUDENTE) a)a) Nome Nomeeecognome cognomedegli deglistudenti studentiche chehanno hannosostenuto sostenutoesami esamiinindata data12/11/77 12/11/77 oppure in data 20/11/77. oppure in data 20/11/77. b) b) Nome Nomeeecognome cognomedegli deglistudenti studentiche chehanno hannosostenuto sostenutol’esame l’esamedidiFisica. Fisica. © Carlo Mereghetti Esercizi Algebra Relazionale 10 5 Esempi di query: Esercizio 10 Si assuma il seguente schema di data base: ARTICOLO (cod_art, nome_art, categoria_art, prezzo_art) CLIENTE(cod_cl, nome_cl, residenza_cl) ORDINE(cod_cl, cod_art, quantità, data) Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni: a) Nome dei clienti che hanno ordinato articoli con un prezzo compreso tra uno e due milioni; b) Nome dei clienti che hanno ordinato articoli con un prezzo compreso tra uno e due milioni nel mese di dicembre. a)a)ππnome_cl (σ ARTICOLO nome_cl (σprezzo_art>=1000000 prezzo_art>=1000000and andprezzo prezzo<=2000000 <=2000000 ARTICOLO ORDINE ORDINE b) (σ ARTICOLO b)ππnome_cl nome_cl (σprezzo_art>=1000000 prezzo_art>=1000000and andprezzo prezzo<=2000000 <=2000000 ARTICOLO σσdata>=1/12/00 and data<=31/12/00 ORDINE ORDINE data>=1/12/00 and data<=31/12/00 © Carlo Mereghetti Esercizi Algebra Relazionale CLIENTE) CLIENTE) CLIENTE) CLIENTE) 11 6