R*-Baum - Angizeh

Werbung
Unterstützung räumlicher Anfragen mit
konventionellen Indexstrukturen
Vortrag zum B-Seminar
Jamshid Azizi
[email protected]
07.06.2001
Gliederung
Motivation
Anwendung von B-/B*-Bäumen
Vorstellung von Oracle8i Spatial
Mehrdimensionale Indexstrukturen
Multidimensionale Indexmethoden:
R-Baum
R*-Baum
Z-Ordering
Zusammenfassung
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 2
Einleitung: Anwendung von B-/B*-Bäumen (1)
Definitionen und Fähigkeiten:
Index und Cluster sind Instrumente, mit denen sich Abfragen
beschleunigen lassen.
B- und B*-Baum: eindimensionale Strukturen:
Ein B-Baum speichert die Datensätze sortiert nach einem Schlüssel.
Ein B-Baum beantwortet Punkt – und Bereichsanfragen sehr effizient.
Eine Erweiterung des B-Baumes ist der B*-Baum, der die Daten
ausschließlich in den Blättern ablegt.
Dies reduziert die Höhe des Baumes.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 3
Einleitung: Anwendung von B-/B*-Bäumen (2)
B*-Bäume ermöglichen außerdem einen effizienteren sequentiellen
Scan auf den Blattknoten.
Aufbau eines B-Baumes:
71 82
54 61
41 52
Wurzel
75
57
65 68
Knoten
72 74
75 79
84
V0 S1 V1
Datenseiten:
93 94
98
Blätter
Indexseiten:
07.06.2001
91 97
D0 D1
Ds
Dt
Sn Vn
Du
Dv
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Dw
Folie 4
Schematischer Aufbau eines B*-Baumes
Index-Suche
V0 R1 V1 R2
Sequentielle
Suche
S1
PD
1
Rn Vn frei
Sj
frei
Dj
N
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 5
Beispiel
102
105
-
105
110
-
107
110
-
100
101
102
104
105
-
106
107
-
110
-
Kurz
104
101
102
107
105
106
110
100
Firma
Deutsche Untern..
Computer Courier...
Morton Ag...
Therm AG...
Busy Software AG...
Girgwerke AG...
Bacher Elektro...
Versicherung...
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 6
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 7
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
Punkt
Linie
N-Punkt Polygon
und Geometrien aus einer Sammlung dieser 3 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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 8
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
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 9
Räumliche Zugriffsstrukturen (2)
Lösung:
Man bedient sich räumlicher Anfragemethoden, die den Datenraum in
Regionen aufteilen, welche einzelnen Seiten im Sekundärspeicher
entsprechen.
Eine Möglichkeit ist die Umschließung von Objekte mit Rechtecken.
Zugriffsstruktur
... (MUR,, ...) (MUR,; ...) ...
(EB)
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
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 10
Räumliche Zugriffsstrukturen (3)
Vorteil:
Die Komplexität wird auf Parameter von Punkten reduziert, die das
Rechteck begrenzen (kompakte Repräsentation).
Nachteile:
Möglichkeit der Existenz einer nicht zum Objekt gehörenden Region
innerhalb des Rechteckes
Auswirkung auf Genauigkeit und Anzahl der vom Indexierungsschritt
generierten Kandidaten
Zielstellung:
Notwendigkeit der Suche nach einer möglichst kompakten Darstellung,
um eine gute Approximation zu generieren.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 11
Verschiedene Möglichkeiten der Approximation
Beispiele für Approximationsmöglichkeiten:
konvexe Hülle
minimales konvexes Fünfeck
minimales konvexes Viereck
rotiertes umschließendes Rechteck
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
optimaler Mittelweg in den meisten Fällen: das konvexe Fünfeck
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 12
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 W
Gesucht: Finde alle MUR’s in der
Datenbank, wo W  Obj.MUR 
gilt.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 13
Anforderungen (2)
Regionsuche:
Gegeben: EPL*
Gesucht: Finde alle MUR’s in der
Datenbank, wo EPl* MUR 
Beispiel:
Was für Länder/Landschaftsgebiete liegen
komplett/teilweise in diesem Bereich ?
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 14
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.
Y
3 Gruppen (Seiten)
A5
A4
A1
A6
A3
A5
A4
A2
A1
A3
A6
A2
X
Drei vorgeschlagenen Lösungen für diese Problematik:
R-Baum
R*-Baum
X-Baum
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 15
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:
(MUR, Zeiger auf Datenobjekt)
das kleinste n-dimensionale Rechteck
die Adresse des Objektes
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 16
Struktur des R-Baumes (2)
Knoten in einem R-Baum enthalten Index-Einträge der Form:
(MUR, Zeiger auf Nachfolger)
die Adresse des Nachfolgerknotens (Sohnes) dieses Eintrages
Beispiel:
Der Umriss von Deutschland als
minimal umschreibende Rechteck
(MUR)
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 17
Struktur des R-Baumes (3)
Deutsche Bundesländer und ihre Umwandlung in MURs für einen R-Baum
mit drei inneren Knoten (West, Ost und Süd).
Deutschland
Ost
West
Danach wird zu jedem Bundesland
sein MUR erstellt .
Zum Schluss werden diese
MURs zu Gruppen
zusammengefasst
Süd
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 18
Struktur des R-Baumes (4)
Resultierender R-Baum:
Deutschland
West
SH. NS. NW. He.
Th.
RP.
Sa.
Süd
Ost
BW. Ba.
MV.
Br.
Be.
SA. Sach.
Jedes Kästchen entspricht einem Eintrag eines Knotens.
Jeder dieser Einträge enthält dabei einen Zeiger auf den Nachfolgerknoten (durch einen Pfeil dargestellt)
Die größtmögliche Höhe eines R-Baumes:
Anzahl der Datenelemente
log m N -1
minimale Anzahl der Einträge pro Knoten
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 19
Such-Algorithmus des R-Baumes
Deutschland
Der Suchalgorithmus ist ein rekursiver
Algorithmus.
Das Ergebnis der Suche sind alle
Datenobjekte, die sich mit der Suchregion
schneiden.
Suchpunkt:
Ost
West
(Mainz )
Deutschland
Deutschland
Süd
West
SH. NS. NW. He.
He.
07.06.2001
Th.
RP.
Sa.
Süd
Süd
BW. Ba.
BW.
Ost
MV.
Br.
Be.
SA. Sach.
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 20
Einfüge-Algorithmus des R-Baumes
Für einen neuen Indexeintrag in den Baum:
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 21
Beispiel
B
A
f
d
e
A B
k
g
o
h
m
j
i
n
d e
C
f
l
g
C
h i
j
k
l
h o
o
m
i
j
n
k
P
B2 C
A B1
d e
07.06.2001
f
g
h o
i
j
k
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
l
m
n
Folie 22
Entfernen
Um ein Datenobjekt und den zugehörigen Indexeintrag zu löschen:
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 23
R*-Baum
R*-Baum stellt Verbesserungen und Erweiterungen des R-Baum dar.
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.
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
Überlappung eines Knotens:=
 area ( E .MUR  E .MUR)
