Da un lato esso permette l'annidamento delle interrogazioni; questo si traduce in una maggiore facilita` di soluzione, dato che annidare queries equivale a scomporre le difficolta` insite nella soluzione di un problema iniziale.
Dall'altro non sappiamo ancora come ricavare interrogazioni che, per esempio, producano dati su cui valgano proprieta` logiche, espresse con predicati quantificati universalmente; sempre per esempio, si pensi al caso in cui si vogliano conoscere i nomi di studenti che hanno sostenuto tutti gli esami, in una applicazione di gestione delle informazioni su studenti.
Prerequisiti
E` obbligatorio conoscere i contenuti dell'unita` didatticaOperatori
aggregati/raggruppamento.
Obiettivo
Apprendere a progettare interrogazioni le cui proprieta` possano essere
descritte con quantificatori universali, esistenzaili o con operazioni
insiemistiche.
Attivita`
L'unita` si sviluppa tramite esempi di progettazione di interrogazioni
che richiedono l'uso di operatori insiemistici e logici, per ricavare informazioni
sullo schema logico di riferimento "Azienda".
Contenuto
Sommario
E` possibile annidare le queries:, ovviamente rispettando regole
sintattiche precise. Una subquery serve a calcolare risultati parziali
e semplificare un problema iniziale. In certi casi, come mostrato con un
esempio, e` possibile sfruttare queries annidate per ottenere una maggiore
efficienza.
Inoltre, DML-SQL fornisce primitive che facilitano l'interpretazione delle tabelle sia come insiemi estensionali, cioe` come elenco di n-uple, sia come insiemi intensionali, cioe` definiti tramite predicato che le n-uple soddifano. Operatori per la gestione di insiemi estensionali sono (NOT) IN, (=,!=) ALL, MINUS, INTERSECT, UNION; quelli per la manipolazione di insiemi intensionlai e` (NOT) EXISTS.
Capitoli del testo
Del capitolo 4, paragrafi 4.3 e 4.4.
Esercitazione
Lucidi che propongono
esercizi.