18.11.2012 Aufrufe

Dokument 1 - RWTH Aachen University

Dokument 1 - RWTH Aachen University

Dokument 1 - RWTH Aachen University

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6.3 Anfrageumschreibung zur Datenintegration 161<br />

Vergleichsprädikaten noch die konzeptuellen Variablen durch die relationalen Variablen ersetzt<br />

werden, was mit Hilfe der Annotationen der Datenquellen und der DW-Relation und der Abbildung<br />

ψ und eq in der Funktion replaceVars vorgenommen werden kann.<br />

Schließlich werden der Annotation einer konjunktiven Anfrage noch die Domäneninformationen<br />

für die relationalen Variablen hinzugefügt, die in dieser Anfrage vorkommen (also alle relationalen<br />

Variablen der Datenquellen). Die globale Annotation mit den Domänen der Ergebnisvariablen<br />

wird am Schluss der Funktion hinzugefügt.<br />

Beispiel 6.8 (Fortsetzung von Beispiel 6.7):<br />

Die in Phase 2 bestimmten möglichen Kombinationen von MiniCon-Beschreibungen können<br />

nun zu konjunktiven Anfragen mit einer Annotation umgewandelt werden. Dabei beschränke ich<br />

die Darstellung hier wieder auf die drei Möglichkeiten, die in Tabelle 6.2 dargestellt sind. Aus<br />

Gründen der Übersichtlichkeit stelle ich hier die domain-Ausdrücke in der Annotation nicht dar.<br />

Die erste Möglichkeit ist ein Verbund der Datenquellen Marketing, Customer und BasicCharge.<br />

Dabei wird der Verbund über das Konzept Customer bzw. PrivateCustomer hergestellt. Da in der<br />

Relation Marketing die Kunden über den Namen und das Geburtsdatum identifiziert werden, ist<br />

eine komplexere match-Operation mit den anderen beiden Relationen notwendig.<br />

Customer(ID1, Name1, Street1, City1, Country1), Marketing(Name2, DOB2),<br />

BasicCharge(ID5, Code5, T ype5, Amount5), EQ(Country1, “Germany”), LE(DOB2, 1950)<br />

| match([Name2, DOB2], [ID1]), match([Name2, DOB2], [ID5]), match([ID1], [ID5]),<br />

assign([ID], [ID1]), assign([Name], [Name1]),<br />

assign([Code], [Code5]), assign([T ype], [T ype5])<br />

Bei der zweiten Möglichkeit kommt zusätzlich noch die Relation GermanCitizen hinzu. Da dadurch<br />

garantiert wird, dass es sich um deutsche Kunden handelt, muss die Einschränkung für das<br />

Attribut Country nicht mehr geprüft werden. Insgesamt werden hier sechs match-Operationen<br />

generiert, das entspricht allen Möglichkeiten bei vier Datenquellen. Um sicher zu stellen, dass<br />

aus den vier Datenquellen jeweils der gleiche Kunde betrachtet wird, reichen jedoch drei match-<br />

Operationen aus.<br />

Customer(ID1, Name1, Street1, City1, Country1), Marketing(Name2, DOB2),<br />

GermanCitizen(Name3, DOB3, City3), BasicCharge(ID5, Code5, T ype5, Amount5),<br />

LE(DOB2, 1950)<br />

| match([Name2, DOB2], [ID1]), match([Name2, DOB2], [ID5]), match([ID1], [ID5]),<br />

match([Name2, DOB2], [Name3, DOB3]), match([Name3, DOB3], [ID1]),<br />

match([Name3, DOB3], [ID5]), assign([ID], [ID1]), assign([Name], [Name1]),<br />

assign([Code], [Code5]), assign([T ype], [T ype5])<br />

Die letzte Möglichkeit stellt den Verbund zwischen allen fünf Relationen her. Um die unterschiedlichen<br />

Repräsentationen von Kunden in den Datenquellen miteinander abzugleichen, sind<br />

insgesamt zehn match-Operationen möglich. Die angegebenen vier match-Operationen reichen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!