Esercizi vari di algebra relazionale (prof. Magro Econ. e Comm) e SQL

A. Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le
frecce i vincoli di integrità referenziale),
CLIENTE(numPatente, nome, cognome)
NOLEGGIO(cliente, data, auto) AUTO(targa, marcaAuto, modelloAuto)
TIPO_AUTO(marca, modello, categoria)
1. esprimere in algebra relazionale la seguente interrogazione
“Estrarre nome, e cognome dei clienti che hanno noleggiato auto di categoria
‘Executive’ ”
2. esprimere in SQL la seguente interrogazione
“Estrarre i numeri di patente dei clienti che hanno noleggiato auto di marca ‘Fiayota’ e
modello ‘Yanda’ ”
B. Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le
frecce i vincoli di integrità referenziale),
AUTORE(codice_au, cognome, nome)
FORNITORE(codice_for, ragione_soc, nome)
FORNISCE(fornitore, articolo) ARTICOLO(codice_art, descrizione, tipologia)
1. esprimere in algebra relazionale la seguente interrogazione
“Estrarre i codici dei fornitori che forniscono articoli la cui tipologia è “materia_prima”
oppure “semilavorato””
2. esprimere in SQL la seguente interrogazione
“Estrarre i fornitori (codice_for, ragione_soc, nome) che forniscono articoli la cui
tipologia è “materia_prima” ma non forniscono articoli la cui tipologia è
“prodotto_finito””
C. [7 punti] Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le
chiavi e le frecce i vincoli di integrità referenziale),
AUTORE(codice_au, cognome, nome)
FORNITORE(codice_for, ragione_soc, nome)
FORNISCE(fornitore, articolo) ARTICOLO(codice_art, descrizione, tipologia)
1. esprimere in algebra relazionale la seguente interrogazione
“Estrarre i codici dei fornitori che forniscono articoli la cui tipologia è “materia_prima”
oppure “semilavorato””
2. esprimere in SQL la seguente interrogazione
“Estrarre i fornitori (codice_for, ragione_soc, nome) che forniscono articoli la cui
tipologia è “materia_prima” ma non forniscono articoli la cui tipologia è
“prodotto_finito””
Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le
frecce i vincoli di integrità referenziale),
AUTORE(codice_au, cognome, nome)
LIBRO_AUTORE(libro, autore) LIBRO(codice_lib, titolo, editore, anno_ed)
COPIA(cod_libro, num_copia, collocazione)
3. esprimere in algebra relazionale la seguente interrogazione:
“Estrarre i codici dei libri per i quali non sono presenti copie”
4. esprimere in SQL la seguente interrogazione:
“Estrarre i codici dei libri aventi come coautori Massimo Carlotto e Francesco Abate
(non è rilevante che abbiano o meno altri coautori)”
Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e
le frecce i vincoli di integrità referenziale),
CONDOMINIO(nome, indirizzo, spesa_annua_prevista) APPARTAMENTO(codice, condominio, millesimi, quota_annua_spese) 5. esprimere in algebra relazionale la seguente interrogazione
“Estrarre nome e indirizzo di tutti i proprietari di appartamenti che si trovano in
condomini la cui spesa annua prevista supera i 50.000 euro”
6. esprimere in SQL la seguente interrogazione
“Estrarre il codice fiscale dei proprietari che posseggono qualche appartamento sia nel
condominio di nome ‘Diamante’ sia in quello di nome ‘Platino’”
Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le frecce i vincoli di integrità referenziale), <> FORNITORE(codice_for, ragione_soc, nome) FORNISCE(fornitore, articolo)
ARTICOLO(codice_art, descrizione, tipologia)
<>esprimere in algebra relazionale la seguente interrogazione: “Estrarre i codici dei fornitori che forniscono articoli la cui tipologia è “materia_prima” oppure “semilavorato”” <>2. esprimere in SQL la seguente interrogazione: “Estrarre i fornitori (codice_for, ragione_soc, nome) che forniscono articoli la cui tipologia è “materia_prima” ma non forniscono articoli la cui tipologia è “prodotto_finito”” D. Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le
frecce i vincoli di integrità referenziale),
DIPENDENTI(codiceDip, cognome, nome)
PROGETTI(codiceProg, budgetProg, responsabile)
SOTTOPROGETTI(codiceSottoprog, progetto, budgetSottoprog)
1. esprimere in algebra relazionale la seguente interrogazione:
“Estrarre il codice dei progetti che si articolano in almeno un sottoprogetto”
2. esprimere in SQL la seguente interrogazione:
“Estrarre il codice, il nome e il cognome dei dipendenti che sono responsabili di progetti
il cui budget supera i 150000 euro”
E. Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le
frecce i vincoli di integrità referenziale),
DIPENDENTI(codiceDip, cognome, nome)
PROGETTI(codiceProg, budgetProg, responsabile)
SOTTOPROGETTI(codiceSottoprog, progetto, budgetSottoprog)
1. esprimere in algebra relazionale la seguente interrogazione
“estrarre il codice di tutti i dipendenti responsabili di qualche progetto il cui budget di
progetto supera i 150000 euro e che si articola in almeno un sottoprogetto”
2. esprimere in SQL la seguente interrogazione
“estrarre il codice, il cognome e il nome di tutti i dipendenti che NON sono responsabili
di alcun progetto ”
F. Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le
frecce i vincoli di integrità referenziale),
AUTORE(codice_au, cognome, nome)
CORSO(codice, nomeC, num_crediti)
LEZIONE(corso, data, aula) AULA(nomeA, ubicazione) 1. esprimere in algebra relazionale la seguente interrogazione
“Estrarre il nome e l’ubicazione delle aule che ospitano lezioni di corsi con più di 6
crediti ”
2. esprimere in SQL la seguente interrogazione
“Estrarre i codici dei corsi di cui si tengono lezioni sia nella sede della Facoltà
(ubicazione = ‘Facoltà’) sia a Palazzo del Lavoro (ubicazione = ‘Palazzo_del_Lavoro’)”
G. Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le
frecce i vincoli di integrità referenziale),
APPELLO(corso, data, luogo) ISCRIZIONE(corso, data, studente)
STUDENTE(matricola, nome) 1. esprimere in algebra relazionale la seguente interrogazione
“estrarre i nomi di tutti gli studenti iscritti all’appello di ICTII del 29/06/07”
2. esprimere in SQL la seguente interrogazione
“estrarre le matricole degli studenti iscritti ad un qualche appello il cui luogo e` la
Facoltà ”
Dato il seguente frammento di schema relazionale (in cui le sottolineature indicano le chiavi e le
frecce i vincoli di integrità referenziale),
AUTORE(codice_au, cognome, nome)
FORNITORE(codice_for, ragione_soc, nome)
FORNISCE(fornitore, articolo) ARTICOLO(codice_art, descrizione, materia prima, tipologia)
1. esprimere in algebra relazionale la seguente interrogazione
“Estrarre i fornitori (codice_for, ragione_soc, nome) che forniscono articoli la cui
tipologia è “materia_prima” ”
2. esprimere in SQL la seguente interrogazione
“Estrarre i fornitori (codice_for, ragione_soc, nome) che forniscono sia articoli la cui
tipologia è “materia_prima” sia articoli la cui tipologia è “prodotto_finito” ”