- Learn
- Guida linguaggio SQL
- Strumenti per interagire con un DBMS
Strumenti per interagire con un DBMS
Come si e’ detto, l’interazione con un database relazionale avviene normalmente utilizzando istruzioni SQL. L’invio delle istruzioni al DBMS puo’ avvenire in due modi:
- invocazione interattiva
- invocazione tramite un programma applicativo
Nel primo caso viene utilizzato un programma il cui scopo e’ quello di
ricevere in input le istruzioni SQL, trasmetterle al DBMS e visualizzare
i risultati all’utente. Normalmente tutti i DBMS mettono a disposizione
un programma, di solito di tipo testuale, con tali funzionalita’.
Nel caso di PostgreSQL, il DBMS che utilizzero’ per implementare il database
di esempio, il programma si chiama “psql”. La sintassi da utilizzare per
invocarlo in modalita’ interattiva e’ la seguente:
psql [ dbname [ user ] ]
“dbname” e’ il nome del database a cui si vuole accedere, mentre “user” e’ il nome dell’utente con cui si vuole accedere al database. Ad esempio, il comando:
psql mydb benfante
attiva il programma psql, accedendo al database mydb come utente benfante. Se tutto e’ andato bene, in particolare se il database esiste e l’utente ha i permessi necessari per accedervi, psql mostra un prompt simile al seguente:
mydb=>
A questo punto si possono digitare i comandi SQL (terminandoli con un “;” o con il meta-comando “g” (go) per farli eseguire) e leggere sullo schermo i risultati che producono.
Normalmente i programmi come psql possono essere utilizzati anche in maniera non-interattiva. Ad esempio, invocando psql col seguente comando:
psql -f istruzioni.sql mydb benfante
il programma esegue le istruzioni SQL contenute nel file istruzioni.sql e termina immediatamente dopo. In questo modo e’ possibile automatizzare operazioni che devono essere ripetute di frequente o, comunque, che sono composte da lunghe sequenze di comandi SQL, senza doverle digitare manualmente ogni volta.
Nel caso dell’invocazione delle istruzioni SQL tramite un programma applicativo, esse sono eseguite nel corso dell’esecuzione di tale programma ed i risultati vengono utilizzati dal programma per produrre il suo output. In questa situazione l’utente non sottopone direttamente i comandi SQL e potrebbe anche non essere a conoscenza che il programma che sta utilizzando accede ad un database relazionale: l’unica cosa che vede e’ l’interfaccia che l’applicazione gli mette a disposizione. Abbiamo sostanzialmente due sistemi per scrivere applicazioni di questo tipo:
- utilizzare una libreria che gestisca la comunicazione con il DBMS, trasmetta le istruzioni SQL e ci permetta di manipolare i risultati prodotti. Librerie di questo tipo sono ad esempio JDBC e ODBC. Spesso i produttori dei DBMS forniscono delle librerie proprietarie, che sono specifiche per il loro prodotto. Ad esempio, nel caso di PostgreSQL la libreria per il linguaggio C si chiama “libpq”. Spesso si cerca di non utilizzare librerie proprietarie perche’ le applicazioni risultano molto specifiche (funzionano solo con il database per cui la libreria e’ stata costruita). Invece utilizzando librerie “standard” come JDBC o ODBC le applicazioni funzioneranno con qualunque DBMS che esponga l’interfaccia richiesta dalla libreria (a meno di non utilizzare funzionalita’ specifiche del DBMS).
- utilizzare l’Embedded SQL (ESQL). In questo caso il codice SQL viene inglobato nel codice di un linguaggio ospite e vengono utilizzati i normali meccanismi del linguaggio per il passaggio dei parametri e l’utilizzo dei risultati. Normalmente il codice cosi’ prodotto viene prima convertito da un pre-processore e in seguito compilato dal compilatore del linguaggio ospite. Un ulteriore vantaggio nell’utilizzare l’ESQL risiede nel fatto che esiste uno standard ANSI che descrive come esso dovrebbe funzionare. In questo modo e’ possibile che un programma scritto per un determinato DBMS possa essere ricompilato e funzionare anche per un altro. PostgreSQL mette a disposizione un pre-processore ESQL per il linguaggio C (ecpg).
Nelle successive lezioni utilizzeremo psql per inviare le istruzioni SQL che implementeranno, popoleranno e interrogheranno il database d’esempio. Nell’ultima lezione verra’ invece presentata un’applet Java che utilizzera’ la libreria JDBC per consultare il database bibliografico.
Se vuoi aggiornamenti su Database inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Sviluppare giochi per Windows 8
In questo video vediamo una serie di suggerimenti pratici, tecnologie e best practices per realizzare e mettere un video game […]