PDA

View Full Version : [SQL] un buon compilatore


sharkkk
24-01-2014, 11:59
Ciao a tutti,

mi sto avvicinando al linguaggio SQL e cercavo un buon programma gratuito, facile ed intuitivo, che dia la possibilità di creare piccoli database, ed effettuare query.

una domanda:
-è giusto definire questi programmi compilatori (anche se ho visto che vengono chiamati DBMS)?
-quando eseguo una query su un DB compilo un programma che viene convertito in codice oggetto come succederebbe per un sorgente C?
-i database come vengono gestiti su una macchina? esiste sempre uno stack dove avvengono le stesse operazioni che avvengono per esempio in C oppure avviene una gestione diversa?

:confused:

biowep
25-01-2014, 14:56
Se usi windows ti consiglio EasyPHP che è completo di php, mysql e phpmyadmin.
Con phpmyadmin puoi gestire il database tramite un'interfica grafica html (quindi tramite browser).

È sbagliato chiamarli compilatori, non centrano niente. Il mysql è un database management system, cioè un sistema che ti permette di gestire i databse (e con "gestire" si intende crearli, eliminarli, inserire determinati dati, visualizzare determinati dati esistenti).

Quando esegui una query semplicemente ti interfacci con il dbms tramite dei comandi testuali aventi sintassi sql. Quindi esternamente non compili niente ma invii del testo al programma dbms. Internamente è probabile che questa stringa venga codificata in qualche modo per essere analizzata più velocemente, ma non saprei dirti.

All'ultima domanda non so rispondere. Fatto sta che il database non risiede nella ram (non completamente almeno) ma viene salvato su memoria non volatile in modo che i dati rimangano. Comunque sono dettagli che cambiano da dbms a dbms.

einstein1969
25-01-2014, 15:36
Ciao a tutti,

mi sto avvicinando al linguaggio SQL e cercavo un buon programma gratuito, facile ed intuitivo, che dia la possibilità di creare piccoli database, ed effettuare query.

una domanda:
-è giusto definire questi programmi compilatori (anche se ho visto che vengono chiamati DBMS)?
-quando eseguo una query su un DB compilo un programma che viene convertito in codice oggetto come succederebbe per un sorgente C?
-i database come vengono gestiti su una macchina? esiste sempre uno stack dove avvengono le stesse operazioni che avvengono per esempio in C oppure avviene una gestione diversa?

:confused:

Le architetture dei motori di database relazionali sono in genere di tipo client/server.

il client e il server possono essere sulla stessa macchina o su macchine diverse collegate tra loro ovviamente.

Il server e' il DBMS ovvero il motore che gestisce la banca dati.

Il client e' un software che interroga la banca dati attraverso il linguaggio SQL per esempio.

Il client in genere invia la stringa SQL al server.

Il server fa il parsing della stringa e memorizza il parsing per non doverlo rifare ogni volta. Poi esegue la query e restituisce i dati al client.

Il client puo' essere scritto in qualsiasi linguaggio di programmazione compilato o anche tramite scripting (non necessariamente compilato)

Nel client utilizzi in genere una libreria o dei metodi di accesso al DB. Per esempio ODBC.

Riguardo l'ultima domanda possiamo dire che il server e' un'insieme di processi o thread e una zona di memoria condivisa tra i processi.

Questi processi funzionano come qualsiasi altro processo e accedono ai dati del database (banca dati in italiano). Utilizzano una zona di memoria condivisa per poter fare una cache e rendere l'accesso ai dati piu' veloce.

einstein1969