Outdated version of the documentation. Find the latest one here.

19.2. Lesson: DB Manager gebruiken om te werken met ruimtelijke databases in QGIS

We hebben al gezien hoe we veel bewerkingen aan databases kunnen uitvoeren met QGIS, als ook met andere gereedschappen, maar nu is het tijd om te kijken naar het gereedschap DB Manager wat veel dezelfde functionaliteiten verschaft en ook meer op beheer georiënteerde gereedschappen.

Het doel voor deze les: Te leren hoe interactief te werken met ruimtelijke databases met behulp van de DB Manager in QGIS.

19.2.1. basic Follow Along: Databases van PostGIS beheren met DB Manager

U zou eerst de interface van de DB Manager moeten openen door te selecteren Database –> DB Manager –> DB Manager in het menu of door het pictogram DB Manager te selecteren op de werkbalk.

dbManager

U zou de eerdere verbindingen die we hebben geconfigureerd al moeten zien en in staat zijn het gedeelte postgis_demo en het schema public uit te breiden om de tabellen te zien waarmee we in eerdere gedeelten hebben gewerkt.

Het eerste dat u zou moeten opvallen is dat u nu enkele metadata kunt zien over de schema’s die zijn opgenomen in uw database.

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

Schemas are a way of grouping data tables and other objects in a PostgreSQL database and a container for permissions and other constraints. Managing PostgreSQL schemas is beyond the scope of this manual, but you can find more information about them in the PostgreSQL documentation on Schemas. You can use the DB Manager to create new Schemas, but will need to use a tool like pgAdmin III or the command line interface to manage them effectively.

DB Manager kan ook worden gebruikt om de tabellen in uw database te beheren. We hebben al gekeken naar de verscheidene manieren om tabellen te maken en te beheren via de opdrachtregel, maar laten we nu eens kijken hoe dat te doen in DB Manager.

Eerst is het handig om te kijken naar de metadata van een tabel door te klikken op zijn naam in de boom en te kijken op de tab Info.

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

In dit paneel kunt u de Algemene info over de tabel zien als ook de informatie die de extensie PostGIS onderhoudt over de geometrie en het ruimtelijke referentiesysteem.

Als u naar beneden scrollt op de tab Info, kunt u meer informatie zien over de Velden, Beperkingen en Indexen voor de tabel die u bekijkt.

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

Het is ook zeer handig om DB Manager te gebruiken om eenvoudig naar de records in de database te kijken op nagenoeg dezelfde manier als u zou doen door de attributentabel van een laag te bekijken in de boom van Lagen. U kunt door de gegevens bladeren door de tab Tabel te selecteren.

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

Er is ook een tab Voorvertoning die u de gegevens van de laag in een voorbeeldkaart laat zien.

Klikken met rechts op een laag in de boom en klikken op Aan kaartvenster toevoegen zal deze laag toevoegen aan uw kaart.

Tot dusverre hebben we alleen gekeken naar de schema’s en tabellen van de database en hun metadata, maar wat als we de tabel willen veranderen door misschien een aanvullende kolom toe te voegen? DB Manager stelt u in staat om dat direct te doen.

  • Selecteer de tabel die u wilt bewerken in de boom

  • Selecteer Tabel ‣ Tabel bewerken uit het menu om het dialoogvenster Tabel-eigenschappen te openen.

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

U kunt dit dialoogvenster gebruiken om kolommen toe te voegen, geometrie-kolommen toe te voegen, bestaande kolommen te bewerken of om een kolom volledig te verwijderen.

Door de tab Beperkingen te gebruiken kunt u beheren welke velden gebruikt moeten worden als de primaire sleutel of om bestaande beperkingen te verwijderen.

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

De tab Indexen kan worden gebruikt om zowel ruimtelijke als normale indexen te verwijderen.

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

19.2.2. basic Follow Along: Een nieuwe tabel maken

Laten we, nu we door het proces van werken met bestaande tabellen in onze database zijn gegaan, DB Manager gebruiken om een nieuwe tabel te maken.

  • Als het al niet geopend is, open het venster DB Manager en breidt de boom uit totdat u de lijst met tabellen ziet die al in uw database aanwezig zijn.

  • Selecteer uit het menu Tabel –> Tabel maken om het dialoogvenster Tabel maken naar voren te halen.

  • Gebruik het standaard schema Public en noem de tabel places.

  • Voeg de velden id, place_name en elevation toe, zoals hieronder weergegeven

  • Zorg er voor dat het veld id is ingesteld als de primaire sleutel.

  • Klik op het keuzevak Geometriekolom maken en zorg er voor dat het is ingesteld op een type POINT en laat de naam als geom en specificeer 4326 als het SRID.

  • Klik op het keuzevak Ruimtelijke index aanmaken en klik op Aanmaken om de tabel te maken.

../../../_images/create_table.png
  • Sluit het dialoogvenster dat u laat weten dat de tabel werd gemaakt en klik op Close om het dialoogvenster Tabel maken te sluiten.

U kunt nu uw tabel in DB Manager inspecteren en u zult natuurlijk vinden dat er geen gegevens in staan. Vanaf hier kunt u Bewerken aan/uitzetten in het menu van de Lagen en beginnen met het toevoegen van plaatsen aan uw tabel.

19.2.3. basic Follow Along: Basisbeheer van database

