Cos’è un database?

Prima di parlare dei motivi per cui WordPress richiede la presenza di un database per funzionare e affrontare passo a passo tutte le fasi che ci permetteranno di crearlo e gestirlo al meglio, è sicuramente utile chiarire il concetto di database per chi non conosce questa importante e onnipresente forma di archiviazione e consultazione dei dati.

Secondo la definizione del dizionario Sabatini-Coletti, un database è un “insieme di grandi quantità di informazioni tra loro omogenee, organizzato in modo da permettere una rapida ricerca al suo interno”. Si tratta di una delle definizioni più chiare che si possano fornire riguardo a un database, e partiremo proprio da questa per chiarire nel modo più rapido possibile tutti gli aspetti legati all’argomento prima di ricollegarci all’ambito specifico di WordPress.

Questo articolo introduttivo è il primo della serie dedicata ai database di WordPress ed è tratto dall’ebook “WordPress Database – Capire, gestire, ottimizzare e riparare il database MySQL“, disponibile in tutti i formati più diffusi. Puoi acquistare l’ebook, contenente tutti gli articoli di questa serie e il resto dell’intero contenuto dedicato ai database, visitando la sua scheda su questo sitoPer leggere gli altri articoli della serie utilizza i link di navigazone che trovi nella parte inferiore del sommario visualizzato qui a destra.

Praticità dei database

Per avere un’idea generale di un database (dall’inglese ‘base di dati’) senza entrare necessariamente nell’ambito informatico possiamo pensare a un elenco telefonico oppure al classico mobile a cassetti, o schedario, per l’archiviazione di cartelle in ordine alfabetico (quest’ultima immagine è molto cara agli americani e la ritroviamo spesso nelle icone e illustrazioni informatiche). In entrambi i casi la definizione tratta dal Sabatini-Coletti calza a perfezione, ma cosa distingue i due esempi pratici appena descritti da un database ‘digitale’, ovvero creato e gestito attraverso strumenti informatici?

La praticità che deriva dal memorizzare una notevole quantità di dati digitali sotto forma di database è principalmente nella flessibilità con cui potranno in seguito essere consultati, riorganizzati e visualizzati: se nei due esempi dell’elenco telefonico e dello schedario eravamo costretti a procedere con una consultazione basata su un ordine necessariamente alfabetico e sequenziale, per esempio, avere gli stessi dati all’interno di un database elettronico significa poter individuare ogni singola informazione in base ad altri dati, per esempio il nome della via nel caso dell’elenco telefonico, oppure una data nel caso dello schedario, o persino utilizzando una parola qualsiasi come ‘chiave di ricerca’.

Figura 1 - Un database può essere paragonato, per alcuni versi, al classico schedario contenente dei documenti organizzati secondo un preciso ordine (alfabetico, cronologico, ecc.) ma è molto più potente e flessibile
Figura 1 – Un database può essere paragonato, per alcuni versi, al classico schedario contenente dei documenti organizzati secondo un preciso ordine (alfabetico, cronologico, ecc.) ma è molto più potente e flessibile

Database ‘flat’ e ‘relazionali’

Quando immaginiamo una serie di dati ordinati ci viene spontaneo pensare a una tabella con le sue righe e colonne e con le intestazioni in cima, seguite dall’elenco dei dati stessi, più o meno come quelli memorizzati in un registro o, anche più semplicemente, in una fattura o uno scontrino del supermercato.

Quando le informazioni che dobbiamo gestire possono essere memorizzate all’interno di una singola tabella di questo tipo ci troviamo di fronte a un database ‘flat’ (traducibile con ‘piatto’, inteso come ‘lineare’), che può essere creato e gestito anche da programmi come Word o Excel che permettono infatti di compilare e ordinare delle tabelle di dati o condurre delle ricerche al loro interno.

Questa forma di database è molto primitiva e non ha niente a che fare con quella dove l’efficienza di un particolare linguaggio o programma dedicato si rivela indispensabile: stiamo parlando dei database ‘relazionali’ dove appunto i dati sono organizzati in più tabelle che hanno fra loro delle ‘relazioni’ e permettono, quindi, ricerche anche complesse. Pensiamo, per esempio, all’elenco telefonico e proviamo a immaginare la possibilità di cercare tutti gli abbonati che hanno un certo cognome e abitano in una certa provincia, ricerca che sarebbe impossibile da condurre su carta o anche su un database ‘flat’.

Figura 2 - Uno schema rappresentativo di un database relazionale, si notino infatti le 'relazioni' fra i tipi di dati
Figura 2 – Uno schema rappresentativo di un database relazionale, si notino infatti le ‘relazioni’ fra i tipi di dati

Il ‘linguaggio’ dei database

Per gestire i database sono stati sviluppati, nel corso del tempo, linguaggi e programmi specializzati che sono andati evolvendosi per consentire la manipolazione di strutture di dati sempre più complesse. Uno dei più longevi e diffusi fra questi linguaggi è SQL, sigla di Structured Query Language, ovvero linguaggio strutturato di interrogazione.

Il termine ‘query’ viene utilizzato infatti per definire un comando impartito a un database, per esempio la ricerca e sostituzione di uno o più dati. Questo linguaggio è alla base di MySQL, il sistema di gestione dei database relazionali (Relational Database Management System o RDBMS in breve) utilizzato per i database di WordPress. Anche se non è fondamentale conoscere tutte queste nomenclature per usare WordPress e il suo database, è utile comunque sapere a cosa si riferiscono i termini tecnici che sicuramente incontreremo nell’utilizzo di questi strumenti.

 

Figura 3 - Il logo di MySQL, il sistema di gestione dei database che funziona appunto con il linguaggio SQL
Figura 3 – Il logo di MySQL, il sistema di gestione dei database che funziona appunto con il linguaggio SQL

Una ‘tabella’ per ogni cosa

Come abbiamo visto, le informazioni di un database sono ‘strutturate’, e questa struttura comincia prima di tutto dalla singola tabella che li contiene, le cui righe e colonne ospitano i cosiddetti ‘campi’ del database ovvero le singole celle al cui interno viene incasellato un dato specifico. Tornando all’esempio dell’elenco telefonico, le colonne della tabella e le rispettive celle conterrebbero, per esempio, i singoli nomi, cognomi, nomi delle vie e delle città, i codici di avviamento postale, le sigle delle provincie, e ovviamente i numeri di telefono.

Volendo creare una struttura ‘relazionale’, la tabella appena descritta potrebbe essere collegata (creando quindi una ‘relazione’) con un’altra tabella contenente, per esempio, i dati anagrafici degli abbonati, le cui tabelle avrebbero ancora una volta dei campi per nome, cognome e indirizzo, ma a queste si aggiungerebbero quelle della data e del luogo di nascita, del codice fiscale, e così via. Incrociando i dati delle due tabelle potremo così sapere, per esempio, quante persone oltre i cinquant’anni possiedono un’utenza telefonica in una certa provincia.

 

Figura 4 - I database rendono più rapida e semplice la ricerca di informazioni
Figura 4 – I database rendono più rapida e semplice la ricerca di informazioni

WordPress e i database

La guida definitiva per capire e usare al meglio il database di WordPress.