Systeme 1 Materialisierungen und Indexstrukturen fr semistrukturierte Daten

  • Slides: 97
Download presentation
Systeme 1: Materialisierungen und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1

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

Gliederung l Fragen: u Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? u Wie evaluiert

Gliederung l Fragen: u Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? u Wie evaluiert man Queries effizient? l Gliederungspunkte: u Data. Guides, u PAT-Trees, u Query Subsumption und Query Filtering sowie File-basiertes Query Processing, u Verwendung von RDBMSen, u Verwendung objektorientierter Datenbank-Technologie. Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 2

Mit OEM geht Querysprache einher. l Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. l

Mit OEM geht Querysprache einher. l Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. l Beispiele: u select Restaurant. Entrée u 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. ” l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Wiederholung: Querysprachen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 3

Evaluierung von Queries über semistrukturierten Daten Problem: u. Effiziente Evaluierung von Anfragen mit Pfadausdrücken,

Evaluierung von Queries über semistrukturierten Daten 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 4

Ziel 1 - Volltextindex vs. speziellere Indexstrukturen l Motivation l Data. Guide PAT-Trees Algebra

Ziel 1 - Volltextindex vs. speziellere Indexstrukturen l Motivation l Data. Guide PAT-Trees Algebra Mehrstufigkeit l STORED Combined Indices Hyper. Stor. M SQLServer l l 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: u Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. u 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” Klemens Böhm Interoperable Informationssysteme - 5

Ziel 2 - Schemainformation für Queryoptimierung l select Restaurant. Name where Restaurant. Entrée =

Ziel 2 - Schemainformation für Queryoptimierung l select Restaurant. Name where Restaurant. Entrée = “Burger” Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Beispiel: 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. l Klemens Böhm Interoperable Informationssysteme - 6

Data. Guides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen

Data. Guides 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 7

Data. Guides - Gliederung l l Motivation Data. Guide PAT-Trees l Algebra Mehrstufigkeit STORED

Data. Guides - Gliederung l l Motivation Data. Guide PAT-Trees l Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M l l SQLServer l Was sind Data. Guides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 2) Erweiterungen von Data. Guides; Annotationen von Data. Guides, Annotationen und Query Evaluierung (Problem 1). I. a. gibt es mehrere Data. Guides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu Data. Guides Klemens Böhm n Interoperable Informationssysteme - 8

Data Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong

Data Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da Data. Guides auf OEM aufsetzen, verwenden wir diese Terminologie. ) l Unterschied zwischen ‘Data. Guide’ und ‘Schema’: Data. Guide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man Data. Guide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass Data. Guide und Schema nicht übereinstimmen. ) l Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 9

Beispiel-Datenbank Motivation 1 Data. Guide - Einleitung - Struktur Restaurant - Query Proc. 2

Beispiel-Datenbank Motivation 1 Data. Guide - Einleitung - Struktur Restaurant - Query Proc. 2 - Strong DGs Entree Algebra Combined Indices 3 4 Plus Inhaber PAT-Trees STORED Bar Name - Einord. Mehrstufigkeit Restaurant 5 6 Telefon 7 Chili Burger 555 -1234 Manager Name Entree 8 9 10 11 Klein Darbar Lamm Rind Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 10

Data. Guides - Beispiel Motivation Data. Guide 12 - Einleitung - Struktur Restaurant -

Data. Guides - Beispiel Motivation Data. Guide 12 - Einleitung - Struktur Restaurant - Query Proc. - Strong DGs Bar 13 14 - Einord. PAT-Trees Name Algebra Mehrstufigkeit STORED Combined Indices 15 Inhaber Manager Entree Telefon 19 18 17 16 Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 11

Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong

Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit STORED Definition: Ein Data. Guide einer OEMDatenbank s ist ein OEM Objekt d, so dass ujeder label path in s genau eine data path-Instanz in d hat, ujeder label path von d ein label path von s ist. l Data. Guide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. l Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 12

Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong

Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. u. Kürze: Data. Guide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. u. Akkuratheit: Data. Guide beschreibt keine label paths, die nicht in der Datenbank vorkommen. u‘Geeignetheit’: Data. Guide ist OEM Objekt ( Speicherung und Zugriff auf Data. Guides mit OEM-Mechanismen möglich. ) Klemens Böhm Interoperable Informationssysteme - 13

Erzeugung von Data. Guides Motivation Data. Guide Äquivalent zu NEA -> DEA - Einleitung

Erzeugung von Data. Guides Motivation Data. Guide Äquivalent zu NEA -> DEA - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 14

