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

dbManager

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.

../../../_images/db_manager_dialog.png

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.

../../../_images/table_info.png

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.

../../../_images/table_info_fields.png

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

../../../_images/table_panel.png

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.

  1. Seleziona la tabella che vuoi modificare nell’albero

  2. Seleziona :Tabella –> Modifica Tabella dal menu, per aprire la finestra di dialogo Proprietà Tabella.

    ../../../_images/edit_table.png

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.

../../../_images/constraints_panel.png

La scheda Indici può essere usata per aggiungere e cancellare sia indici spaziali che normali.

../../../_images/indexes_panel.png

18.2.2. basic 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.

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

  2. Dal menu seleziona Tabella –> Crea Tabella per far apparire la finestra di dialogo Crea Tabella.

  3. Usa lo schema predefinito Public e denomina la tabella places.

  4. Aggiungi i campi id, place_name e elevation come mostrato qui sotto

  5. Assicurati che il campo id sia impostato come chiave primaria.

  6. Fai clic sulla casella di controllo di Crea colonna geometria e assicurati che sia impostata su tipo POINT e lascia il nome geom e specifica 4326 come SR.

  7. Fai clic sulla casella di controllo Crea indice spaziale e fai clic su Crea per creare la tabella.

    ../../../_images/create_table.png
  8. 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. basic 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.

  1. Seleziona una delle tue tabelle nell’albero del DB Manager

  2. Seleziona Tabella ► Avvia Vacuum 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. basic 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.

  1. Seleziona la tabella lines nell’albero.

  2. Seleziona il pulsante Finestra SQL nella barra degli strumenti di DB Manager.

    ../../../_images/sql_window_btn.png
  3. Componi la seguente SQL query nello spazio fornito:

    select * from lines where roadtype = 'major';
    
  4. Fai clic sul pulsante Esegui (F5) per eseguire la query.

  5. Ora dovresti vedere i record che corrispondono nel pannello Risultati.

    ../../../_images/sql_results.png
  6. Fai clic sulla casella di controllo per Carica come nuovo layer per aggiungere i risultati alla mappa.

  7. Seleziona la colonna id come Colonna con valori univoci e la colonna geom come Colonna Geometria.

  8. Immetti roads_primary come Nome vettore (prefisso).

  9. Fai clic su Carica per caricare i risultati come nuovo layer nella mappa.

    ../../../_images/sql_add_to_map.png

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.

  1. Fai clic sul pulsante Importa layer/file sulla barra degli strumenti nella finestra di dialogo DB Manager.

    ../../../_images/import_layer_btn.png
  2. Seleziona il file urban_33S.shp da exercise_data/projected_data come set di dati di input

  3. Fai clic sul pulsante Aggiorna opzioni per precompilare alcuni dei valori del modulo.

  4. Assicurati che l’opzione :guilabel:”Crea nuova tabella” sia selezionata

  5. Specifica il SR sorgente come 32722 e il SR di destinazione come 4326

  6. Abilita la casella di controllo su Crea indice spaziale

  7. Fai clic su OK per eseguire l’importazione

    ../../../_images/import_urban.png
  8. Abbandona la finestra di dialogo che ti fa sapere che l’importazione ha avuto successo

  9. 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)`.

../../../_images/urban_info.png

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.

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

  2. Fai clic sul pulsante per selezionare il Output file e salvare i dati nella cartella exercise_data come urban_4326.

  3. Imposta SR di destinazione come “”4326””.

  4. Fai clic su OK per inizializzare l’esportazione.

    ../../../_images/export_to_vector.png
  5. 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.

../../../_images/inspect_vector_output.png

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.