MySQL e MariaDB: gestire database online con LibreOffice Base

Un tutorial su usare LibreOffice Base per gestire un database MySQL o MariaDB che si trova su un server remoto

Il gruppo di LibreOffice e i loghi di MySQL, MariaDB e LibreOffice

Ormai tutti hanno un sito: professionale, amatoriale o personale che sia.

Soprattutto se gestito mediante un CMS (Drupal, Joomla!, Wordpress o software prigioniero), una delle esigenze che, prima o poi, saltano fuori è quella di gestire comodamente piccole e grandi basi di dati. Pur basati sui database, i CMS liberi hanno bisogno di estensioni per mettere in grado l'amministratore di gestire facilmente tabelle o addirittura database aggiuntivi.

Chi ne sa qualcosa di database SQL online sicuramente conosce già un ottimo strumento che si chiama phpMyAdmin, che permette di gestire i database sul web in modo potente e preciso. Tra l'altro, phpMyAdmin è spesso fornito di serie tra gli strumenti per la gestione dei database messi a disposizione dai provider.

Tuttavia, strumenti come LibreOffice Base offrono metodi di gestione molto più amichevoli e, soprattutto, sono integrati con l'intera suite per ufficio.

Mediante LibreOffice Base puoi:

  • creare nuove tabelle nel database
  • modificare le tabelle, creando nuovi record e nuovi campi
  • modificare i valori dei campi
  • creare e modificare le relazioni tra le tabelle
  • creare e modificare le viste, in modo da avere tabelle virtuali che presentino una visualizzazione più compatta e più comoda

Se non sei un sistemista esperto di database, ma vuoi gestire i database in un modo più semplice e che sia più vicino a quello di un banale foglio elettronico, allora questo tutorial è per te.

Presupposti e requisiti

La procedura qui riportata si basa su alcuni presupposti e alcuni requisiti, elencati di seguito.

  • Presupposto: il server SQL. Nel tutorial, il database risiede su un server Ergonet. Tuttavia non dovrebbe cambiare nulla se risiede su un server di un altro provider: l'importante è che si tratti di un database di tipo MySQL e che il server accetti connessioni dall'esterno
  • Requisito: la versione di MySQL e MariaDB. La versione di sistema di MySQL-MariaDB dovrebbe essere recente. Con la 5.5.5-10.1.44-MariaDB funziona tutto, ma con versioni precedenti potresti sperimentare alcuni malfunzionamenti nella visione delle viste.
  • Requisito: la versione di LibreOffice. lo strumento di gestione del database è LibreOffice Base, versione 6.4.3.2. La procedura dovrebbe funzionare anche con versioni più recenti, ma potrebbe non funzionare con versioni più antiche: è una questione di disponibilità di connettori
  • Presupposto: la conoscenza di LibreOffice Base e di SQL. Do per scontato che tu abbia una buona conoscenza di LibreOffice Base; questo tutorial non spiega nulla di come usare questo strumento per gestire un database, perciò le conoscenza di base (così come quelle riguardanti SQL) sono date per scontate. Di contro, non è necessario essere un sistemista esperto di database: basta una competenza basilare
  • Presupposto: il sistema operativo. Io uso Linux, ma in ambiente Windows e macOS la procedura dovrebbe essere analoga (salvo differenze davvero minime dovute alle operazioni specifiche del sistema operativo)
  • Presupposto: la complessità del database. Il database che uso per il tutorial è molto semplice (non è relazionale) ed è composto da un'unica tabella di LibreOffice Calc con due campi: Pseudonano e Descrizione. Quando verrà creato il database, occorrerà definire anche un campo chiave. Per avere l'elenco completo degli pseudonani, ti invito a leggere l'articolo Gli pseudonani di Biancaneve. Tuttavia le informazioni qui riportate valgono anche per i database relazionali: in questo caso, l'uso delle viste esprime tutta la sua potenza.

Se la versione del database non è sufficientemente recente, potresti non essere in grado di visualizzare le viste, che pure LibreOffice Base ha creato regolarmente.

Viene infatti emesso il messaggio d'errore Prepared statement needs to be re-prepared.

Aggiorna la versione del database sul server.

Uno pseudonano di Biancaneve è un personaggio il cui nome ha le seguenti caratteristiche:

  • termina in -olo (maschile) o in -ola (femminile)
  • è sdrucciolo, cioè l'accento cade sulla penultima sillaba; sdrucciolo è perciò autoreferente
  • deve avere un significato compiuto, ma che non sia una voce verbale.

