Unterstützung räumlicher Anfragen mit konventionellen Indexstrukturen Jamshid Azizi...

35
Unterstützung räumlicher Anfragen mit konventionellen Indexstrukturen Jamshid Azizi [email protected] 07.06.2001 Vortrag zum B-Seminar

Transcript of Unterstützung räumlicher Anfragen mit konventionellen Indexstrukturen Jamshid Azizi...

Unterstützung räumlicher Anfragen mit konventionellen Indexstrukturen

Jamshid [email protected]

07.06.2001

Vortrag zum B-Seminar

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 207.06.2001

Gliederung

Motivation

Anwendung von B-/B*-Bäumen

Vorstellung von Oracle8i Spatial

Mehrdimensionale Indexstrukturen

Multidimensionale Indexmethoden:

Z-Ordering

R-Baum

R*-Baum

Zusammenfassung

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 307.06.2001

Einleitung: Anwendung von B-/B*-Bäumen (1)

Definitionen und Fähigkeiten:

Index und Cluster sind Instrumente, mit denen sich Abfragen beschleunigen lassen.

Ein B-Baum speichert die Datensätze sortiert nach einem Schlüssel.

Eine Erweiterung des B-Baumes ist der B*-Baum, der die Daten ausschließlich in den Blättern ablegt.

Ein B-Baum beantwortet Punkt – und Bereichsanfragen sehr effizient.

B- und B*-Baum: eindimensionale Strukturen:

Dies reduziert die Höhe des Baumes.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 407.06.2001

Einleitung: Anwendung von B-/B*-Bäumen (2)

71 82

54 61 75 91 97

9893 94 8472 74 75 7965 68 5741 52

Wurzel Knoten Blätter

S1 SnV0 V1 Vn

D0 D1 Ds Dt Du Dv Dw

Indexseiten:

Datenseiten:

B*-Bäume ermöglichen außerdem einen effizienteren sequentiellen Scan auf den Blattknoten.

Aufbau eines B-Baumes:

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 507.06.2001

Schematischer Aufbau eines B*-Baumes

R1V0 V1 R2 Rn Vn frei

PS1

D1

Sj

Dj NfreiSequentielle

Suche

Index-Suche

V0 verweist auf den teilbaum mit Schlüsseln kleiner oder gleich R1

Vi (i = 1, ..., n-1)verweist auf den teilbaum, dessen Schlüssel zwischen Ri und Ri+1 liegen.

Vn verweis auf den teilmaum mit Schlüsseln größer als Rn.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 607.06.2001

Beispiel

Kurz

104101102107105106110100

Firma

Deutsche Untern..Computer Courier...Morton Ag...Therm AG...Busy Software AG...Girgwerke AG...Bacher Elektro...Versicherung...

105110 -

102105 -

100101 102

104105 -

106107 -

110- -

107110 -

Nehmen wir an, die WHERE-Klauser enthält eine Gleichung, z. B. KURZ =106

Oracle durchsucht den Baum von der Wurzel beginnend.

Zu dem gegebenen Wert von KURZ wird jeweils der Knoten gesucht, der den kleinsten Indexwert enthält, der größer oder gleich dem Suchwert ist.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 707.06.2001

Einleitung: Objekte und Operationen in einem Geo-Datenbanksystem

Für geographische Datenbanksysteme sind B-Bäume und andere eindimensionale Indexstrukturen nicht geeignet.

Neue Strukturen müssen flächige Geo-Objekte bezüglich ihrer Lage und Ausdehnung in der Ebene indizieren.

Es wird eine konzeptionelle Architektur zur Objektspeicherung und Anfragebearbeitung in Geo-Datenbanksystemen erarbeitet.

Für die Entwicklung einer solchen Architektur sind die Arten der gewünschten Operationen von entscheidender Bedeutung.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 807.06.2001

Oracle8i Spatial

Oracle 8i Spatial ermöglicht das Mischen von GIS- (Geographisches Informationssystem) und MIS- (Management Informationssystem) Datenspeichern und die Implementierung einer einheitlichen Datenmanagementstruktur für alle Daten des Unternehmens.

