Slide 1 DataGuides
und Indexstrukturen
für semistrukturierte Daten
Klemens Böhm
Interoperable Informationssysteme - 1
Gliederung
Motivation
DataGuide
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Fragen:
Wie speichert man
semistrukturierte
Daten, insbes.
XML-Dokumente?
Wie evaluiert man
Queries effizient?
Nicht dasselbe
Gliederungspunkte:
DataGuides und
k-Representative
Objects,
PAT-Trees,
Query Subsumption und Query Filtering
sowie File-basiertes Query Processing,
Verwendung von RDBMSen,
Verwendung objektorientierter Datenbank-Technologie.
Klemens Böhm
Interoperable Informationssysteme - 2
Motivation
DataGuide
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Wiederholung: Querysprachen für
semistrukturierte Daten
Mit OEM geht Querysprache einher.
Diese Querysprache ähnelt OQL,
erlaubt insbesondere Pfadausdrücke.
Beispiele:
select Restaurant.Entrée
select Restaurant.Name
where Restaurant.Entrée = “Burger”
Anfragemechanismen dieser Art
sind natürlich auch sinnvoll für XML-Dokumente;
Beispiele (zum Protokoll-Dokumenttyp):
“Gib’ mir alle Empfehlungen von Roger Weber.”
“Gib’ mir alle Beschlüsse, die vor der
Feststellung mit ID=ke (‘Unser Kredit ist
erschöpft.’) gefällt wurden.”
Klemens Böhm
Interoperable Informationssysteme - 3
Evaluierung von Queries
über semistrukturierten Daten
Motivation
DataGuide
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Problem:
Effiziente Evaluierung
von Anfragen mit Pfadausdrücken,
Inspektion aller Dokumente
i.a. nicht akzeptabel.
Zusammenfassungen der Daten
und Indexstrukturen sind hilfreich
für Queryoptimierung und
Queryevaluierung.
Klemens Böhm
Interoperable Informationssysteme - 4
Ziel 1 - Volltextindex
vs. speziellere Indexstrukturen
Motivation
DataGuide
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Beispielquery:
“Selektiere alle Empfehlungen von Weber.”
Volltextindex würde uns befähigen, alle Dokumente,
die String ‘Weber’ enthalten, schnell zu holen.
Probleme, die Volltextindex nicht löst:
Viele Dokumente können String ‘Weber’ in
anderem Zusammenhang enthalten.
Wir wollen nur die Empfehlungen,
nicht die ganzen Dokumente.
Feldweiser Index wäre besser.
Feld ‘Empfehlender’
Am besten: Index für Text unter jedem Pfad.
select Restaurant.Name where Restaurant.Entrée = “Burger”
Klemens Böhm
Interoperable Informationssysteme - 5
Ziel 2 - Schemainformation
für Queryoptimierung
select Restaurant.Name
where Restaurant.Entrée = “Burger”
Motivation
DataGuide
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Beispiel:
Query kann nur dann eine Lösung haben,
wenn Pfad ‘Restaurant.Entrée’ in der
Datenbank überhaupt vorkommt.
Es wäre hilfreich, vor Queryevaluierung
schnell nachsehen zu können, ob Pfad in
der Datenbank vorkommt.
Klemens Böhm
Interoperable Informationssysteme - 6
DataGuides
Motivation
DataGuide
Repres.
Objects
PAT-Trees
Algebra
DataGuides unterstützen sowohl
Indexierung von Text für einzelne Pfade
als auch das Nachschauen von Pfaden.
Erst wird das Problem ‘Nachschauen von
Pfaden’ angesprochen, dann das erste
Problem.
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 7
DataGuides - Gliederung
Motivation
DataGuide
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Was sind DataGuides?
Wie helfen sie bei der Evaluierung von
Anfragen? (Problem 1)
Erweiterungen von DataGuides;
Annotationen von DataGuides,
Annotationen und Query Evaluierung
(Problem 2).
I.a. gibt es mehrere DataGuides für eine
Datenbank, was sind die Unterschiede?
Schlussbemerkungen zu DataGuides
Klemens Böhm
n
Interoperable Informationssysteme - 8
Data Guides
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Data Guides:
konkrete Zusammenfassung des Datenbank-Inhalts
(OEM spricht von ‘Datenbanken’, XML von
‘Dokumenten’. Da DataGuides auf OEM aufsetzen,
verwenden wir diese Terminologie.)
Unterschied zwischen ‘DataGuide’ und ‘Schema’:
DataGuide ist konform zur Datenbank,
nicht umgekehrt.
(Denkbar, dass man DataGuide zu einer Datenbank
konstruiert, für die ein Schema existiert,
und dass DataGuide und Schema nicht
übereinstimmen.)
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 9
Beispiel-Datenbank
1
Motivation
Restaurant
DataGuide
- Einleitung
2
- Struktur
PAT-Trees
3
4
Plus
Inhaber
- Strong
DGs
Repres.
Objects
Bar
Name
- Query
Proc.
- Einord.
Restaurant
Entree
5
6
Telefon
7
Chili Burger
555-1234
Manager Name Entree Entree
8
9
10
11
Klein
Darbar
Lamm
Rind
Algebra
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 10
DataGuides - Beispiel
12
Motivation
Restaurant
DataGuide
Bar
- Einleitung
13
- Struktur
14
- Query
Proc.
Name
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
15
Inhaber Manager
Entree Telefon
19
18
17
16
Algebra
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 11
DataGuides
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass
jeder label path in s
genau eine data path-Instanz in d hat,
jeder label path von d ein label path von s
ist.
DataGuide erlaubt offensichtlich
nachzusehen, welche Pfade in der
Datenbank vorkommen.
Algebra
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 12
DataGuides
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank.
Kürze: DataGuide beschreibt
jeden label path mit einer Instanz
in der Datenbank genau einmal.
Akkuratheit:
DataGuide beschreibt keine label paths,
die nicht in der Datenbank vorkommen.
‘Geeignetheit’: DataGuide ist OEM Objekt
( Speicherung und Zugriff auf
DataGuides mit OEM-Mechanismen
möglich.)
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 13
Erzeugung von DataGuides
Äquivalent zu NEA -> DEA
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 14
Query Processing mit DataGuides (1)
Motivation
DataGuide
- Einleitung
Aus dem DataGuide kann man
für manche (Teil-)Queries ableiten,
ob sie keine Lösung haben.
Beispiel: gpe = Guide.A%.B%
- Struktur
- Query
Proc.
- Strong
DGs
A1
A2
- Einord.
Repres.
Objects
PAT-Trees
C
Algebra
B D
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 15
Annotationen der DataGuide-Knoten
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Beispiele für Annotationen:
Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist
Speicherstruktur der Form
||Label Path --> {Objekt}||,
Häufigkeiten,
Volltext-Index.
Annotationen der DataGuide-Knoten
können hilfreich sein fürs Query Processing.
Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden.
Algebra
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 16
Verwendung DataGuide
für Query Processing (3)
12
1
Restaurant
Restaurant
Restaurant Bar
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
2
13
4
3
Plus
Inhaber
Entree
Name
Manager
Name Entree
Entree Telefon
5
6
7
Chili Burger 555-1234
8
Klein
9
Bar
10
Darbar Lamm
Name
Entree
11
Rind
15
16
14
Inhaber Manager
Telefon
17
18
19
Annotation
Erläutern, wie Anfrage unterstützt wird.
DataGuide ist nur Zusammenfassung der Datenbank.
Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides
und dieser Art von Annotationen beantwortet werden können:
•‘Selektiere alle Restaurants, die einen Inhaber haben.’
•‘Selektiere alle Restaurants, in denen es sowohl das Entrée
‘Rind’ als auch das Entrée ‘Lamm’ gibt.’
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 17
Query Processing mit DataGuides (2)
select DBS.Group_Member.Publication.Year
where DBS.Group_Member.Publication.Year <
1975
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Beispiel:
Effizientere Queryevaluierung:
Liste von Pointern auf DatenbankObjekte.
Wenn man Target Sets beim DataGuide
explizit abspeichert: Man erspart sich
Navigieren im Datenbestand.
Volltext-Index,
Häufigkeitsinformation.
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 18
DataGuides - weiteres Beispiel
1
A
Motivation
B
11
A
B
18
B
A B
DataGuide
- Einleitung
2
3
4
12
13
19
C
C
C
C
C
C
5
6
7
14
15
20
D
D
D
D
D
D
8
9
10
16
17
21
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Datenbank
Zwei entsprechende DataGuides
Hier nur sagen, dass es mehrere DataGuides geben kann.
Klemens Böhm
Interoperable Informationssysteme - 19
Minimale DataGuides
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
Es existieren wohlbekannte Techniken
zur Minimierung von DataGuides,
d.h. zur Erzeugung eines DataGuides
mit minimaler Anzahl von Zuständen
aus beliebigem DataGuide.
Nachteile minimaler DataGuides:
Änderungen an der Datenbank
verursachen mehr Arbeit, Beispiel
Aussagen über Menge von Objekten in der
Datenbank, die über einen label path erreichbar
sind, sind weniger gut möglich.
Solche Aussagen heissen im folgenden
Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar?
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 20
Strong DataGuides
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
Motivation: Charakterisierung der
DataGuides, deren Annotationen stets
eindeutig sind.
Intuition: Label paths mit dem gleichen
(singleton) Target Set im DataGuide haben
stets das gleiche Target Set in der
Datenbank.
Naechste Folie Illustration.
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 21
Strong DataGuides - Illustration
1
A
Motivation
B
B
11
18
A B
A B
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
2
3
4
12
13
19 Annotation
C
C
C
C
C
C
5
6
7
14
15
20
D
D
D
D
D
D
8
9
10
16
17
21
von Objekt 20:
weniger präzise
Annotationsmöglichkeiten
als im anderen
DataGuide.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Datenbank
Entsprechende DataGuides
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 22
Strong DataGuides - Definition
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
OEM Objekte s und d, d ist DataGuide für s,
Ts(l) - Target Set von l in s,
Td(l) - (singleton) Target Set von l in d,
Ls(l) = {m|Ts(m)=Ts(l)},
d.h. Ls(l) ist die Menge aller label paths
mit dem gleichen Target Set wie l,
Ld(l) = {m|Td(m)=Td(l)},
d.h. Ld(l) ist die Menge aller label paths in d
mit dem gleichen Target Set wie l.
d ist ein Strong DataGuide,
wenn für alle label paths l von s: Ls(l)=Ld(l)
Am Beispiel erlaeutern - naechste Folie.
Klemens Böhm
Interoperable Informationssysteme - 23
Strong DataGuides - Illustration
1
A
Motivation
B
B
11
18
A B
A B
DataGuide
- Einleitung
1
3
4
12
13
19 l=A.C
C
C
C
C
C
C
- Einord.
5
6
7
14
15
20
Repres.
Objects
D
D
D
D
D
D
8
9
10
16
17
21
- Struktur
- Query
Proc.
- Strong
DGs
Ls(l)={A.C}
Ld(l)={A.C, B.C}
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Datenbank
Entsprechende DataGuides
HyperStorM
Klemens Böhm
Interoperable Informationssysteme - 24
Aufbau eines Strong DataGuides
//
//
//
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
Repres.
Objects
PAT-Trees
Algebra
Mehrstufigkeit
STORED
HyperStorM
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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 2 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 3 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 4 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 5 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 6 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 7 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 8 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 9 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 10 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 11 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 12 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 13 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert , T1 INCLUDS T2 – alle Elemente aus T1, die eins aus T2 enthalten, T1 INCL_IN T2– alle Elemente aus T1, die in einem aus T2 enthalten sind. Was bedeutet die Beispiel-Query? Klemens Böhm Interoperable Informationssysteme - 45 Mehrstufiges Query Processing Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation Man kann sich immer Queries ausdenken, die mit Hilfe des Index allein nicht evaluiert werden können, Ansatz: Man verwendet Index, um Menge der Dokumente einzuschränken, und inspiziert die verbleibenden Dokumente (Kandidaten) “von Hand” (d.h. ohne Zuhilfenahme eines Index). - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 46 Subsuming Query und Filter Query Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Query QS subsumiert Q gdw. für beliebige Kollektionen, Query QS ist Subsuming Query für Q. Filter Query QF für Query Q und Subsuming Query QS: () = , d.h. wenn QF auf das Resultat von QS angewendet wird, ist das Ergebnis das gleiche, wie wenn Q evaluiert wird. Wann ist Aufteilung einer Query in Subsuming Query und Filter Query noch sinnvoll? Ein System kann nur Subsuming Query, nicht aber Filter Query evaluieren, ist aber sehr schnell. Klemens Böhm Interoperable Informationssysteme - 47 Subsuming Query und Filter Query “Finde die Adressen Beispiel Motivation XMLQuery aller Restaurants mit PLZ 92310.” - langsam - XML QueryEngine QueryResultat DataGuide Repres. Objects Subsuming Query PAT-Trees Algebra Mehrstufigkeit VolltextEngine Zwischenergebnis (Kandidaten) “92310” - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Ansatz ist vorteilhaft, wenn Volltext-Engine erheblich schneller als XML Query Engine, und Zwischenergebnis deutlich kleiner als Ausgangskollektion. Im Beispiel sind Query und Filter Query identisch, das muss aber nicht so sein. Klemens Böhm Interoperable Informationssysteme - 48 Query-Evaluierung ohne Indexstrukturen query Motivation Application DataGuide Repres. Objects Aufruf für XML-Dok. PAT-Trees Algebra Mehrstufigkeit CallbackMethoden - Motivation XML-Processor (XML-Engine) - Subsumpt. - File-bas. DOMMethoden - Baum-b. - Event-bas. STORED HyperStorM 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 - 49 Zwei Alternativen Baum-basiert, Event-basiert. Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 50 Baum-basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Aufbau der Baumstruktur im Hauptspeicher unter Verwendung der CallbackSchnittstelle, Algebraische Repräsentation der Query, Set-at-a-time Query Evaluierung. Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 51 Baum-basierte Queryevaluierung Beispiel Motivation Dokument (logische Struktur): DataGuide AUTHORS Repres. Objects PAT-Trees AUTHORFUNCTION=AUTHOR AUTHOR FUNCTION=PHOTOGR NAME NAME SURNAME CHRNAME SURNAME CHRNAME Grabs Torsten Weber Roger Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. Query (AlgebraRepräs.): INCL_IN CHRNAME INCLUDS - Event-bas. STORED NAME CONTENT_SELECT‘Grabs’ HyperStorM SURNAME Klemens Böhm Interoperable Informationssysteme - 52 Baum-basierte Queryevaluierung Optimierungen Motivation DataGuide Repres. Objects Idee: Nur die Teilbäume erzeugen, die für die Queryevaluierung wirklich gebraucht werden. PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. TOP Optimierung OUT Optimierung BOTTOM Optimierung - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 53 TOP Optimierung Motivation DataGuide Repres. Objects Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Queryergebnisse haben die folgende Struktur: NAME PAT-Trees Algebra CHRNAME Mehrstufigkeit Böhm - Motivation - Subsumpt. - File-bas. - Baum-b. SURNAME Es genügt, Teilbäume zu betrachten, deren Wurzel vom Typ NAME ist. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 54 BOTTOM Optimierung Motivation DataGuide Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” NAME Repres. Objects CHRNAME SURNAME PAT-Trees Böhm Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED Wir brauchen nur Elemente, die String ‘Böhm’ enthalten, oder die ein Element vom Typ CHRNAME enthalten, oder die in einem Element vom Typ CHRNAME enthalten sind. HyperStorM Klemens Böhm Interoperable Informationssysteme - 55 OUT Optimierung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. Beispiel (Query von vorhin): “Selektiere alle CHRNAME-Elemente, die in einem NAME-Element enthalten sind, die ein SURNAMEElement mit Inhalt ‘Böhm’ enthalten.” Idee: Verwendung der DTD zur Eliminierung von Teilbäumen, Beispiel (Forts.): DTD sagt uns, dass MONOMEDElemente nie CHRNAME-Elemente enthalten Teilbäume mit Wurzel MONOMED werden für Queryevaluierung nicht gebraucht. OUT Optimierung basiert auf der DTD, im Gegensatz zu TOP und BOTTOM. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 56 Event-Basierte Queryevaluierung Motivation DataGuide Repres. Objects PAT-Trees Automat, der der Query entspricht, Events überführen den Automaten in anderen Zustand. Beispiel: “Selektiere alle Dokumente mit einem caption-Element, das den String ‘millennium’ enthält.” Algebra Mehrstufigkeit CAPTION begin string ‘millennium’ - Motivation CAPTION end - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Implementierung ist komplizierter als hier dargestellt. Klemens Böhm Interoperable Informationssysteme - 57 Fazit Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit File-basierte Queryevaluierung (ohne Index/materialisierte Sichten) “geht immer”, Kombination File-basierter Queryevaluierung mit Indexstrukturen für semistrukturierte Daten bringt i.a. deutlich bessere Performance als File-basierte Queryevaluierung alleine. - Motivation - Subsumpt. - File-bas. - Baum-b. - Event-bas. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 58 Motivation DataGuide Repres. Objects PAT-Trees 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. Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 59 Verwendung von RDBMSen Motivation DataGuide Repres. Objects PAT-Trees Algebra Ziel: Verwendung eines RDBMSs zur Verwaltung semistrukturierter Daten. Man hat materialisierte relationale Sichten auf die semistrukturierten Daten. Man kann die Sichten indexieren. Datenbank-Funktionalität, z.B. Concurrency Control, Indices, “for free”. Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 60 Beispiel für relationale Speicherung Dokument Motivation DataGuide Repres. Objects PAT-Trees Algebra MehrstufigkeitEi Mehl Salz Mögliche relationale Darstellung S o u rc e 1 x1 x1 2 3 1 4 1 5 Nam e re ze p t zu ta te n zu ta te n zu ta t zu ta t re ze p t e xp e rtis e zu ta te n zu ta t V S trin g T a rg e t x1 2 3 Ei Mehl 4 5 S a lz STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Reihenfolge-Information nicht berücksichtigt, geht aber grundsätzlich, zuviele Joins zur Evaluierung von Pfadausdrücken, Einfügen und Auslesen von ganzen Dokumenten dauert zu lange, unklar, für welche Anfragen die Darstellung vorteilhaft ist. Klemens Böhm Interoperable Informationssysteme - 61 Beispiel f. relationale Speicherung (2) rezept Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit S o u rc e 1 1 1 zutaten V S trin g T a rg e t 2 3 4 STORED V S trin g T a rg e t 5 6 7 zutat expertise S o u rc e 2 S o u rc e 3 3 4 V S trin g T a rg e t S o u rc e 5 6 7 V S trin g Ei M ehl S a lz T a rg e t - Einleitung - Abbildung Kein substantieller Unterschied zur vorigen Repräsentation! - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 62 STORED Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Overflow Graphs erwaehnen STORED - Einleitung - Abbildung - Mining - Ausblick ‘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; wegen Verlustfreiheit muss man z.B. das ursprüngliche Dokument behalten. Problem: Auswahl der Sichten, die man materialisieren will; mögliche Randbedingungen: Plattenplatz, Maximalanzahl von Relationen, gewichteter Query-Mix. HyperStorM Klemens Böhm Interoperable Informationssysteme - 63 Relationale Sichten auf semistrukturierte Daten Audit Motivation DataGuide taxpayer Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung name taxpayer taxamount taxpayer taxevasion address taxamount address audited name audited audited street street zip name company taxevasion owner taxamount address name audited street zip number - Mining - Ausblick HyperStorM Werte und OIDs weggelassen Unterschied zu OEM: Geordnetheit Klemens Böhm Interoperable Informationssysteme - 64 Relationale Speicherung – Fortsetzung des Beispiels Taxpayer1 Motivation DataGuide o id o24 o21 nam e G lu sch k o K o sb e rg s tre e t T yu ra ta m T yu ra ta m no apt 2c a d d re s s B a ik o n u r a u d ite d 1 0 /1 2 /8 6 206 zip 07099 92443 a u d it1 1 0 /1 2 /6 3 1 1 /1 /6 8 a u d it2 ta x a m o u n t 12332 0 1 0 /1 2 /7 7 ta x e v a s io n lik e ly Repres. Objects PAT-Trees Algebra Mehrstufigkeit Taxpayer2 o id o20 nam e K o ro le v ta x a m o u n t 0 ta x e v a s io n lik e ly STORED - Einleitung - Abbildung - Mining Company nam e R o ck e t In c. ow ner o24 - Ausblick HyperStorM Mehrere Tabellen fuer aehnliche Struktur Aufloesung von Mengenbeziehungen Klemens Böhm Interoperable Informationssysteme - 65 Storage Queries Motivation DataGuide Repres. Objects ‘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) PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 66 Storage Queries - Erläuterungen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable, Optionale Attribute, die nicht vorhanden sind, führen zu NULL-Werten I.a. kann es mehrere Sichten auf die gleichen Daten geben (hier im Beispiel jedoch nicht) STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 67 Storage Queries (Fortsetzung) Beispiel: M2 = Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Objekt kann mehrere ausgehende Kanten mit gleichem Label haben. Beispiel: M3a = M3b = - Abbildung - Mining - Ausblick HyperStorM FROM Audit.taxpayer: $X {name[1]: $N, audited[1]: $A1, OPT{audited[2]: $A2}} STORE Taxpr2($N, $A1, $A2) FROM Audit.irscenter: $X {centername: $N, centeraddress: $A} STORE IrsCenter($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 das Aufteilen von Daten auf mehrere Relationen. Klemens Böhm Interoperable Informationssysteme - 68 Auswahl der Sichten Patterns, z.B. Audit.taxpayer: {name[1], phone[2], address[*]: {street[1], city[1]}} Motivation phone[1]kann weggelassen werden. DataGuide Beispiel-Pattern hat fünf Blätter. Definition: Support eines Patterns – Anzahl der Objekte oi, die das Pattern enthalten Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM natuerlich nicht das Wurzelobjekt Definition: Query Support eines Patterns – gegeben eine Menge von Anfragen Q1, …, Qk mit Gewichten f1, …, fk, ist der Query Support von P die Summe der fi, für die P in Qi enthalten ist. Klemens Böhm Interoperable Informationssysteme - 69 Data Mining in 120 Sekunden… Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Ziel: Alle Patterns finden, deren Support grösser ist als ein vorgegebener Schwellwert, d.h. alle Frequent Patterns 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. Klemens Böhm Interoperable Informationssysteme - 70 Algorithmus zur Auswahl der Sichten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM 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: Erstes Pattern P1 so wählen, dass es Pfade aus F1, die sehr hohen Support haben, enthält, Pk so wählen, dass (1) Überlappung mit P1, …, Pk-1 minimal ist, und (2) neue Pfade aus F1 mit hohem Support abgedeckt werden. Auswahl der obligatorischen (und optionalen) Attribute pro Pattern, zu viele optionale Attribute -> mehr NULL-Werte, mehr Überlappung mit anderen Patterns, zu wenige optionale Attribute -> zu wenige Daten werden gematcht. Erzeugung der Storage Queries. Klemens Böhm Interoperable Informationssysteme - 71 Beurteilung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick Grundsätzlicher Ansatz ist interessant, man vermeidet die Nachteile einer starren Abbildung, Concurrency Control ‘nicht ganz unproblematisch’, Heuristiken, die dem Mining-Algorithmus zugrundeliegen, kommen m.E. unmotiviert, Mining-Algorithmus selbst funktioniert nicht bei Dokumenten mit halbwegs vernünftiger Anzahl von Elementen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 72 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung Ziel: Ermittlung der besten Repräsentation von Dokument-Kollektionen für unterschiedliche Workloads mit Updates. Grundsätzlicher Ansatz: Mehrstufiges Verfahren, Subsuming Query wird mit Hilfe von Indexstrukturen evaluiert, Filter Query wird filebasiert evaluiert. - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 73 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Alternativen: Volltext-Index, der logische Dokumentstruktur ignoriert, Feldweiser Volltext-Index sowohl ohne als auch mit Redundanzen, Problem: Wie kommt man von vorgegebenem ‘Redundanz-Faktor’ zu der exakten physischen Repräsentation? Pfad-Index, ebenfalls mit und ohne Redundanzen, (gleiches Problem wie mit feldweisem Index), STORED-mässiges Vorgehen. Klemens Böhm Interoperable Informationssysteme - 74 Was machen wir an der ETH gerade? Motivation DataGuide Repres. Objects PAT-Trees (Effiziente) Lösung für das Problem, häufige Muster in XML-Dokumentkollektionen zu finden. Ansatz: Nicht jedes Zwischenergebnis explizit erzeugen. n Algebra Mehrstufigkeit STORED - Einleitung - Abbildung - Mining - Ausblick HyperStorM Klemens Böhm Interoperable Informationssysteme - 75 HyperStorM Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Ziele: Modellierung der Semantik von HypermediaDokumentbestandteilen in der Datenbank Beispiele: Elemente in Dokumenten mit MultimediaBestandteilen, die den Präsentationsablauf spezifizieren, Hyperlink-Elemente, die andere Dokumentbestandteile referenzieren. Benutzer sollen gleichzeitig unterschiedliche Teile von Dokumenten lesen und schreiben dürfen, 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 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Verwendung objektorientierter DatenbankTechnologie – generische Abbildung von Objekten auf physische Repräsentation (Relationen bzw. ObjectStore-Strukturen). Dokumente werden in der Datenbank gespeichert, Methoden reflektieren XML-Semantik und Semantik von HypermediaDokumentbestandteilen, Annahme: DTD ist gegeben (SGML statt XML). Klemens Böhm Interoperable Informationssysteme - 77 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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. Beispiel für diesen Ansatz: Excelon. Ansatz von GMD-IPSI (‘HyperStorM’): Anwendung legt physischen Entwurf fest. 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. Konfiguration auf DTD-Ebene. Klemens Böhm Interoperable Informationssysteme - 78 Beispiel play Motivation ... DataGuide Repres. Objects PAT-Trees Algebra title fm personae playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark titleDramatis Personae Scene DenmarkCLAUDIUS DramatisHAMLET Act I Mehrstufigkeit Persona p ... STORED scenedescr persona persona p acttitle scene scenetitl Scene Ie stagedir ... speech HyperStorM SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Klemens Böhm speaker line Who's there? Interoperable Informationssysteme - 79 XML- und Hypermedia-Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Methoden reflektieren XML-Semantik, z.B. Navigation in der Hierarchie, Methoden abstrahieren davon, ob Element explizit durch ein Datenbank-Objekt repräsentiert wird oder Teil eines BLOBs ist. Element-ID Datenbank-OID; Element-ID = Datenbank-OID + Position im BLOB (BLOB-Position ist –1, wenn explizite Repräsentation des Elements) Klemens Böhm Interoperable Informationssysteme - 80 Bewertung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Anforderung ‘Unterstützung der Semantik von Dokumentbestandteilen’ wurde erfüllt, allerdings gab es keine Anwendungen und Dokumente mit Hypermedia-Eigenschaften, und auch Anforderung ‘Ändern von Dokumenten’ war keine wirkliche Anforderung. Vor ca. fünf Jahren war es modern, den Datenbank-Kern um möglichst viel Anwendungssemantik zu erweitern (objekt-relationale Datenbanktechnologie, ‘Universal Server’ Konzept) Features wie Vererbung in o.-o. Datenbanken waren – zumindest in der Forschung – modern, verlangsamen aber das System. Keine Unterstützung für effizienten deklarativen Zugriff, Aspekte der Indexierung sind orthogonal zu den hier diskutierten. Klemens Böhm Interoperable Informationssysteme - 81 Bewertung (Forts.) Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Konfiguration der physischen Repräsentation auf Schema-Ebene – Erweiterung für wohlgeformte XML-Dokumente ist nicht offensichtlich, Konfiguration erfolgte ‘von Hand’ (obwohl ‘Automatic Tuning’-Mechanismen grundsätzlich anwendbar sind), keine aussagekräftige Performance-Evaluierung, insbesondere für sehr grosse Dokumentkollektionen. HyperStorM Klemens Böhm Interoperable Informationssysteme - 82Slide 14 DataGuides und Indexstrukturen für semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1 Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Fragen: Wie speichert man semistrukturierte Daten, insbes. XML-Dokumente? Wie evaluiert man Queries effizient? Nicht dasselbe Gliederungspunkte: DataGuides und k-Representative Objects, PAT-Trees, Query Subsumption und Query Filtering sowie File-basiertes Query Processing, Verwendung von RDBMSen, Verwendung objektorientierter Datenbank-Technologie. Klemens Böhm Interoperable Informationssysteme - 2 Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Wiederholung: Querysprachen für semistrukturierte Daten Mit OEM geht Querysprache einher. Diese Querysprache ähnelt OQL, erlaubt insbesondere Pfadausdrücke. Beispiele: select Restaurant.Entrée select Restaurant.Name where Restaurant.Entrée = “Burger” Anfragemechanismen dieser Art sind natürlich auch sinnvoll für XML-Dokumente; Beispiele (zum Protokoll-Dokumenttyp): “Gib’ mir alle Empfehlungen von Roger Weber.” “Gib’ mir alle Beschlüsse, die vor der Feststellung mit ID=ke (‘Unser Kredit ist erschöpft.’) gefällt wurden.” Klemens Böhm Interoperable Informationssysteme - 3 Evaluierung von Queries über semistrukturierten Daten Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Problem: Effiziente Evaluierung von Anfragen mit Pfadausdrücken, Inspektion aller Dokumente i.a. nicht akzeptabel. Zusammenfassungen der Daten und Indexstrukturen sind hilfreich für Queryoptimierung und Queryevaluierung. Klemens Böhm Interoperable Informationssysteme - 4 Ziel 1 - Volltextindex vs. speziellere Indexstrukturen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispielquery: “Selektiere alle Empfehlungen von Weber.” Volltextindex würde uns befähigen, alle Dokumente, die String ‘Weber’ enthalten, schnell zu holen. Probleme, die Volltextindex nicht löst: Viele Dokumente können String ‘Weber’ in anderem Zusammenhang enthalten. Wir wollen nur die Empfehlungen, nicht die ganzen Dokumente. Feldweiser Index wäre besser. Feld ‘Empfehlender’ Am besten: Index für Text unter jedem Pfad. select Restaurant.Name where Restaurant.Entrée = “Burger” Klemens Böhm Interoperable Informationssysteme - 5 Ziel 2 - Schemainformation für Queryoptimierung select Restaurant.Name where Restaurant.Entrée = “Burger” Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Beispiel: Query kann nur dann eine Lösung haben, wenn Pfad ‘Restaurant.Entrée’ in der Datenbank überhaupt vorkommt. Es wäre hilfreich, vor Queryevaluierung schnell nachsehen zu können, ob Pfad in der Datenbank vorkommt. Klemens Böhm Interoperable Informationssysteme - 6 DataGuides Motivation DataGuide Repres. Objects PAT-Trees Algebra DataGuides unterstützen sowohl Indexierung von Text für einzelne Pfade als auch das Nachschauen von Pfaden. Erst wird das Problem ‘Nachschauen von Pfaden’ angesprochen, dann das erste Problem. Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 7 DataGuides - Gliederung Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Was sind DataGuides? Wie helfen sie bei der Evaluierung von Anfragen? (Problem 1) Erweiterungen von DataGuides; Annotationen von DataGuides, Annotationen und Query Evaluierung (Problem 2). I.a. gibt es mehrere DataGuides für eine Datenbank, was sind die Unterschiede? Schlussbemerkungen zu DataGuides Klemens Böhm n Interoperable Informationssysteme - 8 Data Guides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Data Guides: konkrete Zusammenfassung des Datenbank-Inhalts (OEM spricht von ‘Datenbanken’, XML von ‘Dokumenten’. Da DataGuides auf OEM aufsetzen, verwenden wir diese Terminologie.) Unterschied zwischen ‘DataGuide’ und ‘Schema’: DataGuide ist konform zur Datenbank, nicht umgekehrt. (Denkbar, dass man DataGuide zu einer Datenbank konstruiert, für die ein Schema existiert, und dass DataGuide und Schema nicht übereinstimmen.) Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 9 Beispiel-Datenbank 1 Motivation Restaurant DataGuide - Einleitung 2 - Struktur PAT-Trees 3 4 Plus Inhaber - Strong DGs Repres. Objects Bar Name - Query Proc. - Einord. Restaurant Entree 5 6 Telefon 7 Chili Burger 555-1234 Manager Name Entree Entree 8 9 10 11 Klein Darbar Lamm Rind Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 10 DataGuides - Beispiel 12 Motivation Restaurant DataGuide Bar - Einleitung 13 - Struktur 14 - Query Proc. Name - Strong DGs - Einord. Repres. Objects PAT-Trees 15 Inhaber Manager Entree Telefon 19 18 17 16 Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 11 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Definition: Ein DataGuide einer OEMDatenbank s ist ein OEM Objekt d, so dass jeder label path in s genau eine data path-Instanz in d hat, jeder label path von d ein label path von s ist. DataGuide erlaubt offensichtlich nachzusehen, welche Pfade in der Datenbank vorkommen. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 12 DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Kurze, akkurate, und ‘geeignete’ Zusammenfassung der Struktur einer Datenbank. Kürze: DataGuide beschreibt jeden label path mit einer Instanz in der Datenbank genau einmal. Akkuratheit: DataGuide beschreibt keine label paths, die nicht in der Datenbank vorkommen. ‘Geeignetheit’: DataGuide ist OEM Objekt ( Speicherung und Zugriff auf DataGuides mit OEM-Mechanismen möglich.) HyperStorM Klemens Böhm Interoperable Informationssysteme - 13 Erzeugung von DataGuides Äquivalent zu NEA -> DEA Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 14 Query Processing mit DataGuides (1) Motivation DataGuide - Einleitung Aus dem DataGuide kann man für manche (Teil-)Queries ableiten, ob sie keine Lösung haben. Beispiel: gpe = Guide.A%.B% - Struktur - Query Proc. - Strong DGs A1 A2 - Einord. Repres. Objects PAT-Trees C Algebra B D Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 15 Annotationen der DataGuide-Knoten Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Beispiele für Annotationen: Listen von Pointern auf DatenbankObjekte, d.h. DataGuide ist Speicherstruktur der Form ||Label Path --> {Objekt}||, Häufigkeiten, Volltext-Index. Annotationen der DataGuide-Knoten können hilfreich sein fürs Query Processing. Nur Annotationen erklären; nicht, wie sie fürs Query Processing verwendet werden. Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 16 Verwendung DataGuide für Query Processing (3) 12 1 Restaurant Restaurant Restaurant Bar Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED 2 13 4 3 Plus Inhaber Entree Name Manager Name Entree Entree Telefon 5 6 7 Chili Burger 555-1234 8 Klein 9 Bar 10 Darbar Lamm Name Entree 11 Rind 15 16 14 Inhaber Manager Telefon 17 18 19 Annotation Erläutern, wie Anfrage unterstützt wird. DataGuide ist nur Zusammenfassung der Datenbank. Beispiele für Anfragen, die nicht allein mit Hilfe des DataGuides und dieser Art von Annotationen beantwortet werden können: •‘Selektiere alle Restaurants, die einen Inhaber haben.’ •‘Selektiere alle Restaurants, in denen es sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’ HyperStorM Klemens Böhm Interoperable Informationssysteme - 17 Query Processing mit DataGuides (2) select DBS.Group_Member.Publication.Year where DBS.Group_Member.Publication.Year < 1975 Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED Beispiel: Effizientere Queryevaluierung: Liste von Pointern auf DatenbankObjekte. Wenn man Target Sets beim DataGuide explizit abspeichert: Man erspart sich Navigieren im Datenbestand. Volltext-Index, Häufigkeitsinformation. HyperStorM Klemens Böhm Interoperable Informationssysteme - 18 DataGuides - weiteres Beispiel 1 A Motivation B 11 A B 18 B A B DataGuide - Einleitung 2 3 4 12 13 19 C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Datenbank Zwei entsprechende DataGuides Hier nur sagen, dass es mehrere DataGuides geben kann. Klemens Böhm Interoperable Informationssysteme - 19 Minimale DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit Es existieren wohlbekannte Techniken zur Minimierung von DataGuides, d.h. zur Erzeugung eines DataGuides mit minimaler Anzahl von Zuständen aus beliebigem DataGuide. Nachteile minimaler DataGuides: Änderungen an der Datenbank verursachen mehr Arbeit, Beispiel Aussagen über Menge von Objekten in der Datenbank, die über einen label path erreichbar sind, sind weniger gut möglich. Solche Aussagen heissen im folgenden Annotationen. Welche Objekte sind ueber den Label Path ‘A.C.’ erreichbar? STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 20 Strong DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs Motivation: Charakterisierung der DataGuides, deren Annotationen stets eindeutig sind. Intuition: Label paths mit dem gleichen (singleton) Target Set im DataGuide haben stets das gleiche Target Set in der Datenbank. Naechste Folie Illustration. - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 21 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects 2 3 4 12 13 19 Annotation C C C C C C 5 6 7 14 15 20 D D D D D D 8 9 10 16 17 21 von Objekt 20: weniger präzise Annotationsmöglichkeiten als im anderen DataGuide. PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 22 Strong DataGuides - Definition Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM OEM Objekte s und d, d ist DataGuide für s, Ts(l) - Target Set von l in s, Td(l) - (singleton) Target Set von l in d, Ls(l) = {m|Ts(m)=Ts(l)}, d.h. Ls(l) ist die Menge aller label paths mit dem gleichen Target Set wie l, Ld(l) = {m|Td(m)=Td(l)}, d.h. Ld(l) ist die Menge aller label paths in d mit dem gleichen Target Set wie l. d ist ein Strong DataGuide, wenn für alle label paths l von s: Ls(l)=Ld(l) Am Beispiel erlaeutern - naechste Folie. Klemens Böhm Interoperable Informationssysteme - 23 Strong DataGuides - Illustration 1 A Motivation B B 11 18 A B A B DataGuide - Einleitung 1 3 4 12 13 19 l=A.C C C C C C C - Einord. 5 6 7 14 15 20 Repres. Objects D D D D D D 8 9 10 16 17 21 - Struktur - Query Proc. - Strong DGs Ls(l)={A.C} Ld(l)={A.C, B.C} PAT-Trees Algebra Mehrstufigkeit STORED Datenbank Entsprechende DataGuides HyperStorM Klemens Böhm Interoperable Informationssysteme - 24 Aufbau eines Strong DataGuides // // // Motivation DataGuide - Einleitung - Struktur - Query Proc. - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM 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) } } } Klemens Böhm Interoperable Informationssysteme - 25 Aufbau eines Strong DataGuides Illustration dg = 6 Neues Objekt targetHash = {({1}, 6)} Hash-Tabelle Aufruf ‘RecursiveMake({1}, 6)’ 1 B Motivation B DataGuide - Einleitung - Struktur - Query Proc. 2 3 C C 4 5 - Strong DGs - Einord. Repres. Objects p={(B,2), (B,3)} Menge der Kinder eines der Objekte l=B, t2={2,3}, d2=NIL d2=7, targetHash = {({1}, 6), ({2,3}, 7)} Aufruf ‘RecursiveMake({2,3}, 7)’ p={(C,4), (C,5)} l=C, t2={4,5}, d2=NIL d2=8 targetHash = {({1},6), ({2,3},7), ({4,5},8)} Aufruf ‘RecursiveMake ({4,5},8)’ PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 26 Einordnung DataGuides Motivation DataGuide - Einleitung - Struktur - Query Proc. 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). - Strong DGs - Einord. Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 27 DataGuides und Alternativen Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM DataGuides: Relativ akkurate Beschreibung, k-Representative Objects (k-ROs) und k-Indices/T-Indices: ungefähre Beschreibung, Idee: Man kann nur Pfade bis zu einer bestimmten Länge nachschauen. Labels der Knoten der k-ROs entsprechen Labels von Kanten in der Datenbank. Im folgenden Bsp. ist jene Pfadlänge 2. (Beispiel ist aber zufällig richtig für längere Pfade.) Klemens Böhm Interoperable Informationssysteme - 28 k-Representative Objects Motivation DataGuide Repres. Objects a PAT-Trees Algebra Ziel: ‘Weniger ausführliche’ Beschreibung der Daten, die vorkommen dürfen. DataGuide: Beispiel: Anvisierte 1 Struktur: 1 a 3 2 Mehrstufigkeit c STORED HyperStorM $ a b c b 4 a b a c b b 5 a b a c b Labels an Knoten statt Kanten k=1 $ - kuerzere Pfade - per Def. nur die direkt von der Wurzel. 6 Klemens Böhm Interoperable Informationssysteme - 29 Verwendung von k-Representative Objects Motivation Annotationen der Knoten sind wiederum möglich, Zustand, in den uns die Kante führt, als Annotation der Knoten im k-RO. DataGuide 1 Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit c STORED b HyperStorM a 4 b c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 30 Verwendung von k-Representative Objects Ausführlicheres Objekt erlaubt genauere Annotationen (vergleichbar mit Strong DataGuides). Motivation 1 DataGuide Repres. Objects a a $ PAT-Trees Algebra 3 2 Mehrstufigkeit STORED HyperStorM a c b 4 b a c a b 5 b a 6 Klemens Böhm Interoperable Informationssysteme - 31 k-Representative Objects Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM k-Representative Object (k-RO) enthält die Pfade in der Datenbank bis zur Länge k+1. k-RO enthält Obermenge der Label Paths in der Datenbank. Im Beispiel zufällig nicht zu sehen. Anwendung: Gezielte Evaluierung von Pfadausdrücken, Queryoptimierung. Klemens Böhm Interoperable Informationssysteme - 32 PAT-Tree - Gliederung Motivation DataGuide Repres. Objects Was sind PAT-Trees? Wie werden PAT-Trees aufgebaut? Was für Anfragen werden unterstützt, und wie? n PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 33 PAT-Tree Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit Volltext-Indexstruktur, die auch für Strukturanfragen hilfreich ist. (Erst wird Volltext-Unterstützung erklärt, dann Evaluierung von Strukturanfragen.) Jeder Position im Text entspricht ein Pfad im Baum, d.h. jedes Blatt identifiziert eine Position im Text. Kante entspricht i.d.R. einem Zeichen, kann aber auch für Zeichenfolge stehen. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 34 PAT-Trees 01100100010111… Motivation DataGuide Repres. Objects 123456789… 1 Text Position 2 2 Warum folgt (5) auf (3)? Knotennummern erklaeren PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 5 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 Interoperable Informationssysteme - 35 Aufbau des PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche Pfad im Baum wird durchlaufen, bis man Blatt erreicht. Blatt wird ersetzt durch kleinen Teilbaum. U.U. muss eine Kante aufgespalten werden, und man geht gar nicht bis zu einem Blatt. (Warum wird in diesem Fall nur eine Kante aufgespalten?) -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 36 Aufbau des PAT-Trees 01100100010111… Motivation 123456789… 1 Text Position 2 2 DataGuide Repres. Objects PAT-Trees - Struktur 3 3 - Aufbau 2 4 - Suche -Sonstiges Algebra 7 Mehrstufigkeit 5 45 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 37 Suche mit PAT-Trees Motivation DataGuide Repres. Objects Prefix Search, Range Search (wird nicht explizit erklärt), regex Search, Evaluierung von Pfadausdrücken. PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 38 Prefix-Search mit PAT-Trees 01100100010111… Motivation 123456789… Position 2 DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra 1 Text Beispiele: 110 0000 01 Mehrstufigkeit 3 7 110 01 0000 2 3 5 4 2 4 1 6 3 STORED HyperStorM 4 Klemens Böhm 8 5 9 Interoperable Informationssysteme - 39 Suche mit PAT-Trees Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Mehrstufigkeit STORED HyperStorM regex-Suche: Automat erzeugen und auf Baum laufenlassen, Zielzustand - Baum akzeptieren, Blatt - Rest des Automaten auf dem Dokument laufenlassen. Pfadausdruck kann als regulärer Ausdruck dargestellt werden, z.B.** * (‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.) Erlaeutern, wann regex-Suche sinnvoll, und wann PAT-Tree wenig hilft. Klemens Böhm Interoperable Informationssysteme - 40 PAT-Trees - Anmerkungen Motivation DataGuide Repres. Objects PAT-Trees - Struktur - Aufbau - Suche -Sonstiges Algebra Schwachpunkte: Hoher Platzbedarf, nachträgliches Einfügen mühsam. Bestandteil von Produkten. Was ist der Zusammenhang zwischen DataGuides und PAT Trees? Welchen Teil der ‘DataGuide-Funktionalität’ bekommt man auch mit PAT Trees? Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 41 Gliederung für die folgenden Punkte Query-Algebra (im Gegensatz zu ‘Querysprache’), Mehrstufige Verfahren zur Evaluierung von XML-Queries - Motivation und Begriffsbildung, File-basiertes Query-Processing zwei Alternativen. n Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 42 PAT Query Algebra Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit Algebraische Darstellung von Queries über semistrukturierte Daten, Algebra-Darstellung entspricht möglicherweise Evaluierungsstrategie, Analogie: SQL vs. relationale Algebra. Ein mögliches Beispiel für Query Algebra: PAT Algebra. STORED HyperStorM Klemens Böhm Interoperable Informationssysteme - 43 PAT Query Algebra - Syntax Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Syntax: ist zulässiger AlgebraAusdruck, Wenn T1, T2 Ausdrücke sind, dann auch: – CONTENT_SELECT(T1, ), – ATTR_SELECT(T1, , ), – T1 UNION T2, – T1 DIFF T2, – T1 INCLUDS T2 – T1 INCL_IN T2 – (T1) Beispiel-Query: FIRSTNAME INCL_IN (CONTENT_SELECT(AUTHOR, ‘Böhm’)) Klemens Böhm Interoperable Informationssysteme - 44 PAT Query Algebra - Semantik Motivation DataGuide Repres. Objects PAT-Trees Algebra Mehrstufigkeit STORED HyperStorM Semantik: - Menge aller Elemente mit Label CONTENT_SELECT(T1, ) – alle Elemente aus T1, die enthalten, Hier Schreibfehler im Handout ATTR_SELECT(T1, , ) – alle Elemente aus T1 mit Attribut mit Wert ,