Esercizio 1
Date le tabelle
eseguire le seguenti operazioni:
T1 = STUDENTE TIMES CLASSE
T2 = RESTRICT T1 WHERE STUDENTE.matricola=CLASSE.matricola
T3 = T2 TIMES AULA
T4 = RESTRICT T3 WHERE T2.classe=AULA.classe
T5 = RESTRICT T4 WHERE cognome="Rossi"
T6 = PROJECT T5 OVER cognome,cod_aula
────══════♦☆♦══════────
Esercizio 2
Date le tabelle
eseguire le seguenti operazioni:
T1 = AUTOMOBILE TIMES MODELLO
T2 = RESTRICT T1 WHERE AUTOMOBILE.cod_modello=MODELLO.cod_modello
T3 = T2 TIMES PROPRIETARIO
T4 = RESTRICT T3 WHERE T2.targa=PROPRIETARIO.targa
T5 = RESTRICT T4 WHERE Cod_Fiscale = "XYZ123456789"
T6 = RESTRICT ANAGRAFICA WHERE Cod_Fiscale = "XYZ123456789"
T7 = T5 TIMES T6
T8 = PROJECT T7 OVER cognome, nome
────══════♦☆♦══════────
Esercizio 3
Date le tabelle
eseguire le seguenti operazioni:
T1 = AUTOMOBILE TIMES MODELLO
T2 = RESTRICT T1 WHERE AUTOMOBILE.cod_modello=MODELLO.cod_modello
T3 = RESTRICT T1 WHERE anno=2017
T4 = T2 MINUS T3
T5 = RESTRICT PROPRIETARIO WHERE targa="EA 157 BA"
T6 = T4 TIMES T5
T7 = T6 TIMES ANAGRAFICA
T8 = RESTRICT T7 WHERE T6.Cod_Fiscale=ANAGRAFICA.Cod_Fiscale
────══════♦☆♦══════────
Esercizio 4
Si assuma il seguente schema relazionale per la gestione degli esami universitari:
STUDENTE(matricola, cognome, nome)
CORSO(codice, denominazione, docente)
ESAME(studente↑, corso↑, voto)
studente FK(STUDENTE.matricola)
corso FK(CORSO.codice)
Si esprima, nell'algebra relazionale, ciascuna delle seguenti interrogazioni:
Nome e cognome dello studente con matricola 3456
Voti ottenuti negli esami dallo studente con matricola 3456
Denominazione degli esami sostenuti dallo studente con matricola 3456
Denominazione degli esami e voti ottenuti dallo studente con matricola 3456
────══════♦☆♦══════────
Esercizio 5
Si assuma il seguente schema relazionale per la gestione del noleggio dei CD:
CD(codice_cd, autore, titolo)
CLIENTE(codice_cliente, nome, cognome)
NOLEGGIO(cliente↑, cd↑, data_noleggio)
cliente FK(CLIENTE.codice_cliente)
cd FK(CD.codice_cd)
Si esprima, nell'algebra relazionale, ciascuna delle seguenti interrogazioni:
I titoli dei CD il cui autore è Rossi
Il cognome dei clienti il cui nome è Marco
Il titolo dei CD noleggiati da Nicola Rossi dopo il 1/1/2010
────══════♦☆♦══════────
Esercizio 6
Si assuma il seguente schema relazionale per la gestione del territorio:
REGIONE(nome_regione, estensione)
CITTA(cap, nome, abitanti)
FIUME(codice_fiume, nome)
PROVINCIA(regione↑, citta↑)
regione FK(REGIONE.nome_regione)
citta FK(CITTA.cap)
TERRITORIO(citta↑, fiume↑)
citta FK(CITTA.cap)
fiume FK(CITTA.codice_fiume)
Si esprima, nell'algebra relazionale, ciascuna delle seguenti interrogazioni:
Le province, con relativi abitanti, della regione CAMPANIA (nome, abitanti)
Il nome delle province della regione Piemonte attraversate dal fiume Po
Il nome delle province della regione Piemonte non attraversate dal fiume Po
Il nome dei fiumi che attraversano la provincia di Pisa
────══════♦☆♦══════────
Esercizio 7
Si assuma il seguente schema relazionale per la gestione dei progetti nell'ambito dei dipartimenti:
IMPIEGATO(matricola, cognome, nome, stipendio, dipartimento↑)
dipartimento FK(DIPARTIMENTO.codice)
DIPARTIMENTO(codice, nome, sede, direttore↑)
direttore FK(IMPIEGATO.matricola)
PROGETTO(sigla, nome, bilancio, responsabile↑)
responsabile FK(IMPIEGATO.matricola)
PARTECIPAZIONE(impiegato↑, progetto↑)
impiegato FK(IMPIEGATO.matricola)
progetto FK(PROGETTO.sigla)
Si esprima, nell'algebra relazionale, ciascuna delle seguenti interrogazioni:
La matricola, il cognome e il nome degli impiegati che guadagnano più di 50000 Euro.
Il cognome e il nome degli impiegati che lavorano in un dipartimento con sede a Roma
Il cognome e il nome degli impiegati che sono direttori di dipartimento
I nomi dei progetti con bilancio maggiore di 100K Euro e i cognomi degli impiegati che lavorano su di essi
Il cognome e il nome degli impiegati che guadagnano più del loro direttore di dipartimento
────══════♦☆♦══════────
Esercizio 8
Si assuma il seguente schema relazionale per la gestione dei progetti nell'ambito dei dipartimenti:
IMPIEGATO(matricola, cognome, nome, stipendio, dipartimento↑)
dipartimento FK(DIPARTIMENTO.codice)
DIPARTIMENTO(codice, nome, sede, direttore↑)
direttore FK(IMPIEGATO.matricola)
PROGETTO(sigla, nome, bilancio, responsabile↑)
responsabile FK(IMPIEGATO.matricola)
PARTECIPAZIONE(impiegato↑, progetto↑)
impiegato FK(IMPIEGATO.matricola)
progetto FK(PROGETTO.sigla)
Popolare le tabelle con i seguenti dati inserendole chiavi, dove necessario, in modo arbitrario :
Impiegati
Luca Verdi, matricola 1001, stipendio 2400€, dipartimento Informatica
Marco Bianchi, matricola 1002, stipendio 2600€, dipartimento Fisica
Anna Neri, matricola 1003, stipendio 2500€, dipartimento Matematica
Paolo Russo, matricola 1004, stipendio 2300€, dipartimento Informatica
Sara Caruso, matricola 1005, stipendio 2200€, dipartimento Fisica
Dipartimenti
Informatica, sede Milano, direttore: Luca Verdi
Fisica, sede Torino, direttore: Marco Bianchi
Matematica, sede Roma, direttore: Anna Neri
Progetti
Cloud System, bilancio 50.000€, responsabile: Luca Verdi
Quantum Lab, bilancio 70.000€, responsabile: Marco Bianchi
Math Engine, bilancio 40.000€, responsabile: Anna Neri
AI Platform, bilancio 65.000€, responsabile: Paolo Russo
Partecipazioni ai progetti
Luca Verdi partecipa a Cloud System
Paolo Russo partecipa a Cloud System
Marco Bianchi partecipa a Quantum Lab
Sara Caruso partecipa a Quantum Lab
Anna Neri partecipa a Math Engine
Paolo Russo partecipa ad AI Platform
Luca Verdi partecipa ad AI Platform
Eseguire le seguenti operazioni:
T1 = IMPIEGATO TIMES PARTECIPAZIONE
T2 = RESTRICT T1 WHERE matricola = impiegato
T3 = T2 TIMES PROGETTO
T4 = RESTRICT T3 WHERE sigla = progetto
────══════♦☆♦══════────
Esercizio 9
Si assuma il seguente schema relazionale per la gestione dei progetti nell'ambito dei dipartimenti:
STUDENTE(matricola, cognome, nome, anno_nascita, corso_laurea↑)
corso_laurea FK(CORSO_LAUREA.codice)
CORSO_LAUREA(codice, nome, sede, coordinatore↑)
coordinatore FK(DOCENTE.matricola)
DOCENTE(matricola, cognome, nome, stipendio)
INSEGNAMENTO(codice, titolo, crediti, docente↑)
docente FK(DOCENTE.matricola)
ISCRIZIONE(studente↑, insegnamento↑)
studente FK(STUDENTE.matricola)
insegnamento FK(INSEGNAMENTO.codice)
Popolare le tabelle con i seguenti dati inserendo le chiavi, dove necessario, in modo arbitrario :
Studenti
Mario Rossi, matricola 2001, anno nascita 2002, corso di laurea Informatica
Giulia Bianchi, matricola 2002, anno nascita 2001, corso di laurea Fisica
Luca Verdi, matricola 2003, anno nascita 2000, corso di laurea Matematica
Elisa Neri, matricola 2004, anno nascita 2002, corso di laurea Informatica
Docenti
Prof. Carlo Conti, matricola 3001, stipendio 3000€
Prof.ssa Laura Moretti, matricola 3002, stipendio 3200€
Prof. Andrea Riva, matricola 3003, stipendio 3100€
Corsi di laurea
Informatica, sede Milano, coordinatore: Carlo Conti
Fisica, sede Torino, coordinatore: Laura Moretti
Matematica, sede Roma, coordinatore: Andrea Riva
Insegnamenti
Basi di Dati, codice BD01, 9 CFU, docente Carlo Conti
Fisica Quantistica, codice FQ02, 12 CFU, docente Laura Moretti
Analisi Matematica, codice AM03, 9 CFU, docente Andrea Riva
Programmazione, codice PR04, 6 CFU, docente Carlo Conti
Iscrizioni agli insegnamenti
Mario Rossi iscritto a Basi di Dati
Mario Rossi iscritto a Programmazione
Elisa Neri iscritta a Programmazione
Giulia Bianchi iscritta a Fisica Quantistica
Luca Verdi iscritto ad Analisi Matematica
Eseguire le seguenti operazioni:
T1 = STUDENTE TIMES ISCRIZIONE
T2 = RESTRICT T1 WHERE matricola = studente
T3 = T2 TIMES INSEGNAMENTO
T4 = RESTRICT T3 WHERE codice = insegnamento
A partire dalle tabelle precedentemente popolate e attraverso una successione di operazioni di algebra relazionale, generare la tabella
T5(matricola_docente, cognome, nome, titolo_insegnamento)
con dati coerenti con quelli già trattati.
────══════♦☆♦══════────
Esercizio 10
Si assuma il seguente schema relazionale per la gestione dei prestiti bibliotecari:
UTENTE (id_utente, cognome, nome, cittadinanza, categoria_voto↑)
categoria_voto FK(CATEGORIA.codice)
CATEGORIA (codice, descrizione, sconto, responsabile↑)
responsabile FK(BIBLIOTECARIO.id_dipendente)
BIBLIOTECARIO (id_dipendente, cognome, nome, stipendio)
LIBRO (codice_isbn, titolo, genere, bibliotecario_referente↑)
bibliotecario_referente FK(BIBLIOTECARIO.id_dipendente)
PRESTITO (utente↑, libro↑)
utente FK(UTENTE.id_utente)
libro FK(LIBRO.codice_isbn)
Popolare le tabelle con i seguenti dati inserendo le chiavi, dove necessario, in modo arbitrario :
Utenti
Marco Bruni, ID 101, cittadinanza Italiana, categoria "Studenti"
Sara Galli, ID 102, cittadinanza Francese, categoria "Docenti"
Paolo Neri, ID 103, cittadinanza Italiana, categoria "Esterni"
Bibliotecari
Dott. Roberto Serra, ID 5001, stipendio 1800€
Dott.ssa Anna Valle, ID 5002, stipendio 1950€
Categorie
Studenti, codice CAT_S, sconto 50%, responsabile Roberto Serra
Docenti, codice CAT_D, sconto 80%, responsabile Anna Valle
Esterni, codice CAT_E, sconto 0%, responsabile Roberto Serra
Libri
Il Nome della Rosa, ISBN LIB01, genere Giallo, referente Roberto Serra
Origine delle Specie, ISBN LIB02, genere Scienza, referente Anna Valle
Divina Commedia, ISBN LIB03, genere Letteratura, referente Roberto Serra
Prestiti
Marco Bruni ha in prestito "Il Nome della Rosa"
Marco Bruni ha in prestito "Divina Commedia"
Sara Galli ha in prestito "Origine delle Specie"
Paolo Neri ha in prestito "Il Nome della Rosa"
Eseguire le seguenti operazioni:
T1 = UTENTE TIMES PRESTITO
T2 = RESTRICT T1 WHERE id_utente = utente
T3 = T2 TIMES LIBRO
T4 = RESTRICT T3 WHERE codice_isbn = libro
A partire dalle tabelle precedentemente popolate e attraverso una successione di operazioni di algebra relazionale, generare la tabella
T5 (id_bibliotecario, cognome_bibl, titolo_libro, genere_libro)
con dati coerenti con quelli già trattati.
Sito: 7ecnologie
Sezione: 11. Base di dati
Capitolo: 98. Esercizi
Paragrafo: 04. Algebra relazionale
Indice dei capitoli: 00. Risorse - 01. Sistema informativo, informazione e dato - 02. Gli archivi - 03. Il progetto informatico - 04. La progettazione concettuale - 05. La progettazione logica - 06. La progettazione fisica - 07. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Organizzazione dei dati - 02. Progettazione concettuale - 03. Modello relazionale - 04. Algebra relazionale - 05. Progettazione logica