Oracle8i Spatial unterstützt 3 einfache geometrische Typen

Räumliche Indizierung:

Ein Index muss in der Lage sein, effizient Fragen abzuarbeiten und Objekte in einem Datenraum zu finden, die einen Anfrageraum überlappen.

Punkt

Linie N-Punkt Polygonund Geometrien aus einer Sammlung dieser 3 Typen

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 907.06.2001

Räumliche Zugriffsstrukturen (1)

Traditionelle Zugriffsstrukturen sind für die Verwaltung von geometrischen Daten nicht uneingeschränkt geeignet:

Räumliche Zugriffsstrukturen (RZS) sollen geometrische Selektionen und Kombinationen unterstützen.

Probleme bei komplexen realen geometrischen Objekten:

Approximation der Geo-Objekte zur effizienteren Bearbeitung (Erstellung eines einfachen geometrischen Schlüssels)

Verbesserung des Verhältnisses zwischen erforderlichem Speicherplatz und Zugriffsgeschwindigkeit

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1007.06.2001

Räumliche Zugriffsstrukturen (2)

... (MUR,, ...) (MUR,; ...) ...

(EB)

Zugriffsstruktur

Man bedient sich räumlicher Anfragemethoden, die den Datenraum in Regionen aufteilen, welche einzelnen Seiten im Sekundärspeicher entsprechen.

Lösung:

Eine Möglichkeit ist die Umschließung von Objekte mit Rechtecken.

Die vereinfachten Geo-Objekte (Approximationen) werden gemeinsam abgespeichert und mit einem minimal umgebenden achsenparallelen Rechteck (MUR) umschrieben.

Verweis auf die exakte Beschreibung (EB) des Geo-Objektes

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1107.06.2001

Räumliche Zugriffsstrukturen (3)

Die Komplexität wird auf Parameter von Punkten reduziert, die das Rechteck begrenzen (kompakte Repräsentation).

Vorteil:

Nachteile:

Notwendigkeit der Suche nach einer möglichst kompakten Darstellung, um eine gute Approximation zu generieren.

Zielstellung:

Möglichkeit der Existenz einer nicht zum Objekt gehörenden Region innerhalb des Rechteckes

Auswirkung auf Genauigkeit und Anzahl der vom Indexierungsschritt generierten Kandidaten

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1207.06.2001

Verschiedene Möglichkeiten der Approximation

Erhöhung der Genauigkeit der Approximationen mit steigender Anzahl der Ecken bei gleichzeitigem Anstieg der Anzahl zu speichernder Parameter Folgen: Komplizierung der Indexierung, Verminderung der Effizienz des Filterungsschrittes der Objekte

konvexe Hülle minimales konvexes Fünfeck minimales konvexes Viereck rotiertes umschließendes Rechteck

Beispiele für Approximationsmöglichkeiten:

optimaler Mittelweg in den meisten Fällen: das konvexe Fünfeck

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1307.06.2001

Anforderungen (1)

Auswahl der wichtigsten Grundanfragen, die vom Datenbanksystem unterstützt werden und die allen gestellten Anforderungen entsprechen:

Punktanfrage:

Gegeben: Punkt P

Gesucht: In welchem Land

befindet sich dieser Punkt?Fensteranfrage:

Gegeben: Fenster WGesucht: Finde alle MUR’s in der Datenbank, wo W Obj.MUR gilt.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1407.06.2001

Anforderungen (2)

Gegeben: EPL*

Gesucht: Finde alle MUR’s in der Datenbank, wo EPl* MUR

Regionsuche:

Beispiel:

Was für Länder/Landschaftsgebiete liegen

komplett/teilweise in diesem Bereich ?

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1507.06.2001

multidimensionalen Indexmethoden

Das Verwalten von Rechtecken in Datenstrukturen ist schwieriger als bei Punkten, da erstere normalerweise nicht in eine einzelne Partition hineinfallen, sondern die Partitionsgrenzen diese Rechtecke schneiden können.

