Open Source im professionellen Einsatz

Die PostgreSQL-Erweiterung Postgis und freie GIS-Programme

Ein Elefant als Basis

,

Die Datenbankerweiterung Postgis bietet auf der freien Datenbank PostgreSQL die ideale Grundlage für eine leistungsfähige Geodaten-Infrastruktur (GDI).

"Und Ihre Postleitzahl?", so lautet eine häufige Frage an der Kasse eines Bau- oder Elektromarkts. Nur zu wissen, was der Kunde kauft, scheint für den Betreiber nicht genug Information. Offenbar kommt es ihm auch darauf an, woher der Käufer kommt.

Hinter den Kulissen wandern die Daten des Einkaufs zusammen mit der Postleitzahl des Wohnorts in die Datenbank eines geografischen Informationssystems (GIS). Anhand der Karten, auf denen die Software die Verteilung der Kunden darstellt, kann der Betreiber seine Werbung und sein Marketing optimieren. Mit diesem Wissen kann er beispielsweise nur in Stadtteilen mit großem Kundenpotenzial Flyer und Werbebroschüren verteilen und den Erfolg der gezielten Werbeaktionen messen.

Bis vor wenigen Jahren kamen für solche Szenarien fast ausschließlich proprietäre Lösungen zum Einsatz, die freien GIS-Programme galten als Außenseiter. Doch die Implementierung offener Standards und die Entwicklung zahlreicher Schnittstellen lässt nun eine große Anzahl von Programmen für raumbezogene Fragestellungen gedeihen. Postgis, eine freie Erweiterung der Open-Source-Datenbank PostgreSQL, steht dabei als ausgereiftes Backend für eine fast unüberschaubare Vielzahl an freier Software zur Verfügung [1].

Der Raumbezug macht's

Geografische Informationssysteme sind Werkzeuge zur Verwaltung, Erstellung und Bearbeitung von Daten mit Raumbezug. Ein GIS verwaltet nicht nur inhaltliche Informationen wie Firmennamen oder gekaufte Produkte, sondern auch die räumlichen Informationen wie die geografische Position einer Firmenniederlassung oder den Wohnsitz eines Kunden. Aber mit dem einfachen Wo ist es in der Regel noch lange nicht getan. Für ein möglichst gutes Abbild der Wirklichkeit auf der Erdkugel sind weitere Eigenschaften der räumlichen Objekte von Bedeutung: Geometrische Objekte wie Punkte, Linien und Polygone haben bestimmte Eigenschaften, zum Beispiel Länge, Fläche oder Mittelpunkt, und topologische Beziehungen zueinander wie Nachbarschaft, Überschneidung oder Enthaltensein.

Darüber hinaus muss das GIS die Daten für die Darstellung entsprechend aufbereiten. Zum Standardrepertoire eines modernen Geosystems gehören daher unter anderem Algorithmen zum Verschieben und Skalieren. Die Abbildung von Objekten aus der Realität auf der dreidimensionalen (Erd-)Kugel in die zweidimensionale Fläche erfordert außerdem umfangreiche Kenntnisse von kartografischen Projektionen.

Datenaustausch gesucht

Die vielfältige Entwicklung unterschiedlicher GIS hat auch viele unterschiedliche Konzepte hervorgebracht, wie die Daten lokal und in eigenen, oft proprietären Formaten zu speichern sind. Ein Austausch von Daten zwischen den einzelnen Systemen erfolgte bisher lediglich durch aufwändige und fehleranfällige Export-Import-Funktionen. Wechselte ein Hersteller im Zuge von Weiterentwicklungen sein Datenhaltungskonzept, waren Probleme für die Anwender unvermeidlich.

Diese Entwicklung stand jedoch im krassen Gegensatz zur wachsenden, applikationsübergreifenden und netzweiten Nutzung der Daten. Leistungsfähige Geodaten-Infrastrukturen (GDI) waren gefordert, aber nur proprietäre, oft nicht standardisierte Insellösungen vorhanden: Eine offene, Datenbank-basierte Lösung musste her. Genau hier setzt Postgis (Abbildung 1) ein. Die GIS-Erweiterung fügt dem freien Datenbanksystem PostgreSQL [2] Möglichkeiten zur Verwaltung geografischer Informationen hinzu und steht unter der GPL.

Abbildung 1: Auf dem Logo von Postgis balanciert der Elefant, das Maskottchen der PostgreSQL-Datenbank, die Weltkugel auf seinem Rüssel.

Abbildung 1: Auf dem Logo von Postgis balanciert der Elefant, das Maskottchen der PostgreSQL-Datenbank, die Weltkugel auf seinem Rüssel.

