Esercizi di Algebra Relazionale

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