A5 A4

A3

A2

A1

A6

Y

X

A5

A1

A4

A3

A2

A6

3 Gruppen (Seiten)

R-Baum

R*-Baum

X-Baum

Drei vorgeschlagenen Lösungen für diese Problematik:

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1607.06.2001

Struktur des R-Baumes (1)

Eine mehrdimensionale Datenbank besteht aus einer Sammlung von Tupeln, die räumliche Objekte repräsentieren.

Die Blätter in einem R-Baum enthalten Index-Einträge der Form:

die Adresse des Objektes das kleinste n-dimensionale Rechteck

(MUR, Zeiger auf Datenobjekt)

I = (I0, I1, ..., In-1)

die Anzahl der Dimensionen

Durch Ii wird ein geschlossenes Intervall [a, b] bezeichnet. Es beschreibt

die Ausdehnung des Objektes entlang der Dimension i.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1707.06.2001

Struktur des R-Baumes (2)

Knoten in einem R-Baum enthalten Index-Einträge der Form:

die Adresse des Nachfolgerknotens (Sohnes) dieses Eintrages

(MUR, Zeiger auf Nachfolger)

Der Umriss von Deutschland als minimal umschreibende Rechteck (MUR)

Beispiel:

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1807.06.2001

Struktur des R-Baumes (3)

Danach wird zu jedem Bundesland sein MUR erstellt .

Zum Schluss werden diese MURs zu Gruppen zusammengefasst

Deutsche Bundesländer und ihre Umwandlung in MURs für einen R-Baum mit drei inneren Knoten (West, Ost und Süd).

Deutschland

West

Ost

Süd

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 1907.06.2001

Struktur des R-Baumes (4)

Resultierender R-Baum:

Jedes Kästchen entspricht einem Eintrag eines Knotens.

Jeder dieser Einträge enthält dabei einen Zeiger auf den Nachfolger-knoten (durch einen Pfeil dargestellt)

Deutschland

West OstSüd

SH. NS. NW. He. Th. RP. Sa. BW. Ba. MV. Br. Be. SA. Sach.

-1 Nmlog

Anzahl der Datenelemente

minimale Anzahl der Einträge pro Knoten

Die größtmögliche Höhe eines R-Baumes:

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2007.06.2001

Such-Algorithmus des R-Baumes

Deutschland

West OstSüd

SH. NS. NW. He. BW. Ba. MV. Br. Be. SA. Sach.Th. RP. Sa.He.

West Süd

BW.

Deutschland

Deutschland

West

Ost

Süd

Suchpunkt: (Mainz )

Der Suchalgorithmus ist ein rekursiver Algorithmus. Das Ergebnis der Suche sind alle Datenobjekte, die sich mit der Suchregion schneiden.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2107.06.2001

Einfüge-Algorithmus des R-Baumes

Suche nach einem geeigneten Blatt

Der neue Indexeintrag wird (inklusive des Zeigers auf das Datenobjekt) in das so gefundene Blatt eingefügt.

Das bestehende Blatt muss in zwei neue Blätter aufgespalten werden (bei Overflow).

Während des Einfügens werden die umschreibenden Rechtecke der Knoten angepasst.

Für einen neuen Indexeintrag in den Baum:

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2207.06.2001

Beispiel

AB

Cdf g

eh n

jm

l

k

i

o

o h o i j k

A B C

d e f g h i j k l m n

d e f g l m nh o i j k

CB2

P

A B1

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2307.06.2001

Entfernen

Suche im Baum nach einem Blatt, das den Eintrag enthält.

Es werden alle Knoten (bzw. auch das Blatt) entfernt, die weniger als m Einträge besitzen.

Alle so entfernten Knoten werden einer Menge R zugewiesen.

Danach werden alle Knoten aus der Menge R wieder in den Baum eingefügt.

