Integration von Zugriffsstrukturen in Datenbanken

Werbung
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
Integration von Zugriffsstrukturen in Datenbanken
• Viele Forschungsansätze konzentrieren sich auf die Entwicklung spezieller Zugriffsstrukturen (geometrisch, mehrdimensional, metrisch, etc.),
• z.B. Suchbäume zur Optimierung einzelner Anfragetypen.
• Andere Forschungsansätze zielen darauf ab, existierende Suchbäume um neue
Datentypen erweitern zu können.
• Da das DBS-Anwendungsspektrum immer komplexer wird, ist die Flexibilit ät beider
Ansätze nicht ausreichend.
• Ziel: Erweiterbarkeit sowohl für Anfrage- als auch für Datentypen
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
198
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
Generalized Search Tree (GiST)
Der verallgemeinerte Suchbaum (GiST) beruht:
• auf einem objektorientierten Ansatz,
• besitzt eine Code-Basis und
• kann mit Hilfe von vier benutzerdefinierten Methoden für neue Anwendungen konfiguriert oder spezialisiert werden.
Durch einheitlichen Implementierungskern und benutzerdefinierte Methoden:
☞ Erweiterbarkeit und Code-Reuse
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
199
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
Struktur und Eigenschaften des GiST
• balancierter Suchbaum
• generische Algorithmen für Suche, Einfügen und Löschen
• Knoten besitzen einen variablen Verzweigungsgrad m mit
f · M ≤ m ≤ M und
2
1
≤f ≤
M
2
• Für die Wurzel: 2 ≤ m ≤ M
• f stellt den minimalen Füllfaktor des Baumes dar.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
200
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
• Innere Knoten: Einträge sind (p, Z)-Paare mit
– einem Prädikat p, daß eine “umhüllende Figur” beschreibt und als Wegweiser
für das Durchwandern des Baumes verwendet wird
– und einem Verweis Z auf einen Teilbaum.
• Blattknoten enthalten als Einträge (p, D)-Paare mit
– einem Prädikat p, das als Suchschlüssel verwendet wird
– und einer Satzadresse D.
☞ Ein Indexeintrag kann ein beliebiges Prädikat enthalten, das für alle Prädikate des
abhängigen Teilbaums gilt.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
201
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
GiST: Definition
Definition. Ein GiST vom Typ (f, M, h) ist ein Suchbaum mit den folgenden Eigenschaften:
•
•
•
•
Jeder Weg von der Wurzel zum Blatt hat die Länge h.
Jeder Knoten außer der Wurzel enthält zwischen f · M und M Indexeinträgen
Die Wurzel hat mindestens zwei Indexeinträge, außer sie ist ein Blatt.
Jeder Indexeintrag (p, ptr) in einem Blatt liefert p = T RU E , wenn er mit den
Werten aus dem mit ptr referenzierten Satz instanziiert wird.
• Jeder Indexeintrag (p, ptr) in einem inneren Knoten liefert p = T RU E , wenn er
mit Werten aus Sätzen, die über ptr erreichbar sind, instanziiert wird.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
202
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
Bemerkungen zur Definition
• Für einen Eintrag (p0, ptr0 ), der über ptr erreichbar ist, wird nicht p0 ⇒ p gefordert.
• Auf derselben Baumebene sind Einträge mit umhüllenden Prädikaten gestattet, die
sich überlappen können.
• Dadurch kann die Pfadauswahl bei der Suche mehrdeutig werden.
• Die Vereinigung aller umhüllenden Prädikate kann “Löcher” aufweisen.
• Die Blattknoten des GiST partitionieren die Menge der gespeicherten Objektreferenzen. Zu jedem Objekt darf es nur einen Blatteintrag geben.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
203
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
Operationen für den GiST
SEARCH liefert für ein Suchprädikat p alle Blatteinträge, die p erfüllen. Dazu ist üblicherweise rekursive Suche notwendig.
INSERT fügt einen Indexeintrag (p, D) in den GiST ein. Es kann mehr als einen
Teilbaum geben, in den der GiST eingefügt werden kann.
DELETE entfernt ein (p, D)-Paar aus einem Blattknoten.
☞ Diese generischen Operationen werden durch eine Menge von Methoden erg änzt,
die das genaue Verhalten der Operationen und der Organisation des Suchbaums
kapseln.
☞ Dadurch läßt sich der GiST als Zugriffsstruktur spezialisieren.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
204
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
GiST Parameter
• Umhüllende Prädikate (Bounding Predicates)
Um einen hohen Verzweigungsgrad und geringe Suchkosten zu erzielen, müssen
diese Prädikate kompakt zu speichern und einfach zu überprüfen sein.
Beispiel R-Baum: mehrdimensionale Rechtecke
• Einfügeheuristik (Penalty Metric)
Diese Heuristik muß mit Hilfe der umhüllenden Prädikate den Modifikationsaufwand bei alternativer Möglichkeiten der Einfügung abschätzen.
Beispiel R-Baum: minimale Rechteckerweiterung (Fläche)
• Knotenaufteilung (PickSplit Algorithm)
Algorithmus zur Aufteilung eines Knotens bei einem Überlauf
Beispiel R-Baum: Split-Heuristik auf Basis einer heuristischen Minimierung der entstehenden Gesamtfläche
☞ Für die Realisierung dieser Parameter werden im GiST vier abstrakte Methoden
definiert, die dann für einen spezifischen Index mit einer Implementierung versehen
werden.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
205
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
GiST Spezialisierung durch Schlüsselmethoden
• Consistent(E, q)
Für einen gegebenen Eintrag E = (p, ptr) und ein Anfrageprädikat q liefert die
Methode F ALSE , falls (p ∧ q) nicht erfüllbar ist, sonst T RU E .
• U nion(P )
Eine Menge P = {(p1 , ptr1), . . . , (pn, ptrn)} von Einträgen liefert ein Prädikat
r zurück, das von allen über ptr1, . . . , ptrn erreichbaren Tupeln erfüllt wird.
• P enalty(E1 , E2)
Zwei Einträge E1 = (p1 , ptr1) und E2 = (p2, ptr2) liefern einen Penalty-Wert
zurück, der den Aufwand des Einfügens von E2 in den Teilbaum mit E1 als Wurzel
beschreibt.
• P ickSplit(P ) Eine Menge P = {(p1 , ptr1), . . . , (pM +1 , ptrM +1 } wird so in
zwei Mengen P1 und P2 aufgeteilt, daß jede der beiden Mengen mindestens f · M
Einträge enthält.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
206
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
• Compress(E)
Für einen Eintrag E = (p, ptr) wird ein Eintrag (π, ptr) geliefert, wobei π eine
komprimierte Darstellung von p ist.
• Decompress(E)
Für eine komprimierte Darstellung (π, ptr) eines Eintrags mit π = Compress(p)
wird ein Eintrag (r, ptr) geliefert, mit p ⇒ r.
Bemerkung: Die Kompression kann verlustbehaftet sein.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
207
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
Beispiel: Integer
• Schlüssel repräsentieren Intervalle [x, y).
• Anfrage: Contains([a, b), v) = T RU E :⇔ a ≤ v < b
Implementierung:
• Consistent(E, q) := (x < b) ∧ (y > a)
• U nion(P ) = [min(xi ), max(yi))
• P enalty(E1 , E2) =
– max(x1 − x2, 0) falls E1 der am weitesten rechts stehende Eintrag ist.
– max(y1 − y2, 0) falls E1 der am weitesten links stehende Eintrag ist.
– max(y2 − y1, 0) + max(x2 − x1 , 0) sonst
• P ickSplit(P ): P1 seien die ersten b |P2 | c Einträge und P2 die letzen d |P2 | e.
Der GiST entspricht so genau einem B*-Baum.
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
208
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
Weitere Beispiel: Polygone, Integer-Mengen ✎
GiST-Implementierungen existieren für:
• Informix
• Postgres
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
209
4. Zugriffsstrukturen für komlpexe Objekte
Integration von Zugriffsstrukturen in DBs
Integration von Zugriffsstrukturen mittels Tabellenfunktion
Objekte.oid = Indexstruktur.oid
OID
4711
GeoBlob
NonGeoAttr.
See
4711
Relation
R−Baum als Tabellenfunktion
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
210
4. Zugriffsstrukturen für komlpexe Objekte
•
•
•
•
Integration von Zugriffsstrukturen in DBs
Zugriffsstruktur für ein Prädikat wird als Tabellenfunktion bereitgestellt.
Tabellenfunktion ist gemäß Prädikat parametrisiert.
CARDINALITY-Klausel bei der Tabellenfunktion verwenden!
Bei großer Relation sollte der Optimizer als Strategie die Berechnung der Tabellenfunktion bevorzugen.
Beispiel: ✎
Datenbanksysteme: Weiterführende Konzepte — FH Bonn-Rhein-Sieg, WS 05/06
211
Herunterladen