PostgreSQL ist heute neben MySQL wohl das am weitesten verbreitete freie Datenbanksystem und liegt in Version 8.2 vor. Im Rahmen eines universitären Projekts an der University of California entstand es als objektrelationales Datenbank-Managementsystem (ORDBMS) unter dem Namen Postgres am Berkeley Computer Science Department. Seit 1996 trägt es den Namen PostgreSQL, es unterliegt der BSD-Lizenz. Der Kasten "Unter der Haut des Elefanten" gibt einen kurzen Einblick in Details des umfangreichen Datenbanksystems.

Unter der Haut des
Elefanten

PostgreSQL unterstützt den Ansi-SQL-Standard SQL92. Von den fünf Kategorien des SQL99-Standards - Framework, Foundation, Call Level Interface, Persistent Stored Modules, Host Language Bindings - sind die Kategorien 1, 2 und 5 implementiert.

PostgreSQL unterstützt darüber hinaus alle in SQL99 spezifizierten Verbundtypen.

Features

  • Mengenoperationen lassen sich mit den entsprechenden
    Anweisungen »UNION«, »INTERSECT«,
    »EXCEPT« auf mehrere Tabellen ausführen.
  • Subselects ermöglichen komplexe Queries in einem Schritt.
    Zwischenergebnisse eines Subselect können dabei an die jeweils
    übergeordnete Abfrage durchgereicht und weiterverarbeitet
    werden.
  • »SELECT«-Kommandos erlauben Aktionen über
    mehrere Tabellen (Joins).
  • Komplexe Abfragen lassen sich als Views speichern, um schnell
    einen aktuellen Stand der Daten zur Verfügung zu haben.
  • Trigger speichern häufig wiederkehrende Operationen, die
    ereignisabhängig ablaufen können. Trigger können in
    allen in PostgreSQL unterstützten prozeduralen Sprachen
    geschrieben sein.
  • Regeln (Rules) ist es erlaubt, das Verhalten von Abfragen zu
    modifizieren. Sie können beispielsweise unter bestimmten
    Bedingungen ein »DELETE«- in ein
    »UPDATE«-Kommando umformulieren.
  • PostgreSQL unterstützt die referenzielle Integrität
    der Datenbeziehungen (Primary Key und Foreign Key) und verhindert
    damit Anomalien im Datenbestand.

Transaktionen, ACID, Interaktion

  • Bei Transaktionen arbeitet die Datenbanksoftware eine Folge von
    SQL-Kommandos hintereinander ab, wobei sie diese entweder komplett
    oder gar nicht ausführt. Das Verfahren stellt bei mehreren
    gleichzeitigen Zugriffen auf eine Datenbank Konsistenz und
    Integrität der Datenbank sicher.
  • PostgreSQL erfüllt alle Forderungen des ACID-Prinzips
    (Atomicity, Consistency, Isolation, Durability). Als Strategie
    für das Transaktionsmanagement dient Multi-Version Concurrency
    Control (MVCC).
  • Zur Programmierung von Client-Programmen bietet PostgreSQL
    Schnittstellen zu ODBC und JDBC sowie zu zahlreichen
    Programmiersprachen.

Prozeduren und Objekte

  • Mit selbst programmierten Stored Procedures (SP) lassen sich
    häufig wiederkehrende Aufgaben zusammenfassen und
    automatisieren.
  • Neben SQL und der PostgreSQL-eigenen prozeduralen
    Programmiersprache PL/pgSQL stehen noch weitere Sprachen zur
    Verfügung.
  • PostgreSQL unterstützt objektrelationale Eigenschaften und
    damit die Speicherung nicht atomarer Datentypen in Arrays oder in
    geometrischen Datentypen. Alle Datenbankobjekte (Tabelle, View,
    Sequenz, ein einzelner Datensatz, ...) haben in PostgreSQL eine
    eigene Objektidentität.

Sicherheit

  • Die Datenkommunikation zwischen Client und Server erfolgt auf
    Wunsch mit SSL verschlüsselt.
  • Für die Authentifizierung gegenüber dem
    Datenbankserver unterstützt PostgreSQL das
    Kerberos-Protokoll.

Als Administrations-Frontend für PostgreSQL steht PgadminIII (Abbildung 2, [3]) auch für Postgis zur Verfügung. Ein weiterer Pluspunkt für freie Software ist das flexible Konzept der PostgreSQL-Extensions: Postgis verzichtet auf die bereits in PostgreSQL vorhandenen Möglichkeiten zur Verwaltung zweidimensionaler Geometrien und implementiert stattdessen die Simple Features Specifications for SQL 1.1 (SFS) des Open Geospatial Consortium (OGC, [4]).

Abbildung 2: Die typische Ansicht einer PostgreSQL-Datenbank für den Administrator: Das grafische Frontend PgadminIII ermöglicht auch die komfortable Bearbeitung der PostgreSQL-Postgis-Daten.

Abbildung 2: Die typische Ansicht einer PostgreSQL-Datenbank für den Administrator: Das grafische Frontend PgadminIII ermöglicht auch die komfortable Bearbeitung der PostgreSQL-Postgis-Daten.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook