Corso di Laurea in Ingegneria dell'Informazione - SAPIENZA Università di Roma - Sede di LT

Corso di Basi di Dati ed Ingegneria del Software - A.A. 2013/2014

Esercitazione Autoguidata su SQL

OBIETTIVI DELL'ESERCITAZIONE:

Utilizzare l'interprete di comandi mysql (client) per accedere al DBMS MySQL 5 (server) per:

INSTALLAZIONE CLIENT E CONNESSIONE

Se siete in laboratorio, operate come indicato nelle precedenti esercitazioni su SQL. Se la cartella basi_di_dati è già presente sul desktop della macchina che state utilizzando non è necessario ricrearla.

1. CONNETTERSI AL SERVER E CREARE UNA BASE DI DATI

Operate come indicato al punto 1 della prima esercitazione di laboratorio su SQL. Per questa esercitazione create la base dati db3_studi, sostituendo ad i il numero assegnatovi per questa esercitazione.

2. CREARE LE TABELLE

Si considerino le seguenti tabelle: 

Si noti che nella tabella MUSICISTI non ci sono due musicisti con lo stesso nome, cognome e data di nascita, e gli attributi nome cognome e data di nascita non possono assumere valori nulli.

Si noti che i campi musicista e strumento formano insieme la chiave primaria della tabella ABILITA. Inoltre, un musicista può suonare più di uno strumento, ma non necessariamente un musicista suona almeno uno strumento (nel caso, ad esempio, di cantanti). 

Si forniscano le istruzioni SQL per creare le tabelle STRUMENTI, MUSICISTI e ABILITA, avendo cura di relizzare in SQL i vincoli indicati.

Nota: Per scrivere le istruzioni SQL, utilizzate un qualsiasi editor di testo (ad esempio Notepad). Una volta scritto il codice salvatelo su un file, ad esempio musicisti.sql, e ponetelo nella cartella corrispondente alla posizione da cui avete lanciato mysql (per questa esercitazione, la cartella "basi_di_dati" creata sul desktop del PC che state usando)  e richiamate lo script cos&eirave creato da mysql  tramite il comando 

mysql> source musicisti.sql

Se il file non si trova direttamente nella cartella indicata, sostituite il nome del file con il path relativo.

3. EFFETTUARE INTERROGAZIONI

Fornite le interrogazioni SQL per rispondere alle seguenti domande: 

  1. Restituire il nome degli strumenti suonati esclusivamente da musicisti di sesso maschile;
  2. Per ogni musicista che suoni strumenti della categoria ‘Ottoni’ restituire il nome, il cognome, la data di nascita e gli strumenti della categoria 'Ottoni' da lui suonati 
  3. Per ogni musicista che suoni strumenti della categoria ‘Ottoni’ restituire il nome, il cognome, la data di nascita e tutti gli strumenti da lui suonati (fornire una soluzione senza utilizzare query annidate, ed una soluzione utilizzando query annidate)
  4. Restituire nome, cognome e data di nascita dei musicisti che suonano almeno 5 strumenti (fornire una soluzione che fa uso di operatori di raggruppamento, ed una soluzione che fa uso di una vista);
  5. Restituire il nome degli strumenti suonati da esattamente due musicisti (fornire una soluzione che fa uso di operatori di raggruppamento, una che fa uso di una vista, ed una che usa una query annidata);
  6. Restituire il nome ed il cognome del musicista più vecchio (o dei musicisti più vecchi, se ci sono musicisti nati nello stesso giorno) -- (fornire una soluzione che fa uso di query annidate, ed una che non utilizza l'annidamento ma si avvale dell'uso di una vista);
  7. Restituire il nome ed il cognome del musicista più vecchio (o dei musicisti più vecchi, se ci sono musicisti nati nello stesso giorno)  fra quelli che suonano almeno uno strumento, e gli strumenti da lui (da loro) suonati -- (fornire una soluzione che fa uso di query annidate, ed una che non utilizza l'annidamento ma si avvale dell'uso di una vista);
  8. Restituire la categoria di strumenti più popolare, cioè la categoria per la quale c'è il numero massimo di musicisti che suonano strumenti di quella categoria (si noti che la categoria più popolare non è necessariamente unica).

Per verificare la correttezza delle proprie soluzioni, popolate la base di dati con il file musicisti-db.sql, e confrontate i risultati ottenuti con quelli contenuti nel file musicisti-3-ris.txt. Per popolare la base di dati, copiate nella cartella "basi_di_dati" posta sul desktop del vostro calcolatore il file musicisti-db.sql, ed eseguite il comando

mysql> source musicisti-db.sql


Soluzioni.