Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Interoperable Informationssysteme - 1 Klemens Böhm Systeme 1: Materialisierungen und Indexstrukturen für semistrukturierte Daten.

Ähnliche Präsentationen


Präsentation zum Thema: "Interoperable Informationssysteme - 1 Klemens Böhm Systeme 1: Materialisierungen und Indexstrukturen für semistrukturierte Daten."—  Präsentation transkript:

1 Interoperable Informationssysteme - 1 Klemens Böhm Systeme 1: Materialisierungen und Indexstrukturen für semistrukturierte Daten

2 Interoperable Informationssysteme - 2 Klemens Böhm Gliederung l Fragen: u Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? u Wie evaluiert man Queries effizient? l Gliederungspunkte: u DataGuides, u PAT-Trees, u Query Subsumption und Query Filtering sowie File-basiertes Query Processing, u Verwendung von RDBMSen, u Verwendung objektorientierter Datenbank-Technologie. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

3 Interoperable Informationssysteme - 3 Klemens Böhm Wiederholung: Querysprachen für semistrukturierte Daten l Mit OEM geht Querysprache einher. l Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. l Beispiele: u select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = Burger l Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): u Gib mir alle Empfehlungen von Roger Weber. u Gib mir alle Beschlüsse, die vor der Feststellung mit ID=ke (Unser Kredit ist erschöpft.) gefällt wurden. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

4 Interoperable Informationssysteme - 4 Klemens Böhm Evaluierung von Queries über semistrukturierten Daten l Problem: u Effiziente Evaluierung von Anfragen mit Pfadausdrücken, u Inspektion aller Dokumente i.a. nicht akzeptabel. l Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

5 Interoperable Informationssysteme - 5 Klemens Böhm Ziel 1 - Volltextindex vs. speziellere Indexstrukturen l Beispielquery: Selektiere alle Empfehlungen von Weber. l Volltextindex würde uns befähigen, alle Dokumente, die String Weber enthalten, schnell zu holen. l Probleme, die Volltextindex nicht löst: u Viele Dokumente können String Weber in anderem Zusammenhang enthalten. u Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. l 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 PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

6 Interoperable Informationssysteme - 6 Klemens Böhm Ziel 2 - Schemainformation für Queryoptimierung Beispiel: select Restaurant.Name where Restaurant.Entrée = Burger Query kann nur dann eine Lösung haben, wenn Pfad Restaurant.Entrée in der Datenbank überhaupt vorkommt. l Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

7 Interoperable Informationssysteme - 7 Klemens Böhm DataGuides l DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. l Erst wird das Problem Nachschauen von Pfaden angesprochen, dann das erste Problem. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

8 Interoperable Informationssysteme - 8 Klemens Böhm DataGuides - Gliederung l Was sind DataGuides? n l Wie helfen sie bei der Evaluierung von Anfragen? (Problem 2) l Erweiterungen von DataGuides; Annotationen von DataGuides, l Annotationen und Query Evaluierung (Problem 1). l I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? l Schlussbemerkungen zu DataGuides Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

9 Interoperable Informationssysteme - 9 Klemens Böhm Data Guides l Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von Datenbanken, XML von Dokumenten. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) l 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. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

10 Interoperable Informationssysteme - 10 Klemens Böhm Beispiel-Datenbank 2 1 3 4 5 6 7 8 9 10 11 Bar Restaurant Name Entree Telefon Inhaber Manager Name Entree Chili Burger 555-1234 Klein Darbar Lamm Rind Restaurant Plus Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

11 Interoperable Informationssysteme - 11 Klemens Böhm DataGuides - Beispiel 13 12 19 14 15 16 17 18 Bar Name Entree Telefon Inhaber Restaurant Manager Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

12 Interoperable Informationssysteme - 12 Klemens Böhm DataGuides l Definition: Ein DataGuide einer OEM- Datenbank s ist ein OEM Objekt d, so dass u jeder label path in s genau eine data path-Instanz in d hat, u jeder label path von d ein label path von s ist. l DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

13 Interoperable Informationssysteme - 13 Klemens Böhm DataGuides Kurze, akkurate, und geeignete Zusammen- fassung der Struktur einer Datenbank. u Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. u Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. u Geeignetheit: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

14 Interoperable Informationssysteme - 14 Klemens Böhm Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

15 Interoperable Informationssysteme - 15 Klemens Böhm Query Processing mit DataGuides (1) l Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. l Beispiel: gpe = Guide.A%.B% Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server A2 A1 CB D

16 Interoperable Informationssysteme - 16 Klemens Böhm Annotationen der DataGuide-Knoten l Beispiele für Annotationen: u Listen von Pointern auf Datenbank- Objekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, u Häufigkeiten, u Volltext-Index. l Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

