algebrarelazionale - intranet deibhome.deib.polimi.it/picozzi/teaching/20122013...
TRANSCRIPT
Matteo Picozzihttp://home.dei.polimi.it/picozzi
Algebra relazionaleBasi di Dati 1Esercitazione16/10/2012
Mi presento
Matteo Picozzihttp://home.dei.polimi.it/picozzi
Ricevimento su appuntamento.
2
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
Algebra relazionale
• Linguaggio- Formale- Procedurale- Per formulare interrogazioni
4
Algebra relazionale - Operazioni• Fondamentali
- Unarie• Proiezione (∏)• Selezione (σ)
- Binarie• Unione (∪)• Differenza (-)• Prodotto cartesiano (×)
• Derivate- Binarie• Intersezione (∩)• Join (⋈)• Divisione (÷)
5
Algebra relazionale - Operazioni• Fondamentali
- Unarie• Proiezione (∏)• Selezione (σ)
- Binarie• Unione (∪)• Differenza (-)• Prodotto cartesiano (×)
• Derivate- Binarie• Intersezione (∩)• Join (⋈)• Divisione (÷)
5
Operazioni più usate
Esercizio 16
STUDENTE(matricola, nome, cognome, città, cds)ESAME(matricola, cod_corso, data, voto)CORSO(cod_corso, titolo, docente)
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)
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)
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)
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)
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)
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)
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)
Esercizio 3 - Eserciziario esercizio 3.614
CITTÀ(nome, regione, abitanti)ATTRAVERSAMENTI(città, fiume)FIUMI(fiume, lunghezza)
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)
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)
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
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
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
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
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
Esercizio 522
CLIENTI(codice, cognome, nome, indirizzo)NOLEGGI(cliente, vettura, data)VETTURE(codice, modello, anno_immatricolazione)MODELLO(codice_modello, nome)
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)
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)
Esercizio 625
VIAGGI(codice, descrizione, luogo, durata)VACANZE(codice, viaggio, data_partenza, costo)PARTECIPAZIONE(cliente, vacanza)CLIENTI(codice, cognome, nome, indirizzo, città)
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à)
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à)
Esercizio 728
ESAMI(studente, materia, voto, data)PIANIDISTUDIO(studente, materia, anno, semestre)
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)
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)
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)
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
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)