Die Einfügung der Einträge von eliminierten Blättern erfolgt mit dem schon bekannten Einfüge-Algorithmus.

Um ein Datenobjekt und den zugehörigen Indexeintrag zu löschen:

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2407.06.2001

R*-Baum

Bisher (R-Baum) wurde nur der Parameter Fläche benutzt, um einen überfüllten Knoten aufzuteilen und einen geeigneten Knoten zum Einfügen eines neuen Objektes zu finden.

R*-Baum stellt Verbesserungen und Erweiterungen des R-Baum dar.

Der Einfüge-Algorithmus des R*-Baumes verwendet neben der Fläche auch noch den Parameter Überlappung.

Die Überlappung von MURs eines Knotens soll minimal sein, da dadurch die Anzahl der Pfade, die verfolgt werden müssen, verringert wird.

p

kjjjk MUREMUREarea

,1

)..( pk 1,Überlappung eines Knotens:=

seien E1, ..., Ep die Einträge des aktuellen Knotens

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2507.06.2001

 

Z-Ordering (Motivation)

Abstrakt

Um räumliche Indexstrukturen in kommerzielle Datenbankmanagement-systeme (DBMS) zu integrieren, sind herkömmliche relationale Daten-banken nicht ausreichend funktionsfähig.

um räumliche Attribute innerhalb der Datenbank zu speichern, ist die Datenbank in dem relationalen Modell abzubilden.

Eine frühe Lösung für das Management von multidimensionalen Daten in Beziehung basiert auf raumfüllenden Kurven.

Raumfüllende Kurven bilden Punkte eines multidimensionalen Raumes in eindimensionalen Werten ab.

Dabei werden Distanzen bewahrt, d.h., wenn zwei Punkte im multidimen-sionalen Raum eng beieinander liegen, liegen sie auch im eindimen-sionalen Raum eng beieinander.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2607.06.2001

Z-Ordering (1)

 

Das Konzept der raumfüllenden Kurven wurde erweitert, um mit Polygonen arbeiten zu können.

Diese Idee basiert auf der Zerlegung der Polygone entsprechend der raumfüllenden Kurve.

Ein Nachteil dieser Methode ist ihre Empfindlichkeit gegenüber einer passenden Auswahl der Auflösungsparameter.

Nachteil:

Idee:

Konzept:

Die Suche nach übereinstimmenden Objekten ist normalerweise begrenzt auf ein bestimmtes Gebiet in dem eingebetteten Raum.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2707.06.2001

Z-Ordering (2)

 

Algorithmus: Z-Ordering in Punktdatenbanksystemen :

0 1

32

Z-Ordering basiert auf der rekursive Zerlegung des Datenraumes, wie er von der raumfüllenden Kurve zur Verfügung gestellt wird.

Der Algorithmus teilt das Einheitsquadrat in vier Quadranten von gleicher Größe auf, welche kanonisch nummeriert sind von null bis drei.

Dann wird dieser Quadrant in seine vier unter Quadranten geteilt.

Das wird rekursiv wiederholt bis eine bestimmte Grundauflösung erreicht wurde.

20

22

21

23212

210 211

212

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2807.06.2001

Z-Ordering (3)

 

Definitionen:

Zwischenergebnisse:

„g“ ist das Auflösungsniveau (die feste Zahl der rekursiven Wiederholung).

„g Ziffern“ ist der Anordnungsschlüssell für die Punkte (Quadranten-reihenfolge).

Die Interpretation von Reihenfolgen als Ziffern erleichtert ihr Management im Index.

Die Punkte werden in einer reihenfolgeerhaltenden und eindimensionalen Indexstruktur wie dem B*-Baum gesteuert.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2907.06.2001

Eine Einfache Methode für Polygondatenbanken

 

Eine einfache Methode:

jede Zelle, welche durch das Objekt bedeckt wird, in der Datenbank zu speichern.

Ein riesiger Speicheraufwand

Nachteil:

Um das Konzept des Z-Ordering für das Management von Objekten mit räumlicher Ausdehnung (Polygonen) auszudehnen, müssen wir das Problem betrachten, dass ein gegebenes Polygon sich mit vielen Zellen schneiden.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 3007.06.2001

Ein-Wert-Approximation

 

Algorithmus:

0 1

32

00 01 10 11

02 03 12 13

31302120

22 23 32 33

Die Objekte werden an das kleinste Element, welches das vollständige Objekt einschließt angenähert.

Es wird der gegenwärtige Datenraum in vier Quadranten aufgeteilt.

Wenn genau ein Quadrant durch das Objekt geschnitten wird, fährt man rekursiv mit diesem Quadranten fort.

Wenn mehr als ein Quadrant geschnitten wird, dann benutzt man die Quadrantenreihenfolge, welche zu diesem Punkt als ein Ordnungs-schlüssel gebracht wurde.

Diese Interpretation wird als ein numerischer Wert in einer reihenfolge-erhaltenden und eindimensionalen Indexstruktur wie dem B*-Baum gesteuert.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 3107.06.2001

Alternative Techniken

 

a) Hilbert b) Peano(Z-Order) c) Gray-Codes d) Z-Mirror e) U-Index