17 Interoperable Informationssysteme - 17 Klemens Böhm Verwendung DataGuide für Query Processing (3) DataGuide: Nur Zusammenfassung der Datenbank. Anfragen, die nicht allein mit DataGuide/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. 2 1 3 4 5 6 7 8 9 10 11 Bar Restaurant Name Telefon Name Entree Chili Burger 555-1234 Klein Darbar Lamm Rind Restaurant Plus Inhaber Entree Manager 13 12 19 14 15 16 17 18 Bar Name Entree Telefon Inhaber Restaurant Manager Annotation Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

18 Interoperable Informationssysteme - 18 Klemens Böhm Query Processing mit DataGuides (2) l Beispiel: select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 l Effizientere Queryevaluierung: u Liste von Pointern auf Datenbank-Objekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. u Volltext-Index, u Häufigkeitsinformation. Wichtig: Wie genau ist die physische Repräsentation der Dokumente? Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

19 Interoperable Informationssysteme - 19 Klemens Böhm Es kann mehrere DataGuides geben. A B 2 1 4 B A 3 B 5 C 6 C 7 C 8 D 9 D 10 D 12 11 13 B A 14 C 15 C 16 D 17 D 18 19 20 C 21 D Datenbank Zwei entsprechende DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

20 Interoperable Informationssysteme - 20 Klemens Böhm Minimale DataGuides l Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen. l Nachteile minimaler DataGuides: u Änderungen an der Datenbank verursachen mehr Arbeit, u Annotationen weniger aussagekräftig. Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

21 Interoperable Informationssysteme - 21 Klemens Böhm Strong DataGuides l Motivation: Charakterisierung der DataGuides, deren Annotationen maximal präzise sind. l Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Illustration: Nächste Folie. Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

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

23 Interoperable Informationssysteme - 23 Klemens Böhm Strong DataGuides - Definition l OEM Objekte s und d, d ist DataGuide für s, l T s (l) - Target Set von l in s, l T d (l) - Target Set von l in d - muss einelementig sein -, l L s (l) = {m|T s (m)=T s (l)}, m ist label path. d.h. L s (l) ist die Menge aller label paths mit dem gleichen Target Set wie l, l L d (l) = {m|T d (m)=T d (l)}, d.h. L d (l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. l d ist ein Strong DataGuide, wenn für alle label paths l von s: L s (l)=L d (l) Beispiel – nächste Folie. Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

24 Interoperable Informationssysteme - 24 Klemens Böhm Strong DataGuides - Illustration 1 4 B A 3 B 5 C 6 C 7 C 8 D 9 D 10 D 12 11 13 B A 14 C 15 C 16 D 17 D 18 20 C 21 D Datenbank Entsprechende DataGuides A B 19 l=A.C L s (l)={A.C} L d (l)={A.C, B.C} 1 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

25 Interoperable Informationssysteme - 25 Klemens Böhm 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 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. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

26 Interoperable Informationssysteme - 26 Klemens Böhm Aufbau eines Strong DataGuides - Illustration 2 1 3 B B 4 C 5 C dg = 6 Neues Objekt targetHash = {({1}, 6)}Hash-Tabelle Aufruf RecursiveMake({1}, 6) p={(B,2), (B,3)} Kinder eines Objekts 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) Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

27 Interoperable Informationssysteme - 27 Klemens Böhm 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. PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

28 Interoperable Informationssysteme - 28 Klemens Böhm PAT-Tree - Gliederung l Was sind PAT-Trees? n l Wie werden PAT-Trees aufgebaut? l Was für Anfragen werden unterstützt, und wie? Motivation DataGuide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

29 Interoperable Informationssysteme - 29 Klemens Böhm PAT-Tree l Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) l Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. l Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. Motivation DataGuide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

30 Interoperable Informationssysteme - 30 Klemens Böhm PAT-Trees 2 1 2 3 3 7 5 4 8 5 1 4 2 6 3 01100100010111…Dokument 123456789… Position Warum folgt (5) auf (3)? Motivation DataGuide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

31 Interoperable Informationssysteme - 31 Klemens Böhm Aufbau des PAT-Trees l Pfad im Baum wird durchlaufen, bis man Blatt erreicht. l Blatt wird ersetzt durch kleinen Teilbaum. l 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 PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

32 Interoperable Informationssysteme - 32 Klemens Böhm Aufbau des PAT-Trees 2 1 2 3 3 7 5 4 8 5 1 4 2 6 3 01100100010111…Text 123456789… Position 5 9 4 Motivation DataGuide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

