PowerPoint Show

Werbung
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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 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 ,
 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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 15

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 16

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 17

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 18

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 19

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 20

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 21

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 22

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 23

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 24

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 25

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 26

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 27

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 28

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 29

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 30

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 31

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 32

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 33

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 34

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 35

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 36

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 37

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 38

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 39

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 40

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 41

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 42

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 43

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 44

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 45

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 46

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 47

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 48

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 49

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 50

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 51

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 52

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 53

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 54

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 55

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 56

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 57

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 58

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 59

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 60

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 61

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 62

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 63

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 64

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 65

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 66

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 67

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 68

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 69

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 70

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 71

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 72

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 73

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 74

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 75

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 76

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 77

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 78

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 79

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 80

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 81

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Slide 82

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
Mehrstufigkeit



Ei
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

title

Dramatis Personae Scene Denmark
CLAUDIUS
Dramatis
HAMLET
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 - 82


Herunterladen