Konzeption und Implementierung eines Verfahrens für effiziente, nicht präzise Datenbankabfragen im Kontext eines skizzenbasierten GIS
- Art: Diplomarbeit
- Autor: Frank Dangelmayer
- Abgabedatum: Juli 2004
- Umfang: 99 Seiten
- Dateigröße: 1,7 MB
- Note: 1,0
- Institution / Hochschule: Fachhochschule Ravensburg-Weingarten Deutschland
- ISBN (eBook): 978-3-8324-4071-8
-
ISBN (Paperback) :
978-3-8324-4071-8 P - ISBN (CD) :978-3-8324-4071-8 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Dangelmayer, Frank Juli 2004: Konzeption und Implementierung eines Verfahrens für effiziente, nicht präzise Datenbankabfragen im Kontext eines skizzenbasierten GIS, Hamburg: Diplomica Verlag
- Schlagworte: R-Baum, Spatial Join, Oracle Spatial, Topologie, Softwareentwurf
In den Warenkorb
74,00 €
Diplomarbeit von Frank Dangelmayer
Einleitung:
Anfragen an eine geographische Datenbank müssen häufig in Textform wie z.B. in SQL formuliert werden. Räumliche Gegebenheiten lassen sich jedoch nur schwer auf diese Weise beschreiben. Diese können durch visuelle Spezifikationen leichter beschrieben werden. Dennoch fand die Generierung von Anfragen aus Skizzen bisher wenig Beachtung.
Diese Arbeit beschäftigt sich mit der Konzeption und Umsetzung eines Systems zur Generierung von Anfragen an geographische Datenbanken aus analysierten Skizzen. Eine Skizze besteht dabei aus mehreren geographischen Objekten (z.B. Häuser, Bushaltestellen, Straßen, etc.), zwischen welchen verschiedene Beziehungen existieren (z.B. Haus ist 50 Meter entfernt von einer Straße). Nach dieser Objektanordnung wird in einer geographischen Datenbank gesucht.
Um die Anfrage effizient ausführen zu können, sind spezielle räumliche Indexstrukturen und Suchalgorithmen erforderlich. Oracle Spatial ist ein im Rahmen dieser Arbeit untersuchtes Datenbankschema, welches räumliche Objekte abspeichert und Anfragen mit Hilfe von R-Bäumen beantworten kann. Das System und die neu entwickelten Verfahren bauen auf einer solchen Datenbank auf.
Das in dieser Arbeit entwickelte System erhält die analysierten Skizzen-Daten von einem Programm mit dem Namen SketchQuery. Aus diesen Daten wird die Anfrage an eine Oracle Spatial-Datenbank generiert. Anschließend findet eine Bewertung der Ergebnisse bezügliche ihrer Ähnlichkeit zur Skizze statt. Dabei wird auf die geometrische Ähnlichkeit z.B. von Straßenverläufen verglichen. Nach der Ermittlung der Abweichungen von der Skizze erfolgt eine Aufbereitung der Ergebnisse zur Darstellung und eine Zurückgabe an SketchQuery.
Insgesamt wurden vier Module entworfen und umgesetzt. Zwei Module zur Entgegennahme/Zurückgabe der Daten von/zu SketchQurey. Ein Modul zur Generierung und Ausführung der Datenbankanfrage und ein Modul zur Berechnung der Abweichungen von der Skizze.
Inhaltsverzeichnis:
| 1. | Einleitung | 1 |
| 1.1 | Motivation | 1 |
| 1.2 | Problemstellung | 4 |
| 1.3 | Übersicht | 4 |
| 2. | Grundlagen | 5 |
| 2.1 | Geographische Informationssysteme | 5 |
| 2.1.1 | GIS-Datenbanken | 5 |
| 2.1.2 | Anfragen an Geoinformationssysteme | 6 |
| 2.1.3 | Datenbankmanagementsysteme für räumliche Daten | 8 |
| 2.2 | Oracle Spatial | 9 |
| 2.2.1 | Räumliche Objekte | 9 |
| 2.2.2 | Abfragen | 10 |
| 2.2.3 | Spatial Joins | 11 |
| 2.2.4 | Funktionen | 13 |
| 2.2.5 | Bewertung | 15 |
| 2.3 | SketchQuery - Ein Programm für skizzenbasierte GIS-Anfragen | 19 |
| 2.3.1 | Übersicht | 19 |
| 2.3.2 | Skizzen in SketchQuery | 20 |
| 2.3.3 | Benutzerschnittstelle | 22 |
| 2.3.4 | Schnittstelle für Datenbankabfragen | 24 |
| 3. | Räumliche Datenstrukturen und Algorithmen | 25 |
| 3.1 | Indexstrukturen zur Verwaltung räumlicher Objekte | 25 |
| 3.1.1 | Grid File | 26 |
| 3.1.2 | QuadTree | 27 |
| 3.1.3 | R-Baum | 29 |
| 3.1.4 | R+-Baum | 32 |
| 3.1.5 | R*-Baum | 33 |
| 3.1.6 | Bewertung | 34 |
| 3.2 | Spatial Join-Algorithmen beim R-Baum | 36 |
| 3.2.1 | Algorithmen ohne Indexstrukturen | 36 |
| 3.2.2 | Index nested loops join | 37 |
| 3.2.3 | Paralleles Durchlaufen zweier R-Bäume | 37 |
| 3.2.4 | Distance Join-Algorithmus | 39 |
| 3.2.5 | Seeded Tree | 40 |
| 3.2.6 | Zusammenfassung und Bewertung | 41 |
| 3.3 | Einsatz in Oracle Spatial | 42 |
| 4. | Entwurf | 43 |
| 4.1 | Stand der Technik | 43 |
| 4.2 | Anforderungen | 44 |
| 4.2.1 | Verschiedene Anfrageformen | 44 |
| 4.2.2 | Fehlerbewertung | 44 |
| 4.2.3 | Effizienz | 45 |
| 4.3 | Architektur | 46 |
| 4.4 | Module des Systems | 48 |
| 4.4.1 | Übernahme der Daten von SketchQuery | 48 |
| 4.4.2 | Umwandlung und Ausführung der Anfrage | 48 |
| 4.4.3 | Abweichungen von der Eingabe-Skizze | 49 |
| 4.4.4 | Darstellung der Ergebnisse | 50 |
| 4.5 | Ablauf | 52 |
| 5. | Implementierung | 53 |
| 5.1 | Rahmenbedingungen | 53 |
| 5.1.1 | Datensätze für die Erprobung des Verfahrens | 53 |
| 5.2 | Übernahme der Daten von SketchQuery | 55 |
| 5.3 | Umwandlung und Ausführung der Anfrage | 58 |
| 5.3.1 | Ablauf | 58 |
| 5.3.2 | Datenmodell für die Ergebnisse | 60 |
| 5.3.3 | Klasse für die Datenbankanbindung | 61 |
| 5.3.4 | Reihenfolge der Spatial Joins | 62 |
| 5.3.5 | Konfigurationsdatei | 63 |
| 5.4 | Abweichungen von der Eingabe-Skizze | 64 |
| 5.4.1 | Ermittlung der geometrischen Ähnlichkeit | 66 |
| 5.5 | Darstellung der Ergebnisse | 68 |
| 5.6 | Erweiterbarkeit | 70 |
| 6. | Bewertung und Ausblick | 72 |
| 6.1 | Ergebnisse | 72 |
| 6.2 | Bewertung | 73 |
| 6.3 | Ausblick | 76 |
| 6.3.1 | Kommunikation mit SketchQuery | 76 |
| 6.3.2 | Einsatz eigener Indexstrukturen und Join-Algorithmen | 76 |
| 6.3.3 | Indexstrukturen für die Fourier-Koeffizienten | 78 |
| 7. | Zusammenfassung | 79 |
| Anhang A - Algorithmus zur Fourier-basierten Ähnlichkeitssuche | 80 | |
| Index | 84 | |
| Abbildungsverzeichnis | 85 | |
| Literaturverzeichnis | 87 |
Skizzen werden angefertigt, um mit sich selbst oder mit anderen zu kommunizieren. Häufig werden in Skizzen Karten gezeichnet [Tve02]. Solche Skizzen können mit einer Sprache verglichen werden. Sie bestehen aus mehreren Elementen (Objekte bzw. Worte), welche abhängig von ihrer Anordnung verschiedene Interpretationen zulassen. Architekten benutzen Skizzen, um aus einer kleinen Menge von Objekten große, komplexe Strukturen aufzubauen. In SketchQuery besteht eine Skizze aus einer Mengen von Linien und Punkten. Dabei werden mehrere Linien zu Objekten gruppiert. Häuser, Bäume und Straßen sind Beispiele für solche Objekte. Neben der Erkennung der Objekte, werden auch die topologischen Beziehungen der Objekte untereinander erkannt. Der Benutzer kann außer den Skizzenelementen, welche geographische Objekte repräsentieren, auch Meta-Informationen in der Skizze unterbringen. In SketchQuery gibt es zwei Arten von Metainformationen: • • Handschrift Richtungs-/Entfernungsangaben [...]
Grundlagen also zusätzlich neben den drei oben erwähnten Topologien noch eine weitere Beziehung berücksichtigt werden, in welcher die beiden Bäume 112 Meter voneinander entfernt sind. In einer Skizze kann auch eine Himmelsrichtung vorgegeben werden. Nach dieser Himmelsrichtung richtet sich die Anordnung der Objekte. Auch diese kann nicht direkt in die Abfrage eingebaut werden und muss für jeden gefundenen Ergebnis-Datensatz einzeln berechnet und überprüft werden. Dies ist etwas aufwendiger. Eine Bewertung der Algorithmen, welche Spatial für die Suche nach topologischen Beziehungen verwendet, findet sich in Kapitel 3.3. Sehr gut lässt sich mit Spatial nach anderen Beziehungen suchen, die nicht auf Entfernungen oder der „ in der Nähe von“ -Beziehung basieren. Es kann z.B. nach Überschneidungen der Objektgrenzen oder Enthaltensein gesucht werden. Die von Spatial unterstützten Beziehungen wurden in Abbildung 2.3 dargestellt. Auch dafür gibt es praktische Abfragen wie beispielsweise die Suche nach Gebäuden, welche sich in einem Wald befinden oder die Suche nach Straßen, die sich mit Flüssen kreuzen. In einer Skizze kann die Bezeichnung eines Objekts, wie z.B. der Name einer Straße vorgegeben werden. Da ein Datensatz immer aus den thematischen Daten und den dazugehörigen Koordinaten besteht, können solche Objekte problemlos in der Datenbank identifiziert werden. Da bei einer vorgegeben Entfernung von z.B. 100 Metern, i.d.R. keine Objektpaare gefunden werden, deren Abstand exakt 100 Meter beträgt, muss in den Abfragen eine Toleranz verwendet werden. Dadurch gibt es Ergebnisse mit unterschiedlicher Qualität. Um die Genauigkeit eines gefundenen Ergebnisses bewerten zu können muss u.a. die Entfernung zweier Objekt ermittelt werden. Des Weiteren kann es für die Darstellung, oder für weitere Berechungen wichtig sein, wo sich der Mittelpunkt eines Objekts befindet, oder welche Fläche ein Objekt beinhaltet. Diese Aufgaben lassen sich alle durch die in Abschnitt 2.2.4 erwähnten Funktion erledigen, wodurch keine zusätzliche Implementierung dieser Berechungsfunktionen erforderlich ist. Die Vorteile und Probleme von Spatial für die Beantwortung skizzenbasierter Anfragen werden in Tabelle 2.1 zusammengefasst. Insgesamt lässt sich feststellen, dass Spatial für die in dieser Arbeit geforderten Anfragen gut geeignet ist. Die Effizienz könnte in einigen Fällen zwar noch gesteigert werden, ist aber trotzdem zufrieden stellend und kann deshalb im Rahmen dieser Arbeit berücksichtigt werden. Eine eigene, zeitaufwendige Implementierung der Algorithmen zur Anfrage-Beantwortung ist deshalb nicht erforderlich. [...]
In Spatial kann die gesamte Anfrage nicht auf einmal ausgeführt werden. Sie muss deshalb in mehrere Teilabfragen zerlegt werden. Da davon ausgegangen wird, dass für jede Objektart (Parkplätze, Bäume, Gebäude oder Bahnhöfe) eine eigene Tabelle existiert, muss nur noch nach den topologischen Beziehungen dieser Objekte gesucht werden. Es bietet sich in Spatial an, für jede Topologie eine Abfrage auszuführen. Das Ergebnis dieser Abfrage wird in einer Tabelle zwischengespeichert und für die folgenden Topologien weiterverwendet. Wird z.B. nach der Beziehung „ Parkplatz neben Bahnhof“ gesucht, dann wird mit Hilfe des SDO_JOIN-Operators eine Tabelle erzeugt, die Paare von Parkplätzen und Bahnhöfen enthält, für welche diese Beziehung erfüllt ist. Aus dieser Tabelle und der Tabelle mit den Bäumen wird eine weitere Tabelle erzeugt, in der die zweite Topologie erfüllt ist, usw. Wie in Abschnitt 2.2.3 erwähnt, kann mit dem SDO_JOIN-Operator nicht in einem Schritt nach Objektpaare mit einer vorgegebenen Entfernung von z.B. 50 Metern gesucht werden. Es müssen also zuerst alle Objektpaare ermittelt werden, deren Abstand kleiner oder gleich 50 Meter ist. Danach müssen im zweiten Schritt die Paare, die zu nahe beieinander liegen entfernt werden. Falls große Entfernungen angegeben werden, liefert der erste Schritt viele Ergebnisse, von denen die meisten im zweiten Schritt wieder entfernt werden müssen. Diese Vorgehensweise, welche nicht umgangen werden kann, wirkt sich dann negativ auf die Performance aus. Auch Winkelbeziehungen, wie sie im Beispiel zwischen den beiden Bäumen und dem Bahnhof bestehen können nicht direkt mit Spatial abgefragt werden. Jedoch lassen sich diese durch eine zusätzliche Entfernungs-Beziehung realisieren: Wenn die Bäume und der Bahnhof wie in der Skizze angeordnet sind, dann ergibt sich aus der Trigonometrie, dass der Abstand zwischen den Bäumen [...]
In den Warenkorb
74,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832440718
Arbeit zitieren:
Dangelmayer, Frank Juli 2004: Konzeption und Implementierung eines Verfahrens für effiziente, nicht präzise Datenbankabfragen im Kontext eines skizzenbasierten GIS, Hamburg: Diplomica Verlag
Schlagworte:
R-Baum, Spatial Join, Oracle Spatial, Topologie, Softwareentwurf



