Martin Pfeifle, 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, Gliederung des Vortrages 1.) Einleitung 2.) RI-Baum 3.) X-RI-Baum 4) weitere Aspekte 5.) Fazit
Martin Pfeifle, Gliederung des Vortrages 1.) Einleitung 2.) RI-Baum 3.) X-RI-Baum 4) weitere Aspekte 5.) Fazit Räumliche Datenbanken Räumliche Objekte Anfragebearbeitung
Martin Pfeifle, Rä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äumliche Objekte RäumlicheDatenbanksysteme (basierend auf erweiterbarem ORDBMS)
Martin Pfeifle, Beschreibung 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, Anfragebearbeitung Filter - Schritt Kandidaten Menge für Verfeinerungs- Schritt CAD- DB Verfeinerungs- Schritt ORDBMSORDBMS CADCAD Ergebnis RI-BaumX- hochauflösende X-
Martin Pfeifle, Gliederung des Vortrages Grundlagen des Relationalen Intervall Relationalen Intervall Baumes Baumes Anfragebearbeitung 1.) Einleitung 2.) RI-Baum 3.) X-RI-Baum 4) weitere Aspekte 5.) Fazit
Martin Pfeifle, Grundlage: Binärer Intervallbaum [ Edelsbrunner 1980 ] Relationaler Intervall Baum 3a3a 15 a 12 c 5c5c 15 a A B C D 7b7b 1b1b 13 d
Martin Pfeifle, A B C D Grundlage: Binärer Intervallbaum [ Edelsbrunner 1980 ] 1. Idee: Virtualisierung der Primärstruktur Relationaler Intervall Baum 3a3a 15 a 12 c 5c5c 15 a b7b 1b1b 13 d h – 1 root = 2 h–1
Martin Pfeifle, Grundlage: Binärer Intervallbaum [ Edelsbrunner 1980 ] 1. Idee: Virtualisierung der Primärstruktur Relationaler Intervall Baum 2. Idee: Zwei B+-Bäume speichern Intervallgrenzen nodelower id bacdbacd nodeupper id bcadbcad lowerIndexupperIndex root = 2 h– a3a 15 a 12 c 5c5c 15 a 7b7b 1b1b 13 d A B C D
Martin Pfeifle, Anfragebearbeitung 1. Prozedurale Phase 2. Deklarative Phase
Martin Pfeifle, Anfragebearbeitung 1. Prozedurale Phase 16 = root 24 = fork Deklarative Phase – Relationale Bearbeitung durch eine (einzige) SQL-Anfrage – Anzahl von I/O-Zugriffen: O(h·log b n + 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 left where i.node = left.node and i.upper >= :Q.lower union all select id from lowerIndex i, :rightNodes right where i.node = right.node and i.lower <= :Q.upper union all select id from upperIndex i where i.node between :Q.lower and :Q.upper upper = = lower Schnittanfrage Q
Martin Pfeifle, Gliederung des Vortrages Idee Graue Intervalle Einführung Einführung Speicherung Speicherung Mehrstufige Anfragebearbeitung Anfragebearbeitung Einführung Einführung 1. Filterschritt 1. Filterschritt 2. Filterschritt 2. Filterschritt 3. Filterschritt 3. Filterschritt Experimentelle Ergebnisse Ergebnisse 1.) Einleitung 2.) RI-Baum 3.) X-RI-Baum 4) weitere Aspekte 5.) Fazit
Martin Pfeifle, Idee des X-RI-Baumes 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. Objekt A M=3 M=1
Martin Pfeifle, Idee des X-RI-Baumes Feststellung: Hochaufgelöste CAD-Objekte zerfallen in sehr viele kurze Intervalle mit kurzen Abständen zueinander Anfragebearbeitung : Ermittle Schnitte zwischen grauen Intervallen (1.Filterschritt) Ermittle tatsächliche Intervallschnitte (2. und 3. Filterschritt) Objekt A Objekt B B schneidet Q A und B schneiden Q Query Q Idee : Fasse Intervalle eines Objektes zu grauen Intervallen zusammen. Objekt C
Martin Pfeifle, Graue Intervalle graue Intervalle S mit n=5 I mit angehängter Itervallsequenz S.. M Sei S = ((l 1,u 1 ), ((l 2,u 2 ),... ((l n,u n )) eine Intervallsequenz über N, mit l i u i i 1..n und u i < l i+1 i 1..n-1. I = ((l 1,u n ), S)graues Interval Wir nennen I = ((l 1,u n ), S) ein graues Interval mit angehängter S Intervallsequenz S. Wir nennen M = max{l i+1 – u i | i 1..n-1} den MAXGAP-Parameter von I.. 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, Speicherung der grauen Intervalle S = ((l 1,u 1 ), ((l 2,u 2 ),... ((l n,u n )) eines grauen Intervals I = ((l 1,u n ), S) der Länge L wird in einem BLOB gespeichert. +- Tabellenaufbau zur Speicherung von I grey : (Node number, MIN number, MAX number, ID integer, ISDENSITY integer, ISTYPE integer, ISBLOB BLOB) Bit-orientierter Ansatz O (L) Offset-orientierter Ansatz... w1w1 w1w2w3w4w1w2w3w4 O (n * log L) w2w2 w3w3 w4w4
Martin Pfeifle, Mehrstufige Anfragebearbeitung A 1 Q 1 A 3 Q 2 A 2 Q 1 B 3 Q 1 B 2 Q 1 C 1 Q 1 C 2 Q 1 C 2 Q 2 C 3 Q 2 D 1 Q 1 A 1 Q 1 A 3 Q 2 C 1 Q 1 DB Query A 1 Q 1 A 3 Q 2 A 2 Q 1 + B 3 Q 1 C 1 Q 1 C 2 Q 1 B 2 Q 1 ? feines Ergebnis RI-Tree 1.Filterschritt (Index) FAST GREY TEST 2.Filterschritt (CPU) BLOB TEST 3.Filterschritt (Table+CPU) D1 Q1D1 Q1 A C B grobes Ergebnis C B A D Q 1 Q 2 A 1 A 2 A 3 A B 1 B 2 B 3 B C 1 C 2 C 3 C 4 C D 1 D 2 D E 1 E... B 3 Q 1 + +
Martin Pfeifle, Filterschritt: RI-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
Martin Pfeifle, Filterschritt: FAST-GREY-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - ohne BLOB - schwarzes Intervalle + graues Intervall schwarzes Intervall geht über Anfangspunkt des grauen Intervalls graues Intervall + graues Intervall gemeinsamer Anfangs- bzw. Endpunkt graues Intervall + graues Intervall Summe der weißen Felder ist kleiner als Überlappungslänge... schwarzes Intervall + schwarzes Intervall L 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 Schnitt kein Schnitt langes schwarzes Intervall + graues Intervall Anzahl maximal aufeinanderfolgender weißer Zellen kleiner als Länge des schwarzen Intervalls
Martin Pfeifle, Filterschritt: BLOB-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - mit BLOB -... I‘ I Laufzeitanalyse Bit-orientierter Ansatz Zugriff auf A über Offset o L Durchlaufen der L Zellen Offset-orientierter Ansatz L oLoL A O (1) O (L)
Martin Pfeifle, Filterschritt: BLOB-TEST Test auf „Inneren Schnitt“ der grauen Intervalle - mit BLOB -... L I‘ I Laufzeitanalyse w 1 w 2 w 3 w 4 w 5 w 6 w 7 w 8 Offset-orientierter Ansatz Zugriff auf A über Bisektion Betrachten der n L bzw. n‘ L Intervalle A w6w6 w4w4 w7w7 Bit-orientierter Ansatz Zugriff auf A über Offset o L Durchlaufen der L Zellen O (1) O (log n) O(n L +n‘ L ) O (L) n L =1 n‘ L =3
Martin Pfeifle, Experimente Variation des MAXGAP Parameters in Größenordnungen 0(RI-Baum) Vergleich RI-Baum X-RI-Baum CAR PLANE ca. 200 Bauteile ca Bauteile ca. 7 Millionen Intervalle ca. 9 Millionen Intervalle Auflösung: 33 bit ( ) Auflösung: 42 bit ( )
Martin Pfeifle, Experimente CAR Gesamtanzahl der Intervalle sinkt mit steigendem MAXGAP-Parameter Durchschnittliche Länge der Intervalle steigt mit steigendem MAXGAP-Parameter -Intervallverteilung-
Martin Pfeifle, Experimente -Speicherbedarf- 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 (RI-Tree)
Martin Pfeifle, Experimente -Laufzeit “Kollisionsanfragen”- PLANE CAR
Martin Pfeifle, Experimente -Laufzeit “Kollisionsanfragen”- PLANE CAR großes Bauteil (PLANE) RI-Baum: 316,5 X-RI-Baum: 2,2 (Maxgap=10.000)
Martin Pfeifle, (RI-Tree) Experimente -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 PLANE 1.) Graue Intervalle mit beliebig angehängten Objekten 2.) Erweiterung des 3. Filterschrittes
Martin Pfeifle, Gliederung des Vortrages Extensible Indexing * **Kostenmodell Konstruktive Methode für MAXGAP-Parameter SelbstoptimierendeIndexe* ** 1.) Einleitung 2.) RI-Baum 3.) X-RI-Baum 4.) weitere Aspekte 5.) Fazit
Martin Pfeifle, Gliederung des Vortrages 1.) Einleitung 2.) RI-Baum 3.) X-RI-Baum 4.) weitere Aspekte 5.) Fazit
Martin Pfeifle, Welche Vorteile hat der X-RI-Baum gegenüber dem RI-Baum? Sekundärspeicher X-RI-Baum RI-BaumFazit 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-Baum RI-Baum Laufzeit X-RI-Baum RI-Baum (dynamische Anfrageobjekte)