[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 603.   PostgreSQL: accesso attraverso PgAccess

PgAccess (1) (ovvero PostgreSQL Access) è un componente di una libreria Tcl/Tk: LibPgTcl. A volte viene distribuito come un pacchetto autonomo, che comunque dipende dalla libreria indicata, oppure viene incluso nello stesso pacchetto della libreria. PgAccess è un programma frontale (che utilizza l'interfaccia grafica) per accedere alle funzionalità di PostgreSQL.

Prima di poter utilizzare qualunque programma frontale per PostgreSQL, occorre ricordare di configurare correttamente PostgreSQL stesso, in modo che questo consenta gli accessi previsti.

PgAccess è costituito in pratica dall'eseguibile pgaccess, che si utilizza senza argomenti e si presenta inizialmente come si vede nella figura 603.1.

Figura 603.1. Finestra iniziale di PgAccess, quando viene avviato per la prima volta dall'utente.

pgaccess-inizio

Mentre lo si usa, PgAccess memorizza alcune informazioni nella directory ~/.pgaccess/ e questo fatto facilita successivamente le operazioni di accesso alla base di dati da parte dell'utente.

Purtroppo, l'uso di programmi come questo, che mediano la comunicazione con un DBMS attraverso delle finestre grafiche, può risultare più complicato della scrittura manuale del codice SQL necessario. In questo capitolo, le figure appartengono a versioni diverse del programma, perché alcune funzionalità essenziali della versione aggiornata, si sono rivelate inaffidabili.

603.1   Accesso alla base di dati

PostgreSQL è un DBMS in grado di gestire diverse basi di dati simultaneamente; pertanto, con PgAccess è necessario stabilire per prima cosa quale sia la base di dati. Dal menù {Database}, si seleziona la funzione {Open}, ottenendo la mascherina che si vede nella figura 603.2. Da lì si possono indicare tutte le informazioni necessarie alla connessione con la base di dati desiderata; in particolare, per quanto riguarda le informazioni sull'autenticazione, queste sono richieste solo in base al modo in cui sono stati regolati i permessi di accesso da parte di PostgreSQL.

Figura 603.2. Connessione alla base di dati nanodb, presso il nodo 172.17.1.254, come utente pgnanouser.

pgaccess-connessione-base-dati

Attraverso PgAccess non è possibile creare una base di dati. Per questo occorre usare le funzioni di PostgreSQL, descritto nel capitolo 601.

La base di dati aperta, assieme all'indicazione del nodo presso il quale si trova il DBMS con cui si interagisce, appare in basso, nella finestra principale di PgAccess.

Figura 603.3. Quando è attiva una connessione con una base di dati, lo si vede dalle informazioni che appaiono in basso nella finestra principale di PgAccess.

pgaccess-connessione-avvenuta

È importante ricordare che PgAccess tiene nota dell'ultima base di dati aperta attraverso i file di configurazione contenuti in ~/.pgaccess/; in questo modo la connessione viene ritentata automaticamente all'avvio del programma la volta successiva che lo si utilizza.

603.2   Gli «oggetti» secondo PgAccess

Dal punto di vista di PgAccess, una base di dati contiene degli «oggetti» (secondo la stessa filosofia di PostgreSQL). Questi possono essere delle relazioni, il risultato di interrogazioni SQL, delle viste, delle stampe o altro ancora.

Per intervenire su ognuno di questi oggetti basta selezionare la voce relativa che si trova sulla parte sinistra (nella figura 603.4 si vede selezionata la gestione delle «tabelle», ovvero delle relazioni).

Figura 603.4. L'aspetto di PgAccess quando viene evidenziata a sinistra la voce {Tables}.

pgaccess-tables

Premendo il tasto destro del mouse quando il puntatore si trova nel riquadro centrale, si ottiene un menù a scomparsa, con il quale è possibile modificare gli oggetti a cui fa riferimento la voce selezionata a sinistra; in alternativa, le stesse voci sono disponibili dal menù {Object}. In particolare, la voce {New} serve a creare un oggetto nuovo, {Open} serve ad accedervi e {Design} serve a modificarne la struttura (ammesso che ciò sia consentito in base al tipo di oggetto). Eventualmente è possibile anche modificare il nome dell'oggetto e visualizzarne la struttura.

PgAccess gestisce una serie aggiuntiva di oggetti rispetto a quanto fa PostgreSQL. Per realizzarli, PgAccess gestisce delle relazioni proprie, che non vengono mostrate all'utente, distinguibili per il fatto di avere un nome che inizia per pga_. In generale, queste relazioni hanno tutti i permessi di accesso per tutti gli utenti di PostgreSQL.

603.3   Relazioni

La figura 603.5 mostra l'esempio della creazione di una relazione molto semplice, per contenere una serie di indirizzi. Alla creazione della relazione, dopo avere selezionato la voce relativa a questo tipo di oggetto, si accede selezionando la voce {New} del menù {Object}.

Figura 603.5. Finestra per la creazione di una relazione.

pgaccess-creazione-tabella

Una volta creata la relazione (si ottiene questo confermando con il pulsante grafico <Create table>), il suo nome appare nella parte centrale della finestra principale del programma; per accedere al suo contenuto basta selezionare la voce {Open} dal menù Object, ottenendo così una tabella di scorrimento con la quale si possono aggiungere e modificare righe preesistenti. La figura 603.6 mostra l'inserimento di alcuni nomi. Si osservi in particolare il fatto che, eventualmente, si può richiedere espressamente l'aggiunta di una riga nuova premendo il terzo tasto del mouse.

Figura 603.6. Finestra per lo scorrimento del contenuto di una relazione.

pgaccess-scorrimento-tabella

Vale la pena di osservare che la maschera di scorrimento e inserimento dati nella relazione, permette di leggere le tuple in ordine, in base a un certo attributo, filtrando eventualmente le tuple in base a una condizione. Si stabilisce questo mettendo il nome di un attributo nella casella Sort field e mettendo l'espressione della condizione di filtro nella casella Filter conditions: se poi si seleziona il pulsante grafico <Reload> (che comunque appare come un'icona), si riottiene il contenuto ordinato e filtrato in base alle preferenze indicate.

603.4   Interrogazioni e viste

È possibile realizzare facilmente dei modelli di interrogazione e delle viste, attraverso la selezione delle voci {Queries} e {Views} (nella parte sinistra della finestra, sotto alla voce {Tables}). Nel primo caso si tratta di interrogazioni SQL che vengono memorizzate da PgAccess e richiamate a piacere, mentre nel secondo si tratta di viste vere e proprie. A livello operativo, con PgAccess le due cose sono praticamente identiche, per cui si passa generalmente per la creazione di un'interrogazione SQL che poi, eventualmente, si salva come vista. La figura 603.7 mostra la definizione dell'interrogazione Nominativi, abbinata al comando SELECT Cognome, Nome FROM "Indirizzi", scritto manualmente dall'utilizzatore.

Figura 603.7. Finestra per la creazione di un'interrogazione.

pgaccess-interrogazione-con-nome

Nella figura si può osservare che è disponibile una casella di selezione attraverso la quale si può richiedere di salvare come vista. In particolare, con il pulsante grafico <Save query definition> si salva il modello dell'interrogazione, con il nome fissato in alto; ma volendo, con il pulsante grafico <Visual designer>, si accede a una maschera per la definizione grafica dell'interrogazione, come si vede nella figura 603.8.

Figura 603.8. Finestra per la creazione visuale di un'interrogazione.

pgaccess-interrogazione-creazione-visuale

In alto appare una casella in cui si deve indicare il nome di una relazione da cui si vogliono prelevare i campi; una volta fatto, appare un riepilogo di questi campi, in un riquadro. Questi nomi possono essere trascinati con il puntatore del mouse, in basso, dove vengono elencati i campi da includere nell'interrogazione; se si sbaglia, gli elementi che si vogliono togliere possono essere cancellati premendo il tasto [Canc] ([Del] nelle tastiere inglesi). Nella figura mostrata, sono già stati trascinati e depositati i campi del nome e del cognome.

Al termine, se si è soddisfatti del risultato, si può confermare con il pulsante grafico <Save to query builder>, ritrovando poi nella finestra precedente l'interrogazione corrispondente alle scelte fatte, che può essere ritoccata a mano se lo si desidera. Nel caso dell'esempio mostrato, l'interrogazione SQL che si ottiene è:

select t0.nome, t0.cognome from "Indirizzi" t0

L'apertura di un'interrogazione o di una vista, genera lo scorrimento del risultato dell'interrogazione, oppure della vista, come si vede nella figura 603.10 che fa sempre riferimento agli esempi precedenti.

Figura 603.10. Scorrimento di una vista.

pgaccess-scorrimento-vista

603.5   Stampe

Con PgAccess è possibile definire anche delle stampe, nel senso di rapporti stampati contenenti il risultato di un'interrogazione SQL. La figura 603.11 mostra la finestra che si utilizza per questo scopo, dove è già iniziata la compilazione dello schema di stampa.

Figura 603.11. Creazione di un tabulato.

pgaccess-report-generator

Una volta selezionata la relazione da cui prelevare i campi, dopo aver indicato il nome del tabulato che si vuole generare, basta fare un clic con il tasto sinistro del mouse mentre si punta sul nome del campo che si vuole inserire sullo schema di destra (che rappresenta il modello della stampa). Una volta che sono apparsi i nomi nello spazio a destra, questi possono essere trascinati dove si vuole, eventualmente possono anche essere cancellati usando il tasto [Canc]. Nell'esempio della figura, si vede anche che è stato inserito un titolo.

Spostando il puntatore del mouse sullo spazio che rappresenta lo schema di stampa, si vede cambiare la sua descrizione in alto. Nella figura mostrata viene indicato Page footer, perché in quel momento il puntatore del mouse era nella penultima riga di quello schema.

Per verificare il risultato, è disponibile anche un'anteprima, che si ottiene selezionando il pulsante grafico <Preview>. Seguendo gli esempi precedenti, la figura 603.12 mostra questa anteprima. Da lì si può passare alla stampa, che però potrebbe limitarsi a generare un file PostScript.

Figura 603.12. Anteprima di stampa.

pgaccess-report-generator-anteprima

603.6   Riferimenti

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) PgAccess   software libero con licenza speciale


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome postgresql_accesso_attraverso_pgaccess.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!