33 Interoperable Informationssysteme - 33 Klemens Böhm Suche mit PAT-Trees l Prefix Search, l Range Search (wird nicht explizit erklärt), l regex Search, l Evaluierung von Pfadausdrücken. Motivation DataGuide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

34 Interoperable Informationssysteme - 34 Klemens Böhm Prefix-Search mit PAT-Trees 2 1 2 3 3 7 5 4 8 1 4 2 6 3 01100100010111…Text 123456789… Position 5 9 4 Motivation DataGuide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server Beispiele: l 110 l 0000 l 01 110 0000 01

35 Interoperable Informationssysteme - 35 Klemens Böhm Suche mit PAT-Trees l regex-Suche: u Automat erzeugen und auf Baum laufenlassen, u Zielzustand - Baum akzeptieren, u Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B. * * * ( * bedeutet hier beliebig viele beliebige Zeichen.) u Problem 1: –Beispiel: /restaurant//entrée –Naive regex-Suche wäre aber nicht gut, weil man über das Ende der entrée - Elemente hinaus nach sucht. Problem 2: //entrée Motivation DataGuide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

36 Interoperable Informationssysteme - 36 Klemens Böhm PAT-Trees - Anmerkungen l Schwachpunkte: u Hoher Platzbedarf, u nachträgliches Einfügen mühsam, u nur Primärstruktur. l Bestandteil von Produkten. l Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der DataGuide-Funktionalität bekommt man auch mit PAT Trees? Motivation DataGuide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

37 Interoperable Informationssysteme - 37 Klemens Böhm Gliederung für die folgenden Punkte l Query-Algebra (im Gegensatz zu Querysprache), l Mehrstufige Verfahren zur Evaluierung von XML-Queries – Motivation und Begriffsbildung, l File-basiertes Query-Processing – zwei Alternativen. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

38 Interoperable Informationssysteme - 38 Klemens Böhm PAT Query Algebra l Algebraische Darstellung von Queries über semistrukturierte Daten, l Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, l Analogie: SQL vs. relationale Algebra. l Ein mögliches Beispiel für Query Algebra: PAT Algebra. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

39 Interoperable Informationssysteme - 39 Klemens Böhm PAT Query Algebra - Syntax l Syntax: u ist zulässiger Algebra- Ausdruck, u Wenn T 1, T 2 Ausdrücke sind, dann auch: –CONTENT_SELECT(T 1, ), –ATTR_SELECT(T 1,, ), –T 1 UNION T 2, –T 1 DIFF T 2, –T 1 INCLUDS T 2 –T 1 INCL_IN T 2 –(T 1 ) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT( AUTHOR, Böhm)) Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

40 Interoperable Informationssysteme - 40 Klemens Böhm PAT Query Algebra - Semantik l Semantik: u - Menge aller Elemente mit Label u CONTENT_SELECT(T 1, ) – alle Elemente aus T 1, die enthalten, u ATTR_SELECT(T 1,, ) – alle Elemente aus T 1 mit Attribut mit Wert, u T 1 INCLUDS T 2 – alle Elemente aus T 1, die eins aus T 2 enthalten, u T 1 INCL_IN T 2 – alle Elemente aus T 1, die in einem aus T 2 enthalten sind. l Was bedeutet die Beispiel-Query? Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

41 Interoperable Informationssysteme - 41 Klemens Böhm Mehrstufiges Query Processing l Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, l 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 PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

42 Interoperable Informationssysteme - 42 Klemens Böhm Subsuming Query und Filter Query l Query Q S subsumiert Q gdw. für beliebige Kollektionen, Query Q S ist Subsuming Query für Q. l Filter Query Q F für Query Q und Subsuming Query Q S : ( ) =, d.h. wenn Q F auf das Resultat von Q S angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. l Wann ist Aufteilung einer Query in Filter Query und Subsuming Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

43 Interoperable Informationssysteme - 43 Klemens Böhm Subsuming Query und Filter Query - Beispiel l Ansatz ist vorteilhaft, wenn u Volltext-Engine erheblich schneller als XML Query Engine, und u Zwischenergebnis deutlich kleiner als Ausgangskollektion. l Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. XML- Query Volltext- Engine XML Query- Engine Query- Resultat - langsam - Zwischen- ergebnis (Kandidaten) Sub- suming Query Finde Adressen aller Restaurants mit PLZ 92310. 92310 Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

44 Interoperable Informationssysteme - 44 Klemens Böhm Query-Evaluierung ohne Indexstrukturen Application XML-Processor (XML-Engine) Callback- Methoden DOM- Methoden Aufruf für XML-Dok. Query Thema im folgenden: Techniken zur effizienten Evaluierung von XML Queries auf Dokumenten konform zur XML Spezifikation (d.h. XML Files). Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