Query Processing mit Data. Guides (1) Motivation Data. Guide - Einleitung - Struktur -

Query Processing mit Data. Guides (1) Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs Aus dem Data. Guide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. l Beispiel: gpe = Guide. A%. B% l - Einord. PAT-Trees A 1 Algebra Mehrstufigkeit A 2 STORED Combined Indices C Hyper. Stor. M B D SQLServer Klemens Böhm Interoperable Informationssysteme - 15

Annotationen der Data. Guide-Knoten Motivation Data. Guide - Einleitung - Struktur - Query Proc.

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

Verwendung Data. Guide für Query Processing (3) Motivation Data. Guide - Einleitung Restaurant -

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

Query Processing mit Data. Guides (2) Motivation Data. Guide - Einleitung - Struktur -

Query Processing mit Data. Guides (2) Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer 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 Data. Guide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. u Volltext-Index, u Häufigkeitsinformation. Wichtig: Wie genau ist die physische Repräsentation der Dokumente? l Klemens Böhm Interoperable Informationssysteme - 18

Es kann mehrere Data. Guides geben. Motivation 1 Data. Guide - Einleitung - Struktur

Es kann mehrere Data. Guides geben. Motivation 1 Data. Guide - Einleitung - Struktur A - Query Proc. - Strong DGs - Einord. PAT-Trees B 11 A B 18 B A B 2 3 4 12 13 19 C C C 5 6 7 14 15 20 D D D 8 9 10 16 17 21 Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Datenbank Klemens Böhm Zwei entsprechende Data. Guides Interoperable Informationssysteme - 19

Minimale Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. -

Minimale Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von Data. Guides, d. h. zur Erzeugung eines Data. Guides mit minimaler Anzahl von Zuständen. l Nachteile minimaler Data. Guides: u Änderungen an der Datenbank verursachen mehr Arbeit, u Annotationen weniger aussagekräftig. l STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 20

Strong Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. -

Strong Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Motivation: Charakterisierung der Data. Guides, deren Annotationen maximal präzise sind. l Intuition: Label paths mit dem gleichen (singleton) Target Set im Data. Guide haben stets das gleiche Target Set in der Datenbank. Illustration: Nächste Folie. l PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 21

Strong Data. Guides - Illustration Motivation 1 Data. Guide 11 18 A B -

Strong Data. Guides - Illustration Motivation 1 Data. Guide 11 18 A B - Einleitung A - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer 2 B B 3 4 12 13 19 Annotation C C C 5 6 7 14 15 20 D D D 8 9 10 16 17 21 Datenbank Klemens Böhm von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen Data. Guide. Entsprechende Data. Guides Interoperable Informationssysteme - 22

Strong Data. Guides - Definition Motivation l Data. Guide l - Einleitung - Struktur

Strong Data. Guides - Definition Motivation l Data. Guide l - Einleitung - Struktur - Query Proc. - Strong DGs l l - Einord. PAT-Trees Algebra l Mehrstufigkeit STORED Combined Indices l OEM Objekte s und d, d ist Data. Guide für s, Ts(l) - Target Set von l in s, Td(l) - Target Set von l in d - muss einelementig sein -, Ls(l) = {m|Ts(m)=Ts(l)}, m ist label path. 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 Data. Guide, wenn für alle label paths l von s: Ls(l)=Ld(l) Hyper. Stor. M SQLServer Beispiel – nächste Folie. Klemens Böhm Interoperable Informationssysteme - 23

Strong Data. Guides - Illustration Motivation 1 Data. Guide 11 18 A B -

Strong Data. Guides - Illustration Motivation 1 Data. Guide 11 18 A B - Einleitung A - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer B B 1 3 4 12 13 19 l=A. C C C C 5 6 7 14 15 20 D D D 8 9 10 16 17 21 Datenbank Klemens Böhm Ls(l)={A. C} Ld(l)={A. C, B. C} Entsprechende Data. Guides Interoperable Informationssysteme - 24

Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs -

Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees Aufbau eines Strong Data. Guides // // // Make. DG: algorithm to build a strong Data. Guide Input: o, the root oid of a source database Effect: dg is a strong Data. Guide for o target. Hash: global empty hash table, to map source target sets to Data. Guide objects dg: global oid, initially empty Make. DG(o) { dg = New. Object() target. Hash. Insert({o}, dg) Recursive. Make({o}, dg) } Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Recursive. Make(t 1, d 1) { p = all children <label, oid> of all objects in t 1 foreach (unique label l in p) { t 2 = set of oids paired with l in p d 2 = target. Hash. Lookup(t 2) if (d 2 != nil) { add an edge from d 1 to d 2 with label l } else { d 2 = New. Object() target. Hash. Insert(t 2, d 2) add an edge from d 1 to d 2 with label l Recursive. Make(t 2, d 2) } } } Klemens Böhm Interoperable Informationssysteme - 25

Aufbau eines Strong Data. Guides Illustration Motivation Data. Guide dg = 6 Neues Objekt

Aufbau eines Strong Data. Guides Illustration Motivation Data. Guide dg = 6 Neues Objekt target. Hash = {({1}, 6)} Hash-Tabelle Aufruf ‘Recursive. Make({1}, 6)’ 1 - Einleitung - Struktur B - Query Proc. - Strong DGs - Einord. PAT-Trees Algebra Mehrstufigkeit STORED B 2 3 C C 4 5 p={(B, 2), (B, 3)} Kinder eines Objekts l=B, t 2={2, 3}, d 2=NIL d 2=7, target. Hash = {({1}, 6), ({2, 3}, 7)} Aufruf ‘Recursive. Make({2, 3}, 7)’ p={(C, 4), (C, 5)} l=C, t 2={4, 5}, d 2=NIL d 2=8 target. Hash = {({1}, 6), ({2, 3}, 7), ({4, 5}, 8)} Aufruf ‘Recursive. Make ({4, 5}, 8)’ Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 26

Einordnung Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. -

Einordnung Data. Guides Motivation Data. Guide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. PAT-Trees 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 XMLDTDs). Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 27

PAT-Tree - Gliederung Was sind PAT-Trees? l Wie werden PAT-Trees aufgebaut? l Was für

PAT-Tree - Gliederung Was sind PAT-Trees? l Wie werden PAT-Trees aufgebaut? l Was für Anfragen werden unterstützt, und wie? l Motivation Data. Guide PAT-Trees n - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 28

PAT-Tree Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung

PAT-Tree 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. l Motivation Data. Guide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 29

PAT-Trees 0110010111… Motivation 123456789… Position - Struktur - Aufbau 2 2 Data. Guide PAT-Trees

PAT-Trees 0110010111… Motivation 123456789… Position - Struktur - Aufbau 2 2 Data. Guide PAT-Trees 1 Dokument Warum folgt (5) auf (3)? 3 - Suche 3 2 4 -Sonstiges Algebra Mehrstufigkeit 7 STORED 5 5 1 6 3 Combined Indices Hyper. Stor. M 4 SQLServer Klemens Böhm 8 Interoperable Informationssysteme - 30

Aufbau des PAT-Trees Motivation Data. Guide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges

Aufbau des PAT-Trees Motivation Data. Guide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit 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? ) l STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 31

Aufbau des PAT-Trees 0110010111… Motivation 123456789… 1 Text Position 2 2 Data. Guide PAT-Trees

Aufbau des PAT-Trees 0110010111… Motivation 123456789… 1 Text Position 2 2 Data. Guide PAT-Trees - Struktur - Aufbau 3 - Suche 3 2 4 -Sonstiges Algebra Mehrstufigkeit 7 STORED 5 45 1 6 3 Combined Indices Hyper. Stor. M 4 SQLServer Klemens Böhm 8 5 9 Interoperable Informationssysteme - 32

Suche mit PAT-Trees Prefix Search, l Range Search (wird nicht explizit erklärt), l regex

Suche mit PAT-Trees Prefix Search, l Range Search (wird nicht explizit erklärt), l regex Search, l Evaluierung von Pfadausdrücken. l Motivation Data. Guide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 33

Prefix-Search mit PAT-Trees 0110010111… Motivation 123456789… 1 Text Position 2 Data. Guide 110 01

Prefix-Search mit PAT-Trees 0110010111… Motivation 123456789… 1 Text Position 2 Data. Guide 110 01 0000 2 PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Beispiele: l 110 l 0000 l 01 STORED 3 7 3 5 4 2 4 1 6 3 Combined Indices Hyper. Stor. M 4 SQLServer Klemens Böhm 8 5 9 Interoperable Informationssysteme - 34

Suche mit PAT-Trees regex-Suche: u Automat erzeugen und auf Baum laufenlassen, u Zielzustand -

