• Keine Ergebnisse gefunden

Ausgangspunkt Architekturen Ziel Konflikte Transparenz Datenintegration 1

N/A
N/A
Protected

Academic year: 2022

Aktie "Ausgangspunkt Architekturen Ziel Konflikte Transparenz Datenintegration 1"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Datenintegration

Web Informationssysteme Wintersemester 2002/2003

Donald Kossmann

Ausgangspunkt

• Daten liegen in verschiedenen Datenquellen (Extremfall: jede URL eigene Datenquelle)

– Mietautos bei www.hertz.com – Hotel bei www.holiday-inn.com – Flüge bei www.lufthansa.com

• Datenquellen sind heterogen – Relationale Datenbanken

– Web Anwendungssystem (Web Dienst) – LDAP Server

– XML Datenbank – Filesystem, EXCEL, ...

Konflikte

• Struktur

– DB1: book(isbn, author), pub(isbn, title) – DB2: book(isbn, author, title), pub(isbn, title)

• Typen, Formate, Namen

– DB1: deutsches Zahlenformat: 10.000,00 – DB2: US Zahlenformat: 10,000.00

• Einheiten

– DB1: alle Preise in EUR

– DB2: Währung wird bei Preis mit angegeben

Ziel

• Betrachte die Welt, als ob es nur eine große, homogene Datenquelle gäbe.

• Diese Datenquelle versteht XML, XQuery!

• Transparenz!

– Einheitliche Schnittstelle (XML / XQuery) – Benutzer weiß nicht, wo und in welcher Form

die Daten liegen

– Benutzer definiert Anfrage in seiner Sprache und mit seinen Maßeinheiten.

Transparenz

SQL LDAP

SQL EXCEL

SQL XML

XML / Xquery

Architekturen

• Data Warehouse

– Große integrierte Datenbank, Anfragen ans DW – Periodischer Refresch der Datenquellen

• Datenbankföderation

– Keine Replikation, Anfragen an Datenquellen – Zusätzliche Middleware, ggf. P2P Verarbeitung

• Mischformen

– Materialisierung mancher Informationen – Onlinezugriff auf andere Informationen

• (Apriori alles in eine Datenbank / Anwendung packen)

(2)

Data Warehouse

SQL LDAP

SQL

EXCEL XML

Data Warehouse (SQL oder XML)

Data Warehouse

• Vorteile

– Spezielle Aufbereitung der Daten möglich (Voraggregation, Indexierung, ...) – Entkopplung von OLAP und OLTP

– Gute Laufzeiten für Anfragen

• Nachteile

– Konsistenz der Daten

– ETL ist schwierig (Problem nur verschoben!) – Zusätzlicher Datenbankentwurf im DW notwendig

– Hohe Kosten

Föderierte Datenbanken

• Hauptidee: Verwende „Wrapper“

– Verstecken Heterogenität, Transformationen Bieten einheitliche Sicht auf Daten – Bekommen Teilanfrage - liefern Ergebnis – Implementieren Optimierungen

(Caching, Push-Down von Anfragen, ...)

• Verteilte Anfragebearbeitung im „Mediator“

– Zerlege „globale Anfrage“ in Teilanfragen – Bestimme „Plan“ zum Joinen der Teilergebnisse

• Relationale Technologie ausgereift

– Produkte: Data Joiner (IBM), UniSQL, ...

– XML Story noch unklar!

wrapper

wrapper wrapper wrapper

Mediator / Wrapper Architektur

SQL LDAP

SQL

EXCEL XML

Mediator (Xquery Engine)

XQuery XML

Wieso verwendet man XML?

• Vorteile

– XML ist „Mutter“ aller Datenformate – Ergebnisse kann man leicht weiterverarbeiten

(Z.B. Präsentation im Browser)

– Xquery ideale Anfragesprache zur Integration Kein globales Schema erforderlich! Prädikate auf Text.

– Alle machen XML! Verfügbarkeit von Wrappern!

• Nachteil

– Xquery -> SQL Übersetzung sehr schwierig!