45 Interoperable Informationssysteme - 45 Klemens Böhm Zwei Alternativen l Baum-basiert, l Event-basiert. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

46 Interoperable Informationssysteme - 46 Klemens Böhm Baum-basierte Queryevaluierung l Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der Callback-Schnittstelle, l Baum wird nur hierfür gebraucht und dann wieder weggeworfen. l Vergleich mit Datenbank-Scan. l Algebraische Repräsentation der Query, l Set-at-a-time Query Evaluierung. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

47 Interoperable Informationssysteme - 47 Klemens Böhm Baum-basierte Queryevaluierung - Beispiel AUTHORS SURNAME CHRNAME Grabs Torsten AUTHOR FUNCTION=PHOTOGR SURNAME CHRNAME Weber Roger AUTHOR FUNCTION=AUTHOR INCL_IN CHRNAME NAME CONTENT_SELECT Grabs SURNAME INCLUDS Dokument (logische Struktur): Query (Algebra- Repräs.): NAME Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

48 Interoperable Informationssysteme - 48 Klemens Böhm Baum-basierte Queryevaluierung - Optimierungen Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. TOP Optimierung OUT Optimierung BOTTOM Optimierung Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

49 Interoperable Informationssysteme - 49 Klemens Böhm TOP Optimierung Beispiel (Query von vorhin): Selektiere alle CHRNAME -Elemente, die in einem NAME -Element enthalten sind, die ein SURNAME - Element mit Inhalt Böhm enthalten. l Queryergebnisse haben die folgende Struktur: Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. NAME CHRNAME Böhm SURNAME Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server Grosses Dreieck: Dokument kleines Dreieck: Ausschnitt, der gebraucht wird fuer die Query.

50 Interoperable Informationssysteme - 50 Klemens Böhm BOTTOM Optimierung Beispiel (Query von vorhin): Selektiere alle CHRNAME -Elemente, die in einem NAME -Element enthalten sind, die ein SURNAME - Element mit Inhalt Böhm enthalten. l Wir brauchen nur Elemente, u die String Böhm enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. NAME CHRNAME Böhm SURNAME Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

51 Interoperable Informationssysteme - 51 Klemens Böhm OUT Optimierung Beispiel (Query von vorhin): Selektiere alle CHRNAME -Elemente, die in einem NAME -Element enthalten sind, die ein SURNAME - Element mit Inhalt Böhm enthalten. l Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMED - Elemente nie CHRNAME -Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. l OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

52 Interoperable Informationssysteme - 52 Klemens Böhm Event-Basierte Queryevaluierung l Automat, der der Query entspricht, l Events überführen den Automaten in anderen Zustand. Beispiel: Selektiere alle Dokumente mit einem caption -Element, das den String millennium enthält. l Implementierung ist komplizierter als hier dargestellt. CAPTION begin CAPTION end string millennium Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

53 Interoperable Informationssysteme - 53 Klemens Böhm Fazit l File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) geht immer, l Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices HyperStorM SQL- Server

54 Interoperable Informationssysteme - 54 Klemens Böhm Verwendung von RDBMSen - Gliederung l Motivation, l naive Ansätze, l ein weniger naiver Ansatz (STORED), l Problem: Finden der Abbildung von semistrukturiert auf relational, l Aktivitäten an der ETHZ. l Am Ende des Kapitels: XML-Features von SQL-Server. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

55 Interoperable Informationssysteme - 55 Klemens Böhm Verwendung von RDBMSen l Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. l Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. l Datenbank-Funktionalität, z.B. Concurrency Control, Indices, for free. l Query Containment – wird als gegeben angenommen, wird hier nicht betrachtet. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

56 Interoperable Informationssysteme - 56 Klemens Böhm Verwendung von RDBMSen l Eine mögliche Verwendungsmöglichkeit von RDBMSen: Speicherung der Annotationen der DataGuides,Annotationen der DataGuides l Jedem DataGuide-Knoten entspricht z.B. eine Relation, Indexierung bekommt man dann kostenlos. l DataGuide selbst muss/sollte nicht in der Datenbank sein, kann im Hauptspeicher sein. l Ziel im folgenden: Nicht nur Evaluierung von Pfadausdrücken, sondern Queries allgemein. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

57 Interoperable Informationssysteme - 57 Klemens Böhm Beispiel für relationale Speicherung Ei Mehl Salz Dokument Mögliche relationale Darstellung l Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, l zuviele Joins zur Evaluierung von Pfadausdrücken, l Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, l unklar, für welche Anfragen die Darstellung vorteilhaft ist (bzw. wo sie besser ist als bisherige Repräsentationen). Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

