Quantificatori, operatori insiemistici

Quantificatori, operatori insiemistici
Creare istanze del database Azienda, in modo che le seguenti queries producano,
a seconda dell'istanza considerata, o risposte senza elementi, o con almeno un elemento:
A1: Trovare i Nomi e i Cognomi degli impiegati che non sono responsabili di dipartimento
e che non sono assegnati a progetti
A2: Elencare i Nomi e i Cognomi dei responsabili di cui tutti i subalterni diretti lavorano
in via Jervis'
A3: Elencare le matricole dei responsabili che non hanno subalterni diretti
che lavorano a "Pozzuoli"
Scrivere varie versioni di A1, A2 ed A3, sfruttando combinazioni diversi di operatori
adatti dell'SQL.
Quantificatori, operatori insiemistici
Creare istanze del database Magazzino, in modo che le seguenti queries producano,
a seconda dell'istanza considerata, o risposte senza elementi, o con almeno un elemento:
M1: Trovare i nomi dei prodotti che nessun dipartimento al II piano vende.
La query:
SELECT DISTINCT Prodotto.Tipo
FROM
Dipartimento, Prodotto, Vendita
WHERE Prodotto.Matricola = Vendita.Prodotto
AND Dipartimento.Nome = Vendita.Dipartimento
AND Dipartimento.Piano != 2;
risolve correttamente M1?
Scrivere M1 in almeno due modi diversi.
M2: Elencare i prodotti venduti da tutti i dipartimenti al II piano.
Esiste una versione di M2 in cui si sfrutta il predicato “!= ALL”,
al posto di NOT EXISTS?
M3:Trovare i dipartimenti in cui ogni impiegato guadagna meno del responsabile diretto