1 / 82

DataGuides und Indexstrukturen für semistrukturierte Daten

DataGuides und Indexstrukturen für semistrukturierte Daten. Gliederung. Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees,

meira
Download Presentation

DataGuides und Indexstrukturen für semistrukturierte Daten

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DataGuides und Indexstrukturenfür semistrukturierte Daten

  2. Gliederung • Fragen: • Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? • Wie evaluiert man Queries effizient?Nicht dasselbe • Gliederungspunkte: • DataGuides und k-Representative Objects, • PAT-Trees, • Query Subsumption und Query Filtering sowie File-basiertes Query Processing, • Verwendung von RDBMSen, • Verwendung objektorientierter Datenbank-Technologie. Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  3. Wiederholung: Querysprachen für semistrukturierte Daten • Mit OEM geht Querysprache einher. • Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. • Beispiele: • select Restaurant.Entrée • select Restaurant.Namewhere Restaurant.Entrée = “Burger” • Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente;Beispiele (zum Protokoll-Dokumenttyp): • “Gib’ mir alle Empfehlungen von Roger Weber.” • “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  4. Evaluierung von Queries über semistrukturierten Daten • Problem: • Effiziente Evaluierung von Anfragen mit Pfadausdrücken, • Inspektion aller Dokumente i.a. nicht akzeptabel. • Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  5. Ziel 1 - Volltextindex vs. speziellere Indexstrukturen • Beispielquery: “Selektiere alle Empfehlungen von Weber.” • Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. • Probleme, die Volltextindex nicht löst: • Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. • Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. • Feldweiser Index wäre besser.Feld ‘Empfehlender’ • Am besten: Index für Text unter jedem Pfad.select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  6. Ziel 2 - Schemainformation für Queryoptimierung • Beispiel:select Restaurant.Namewhere Restaurant.Entrée = “Burger” • Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. • Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  7. DataGuides • DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. • Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  8. DataGuides - Gliederung • Was sind DataGuides? n • Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) • Erweiterungen von DataGuides;Annotationen von DataGuides, • Annotationen und Query Evaluierung(Problem 2). • I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? • Schlussbemerkungen zu DataGuides Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  9. Data Guides • Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts(OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) • Unterschied zwischen ‘DataGuide’ und ‘Schema’:DataGuide ist konform zur Datenbank, nicht umgekehrt.(Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  10. Beispiel-Datenbank 1 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM Restaurant Restaurant Bar 2 3 4 Plus Name Inhaber Name Manager Entree Entree Entree Telefon 9 10 11 5 8 6 7 Darbar Rind Lamm Klein Chili Burger 555-1234

  11. DataGuides - Beispiel 12 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM Bar Restaurant 13 14 Name Manager Inhaber Entree Telefon 19 18 15 17 16

  12. DataGuides • Definition: Ein DataGuide einer OEM-Datenbank s ist ein OEM Objekt d, so dass • jeder label path in s genau eine data path-Instanz in d hat, • jeder label path von d ein label path von s ist. • DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  13. DataGuides Kurze, akkurate, und ‘geeignete’ Zusammen-fassung der Struktur einer Datenbank. • Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. • Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. • ‘Geeignetheit’: DataGuide ist OEM Objekt( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  14. Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  15. Query Processing mit DataGuides (1) • Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. • Beispiel: gpe = Guide.A%.B% Motivation DataGuide - Einleitung - Struktur - QueryProc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM A2 A1 D C B

  16. Annotationen der DataGuide-Knoten • Beispiele für Annotationen: • Listen von Pointern auf Datenbank-Objekte, d.h. DataGuide ist Speicherstruktur der Form||Label Path --> {Objekt}||, • Häufigkeiten, • Volltext-Index. • Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  17. Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Bar Motivation DataGuide - Einleitung - Struktur - QueryProc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM 13 14 2 4 3 Plus Inhaber Name Entree Name Inhaber Manager Manager Entree Entree Name Telefon Entree Telefon 11 19 18 9 10 5 8 15 6 17 16 7 Klein Darbar Lamm Rind Chili Burger Annotation 555-1234 Erläutern, wie Anfrage unterstützt wird. • DataGuide ist nur Zusammenfassung der Datenbank. • Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: • ‘Selektiere alle Restaurants, die einen Inhaber haben.’ • ‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’

  18. Query Processing mit DataGuides (2) • Beispiel:select DBS.Group_Member.Publication.Yearwhere DBS.Group_Member.Publication.Year < 1975 • Effizientere Queryevaluierung: • Liste von Pointern auf Datenbank-Objekte.Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. • Volltext-Index, • Häufigkeitsinformation. Motivation DataGuide - Einleitung - Struktur - QueryProc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  19. DataGuides - weiteres Beispiel 1 11 18 B B A B A A B Motivation DataGuide - Einleitung - Struktur - Query Proc. - StrongDGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM 4 2 13 3 12 19 C C C C C C 7 6 5 15 14 20 D D D D D D 9 10 8 17 16 21 Zwei entsprechende DataGuides Datenbank Hier nur sagen, dass es mehrere DataGuides geben kann.

  20. Minimale DataGuides • Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. • Nachteile minimaler DataGuides: • Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel • Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich.Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? Motivation DataGuide - Einleitung - Struktur - Query Proc. - StrongDGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  21. Strong DataGuides • Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. • Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank.Naechste Folie Illustration. Motivation DataGuide - Einleitung - Struktur - Query Proc. - StrongDGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  22. Strong DataGuides - Illustration 1 11 18 B A B B A B A Motivation DataGuide - Einleitung - Struktur - Query Proc. - StrongDGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM 13 4 2 12 19 3 Annotation von Objekt 20: weniger präzise Annotations- möglichkeiten als im anderen DataGuide. C C C C C C 7 15 6 5 14 20 D D D D D D 17 9 10 8 16 21 Entsprechende DataGuides Datenbank

  23. Strong DataGuides - Definition • OEM Objekte s und d, d ist DataGuide für s, • Ts(l) - Target Set von l in s, • Td(l) - (singleton) Target Set von l in d, • Ls(l) = {m|Ts(m)=Ts(l)},d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, • Ld(l) = {m|Td(m)=Td(l)},d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. • d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l)Am Beispiel erlaeutern - naechste Folie. Motivation DataGuide - Einleitung - Struktur - Query Proc. - StrongDGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  24. Strong DataGuides - Illustration 1 11 18 B A B B A B A Motivation DataGuide - Einleitung - Struktur - Query Proc. - StrongDGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM 13 4 1 12 19 3 l=A.C Ls(l)={A.C} Ld(l)={A.C, B.C} C C C C C C 7 15 6 5 14 20 D D D D D D 17 9 10 8 16 21 Entsprechende DataGuides Datenbank

  25. Aufbau eines Strong DataGuides // MakeDG: algorithm to build a strong DataGuide // Input: o, the root oid of a source database // Effect: dg is a strong DataGuide for o targetHash: global empty hash table, to map source target sets to DataGuide objects dg: global oid, initially empty MakeDG(o) { dg = NewObject() targetHash.Insert({o}, dg) RecursiveMake({o}, dg) } RecursiveMake(t1, d1) { p = all children <label, oid> of all objects in t1 foreach (unique label l in p) { t2 = set of oids paired with l in p d2 = targetHash.Lookup(t2) if (d2 != nil) { add an edge from d1 to d2 with label l } else { d2 = NewObject() targetHash.Insert(t2, d2) add an edge from d1 to d2 with label l RecursiveMake(t2, d2) } } } Motivation DataGuide - Einleitung - Struktur - Query Proc. - StrongDGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  26. Aufbau eines Strong DataGuides - Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ 1 B B Motivation DataGuide - Einleitung - Struktur - Query Proc. - StrongDGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM 3 2 C C 5 4

  27. Einordnung DataGuides Noch akkuratere Beschreibung der Datenbank grundsätzlich möglich, z.B. um festzulegen, welche Kombination von Labels von ausgehenden Kanten vorkommen, z.B.‘Inhaber’ oder ‘Manager’ (geht mit XML-DTDs). Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  28. DataGuides und Alternativen • DataGuides: Relativ akkurate Beschreibung, • k-Representative Objects (k-ROs)und k-Indices/T-Indices: • ungefähre Beschreibung, • Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. • Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. • Im folgenden Bsp. ist jene Pfadlänge 2.(Beispiel ist aber zufällig richtig für längere Pfade.) Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  29. AnvisierteStruktur: DataGuide: 1 $ a a c c b b b a c b k-Representative Objects • Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. • Beispiel: Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM 1 a a 3 2 c 4 a b b 5 Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur diedirekt von der Wurzel. a b 6

  30. Verwendung von k-Representative Objects • Annotationen der Knoten sind wiederum möglich, • Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM 1 a a $ 3 2 c a c 4 a b b b 5 a b 6

  31. 1 a a $ 3 2 a a c c 4 a b b b 5 a b 6 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  32. k-Representative Objects • k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. • k-RO enthält Obermenge der Label Paths in der Datenbank.Im Beispiel zufällig nicht zu sehen. • Anwendung: • Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Motivation DataGuide Repres.Objects PAT-Trees Algebra Mehrstufig-keit STORED HyperStorM

  33. PAT-Tree - Gliederung • Was sind PAT-Trees? n • Wie werden PAT-Trees aufgebaut? • Was für Anfragen werden unterstützt, und wie? • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM

  34. PAT-Tree • Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist.(Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) • Jeder Position im Text entspricht ein Pfad im Baum,d.h. jedes Blatt identifiziert eine Position im Text. • Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM

  35. PAT-Trees 1 01100100010111… Text 123456789… Position • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM 2 2 Warum folgt (5) auf (3)?Knotennummern erklaeren 2 3 3 4 7 5 5 6 1 3 8 4

  36. Aufbau des PAT-Trees • Pfad im Baum wird durchlaufen, bis man Blatt erreicht. • Blatt wird ersetzt durch kleinen Teilbaum. • U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt.(Warum wird in diesem Fall nur eine Kante aufgespalten?) • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM

  37. 4 5 9 Aufbau des PAT-Trees 1 01100100010111… Text 123456789… Position • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM 2 2 2 3 3 4 7 5 5 6 1 3 8 4

  38. Suche mit PAT-Trees • Prefix Search, • Range Search (wird nicht explizit erklärt), • regex Search, • Evaluierung von Pfadausdrücken. • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM

  39. 110 01 0000 0000 4 5 9 Prefix-Search mit PAT-Trees Beispiele: • 110 • 0000 • 01 1 01100100010111… Text 123456789… Position • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM 2 2 2 3 3 4 7 5 6 1 3 8 4

  40. Suche mit PAT-Trees • regex-Suche: • Automat erzeugen und auf Baum laufenlassen, • Zielzustand - Baum akzeptieren, • Blatt - Rest des Automaten auf dem Dokument laufenlassen. • Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.<restaurant>*<entrée>*</entrée>*</restaurant>(‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.)Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM

  41. PAT-Trees - Anmerkungen • Schwachpunkte: • Hoher Platzbedarf, • nachträgliches Einfügen mühsam. • Bestandteil von Produkten. • Was ist der Zusammenhang zwischen DataGuides und PAT Trees?Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? • Motivation • DataGuide • Repres.Objects • PAT-Trees • - Struktur • - Aufbau • - Suche • Sonstiges • Algebra • Mehrstufig-keit • STORED • HyperStorM

  42. Gliederung für die folgenden Punkte • Query-Algebra (im Gegensatz zu ‘Querysprache’), n • Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, • File-basiertes Query-Processing -zwei Alternativen. • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • STORED • HyperStorM

  43. PAT Query Algebra • Algebraische Darstellung von Queries über semistrukturierte Daten, • Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, • Analogie: SQL vs. relationale Algebra. • Ein mögliches Beispiel für Query Algebra: PAT Algebra. • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • STORED • HyperStorM

  44. PAT Query Algebra - Syntax • Syntax: • <Elementtyp-Name> ist zulässiger Algebra-Ausdruck, • Wenn T1, T2 Ausdrücke sind, dann auch: • CONTENT_SELECT(T1, <String-Pattern>), • ATTR_SELECT(T1, <Attr.-Name>, <Attr.-Wert>), • T1 UNION T2, • T1 DIFF T2, • T1 INCLUDS T2 • T1 INCL_IN T2 • (T1) • Beispiel-Query:FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • STORED • HyperStorM

  45. PAT Query Algebra - Semantik • Semantik: • <ET-Name> - Menge aller Elemente mit Label <ET-Name> • CONTENT_SELECT(T1, <String-Pattern>) –alle Elemente aus T1, die <String -Pattern> enthalten, • ATTR_SELECT(T1, <A.-Name>, <A.-Wert>) – alle Elemente aus T1 mit Attribut <A.-Name> mit Wert <A.-Wert>, • T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, • T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. • Was bedeutet die Beispiel-Query? • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • STORED • HyperStorM Hier Schreibfehler im Handout

  46. Mehrstufiges Query Processing • Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, • Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • Motivation • Subsumpt. • File-bas. • Baum-b. • Event-bas. • STORED • HyperStorM

  47. Subsuming Query und Filter Query • Query QS subsumiert Q gdw. <QS>  <Q> für beliebige Kollektionen,Query QS ist Subsuming Query für Q. • Filter Query QF für Query Q und Subsuming Query QS: <QF>(<QS>) = <Q>, d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. • Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll?Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • Motivation • Subsumpt. • File-bas. • Baum-b. • Event-bas. • STORED • HyperStorM

  48. Query-Resultat Zwischen-ergebnis(Kandidaten) Sub-sumingQuery Subsuming Query und Filter Query - Beispiel “Finde die Adressen aller Restaurants mit PLZ 92310.” • Ansatz ist vorteilhaft, wenn • Volltext-Engine erheblich schneller als XML Query Engine, und • Zwischenergebnis deutlich kleiner als Ausgangskollektion. • Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. - langsam - XML-Query XML Query-Engine • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • Motivation • Subsumpt. • File-bas. • Baum-b. • Event-bas. • STORED • HyperStorM Volltext-Engine “92310”

  49. Application query Aufruf fürXML-Dok. Callback-Methoden XML-Processor(XML-Engine) DOM-Methoden Query-Evaluierung ohne Indexstrukturen Thema im folgenden: Techniken zur effizienten Evaluierung von XML Queries auf Dokumenten konform zur XML Spezifikation (d.h. XML Files). • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • Motivation • Subsumpt. • File-bas. • Baum-b. • Event-bas. • STORED • HyperStorM

  50. Zwei Alternativen • Baum-basiert, • Event-basiert. • Motivation • DataGuide • Repres.Objects • PAT-Trees • Algebra • Mehrstufig-keit • Motivation • Subsumpt. • File-bas. • Baum-b. • Event-bas. • STORED • HyperStorM

More Related