Panoramica completa MySQL

09 Jan 2020 | M.A.D.R.

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. Oggi parliamo proprio di quest’ultimo fondamentale strumento e cerchiamo di capire perché sia così centrale nell’Informatica degli ultimi decenni.

Cos’è un database?

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 organizzati in maniera tale che la loro scrittura e recupero siano efficienti al massimo.

Quindi un database non è altro che un archivio elettronico di dati molto ben organizzato.

DBMS (Database Management System)

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.

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.

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 MongoDBRedis e Cassandra.

Come iniziare con 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:

  • MySQL Enterprise Edition: la versione di MySQL più completa, soggetta a licenza commerciale, che contempla non solo la memorizzazione dei dati ma anche Partitioning, High-Availability, Monitoring, Firewall e tanti altri aspetti per garantire massima sicurezza ed efficienza di una installazione Enterprise;
  • Oracle MySQL Cloud Service: è un servizio figlio di MySQL Enterprise Edition e di Oracle Cloud che permette di ottenere velocemente una soluzione ideale per business scalabili. Anche questo è un servizio a pagamento;
  • MySQL Cluster CGE: altra soluzione a pagamento, basata su MySQL Enterprise Edition, dedicata all’utilizzo in cluster, ancora rivolta ad alti livelli di business;
  • MySQL Community: questa è la versione sotto licenza GPL che possiamo utilizzare liberamente. E’ il campo più adatto per imparare ad utilizzare MySQL e soprattutto è assolutamente ricca di funzionalità.

Una volta scaricato il pacchetto di installazione lo si può avviare ed averlo a disposizione nella propria macchina.

Interagire con MySQL

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:

  • Linux offre il sistema operativo di base, assolutamente stabile ed efficiente;
  • Apache Web Server mette a disposizione il server su cui posizionare le pagine web e da cui richiamarle via protocollo HTTP;
  • MySQL offre il supporto per i database;
  • PHP è il linguaggio con cui si elaborano le richieste HTTP che Apache riceve, si interagisce con i dati custoditi da MySQL e si predispone la risposta da restituire al browser.

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.

Soluzioni complete per ogni esigenza