FOSSGIS2013 - 36 2013_07_29

FOSSGIS 2013
Konferenz für freie und Open Source-Software im GIS-Bereich und für freie Geodaten

Speakers
Bernhard Ströbl
Schedule
Day Donnerstag - 2013-06-13
Room 5.001
Start time 09:30
Duration 00:30
Info
ID 493
Event type Lecture
Track Vorträge (GIS)
Language used for presentation German

QGIS-Eingabemasken für PostGIS-Layer leicht gemacht

Das QGIS-Plugin DataDrivenInputMask

In relationalen Datenbanken können komplexe Sachverhalte konsistent und redundanzfrei gespeichert werden. Da sie auch Geometrien speichern können, bieten sie sich als zentrale Datenspeicher für Geodateninfrastrukturen an. Sie ermöglichen es auch, komplexere Sachverhalte und Abläufe zu modellieren, weshalb zu einzelnen Geometrieobjekten häufig eine Vielzahl von Sachdaten gespeichert wird. Selbst bei an sich einfachen Sachverhalten sind als Folge der Normalisierung meistens mehrere Tabellen mit Beziehungen unterschiedlicher Kardinalität beteiligt. PostgreSQL/PostGIS ist als relationale Datenbank im FOSSGIS-Bereich weit verbreitet. Damit Nutzer Daten eingeben und pflegen können, sind entsprechende Eingabemasken im Front-End nötig. QGIS 2.0 bietet bereits viele Möglichkeiten der Anpassung eines Layers an die Datenmodellierung an. Das QGIS-Plugin DataDrivenInputMask erzeugt Eingabemasken für PostgreSQL-Layer zur Laufzeit. Mit ihnen können die Daten des Layers selbst, aber auch die aller verbundenen Relationen – egal welcher Kardinalität – bearbeitet werden. Das Plugin fragt dazu Systemkataloge der Datenbank ab und setzt Informationen über Datentypen und Constraints automatisch in entsprechende Bearbeitungselemente um. Es entsteht kein Aufwand durch die Einrichtung des Layers oder die Programmierung eines Plugins. Insbesondere entspricht die Datenmaske stets dem Stand der Datenmodellierung in der Datenbank. Die Funktionalität steht als eigenes Plugin zur Verfügung, kann aber auch in andere Plugins importiert werden, um dort wiederum Datenmasken bereitzustellen und bietet sich für alle QGIS-Nutzer an, die komplexere Datenmodelle in PostgreSQL/PostGIS realisieren und dafür keine eigenen Eingabemasken programmieren können oder wollen.