– Es gibt bereits Produkte, die auf relational basieren

• XML, wo nötig - SQL, wo möglich (!???)

Beispiel

• Datenquelle 1 (relationale Datenbank)

– Book(ISBN, Title, Price, Publisher) – BookAuthor(ISBN, Name)

• Datenquelle 2 (XML)

– <!ELEMENT rezension (comment)>

– <!ELEMENT comment (#PCDATA)>

– <!ATTLIST rezension isbn CDATA #REQ>

• Finde alle Rezensionen von den Büchern von

Kossmann, die mehr als USD 50 kosten.

(3)

Beispielanfrage

• Finde Rezensionen von den Büchern von Kossmann, die mehr als USD 50 kosten.

for $r in document(„www.rezension.xml“),

$b in document(„www.book.rdb/book“)[price > 50], $a in document(„www.book.rdb/author“)[. = „Kossmann“]

where $r/@isbn = $b/isbn AND $b/isbn = $a/isbn return

<rezension> { $b/title } { $r/comment } </rezension>

Normalisierung

for $r in document(„www.rezension.xml“) return { for $b in document(„www.book.rdb/book“) return { for $a in document(„www.book.rdb/author“) return { if ($r/@isbn = $b/isbn AND $b/isbn = $a/isbn AND $b/price > 50 AND $a = „Kossmann“) then <rezension> { $b/title } { $r/comment } </rezension>

} } }

Decomposition

for $r in document(„www.rezension.xml“) return { for $b in document(„www.book.rdb/book“) return { for $a in document(„www.book.rdb/author“) return { if ($r/@isbn = $b/isbn AND $b/isbn = $a/isbn AND $b/price > 50 AND $a = „Kossmann“) then <rezension> { $b/title } { $r/comment } </rezension>

} } }

• Annahme: Wrapper sind dumm! Können nur „doc“

• Alles andere macht der Mediator

Decomposition II

for $r in document(„www.rezension.xml“) return { for $b in document(„www.book.rdb/book“) where $b/price > 50 return {

for $a in document(„www.book.rdb/author“) where $a = „Kossmann“ return {

if ($r/@isbn = $b/isbn AND $b/isbn = $a/isbn <rezension> { $b/title } { $r/comment } </rezension>

} } }

• Schiebe einfache Prädikate in den Wrapper

Decomposition III

for $r in document(„www.rezension.xml“) return {

for $b in wrap(„SELECT * FROM book WHERE price > 50“) return {

for $a in wrap („SELECT * FROM author WHERE name = ‚Kossmann‘“) return { if ($r/@isbn = $b/isbn AND $b/isbn = $a/isbn <rezension> { $b/title } { $r/comment } </rezension>

} } }

• Wrapper schiebt Prädikate in die Datenquelle

Decomposition IV

for $r in document(„www.rezension.xml“) return { for $b in wrap(

„SELECT b.* FROM book b, author a

WHERE b.price > 50 AND a.name = ‚Kossmann‘

AND b.isbn = a.isbn“) return { if ($r/@isbn = $b/isbn

<rezension> { $b/title } { $r/comment } </rezension>

} }

• „Intelligenter“ Wrapper erkennt lokalen Join

• Hierzu kostenbasierter Optimierer notwendig

(4)

Decomposition V

for $r in document(„www.rezension.xml“) return { for $b in wrap(

„SELECT b.* FROM book b, author a

WHERE b.price > 50 AND a.name = ‚Kossmann‘

AND b.isbn = a.isbn AND b.isbn = $r“) return { <rezension> { $b/title } { $r/comment } </rezension>

} }

• Wrapper unterstützt Parameter

• Mediator führt sogenannten BindJoin aus

• Wiederum kostenbasierter Optimierer notwendig

Anfrageplan

wrapper (rezension.xml)

wrapper (www.book.rdb) BindJoin

Constructor

(Rezension) (Rezension, Book)

(Rezension, Book)

(Rezension)

Verteilte Mediatoren

• DQ / Wrapper kommunizieren direkt (ohne Mediator)

• Spart Kommunikationskosten

– Rezension direkt zur relationalen Datenbank – anstatt Umweg durch Mediator

• Erfordert etwas aufwendigere Optimierung

• Erfordert Flexibilität in der Installation

Verteilter Anfrageplan

wrapper (rezension.xml)

wrapper (www.book.rdb) BindJoin

Constructor

(Rezension) (Rezension, Book)

(Rezension, Book)

(Rezension)

Transparenz

• „document“ Funktion verletzt Transparenz

• Wie bearbeitet man die folgende Anfrage?

for $r in //rezension, $b in //book[price > 50], $a in //author[. = „Kossmann“]

where $r/@isbn = $b/isbn AND $b/isbn = $a/isbn return

<rezension> { $b/title } { $r/comment } </rezension>

• Kontext ist das gesamte Internet!

Global as View

• Definiere Sicht in einem globalen Schema //book ~ document(„..“) union document()...

• Zusätzlicher Anfragetransformationsschritt – ersetze „globale“ Wurzel durch Sichtdefinition

• Vorteil: sehr einfach zu implementieren

• Nachteil: man muss alle Quellen explizit

im globalen Schema registrieren

(5)

Local as View

• DQ/Wrapper = Menge (parametrisierten) Sichten (Sicht = Anfrage, die Wrapper beantworten kann)

• Definition einer DQ unabhängig von anderen DQ

• Beispiel: www.book.rdb implementiert //book, //author

• Aufgabe (das ist schwer!)

– Beantworte Anfrage mit Hilfe von Sichten (AQUV) – Literatur: Alon Halevy, VLDB Journal, 2001

• Bonus: Cache = Menge materialisierter Sichten – Verwendung des Caches: wiederum AQUV!

Data Cleaning

• Zitate zählen! Gleiche Referenzen erkennen – „D. A. K.“, „D. Kossmann“, „Donald Kossmann“

– Was ist mit „Kossman“?

• Lösungsansatz

– Semiautomatische Werkzeuge – Besondere Operatoren: z.B. Match

– Techniken des Maschinellen Lernens, Statistik

• Literatur: Galhardas et al., VLDB 2001

• Wer das Problem löst, wird sehr reich!

Fazit

• Verteilte (Xquery) Anfragebearbeitung

• Wrapper verstecken Heterogenität („Unter den Teppich Kehren“ Prinzip)

• Mediator bündelt Ergebnisse,

kompensiert fehlende Anfragefunktionalität in DQ

• Herausforderung: Push-Down in Datenquellen

– schwieriges Optimierungsproblem

– AQUV ein Baustein

• Kommerzielle Tools arbeiten „relational“

– XML basierte Tools kommen aber bald auf den Markt

• Updates: ungelöstes Problem

Referenzen

ÄHNLICHE DOKUMENTE

Eingabe Sokrates';delete from Professoren where name='Kant erzeugt select * from Professoren where name='Sokrates';. delete from Professoren

SELECT Professoren.Name AS Dozenten, Studenten.Name AS Hörer FROM ((Vorlesungen INNER JOIN hoeren

The proportion of faults in the COTS component detected by a wrapper can be used as a metric to evaluate if a wrapper design fulfils its safety specification, and if a new

Erst wenn diese bekannt sind, kann eine Aussage über die Qualität der Daten getroffen werden.. Die Anforderungen sind dabei objektiv und automatisiert überprüfbar

Mit dieser Vorgehensweise soll (a) die ganze Breite arbeitspolitischer Gestal- tungsfelder durchgeprüft werden, um sicherstellen, daß auch die eher indirekten

This approach may have numerical advantages (Denis, 1989), but from the conceptual and analytical point of view, which we are emphasizing throughout this book, the

Ein Wrapper-Learner (WIM) lernt eine Klasse C von Wrappern, falls er jegliche Semantiken lernen kann, die durch Wrapper aus C beschrieben werden können.. 6.1

Arbitrary: Sequenz wird bestimmt durch beliebige Funktion Recursive: Sequenz wird bestimmt durch rekursive Funktion