58 Interoperable Informationssysteme - 58 Klemens Böhm rezept zutaten expertise Beispiel f. relationale Speicherung (2) Kein substantieller Unterschied zur vorigen Repräsentation! zutat Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

59 Interoperable Informationssysteme - 59 Klemens Böhm STORED l STORED = Semistructured TO RElational Data l Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. l Auswahl und freie Definition der relationalen Sichten, keine generischen Tabellen wie in den vorangegangenen Beispielen. l Relationale Sichten enthalten i.d.R. nur Teil des Dokuments; l ausserdem Overflow Graph wegen Verlustfreiheit. l Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

60 Interoperable Informationssysteme - 60 Klemens Böhm Relationale Sichten auf semistrukturierte Daten Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server name addressaudited taxamount name address audited taxamount taxevasion name address audited taxamount taxevasion name owner taxpayer company Audit street zip street number zip Werte und OIDs weggelassen. Unterschied zu OEM: Geordnetheit.

61 Interoperable Informationssysteme - 61 Klemens Böhm Relationale Speicherung – Fortsetzung des Beispiels Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server Taxpayer1 Taxpayer2 Company 1.RDBMS-Schema ist dokumenttyp-spezifisch. 2.Unterschiedliche Tables für einen Elementtyp. 3.Daten zu einem Element auf mehrere Relationen verteilen.

62 Interoperable Informationssysteme - 62 Klemens Böhm Storage Queries l Storage Queries beschreiben Abbildung von semistrukturierten Daten aufs Relationale. Beispiele: M1a =FROM Audit.taxpayer: $X { name: $N, adr: $P, OPT{audited: $A}, OPT{taxamount: $T}} WHERE typeOF($P, string) STORE Taxpr($X, $N, $P, $A, $T) M1b = FROM Audit.taxpayer: $X { name: $N, adr: {street $S, OPT{city $C, OPT{zip $Z}}}, OPT{audited: $A}, OPT{taxamount: $T}} WHERE typeOF($P, string) STORE Taxpr($X, $N, $S, $C, $Z, $A, $T) l OID bei inneren Knoten, Textinhalt bei Blättern. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

63 Interoperable Informationssysteme - 63 Klemens Böhm Storage Queries - Erläuterungen l Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, (d.h. man geht offensichtlich davon aus, dass Objekte OID haben, die man auslesen kann) l Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten l I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

64 Interoperable Informationssysteme - 64 Klemens Böhm Storage Queries (Fortsetzung) Beispiel: M2 =FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a =FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($X, $N, $A) M3b =FROM Audit.irscenter: $X.hearing: $Y {hearingdate: $D, taxpayername: $TN, auditorname: $AN, decision: $Z} KEY $Y STORE Hearings($Y, $X, $D, $TN, $AN, $Z) Beispiel illustriert nochmals das Aufteilen von Daten auf mehrere Relationen. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

65 Interoperable Informationssysteme - 65 Klemens Böhm Auswahl der Sichten (1) l Wie kommt man zu den Storage Queries? l (Strukturelle) Patterns finden, die häufig vorkommen. l Diese Patterns auf Storage Queries abbilden. Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[1]: {street[1], city[1]}} phone[1] kann weggelassen werden. Beispiel-Pattern hat fünf Blätter. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

66 Interoperable Informationssysteme - 66 Klemens Böhm Auswahl der Sichten (2) Weiteres Beispiel-Pattern mit * : Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Viele address -Elemente in taxpayer -Element – genestete Relation vorteilhaft: Wenige address -Elemente – inlining besser: l Schwellenwert c von aussen vorgeben; genaue Anzahl ist egal. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

67 Interoperable Informationssysteme - 67 Klemens Böhm Auswahl der Sichten (2) l Definition: Support eines Patterns – Anzahl der Vorkommen des Patterns. l Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q 1, …, Q k mit Gewichten f 1, …, f k, ist der Query Support von P die Summe der f i, für die P in Q i enthalten ist. l Je grösser Query-Support, für desto mehr Queries ist das Pattern Teil des Ergebnisses. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

68 Interoperable Informationssysteme - 68 Klemens Böhm Data Mining in 120 Sekunden… l Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns l Frequent Patterns sind die Grundlage für die Auswahl der relationalen Sichten. l F k – Menge aller Frequent Patterns mit k Blättern. l Typische Algorithmen finden alle F k, mit aufsteigendem k. l Apriori-Trick: Pattern aus F k+1 muss k+1 Subpatterns haben, die in F k enthalten sind. l Query Support ist monoton. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