Suche mit PAT-Trees regex-Suche: u Automat erzeugen und auf Baum laufenlassen, u Zielzustand - Baum akzeptieren, u Blatt - Rest des Automaten auf dem Dokument laufenlassen. l Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z. B. l Motivation Data. Guide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer <restaurant>*<entrée>*</restaurant> (‘*’ 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 </entrée> sucht. u Problem 2: //entrée Klemens Böhm Interoperable Informationssysteme - 35

PAT-Trees - Anmerkungen Schwachpunkte: u Hoher Platzbedarf, u nachträgliches Einfügen mühsam, u nur Primärstruktur.

PAT-Trees - Anmerkungen 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 Data. Guides und PAT Trees? Welchen Teil der ‘Data. Guide-Funktionalität’ bekommt man auch mit PAT Trees? l Motivation Data. Guide PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 36

Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), l Mehrstufige Verfahren zur

Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), l Mehrstufige Verfahren zur Evaluierung von XML-Queries – Motivation und Begriffsbildung, l File-basiertes Query-Processing – zwei Alternativen. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 37

PAT Query Algebraische Darstellung von Queries über semistrukturierte Daten, l Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie,

PAT Query 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 38

PAT Query Algebra - Syntax: u <Elementtyp-Name> ist zulässiger Algebra. Ausdruck, u Wenn T

PAT Query Algebra - Syntax: u <Elementtyp-Name> ist zulässiger Algebra. Ausdruck, u Wenn T 1, T 2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T 1, <String-Pattern>), – ATTR_SELECT(T 1, <Attr. -Name>, <Attr. Wert>), – T 1 UNION T 2, – T 1 DIFF T 2, – T 1 INCLUDS T 2 – T 1 INCL_IN T 2 – (T 1) l Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 39

PAT Query Algebra - Semantik: u <ET-Name> - Menge aller Elemente mit Label <ET-Name>

PAT Query Algebra - Semantik: u <ET-Name> - Menge aller Elemente mit Label <ET-Name> u CONTENT_SELECT(T 1, <String-Pattern>) – alle Elemente aus T 1, die <String -Pattern> enthalten, u ATTR_SELECT(T 1, <A. -Name>, <A. -Wert>) – alle Elemente aus T 1 mit Attribut <A. -Name> mit Wert <A. -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? l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 40

Mehrstufiges Query Processing Man kann sich immer Queries ausdenken, die mit Hilfe des Index

Mehrstufiges Query Processing 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). l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 41

Subsuming Query und Filter Query QS subsumiert Q gdw. <QS> <Q> für beliebige Kollektionen,

Subsuming Query und Filter Query QS subsumiert Q gdw. <QS> <Q> für beliebige Kollektionen, Query QS ist Subsuming Query für Q. l 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. 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 42

Subsuming Query und Filter Query Beispiel “Finde Adressen Motivation XMLQuery aller Restaurants mit PLZ

Subsuming Query und Filter Query Beispiel “Finde Adressen Motivation XMLQuery aller Restaurants mit PLZ 92310. ” - langsam XML Query. Engine Query. Resultat Data. Guide PAT-Trees Subsuming Query Algebra Mehrstufigkeit - Motivation “ 92310” - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices Hyper. Stor. M SQLServer Volltext. Engine Zwischenergebnis (Kandidaten) 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. l Klemens Böhm Interoperable Informationssysteme - 43

Query-Evaluierung ohne Indexstrukturen Query Motivation Application Data. Guide PAT-Trees Algebra Aufruf für XML-Dok. Mehrstufigkeit

Query-Evaluierung ohne Indexstrukturen Query Motivation Application Data. Guide PAT-Trees Algebra Aufruf für XML-Dok. Mehrstufigkeit - Motivation - Subsumpt. XML-Processor (XML-Engine) - File-bas. - Baum-b. - Event-bas. Callback. Methoden DOMMethoden STORED Combined Indices Hyper. Stor. M SQLServer Thema im folgenden: Techniken zur effizienten Evaluierung von XML Queries auf Dokumenten konform zur XML Spezifikation (d. h. XML Files). Klemens Böhm Interoperable Informationssysteme - 44

Zwei Alternativen Baum-basiert, l Event-basiert. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit - Motivation

Zwei Alternativen Baum-basiert, l Event-basiert. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 45

Baum-basierte Queryevaluierung l Motivation l Data. Guide PAT-Trees Algebra Mehrstufigkeit - Motivation l l

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

Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): Data. Guide AUTHORS AUTHORFUNCTION=AUTHORFUNCTION=PHOTOGR PAT-Trees NAME Algebra

Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): Data. Guide AUTHORS AUTHORFUNCTION=AUTHORFUNCTION=PHOTOGR PAT-Trees NAME Algebra Mehrstufigkeit SURNAME CHRNAME Grabs Torsten Weber Roger - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Query (Algebra. Repräs. ): Combined Indices INCL_IN CHRNAME INCLUDS NAME CONTENT_SELECT‘Grabs’ Hyper. Stor. M SQLServer SURNAME Klemens Böhm Interoperable Informationssysteme - 47