Si definiscono di Biancaneve perché si rifanno ai nomi italiani di alcuni nani di Biancaneve che presentano tali caratteristiche: Cucciolo, Eolo, Pisolo. Mammolo non è accettabile perché è una parola che non esiste. Gongolo non è accettabile perché è una voce verbale.

Infine, come ho detto, il software di gestione del database è LibreOffice Base. Chi si ostina a usare software prigioniero non dovrebbe però trovare particolare difficoltà ad adattare la procedura a Microsoft Office Access. Se usi queste informazioni per gestire un database MySQL online con Microsoft Office Access, ti invito caldamente a scrivere la procedura in modo da integrare questo articolo e diffondere la conoscenza. Ovviamente, l'integrazione sarà a tuo nome.

Verifiche preliminari

Nella migliore delle ipotesi, installi LibreOffice (con Base), lo colleghi al database remoto e tutto funziona.

Non sempre però va tutto così liscio, perciò ti consiglio di fare alcune verifiche preliminari per accertarti che il tuo sistema sia in grado di compiere il lavoro.

Il driver per mySQL

In ambiente Linux, è necessario che il pacchetto libreoffice-sdbc-mysql sia installato. Di solito, il pacchetto viene installato insieme con LibreOffice Base, ma se il tuo sistema attuale è un aggiornamento di un'installazione molto vecchia (o, peggio ancora, è un sistema molto vecchio), il pacchetto potrebbe essere mancante. Il pacchetto è disponibile nei repository di qualunque distro Linux.

I driver attivi

I driver di LibreOffice per i database devono essere attivi. Per assicurartene usa la procedura seguente.

  1. Da un'applicazione LibreOffice, impartisci il comando Strumenti → Opzioni (in Mac, devi usare Preferenze) e visualizza così la finestra Opzioni
  2. Dal pannello di sinistra, seleziona LibreOffice Base → Collegamenti
  3. Nel pannello di destra seleziona la casella Attiva insieme dei collegamenti.

Nuovo database, solo nuova tabella o solo collegamento al database esistente?

Prima di iniziare il vero lavoro, devi prendere una decisione, che dipende sia dai dati che dovrai manipolare sia da altri fattori.

Innanzi tutto, quali dati dovrai manipolare?

  • Quelli già presenti nel database del sito, e solo quelli? Ad esempio, vuoi manipolare comodamente alcuni campi riguardanti i clienti del tuo ecommerce.
  • Altri dati che non sono presenti nelle tabelle attuali del sito e che non appartengono ad esse? Ad esempio, vuoi creare un database con i mille film che preferisci.

Nel primo caso, sarà sufficiente collegare LibreOffice Base al database esistente.

Nel secondo caso, dovrai compiere un'ulteriore scelta:

  • vuoi creare un intero nuovo database?
  • o è sufficiente creare una nuova tabella nel database esistente?

La creazione di un nuovo database è l'opzione consigliabile quando i dati in esso contenuti sono del tutto distinti da quelli del sito. In questo modo

  • non vado a toccare il database del sito, così non corro il rischio di corromperlo involontariamente con manovre errate
  • uso LibreOffice Base per gestire solo ciò che mi serve davvero, senza dover tirarmi dietro un database gigantesco come quello di un CMS; ne guadagno in velocità, in chiarezza e in sicurezza.

Ovviamente, c'è anche il rovescio della medaglia: le funzioni di backup di Akeeba Backup non prevedono la copia di sicurezza di un altro database oltre a quello del sito. Perciò dovrai provvedere in altro modo a fare le copie di backup del database.

Se invece vuoi inserire nuovi dati che siano però collegati a quelli già presenti nel sito (ad esempio, vuoi che per ogni utente sia indicato quali dei tuoi servizi aggiuntivi ha acquistato), allora occorre creare una nuova tabella nel database del sito e metterla in relazione con quella degli utenti.

Nota!

A dire il vero, sarebbe anche possibile inserire nuovi campi nella tabella stessa degli utenti, ma ti sconsiglio un'operazione del genere, che io considero poco pulita.

In questo tutorial ti mostro come creare un database completamente nuovo e come gestirlo con LibreOffice Base.

La gestione di un database esistente è ancora più semplice: semplicemente, devi ignorare il paragrafo Fase 1: Creare il database MySQL sul server remoto e, nel paragrafo Fase 2: Collegare LibreOffice Base al database inserire i dati del database del sito.

Fase 1: Creare il database MySQL sul server remoto

