Obj - Database Systems Group
Obj - Database Systems Group
Obj - Database Systems Group
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2.5 Bewertung von Methoden zur Ähnlichkeitssuche<br />
2.6 Bewertung von Methoden zur<br />
Ähnlichkeitssuche<br />
– Fragestellung<br />
• Anfragebearbeitung in metrischen Räumen oder Vektorräumen<br />
• Gesucht: Feature-Transformation zur Umwandlung komplexer<br />
STMM-<strong>Obj</strong>ekten in metrische <strong>Obj</strong>ekte/Featurevektoren<br />
• Wie gut drückt die Feature-Transformation die Ähnlichkeit der<br />
realen <strong>Obj</strong>ekte aus, d.h. wie gut approximiert die Distanz im<br />
Feature-Raum die Distanz im <strong>Obj</strong>ektraum?<br />
• Bewertung von Methoden zur Ähnlichkeitssuche<br />
(„Ähnlichkeitsmodelle“)<br />
– Testset von <strong>Obj</strong>ekten<br />
– Stelle für alle <strong>Obj</strong>ekte des Testsets Ähnlichkeitsanfragen (typischerweise<br />
k-NN-Queries)<br />
– Evaluiere das Ergebnis dieser Anfragen<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 141
2.5 Bewertung von Methoden zur Ähnlichkeitssuche<br />
– <strong>Obj</strong>ekte mit bekannten Kategorien<br />
• <strong>Obj</strong>ekte sind in Kategorien eingeteilt und entsprechend markiert<br />
(z.B. „Schrauben“, „Nägel“, „Bolzen“, …), d.h. Ergebnis der<br />
Anfragen ist bekannt<br />
• Übersicht<br />
erwünscht unerwünscht<br />
gefunden richtig positive (rp) falsch positive (fp)<br />
nicht gefunden falsch negative (fn) richtig negative (rn)<br />
• Recall (Sensitivität): Wie viele der erwünschten <strong>Obj</strong>ekte wurden<br />
gefunden?<br />
rp<br />
rp + fn<br />
gefundene erwünschte <strong>Obj</strong>ekte<br />
=<br />
alle erwünschten <strong>Obj</strong>ekte<br />
• Precision: Wie viele der gefundenen <strong>Obj</strong>ekte sind erwünscht?<br />
rp<br />
rp + fp<br />
gefundene erwünschte <strong>Obj</strong>ekte<br />
=<br />
alle gefundenen <strong>Obj</strong>ekte<br />
• Spezifität: WS, dass Test für unerwünschtes <strong>Obj</strong>. negativ verläuft<br />
rn richtig negativ<br />
=<br />
rn + fp alle unerwünschten <strong>Obj</strong>ekte<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 142
2.5 Bewertung von Methoden zur Ähnlichkeitssuche<br />
– <strong>Obj</strong>ekte mit unbekannten Kategorien<br />
• Ergebnis der Anfragen ist unbekannt<br />
• Manuelle Evaluation weniger zufälligen k-NN-QueriesQ<br />
• Problem: Qualität des Modells hängt ab von<br />
– einer geringen Anzahl von Query-<strong>Obj</strong>ekten<br />
» Besser: möglichst alle <strong>Obj</strong>ekte der DB spielen eine Rolle bei der Evaluation<br />
– der Wahl dieser Query-<strong>Obj</strong>ekte<br />
» Schlechtes Anfrageergebnis für gegebenes q bedingt nicht schlechtes Modell<br />
» Gutes Anfrageergebnis für gegebenes q bedingt nicht gutes Modell<br />
Model 1:<br />
Model 4:<br />
(query object)<br />
Model 2:<br />
(query object)<br />
(query object)<br />
Model 5:<br />
Model 3:<br />
(query object)<br />
(query object)<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 143
2.5 Bewertung von Methoden zur Ähnlichkeitssuche<br />
• BOSS (Browsing OPTICS-plots for Similarity Search)<br />
[Brecheisen, Kriegel, Kröger, Pfeifle. Proc. SIAM Int. Conf. Data Mining (SDM), 2004]<br />
– Idee: benutze Data Mining Methoden<br />
– Clustering<br />
» Fasse <strong>Obj</strong>ekte in Gruppen zusammen, sodass die <strong>Obj</strong>ekte in einer Gruppe<br />
(Cluster) ähnlich, <strong>Obj</strong>ekte aus verschiedenen Clustern unähnlich sind<br />
» Hierarchisches Clustering: erstelle eine Hierarchie von ähnlichen <strong>Obj</strong>ekten<br />
– Clustererkennung und Clusterrepräsentation<br />
» Erkenne automatisch geeignete Cluster in der Hierarchie<br />
» Stelle jeden Cluster durch einen geeigneten Repräsentanten dar<br />
– Evaluation/Retrieval<br />
t i l<br />
» Hierarchie von Clusterrepräsentanten ist navigierbar<br />
» Evaluation der Cluster um Ähnlichkeitsmodell zu evaluieren<br />
» Ähnlichkeits-basierte Suche nach <strong>Obj</strong>ekten ohne konkretes Anfrageobjekt<br />
angeben zu müssen<br />
Hierarchisches Clustering<br />
Feature-transformierte <strong>Obj</strong>ekte<br />
Navigierbare Hierarchie von<br />
Clusterrepräsentanten<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 144
Kapitel 3<br />
Anfragen auf räumlichen <strong>Obj</strong>ekten<br />
Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s<br />
Sommersemester 2013, LMU München<br />
© 2007 Prof. Dr. Hans-Peter Kriegel, Dr. Peer Kröger, Dr. Peter Kunath, Dr. Matthias Renz, Arthur Zimek
3. Ähnlichkeitssuche in räumlichen <strong>Obj</strong>ekten<br />
Übersicht<br />
3.1 Schnittanfragen räumlicher <strong>Obj</strong>ekte<br />
• Raumpartitionierende Anfrage-Methoden<br />
• Datenpartitionierende Anfrage-Methoden<br />
3.2 Ähnlichkeitssuche in räumlichen <strong>Obj</strong>ekten<br />
• Invarianten<br />
• Räumliche Partitionierungen<br />
• Räumliche Features<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 146
3.2 Ähnlichkeitsmodelle für räumliche <strong>Obj</strong>ekte<br />
3.1 Schnittanfragen räumlicher <strong>Obj</strong>ekte<br />
– Allgemeines<br />
• Unter räumlichen <strong>Obj</strong>ekten verstehen wir <strong>Obj</strong>ekte mit<br />
räumlichem Bezug (Lage im Raum) und räumlicher<br />
Ausdehnung.<br />
• Räumliche <strong>Obj</strong>ekte können neben den räumlichen Attributen<br />
auch nicht-räumliche Attribute enthalten, wie z.B. <strong>Obj</strong>ekt-ID,<br />
Bezeichnung, Farbe, Material, etc.<br />
• Beispiele von räumlichen <strong>Obj</strong>ekten:<br />
y<br />
y<br />
(0) x (0,0) x<br />
z<br />
(0,0,0)<br />
x<br />
Zeitintervalle (1D) Stadtregionen, Landflächen (2D) Flugzeugteile, Autoteile (3D)<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 147
3.1.3 Räumliche Anfragen<br />
– Anfragen auf räumlich ausgedehnten <strong>Obj</strong>ekten<br />
(GEO-<strong>Obj</strong>ekte, CAD-<strong>Obj</strong>ekte)<br />
Bereichsanfragen in<br />
GEO Datenbanken:<br />
Welche Strassen durchlaufen das<br />
ausgewählte Fenster?<br />
Schnittanfragen:<br />
Welche Maschinenteile<br />
haben direkten Kontakt mit<br />
der vorderen rechten<br />
Bremsscheibe?<br />
Räumliche Selektion:<br />
Welche Bauteile befinden sich in der angegebenen Anfragebox?<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 148
3.1.3 Räumliche Anfragen<br />
• Gegeben:<br />
Menge mit räumlich ausgedehnten <strong>Obj</strong>ekten<br />
• Zu unterstützende Anfragen:<br />
Q<br />
Q<br />
R<br />
Punkt-Anfrage Schnitt-Anfrage Fenster-Anfrage<br />
Gegeben ein Anfragepunkt P, ein Anfrageobjekt Q, bzw. ein<br />
Anfragerechteck R (2D)<br />
– Punkt-Anfrage: Finde die <strong>Obj</strong>ekte, die P enthalten.<br />
– Schnitt-Anfrage: Finde die <strong>Obj</strong>ekte, die Q schneiden.<br />
– Fenster-Anfrage: Finde die <strong>Obj</strong>ekte, die R schneiden.<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 149
3.1.3 Räumliche Anfragen<br />
• Zu unterstützende Anfragen (Forts.)<br />
– Räumliche Verbund-Anfrage (Spatial Join)<br />
Gegeben:<br />
Zwei Mengen M={<strong>Obj</strong> M,1 ,..,<strong>Obj</strong> M,m },<br />
N={<strong>Obj</strong>{ N1 N,1 ,<strong>Obj</strong> j Nn N,n } räumlich<br />
ausgedehnter <strong>Obj</strong>ekte<br />
Spatial Join:<br />
Finde die Menge von <strong>Obj</strong>ekt-Paaren<br />
{(<strong>Obj</strong> 1 ,<strong>Obj</strong> 2 ) | <strong>Obj</strong> 1 ∈M, <strong>Obj</strong> 2 ∈N und <strong>Obj</strong> 1 schneidet <strong>Obj</strong> 2 }.<br />
Auch andere räumliche Prädikate möglich, z.B.<br />
» andere Topologien wie enthalten-in<br />
» Distanz-basierte Anfragen<br />
» etc.<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 150
3.1.3 Räumliche Anfragen<br />
– Ziele:<br />
• Effektivität<br />
– Verwaltung von (komplex strukturierten) geometrischen <strong>Obj</strong>ekten<br />
– räumliche Anfragebearbeitung<br />
• Effizienz<br />
– kurze Antwortzeiten für Anfragen<br />
– schnelles Einfügen, Ändern und Entfernen<br />
• Skalierbarkeit<br />
– Verwaltung sehr großer Datenmengen<br />
– Anbindung vieler Benutzer<br />
Reduzierung der Beschreibungskomplexität (d.h. einfachere<br />
Darstellung der <strong>Obj</strong>ekte)<br />
Verwendung geeigneter Zugriffsstrukturen<br />
Mehrstufige Anfragebearbeitung<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 151
3.1.2 CAD-Daten<br />
– Repräsentation Räumlicher <strong>Obj</strong>ekte<br />
• Typischerweise sind räumlich ausgedehnte <strong>Obj</strong>ekte als<br />
geschlossener Kantenzug (2D) oder durch geschlossene<br />
triangulierte Oberflächen beschrieben.<br />
Kantenzug<br />
triangulierte Oberfläche<br />
• Für effiziente Anfragen werden in einem Filterschritt zunächst<br />
räumliche Approximationen der <strong>Obj</strong>ekte verwendet<br />
• Raumpartitionierende Verfahren<br />
– Repräsentationen durch feste Raumpartitionsgrenzen definiert<br />
• Datenpartitionierende Verfahren<br />
– Repräsentationen durch die räumliche Ausdehnung der Daten definiert<br />
i<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 152
3.1.2 CAD-Daten<br />
311 3.1.1 Raumpartitionierende Anfrage-Methoden<br />
• Ausgangslage: Voxel-basierte <strong>Obj</strong>ektbeschreibung (Raster-<br />
Modell)<br />
– Bei der Voxel-basierten Zerlegung wird ein Körper in eine Menge<br />
identischer Zellen (i.d.R. Würfel) zerlegt, die auf einem festen<br />
regelmäßigen Gitter angeordnet sind.<br />
– Beispiel (3D):<br />
– Beschreibung der <strong>Obj</strong>ekte (des <strong>Obj</strong>ektraums) durch drei-dimensionales<br />
dimensionales<br />
ARRAY [...][...][...] OF BOOLEAN (oder seltener eine Liste belegter Zellen)<br />
– Anwendungen:<br />
» Computer Tomographie, Virtual Engineering (CAD), etc.<br />
Nachteil:<br />
genaue Approximation mit hohem Speicherplatzaufwand verbunden<br />
(Auflösung: n Voxel pro Dimension Speicherplatzaufwand p = n 3 )<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 153
3.1.2 CAD-Daten<br />
• Octree-basierte <strong>Obj</strong>ektrepräsentation:<br />
– Hierarchische Variante der Voxel-basierten Zerlegung<br />
– Idee:<br />
» hierarchische binären Unterteilung in Quadranten/Oktanten;<br />
» Darstellung durch größte Quadranten die vollständig gefüllt sind.<br />
Voxel-basierte Zerlegung<br />
Octree (Quadtree) Zerlegung<br />
– Vorteil:<br />
» große einheitliche Flächen/Volumen Anteile werden über wenig große<br />
Partitionen (Quadranten/Oktanten) repräsentiert.<br />
» Randbereiche, die eine beliebig komplexe Struktur (Form) annehmen können,<br />
werden über viele kleine Partitionen repräsentiert, die eine exaktere Darstellung<br />
erlauben.<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 154
3.1.3 Räumliche Anfragen<br />
• Indexierung<br />
– Quadtree-Zellen durch Z-Werte benennen:<br />
Z-Werte:<br />
0111 b<br />
010000 b<br />
10 b<br />
Z-Werte bestehen aus<br />
» Bitfolge durch abwechselnd rechts/links und oben/unten<br />
partitionieren (links/unten 0, rechts/oben 1)<br />
» Level = Anzahl der Bits<br />
rekursive Schritte für die generierung g der Z-Werte:<br />
01<br />
0 1 1<br />
00<br />
010<br />
011<br />
00<br />
1<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 155
3.1.3 Räumliche Anfragen<br />
• Indexierung (Forts.)<br />
– Kodierung der Z-Werte => lineare Ordnung auf den Z-Werten<br />
Code() =<br />
i<br />
=<br />
∑ ⎨<br />
⎧ 1 falls bi<br />
0<br />
( MaxLevel−i)<br />
= 0.. n ⎩2<br />
falls bi<br />
= 1<br />
MaxLevel = maximaler Level für die rekursive Partitionierung<br />
(s.o. Maxlevel = 6)<br />
Maxlevel =4<br />
2 18 23<br />
Z-Wert = 1011<br />
Code(1011) = 23<br />
Z-Wert = 00<br />
Z-Wert = 100<br />
Code(00) = 2 Code(100) = 18<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 156
3.1.3 Räumliche Anfragen<br />
• Verwaltung der <strong>Obj</strong>ekte im B + -Baum<br />
2 18 23<br />
<strong>Obj</strong>ekt: approximative Zerlegung: Tupel-Darstellung (Code,id):<br />
o 1<br />
2 18 23<br />
+ +<br />
(2,o 1 )<br />
(18,o 1 )<br />
(23,o 1 )<br />
Level:<br />
0<br />
0<br />
g<br />
Indexierung der<br />
Tupel im B + -Baum<br />
gemäß Code<br />
1<br />
2<br />
3<br />
4<br />
1 16<br />
9 24<br />
2 17<br />
3 6 18 21<br />
5 8 20 23<br />
4 7 19 22<br />
Maxlevel =4<br />
B + -Baum<br />
(2,o 1 )(2,o 3 )… (4,o 8 )<br />
(8,o 3 )…<br />
(18,o 1 ) …<br />
(23,o 1 ) …<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 157
3.1.3 Räumliche Anfragen<br />
• Schnittanfrage<br />
Anfrage-<strong>Obj</strong>ekt o 1<br />
lower hull (2) upp per hull (2)<br />
2 18 23<br />
0<br />
1 16<br />
9<br />
2<br />
17<br />
Schnittanfrage:<br />
Ermittlung aller <strong>Obj</strong>ekte o ∈ DB die von o 1 geschnitten werden:<br />
• Anfrage bezieht sich auf die 3 Partitionen: 2,18 und 23<br />
• Für jede Anfragepartition P i : Ermittlung aller <strong>Obj</strong>ekte, die P i schneiden, d.h.<br />
24<br />
3 6 18 21<br />
5 8 20 23<br />
4 7 19 22<br />
1) Ermittlung aller Partitionen P j die P i schneiden<br />
• upper hull = Partitionen P j die P i überdecken<br />
z.B.: P i = 2 upper hull = {0,1}<br />
• lower hull = Partitionen P j die von P i<br />
überdeckt werden<br />
z.B.: P i =2 lower hull = {2,3,4,5,6,7,8}<br />
2) Anfrage im B + -Baum gemäß aller P j = upper hull +<br />
lower hull<br />
(kann durch Bereichsanfragen im B + -Baum effizient<br />
unterstützt werden)<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 158
3.1.2 CAD-Daten<br />
• Intervall-basierte <strong>Obj</strong>ektrepräsentation<br />
– Idee: Einbettung in eindimensionalen Raum<br />
» vollständige Zerlegung des Datenraums in<br />
gleichförmige g disjunkte Zellen (Voxelisierung)<br />
» Definition einer linearen Ordnung auf diesen<br />
Zellen (mittels raumfüllenden Kurven)<br />
» Gruppierung direkt aufeinanderfolgender<br />
Zellen zu ein-dimensionalen Intervallen<br />
– Vorteile:<br />
» erlaubt auch nicht-rechteckige<br />
Repräsentationen<br />
» einfache Verwaltung von Intervallen (über<br />
konventionelle (ein-dimensionale)<br />
Indexstrukturen wie den B + -Baum)<br />
– Raumfüllende Kurven:<br />
» Lexikographische Ordnung<br />
» Hilbert-Kurve<br />
» Z-Ordnung<br />
– Z-Ordnung erhält die räumliche Nähe relativ gut<br />
– Z-Ordnung ist effizient berechenbar<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 159
3.1.2 CAD-Daten<br />
• Intervall-basierte <strong>Obj</strong>ektrepräsentation (Fortsetzung):<br />
– Beispiel:<br />
Linearisierung<br />
(Hilbert-Kurve)<br />
voxelisiertes <strong>Obj</strong>ekt<br />
• Indexierung:<br />
Menge von Intervallen<br />
– Codierung von Intervallen<br />
» lineare Ordnung entsprechend der Intervallgrenzen (Startpunkt / Endpunkt)<br />
[Bozkaya and Özsoyoglu: Indexing Valid Time Intervals. Int. Conf. on <strong>Database</strong> and Expert<br />
<strong>Systems</strong> Applications, 1998]<br />
» indirekte Codierung der Intervalle, z.B. Relationaler Intervall-Baum<br />
[H.-P. Kriegel, M. Pötke, T. Seidl: Managing Intervals Efficiently in <strong>Obj</strong>ect-Relational<br />
<strong>Database</strong>s, VLDB 2000]<br />
– Verwaltung der Intervalle in einem B + -Baum<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 160
3.1.2 CAD-Daten<br />
• Vergleich zur Quadtree-basierten Zerlegung:<br />
– Die Z-Ordnung-basierte Intervall-Zerlegung erzeugt signifikant weniger<br />
Rendundanz als die Quadtree/Octree-basierte Zerlegung.<br />
Beispiel:<br />
Quadtree-basierte Zerlegung Z-Ordnungs-basierte Zerlegung<br />
(60 Quadranten) (41 Intervalle)<br />
– Beobachtung:<br />
» Anzahl der Partitionen (Quadtree- oder Intervall-basiert) ist proportional zum Umfang (2d)<br />
bzw. zur Oberfläche (3d) des <strong>Obj</strong>ekts, da eine Raumunterteilung t nur zur Randkodierung di des<br />
<strong>Obj</strong>ekts nötig ist.<br />
» je kleiner das Verhältnis von Oberfläche zu Volumen, desto höher die Redundanz.<br />
» raumpartitionierende Verfahren für komplex strukturierte <strong>Obj</strong>ekte wie z.B. Kabelstränge,<br />
Leitungen nicht geeignet.<br />
Beispiel für komplexes <strong>Obj</strong>ekt:<br />
Fahrwerk eines Autos<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 161
3.1.3 Räumliche Anfragen<br />
• Räumliche Anfrage:<br />
– Problem:<br />
» (Anfrage-)<strong>Obj</strong>ekte zerfallen in viele Partitionen (Quadtree-basierte Zerlegung)<br />
+ +<br />
2 19 23<br />
o 1<br />
» jede Partition des Anfrageobjektes führt zu mehreren Partitions-Schlüsseln, die<br />
angefragt g werden müssen<br />
2 Anfrage 0 + 1 + 2 + + 8<br />
upper hull<br />
lower hull<br />
Anfrage = Sequenz von Primärschlüssel<br />
⇒ sehr viele (Einzel-)Anfragen notwendig => Anfrage sehr teuer<br />
• Ziel: Reduktion der Anfragekosten durch<br />
– Vermeidung von Redundanz<br />
» sammeln aller Anfagepartitionen und Löschen redundanter Partitionen bevor<br />
Anfrage startet<br />
– Geeigneten Indexdurchlauf<br />
» geeignete g Wahl zwischen Scan auf Blattebene und Index-basierter Suche<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 162
3.1.3 Räumliche Anfragen<br />
• Kostenbasierte Suche:<br />
[Kriegel, Kunath, Pfeifle, Renz: Proc. Int. Conf. on <strong>Database</strong> <strong>Systems</strong> for Advanced<br />
Applications (DASFAA), 2004]<br />
– Idee: optimale Nutzung des partiellen Scans im B + -Baum durch Bildung<br />
von Bereichsanfragen<br />
– Gegeben: Anfragesequenz als Menge von Bereichsanfragen<br />
I A I B I C I D I E I F<br />
Primärschlüssel<br />
– Prinzip: kostenoptimale Gruppierung von Bereichsanfragen<br />
Anfragesequenz<br />
B + -Baum<br />
kostenoptimale<br />
Gruppierung der<br />
Anfrageintervalle<br />
Datenseiten<br />
– Kostenabschätzung:<br />
scan scan<br />
» I/O-Kosten für Suche im B + -Baum ~ Höhe des B + -Baum<br />
» I/O-Kosten für Scan auf Blattebene: Abschätzung mittels Statistiken über die<br />
Verteilung der Daten auf Blattebene gemäß dem Suchschlüssel<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 163
3.1.3 Räumliche Anfragen<br />
– Kostenbasierte Anfrage (Bildung der finalen Anfragesequenz):<br />
» konservative Approximation der Anfrage mit nur einem Anfragebereich I 0<br />
» rekursive Zerlegung von I 0 mit dem Ziel die geschätzten Anfragekosten zu<br />
minimieren (Zerlege I 0 in I 1 und I 2 , falls K(I 1 ) + K(I 2 ) < K(I 0 ))<br />
I 0<br />
I 1 I 2<br />
» Zerlegungsheuristik: Zerteile approximierten Anfragebereich an der größten<br />
Lücke zwischen zwei Anfragebereichen<br />
» Zerlegungsalgorithmus:<br />
Decompose(I 0 )<br />
{ zerlege I 0 in I 1 und I 2 (z.B. durch Split an der größten Lücke)<br />
schätze Kosten: K(I 0 ), K(I 1 ), K(I 2 )<br />
if K(I 0 )> K(I 1 ) + K(I 2 ) then<br />
}<br />
else<br />
report {Decompose(I 1 )∪Decompose(I 2 )};<br />
report I 0 ;<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 164
3.1.3 Räumliche Anfragen<br />
312DatenpartitionierendeAnfrageMethoden<br />
3.1.2 Anfrage-Methoden<br />
• Grundlegende Idee:<br />
– direkte Verwaltung von räumlichen <strong>Obj</strong>ekten anstatt Verwaltung von<br />
Raumpartitionen<br />
– Problem: räumliche <strong>Obj</strong>ekte variieren stark in ihrer Größe (Größe =<br />
benötigter Speicherplatz), sind aber auf Seiten fester Größe<br />
abzuspeichern<br />
Organisation von vereinfachten Räumlichen-<strong>Obj</strong>ekten (Approximationen),<br />
z.B. minimal umgebende Rechtecke (MUR)<br />
Verweis auf die exakte Beschreibung (EB) der Räumlichen-<strong>Obj</strong>ekte<br />
Exakte<br />
Beschreibung (EB)<br />
Minimal-Umgebendes<br />
Rechteck (MUR)<br />
(MUR, ..),(MUR, ..) ,(MUR, ..)<br />
EB<br />
Räumliche<br />
Indexstruktur<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 165
3.1.3 Räumliche Anfragen<br />
– Arten von Approximationen<br />
• Konservative Approximationen<br />
– enthalten das zu approximierende <strong>Obj</strong>ekt vollständig<br />
– dienen insbesondere zur Bestimmung von Fehltreffern<br />
Beispiel: ¬(a.kons_appr appr ∩ b.kons_appr) ⇒ ¬ (a ∩ b)<br />
• Progressive Approximationen<br />
– sind vollständig im zu approximierenden <strong>Obj</strong>ekt enthalten<br />
– dienen insbesondere zur Bestimmung von Treffern<br />
Beispiel: (a.prog_appr ∩ b.prog_appr) ⇒ (a ∩ b)<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 166
3.1.3 Räumliche Anfragen<br />
– Konservative Approximationen<br />
• Vergleich verschiedener konservativer Approximationen (2D)<br />
Approximation:<br />
Güte:<br />
# Parameter:<br />
Kreis<br />
215%<br />
3<br />
MUR<br />
193%<br />
4<br />
Ellipse<br />
168%<br />
5<br />
gedrehtes MUR<br />
162%<br />
5<br />
4-Eck<br />
144%<br />
8<br />
5-Eck<br />
133%<br />
10<br />
Konvexe Hülle<br />
123%<br />
O(n)<br />
(Güte = durchschnittliche Flächen der Approximationen in Prozent zur<br />
exakten <strong>Obj</strong>ektfläche (=100%). Gemitteltes Ergebnis über<br />
verschiedene Landkartendatensätze.)<br />
d t Quelle: Brinkhoff T., Kriegel H.-P., Schneider R.: ‘Comparison of Approximations of<br />
Complex <strong>Obj</strong>ects used for Approximation-based Query Processing in Spatial <strong>Database</strong><br />
<strong>Systems</strong>’ , Proc. 9th Int. Conf. on Data Engineering, 1993)<br />
5-Eck: guter Kompromiss zwischen Genauigkeit und<br />
Speicherplatzbedarf<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 167
3.1.3 Räumliche Anfragen<br />
– Progressive Approximationen<br />
• Berechnung schwierig (insbesondere für maximale<br />
progressive Approximationen)<br />
Kreis<br />
(42%)<br />
Rechteck<br />
(45%)<br />
Rechteck + Strecken<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 168
3.1.3 Räumliche Anfragen<br />
– Strukturelle Zerlegung<br />
• Prinzip:<br />
– Zerlegung der <strong>Obj</strong>ekte in mehrere einfache Basiskomponenten<br />
• Vorteile:<br />
– Vereinfachung der algorithmischen Komplexität von Anfragen und<br />
Operationen (z.B. Flächenberechnung, etc.)<br />
– Lokalität von Anfragen und Operationen kann ausgenutzt werden<br />
(Unterstützung von partiellen <strong>Obj</strong>ekt-Zugriff)<br />
=>effiziente Anfragebearbeitung (bei selektiven Anfragen)<br />
• Zerlegungsvarianten:<br />
konvexe Zerlegung Dreiecks-Zerlegung Zerlegung in Trapeze<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 169
3.1.3 Räumliche Anfragen<br />
• Zerlegung eines Polygons in (achsenparallele) Trapeze<br />
(Asano+Asano 1983)<br />
– Berechnung durch Plane-Sweep-Algorithmus: O(n log n) für n Eckpunkte<br />
sweep line<br />
– Speicherplatzaufwand<br />
» Anzahl der Komponenten = n bei n Eckpunkten<br />
» Aber: Vervielfachung des Speicherplatzes p da nun Trapeze statt Punkten<br />
verwaltet, d.h. abgespeichert werden<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 170
3.1.3 Räumliche Anfragen<br />
• Beobachtung<br />
– Operationen auf Zerlegungskomponenten sind einfach<br />
– Aber: Anzahl der Zerlegungskomponenten = O(n)<br />
Kein Gewinn, falls alle Komponenten getestet werden<br />
Einsatz von Datenstrukturen zur Auswahl “relevanter” Komponenten<br />
Einsatz von räumlichen Indexstrukturen (RIS)<br />
• 1. Ansatz<br />
– Eine RIS verwaltet Zerlegungskomponenten aller <strong>Obj</strong>ekte<br />
– Redundanz bei der Anfragebearbeitung<br />
(betrifft insbesondere größere Window Queries)<br />
Räumliche<br />
Indexstruktur<br />
Datenseiten<br />
mit MURs<br />
RIS<br />
Zerlegungskomponenten<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 171
3.1.3 Räumliche Anfragen<br />
• 2. Ansatz<br />
– Eine RIS verwaltet die <strong>Obj</strong>ektapproximationen (MUR) aller <strong>Obj</strong>ekte<br />
– Für jedes <strong>Obj</strong>ekt verwaltet eine separate räumliche Datenstruktur die<br />
Zerlegungskomponenten dieses <strong>Obj</strong>ektes<br />
– Wenn die exakte <strong>Obj</strong>ektgeometrie untersucht werden muss, werden die<br />
Zerlegungskomponenten einschließlich der zugehörigen räumlichen<br />
Datenstruktur vom Sekundärspeicher in den Hauptspeicher p eingelesen<br />
Räumliche<br />
Indexstruktur<br />
Datenseiten<br />
mit MURs<br />
RIS<br />
räumliche<br />
Datenstruktur<br />
RIS<br />
Zerlegungs-<br />
g<br />
komponenten<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 172
3.1.3 Räumliche Anfragen<br />
• TR-Ansatz (Ausprägung des 2. Ansatzes)<br />
– Verwende R-Baum zur Verwaltung der Zerlegungskomponenten<br />
Anpassung des R-Baums an die neuen Anforderungen (TR-<br />
Baum):<br />
– TR-Baum soll für den Hauptspeicher p ausgelegt g werden<br />
» möglichst kleine Knotengröße<br />
– TR-Baum soll möglichst schnell in den Hauptspeicher eingelesen werden<br />
» kompakte Speicherung auf dem Plattenspeicher<br />
» kein dynamischer Aufbau, keine Adressneuberechnungen<br />
– TR-Baum sollte möglichst kompakt gespeichert sein<br />
• Eigenschaften des TR-Baums<br />
– sehr schnelle Bearbeitung geometrischer Operationen (z.B. Punkt-In-<br />
Polygon-Test)<br />
– erheblich höherer Speicherplatzbedarf<br />
– (und damit höhere Übertragungskosten beim Einlesen der exakten<br />
Geometrie)<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 173
3.1.3 Räumliche Anfragen<br />
– Mehrstufige Anfragebearbeitung für räumliche <strong>Obj</strong>ekte<br />
Räumliche Anfrage<br />
drops drops drops drops<br />
DB<br />
Filter Filter Filter Filter Antwort<br />
Kandidaten<br />
1 2 Kandidaten 3 Kandidaten 4<br />
hits hits hits<br />
RIS MURs Approximationen Zerlegungen<br />
Bestimmung der<br />
Bestimmung der<br />
Bestimmung<br />
Einlesen der exakten<br />
Datenseiten, die <strong>Obj</strong>ekte auf den<br />
weiterer Treffer Geometrie und Test der<br />
Treffer und<br />
gefundenen<br />
oder Fehltreffer exakten Geometrie<br />
Kandidaten<br />
Datenseiten, die<br />
durch zusätzliche bezüglich der<br />
enthalten, durch aufgrund ihrer<br />
konservative und Anfragebedingung mit<br />
RIS<br />
MURs als Treffer in<br />
progressive<br />
Hilfe des TR-Baum-<br />
Frage kommen<br />
Approximationen Ansatzes<br />
• GEMINI: Prototyp-System, das diese Anfragebearbeitung<br />
realisiert<br />
i<br />
LMU München – Skript zur Vorlesung: Spatial, Temporal, and Multimedia <strong>Database</strong>s – SoSe 2013 174