Baum-basierte Queryevaluierung Optimierungen Motivation Data. Guide PAT-Trees Idee: Nur die Teilbäume erzeugen, die für

Baum-basierte Queryevaluierung Optimierungen Motivation Data. Guide PAT-Trees Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED TOP Optimierung OUT Optimierung BOTTOM Optimierung Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 48

TOP Optimierung Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten

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

BOTTOM Optimierung l Motivation Data. Guide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die

BOTTOM Optimierung l Motivation Data. Guide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten. ” NAME PAT-Trees CHRNAME Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices Hyper. Stor. M SQLServer SURNAME Böhm l Wir brauchen nur Elemente, u die String ‘Böhm’ enthalten, oder u die ein Element vom Typ CHRNAME enthalten, oder u die in einem Element vom Typ CHRNAME enthalten sind. Klemens Böhm Interoperable Informationssysteme - 50

OUT Optimierung Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten

OUT Optimierung Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten. ” l Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, l Beispiel (Forts. ): DTD sagt uns, dass MONOMEDElemente 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 51

Event-Basierte Queryevaluierung Automat, der Query entspricht, l Events überführen den Automaten in anderen Zustand.

Event-Basierte Queryevaluierung Automat, der Query entspricht, l Events überführen den Automaten in anderen Zustand. l Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält. ” l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit - Motivation CAPTION begin - Subsumpt. - File-bas. string ‘millennium’ CAPTION end - Baum-b. - Event-bas. STORED Combined Indices Hyper. Stor. M SQLServer l Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 52

Fazit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, l Kombination File-basierter Queryevaluierung mit Indexstrukturen

Fazit 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 53

l l Motivation l Data. Guide l PAT-Trees Algebra Mehrstufigkeit STORED l l Verwendung

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

Verwendung von RDBMSen Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. l Man hat

Verwendung von RDBMSen 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 55

Verwendung von RDBMSen Eine mögliche Verwendungsmöglichkeit von RDBMSen: Speicherung der Annotationen der Data. Guides,

Verwendung von RDBMSen Eine mögliche Verwendungsmöglichkeit von RDBMSen: Speicherung der Annotationen der Data. Guides, l Jedem Data. Guide-Knoten entspricht z. B. eine Relation, Indexierung bekommt man dann ‘kostenlos’. l Data. Guide 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 56

Beispiel für relationale Speicherung Dokument Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung

Beispiel für relationale Speicherung Dokument Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices Hyper. Stor. M SQLServer Mögliche relationale Darstellung <rezept> <zutaten id="x 1"> <zutat>Ei</zutat> <zutat>Mehl</zutat> </zutaten> <expertise/> <zutaten id="x 2"> <zutat>Salz</zutat> </zutaten> </rezept> 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). l Klemens Böhm Interoperable Informationssysteme - 57

Beispiel f. relationale Speicherung (2) rezept zutaten expertise zutat Motivation Data. Guide PAT-Trees Algebra

Beispiel f. relationale Speicherung (2) rezept zutaten expertise zutat Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Kein substantieller Unterschied zur vorigen Repräsentation! Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 58

STORED l Motivation Data. Guide PAT-Trees Algebra l l Mehrstufigkeit STORED - Einleitung -

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

Relationale Sichten auf semistrukturierte Daten Motivation Audit Data. Guide PAT-Trees Algebra taxpayer Mehrstufigkeit STORED

Relationale Sichten auf semistrukturierte Daten Motivation Audit Data. Guide PAT-Trees Algebra taxpayer Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name company taxevasion owner taxamount address name audited - Mining - Ausblick Combined Indices street zip number Hyper. Stor. M SQLServer Werte und OIDs weggelassen. Unterschied zu OEM: Geordnetheit. Klemens Böhm Interoperable Informationssysteme - 60

Relationale Speicherung – Fortsetzung des Beispiels Taxpayer 1 Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit

Relationale Speicherung – Fortsetzung des Beispiels Taxpayer 1 Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit Taxpayer 2 STORED - Einleitung - Abbildung - Mining - Ausblick Company Combined Indices Hyper. Stor. M SQLServer Klemens Böhm 1. RDBMS-Schema ist dokumenttyp-spezifisch. 2. Unterschiedliche Tables für einen Elementtyp. 3. Daten zu einem Element auf mehrere Relationen verteilen. Interoperable Informationssysteme - 61

