laboratorio1

L'esercitazione ha come obiettivo quello di permettere allo studente di acquisire familiarita'  con il database MySQL. Le operazioni sono guidate e non e' prevista alcuna attivita'  di modellazione. L'esercitazione dovrebbe essere completabile nel tempo a disposizione.

Si presuppone la conoscenza della parte teorica discussa a lezione. Si consiglia di leggere tutto il testo prima di iniziare lo svolgimento. Dubbi su MySQL possono essere risolti riferendosi al MySQL Reference Manual. Nel caso questo non fosse sufficiente, eventuali quesiti possono essere sottoposti ai docenti, presenti in laboratorio.

Operazioni preliminari

* Login con il proprio nome utente e password nel sistema operativo Linux

* Connessione al server MySQL

mysql -h basidati.studenti.math.unipd.it -u[login] -p[pwd]

Se non si specifica la password pwd, viene richiesto il suo inserimento. Login e password sono indicati nel file nella propria home

(ottenuti in seguito all'iscrizione alla lista sul UNIWEB).

* Selezione del database delle esercitazioni

use [login]-ES

dove [login] deve essere sostituita con il vostro login.

* Dal prompt di MySQL

o \h fornisce una schermata di help

o \c annulla il comando corrente

o \! esegue un comando di shell (es. \! ls)

In questo primo laboratorio verra' fornita una basedati pre-esistente e lo scopo e' quello di effettuare delle interrogazioni su di essa.
Il file contenente la base dati è disponibile in fondo a questa pagina (sampledatabase.sql).
 
Il file contente lo schema logico della base dati è disponibile in fondo a questa pagina (ClassicModelsSchema.pdf).
 
Per caricare il database sul vostro MySQL server, dopo essere entrati eseguite

source sampledatabase.sql

Se il file non si trova nella working directory (directory dalla quale avete avviato mysql), dovrete indicarne esplicitamente il path (assoluto o relativo). Es.

source Es1/sampledatabase.sql

source /.../sampledatabase.sql

Il database modella lo scenario di un rivenditore di modellini e contiene dati tipici di un gestionale come quelli riguardanti clienti, prodotti, ordini etc.

Lo schema logico secondo il quale è organizzato il database contiene le seguenti tabelle:

* Customers: informazioni sui clienti
* Products: modelli in vendita 
* ProductLines: lista delle categorie di linee di prodotti
* Orders: informazioni sugli ordini effettuati dai clienti
* OrderDetails: elementi di ciascuna linea che appartengono a ciascun ordine
* Payments: Pagamenti fatti dai clienti attraverso il loro conto
* Employees: Informazioni su tutti i dipendenti comprendente la gerarchia dirigenziale
* Offices: Dati sulle sedi

Come prima cosa si consiglia di familiarizzare con lo schema logico.

Visualizzazione di informazioni sulle tabelle

Per verificare di aver effettivamente creato le tabelle, eseguite l'interrogazione:

show tables;

che mostra le tabelle esistenti nel database.

Mediante

describe table_name;

potete vedere gli attributi della tabella e con

show create table table name;

potete vedere informazioni piu' dettagliate.

Nota: Dopo ogni query deve essere posto un punto e virgola ';' che agisce da terminatore.
Questo vale anche se il file contiene una unica istruzione e se si agisce direttamente da riga di comando.
In mancanza del ';' MySQL restera'  in attesa di altro input. L'intera stringa verra'  quindi elaborata al primo ';' immesso.

3. Effettuare interrogazioni le interrogazioni indicate (insieme al loro output) nel file output-lab1.txt. 

Per scrivere ed eseguire le istruzioni SQL relative alle interrogazioni si puo' procedere come al punto precedente, creando un file query_n.sql per ciascuna query ed eseguendolo

* con source query_n.sql, dal client MySQL

* con mysql -t -h server -u login -ppwd db < query_n.sql, da shell

Dal client MySQL puo' essere anche utile utilizzare il comando

\e

che permette di editare la query corrente (o quella appena eseguita) in un editor a vostra scelta, cosi' come impostato nella variabile d'ambiente EDITOR. Qualora questa non fosse impostata, potete definirla inserendo nel file .bash_profile nella vostra home le righe

EDITOR=emacs

export EDITOR

Se il file non esistesse potete crearlo con il contenuto sopra indicato.


ClassicModelsSchema.pdf
output-lab1-1.txt
sampledatabase.sql
[Query SQL per i punti precedenti]
[...ed alcune spiegate]