Interaktive 2D-Bildschirmkarten mit Datenbankanbindung

Werbung
Diplomarbeit
Interaktive 2D-Bildschirmkarten mit
Datenbankanbindung
Institut für Informatik III
Rheinische Friedrich-Wilhelms-Universität Bonn
vorgelegt von
Hadžirešić Ernest
Eifelstr. 26
53119 Bonn
Betreuer
Prof. Dr. Rainer Manthey
Bonn, den 03. Mai 2004
II
Eidesstatliche Erklärung:
Ich erkläre hiermit, daß ich
• die eingereichte Arbeit selbständig und ohne unerlaubte Hilfsmittel angefertigt,
• nur die im Literaturverzeichnis aufgeführten Hilfsmittel benutzt und fremdes Gedankengut als solches kenntlich gemacht,
• alle Personen und Institutionen, die mich bei der Vorebereitung und Anfertigung der Abhandlung unterstützt haben, genannt und
• die Arbeit noch keiner anderen Stelle zur Prüfung vorgelegt habe.
Ort, Datum
Unterschrift (Vor- und Zuname)
IV
Vorwort
Mein Dank gebührt Herrn Prof. Dr. Manthey für die Empfehlung,
mich mit diesem sehr interessanten Thema zu beschäftigen. Außerdem möchte ich Ihm für seine Betreuung und sein Vertrauen
danken. Durch die Gespräche mit Ihm konnte der Diplomarbeit
erst dieser Rahmen gegeben werden.
Außerdem bedanke ich mich bei meiner Ehefrau, Adna, für Ihre
Geduld und Ihr Verständnis und für die überraschend guten Kochkünste, die sie in der letzten Phase der Diplomarbeit zu Tage gelegt
hat.
VI
Inhaltsverzeichnis
1 Einleitung
2 Grundlagen aus der Geo-Informatik
2.1 Geo-Objekte und deren Modellierung . . . . . . .
2.1.1 Geometrie von Geo-Objekten . . . . . . .
2.1.2 Topologie von Geo-Objekten . . . . . . . .
2.1.3 Thematik von Geo-Objekten . . . . . . . .
2.1.4 Dynamik von Geo-Objekten . . . . . . . .
2.1.5 Modellierung von Geo-Objekten . . . . . .
2.2 Visualisierung von Geo-Objekten . . . . . . . . .
2.2.1 Der Begriff der Karte . . . . . . . . . . . .
2.2.2 Funktionalitäten eines GIS . . . . . . . . .
2.2.3 Graphische Darstellung von Geo-Objekten
5
.
.
.
.
.
.
.
.
.
.
7
7
8
10
11
12
13
14
15
16
17
3 Grundlagen über Datenbanken
3.1 Datenbankentwurf . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Das Entity-Relationship-Modell . . . . . . . . . . . . . . . . . . .
3.3 Das relationale Datenmodell . . . . . . . . . . . . . . . . . . . . .
19
19
20
23
4 Softwaregrundlagen
4.1 Grundlagen zu Visual Basic . . . . . . . . . . . .
4.1.1 Die Bedienungselemente von Visual Basic
4.1.2 Der Aufbau von Visual Basic Programmen
4.1.3 Objektorientierte Programmierung . . . .
4.2 Datenzugriff . . . . . . . . . . . . . . . . . . . . .
4.2.1 ActiveX Data Objects . . . . . . . . . . .
.
.
.
.
.
.
28
28
28
30
31
32
33
5 Modellierung von Geo-Objekten
5.1 Konzeptuelle Modellierung . . . . . . . . . . . . . . . . . . . . . .
5.2 Abbildung auf Relationen . . . . . . . . . . . . . . . . . . . . . .
36
39
42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Ein Schichtenkonzept zur Visualisierung und Manipulation von Geodaten
46
6.1 Visualisierung von Geodaten . . . . . . . . . . . . . . . . . . . . . 46
1
Inhaltsverzeichnis
6.1.1 Schichtenkonzept . . . . . . . . . . . . . . . . . . . . . . .
6.1.2 Wahl der Darstellung . . . . . . . . . . . . . . . . . . . . .
Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
49
50
7 Architektur und Funktionalität des DataMap-Systems
7.1 Architektur und Komponenten . . . . . . . . . . . . . . . . . . . .
7.2 Oberfläche: Design und Funktionen . . . . . . . . . . . . . . . . .
57
57
61
8 Zusammenfassung und Ausblick
65
6.2
2
Abbildungsverzeichnis
2.1
2.2
2.3
2.4
Punkt als Vektor . . . . . . . . . . . . . . . . . . . . . . . .
Geometrische Grundelemente im Vektor- bzw. Raster-Modell
Layer-Modell . . . . . . . . . . . . . . . . . . . . . . . . . .
Raster-Modell: Fluss . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
9
10
12
14
3.1
3.2
Ein konzeptuelles Schema . . . . . . . . . . . . . . . . . . . . . .
Schwacher Entitätstyp . . . . . . . . . . . . . . . . . . . . . . . .
21
23
4.1
Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
5.1
5.2
5.3
5.4
5.5
5.6
Entitätstyp Punkt . . . . .
Entitätstyp Stadt . . . . .
Entitätstyp Verbindung . .
Entitätstyp Zuglinie . . .
Entitätstyp Bundesländer
Konzeptuelles Schema . .
.
.
.
.
.
.
40
40
41
42
42
43
6.1
6.2
6.3
Das Schichtenkonzept . . . . . . . . . . . . . . . . . . . . . . . . .
Beispiel einer Fläche . . . . . . . . . . . . . . . . . . . . . . . . .
Editieren einer Fläche . . . . . . . . . . . . . . . . . . . . . . . .
48
54
55
7.1
Oberflächendesign . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
Tabellenverzeichnis
3.1
4
Relation in Tabellenform . . . . . . . . . . . . . . . . . . . . . . .
24
1 Einleitung
Der Begriff Geo-Informationssytem (GIS), im engl. Sprachraum als Geographic
Information Systems bezeichnet, ist Anfang der 60er Jahre zum ersten mal in
der Literatur über den Aufbau eines raumbezogenen Informationssystems in
Kanada zu finden. Seitdem ist eine rasante Entwicklung der GIS zu beobachten.
Waren sie zu Beginn nur der Forschung oder dem Millitär vorbehalten, finden
sich heutzutage zunehmend auch Formen eines GIS (Routenplaner) auch auf
Computern privater Haushalte. Jedes Fachgebiet, welches Daten mit Raumbezug
nutzt, kommt als potentieller Anwender in Frage. So sind GIS im Bereich der
Geographie, Architektur oder Landschaftplanung unerläßlich.
Das grundlegende Problem, das einer Verarbeitung von Daten im Bereich der
Geoinformatik zugrundeliegt, ist die Vielfalt der Darstellungsmöglichkeiten von
realen räumlichen Objekten. Es ist unmöglich alle Anwendungsbereiche, die
durch Geo-Obejkte dargestellt werden können, in einem System zu vereinen.
Dies hängt nicht zuletzt damit zusammen, dass an Geo-Objekte eine Vielzahl
von Interessen und Themen angeknüpft werden können.
Ziel dieser Diplomarbeit war es ein System zu entwickeln, das in der Lage
ist, anhand der sich in der Datenbank befindlichen Daten eine interaktive
Bildschrimkarte zu erzeugen. Dabei sollte nicht ein neues GiS entwickelt werden.
Die Darstellung von Daten in visueller Form und damit eine möglichst benutzerfreundliche Anwendung sollte ermöglicht werden. Darüber hinaus sollte das
System nicht bloß einen, sondern möglichst viele Anwendungsbereiche erfassen
können, wobei hier das ICE/EC/IC- Streckennetz der Deutschen Bahn als Anwendungsbeispiel gedient hat. Gewünschte Änderungen sollen in die Datenbank
übernommen und Anfragen über den Bildschirm direkt erstellt werden können.
Ein Zusammenspiel zwischen der Datenbank und den visuellen Fähigkeiten sollte
möglichst einfach erfolgen.
Die bereits durch das VirtualMap realisierte Idee der Darstellung und Manipulation von Geo-Obejkten wurde hier für eine Neuentwicklung des Systems
DataMap genutzt. Das DataMap-System sollte auf einem PC unter Microsoft Windows lauffähig sein und ist mit Visual Basic entwickelt worden. Als
zugrundeliegendes Datenbanksystem wurde das in Microsoft Office enthaltene
5
1 Einleitung
Access-System verwendet. Dabei wurde das System so entwickelt, dass jede
andere relationale Datenbank benutzt werden kann.
In Kapitel 2 werden die Grundlagen aus der Geo-Informatik erläutert. Dabei steht
die Erklärung grundlegender Begriffe wie Geo-Objekte, Modellierung und Visualisierung im Vordergrund. Das nachfolgende 3. Kapitel befasst sich mit Datenbankgrundlagen, wobei vordergründig das Entity-Relationship und das relationale Datenmodell dargestellt werden. Das enwickelte Datenbankschema wurde mit
Hilfe dieser beiden Modelle erarbeitet. Im 4. Kapitel wird die Entwicklungsumgebung Visual Basic vorgestellt und deren Komponenten erläutert. Dabei wird der
Begriff der obejktorientierten Programmierung in Bezug zu Visual Basic erklärt.
Des weiteren wird die für DataMap angewendete Datenzugriffsmethode (ADO)
vorgestellt. In Kapitel 5 wird die Problematik der Modellierung von Geo-Objekten
behandelt und ein ER-Schema für das obengenante Anwendungsbeispiel erzeugt.
Anschließend erfolgt die Überführung dieses Schemas in ein relationales Schema.
Mit der Visualisierung und Manipulation von Geodaten befasst sich das 6. Kapitel. Hier wird auch das Schichtenkonzept für den Aufbau einer Bildschrimkarte
vorgestellt. Die Architektur des DatMap-Systems mit dazugehörigen Komponenten und deren Zusammenspiel wird in Kapitel 7 erläutert. Dabei werden auch das
Design der Bildschrimkarte und die implementierten Funktionen erklärt.
6
2 Grundlagen aus der
Geo-Informatik
2.1 Geo-Objekte und deren Modellierung
Die Anwendungsgebiete der Geo-Informationssysteme (GIS) sind vielfältig.
Dementsprechend finden sich in der Literatur viele Ansätze einer Definition. Der
gemeinsamer Nenner dieser Definitionen ist das Verarbeiten geographischer Informationen in einer integrierten Umgebung. In [BZ 01] definieren R.Bill und
M.Zehner Geo-Informationssysteme wie folgt:
Ein Geo-Informationssystem ist ein rechnergestütztes System, das
”
aus Hardware, Software, Daten und den Anwendungen besteht. Mit
ihm können raumbezogene Daten digital erfasst und redigiert, gespeichert und reorganisiert, modelliert und analysiert sowie alphanumerisch und graphisch präsentiert werden.“
Raumbezogene Daten sind Informationen zu realen Objekten, die direkt oder
indirekt mit einer Position auf der Erde verknüpft sind. Dies können beispielsweise Informationen über Städte, Länder u.a. sein. Je nach Fragestellung wird
der Raumbezug unterschiedlich dargestellt. Im Verkehrswesen wird der Raumbezug über Angaben von zwei- oder dreidimensionalen Koordinaten angegeben.
Diesen Angaben liegt ein Bezugssystem und eine primäre Metrik zugrunde. In
der amtlichen Statistik wird der Raumbezug dagegen meist über eine sog. sekundäre Metrik angegeben. Beispiele für sekundäre Metrik sind Kennziffern
(Postleitzahl, Telefonvorwahl usw.), Namen (Ortsname, Lagebezeichnung usw.)
oder Adressen (Stadt, Hausnummer, Straßenname). Die Bindung von fachspezifischen Informationen an räumliche Bezugseinheiten oder an Objekte mit einem
Raumbezug tritt dabei als typische Problematik auf. Als Geo-Objekttypen, d.h.
als räumliche Objekte, an die die Informationen über reale Objekte gekoppelt
werden, treten auf:
• Punkt (Messstation, Stadt, Bergspitze etc.)
• Linie (Zugverbindungen, Straßen, Flüsse etc.)
• Fläche (Gemeindegebiet, Länder, Seen etc.)
7
2 Grundlagen aus der Geo-Informatik
Auch für die Definition des Begriffs Geo-Objekt finden sich in der Literatur viele
Ansätze. Prof.Dr Streit definiert in [Str 03] Geo-Objekte folgendermaßen:
Ein Geo-Objekt ist das abstrakte Modell eines realen räumlichen
”
Objektes, das hinsichtlich seiner räumlichen Lage (Geometrie), seiner Lagebeziehung zu anderen Geo-Objekten (Topologie), seiner fachlich relevanten Eigenschaften (Thematik) und seiner zeitlichen Veränderungen (Dynamik) gegenüber anderen Geo-Objekten unterschieden
werden kann.“
Ein real räumliches Objekt beschreibt eine konkrete physisch, geometrisch oder
begrifflich begrenzte Einheit der Natur. Ein Haus, eine Stadt oder ein Baum
sind nur einige Beispiele eines real räumlichen Objekts. So kann auch ein Wagen,
dessen aktuelle Position über GPS1 festgestellt werden könnte, als real räumliches Objekt betrachtet werden. Ein real räumliches Objekt wird durch ein GeoObjekt modelliert und über die Eigenschaften des Geo-Objekts (Geometrie, Topologie,Thematik und Dynamik) eindeutig definiert. Das abstrakte Modell einer Klimastation, zur Messung meteorologischer Parameter, ist das Geo-Objekt
Punkt mit der:
Geometrie - geographische Koordinaten beschreiben die räumliche Lage der Klimastation
Topologie - Die Klimastation liegt im Stadtgebiet von Bonn
Thematik - Meßdaten für Lufttemperatur
Dynamik - Zeitliche Variationen der Lufttemperatur.
2.1.1 Geometrie von Geo-Objekten
Die Geometrie eines Geo-Objektes umfasst die Angaben zur Lage des GeoObjektes auf der Basis eines eindeutigen räumlichen Bezugssystems (Lagekoordinaten). Ein räumliches Bezugssystem setzt als Bedingung eine definierte
Metrik voraus. Die Metrik mißt den Abstand zwischen zwei Geo-Objekten
z.B. den Abstand zwischen Punkt-Punkt oder Punkt-Fläche. Die Lagekoordinaten eines Geo-Objekts können durch geodätische Bezugssysteme wie
geographische Koordinatensysteme, 3D-Koordinatensysteme [WGS84]2 , durch
kartographische Bezugssystemen wie Gauß-Krüger-Koordinatensysteme oder
UTM-Koordinatensysteme3 angegeben werden. Zur Abbildung von realen GeoObjekten in Geo-Informationssystemen bzw. zur Erfassung ihrer Geometrie sind
1
Global Positioning System: Navigations- und Vermessungsystem
World Geodetic System 1984; Weltweites Referenzellipsoid als Basis der GPS-Vermessung
3
Universal Transverse Mercator Koordinaten
2
8
2.1 Geo-Objekte und deren Modellierung
in einem Geo-Informationssystem ebenfalls Bezugsysteme erforderlich. Die Darstellung der Geo-Objekte erfolgt im sog. Vektormodell oder im sog. Rastermodell.
Das Vektormodell hat den Punkt und die Linie als geometrische Grundelemente. Im gewählten räumlichen Bezugssystem wird ein Punkt durch die Angabe
seiner Koordinaten eindeutig definiert. Die Bezeichnung Vektormodell entsteht
aus der Möglichkeit, dass der Punkt als Endpunkt eines vom Nullpunkt ausgehenden, gerichteten Vektors aufzufassen ist (s. Abbildung 2.1).
Abbildung 14:
Abbildung 2.1: Punkt als Vektor
Eine geradlinige oder geschwungene Kurve zwischen zwei Punkten ist eine Linie
im geometrischen Sinne. Zur exakten geometrischen Beschreibung einer Linie
muss eine mathematische Funktion verwendet werden (z.B Y = 8 + X 3 ). Eine
solche mathematische Beschreibung realer Geo-Objekte ist sehr aufwendig und
in der Regel nur näherungsweise möglich. Deshalb begnügt man sich mit einer
vergröberten geometrischen Beschreibung der Linienform durch Zwischenpunkte
und verbindende Geradenstücke. Je nach Komplexität der Linienform werden
dabei mehr oder weniger solcher Zwischenpunkte verwendet. Auf diesen beiden
Grundelementen, Punkt und Linie, lassen sich weitere komplexe Strukturen
Die Topologie von Geoobjekten
zur Modellierung von Geo-Objekten aufbauen. Eine zusammenhängende Folge
mehrerer Punkte und Linien wird als Linienzug bezeichnet. Das Innere eines
geschlossenen Linienzuges stellt eine Fläche im geometrischen Sinne dar.
Bei der Darstellung von Geo-Objekten im Rastermodell ist die Rasterzelle das
Grundelement. In Anlehnung an die Anwendungen in der Bildverarbeitung wird
die Rasterzelle auch als Pixel bezeichnet. Sie besitzt eine rechteckige Form und
überdeckt eine bestimmte Fläche. Die Genauigkeit der geometrischen Beschreibung eines Geo-Objektes hängt von der Basisgröße der Rasterzelle ab. Ein Punkt
wird näherungsweise durch ein einzelnes Pixel dargestellt. Eine Linie wird durch
entsprechende Anordnung zusammenhängender Pixel angenährt erfasst. Eine Fläche ist ebenfalls durch zusammenhängende Pixel darstellbar.
42
9
2 Grundlagen aus der Geo-Informatik
TU Dresden
a) Geometrisches Element
Fachbereich
Geowissenschaften
Element
Vektor
Digital
Buchroithner / Csaplovics / Schmidt
GeoinformationsSysteme (1)
Analog
Raster
Digital
•
Pixel
Punkt
x,y Koordinaten
Linie
x y-Koordinatenfolge
Pixelfolge
Fläche
geschloss.
x y-Koordinatenfolge
Pixelfläche
Analog
1) Einführung
2) Datentypen
3) Hard- & Software
4) Datenerfassung
5) Datenmodellierung
b) Graphische Repräsentation
6) Datenanalyse
7) Präsentation
8) Beispiele & Trends
Vektor
•
a
Folie 65 von 88
Raster
b
c
a'
b'
c'
Abb.: Geometriedaten und deren graphische Ausgestaltung
Abbildung 2.2: Geometrische Grundelemente im Vektor- bzw. Raster-Modell
2.1.2
Topologie von Geo-Objekten
TU Dresden
2.1 Geometriedaten
Fachbereich
Die
räumliche Beziehung von Geo-Objekten zueinander wird durch die Topologie
Geowissenschaften
gekennzeichnet. Diese ist stets ein gemeinsames Charakteristikum von zwei oder
Buchroithner / Csaplovics / Schmidt
mehreren Geo-Objekten.
Als
zentrale
Konzepte sind zu nennen:
•
Vektoren
bevorzugt
für topologische
Punkt- und Liniendarstellungen
genutzt (Flurstück: Verbindungslinien vektoriell, Grenz-
Geoinformations• Nachbarschaften
liniennetzwerk)
Systeme (1)
•
Rasterdaten
eignen sich am besten für
• Überlagerungen
bzw. Überschneidungen
1) Einführung
2)
Flächendarstellungen (Fernerkundung: stets Raster)
• Teilmengenbeziehungen.
Datentypen
•
Topologie: -
muss in der Vektorwelt explizit
angegeben werden
In einem zweidimensionalen Raum
sind zwischen den drei geometrischen Grund4) Datenerfassung
- in der Rasterwelt durch die zeilen- und
formen Punkt, Linie und Fläche, folgende topologische Beziehungen möglich:
5) Datenmodellierung
spaltenweise Anordnung gegeben
3) Hard- & Software
6) Datenanalyse
1. Zwei
Flächen
benachbart,
falls
sie einegemeinsam
gemeinsame
• sind
Rasterund Vektorwelt
existieren
in Grenze (mindestens
gemeinsamen
Grenzpunkt)
besitzen. (Deutschland und Frankreich haraumbezogenen
Informationssystemen.
Beispiele &ben
Trends
eine gemeinsame Grenze und sind deshalb benachbart).
7) Präsentation
einen
8)
2. Zwei Linien sind benachbart, falls der Endpunkt der einen mit dem Anfangspunkt der anderen Linien identisch ist. (Die Zugstrecke Köln-Bonn ist
Folie 66 von 88 mit der Zugstrecke Bonn-Siegburg benachbart).
3. Zwei Punkte sind benachbart, wenn sie durch eine Strecke miteinander verbunden sind, wobei die Nachbarschaftsbeziehungen auch inhaltlich definiert
10
2.1 Geo-Objekte und deren Modellierung
werden können. So sind bspw. A und B benachbarte Punkte, wenn sie direkt durch eine Strecke mit einer bestimmten Eigenschaft verbunden sind
(z.B. Verbindung zweier Städte durch eine ICE-Linie).
4. Zwei Objekte überlagern bzw. schneiden sich, wenn sie (mindestens) einen
gemeinsamen Punkt besitzen.
5. Eine Teilmengenbeziehung liegt z.B. dann vor, wenn ein Punkt auf einer
Linie oder einer Fläche liegt oder wenn eine Fläche eine Teilfläche oder eine
Linie enthält.
2.1.3 Thematik von Geo-Objekten
Ein Geo-Objekt besitzt immer eine Thematik. Sie gibt Aufschluß über die inhaltliche Bedeutung des Geo-Objekts. Die Geometrie und die Topologie sagen über
eine Linie auf einer Straßenkarte aus, dass sie eine bestimmte Lage und Länge
hat, sich schneidet usw. Demgegenüber trägt die Thematik die Bedeutung der
Linie z.B. als Autobahn, Bundesstrasse, Landstrasse usw. Die Thematik ist im
allgemeinen durch mehrere Attribute (Merkmale) gekennzeichnet. Die Attribute
können in unterschiedlichen Messskalen gemessen werden:
1. Nominalskala: Die Attributwerte werden nur durch Namen unterschieden.
2. Ordinalskala: Die Attributwerte werden durch Ziffern oder Zeichen mit einer
definierten Ordnungsrelation beschrieben.
3. Metrische Skala: Die Attributwerte werden durch reelle Zahlen beschrieben.
Die Beschreibung, Bearbeitung und Speicherung verschiedener Thematiken von
Geo-Objekten in einem Geo-Informationssystem, kann durch das Layer-Modell
oder durch das Objekt-Modell erfolgen.
Das Layer-Modell (Schichten, Ebenen) ist ein klassisches Konzept, das in der
Kartographie bei der Herstellung topographischer und thematischer Karten entwickelt wurde. Beim Layer-Modell werden die Geometriedaten der Objekte und
deren Attribute streng nach der verschiedenen thematischen Bedeutung getrennt
und in verschiedenen Layer (Ebene) gehalten. In einem Layer befinden sich nur
Geo-Objekte gleicher geometrischer Dimension und gleicher Klassenzugehörigkeit. Bei einer konkreten Anwendung werden dann je nach fachlichem Bedarf
ausgewählte Layer deckungsgleich übereinander gelegt. Die Gesamtsicht all dieser Layer ergibt dann den thematischen Rahmen der Untersuchung (s. Abbildung
2.3).
Die Vorteile des Layer-Modells sind:
• Thematische Übersichtlichkeit
11
44
2 Grundlagen
Abbildungaus
16: der Geo-Informatik
Abbildung 2.3: Layer-Modell
• Layerspezifische Datenerfassung, Aktualisierung und Zugriffsrechte
• Einfache und schnelle Suche nach Teil-Thematiken.
Das Objekt-Modell ist ein neuartiges Konzept. Dieses orientiert sich am Prinzip
objektorientierter Datenmodelle. Grundlage objektorientierter Datenmodelle ist
die Abstraktion der Realität in Objekte, Klassen und Beziehungen. Geo-Objekte
werden als Objekte mit eigener Identität modelliert. Jedes Objekt besitzt eigene
Attributwerte zur Festlegung der Geometrie, Topologie, Thematik und Dynamik,
sowie eigene Methoden. Dabei sind Objekte stets Instanzen der sie erzeugenden
Klasse. Die Klasse beschreibt die Struktur und das Verhalten der ihr gehörenden Objekte. Die Kommunikation zwischen Klassen und deren Objekten erfolgt
über Beziehungen. Kapselung von Objekten, Vererbung (Unterklassen werden
von einer Klasse abgeleitet) und Polymorphismus sind weitere Merkmale objektorientierter Datenmodelle. Die Vorteile des Objekt-Modells sind:
• Schnelle Suche nach einem bestimmten Objekt
• Einfache Verwendung der Objekte
• Individualität der Objekte wird betont.
2.1.4 Dynamik von Geo-Objekten
Im Hinblick auf ihre Thematik können sich Geo-Objekte auch im Zeitablauf verändern. Die Messstationen, die Parameter zur Wetterbeobachtung erfassen, messen im Jahresverlauf unterschiedliche Werte von z.B. Lufttemperatur, Luftdruck
oder Niederschlag. Auch der Ertrag von Weinanbaufläche kann sich im Verlauf
mehrerer Ernteperioden ändern. Die aufgeführten Beispiele haben die Gemeinsamkeit, dass sich jeweils ihre Lage und ihr Raumbezug nicht ändern. Diese GeoObjekte, d.h. die Messstationen und die einzelne Weinanbauflächen, besitzen im
12
2.1 Geo-Objekte und deren Modellierung
Zeitablauf (i.d.R) konstante Lagekoordinaten bzw. Grenzlinien. Eine zeitliche Variabilität besitzen diese Geo-Objekte lediglich hinsichtlich ihrer Thematik. Demgegenüber können Geo-Objekte im Zeitablauf auch eine räumliche Variabilität
aufweisen, die ihre Lage und ihre Ausdehnung verändert.
2.1.5 Modellierung von Geo-Objekten
Eine wichtige theoretische Grundlage der Geoinformatik ist die Modellierung
von Geo-Objekten. Wie in der Definition des Begriffes Geo-Objekt beschrieben,
werden in der Geoinformatik nicht die realen Raumobjekte selbst, sondern ihre
gedanklichen Abbilder, also Modelle der Realität betrachtet. Die Modellierung
eines realen Raumobjekts geschieht durch Abstraktion, d.h. durch Vereinfachung
und Verallgemeinerung der Realität. Dabei werden nur diejenigen Strukturen,
Funktionen und Beziehungen betrachtet, die für die Lösung eines fachspezifischen
Problems unbedingt erforderlich sind.
Es ist geläufig, daß Objekte auf der Erdkugel ohne weiteres in Kartenform
dargestellt werden können. Hier erfolgt bereits eine Abstraktion vom 3- zum
2-dimensionalen. Das wichtigste Abstraktionsmittel der Modellierung ist die Zusammenfassung (Klassifikation) ähnlicher Objekte zu einem übergeordneten Typ
(Klasse) unter Vernachlässigung spezieller Eigenschaften (Generalisierung). Ein
Teich und ein See sind beide vom Typ stehendes Gewässer. Vernachlässigt wird
dabei z.B. die unterschiedliche Größe und Genese von Teichen und Seen. Wesentlich ist nur noch, dass der Wasserkörper nicht dauerhaft im fließenden Zustand ist.
Die Zusammenfassung mehrerer Teile zu einem Ganzen ist ein anderes gedankliches Mittel zur Abstraktion. Ein Kreis bspw. hat mehrere Gemeinden, wobei
die Menge der zu diesem Kreis gehörenden Gemeinden semantisch zum Kreis
zusammengefasst wird.
Auch die Darstellung eines realen Raumobjektes kann durch eine ganze Reihe von
Möglichkeiten erfolgen. Als Beispiel sei hier der Verlauf eines Flusses aufgeführt.
Das einfache Modell der Geometrie dieses Flusses ist eine gerade Linie, die den
Anfangs- und den Endpunkt verbindet. Das Modell dieses Flusses als Linienzug,
also eine Folge von Punkten und Linien, ist ebenfalls möglich. Nach dem
Raster-Modell kann das Modell des Flusse auch als Fläche betrachtet werden (s.
Abbildung 2.4). Die Art der Modellierung hängt von sehr vielen Faktoren ab.
Entscheidend hierbei sind die Fragestellungen, der Arbeitsaufwand oder etwa
die Analysemethode. Bei der Analyse und Modellierung von Raumobjekten gibt
es einige grundlegende Aspekte, die bei räumlichen Fragestellung zu beachten
sind. Solche grundlegenden Aspekte sind die räumliche Dimension, die räumliche
Auflösung und die räumliche Varianz.
13
ektklassen
Abbildung 11:
2 Grundlagen aus der Geo-Informatik
Abbildung 2.4: Raster-Modell: Fluss
Ein Geo-Objekt kann von unterschiedlicher Dimension sein bzw. in unterschiedlicher Dimensionierung modelliert werden. Mit Dimension eines Geo-Objektes ist
die Anzahl der voneinander unabhängigen Richtungen des Raumes, die zur geometrischen Modellierung des Raumobjektes verwendet werden, gemeint. Im Sinne
der geometrischen Modellierung ergeben sich unterschiedliche Dimensionen des
Geo-Objektes:
• Punkt: 0-dimensional. Diese haben keine Längen- oder Flächenausdehnung
und werden für die Darstellung z.B. von Bohrpunkten oder Meßstationen
benötigt.
• Linie: 1-dimensional. Linien haben zwar eine Länge, aber keine Flächenausdehnung. Sie beschreiben z.B. Fließgewässer, Straßenzüge oder Kanäle.
• Fläche: 2-dimensional. Sie besitzt eine Flächengröße. Diese beschreibt z.B.
Stadtgebiete, Biotope, Ackerflächen.
Je nach Fragestellung (Abstraktionsgrad) kann die Dimension eines Raumobjektes bei der Modellierung zum Geo-Objekt verringert oder vergrößert werden.
Einem bestimmten Raumobjekt kann man also verschiedene Geo-Objekte unterschiedlicher Dimensionalität zuordnen. Das Gebiet einer Stadt wird bei kleinmaßstäbiger Modellierung auf einen Punkt reduziert und bei großmaßstäbiger Modellierung dagegen als Fläche modelliert. Eine Straße wird bspw. für ein RoutingVerfahren als linienhaftes Objekt modelliert, für Tiefbau-Zwecke, bei großmaßstäbiger Betrachtung, hingegen als Fläche.
2.2 Visualisierung von Geo-Objekten
In einem GIS werden abgespeicherte Daten in alphanumerischer und graphischer
Form dargestellt. Der Schritt der Visualisierung ist insoweit von enormer Bedeu-
14
2.2 Visualisierung von Geo-Objekten
tung, als die Daten in der raumbezogenen Datenbank alleine nutzlos sind, wenn
sie nicht verschiedenartig präsentiert und ausgetauscht werden können. Die Daten eines GIS können zur Präsentation auf verschiedene Weise visualisiert oder
transferiert werden:
• Nichtgraphische Formen wie Tabellen und Berichte
• Passive Graphik in Form von Karten
• Digitaler Datenaustausch auf rechnerlesbaren Speichermedien oder via
Netzwerk
• Interaktive Graphik am Bildschirm im Form von Karten
Wichtig dabei ist, dass die Präsentation in einer Form erfolgt, die für einen Benutzer verständlich und lesbar ist. Die am häufigsten genutzte Präsentationsfrom
der Daten eines GIS ist die letztgenannte, d.h. die interaktive Graphik am Bildschirm im Form von Karten. Im Hinblick auf die Übermittlung von Informationen
ist die Effizienz von Graphiken bekannt. Sie hängt mit den visuellen Fähigkeiten
des Menschen zusammen. Nahezu die Hälfte der Neuronen des menschlichen Gehirns sind mit dem Sehen assoziiert. Die graphischen Zusammenhänge können
weit schneller aufgenommen werden als andere, etwa durch Schrift oder Sprache
weitergegebenen Informationen. Ein Bild sagt mehr als tausend Worte!
2.2.1 Der Begriff der Karte
Eine allgemeingültige Definition für die Metapher Karte“ ist im Hinblick auf
”
die Vielfalt ihrer Anwendungsgebieten sehr schwierig. Im Vorcomputerzeitalter
war die Karte als 2-dimensionale, graphische Abstraktion bzw. als Projektion
eines Weltausschnittes definiert. Karten werden ausschließlich im geographischen
Kontext betrachtet. Nach G.Hake in [BZ 01] wird der Begriff Karte wie folgt
definiert:
Die Karte ist eine maßstäblich verkleinerte, generalisierte und erläu”
terte Grundrissdarstellung von Erscheinungen und Sachverhalten der
Erde, der anderen Weltkörper und des Weltraumes in einer Ebene.“
Das Zeitalter der graphikfähigen Rechner und die Digitalisierung von Daten eröffneten in den letzten Jahren völlig neue Möglichkeiten im Umgang mit Karten.
Die Karte ist nicht mehr nur statische Graphik. Informationen, die in einer Karte
dargestellt werden, können sich dynamisch ändern. Darüber hinaus kann ein Benutzer, der früher lediglich Betrachter einer Karte war, den Zustand und die dargestellten Informationen interaktiv beeinflussen oder sogar verändern. Die Definiton der Karte der Internationalen Kartographischen Vereinigung (ICA) [BZ 01]
spiegelt mehr den heutigen Sinn der Karte wieder :
15
2 Grundlagen aus der Geo-Informatik
Die Karte ist eine ganzheitliche Darstellung und intellektuelle Ab”
straktion der geographischen Realität, die für einen bestimmten Zweck
vermittelt werden soll, wozu die relevanten geographischen Daten in
ein Endprodukt umgewandelt werden, das visuell, digital oder betastbar
sein soll.“
Die gespeicherten Daten eines GIS werden durch eine Karte visuell dargestellt.
Dabei ist die Karte ein wesentlicher Informationsträger und gleichzeitig dient sie
als Medium zur Kommunikation. Aus der obigen Definition ist besonders hervorzuheben, dass die Karte eigentlich ein Endprodukt ist. Im Gegensatz dazu
wartet der GIS-Datenbestand auf eine erneute Analyse zu einem bisher nicht
vorgesehenem Zweck. Die Karte ist daher immer als Zwischenstadium und nicht
als Endprodukt zu betrachten.
2.2.2 Funktionalitäten eines GIS
Wie schon in 2.2 erwähnt wurde, ist die am häufigsten genutzte Präsentationsform eines GIS die Interaktive Graphik am Bildschirm im Form von Karten.
Damit wird dem Benutzer eines GIS die Interaktion mit dem System geboten.
Das Wort Interaktion“ ist lateinisch und bedeutet:
”
Wechselbeziehung zwischen aufeinander ansprechenden Partner.“
”
Anforderungen, die ein Benutzer an das GIS stellt, ist eine benutzerfreundliche
Anwendung. Es soll sehr schnell auf seine Interaktion reagieren können und gleichzeitig die Unterstützung beim Zugang zu allen Daten, unabhängig davon, ob der
Benutzer nun von der Graphikseite oder Datenbankseite her agiert, bieten. Wenn
der Zugang von der Graphikseite her erfolgt, ist der Anfrageraum die Graphik
und der Suchraum ist dann die Datenbank. Umgekehrt ist es hingegen, wenn der
Zugang von Datenbankseite her erfolgt. Der Anfrageraum ist die Datenbank und
der Suchraum die Graphik. Für die Unterstützung bei der Interaktion stellt ein
GIS ein Menge von Grundbefehlen zur Verfügung. Die wesentlichen Funktionalitäten eines GIS sind nach R.Bill unterteilt in:
• Windowmanagement
• Displaymanagement
• Interaktionsmanagement
Mit Window“ ist die Gesamtdarstellungsfläche eines Bildschirmes gemeint. Als
”
Standardfunktionalitäten sind der Zoom (Vergrößern/Verkleinern) und der
Pan (Verschieben/Neuzentrieren) zu nennen, die den gesamten visualisierten
Datenstand manipulieren können. Die Pan-Funktion verschiebt den gesamten
Bildschirminhalt und zentriert ihn an einer aktuellen Cursorposition neu. Der Datenbestand wird dadurch graphisch in verschiedene Richtungen durchgeblättert.
Bei der Zoom-Funktion ist zwischen dem geometrischen Zoom und dem logischen
16
2.2 Visualisierung von Geo-Objekten
Zoom zu unterscheiden. Geometrisches Zoomen präsentiert alle momentan
angezeigten Informationen in einem Fenster je nach gesetztem Zoomfaktor
(Vergrößerung odeer Verkleinerung). Beim logischen Zoomen werden bei einer
Vergrößerung zusätzliche (d.h neue, bisher nicht dargestellte) Informationen
angezeigt. Bei einer Verkleinerung werden dargestellte Informationen zum Teil
unsichtbar gemacht.
Das Displaymanagement bezeichnet alle Funktionen, die selektiv auf dem Datenbestand aktiviert werden können und die Graphik verändern. Das sind in erster
Linie folgende Funktionen:
1. Display: graphische Anzeige der Objekte
2. Detectability: entscheidet, ob ein sichtbares Objekt anwählbar ist
3. Verify: Hervorheben des angewählten Objekts
4. Visibility: Objekte werden sichtbar bzw. unsichtbar gemacht.
Die Reihenfolge der Anzeige von Objekten kann in einer Liste der Displayprioritäten festgelegt werden. Dadurch überdecken die Objekte mit der höheren
Priorität die Objekte mit niedrigerer Priorität.
Das Interaktionsmanagement bezeichnet die Funktionen, die während der Datengewinnung, der Datenfortführung und der selektiven Datenanalyse zur Geltung
kommen. Es handelt sich um folgende Funktionen:
1. Insert: Erzeugung neuer Objekte
2. Delete: Löschen von Objekte
3. Redo: Wiederherstellungsoption
4. Update: Objekteigenschaften ändern
2.2.3 Graphische Darstellung von Geo-Objekten
Die graphische Darstellung von Geo-Objekten muss so konzipiert sein, dass die
hinter den numerischen Daten stehenden Informationen in der Graphik spontan
wahrgenommen und im gewünschten bzw. richtigen Sinn verstanden werden
können. So teilt z.B. die Farbe und die Größe graphischer Darstellung eines
Geo-Objektes sehr viel an inhaltlicher Information mit. Die blaue Farbe ist für
Gewässer reserviert. Die Größe eines Kreisringes auf einer Landkarte drückt die
Einwohnerzahl einer Stadt aus.
17
2 Grundlagen aus der Geo-Informatik
Mit der graphischen Semiologie (d.h Syntax; Semantik und Pragmatik) hat Bertin (1982) eine grundlegende Theorie der graphischen Darstellung von Daten
entwickelt. Für die drei graphischen Grundelemente (Punkt, Linie und Fläche)
der zwei-dimensionalen Darstellung auf Papier und Bildschirm unterscheidet er
sieben graphische Variablen zur Modifikation. Die graphischen Variablen richten
sich dabei an der jeweils zu vermittelnden Information:
• Position
• Größe
• Helligkeit
• Muster
• Farbe
• Richtung
• Form
Jede dieser graphischen Variablen hat spezielle Fähigkeiten zur Visualisierung
von Informationen. Die Größe zeigt unterschiedliche Quantitäten und eignet sich
zum Bewerten durch vergrößern oder verkleinern. Die Form hingegen zeigt unterschiedliche Qualitäten und erleichtert die Erkennung von dargestellten Objekten.
Durch verschiedene graphische Darstellungsformen wird bspw. unterschieden, ob
es sich bei der Visualisierung um ein Haus oder um einen Fluss handelt. Die Farbe ist in hohem Maße für Assoziationen geeignet. Durch einen Farbton werden
verschiedene Qualitäten beschrieben. Eine Grün gefärbte Fläche assoziert bspw.
einen Wald oder eine Wiese, eine blaue Fläche assoziert einen See oder das Meer.
Durch die Farbsättigung beschreibt die Farbe auch Quantitäten. Tiefere Teile des
Meeres können bspw. durch Dunkelblau und weniger tiefe Teile durch etwas helleres Blau dargestellt werden.
Durch die Möglichkeit mehrere graphische Variablen zur Darstellung eines Objektes zu bündeln, erhält man mehr Informationen über das dargestellte Objekt.
So wird bspw. im Diercke-Weltatlas [Die 88] die Einwohnerzahl der Orte (Städte)
durch die Bündelung von Form, Größe und Farbe dargestellt.
18
3 Grundlagen über Datenbanken
Dieses Kapitel orientiert sich an der Darstellung in [Kem 95].
3.1 Datenbankentwurf
Der Datenbankentwurf dient der Abbildung eines Ausschnitts der realen Welt
(der sog. Miniwelt) auf ein Datenbankschema. Dieser Prozess ist in vier Phasen
unterteilt:
1. Anforderungsanalyse
2. konzeptueller Entwurf
3. logischer Entwurf
4. physischer Entwurf.
In jeder Phase werden bestimmte Ergebnisse erarbeitet, die in der nächsten
weiterverwendet werden. Hierzu stehen auf jeder Ebene verschiedene Arbeitstechniken zur Verfügung. Die vier Ebenen müssen nicht streng sequentiell
ablaufen. Es finden vielmehr Rücksprünge zwischen den einzelnen Ebenen statt,
um entdeckte Fehler zu beheben oder bessere Lösungen zu schaffen.
Durch die Ebene der Anforderungsanalyse werden relevante Aspekte der zu modellierenden realen Welt von unwichtigen abgegrenzt. Es werden Informationen
über die zu modellierende reale Welt gesammelt. Diese Informationen werden
auf ihre Verständlichkeit und Eindeutigkeit überprüft und danach klassifiziert,
d.h. Information werden Objekten, Beziehungen, Operationen und Ereignissen
zugeordnet. Das Ergebnis dieser Analyse ist ein Pflichtenheft (Anforderungsspezifikation). In diesem wird sowohl festgehalten, welche Objekte der realen
Welt relevant sind, als auch deren Eigenschaften (Attribute) und Beziehungen
zueinander. Die verwendeten Techniken sind u.a. Gespräche mit zukünftigen
Anwendern oder Fragebögen.
Die Überführung der noch weitgehend umgangssprachlich formulierten Anforderungen aus der Anforderungsanalyse in eine formale Spezifikation ist die Aufgabe
19
3 Grundlagen über Datenbanken
des konzeptuellen Entwurfs. Dabei entsteht ein implementierungsunabhängiges,
semantisches oder sog. konzeptuelles Schema. In diesem Schema wird in der Regel
mit graphischer Notation beschrieben, welche Objekte durch Daten zu modellieren sind, durch welche Attribute diese Objekte zu kennzeichnen sind und in welcher Beziehung sie zueinander stehen. Für diese Phase gibt es mehrere mögliche
Datenmodelle:
• Entity-Relationship-Modell
• Semantische Datenmodelle
• Funktionale Datenmodelle
• Objektorientierte Entwurfsmodelle.
Auf der logischen Ebene entsteht das sog. logische Schema. Hier wird eine Datenbankanwendung in das Datenmodell des zum Einsatz kommenden DBMS modelliert. Der Logischen Ebene liegen unterschiedliche Datenmodelle zugrunde:
• Netzwerkmodelle
• Hierarchische Datenmodelle
• Relationale Datenmodelle
• Objektorientierte Datenmodelle (wie z.B. ODMG-93-Modell1 ).
Der physische Entwurf ist der letzte Schritt eines Datenbankentwurfs. Hier erfolgt
die Abbildung des Implementationsschemas auf ein DBMS. Primäres Ziel ist die
Erhöhung der Leistungsfähigkeit der Datenbankanwendung. Hierzu werden z.B.
Indexstrukturen, Cluster, Zeiger usw. benutzt.
3.2 Das Entity-Relationship-Modell
Das am häufigsten benutzte Modell für den konzeptuellen Entwurf ist das
Entity-Relationship-Modell (ER-Modell; Gegenstands-Beziehungs-Modell). Das
ER-Modell wurde 1976 von Peter Chen [Che 76] entwickelt. Die elementaren
Bausteine des ER-Modells sind, wie der Name schon sagt, die Entitäten
(Entities, Gegenstände) und die Relationships (Beziehungen). Für die graphische Darstellung des ER-Modells wird die 1986 eingeführte Kanten-Notation
verwendet.
Eine Entität ist ein individuelles und identifizierbares Exemplar von Dingen, Personen oder Begriffen der realen Welt oder der Vorstellungswelt. Der Student, der
1
Object Database Management Group
20
3.2 Das Entity-Relationship-Modell
Arzt, aber auch das Auto, der Sturm, die Fähigkeit, sind einige Beispiele für Entitäten. Entitäten mit gleichen Eigenschaften können unter einem eindeutigen,
gemeinsamen Oberbegriff zu einem Entitätstyp zusammengefasst werden. Ein
Student ist eine Entität, alle Studenten werden zum Entitätstyp Studenten zusammengefasst. Die graphische Darstellung des Entitätstyps ist ein Rechteck, das
den Name des Entitätstyps enthält. Abbildung 3.1 zeigt die Entitätstypen Leser
und Bücher.
LsNr.
Name
Leser
Adresse
ausleihen
datum
Bücher
BuchNr.
Titel
Author
Abbildung 3.1: Ein konzeptuelles Schema
Logische Verknüpfungen von einem oder mehreren Entitäten werden durch Beziehungen (Relationships) beschrieben. Zwischen Mann und Frau, als zwei verschiedenen Entitäten, besteht eine logische Verküpfung bzw. Beziehung, z.B. ver”
heiratet“. Analog zu Entitätstypen werden auch die gleichartigen Beziehungen
zu Beziehungstypen (Relationshiptyp) zusammengefasst. Eine Raute, die
den Namen des Beziehungtyps enthält, ist die graphische Darstellung eines Beziehungstyps. Die Verbindung zwischen einem Beziehungstyp und den entsprechenden Entitätstypen wird durch Kanten repräsentiert (s. Abbildung 3.1). Im
Unterschied zu Entitäten können Beziehungen nur in Verbindung mit den betreffenden Entitäten existieren. Je nach Anzahl der Entitätstypen, die jeweils in
einer Beziehung stehen, unterscheidet man folgende Beziehungsarten:
1. rekursive Beziehung: Ein Entitätstyp steht mit sich selbst in Beziehung.
2. binäre Beziehung: Beziehungen zwischen zwei unterschiedlichen Entitätstypen.
3. n-stellige Beziehung: Beziehungen zwischen mehreren Entitätstypen.
(n > 2).
Die fachlichen Eigenschaften, die allen Entitäten eines Entitätstyps bzw. allen
Beziehungen eines Beziehungstyps gemeinsam sind, werden durch Attribute
beschrieben. Ein Attribut wird durch seinen Namen und seinen Wertebereich
definiert. Der Wertebereich wiederum gibt die Menge aller möglichen bzw.
21
3 Grundlagen über Datenbanken
zugelassenen Werte für ein Attribut an. Die graphische Darstellung des Attributs
ist ein Kreis oder ein Oval. Durch die Kanten wird es dem Entitätstyp bzw. dem
Beziehungstyp zugeordnet (s. Abbildung 3.1).
Die Identifizierung einer Entität innerhalb seines Entitätstyps erfolgt über den
sog. Schlüssel . Ein Schlüssel ist eine ausgezeichnete, minimale, identifizierende Attributskombination. Sehr oft ist es möglich, ein einzelnes Attribut als
Schlüsselattribut zu bezeichnen. Das Schlüsselattribut wird wiederum durch
Unterstreichung gekennzeichnet (s. Abbildung 3.1).
Wie schon erwähnt, beschreiben Beziehungen eine logische Verknüpfungen zwischen Entitäten. Beziehungstypen können aber auch hinsichtlich ihrer Funktionalität charakterisiert werden. Dabei gibt die Funktionalität einer Beziehung an,
mit wie vielen anderen Entitäten eine Entität eines Entitätstyps in einer konkreten Beziehung stehen kann bzw. muss. Ein binärer Beziehungstyp R zwischen
Entitätstypen A und B heißt:
• 1:1-Beziehung, falls jeder Entität aus A höchstens eine Entität aus B
zugeordnet ist, und umgekehrt jeder Entität aus B maximal eine Entität
aus A.
• 1:N-Beziehung, falls jeder Entität aus A keine, genau eine oder mehrere Entitäten aus B zugeordnet sein können, aber jede Entität aus B mit
maximal einer Entität aus A in Beziehung stehen kann.
• N:1-Beziehung, analog zu 1:N.
• N:M-Beziehung, falls jeder Entität aus A beliebig viele Entitäten aus B
zugeordnet sein können und umgekehrt jede Entität aus B mit beliebig vielen
Entitäten aus A in Beziehung stehen kann.
Für alle Entitäten gilt, daß sie innerhalb ihres Entitätstyps über die Schlüsselattribute eindeutig identifizierbar sind. Sie sind außerdem in ihrer Existenz von
der Existenz einer anderen Entität unabhängig. Solche Entitäten werden regu”
lär“ oder stark“ bezeichnet. In der Realität existieren oft Entitäten, bei denen
”
dies nicht gilt. Solche Entitäten werden als schwache Entitäten bezeichnet.
Die schwachen Entitätstypen benötigen für ihre Existenz die Beteiligung an einer
1:N Beziehung mit einem (regulären) Entitätstyp. Die Entitäten eines schwachen
Entitätstyps sind nur in Kombination mit dem Schlüsselattribut des betreffenden (regulären) Entitätstyps eindeutig identifizierbar. Die graphische Darstellung
für schwache Entitätstypen ist ein doppelt umrandetes Rechteck. Der existenzbestimmende Beziehungstyp wird ebenfalls durch Verdoppelung der Raute und der
von dieser Raute zum schwachen Entitätstyp ausgehenden Kante markiert.
22
3.3 Das relationale Datenmodell
Zug
1
hat
N
Wagon
Abbildung 3.2: Schwacher Entitätstyp
Abbildung 3.2 enthält das Beispiel des schwachen Entitätstyps Wagon. Die
Entitäten diesen Typs sind existenzabhängig von dem Zug, dem ensprechende
Wagons gehören.
3.3 Das relationale Datenmodell
Auf der logischen Ebene werden Datenbankanwendungen mit den Konzepten
(d.h. in dem Datenmodell) des zum Einsatz kommenden Datenbanksystems
modelliert. Das relationale Datenmodell wurde 1970 von E.F. Codd entwickelt
und mit Hilfe der Mengentheorie beschrieben. Dieses Modell bildet die Basis für
relationale Datenbanken. Im Gegensatz zur satzorientierten Verarbeitung von
Daten, wie das beim Netzwerkmodell und dem hierarchischen Modell der Fall ist,
zeichnet sich das relationale Datenmodell durch mengenorientierte Verarbeitung
von Daten aus.
Das Grundelement des relationalen Datenmodells ist die Relation. Eine Relation R wird definiert als eine Teilmenge des kartesischen Produktes über den
Wertebereich (Domänen) der Attribute des Relationsschemas:
R ⊆ dom(A1 ) x · · · x dom(An )
Ein Relationsschema beschreibt die Struktur einer Relation und besteht aus
einer Menge von Attributen. Ein Element der Menge R wird als Tupel bezeichnet. Innerhalb einer Relation, wird jedes Tupel durch ein Attribut bzw. eine
Kombination von Attributen eindeutig identifiziert. Solche Attribute werden
wiederum Primärschlüssel genannt.
Meistens erfolgt die visuelle Reprästentation einer Relation in Form einer Tabelle.
Dabei repräsentiert jede Spalte ein Attribut und jede Zeile ein Tupel.
Das zugehörige Relationsschema hat die Form:
Leser: {[LsNr : integer, Name : string, Adresse : string]}
Für den Enwurf eines relationalen Schemas existieren zwei alternative Methoden:
1. Zunächst wird ein ER-Schema entwickelt. Daraus wird ein relationales Schema mit Entitäts- und Beziehungs-Tabellen abgeleitet.
23
3 Grundlagen über Datenbanken
Leser
LsNr.
Name
1001 Adna Hadziresic
1002 Ernest Hadziresic
..
..
.
.
Adresse
Eifelstr. 26
Eifelstr. 26
..
.
Tabelle 3.1: Relation in Tabellenform
2. Die funktionalen Abhängigkeiten aus der Anforderungsanalyse werden gesammelt. Daraus wird ein relationales Schema in Normalform erzeugt.
Da die Überführung vom konzeptuellen Schema in das relationale Schema fast
automatisch erfolgen kann, wird die erste Methode bevorzugt. Die Überführung
geschieht nach folgenden Regeln:
• Für jeden Entitätstyp des ER-Modells wird eine Relation (Tabelle) erstellt.
Diese Relation enthält alle Attribute eines Entitätstyps.
• Auch für jeden Beziehungstyp wird eine Relation erstellt. Dabei enthält die
Relation als Attribute alle Primärschlussel der beteiligten Entitätstypen
und alle Attribute, die zu dem Beziehungstyp gehören.
Diese Regeln, angewendet auf das ER-Diagramm in Abbildung 3.1, ergeben folgendes relationales Schema:
Leser : {[LsNr : integer, Name : string, Adresse : string]}
Bücher : {[BuchNr : integer, Titel : string, Author : string]}
ausleihen : {[LsNr : integer, BuchNr : integer, datum : date]}
Die Attribute der aus einem Beziehungstyp entstandenen Relation, werden als
Fremdschlüssel bezeichnet. Sie beziehen sich auf Primärschlüssel der beteiligten
Entitätstypen. Im obigen Beispiel sind es LsNr und BuchNr in der Relation ausleihen. Die Relation ausleihen stellt eine 1:N-Beziehung dar. Da ein Buch nur
von einem Leser ausgeliehen werden kann, hat die Relation ausleihen den Primärschlüssel BuchNr . Dies ergibt sich auch aus der funktionalen Sichtweise der
Beziehung. Eine binäre 1:1-, 1:N, und N:1-Beziehung, zwischen Entitätstypen E1
und E2 , kann als partielle Funktion angesehen werden. Dabei ist die Richtung“
”
der Funktionen im Fall einer 1:1-Beziehung nicht wichtig (R : E1 → E2 oder
R : E2 → E1 ). Bei einer 1:N-Beziehung ist hingegen die Richtung“ zwingend
”
und geht vom N“-Entitätstyp zum 1“-Entitätstyp. Analoges gilt für N:1 Bezie”
”
hungen. Für die Relation ausleihen bedeutet das:
ausleihen : Bücher → Leser
24
3.3 Das relationale Datenmodell
Dieses relationale Schema läßt sich weiter verfeinern. Dabei werden die Relationen, die für die Modellierung von Beziehungstypen eingeführt wurden, eliminiert.
Die Elimination erfolgt durch Zusammenfassen von Relationen, die 1:1-, 1:Noder N:1-Beziehungen repräsentieren, mit Relationen, die Entitätstypen repräsentieren. Voraussetzung ist, daß die Relationen einen gleichen Schlüssel besitzen. Dabei wird der Schlüssel der Relation, die einen Beziehungstyp modelliert,
als Fremdschlüssel in die Relation, die einen Entitätstyp modelliert, übernommen. Auch vorhandene Attribute werden übernommen. Angewandt auf das obige
relationale Schema ergibt dieser Schritt der Verfeinerung folgendes:
Leser : {[LsNr, Name, Adresse]}
Bücher : {[BuchNr, Titel, Author, ausgeliehnt von, datum]}
Die Elimination der Relationen, die N:M-Beziehungstypen repräsentieren, ist
nicht sinnvoll und würde i.a. zu schwerwiegenden Anomalien führen. Ebenfalls
können schlecht entworfene relationale Schemata zu Anomalien führen. Man unterscheidet drei Arten von Anomalien:
1. Updateanomalien
2. Einfügeanomalien
3. Löschanomalien
Um eine Datenredundanz eines relationalen Schemas zu vermeiden, werden bei
der sog. Normalisierung Relationen aufgespalten, um möglichst hohe Normalformen von Relationen zu erreichen. Dies bedeutet die Zerlegung von Relationen
nach bestimmten Kriterien, so dass aber insgesamt der Informationsgehalt erhalten bleibt. Eine Relation R wird in die Relationen R1 , . . . , Rn zerlegt. Dabei
enthalten die Relationen R1 , . . . , Rn jeweils nur eine Teilmenge der Attribute aus
R, also Ri ⊆ R für 1 ≤ i ≤ n. Es gibt zwei grundlegende Kriterien für eine solche
Zerlegung von Relationen [Kem 95]:
1. Verlustlosigkeit: Die in der ursprünglichen Relation R enthaltenen Informationen müssen aus den neuen Relationen R1 , . . . , Rn rekonstruierbar sein.
2. Abhängigkeitserhaltung: Die für R geltenden funktionalen Abhängigkeiten
müssen auf die Relation R1 , · · · , Rn übertragbar sein.
Die Zerlegung basiert auf der Kenntniss der funktionalen Abhängigkeit zwischen
den Attributen. Eine funktionale Abhängigkeit innerhalb einer Relation besteht
zwischen zwei Attributmengen X und Y, wenn in jedem Tupel der Relation der
Attributwert in den X-Attributen den Attributwert in den Y-Attributen festlegt.
Die Normalformen sind:
1. Erste Normalform:
Sie verlangt, daß alle Attribute atomare Wertebereiche haben. Die Attributwerte dürfen also nicht zusammengesetzt oder mengenwertig sein.
25
3 Grundlagen über Datenbanken
2. Zweite Normalform:
Eine Relation ist in zweiter Normalform, wenn sie erster Normalform ist und
jedes Nichtschlüsselattribut von jedem Schlüsselkandidaten voll funktional
abhängig ist. Voll funktional bedeutet, daß ein Attribut Y funktional von
Attribut X abhängig ist, aber von keiner Teilmenge von X.
3. Dritte Normalform:
Eine Relation ist in dritter Normalform, wenn sie in zweiter Normalform ist
und kein Nichtschlüsselattribut transitiv vom Schlüsselkandidaten abhängt.
Ein relationales Schema muss zwei fundamentale Integritätsbedingungen erfüllen:
1. Entitäts-Integrität: Der Wertebereich der Primärschlusselattribute darf
keine Nullwerte enthalten.
2. Referentielle Integrität: Wenn in einer Relation ein Fremdschlüssel vorhanden ist, dann muss der Fremdschlüsselwert auch als Primärschlüssel in
der korrespondierenden Relation auftauchen.
Wie bereits erwähnt, bildet das relationale Datenmodell die Basis für relationale
Datenbanken. Mit einem relationalen Schema wird die Struktur aller Datenobjekte des betrachteten Anwendungsbereiches in einem relationalen Datenmodell
beschrieben. Neben dieser Datadefinitionssprache(DDL2 ) wird auch eine Datenmanipulationssprache (DML3 ) benötigt, mit der man Informationen aus der Datenbank extrahieren, einfügen, ändern oder löschen kann. Die Datenmanipulationssprache besteht aus:
• Anfragesprache (Query Language) und
• Sprache zum Einfügen von Daten, zur Änderung und zum Löschen von
abgespeicherte Daten.
Als Anfragesprachen in relationalen Datenbanken wurden zwei formale Sprachen
konzipiert:
1. Relationenalgebra
2. Relationenkalkül
Die Relationenalgebra definiert eine Menge von Operatoren mit deren Hilfe neue
Relationen erzeugt werden können. Die Menge der Operatoren umfasst insbesondere die der Mengenalgebra, da die Relationen Mengen sind (z.B. Durchschnitt,
Vereinigung, Differenz u.a.). Zudem existieren weitere Operatoren wie die Projektion einer Relation auf ausgewählte Attribute, die Selektion bestimmter Tupel
2
3
Data Definition Language
Data Manipualtion Language
26
3.3 Das relationale Datenmodell
oder Kombination zweier Relationen auf der Basis korrelierender Attributwerte
sog. Join. Allen Operatoren ist gemeinsam, dass ihr Resultat in jedem Fall wieder
die Form einer Relation hat. Dies bedeutet, dass diese Sprache abgeschlossen ist.
Bei einem Relationenkalkül handelt sich auch um eine abgeschlossene Sprache,
d.h. das Ergebnis der Anfrage ist wiederum eine Relation. Der Relationenkalkül
spezifiziert gewünschte Relationen in deskriptiver Weise ohne Angabe von Operationen. Die Einschränkung der Menge der gewünschten Tupel erfolgt mittels
mathematischen Prädikatenkalküls erster Stufe, der quantifizierte Variablen und
Werte zuläßt.
SQL ist eine weit verbreitete Sprache zur Datendefinition und Datemanipulation relationaler Datenbanken. Die theoretischen Grundlagen für SQL bilden die
Relationenalgebra und der Relationenkalkül. SQL stellt eine Reihe von Befehlen zur Manipulation relationaler Datenbanken zur Vefügung. Die Anfragen in
SQL werden mit dem Befehl SELECT formuliert. Für die Veränderungen am
Datenbestand stellt SQL folgenden Befehle zur Verfügung:
• INSERT, für Einfügen von Daten
• UPDATE, für Änderung von vorhandenen Daten
• DELETE, für Löschung von Daten.
Außerdem können neue Relationen definiert (CREATE TABLE), vorhande
aus Relationenschemata gelöscht (DROP TABLE) und eine Relation kann um
weitere Attribute ergänzt (ALTER TABLE) werden.
27
4 Softwaregrundlagen
4.1 Grundlagen zu Visual Basic
Visual Basic ist eine ereignisorientierte Programmiersprache und visuelle Entwicklungsumgebung, die sowohl einzeln als auch als Bestandteil von Visual Studio zu erhalten ist. Microsoft baute Visual Basic auf einer Programmiersprache
(BASIC1 ) auf, die für Anfänger entwickelt wurde. Das Geheimnis von Visual Basic ist in seinem Namen ausgedrückt: Visual“. Die Bezeichnung Visual“ bezieht
”
”
sich dabei auf das Verfahren zum Erstellen von graphischen Benutzeroberflächen.
Anstatt unzählige Programmzeilen zu schreiben, die Aussehen und Position der
Oberflächenelemente festlegen, werden einfach vorgefertigte Objekte an den gewünschten Ort hinzugefügt.
4.1.1 Die Bedienungselemente von Visual Basic
An dieser Stelle werden einige Bedienungselemente von Visual Basic erklärt, mit
dem primären Ziel einen ersten Überblick zu verschaffen.
Nachdem Visual Basic gestartet wird, erscheinen am Bildschirm mehrere Fenster:
ein Hauptfenster mit Menü und Symbolleiste, eine Toolbar mit den zur Verfügung stehenden Steuerelementen, ein leeres Formularfenster, ein Projektfenster
und ein Eigenschaftsfenster (siehe Abbildung 4.1).
Das Formularfenster bildet den Bildschirmhintergrund für ein Visual Basic
Programm. Der erste Schritt bei der Entwicklung eines typischen Visual Basic
Programms spielt sich in diesem Fenster ab. Hier können verschiedene Steuerelemente eingefügt, deren Größe und Position und andere Eigenschaften geändert
werden. Ein Doppelklick auf ein beliebiges Element des Formularfensters führt in
das Codefenster. Dort kann der Code zum jeweiligen Steuerelement eingegeben
werden kann.
Die Toolbox (Werkzeugsammlung) enthält alle zur Zeit verfügbaren Werkzeuge,
die Steuerelemente repräsentieren. Um ein Steuerelement in ein Formular einzufügen, wird zuerst auf das entsprechende Werkzeug in der Toolbox angeklickt. Mit
1
BASIC steht für Beginner’s All-puprose Symbolic Instruction Code
28
4.1 Grundlagen zu Visual Basic
der Maus wird im Formular ein Rahmen gezeichnet, der die Größe und Position
des Steuerelements bestimmt. Wenn weitere Werkzeuge erforderlich sind, die in
der Toolbox nicht angezeigt sind, werden über das Kontextmenü Komponenten“
”
neue hinzugefügt.
Abbildung 4.1: Visual Basic
Das Codefenster wird zur Eingabe des Programmcodes verwendet. Ein Codefenster kann einem Formular oder einem Modul zugeordnet sein. Das Codefenster
wird entweder vom Projektfenster aus (Button Code anzeigen“ ) oder durch
”
einen Doppelklick des Formularfensters geöffnet.
Im Eigenschaftsfenster werden die Eigenschaften des Formulars oder die
darin ausgewählten Steuerelemente angezeigt. Jede Eigenschaft hat sowohl
einen Namen, über den sie angesprochen wird, als auch einen Wert. Typische
Eigenschaften sind der Name des Steuerelements, seine Beschriftung (Caption),
Schriftart, Höhe, Breite usw..
Im Projektfenster werden alle Komponenten einer Anwendung verwaltet. Mögliche Komponenten sind:
29
4 Softwaregrundlagen
• Projekte: Eine Anwendung kann mehrere Projekte umfassen. Projekte haben immer die Dateinamenerweiterung .VBP.
• Formulare: Sie bestehen aus einem Formular und dessen Programmcode.
Diese werden im eigenen Fenster mit Objekt anzeigen“ oder Code anzei”
”
gen“ dargestellt, aber in einer gemeinsamen Datei gespeichert. Formulardateien haben immer die Dateinamenerweiterung .FRM.
• Module: Sie bestehen ausschließlich aus einem Programmcode, in dem globale Prozeduren und Variablen definiert sind. Die Dateinamenerweiterung
ist .BAS.
• Klassenmodule: Sie sind Codemodule zur Beschreibung von Objektklassen. Die Dateinamenerweiterung ist .CLS.
• Benutzerdokumente: Sie sind Dokumentobjekte für eine Anwendungsbeschreibung. Die Dateinamenerweiterung ist .DOB.
Neben den gerade beschriebenen Fenstertypen gibt es in Visual Basic noch weitere
Fenstertypen, wie z.B. einen Objektkatalog mit einer Referenz aller verfügbaren Objekte. Desweiteren gibt es bspw. einen Menü-Editor zum Erstellen von
Menüs, ein Formularlayoutfenster zur Positionierung von Formularen, und ein
Farbpalettenfenster zum bequemen Einstellen von Farben.
4.1.2 Der Aufbau von Visual Basic Programmen
Ein typisches Visual Basic Programm besteht aus mindestens einem Formular.
In diesem werden verschiedene Steuerelemente wie bspw. Buttons, Textfelder,
Optionsfelder usw., eingefügt.
In Visual Basic können einem Steuerelement verschiedene Ereignisse zugeordnet
werden. Die Reaktion auf ein eingegebenes Ereignis ist der Aufruf einer Ereignisprozedur. Eine Ereignisprozedur enthält Anweisungen, die ausgeführt
werden, sobald ein Ereignis eintritt. Durch ein Ereignis, bspw. Klicken einer
Schaltfläche namens Bild zeigen“, wird eine Reaktion hervorgerufen, die ein
”
Bild im Formular anzeigt. Jede Form und jedes Steuerelement besitzt eine
Anzahl von möglichen Ereignissen (Click, DblClick, KeyPress usw.). Es müssen
Prozeduren für jene Ereignisse geschrieben werden, auf die wir im Programm
reagieren möchten. Alle anderen Ereignisse, für die keine Prozedur geschrieben
wurde, führen dann zu keiner Reaktion des Programms.
Das Erstellen eines neuen Programms beginnt mit der Definition des ersten
Formulars. Dabei werden die einzelnen Steuerelemente in das Formular eingefügt,
ihre Größe und ihre Eigenschaften werden je nach Verwendungszweck eingestellt.
30
4.1 Grundlagen zu Visual Basic
Dabei hat das Formular schon während der Definition das Aussehen wie im
endgültigen Programm.
Als nächstes werden die Programmteile zur Reaktion auf Benutzerereignisse
geschrieben. Diese Ereignissprozeduren sind fest mit dem Formular verbunden.
Wenn das Programm mehrere Fenster braucht, müssen weitere Formulare
definiert und dazugehörende Ereignisprozeduren geschrieben werden.
Neben Ereignisprozeduren können auch Unterprozeduren und Funktionen2 geschrieben werden. Es wird unterschieden zwischen private“ Prozeduren, die
”
nur innerhalb eines Formulars verwendet werden, und public“ Prozeduren, die
”
im gesamten Programm verwendet werden können.
4.1.3 Objektorientierte Programmierung
Obwohl Visual Basic nicht richtig zur Gruppe der objektorientierter Sprachen
gehört, beinhaltet sie dennoch eine Reihe von Prinzipien, die diese Gattung von
Sprachen charakterisieren.
Wenn der Entwickler die Steuerelemente der Werkzeugsammlung nutzt, greift er
genau genommen nicht auf Objekte sondern auf Klassen zu, welche die möglichen
Eigenschaften, Methoden und Ereignisse beschreiben. Erst zur Laufzeit werden
Objekte, sogenannte Instanzen, dieser Klasse erzeugt. Visual Basic bietet auch
die Möglichkeit, eigene Klassen zu schreiben. Hierfür wird eine Vorlage, das
Klassenmodul, zur Verfügung gestellt. In einem Klassenmodul wird der Code
einer Klasse von neuen Objekten implementiert. Diese Objekte können neu
definierte Eigenschaften und Methoden enthalten.
Da von Visual Basic-Objekten nur Eigenschaften, Methoden und Ereignisse außerhalb des Objektes zur Verfügung stehen, wird auch das Prinzip der Kapselung
unterstützt. Auf die inneren Abläufe hat der Anwender keinen Einfluß. Diese Kapselung führt zum Prinzip der Abstraktion, da ein Objekt eingesetzt werden kann,
ohne dessen innere Funktionalität kennen zu müssen. Im Gegensatz zu rein objektorientierten Programmiersprachen unterstützt Visual Basic jedoch keine Vererbung, d.h. es können keine Unterklassen erzeugt werden, welche die Methoden
ihrer Oberklassen erben. Daher wird bei Visual Basic lediglich von einer objektbasierten Sprache gesprochen. Dennoch unterstützt Visual Basic Polymorphismus
durch Verwendung von Mehrfachschnittstellen des Komponentenobjektmodells
COM3 , auf das hier nicht näher eingegangen wird.
2
VB unterscheidet mehrere Arten von Prozeduren: Unterprozeduren, Funktionen, Ereignisprozeduren und Property-Prozeduren
3
Component Object Model
31
4 Softwaregrundlagen
4.2 Datenzugriff
Zum Zugriff von Anwendungen auf Datenbanken werden Anwendungsprogrammierschnittstellen (API’s) benötigt. Solche Schnittstellen für den universellen
Zugriff auf Datenbanken hat Microsoft durch Open Database Connectivity
(ODBC) und durch Object Linking and Embedding Database (OLE-DB) realisiert.
ODBC ist ein internationaler Standard für eine Verarbeitung relationaler
Daten aus diversen Datenquellen unter Verwendung der SQL-Abfragesyntax.
Da es sich um einen interantionalen Standard handelt, können verschiedene
relationale Datenquellen verwaltet werden, die sowohl von Microsoft als auch
von Drittanbietern stammen können. ODBC setzt lediglich voraus, daß Daten in
Form einer relationalen Datenbank vorhanden sein müssen.
OLE-DB ist eine Schnittstelle, die den Zugriff auf alle Typen von Daten
ermöglicht und baut auf dem Erfolg des ODBC auf. Bei OLE-DB gibt es keine
Einschränkung in Bezug auf die Abfragesyntax oder die Struktur der Daten. Die
einzige Voraussetzung ist, dass Daten in Tabellenform zurückgemeldet werden
können. OLE-DB ist damit sowohl für relationale als auch für nicht relationale
Datenquellen geeignet.
Im Visual Basic stehen drei Programmierschnittstellen für den Datenzugriff zur
Verfügung:
• ADO (ActiveX Data Objects)
• RDO (Remote Data Objects)
• DAO (Data Access Objects)
DAO ist eine High-Level Schnittstelle. Im Gegensatz zur Low-Lewel Schnittstelle, wie ODBC und OLEDB es sind, die nur aus der Programmiersprache C++
angesprochen werden können, kann DAO auch von weniger maschinenahen Sprachen (Java, VB) und Skriptsprachen (Perl, JavaScript, VBScript) angesprochen
werden. DAO ist ein objektorientiertes Datenzugriffsmodell, das mit Access und
anderen ISAM-Datenbanken eingeführt wurde. Dabei basiert DAO auf ODBC
und kann zudem universell verwendet werden. Es ist aber relativ langsam, wobei
nur der Zugriff auf Jet-Datenbanken optimiert ist.
Bei RDO handelt es sich ebenfalls um eine High-Level Schnittstelle, die als Nachfolger von DAO entwickelt wurde. Wie DAO baut auch RDO auf ODBC auf und
erlaubt zusätzlich den Zugriff auf entfernte Datenquellen, z.B. über das Internet.
RDO ist in seiner Funktionsweise eingeschränkt, da es nicht besonders gut auf
32
4.2 Datenzugriff
Jet- oder ISAM-Datenbanken zugreift. Zudem kann es nur mit Hilfe vorhandener ODBC-Treiber auf relationale Datenbanken zugreifen. Als objektorientierte
Datenzugriffs- schnittstelle bietet RDO Objekte, Eigenschaften und Methoden,
die zum Zugreifen auf komplexe Aspekte von gespeicherten Prozeduren und komplexen Ergebnismengen notwendig sind.
4.2.1 ActiveX Data Objects
ADO ist der Nachfolger von DAO/RDO und baut auf dem OLE-DB Modell
auf. Es ist eine Schnittstelle über die alle OLE-DB Datenbanken angesprochen
werden können. Mit ADO ist der Zugriff auf Datenbanken über das Internet möglich. ADO vereint alle Vorteile der beiden Vorgänger. Es ist schnell und einfach
zu benutzen. Wie seine beiden Vorgänger ist ADO eine objektorientierte Datenzugriffsschnittstelle und verfügt über sieben Hauptobjekte.
Connection-Objekt : Dieses Objekt ist das zentrale Objekt von ADO. Es wird
verwendet um einzelne Verbindungen zu einer Datenbank aufzubauen und
zu schließen. Dem Connection-Objekt steht eine Reihe von Eigenschaften
und Methoden zur Verfügung, die die Verbindungsart spezifiziern. Die Eigenschaft z.B. ConnectionString“ enthält Informationen, die zum Einrich”
ten einer Verbindung zu einer Datenquelle verwendet werden. Mit der Methode Open“ wird eine Verbindung zu einer Datenquelle geöffnet.
”
Recordset-Objekt : Mit dem Recordset wird durch eine Tabelle navigiert und
Datensätze verändert. Der Zugriff auf Tabellen erfolgt über Eigenschaften
und Methoden des Recordsets. Ein aktuelles Recordset enthält immer nur
eine Zeile mit seinen Spalten.
Command-Objekt : Hiermit wird ein Befehl definiert, der auf der Datenbank ausgeführt wird. Das kann z.B. eine Abfrage, Änderung der Datenbankstruktur (neue Tabelle erstellen, Feldwerte einfügen usw.), Ausführen
einer Sammeloperation u.a., sein. Dem Command-Objekt steht auch eine
Reihe von Eigenschaften und Methoden zur Verfügung.
Parameter-Objekt : Dieses Objekt wird meist zusammen mit dem CommandObjekt verwendet, um Befehle an die Datenbank zu schicken.
Property-Objekt : Das Property-Objekt beinhaltet Informationen, die von der
Datenbank bzw. dem Provider zur Verfügung gestellt werden.
Error-Objekt : Dieses Objekt enthält sämtliche Fehlermeldungen, die von der
Datenbank stammen.
Field-Objekt : Das Field-Objekt spricht die Spalten einer Tabelle an. Ein Field
kann über den Namen der Tabellenspalte angesprochen werden.
33
4 Softwaregrundlagen
Im Folgenden wird anhand einiger Beiepiele erläutert, wie eine ADODatebankzugriffsmethode funnktioniert. Zuerst wird eine Verbindung aufgebaut,
bspw. eine VB-Prozedur Verbindung der Zugriff auf eine Access2000 Datenbank
ermöglicht:
Option Explicit
Public Verbindung As New ADODB.Connection
Public Sub InitVerbindung(Filename As String)
Verbindung.Provider = "Microsoft.Jet.OLEDB.4.0" ’Access 2000
Verbindung.ConnectionString = Filename ’Datenbankpfad
’z.B."C:\Programme\Microsoft Visual Studio\VB98\Biblio.mdb"
Verbindung.Mode = adModeReadWrite
’zum lesen und schreiben öffnen
Verbindung.Open ’Verbindung herstellen
End Sub
Da ADO auf Objekten basiert, ist auch das Connection-Objekt im Code
Verbindung ein Objekt. Verschiedene Eigenschaften müssen festgelegt werden,
damit ADO erkennen kann, welcher Datenbanktyp zu öffnen ist. Die Eigenschaft
Provider gibt die Namen des Providers für ein Connection-Objekt an. Die Eigenschaft Mode gibt die verfügbaren Berechtigungen für das Ändern von Daten
in einem Connection-Objekt an. Die Methode Open öffnet eine Verbindung mit
einer Datenquelle.
Erst wenn eine Verbindung zu einer Datenbank hergestellt ist, kann der Zugriff
auf die Tabellen der Datenbank erfolgen. Der Zugriff erfolgt über das RecordsetObjekt. Die folgende VB-Prozedur zeigt, wie eine Tabelle geöffnet wird:
Public Verbindung As New ADODB.Connection
Public RecSet As New ADODB.Recordset
Public Sub InitTable(tblName As String)
Set RecSet.ActiveConnection = Verbindung
’aktive Verbindung zuweisen
RecSet.LockType = adLockOptimistic
RecSet.Source = "Select * From " & tblName ’ganze Tabelle
34
4.2 Datenzugriff
RecSet.Open ’Tabelle öffnen
End Sub
Mit der Eigenschaft ActiveConnection wird das Recordset-Objekt einem bestimmten Connection-Objekt zugeordnet. Die Art der Sperrung, die während des
Bearbeitens auf Datensätzen gelegt wird, wird durch LockType angezeigt. Die
Tabelle, die geöffnet werden soll, wird über die Eigenschaft Source angegeben.
35
5 Modellierung von Geo-Objekten
Dieses Kapitel befasst sich mit der Modellierung von Geo-Objekten, deren
ER-Modellierung und Überführung in ein relationales Schema anhand des
im praktischen Teil der Diplomarbeit entwickelten DataMap-Systems. Das
ICE/IC/EC-Streckennetz der Deutschen Bahn dient dabei als Anwendungsbeispiel [Dba 03].
Die Aufgabe des DataMap-System ist es, anhand der in einer relationalen
Datenbank abgespeicherten Daten eine interaktive Bildschirmkarte zu erzeugen.
Dabei sollen beliebige Ausschnitte der realen Welt durch die in der Datenbank
gespeicherten Daten dargestellt werden. Im DataMap-System, wie in der
Geoinformatik selbst, werden nicht reale Objekte, sondern ihre gedankliche
Abbilder, also Modelle der Realität betrachtet. Das abstrakte Modell eines realen
räumlichen Objektes ist ein Geo-Objekt.
Das DataMap-System soll eine anwendungsunabhängige Nutzung realisieren.
Deshalb soll auch die Modellierung der im DataMap-System betrachteten GeoObjekte unabhängig von jeweiligen Anwendungen erfolgen. Dies ist aber insoweit
problematisch, als die Modellierung von Geo-Objekten von Fragestellungen,
dem Arbeitsaufwand usw. abhängig ist (s. Kapitel 2.1.5). Die Modellierung
von Geo-Objekten geschieht durch Abstraktion (s. Kapitel 2.1.5), die sowohl
Geometrie, Topologie als auch die Thematik und das Verhalten betreffen kann.
Anhand ihrer Geometrie lassen sich Geo-Objekte im Hinblick auf ihre Modellierung nach dem Typ unterscheiden (Punkt, Linie, Fläche). Je nach der gestellten
Frage kann dasselbe Geo-Objekt unterschiedlich modelliert werden. Eine Stadt
ist in der Realität ein flächenhaftes Raumobjekt. Sie besitzt eine bestimmte
Flächengröße und wird in einem Stadtplan als Fläche modelliert, weil uns dann
bspw. die Sehenswürdigkeiten einer Stadt interessieren (Musseen, Opern oder
das Strassennetz). Im Verkehrswesen hingegen ist das abstrakte Modell einer
Stadt der Punkt, weil dann ihre Fläche irrelevant ist.
Ein Geo-Objekttyp Linie modelliert linienhafte Raumobjekte wie bspw. Straßen
oder Flüsse. Dabei lassen sich bei linienhaften Raumobjekten zwei Arten unterscheiden:
36
• Raumobjekte, die durch eine Linie, die eine direkte Verbindung zwischen
zwei Punkten darstellt, modelliert werden.
• Raumobjekte, die sich durch einen Linienzug als eine Abfolge von Punkten,
die ihrerseits durch gerade Stücke verbunden sind, darstellen lassen.
Interessieren uns bspw. an einem Fluss lediglich seine Quelle und seine Mündung,
läßt er sich durch eine Linie darstellen. Wenn uns hingegen Flusshäfen interessieren, ist der Linienzug für seine Darstellung geeigneter. Eine Strasse wird
im Strassenverkehrsnetz als ein Geo-Objekttyp Linienzug modelliert, weil hier
nur die einzelnen Verbindungen im Vordergrund stehen. Für Strassenbauzwecke
wird sie hingegen als ein Geo-Objekttyp Fläche dargestellt, da uns hier auch die
Fahrstreifen interessieren.
Der Geo-Objekttyp Linienzug ist damit für die Modellierung linienhafter
Raumobjekte zusätzlich zu berücksichtigen.
Auch die Thematik von Geo-Objekten kann sich je nach Anwendung ändern.
An einem Fluss können uns in einer Anwendung nur sein Name und die
Länge interessieren und in einer anderen nur sein Gefälle oder die Tiefe. Je
nach Anwendungsinteresse wollen wir nur den Verschmutzungsgrad oder den
Fischbestand wissen.
Anwendungsabhängig sind auch räumliche Beziehungen zwischen Geo-Objekten
(Topologie). In einer Anwendung sind zwei Geo-Objekte benachbart, falls eine
gerade Strecke sie verbindet, und in einer anderen wird iher Nachbarschaftsbeziehung durch eine gemeinsame Grenze definiert.
Im DataMap wurde versucht, diese Problematik durch Zusammenfassung
von Geo-Objekten gleichen Typs und gleichartiger Thematik zu umgehen.
Aufgrund vielfältiger Anwendungsmöglichkeiten ist es dennoch nicht gelungen,
alle Anwendungseventualitäten einzubauen. Alle Bäche und Flüsse, bei denen
uns die Länge, Name und Gefälle interessieren, können zusammen betrachtet
werden. Eine Stadt und eine Wetterstation bspw. können zwar durch einen
Geo-Objekttyp (Punkt) modelliert werden, haben aber im Hinblick auf ihre
Thematik eine unterschiedliche Bedeutung. Bei einer Stadt interessieren uns ihr
Name und die Einwohnerzahl, wohingegen bei einer Meßstation Höhenlage und
Lufttemperatur relevant sind.
Zur Beschreibung der Geomtrie von Geo-Objekten gibt es zwei konzeptionelle
Basisimodelle, das Vektor- und das Rastermodell (s. Kapitel 2.1.1). Aufgrund
seiner Vorteile wurde für die im DataMap-System betrachteten Geo-Objekte das
Vektor-Modell ausgewählt:
• Die Datenmenge zur Modellierung von Geo-Objekte ist wesentlich geringer
37
5 Modellierung von Geo-Objekten
als beim Rastermodell
• hohe geometrische Genauigkeit der Lage und Form der Geo-Objekte
• gut geeignet zu Modellierung einzelner Objekte
• Koordinatentransformation ist einfach zu berechnen.
Das Anwendungsbeispiel (Streckennetz) zeigt deutschlandweit alle Zugverbindungen zwischen angeschlossen Städten. Aufgrund der geometrischen Merkmale und
der Thematik werden hierfür folgende Geo-Objekttypen bestimmt:
• Stadt
Sie repräsentiert ihren Bahnhof. Im Falle, dass eine Stadt mehrere Bahnhöfe
besitzt, wie bspw. Hamburg oder Berlin, werden diese durch eine Stadt
repräsentiert.
• Verbindung
Damit sind Bahnlinien zwischen zwei benachbarten Städten gemeint. Eine
Unterscheidung erfolgt nach dem Typ der Verbindung (RB, EC, ICE).
• Zuglinie
Sie repräsentiert alle Zugverbindungen zwischen mehreren Städten. Auch
hier erfolgt eine Unterscheidung nach dem Typ der Zuglinie (RB, EC, ICE).
Darüber hinaus soll durch das System auch die Darstellung der Bundesländer
realisiert werden, so dass sie als zusätzlicher Geo-Objekttyp Bundesland zu
bestimmen sind.
Für die oben aufgeführten Geo-Objekttypen des Anwendungsbeispiels wurde folgende Modellierung gewählt:
• Städte werden durch Punkte modelliert.
• Verbindungen werden durch Linien modelliert.
• Zuglinien werden durch Linienzüge modelliert.
• Bundesländer werden durch Flächen modelliert.
Die folgenden Abschnitte sollen erläutern, wie die definierten Geo-Objekttypen
in eine relationale Datenbank überführt werden können.
38
5.1 Konzeptuelle Modellierung
5.1 Konzeptuelle Modellierung
Die Erstellung des konzeptuellen Entwurfs für DataMap wird hier anhand des
Anwedungsbeispiels erläutert. Dabei könne alle Anwendungsbereiche, die sich
durch das hier entwickelte Modell berschreiben lassen, im DataMap realisiert
werden.
Auf der konzeptuellen Ebene wurde das Entity-Relationship-Modell als Datenmodell verwendet, weil durch dieses die Überführung in ein relationales Schema
fast automatisch erfolgen kann. Hier werden die Entitäten zu Entitätstypen und
Beziehungen zwischen Entitäten zu Beziehungtypen abstrahiert. Weiterhin werden den Entitätstypen und den Beziehungstypen Attribute zugeordnet. Oben
definierte Geo-Objekttypen stellen folgende Entitätstypen dar:
• Stadt
• Verbindung
• Zuglinie
• Bundesland.
Diese Entitätstypen lassen sich in ihrer Thematik und Geometrie durch ihre
Attribute beschreiben. Die Beziehungen zwischen Entitäten ergeben sich aus
räumlichen Beziehungen zwischen Geo-Objekten (Topologie).
Aufgrund der Modellierung von Geo-Objekten ist deren graphische Darstellung
vorbestimmt. Eine Stadt wird durch einen Punkt dargestellt. Eine Verbindung
hingegen ist als gerade Linie dargestellt, die zwei Punkte verbindet. Eine
Zuglinie wird durch einen Linienzug modelliert, also eine Abfolge von Punkten,
die gerade Linien verbinden. Die Bundesländer sind durch Flächen dargestellt.
Die Fläche ist ihrerseits eine geschlossene Abfolge von Punkten. Der gemeinsame
Nenner aller oben aufgeführten Entitätstypen ist, dass deren räumliche Lage
über einen Punkt bzw. Punkte mit Koordinatenangaben definiert wird. Die
Geometrieangaben für alle Entitäten sind also punktbezogen, so dass der Punkt
als neuer Entitätstyp zu betrachten ist. Durch den Punkt als Entitätstyp,
können Geometrie und Thematik voneinander losgelöst betrachtet und angewendet werden. Vorteil dabei ist, dass aufbauend auf dem Entitätstyp Punkt
verschiedene Thematiken entwickelt und damit mehrere Anwendungsbereiche
realisiert werden können. Statt des Bahnnetzes können bspw. auch Fluglinien
als Thematik eingesetzt werden. Die Koordinaten bleiben dabei gleich, es ändert
sich lediglich die Thematik.
Da der Entitätstyp Punkt also ein Träger der geometrischen Informationen für
alle Entitäten ist, ist es notwendig zu unterscheiden, ob es sich um einen Punkt
39
5 Modellierung von Geo-Objekten
für die Darstellung einer Stadt oder um einen Punkt, der sich auf der Grenze
eines Bundeslandes befindet, handelt. Dies erfolgt über das Attribut Typ. Die Attribute X und Y sind die Koordinaten des Punktes. Die Koordinaten werden im
geographischen Längen- und Breitengrad angegeben [Kün 03]. Mit dem Attribut
ID wird ein künstliches Schlüsselattribut für eine eindeutige Identifizierung von
Punkten eingebaut (s. Abbildung 5.1).
Punkt
ID
X
Y
Typ
Abbildung 5.1: Entitätstyp Punkt
Der Entitätstyp Stadt repräsentiert alle Städte, die einen ICE-Bahnhof haben.
Die zugehörigen Attribute beschreiben die Thematik. Dabei handelt sich um
Attribute Name, die den Namen der Stadt angeben und Einwohnerzahl, die
die Einwohnerzahl einer Stadt ausdrücken. Die räumliche Lage der Stadt wird
durch die Beziehung liegt auf zum Entitätstyp Punkt bestimmt (s. Abbildung
5.2). Es handelt sich hierbei um eine 1:1-Beziehung, weil zwei Städte nicht auf
einem Punkt liegen können. Das Attribut ID wird als künstliches Schlüsselattribut eingebaut, um eine eindeutige Identifizierung von Städten zu gewährleisten.
Zusätzliche Attribute (Kfz-Zeichen; Sehenswürdigkeiten usw.) können auch eingeführt werden, verlangen aber eine entsprechende Erweiterung im Code.
1
Punkt
1
Stadt
liegt_auf
ID
Name
Einwohnerzahl
Abbildung 5.2: Entitätstyp Stadt
Der Entitätstyp Verbindung enthält Entitäten, die alle direkten Verbindungen
zwischen benachbarten Städten darstellen. Dabei ist die Existenz dieses Entitätstyps von der Existenz des Entitätstyps Stadt abhängig. Eine Verbindung kann
also nur existieren, wenn auch dazugehörende Städte existieren. Der Entitätstyp
Verbindung ist ein sogenannter schwacher Entitätstyp“, weil er nur in einer Be”
ziehung mit einem regulären Entitätstyp zu realisieren ist.
40
5.1 Konzeptuelle Modellierung
Die Beziehung zwischen Verbindung und Stadt ist verbindet (s. Abbildung 5.3). Es
ist eine 1:N-Beziehung, weil zwischen zwei Städten nur eine Verbindung existiert,
aber eine Stadt in mehreren Verbindungen vorkommen kann. So existiert bspw.
zwischen Köln und Bonn eine Verbindung. Eine Verbindung ist auch zwischen
Köln und Düsseldorf vorhanden, so dass Köln in zwei Verbindungen vorkommt.
Bei der Verbindung ist die Richtung irrelevant, es kommt lediglich darauf an,
dass überhaupt eine Verbindung existiert, die durch zwei Punkte definiert wird.
Es werden nicht der Start- und Endpunkt angegeben, sondern nur um welche
Städte es sich handelt. Das Attribut, das die Verbindung beschreibt, ist Länge für die Angabe einer Entfernung zwischen zwei Städten. Desweiteren werden
Verbindungen nach deren Typ unterschieden. Es kommt darauf an, ob es sich dabei um eine RB-Verbindung oder eine ICE- bzw. EC-Verbindung handelt. Diese
Unterscheidung wird durch das Attribut Typ ausgedrückt. Über das künstliche
Schlüsselattribut ID kann eine eindeutige Bestimmung von Entitäten erfolgen.
1
Stadt1
Stadt
N
Verbindung
verbindet
1
Stadt2
ID
Typ
Länge
Abbildung 5.3: Entitätstyp Verbindung
Der Entitätstyp Zuglinie enthält alle ICE-/EC-/RB-Zuglinien. Dabei stellt eine
Zuglinie eine Route zwischen zwei Städten dar, die nicht unbedingt benachbart
sind. Die Zuglinie wird als Verbindung einer Folge von Städten, die Haltestellen
repräsentieren, betrachtet. Zwischen Entitätstypen Stadt und Zuglinie besteht die
Beziehung ist Haltestelle (s. Abbildung 5.4). Es handelt sich hier um einen N:MBeziehungstyp, weil eine Stadt in mehreren Routen als Haltestelle vorkommen
kann und eine Route über mehrere Städte verlaufen kann (Anzahl der Haltestellen
> 2). Zwischen Frankfurt und Düsseldorf verläuft eine ICE-Strecke über Bonn
und Köln. Zwischen Bonn und Düsseldorf existiert eine RB-Strecke, die über Köln
führt. Um den Anfang, die einzelnen Haltestellen und das Ende der Route zu
kennen, ist bei Zuglinien die Reihenfolge der Haltestellen wichtig. Die Beziehung
ist Haltestelle besitzt dabei das Attribut Position. Es gibt die Position der Stadt
in der Route wieder. Die Position wird dabei in Richtung von Start- bis Endpunkt
hochgezählt. Die dem Entitätstyp zugehörigen Attribute sind Name (z.B. ICE
Gustav-Heinemann“) für die Route und Typ für die Art der Route (ICE, EC
”
oder RB). Als künstliches Schlüsselattribut wird ID eingesetzt.
Der Entitätstyp Bundesland wird durch das Attribut Name, das den Namen
41
5 Modellierung von Geo-Objekten
Position
Stadt
N
ist_Haltestelle
M
Zuglinie
ID
Name
Typ
Abbildung 5.4: Entitätstyp Zuglinie
des jeweiligen Bundeslandes enthält und das künstliche Schlüsselattribbut ID
beschrieben. Die Begrenzung eines Bundeslandes wird durch eine abgeschlossene
Folge von Punkten definiert. Dabei steht der Entitätstyp Bundesland mit
dem Entitätstyp Punkte in einer ist Grenzpunkt-Beziehung (s. Abbildung 5.5).
Das ist eine N:M-Beziehung, weil ein Punkt in mehreren Flächenbegrenzungen vorkommen kann und umgekehrt eine Fläche mehrere Punkte enthält.
Da eine Fläche durch eine geschlossene Abfolge von Punkten begrentzt ist,
die durch gerade Stücke verbunden sind, ist die Reihenfolge der Punkte von
Bedeutung. Denn nur in einer bestimmten Reihenfolge können sie die Fläche
begrenzen. Die Reihenfolge wird durch das Beziehungsattribut Position realisiert.
Position
Punkt
N
ist_Grenzpunkt
M
Bundesland
ID
Name
Abbildung 5.5: Entitätstyp Bundesländer
Das konzeptuelle Schema für das Anwendungsbeispiel ist in Abbildung 5.6 dargestellt.
5.2 Abbildung auf Relationen
Auf der logischen Ebene erfolgt die Überführung des in 5.1 entwickelten ERSchemas in ein relationales Schema. Die Überführung basiert auf Regeln, die
bereits in Kapitel 3 erläutert wurden. Angewendet auf das ER-Diagramm in der
42
5.2 Abbildung auf Relationen
Position
ID
X
Punkt
Y
1
N
M
ist_Grenzpunkt
Bundesland
ID
Name
Typ
liegt_auf
Position
1
ID
N
Stadt
Name
1
ist_Haltestelle
M
Zuglinie
1
Einwohnerzahl
Stadt1
Stadt2
ID
Name
Typ
verbindet
N
Verbindung
ID
Typ
Länge
Abbildung 5.6: Konzeptuelles Schema
Abbildung 5.6 entsteht folgendes relationale Schema:
Punkt
Stadt
Verbindung
Zuglinie
Bundesland
liegt auf
verbindet
ist Haltestelle
ist Grenzpunkt
:
:
:
:
:
:
:
:
:
{[ID:long, X:double, Y:double, Typ:string]}
{[ID:long, Name:string, Einwohnerzahl:long]}
{[ID:long, Typ:string, Länge:long]}
{[ID:long, Typ:string, Name:string]}
{[ID:long, Name:string]}
{[PunktID:long, StadtID:long]}
{[VerbindungID:long, Stadt1 ID:long, Stadt2 ID:long]}
{[ZuglinieID:long, StadtID:long, Position:integer]}
{[PunktID:long, BundeslandID:long, Position:integer]}
In Relationen, die Beziehungen darstellen, werden aus an der Beziehung beteiligten Entitätstypen Schlüsselattribute übernommen. Es kann notwendig
43
5 Modellierung von Geo-Objekten
sein, dass einige der aus den Entitätstypen übernommenen Attributnamen
umbenannt werden müssen. Dies ist zwingend notwendig, wenn Attribute in
unterschiedlichen Entitätstypen gleichbenannt sind. Eine Umbenennung ist auch
sinnvoll, um die Bedeutung der Attribute als Fremdschlüssel zu betonen. Die
Relation liegt auf hat dann das Attribut PunktID aus der Relation Punkt und
das Attribut StadtID aus der Relation Stadt. Die Auswahl des Schlüsselattributs
für diese Relationen erfolgt nach der in Kapitel 3 beschriebenen funktionalen
Sichtweise der Beziehung. In den Relationen sind die Schlüsselattribute als
unterstrichen gekennzeichnet.
Das im Initialentwurf erzeugte Schema läßt sich nach der in Kapitel 3 erklärten
Vorgehensweise verfeinern. Es werden dabei nur Relationen mit gleichem Schlüssel
zusammengefasst. Die Relationen Stadt und liegt auf werden also zusammengefasst, so dass nur eine Relation im Schema verbleibt:
Stadt : {[ID, Name, Einwohnerzahl, PunktID]}
Dieselbe Vorgehensweise wird für die Relationen Verbindungen und verbindet
durchgeführt:
Verbindung : {[ID, Stadt1 ID, Stadt2 ID, Typ, Name]}
Nach dieser Verfeinerung entsteht das endgültige relationale Schema:
Punkt
Stadt
Verbindung
Zuglinie
Bundesland
ist Haltestelle
ist Grenzpunkt
:
:
:
:
:
:
:
{[ID, X, Y, Typ]}
{[ID, Name, Einwohnerzahl, PunktID]}
{[ID, Stadt1 ID, Stadt2 ID, Typ, Länge]}
{[ID, Typ, Name]}
{[ID, Name]}
{[ZuglinieID, StadtID, Position]}
{[PunktID, BundeslandID, Position]}
Die einzelnen Attributwerte der jeweiligen Relationen sind atomar, so dass die
erste Normalform automatisch erfüllt ist. Durch die künstlichen Schlüsselattribute der jeweiligen Relationen ist jedes Nichtschlüsselattribut vom Schlüsselattribut
voll funktional abhängig. Die zweite Normalform ist auch erfüllt. Desweiteren
hängt in der jeweiligen Relation kein Nichtschlüsselattribut transitiv vom
Schlüsselattribut ab, so dass auch die dritte Normalform erfüllt ist. Da sich die
Relationen des erzeugten relationalen Schemas in dritter Normalform befinden,
treten keine Anomalien auf. Aufgrund der künstlichen Schlüsselattribute ist die
Entitäts-Integrität des relationalen Schemas erfüllt, weil die künstlichen Schlüsselattribute nie einen Nullwert haben werden. Für jeden Fremdschlüsselwert einer
Relation ist wegen der künstlichen Schlüsselattribute in der korrespondierenden
Tabelle immer ein Primärschlüssel vorhanden. Dies bedeutet wiederum, dass das
relationale Schema auch die referentielle Integrität erfüllt.
44
5.2 Abbildung auf Relationen
Dieses relationale Schema bildet die Basis für die relationale Datenbank. Die
einzelnen Relationen lassen sich sehr einfach auf Tabellen in Access übertragen.
45
6 Ein Schichtenkonzept zur
Visualisierung und Manipulation
von Geodaten
Im vorigen Kapitel wurde für das DataMap-System ein relationales Schema erstellt und in Access überführt. Dieses Kapitel befasst sich mit der Visualisierung
und Manipulation der in der Datenbank abgespeicherten Daten.
6.1 Visualisierung von Geodaten
Die in einer relationalen Datenbank gespeicherten Daten bestehen aus Geodaten1
und Metadaten. Der Geodatenanteil beschreibt die räumliche Lage und der
Metadatenanteil die Eigenschaften eines Geo-Objektes. Anhand von Geodaten
erstellt das DataMap-System eine interaktive Karte auf dem Bilschirm. Um
Geodaten auf dem Bildschirm darzustellen, muss zuerst entschieden werden,
welche Art der Graphik benutzt wird. Anschließend muss eine Entscheidung für
die Formauswahl getroffen werden, d.h. in welcher Form die Geodaten dargestellt
werden.
Die Art der Graphik ist von dem gewählten geometrischen Basismodell für GeoObjekte abhängig (Vektormodell, Rastermodell). Dabei wird zwischen VektorGraphiken und Raster-Graphiken unterschieden. Da für das DataMap-System in
Kapitel 5 das Vektormodell als geometrisches Basismodell gewählt wurde, ist die
Datendarstellung durch die Vektor-Graphik vorgegeben.
Vorteile der Vektor-Graphik sind:
• Sehr genaue Darstellung von Graphik-Primitiven (Punkt, Linie) und der
daraus zusammengesetzten Graphiken
• Leichte Durchführung von Transformation der graphischen Objekte, wie z.B
Streckung oder Rotation
1
Geodaten sind formale Beschreibungen von Geoinformationen in Form von Ziffern und Zeichen zur computergerechten Verarbeitung
46
6.1 Visualisierung von Geodaten
• Kleine Datenmengen
Das DataMap-System soll die in der Datenbank befindliche Daten auf dem
Bildschirm in Form einer interaktiven Karte darstellen. Ein Geo-Objekt wird auf
der Karte durch einen Icon repräsentiert. Die Position eines Icons wird durch
den Geodatenanteil und sein Aussehen durch den Metadatenanteil bestimmt.
Dabei ist bereits der Aufbau der Karte von enormer Bedeutung, weil schon
durch den Aufbau eventuell auftretende Probleme vermieden werden können.
Solche Probleme können bspw. auftreten, wenn mehrere dargestellte Objekte
sich überschneiden oder übereinander liegen und so ihre Erkennung erschwert
wird. Diese Überscheindunsgproblematik kann sich auch auf die Ansprechbarkeit
dargestellter Objekte derart auswirken, dass ein Objekt ausgewählt wird, welches
nicht gewählt werden sollte.
6.1.1 Schichtenkonzept
Um dieser Überschneidungsproblematik zu entgehen, wurde ein Schichtenkonzept erarbeitet. Dabei orientiert sich das Schichtenkonzept an dem in Kapitel
2.1.3 erläuterten Layer-Modell. Die Karte wird in Anlehnung an Geo-Objekttypen
in vier Schichten (Layer) unterteilt:
• Punkt-Layer
enthält alle Geo-Objekte des Geo-Objekttyps Punkt
• Linien-Layer
enthält alle Geo-Objekte des Geo-Objekttyps Linie
• Linienzug-Layer
enthält alle Geo-Objekte des Geo-Objekttyps Linienzug
• Flächen-Layer
enthält alle Geo-Objekte des Geo-Objekttyps Fläche
Ein Geo-Objekt wird auf der Karte durch ein graphisches Element dargestellt.
Betrachtet man bspw. einen Punkt als graphisches Element, kann er einerseits zur
Darstellung eines Geo-Objekts dienen, anderseits ist der Punkt auch Teil einer
Linie, die ihrerseits ein Geo-Objekt darstellt. Auch eine Linie bzw. ein Linienzug
kann sowohl zur Darstellung eines Geo-Objekts als auch zur geometrischen
Beschreibung eines flächenhaften Geo-Objekts dienen. In beiden Fällen haben
diese graphischen Elemente eine andere Bedeutung, so dass eine Differenzierung
erforderlich ist. Diese Differenzierung kann erfolgen, wenn man ein graphisches
Element, das ein Geo-Objekt darstellt, als interpretiertes graphisches Element
bezeichnet. Ein graphisches Element, das lediglich zur geometrischen Beschreibung eines Geo-Objekts dient, wird als uninterpretiertes graphisches Element
47
6 Ein Schichtenkonzept zur Visualisierung und Manipulation von Geodaten
betrachtet. Aufgrund der Schichtenunterteilung nach Geo-Objekttypen wird
vermieden, dass auf einer Schicht gleiche graphische Elemente zusammentreffen,
die sowohl interpretiert als auch uninterpretiert sind. Dies hat zur Folge, dass ein
interpetierter Punkt sich auf dem Punkt-Layer befindet und ein uninterprtierter
Punkt der bspw. zur geometrischen Beschreibung einer interpretierten Linie
dient, sich dann auf dem Linien-Layer befindet. Eine interpretierte Linie wird
in das Linien-Layer gelegt, wohingegen eine uninterpretierte Linie, die Teil einer
Begrenzung der Fläche ist, dem Fläche-Layer zugeordnet wird.
Des weiteren kann sich auch auf der einzelnen Schicht eine weitere Unterteilung ergeben (Unterschichten). Einzelne Geo-Objekte beschreiben immer
eine bestimmte Thematik. Die Zuordnung der einzelnen Geo-Objekte zu GeoObjektklassen erfolgt anhand der sie beschreibenden Thematik. Allerdings
können Geo-Objekte derselben Klasse auch vom verschiedenen Typ sein. Bei
Ortschaften bspw. unterscheidet man je nach deren Typ zwischen einer Stadt,
Kleinstadt, Großstadt oder auch einem Dorf. Jeder Typ erhält dann eine Unterschicht (z.B. Ortschaften als Schicht mit den Unterschichten Stadt, Dorf usw.).
Dabei ist die Anzahl der jeweiligen Unterschichten von der Anzahl des jeweils zu
berücksichtigenden Typs einer Geo-Objektklasse abhängig (s. Abbildung 6.1).
Geo-Objekttyp
Flächen-Layer
Linienzug-Layer
Linien-Layer
Punkt-Layer
Typ1
...
Typ N
Thematiktyp
Abbildung 6.1: Das Schichtenkonzept
Die Gesamtsicht einer einzelnen Schicht wird durch das Übereinanderlegen
einzelner Unterschichten erreicht. Die Gesamtsicht der Karte erreicht man durch
das Übereinanderlegen der einzelnen Schichten.
Abschließend kann man sagen, dass es sich hierbei um ein doppeltes“ Layer”
Modell handelt. Es erfolgt sowohl eine Unterteilung nach Geo-Objekttypen
48
6.1 Visualisierung von Geodaten
(y-achse) als auch eine Unterteilung nach jeweiligem Thematiktyp (x-achse) .
Der Vorteil dieses Schichtenkonzepts liegt in der leichten Realsierung des
Sichtbarkeitsprinzips. Durch Ein- oder Ausblenden einzelner Schichten oder
Unterschichten kann die gewünschte Sicht der Karte erreicht werden.
Für das Anwendungsbeispiel ergibt sich damit folgende Verteilung nach GeoObjekttypen:
• Punkt-Layer : Hier werden Städte dargestellt
• Linien-Layer : Hier werden alle Verbindungen dargestellt
• Linienzug-Layer : Hier werden alle Zuglinien dargestellt
• Flächen-Layer : Hier werden alle Bundesländer dargestellt.
Bei weiterer Unterteilung des Linienzug-Layer ergeben sich folgende Unterschichten:
• nur RB-Zuglinie
• nur EC-Zuglinie
• nur IC-Zuglinie.
6.1.2 Wahl der Darstellung
Im Folgenden wird die Darstellung von Geo-Objekten auf dem Bildschirm
erläutert.
Die Darstellungsform von Geo-Objekten hat sich an den jeweils zu vermittelnden
Informationen zu orientieren. Dabei werden die in Kapitel 2.2.3 diskutierten graphischen Variablen angewendet. Die Darstellungsformen des DataMap-Sytems
sind im VB-Code implementiert, was ein Nachteil dieses Systems ist. Für den
Fall, dass diese Darstellungsformen für eine andere Anwendung nicht geeignet
sind, muss der Code umgeschrieben werden. Im weiteren erfolgt deshalb die
Auswahl der Darstellungsform anhand des Anwendungsbeispiels.
Geo-Objekte vom Typ Stadt werden durch Punkte graphisch dargestellt. Die
Form des Punktes ist abhängig von der Größe der Stadt bzw. ihrer Einwohnerzahl.
Dabei orientiert sich die Darstellungsform an den Darstellungen von Städten in
topographischen Karten des Diercke Weltatlas [Die 88]. Für die Darstellung der
Stadt stehen drei Formen zur Verfügung:
• bis 50000 Einwohner → ein durchsichtiger Kreis
49
6 Ein Schichtenkonzept zur Visualisierung und Manipulation von Geodaten
• zwischen 50000 und 500000 Einwohner → ein Kreis mit einem kleineren mit
schwarzer Farbe ausgefüllten Kreis in der Mitte
• über 500000 Einwohner → ein ganz in schwarzer Farbe ausgefüllter Kreis.
Die Kreise sind jeweils gleich groß und haben einen Radius von 7 Pixel.
Ein Geo-Objekt vom Typ Verbindung wird durch eine Linie graphisch dargestellt. Je nach dem Typ der Verbindung (RB, EC oder ICE) werden die Linien
unterschiedlich dargestellt. Ein RB-Verbindung wird durch schwarz gepunktete
Linien, eine EC-Verbindung durch eine Linie aus schwarzen Punkten und
Strichen und eine ICE-Verbindung durch eine schwarze durchgezogene Linie
realisiert.
Die graphische Darstellung für ein Geo-Objekt vom Typ Zuglinie ist ein
Linienzug. Auch hier kommt es auf den Typ der Zuglinie (RB, EC oder ICE) an,
so dass jeweilige Zuglinien in unterschiedlichen Farben und Formen dargestellt
werden. Eine RB-Zuglinie ist in blauer Farbe dargestellt, für eine EC-Zuglinie
wurde die grüne und für eine ICE-Zuglinie die rote Farbe gewählt. Die Wahl
der Form erfolgt entsprechend der Wahl der Form für ein Geo-Objekt vom
Typ Verbindung. Wird eine Zuglinie bestimmt, wird der Start- und Endpunkt
(Städte) dann zusätzlich zu seiner Darstellungsform (Kreis) mit einem Quadrat
umrahmt.
Ein Geo-Objekt vom Typ Bundesland wird durch eine Fläche dargestellt. Dabei
handelt sich um einen durch einen geschlossenen Linienzug begrenzten Bereich.
Bei der Erzeugung einer Fläche wird das Innere gefärbt, wobei die Farbe zufällig
berechnet wird. Dies ist im Code implementiert, um der Fläche schon bei der
Erstellung eine Farbe zu geben. Hat man die gewünschte Fläche erstellt, kann
anschließend auch die gewünschte Farbe ausgewählt werden. Punkte und Linien
am Rand der Fläche werden grün markiert.
Für die graphische Darstellung von Geo-Objekten werden interne WindowsZeichnenprozeduren benutzt. Es handelt sich dabei um Windows-API Routine
GDI32.DLL. Diese Routine stellt eine Reihe von Zeichenfunktionen zur Verfügung, wie z.B. Arc, die ein Kreisbogen oder Ellipse, die eine Ellipse zeichnet.
6.2 Manipulation
Der zweite Teil dieses Kapitels befasst sich mit der Manipulation der dargestellten
Geo-Objekte. Dabei werden nicht die Geo-Objekte selbst, sondern die sie repräsentierenden Darstellungsformen und die in der Datenbank befindlichen Daten
50
6.2 Manipulation
(Geodaten; Metadaten) manipuliert. Durch die Manipulation ist der Benutzer in
der Lage, das Aussehen der Karte selbst zu beeinflussen. Dabei ist zwischen einer
Manipulation der Gesamtdarstellung und einer Manipulation einzelner Objekte
zu unterscheiden. Im DataMap-System sind diese zwei Arten der Manipulation
realisert:
1. Manipulation der gesamten Darstellung
2. Manipulation der einzelnen Geo-Objekte.
Die Manipulation der gesamten Darstellung erfolgt durch zwei Funktionen,
Zoom und Pan. Mit dem Zoom wird der Ausschnitt der Karte vergrößert bzw.
verkleinert. Damit können auftretende Übersichtsprobleme, z.B. bei größerer
Anzahl dargestellter Geo-Objekte, gelöst werden. Wird die Karte vergrößert bzw.
verkleinert, vergrößern bzw. verkleinern sich auch die jeweiligen Darstellungsformen. Mit der Pan-Funktion verschiebt man den gesamten Bildschirminhalt
und zentriert ihn an der aktuellen Cursorposition neu. Die Pan-Funktion ist
sehr hilfreich, wenn die Karte vergrößert wird. Durch das Bewegen der Karte können auch einzelne vorher nicht sichtbare Teile der Karte betrachtet werden.
Da die Karte bereits in Schichten unterteilt wurde, ist die Manipulation der
einzelnen Geo-Objekte schichtabhängig realisiert worden. Ein Geo-Objekt kann
also nur auf der ihm zugehörigen Schicht manipuliert werden. Ein Geo-Objekt
vom Typ Stadt kann nur auf dem Punkt-Layer und ein Geo-Objekt vom Typ
Verbindung nur auf dem Linien-Layer manipuliert werden.
Die Art der Manipulation einzelner Geo-Objekte ist abhänigig von der graphischen Darstellung des jeweiligen Geo-Objekts. Eine Fläche kann geteilt
werden, ein Punkt hingegen nicht. Die im DataMap implementierten Arten
der Manipulation basieren daher auf den Möglichkeiten einer Manipulation
von graphischen Elementen. Da die implementierten Arten der Manipulation
dabei anwendungsunabhängig sind, werden im Folgenden die Möglichkeiten der
Manipulation anhand des Anwendungsbeispiels erläutert.
Ein Punkt kann eingefügt bzw. gelöscht und von einer Position zu einer anderen
bewegt werden. Aufgrunddessen sind im DataMap-System folgende Funktionen
zur Manipulation von Geo-Objekten, die durch einen Punkt dargestellt sind, realisiert:
• Einfügen und Löschen
• Verschieben
• Update
Informationen, die an das Geo-Objekt gekoppelt sind, können verändert
werden.
51
6 Ein Schichtenkonzept zur Visualisierung und Manipulation von Geodaten
Einfügen eines Geo-Obejkts vom Typ Stadt erfolgt durch Einfügen eines
Punktes auf der Karte. Die Bildschirmkoordinaten werden in Weltkoordinaten
umgewandelt und sind in der Datenbank als Geodatenanteil des betreffenden
Geo-Objektes zu speichern. Durch Anklicken des Punktes (rechte Maustaste)
erscheint ein PopUp mit dazugehöriger Funktion TownProperties. Diese gibt
die Möglichkeit, den Namen und die Einwohnerzahl zu bestimmen. Diese
Informationen sind als Metadatenanteile in der Datenbank zu speichern. Gibt
man die Einwohnerzahl ein, erhält der Punkt, der ein Geo-Objekt vom Typ
Stadt darstellt, die seiner Einwohnerzahl entsprechende Darstellungsform (s.
6.1.2).
Die Löschung erfolgt ebenfalls über das PopUp mit darin enthaltener Funktion
Delete. Dabei wird die Darstellungsform des Punktes mit den ensprechenden
Daten in der Datenbank gelöscht.
Über das PopUp mit darin enthaltener Funktion TownProperties können
Metadatenanteile verändert werden (Update).
Das Verschieben erfolgt über das Anklicken eines Punktes (linke Maustaste)
und dem Ziehen (bei gehaltener linker Maustaste) auf die gewünschte Position.
Durch das Verschieben eines Punktes wird die Position (Koordinaten) neu berechnet, so dass sich der entsprechende Geodatenanteil ändert. Die Topologie des
Punktes ändert sich nicht, da die an sie gebundenen Linien mitverschoben werden.
Eine Linie kann ebenfalls eingefügt, gelöscht und bewegt werden. Darüber hinaus
ist ein Teilen der Linie durch ein oder mehrere Punkte möglich. Angelehnt an diese
Möglichkeiten sind folgende Funktionen für eine Manipulation von linienhaften
Geo-Objekten realisiert worden:
• Einfügen und Löschen
• Verschieben
• Update
Informationen, die an das Geo-Objekt gekoppelt sind, können verändert
werden.
Das Geo-Objekt vom Typ Verbindung wird durch Ziehen (linke Maustaste)
einer Linie zwischen zwei Punkten eingefügt. Es wird zunächst automatisch eine
RB-Linie erzeugt, wobei über Town link properties (in PopUp) der Typ der Linie
geändert werden kann. Darüber hinaus können hier auch die Angaben zur Länge
der Verbindung angegeben werden (Update). Löschen erfolgt über Abrufen des
PopUp (rechte Maustaste), in dem der Befehl Delete enthalten ist. Beim Löschen
wird sowohl die Darstellungsform als auch der entsprechende Datensatz gelöscht.
Das Verschieben der Linie erfolgt über das Verschieben des Punktes. Aufgrund
der konzeptuellen Modellierung (Verbindung ist sog. schwache Entität) ist eine
Teilung einer Linie im DataMapSystem nicht realisiert. Eine Teilung kann aber
52
6.2 Manipulation
indirekt simuliert werden. Dies erfolgt durch Löschung einer Linie, Einfügen eines
Punktes und anschließendem Verbinden dieses Punktes mit den verbliebenen
Punkten.
Auch die Manipulation des Geo-Objekts, das durch einen Linienzug dargestellt
ist, orientiert sich an den Möglichkeiten der Manipulation des graphischen Elements Linienzug. So kann ein Linienzug erzeugt werden, sowohl ganz gelöscht
als auch in einzelne Segmente aufgeteilt werden. Im DataMap-System werden
folgende Funktionen realisiert:
• Einfügen und Löschen
• Verschieben
• Teilen
• Update
Informationen, die an das Geo-Objekt gekoppelt sind, können verändert
werden.
Um ein Geo-Objekt vom Typ Zuglinie zu erzeugen, müssen sowohl Punkte als
auch Linien existieren. Einfügen, Löschen und Update eines Linienzuges erfolgt
analog zur bezüglich der Linie erklärten Vorgehensweise. Der Linienzug kann in
Segmente aufgeteilt werden. Dies erfolgt durch Löschung eines Punktes (Haltestelle) oder einer Linie zwischen diesen Punkten, die jeweils Teil des Lininezuges
sind. Dadurch entstehen zwei neue Linienzüge, die man neu benennen muss (aus
Route1 werden Route2 und Route3). Erfolgt die Teilung an den ersten beiden
Punkten (Haltestellen) bzw. an den letzten zwei, wird der Linienzug lediglich
verkürzt. Eine Verkürzung erfolgt auch, wenn man die jeweiligen Anfangs- bzw.
Endlinien löscht. Das Verschieben des Linienzuges erfolgt durch Verschiebung
der sich auf ihm befindlichen Punkte.
Eine Fläche kann gelöscht werden. Es kann auch eine neue Fläche erzeugt werden.
Ebenso ist es möglich, eine Fläche zu editieren. Einzelne Punkte auf der Grenze
der Fläche können eingefügt bzw. gelöscht werden. Diese Möglichkeiten ergeben
folgende Funktionen für flächenhafte Geo-Objekte:
• Löschen existierender und Einfügen neuer Fläche
• Einfügen eines neuen Punktes auf der Grenze der Fläche
• Editieren einzelner Flächen
• Update
Information, die an das Geo-Objekt gekoppelt sind, können verändert werden.
53
6 Ein Schichtenkonzept zur Visualisierung und Manipulation von Geodaten
Die Fläche wird erzeugt, indem Grenzpunkte gesetzt und anschließend miteinander verbunden werden. Ebenfalls ist es möglich mit dem Ziehen einer Linie zu
beginnen, die automatisch, je nach der gewünschten Form der Fläche, Punkte
setzt und sie miteinander verbindet. Zieht man eine weitere Linie entsteht automatisch eine Teilfläche, die sich dem Ganzen einfügt. Durch die Möglichkeit
eine unbegrenzte Zahl an Linien zu ziehen, kann man die Größe und die Form
der Fläche bestimmen (s. Abbildung 6.2). Durch das Setzen der Punkte werden die Grenzpunkte definiert. Mit der Verbindung dieser Grenzpunkte wird eine
Kontur der Fläche erzeugt. Die Kontur gibt an, welche Grenzpunkte eine Fläche
bestimmen. Dadurch kann ein Benutzer auf dem jeweiligen Grenzpunkt weitere
Flächen erzeugen und muss nicht neue Grenzpunkte definieren. Ein und derselbe Grenzpunkt kann zur Bestimmung mehrerer Flächen (Konturen) dienen. Bei
der Löschung der Flächen wird zunächst die ihr zugehörige Kontur gelöscht. Die
Grenzpunkte bleiben erhalten und können nach Bedarf einzeln gelöscht werden,
wobei man mit verbleibenden Punkten eine neue Fläche erzeugen kann.
Abbildung 6.2: Beispiel einer Fläche
Um für eine bestimmte Fläche auch Informationen eingeben zu können, muss sie
zunächst ausgewählt werden. Über das PopUp können Area properties abgerufen
werden.
Einzelne Flächen können editiert werden, indem man neue Grenzpunkte einfügt,
existierende löscht, sie verschiebt, mehrere Punkte zu einem zusammenfasst oder
alle löscht. Bei der Verschiebung und Löschung der Grenzpunkte, muss berücksichtigt werden, dass sie auch als Grenzpunkte anderer Flächen dienen. Treffen
an einem Punkt zwei Flächen aufeinander, bewirkt die Bewegung dieses Punktes auch eine Bewegung der jeweiligen Flächen. Wird ein Grenzpunkt gelöscht,
verbinden sich die benachbarten Grenzpunkte und geben damit den jeweiligen
Flächen eine neue Kontur. Darüber hinaus kann auch ein Punkt über den Befehl
Split shared point des PopUp nur einer Fläche zugeordnet werden. Mit diesem
Befehl kann man ein Duplikat eines Grenzpunktes erzeugen und ihn seperat für
die jeweilige Fläche betrachten. Durch das Editieren des Duplikats ändert sich
die Kontur nur einer Fläche (s. Abbildung 6.3). Damit ist es möglich, eine neue
Flächenkonturen für die ausgewählte Fläche zu erzeugen, ohne einen neuen Grenz-
54
6.2 Manipulation
punkt einzufügen. Der urpüngliche Grenzpunkt bleibt an seiner Stelle und gehört
damit zu der anderen Fläche.
a) Ausgang
b) ohne Split
c) mit Split
Abbildung 6.3: Editieren einer Fläche
Es ist auch möglich mit der linken Maustaste mehrere Grenzpunkte auszuwählen. Diese Grenzpunkte werden umrahmt, wobei das PopUp automatisch mit
den dazugehörenden Befehlen Merge selected point und Delete selected point
erscheint. Dadurch können die ausgewählten Grenzpunkte zu einem Punkt
zusammengefasst oder aus der Flächenkontur gelöscht werden. Dies bewirkt
ebenfalls eine Änderung der Flächenkontur.
Wird ein Geo-Objekt auf seiner Schicht gelöscht, kann dies Auswirkungen auf
Geo-Objekte auf anderen Schichten haben. Dies ergibt sich aus der in der konzeptuellen Ebene bestehenden Abhängigkeit zwischen den einzelnen Geo-Objekten.
Da eine Linie nur existiert, wenn auch zwei Punkte existieren, hat die Löschung
eines Punktes zur Folge, dass die entsprechende Linie auch nicht existieren kann.
Im Hinblick auf den Linienzug gilt dasselbe, da auch er nur über existierende
Punkte und Linien hergestellt werden kann. Dieses Problem wird dadurch umgangen, dass den jeweiligen Schichten eine bestimmte Priorität gegeben wird:
• Punkt-Layer hat Priorität 1
• Linien-Layer hat Priorität 2
• Linienzug-Layer hat Priorität 3
• Flächen-Layer hat Priorität 4.
Dabei hat Priorität 1 die höchste Priorität und Priorioriät 4 die niedrigste. Da
die Proritätenzuordnung alleine nicht zur Problemlösung beiträgt, ist darüberhinaus folgende Regel anzuwenden:
• Änderungen auf einer Schicht mit höherer Priorität haben Auswirkungen
auf Schichten niedrigerer Priorität.
55
6 Ein Schichtenkonzept zur Visualisierung und Manipulation von Geodaten
• Änderungen auf Schichten niedriegerer Priorität haben hingegen keine Auswirkungen auf Schichten mir höherer Priorität.
Dies bedeutet, dass die Löschung eines Geo-Objekts vom Typ Stadt auch die
Löschung der von ihm ausgehenden Geo-Objekte vom Typ Verbindung bewirkt.
Die Löschung einer dem Geo-Objekt vom Typ Zuglinie gehörenden Haltestelle
hat hingegen keine Auswirkung auf die Geo-Objekte vom Typ Stadt.
56
7 Architektur und Funktionalität
des DataMap-Systems
7.1 Architektur und Komponenten
DataMap ist ein aus mehreren Komponenten bestehendes System, dessen Aufbau
im nachfolgendem Kapitel erläutert wird. Die Architektur des DataMap-Systems
kann als schichtenmäßig betrachtet werden und setzt sich aus folgenden Komponenten zusammen:
• Presentation-Komponente
• Processing-Komponente
• Database-Komponente.
Die komplexeste Struktur und die wichtigste Bedeutung hat die ProcessingKomponente. Sie verwaltet die Daten, führt das Update für diese durch und
hält die Konsistenz der Datensätze aus der Datenbank und den Objekten im
Zwischenspeicher, die diesen Datensätzen entsprechen, aufrecht. Beim Start des
Programms liest diese Komponente mit Hilfe der Database-Komponente alle
Datensätze aus der Datenbank und erzeugt sie in Objekte, die zueinander in
Beziehung stehen, z.B. eine Verbindung ist ein Objekt und verbindet immer
zwei Städte. Alle Befehle des Benutzers zum Einfügen neuer, Manipulation
oder Löschen bestehender Objekte werden von der Processing-Komponente
empfangen. Die Processing-Komponent registriert alle vorgenommenen
Änderungan an dem jeweiligen Objekt. Sobald sich der Benutzer für eine
Speicherung der vorgenommenen Änderungen entschieden hat (Save), durchläuft
diese Komponente alle Strukturen, die durch Objekte geschaffen wurden und
aktualisiert sie anhand der registrierten Änderungen in der Datenbank.
Alle eingegebenen Befehle werden durch die Klasse Map verwaltet. Die Klasse
beinhaltet ihererseits mehrere Klassen, die wiederum jeweils gleichartige Obejkte
verwalten. Es bestehen folgende Klassen:
• AllPoints beinhaltet eine Liste aller exisitierenden Punkte (sowohl solche,
die Geo-Objekte vom Typ Stadt als auch solche, die Flächen begrenzen)
57
7 Architektur und Funktionalität des DataMap-Systems
• AllTowns beinhaltet eine Liste aller Städte
• AllTownLinks beinhaltet eine Liste aller Verbindungen
• AllRoutes hat gleichzeitig drei Instazen, so dass in einer Instanz sich die
ICE-, in einer anderen die EC- und in der dritten die RB-Routen befinden
• AllAreas beinhaltet eine Liste aller Flächen.
Zusätzlich zur Verwaltung gleichartiger Objekte, definieren diese All“-Klassen
”
die Funktionen und Prozeduren für alle Objekte einer Klasse. AllRoutes hat
bspw. eine Funktion, die für eingegebene X und Y Koordinate die Zuglinie
erkennt, die durch diesen Punkt geht (findRoutesViaOneTown). Dabei geht die
Funktion die Liste der Zuglinien durch, um zu überprüfen, welche der Zuglinien
durch den eingegebenen Punkt verläuft. Wenn sie eine solche erste Zuglinie
erkannt hat, gibt sie sie als Ergebnis zurück. Die eigentliche Überprüfung, ob
eine Zuglinie durch diesen Punkt geht, findet nicht in diesen AllRoutes Klassen
statt, sondern in der Klasse Route. Damit die Route überprüfen kann, ob die
Zuglinie durch den Punkt verläuft, wird sie die ganze Liste ihrer Haltestellen
(Städte) durchlaufen, Segment für Segment, von Stadt zu Stadt und wird mit
Hilfe analytischer Geometrie überprüfen, ob der eingegebene Punkt einem dieser
Segmente angehört (Funktion isViaTown).
Im Hinblick auf die übrigen Klassen (AllTown, AllTownLink, AllArea) gilt
dasselbe.
Jeder Befehl zur Änderung von Daten wird von der Klasse Map verwaltet. Diese
leitet den Befehl der jeweiligen Klasse zu, die gleichartige Objekte vereint. Diese
Klasse wiederum sucht sich Objekte aus der Liste aus, die die gewünschten
Änderungen betreffen. Die gewünschte Änderung führt damit das betreffende
Objekt an sich selbst durch. Wenn bspw. ein Befehl eingegeben wird, dass sich
alle ICE-Zuglinien teilen sollen, die über die Stadt Bonn führen, leitet die Klasse
Map diesen Befehl an die Klasse AllRoutes weiter. AllRoutes geht unter der
Verwendung der Funktion isViaTown (t) der Klasse Route zunächst die Liste
aller ICE-Zuglinien durch und überprüft, welche Zuglinien durch die eingegebene
Stadt führen. Falls eine ICE-Zuglinie aus der Liste nicht über die entsprechende
Stadt führt, wird die nächste ICE-Zuglinie aus der Liste überprüft. Führt eine
ICE-Zugline durch die entsprechende Stadt, wird die Prozedur breakAtTown der
Klasse Route, abgerufen. Diese Prozedur teilt die Zuglinie in zwei Teile, so dass
damit die urpsrüngliche Zuglinie nicht mehr besteht, sondern nur ihre zwei Teile.
Da aber die Processing-Komponente alle Änderungen registriert, kann eine
richtige Aktualisierung der Datensätze in der Datenbank erfolgen.
Diese Weitergabe von Aufgaben von Klasse zu Klasse, wiederhholt sich im
ganzen System. Jedes Mal wenn die Aufgabe an eine Unterklasse gegeben wird,
58
7.1 Architektur und Komponenten
wird der Prozess immer einfacher. Mit dieser Weitergabe von Aufgaben kann
eine komplexe Aufgabe in kleinere Teilaufgaben zerlegt werden.
Weiterhin befinden sich in der Processing-Komponente die Klassen, in dessen
Instanzen sich die Daten über Entitäten aus der Datenbank befinden:
• Point
• Town
• TownLink
• Route
• Area.
Dabei hat jeder Town genau einen Punkt, der seine Position repräsentiert. Jeder
Town-Link entählt genau zwei Town’s, die erkennen lassen, dass eine direkte
Verbindung zwischen ihnen besteht. Jede Route enthält eine Liste der Towns,
durch die sie führt. Jede Area hat eine Liste von Konturen, die ihrerseits eine
Liste von allen Punkten enthält, die sie definieren.
Die Presentation-Komponente besteht aus mehreren Klassen, die die Tools
(Werkzeuge zum Manipulieren von Punkten, Linien, Linienzügen und Flächen)
implementieren. Die der Presentation-Komponente zugehörige Klasse ViewPort
führt die erforderliche Umwandlung von Geo-Koordinaten in Bilschrimkoordinaten und umgekehrt durch. Die Klasse Graphics ist auch Teil dieser Komponente,
die die Funktionen und Prozeduren zur Visualisierung von Objekten auf dem
Bildschirm enthält. Die Visualisierung erfolgt auf dem VisualBasic-Steuerelment
PictureBox“.
”
Die Umwandlung in Bildschrimkoordinaten ist notwendig, um Objekte auf dem
Bildschirm darzustellen. Da bei der Manipulation von Objekten alle Koordinaten
in Pixel angegeben sind, ist eine Umwandlung von Bildschirmkoordianten in
Geo-Koordinaten notwendig. Sie lassen sich aber sehr einfach in Geo-Koordinate
umrechenen, wenn man den 4 Bildschrimrandkoordinaten den Geo-Koordinaten
zuordnet.
Die Zoom-Funktion ist durch eine Multiplikation oder Division der Koordinate
mit einem bestimmten Faktor realisiert worden. Eine doppelt vergrößerte
Ansicht erfolgt durch Multiplikation aller Koordinaten mit Faktor zwei. Für eine
vierfache Verkleinerung werden die Koordinaten durch Faktor vier geteilt.
In der Klasse Graphics sind Funktionen und Prozeduren zum Zeichnen elementarer graphischer Figuren definiert: Kreis, Dreieck, Linien, Linienzüge, Auswahl
der richtigen Farbe oder der Form der Linie (bsw. gepunktete, durchgängig
59
7 Architektur und Funktionalität des DataMap-Systems
unterbrochene, Punkt-Linie-Punkt). Die notwendigen Koordinaten für das
Zeichnen sind Bildschrimkoordinaten, die die ViewPort Klasse zur Verfügung
stellt.
Die Operation für die Erstellung einer Karte geht dennoch von der Klasse
Map aus. Sie erhält von dem System den Befehl zur Darstellung des derzeitig
gespeicherten Zustandes der Karte. Die Map Klasse leitet auch hier die Befehle an die Klassen AllAreas, AllTownsLinks, AllRoutes, AllTowns (in dieser
Rheinfolge) weiter . Diese All“-Klassen befehlen jedem seiner Elemente (Area,
”
TownLink, Route, Town) sich selbst zu zeichnen. Für diese Aufgabe stellt Map
ihm ViewPort ein Objekt, das die Koordinaten umrechnet und Graphics ein
Objekt zum Zeichnen, zur Verfügung.
Jedes der Tool-Objekte, wenn es aktiviert ist, erhält Informationen über die Bewegung und das Klicken der Maus. Für jedes Tool bedeuten diese Informationen
was anderes, so dass jedes Tool nach seiner Logik entscheidet, was der Benutzer
eigentlich will. Diesen Befehl gibt das jeweilige Tool weiter an die Map Klasse
zum Ausführen. Nachdem die Map Klasse das Befehl durchgeführt hat, stellt
sich eine neue Darstellung der Karte dar, die durch diesen Befehl entstanden ist.
Die Database-Komponente hat die Aufgabe grundlegende Operationen zu definieren (Insert, Update, Delete, Select, Transaction), die das System über die Datenbank ausführen soll, unabhängig davon um welche Art der Datenbank es sich
handelt. In dieser Komponente sind Interface definiert, die dem System einen Datenbankzugriff ermöglichen unabhängig von der Datebankzugriffsmethode (ADO,
RDO, DAO). Es handelt sich dabei um:
• Database
• DatabaseTransaction
• DatabaseInsert
• DatabaseUpdate
• DatbaseDelete
• DatbaseSelect.
Interface ist eine Klasse, die keine Implentation hat, obwohl es möglich ist
mehrere dieser Implementationen einzuführen. Das DataMap-System hat sechs
Klassen, durch die jeweils ein Interface implementiert ist. Jedes dieser Interface
zeigt, wie eine Datenbank-Operation implementiert wird, wenn der Zugriff
auf die Datenbank über eine ADO-Schnittstelle erfolgt. Diese Implementation
trägt Rechnung darüber, dass eine Transaktion beginnen kann. Darüber hinaus
60
7.2 Oberfläche: Design und Funktionen
ermöglicht sie dem System eine beliebige Anzahl von Einzelaktionen in einer
Transaktion durchzuführen. Wenn alle Änderungen erfolgreich waren, erstellt sie
ein commit“ dieser Änderungen. Im Falle einer nicht erfolgreichen Änderung
”
efolgt ein rollback“, so dass die Datenbank in den ursprünglichen Zustand
”
versetzt wird.
Jede von den ADO“-Klassen (AdoDatabaseInsert, AdoDatabaseUpdate, Ado”
DatabaseDelete, AdoDatabaseSelect) empfängt mit Hilfe der im Interface
genannten Prozeduren, Informationen welche Daten geändert werden sollen. Auf
Grundlage dieser Daten erstellt die Klasse ein SQL Statement, das über die
ADO-Schnittstelle ausgeführt wird.
Die Speicherung der Daten beginnt damit, dass die AdoDatebase Klasse eine
Instanz der Klasse SaveMapDatabaseTransaction erhält. Diese Klasse beginnt
lediglich die Transaktion, wobei die gesamte Speicherung der Daten in die Datenbank die Klasse Map durchführt. Sie wiederum leitet den Befehl zum Speichern
weiter an die All“-Klassen, die ihrerseits den Befehl den einzelnen Objekten ge”
ben, so dass sich die Objekte im Endeffekt selbst speichern. Ähnlich erfolgt der
Einlesevorgang der Karte aus der Datenbank. Diese Operation beginnt, wenn die
Klasse ADODatabase die Prozedur execute“ auf der Instanz der Klasse Load”
MapDatabaseTransaction ausführt, die in dieser neu begonnennen Transaktion
der Klasse Map ermöglicht all ihre Teile zu speichern, was wiederum mittels der
All“-Klassen und ihrer Elemente erfolgt.
”
7.2 Oberfläche: Design und Funktionen
Bei der Erstellung des Oberflächendesigns war primäres Ziel eine benutzerfreundliche Anwendung zu ermöglichen. Ein Benutzer, der das DataMap-System nicht
kennt, soll in der Lage sein auf Anhieb die ihm zur Verfügung stehenden Möglichkeiten zu erkennen und sie anzuwenden. Das Oberflächendesign des DataMapSystem orientiert sich an dem des ArcView. Damit besteht die Oberfläche aus
mehreren Teilen (s. Abbildung 7.1):
• Menüleiste
• Kartenfenster
• Toolbox
• Informationsfenster
• Scrollbars
61
7 Architektur und Funktionalität des DataMap-Systems
In der Menüleiste stehen dem Benutzer drei Menüpunkte mit ihr zugehörigen
Befehlen zur Verfügung (File, View und Tool).
Abbildung 7.1: Oberflächendesign
Das Menü File enthält die Befehle Save und Quit. Mit dem Save-Befehl werden
alle vorgenommen Änderungen auf dem Bildschirm in die Datenbank gespeichert.
Dadurch wird dem Benutzer die Möglichkeit gegeben selbständig zu entscheiden,
ob die geänderten Daten auch in der Datenbank aktualisiert werden sollen.
Durch den Quit-Befehl wird die Sitzung beendet. Falls vorher eventuelle Änderungen nicht gesichert sind, gehen sie bei der Schließung des Programms verloren.
Weiterhin befindet sich in der Menüleiste das Menü View. Über die Befehle
ZoomIn und ZoomOut ist der Benutzer in der Lage, die dargestellten Objekte zu
vergrößern (ZoomIn) oder zu verkleinern (ZoomOut). Über den Befehl Normal
können die Objekte ohne einen Zoomfaktor betrachtet werden.
Das Menü Tool enthält elf Befehle. Da es für den Benutzer sehr unbequem und
umständlich ist, ständig in das Menü zu gehen und dort die jeweiligen Befehle
62
7.2 Oberfläche: Design und Funktionen
immer von neuem auszuwählen, wurde zusätzlich eine ToolBox erstellt. Mit Hilfe
dieser Tools kann man sehr einfach und schnell die Befehle ausführen, ohne die
Menüleiste in Anspruch zu nehmen. Die Tools entsprechen den Befehlen des
Menüs Tool. Die ToolBox befindet sich auf der linken Seite der Oberfläche.
Mit dem Tool Create town sind Funktionen zum Einfügen, Löschen und Update
von Punkten realisiert. Hierzu ist es zunächst erforderlich das Tool Create
town mit der linken Maustaste anzuklicken. Will man einen Punkt einfügen,
muss die Maus auf die gewünschte Stelle bewegt werden und anschließend ist
mit der linken Maustaste anzuklicken. Auf dem Bildschirm erscheint automatisch eine Bennenung Town1. Will man weitere Punkte einfügen, erfolgt
dies in gleicher Vorgehensweise, wobei die Punkte eine durchlaufende Nummerierung erhalten Town2, Town3 usw.. Mit dem rechten Maustasteklick
auf einen gewünschten Punkt, können über PopUp die Lösch- und UpdateFunktionen abgerufen werden. Bei der Update Funktion erscheint ein Fenster,
in dem man entsprechende Informationen (Einwohnerzahl, Name) eingeben kann.
Das Tool Move town realisiert die Funktion zum Verschieben von Punkten. Dies
erfolgt mit gehaltener linke Maustaste und Bewegung der Maus zur gewünschten
Stelle.
Funktionen zum Einfügen, Löschen und Update von Linien sind über das Tool
Create town link realisiert. Auch hier muss man zunächst das Tool Create town
link anklicken. Anschließend kann man mit gedrückter linker Maustate eine Linie
von einem Punkt zum anderen einfügen. Update und Löschen erfolgt analog zur
oben erklärten Vorgehensweise.
Mit dem Tool Pan ist die Pan-Funktion realisiert. Dabei klickt man immer
zunächst das Tool, anschließend eine Stelle auf der Karte an und zieht das Bild
bei gehaltener linker Maustaste in die gewünschte Richtung. Die Zoom-Funktion
ist im Tool Zoom realisiert. Mit dem linken Mausdruck kann man die Karte
vergrößern und mit dem rechten Mausdruck verkleinern.
Die in Kapitel 6.2 erklärte Manipulation eines Linienzuges als Darstellungsform
für ein Geo-Objekt vom Typ Zuglinie wird durch folgende Tools realisiert, wobei
eine Unterscheidung nach dem Typ der Zuglinie erfolgt:
• Create RB Route
• Create EC Route
• Create ICE Route
Auch hier muss zunächst das entsprechende Tool angeklickt werden. Mit der
linken Maustaste werden die Linienzüge erzeugt, mit der rechten kann man die
63
7 Architektur und Funktionalität des DataMap-Systems
Funktionen Löschen und Updaten abrufen. Unter den Tools befindet sich die
Auswahlliste. In dieser befinden sich alle Linienzüge, die man erzeugt hat. Will
man einen bestimmten Linienzüge updaten oder löschen, muss man sie zunächst
in der Auswahlliste anklicken. Der ausgewählte Linienzug erscheint auf dem
Bildschirm, so dass man ihn weiter manipulieren kann.
Mit Tool Create area sind die Funktionen Erstellen neuer Flächen, Update und
Löschen einer Fläche realisiert worden. Daneben befindet sich eine CheckBox,
mit der man die gesamte Fläche ein- und ausblenden kann. Darüber hinaus
befindet sich unter dem Tool die Auswahlliste, durch die man einzelne Flächen
ansprechen kann. Über das PopUp gelangt man zu den Area properties. In dem
Fenster können sowohl der Name der Fläche eingegeben werden, als auch deren
Farbe eingestellt werden. Die Grundfarben sind RGB-Farben, wobei man ihre
Werte anhand ihrer jeweiligen Leisten flexibel anpassen und damit die Farbe
bestimmen kann.
Mit dem Tool Edit Area wurde die Funktion zum Editieren von Punkten auf
der Flächenbegrenzung realisiert. Mit der rechten Maustaste gelangt man auf
die Befehle Delete point und Split shared point. Mit gedrücker linker Maustaste
könnnen Punkte umrahmt werden, die zusammengefasst und aus der Kontur
gelöscht werden sollen.
Das Tool Map ermöglicht eine Manipulation des Aussehens der Karte. Unter
dem Tool befinden sich mehrere CheckBoxen, mit denen man einzelne Schichten
der Karte ein- oder ausblenden kann.
In Verbindung mit den Map Tools dient das Informationsfenster einer schnelleren
Erkennung der dargestellten Objekte. Durch das Anklicken eines Objekts mit
der linken Maustaste gibt das Informationsfenster alle zur Zeit verfügbaren
Informationen wieder (Einwohnerzahl, Distanz usw.)
Die Scrollbars befinden sich horizontal und vertikal am Oberflächenrand. Sie dienen der Bewegung der Karte von links nach rechts und von oben nach unten.
64
8 Zusammenfassung und Ausblick
Das angestrebte Ziel dieser Diplomarbeit war die Entwicklung eines Systems,
das in der Lage ist anhand der in der relationalen Datenbank gepeicherten
Daten eine interaktive 2D-Bildschrimkarte zu erstellen. Dabei ist das DataMapSystem nicht lediglich einer Weiterentwicklung des VirtualMap-Systems. Das
DataMap-System ist ein eigenes System, das mit VirtualMap lediglich auf einer
gemeinsamen Idee der visuellen Darstellung und Manipulation von Geo-Objekten
basiert.
Die in der relationalen Datenbank gespeicherten Daten beschreiben einen
Ausschnitt der realen Welt (Miniwelt). Das DataMap-System ist in der Lage alle
Anwendungsbereiche zu realisieren, die sich durch das für DataMap erarbeitete
Datenbankschema beschreiben lassen.
Alle Ausschnitte der realen Welt, die sich durch Punkte, Linien, Linienzüge
oder Flächen darstellen lassen, können durch das DataMap-System realisiert
werden. Dabei ist keine funktionelle Änderung im Code, sondern ledigliche
eine thematische Anpassung erforderlich. Anwendungsbereiche, die ebenfalls
über das DataMap-System in Betracht kommen, sind bspw. Taxinetz, Straßenverkehrsnetz, Flugliniennetz oder auch ein Stadtplan. Da das DataMap
eine interaktive Karte erstellt, ist Benutzer nicht lediglich passiver Betrachter der Karte. Er kann aktiv das Aussehen der Karte beeinflussen. Dafür
bietet ihm das DataMap-System Funktionen, durch die er eine Karte nach
seinen Bedürfnissen und Wünschen erstellen kann. Dies betrifft zum einen
die Manipulation der gesamten Darstellung (Zoom, Pan) und zum anderen
die Manipulation einzelner Obejkte. So kann der Benutzer Punkte und Linien
einfügen, löschen und verschieben. Darüber hinaus kann er Flächen erstellen und löschen, Aussehen der Fläche bezüglich Farbe und Form verändern.
Er kann ganze Linienzüge einfügen, löschen als auch auf einzelne Segmente teilen.
Trotz dieser breiten Möglichkeiten ist es dennoch nicht gelungen alle möglichen
Anwendungsbereiche in einem System zu vereinen. Dies hängt damit zusammen,
dass ein Geo-Objekt je nach der Fragestellung anders modelliert werden kann.
Darüber hinaus kann auch die Thematik einzelner Geo-Objekte erweitert oder
eine neue betrachtet werden.
65
8 Zusammenfassung und Ausblick
Auch sind die Darstellungsformen des DataMap-Systems an das Anwendungsbeispiel geknüpft, was ein Nachteil dieses Systems ist. Die verschiedenen
Darstellungsformen könnten im Code definiert werden und über eine Tabelle
dem jeweiligen Anwendungsobjekt zugewiesen werden.
Die Teilung einer Fläche kann durch die im System definierten Manipulationsmöglichkeiten simmuliert werden. Es muss aber auch möglich werden, eine
direkte Teilung durch Verbinden zweier Grenzpunkte zu realisieren.
Der im DataMap-System implementierte Datenbankzugriff ermöglicht nur den
Zugriff auf eine bestimmte Datenbank. Will man den Zugriff auf eine andere
Datenbank ermöglichen, müsste im Code der Name der Datenbank geändert
werden. Hier besteht die Möglichkeit eine Implementation in Betracht zu ziehen,
dass das System eine Auswahl von Datenbanken bietet und fragt, auf welche
Datenbank es zugreifen soll.
Alles in allem bietet das DataMap-System eine gute Grundlage für eine künftige
Weiterentwicklung.
66
Literaturverzeichnis
[BZ 01] Bill R., Zehner L.M: Lexikon der Geoinformatik, Heidelberg, Wichmann,
2001
[Str 03] Prof.Dr. Streit U.: Einfürung in die Geoinformatik -Vorlesung und
Übung, Institut für Geoinformatik, Uni-Münster, 2003
(ifgivor.uni-muenster.de/vorlesungen/Geoinformatik)
[Bar 95] Bartelme N.: Geoinformatik, Berlin, Springer, 1995
[BF 91] Bill R., Fritsch D.: Grundlagen der Geo-Informationssyteme - Bd.1&2,
Karlsruhe, Wichmann Verlag, 19991
[Lan 02] N.de Lange: Geoinformatik in Theorie und Praxis, Berlin, Springer, 2002
[Kem 95] Kemper A., Eickler A.: Datenbanksysteme - Eine Einführung, Passau,
Oldenbourg, 1995
[Che 76] Peter Chen: The Entity-Relationship-Model, Towards A Unified View of
Data, ACM Transaction On Database Systems, Vol.1, No.1:9-36, 1976
[Dba 03] Plan des ICE-/IC-/EC-Netzes der Deutschen Bahn, Stand 2003/2004
(www.bahn.de/pv/view/mdb/content/pdf/fernverkehr/ice 2004.pdf)
(www.bahn.de/pv/view/mdb/content/pdf/fernverkehr/ec ic 2004.pdf)
[Kün 03] Lutz Künicke: Entwurf eines Werkzeuges für Visualisierung und interaktiven Manipulation von Geodaten - Diplomarbeit, Bonn, 2003
[Die 88] DIERCKE Weltatlas - Braunschweig, Westermann, 1988
[DZ 01] Frank Dickmann, Klaus Zehner: Computerkarographie und GIS, Braunschweig, Westermann, 2001
[Cod 70] Codd E.F.: A Relational Model of Data for Large Shared Data Banks,
Communication of the ACM 13, 377-387
[Hak 82] Günter Hake: Kartographie I, Berlin, New York, de Gruyter, 1982
[Hak 85] Günter Hake: Kartographie II, Berlin, New York, de Gruyter, 1985
67
Literaturverzeichnis
[GS 98] Gumm H.-P., Sommer M.: Einführung in die Informatik, 3. Auflage,
München, Wien, Oldenbourg, 1998
[RP 97] Rechenberger, P., Pomberger, G.: Informatik-Handbuch, München, Wien, Hauser, 1997
[SB 97] Saurer H., Behr J.-B.: Geographische Informationssysteme - Eine Einführung, Darmstadt, Wissenschaftlicher Buchgeselschaft, 1997
[Fue 99] Fuest R.: GIS Einführung. ArcView, Institut für Kartographie, Uni Freiburg, 1999
(www.geographie.uni-freiburg,de/ipg/personen/fuest/old/giskurs/gis.html
[ActVB] ActiveVB - Der deutschefachseite für Visual Basic
(www.activevb.de)
[MSLib] MSDN Online Library (www.msdn.microsoft.com/library)
[Spo 02] Spona Helmut: Visual Basic 6, Bonn, Buch AG, 2002
[Per 98] Perry Greg: Visual Basic 6 in 21 Tagen, Haar bei München, SAMS, 1998
[DK 00] Doberenz, Kowalski: Visual Basic 6 -Grundlagen und Profiwissen, Hanser, 2000
[ArcV] ArcInfo and ArcView resources on the Net
(www.geogr.uni-jena.de/c5sthe/esriresources.html)
[Kof 98] Kofler Michael: Visual Basic 6 -Programmiertechniken, Datenbanken,
Internet - München, Addison Wesley, 1998
[Gis 03] GIS-Tutorial Online 3.0
(www.gis-tutor.de)
68
Herunterladen