Datenbank

Daniel Künne

Aufgrund des hohen Datenvolumens erfolgt die Datenhaltung datenbankbasiert. Um keine zusätzlichen Lizenzkosten durch die Anschaffung proprietärer Software zu haben, kommt eine Open Source-Datenbank zum Einsatz. Zur Zeit stehen mit PostgreSQL und MySQL Opensource-Datenbanken mit nativer Unterstützung von Geometrien zur Verfügung. Beide Datenbanken können sowohl unter Linux als auch unter Windows betrieben werden und sind mit vergleichbarem Aufwand zu installieren. Zudem handelt es sich bei beiden Datenbanken im Kern um relationale Datenbanksysteme, die um einen zusätzlichen Objektdatentyp (Geometry) und entsprechende Funktionen erweitert wurden.

MySQL

Bei MySQL handelt es sich, wie bereits erwähnt, um eine relationale Datenbank. Sie wird seit 1995 vertrieben und beim Einsatz in nicht kommerziellen Produkten kostenlos. Durch die einfache Struktur und die zahlreichen verfügbaren Schnittstellen zu fast allen verbreiteten Programmiersprachen ist MySQL die am häufigsten eingesetzte Datenbank bei Web-Projekten.

MySQL wird über die Datenbanksprache SQL gesteuert. Allerdings ist der Befehlssatz im Vergleich zum SQL92-Standard etwas eingeschränkt, da zum Beispiel statische Integritätsbedingungen akzeptiert, aber bei der Auswertung nicht berücksichtigt werden.

PostgreSQL

Die objektrelationale Datenbank PostgreSQL hat ihren Ursprung im Datenbank-Projekt Postgres, das 1986 an der Universität Berkeley (USA) ins Leben gerufen wurde. Die Ergebnisse des Projekts wurden 1988 erstmals vorgestellt und 1989 externen Benutzern zur Verfügung gestellt. Bis 1993 wurde Postgres in Berkeley weiterentwickelt, aufgrund des zu hohen Support-Aufwandes jedoch eingestellt und als Open Source Projekt unter dem Namen Postgres95 weitergeführt. Die Implementierung eines SQL-Interpreters brachte die Namensänderung in PostgreSQL mit sich.

PostGIS ist eine Erweiterung von PostgreSQL um geographische Objekte. PostGIS wurde von Refractions Research Inc. entwickelt und bietet die Möglichkeit PostgreSQL als Datenserver eines Geographischen Informationssystems (GIS) zu nutzen.

Als Datenbanksprache nutzt PostgreSQL den SQL92-Standard und wird mit PostGIS um die Sprache PSQL erweitert, die räumliche Abfragen ermöglicht und einige Funktionen zur Arbeit mit Geometrie-Objekten mitbringt.

Vergleich und Auswahl

Die Funktionen, die von PostgreSQL/PostGIS und MySQL angeboten werden, sind in der folgenden Tabelle dargestellt. Zusammenfassend lässt sich für PostgreSQL/PostGIS sagen, dass eine volle Unterstützung der ISO 19125-Funktionalität gegeben ist. Außerdem wird eine Auswahl von weiteren Funktionen des Simple Feature Modells angeboten. Dazu gehören beispielsweise die Validierung von Geometrien oder die Transformation von Geometrien und Koordinaten. Darüber hinaus stehen auch weitergehende Konvertierungsfunktionen nach SVG und seit PostGIS 1.2 auch nach KML zur Verfügung.

Die Funktionalität von MySQL ist deutlich eingeschränkter. MySQL implementiert nur eine Untermenge der Funktionen des Simple Feature Models. So sind die Testfunktionen IsSimple und IsRing zwar implementiert allerdings nicht funktionsfähig. Bei den geometrischen Funktionen auf einer Geometrie stehen weder Buffer noch ConvexHull zur Verfügung. Am Gravierendsten gegen einen Einsatz als Datenbank-Backend bei der Umsetzung des Servers spricht das Fehlen von geometrischen Funktionen für mehrere Geometrien.

Vergleich der Funktionen von PostgreSQL/PostGIS und MySQL
FunktionPostgreSQL/PostGISMySQL
Zugriff auf Basiseigenschaften (Dimension, GeometryType, Zugriff auf die Geometriebestandteile)XX
Test von Geometrieeigenschaften (IsSimple, IsClosed, IsRing)X(X)
Geometrische Funktionen auf Geometrien (Distance, Centroid, Buffer)X 
Schnittfunktionen (Intersection, Contains)X 
Validierung von GeometrienX 
Geometrische AggregatfunktionenX 

Zu Beginn der Implementation wurde auf MySQL als Datenbank-Managementsystem zurückgegriffen. Allerdings zeigte sich bereits bei ersten Tests, dass MySQL mit dem zu erwartenden hohen Volumen an geographischen Daten und den damit verbundenen Anfragen Probleme bekommt. Aus diesem Grund wurde das Datenbank-Backend dahingehend umgestellt, dass nun PostgreSQL mit der PostGIS-Erweiterung zum Einsatz kommt.


Page last modified on March 21, 2011, at 04:51 PM