j -1, j  k
k
j
, 1 k  p
seien E1, ..., Ep die Einträge des aktuellen Knotens
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 24
Z-Ordering (Motivation)
Um räumliche Indexstrukturen in kommerzielle Datenbankmanagementsysteme (DBMS) zu integrieren, sind herkömmliche relationale Datenbanken 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.
Abstrakt
Raumfüllende Kurven bilden Punkte eines multidimensionalen Raumes in
eindimensionalen Werten ab.
Dabei werden Distanzen bewahrt, d.h., wenn zwei Punkte im multidimensionalen Raum eng beieinander liegen, liegen sie auch im eindimensionalen Raum eng beieinander.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 25
Z-Ordering (1)
Die Suche nach übereinstimmenden Objekten ist normalerweise
begrenzt auf ein bestimmtes Gebiet in dem eingebetteten Raum.
Konzept:
Das Konzept der raumfüllenden Kurven wurde erweitert, um mit
Polygonen arbeiten zu können.
Idee:
Diese Idee basiert auf der Zerlegung der Polygone entsprechend der
raumfüllenden Kurve.
Nachteil:
Ein Nachteil dieser Methode ist ihre Empfindlichkeit gegenüber einer
passenden Auswahl der Auflösungsparameter.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 26
Z-Ordering (2)
Z-Ordering basiert auf der rekursive Zerlegung des Datenraumes, wie
er von der raumfüllenden Kurve zur Verfügung gestellt wird.
Algorithmus: Z-Ordering in Punktdatenbanksystemen :
Der Algorithmus teilt das Einheitsquadrat in vier Quadranten von
gleicher Größe auf, welche kanonisch nummeriert sind von null bis drei.
23
22
2 212 212
20 210
21211
0
3
1
Dann wird dieser Quadrant in seine vier unter Quadranten geteilt.
Das wird rekursiv wiederholt bis eine bestimmte Grundauflösung erreicht
wurde.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 27
Z-Ordering (3)
Definitionen:
„g“ ist das Auflösungsniveau (die feste Zahl der rekursiven Wiederholung).
„g Ziffern“ ist der Anordnungsschlüssell für die Punkte (Quadrantenreihenfolge).
Zwischenergebnisse:
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 28
Eine Einfache Methode für Polygondatenbanken
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.
Eine einfache Methode:
jede Zelle, welche durch das Objekt bedeckt wird, in der Datenbank
zu speichern.
Nachteil:
Ein riesiger Speicheraufwand
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 29
Ein-Wert-Approximation
Algorithmus:
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 Ordnungsschlüssel gebracht wurde.
22
2
23
32
33
30
3
31
03
12
13
0 01
10
1
11
20
02
00
21
Diese Interpretation wird als ein numerischer Wert in einer reihenfolgeerhaltenden und eindimensionalen Indexstruktur wie dem B*-Baum
gesteuert.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 30
Alternative Techniken
Verschiedene Verbesserung des Z-Orderingkonzeptes:
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 31
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:
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.
Beispiel:
SELECT A.feature FROM parks A, rivers B
WHERE sdo_geom.relate(A.geometry, B.geometry, ‘OVERLAP’) =TRUE;
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 32
Oracle 8i Spatial Data Cartdridge
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.
Nachteil:
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.
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 33
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)
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 34
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
07.06.2001
Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS>
Folie 35
Herunterladen