DB Manager zal u ook in staat stellen enkele basis beheerstaken voor de database uit te voeren. Het is zeker geen vervanging voor een meer compleet gereedschap voor databasebeheer, maar het verschaft enige functionaliteit die u kunt gebruiken om uw database te onderhouden.

Databasetabellen kunnen vaak vrij groot worden en tabellen die regelmatig worden bijgewerkt kunnen achterblijfselen van records bevatten die niet langer nodig zijn voor PostgreSQL. De opdracht VACUUM zorgt voor een soort afvalverwerking om uw tabellen te verkleinen en optioneel te analyseren voor betere uitvoering.

Laten we eens kijken hoe we een opdracht VACUUM ANALYZE kunnen uitvoeren vanuit DB Manager.

  • Selecteer één van uw tabellen in de boom van DB Manager.

  • Selecteer Tabel ‣ Vacuüm Analyze uitvoeren uit het menu.

Dat is alles! PostgreSQL zal de bewerking uitvoeren. Afhankelijk van de grootte van uw tabel, zou dit enige tijd kunnen vergen om te voltooien.

You can find more information about the VACUUM ANALYZE process in the PostgreSQL Documentation on VACUUM ANALYZE

19.2.4. basic Follow Along: SQL-query’s met DB Manager uitvoeren

DB Manager verschaft ook een manier om query’s voor uw databasetabellen te schrijven en om de resultaten te bekijken. We hebben dit type functionaliteit al gezien in het paneel Browser, maar laten we er hier nog eens naar kijken met DB Manager.

  • Selecteer de tabel lines in de boom.

  • Selecteer de knop SQL-venster in de werkbalk van DB Manager.

../../../_images/sql_window_btn.png
  • Voer de volgende SQL query in de daarviior bestemde ruimte in:

    select * from lines where roadtype = 'major';
  • Klik op de knop Uitvoeren (F5) om de query uit te voeren.

  • U zou nu, in het paneel Resultaat, de records moeten zien die overeenkomen.

../../../_images/sql_results.png
  • Klik op het keuzevak Als nieuwe laag laden om de resultaten aan uw kaart toe te voegen.

  • Selecteer de kolom id als de Kolom met unieke integer-waarden en de kolom the_geom als de Geometriekolom.

  • Voer roads_primary in als de Laagnaam (prefix).

  • Klik op Nu laden! om de resultaten als een nieuwe laag in uw kaart te laden.

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

De lagen die overeenkomen met uw query worden nu weergegeven in uw kaart. U kunt natuurlijk dit gereedschap voor query gebruiken om enige willekeurige opdracht voor SQL uit te voeren, inclusief veel van die waarnaar we hebben gekeken in eerdere modules en gedeelten.

19.2.5. Gegevens in een database importeren met DB Manager

We hebben al gekeken naar hoe we gegevens in een een ruimtelijke database importeren met behulp van de gereedschappen voor de opdrachtregel, dus laten we nu leren hoe DB Manager te gebruiken om te importeren.

  • Klik op de knop Laag/bestand importeren op de werkbalk in het dialoogvenster DB Manager.

../../../_images/import_layer_btn.png
  • Selecteer het bestand urban_33S.shp uit exercise_data/projected_data als de gegevensset voor invoer.

  • Klik op de knop Opties vernieuwen om enkele van de waarden in het formulier vooraf in te vullen.

  • Zorg er voor dat de optie Nieuwe tabel makem is geselecteerd

  • Specificeer Bron SRID als 32722 en het Doel SRID as 4326.

  • Selecteer het keuzevak Ruimtelijke index aanmaken

  • Klik op OK om het importeren uit te voeren.

../../../_images/import_urban.png
  • Sluit het dialoogvenster dat u laat weten dat het importeren is voltooid

  • Klik op de knop Bijwerken op de werkbalk van DB Manager.

U kunt nu de tabel in uw database inspecteren door op de naam te klikken in de boom. Verifieer dat de gegevens opnieuw zijn geprojecteerd door te controleren of Ruimtelijk refsys: is vermeld als WGS 84 (4326)

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

Klik met rechts op de tabel in de boom en selecteren van Aan kaartvenster toevoegen zal de tabel als een laag aan uw kaart toevoegen.

19.2.6. Gegevens uit een database exporteren met DB Manager

Natuurlijk kan DB Manager ook worden gebruikt om gegevens vanuit uw ruimtelijke databases te exporteren, laten we dus eens kijken hoe dat moet worden gedaan.

  • Selecteer de laag lines in de boom en klik op de knop Naar bestand exporteren op de werkbalk om het dialoogvenster Naar vectorbestand exporteren te openen.

  • Klik op de knop ... om het Uitvoerbestand te selecteren en sla de gegevens op in uw map exercise_data als urban_4326.

  • Stel het Doel SRID in als 4326.

  • Klik op OK om het exporteren te initialiseren.

../../../_images/export_to_vector.png
  • Sluit het dialoogvenster dat u laat weten dat het exporteren is voltooid en sluit DB Manager.

U kunt nu het shapefile dat u heeft gemaakt inspecteren in het paneel Browser.

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

19.2.7. In Conclusion

U heeft nu gezien hoe u de interface DB Manager kunt gebruiken in QGIS om uw ruimtelijke databases te beheren, om SQL-query’s uit te voeren op uw gegevens en hoe gegevens te im- en exporteren.

19.2.8. What’s Next?

Vervolgens zullen we kijken hoe we veel van deze zelfde technieken gebruiken met databases van Spatialite.