UNITA`: interrogazioni semplici (con selezioni, proiezioni e join)

(Modulo didattico: estrazione di informazione)

Il primo passo per acquisire la capacità di formulare delle interrogazioni su uno schema logico consiste nel concentrarsi sui costrutti base del linguaggio DML-SQL. Essi estraggono insiemi di righe ed insiemi di attributi dalle tabelle dello schema, oppure costruiscono nuove tabelle (non necessariamente interpretabili in una relazione!), partendo da quelle inziali.

Prerequisiti
E` obbligatorio conoscere i contenuti del modulo didatticoProgettazione logica.

Obiettivo
Apprendere a progettare interrogazioni semplici, per estrarre informazioni da uno schema logico. Le interrogazioni semplici usano esclusivamente operatori di ridenominazione, selezione, proiezione e prodotto cartesiano che sono primitivi nel linguaggio DML-SQL.

Attivita`
L'unita` si sviluppa simulando esempi di interrogazioni semplici su uno schema logico di riferimento del corso. Le interrogazioni semplici sono espresse direttamente nel dialetto DML-SQL di Oracle 8i.

Contenuto

NOTA: I sorgenti qui forniti possono essere usati nell'istanza di Oracle 8i dipartimentale a patto di sostituire il nome del tablespace USERS, in cui vengono costruite le tabelle, con BDSGR.

Sommario
Una frase DML-SQL standard permette di selezionare un sottoinsieme di campi da una tabella (SELECT), eventualmente ridenominandoli (AS), estrarre solo un sottoinsieme di righe da una tabella (WHERE), creare prodotti cartesiani di piu` tabelle (FROM), creare copie si tabelle (alias). L'uso congiunto di clausole WHERE e creare FROM permette la definizione di tabelle join, che sono sottoinsiemi di prodotti cartesiani di piu` tabelle. Per ragioni di efficienza, DML-SQL interpreta una tabella come multiinsieme: la selezione di tuple di una tabella, i cui attributi non contengono un indentificatore, possono contenere duplicati, che e`, pero`, possibile eliminare esplicitamente (DISTINCT). I multiinsiemi possono essere usati come spazio di ricerca per definire un predicato di selezione delle righe di una tabella (predicato IN nella clausola WHERE). Infine, ogni istanza del valore NULL e` diversa da ogni altra istanza. Per questo DML-SQL ha un predicato apposito per stabilire se un attributo assume valore NULL o meno (IS NULL e IS NOT NULL).

Capitoli del testo
I Capitoli 2 (per la parte di DDL) e il Capitolo 4 (per la parte di DML).

Esercitazione
Esercizi di interrogazioni semplici su alcuni degli schemi di riferimento.