In una società estremamente informatizzata, in cui i dati giocano un ruolo chiave, i database hanno acquisito una centralità tale che ne ha fatto uno strumento di lavoro indispensabile. Qualsiasi cosa è rapportata ad un database. Vogliamo un sito per la nostra azienda? Ce ne serve uno. Dobbiamo gestire la contabilità della società o un basket di potenziali clienti? Ci serve un database. Finora la soluzione più semplice, soprattutto per le piccole e medio imprese, quindi quelle con un flusso di dati non enorme e con disponibilità economiche limitate, è stata quella di ricorrere a Microsoft Access , che si basa sulla logica di memorizzare tutte le informazioni in un unico file all’interno di un singolo computer. È un metodo che comporta non poche difficoltà. Innanzitutto ha un costo, che, seppur abbordabile e non paragonabile ad altri DBMS, rimane sempre tale. Poi, se vogliamo leggere un database su un determinato computer è necessario installare su di esso il programma, acquistando la licenza. Inoltre, una sola persona per volta può accedere al database ed è necessario avere sempre il file dietro, e un PC con il programma installato, per potervi accedere. Fermo restando che sono difficoltà non insormontabili e che resta comunque una strada valida, riteniamo che la soluzione migliore sia quella dei database server, che altro non sono che cloud server sui quali è già installato un sistema di gestione di database. In tal caso il riferimento assoluto è MySQL , con la piattaforma web PHPMyAdmin .
I motivi sono tanti, a partire dal fatto che sono open source e gratuiti. Con MySQL possiamo installare un programma su un unico computer al solo scopo di registrare il database, che sarà poi totalmente gestibile da una comoda e completa interfaccia web: possiamo leggere e modificare i dati utilizzando un semplice browser, senza installare altri programmi. Con la notevole conseguenza che è possibile lavorare sul database da qualsiasi dispositivo, anche uno smartphone per esempio. Inoltre, un numero potenzialmente infinito di persone può accedere in lettura o scrittura alle informazioni contenute. Chiaramente ciò non comporta che vi sia un accesso indiscriminato ai dati: si possono creare diversi utenti, ciascuno protetto da password e con i propri privilegi. In tal modo possiamo decidere chi può accedere per modificare, chi può accedere solo in lettura e a chi inibire totalmente l’accesso.
Soluzioni alternative
Nal caso in cui, per vari motivi e valutate tutte le implicazioni, si voglia comunque mantenere il database su un unico file, possiamo considerare delle alternative ad Access che consentono in ogni caso di risparmiare in quanto open source. È il caso di LibreOffice Base , un programma molto simile a quello di Microsoft nell’aspetto, e tramite il quale è possibile accedere a qualsiasi tipo di database senza dover pagare le licenze per tutti i computer degli impiegati. Inoltre è un software molto utile anche per convertire diversi formati di database nella “lingua franca”: CSV . In tal modo riusciamo a recuperare anche i vecchi database che ormai risultano inutilizzabili perché i programmi per la loro gestione non si trovano più in commercio, oppure di trasformare un database in un foglio di calcolo. Tutto questo in modo gratuito, perché possiamo davvero risparmiare tanto aprendoci al mondo degli strumenti a costo zero.
CSV: cos’è il Comma Separated Value
Esistono differenti tipi di formati di database, e spesso passare da uno all’altro può essere fonte di problemi. Ma in fondo ogni database è una collezione di tabelle, motivo per cui può essere tradotto nel formato decisamente più diffuso, il CSV (Comma-Separated Values). Si tratta di un formato di file utilizzato per l’importazione ed esportazione di una tabella di dati in fogli elettronici o database. Sostanzialmente è un semplice file di testo. In questo formato, ogni riga della tabella (o record della base dati) è rappresentata da una linea di testo, che a sua volta è divisa in campi (le singole colonne) attraverso un apposito carattere separatore. Il formato CSV non specifica una codifica di caratteri, né la convenzione per indicare il fine linea, né il carattere da usare come separatore tra campi (normalmente è una virgola nel mondo anglosassone, punto e virgola in Italia a causa dell’uso della virgola nei numeri decimali) e nemmeno convenzioni per rappresentare date o numeri (tutti i valori sono considerati come semplici stringhe di testo). Questi dettagli possono dover essere specificati dall’utente tutte le volte che si importano o esportano dati in formato CSV in un programma come ad esempio un foglio elettronico.
Come funziona PHPMyAdmin
L’applicazione web phpMyAdmin è un sistema che consente di gestire un database MySQL attraverso un qualsiasi browser. Consente la creazione di un database da zero, la creazione di nuove tabelle e le operazioni che permettono di ottimizzarle. È possibile quindi inserire nuovi utenti, creare e modificare password e gestire gli eventuali permessi che l’utente ha sul singolo database. In sostanza si tratta di un insieme di pagine PHP che non necessitano di installazione. È sufficiente scaricare il software e decomprimerlo all’interno di una cartella situata nel sito web. Nei server Linux generalmente è disponibile un sistema di gestione di file compressi ( .zip oppure .tar.gz ) che rende particolarmente semplice l’installazione dell’applicazione. Anche in altri sistemi operativi, come Microsoft Windows, in caso di installazione in locale l’operazione non risulta complessa. Considerando che la parte di solito più difficile è quella di installare e configurare il server web, in alternativa sono disponibili anche software preconfezionati come XAMPP che consentono di ottenere lo stesso risultato perché comprendono un intero ambiente di sviluppo e quindi anche phpMyAdmin.
Ambiente di sviluppo PHP tutto incluso
XAMPP è un acronimo, dove ogni lettera ha un significato preciso: X – Cross-Platform, A – Apache, M – MySQL, P – PHP, P – Perl . È una semplice e leggera distribuzione Apache che rende estremamente semplice a sviluppatori e neofiti creare web server. Tutto ciò di cui si ha bisogno è incluso in un unico, comodo pacchetto concepito per un’installazione e un utilizzo intuitivi. XAMPP è anche multipiattaforma (cross-platform). Ciò significa che funziona su Linux, Mac e Windows. Sul sito ApacheFriends.org si trovano tutti i rispettivi pacchetti . Inutile sottolineare che XAMPP è open source. È una raccolta di software gratuiti (paragonabile a una distribuzione Linux), quindi totalmente gratuita e la cui riproduzione è libera. Dato che molti ambienti server usano gli stessi componenti, XAMPP è utile in quanto rende semplice il passaggio da un sistema locale di test a un server web vero e proprio. I principali componenti sono innanzitutto Apache , che è il web server application che elabora e risponde alle richieste restituendo i contenuti verso il computer richiedente (client). Poi MySQL di cui abbiamo già discusso. Quindi PHP , acronimo per Hypertext Preprocessor. É un linguaggio di script lato server che è utilizzato in tutto il mondo per realizzare siti di ogni genere. PHP è il linguaggio con il quale sono scritti Joomla, Drupal e WordPress. Relativamente semplice da imparare, lavora perfettamente con MySQL; per questo rappresenta una scelta fatta da migliaia di sviluppatori. Infine Perl , che è un linguaggio di programmazione molto potente, ricco di funzionalità, con oltre 27 anni di sviluppo.
Nelle pagine che seguono vedremo gli aspetti pratici di quanto illustrato. Dall’importazione di un DB Microsoft in LibreOffice, all’esportazione in CSV, fino ad arrivare alla creazione di un server con XAMPP .
Possiamo cominciare aprendo LibreOffice Base (o qualsiasi altro programma di gestione database gratuito). In Base, scegliamo l’opzione Collega ad un database esistente e selezioniamo dall’apposito menu a tendina la voce ODBC . Tutti i principali programmi di gestione database possono lavorare con ODBC.
Dobbiamo stabilire la sorgente dei dati: clicchiamo su Sfoglia . Appariranno i vari database finora connessi al computer come sorgenti dati ODBC. Se è la prima volta che utilizziamo questo metodo, probabilmente saranno presenti soltanto i database di esempio. Dovremo aggiungere quello che ci interessa cliccando su Gestisci .
Il pulsante che fa al caso nostro è Aggiungi : cliccandolo viene avviata una comoda procedura guidata. Creando una nuova sorgente dati, ci verrà innanzitutto chiesto di quale tipologia si tratti. La scelta corretta è Microsoft Access Driver (mdb) . Per proseguire con il wizard premiamo il pulsante Fine .
Diamo alla risorsa ODBC che stiamo creando un nome facile da ricordare (possiamo inserire anche una descrizione). Selezioniamo, poi, il database MDB su cui vogliamo lavorare: l’interfaccia del driver ODBC è poco intuitiva, ma è stata realizzata da Microsoft proprio per essere compatibile con i sistemi più vecchi.
A questo punto, la nuova sorgente dati che abbiamo appena creato dovrebbe apparire nell’elenco di quelle disponibili sul sistema: d’ora in poi sarà sempre presente, quindi se in futuro volessimo nuovamente accedere a tale file MDB, non dovremmo ripetere tutta la procedura. Intanto, premiamo il tasto OK .
L’ultimo passo consiste nel decidere se registrare il database nel formato ODB, che è gratuito e non necessita di una licenza di Access, in modo da poter aprire il file anche su altri computer senza necessità di utilizzare ODBC. Cliccando su Fine potremo salvare il file, che verrà poi automaticamente aperto.
Apriamo il nostro database in Access , visualizzando l’elenco delle tabelle. Selezioniamo quella che ci interessa, clicchiamo su di essa col tasto destro del mouse e scegliamo la voce di menu Esporta . La procedura è da ripetere per tutte le tabelle del database, non possiamo esportarle tutte insieme.
Ora facciamo attenzione al formato da scegliere: la dicitura potrebbe essere differente a seconda della versione di Access installata sul computer. Ad ogni modo, è fondamentale che sia indicata l’estensione .csv . Per esempio, si può scegliere la voce Textfiles (.txt.csv.tab.asc) oppure Valori separati da virgola (.csv) .
Prima di salvare il file CSV scelto, Access ci chiede quale simbolo vogliamo utilizzare per separare le colonne della tabella: l’opzione più comune è la virgola, che però può essere ambigua perché potrebbe fare parte del testo. Quindi conviene usare la pipe. Alcuni programmi, tuttavia, riconoscono soltanto la virgola.
Come detto, il formato CSV può essere aperto con qualsiasi programma (Excel ha problemi a riconoscere i CSV se viene utilizzata la pipe invece della virgola). In LibreOffice Calc , molto comodo se vogliamo eseguire operazioni da foglio di calcolo sul database, basta selezionare il file CSV tramite il menu File/Apri .
La comodità di Calc è la possibilità di visualizzare un’anteprima del foglio di calcolo generato dal file CSV durante l’importazione. In questo modo, non possiamo sbagliare: quando indichiamo il separatore di colonna (per esempio la virgola) ci rendiamo subito conto se abbiamo sbagliato grazie all’anteprima.
Cliccando su OK , il file CSV viene importato come foglio di calcolo. Al momento, però, tutte le colonne sono considerate come testo: se vogliamo lavorare sulle date e sui numeri dobbiamo impostare correttamente il formato delle varie colonne selezionandole e cliccando su Formato/Celle .
Oggi, mettere in piedi un server è un’operazione semplice: basta scaricare un programma e installarlo. Il programma da scaricare si chiama XAMPP . Scegliamo XAMPP per Windows : ci verrà automaticamente fornita l’ultima versione disponibile.
Il file che abbiamo scaricato è un installer automatico, dobbiamo seguire la procedura guidata, accettando la licenza d’uso. Possiamo decidere di non installare alcuni componenti del server ma, visto che non occupa molto spazio, conviene installare tutto per essere certi di non tralasciare parti importanti.
Dobbiamo scegliere la giusta collocazione per i file del server: in teoria una cartella vale l’altra, ma è meglio posizionarlo in un luogo facilmente raggiungibile, ad esempio C:\sitoxampp . Sarà infatti in questa cartella che si troveranno tutti i file di configurazione del server: in futuro potrebbero servirci.
Definita la cartella di installazione la procedura avanza da sola, richiedendo alcuni minuti per il completamento. Se tutto va bene, alla fine dovremmo ritrovarci con l’applicazione XAMPP Control Panel nel menu dei programmi di Windows. Basta avviare quest’app per poter gestire il nostro nuovo server.
In genere non occorre alcuna configurazione: i server sono già preconfigurati. A noi interessano il server Apache e quello MySQL : per avviarli è sufficiente cliccare sul pulsante Start affiancato ai relativi nomi. La prima volta, Windows ci chiederà la conferma (obbligatoria) dell’accesso alla rete.
Se i server sono avviati correttamente, vicino al relativo nome compare il numero della porta: per Apache le porte predefinite sono 80 e 443, mentre per MySQL la porta è la 3306. Inoltre, se apriamo un browser web scrivendo http://localhost nella barra dell’indirizzo, appare il messaggio di benvenuto di XAMPP.
Prima di cominciare, verifichiamo di avere installato il driver ODBC di MySQL: si può scaricare gratuitamente da qui . Tra i vari file disponibili, scegliamo la versione MSI , non quella ZIP. Terminato il download, installiamo il programma con la procedura guidata.
Ora, da Access , procediamo all’esportazione di una tabella così come abbiamo fatto per generare un file CSV. In pratica, possiamo selezionare una tabella e fare clic destro, scegliendo Esporta . Stavolta, però, non sceglieremo il tipo di file CSV: scorreremo la lista fino alla voce Database ODBC() . Non serve alcun nome.
Dobbiamo aggiungere una nuova sorgente dati ODBC, cliccando su Nuova . Dalla finestra che appare scegliamo l’opzione Origine dati utente : è visualizzata la lista dei driver disponibili. Il tipo di driver che ci interessa è MySQL ODBC 5.3 Unicode Driver . Servono i dettagli del server MySQL a cui connetterci.
Se MySQL è sullo stesso computer su cui lavoriamo, il nome del server è localhost . In caso contrario, il suo indirizzo IP. La porta è 3306 , il nome utente root (senza password) e possiamo indicare come Data Source Name un nome qualsiasi. Dal pulsante Test , appare l’elenco dei database: scegliamo quello interessato.
Da questa finestra non ne possiamo creare uno, quindi dobbiamo averlo fatto prima. Possiamo anche utilizzare uno dei database preesistenti, e poi spostare la tabella con comodità grazie a PHPMyAdmin. Intanto, se tutto è andato bene, la nuova sorgente di dati appare nell’elenco: clicchiamo OK .
ODBC, di cosa si tratta?
ODBC è l’acronimo di Open Database Connectivity ed è una API standard per la connessione ai DBMS. Questa API è indipendente dai linguaggi di programmazione dai sistemi di database e dal sistema operativo. L’API è un insieme di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per un determinato compito. Le API evitano ai programmatori di scrivere tutte le funzioni dal nulla. In aggiunta al software ODBC, c’è bisogno di un driver specifico per poter accedere ad ogni diverso tipo di DBMS. ODBC permette ai programmi che lo usano di inviare ai database stringhe SQL senza che ci sia bisogno di conoscerne le API proprietarie. Genera automaticamente richieste che il sistema di database utilizzato sia in grado di capire. Questo è un fattore molto positivo in quanto i programmi possono connettersi a diversi tipi di database utilizzando più o meno lo stesso codice.
Abbiamo detto che CSV è la “lingua franca” dei database, ed è molto comodo per archivi di grandi dimensioni. Se però vogliamo gestire le tabelle senza complicarci troppo le cose, conviene comunque importare i file CSV in MySQL, grazie all’interfaccia di PHPMyAdmin. È anche un’ottima soluzione per convertire un vecchio database Access in MySQL, ottenendo tutti i vantaggi di cui abbiamo già parlato. La semplicità di CSV fa sì che non vi siano particolari controindicazioni o intoppi. Ricordiamo, però, che appena la tabella sarà importata in MySQL, ogni campo verrà considerato come testo semplice, quindi dovremo modificare la struttura della tabella stessa da PHPMyAdmin specificando quali campi debbano essere testo, numero o data. E, soprattutto, sarà necessario indicare la colonna che costituirà la chiave primaria della tabella.
Prima di tutto, selezioniamo un database dall’interfaccia web di PHPMyAdmin , oppure creiamone uno nuovo cliccando sulla voce New nell’elenco dei database. Volendo, possiamo anche selezionare una tabella già esistente, in modo che i dati importati vengano inseriti in essa invece che in una nuova.
Cliccando sulla scheda Importa , nella parte alta della pagina web, si apre l’interfaccia di caricamento di un file. Cliccando sul pulsante Sfoglia possiamo scegliere il file CSV che vogliamo caricare. Il formato è riconosciuto automaticamente come CSV. Indichiamo anche il simbolo con cui terminano i campi.
Cliccando sul pulsante Esegui a fine pagina, la procedura di importazione dovrebbe cominciare. Entro pochi minuti, la tabella comparirà nell’elenco e potremo visualizzarla. Ci renderemo conto, però, che per il momento non è modificabile: è possibile soltanto leggere i vari record, ma non cancellarli o modificarli.
Dobbiamo stabilire una chiave primaria, cioè dobbiamo dire a MySQL quale colonna deve utilizzare come identificativo univoco dei record. Nella colonna deve essere presente un numero o un testo che non si ripeta mai. Clicchiamo sulla scheda Struttura e, selezionata la colonna giusta, premiamo il link Primaria .
Per sicurezza, il sistema ci chiede la conferma: clicchiamo su OK per procedere. Se la colonna scelta contiene ripetizioni, ci verrà presentato un messaggio di errore. Se è andato tutto bene, tornando a visualizzare la tabella noteremo che ora appaiono i link per la modifica di ogni singolo record.
Costi di stoccaggio
Esistono due modi per importare un database in MySQL: utilizzare ODBC, oppure i file CSV. Nel caso di ODBC, è ovviamente necessario disporre del driver ODBC per il database su cui vogliamo lavorare. Nel caso della tabella CSV, invece, non c’è alcun problema: visto che questo formato è supportato da qualsiasi programma, non dovrebbe essere difficile tradurre le proprie tabelle (con qualsiasi programma siano state realizzate) in Comma Separated Values. Nel caso di FileMaker , database molto diffuso, e particolarmente fastidioso per la sua scarsa compatibilità con altri programmi di gestione, sono comunque perseguibili entrambe le opzioni. Il suo driver ODBC si trova nel pacchetto PRO, ed è quindi purtroppo a pagamento. Invece, per esportare una tabella FileMaker in formato CSV è sufficiente aprire il programma e scegliere il menu File/Export records . Scegliendo di salvare il file con estensione .csv , potremo poi caricarlo facilmente in PHPMyAdmin.