In Windows, produrre e gestire database con Microsoft Access, almeno per alcune
delle operazione fondamentali, è molto semplice ed immediato. Se si è installato Office,
basta, ad esempio un po' di esperienza con i fogli di Excel per poterli trasformare in
tabelle di Access e inserire tali tabelle in un file *.mdb
. Usando
pagine ASP e gli
oggetti ADO si può poi accedere a questi database anche
con un browser.
Se la pagina ASP risiede in un personal computer in cui Windows sia dotato di IIS,
usando come root della URL localhost
, il browser può visualizzare adeguatamente
tali pagine.
Ma non tutti i sistemi Windows sono dotati di IIS e comunque il software Windows, per quanto molto diffuso, è costoso, non è l'unico esistente e non è detto che sia il migliore. Può quindi essere necessario, o anche solo utile, usare altro software, più efficiente, più portabile e magari di installazione e uso gratuito.
Una valida alternativa per quanto riguarda la gestione dei database è fornita da MySql. Questo software è gratuito, di abbastanza semplice installazione sulla maggior parte dei sistemi operativi e ormai costituisce uno standard mondiale.
L'uso di MySql in Windows non richiede l'installazione di IIS. Il il suo server 'naturale' è Apache, anche esso gratuito, che può essere installato facilmente anche nella 'Home Edition' di Windows.
L'uso di MySql nelle pagine Web richiede l'uso di istruzioni in linguaggio PHP, noto ormai a tutti i server della rete. Chi abbia una discreta familiarità con il Javascript non farà molta fatica ad impratichirsi almeno dei fondamenti di tale linguaggio.
Volendo passare dal software Windows al software PAM (PHP, Apache, MySql), bisogna convertire le tabelle del database dal formato Access (*.mdb) al formato MySql. Esistono numerosissime applicazioni che permettono di realizzare automaticamente questa 'migrazione', che tuttavia, dopo aver installato MySql, almeno nei casi più semplici, si può realizzare usando come intermediatori tra i due ambienti files di testo in formato CSV (Comma Separated Values: Valori separati da virgola). Questi file, connotati dall'estensione *.csv, possono essere tranquillamente letti con Notepad e permettono di controllare direttamente la correttezza delle 'traduzioni'.
Si supponga di avere un database di Access denominato Classe.mdb
contenente due tabelle
Studenti
e Professori
. La tabella Studenti
contiene i seguenti campi:
Cognome
, Nome
, Sesso
; La tabella Professori
contiene i seguenti campi:
Cognome
, Nome
, Materia
.
Per esportare questo semplice database in formato MySql si può procedere nel seguente modo.
Creazione di un nuovo database MySql.
Supponendo di mantenere lo stesso nome al database, nella sezione centrale (intestata SQL File 1) scrivere:
CREATE SCHEMA Classe
e cliccare l'icona con il fulmine provocando l'esecuzione dell'istruzione (query).
Esportazione di ogni tabella di Classe.mdb
in un file di testo *.csv.
La produzione di un file *.csv
si ottiene in Access selezionando una tabella, usando l'opzione
File→Esporta e selezionando, nel campo Tipo File il formato File di Testo (*.csv).
Alla richiesta di quale segno usare
per separare i campi (virgola o punto e virgola) scegliere virgola o punto e virgola a seconda
dei segni di interpunzione usati nei campi di testo (bisogna evitare confusioni tra delimitatori di campo e
segni di interpunzione).
Accertarsi che non vengano riportati i nomi dei campi.
Accertarsi che i dati di tipo stringa non siano delimitati da apici o virgolette.
Salvare il file Studenti.csv
indicando il seguente pathname
C:\\Documents and Setting\All Users\Dati Applicazioni\MySql\MySql Server 5.5\data\Classe\Studenti.csv.
Analogamente, salvare il file Professori.csv
con il seguente pathname
C:\\Documents and Setting\All Users\Dati Applicazioni\MySql\MySql Server 5.5\data\Classe\Professori.csv.
Per ognuna delle tabelle del database di Access, nel nuovo 'schema' creare una corrispondente tabella nel database MySql dichiarando nome e tipo dei suoi campi.
Inizializzare i campi di ognuna di queste tabelle con nomi e tipi di dati il più possibile aderenti a quelli usati nella corrispondente tabella di Access.
I principali tipi di dati utilizzabili sono
Tipo | Uso | valore |
---|---|---|
TINYINT | intero in 1 byte | con segno: da -128 a 127; senza da 0 a 255. |
BOOLEAN | 1 byte | 0: FALSE; 1 (o qualunque altro valore non nullo): TRUE |
SMALLINT | intero in 2 bytes | con segno: da -32768 a 32767; senza: da 0 a 65535 |
MEDIUMINT | intero in 3 bytes | con segno: da -8388608 a 8388607; senza: da 0 a 16777215 |
INT | intero in 4 bytes | con segno: da -2147483648 a 2147483647; senza: da 0 a 4294967295 |
BIGINT | intero in 8 bytes | con segno: da -9223372036854775808 a 9223372036854775807; senza da 0 a 18446744073709551615 |
FLOAT[(p)] | reale in precisione semplice | (facoltativo) p: precisione: se p>24 equivale a DOUBLE |
DOUBLE[(M,D)] | reale in precisione doppia | (facoltativi) M: numero totale di cifre; D: numero di cifre decimali (D<M) |
DECIMAL[(M,D)] | reale come stringa | M e D come sopra |
DATE | data | il formato è ‘YYYY-MM-DD’ |
DATETIME | data e orario | il formato è ‘YYYY-MM-DD HH:MM:SS’ |
TIME | orario | formato ‘HH:MM:SS’ |
YEAR | anno (2 o 4 cifre: default:4) | |
CHAR(m) | stringa di m caratteri | 1≤m≤255 |
VARCHAR(m) | stringa di lunghezza variabile (m massima lunghezza) | 1≤m≤255 |
TINYTEXT | testo | massimo 255 caratteri |
TEXT[(m)] | testo | massimo 65535 caratteri |
MEDIUMTEXT | testo | massimo 16777215 caratteri |
LONGTEXT | testo | massimo 4294967295 caratteri |
Esempio:
CREATE TABLE Studenti(Cognome VARCHAR(20), Nome VARCHAR(20), Sesso CHAR(1))
CREATE TABLE Professori(Cognome VARCHAR(20), Nome VARCHAR(20), Materia VARCHAR(20))
Cliccare il fulmine.
Ora, usando due queries di MySql, è possibile popolare le tabelle così inizializzate
ricavando i dati dai file *.csv
precedentemente generati.
Le queries possono essere le seguenti
LOAD DATA INFILE "Studenti.csv"
INTO TABLE Studenti
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n"
LOAD DATA INFILE "Professori.csv"
INTO TABLE Professori
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n"
Se si ottiene un messaggio di errore, leggerlo attentamente e provvedere agli aggiustamenti necessari. Può essere necessario:
*.csv
Se una tabella di MySql è ben inizializzata ma mal popolata, è possibile svuotarla senza distruggerla usando la query
TRUNCATE nome_tabella
e poi tentare di ripopolarla dal file nome_tabella.csv riusando una query simile a quelle proposte.
Per controllare se le tabelle funzionano a dovere, provare le seguenti queries, ripulendo ogni volta lo spazio di editing e di output di Workbench:
SELECT * FROM Studenti
SELECT * FROM Studenti ORDER BY Cognome
SELECT * FROM Professori
SELECT * FROM Studenti WHERE Sesso="F"
SELECT * FROM Studenti WHERE Cognome LIKE "B%"
SELECT * FROM Professori WHERE Materia="Scienze"
Se si vuole invece convertire una tabella di MySql in una tabella di un database in
formato Microsoft Access, si può seguire la procedura inversa a quella illustrata nel
paragrafo precedente, sempre con l'intermediazione di un file *.csv
.
In Workbench scrivere la query
SELECT * FROM nome_tabella;
Se si vuole la tabella ordinata secondo i valori si un particolare campo si può completare la query cosi:
SELECT * FROM nome_tabella ORDER BY nome_campo;
Eseguire la query ottenendo un recordset coincidente con il contenuto della tabella.
Export
,
produrre il file in formato *.csv
nome_tabella.csv in una opportuna cartella del proprio sistema.
Aprire con Notepad questo file e cancellare la prima riga che contiene i nomi dei campi. Se si intende mantenere questi nomi
anche nella tabella di Access da produrre, prenderne nota.
Alla schermata successiva, lasciare come delimitatore di campo la virgola.
Cliccare Avanzate e nella schermata che appare scegliere in Tabella codici Unicode (UTF-8). Questo particolare è importante ne non si vogliono confusioni sui caratteri accentati. Confermare e proseguire.
ultima revisione: 25/06/2012