La prima operazione da compiere è creare il database (all'inizio del tutto vuoto) sul server remoto. Come ho detto, in questo tutorial uso come esempio un server Ergonet. Se ti servi di un altro provider o se il server remoto è tuo, credo che non avrai problemi ad adattare la procedura.

C'è sempre phpMyAdmin

Per creare un database sul server remoto puoi sempre usare phpMyAdmin o altro strumento messo a disposizione dal tuo provider.  In genere, gli strumenti messi a disposizione dai provider sono molto più semplici, ma phpMyAdmin consente regolazioni fini della configurazione.

In Ergonet puoi creare database aggiuntivi solo se hai acquistato l'opzione Database illimitati, che comunque è già prevista e attiva con l'acquisto di un qualunque piano che preveda l'installazione di un CMS (Joomla, Wordpress, PrestaShop o Moodle). La creazione del database avviene da WebPanel.

  1. Accedi a WebPanel con le tue credenziali e clicca sul widget DATABASE MYSQL
  2. Nella finestra con l'elenco dei database, clicca il pulsante Nuovo Database
  3. Nella finestra che viene così richiamata, inserisci i parametri del database. Assicurati di selezionare la casella Abilita accesso remoto al database, altrimenti non sarà possibile accedere al database dall'esterno. Se vuoi che solo il tuo indirizzo IP sia abilitato ad accedere al database, seleziona la casella Limita l'accesso remoto al database ad uno specifico host e inserisci nell'apposita casella il tuo indirizzo IP pubblico. Al termine, clicca il pulsante Crea Database.

Perché il database sia effettivamente creato occorre un po' di tempo. In genere uno o due minuti sono sufficienti.

La galleria sottostante riepiloga le operazioni per la creazione del database. Clicca su una delle immagini per aprire la galleria.

0101 0102 0103

Esci da WebPanel.

Adesso, del database sul server remoto ti puoi pure dimenticare: è tempo di collegare ad esso LibreOffice Base.

Fase 2: Collegare LibreOffice Base al database

Le versioni più recenti di LibreOffice Base hanno la possibilità di collegarsi a un database MySQL in modo diretto. Questa è una benedizione, perché evita di dover cercare i connettori appositi e perché rende più semplice l'operazione di connessione.

Quando avvii LibreOffice Base, si apre automaticamente la procedura guidata.

  1. Nella finestra Seleziona database, seleziona Collega a un database esistente e scegli, dall'elenco sottostante, MySQL. Clicca sul pulsante Successivo
  2. Nella finestra Configura connessione MySQL, seleziona Connettiti in modo diretto. Clicca sul pulsante Successivo
  3. Nella finestra Configura i dati del server MySQL, inserisci nella casella Nome database il nome che avevi assegnato al database. Poi seleziona Server/porta e inserisci nella casella Server il nome del server SQL. Ergonet adotta una sintassi semplice per il nome del server SQL: è il nome del dominio con il prefisso sql.. Clicca sul pulsante Successivo
  4. Nella finestra Configura autenticazione utente, Inserisci il nome utente del database che avevi imposto in fase di creazione del database e seleziona la casella Password richiesta. Clicca sul pulsante Successivo
  5. Nella finestra Autenticazione richiesta, inserisci la password che avevi definita in fase di creazione del database. Clicca OK
  6. Un messaggio ti avvisa che la prova di connessione è andata a buon fine. Se così non fosse, controlla i parametri. Clicca OK e poi Fine
  7. Salva su disco il file di LibreOffice Base. Ricorda che questo file non è il database, ma ciò che permette di gestire il database remoto.

La galleria sottostante riepiloga le operazioni per la creazione del database. Clicca su una delle immagini per aprire la galleria.

0201 0202 0203 0204 0205 0206 0207

A questo punto occorre creare la tabella contenente gli pseudonani di Biancaneve.

Fase 3: Creare la tabella

A questo punto, usa le funzioni canoniche di LibreOffice Base (o Microsoft Office Access) per creare la tabella, che io ho chiamato Pseudonani.

La tabella deve essere composta da tre campi:

  • ID_Nano: è il campo chiave; di tipo INTEGER, valore automatico, necessario, lunghezza: 10
  • Pseudonano: contiene il nome dello pseudonano; di tipo VARCHAR, necessario, lunghezza massima: 20
  • Descrizione: contiene la descrizione dello pseudonano; di tipo VARCHAR, necessario, lunghezza massima: 100.

Salva la tabella e salva il file di LibreOffice Base.

Fase 4: Popolare la tabella

Inserisci i dati nella tabella. Salva la tabella e salva il file di LibreOffice Base.

Verifica che la tabella, una volta inseriti i dati, sia visualizzabile correttamente. Ti consiglio anche, giusto per un eccesso di prudenza, di accertarti con phpMyAdmin che i dati siano stati riportati correttamente nel database.

Fase 5: Creare le viste

Ora puoi creare le viste. La creazione di viste ha senso soprattutto se il database è relazionale e devi visualizzare i dati provenienti da più tabelle, in modo da avere una sorta di tabella virtuale (tale è una vista) in cui sono riportati solo i campi che ti interessano e che si trovano sparsi su più tabelle.

Ma anche nel caso di database striminziti come quello dell'esempio le viste hanno una loro ragione d'essere. Ad esempio, ti permettono di avere tabelle differenti ordinate secondo criteri diversi.

Se devi dare la possibilità a chi visita una pagina web in cui sono riportati i dati di ordinare secondo questa o quella colonna, puoi creare pulsanti che visualizzino viste differenti.

Per creare una vista in LibreOffice Base usa la procedura seguente.

  1. Accertati che nella colonna di sinistra sia selezionato Tabelle e fai clic su Crea vista
  2. Nella finestrella Aggiungi tabelle, seleziona la tabella che vuoi aggiungere alla vista e clicca su Aggiungi. Ripeti questo passo per tutte le tabelle. Nel caso dell'esempio, fallo solo per la tabella Pseudonani e poi fai clic su Chiudi. Nota: nell'elenco delle tabelle sono presenti anche le viste già create
  3. Nella parte superiore della finestra per la creazione delle viste sono ora inserite le tabelle sorgente; la parte inferiore è occupata dalla griglia dei dati per la gestione della vista
  4. Trascina ogni campo che ti interessa dalla tabella alla griglia inferiore e configura la vista secondo le tue esigenze. Nell'esempio, la vista presenta dapprima il campo Pseudonano e poi il campo Descrizione e ordina i dati in senso crescente secondo il campo Pseudonano; nota che puoi rendere invisibile un campo semplicemente deselezionando la casella Visibile
  5. Salva la vista, assegnandole un nome
  6. Nell'elenco delle tabelle è ora presente anche la nuova vista.

La galleria sottostante riepiloga le operazioni per la creazione delle viste. Clicca su una delle immagini per aprire la galleria.

0301 0302 0303 0304 0305 0306

Ti consiglio di verificare la correttezza delle viste. Se sei estremamente scrupoloso, ti consiglio di farlo anche con phpMyAdmin.

Il senso delle viste

Lasciami chiarire meglio i motivi per cui ritengo tanto importante lavorare con le viste.

Le viste sono una sorta di tabelle virtuali che raccolgono i dati delle tabelle del database e le offrono in una forma più chiara per l'utente.

Questa forma più chiara è dovuta principalmente a tre fattori:

  • permettono di selezionare solo i dati che si vogliono mostrare, evitando di proporre all'utente campi per lui inutili
  • permettono di usare le relazioni tra tabelle, unificando i dati in un'unica tabella virtuale
  • nonostante nelle tabelle i dati compaiano in ordine di inserimento, consentono di ordinare i dati secondo i criteri desiderati
  • possono basarsi non solo sulle tabelle, ma anche sulle ricerche; in questo modo è ad esempio possibile preparare viste che prevedano solo i dati del Nord, del Centro e del Sud o secondo qualunque altro criterio di ricerca
  • in ogni modo, possono essere trattate come tabelle reali, perciò è possibile usare PHP per prelevarne i dati e pubblicarli su una pagina web.

Va infine sottolineato che le viste, essendo virtuali, occupano ben poco spazio sul disco: giusto qualche byte.

Non posso in quest'articolo approfondire tutti gli argomenti che vorrei, ma direi che lo scopo dell'articolo (nella sua limitatezza) è raggiunto. Ora non rimane che...

Pubblicare i dati in una pagina web

Lo scopo di gestire un database MySQL remoto con LibreOffice Base, non per forza deve essere creare una vista da cui prelevare i dati con PHP per pubblicarli su una pagina web: ad esempio, si possono costruire rapporti o formulari da usare fuori dal web.

Ma la pubblicazioni dei dati in una pagina web è uno degli usi più comuni.

In un prossimo articolo descriverò come fare.

Il sistema dei commenti è di CComment

Questo è il sito web personale di Claudio Romeo

Codice fiscale: RMOPQL63E17F205B

Puoi usare liberamente le informazioni qui riportate, ma solo se citi la fonte
Il copia e incolla non è invece permesso: se hai dubbi, scrivimi.