Storage Queries ‘Storage Queries’ beschreiben Abbildung von semistrukturierten Daten aufs Relationale. l Beispiele: l

Storage Queries ‘Storage Queries’ beschreiben Abbildung von semistrukturierten Daten aufs Relationale. l Beispiele: l Motivation Data. Guide M 1 a = FROM Audit. taxpayer: $X { name: $N, adr: $P, OPT{audited: $A}, OPT{taxamount: $T}} WHERE type. OF($P, “string”) STORE Taxpr($X, $N, $P, $A, $T) M 1 b = FROM Audit. taxpayer: $X { name: $N, adr: {street $S, OPT{city $C, OPT{zip $Z}}}, OPT{audited: $A}, OPT{taxamount: $T}} WHERE type. OF($P, “string”) STORE Taxpr($X, $N, $S, $C, $Z, $A, $T) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices Hyper. Stor. M SQLServer l OID bei inneren Knoten, Textinhalt bei Blättern. Klemens Böhm Interoperable Informationssysteme - 62

Storage Queries - Erläuterungen Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, (d.

Storage Queries - Erläuterungen 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) l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 63

Storage Queries (Fortsetzung) l Motivation Beispiel: M 2 = Data. Guide PAT-Trees Algebra Mehrstufigkeit

Storage Queries (Fortsetzung) l Motivation Beispiel: M 2 = Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. l Beispiel: M 3 a = - Abbildung - Mining - Ausblick M 3 b = Combined Indices Hyper. Stor. M SQLServer FROM Audit. taxpayer: $X {name[1]: $N, audited[1]: $A 1, OPT{audited[2]: $A 2}} STORE Taxpr 2($N, $A 1, $A 2) FROM Audit. irscenter: $X {centername: $N, centeraddress: $A} STORE Irs. Center($X, $N, $A) 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. Klemens Böhm Interoperable Informationssysteme - 64

Auswahl der Sichten (1) Wie kommt man zu den Storage Queries? l (Strukturelle) Patterns

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

Auswahl der Sichten (2) l Audit. taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation Data.

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

Auswahl der Sichten (2) Definition: Support eines Patterns – Anzahl der Vorkommen des Patterns.

Auswahl der Sichten (2) Definition: Support eines Patterns – Anzahl der Vorkommen des Patterns. l Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q 1, …, Qk mit Gewichten f 1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. l Je grösser Query-Support, für desto mehr Queries ist das Pattern Teil des Ergebnisses. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 67

Data Mining in 120 Sekunden… l Motivation Data. Guide l PAT-Trees Algebra Mehrstufigkeit STORED

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

Algorithmus zur Auswahl der Sichten l l l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit

Algorithmus zur Auswahl der Sichten l l l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung l - Mining - Ausblick Combined Indices Hyper. Stor. M SQLServer l Erzeugung aller Label Paths mit ausreichendem Support, Erzeugung der Frequent Patterns, 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 Pk so wählen, dass (1) Überlappung mit P 1, …, Pk-1 minimal ist, und (2) neue Pfade aus F 1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, u zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, u zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 69

Queryevaluierung Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining

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

Beurteilung l Motivation l Data. Guide PAT-Trees l Algebra Mehrstufigkeit l STORED - Einleitung

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

Combined Indices Zunächst anhand von Relationen, dann Verallgemeinerung. l Relation hat mehrere Attribute, z.

Combined Indices Zunächst anhand von Relationen, dann Verallgemeinerung. l Relation hat mehrere Attribute, z. B. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer 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. l Klemens Böhm Interoperable Informationssysteme - 72

Combined Indices – Anzahl der Kombinationen Beobachtung 1: Sehr viele Vorkommen von Vorname ‘Klemens’

Combined Indices – Anzahl der Kombinationen 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’, ‘C 45. 2’) werden nicht gebraucht. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 73

Vorgehen Index für alle Kombinationsmöglichkeiten vorsehen. l Werte-Tupel (v 1, …, vn) bekommt Indexeintrag,

Vorgehen Index für alle Kombinationsmöglichkeiten vorsehen. l Werte-Tupel (v 1, …, vn) bekommt Indexeintrag, wenn deutlich weniger Instanzen als Instanzen der Tupel (v 1, v 3, …, vn), (v 2, …, vn), …, (v 1, …, vn-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=C 45. 2 u Es reicht, alle Tupel mit Vorname ‘Klemens’ über Index zu holen. Dann Test, ob Büronummer=C 45. 2 l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 74

Verallgemeinerung für Text und semistrukturierte Daten l Motivation Data. Guide l PAT-Trees Algebra l

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

Hyper. Stor. M Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor.

Hyper. Stor. M Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer 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. Klemens Böhm Interoperable Informationssysteme - 76

Ansatz Verwendung objektorientierter Datenbank-Technologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw.

Ansatz Verwendung objektorientierter Datenbank-Technologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. Object. Store-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). l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 77

