Folien - Universität Mannheim

Werbung
Answering XML Queries over
Heterogeneous Data Sources
Benjamin Guthier
Datenbankseminar SS05
Universität Mannheim
Inhalt des Vortrags
• Architektur des Datenintegrationssystems
Agora
• Normalisierung von XQuery-Anfragen
• Zusammenfassung
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
2/17
Die Architektur von Agora
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
3/17
Problemstellung bei der Normalisierung
in Agora
• Normalisierung auf XQuery-Syntax-Ebene
• Bringt XQuery-Anfragen in leicht in SQL
übersetzbare Form
• Signalisiert ggf. Unübersetzbarkeit
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
4/17
Eliminierung von Let-Klauseln
for $book in $bib//book
let $publisher := $book/publisher
where $publisher != "Addison-Wesley"
return $publisher
=>
for $book in $bib//book
where $book/publisher != "Addison-Wesley"
return $book/publisher
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
5/17
Entschachteln von FLWR-Ausdrücken
(for $author in $bib//author
where matches($author, "^[AB]")
return $author
)/last/text()
=>
for $author in $bib//author
where matches($author, "^[AB]")
return $author/last/text()
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
6/17
Elementkonstruktoren in Pfadausdrücken
declare variable $list :=
($bib//author, $bib//editor);
(<authors>
{$list}
</authors>)/author
=>
for $item in $list
where name($item)="author"
return $item
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
7/17
FLWR-Ausdrücke in der Return-Klausel
for $x in $bib//book
return (for $y in $prices//book
where $y/price < 50 and $y/title = $x/title
return $y)
=>
for $x in $bib//book,
$z in (for $y in $prices//book
where $y/price < 50 and $y/title = $x/title
return $y)
return $z
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
8/17
FLWR-Ausdrücke in der For-Klausel
for $x in $bib//book,
$z in (for $y in $prices//book
where $y/price < 50 and $y/title = $x/title
return $y)
return $z
=>
for $x in $bib//book,
$y in $prices//book
where $y/price < 50 and $y/title = $x/title
return $y
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
9/17
Umwandlung von XPath-Ausdrücken in
FLWR-Ausdrücke
$bib//book[@year>1995]
=>
for $book in $bib//book
where $book/@year > 1995
return $book
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
10/17
Umwandlung von XPath-Ausdrücken in
FLWR-Ausdrücke (2)
for $author in $bib//book[@year>1995]/author
where $author/first = "Peter"
return $author
=>
for $book in $bib//book,
$author in $book/author
where $author/first = "Peter"
and $book/@year > 1995
return $author
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
11/17
Ergebnis der Normalisierung
• Eleminierung von:
– Let-Klauseln
– If-then-else-Ausdrücken
– Prädikaten in XPath-Ausdrücken
• Verschachtelungen wurden aufgelöst
• Resultierende Anfragen sind FLWR-Ausdrücke
mit Path-Expressions
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
12/17
Unübersetzbare Sprachkonstrukte von
XQuery in SQL
• Einhaltung der Document-Order
• Rekursion in Funktionen
• Typunterscheidung zur Laufzeit
• Identität von XML-Knoten
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
13/17
Offene Probleme bei der Normalisierung
in Agora
• Keine Regeln für Verschachtelung über mehrere
Ebenen
• Keine quantifizierten Unteranfragen in der WhereKlausel
• Keine explizite Normalform
• Keine Anwendugsreihenfolge der Regeln
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
14/17
Zusammenfassung
• Hier vorgestellt:
– Agora als Datenintegrationssystem mit XML als
Benutzerschnittstelle und relationaler Datenbank als
Kern
– Normalisierungsregeln für XQuery-Anfragen zur
einfacheren Übersetzung in SQL
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
15/17
Zusammenfassung (2)
• Ausserdem im Paper:
– Übersetzung von normalisiertem XQuery in SQL auf
generischem Schema
– SQL-Rewriting auf lokale Schemata der Datenquellen
– Tagging
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
16/17
Noch Fragen?
Benjamin Guthier – Datenbankseminar SS05 – Universität Mannheim
17/17
Herunterladen