69 Interoperable Informationssysteme - 69 Klemens Böhm Algorithmus zur Auswahl der Sichten l Erzeugung aller Label Paths mit ausreichendem Support, l Erzeugung der Frequent Patterns, l Nicht jedes Frequent Pattern kann i.d.R. einer View entsprechen, daher macht STORED eine greedy-mässige Auswahl der Patterns: u Erstes Pattern P 1 so wählen, dass es Pfade aus F 1, die sehr hohen Support haben, enthält, u P k so wählen, dass (1) Überlappung mit P 1, …, P k-1 minimal ist, und (2) neue Pfade aus F 1 mit hohem Support abgedeckt werden. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server l Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, u zu viele optionale Attribute -> mehr NULL-Werte, mehr Über- lappung mit anderen Patterns, u zu wenige optionale Attribute -> zu wenige Daten werden gematcht. l Erzeugung der Storage Queries.

70 Interoperable Informationssysteme - 70 Klemens Böhm Queryevaluierung Man unterscheidet mehrere Fälle: l Query sucht Pattern, das exakt mit einer Sichtdefinition übereinstimmt – einfacher, angenehmer Fall. Q=V l Query sucht Pattern, das Storage Pattern enthält: In diesem Fall mehrstufiges Query-Processing, wie zuvor besprochen. Q V l Was kann man machen, wenn Query Pattern sucht, das in Storage Pattern enthalten ist? Q V Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

71 Interoperable Informationssysteme - 71 Klemens Böhm Beurteilung l Grundsätzlicher Ansatz: interessant, man vermeidet Nachteile einer starren Abbildung, l Concurrency Control nicht ganz unproblematisch, l Heuristiken, die dem Algorithmus zur Sichtauswahl zugrundeliegen, m.E. unmotiviert – Parameter? l Mining-Algorithmus funktioniert nicht bei Dokumenten mit normaler Anzahl Elementen. l Evaluierung – berücksichtigt Ausnahmen nur unzureichend. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices HyperStorM SQL- Server

72 Interoperable Informationssysteme - 72 Klemens Böhm Combined Indices l Zunächst anhand von Relationen, dann Verallgemeinerung. l Relation hat mehrere Attribute, z.B. l Indexierung einzelner Attribute i.d.R. sinnvoll, z.B. alle Vorkommen des Vornamens Klemens. l Kombinierte Anfragen; d.h. Anfragen über mehrere Attribute Beispiel: Vorname=Klemens Alter=25 l Combined Index, d.h. Vorkommen von Werte-Kombinationen indexieren. l # Kombinationsmöglichkeiten wächst exponentiell. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

73 Interoperable Informationssysteme - 73 Klemens Böhm Combined Indices – Anzahl der Kombinationen l Beobachtung 1: Sehr viele Vorkommen von Vorname Klemens Indexierung nicht hilfreich, Scan genauso teuer. l Beobachtung 2: Angenommen, Vorname Klemens nur einmal in Datenbank. Indexeinträge (Klemens, Böhm), (Klemens, 25), (Klemens, C45.2) werden nicht gebraucht. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

74 Interoperable Informationssysteme - 74 Klemens Böhm Vorgehen l Index für alle Kombinationsmöglichkeiten vorsehen. l Werte-Tupel (v 1, …, v n ) bekommt Indexeintrag, wenn deutlich weniger Instanzen als Instanzen der Tupel (v 1, v 3, …, v n ), (v 2, …, v n ), …, (v 1, …, v n-1 ). (Ausserdem Beobachtung 1 berücksichtigen.) l Wenn Teilmuster fast genauso häufig, Zugriff auch über Teilmuster möglich. l Beispiel (Fortsetzung von eben): u Query: Vorname=Klemens Büronummer=C45.2 u Es reicht, alle Tupel mit Vorname Klemens über Index zu holen. Dann Test, ob Büronummer=C45.2 Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

75 Interoperable Informationssysteme - 75 Klemens Böhm Verallgemeinerung für Text und semistrukturierte Daten l Technik wurde ursprünglich für n-Grams entwickelt (von Herrn Schek), l Ziel: Indexierung von Vorkommen von Worten im Text. l Beispiel: Text enthält das Wort character. 5-Grams: chara, harac, aract, … l Indexeintrag mit chara wird erzeugt, wenn deutlich seltener als char, hara, etc. l Gleiches Vorgehen möglich für Pfade (im XML-Dokument). l Man kann Technik verallgemeinern für Indexierung Pfadfragment – Dokumenttext. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

76 Interoperable Informationssysteme - 76 Klemens Böhm HyperStorM Ziele: l Modellierung der Semantik von Hypermedia-Dokumentbestandteilen in der Datenbank Beispiele: u Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren, u Elemente in Dokumenten mit Multimedia-Bestandteilen, die den Präsentationsablauf spezifizieren. l Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, l Effiziente Evaluierung von Anfragen, die sich sowohl auf Struktur als auch auf textuellen Inhalt der Dokumente beziehen können. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