Physische Repräsentation der Dokumente Naheliegender Ansatz: Jedem Element entspricht ein Datenbank-Objekt zuviele Objekte, Einfügen

Physische Repräsentation der Dokumente 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 (‘Hyper. Stor. M’): 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 78

Beispiel play Motivation . . . Data. Guide PAT-Trees title Algebra Mehrstufigkeit fm The

Beispiel play Motivation . . . Data. Guide PAT-Trees title Algebra Mehrstufigkeit fm The Tragedy of Hamlet, Prince of Denmark personae <title>Dramatis Personae</title> Scene Denmark <persona>CLAUDIUS</persona> Dramatis <persona>HAMLET</persona> Act I Persona p. . . persona p SGML markup. . . worldwide acttitle CLAUDIUS HAMLET scenetitl e stagedir Scene I. . . Hyper. Stor. M SQLServer playsubt hamlet title STORED Combined Indices scenedescr FRANCISCO. . . BERNARDO Klemens Böhm speech speaker line Who's there? Interoperable Informationssysteme - 79

XML- und Hypermedia-Semantik Methoden reflektieren XML-Semantik, z. B. Navigation in der Hierarchie, l Methoden

XML- und Hypermedia-Semantik 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) l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 80

Bewertung Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt für Hypermedia-Aspekte, allerdings gab es

Bewertung 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 81

Bewertung (Forts. ) Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente

Bewertung (Forts. ) 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer Klemens Böhm Interoperable Informationssysteme - 82

XML Features von SQL Server 2000 Transformation von Relationen (insbesondere Queryergebnisse) nach XML, Alternativen,

XML Features von SQL Server 2000 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 Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB 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. Klemens Böhm Interoperable Informationssysteme - 83

HTTP Zugriff URLs enthalten Domainname und Name der virtuellen Root. l Beispiel: http: //dbspc

HTTP Zugriff URLs enthalten Domainname und Name der virtuellen Root. l Beispiel: http: //dbspc 15/sitzungen? sql=select%20'<root>'; sel ect+*+from+protokolle+FOR+XML+AUTO; select%2 0'</root>' l Virtual Root: Abstraktion, die DB-Server, DB-Instanz, Zugriffsrechte etc. versteckt. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB Klemens Böhm Interoperable Informationssysteme - 84

HTTP Zugriff – URL Typen URL Query http: //localhost/demos? sql=select+*+from+Custom ers+FOR+XML+Auto&root=root l Direct Query

HTTP Zugriff – URL Typen URL Query http: //localhost/demos? sql=select+*+from+Custom ers+FOR+XML+Auto&root=root l Direct Query Access http: //localhost/demos/dbobject/Employees[@Empl oyee. ID=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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB Klemens Böhm Interoperable Informationssysteme - 85

Generierung von XML aus SQL-Queryergebnissen (1) unterschiedlich ausgefeilte (und unterschiedlich komplizierte) Mechanismen für die

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

Generierung von XML aus SQL-Queryergebnissen (2) l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED

Generierung von XML aus SQL-Queryergebnissen (2) l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Auto Modus: u Erzeugt XML Dokument mit Nesting mit regelmässigem Aufbau, u Reihenfolge der Table-Aliase in select-Klausel, u Beispiel: http: //dbspc 15/sitzungen? sql=select+*+from+pr otokolle+FOR+XML+AUTO&root=root Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB Klemens Böhm Interoperable Informationssysteme - 87

Generierung von XML aus SQL-Queryergebnissen (3) l SELECT Customers. Customer. ID, Order. ID FROM

Generierung von XML aus SQL-Queryergebnissen (3) l SELECT Customers. Customer. ID, Order. ID FROM Customers LEFT OUTER JOIN Orders ON Customers. Customer. ID = Orders. Customer. ID ORDER BY Customers. Customer. ID FOR XML auto Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB Query: l Resultat: <Customers Customer. ID=“ALFKI”> <Orders Order. ID=“ 10643” /> <Orders Order. ID=“ 10692” /> </Customers> <Customers Customer. ID=“ANATR”> <Orders Order. ID=“ 10308” /> … Klemens Böhm Interoperable Informationssysteme - 88

Generierung von XML aus SQL-Queryergebnissen (4) l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED

