Negli articoli precedenti si è parlato di database e SQL, come abbiamo detto il software di database (DBMS o Database Management System) si occupa effettivamente di fare tutto il lavoro di archiviazione, recupero, gestione, manipolazione dei dati. MySQL, è un DBMS; in altre parole è un software di database.
MySQL esiste da molto tempo e oggi è possibile trovarlo in milioni di installazioni sparse in tutto il mondo.
Perché cosi tante strutture e sviluppatori utilizzano MySQL?
Eccovi alcuni motivi:
- Prestazioni: MySQL è veloce.
- Costo: MySQL è open source e solitamente è possibile utilizzare (e anche modificare) liberamente il software senza doverlo pagare.
- Semplicità: MySQL è semplice da installare e mettere in funzione.
- Affidabilità: MySQL viene utilizzato da alcune tra le più importanti strutture e siti Web, che affidano a questo sistema i loro dati più important .
L’ unica critica tecnica concreta che si può rivolgere a MySQL è che non ha sempre supportato caratteristiche e funzioni offerte da altri DBMS; tuttavia la situazione stà cambiando (anche se lentamente), poiché con ogni nuova versione vengono continuamente aggiunte nuove funzioni.
I software client-server
I DBMS si dividono in due categorie:
- basati su file condivisi,
- client-server.
I primi (che comprendono prodotti come Microsoft Access e File-Maker) sono pensati per un utilizzo desktop e solitamente non vengono utilizzati per applicazioni più delicate o di livello superiore.
Database come MySQL, Oracle e Microsoft SQL Server, sono database client-server; tipicamente le applicazioni client-server sono divise in due parti:
- parte server: è un software responsabile di tutti gli accessi ai dati e della loro manipolazione; tale software viene eseguito su un computer noto come “server di database”.
Il software server è l’ unico a interagire con i file di dati, tutte le richieste di dati, di aggiunta o di cancellazione o di aggiornamento degli stessi vengono inviate al software server,
Queste richieste provengono dai computer su cui viene eseguito il software client. - parte client: è il software con cui l’utente interagisce, se si richiede un elenco alfabetico di prodotti, per esempio, il software client invia una richiesta al software server attraverso la rete.
Il software server elabora la richiesta; quindi filtra, scarta e ordina come richiesto; infine invia il risultato al software client.
I software client e server possono essere installati su due computer o su uno solo; senza distinzione, per ogni interazione con il database il software client comunica con il software server, che si trovino o meno sulla stessa macchina.
Tutte queste operazioni avvengono in modo trasparente per l’ utente; il fatto che questi dati siano archiviati altrove, o che esista un database server che esegue tutta l’elaborazione, non viene mostrato.
L’ accesso diretto ai file non è mai necessario, di fatto la maggior parte delle reti è configurata in modo tale che gli utenti non abbiano accesso diretto ai dati o ai dischi su cui sono archiviati.
Perché questo è importante? Perché per poter lavorare con MySQL è necessario avere accesso a computer che stiano eseguendo sia il software server MySQL, sia il software client MySQL con cui inviare i comandi a MySQL:
- Il software server è il DBMS di MySQL, è possibile eseguire una copia installata in locale, oppure ci si può connettere a una copia eseguita su un server remoto a cui si ha accesso.
- Il client può essere uno strumento fornito con MySQL, un linguaggio di scripting (come Perl), un linguaggio di sviluppo per applicazioni Web (quali ASP, PHP e altri), un linguaggio di programmazione (quali C, C++ e Java) o altro.
Gli strumenti MySQL
Come abbiamo detto, MySQL è un DBMS client-server, quindi per utilizzarlo è necessario un client, ovvero un’applicazione che di utilizza per interagire con MySQL (per impartire i comandi da eseguire); è possibile utilizzare molti client diversi, ma quando si apprende MySQL la soluzione migliore è quella dell’ utilizzo di una utility sviluppata appositamente per tale scopo, come abbiamo detto nell’ articolo precedente esistono 3 strumenti in particolare che meritano di essere citati e analizzati.
Utility MySQL a riga di comando
Ogni installazione di MySQL dispone della utility a riga di comando chiamata mysql, questa utility non presenta nè un menù, nè un’ interfaccia grafica, nè supporto del mouse o funzioni simili.
Scrivendo mysql nella riga di comando del proprio sistema operativo compare un semplice messaggio dall’ aspetto molto simile a quello indicato qui di seguito:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 5.0.45-nt MySQL Community Edition (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Se ci limitiamo a scrivere solo mysql, si può ottenere un messaggio d’errore, tra le cause si trovano la necessità di privilegi di accesso, o il fatto che MySQL non è attivo in locale o sulla porta predefinita.
MySQL accetta una serie di parametri a riga di comando che è possibile utilizzare, per ottenere l’elenco completo bisogna utilizzare il comando:
mysql -help
Da notare quando si utilizza il prompt a riga di comando che:
- Le espressioni vengono immesse dopo il prompt mysql> .
- Le espressioni terminano con ; o \g; (in poche parole con la semplice pressione di invio l’espressione non viene elaborata)
- Scrivendo help o \h si richiama l’aiuto; è anche possibile immettere ulteriore testo per richiamare l’aiuto su espressioni specifiche (per esempio con help select si ottiene la spiegazione dell’ utilizzo del comando SELECT).
- Immettendo quit o exit si esce dall’ utility a riga di comando.
MySQL Administrator
MySQL Administrator è un client grafico interattivo studiato per semplificare l’amministrazione dei server MySQL.
MySQL Administrator richiede le informazioni di server e accesso (e consente di salvare i dati relativi al server per selezionarlo velocemente in seguito), quindi mostra alcune icone che consentono di selezionare delle schermate diverse.
Tra le quali troviamo:
- Server Information: mostra informazioni di stato e di versione su server e client collegati.
- Service control: consente di interrompere e avviare l’esecuzione di MySQL, oltre a specificare le funzioni del server.
- User Administration: consente di definire utenti , accessi e privilegi su MySQL
- Catalogs: elenca i database disponibili e consente la creazione di database e tabelle.
Il menù Tools di MySQL Administrator contiene opzioni per avviare l’ utility a riga di comando mysql (descritta in precedenza) e MySQL Query Browser (che descriveremo adesso).
Di fatto anche MySQL Query Browser contiene voci di menù per avviare l’ utility a riga di comando mysql e MySQL Administrator.
MySQL Query Browser
MySQL Query Browser è un client grafico interattivo per eseguire espressioni MySQL.
MySQL Query Browser richiede le informazioni di server e accesso (le definizioni salvate vengono condivise traMySQL Administrator e MySQL Query Browser).
Alcune cose da ricordare usando MySQL Query Browser:
- Le espressioni MySQL vengono inserite nella finestra nella parte superiore dello schermo, quando è stata immessa una stringa basta far click sul pulsante Execute affinché MySQL la elabori.
- I risultati se esistenti vengono mostrato in una griglia nell’area più grande a sinistra nello schermo.
- Si possono elaborare più stringhe e risultati in pannelli separati, per potersi spostare rapidamente tra essi.
- Nella parte destra dello schermo è presente un pannello che elenca tutti i datasource disponibili; è sufficiente espandere un datasource per visualizzare le tabelle in esso contenute, ed espandere una tabella per visualizzarne le colonne.
- Si possono anche selezionare tabelle e colonne affinché MySQL Query Browser scriva le stringhe MySQL per noi
- A destra del pannello Schermata abbiamo un pannello Histrory che mantiene una cronologia delle stringhe MySQL eseguite.
Con MySQL Query Browser possiamo anche eseguire script salvati in precedenza o fatti da altri, basta selezionare la voce Open Script dal menù File, scegliere lo script e fare click sul pulsante Execute.