18.2. Lesson: Utilizzo di DB Manager per lavorare con i Database Spaziali in QGIS
Abbiamo già visto come eseguire molte operazioni sui database con QGIS così come con altri strumenti, ma ora è il momento di guardare lo strumento DB Manager che fornisce molte di queste stesse funzionalità così come strumenti di gestione più avanzati.
Obiettivo di questa lezione: Imparare a interagire con i database spaziali usando il QGIS DB Manager.
18.2.1. Follow Along: Gestione dei database PostGIS con DB Manager
Dovresti prima aprire l’interfaccia DB Manager selezionando Database –> DB Manager… nel menu o selezionando l’icona DB Manager sulla barra degli strumenti.
Dovresti già vedere le connessioni precedenti che abbiamo configurato ed essere in grado di espandere la sezione myPG
e il suo schema public
per vedere le tabelle con cui abbiamo lavorato nelle sezioni precedenti.
La prima cosa che puoi notare è che ora puoi vedere alcuni metadati sugli schemi contenuti nel tuo database.
Gli schemi sono un modo di raggruppare tabelle di dati e altri oggetti in un database PostgreSQL e un contenitore per permessi e altri vincoli. La gestione degli schemi PostgreSQL va oltre lo scopo di questo manuale, ma si possono trovare maggiori informazioni su di essi in PostgreSQL documentation on Schemas. Puoi usare il DB Manager per creare nuovi schemi, ma avrai bisogno di usare uno strumento come pgAdmin III o l’interfaccia a riga di comando per gestirli efficacemente.
DB Manager può anche essere usato per gestire le tabelle all’interno del tuo database. Abbiamo già visto vari modi per creare e gestire tabelle nella linea di comando, ma ora vediamo come fare questo in DB Manager.
Per prima cosa, è utile guardare i metadati di una tabella cliccando sul suo nome nell’albero e consultando la scheda Informazioni.
In questo pannello puoi vedere le Informazioni generali sulla tabella così come le informazioni che l’estensione PostGIS ha riguardo alla geometria e al sistema di riferimento spaziale.
Se scorri verso il basso nella scheda Info, puoi vedere più informazioni su Fields, Constraints e Indexes per la tabella che stai visualizzando.
È anche molto comodo utilizzare DB Manager per guardare semplicemente i record nel database più o meno nello stesso modo in cui si potrebbe fare visualizzando la tabella degli attributi di un layer nell’albero dei layer. Puoi sfogliare i dati selezionando la scheda Table.
C’è anche una scheda Anteprima che ti mostrerà i dati del layer in un’anteprima della mappa.
Cliccando con il tasto destro su un layer nell’albero e cliccando su Aggiungi alla Mappa aggiungerai questo layer alla tua mappa.
Finora abbiamo solo visualizzato il database, i suoi schemi e le sue tabelle e i suoi metadati, ma cosa succederebbe se volessimo alterare la tabella per aggiungere una colonna aggiuntiva, ad esempio? DB Manager vi permette di farlo direttamente.
Seleziona la tabella che vuoi modificare nell’albero
Seleziona :Tabella –> Modifica Tabella dal menu, per aprire la finestra di dialogo Proprietà Tabella.
Puoi usare questa finestra di dialogo per Aggiungere Colonne, aggiungere Colonne Geometria, modificare colonne esistenti o rimuovere completamente una colonna.
Utilizzando la scheda Vincoli, puoi gestire quali campi vengono utilizzati come chiave primaria o eliminare i vincoli esistenti.
La scheda Indici può essere usata per aggiungere e cancellare sia indici spaziali che normali.
18.2.2. Follow Along: Creare una Nuova Tabella
Ora che abbiamo esaminato il processo di lavoro con le tabelle esistenti nel nostro database, usiamo DB Manager per creare una nuova tabella.
Se non è già aperta, apri la finestra DB Manager ed espandi l’albero finché non vedi la lista delle tabelle già presenti nel tuo database.
Dal menu seleziona Tabella –> Crea Tabella per far apparire la finestra di dialogo Crea Tabella.
Usa lo schema predefinito
Public
e denomina la tabellaplaces
.Aggiungi i campi
id
,place_name
eelevation
come mostrato qui sottoAssicurati che il campo
id
sia impostato come chiave primaria.Fai clic sulla casella di controllo di Crea colonna geometria e assicurati che sia impostata su tipo
POINT
e lascia il nomegeom
e specifica4326
come SR.Fai clic sulla casella di controllo Crea indice spaziale e fai clic su Crea per creare la tabella.
Chiudi la finestra di dialogo per sapere che la tabella è stata creata e fai clic su :guilabel:`Chiudi`per chiudere la finestra di dialogo Crea tabella.
Ora puoi ispezionare la tua tabella nel DB Manager e ovviamente scoprirai che non ci sono dati al suo interno. Da qui puoi Attiva Modifiche sul menu del layer e iniziare ad aggiungere posti alla tua tabella.
18.2.3. Follow Along: Gestione di base del database
Il DB Manager ti permetterà anche di fare alcune attività di base per l’amministrazione del database. Non è certamente un sostituto per uno strumento più completo per l’amministrazione del database, ma fornisce alcune funzionalità che puoi usare per gestire il tuo database.
Le tabelle dei database possono spesso diventare piuttosto grandi e le tabelle che vengono modificate frequentemente possono finire per lasciare in giro residui di record che non sono più necessari a PostgreSQL. Il comando VACUUM si occupa di fare una sorta di pulizia per compattare e facoltativamente analizzare le tue tabelle per migliorare le prestazioni.
Diamo un’occhiata a come possiamo eseguire un comando VACUUM ANALYZE dall’interno di DB Manager.
Seleziona una delle tue tabelle nell’albero del DB Manager
Seleziona
dal menu
PostgreSQL ora eseguirà l’operazione. A seconda di quanto è grande la tua tabella, questo potrebbe richiedere del tempo per essere completato.
Puoi trovare maggiori informazioni sul processo VACUUM ANALYZE nella PostgreSQL Documentation on VACUUM ANALYZE.
18.2.4. Follow Along: Esecuzione di query SQL con DB Manager
DB Manager fornisce anche un modo per scrivere query sulle tabelle del tuo database e per visualizzare i risultati. Abbiamo già visto questo tipo di funzionalità nel pannello Browser, ma vediamo di nuovo qui con DB Manager.
Seleziona la tabella
lines
nell’albero.Seleziona il pulsante Finestra SQL nella barra degli strumenti di DB Manager.
Componi la seguente SQL query nello spazio fornito:
select * from lines where roadtype = 'major';
Fai clic sul pulsante Esegui (F5) per eseguire la query.
Ora dovresti vedere i record che corrispondono nel pannello Risultati.
Fai clic sulla casella di controllo per Carica come nuovo layer per aggiungere i risultati alla mappa.
Seleziona la colonna
id
come Colonna con valori univoci e la colonnageom
come Colonna Geometria.Immetti
roads_primary
come Nome vettore (prefisso).Fai clic su Carica per caricare i risultati come nuovo layer nella mappa.
I layer che corrispondono alla tua query sono ora visualizzati sulla tua mappa. Naturalmente puoi usare questo strumento di interrogazione per eseguire qualsiasi comando SQL arbitrario, inclusi molti di quelli che abbiamo visto nei moduli e nelle sezioni precedenti.
18.2.5. Importare dati in un database con DB Manager
Abbiamo già visto come importare dati in un database spaziale usando strumenti a linea di comando, ora impariamo come usare DB Manager per fare importazioni.
Fai clic sul pulsante Importa layer/file sulla barra degli strumenti nella finestra di dialogo DB Manager.
Seleziona il file
urban_33S.shp
daexercise_data/projected_data
come set di dati di inputFai clic sul pulsante Aggiorna opzioni per precompilare alcuni dei valori del modulo.
Assicurati che l’opzione :guilabel:”Crea nuova tabella” sia selezionata
Specifica il SR sorgente come
32722
e il SR di destinazione come4326
Abilita la casella di controllo su Crea indice spaziale
Fai clic su OK per eseguire l’importazione
Abbandona la finestra di dialogo che ti fa sapere che l’importazione ha avuto successo
Fai clic sul pulsante Aggiorna sulla barra degli strumenti di DB Manager
Ora puoi ispezionare la tabella nel database facendo clic su di essa nell’albero. Verifica che i dati siano stati riproiettati controllando che Riferimento spaziale sia elencato come WGS 84 (4326)`.
Cliccando con il tasto destro sulla tabella nell’albero e selezionando Aggiungi alla mappa, la tabella verrà aggiunta come layer nella tua mappa.
18.2.6. Esportare dati da un database con DB Manager
Naturalmente DB Manager può anche essere usato per esportare dati dai vostri database spaziali, quindi diamo un’occhiata a come si fa.
Seleziona il layer
lines
nella gerarchia e clicca sul pulsante Esporta su File sulla barra degli strumenti per aprire la finestra di dialogo Export to vector file.Fai clic sul pulsante … per selezionare il Output file e salvare i dati nella cartella
exercise_data
comeurban_4326
.Imposta SR di destinazione come “”4326””.
Fai clic su OK per inizializzare l’esportazione.
Chiudi la finestra di dialogo che ti informa che l’esportazione ha avuto successo e chiudi il DB Manager.
Ora puoi ispezionare lo shapefile che hai creato con il pannello Browser.
18.2.7. In Conclusion
Ora hai visto come usare l’interfaccia DB Manager in QGIS per gestire i tuoi database spaziali, per eseguire query SQL sui tuoi dati e come importare ed esportare dati.
18.2.8. What’s Next?
Di seguito, vedremo come usare molte di queste stesse tecniche con i database SpatiaLite.