Generierung von XML aus SQL-Queryergebnissen (4) l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Explicit Modus: u Flexibelster, aber kompliziertester Ansatz, u Query erzeugt Tabelle, die Struktur des XML-Dokuments explizit kodiert (‘Universal Table Format’) u Beispiel – Dokument, das erzeugt werden soll: <root> Spalten der <Customer cid="ALFKI"> Customer-Relation <name>Alfreds Futterkiste</name> <Order oid="O-10643" /> <Order oid="O-10692" /> <Order oid="O-10702" /> … </Customer> <Customer cid="BOLID"> <name>Bólido Comidas preparadas</name> <Order oid="O-10326" /> … </Customer> </root> Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB Klemens Böhm Interoperable Informationssysteme - 89

Generierung von XML aus SQL-Queryergebnissen (5) u Unterschiedliches Mapping von Customer-Spalten: – cid Attribut

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 Klemens Böhm Interoperable Informationssysteme - 90

Generierung von XML aus SQL-Queryergebnissen (4) Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit Erläuterungen zu

Generierung von XML aus SQL-Queryergebnissen (4) Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit 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. STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB Klemens Böhm Interoperable Informationssysteme - 91

Templates (1) XML-Dokument, das parametrisierte Anfrage enthält, l Kann z. B. angestossen werden über

Templates (1) XML-Dokument, das parametrisierte Anfrage enthält, l Kann z. B. angestossen werden über action-Attribut eines form-Elements. l Anfrage selbst – im wesentlichen gleicher Mechanismus wie bisher. l Beispiel: l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB <root xmlns: sql="urn: schemas-microsoftcom: xml-sql" sql: xsl="path to XSLT file" > <sql: header> <sql: param name="state">WA</sql: param> </sql: header> <sql: query> Hier eine Anfrage mit Zeile … And Region LIKE @state … </sql: query> </root> Klemens Böhm Interoperable Informationssysteme - 92

Templates (2) l Beispiel für Einbindung Template – Parameter über Formular: Motivation Data. Guide

Templates (2) l Beispiel für Einbindung Template – Parameter über Formular: Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB <html> <body> <form name="protokoll" action="http: //dbspc 15/sitzungen/templates/in sert_Template. xml" method="POST"> <input type=hidden name="contenttype" value="text/xml"> <textarea name="state" cols=70 rows=30></textarea> <input type=Submit value="Submit"> </form> </body> </html> Klemens Böhm Interoperable Informationssysteme - 93

XML Sichten mit Annotated Schemata XML-Data – Microsoft-Pendant zu XML Schema. l Annotationen –

XML Sichten mit Annotated Schemata XML-Data – Microsoft-Pendant zu XML Schema. l Annotationen – definieren Beziehungen zwischen Elementen. l Erläuterung des folgenden Beispiels – Struktur der erzeugten Dokumente: <Customer ID=…> <Order. ID=…/> </Customer> l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB Klemens Böhm Interoperable Informationssysteme - 94

XML Sichten mit Annotated Schemata – Beispiel <? xml version="1. 0" ? > <Schema

XML Sichten mit Annotated Schemata – Beispiel <? xml version="1. 0" ? > <Schema xmlns="urn: schemas-microsoft-com: xml-data" xmlns: sql="urn: schemas-microsoft-com: xml-sql"> <Element. Type name="Customer" unterschiedliche Namen! sql: relation="Customers"> <Attribute. Type name="ID" /> <attribute type="ID" sql: field="Customer. ID" /> <element type="Order"> <sql: relationship key-relation="Customers" key="Customer. ID" foreign-relation="Orders" foreign-key="Customer. ID"/> </element> </Element. Type> <Element. Type name="Order" sql: relation="Orders"> <Attribute. Type name="Order. ID" /> <attribute type="Order. ID" sql: field="Order. ID"/> </Element. Type> Interoperable Informationssysteme - 95 </Schema> Klemens Böhm

XPath-Derivat für Zugriff auf XML Sicht Unterschiede zur Standard XPath-Semantik u ‘any-match’ statt ‘first-match’

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

Relationale Sicht auf XML Daten Anwendung: Einfügen von XML in RDBMS, l Open. XML

Relationale Sicht auf XML Daten Anwendung: Einfügen von XML in RDBMS, l Open. XML 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. l Motivation Data. Guide PAT-Trees Algebra Mehrstufigkeit STORED Combined Indices Hyper. Stor. M SQLServer - Einleitung - SQL-bas. Mechan. - XMLSichten + Zugriff - XML DB Klemens Böhm Interoperable Informationssysteme - 97