77 Interoperable Informationssysteme - 77 Klemens Böhm Ansatz l Verwendung objektorientierter Datenbank-Technologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). l Dokumente werden in der Datenbank gespeichert, l Methoden reflektieren XML-Semantik und Semantik von Hypermedia-Dokumentbestandteilen, l Annahme: DTD ist gegeben (SGML statt XML). Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

78 Interoperable Informationssysteme - 78 Klemens Böhm Physische Repräsentation der Dokumente l Naheliegender Ansatz: Jedem Element entspricht ein Datenbank-Objekt zuviele Objekte, Einfügen von Dokumenten in die Datenbank und Auslesen ist teuer, wenn Datenbank kein Clustering vornimmt. l Beispiel für diesen Ansatz: Excelon. l Ansatz von GMD-IPSI (HyperStorM): u Anwendung legt physischen Entwurf fest. u Hybrider Ansatz – nur Elemente oben in der Hierarchie werden durch Datenbank-Objekte repräsentiert, Elemente weiter unten werden in BLOB-Attribut eines Datenbank-Objekts zusammengefasst. l Konfiguration auf DTD-Ebene. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

79 Interoperable Informationssysteme - 79 Klemens Böhm Beispiel scene... play fm act title personae The Tragedy of Hamlet, Prince of Denmark acttitle Act I stagedir p...p... worldwide SGML markup... scenedescrplaysubt Scene Denmark hamlet scenetitl e Scene I... FRANCISCO... speech speakerline BERNARDO Who's there? Dramatis Persona title persona CLAUDIUSHAMLET Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server Dramatis Personae CLAUDIUS HAMLET

80 Interoperable Informationssysteme - 80 Klemens Böhm XML- und Hypermedia-Semantik l Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, l Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. l Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

81 Interoperable Informationssysteme - 81 Klemens Böhm Bewertung l Anforderung Unterstützung der Semantik von Dokumentbestandteilen wurde erfüllt für Hypermedia-Aspekte, allerdings gab es keine Anwendungen und Dokumente, und auch Anforderung Nebenläufiges Ändern von Dokumenten war keine wirkliche Anforderung. l Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, Universal Server Konzept) l Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. l Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

82 Interoperable Informationssysteme - 82 Klemens Böhm Bewertung (Forts.) l Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, l Konfiguration erfolgte von Hand (obwohl Automatic Tuning-Mechanismen grundsätzlich anwendbar sind), l keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server

83 Interoperable Informationssysteme - 83 Klemens Böhm XML Features von SQL Server 2000 l Transformation von Relationen (insbesondere Queryergebnisse) nach XML, Alternativen, unterschiedlich ausgefeilt. l Anfragen und Updates bezüglich XML Views, l XML Shredding: XML Relationen. Generisch vs. individuell. l Insgesamt: u Viel manuelle Intervention erforderlich. u Kein automatisches Erzeugen eines Dokumenttyp-spezifischen DB-Schemas und Einfügen/Herausholen der Dokumente. u Konfiguration m.E. etwas unübersichtlich. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

84 Interoperable Informationssysteme - 84 Klemens Böhm HTTP Zugriff l URLs enthalten Domainname und Name der virtuellen Root. l Beispiel: http://dbspc15/sitzungen?sql=select%20' ';sel ect+*+from+protokolle+FOR+XML+AUTO;select%2 0' ' l Virtual Root: Abstraktion, die DB-Server, DB-Instanz, Zugriffsrechte etc. versteckt. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

85 Interoperable Informationssysteme - 85 Klemens Böhm HTTP Zugriff – URL Typen l URL Query http://localhost/demos?sql=select+*+from+Custom ers+FOR+XML+Auto&root=root l Direct Query Access http://localhost/demos/dbobject/Employees[@Emp loyeeID=1]/@Photo http://localhost/demos/dbobject/Employees[@Emp loyeeID=1]/@Photo XPath-mässige Query Syntax l Template Access http://server/vroot/vname?params Template = XML Dokument l XPath XML View Access http://server/vroot/vname/xpath?params 1. XML View, definiert in Schema File, 2. Auswertung XPath Ausdruck gegen diese Sicht. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

86 Interoperable Informationssysteme - 86 Klemens Böhm Generierung von XML aus SQL-Queryergebnissen (1) l unterschiedlich ausgefeilte (und unterschiedlich komplizierte) Mechanismen für die direkte Erzeugung von XML aus Anfrageergebnis: raw, auto, explicit l raw Modus: Erzeugt XML Dokument mit kanonischem Elementtyp row in quadratischer Form, primitiv. u Beispiel: http://dbspc15/sitzungen?sql=select+*+from+pr otokolle+FOR+XML+RAW&root=root http://dbspc15/sitzungen?sql=select+*+from+pr otokolle+FOR+XML+RAW&root=root Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

