Dokument 1 - RWTH Aachen University
Dokument 1 - RWTH Aachen University
Dokument 1 - RWTH Aachen University
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