Man nutzt die Peano/Morton Kurve, weil sie einfacher zu berechen ist.

Verschiedene Verbesserung des Z-Orderingkonzeptes:

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 3207.06.2001

SQL Unterstützung für räumliche Daten

 

Das herkömmliche SQL wurde so erweitert, dass es in der Lage ist, den Zugang zu neuen Datentypen zu unterstützen. Im Fall von Oracle8i wird SQL auf zwei Wegen erweitert:

SELECT A.feature FROM parks A, rivers B

WHERE sdo_geom.relate(A.geometry, B.geometry, ‘OVERLAP’) =TRUE;

Beispiel:

SQL kann auch benutzt werden, um Objekte räumlichen Typs zu bestimmen und zu schaffen.

SQL kann auch benutzt werden, um DML zu folgen, und auch in Ergänzung die räumlichen Daten mit Hilfe räumlicher Funktionen abzufragen.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 3307.06.2001

Oracle 8i Spatial Data Cartdridge

 

Der Anfragealgorithmus, der geschützt (geregelt) sein kann, muss dem Nutzer erklärt werden, die innere Logik muss also ein extra SQL Statement ausgedrückt werden.

Nachteil:

Die Oracle8i räumliche cartdridge erlaubt dem Nutzer den räumlichen Index und die Anfragen an die räumlichen Daten zu speichern.

Die räumlichen Daten sind als ein Objekttyp SDO-GEOMETRY modelliert.

Ein räumlicher Index kann auf einer SDO- Geometrie Spalte aufgebaut werden.

Der räumliche Indextyp unterstützt einen Operator, der als „Overlaps“ bezeichnet wird.

Vor Oracle8i mußte der Benutzer explizit das PPISQL Paket aufrufen, um einen Index zu kreieren oder den räumlichen Index zu pflegen.

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 3407.06.2001

Beispiel

 

Vor Oracle8i wird z.B. eine räumliche Anfrage wie folgt formuliert:

SELECT DISTINCT r.gid, p.gid

FROM roads_sdoindex r, parks_sdoindex p

WHERE (r.grpcode = p.grpcode) AND

(r.sdo_code BETWEEN p.sdo_code AND p.sdo_maxcode

OR p.sdo_code BETWEEN r.sdo_code

AND r.sdo_maxcode)

Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 3507.06.2001

Zusammenfassung

Darstellung der Anwendung von B/B*-Bäumen in traditionellen Datenbanksystemen

Objekte, Operationen, Anforderungen im traditionellen Datenbanksystem

Fähigkeiten von Oracle8i Spatial zur Unterstützung von 3 einfachen geometrischen Typen

Räumliche Zugriffsstrukturen und Möglichkeiten zur Approximation

Strukturen und Algorithmen von R-Baum und R*-Baum

Z-Ordering

SQL Unterstützung für räumliche Daten