Spatio-temporale Datenbanken Stefanie Dörflinger [email protected] Universität Klagenfurt April 2006 Zusammenfassung Bei der Verarbeitung von Daten der realen Welt stoßen wir oft an unsere Grenzen. Wir haben es mit Daten zu tun, die nicht statisch sind, sondern komplex und variabel. Um dieses Problem in den Griff zu bekommen, braucht man eine Methode, wie sehr variable spatio-temporale Daten modelliert werden können. Die Schwierigkeit liegt darin, dass zum geografischen Aspekt, der schon einiger Maßen gut gehandelt werden kann, noch eine zeitliche Komponente hinzukommt. Im folgenden Artikel möchte ich veranschaulichen, wie sehr variable spatio-temporale Daten modelliert und in einer Datenbank abgelegt werden. Weiters möchte ich kurz auf die Verwendung von spatio-temporalen Datenbanken im Bereich der Verkehrsinformatik eingehen,um einen Bezug zur Praxis herzustellen. 1 Inhaltsverzeichnis 1 Einführung 1.1 Relationale Datennbanken . . . . . . . . . . . . . . . . . . . . . . 1.2 Spartiale Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Temporale Datenbanken . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 3 2 Darstellung der Daten 3 3 Repräsentation der Daten 5 4 Modellierung der Variabilität eines spatiotemporalen Wertes 4.1 Beschreibung der Variabilität . . . . . . . . 4.1.1 GEOMETRY Domain . . . . . . . . 4.1.2 Verhaltensfunktion . . . . . . . . . . 4.2 Manipulation der Variabilität . . . . . . . . 4.2.1 Temporal Sweeping . . . . . . . . . . 4.2.2 Boundary Representation . . . . . . 4.3 Untermengen von Zuständen eines variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wertes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 7 8 9 10 10 11 5 Integration des Variabilitätswertes in ein Datenbankmodell 11 5.1 Algebra Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . 12 6 Spatio-temporale Datenbanken in der Praxis 13 6.1 Fallbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7 Resumee 14 2 1 1.1 Einführung Relationale Datennbanken Dieses Modell ist am häufigsten verbreitet und quasi der Standard unter den Datenbanken. Hier werden die aktuellen Daten der realen Welt gespeichert. Man kann sich das wie bei einem Foto vorstellen, daher auch der Ausdruck Snapshot. Die Daten werden statisch gespeichert und wenn eine Änderung auftritt wird der alte Zustand in der Datenbank mittels einer Update-Funktion einfach überschrieben. Das bedeutet, es ist immer nur der aktuelle Zustand aus der Datenbank ersichtlich. Auf vergangene Werte kann nicht mehr zugegriffen werden. 1.2 Spartiale Datenbanken Spatial bedeutet räumlich bzw. wird von spazio“ abgeleitet was übersetzt ” Platz, Raum bedeutet. Spatiale Datenbanken betrachten somit die geographische Komponente und speichern Daten wie Geländeinformationen bzw. Koordinaten. Aber auch Daten über Teile von lebenden Organismen wie zB die Anatomie des menschlichen Körpers. Weiters können in einer spatialen Datenbank auch Engineering-Design-Daten gespeichert werden, welche komplexe Schaltungen oder das Design eines Fahrzeugs beschreiben. GIS (Geographic Information System), ein im Militärbereich oft verwendetes System, stützt sich auf eine spatiale Datenbank. 1.3 Temporale Datenbanken Bei temporalen Datenbanken wird die zeitliche Komponente berücksichtigt. In diesem Fall werden Daten nicht statisch abgelegt, sondern dynamisch. Da es von Belang ist, wie sich die Daten im Laufe der Zeit ändern. Somit werden alte Zustände nicht einfach überschrieben, sondern in einem gewissen Zeitintervall werden Zustände nacheinander abgespeichert, um zum Beispiel etwas aus der Vergangenheit bis in die Gegenwart zu beobachten. Durch das Speichern der vielen Zustände kann es hier zu Problemen kommen, da die Datenmengen sehr groß werden können. Diese Tatsache in den Griff zu bekommen, ist nicht so einfach, daher gibt es auf diesem Gebiet noch nicht so viele Anwendungen und vor allem keine Standards. 2 Darstellung der Daten Spatio-temporale Datenbanken sind eine Mischform zwischen spatialen und temporalen Datenbanken. Wie wir später sehen werden, braucht man diese Kombination sehr oft. Ein typisches Beispiel für spatio-temporale Daten ist das Wetter, wo es sich befindet und wohin zB ein Gewitter zieht. Solche sich ständig 3 ändernden Daten sind sehr schwer zu modellieren. Hierbei kann keine straightforward Modellierung angewandt werden, wie man sie von relationalen Datenbanken kennt, sondern es wird auf die große Variabilität und Komplexität Rücksicht genommen. Diese variablen Daten sind charakterisiert durch einerseits eine komplexe Entwicklung und andererseits durch eine große Anzahl an Zuständen. Die Entwicklung der Daten ist auf ihren Zusammenhang mit dem Zeitaspekt zurückzuführen. Das heißt, man beobachtet die Daten in einem gewissen Zeitraum. Dieser Verlauf bzw. Entwicklung kann auf zwei verschiedene Arten erfolgen: • konstanter Verlauf • abrupte Veränderung Bei einem konstanten Verlauf treten keine unvorhersehbaren Ereignisse ein, die die Entwicklung stören. Im anderen Fall hingegen treten abrupte Veränderungen auf, die den steten Verlauf beeinflussen. Ein Beispiel für eine dieser Veränderungen wäre ein Fahrzeug im Straßenverkehr, das immer gerade aus fährt und plötzlich ohne blinken links abbiegt und dadurch einen Unfall verursacht. Ein Datenverlauf kann zu einer dieser beiden Gruppen gehören, oder beide kombinieren. Eine mobile Entität wie etwa eine Wolke bewegt sich fortwährend gleich. Im Gegensatz dazu bewegt sich ein Fahrzeug weniger berechenbar. Solch eine hohe Variabilität erfordert eine genaue Datenbeschreibung und daher eine große Anzahl an Zuständen, die gespeichert werden müssen. Mit dieser Überlegung treten jedoch eine Reihe von Problemen auf. Durch das Speichern der vielen Zuständen wird die Datenmenge unüberschaubar groß. Aus diesem Grund scheidet auch eine herkömmliche, relationale Datenbank aus. Weiters muss diese gewaltige Anzahl von Zuständen auch manipuliert werden. Dieses Unterfangen kann sehr viel Berechnungszeit in Anspruch nehmen, was wiederum sehr teuer ist. Ein drittes Problem sind nichtdeterministische Queries. Durch das Phänomen, dass ständig neue Zustände gespeichert werden, kann es vorkommen, dass eine Query nie zu Ende ausgeführt wird, da sie immer wieder neue Werte findet. Ein Lösungsvorschlag wäre, dass die Anzahl der zu speichernden Zustände einfach verringert wird, um mit der Datenmenge und der Berechnungszeiten umgehen zu können. Dadurch ergibt sich aber ein weiteres, viel schlimmeres Problem. Werden weniger Zustände verwaltet, werden Ergebnisse verfälscht und es können nichtdeterministische Queries auftreten. Das ist ein ernstzunehmendes Problem, da Abfragen die wichtigste Funktionalität einer Datenbank sind. Eine spatio-temporale Datenbank lebt“ also von der Feingranularität der ” Datenmodellierung. Um dies zu veranschaulichen möchte ich ein Beispiel bringen. Abbildung 1 zeigt die Bewegung von zwei 2D-Objekten. Das eine mobile Objekt ist eine Schafsherde und die andere mobile Entität ist eine Gewitterfront deren Weg sich kreuzen kann. Nun werden verschiedene Darstellungen (Versions) zu verschiedenen Zeitpunkten beschrieben (F1, F2, I1 und I2). Die Bewegung der Schafe wird zwischen F1 und F2 erfolgen und die Bewegung des Gewitters zwischen I1 und I2. Die Frage, die sich stellt, lautet: Werden die Schafe nass werden? bzw. Wann wird es an einem bestimmten Ort regnen?. Durch 4 Abbildung 1: Beispiel von 2DObjekten in Bewegung [1] dieses Beispiel erkennt man die Komplexität solcher Daten. Mit einem üblichen Modell, welches die Kontinuität von einer spatio-temporalen Datenentwicklung nicht berücksichtigt, würde man keine deterministischen Antworten erhalten. Wenn aber andererseits nur die Darstellungen F1, F2, I1 und I2 betrachtet werden und die vielen Zustände dazwischen außer Acht gelassen werden, wird man die Information über die Überschneidung der Bewegungen der zwei Entitäten nicht kennen. Hierbei ist es natürlich möglich den 2D Weg der Bewegung zu speichern, aber die Snapshot-Information ist verloren. Auf unsere Frage erhalten wir deshalb eine falsche Antwort, weil nicht ausreichend Zustände gespeichert werden und somit ein Mangel an Daten entsteht. Üblicherweise werden in Datenmodellen nur diskrete Veränderungen erfasst. Durch Update-Queries werden neue Versions eines Objekts erzeugt. Weiters ist die Datenerfassung nicht immer möglich. Ein Beispiel dafür ist sind Satelliten, die um die Erde kreisen und Informationen sammeln. Jedoch werden die Daten nur dann gespeichert, wenn der Satellit über einen Observierungspunkt fliegt. Diese Art der Datenerfassung bedeutet nichts anderes als sammeln von Darstellungen, was bedeutet das dies wiederum auf eine diskrete Art und Weise geschieht. Aus dieser Überlegung heraus wurde in [1] gezeigt, dass es möglich ist, für einige Daten Zusatzinformationen zu erfassen, welche das Verhalten eines Phänomens zwischen zwei Versions beschreibt. Ein entsprechendes Datenmodell kann aus solcher Zusatzinformation große Vorteile ziehen. Um die zusätzliche Information abspeichern zu können, wurden einige Interpolationsmethoden studiert. Schließlich wurde eine ausgewählt, die durch eine Funktion definiert ist und über einen abstrakten Datentyp referenziert wird. 3 Repräsentation der Daten Die erste Repräsentation ist eine beschreibende, welche durch die einzelnen Darstellungen und durch die zusätzliche Information in Form einer Verhaltensfunktion charakterisiert ist. Diese Funktion gibt Aufschluss über die Semantik einer 5 Datenentwicklung und beschreibt, wie sich ein Wert im Laufe der Zeit verhält. Durch diese Organisation der Daten, wird das Datenvolumen ebenfalls optimiert. Um die Auswertung von spatio-temporalen Queries zu erleichtern, werden wohldefinierte geometrische Algorithmen verwendet. Im Zuge dessen wird die erste, deskriptive Repräsentation in eine geometrische Repräsentation umgewandelt. Dies erleichtert auch die Lesbarkeit. 4 4.1 Modellierung der Variabilität eines spatiotemporalen Wertes Beschreibung der Variabilität Ein sehr variabler Wert, welcher ein Phänomen der realen Welt modelliert, wird durch eine komplexe und fortwährende Entwicklung ausgezeichnet. Die Kontinuität des Verlaufs wird durch die Existenz von Zuständen des Werts zu jedem bestimmten Zeitpunkt illustriert. Jeder Zustand kann ein gewisses Quantum an Zeit dauern. Die Entwicklung eines Werts folgt aus einer Serie von Zuständen. Die Komplexität der Datenentwicklung korrespondiert zu raschen Änderungen des Verhaltens. Um die Variabilität eines Werts zu modellieren, wird beschrieben, wie sich der Wert im Laufe der Zeit verhält. Dieses Verfahren erlaubt es, auch eine komplexe Datenentwicklung zu speichern. Somit wird eine Sequenz von Werten gespeichert, welche folgender Maßen aussieht: { (v,t,c) }. Hierbei ist v der Wert, t die Zeit und c die Verhaltensfunktion, also die semantische Information. Um diese Modellierung besser zu verstehen, gebe ich hier ein Beispiel, welches die Ausbreitung eines Feuers in einer bestimmten Zeit beschreibt. Es wird angenommen, dass sich ein Feuer linear ausbreitet. Die Darstellung nach [1] sieht wie in Abbildung 2 aus. Hierbei ist die geometrische Form der Wert v1, Abbildung 2: Temporale Sequenz - Ausbreitung eines Feuers [1] das zweite Attribut ist die Zeit (Datum und Uhrzeit) und die dritte Ausprägung ist die oben angesprochene Verhaltensfunktion, von der angenommen wird, dass 6 sie linear ist. 4.1.1 GEOMETRY Domain Diese Domäne wurde eingeführt, um die spatialen Daten zu einem gewissen Zeitpunkt zu repräsentieren. Zur Realisierung wurde dafür ein abstrakter Datentyp (ADT) eingeführt. Dieser Datentyp definiert die Vereinigung von nichtleeren Mengen von 2D geometrischen Elementen. Solche Elemente können sein: • Punktuelle Elemente: diese sind als isolierter Punkt definiert und werden durch ein X,Y- Koordinatenpaar in einer zweidimensionalen Karte repräsentiert. Abbildung 3: Punktuelles Element • Lineare Elemente: sind definiert durch eine Menge von verbundenen Segmenten. Ein solches Element kann zB eine Linie sein, die unterbrochen ist. Abbildung 4: Lineares Element • Flächenelemente: sind definiert als abgegrenzter Teil, also mit geschlossenen Grenzen. 7 Abbildung 5: Flächenelement 4.1.2 Verhaltensfunktion Die Verhaltensfunktion beschreibt, wie sich ein Wert im Laufe der Zeit entwickelt. Sie ist eine Zusatzinformation, die zum einem Wert assoziiert. Eine Verhaltenfunktion drückt die Variabilität eines Wertes zwischen zwei aufeinander folgenden Versions aus. Genauer betrachtet wird die Variabilität so dargestellt, dass Zwischenzustände produziert werden. Dieses Verfahren ist deshalb so wichtig, da sich das Verhalten eines Wertes plötzlich ändern kann und mit der Verhaltensfunktion, kann somit die komplexe Datenentwicklung festgehalten werden. Es gibt aber auch hier verschiedene Arten von Entwicklungen: • Punktuelle Funktion: gibt einen Wert, falls vorhanden, für einen bestimmten Zeitpunkt zurück (event recording). • Step-Funktion: gibt die letzte Darstellung verglichen mit einem gegebenen Datum zurück. Jede Version repräsentiert einen stabilen Zustand, der bis zur nächsten Version gültig ist (state change recording). • Lineare Funktion: verwendet die lineare Interpolation zwischen zwei aufeinander folgende Darstellungen. • Interpolationsfunktion: verwendet die Interpolationsmethode, um die Datenentwicklung zu erfassen. Für das bessere Verständnis dieser Funktionen, zeigt Abbildung 6 ein Beispiel. Die Variabilität in dieser Abbildung könnte durch folgende Sequenz ausgedrückt werden: { (10,t1,linear), (14,t2,linear), (12,t3,linear), (6,t4,linear), ... (10,t7,step), (5,t8,step), ... } Andere Modelle verwenden einen so genannten Time Series ADT, welcher eine Sequenz von (v,t) Abbildungen ist. Im Gegensatz dazu wird im vorgestellten Modell die Verhaltensfunktion zu jeder Version hinzugefügt. Dies erlaubt zum einen zusätzliche Information zu speichern und zum anderen die komplexe Datenentwicklung zu beschreiben. Daraus folgt eine exaktere Beschreibung 8 Abbildung 6: Beispiel einer Datenentwicklung [1] der Variabilität des Wertes und zur Auflösung des Mangels an Daten, welcher wiederum zu nichtdeterministischen Antwortzeiten führte. Somit wurden zwei große Probleme in den Griff bekommen. 4.2 Manipulation der Variabilität Sehr variable Informationen bergen das Problem in sich, dass sie mit Standartoperationen eines gewöhnlichen DBMS nicht manipuliert werden können. Die oben aufgezeigte deskriptive, temporale Repräsentation assoziiert zu jedem Wert einer Darstellung eine Methode, die die semantischen Charakteristika beinhaltet. Diese semantische Information ist dynamischer Natur, wobei hingegen der Wert selbst statisch ist. Daraus folgt, dass statische und dynamische Werte auf dieselbe Art und Weise gespeichert werden. Normalerweise definiert eine Datenbank Operatoren, die die gespeicherten Daten manipulieren. Diese Daten sind jedoch nur statisch und folgend sieht eine Manipulation so aus: operator (data). Ein herkömmliches Beispiel dafür könnte sein delete table Mitarbeiter. Hierbei ist der Operator das standardmäßige delete, select, update usw. und die Daten sind die verschiedenen Tabellen. Da dieses Modell eine neue Struktur der Speicherung der Daten aufweist, müssen sich dementsprechend auch die Operatoren anpassen. Wir haben es mit dynamischen und statischen Informationen zu tun und deshalb gibt es auch komplexere Operatoren: operator (data + behavioral functions). Um dieses Problem zu lösen, wird einen neue Repräsentation eingeführt, die sich von der deskriptiven Darstellung ableitet. Diese neue Repräsentation ist geometrisch. Wenn ein zweidimensionaler geometrischer Wert im Bezug auf Zeit dargestellt wird, folgt daraus eine dreidimensionale Repräsentation. Zur Darstellung der Werte wird die so genannte Boundary Representation (BR) verwendet. Mit der Verwendung von wohl definierten geometrischen Algorithmen wird die Evaluierung von temporalen Abfragen auf sehr variable Daten erleichtert. Dazu werden die temporalen Operatoren auf geometrische Berechnungen reduziert. Dieser Vorgang wird Temporal Sweeping genannt. 9 4.2.1 Temporal Sweeping Die Transformation einer zeitlichen Sequenz in eine BR-Darstellung benötigt den Temporal Sweeping Operator. Dieser Operator erzeugt die gesamte Entwicklung in einer fortwährenden Art und Weise. Es wird die deskriptive Repräsentation eines Wertes in einem Koordinatensystem verbunden bzw. in Relation gesetzt, wobei die Zeit die dritte Achse ist, anstelle einer Vereinigung von aufeinander folgenden Zuständen. Dadurch entsteht die oben angesprochene dreidimensionale Struktur, da die Hypothese des Time Sweeping festlegt, dass die Zeit als geometrische Dimension angesehen wird. Durch diese Anschauung werden spatiale Probleme und temporale Probleme gleichgestellt und beide zu geometrischen Problemen reduziert. So eine Repräsentation besteht aus einer Fläche, die sich entlang einer Fluchtlinie verändert. Diese Flächen sind die gespeicherten Versions (dh die Werte), die in der Datenbank gespeichert sind und die Verbindung dazwischen (Fluchtlinie) sind die dazugehörigen Verhaltensfunktionen. In Abbildung 7 wird eine dreidimensionale Darstellung von Abbildung 2 gezeigt. Die Flächen stellen nach wie vor die Ausbreitung des Feuers im Bezug auf Zeit dar und die Verbindungen dazwischen ist die Verhaltensfunktion, die in diesem Fall linear ist. Abbildung 7: Temporal Sweeping einer Fläche [1] 4.2.2 Boundary Representation Das Resultat des Temporal Sweeping ist ein 3D-Objekt, welches mit der Boundary Representation dargestellt wird. Es wurde diese Darstellung gewählt, damit man auch Objekte mit variierenden Formen oder Kanten anzeigen kann. Von ei10 nem Körper werden alle Flächen, die durch die durch Linien abgegrenzt werden, alle Kanten usw. festgehalten. 4.3 Untermengen von Zuständen eines variablen Wertes Einige Manipulationen eines Wertes, welcher sich im Verlauf der Zeit ändert, erfordern die Reduktion von Zuständen. Die zwei angesprochenen Repräsentationen stellen eine fortwährende Reihe an hintereinander folgenden Zuständen dar. Um die Reduktion zu vereinfachen, wird ein Variabilitätswert (VV) eingeführt. Dieser Wert zeigt nur einen Teil der Kurve, die die gesamte Datenentwicklung beschreibt. Dies geschieht mit Hilfe eines Support-Wertes was nichts anderes ist als eine deskriptive Repräsentation oder eine BR-Darstellung. Diese Idee möchte ich mit folgender Abbildung vereinfachen. Die Kurve wird in Sequenzen von Variabilitätswerten aufgespalten, genau dann wenn eine Version existiert. Jeder VV ist definiert durch eine assoziierende Zeitspanne, welche die Lebenszeit darstellt, und einem Support-Wert. Abbildung 8: Aufteilung einer Datenentwicklung in eine Reihe von Variabilitätswerten [1] 5 Integration des Variabilitätswertes in ein Datenbankmodell Um das oben besprochene Modell für sehr variable Daten verwenden zu können, wird es in ein komplexes Objekt-Daten Modell integriert. In diesem Prozess werden temporale Objekte modelliert, welches durch eine Sequenz von Tupeln definiert wird. Jedes Tupel repräsentiert eine fortlaufende Serie von Zuständen, welche die Entwicklung von zeitlichen Entitäten während eines Intervalls ausdrückt. Jedes Attribut definiert einen Variabilitätswert einer Entität im Laufe der Zeit. Weiters werden temporale Operatoren definiert, die auf dieser Repräsentation operieren können. Diese Operatoren sind charakterisiert durch die Manipulation jedes Zustands innerhalb eines Tupels. Dieses Phänomen ist der große Unterschied zu anderen temporalen Algebra. 11 Das Ziel des Repräsentationsmodells wird aufgrund folgender Motivationen definiert: • Jedes Objekt enthält eine fortwährende Serie von Zuständen. Dies wird durch die Einführung des Variabilitätswertes gewährleistet. • In der Repräsentation sollen Zustände von Entitäten anstelle von Zuständen von Attributen modelliert werden. • Temporale Objekte vergrößern sich stark im Zeitverlauf, da immer neue Zustände, die die Entität beschreiben, hinzugefügt werden. Eine Methode dies in den Griff zu bekommen ist Partitionierung. Ein temporales Objekt soll so aufgespalten werden, dass ein Wert während einer Zeitperiode konstant bleibt. Eine weitere Möglichkeit ist Clustering und Indexierung. Zu diesem Zweck wird ein temporales Objekt in eine Sequenz von Tupeln aufgeteilt. Jedes Tupel repräsentiert die Variabilität einer temporalen Einheit in einer bestimmten Zeitperiode. Dazu benötigt man zwei Elemente: Einen Ersatz und die Unabhängigkeit des Wertes. Der Ersatz ist eine Notation, die eingeführt wird, um eine Menge von Tupel an ein temporales Objekt zu binden. Das so genannte Surrogat ist ein Objekt-Identifizierer. Man kann sich das so vorstellen wie bei herkömmlichen Datenbanken, wo ein eindeutiger Schlüssel (Primary key) definiert wird, um das Objekt referenzieren zfloat u können. 5.1 Algebra Operatoren Die Datenmanipulation ist in spatio-temporalen Datenbanken viel komplexer als in relationalen Datenbanken. Die Standardoperatoren wie select, delete und update funktionieren nicht mehr in herkömmlicher Weise, sondern müssen neu definiert werden. Es werden folgende Operatoren verwendet: • Selection Operator: hat dieselbe Funktionalität wie man das von dem select gewöhnt ist. • Kartesisches Produkt: wird in der Standardform verwendet. • Projection Operator: eliminiert Attributspalten. • Vereinigung, Durchschnitt und Differenz: wurden angepasst, aber funktionieren in üblicher Art und Weise. • Temporal Projection: manipuliert Zustände in einem gewissen Zeitintervall. Da die Abfragesprache bzw. Datenmanipulationssprache sehr komplex für dieses Modell ist, möchte ich nicht näher darauf eingehen. Aber um zu zeigen, dass diese Art der Datenbanken eine große Rolle in der Praxis spielen, möchte ich auf einige Beispiele im Bereich der Verkehrsinformatik eingehen. 12 6 Spatio-temporale Datenbanken in der Praxis Wenn wir diese Kombination aus geographischer und zeitlicher Information bewusst suchen, fällt uns auf, dass es sehr viele Daten mit diesem Charakteristikum gibt. Um jetzt einen Fachbereich herauszunehmen, widme ich mich verstärkt der Verkehrstelematik. Anbieter von Notrufservices, Navigationssystemen und Verkehrsinformationsservices müssen große und gut strukturierte spatiale und spatio-temporale Datenbanken zur Verfügung haben. Besonders für die detaillierte Repräsentation des Straßennetzes. Aber spatio-temporale Datenbanken reichen für die komplexe Datenverarbeitung in der Verkehrstelematik oft nicht aus. Hierbei müssen auch m̈oving-objectD̈atenbanken eingesetzt werden, die wiederum genauer auf die Bewegung von Entitäten eingehen. Sehr viele Unternehmen spezialisieren sich auf die Sammlung, Verarbeitung und Verbreitung solcher schwierigen Daten, die den Verkehr betreffen [2]. Typische Services, die angeboten werden sind: • Verkehrsinformationsservices via Handy oder spezielle Auto-Terminals • on-board oder off-board Navigationssysteme • Notrufstationen • Routenplaner • Wettervorhersagen Wobei all diese Services nicht ohne mobile Kommunikationstechnologie, wie GSM (Handy), und Satellitenunterstützung (GPS) möglich wären. Zum besseren Verständnis möchte ich ein kurzes Szenario erklären, warum spatiotemporale Datenbanken zum Einsatz kommen. 6.1 Fallbeispiel Man stelle sich vor: Herr Mayrhofer ist ein tüchtiger Geschäftsmann bei einem großen Konzern in Deutschland, der viele Kontakte zum Ausland hegt. Seine Firma hat einen neuen Großkunden aus den USA (New York) im Visir, um den Markt in den Vereinigten Staaten zu vergrößern. Herr Mayrhofer wurde damit beauftragt, das Geschäft mit dem Kunden in den USA zum Abschluss zu bringen. Dafür steigt Herr M. am Berliner Flughafen in ein Flugzeug der American Airways und geht während des Take-offs noch einmal alle Punkte des Vertrags durch. Da es sich um einen sehr wichtigen Kunden handelt, ist Herr Mayrhofer natürlich etwas nervös und hat seine Reise sorgfältigst geplant. Einige Stunden vergehen und das Flugzeug ist bereits über dem Atlantik. Zwei Stunden vor Ankunft in New York gibt der Pilot eine Meldung durch, dass eine Schlechtwetterfront vor der Ostküste der USA herrscht. Dieses Fakt beunruhigt Herrn M. sehr, da er pünktlich zu seinem Termin erscheinen möchte. Die Frage 13 lautet nun: Wird der Flug durch das schlechte Wetter beeinflusst, oder wird die Maschine zur vorgesehener Zeit landen? Im Grunde sind das Flugzeug und die Schlechtwetterfront zwei mobile Entitäten, deren Bewegung sich überschneiden kann. Die spatiale Komponente in diesem Beispiel sind die jeweiligen Koordinaten, oder anders gesagt, der Ort an dem sich Flugzeug bzw. Gewitter gerade befindet. Der Zeitliche Aspekt ist natürlich in der Bewegung. Um die oben gestellte Frage zu beantworten, müssen diese Daten in einer spatio-temporalen Datenbank abgelegt sein, worauf danach eine Query mit einem gewissen Zeitpunkt gestartet werden kann. Dieses Szenario finden Sie in der realen Welt tausendfach pro Tag und es gibt Programme bei den Fluggesellschaften, die genau solche Fragen beantworten, um die Sicherheit der Passagiere zu gewährleisten. 7 Resumee In diesem Artikel wurden die Probleme bei der Verwaltung von sehr variablen Daten unter einem spatialen Aspekt aufgezeigt. In der Wissenschaft ist die Variabilität ein sehr ernstzunehmendes Kriterium, da sich solche Informationen auch im Bezug eines zeitlichen Ablaufs stark verändern. Die starke Variabilität impliziert eine große Datenmenge und eine Vielzahl an Operationen, die mit gewöhnlichen DBMS nicht verwaltet werden können. Weiters können Abfragen auf sehr variable Daten nichtdeterministische Antwortzeiten liefern. Hier wurde eine Art und Weise der Repräsentation bzw. Modellierung der Daten vorgestellt, um sie in weiterer Folge in ein entsprechendes Datenbankmodell integrieren zu können. Um diese Probleme lösen zu können, wurden zwei Darstellungen entwickelt. Die erste Repräsentation beschreibt die Datenentwicklung durch eine zeitliche Sequenz. Diese Darstellung ist sehr kompakt und zusätzlich wird eine Verhaltensfunktion mitgespeichert, die die Semantik der Datenvariation ausführt. Die zweite Darstellung dient zur Manipulation und wird von der ersten abgeleitet, indem daraus eine geometrische Repräsentation basierend auf der Boundary Representation wird. Daraufhin werden neue Operatoren definiert, um Abfragen durchführen zu können. Obwohl geometrische Operationen normalerweise sehr teure Berechnungen sind, wurde dieser Ansatz dahingehend optimiert, dass auch vorhin unlösbare Probleme handhabbar sind, da die Datenmenge und die Ausführungszeit in den Griff bekommen wurden. 14 Literatur [1] T-S. Yeh, B. de Cambray, Modeling Highly Variable Spatio-Temporal Da” ta“, 1994 [2] T. Brinkhoff, Requirements to Traffic Telematic to Spatial Databases“, ” SSD‘99,LNCS 1651, 1999 [3] C. Parent, S. Spaccapietra, E. Zimanyi, Spatio-Temporal Conceptual Mo” dels: Data Structures + Space + Time“, ACM GIS‘99, 1999 [4] Y. Tao, D. Papadias, Time-Parameterized Queries in Spatio-Temporal ” Databases“, ACM SIGMOD‘02, 2002 [5] G. Faria, C.B. Medeiros, M.A. Nascimento, An Extensible Framework for ” Spatio-Temporal Database Applications“ [6] T. Abraham, J.F. Roddick, Survey of Spatio-Temporal Databases“, 1998 ” 15