MySQL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Pil56-bot (discussione | contributi)
m smistamento lavoro sporco e fix vari
m Corretto uso di virgole, parentesi e trattini alla moda anglosassone, ristrutturati alcuni periodi. Eliminate D eufoniche non necessarie. Apposti alcuni template CHIARIRE.
Riga 23:
|accesso=22 giugno 2014
|lingua=en
}}</ref> è un [[Relational database management system]] (RDBMS) composto da un [[client]] a [[riga di comando]] e un [[server]]. Entrambi i software sono disponibili sia per sistemi [[Unix]] e [[Unix-like]] chesia per [[Microsoft Windows|Windows]]; le piattaforme principali di riferimento sono [[Linux]] e [[Oracle Solaris (sistema operativo)|Oracle Solaris]].
 
MySQL è un [[software libero]] rilasciato a doppia licenza, compresa la [[GNU General Public License]], ed è sviluppato per essere il più possibile conforme agli standard ANSI [[SQL]] e ODBC SQL.<ref>
{{cita web
|titolo=Commercial License for OEMs, ISVs and VARs
Riga 85:
 
== 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 (informatica)|licenza]] commerciale. Fino alla versione 4.0, una buona parte del codice del client era licenziato con la [[GNU LGPL]] e potevaquindi dunquepoteva essere utilizzato anche per applicazioni proprietarie. Dalla versione 4.1 in poi, anche il codice del client è distribuito sotto GNU GPL. Esiste peraltro una [http://www.mysql.com/company/legal/licensing/foss-exception.html 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 [http://www.mysql.com/products/enterprise/ 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,<ref name=autogenerato1>{{en}} [http://www.sun.com/aboutsun/pr/2008-01/sunflash.20080116.1.xml Sun Microsystems Announces Agreement to Acquire MYSQL]</ref> stimando il mercato del database in 15 miliardi di [[dollaro|dollari]].
 
Il 20 aprile 2009 alla stessa Sun Microsystems è stata proposta l'acquisizione da parte di [[Oracle Corporation|Oracle]] per 7,4 miliardi di dollari. L'accordo, approvato dall'antitrust USA, è poi passato al vaglio degli organi corrispondenti dell'Unione Europea, preoccupati dalper il [[conflitto di interessi]] costituito dai database commerciali Oracle rispetto a MySQL. Il padre di 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<ref>{{cita web|url=http://finance.yahoo.com/news/Oracle-Completes-Acquisition-iw-2658323391.html?x=0&.v=1|editore=Yahoo Finance|titolo=Oracle Completes Acquisition of Sun|lingua=EN|data=27 gennaio 2010|accesso=4 febbraio 2010|urlmorto=sì}}</ref>. Il software [[MediaWiki]], che gestisce i siti del progetto [[Wikipedia]], è basato su database MySQL.
Il software [[MediaWiki]], che gestisce i siti del progetto [[Wikipedia]], è basato su database MySQL.
 
Il ramo 5.5 è il primo a includere estensioni non Open Source, disponibili solo nella versione Enterprise (a pagamento).<ref name=autogenerato1 /><ref>{{en}} [https://blogs.oracle.com/MySQL/entry/new_commercial_extensions_for_mysql New Commercial Extensions for MySQL Enterprise Edition]</ref>
 
A partire dal 2012, diverse distribuzioni Linux e alcuni utenti importanti (come Wikipedia<ref>{{cita web|url=https://blog.wikimedia.org/2013/04/22/wikipedia-adopts-mariadb/|titolo=Wikipedia Adopts MariaDB}}</ref>) hanno iniziato a sostituire MySQL con il fork [[MariaDB]]<ref>{{cita web|url=http://www.itwire.com/opinion-and-analysis/open-sauce/58571-monty-has-last-laugh-as-distros-abandon-mysql|titolo=Monty has last laugh as distros abandon MySQL}}</ref><ref>{{cita web|url=http://monty-says.blogspot.it/2013/02/mariadb-living-in-interesting-times.html|titolo=MariaDB living in interesting times}}</ref><ref>{{cita web|url=https://kb.askmonty.org/it/distribuzioni-che-includono-mariadb/|titolo=Distribuzioni che includono MariaDB}}</ref>.
 
== Sviluppo ==
Fino a {{Chiarire|qualche anno fa|sostituire il riferimento relativo con uno assoluto}} 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 {{Chiarire|società|Quale? -Ci sono state 2 acquisizioni}}, 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 {{Chiarire|società|Quale? Ci sono state 2 acquisizioni}}.
Da luglio 2007 la società impiega un centinaio di sviluppatori a tempo pieno.
 
== Versioni ==
===3.23===
La prima versione alfa del ramo 3.23.x è stata rilasciata nel luglio 1999. La prima {{Chiarire|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 fulltext]] e la replica dei database.
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 fulltext]] e la replica dei database.
===4.0===
Nell'ottobre 2001 è stata rilasciata la prima versione alfa del ramo 4.0.x, mentre nel marzo 2003 è entrata in produzione. Le aggiunte più significative sono:
Le aggiunte più significative sono:
* una [[cache]] per le query
* le query di tipo [[UNION]]
* [[DELETE]] multitabella
* migliorate le tabelle Merge perchéaffinché supportino le [[INSERT]] e i campi autoincrementanti
* limitazione delle risorse utilizzabili da ogni singolo utente
* variabili d'ambiente reimpostabili con il comando SET
Line 116 ⟶ 112:
 
===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 aggiunte più significative sono:
* le Subquery. Queste sono delle query [[SQL]] nidificate. Si ha dunque la possibilità di scrivere:
<source lang=sql>SELECT * FROM tabella1 WHERE colonna1 = (SELECT colonna1 FROM tabella2 LIMIT 1)</source>
Line 127 ⟶ 122:
 
===5.0===
Il 22 dicembre [[2003]] viene rilasciata la prima versione della serie 5.0, che è entrata in produzione il 19 ottobre [[2005]]. Le aggiunte più significative sono:
Le aggiunte più significative sono:
* Le [[Vista (modello relazionale)|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;
Line 139 ⟶ 133:
 
===5.1===
La prima versione [[Versione alpha|alfa]] pubblica è uscita il 29 novembre [[2005]]. Le principali nuove caratteristiche sono:
* Il partizionamento delle tabelle;
* Un'[[Application Programming Interface|API]] per scrivere nuovi [[parser]] per le ''ricerche FULLTEXT'';
Line 155 ⟶ 149:
 
===5.4===
Si tratta del primo ramo sviluppato sotto l'egida della Sun, - ora Oracle. Non è quindi un caso che questa versione abbia avuto come unico scopo l'ottimizzazione del server su sistemi Solaris e su hardware SPARC, nonché l'ottimizzazione di InnoDB -, in particolare della sua configurazione di default, che prima aveva notevoli difetti.
 
===5.5===
Line 162 ⟶ 156:
* La '''replicazione semisincrona''' fornisce una maggiore garanzia sui dati poiché il commit sulla base dati Master attende che almeno uno Slave abbia ricevuto le modifiche;
* Viene introdotto il '''Performance Schema''' che contiene numerose viste utili per il tuning della base dati;
* L'Engine '''InnoDB''' diventa il default, e vienene resovengono moltoincrementate piùle performanteprestazioni e viene reso scalabile sui moderni processori multicore.
 
===5.6===
È l'ultima versione rilasciata in produzione. Sono molte, di cui alcune molto attese, le nuove funzionalità della versione 5.6:
Sono molte, di cui alcune molto attese, le nuove funzionalità della versione 5.6:
* La gestione dei microsecondi e dei millisecondi nei datatype temporali e nei timestamp;
* La possibilità di controllare i dati della Host Cache (ede i relativi errori);
* Nuove viste, utili per il monitoraggio ed il tuning della base dati, nel Performance Schema e nell'Information Schema;
* La possibilità di escludere alcune directory dalla ricerca come nome di database;
Line 208 ⟶ 201:
{{vedi anche|MySQL Manager}}
[[File:PhpMyAdmin-main-it.png|thumb|Pagina iniziale di [[phpMyAdmin]]|300px]]
Esistono diversi tipi di [[MySQL Manager]], ovvero di strumenti per l'amministrazione di MySQL. Uno dei programmi più popolari per amministrare i database MySQL è [[phpMyAdmin]] che richiede un [[web server|server web]] come [[Apache HTTP Server]] e il supporto del linguaggio [[PHP]]. Si può utilizzare facilmente tramite un qualsiasi [[browser]].
Uno dei programmi più popolari per amministrare i database MySQL è [[phpMyAdmin]] (richiede un [[web server|server web]] come [[Apache HTTP Server]] ed il supporto del linguaggio [[PHP]]). Si può utilizzare facilmente tramite un qualsiasi [[browser]].
 
Alcune offerte di terze parti sono [[HeidiSQL]], [[SQLYog]] o [[Toad for MySQL]]. In alternativa la stessa MySQL AB offre programmi quali [[MySQL Administrator]] (amministrazione del database, degli utenti, operazioni pianificate, carico del server, ...) e [[MySQL Query Browser]] (esecuzione di svariati tipi di query), [[MySQL Migration Toolkit]] per importare da altri DBMS.
 
Per illa disegnoprogettazione e la modellazione di database MySQL esiste [[MySQL Workbench]]: integra il disegno, la modellazione, la creazione e l'aggiornamento di database in un unico ambiente di lavoro.
 
In passato veniva sviluppato anche [[MySQLcc]] (MySQL control center), sostituito da [[MySQL Query Browser]].
Line 261 ⟶ 253:
 
==Fork==
Alcuni [[Fork (sviluppo software)|fork]] sono nati in critica verso la poca apertura di MySQL ai contributi dei volontari esterni e la lentezza della pubblicazione dei fix dei [[bug]] fix segnalati.
 
===Drizzle===
{{vedi anche|Drizzle}}
Nato da Brian Aker tra l'aprile e il maggio del 2008, questo fork si propone come un DBMS leggero. Infatti, partendo da MySQL 6 alcuni sviluppatori hanno eliminato la maggior parte delle sue funzioni, mantenendo il cuore, ripulendolo e modificando la sua architettura. L'idea è quella di creare un [[microkernel]] con numerose interfacce che può utilizzare per caricare funzionalità esterne.
 
Durante il processo di pulizia il codice è arrivato a dimensioni inferiori ai 200 KB.{{Senza fonte}} Tra le funzionalità eliminate vi sono: stored procedure, viste, trigger, prepared statement, cache, MyISAM. Secondo gli sviluppatori, tutte queste funzionalità potrebbero essere reimplementate sotto forma di plugin, senza appesantire inutilmente gli utenti che non le utilizzano: nonostante queste caratteristiche siano insostituibili in particolari situazioni, ognuna di esse è completamente inutile per la quasi totalità degli utenti di MySQL.
 
===MariaDB===
{{vedi anche|MariaDB}}
Questo fork è stato creato da Monty Widenius nel 2009 dopo la sua fuoriuscita dalla Sun Microsystems, uscita dovuta in partesia a problemi con questa società e in partesia all'acquisizione della stessa da parte della concorrente Oracle.<ref>{{en}} [http://monty-says.blogspot.com/2009/12/help-keep-internet-free.html intervista a Widenius riguardo a Mysql ed al recente fork da lui creato: MariaDB]</ref> Quest'ultima motivazione ha portato molti dei principali sviluppatori di MySQL a seguire Widenius nel Monty Program, la nuova società da lui avviata per supportare il fork.
 
Il nome MariaDB è dovuto al fatto che inizialmente questo fork si focalizzava soprattutto sullo sviluppo dello storage engine Aria, (il cui vecchio nome era Maria, dedicatoin dedica alla terza figlia di Widenius), una sorta di evoluzione di MyISAM.
 
Sono state incluse patch realizzate da terze parti, in particolare prelevate dai fork di MySQL sviluppati da Google, Facebook e Twitter, nonché storage engine sviluppati da terze parti. Inoltre altre migliorie al server e alcuni storage engine aggiuntivi sono stati sviluppate appositamente, alcune evoluzioni sviluppate per MySQL sono state importate nel fork e alcuni bug presenti nel programma originale sono stati corretti.
Line 291 ⟶ 283:
Il fork nacque dalla constatazione che MySQL Community Edition era quasi defunto: secondo i contestatori, gli annunci ufficiali prospettavano solo due release annuali più qualche security fix, e dunque un utente avrebbe dovuto utilizzare MySQL Enterprise Edition, oppure rassegnarsi ad utilizzare prodotti superati.<ref>[http://www.mysqlperformanceblog.com/2008/07/01/should-we-proclaim-mysql-community-edition-dead/ Should we proclaim MySQL Community Edition Dead ? - MySQL Performance Blog<!-- Titolo generato automaticamente -->]</ref>
 
Il repository contiene le versioni, (anche datate), per tutti i sistemi operativi supportati da MySQL.
 
== Note ==