87 Interoperable Informationssysteme - 87 Klemens Böhm Generierung von XML aus SQL-Queryergebnissen (2) l Auto Modus: u Erzeugt XML Dokument mit Nesting mit regelmässigem Aufbau, u Reihenfolge der Table-Aliase in select-Klausel, u Beispiel: http://dbspc15/sitzungen?sql=select+*+from+pr otokolle+FOR+XML+AUTO&root=root http://dbspc15/sitzungen?sql=select+*+from+pr otokolle+FOR+XML+AUTO&root=root Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

88 Interoperable Informationssysteme - 88 Klemens Böhm Generierung von XML aus SQL-Queryergebnissen (3) l Query: SELECT Customers.CustomerID, OrderID FROM Customers LEFT OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY Customers.CustomerID FOR XML auto l Resultat: … Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

89 Interoperable Informationssysteme - 89 Klemens Böhm Generierung von XML aus SQL-Queryergebnissen (4) l Explicit Modus: u Flexibelster, aber kompliziertester Ansatz, u Query erzeugt Tabelle, die Struktur des XML-Dokuments explizit kodiert (Universal Table Format) Beispiel – Dokument, das erzeugt werden soll: Alfreds Futterkiste … Bólido Comidas preparadas … Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB Spalten der Customer -Relation

90 Interoperable Informationssysteme - 90 Klemens Böhm Generierung von XML aus SQL-Queryergebnissen (5) u Unterschiedliches Mapping von Customer-Spalten: –cid Attribut –name Subelement u Entsprechende Tabelle im Universal Table Format: Spielt keine Rolle im explicit-Modus

91 Interoperable Informationssysteme - 91 Klemens Böhm Generierung von XML aus SQL-Queryergebnissen (4) Erläuterungen zu eben: l Jede Zeile wird ein Element. l Elementname ergibt sich aus Name der Spalten; Einzelheiten werden ausgelassen. l Query, die Tabelle erzeugt, mit UNION. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

92 Interoperable Informationssysteme - 92 Klemens Böhm Templates (1) l XML-Dokument, das parametrisierte Anfrage enthält, Kann z.B. angestossen werden über action -Attribut eines form -Elements. l Anfrage selbst – im wesentlichen gleicher Mechanismus wie bisher. Beispiel: WA Hier eine Anfrage mit Zeile … And Region LIKE @state … Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

93 Interoperable Informationssysteme - 93 Klemens Böhm Templates (2) Beispiel für Einbindung Template – Parameter über Formular: Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

94 Interoperable Informationssysteme - 94 Klemens Böhm XML Sichten mit Annotated Schemata l XML-Data – Microsoft-Pendant zu XML Schema. l Annotationen – definieren Beziehungen zwischen Elementen. Erläuterung des folgenden Beispiels – Struktur der erzeugten Dokumente: Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

95 Interoperable Informationssysteme - 95 Klemens Böhm XML Sichten mit Annotated Schemata – Beispiel unterschiedliche Namen!

96 Interoperable Informationssysteme - 96 Klemens Böhm l Unterschiede zur Standard XPath-Semantik u any-match statt first-match (angeblich nicht abbildbar auf RDBMSe), u keine string int Coercion, Beispiel für Verwendung: http://domainserver/dbvroot/schema/ CustOrd.xdr/Customer[@ID=ALFKI] CustOrd.xdr – Name des Annotated Schemas von vorangegangener Folie, Pfadausdruck Customer[@ID=ALFKI] wird angewendet auf erzeugtes XML-Dokument. XPath-Derivat für Zugriff auf XML Sicht Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB

97 Interoperable Informationssysteme - 97 Klemens Böhm Relationale Sicht auf XML Daten l Anwendung: Einfügen von XML in RDBMS, l OpenXML Rowset Provider – erzeugt Tupel aus XML Dokumenten, l edge-table view vs. shredded-rowset view. l Shredded-rowset view: XPath-Ausdruck identifiziert Knoten, die zu Tupeln werden. Motivation DataGuide PAT-Trees Algebra Mehrstufig- keit STORED Combined Indices HyperStorM SQL- Server - Einleitung - SQL-bas. Mechan. - XML- Sichten + Zugriff - XML DB


Herunterladen ppt "Interoperable Informationssysteme - 1 Klemens Böhm Systeme 1: Materialisierungen und Indexstrukturen für semistrukturierte Daten."

Ähnliche Präsentationen


Google-Anzeigen