Se hai provato a cimentarti nello sviluppo di siti Internet, intendo non solo le pagine web ma tutto quello che ruota attorno alla parte server, non avrai potuto non incontrare il linguaggio PHP e, con esso, MySQL, il più famoso software per database del mondo. In questa guida parliamo proprio di quest’ultimo fondamentale strumento e cerchiamo di capire perché sia così centrale nell’Informatica degli ultimi decenni.
Parliamo di database quindi. Ma ti è del tutto chiaro cosa intendiamo? Al di là dell’uso più o meno appropriato che si possa fare del termine, un database consiste in un insieme di dati, immagazzinati in maniera persistente su una memoria di massa di un computer e organizzati in maniera tale che la loro scrittura e recupero siano efficienti al massimo. Quindi, in parole povere, un database non è altro che un archivio elettronico di dati molto ben organizzato. Un programma che gestisce database prende il nome di DBMS (Database Management System): pertanto MySQL tecnicamente non è un “database” bensì un DBMS che permette di gestire tanti database.
Di DBMS ne esistono tipologie diverse e possono essere classificati sotto aspetti diversi. In primis, in base al loro scopo. Spesso si ha il primo incontro con un database in ambienti di ufficio grazie ad Access, il programma destinato alla creazione archivi nella suite Microsoft Office. Questo però è un programma molto valido nei suoi scopi ma destinato per lo più a creare archivi da usare su un singolo computer o al più in una rete di PC di una Intranet. MySQL è un tipo di DBMS per l’uso enterprise ossia un servizio messo in esecuzione su di un server, raggiungibile tramite connessione in rete (ha indirizzo IP e porta TCP e può essere contattato anche attraverso Internet), in grado di gestire molti database diversi ed è ottimizzato per la connessione contemporanea di svariate migliaia di utenti. Questi aspetti hanno pertanto reso MySQL particolarmente adatto all’impiego per siti web. Un’altra tipologia di DBMS che vale la pena citare è quella cui appartiene SQLite, non un servizio in esecuzione come MySQL, ma una piccola libreria in grado di salvare database su un unico file: potrebbe sembrare una soluzione di nicchia ma basti considerare che è il tipo di database usato nelle app Android per rendersi conto di come questo sia uno dei più usati al mondo in assoluto.
Altra distinzione tra DBMS, è l’appartenenza al mondo relazionale o meno. La teoria relazionale è nata negli anni ’70 del secolo scorso e da lì ha ispirato la progettazione di grandissima parte dei database esistenti. Si basa su database costituiti in maniera rigida da tabelle collegate tra loro da relazioni. Il meccanismo principe di interrogazione prende il nome di query, direttive scritte in linguaggio SQL molto simili ad una frase in inglese. Mysql è assolutamente relazionale tanto da potersi considerare un RDBMS (Relational Database Management System). L’altra metà del cielo rispetto ai database relazionali prende il nome di NoSQL, suddiviso in “etnie” diverse infatti vede tra le sue fila DBMS molti vari come MongoDB, Redis e Cassandra.
Dopo questa breve introduzione entriamo un po’ nello specifico di MySQL.
MySQL va innanzitutto installato. Si parte dal sito principale del progetto (https://www.mysql.com/it/) e da lì si procede al download. Osservando l’homepage potresti rimanere un po’ stupito del fatto che sono proposti prodotti targati “Oracle MySQL”: l’associazione può sembrare strana in quanto stai cercando un gestore di database gratuito (cosa che speri di trovare in MySQL) e lo trovi accostato al nome Oracle, non solo il tipo di base di dati più diffuso per grandi realtà ma anche uno dei più costosi. Cerco di scioglierti subito i dubbi con un velocissimo excursus storico. MySQL è stato creato nel 1995 da una società svedese (niente di strano che non sia a stelle e strisce: pensa solo che a un finlandese dobbiamo Linux e ad un danese PHP) poi acquisita dalla Sun Microsystems (azienda creatrice del linguaggio Java) a sua volta, qualche anno dopo, fagocitata dalla Oracle, una delle più grandi aziende informatiche in assoluto. Dopo tutti questi passaggi, MySQL si è arricchito di soluzioni variegate e molto avanzate, tante a pagamento ma ancora con una buona fetta di offerta gratuita. Infatti spostandoci sulla pagina Downloads troviamo almeno quattro soluzioni presentate:
Una volta scaricato il pacchetto di installazione lo si può avviare ed averlo a disposizione nella propria macchina.
Il primo modo per interagire con MySQL è utilizzare la console da riga di comando. Il software infatti è dotato non solo di server ma anche di un client testuale. Da questo si potrà creare database, tabelle ed altri elementi architetturali e lavorare sui dati: si tenga solo presente che è necessario conoscere il linguaggio SQL che però può essere imparato agevolmente a piccoli passi. Tuttavia per interagire con MySQL si può passare per molti altri programmi dotati di interfacce visuali più o meno comode, ad esempio HeidiSQL assolutamente gratuito, facile da utilizzare ed immediato da comprendere.
MySQL è però famoso soprattutto perché offre ampissime possibilità agli sviluppatori. Questa piattaforma dispone di una serie di librerie per la connessione tramite tutti i principali linguaggi. Se ne può trovare un elenco alla pagina “MySQL Connectors” del sito del progetto e lì si potrà notare una distinzione: una parte sono Driver sviluppati dalla Community (ad esempio, tutti quelli per il linguaggio PHP) e molti sono i Connector veri e propri creati da MySQL (per .NET, Java, Python, Node.js e tanti altri).
Oltre ai Connector, non si può certo tacere l’importantissimo uso di MySQL con il Web. Una percentuale altissima di siti nel mondo è realizzata con il cosiddetto stack LAMP (Linux Apache MySQL PHP) dove:
Un ambiente Apache-MySQL-PHP può comunque essere allestito su macchine Windows o Mac installando tutti questi software gratuiti ed avviando i server Apache e MySQL. Esistono tuttavia una serie di piattaforme già predisposte che devono solo essere scaricate ed installate nel proprio sistema per poter offrire un ambiente simile già pronto, configurato e coeso. Tra queste ricordiamo WAMP dedicato a Windows, XAMPP per ogni sistema operativo ma ve ne sono molte altre come ad esempio MAMP, per mac e windows.
Utilizzando MySQL su server web con PHP ci si potrà inoltre avvantaggiare di phpMyAdmin (https://www.phpmyadmin.net/), un applicativo web che mette a disposizione una completa interfaccia per la gestione di un’installazione MySQL. Da qui si potrà visualizzare dati, provare codici, esportare ed importare tabelle e molto altro: un aiuto preziosissimo per lo sviluppatore web direttamente nel browser.
Si parla molto anche di MariaDB, quello che viene considerato da molti il “vero” MySQL. Questo perché è stato fondato da uno dei creatori originali di MySQL che non contento della definitiva acquisizione di MySQL da parte della commercialissima Oracle ha deciso di dare nuova vita al progetto fondando appunto MariaDB. Questo costituisce una validissima alternativa, assolutamente libera ed in rapidissima espansione. Non solo contiene tutte le caratteristiche di MySQL ma anche molte di più, assolutamente originali. Ad esempio, MariaDB include molti più Storage Engine rispetto a MySQL (sono i motori di memorizzazione fisica dei dati su disco) di cui alcuni ispirati al mondo NoSQL.
Tra l’altro se si vuole usare velocemente MariaDB in un contesto web lo troviamo già incluso in alcuni dei pacchetti completi di cui abbiamo parlato poco fa, tra cui XAMPP.
Chi può essere interessato a MySQL quindi? Chiunque perché la gestione dei dati riguarda tutti: lo sviluppatore web, l’amministratore di sistemi nonché programmatori di ogni categoria. Iniziare non pone alcuna difficoltà o costo:
I nostri materiali sono a disposizione e non solo costituiranno un ottimo modo per iniziare, ma anche un contesto perfetto per forgiare una vera preparazione professionale.