See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
MySQL - Wikipedia

MySQL

Da Wikipedia, l'enciclopedia libera.


MySQL
Sviluppatore Sun Microsystems
Ultima versione 5.0.45 / 4 luglio 2007
SO Multipiattaforma
Genere RDBMS
Licenza GNU GPL o Licenza commerciale
Sito web http://www.mysql.com/

MySQL è un database management system (DBMS) relazionale, composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix.

Dal 1996 supporta la maggior parte della sintassi SQL e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java e un driver per Mono e .NET.

Il codice di MySQL viene sviluppato fin dal 1979 dalla ditta TcX ataconsult, adesso MySQL AB, ma è solo dal 1996 che viene distribuita una versione che supporta SQL, prendendo spunto da un altro prodotto: mSQL.

Il codice di MySQL è di proprietà della omonima società, viene però distribuito con la licenza GNU GPL oltre che con una licenza commerciale. Fino alla versione 4.0, una buona parte del codice del client era licenziato con la GNU LGPL e poteva dunque essere utilizzato per applicazioni commerciali. Dalla versione 4.1 in poi, anche il codice dei client è distribuito sotto GNU GPL. Esiste peraltro una clausola estensiva che consente l'utilizzo di MySQL con una vasta gamma di licenze libere.

MySQL svolge il compito di DBMS nella piattaforma LAMP, una delle più usate e installate su Internet per lo sviluppo di siti e applicazioni web dinamiche.

Nel luglio 2007 la società svedese MySQL AB ha 385 dipendenti in 265 paesi. I suoi principali introiti provengono 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,[1] stimando il mercato del database in 15 miliardi di dollari.

Il software MediaWiki, che gestisce i siti del progetto Wikipedia, è basato su database MySQL.

Indice

[modifica] Amministrazione

Per approfondire, vedi la voce MySQL Manager.
phpMyAdmin
phpMyAdmin

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 (richiede un 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 o SQLYog. 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. In passato veniva sviluppato anche MySQLcc (MySQL control center), sostituito da MySQL Query Browser.

[modifica] 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à. Attualmente (Luglio 2007) la società impiega un centinaio di sviluppatori a tempo pieno.

[modifica] Versioni

[modifica] 3.23

La prima versione alfa del ramo 3.23.x è stata rilasciata 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 fulltext e la replica dei database.

[modifica] 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:

  • una cache per le query
  • le query di tipo UNION
  • DELETE multitabella
  • migliorate le tabelle Merge perché 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

[modifica] 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:
SELECT * FROM tabella1 WHERE  colonna1 = (SELECT colonna1 FROM tabella2)
  • dati geografici memorizzati secondo il modello OpenGIS
  • i Prepared Statements
  • le connessioni SSL
  • set di caratteri impostabili a livello di database, tabella e colonna; aggiunto il supporto per Unicode (UTF8 e UCS2)
  • commenti a livello di colonna

[modifica] 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 viste, tabelle virtuali ricavate da una query SQL, aggiornabili quando possibile
  • le stored procedures, 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

[modifica] 5.1

La prima alfa pubblica è uscita il 29 novembre 2005 e attualmente è in fase beta. Le principali nuove caratteristiche sono:

  • il partizionamento delle tabelle
  • un'API per scrivere nuovi parser per le ricerche FULLTEXT
  • gli eventi
  • replica basata sui dati (anziché sulle query)
  • i log possono essere scritti in un database, oltre che nei file di testo
  • supporto per Xpath
  • campi AUTOINCREMENT e varie ottimizzazioni per le tabelle ARCHIVE
  • ClusterDB ora può scrivere i dati su disco, oltre che conservarli nella RAM; supporta inoltre MontaVista
  • ALTER TABLE, CREATE INDEX e DROP INDEX sono molto più performanti

[modifica] 5.2

La versione 5.2 è in fase alfa e le principali novità sono il nuovo storage engine Falcon e il backup online. Falcon viene al momento sviluppato in una release separata che ha il numerico 6.0, e che verrà integrata con l'attuale 5.2 al termine dello stage alpha.

[modifica] Tipi tabelle MYSQL (storage engine)

In MySQL una tabella può essere di diversi tipi (o storage engine). Ogni tipo di tabella presenta proprietà e caratteristiche differenti (transazionale o meno, migliori prestazioni, diverse strategie di locking, funzioni particolari, ecc). Esiste poi un'API che si può utilizzare per creare in modo relativamente facile un nuovo tipo di tabella, che poi si può installare senza dover ricompilare o riavviare il server.

[modifica] Storage Engine ufficiali

I tipi di tabella predefiniti sono:

  • MyISAM
  • InnoDB (transazionale, sviluppata da InnoBase Oy, società ora comprata da Oracle)
  • Memory (una volta si chiamava Heap)
  • Merge
  • NDB, o ClusterDB (introdotta nella 5.0)
  • CSV (introdotta nella 5.1)
  • Federated (introdotta nella 5.0)
  • Archive (introdotta nella 5.0)
  • Blackhole (introdotta nella 5.0)
  • Falcon (transazionale, è ancora in sviluppo)

[modifica] Storage Engine Obsoleti

  • Isam (non più supportata; era il motore di default prima di essere sostituita da MyIsam)
  • BDB (transazionale, sviluppata da SleepyCat, società ora acquisita da Oracle; dalla versione 5.1.12 non è più presente in MySQL)

[modifica] Storage Engine prodotti da terze parti

Esistono anche storage engine prodotti da terze parti. Eccone alcuni:

  • PrimeBase XT Engine - Motore transazionale progettato per applicazioni web ad alta concorrenza
  • solidDB - Motore transazionale
  • RitmarkFS - Permette di accedere al filesystem in lettura e in scrittura tramite comandi SQL, supporta anche la replica del filesystem
  • Distributed Data Engine - Motore per dati distribuiti, per gestire meglio il carico di lavoro
  • mdbtools - Permette di leggere e scrivere un file .mdb (Access)

Una volta esisteva il tipo Gemini, sviluppato dalla NuSphere. Poiché però il suo codice non è mai stato rilasciato, MySQL ha intentato una causa legale, in seguito alla quale lo sviluppo e il supporto per Gemini sono cessati.

[modifica] Compatibilità

MySQL, essendo scritto in linguaggio C e C++, è disponibile su molti differenti sistemi operativi tra cui AIX, AmigaOS, BSDi, Digital Unix, FreeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, SGI Irix, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Vista.

Le piattaforme di riferimento sono Linux e Solaris. La documentazione di MySQL offre comunque un aiuto per chi avesse bisogno di provare a compilare il software su qualsiasi sistema operativo discretamente diffuso.

MySQL utilizza anche i tool automake, autoconf e libtools per aumentare la compatibilità.

Le tabelle di tipo BDB funzioneranno solo sui seguenti sistemi operativi: GNU/Linux 2.x Intel, Solaris (SPARC and x86), FreeBSD 4.x/5.x (x86, sparc64), AIX 4.3.x, SCO OpenServer, SCO UnixWare 7.1.x

Sono disponibili dei driver per i linguaggi C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, Tcl e per le piattaforme Mono e .Net.

Infine, il linguaggio SQL di MySQL comprende numerose estensioni che sono tipiche di altri DBMS, quali PostgreSQL, Oracle e Sybase. In questo modo le query non standard scritte per altri DBMS in alcuni casi funzioneranno senza problemi.

[modifica] Note

[modifica] Voci correlate

[modifica] Collegamenti esterni


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -