Università degli Studi di Modena e Reggio Emilia
Facoltà di Scienze della Comunicazione e dell’Economia
Corso di Laurea in Comunicazione e Marketing
Anno Accademico 2005/06
Metodi per la
Gestione dei Dati
(lezioni di laboratorio)
Titolare del corso: ing. Stefano SETTI
Lezioni di laboratorio:
gruppo A-K - dott. Fabio RUINI
gruppo M-Z - dott. Alessandro FILISETTI
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
1
Convenzioni per la progettazione fisica
Sebbene non sempre costituiscano dei vincoli insormontabili, esistono alcune
convenzioni che è bene seguire durante la progettazione fisica, per evitare
eventuali problemi con i DB che stiamo creando.
Le convenzioni più diffuse sono le seguenti:
i nomi delle tabelle devono essere al singolare (ad. esempio: “studente” e non “studenti”);
i nomi delle tabelle e dei singoli campi non devono contenere spazi vuoti al loro interno (è
possibile trovare degli escamotage, ad esempio sfruttando il carattere “underscore”:
“data_di_nascita” invece di “data di nascita”);
i nomi delle tabelle e dei singoli campi non devono contenere caratteri alfanumerici
“particolari” (lettere accentate, apostrofi, ecc... Ad esempio: “facolta” e non “facoltà”);
i nomi delle tabelle e dei singoli campi non devono essere eccessivamente
“lunghi” (mediamente, nomi di 10/15 caratteri sono già piuttosto lunghi): utilizzare
abbreviazioni esplicative ogni qualvolta ciò è possibile. Ad esempio: “id_stud” al posto di
“identificativo_univoco_studente”.
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
2
L'esercizio della settimana scorsa
Nelle slides della scorsa lezione abbiamo presentato un esercizio
(esercizio 2 - slide nr. 39), dove veniva richiesto di creare un DB
(relativo ad un’ipotetica segreteria didattica), con le rispettive tabelle.
L’elenco delle tabelle, leggermente modificato al fine di migliorarne
l’efficacia didattica, è riportato qui sotto:
studente
= {matricola, nome, cognome, data_di_nascita,
id_cdl, crediti_conseguiti}
cdl = {id, nome, classe_di_laurea, numero_chiuso,
id_facolta};
facolta = {id, nome, indirizzo, citta, CAP, provincia};
insegnamento = {id, nome, id_cdl, nr_crediti, anno};
appello = {id, id_ins, id_stu, data, voto};
propedeuticita = {id, id_ins, id_ins_prop};
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
3
Creazione “manuale“
delle tabelle (mediante
scrittura del codice
SQL corrispondente)
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
4
Connessione a MySQL – step 1
Una volta entrati nel prompt dei comandi, occorre
spostarsi all’interno della directory nella quale è
stato installato il client.
Se durante l’installazione non sono stati variati i
parametri di default, per accedere alla cartella
dovrebbe essere sufficiente digitare l’istruzione:
C:\>cd \Programmi\EasyPHP1-8\mysql\bin
seguita dalla pressione del tasto INVIO
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
5
Connessione a MySQL – step 2
Per comodità possiamo accedere a MySQL con le
credenziali di “root”:
C:\Programmi\EasyPHP\mysql\bin\>mysql –u root
(il parametro “-u” indica a MySQL che la stringa
seguente rappresenta il nome dell’utente che sta
tentando di collegarsi al DBMS).
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
6
Creazione e selezione
del nuovo Data Base
Per creare un Data Base si utilizza l’istruzione CREATE
già vista nelle precedenti lezioni, ovvero:
mysql> CREATE nome_database;
Nel caso specifico:
mysql> CREATE scuola;
Seguita dal solito comando per selezionare il neonato DB:
mysql> USE scuola;
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
7
Creazione della tabella 'studente'
mysql> CREATE TABLE `studente` (
`matricola` SMALLINT(6) NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(30) NOT NULL,
`cognome` VARCHAR(30) NOT NULL,
`data_di_nascita` DATE NOT NULL,
`id_cdl` TINYINT UNSIGNED NOT NULL,
`crediti_conseguiti` TINYINT UNSIGNED,
PRIMARY KEY (`matricola`)
);
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
8
Creazione della tabella ‘cdl’
mysql> CREATE TABLE `cdl` (
`id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(100) NOT NULL,
`classe_di_laurea` TINYINT UNSIGNED NOT NULL,
`numero_chiuso` BINARY(1) NOT NULL,
`id_facolta` TINYINT UNSIGNED NOT NULL,
PRIMARY KEY (`id`)
);
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
9
Creazione della tabella 'facolta'
mysql> CREATE TABLE `facolta` (
`id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(50) NOT NULL,
`indirizzo` VARCHAR(100) NOT NULL,
`citta` VARCHAR(20) NOT NULL,
`cap` VARCHAR(5) NOT NULL,
`provincia` VARCHAR(4) NOT NULL,
PRIMARY KEY (`id`)
);
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
10
La tabella ‘insegnamento’
mysql> CREATE TABLE `insegnamento` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(50) NOT NULL,
`id_cdl` TINYINT UNSIGNED NOT NULL,
`nr_crediti` TINYINT UNSIGNED NOT NULL,
`anno` TINYINT NOT NULL,
PRIMARY KEY (`id`)
);
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
11
La tabella 'appello'
mysql> CREATE TABLE `appello` (
`id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
`id_ins` SMALLINT UNSIGNED NOT NULL,
`id_stu` SMALLINT UNSIGNED NOT NULL,
`data` DATETIME NOT NULL,
`voto` TINYINT UNSIGNED,
PRIMARY KEY (`id`)
);
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
12
Creazione della tabella
'propedeuticita'
mysql> CREATE TABLE `propedeuticita` (
`id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
`id_ins` SMALLINT NOT NULL,
`id_ins_prop` SMALLINT NOT NULL,
PRIMARY KEY (`id`)
);
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
13
Creazione
“semi-automatica“
delle tabelle
(mediante l’interfaccia
grafica di phpMyAdmin)
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
14
Le stesse tabelle create con
phpMyAdmin (versione 2.2.x)
Per creare le tabelle senza ricorrere alla shell, ma sfruttando l'interfaccia
grafica phpMyAdmin, occorre seguire il seguente procedimento:
alla voce “Crea un nuovo database”, digitare “scuola” e fare clic sul pulsante “Crea”;
alla voce “Crea una nuova tabella nel database scuola”, inserire:
il nome della tabella da creare nella casella “Nome”;
il numero di campi di cui è composta nella casella “Campi”;
fare clic sul pulsante “Esegui”;
nella nuova schermata, compilare le varie caselle di testo e, una volta riempite tutte,
fare clic sul pulsante “Salva”.
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
15
Creazione di un nuovo Data Base
da phpMyAdmin
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
16
Creazione di una nuova tabella
da phpMyAdmin - step 1
Una volte creato il Data Base, alla voce “Crea una nuova
tabella nel database scuola”, inserire:
il nome della tabella da creare nella casella “Nome”;
il numero di campi di cui è composta nella casella
“Campi”;
fare clic sul pulsante “Esegui”;
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
17
Creazione di una nuova tabella
da phpMyAdmin - step 1
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
18
Creazione di una nuova tabella
da phpMyAdmin - step 2
Una volte attribuito il nome alla tabella da creare ed il numero di
campi “attributi della relazione”, compare una schermata nella quale
occorre immettere le caratteristiche relative ad ogni campo*.
Una volta effettuata questa operazione, fare clic sul pulsante
“Salva”.
La vostra tabella comparirà all’interno di “visualizzazione
struttura” e verrà mostrato il codice MySQL creato sulla base dei
parametri introdotti.
*: Attenzione !!!
Nella stessa schermata compare un pulsante “Esegui”. Accertatevi di non
premere accidentalmente questo pulsante, in quanto non salva la tabella ma
inserisce un nuovo campo all’interno della stessa.
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
19
Creazione di una nuova tabella
da phpMyAdmin - step 2
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
20
Creazione di una nuova tabella
da phpMyAdmin - step 2
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
21
Download del file SQL completo
Per velocizzare l'operazione di creazione delle tabelle dell'esempio, invece
che crearle manualmente è possibile scaricare il file 'scuola.sql', disponibile on
line sulla pagina di Dolly relativa al corso, ed eseguirlo:
da shell:
mysql> CREATE scuola;
mysql> USE scuola;
mysql> SOURCE scuola.sql;
(NB: affinché il comando SOURCE possa essere eseguito con questa sintassi, il
file SQL deve trovarsi nella stessa directory dalla quale è stata lanciata la shell
di MySQL. Di default, si tratta di C:\Programmi\EasyPHP1-8\mysql\bin)
da phpMyAdmin (versione 2.2.x):
creare un nuovo database (chiamato “scuola”);
eseguire la query sul database “scuola” (in sequenza: selezione del DB “scuola”,
della scheda “SQL”, del file SQL tramite il pulsante “Sfoglia” e quindi clic sul
pulsante “Esegui”).
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
22
Esecuzione del file SQL da
phpMyAdmin - step 1
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
23
Esecuzione del file SQL da
phpMyAdmin - step 2
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
24
Come creare un file SQL simile a
quello che abbiamo appena utilizzato?
Per creare un file SQL, “eseguibile” come quello che abbiamo
appena utilizzato, è possibile percorrere almeno due strade
differenti:
- scrivere tutto il codice SQL attraverso un editor di
“plain-text” (ad es. il Blocco Note di Windows, il TextEdit di
Mac OS X, KWrite su Linux/KDE, ecc...);
- utilizzare la funzione di esportazione offerta da
phpMyAdmin.
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
25
Esportazione del DB ‘scuola’
attraverso phpMyAdmin - step 1
Per esportare struttura e dati di un Data Base da phpMyAdmin, si può seguire il
percorso qui elencato:
dalla schermata principale del programma, scegliere il DB che si desidera esportare (nel
nostro caso il Data Base “scuola”);
nelle varie schede che compaiono nel frame destro della pagina, scegliere “Esporta”;
nella sezione “Esporta” selezionare tutte le tabelle del DB (link “Seleziona Tutto”) e l’opzione
“SQL”;
nella sezione “Opzioni SQL” selezionare: “Struttura”, “Aggiungi DROP TABLE”, “Aggiunge IF
NOT EXISTS”, “Aggiungi valore AUTO_INCREMENT”, “Usa i backquotes con i nomi delle
tabelle e dei campi”, “Compatibilità dell’esportazione SQL: NONE”, “Dati”, “Inserimenti
completi”, “Inserimenti estesi”, “Usa l’esadecimale per i dati binari”, “Tipo di esportazione:
INSERT”;
nella sezione “Salva con nome...” selezionare: “Salva con nome...”, “Nome file template:
__DB__”, “Compressione: nessuno”.
fare clic sul pulsante “Esegui” e salvare in locale una copia del file SQL risultante.
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
26
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
27
Fine della terza lezione…
Materiale didattico a cura di: Fabio Ruini ([email protected]) e Alessandro Filisetti ([email protected])
Insegnamento: Metodi per la Gestione dei Dati - AA 2005/06 - Corso di Laurea in Comunicazione e Marketing
Facoltà di Scienze della Comunicazione e dell’Economia - Università degli Studi di Modena e Reggio Emilia
28