View
217
Download
0
Category
Preview:
Citation preview
Martin Pfeifle, 26.07.01
Objekt - relationale VerwaltungObjekt - relationale Verwaltunghochauflösender CAD-Datenbankenhochauflösender CAD-Datenbanken
Martin Pfeifle
LFE DatenbanksystemeInstitut für InformatikLMU MünchenProf. Dr. Hans-Peter Kriegel
Betreuer:Dr. Marco Pötke (LMU)
Dr. habil. Thomas Seidl (LMU)
Martin Pfeifle, 26.07.01
Gliederung des VortragesGliederung des Vortrages
1.) Einleitung1.) Einleitung
2.) RI-Baum2.) RI-Baum
3.) X-RI-Baum3.) X-RI-Baum
4) weitere Aspekte4) weitere Aspekte
5.) Fazit5.) Fazit
Martin Pfeifle, 26.07.01
Gliederung des VortragesGliederung des Vortrages
1.) Einleitung1.) Einleitung
2.) RI-Baum2.) RI-Baum
3.) X-RI-Baum3.) X-RI-Baum
4) weitere Aspekte4) weitere Aspekte
5.) Fazit5.) Fazit
Räumliche DatenbankenRäumliche Datenbanken
Räumliche ObjekteRäumliche Objekte
Anfragebearbeitung Anfragebearbeitung
Martin Pfeifle, 26.07.01
Räumliche DatenbanksystemeRäumliche Datenbanksysteme
Koll.- anfrage
Systemanforderungen:
Effektivität - Verwaltung von geometrischen Objekten
- Räumliche Anfragebearbeitung
Effizienz - Kurze Antwortzeiten für Anfragen
- Schnelles Einfügen, Ändern und Entfernen
Skalierbarkeit - Verwaltung sehr großer Datenmengen
- Anbindung vieler Benutzer
komplexe
Boxanfrage
räumlicheObjekte
Räumliche Räumliche DatenbanksystemeDatenbanksysteme
(basierend auf erweiterbarem ORDBMS)
Martin Pfeifle, 26.07.01
Beschreibung räumlicher ObjekteBeschreibung räumlicher Objekte
Triangulationen
Voxelmenge
1.) Linearisierung des Datenraums – Gitter-Approximation – Raumfüllende Kurve
Intervallsequenz
2.) Bildung von Intervall Sequenzen
– Bottom-up bzw. Top-down – size-bound bzw. error-bound
Martin Pfeifle, 26.07.01
AnfragebearbeitungAnfragebearbeitung
Filter - Schritt
Kandidaten Mengefür
Verfeinerungs-Schritt
CAD- DB
Verfeinerungs-
Schritt
ORDBMS
CAD Ergebnis
RI-BaumX-
hochauflösende
X-
Martin Pfeifle, 26.07.01
Gliederung des VortragesGliederung des Vortrages
Grundlagen des Grundlagen des Relationalen Intervall Relationalen Intervall Baumes Baumes
AnfragebearbeitungAnfragebearbeitung
1.) Einleitung1.) Einleitung
2.) RI-Baum2.) RI-Baum
3.) X-RI-Baum3.) X-RI-Baum
4) weitere Aspekte4) weitere Aspekte
5.) Fazit5.) Fazit
Martin Pfeifle, 26.07.01
Grundlage: Binärer Intervallbaum [Edelsbrunner 1980]
Relationaler Intervall BaumRelationaler Intervall Baum
3a 15a12c
5c 15a
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
15
8
1 3 5 7 13119
2 6 10 14
4 12
AB
CD
7b1b
13d 13d
Martin Pfeifle, 26.07.01
AB
CD
Grundlage: Binärer Intervallbaum [Edelsbrunner 1980] 1. Idee: Virtualisierung der Primärstruktur
Relationaler Intervall BaumRelationaler Intervall Baum
3a 15a12c
5c 15a
15
8
1 3 5 7 13119
2 6 10 14
4 12
7b1b
13d 13d
151 3 5 7 13119
2 6 10 14
4 12
8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2h – 1
root = 2h–1
Martin Pfeifle, 26.07.01
Grundlage: Binärer Intervallbaum [Edelsbrunner 1980] 1. Idee: Virtualisierung der Primärstruktur
Relationaler Intervall BaumRelationaler Intervall Baum
2. Idee: Zwei B+-Bäume speichern Intervallgrenzennode lower
488
13
135
13
idbacd
node upper488
13
7121513
idbcad
lowerIndex upperIndex
root = 2h–1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
8
151 3 5 7 13119
2 6 10 14
4 123a 15a12c
5c 15a7b1b
13d 13d
AB
CD
Martin Pfeifle, 26.07.01
AnfragebearbeitungAnfragebearbeitung
1. Prozedurale Phase
2. Deklarative Phase
Martin Pfeifle, 26.07.01
AnfragebearbeitungAnfragebearbeitung
1. Prozedurale Phase
16 = root
24 = fork
25
2826
20
2223
2. Deklarative Phase – Relationale Bearbeitung durch eine (einzige) SQL-Anfrage – Anzahl von I/O-Zugriffen: O(h·logbn + r/b)
arithmetische Traversierung durch Primärstruktur Sammeln der besuchten Knoten in transienten Tabellen Anzahl von I/0-Zugriffen: 0
select id from upperIndex i, :leftNodes leftwhere i.node = left.node and i.upper >= :Q.lowerunion allselect id from lowerIndex i, :rightNodes rightwhere i.node = right.node and i.lower <= :Q.upperunion allselect id from upperIndex iwhere i.node between :Q.lower and :Q.upper
16 20
28 26
22-25
upper = 2522 = lowerSchnittanfrage Q
Martin Pfeifle, 26.07.01
Gliederung des VortragesGliederung des Vortrages
IdeeIdee
Graue IntervalleGraue Intervalle EinführungEinführung SpeicherungSpeicherung Mehrstufige Mehrstufige AnfragebearbeitungAnfragebearbeitung EinführungEinführung 1. Filterschritt1. Filterschritt 2. Filterschritt2. Filterschritt 3. Filterschritt3. Filterschritt
ExperimentelleExperimentelle ErgebnisseErgebnisse
1.) Einleitung1.) Einleitung
2.) RI-Baum2.) RI-Baum
3.) X-RI-Baum3.) X-RI-Baum
4) weitere Aspekte4) weitere Aspekte
5.) Fazit5.) Fazit
Martin Pfeifle, 26.07.01
Idee des X-RI-BaumesIdee des X-RI-Baumes1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Feststellung: Hochaufgelöste CAD-Objekte zerfallen in sehr viele kurze Intervalle mit kurzen Abständen zueinander
15
8
1 3 5 7 13119
2 6 10 14
4 12
Idee : Fasse Intervalle eines Objektes zu grauen Intervallen zusammen.
Objekt A
M=3M=1
Martin Pfeifle, 26.07.01
Idee des X-RI-BaumesIdee des X-RI-Baumes
Feststellung: Hochaufgelöste CAD-Objekte zerfallen in sehr viele kurze Intervalle mit kurzen Abständen zueinander
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Anfragebearbeitung : Ermittle Schnitte zwischen grauen Intervallen (1.Filterschritt) Ermittle tatsächliche Intervallschnitte
(2. und 3. Filterschritt)
Objekt AObjekt B
15
8
1 3 5 7 13119
2 6 10 14
4 12
BschneidetQ
A und BschneidenQ
Query Q2 3 7
Idee : Fasse Intervalle eines Objektes zu grauen Intervallen zusammen.
Objekt C
Martin Pfeifle, 26.07.01
Graue IntervalleGraue Intervallegraue Intervalle
S mit n=5
I mit angehängter Itervallsequenz S..M
Sei S = ((l1,u1), ((l2,u2),... ((ln,un)) eine Intervallsequenz über N, mitli ui i1..n und ui < li+1 i1..n-1.Wir nennen I = ((lI = ((l11,u,unn), S)), S) ein graues Intervalgraues Interval mit angehängter Intervallsequenz SS.Wir nennen M = max{li+1 – ui| i1..n-1} den MAXGAP-Parameter von I..
11 grey
grey
dM
Graue Intervalle beginnen und enden mit schwarzen Zellen
Aussagen über graue Intervalle
Jede maximale Folge von weißen Zellen innerhalb eines grauen Intervalls I ist kleiner oder gleich M.
Martin Pfeifle, 26.07.01
Speicherung der grauen IntervalleSpeicherung der grauen Intervalle
S = ((l1,u1), ((l2,u2),... ((ln,un)) eines grauen Intervals I = ((l1,un), S) der Länge L wird in einem BLOB gespeichert.
LnL
2log)1(2
+ -
Tabellenaufbau zur Speicherung von Igrey :
(Node number, MIN number, MAX number, ID integer, ISDENSITY integer, ISTYPE integer, ISBLOB BLOB)
Bit-orientierter Ansatz
1 0 1 0 1 1 O (L)
...... 1 0 1 0 1 1
Offset-orientierter Ansatz
......w1
w1w2w3w4 O (n * log L)
w2 w3 w4
Martin Pfeifle, 26.07.01
Mehrstufige AnfragebearbeitungMehrstufige Anfragebearbeitung
A1 Q1
A3 Q2
A2 Q1
B3 Q1
B2 Q1
C1 Q1
C2 Q1
C2 Q2
C3 Q2
D1 Q1
A1 Q1
A3 Q2
C1 Q1
DB
Query
A1 Q1
A3 Q2A2 Q1
+B3 Q1
C1 Q1C2 Q1
B2 Q1
B2 Q1 ?
feinesErgebnis
RI-Tree
1.Filterschritt(Index)
FASTGREYTEST
2.Filterschritt(CPU)
BLOBTEST
3.Filterschritt(Table+CPU)
D1 Q1
ACB
grobes Ergebnis
CBA
D
Q1 Q2
A1 A2 A3 AB1 B2 B3 B
C1 C2 C3 C4 C
D1 D2 DE1 E
...
B3 Q1B3 Q1 ++
Martin Pfeifle, 26.07.01
1. Filterschritt: 1. Filterschritt: RI-BaumRI-Baum Ermitteln aller sich schneidender Paare aus grauen DB- und Query- Intervallen und Ausgabe sortiert nach DB-ID und Wahrscheinlichkeitsmaß P.
Wahrscheinlichkeitsmodelle
Modell „Ziehen ohne Zurücklegen“ effizient berechenbar Modell „Ziehen mit Zurücklegen“ gutes Abbild der Wirklichkeit
Berechnung von P:
SQL-statement:
Modell „Ziehen mit Zurücklegen“
Basiert auf erweiterten upper- und lowerIndexen nur Benutzung von built-in-functions kein Aufruf von stored-procedures
I
I‘
L
d = Dichte von I
d‘ = Dichte von I‘L = Schnittlänge der grauen Intervalle
L
L
dd
ddddP
)'1(1
)'1('1
0
Martin Pfeifle, 26.07.01
2. Filterschritt: 2. Filterschritt: FAST-GREY-TESTFAST-GREY-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - ohne BLOB -
schwarzes Intervalle + graues Intervallschwarzes Intervall geht über Anfangspunkt des grauen Intervalls
graues Intervall + graues Intervallgemeinsamer Anfangs- bzw. Endpunkt
graues Intervall + graues IntervallSumme der weißen Felder ist kleiner als Überlappungslänge
... ...schwarzes Intervall + schwarzes Intervall
Lgraues Intervall + beliebiges IntervallGraues Intervall mit nur 2 schwarzen Feldern,deckt anderes Intervall vollständig ab
graues Intervall + graues IntervallGraue Intervalle mit nur 2 schwarzen Feldern ohne gemeinsame Eckpunkte
Sch
nitt
kein
Sch
nitt
langes schwarzes Intervall + graues IntervallAnzahl maximal aufeinanderfolgender weißer Zellen kleiner als Länge des schwarzen Intervalls
Martin Pfeifle, 26.07.01
3. Filterschritt: 3. Filterschritt: BLOB-TESTBLOB-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - mit BLOB -
... ...
I‘
I
Laufzeitanalyse
Bit-orientierter Ansatz
Zugriff auf A über Offset oL
Durchlaufen der L Zellen
Offset-orientierter Ansatz
LoLA
O (1)
O (L)
Martin Pfeifle, 26.07.01
3. Filterschritt: 3. Filterschritt: BLOB-TESTBLOB-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - mit BLOB -
... ...L
I‘
I
Laufzeitanalyse
w1 w2 w3 w4 w5 w6 w7 w8
Offset-orientierter Ansatz
Zugriff auf A über Bisektion
Betrachten der nL bzw. n‘L Intervalle
A
w6w4 w7
Bit-orientierter Ansatz
Zugriff auf A über Offset oL
Durchlaufen der L Zellen
O (1) O (log n)
O(nL+n‘L)O (L)
nL =1
n‘L =3
Martin Pfeifle, 26.07.01
ExperimenteExperimente
Variation des MAXGAP Parameters in Größenordnungen 0(RI-Baum) 10 100 1000 10.000 100.000 1.000.000 Vergleich RI-Baum X-RI-Baum
CAR PLANE
ca. 200 Bauteile ca. 10.000 Bauteileca. 7 Millionen Intervalle ca. 9 Millionen IntervalleAuflösung: 33 bit (0 .. 8.589.934.591) Auflösung: 42 bit (0 .. 4.398.046.511.103)
Martin Pfeifle, 26.07.01
ExperimenteExperimenteC
AR
110
1001000
10000100000
100000010000000
Interval-Lengthnum
ber
of in
terv
als
M=0 (RI-Tree)
M=10^1
M=10^2
M=10^3
M=10^4
M=10^5
M=10^6
Gesamtanzahl der Intervalle sinkt mit steigendem MAXGAP-Parameter
Durchschnittliche Länge der Intervalle steigt mit steigendem MAXGAP-Parameter
-Intervallverteilung-Intervallverteilung--
Martin Pfeifle, 26.07.01
Experimente Experimente -Speicherbedarf-Speicherbedarf--
0
10
20
30
40
50
0 10 100 1000 10000 100000 1000000MAXGAP
CAR
PLANE
Besseres Speicherplatzverhalten bei der Intervall-Tabelle beim X-RI-Baum gegenüber dem RI-Baum
PLANE
020406080
100120140160
0 1000 1000000MAXGAP
num
ber o
f blo
cks
[x10
00]
indexes
table
Deutlich besseres Speicherplatzverhalten bei den Index-Tabellen beim X-RI-Baum gegenüber dem RI-Baum
(RI-Tree)
Martin Pfeifle, 26.07.01
0,0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
10 100 1000 10000 100000 1000000M axgap
time
[sec
]
3.FilterStep2.FilterStep1.FilterSteppreparation
Experimente Experimente -Laufzeit “Kollisionsanfragen”-Laufzeit “Kollisionsanfragen”--PL
AN
EC
AR
0
10
20
30
40
50
10 100 1000 10000 100000 1000000Maxgap
time
[sec
]3.FilterStep2.FilterStep1.FilterSteppreparation
Martin Pfeifle, 26.07.01
0,0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
10 100 1000 10000 100000 1000000M axgap
time
[sec
]
3.FilterStep2.FilterStep1.FilterSteppreparation
RI-Tree
Experimente Experimente -Laufzeit “Kollisionsanfragen”-Laufzeit “Kollisionsanfragen”--PL
AN
EC
AR
0
10
20
30
40
50
10 100 1000 10000 100000 1000000Maxgap
time
[sec
]3.FilterStep2.FilterStep1.FilterSteppreparation
RI-Tree
großes Bauteil (PLANE)
RI-Baum: 316,5 X-RI-Baum: 2,2 (Maxgap=10.000)
Martin Pfeifle, 26.07.01
16,3
1466,4
1
10
100
1000
10000
0 10 100 1000 10000 100000 1000000Maxgap
time
[sec
]0,008% of data space (1% selectivity) (resp. time)
0,008% of data space (1% selectivity) (prep. time)
(RI-Tree)
Experimente Experimente -Laufzeit “Boxanfragen”-Laufzeit “Boxanfragen”--
Gut parametrisierter X-RI-Baum ist deutich schneller als RI-Baum
Konzept der grauen Intervalle ist gut geeignet für top-down erzeugte dynamische Anfrageobjekte
PLA
NE
1.) Graue Intervalle mit beliebig angehängten Objekten
2.) Erweiterung des 3. Filterschrittes
Martin Pfeifle, 26.07.01
Gliederung des VortragesGliederung des Vortrages
Extensible IndexingExtensible Indexing
** **
**
KostenmodellKostenmodell
Konstruktive Methode fürKonstruktive Methode fürMAXGAP-MAXGAP-ParameterParameter
SelbstoptimierendeSelbstoptimierendeIndexeIndexe
** **
**
1.) Einleitung1.) Einleitung
2.) RI-Baum2.) RI-Baum
3.) X-RI-Baum3.) X-RI-Baum
4.) weitere Aspekte4.) weitere Aspekte
5.) Fazit5.) Fazit
Martin Pfeifle, 26.07.01
Gliederung des VortragesGliederung des Vortrages
1.) Einleitung1.) Einleitung
2.) RI-Baum2.) RI-Baum
3.) X-RI-Baum3.) X-RI-Baum
4.) weitere Aspekte4.) weitere Aspekte
5.) Fazit5.) Fazit
Martin Pfeifle, 26.07.01
Welche Vorteile hat der X-RI-Baum gegenüber dem RI-Baum?
Sekundärspeicher X-RI-BaumRI-Baum
FazitFazit
Was ist der X-RI-Baum?
Ein auf dem RI-Baum aufbauender mehrstufiger Index für räumliche Objekte bzw. allgemein für Objekte, die durch Intervallsequenzen beschreibar sind
Hauptspeicher X-RI-BaumRI-Baum
Laufzeit X-RI-BaumRI-Baum(dynamische Anfrageobjekte)
Recommended