MySQL database

Un vecchio spot pubblicitario diceva: basta la parola. MySQL database è lo strumento di archiviazione e gestione dei dati più utilizzato. In un precedente articolo lo abbiamo posto in cima alla lista dei database più popolari. Non ha bisogno di presentazioni. Creato nel 1995 e scritto in C++, è fondamentalmente il gold standard per i motori di database, con il supporto per quasi tutti i sistemi noti nel mondo degli sviluppatori IT. È famoso per la sua sicurezza, la facile scalabilità, le alte prestazioni e la comunità davvero numerosa che continua a lavorare e aggiornare MySQL. Attualmente di proprietà di Oracle, MySQL è disponibile sia come licenza open source che come licenza proprietaria, a seconda delle funzionalità di cui si ha bisogno.

Cosa è un database relazionale

La corretta definizione di un sistema di gestione del database (DBMS) viene utilizzata per indicare un sistema software che consente agli utenti di definire, creare, mantenere e controllare l’accesso al database. Una definizione alternativa per un sistema di gestione di database relazionale è un sistema di gestione del database (DBMS) basato sul modello relazionale. Il modello relazionale è un approccio alla gestione dei dati che sono rappresentati in termini di tuple ovvero liste di dati (righe) con un indice numerico e contenuti (campi) di vario genere. Queste liste sono raggruppate in relazioni. Un database organizzato con questa struttura viene definito in termini di modello relazionale.

Il modello relazionale

Lo scopo del modello relazionale è quello di fornire un metodo per specificare i dati e le query. Gli utenti indicano quali informazioni ci sono nel database e quali informazioni vogliono estrapolare. Il software del sistema di gestione del database si occuperà di:

  • descrivere le strutture dei dati
  • memorizzazione dei dati
  • procedure di recupero dai dati

L’utente per comunicare con il software di gestione del database utilizzerà il linguaggio delle query. La maggior parte dei database relazionali utilizza la definizione dei dati SQL e il linguaggio query. Questi sistemi implementano ciò che si può considerare come un’approssimazione ingegneristica del modello relazionale. Una tabella in uno schema di database SQL corrisponde a una variabile con delle determinate proprietà; il contenuto di una tabella a una relazione dove le righe rappresentano una tupla (entità completa ossia insieme dei campi dato) e le colonne sono uno degli attributi del modello relazionale; i vincoli chiave, altri vincoli e le query SQL corrispondono a relazioni tra proprietà. Ricordiamo che la tupla rappresenta dunque l’entità base che deve essere memorizzata nella base di dati, identificabile con il record.

Esempio di modello relazionale

La maggior parte dei siti web usa un database MySQL. I dati sono organizzati in tabelle e il database è del tipo relazionale. Si può identificare una informazione con relazioni tra elementi che appartengono a tabelle differenti. L’utente gestirà in modo semplice la manutenzione del sito. Un software per la gestione aziendale organizza le informazioni in tabelle. Una azienda di produzione ad esempio avrà un database con:

  • Articoli
  • Magazzino Carico-Scarico
  • Distinta Base
  • Fornitori
  • Clienti
  • Ordini di Acquisto
  • Ordini di Vendita
  • Fatture di Acquisto
  • Fatture di Vendita

Il reparto Magazzino inserirà i dati nelle tabelle Articolo e Magazzino Carico-Scarico. La Produzione inserirà i dati nelle tabelle Ordini di Acquisto e Distinta Base. Il reparto Contabilità inserirà e gestirà le tabelle Ordini di Vendita e Fatture. A questo punto ci è chiaro che un database con il modello relazionale ci aiuta nella gestione complessa di problemi razionalizzando le informazioni e gestendo meglio l’accesso ai dati di numerosi utenti.

Potenzialità di MySQL

MySQL è il database di riferimento per il web. Così come per tutti i database relazionali può essere utilizzato per tantissime applicazioni. Non ha limiti di tabelle e può gestire miliardi di dati. Nel panorama attuale non è la soluzione indicata per lavorare sui cosidetti Big Data. MySQL non è stato progettato come soluzione specifica per i Big data. Comunque può essere usato per lavorare con grandi moli di dati organizzando bene la struttura delle tabelle e l’infrastruttura hardware. Ci sono dei moderni database che eseguono query complesse sui Big data e che sono in grado di scalare tra più core di una CPU. MySQL comunque regge bene il confronto. Ricordiamoci infine che MySQL è installabile su tutti i sistemi operativi:

  • Microsoft Windows client e server
  • GNU / Linux
  • Mac OSX
  • Sun OS
  • Solaris
  • NetBSD
  • OpenBSD
  • FreeBSD
  • Novell NetWare

Quelli sopra è un elenco semplificato di sistemi operativi su cui MySQL può essere installato. Ricordiamo inoltre che ci sono diversi tipi di MySQL Manager. Questi strumenti sono molto importanti per l’amministrazione del database MySQL. MySQL non ha un sistema di backup automatico nativo, ma ha una serie di strumenti per gestire backup pianificati tramite script come mysqldump, oppure con servizi gestiti come CloudSQL e Azure Database.