PAT Query Algebra - Webarchiv ETHZ / Webarchive ETH

Werbung
Systeme 1:
Materialisierungen und
Indexstrukturen
für semistrukturierte Daten
Interoperable Informationssysteme - 1
Klemens Böhm
Gliederung
!
Fragen:
" Wie speichert man
semistrukturierte
Daten, insbes.
XML-Dokumente?
" Wie evaluiert man
Queries effizient?
!
Gliederungspunkte:
" DataGuides,
" PAT-Trees,
" Query Subsumption und Query Filtering
sowie File-basiertes Query Processing,
" Verwendung von RDBMSen,
" Verwendung objektorientierter Datenbank-Technologie.
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 2
1
!
!
Motivation
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
STORED
!
Combined
Indices
HyperStorM
SQLServer
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
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
!
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
2
Ziel 1 - Volltextindex
vs. speziellere Indexstrukturen
!
Motivation
!
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
!
STORED
Combined
Indices
HyperStorM
SQLServer
!
!
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”
Interoperable Informationssysteme - 5
Klemens Böhm
Ziel 2 - Schemainformation
für Queryoptimierung
!
select Restaurant.Name
where Restaurant.Entrée = “Burger”
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
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
3
DataGuides
!
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
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.
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 7
DataGuides - Gliederung
!
!
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
STORED
!
Combined
Indices
HyperStorM
!
SQLServer
!
Was sind DataGuides?
Wie helfen sie bei der Evaluierung von
Anfragen? (Problem 2)
Erweiterungen von DataGuides;
Annotationen von DataGuides,
Annotationen und Query Evaluierung
(Problem 1).
I.a. gibt es mehrere DataGuides für eine
Datenbank, was sind die Unterschiede?
Schlussbemerkungen zu DataGuides
Klemens Böhm
n
Interoperable Informationssysteme - 8
4
Data Guides
Motivation
!
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
!
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
Data Guides:
konkrete Zusammenfassung des Datenbank-Inhalts
(OEM spricht von ‘Datenbanken’, XML von
‘Dokumenten’. Da 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.)
HyperStorM
SQLServer
Interoperable Informationssysteme - 9
Klemens Böhm
Beispiel-Datenbank
Motivation
1
DataGuide
- Einleitung
- Struktur
Restaurant
- Query
Proc.
2
- Strong
DGs
Entree
Algebra
Combined
Indices
3
4
Plus
Inhaber
PAT-Trees
STORED
Bar
Name
- Einord.
Mehrstufigkeit
Restaurant
5
6
Telefon
7
Chili Burger
555-1234
Manager Name Entree Entree
8
9
10
11
Klein
Darbar
Lamm
Rind
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 10
5
DataGuides - Beispiel
Motivation
DataGuide
12
- Einleitung
- Struktur
Restaurant
- Query
Proc.
- Strong
DGs
Bar
13
14
- Einord.
PAT-Trees
Name
Algebra
Mehrstufigkeit
STORED
15
Combined
Indices
Inhaber Manager
Entree Telefon
19
18
17
16
HyperStorM
SQLServer
Interoperable Informationssysteme - 11
Klemens Böhm
DataGuides
Motivation
!
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
!
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.
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 12
6
DataGuides
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
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.)
Interoperable Informationssysteme - 13
Klemens Böhm
Erzeugung von DataGuides
Motivation
DataGuide
Äquivalent zu NEA -> DEA
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 14
7
Query Processing mit DataGuides (1)
Motivation
DataGuide
!
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
!
Aus dem DataGuide kann man
für manche (Teil-)Queries ableiten,
ob sie keine Lösung haben.
Beispiel: gpe = Guide.A%.B%
- Einord.
PAT-Trees
A1
Algebra
A2
Mehrstufigkeit
STORED
Combined
Indices
C
HyperStorM
B D
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 15
Annotationen der DataGuide-Knoten
Motivation
DataGuide
!
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
!
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.
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 16
8
Verwendung DataGuide
für Query Processing (3)
Motivation
DataGuide
Restaurant
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
STORED
Combined
Indices
HyperStorM
SQLServer
Restaurant
Restaurant Bar
2
4
3
5
6
7
Chili Burger 555-1234
8
Klein
9
Bar
13
Plus
Inhaber
Entree
Name
Manager
Entree
Name
Entree Telefon
Algebra
Mehrstufigkeit
12
1
- Einleitung
10
Darbar Lamm
Name
Entree
11
Rind
15
16
14
Inhaber Manager
Telefon
17
18
19
Annotation
DataGuide: Nur Zusammenfassung der Datenbank.
Anfragen, die nicht allein mit DataGuide/Annotationen
beantwortet werden können:
•‘Selektiere alle Restaurants, die einen Inhaber haben.’
•‘Selektiere alle Restaurants, in denen es
sowohl das Entrée ‘Rind’ als auch das Entrée ‘Lamm’ gibt.’
Klemens Böhm
Interoperable Informationssysteme - 17
Query Processing mit DataGuides (2)
Motivation
DataGuide
!
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
!
Beispiel:
select DBS.Group_Member.Publication.Year
where
DBS.Group_Member.Publication.Year < 1975
Effizientere Queryevaluierung:
" Liste von Pointern auf Datenbank-Objekte.
Wenn man Target Sets beim DataGuide
explizit abspeichert: Man erspart sich Navigieren
im Datenbestand.
" Volltext-Index,
" Häufigkeitsinformation.
Wichtig: Wie genau ist
die physische Repräsentation der Dokumente?
Klemens Böhm
Interoperable Informationssysteme - 18
9
Es kann mehrere DataGuides geben.
Motivation
1
DataGuide
11
- Einleitung
- Struktur
A
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
B
A
B
18
B
A B
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
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Datenbank
Klemens Böhm
Zwei entsprechende DataGuides
Interoperable Informationssysteme - 19
Minimale DataGuides
Motivation
DataGuide
!
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
!
Es existieren wohlbekannte Techniken
zur Minimierung von DataGuides,
d.h. zur Erzeugung eines DataGuides
mit minimaler Anzahl von Zuständen.
Nachteile minimaler DataGuides:
" Änderungen an der Datenbank
verursachen mehr Arbeit,
" Annotationen weniger aussagekräftig.
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 20
10
Strong DataGuides
Motivation
DataGuide
!
- Einleitung
- Struktur
- Query
Proc.
!
- Strong
DGs
- Einord.
Motivation: Charakterisierung der DataGuides,
deren Annotationen maximal präzise sind.
Intuition: Label paths mit dem gleichen (singleton)
Target Set im DataGuide haben stets das gleiche
Target Set in der Datenbank.
Illustration: Nächste Folie.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Interoperable Informationssysteme - 21
Klemens Böhm
Strong DataGuides - Illustration
Motivation
1
DataGuide
11
18
A B
A B
- Einleitung
- Struktur
A
B
B
- Query
Proc.
2
3
4
12
13
19 Annotation
C
C
C
C
C
C
Mehrstufigkeit
5
6
7
14
15
20
STORED
D
D
D
D
D
D
8
9
10
16
17
21
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Combined
Indices
HyperStorM
SQLServer
Datenbank
Klemens Böhm
von Objekt 20:
weniger präzise
Annotationsmöglichkeiten
als im anderen
DataGuide.
Entsprechende DataGuides
Interoperable Informationssysteme - 22
11
Strong DataGuides - Definition
Motivation
!
DataGuide
!
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
!
!
- Einord.
PAT-Trees
!
Algebra
Mehrstufigkeit
STORED
!
Combined
Indices
OEM Objekte s und d, d ist DataGuide für s,
Ts(l) - Target Set von l in s,
Td(l) - Target Set von l in d
- muss einelementig sein -,
Ls(l) = {m|Ts(m)=Ts(l)},
m ist label path.
d.h. Ls(l) ist die Menge aller label paths
mit dem gleichen Target Set wie l,
Ld(l) = {m|Td(m)=Td(l)},
d.h. Ld(l) ist die Menge aller label paths in d
mit dem gleichen Target Set wie l.
d ist ein Strong DataGuide,
wenn für alle label paths l von s: Ls(l)=Ld(l)
HyperStorM
SQLServer
Beispiel – nächste Folie.
Interoperable Informationssysteme - 23
Klemens Böhm
Strong DataGuides - Illustration
Motivation
1
DataGuide
11
18
A B
A B
- Einleitung
- Struktur
A
B
B
- Query
Proc.
1
3
4
12
13
19 l=A.C
C
C
C
C
C
C
Mehrstufigkeit
5
6
7
14
15
20
STORED
D
D
D
D
D
D
8
9
10
16
17
21
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Combined
Indices
HyperStorM
SQLServer
Datenbank
Klemens Böhm
Ls(l)={A.C}
Ld(l)={A.C, B.C}
Entsprechende DataGuides
Interoperable Informationssysteme - 24
12
Aufbau eines Strong DataGuides
Motivation
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
//
//
//
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)
}
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
RecursiveMake(t1, d1) {
p = all children <label, oid> of all objects in t1
foreach (unique label l in p) {
t2 = set of oids paired with l in p
d2 = targetHash.Lookup(t2)
if (d2 != nil) {
add an edge from d1 to d2 with label l
} else {
d2 = NewObject()
targetHash.Insert(t2, d2)
add an edge from d1 to d2 with label l
RecursiveMake(t2, d2)
}
}
}
Interoperable Informationssysteme - 25
Klemens Böhm
Aufbau eines Strong DataGuides Illustration
Motivation
DataGuide
dg = 6
Neues Objekt
targetHash = {({1}, 6)}
Hash-Tabelle
Aufruf ‘RecursiveMake({1}, 6)’
1
- Einleitung
- Struktur
B
- Query
Proc.
- Strong
DGs
B
2
3
C
C
4
5
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
p={(B,2), (B,3)}
Kinder eines Objekts
l=B, t2={2,3}, d2=NIL
d2=7, targetHash = {({1}, 6), ({2,3}, 7)}
Aufruf ‘RecursiveMake({2,3}, 7)’
p={(C,4), (C,5)}
l=C, t2={4,5}, d2=NIL
d2=8
targetHash = {({1},6), ({2,3},7), ({4,5},8)}
Aufruf ‘RecursiveMake ({4,5},8)’
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 26
13
Einordnung DataGuides
Motivation
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).
DataGuide
- Einleitung
- Struktur
- Query
Proc.
- Strong
DGs
- Einord.
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 27
PAT-Tree - Gliederung
!
!
Motivation
DataGuide
PAT-Trees
!
Was sind PAT-Trees?
Wie werden PAT-Trees aufgebaut?
Was für Anfragen werden unterstützt,
und wie?
n
- Struktur
- Aufbau
- Suche
-Sonstiges
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 28
14
PAT-Tree
!
Motivation
DataGuide
PAT-Trees
- Struktur
!
- Aufbau
- Suche
-Sonstiges
Algebra
Mehrstufigkeit
STORED
Combined
Indices
!
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.
HyperStorM
SQLServer
Interoperable Informationssysteme - 29
Klemens Böhm
PAT-Trees
01100100010111…
Motivation
123456789…
Position
- Struktur
- Aufbau
2
2
DataGuide
PAT-Trees
1
Dokument
Warum folgt
(5) auf (3)?
3
- Suche
3
2
4
-Sonstiges
Algebra
Mehrstufigkeit
7
STORED
5
5
1
6
3
Combined
Indices
HyperStorM
4
SQLServer
Klemens Böhm
8
Interoperable Informationssysteme - 30
15
Aufbau des PAT-Trees
Motivation
!
DataGuide
PAT-Trees
- Struktur
- Aufbau
- Suche
-Sonstiges
Algebra
!
!
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?)
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Interoperable Informationssysteme - 31
Klemens Böhm
Aufbau des PAT-Trees
01100100010111…
Motivation
123456789…
1
Text
Position
2
2
DataGuide
PAT-Trees
- Struktur
- Aufbau
3
- Suche
3
2
4
-Sonstiges
Algebra
Mehrstufigkeit
7
STORED
5
45
1
6
3
Combined
Indices
HyperStorM
4
SQLServer
Klemens Böhm
8 5
9
Interoperable Informationssysteme - 32
16
Suche mit PAT-Trees
!
!
Motivation
DataGuide
PAT-Trees
- Struktur
!
!
Prefix Search,
Range Search (wird nicht explizit erklärt),
regex Search,
Evaluierung von Pfadausdrücken.
- Aufbau
- Suche
-Sonstiges
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Interoperable Informationssysteme - 33
Klemens Böhm
Prefix-Search mit PAT-Trees
01100100010111…
Motivation
123456789…
1
Text
Position
2
DataGuide
110
01
0000
2
PAT-Trees
- Struktur
- Aufbau
- Suche
-Sonstiges
Algebra
Mehrstufigkeit
Beispiele:
! 110
! 0000
! 01
STORED
3
7
3
5
4
2
4
1
6
3
Combined
Indices
HyperStorM
4
SQLServer
Klemens Böhm
8 5
9
Interoperable Informationssysteme - 34
17
Suche mit PAT-Trees
!
Motivation
DataGuide
PAT-Trees
- Struktur
- Aufbau
!
- Suche
regex-Suche:
" Automat erzeugen und auf Baum laufenlassen,
" Zielzustand - Baum akzeptieren,
" Blatt - Rest des Automaten
auf dem Dokument laufenlassen.
Pfadausdruck kann als regulärer Ausdruck
dargestellt werden, z.B.
<restaurant>*<entrée>*</entrée>*</restaurant>
(‘*’ bedeutet hier ‘beliebig viele beliebige Zeichen’.)
-Sonstiges
Algebra
" Problem
1:
– Beispiel: /restaurant//entrée
– ‘Naive’ regex-Suche wäre aber nicht gut,
weil man über das Ende der entréeElemente hinaus nach </entrée> sucht.
" Problem 2: //entrée
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 35
PAT-Trees - Anmerkungen
!
Motivation
DataGuide
PAT-Trees
- Struktur
- Aufbau
- Suche
-Sonstiges
Algebra
Mehrstufigkeit
!
!
Schwachpunkte:
" Hoher Platzbedarf,
" nachträgliches Einfügen mühsam,
" nur Primärstruktur.
Bestandteil von Produkten.
Was ist der Zusammenhang
zwischen DataGuides und PAT Trees?
Welchen Teil der ‘DataGuide-Funktionalität’
bekommt man auch mit PAT Trees?
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 36
18
Gliederung für die folgenden Punkte
!
Motivation
!
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
!
Query-Algebra
(im Gegensatz zu ‘Querysprache’),
Mehrstufige Verfahren
zur Evaluierung von XML-Queries –
Motivation und Begriffsbildung,
File-basiertes Query-Processing –
zwei Alternativen.
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 37
PAT Query Algebra
!
!
Motivation
DataGuide
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
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 38
19
PAT Query Algebra - Syntax
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
!
Syntax:
" <Elementtyp-Name> ist zulässiger AlgebraAusdruck,
" Wenn T1, T2 Ausdrücke sind, dann auch:
– CONTENT_SELECT(T1, <String-Pattern>),
– ATTR_SELECT(T1, <Attr.-Name>, <Attr.Wert>),
– T1 UNION T2,
– T1 DIFF T2,
– T1 INCLUDS T2
– T1 INCL_IN T2
– (T1)
Beispiel-Query:
FIRSTNAME INCL_IN
(CONTENT_SELECT(AUTHOR, ‘Böhm’))
Klemens Böhm
Interoperable Informationssysteme - 39
PAT Query Algebra - Semantik
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
!
Semantik:
" <ET-Name> - Menge aller Elemente mit Label
<ET-Name>
" CONTENT_SELECT(T1, <String-Pattern>) –
alle Elemente aus T1, die <String -Pattern>
enthalten,
" ATTR_SELECT(T1, <A.-Name>, <A.-Wert>) –
alle Elemente aus T1 mit Attribut <A.-Name> mit
Wert <A.-Wert>,
" T1 INCLUDS T2 –
alle Elemente aus T1, die eins aus T2 enthalten,
" T1 INCL_IN T2–
alle Elemente aus T1, die in einem aus T2
enthalten sind.
Was bedeutet die Beispiel-Query?
Klemens Böhm
Interoperable Informationssysteme - 40
20
Mehrstufiges Query Processing
!
Motivation
DataGuide
!
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
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 41
Subsuming Query und Filter Query
!
Motivation
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
- Motivation
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
STORED
Combined
Indices
!
Query QS subsumiert Q gdw.
<QS> ⊇ <Q> für beliebige Kollektionen,
Query QS ist Subsuming Query für Q.
Filter Query QF für Query Q
und Subsuming Query QS: <QF>(<QS>) = <Q>,
d.h. wenn QF auf das Resultat von QS
angewendet wird, ist das Ergebnis das gleiche,
wie wenn Q evaluiert wird.
Wann ist Aufteilung einer Query in Filter Query
und Subsuming Query noch sinnvoll?
Ein System kann nur Subsuming Query,
nicht aber Filter Query evaluieren,
ist aber sehr schnell.
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 42
21
Subsuming Query und Filter Query Beispiel
“Finde Adressen
Motivation
XMLQuery
aller Restaurants
mit PLZ 92310.”
- langsam XML QueryEngine
QueryResultat
DataGuide
PAT-Trees
Subsuming
Query
Algebra
Mehrstufigkeit
- Motivation
“92310”
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
STORED
Combined
Indices
HyperStorM
SQLServer
Zwischenergebnis
(Kandidaten)
VolltextEngine
!
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.
Interoperable Informationssysteme - 43
Klemens Böhm
Query-Evaluierung ohne
Indexstrukturen
Query
Motivation
Application
DataGuide
PAT-Trees
Algebra
Aufruf für
XML-Dok.
Mehrstufigkeit
- Motivation
CallbackMethoden
- Subsumpt.
XML-Processor
(XML-Engine)
- File-bas.
- Baum-b.
- Event-bas.
DOMMethoden
STORED
Combined
Indices
HyperStorM
SQLServer
Thema im folgenden: Techniken zur effizienten
Evaluierung von XML Queries auf Dokumenten
konform zur XML Spezifikation (d.h. XML Files).
Klemens Böhm
Interoperable Informationssysteme - 44
22
Zwei Alternativen
!
!
Baum-basiert,
Event-basiert.
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
- Motivation
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 45
Baum-basierte Queryevaluierung
!
Motivation
!
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
- Motivation
!
!
!
Aufbau der Baumstruktur im Hauptspeicher
unter Verwendung der Callback-Schnittstelle,
Baum wird nur hierfür gebraucht
und dann wieder weggeworfen.
Vergleich mit Datenbank-Scan.
Algebraische Repräsentation der Query,
Set-at-a-time Query Evaluierung.
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 46
23
Baum-basierte Queryevaluierung Beispiel
Motivation
Dokument
(logische
Struktur):
DataGuide
AUTHORS
AUTHORFUNCTION=AUTHOR
AUTHORFUNCTION=PHOTOGR
PAT-Trees
NAME
NAME
Algebra
Mehrstufigkeit
SURNAME
CHRNAME
SURNAME
CHRNAME
Grabs
Torsten
Weber
Roger
- Motivation
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
STORED
Query
(AlgebraRepräs.):
INCL_IN
CHRNAME
Combined
Indices
INCLUDS
NAME
CONTENT_SELECT‘Grabs’
HyperStorM
SQLServer
SURNAME
Interoperable Informationssysteme - 47
Klemens Böhm
Baum-basierte Queryevaluierung Optimierungen
Motivation
DataGuide
PAT-Trees
Idee: Nur die Teilbäume erzeugen, die für
die Queryevaluierung wirklich gebraucht
werden.
Algebra
Mehrstufigkeit
- Motivation
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
STORED
TOP Optimierung
OUT Optimierung
BOTTOM Optimierung
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 48
24
TOP Optimierung
!
Motivation
DataGuide
PAT-Trees
!
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:
Algebra
NAME
Mehrstufigkeit
CHRNAME
- Motivation
SURNAME
- Subsumpt.
Böhm
- File-bas.
- Baum-b.
!
- Event-bas.
STORED
Es genügt, Teilbäume zu betrachten, deren Wurzel
vom Typ NAME ist.
Combined
Indices
Grosses Dreieck: Dokument
kleines Dreieck: Ausschnitt,
der gebraucht wird fuer die Query.
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 49
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
PAT-Trees
CHRNAME
Algebra
Mehrstufigkeit
- Motivation
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
STORED
Combined
Indices
SURNAME
Böhm
!
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
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 50
25
OUT Optimierung
!
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
!
- Motivation
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
!
STORED
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.
Combined
Indices
HyperStorM
SQLServer
Interoperable Informationssysteme - 51
Klemens Böhm
Event-Basierte Queryevaluierung
!
!
Motivation
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
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.”
- Motivation
CAPTION begin
- Subsumpt.
string ‘millennium’
- File-bas.
CAPTION end
- Baum-b.
- Event-bas.
STORED
Combined
Indices
HyperStorM
SQLServer
!
Implementierung ist komplizierter
als hier dargestellt.
Klemens Böhm
Interoperable Informationssysteme - 52
26
Fazit
!
Motivation
!
DataGuide
PAT-Trees
Algebra
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.
Mehrstufigkeit
- Motivation
- Subsumpt.
- File-bas.
- Baum-b.
- Event-bas.
STORED
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
!
!
Motivation
!
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
STORED
!
!
Interoperable Informationssysteme - 53
Verwendung von RDBMSen Gliederung
Motivation,
‘naive’ Ansätze,
ein ‘weniger naiver’ Ansatz (STORED),
Problem: Finden der Abbildung von
‘semistrukturiert’ auf ‘relational’,
Aktivitäten an der ETHZ.
Am Ende des Kapitels:
XML-Features von SQL-Server.
- Einleitung
- Abbildung
- Mining
- Ausblick
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 54
27
Verwendung von RDBMSen
!
Motivation
!
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
!
!
- Einleitung
- Abbildung
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”.
Query Containment –
wird als gegeben angenommen,
wird hier nicht betrachtet.
- Mining
- Ausblick
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 55
Verwendung von RDBMSen
!
Motivation
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
STORED
- Einleitung
- Abbildung
- Mining
!
!
Eine mögliche Verwendungsmöglichkeit
von RDBMSen:
Speicherung der Annotationen der DataGuides,
Jedem DataGuide-Knoten
entspricht z.B. eine Relation,
Indexierung bekommt man dann ‘kostenlos’.
DataGuide selbst muss/sollte nicht
in der Datenbank sein, kann im Hauptspeicher sein.
Ziel im folgenden:
Nicht nur Evaluierung von Pfadausdrücken,
sondern Queries allgemein.
- Ausblick
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 56
28
Beispiel für relationale Speicherung
Dokument
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
- Einleitung
Mögliche relationale Darstellung
<rezept>
<zutaten id="x1">
<zutat>Ei</zutat>
<zutat>Mehl</zutat>
</zutaten>
<expertise/>
<zutaten id="x2">
<zutat>Salz</zutat>
</zutaten>
</rezept>
Source
1
x1
x1
2
3
1
4
1
5
Name
rezept
zutaten
zutaten
zutat
zutat
rezept
expertise
zutaten
zutat
VString
Target
x1
2
3
Ei
Mehl
4
5
Salz
- Abbildung
- Mining
- Ausblick
Combined
Indices
HyperStorM
SQLServer
!
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
(bzw. wo sie besser ist als bisherige Repräsentationen).
Interoperable Informationssysteme - 57
Klemens Böhm
Beispiel f. relationale Speicherung (2)
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
rezept
Source
1
1
1
VString
expertise
Source VString
2
- Einleitung
- Abbildung
Target
2
3
4
Target
zutaten
Source
3
3
4
zutat
Source
5
6
7
VString
VString
Ei
Mehl
Salz
Target
5
6
7
Target
- Mining
- Ausblick
Kein substantieller Unterschied zur vorigen Repräsentation!
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 58
29
STORED
!
Motivation
DataGuide
!
PAT-Trees
Algebra
!
Mehrstufigkeit
STORED
- Einleitung
- Abbildung
!
- Mining
- Ausblick
!
Combined
Indices
!
HyperStorM
SQLServer
‘STORED’ = ‘Semistructured TO RElational Data’
Ziel: Verwendung eines RDBMSs
zur Verwaltung semistrukturierter Daten.
Auswahl und freie Definition
der relationalen Sichten,
keine generischen Tabellen
wie in den vorangegangenen Beispielen.
Relationale Sichten enthalten
i.d.R. nur Teil des Dokuments;
ausserdem Overflow Graph wegen Verlustfreiheit.
Problem:
Auswahl der Sichten, die man materialisieren will;
mögliche Randbedingungen:
Plattenplatz, Maximalanzahl von Relationen,
gewichteter Query-Mix.
Interoperable Informationssysteme - 59
Klemens Böhm
Relationale Sichten
auf semistrukturierte Daten
Motivation
Audit
DataGuide
PAT-Trees
Algebra
taxpayer
taxpayer
Mehrstufigkeit
STORED
- Einleitung
- Abbildung
name
taxamount
taxpayer
taxevasion
address
taxamount
address audited name
audited
audited
company
name
taxevasion
owner
taxamount
address
name
audited
- Mining
- Ausblick
Combined
Indices
street
street zip
street
zip
number
HyperStorM
SQLServer
Werte und OIDs weggelassen.
Unterschied zu OEM: Geordnetheit.
Klemens Böhm
Interoperable Informationssysteme - 60
30
Relationale Speicherung –
Fortsetzung des Beispiels
Taxpayer1
Motivation
DataGuide
oid name
street
no apt zip
audit1
audit2
taxamount taxevasion
o24 Gluschko Tyuratam
2c 07099 10/12/63
12332
o21 Kosberg Tyuratam 206
92443 11/1/68 10/12/77 0
likely
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Taxpayer2
oid
o20
name
Korolev
address
Baikonur
audited
10/12/86
taxamount
0
taxevasion
likely
- Einleitung
- Abbildung
- Mining
- Ausblick
Combined
Indices
Company
name
Rocket Inc.
HyperStorM
SQLServer
owner
o24
1. RDBMS-Schema
ist dokumenttyp-spezifisch.
2. Unterschiedliche Tables
für einen Elementtyp.
3. Daten zu einem Element
auf mehrere Relationen verteilen.
Interoperable Informationssysteme - 61
Klemens Böhm
Storage Queries
!
Motivation
!
DataGuide
‘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
Combined
Indices
HyperStorM
SQLServer
!
OID bei inneren Knoten, Textinhalt bei Blättern.
Klemens Böhm
Interoperable Informationssysteme - 62
31
Storage Queries - Erläuterungen
!
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
!
STORED
- Einleitung
Erste Variable in der FROM-Klausel ist
per Default Schlüssel-Variable,
(d.h. man geht offensichtlich davon aus,
dass Objekte OID haben, die man auslesen kann)
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)
- Abbildung
- Mining
- Ausblick
Combined
Indices
HyperStorM
SQLServer
Interoperable Informationssysteme - 63
Klemens Böhm
Storage Queries (Fortsetzung)
!
Beispiel:
M2 =
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
- Einleitung
!
Objekt kann mehrere ausgehende Kanten
mit gleichem Label haben.
Beispiel:
M3a =
- Abbildung
- Mining
- Ausblick
M3b =
Combined
Indices
HyperStorM
SQLServer
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 nochmals
das Aufteilen von Daten auf mehrere Relationen.
Klemens Böhm
Interoperable Informationssysteme - 64
32
Auswahl der Sichten (1)
!
Motivation
!
DataGuide
PAT-Trees
Algebra
!
Mehrstufigkeit
!
Wie kommt man zu den Storage Queries?
(Strukturelle) Patterns finden,
die häufig vorkommen.
Diese Patterns auf Storage Queries abbilden.
Patterns, z.B.
- Abbildung
Audit.taxpayer: {name[1], phone[2],
address[1]: {street[1], city[1]}}
phone[1] kann weggelassen werden.
- Mining
Beispiel-Pattern hat fünf Blätter.
STORED
- Einleitung
- Ausblick
Combined
Indices
HyperStorM
SQLServer
Interoperable Informationssysteme - 65
Klemens Böhm
Auswahl der Sichten (2)
!
Audit.taxpayer: {name[1], phone[2],
address[*]: {street[1], city[1]}}
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
STORED
- Einleitung
- Abbildung
Weiteres Beispiel-Pattern mit ‘*’:
Viele address-Elemente in taxpayer-Element –
genestete Relation vorteilhaft:
oid
name
audit2 taxtaxamount evasion
o07 Böhm
06/06/01
0
likely
o24 Glusch- 10/12/63
12332
ko
- Mining
- Ausblick
Combined
Indices
!
oid
o24
o24
o24
street
Nordstrasse
Jahnstrasse
Heidelberger
Strasse
o24 Pallaswiesenstrasse
no apt zip
174
8037
34
62487
102
62487
152
62485
Wenige address-Elemente – inlining besser:
oid name
street
no apt zip
audit1
audit2
taxamount taxevasion
o24 Gluschko Tyuratam
2c 07099 10/12/63
12332
o21 Kosberg Tyuratam 206
92443 11/1/68 10/12/77 0
likely
HyperStorM
SQLServer
audit1
!
Schwellenwert c von aussen vorgeben;
genaue Anzahl ist egal.
Klemens Böhm
Interoperable Informationssysteme - 66
33
Auswahl der Sichten (2)
!
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
STORED
- Einleitung
!
- Abbildung
- Mining
Definition: Support eines Patterns –
Anzahl der Vorkommen des Patterns.
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.
Je grösser Query-Support,
für desto mehr Queries ist das Pattern
Teil des Ergebnisses.
- Ausblick
Combined
Indices
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 67
Data Mining in 120 Sekunden…
!
Motivation
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
STORED
!
!
- Einleitung
- Abbildung
!
- Mining
- Ausblick
Combined
Indices
!
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.
Query Support ist monoton.
HyperStorM
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 68
34
Algorithmus zur Auswahl der Sichten
!
!
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
- Einleitung
!
- Abbildung
- Mining
- Ausblick
Combined
Indices
HyperStorM
SQLServer
!
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 - 69
Queryevaluierung
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
- Einleitung
- Abbildung
- Mining
- Ausblick
Combined
Indices
HyperStorM
Man unterscheidet mehrere Fälle:
! Query sucht Pattern, das exakt
mit einer Sichtdefinition übereinstimmt –
einfacher, angenehmer Fall.
! Query sucht Pattern,
das ‘Storage Pattern’ enthält:
In diesem Fall mehrstufiges
Query-Processing, wie zuvor besprochen.
! Was kann man machen,
wenn Query Pattern sucht,
das in ‘Storage Pattern’ enthalten ist?
Q=V
Q⊆V
Q⊇V
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 70
35
Beurteilung
!
Motivation
!
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
!
STORED
- Einleitung
!
- Abbildung
Grundsätzlicher Ansatz: interessant,
man vermeidet Nachteile einer starren Abbildung,
Concurrency Control
‘nicht ganz unproblematisch’,
Heuristiken, die dem Algorithmus zur Sichtauswahl
zugrundeliegen, m.E. unmotiviert – Parameter?
Mining-Algorithmus funktioniert nicht
bei Dokumenten mit ‘normaler’ Anzahl Elementen.
Evaluierung –
berücksichtigt Ausnahmen nur unzureichend.
- Mining
- Ausblick
Combined
Indices
HyperStorM
SQLServer
Interoperable Informationssysteme - 71
Klemens Böhm
Combined Indices
!
Motivation
!
Zunächst anhand von Relationen,
dann Verallgemeinerung.
Relation hat mehrere Attribute, z.B.
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
!
STORED
Combined
Indices
!
HyperStorM
SQLServer
!
!
Indexierung einzelner Attribute i.d.R. sinnvoll,
z.B. alle Vorkommen des Vornamens ‘Klemens’.
Name Vorname Beruf Alter Büro-Nummer
‘Kombinierte
Anfragen’;
d.h. Anfragen über mehrere Attribute
Beispiel: Vorname=‘Klemens’∧Alter=25
Combined Index, d.h. Vorkommen
von Werte-Kombinationen indexieren.
# Kombinationsmöglichkeiten wächst exponentiell.
Klemens Böhm
Interoperable Informationssysteme - 72
36
Combined Indices –
Anzahl der Kombinationen
!
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
STORED
Combined
Indices
Beobachtung 1:
Sehr viele Vorkommen von Vorname ‘Klemens’
→ Indexierung nicht hilfreich, Scan genauso teuer.
Beobachtung 2: Angenommen,
Vorname ‘Klemens’ nur einmal in Datenbank.
→ Indexeinträge (‘Klemens’, ‘Böhm’),
(‘Klemens’, 25), (‘Klemens’, ‘C45.2’)
werden nicht gebraucht.
HyperStorM
SQLServer
Interoperable Informationssysteme - 73
Klemens Böhm
Vorgehen
!
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
!
STORED
Combined
Indices
HyperStorM
SQLServer
!
Index für alle Kombinationsmöglichkeiten vorsehen.
Werte-Tupel (v1, …, vn) bekommt Indexeintrag,
wenn deutlich weniger Instanzen
als Instanzen der Tupel (v1, v3, …, vn),
(v2, …, vn), …, (v1, …, vn-1).
(Ausserdem Beobachtung 1 berücksichtigen.)
Wenn Teilmuster fast genauso häufig,
Zugriff auch über Teilmuster möglich.
Beispiel (Fortsetzung von eben):
" Query:
Vorname=‘Klemens’ ∧ Büronummer=C45.2
" Es reicht, alle Tupel mit Vorname ‘Klemens’
über Index zu holen.
Dann Test, ob Büronummer=C45.2
Klemens Böhm
Interoperable Informationssysteme - 74
37
Verallgemeinerung für Text
und semistrukturierte Daten
!
Motivation
DataGuide
!
PAT-Trees
Algebra
!
Mehrstufigkeit
STORED
!
Combined
Indices
HyperStorM
!
SQLServer
!
Technik wurde ursprünglich für n-Grams entwickelt
(von Herrn Schek),
Ziel:
Indexierung von Vorkommen von Worten im Text.
Beispiel: Text enthält das Wort ‘character’.
5-Grams: ‘chara’, ‘harac’, ‘aract’, …
Indexeintrag mit ‘chara’ wird erzeugt,
wenn deutlich seltener als ‘char’, ‘hara’, etc.
Gleiches Vorgehen möglich für Pfade
(im XML-Dokument).
Man kann Technik verallgemeinern
für Indexierung Pfadfragment – Dokumenttext.
Interoperable Informationssysteme - 75
Klemens Böhm
HyperStorM
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Ziele:
! Modellierung der Semantik von Hypermedia-Dokumentbestandteilen
in der Datenbank
Beispiele:
" Hyperlink-Elemente,
die andere Dokumentbestandteile referenzieren,
" Elemente in Dokumenten mit Multimedia-Bestandteilen,
die den Präsentationsablauf spezifizieren.
! 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
38
Ansatz
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
!
STORED
Combined
Indices
HyperStorM
!
SQLServer
!
Verwendung
objektorientierter Datenbank-Technologie –
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
Hypermedia-Dokumentbestandteilen,
Annahme: DTD ist gegeben
(SGML statt XML).
Klemens Böhm
Interoperable Informationssysteme - 77
Physische Repräsentation der
Dokumente
!
Motivation
DataGuide
PAT-Trees
Algebra
!
Mehrstufigkeit
!
STORED
Combined
Indices
HyperStorM
SQLServer
!
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
39
Beispiel
play
Motivation
...
DataGuide
PAT-Trees
title
fm
personae
Algebra
Mehrstufigkeit
playsubt
act
hamlet
The Tragedy of
Hamlet,
Prince of Denmark
title
<title>Dramatis Personae</title> Scene Denmark
<persona>CLAUDIUS</persona>
Dramatis
<persona>HAMLET</persona>
Act I
STORED
Persona
Combined
Indices
scenedescr
p ...
persona
persona
p
acttitle
scene
scenetitl
Scene Ie
...
stagedir
speech
HyperStorM
SGML markup
...
SQLServer
...
worldwide
CLAUDIUS
HAMLET
FRANCISCO
...
speaker
BERNARDO
Klemens Böhm
line
Who's
there?
Interoperable Informationssysteme - 79
XML- und Hypermedia-Semantik
!
Motivation
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
!
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
40
Bewertung
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
Anforderung ‘Unterstützung der Semantik
von Dokumentbestandteilen’ wurde erfüllt
für Hypermedia-Aspekte, allerdings gab es
keine Anwendungen und Dokumente,
und auch Anforderung
‘Nebenläufiges Ändern von Dokumenten’
war keine wirkliche Anforderung.
! 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
!
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
!
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
SQLServer
Klemens Böhm
Interoperable Informationssysteme - 82
41
XML Features
von SQL Server 2000
!
Motivation
DataGuide
PAT-Trees
Algebra
!
Mehrstufigkeit
!
STORED
Transformation von Relationen
(insbesondere Queryergebnisse) nach XML,
∃ Alternativen, unterschiedlich ausgefeilt.
Anfragen und Updates bezüglich XML Views,
‚XML Shredding‘: XML → Relationen.
Generisch vs. individuell.
Combined
Indices
HyperStorM
!
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Insgesamt:
" Viel manuelle Intervention erforderlich.
" Kein automatisches Erzeugen eines
Dokumenttyp-spezifischen DB-Schemas
und Einfügen/Herausholen der Dokumente.
" Konfiguration m.E. etwas unübersichtlich.
Interoperable Informationssysteme - 83
Klemens Böhm
HTTP Zugriff
!
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
!
URLs enthalten Domainname
und Name der virtuellen Root.
Beispiel:
http://dbspc15/sitzungen?sql=select%20'<root>';sel
ect+*+from+protokolle+FOR+XML+AUTO;select%2
0'</root>'
Virtual Root: Abstraktion, die DB-Server,
DB-Instanz, Zugriffsrechte etc. versteckt.
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Klemens Böhm
Interoperable Informationssysteme - 84
42
HTTP Zugriff – URL Typen
!
Motivation
DataGuide
PAT-Trees
!
Algebra
Mehrstufigkeit
STORED
Combined
Indices
!
HyperStorM
SQLServer
!
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
URL Query
http://localhost/demos?sql=select+*+from+Custom
ers+FOR+XML+Auto&root=root
Direct Query Access
http://localhost/demos/dbobject/Employees[@Emp
loyeeID=1]/@Photo
XPath-mässige Query Syntax
Template Access
http://server/vroot/vname?params
Template = XML Dokument
XPath XML View Access
http://server/vroot/vname/xpath?params
1. XML View, definiert in Schema File,
2. Auswertung XPath Ausdruck
gegen diese Sicht.
Klemens Böhm
Interoperable Informationssysteme - 85
Generierung von XML
aus SQL-Queryergebnissen (1)
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
- Einleitung
- SQL-bas.
Mechan.
!
∃ unterschiedlich ausgefeilte
(und unterschiedlich komplizierte) Mechanismen
für die direkte Erzeugung von XML
aus Anfrageergebnis: raw, auto, explicit
raw Modus:
" Erzeugt XML Dokument mit kanonischem
Elementtyp row ‘in quadratischer Form’,
primitiv.
" Beispiel:
http://dbspc15/sitzungen?sql=select+*+from+pr
otokolle+FOR+XML+RAW&root=root
- XMLSichten
+ Zugriff
- XML→DB
Klemens Böhm
Interoperable Informationssysteme - 86
43
Generierung von XML
aus SQL-Queryergebnissen (2)
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
Auto Modus:
" Erzeugt XML Dokument mit Nesting mit
regelmässigem Aufbau,
" Reihenfolge der Table-Aliase in select-Klausel,
" Beispiel:
http://dbspc15/sitzungen?sql=select+*+from+pr
otokolle+FOR+XML+AUTO&root=root
HyperStorM
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Klemens Böhm
Interoperable Informationssysteme - 87
Generierung von XML
aus SQL-Queryergebnissen (3)
!
SELECT Customers.CustomerID, OrderID
FROM Customers LEFT OUTER JOIN Orders
ON Customers.CustomerID =
Orders.CustomerID
ORDER BY Customers.CustomerID
FOR XML auto
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Query:
!
Resultat:
<Customers CustomerID=“ALFKI”>
<Orders OrderID=“10643” />
<Orders OrderID=“10692” />
</Customers>
<Customers CustomerID=“ANATR”>
<Orders OrderID=“10308” /> …
Klemens Böhm
Interoperable Informationssysteme - 88
44
Generierung von XML
aus SQL-Queryergebnissen (4)
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
Explicit Modus:
" Flexibelster, aber kompliziertester Ansatz,
" Query erzeugt Tabelle, die Struktur des XML-Dokuments
explizit kodiert (‘Universal Table Format’)
" Beispiel – Dokument, das erzeugt werden soll:
<root>
Spalten der
<Customer cid="ALFKI">
Customer-Relation
STORED
<name>Alfreds Futterkiste</name>
<Order oid="O-10643" />
<Order oid="O-10692" />
<Order oid="O-10702" /> …
</Customer>
<Customer cid="BOLID">
<name>Bólido Comidas preparadas</name>
<Order oid="O-10326" /> …
</Customer>
</root>
HyperStorM
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Interoperable Informationssysteme - 89
Klemens Böhm
Generierung von XML
aus SQL-Queryergebnissen (5)
"
"
TAG
PARENT
1 NULL
2
2
2
2
2
2
1 NULL
2
2
2
Unterschiedliches Mapping von Customer-Spalten:
– cid → Attribut
– name → Subelement
Entsprechende Tabelle im ‘Universal Table Format’:
1
1
1
1
1
1
1
1
1
Customer!1!cid!id
ALFKI
ALFKI
ALFKI
ALFKI
ALFKI
ALFKI
ALFKI
BOLID
BOLID
BOLID
BOLID
Customer!1!name!element
Alfreds Futterkiste
NULL
NULL
NULL
NULL
NULL
NULL
Bólido Comidas preparadas
NULL
NULL
NULL
Order!2!oid!id
NULL
O-10643
O-10692
O-10702
O-10835
O-10952
O-11011
NULL
O-10326
O-10801
O-10970
Spielt keine Rolle
im explicit-Modus
Klemens Böhm
Interoperable Informationssysteme - 90
45
Generierung von XML
aus SQL-Queryergebnissen (4)
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
Erläuterungen zu eben:
! Jede Zeile wird ein Element.
! Elementname ergibt sich aus Name der Spalten;
Einzelheiten werden ausgelassen.
! Query, die Tabelle erzeugt, mit UNION.
STORED
Combined
Indices
HyperStorM
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Interoperable Informationssysteme - 91
Klemens Böhm
Templates (1)
!
Motivation
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
!
!
XML-Dokument,
das parametrisierte Anfrage enthält,
Kann z.B. angestossen werden
über action-Attribut eines form-Elements.
Anfrage selbst – im wesentlichen
gleicher Mechanismus wie bisher.
Beispiel:
<root xmlns:sql="urn:schemas-microsoftcom:xml-sql" sql:xsl="path to XSLT file" >
<sql:header>
<sql:param name="state">WA</sql:param>
</sql:header>
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
<sql:query>
Hier eine Anfrage mit Zeile
… And Region LIKE @state …
</sql:query>
</root>
Klemens Böhm
Interoperable Informationssysteme - 92
46
Templates (2)
!
Beispiel für Einbindung Template –
Parameter über Formular:
Motivation
<html>
<body>
<form name="protokoll"
action="http://dbspc15/sitzungen/templates/in
sert_Template.xml" method="POST">
<input type=hidden name="contenttype"
value="text/xml">
<textarea name="state" cols=70
rows=30></textarea>
<br><input type=Submit value="Submit">
</form>
</body>
</html>
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Klemens Böhm
Interoperable Informationssysteme - 93
XML Sichten
mit Annotated Schemata
!
Motivation
DataGuide
!
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
!
XML-Data – Microsoft-Pendant zu XML Schema.
Annotationen –
definieren Beziehungen zwischen Elementen.
Erläuterung des folgenden Beispiels –
Struktur der erzeugten Dokumente:
<Customer ID=…>
<Order OrderID=…/>
</Customer>
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Klemens Böhm
Interoperable Informationssysteme - 94
47
XML Sichten
mit Annotated Schemata – Beispiel
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:sql="urn:schemas-microsoft-com:xml-sql">
unterschiedliche Namen!
<ElementType name="Customer"
sql:relation="Customers">
<AttributeType name="ID" />
<attribute type="ID" sql:field="CustomerID" />
<element type="Order">
<sql:relationship key-relation="Customers"
key="CustomerID"
foreign-relation="Orders"
foreign-key="CustomerID"/>
</element>
</ElementType>
<ElementType name="Order" sql:relation="Orders">
<AttributeType name="OrderID" />
<attribute type="OrderID" sql:field="OrderID"/>
</ElementType>
Interoperable Informationssysteme - 95
</Schema>
Klemens Böhm
XPath-Derivat
für Zugriff auf XML Sicht
!
Motivation
DataGuide
PAT-Trees
Algebra
Mehrstufigkeit
STORED
Combined
Indices
HyperStorM
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
!
Unterschiede zur Standard XPath-Semantik
" ‘any-match’ statt ‘first-match’
(angeblich nicht abbildbar auf RDBMSe),
" keine string→int Coercion,
Beispiel für Verwendung:
http://domainserver/dbvroot/schema/
CustOrd.xdr/Customer[@ID=‘ALFKI’]
" CustOrd.xdr –
Name des Annotated Schemas
von vorangegangener Folie,
" Pfadausdruck ‚ Customer[@ID=‘ALFKI’]‘
wird angewendet auf
erzeugtes XML-Dokument.
Klemens Böhm
Interoperable Informationssysteme - 96
48
Relationale Sicht auf XML Daten
!
Motivation
DataGuide
!
PAT-Trees
Algebra
!
Mehrstufigkeit
!
STORED
Combined
Indices
Anwendung: Einfügen von XML in RDBMS,
OpenXML Rowset Provider –
erzeugt Tupel aus XML Dokumenten,
edge-table view vs. shredded-rowset view.
Shredded-rowset view:
XPath-Ausdruck identifiziert Knoten,
die zu Tupeln werden.
HyperStorM
SQLServer
- Einleitung
- SQL-bas.
Mechan.
- XMLSichten
+ Zugriff
- XML→DB
Klemens Böhm
Interoperable Informationssysteme - 97
49
Herunterladen