algebrarelazionale - intranet deibhome.deib.polimi.it/picozzi/teaching/20122013...

34
Matteo Picozzi http://home.dei.polimi.it/picozzi {[email protected] } Algebra relazionale Basi di Dati 1 Esercitazione 16/10/2012

Upload: truongcong

Post on 18-Feb-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Matteo Picozzihttp://home.dei.polimi.it/picozzi

{[email protected]}

Algebra relazionaleBasi di Dati 1Esercitazione16/10/2012

Page 2: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Mi presento

Matteo Picozzihttp://home.dei.polimi.it/picozzi

Ricevimento su appuntamento.

2

Page 3: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Note pratiche

• Orario esercitazioni: 13.45 - 17.00• Materiali: sul sito del corso trovate:

- Riferimento all’eserciziario• D. Braga, M. Brambilla, A. Campi. " Eserciziario di Basi di Dati". ISBN:

88-7488-139-8. Progetto Leonardo - BOLOGNA, 2006.- Esercizi supplementari- Temi d’esame

3

Page 4: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Algebra relazionale

• Linguaggio- Formale- Procedurale- Per formulare interrogazioni

4

Page 5: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Algebra relazionale - Operazioni• Fondamentali

- Unarie• Proiezione (∏)• Selezione (σ)

- Binarie• Unione (∪)• Differenza (-)• Prodotto cartesiano (×)

• Derivate- Binarie• Intersezione (∩)• Join (⋈)• Divisione (÷)

5

Page 6: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Algebra relazionale - Operazioni• Fondamentali

- Unarie• Proiezione (∏)• Selezione (σ)

- Binarie• Unione (∪)• Differenza (-)• Prodotto cartesiano (×)

• Derivate- Binarie• Intersezione (∩)• Join (⋈)• Divisione (÷)

5

Operazioni più usate

Page 7: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 16

STUDENTE(matricola, nome, cognome, città, cds)ESAME(matricola, cod_corso, data, voto)CORSO(cod_corso, titolo, docente)

Page 8: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 1.1

• Trovare cognomi e nomi degli studenti di Cremona del corso di studi (CDS) Ingegneria Informatica.

7

STUDENTE(matricola, nome, cognome, città, cds)ESAME(matricola, cod_corso, data, voto)CORSO(cod_corso, titolo, docente)

Page 9: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 1.2

• Trovare il codice dei corsi di Informatica 1 in cui almeno uno studente non appartenente al CDS Ingegneria Gestionale ha preso 30.

8

STUDENTE(matricola, nome, cognome, città, cds)ESAME(matricola, cod_corso, data, voto)CORSO(cod_corso, titolo, docente)

Page 10: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 1.3

• Trovare cognomi e nomi degli studenti che hanno preso 30 in qualche esame ma che hanno sostenuto anche Analisi 1.

9

STUDENTE(matricola, nome, cognome, città, cds)ESAME(matricola, cod_corso, data, voto)CORSO(cod_corso, titolo, docente)

Page 11: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 1.4

• Trovare cognomi e nomi degli studenti che hanno preso almeno un 30 in qualche esame e non hanno mai preso meno di 24.

10

STUDENTE(matricola, nome, cognome, città, cds)ESAME(matricola, cod_corso, data, voto)CORSO(cod_corso, titolo, docente)

Page 12: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 2 - dal TdE 23/11/200411

VITIGNO(nome, colore, data_fruttificazione, località)VINO(nome, colore, tipo, gradazione)PRODUTTORE(nome, località)PRODUZIONE(produttore, anno, vino, quantità)DISCIPLINARE(vino, vitigno, percentuale)

Page 13: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 2.1 - dal TdE 23/11/2004

• Trovare i nomi dei vini prodotti da produttori di Milano ma che non hanno vitigni che sorgono in Franciacorta.

12

VITIGNO(nome, colore, data_fruttificazione, località)VINO(nome, colore, tipo, gradazione)PRODUTTORE(nome, località)PRODUZIONE(produttore, anno, vino, quantità)DISCIPLINARE(vino, vitigno, percentuale)

