Upload
han-eberly
View
105
Download
2
Embed Size (px)
Citation preview
Geometrische Objekte in Datenbanken
Martin Pfeifle
Institut für Informatik, Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
Prof. Dr. Hans-Peter Kriegel
Kriegel, Pfeifle 08.02.2002 - 2
Überblick
• CAD-Datenbanken
• Intervalle in Datenbanken
• Demonstration
Kriegel, Pfeifle 08.02.2002 - 3
Digitaler Zusammenbau
Kriegel, Pfeifle 08.02.2002 - 4
Haptische Simulation
Kriegel, Pfeifle 08.02.2002 - 5
CAD-Datenbanken: Probleme
• Komplexe geometrische Objekte– Bauteil-Oberflächen und -Volumina– Hüllgeometrien, ...
• Aufwendige Operationen– Bereichs- und Kollisionsanfragen– Kraft-Rückkopplung, …
Kriegel, Pfeifle 08.02.2002 - 6
CAD-Datenbanken: Probleme
Kriegel, Pfeifle 08.02.2002 - 7
CAD-Datenbanken: Probleme
• Komplexe geometrische Objekte– Bauteil-Oberflächen und -Volumina– Hüllgeometrien,...
• Aufwendige Operationen– Bereichs- und Kollisionsanfragen– Kraft-Rückkopplung, …
• Große Datenmengen– Millionen von geometrischen Objekten– Viele Gigabytes Speicherplatz
• Viele Benutzer– Interne und externe Konstrukteure– Fertigungsplanung, Einkauf, …
Kriegel, Pfeifle 08.02.2002 - 8
CAD-Datenbanken: Ziele
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
Kriegel, Pfeifle 08.02.2002 - 9
Überblick
• CAD-Datenbanken
• Intervalle in Datenbanken
• Demonstration
Kriegel, Pfeifle 08.02.2002 - 10
Triangulation
Abbildung auf Intervalle
Voxelmenge
Triangulation
Voxelmenge
Intervallsequenz
Kriegel, Pfeifle 08.02.2002 - 11
Schnittanfragen
• Intervalle sind ausgedehnte Objekte im 1D
J226M51B43A47
1 3 5 7 9 11 13 15
66 88
„„Welche Datenbankintervalle schneiden den Anfragebereich?“Welche Datenbankintervalle schneiden den Anfragebereich?“
• Verwaltung in relationalen Datenbanksystemen+ Gut geeignet für große Datenmengen und viele Benutzer
– Keine unmittelbare Unterstützung für Intervalldaten
Kriegel, Pfeifle 08.02.2002 - 12
Naives Relationales Schema
• Relationales Schemacreate table Intervals (partid, begin, end);
• Schnittanfrage (lower, upper)select * from Intervals where begin <= upper and end >= lower;
• Zeitverhalten– O(n) für n Intervalle, da sequentiell gesucht wird– Erwünscht wäre eine sublineare Antwortzeit– Können Indexe eingesetzt werden?
Intervalspartid begin endJ226 3 15M51 1 7B43 5 13A47 10 15
Kriegel, Pfeifle 08.02.2002 - 13
Bisherige Ansätze
• Hauptspeicherstrukturen– keine Persistenz– keine Blockstruktur
• Sekundärspeicherstrukturen+ Persistent, sehr effizient– Erweiterungen im DB-Kern, in
der Regel nicht möglich
• Relationale Speicherung+ Benutzung statt Erweiterung+ Einfache Implementierung+ Effizienz muß nicht leiden
Interval Tree (‘80), Segment Tree (‘80), Priority Search Tree (‘85), Interval Skip List (‘90)
Time Index (‘90), Segment R-tree (‘91), Path Caching (‘94), TP-Index (‘94), External Segment Tree (‘94), IntervalB-tree (‘95), External Memory Interval Tree (‘96), Interval B+-tree (‘98)
D-Order (‘96), Window List (‘97), Linear Segment Tree (‘99), MAP21 (‘99)
Disk
No DB
SQL
Kriegel, Pfeifle 08.02.2002 - 14
Bisherige Ansätze
• Hauptspeicherstrukturen– keine Persistenz– keine Blockstruktur
• Sekundärspeicherstrukturen+ Persistent, sehr effizient– Erweiterungen im DB-Kern, in
der Regel nicht möglich
• Relationale Speicherung+ Benutzung statt Erweiterung+ Einfache Implementierung+ Effizienz muß nicht leiden
Interval Tree (‘80), Segment Tree (‘80), Priority Search Tree (‘85), Interval Skip List (‘90)
Time Index (‘90), Segment R-tree (‘91), Path Caching (‘94), TP-Index (‘94), External Segment Tree (‘94), IntervalB-tree (‘95), External Memory Interval Tree (‘96), Interval B+-tree (‘98)
D-Order (‘96), Window List (‘97), Linear Segment Tree (‘99), MAP21 (‘99)x
Disk
No DB
SQL
Kriegel, Pfeifle 08.02.2002 - 15
5B 13B
Der Relationale Intervallbaum
• Primärstruktur: Binärbaum mit Wurzel 2h-1 über dem Bereich [1..2h-1]
• Intervalle: Jedes Intervall ist genau einem Knoten zugeordnet
• Sekundärstruktur: Sortierte Listen von Intervallgrenzen an den Knoten
• Relationale Speicherung: Abbildung auf Indextabellen (VLDB‘2000)
J226
15
8
1 3 5 7 13119
2 6 10 14
4 12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
7M1M
3J
15J5B 10A 15A
M51B43A47
Kriegel, Pfeifle 08.02.2002 - 16
Relationale Speicherung
• Zwei relationale Indexe speichern die Intervallgrenzen:
lowerIndex (node,lower,id): 4,1,M51 8,3,J226 8,5,B434,1,M51 8,3,J226 8,5,B43 12,10,A4712,10,A47
upperIndex (node,upper,id): 4,7,M51 8,13,B43 8,15,J2264,7,M51 8,13,B43 8,15,J226 12,15,A4712,15,A47
• In jedem RDBMS realisierbar: Keine internen Erweiterungen
15
8
1 3 5 7 13119
2 6 10 14
4 123J
5B7M1M15J
13B
10A 15A
Kriegel, Pfeifle 08.02.2002 - 17
Anfragevorbereitung
• Steige (arithmetisch) von root bis lower und bis upper ab:– Für Intervalle i in Knoten links von lower: Teste i.upper lower
– Für Intervalle i in Knoten rechts von upper: Teste i.lower upper
– Für Knoten von lower bis upper: Ausgabe aller Intervalle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
lower upperlower upper
root
20
25
26
forkfork
22
28
24
23
16
Kriegel, Pfeifle 08.02.2002 - 18
Relationale Bearbeitung
Join-Anfrage auf den Indexen:SELECT id FROM upperIndex i, leftQueries left
WHERE i.node = left.node AND i.upper >= lower
UNION ALL
SELECT id FROM lowerIndex i, rightQueries right
WHERE i.node = right.node AND i.lower <= upper
UNION ALL
SELECT id FROM lowerIndex i /*oder upperIndex i*/
WHERE i.node BETWEEN lower AND upper23 24 25 26
28
16 2220
Kriegel, Pfeifle 08.02.2002 - 19
Skalierbarkeit: Analytisch
Wie verhält sich das System bei großen Datenmengen?
• Gegeben sei eine Platte mit Blockgröße b, ein Relationaler Intervallbaum der Höhe h und eine Menge von n Intervallen.
• Speicherplatzbedarf: O(n/b) Plattenblöcke.– Platzbedarf ist linear abhängig von der Datenbankgröße.
• Einfügen oder Entfernen eines Intervalls: O(logbn) Plattenzugriffe.– Einfügezeit ist logarithmisch abhängig von der Datenbankgröße.
• Schnittanfrage mit r Ergebnissen: O(h·logbn + rb) Plattenzugriffe.– Suchzeit wird dominiert von der Größe der Ergebnismenge.
Disk
Kriegel, Pfeifle 08.02.2002 - 20
Skalierbarkeit: Praktisch
• Implementierung auf einem
kommerziellen RDBS
(Oracle8i Datenbankserver)
• Vergleich mit relationalen
Speicherungsstrukturen
Relational R-TreeRelational R-Tree
Linear OctreeLinear Octree
Relational Interval Tree
Skalierbarkeit
0
2
4
6
8
0 400,000 800,000 1,200,000 1,600,000
database size [no. of polygons]
resp
on
se t
ime
[sec
]
Relational Interval Tree
Linear Octree
Relational R-tree
Kriegel, Pfeifle 08.02.2002 - 21
Überblick
• CAD-Datenbanken
• Intervalle in Datenbanken
• Demonstration
Kriegel, Pfeifle 08.02.2002 - 22
CAD-Datenbanken: Realisierung
DBS (Oracle8i)
Web-Server (Apache)HTTP/HTML
JDBC/Java
HTTP/VRML
(ICDE ‘01, SIGMOD ‘01)