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.

L’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 :guilabel:`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.

First, its useful to just look at a table’s metadata by clicking on its name in tree and looking in the Info tab.

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

In this panel you can see the General Info about the table as well the information that the PostGIS extension maintains about the geometry and spatial reference system.

If you scroll down in the Info tab, you can see more information about the Fields, Constraints and Indexes for the table you are viewing.

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

Its also very useful to use DB Manager to simply look at the records in the database in much the same way you might do this by viewing the attribute table of a layer in the Layer Tree. You can browse the data by selecting the Table tab.

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

There is also a Preview tab which will show you the layer data in a map preview.

Right-clicking on a layer in the tree and clicking Add to Canvas will add this layer to your map.

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. Select Table ► Edit Table from the menu, to open the Table Properties dialog.

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

Puoi usare questa finestra di dialogo per Aggiungere Colonne, aggiungere Colonne Geometria, modificare colonne esistenti o rimuovere completamente una colonna.

Using the Constraints tab, you can manage which fields are used as the primary key or to drop existing constraints.

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

The Indexes tab can be used to add and delete both spatial and normal indexes.

../../../_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. From the menu select Table –> Create Table to bring up the Create Table dialog.

  3. Use the default Public schema and name the table 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. Click the checkbox to Create geometry column and make sure it is set to a POINT type and leave it named geom and specify 4326 as the SRID.

  7. Click the checkbox to Create spatial index and click Create to create the table.

    ../../../_images/create_table.png
  8. Dismiss the dialog letting you know that the table was created and click Close to close the Create Table Dialog.

You can now inspect your table in the DB Manager and you will of course find that there is no data in it. From here you can Toggle Editing on the layer menu and begin to add places to your table.

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.

Let us take a look at how we can perform a VACUUM ANALYZE command from within DB Manager.

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

  2. Select Table ► Run Vacuum Analyze from the 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. Select the lines table in the tree.

  2. Select the SQL window button in the DB Manager toolbar.

    ../../../_images/sql_window_btn.png
  3. Compose the following SQL query in the space provided:

    select * from lines where roadtype = 'major';
    
  4. Click the Execute (F5) button to run the query.

  5. You should now see the records that match in the Result panel.

    ../../../_images/sql_results.png
  6. Click the checkbox for Load as new layer to add the results to your map.

  7. Select the id column as the Column with unique integer values and the geom column as the Geometry column.

  8. Enter roads_primary as the Layer name (prefix).

  9. Click Load now! to load the results as a new layer into your map.

    ../../../_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. Click the Import layer/file button on the toolbar in the DB Manager dialog.

    ../../../_images/import_layer_btn.png
  2. Select the urban_33S.shp file from exercise_data/projected_data as the input dataset

  3. Click the Update Options button to pre-fill some of the form values.

  4. Make sure that the Create new table option is selected

  5. Specify the Source SRID as 32722 and the Target SRID as 4326

  6. Enable the checkbox to Create Spatial Index

  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. Click the Refresh button on the DB Manager Toolbar

You can now inspect the table in your database by clicking on it in the Tree. Verify that the data has been reprojected by checking that the Spatial ref: is listed as WGS 84 (4326).

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

Right clicking on the table in the Tree and a selecting Add to Canvas will add the table as a layer in your map.

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. Select the lines layer in the Tree and click the Export to File button on the toolbar to open the Export to vector file dialog.

  2. Click the button to select the Output file and save the data to your exercise_data directory as urban_4326.

  3. Set the Target SRID as 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.