Scriptingweb.com - the code solution

Risorse, approfondimenti, supporto, analisi scripts

Home | Contattaci
Vai alla Home

MySql



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 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 Microsystem ha acquistato la società per un miliardo di dollari, stimando il mercato del database in 15 miliardi di dollari.

MySQL è scritto in C e C++ e viene testato con un ampia gamma di diversi compilatori, inoltre lavora su diverse piattaforme come:
* IBM AIX 4.x e 5.x
* Amiga
* FreeBSD 5.x e versioni superiori con threads nativi
* HP-UX 11.x e versioni superiori con threads nativi
* La maggior parte delle distribuzioni di Linux
* Mac OS X
* NetBSD 1.3/1.4 Intel e NetBSD 1.3 Alpha
* Novell NetWare 6.0 e 6.5
* OpenBSD 2.5 con threads nativi e OpenBSD nelle versioni precedenti alla 2.5 con il MIT-pthreads package
* SCO OpenServer 5.0.X con il recente porting del FSU Pthreads package
* SCO Openserver 6.0.x
* SCO UnixWare 7.1.x
* SGI Irix 6.x con threads nativi
* Solaris 2.5 e versioni superiori con i threads nativi su SPARC e x86
* Tru64 Unix
* Windows 2000, Windows XP, Windows Vista, Windows Server 2003, e Windows Server 2008


L’architettura di MySQL Server è multilivello con moduli indipendenti, inoltre è completamente multi-threads con la possibilità di utilizzare più CPU qualora disponibili. Fornisce Storage Engine sia transazionali che non-transazionali.Il motore originale di MySQL e’ costituito da una serie di librerie ISAM per l’accesso ai dati. L’efficenza dell’implementazione, la stabilità delle releases, la possibilità di utilizzo in rete e la distribuzione open source ne hanno decretato l’enorme successo. Si tratta del piu’ diffuso RDBMS per le applicazioni web.

MySQL è molto diffuso ed utilizzato nelle applicazioni per il web. Principalmente viene utilizzato insieme a PHP, per gestire appunto database di form, moduli, ed applicazioni interattive; tuttavia non sono infrequenti utilizzi di MySql con altri linguaggi di scripting lato server quali, ad es. Asp, Cgi, Perl, Jsp, etc.

MySQL permette al più centouno accessi contemporanei al database, un estrema velocità di accesso ai dati al suo interno, un’elevata sicurezza al fine di evitare accessi indesiderati e non autorizzati e la disponibilità di personalizzare il codice sorgente.

Caratteristiche più significative introdotte nel corso degli anni nelle versioni di MySql:
* La versione 4.0 ha introdotto le UNIONI (Unions) e il sistema di caching;
* La versione 4.1 ha introdotto le SUBQUERY, il supporto per OpenGIS, un maggior numero di storage engine (prima di questa versione erano supportati solo ISAM, MyISAM, INNODB) e un supporto molto scalabile per la localizzazione;
* La versione 5.0 ha introdotto STORED PROCEDURES, VISTE (Views), Cursors, TRANSAZIONI (Transactions), TRIGGERS, ulteriori storage engine;

Per gestire il linguaggio di interrogazione MySql, vi è bisogno di un sistema che permette di gestire l'amministrazione di esso; e qui ci vengono incontro i vari programmi e tool di gestione del database MySql.
Solitamente scritti in linguaggio PHP, questi Manager permettono di gestire tramite web browser i database contenuti in un server MySql.

Tra le varie operazioni che si possono compiere:
- creare o cancellare database;
- creare, copiare, cancellare, rinominare e modificare tabelle;
- manutenere le tabelle;
- rimuovere, modificare ed aggiungere campi;
- eseguire qualsiasi istruzione SQL, anche queries in modalità batch;
- gestire le chiavi (key) nei campi;
- caricare file di testo all'interno delle tabelle;
- creare e leggere dump (backup su file) di tabelle;
- esportare dati in formato CSV, XML e Latex;
- amministrare server multipli;
- gestire utenti e privilegi MySQL;
- verificare l'integrità referenziale delle tabelle in MyISAM;
- usare la modalità Query-by-example (QBE), per la creazione automatica di complesse queries collegando le tabelle richieste;
- creare PDF grafici del layout del Database;
- eseguire ricerche globali all'interno del database o in un sottoinsieme di quest'ultimo;
- trasformare i dati salvati in qualsiasi formato utilizzando un set di funzioni predefinite;
- supportare le tabelle e le chiavi esterne (straniere) InnoDB;
- offrire un'interfaccia grafica in 44 differenti lingue;


Tre le caratteristiche interessanti che possono avere, vi è il supporto multiutente, il quale permette di accedere a un database solo dopo autenticazione (http o cookie) e secondo i permessi dati all'utente sul server MySQL.
Il più famoso tra questi è phpMyAdmin, che permette di gestire il tutto tramite browser.

Tra i più conosciuti MySql Manager ci sono:
* phpMyAdmin: tool scritto in PHP che permette di operare tramite browser su un server MySQL;
* MySQL Administrator: tool ufficiale di amministrazione della MySQL AB;
* MySQL Query Browser: tool ufficiale di interrogazione database;
* MySQL Workbench: strumento visuale di disegno e di modellazione dati per database MySQL;
* SQL Yog: altro tool molto popolare, recentemente rilasciato in licenza Open Source;
* Heidi SQL: erede del noto MySQL Front, con una lunga storia dietro.


Per conoscere l'utilità e la funzionalità del MySql Proxy entra qui