Page 14: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 2.2 - dal TdE 23/11/2004

• Trovare i nomi dei produttori che hanno prodotto almeno due vini nel 2000 ma che non hanno mai usato uve “Grignolino” per più del 20%.

13

VITIGNO(nome, colore, data_fruttificazione, località)VINO(nome, colore, tipo, gradazione)PRODUTTORE(nome, località)PRODUZIONE(produttore, anno, vino, quantità)DISCIPLINARE(vino, vitigno, percentuale)

Page 15: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 3 - Eserciziario esercizio 3.614

CITTÀ(nome, regione, abitanti)ATTRAVERSAMENTI(città, fiume)FIUMI(fiume, lunghezza)

Page 16: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 3.1 - Eserciziario esercizio 3.6

• Trovare nome, regione e abitanti di città che hanno più di 50.000 abitanti e sono attraversate dal Po o dall’Adige.

15

CITTÀ(nome, regione, abitanti)ATTRAVERSAMENTI(città, fiume)FIUMI(fiume, lunghezza)

Page 17: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 3.2 - Eserciziario esercizio 3.6

• Trovare il nome delle città attraversate da almeno due fiumi e il nome del più lungo dei fiumi che la attraversano.

16

CITTÀ(nome, regione, abitanti)ATTRAVERSAMENTI(città, fiume)FIUMI(fiume, lunghezza)

Page 18: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 417

IMPIEGATO(nome, età, stipendio)DIPENDENZA(manager, dipendente)

nome età stipendioMario 31 60000Luca 32 40000

Andrea 35 30000Stefano 36 20000

manager dipendenteMario LucaMario Andrea

Andrea Stefano

Page 19: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 4.1

• Trovare il nome degli impiegati dipendenti direttamente da Mario.

18

IMPIEGATO(nome, età, stipendio)DIPENDENZA(manager, dipendente)

nome età stipendioMario 31 60000Luca 32 40000

Andrea 35 30000Stefano 36 20000

manager dipendenteMario LucaMario Andrea

Andrea Stefano

Page 20: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 4.2

• Trovare l’età dei dipendenti sottoposti di Mario.

19

IMPIEGATO(nome, età, stipendio)DIPENDENZA(manager, dipendente)

nome età stipendioMario 31 60000Luca 32 40000

Andrea 35 30000Stefano 36 20000

manager dipendenteMario LucaMario Andrea

Andrea Stefano

Page 21: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 4.3

• Trovare i nomi degli impiegati che non hanno un manager.

20

IMPIEGATO(nome, età, stipendio)DIPENDENZA(manager, dipendente)

nome età stipendioMario 31 60000Luca 32 40000

Andrea 35 30000Stefano 36 20000

manager dipendenteMario LucaMario Andrea

Andrea Stefano

Page 22: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 4.4

• Trovare il nome delle coppie di impiegati che collaborano e sono alle dipendenze di Mario.

21

IMPIEGATO(nome, età, stipendio)DIPENDENZA(manager, dipendente)

nome età stipendioMario 31 60000Luca 32 40000

Andrea 35 30000Stefano 36 20000

manager dipendenteMario LucaMario Andrea

Andrea Stefano

Page 23: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 522

CLIENTI(codice, cognome, nome, indirizzo)NOLEGGI(cliente, vettura, data)VETTURE(codice, modello, anno_immatricolazione)MODELLO(codice_modello, nome)

Page 24: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 5.1

• Trovare cognome e nome dei clienti che hanno noleggiato una Fiat Panda prima del 01/09/2012.

23

CLIENTI(codice, cognome, nome, indirizzo)NOLEGGI(cliente, vettura, data)VETTURE(codice, modello, anno_immatricolazione)MODELLO(codice_modello, nome)

Page 25: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 5.2

• Trovare cognome e nome dei clienti che hanno noleggiato lo stesso modello almeno due volte.

24

CLIENTI(codice, cognome, nome, indirizzo)NOLEGGI(cliente, vettura, data)VETTURE(codice, modello, anno_immatricolazione)MODELLO(codice_modello, nome)

Page 26: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 625

VIAGGI(codice, descrizione, luogo, durata)VACANZE(codice, viaggio, data_partenza, costo)PARTECIPAZIONE(cliente, vacanza)CLIENTI(codice, cognome, nome, indirizzo, città)

Page 27: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 6.1

• Trovare luoghi, descrizione e durata dei viaggi a cui hanno partecipato i clienti di Firenze con partenza in data successiva al 25/03/2010.

26

VIAGGI(codice, descrizione, luogo, durata)VACANZE(codice, viaggio, data_partenza, costo)PARTECIPAZIONE(cliente, vacanza)CLIENTI(codice, cognome, nome, indirizzo, città)

Page 28: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 6.2

• Trovare date di partenza e costo di vacanze a cui hanno partecipato almeno 2 clienti di Cremona.

27

VIAGGI(codice, descrizione, luogo, durata)VACANZE(codice, viaggio, data_partenza, costo)PARTECIPAZIONE(cliente, vacanza)CLIENTI(codice, cognome, nome, indirizzo, città)

Page 29: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 728

ESAMI(studente, materia, voto, data)PIANIDISTUDIO(studente, materia, anno, semestre)

Page 30: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 7.1

• Studenti che hanno passato tutti gli esami nel piano di studi.

29

ESAMI(studente, materia, voto, data)PIANIDISTUDIO(studente, materia, anno, semestre)

Page 31: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 830

CLIENTE(num_tessera, nome, cognome, genere, via, città, iscritto_piscina, data_iscrizione)ISTRUTTORE(cod_fiscale, nome, cognome, genere, via, città, data_assunzione)CORSO(nome_corso, turno, città_corso, cf_istruttore)ISCRIZIONE_CORSO(num_tessera, nome_corso, turno, data)

Page 32: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 8.1

• Trovare i turni dei corsi tenuti dalle istruttrici assunte dopo il 01/01/2010 e che al 01/06/2012 non abbiano ancora nessun iscritto a Milano.

31

CLIENTE(num_tessera, nome, cognome, genere, via, città, iscritto_piscina, data_iscrizione)ISTRUTTORE(cod_fiscale, nome, cognome, genere, via, città, data_assunzione)CORSO(nome_corso, turno, città_corso, cf_istruttore)ISCRIZIONE_CORSO(num_tessera, nome_corso, turno, data)

Page 33: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 8.1

• Trovare i turni dei corsi tenuti dalle istruttrici assunte dopo il 01/01/2010 e che al 01/06/2012 non abbiano ancora nessun iscritto a Milano.

31

CLIENTE(num_tessera, nome, cognome, genere, via, città, iscritto_piscina, data_iscrizione)ISTRUTTORE(cod_fiscale, nome, cognome, genere, via, città, data_assunzione)CORSO(nome_corso, turno, città_corso, cf_istruttore)ISCRIZIONE_CORSO(num_tessera, nome_corso, turno, data)

di

Page 34: Algebrarelazionale - Intranet DEIBhome.deib.polimi.it/picozzi/teaching/20122013 basididati/20121016... · Esercizio8.2 • Trovare i corsi di aerobica che hanno almeno due iscritti

Esercizio 8.2

• Trovare i corsi di aerobica che hanno almeno due iscritti di Sesto S. Giovanni ma nessuno iscritto di Lodi.

32

CLIENTE(num_tessera, nome, cognome, genere, via, città, iscritto_piscina, data_iscrizione)ISTRUTTORE(cod_fiscale, nome, cognome, genere, via, città, data_assunzione)CORSO(nome_corso, turno, città_corso, cf_istruttore)ISCRIZIONE_CORSO(num_tessera, nome_corso, turno, data)