MySQL
MySQL o Oracle MySQL (AFI: /maɪ ˌɛskjuːˈɛl/ "My S-Q-L") è un relational database management system (RDBMS) composto da un client a riga di comando e un server. Ambo i costituenti sono multipiattaforma e sono disponibili ufficialmente su tutte le distribuzioni conosciute, quali Debian, Ubuntu e…
MySQL o Oracle MySQL (AFI: /maɪ ˌɛskjuːˈɛl/ "My S-Q-L") è un relational database management system (RDBMS) composto da un client a riga di comando e un server. Ambo i costituenti sono multipiattaforma e sono disponibili ufficialmente su tutte le distribuzioni conosciute, quali Debian, Ubuntu e CentOS, sebbene lo abbiano sostanzialmente sostituito con MariaDB a partire dal 2012.
È software libero pubblicato a doppia licenza, compresa la GNU General Public License, sviluppato per essere il più possibile conforme agli standard ANSI SQL e ODBC SQL. I sistemi e i linguaggi di programmazione che lo supportano sono molto numerosi, fra cui ODBC, Java, Mono, .NET, PHP, Python.
Storia
Il codice sorgente di MySQL era inizialmente di proprietà della società MySQL AB, veniva però distribuito con la licenza GNU GPL oltre che con una licenza che prevedeva assistenza commerciale. Fino alla versione 4.0, una buona parte del codice del client era licenziato con la GNU LGPL e quindi poteva essere utilizzato anche per applicazioni proprietarie. Dalla versione 4.1 in poi, anche il codice del client è distribuito sotto GNU GPL. Esiste peraltro una clausola estensiva che consente l'utilizzo di MySQL con una vasta gamma di licenze libere.
Nel luglio 2007 la società svedese MySQL AB aveva 385 dipendenti in numerosi paesi. I suoi principali introiti provenivano dal supporto agli utilizzatori di MySQL tramite il pacchetto Enterprise, dalla vendita delle licenze commerciali e dall'utilizzo da parte di terzi del marchio MySQL. Il 16 gennaio 2008 Sun Microsystems ha acquistato la società per un miliardo di dollari, stimando il mercato del database in 15 miliardi di dollari.
Il 20 aprile 2009 alla stessa Sun Microsystems è stata proposta l'acquisizione da parte di Oracle per 7,4 miliardi di dollari. L'accordo, approvato dall'antitrust USA, è poi passato al vaglio degli organi corrispondenti dell'Unione Europea, preoccupati per il conflitto di interessi costituito dai database commerciali Oracle rispetto a MySQL. Michael Widenius, il padre di MySQL, ha lanciato una petizione online per opporsi alla fusione. Nonostante ciò l'Unione europea ha dato parere favorevole e l'acquisizione è stata completata il 27 gennaio 2010.
Il ramo 5.5 è il primo a includere estensioni non Open Source, disponibili solo nella versione Enterprise a pagamento.
A partire dal 2012 diverse distribuzioni Linux e alcuni utenti importanti come Wikipedia hanno iniziato a sostituire MySQL con il fork MariaDB.
Sviluppo
Fino a qualche anno fa lo sviluppo del programma era opera soprattutto dei suoi sviluppatori iniziali: David Axmark, Allan Larsson e Michael Widenius. Quest'ultimo era il principale autore del codice, oltre che principale socio della società, e tuttora coordina il progetto, tra l'altro vagliando i contributi che pervengono dai volontari. I contributi vengono accettati a condizione che il loro autore condivida i diritti d'autore con la società.
Caratteristiche
L'Internet Assigned Numbers Authority ha formalmente assegnato al server MySQL la porta TCP 3306.
3.23
La prima versione alfa del ramo 3.23.x è stata pubblicata nel luglio 1999. La prima versione di produzione è del gennaio 2001. Nelle versioni 3.23.x sono stati aggiunti i tipi di tabella MyISAM (che rimpiazza il vecchio Isam), HEAP (ora MEMORY), InnoDB e BDB. Inoltre sono state aggiunte la ricerca full text e la replica dei database.
4.0
Nell'ottobre 2001 è stata pubblicata la prima versione alfa del ramo 4.0.x, mentre nel marzo 2003 è entrata in produzione. Le aggiunte più significative sono:
una cache per le query
le query di tipo UNION
DELETE multitabella
migliorate le tabelle Merge affinché supportino le INSERT e i campi autoincrementanti
limitazione delle risorse utilizzabili da ogni singolo utente
variabili d'ambiente reimpostabili con il comando SET
una libreria per incorporare le funzioni di MySQL in un altro programma
4.1
La prima versione del ramo 4.1.x risale all'aprile 2003, mentre nell'ottobre del 2004 è entrato in produzione. Le aggiunte più significative sono:
le Subquery. Queste sono delle query SQL nidificate. Si ha dunque la possibilità di scrivere:
Dati geografici memorizzati secondo il modello OpenGIS;
I Prepared Statements;
Le connessioni SSL/TLS;
Set di caratteri impostabili a livello di database, tabella e colonna; aggiunto il supporto per Unicode (UTF8 e UCS2);
Commenti a livello di colonna.
5.0
Il 22 dicembre 2003 viene pubblicata la prima versione della serie 5.0, che è entrata in produzione il 19 ottobre 2005. Le aggiunte più significative sono:
Le viste, tabelle virtuali ricavate da una query SQL, aggiornabili quando possibile;
Le stored procedure, un vero e proprio linguaggio di programmazione per interagire con i dati del database. Oltre ai soliti parametri di ricerca e selezione è possibile inserire costrutti [IF... THEN... ELSE], tanto per fare un esempio;
I trigger, istruzioni SQL che vengono lanciate automaticamente prima o dopo l'esecuzione di determinate query su determinate tabelle
INFORMATION_SCHEMA, un database virtuale che descrive la struttura di tutti gli altri database; inoltre i comandi SHOW, che anch'essi restituiscono informazioni sulla struttura dei database, sono stati potenziati;
Il tipo di dati BIT;
Gestione appropriata del fuso orario (timezone);
I tipi di tabella Archive e Federated;
Un'API ben strutturata per sviluppare nuovi tipi di tabelle.
MCMX
