Objekt relationale Verwaltung hochauflsender CADDatenbanken Martin Pfeifle LFE
Objekt - relationale Verwaltung hochauflösender CAD-Datenbanken Martin Pfeifle LFE Datenbanksysteme Institut für Informatik LMU München Prof. Dr. Hans-Peter Kriegel Betreuer: Dr. Marco Pötke (LMU) Dr. habil. Thomas Seidl (LMU) Martin Pfeifle, 26. 07. 01
Gliederung des Vortrages 1. ) Einleitung 2. ) RI-Baum 3. ) X-RI-Baum 4) weitere Aspekte 5. ) Fazit Martin Pfeifle, 26. 07. 01
Gliederung des Vortrages 1. ) Einleitung 2. ) RI-Baum Räumliche Datenbanken Räumliche Objekte Anfragebearbeitung 3. ) X-RI-Baum 4) weitere Aspekte 5. ) Fazit Martin Pfeifle, 26. 07. 01
Räumliche Datenbanksysteme Systemanforderungen: Effektivität Boxanfrage - Verwaltung von geometrischen Objekten - Räumliche Anfragebearbeitung Koll. - anfrage komplexe räumliche Objekte Effizienz - Kurze Antwortzeiten für Anfragen - Schnelles Einfügen, Ändern und Entfernen Räumliche Datenbanksysteme (basierend auf erweiterbarem ORDBMS) Skalierbarkeit - Verwaltung sehr großer Datenmengen - Anbindung vieler Benutzer Martin Pfeifle, 26. 07. 01
Beschreibung räumlicher Objekte 1. ) Linearisierung des Datenraums – Gitter-Approximation – Raumfüllende Kurve 2. ) Bildung von Intervall Sequenzen – Bottom-up bzw. Top-down – size-bound bzw. error-bound Triangulationen Voxelmenge Intervallsequenz Martin Pfeifle, 26. 07. 01
Anfragebearbeitung O R D B M S C A D hochauflösende CAD- DB Filter - Schritt X- RI-Baum Kandidaten Menge für Verfeinerungs. Schritt Ergebnis Martin Pfeifle, 26. 07. 01
Gliederung des Vortrages 1. ) Einleitung Grundlagen des Relationalen Intervall Baumes 2. ) RI-Baum Anfragebearbeitung 3. ) X-RI-Baum 4) weitere Aspekte 5. ) Fazit Martin Pfeifle, 26. 07. 01
Relationaler Intervall Baum 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B C D 8 4 1 b 2 1 3 7 b 6 5 7 3 a 15 ca 12 5 c 15 a 12 10 9 14 11 13 15 13 d Grundlage: Binärer Intervallbaum [Edelsbrunner 1980] Martin Pfeifle, 26. 07. 01
Relationaler Intervall Baum 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B C root = 2 h– 1 D 8 4 1 b 2 1 1 3 7 b 6 5 7 3 a 15 ca 12 5 c 15 a 12 10 9 14 11 13 13 d 15 2 h – 1 Grundlage: Binärer Intervallbaum [Edelsbrunner 1980] 1. Idee: Virtualisierung der Primärstruktur Martin Pfeifle, 26. 07. 01
Relationaler Intervall Baum 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B C D root = 2 h– 1 8 4 1 b 2 1 3 7 b 6 5 3 a 12 15 ca 5 c 15 a 7 12 10 14 9 11 13 15 13 d Grundlage: Binärer Intervallbaum [Edelsbrunner 1980] 1. Idee: Virtualisierung der Primärstruktur 2. Idee: Zwei B+-Bäume speichern Intervallgrenzen node lower id 4 8 8 13 1 3 5 13 b a c d lower. Index node upper id 4 8 8 13 7 12 15 13 b c a d upper. Index Martin Pfeifle, 26. 07. 01
Anfragebearbeitung 1. Prozedurale Phase 2. Deklarative Phase Martin Pfeifle, 26. 07. 01
Anfragebearbeitung 1. Prozedurale Phase Schnittanfrage Q 22 = lower upper = 25 arithmetische Traversierung durch Primärstruktur Sammeln der besuchten Knoten in transienten Tabellen Anzahl von I/0 -Zugriffen: 0 16 = root 24 = fork 20 28 26 22 23 25 16 20 select id from upper. Index i, : left. Nodes left where i. node = left. node and i. upper >= : Q. lower union all select id from lower. Index i, : right. Nodes right where i. node = right. node and i. lower <= : Q. upper union all select id from upper. Index i where i. node between : Q. lower and : Q. upper 28 26 22 -25 2. Deklarative Phase – Relationale Bearbeitung durch eine (einzige) SQL-Anfrage – Anzahl von I/O-Zugriffen: O(h·logbn + r/b) Martin Pfeifle, 26. 07. 01
Gliederung des Vortrages Idee 1. ) Einleitung 2. ) RI-Baum 3. ) X-RI-Baum 4) weitere Aspekte 5. ) Fazit Graue Intervalle Einführung Speicherung Mehrstufige Anfragebearbeitung Einführung 1. Filterschritt 2. Filterschritt 3. Filterschritt Experimentelle Ergebnisse Martin Pfeifle, 26. 07. 01
Idee des X-RI-Baumes 1 2 3 4 5 6 7 Objekt A 8 9 10 11 12 13 14 15 M=1 M=3 8 4 12 2 1 6 3 5 10 7 9 14 11 13 15 Feststellung: Hochaufgelöste CAD-Objekte zerfallen in sehr viele kurze Intervalle mit kurzen Abständen zueinander Idee : Fasse Intervalle eines Objektes zu grauen Intervallen zusammen. Martin Pfeifle, 26. 07. 01
Idee des X-RI-Baumes Query Q 1 22 33 4 5 6 77 8 9 10 11 12 13 14 15 Objekt A Objekt B Objekt C 8 4 12 2 1 6 3 10 5 7 9 14 11 13 15 Feststellung: Hochaufgelöste CAD-Objekte zerfallen in sehr viele kurze Intervalle mit kurzen Abständen zueinander Idee : Fasse Intervalle eines Objektes zu grauen Intervallen zusammen. Anfragebearbeitung : Ermittle Schnitte zwischen grauen Intervallen (1. Filterschritt) Ermittle tatsächliche Intervallschnitte A und B schneiden Q B schneidet Q (2. und 3. Filterschritt) Martin Pfeifle, 26. 07. 01
Graue Intervalle graue Intervalle Sei S = ((l 1, u 1), ((l 2, u 2), . . . ((ln, un)) eine Intervallsequenz über N, mit li ui i 1. . n und ui < li+1 i 1. . n-1. Wir nennen I = ((l 1, un), S) ein graues Interval mit angehängter Intervallsequenz S. Wir nennen M = max{li+1 – ui| i 1. . n-1} den MAXGAP-Parameter von I. . S mit n=5 M I mit angehängter Itervallsequenz S. . Aussagen über graue Intervalle Graue Intervalle beginnen und enden mit schwarzen Zellen 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 Intervalle S = ((l 1, u 1), ((l 2, u 2), . . . ((ln, un)) eines grauen Intervals I = ((l 1, un), S) der Länge L wird in einem BLOB gespeichert. + - Bit-orientierter Ansatz . . . Offset-orientierter Ansatz . . . 1 0 1 0 1 1 1 . . . w 1 w 2 w 3 O (L) w 1 w 2 w 3 w 4 O (n * log L) Tabellenaufbau zur Speicherung von Igrey : (Node number, MIN number, MAX number, ID integer, ISDENSITY integer, ISTYPE integer, ISBLOB) Martin Pfeifle, 26. 07. 01
Mehrstufige Anfragebearbeitung DB A 1 A 2 A 3 B 1 B 2 B 3 C 1 C 2 C 3 C 4 D 1 D 2 . . . E 1 A B C D E Query feines Ergebnis A B C D A C B A 11 Q 11 A A 3 Q Q A 3 22 A 22 Q 11 A RI-Tree Q 1 Q 2 grobes Ergebnis + 1. Filterschritt (Index) B 3 Q 1 B 2 Q 1 C C 11 Q Q 11 C 2 Q 2 C 3 Q 2 + FAST GREY TEST A 1 Q 1 A 3 Q 2 ? 2. Filterschritt (CPU) B 3 Q 1 B 2 Q 1 C 1 Q 1 BLOB TEST + 3. Filterschritt (Table+CPU) D 1 Q 1 Martin Pfeifle, 26. 07. 01
1. Filterschritt: RI-Baum Ermitteln aller sich schneidender Paare aus grauen DB- und Query- Intervallen und Ausgabe sortiert nach DB-ID und Wahrscheinlichkeitsmaß P. Wahrscheinlichkeitsmodelle gutes Abbild der Wirklichkeit effizient berechenbar Modell „Ziehen ohne Zurücklegen“ Modell „Ziehen mit Zurücklegen“ Berechnung von P: I I‘ L SQL-statement: Basiert auf erweiterten upper- und lower. Indexen nur Benutzung von built-in-functions kein Aufruf von stored-procedures d = Dichte von I d‘ = Dichte von I‘ L = Schnittlänge der grauen Intervalle Martin Pfeifle, 26. 07. 01
2. Filterschritt: FAST-GREY-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - ohne BLOB - . . . schwarzes Intervall + schwarzes Intervalle + graues Intervall Schnitt schwarzes Intervall geht über Anfangspunkt des grauen Intervalls langes schwarzes Intervall + graues Intervall Anzahl maximal aufeinanderfolgender weißer Zellen kleiner als Länge des schwarzen Intervalls graues Intervall + graues Intervall gemeinsamer Anfangs- bzw. Endpunkt graues Intervall + graues Intervall kein Schnitt L Summe der weißen Felder ist kleiner als Überlappungslänge graues Intervall + beliebiges Intervall Graues Intervall mit nur 2 schwarzen Feldern, deckt anderes Intervall vollständig ab graues Intervall + graues Intervall Graue Intervalle mit nur 2 schwarzen Feldern ohne gemeinsame Eckpunkte Martin Pfeifle, 26. 07. 01
3. Filterschritt: BLOB-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - mit BLOB - . . . o. L A L . . . I I‘ Laufzeitanalyse Bit-orientierter Ansatz Zugriff auf A über Offset o. L O (1) Durchlaufen der L Zellen O (L) Offset-orientierter Ansatz Martin Pfeifle, 26. 07. 01
3. Filterschritt: BLOB-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - mit BLOB A . . . w 1 w 2 w 3 w 4 w 5 w w 66 w 77 L w 8 . . . I n. L =1 I‘ n‘L =3 Laufzeitanalyse Bit-orientierter Ansatz Offset-orientierter Ansatz Zugriff auf A über Offset o. L O (1) Zugriff auf A über Bisektion O (L) Betrachten der n. L bzw. n‘L Intervalle O(n. L+n‘L) Durchlaufen der L Zellen O (log n) Martin Pfeifle, 26. 07. 01
Experimente CAR ca. 200 Bauteile ca. 7 Millionen Intervalle Auflösung: 33 bit (0. . 8. 589. 934. 591) PLANE ca. 10. 000 Bauteile ca. 9 Millionen Intervalle Auflösung: 42 bit (0. . 4. 398. 046. 511. 103) Variation des MAXGAP Parameters in Größenordnungen 0(RI-Baum) 10 1000 100. 000 1. 000 Vergleich RI-Baum X-RI-Baum Martin Pfeifle, 26. 07. 01
CAR Experimente -Intervallverteilung- Gesamtanzahl der Intervalle sinkt mit steigendem MAXGAP-Parameter Durchschnittliche Länge der Intervalle steigt mit steigendem MAXGAP-Parameter Martin Pfeifle, 26. 07. 01
Experimente -Speicherbedarf- (RI-Tree) Besseres Speicherplatzverhalten bei der Intervall-Tabelle beim X-RI-Baum gegenüber dem RI-Baum Deutlich besseres Speicherplatzverhalten bei den Index-Tabellen beim X-RI-Baum gegenüber dem RI-Baum Martin Pfeifle, 26. 07. 01
PLANE CAR Experimente -Laufzeit “Kollisionsanfragen”- Martin Pfeifle, 26. 07. 01
CAR Experimente -Laufzeit “Kollisionsanfragen”- großes Bauteil (PLANE) RI-Baum: 316, 5 X-RI-Baum: 2, 2 PLANE (Maxgap=10. 000) Martin Pfeifle, 26. 07. 01
Experimente -Laufzeit “Boxanfragen” 1. ) Graue Intervalle mit beliebig angehängten Objekten PLANE 2. ) Erweiterung des 3. Filterschrittes (RI-Tree) 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 Martin Pfeifle, 26. 07. 01
Gliederung des Vortrages 1. ) Einleitung 2. ) RI-Baum 3. ) X-RI-Baum 4. ) weitere Aspekte 5. ) Fazit Extensible Indexing * * * Kostenmodell Konstruktive Methode für MAXGAP-Parameter Selbstoptimierende Indexe * * * Martin Pfeifle, 26. 07. 01
Gliederung des Vortrages 1. ) Einleitung 2. ) RI-Baum 3. ) X-RI-Baum 4. ) weitere Aspekte 5. ) Fazit Martin Pfeifle, 26. 07. 01
Fazit 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 Welche Vorteile hat der X-RI-Baum gegenüber dem RI-Baum? Sekundärspeicher X-RI-Baum Hauptspeicher X-RI-Baum Laufzeit X-RI-Baum (dynamische Anfrageobjekte) Martin Pfeifle, 26. 07. 01
- Slides: 31