[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


192. PostgreSQL: accesso attraverso PgAccess

PgAccess è 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 192.1.

147.jpg

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

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

Contrariamente a quello che ci si potrebbe aspettare, PgAccess è un programma frontale realizzato con molta cura e molto potente, che permette di sfruttare bene le potenzialità di PostgreSQL. Purtroppo è un po' difficile spiegare nel dettaglio il suo funzionamento; pertanto, lo scopo di questo capitolo è solo quello di permettere all'utilizzatore di cominciare, e di sapere come continuare. Con l'uso, i particolari del suo funzionamento dovrebbero rivelarsi senza troppi problemi.

192.1 Accesso alla base di dati

PostgreSQL è un DBMS in grado di gestire diverse base di dati simultaneamente, e per questo, con PgAccess è necessario stabilire per prima cosa quale sia la base di dati. Dal menu `Database', si seleziona la funzione `Open', e questo fa apparire la mascherina che si vede nella figura 192.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.

148.jpg

Figura 192.2: Connessione alla base di dati `prova', presso il nodo locale, utilizzando l'autenticazione predefinita.

Attraverso PgAccess non è possibile creare una base di dati. Per questo occorre usare il comando `createdb' di PostgreSQL, descritto nel capitolo 190.

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

149.jpg

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

È importante ricordare che PgAccess tiene nota dell'ultima base di dati aperta attraverso il file di configurazione `~/.pgaccessrc', e in questo modo la connessione viene ritentata automaticamente all'avvio del programma la volta successiva che lo si utilizza. Tuttavia, questo particolare del funzionamento di PgAccess può essere configurato attraverso la funzione {Preferences} del menu {Database}.

192.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 tabelle, il risultato di interrogazioni SQL, delle viste, delle stampe, ecc.

Per intervenire su ognuno di questi oggetti basta selezionare la voce relativa che si trova sulla parte sinistra (nella figura 192.3 si vede selezionata la gestione delle tabelle). Nel riquadro centrale c'è lo spazio per elencare i nomi degli oggetti di quel tipo che risultano presenti, mentre sopra appaiono alcuni pulsanti grafici che si riferiscono alle cose che si possono fare con tali oggetti.

Evidentemente, il pulsante grafico >New< serve a creare un oggetto nuovo, mentre >Open< serve ad accedervi, e >Design< serve a modificarne la struttura (ammesso che ciò sia consentito in base al tipo di oggetto). Tuttavia, il menu {Object} offre altre possibilità, per esempio la modifica del nome dell'oggetto, e la visualizzazione della sua struttura.

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

192.3 Tabelle

La figura 192.4 mostra l'esempio della creazione di una tabella molto semplice, per contenere una serie di indirizzi. In particolare si può osservare il fatto che PgAccess abbia convertito opportunamente la lettera «à» nella sequenza `\xe0'. Alla creazione della tabella, dopo avere selezionato la voce relativa a questo tipo di oggetto, si accede selezionando il pulsante grafico >New<.

150.jpg

Figura 192.4: Finestra per la creazione di una tabella.

Una volta creata la tabella (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 il pulsante grafico >Open<, e quello che si ottiene è una tabella di scorrimento con la quale si possono aggiungere e modificare righe preesistenti. La figura 192.5 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.

151.jpg

Figura 192.5: Finestra per lo scorrimento del contenuto di una tabella.

Vale la pena di osservare che la maschera di scorrimento e inserimento dati nella tabella, permette di leggere le righe in ordine, in base a una certa colonna, e anche di filtrare le righe in base a una condizione. Si stabilisce questo mettendo il nome di una colonna nella casella `Sort field', e mettendo l'espressione della condizione di filtro nella casella `Filter conditions': se poi si seleziona il pulsante grafico >Reload<, si riottiene il contenuto ordinato e filtrato in base alle preferenze indicate.

192.4 Interrogazioni e viste

È possibile realizzare facilmente dei modelli di interrogazione e delle viste, attraverso la selezione delle voci >Queries< e >Views<. 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, e in generale si passa per la creazione di un'interrogazione SQL che poi, eventualmente, si salva come vista. La figura 192.6 mostra la definizione dell'interrogazione `Nominativi', abbinata al comando `SELECT Cognome, Nome FROM "Indirizzi"', scritto manualmente dall'utilizzatore.

152.jpg

Figura 192.6: Finestra per la creazione di un'interrogazione.

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 192.7.

153.jpg

Figura 192.7: Finestra per la creazione visuale di un'interrogazione.

In alto appare una casella in cui si deve indicare il nome di una tabella 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, e 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<, e nella finestra precedente si ritroverà 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 192.8 che fa sempre riferimento agli esempi precedenti.

154.jpg

Figura 192.8: Scorrimento di una vista.

192.5 Stampe

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

155.jpg

Figura 192.9: Creazione di un rapporto.

Una volta selezionata la tabella da cui prelevare i campi, e dopo aver indicato il nome del rapporto 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, e anche 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 192.10 mostra questa anteprima. Da lì si può passare alla stampa, che però potrebbe limitarsi a generare un file PostScript.

156.jpg

Figura 192.10: Anteprima di stampa.

192.6 Riferimenti

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]