Quando si ha a che fare con vaste moli di dati, Excel od un qualunque altro foglio elettronico, può non risultare adatto allo scopo. Soprattutto se l’obiettivo è quello di effettuare complesse elaborazioni eseguendo query SQL. Spesso è necessario mettere in correlazione le colonne provenienti da più fogli elettronici: ecco che, allora, Excel o LibreOffice Calc non bastano più.
Differenze fra Excel ed Access o gli altri database relazionali
Iniziamo con l’evidenziare le differenze tra Excel ed Access come tra qualunque foglio elettronico e qualsiasi database relazionale. In entrambi i casi, i dati vengono memorizzati in righe e colonne: nei fogli elettronici l'”incrocio” fra riga e colonna si chiama cella. L’insieme delle varie celle realizza il cosiddetto foglio di calcolo.
Nei database relazionali, invece, la singola riga si chiama record e la memorizzazione delle varie righe e colonne avviene servendosi delle tabelle.
L’utilizzo di database relazionali è particolarmente indicato se i dati non possano essere memorizzati in una singola tabella, in un unico “foglio dati”.
L’elenco del personale di un’azienda può essere agevolmente memorizzato in una sola tabella ed è quindi pensabile di poter utilizzare un semplice foglio elettronico.
Se all’elenco del personale fossero associate tutta una serie di tabella accessorie contenenti, ad esempio, la lista dei lavori svolti e la pianificazione di quelli da svolgere, tutti gli orari di entrata ed uscita, l’elenco dei rimborsi spese, la lista dei mezzi utilizzati, le informazioni sulle retribuzioni, è ovvio che un foglio elettronico non è più sufficiente.
Si ha generalmente bisogno di un database quando risultasse individuata almeno una relazione uno-a-molti fra i dati da gestire e comunque nel momento in cui ci si trovasse a trattare più tabelle.
Grazie all’utilizzo di interrogazioni o query SQL è molto semplice mettere in correlazione i dati provenienti da più tabelle. Interrogazioni di questo tipo consentono di estrarre dal database, in modo pressoché istantaneo, le informazioni che interessano.
Se i dati da gestire, inoltre, sono molti l’adozione di un database è cosa praticamente obbligata. È infatti cosa nota che i vari fogli elettronici consentono di accogliere un numero limitato di righe e colonne.
I database sono in grado di operare su collezioni di dati (basi di dati) utilizzate per rappresentare le informazioni di interesse.
Il DBMS (Database Management System) relazionale più famoso a livello “consumer” è Microsoft Access. Esistono comunque decine di DBMS relazionali, particolarmente indicati per usi professionali (MySQL, PostgreSQL, IBM DB2, Oracle, Microsoft SQL Server, MariaDB, SQLite,…).
Cosa sono i database relazionali
Il modello relazionale è un modello logico che è totalmente indipendente dalla struttura fisica del database e che è basato sui valori: i riferimenti tra dati in strutture (relazioni o tabelle) diverse sono rappresentati per mezzo dei valori stessi.
Nell’articolo Progettazione di database: aspetti teorici, già molto tempo fa, avevamo messo a fuoco alcuni concetti fondamentali legati alla strutturazione di un database.
Esportare dati Excel in un database
Nel momento in cui si avesse la necessità di esportare dati Excel in un database o combinare più fogli di calcolo in un unico database, creando altrettante tabelle, il consiglio è quello di importare i dati in formato CSV.
Da Excel (o da qualunque altro foglio elettronico si utilizzi), si dovrà aver cura di esportare o salvare i dati in formato CSV separato da virgole.
Il formato CSV (comma-separated values) è molto comodo perché consente di salvare tutto il contenuto di un foglio di calcolo o di una tabella di un database sotto forma di un file di testo, apribile – ad esempio – con Notepad++, TextPad o similari.
Come si vede, tutti i valori vengono separati da virgole e racchiuse all’interno dei doppi apici in modo da non creare confusione.
Passare i dati da Excel a MySQL
Una volta che si sarà esportato il contenuto del foglio di calcolo sotto forma di file CSV, si potrà importarlo all’interno di un database.
A titolo esemplificativo, noi abbiamo scelto di utilizzare un database MySQL ma è ovviamente possibile ricorrere a qualunque altro prodotto.
Per importare i dati provenienti dal foglio elettronico in un database MySQL, si può installare in locale un pacchetto come XAMPP che contiene, al suo interno, il server web Apache, MySQL, PHP e phpMyAdmin.
phpMyAdmin, in particolare, è un’applicazione scritta in PHP che consente di amministrare un database MySQL senza installare altri strumenti, ricorrendo semplicemente al browser web.
Ci serviremo di phpMyAdmin per importare i dati Excel nel database MySQL.
Nell’articolo Installare Joomla in locale: guida completa, abbiamo pubblicato una guida all’installazione ed alla configurazione di XAMPP.
Vi invitiamo a rileggerla in modo tale da scoprire come disporre immediatamente di un database relazionale completo e funzionante in ambito locale.
Dopo aver installato XAMPP in locale e configurato le varie componenti, si potrà accedere a phpMyAdmin digitando http://localhost/phpmyadmin
nella barra degli indirizzi del browser.
Da phpMyAdmin si dovrà dapprima cliccare su Database quindi specificare il nome del nuovo database da creare in Nome del database.
Come codifica dei dati è possibile provare a scegliere utf8_general_ci
in modo da risolvere quegli errori nella visualizzazione dei dati che si presentano con alcune lingue.
La schermata seguente consentirà di specificare (pulsante Scegli file) il file CSV da importare.
Selezionando il formato CSV si sarà già pronti per avviare l’importazione dei dati.
Prima di fare clic sul pulsante Esegui, bisognerà eventualmente spuntare la casella La prima linea del file contiene i nomi dei campi della tabella. Così facendo le intestazioni del foglio di calcolo Excel (prima riga) verranno utilizzate come nomi delle colonne del database.
Eventuali problemi in fase d’importazione (nomi delle colonne troppo lunghi) potranno essere risolti agendo direttamente sul file CSV, aperto come file di testo.
Facendo clic sul nome del database (colonna di sinistra), si potrà verificare le colonne importate, la loro tipologia ed il contenuto di ogni singolo record.
Dopo aver importato la tabella con phpMyAdmin si potrà rinominarla semplicememente cliccando sul pulsante Operazioni in alto e specificando un nuovo nome nel campo Rinomina tabella in.
Cliccando su SQL quindi impostando una query SQL, si potranno estrarre dal database i dati che interessano.
Nell’esempio, si è scelto di selezionare dalla tabella “anagrafica” del database tutti i record che hanno valore del campo “Response ID” superiore a 300 e si è indicato di raggruppare i dati per indirizzo IP (valore del campo “IP Address”).
Speciali costrutti denominati query consentono di interrogare e gestire le basi di dati offrendo la possibilità di recupeare le informazioni d’interesse.
L’utilizzo del linguaggio SQL è condicio sine qua non per estrarre i dati ed eventualmente per combinare quelli provenienti da più tabelle differenti.
Per combinare i dati provenienti da più tabelle, si utilizza l’operazione JOIN.
Una query SQL JOIN consente di combinare le righe o record di due o più tabelle del database utilizzando un campo comune.
Si supponga che nella prima tabella vi sia una tabella anagrafica contenente un campo identificativo ID. Lo stesso campo identificativo ID sia usato in un’altra tabella correlata.
Una query del tipo SELECT * FROM tabella1, tabella2 WHERE tabella1.ID=tabella2.ID
consentirà di estrarre tutti i campi che compongono entrambe le tabelle. Al posto dell’asterisco è possbile specificare il nome dei campi da recuperare.
Aggiungendo la clausola ORDER BY
ed indicando la colonna di riferimento, si potrà richiedere l’ordinamento automatico dei record sulla base dei valori contenuti nella colonna indicata.
Specificando anche DESC
, l’ordinamento avverrà in maniera decrescente.
Per una disamina della sintassi utilizzabile, vi rimandiamo a queste pagine.
In phpMyAdmin, cliccando su Visualizza per stampa, su Esporta o su Mostra diagramma, si potrà inviare alla stampante il risultato della query SQL, esportarlo o visualizzarlo sotto forma di grafico. Tutti i risultati vengono visualizzati all’interno del browser: non si dovrà quindi mai abbandonare la finestra del browser per accedervi.