Kapitel 9
Schemaabbildung und -integration
Schemaintegration
Datenintegration als ein wesentlicher Aspekt der Entwicklung neuer, globaler
Informationssysteme
Randbedingung: Autonomie der beteiligten lokales Systeme soll erhalten bleiben
Verschiedene Systemarchitekturen möglich
Föderiertes DBS
Data Warehouse
logische Datenintegration
Föderierungsdienst integriert lokale Komponentensysteme in ein Gesamtsystem
Einheitlicher Zugriff auf integrierten Datenbestand
physische Datenintegration
Daten aus verschiedenen Quellsystemen werden in ein gemeinsames Format kopiert
komplexe Auswertung und Analyse auf integriertem und aufbereitetem Datenbestand
Schemaintegration(1) ist ein zentrales Problem
Conrad: Schemaintegration: Integrationskonflikte, Lösungsansätze, aktuelle
Herausforderungen, in Informatik Forschung und Entwicklung 17(3), 2002.
(1)S.
2
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Schema-Referenzarchitektur
globales DM
externes Schema
externes Schema
föderiertes Schema
Schemaintegration
Exportschema
Exportschema
Komponentenschema
Komponentenschema
lokales Schema
lokales Schema
lokales DM
Zuschnitt auf Anwendung,
Benutzergruppen
Ausschnittbildung
Datenmodelltransformation
lokaler Schemaentwurf
3
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Komponenten der Schema-Referenzarchitektur
Lokales Schema
Komponentenschema
entspricht dem konzeptionellen Schema der lokalen Datenbank
basiert auf lokalem Datenmodell
Beschreibung der lokalen Datenbank in globalem Datenmodell
Überwindung der DM-Heterogenität
Exportschema
Beschreibung des Ausschnitts der lokalen Daten, die für globale Anwendungen zur
Verfügung stehen sollen
Festlegung in der Praxis oft lokal durch das Komponentensystem getroffen
Föderiertes Schema
"Vertauschen" von Exportschema und Komponentenschema
beschreibt die Gesamtheit des föderierten Datenbestandes
wird durch Schemaintegration gebildet
Externes Schema
entspricht dem klassischen ext. Schema für das föderierte System
4
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Integrationskonflikte
siehe:
Theo Härder, Günter Sauter, Joachim Thomas: The Intrinsic
Problems of Structural Heterogeneity and an Approach to Their
Solution. VLDB Journal 8(1): 25-43 (1999)
Semantische Heterogenität
Bezieht sich auf Modellierungsinhalte
semantische Heterogenität
Unschärfe komplexer Gebilde
unklare
Elemente
fehlender
Kontext
Sprache
Begriffsungenauigkeit
Komplexität
ausdrucksschwache
Bezeichnung
Abkürzungen
z. B. ‘A’
lexikalische
Definition
z. B. ‘Schloss’
6
AG Heterogene Informationssysteme
undefiniert
z. B. ‘Meta-Step’
Umfang
z. B. Ausmaß
von ‘Stückliste’
ausdrucksstarke
Bezeichnung
Homonyme
Synonyme
Abkürzungen
z. B. ‘EDM’ =
Engineering- / ElektricDaten-Management
Middleware für Verteilte
Informationssysteme - WS03/04
Strukturelle Heterogenität
Bezieht sich auf die jeweils zur Verfügung stehenden Modellierungskonstrukte
Szenario
Q1, ... Qn
Z’
Z
Z
Q1, ... Qn
Quell-DBS, Legacy oder
Anwendungssysteme
Integrierte/heterogene Sicht
(Zielschema bzw. -system)
Z
Schema-Integration
(Datentransfer nach Anfrage)
Q1
Q2 ... Qk ... Qn
Z
Q1, ...Qn
Propagierung von Änderungen
Z
Z’ Migration
Schemata sind kongruent, wenn sie semantisch identische Objekttypen und
Eigenschaften beinhalten
meist inkongruent, überlappend
Kongruenzeigenschaft zwischen Quell- und Zielschema (vertikal) oder zwischen
versch. Quellschemata (horizontal)
7
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Probleme der strukturellen Heterogenität
Problembereiche
Elementare Abbildungsprobleme
Probleme durch den Einsatz objektorientierter Datenmodelle
Abbildungskardinalität
Schemakardinalität
Weitere Probleme
Ausgangsszenario (Betrachtung elementarer Probleme)
homogene, relationale Schemata
transiente Verwaltung der Zieldaten
unidirektionale (1:1)-Beziehung: Q → Z
8
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Vertikale Kongruenz
Projektion: Z beschreibt kleineren Ausschnitt des Anwendungsbereichs als Q
View-Update-Problematik
Beispiel:
Q
Teil
SNR
erstellt_von
Pers
PersNr
Name
Z
Teil
SachNr
erstellt_von
PS/FS
Q beschreibt kleineren Ausschnitt als Z
häufig bei integrierten Sichten
Beispiel:
Q
Teil
SachNr
Konstr_Bereich
Preis
Teil
SachNr
Preis
Z
Middleware für Verteilte
Informationssysteme - WS03/04
9
AG Heterogene Informationssysteme
Vertikale Datenverteilung
Z verwaltet mehr Daten als Q
z. B. abgeleitete Attribute, die in Q nicht enthalten
Beispiel: in Q Nullwerte für Preis erlaubt, nicht jedoch in Z
Q
Teil
SachNr
Konstr_Bereich
Preis
Teil
SachNr
Preis
Z
Selektion: Z erfasst weniger Daten als Q
über Prädikate zu erfassen
Beispiel
Q
Prädikat: “nur Konstruktionsbereiche
‘A’ und ‘B’ aus Q”
Teil
SachNr
Konstr_Bereich
Preis
Teil
SachNr
Preis
10
AG Heterogene Informationssysteme
Z
Middleware für Verteilte
Informationssysteme - WS03/04
Datentypkorrespondenz
Unterstützung unterschiedlicher Datentypen durch Q und Z
Problem: finde Abbildung, die semantikerhaltende Rücktransformation erlaubt
Beispiel: REAL (Q) → INTEGER (Z) durch Rundung
(genaue Rücktransformation nicht möglich)
generell: korrekte und vollständige Transformation von Daten eines semantisch
mächtigeren Modells in ein semantisch ärmeres Modell kann nicht durchgeführt
werden!
Middleware für Verteilte
Informationssysteme - WS03/04
11
AG Heterogene Informationssysteme
Attributkorrespondenz
Zusammenhang zwischen Attributen aus Q und Z
Verknüpfung/Aggregation ‘nach’ Z
Trennung ‘nach’ Q ?
bedingte Abbildung (sowohl bzgl. der Zuordnung der Attribute als auch bzgl. der
Abbildung der Werte)
Beispiel für (n:m)-Zusammenhang
Q
Felge
Mittelpunkt_x
Mittelpunkt_y
Radius
Felge
Punkt1_x
Punkt1_y
Punkt2_x
Punkt2_y
Punkt3_x
Punkt3_y
Z
i.a. komplexe Berechnungsfunktionen notwendig für die Umrechnung von Q ‘nach’
Z
(komplexe) Berechnungsfunktionen für die Umrechnung von Z ‘nach’ Q ?
12
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Entitykorrespondenz
(n:1)-Zusammenhang zwischen Entities aus Q und Z
Instanzen aus Q, die einem Entity in Z entsprechen, müssen identifiziert werden
können
(1:n)-Zusammenhang zwischen Entities aus Q und Z
Q
Kabel
Ende_1
Ende_2
Leitung
Ende1_x
Ende1_y
Ende2_x
Ende2_y
Z
Endpunkt
x_Koordinate
y_Koordinate
kontextabhängige Abbildung (Q → Z): Endpunkte können nur im entsprechenden
‘Kabel’-Kontext (in Z) instanziiert werden
Verdrängungsabhängigkeit (Z → Q):
in Z könnte für ein Kabel nur ein Endpunkt instanziiert sein; dann kann keine
korrespondierende Leitungsinstanz in Q erzeugt werden
(n:m)-Zusammenhang: alle Probleme können auftreten
Middleware für Verteilte
Informationssysteme - WS03/04
13
AG Heterogene Informationssysteme
Vernetzung von Quellkonstrukten
abhängige Quellentities
vgl. Entitykorrespondenz
besondere Mechanismen der Abbildung notwendig bei
(n:1)-Abbildung (Zielentity entsteht durch Join)
Q
Teil
SNR
erstellt_von
Pers
PersNr
Name
Teil
SachNr
erstellt_von
Z
PS/FS
14
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Vernetzung von Zielentities
abhängige Zielentities
bei Abbildung vernetzter Quellstrukturen in vernetzte Zielstrukturen können
die Referenzen voneinander abweichen
z. B. können (gerichtete) Beziehungen invertiert sein
Beziehungstypen zwischen Entities in Q können auf Beziehungstypen zwischen
‘anderen’ Entities in Z abgebildet werden
Q
Teil-Person
erstelltes_Teil
erstellt_von
Teil
SachNr
Z
Teil
SachNr
erstellt_von
Person
Name
Person
Name
Anmerkung: dieses Problem tritt häufig bei Abbildungen zwischen normalisierten
relationalen und objektorientierten Schemata auf
Middleware für Verteilte
Informationssysteme - WS03/04
15
AG Heterogene Informationssysteme
Identitätskonflikt
Durch Einsatz objektorientierter Datenmodelle
ID-erhaltende Abbildung
ID-erzeugende Abbildung
nicht möglich, falls (n:m)-Verhältnis zwischen Instanzen aus Q und Z mit n < m
Erzeugung der ID bei Erzeugung von Instanz in Z
Zuordnung von neuen IDs zu Instanzen in Z muss jedoch dokumentiert werden,
um Propagierungen zu ermöglichen
hybride Abbildung
sowohl ID-erhaltende als auch ID-erzeugende Abbildung
Beispiel
Q
Teil
SachNr
Funktionsgruppe
16
AG Heterogene Informationssysteme
Z
Funktionsgruppe
Bezeichnung
Teile: SET
Middleware für Verteilte
Informationssysteme - WS03/04
Abbildung mengenwertiger Attribute
Durch Einsatz objektorientierter Datenmodelle
unterschiedliche Sortierung in Kollektionen erfordert die Beachtung der
entsprechenden Sortierprädikate bei der Transformation
falls geordnete Kollektion aus Q in ungeordnete Kollektion in Z transformiert
wird, kann Propagierung unmöglich gemacht werden
Abbildung einer Instanz mit einem mengenwertigen Attribut in mehrere
Instanzen mit jeweils einwertigem (korrespondierendem) Attribut
Nest-/Unnest-Operationen notwendig
Beispiel:
Z
Q
Kaufauftrag
Kunde
Auftragsbezeichnung
Preis
Sachbeareiter
Kundenwunsch
Kunde
Aufträge: LIST
Preise: LIST
Sachbearbeiter: SET
Middleware für Verteilte
Informationssysteme - WS03/04
17
AG Heterogene Informationssysteme
Abbildung von Abstraktionskonzepten
Durch Einsatz objektorientierter Datenmodelle
Darstellung gleicher Sachverhalte auf unterschiedlichen Abstraktionsebenen
Beispiel: Datenebene vs. Typebene
Q
Z
Teil
SachNr
besteht_aus: SET
Konstrukteur
Teil
SachNr
Einzelteil
Konstrukteur
18
AG Heterogene Informationssysteme
Zusammenbau
besteht_aus: SET
Middleware für Verteilte
Informationssysteme - WS03/04
Abbildung von Abstraktionskonzepten (2)
Beispiel: Datentypebene vs. Objektebene
Q
Teil
SachNr
Konstrukteur
Teil
SachNr
erstellt_von
Z
Person
Name
19
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Dynamische Aspekte und Integritätsbedingungen
zu berücksichtigen: Seiteneffekte von Funktionen, Rückgabewerte von
Methoden, Repräsentation der Zeit, unterschiedliche Programmiersprachen,
...
Abbildung nicht automatisierbar !
20
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Abbildungskardinalität
in bisheriger Diskussion Annahme der unidirektionalen Abbildung
bzw. impliziter Definition der Rücktransformation
hier jedoch Einschränkungen wie bei View-Update
evtl. mit speziellen Vorkehrungen für Rücktransformation
bidirektionale Abbildung
Q → Z und Z → Q
explizite Definition der Rücktransformation
Middleware für Verteilte
Informationssysteme - WS03/04
21
AG Heterogene Informationssysteme
Abbildungskardinalität (Forts.)
bidirektionale Abbildung
Beispiel: mögliche Semantik bei Änderung des Attributs erstellt_von in Z
Q
Teil
SNR
erstellt_von
Pers
PersNr
Name
Teil
SachNr
erstellt_von
Z
PS/FS
Beispiel: Checkin-Abhängigkeit
Z
Kabel
ende_1
ende_2
Kabel
Kabelende
ID
ID_ende_1
ID_ende_2
ID
22
AG Heterogene Informationssysteme
Q
(oo. DB)
Middleware für Verteilte
Informationssysteme - WS03/04
Schemakardinalität
In der bisherigen Diskussion Annahme der Zuordnung genau eines
Quellschemas zu genau einem Zielschema (Schemaabbildung)
Nun: mehrere Quellschemata zu einem Zielschema (Schemaintegration)
Horizontale Kongruenz
identische Anwendungsbereiche
teilweise überlappende Anwendungsbereiche
semantisch gleiche Information, aber unterschiedliche Darstellungsformen und
unterschiedliche ID (Entity-Identifikationsproblem)
Problem der DB-übergreifenden Konsistenz
nicht alle Informationen können in der integrierten Sicht dargestellt werden
impliziert Projektion von Elementen der Quellschemata
höhere Wahrscheinlichkeit der Verwendung unterschiedlicher Darstellungsformen und ID
in den Qi
disjunkte Anwendungsbereiche
Integration wenig sinnvoll
23
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Horizontale Datenverteilung
disjunkte Verteilung der Daten auf die Qi
replizierte Verteilung der Daten auf die Qi
es sind Prädikate zu spezifizieren, anhand derer abgeleitet werden kann, auf
welche Qi neu erzeugte Instanzen aus Z zu propagieren sind
es ist zu beachten, dass Daten unterschiedlich strukturiert und identifiziert werden
können
teilweise überlappende Verteilung der Daten auf die Qi
Vorkehrungen der beiden vorgenannten Punkte sind zu beachten
beim Integrationsprozess müssen Daten zusammengefügt werden
24
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Weitere Probleme
Dauerhaftigkeit von Zieldaten
bisher Annahme der transienten Verwaltung der Zieldaten
persistente Datenhaltung in Z in der Regel nur zur Datenmigration
dabei in der Regel nur unidirektionale Abbildung und keine Propagierung
Heterogenität von Datenmodellen
Datenstrukturierungsgrad
unterschiedliche Mächtigkeit kann zum Verlust von Information führen
bisher Annahme der Nutzung von ‘strukturierten’ Quellsystemen mit ‘generischen’
Schnittstellen (‘strukturiert’ heißt: es gibt ein Schema; ‘generisch’ heißt:
Datenzugriffsschnittstelle ist unabhängig von der Semantik der Daten)
bei semi-strukturierten Daten (z. B. ADTs, HTML) oder unstrukturierten Daten trifft
dies nicht zu
hier ist keine Schemaintegration möglich
lediglich operationale, wrapper-basierte Abbildung
25
AG Heterogene Informationssysteme
Schemaintegrationstechniken
Middleware für Verteilte
Informationssysteme - WS03/04
Schemaintegrationstechniken
Zusicherungsbasierte Schemaintegration
Zusicherungen: Inter-Schema-Korrespondenzen
Integrationsregeln
beschreiben welche Schemabestandteile in Beziehung zueinander stehen
bestimmen wie die korrespondierenden Bestandteile in das integrierte Schema
eingebracht werden
Integration von Klassenhierarchien mit Upward Inheritance
Generic Integration Model – GIM
Erweiterung der zusicherungsbasierten Schemaintegration
Analyse extensionaler Beziehungen zwischen Objekttypen/-klassen der Schemata
Zerlegung der Klassen in sog. Basisextensionen
Multidatenbanksprachen
Abbildungssprachen
Sichtenbildung als Integrationsmittel
Beschreibung der Abbildung zwischen Schemata und Konfliktlösungschritte in
deklarativer oder prozeduraler Form
27
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Zusicherungsbasierte Schemaintegration
Grundidee
Beschreibung von paarweisen Beziehungen zwischen Elementen der Schemata als
Inter-Schema-Korrespondenzen
Integrationsregeln für die zu Verfügung stehenden Korrespondenzformen
bestimmen das Auftreten im integrierten Schema
Korrepondenzen entsprechen datenquellenübergreifende Integritätsbedingungen
Garantie durch das System?
Generisches Datenmodell als Grundlage
Bestandteile
Objekttypen (und Extensionen)
wertbasierte Attribute
Links (Referenzattribute)
abstrahiert von spezifischen Datenmodellen
Besonderheiten der spezifischen Datenmodelle werden jedoch nicht vollständig abgedeckt
28
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Inter-Schema-Korrespondenzen
Semantische Korrespondenz von Schemabestandteilen, weiter beschrieben
durch Beziehung auf extensionaler Ebene
Äquivalenz, Teilmenge, Überlappung, Disjunktheit
Korrespondenzformen
Element-Korrespondenz
Element-und-Attribut-Korrespondenz
Pfad-Korrespondenz
Beispiel: S1.Personal ⊇ S2.Projektmitarbeiter
Beispiel: S1.Personal.PNr = S2.Projektmitarbeiter.PersNr
Korrespondenz von Beziehungen
Beipiel: S1.Personal-Abteilung ⊆ S2.Projektmitarbeiter-Projekt-Abteilung
29
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Integrationsregeln
Jeweils für Form der Korrepondenz
Beipiel: S1.X1 ≡ S2.X2
S.X im integrierten Schema, Bezeichner X kann mit X1 oder X2 übereinstimmen
Für korrespondierende Attributpaare wird jeweils ein Attribut übernommen, Wert
repräsentiert immer die Vereinigung der einzelnen Werte
Zusätzlich werden alle Attribute ohne Korrepondenz aus den beteiligten Schemata
übernommen.
Zusätzliche Regeln für Übernahme von Schemabestandteilen ohne
Korrespondenz
30
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Upward Inheritance
Ausgangspunkt: Schemazusicherungen mit extensionalen Korrespondenzen
Integrationsregeln
betrachtet ausschliesslich objektorientierte Klassenhierarchien
A=B
A/B
A⊇B
A
B
A∩B
oder
A≠B
A∪B
A
B
Middleware für Verteilte
Informationssysteme - WS03/04
31
AG Heterogene Informationssysteme
Generic Integration Model – GIM
Analyse der extensionalen Beziehungen für
beteiligte Schemata führen zu einer Zerlegung von
Klassen in sog. Basisextensionen
GIM Matrix
Mengen von Objekten, die gleichzeitig Mitglieder
derselben Klassen sind
Betrachtet werden nun die den Klassen
zugeordneten Attribute
Menge von Extensionen mit einer gemeinsamen
Attributmenge
-> Klasse K
K1 besitzt Teilmenge der Extensionen von K2,
K1 besitzt Obermenge der Attribute von K2
-> K1 ist Subklasse von K2
E1
E2
X
X
A2
X
X
A3
X
A1
E3
...
En
...
X
X
...
X
...
X
...
...
Am
X
Ableitung eines integrierten Schemas
Permutation von Zeilen und Spalten zur Bestimmung
von formalen Konzepten
"maximale mit Kreuzen ausgefüllte Rechtecke"
Ableitung einer Klassenhierarchie
32
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Abbildungssprache
Nachteile herkömmlicher Verfahren
Betrachten vor allem extensionale Konflikte, in homogenem Datenmodell
Unterstützen keine zufriedenstellende Auflösung struktureller Konflikte
Updateproblematik
Überwindung der Heterogenität durch Entwicklung
einer Abbildungssprache
Integration mehrerer Schemata, die möglicherweise in verschiedenen
Datenmodellen erstellt sind, d. h., Abbildung von Daten zwischen heterogenen
Schemastrukturen
Deskriptive Sprache, d. h. deklarative Abbildungsspezifikationen
Technologieunabhängigkeit der Abbildungsspezifikation
Unterstützung von sowohl Retrieval als auch Update
(vergleiche: View-Update-Problematik)
33
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
BRIITY
Forschungsansatz einer Abbildungssprache
AG DBIS, FB INF, UNI KL
wurde entworfen, um vorgenannte Probleme zu überwinden
unterstützt bi-direktionale Abbildungen
deskriptiv
technologieunabhängig
unterstützt Benutzer-spezifizierte Update-Anweisungen
besonderes Anliegen: Unterstützung von objektorientierten Zielschemata, wobei
Abbildung mengenorientiert und deskriptiv (d. h. wie in relationalen Systemen)
beschrieben kann
Unterstützung von EXPRESS als Ziel-Datenmodell
34
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Struktur einer Abbildungsspezifikation
Z
Q (rel. DB)
item
name
created_by
ITEM
name
PERS
created_by
key
name
BEGIN
MAPPED_SCHEMAS
ts := target_schema <- rel_db:= rel_db@rel_dbs@localhost;
END_MAPPED_SCHEMAS;
INCLUDE
LIB /usr/users/sauter/libstring.a;
INC string.h;
END_INCLUDE;
TYPE_MAPPING
MAP ts.DM <- rel_db.US$;
ts.DM <- 0.67 * rel_db.US$;
rel_db.US$ <- 1.5 * ts.DM;
END_MAP;
END_TYPE_MAPPING;
...
35
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Struktur einer Abbildungsspezifikation (Forts.)
Allgemeine Struktur einer Abbildungsspezifikation (Forts.)
...
ENTITY_MAPPING
MAP item <-_item := rel_db.ITEM, _pers:= rel_db.PERS;
ON_RETRIEVE
name <- _item.name;
created_by <- _pers.name;
IDENTIFIED_BY(_item.name, _pers.key);
WHERE (_item.created_by = _pers.key);
ON_UPDATE ...
ON_INSERT ...
ON_DELETE ...
END_MAP;
END_ENTITY_MAPPING;
END.
36
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Elementare mengenorientierte Abbildungsregeln
Grundlegender Aufbau einer MAP-Anweisung
Ziel
item
OID
name
created_by
Abbildung
MAP item <- _item := rel_db.ITEM,
_pers:= rel_db.PERS;
ON_RETRIEVE
IDENTIFIED_BY (_item.name, _pers.key);
name <- _item.name;
created_by <- _pers.name;
WHERE (_item.created_by = _pers.key);
Quelle
SELECT _item.name, _pers.name
FROM ITEM _item, PERS _pers
WHERE _item.created_by =
_pers.key
Middleware für Verteilte
Informationssysteme - WS03/04
37
AG Heterogene Informationssysteme
Bedingte Abbildung
Abbildung mehrerer Quellinstanzen auf eine Zielinstanz oder
Konvertierung von Datentypen
item
Z
assembly_type : STRING
condition
Q
(rel. DB)
ITEM
assembly_type: INTEGER
MAP item <- _item:=rel_db.ITEM;
ON_RETRIEVE
assembly_type <- IF (_item.assembly_type = 512) THEN “manufacturing”
ELSE IF (_item.assembly_type = 918) THEN “configurable”
ELSE ...;
38
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Referentielle Integrität in relationalen Zielschemata
Z
ITEM
item
person
ITEM-PERS
name approved_by
key name
item
pers
Q
(oo. DB)
name
PERSON
id
MAP item <- _item:=oo_db.ITEM, _ip:=oo_db.ITEM-PERS, _pers:=oo_db.PERSON;
ON_RETRIEVE
name <- _item.name;
approved_by <- CASCADED_MAP person.key
WITH_ID _item.INV(_ip:item).pers.id
IDENTIFIED_BY (_item.name);
END_MAP;
Middleware für Verteilte
Informationssysteme - WS03/04
39
AG Heterogene Informationssysteme
Abbildung netzartiger Strukturen
betrachte Beispiel auf vorangegangener Folie, wobei jedoch nun auch Z
objektorientiert sein soll
Z
MAP person <- oo_db.PERSON;
ITEM
item
person
name
ITEM-PERS
name approved_by
name
item
ON_RETRIEVE
pers
name <- oo_db.PERSON.id;
IDENTIFIED_BY (oo_db.PERSON.id);
END_MAP;
MAP item <- _item:=oo_db.ITEM, _ip:=oo_db.ITEM-PERS, _pers:=oo_db.PERSON;
ON_RETRIEVE
Q
(oo. DB)
PERSON
id
name <- _item.name;
approved_by <- CASCADED_MAP person
WITH_ID _item.INV(_ip:item).pers.id
IDENTIFIED_BY (_item.name);
END_MAP;
40
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Generalisierung
Q
Teil
SachNr
Teil
SachNr
Konstrukteur
...
Z
Einzelteil
Konstrukteur
MAP Teil <- _t := oo_db.Teil;
ON_RETRIEVE
SachNr <- _t.SachNr;
IDENTIFIED_BY (OID(_t));
END_MAP;
MAP Einzelteil SUBTYPE_OF(Teil) <- _t := oo_db.Teil;
ON_RETRIEVE
Konstrukteur <- _t.Konstrukteur;
IDENTIFIED_BY (OID(_t));
END_MAP;
...
Middleware für Verteilte
Informationssysteme - WS03/04
41
AG Heterogene Informationssysteme
Abbildung von Aggregaten
dienen der Abbildung mengenwertiger Attribute sowie für NEST/UNNEST
<set valued attribute mapping> ::=
[NEST] (LIST|SET|ARRAY) ’(’<right hand side of attr mapping or nested set valued mapping>’)’
[WHERE <DNF expression>]
[ORDER_BY <sort expression>]
[GROUPED_BY <source attr identification>].
Beispiel:
MAP Kaufauftrag <- _k:= oo_db.Kundenwunsch;
Kaufauftrag
ON_RETRIEVE
Z
Kunde
Auftragsbez: SET
Kunde <- _k.Kunde;
Auftragsbez <- SET (_k.Auftraege * 98,5%)
WHERE (_k.Auftraege > 20);
Kundenwunsch
IDENTIFIED_BY (OID(_k));
Kunde
Auftraege: LIST
END MAP
Q
42
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
NEST-Operation
Z
assembly
Q
(rel. DB)
ITEM
name
items: SET OF STRING
name
assembly
MAP assembly <- _item:= rel_db.ITEM;
ON_RETRIEVE
name <- _item.assembly;
items <- NEST (_item.name)
GROUPED_BY (_item.assembly);
Middleware für Verteilte
Informationssysteme - WS03/04
43
AG Heterogene Informationssysteme
UNNEST-Operation
Z
Kaufauftrag
Kundenwunsch
Kunde
Auftragsbez
Preis
Sachbearbeiter
Kunde
Auftraege: LIST
Preise: LIST
Sachbearbeiter: SET
Q
(oo. DB)
MAP Kaufauftrag <- _k:=oo_db.Kundenwunsch;
ON_RETRIEVE
FOR_ALL (_unnest_auftrag := UNNEST (_k.Auftraege),
_unnest_preis : = UNNEST (_k.Preise))
FOR_ALL (unnest_sachbearbeiter := UNNEST (_k.Sachbearbeiter))
Kunde <- _k.Kunde;
Auftragsbez <- _unnest_auftrag;
Preis <- _unnest_preis;
Sachbearbeiter <- _unnest_sachbearbeiter;
IDENTIFIED_BY (OID(_k);
END_MAP;
44
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Regeln zur Propagierung von Updates
<update_clause> ::=
’ON_UPDATE’ (<update_statement> {’,’ <update_statement>}
|
’INVERSE_TO_RETRIEVE’ ’;’).
<update_statement> ::=
<target_attribute_id> ’OF’ <update_statement_body_list>
| <update_statement_for_set_valued_target_attributes>.
<update_statement_body> ::=
(’NEW’|’MODIFIED’|’DELETED’) ’:’ (’RESTRICTED’|’INVERSE_TO_RETRIEVE’|<assign_stmnt_list>)’;’.
<assign_statement> ::=
’ASSIGN’ <conjunction_of_assgn_statement_expr>
[’WHERE’ <where_clause_containing_bool_expr_of_assgn_statement>].
<assign_statement_expr> ::=
[’NOT_’]’IS_INSTANCE’’(’<source_entity_id>[<with_instance_id>][':'<attr_value_expr_list>]’)’
| <is_element_expr>
| <has_value_expr>.
Middleware für Verteilte
Informationssysteme - WS03/04
45
AG Heterogene Informationssysteme
Update-Operation
Z
Q (rel. DB)
item
ITEM
name
created_by
name
PERS
created_by
key
name
ON_UPDATE created_by OF
NEW:
ASSIGN ( IS_INSTANCE(_item: name = ts.item.name, created_by = ?1) AND
MODIFIED:
ASSIGN ( IS_INSTANCE(_pers: name = ts.item.created_by));
IS_INSTANCE(_pers: key = ?1, name = ts.item.created_by));
ASSIGN ( IS_INSTANCE(_item: name = ts.item.name, created_by = ?1))
WHERE ( IS_INSTANCE(_pers: key = ?1, name = ts.item.created_by));
DELETED:
ASSIGN ( NOT_IS_INSTANCE(_pers: key = ?1))
WHERE ...;
46
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Update-Regeln für mengenorientierte Ziel-Attribute
Z
Kaufauftrag
Kunde
Bezeichnung: LIST
Kundenwunsch
MAP Kaufauftrag <- _k:=oo_db.Kundenwunsch;
ON_RETRIEVE ...
ON_UPDATE ...
ON_INSERT
FOR EACH_ELEMENT_VALUE
_b OF Kaufauftrag.Bezeichnung DO
ASSIGN
IS_INSTANCE (_k: Kunde = Kaufauftrag.Kunde,
Auftrag = (_b / 98.5%));
END_FOR;
END_MAP;
Kunde
Auftrag
Q
Middleware für Verteilte
Informationssysteme - WS03/04
47
AG Heterogene Informationssysteme
Multiple Instanzierung
Partitionen
Z
cable
end_1
end_2
MAP end_of_cable <-
CABLE
end_of_cable
ID
Q
(rel. DB)
ID
ID_of_end_1
ID_of_end_2
PARTITION _part_end1: _c:=rel_db.CABLE,
PARTITION _part_end2: _c:=rel_db.CABLE;
PARTITION _part_end1:
ON_RETRIEVE
ID <- _c.ID_of_end_1;
IDENTIFIED_BY (_c.ID);
PARTITION _part_end2:
ON_RETRIEVE
ID <- _c.ID_of_end_2;
IDENTIFIED_BY (_c.ID);
END_MAP;
...
48
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Multiple Instanzierung (Forts.)
Partitionen (Forts.)
Z
cable
end_1
end_2
Q
(rel. DB)
CABLE
end_of_cable
ID
ID
ID_of_end_1
ID_of_end_2
...
MAP cable <- _c:=rel_db.CABLE;
ON_RETRIEVE
end_1 <- CASCADED_MAP end_of_cable
PARTITION _part_end1
WITH_ID (_c.ID, _c.ID_of_end_1);
end_2 <- CASCADED_MAP end_of_cable
PARTITION _part_end2
WITH_ID (_c.ID, _c.ID_of_end_2);
IDENTIFIED_BY (_c.ID);
END_MAP;
Middleware für Verteilte
Informationssysteme - WS03/04
49
AG Heterogene Informationssysteme
Integration mehrerer Quell-Schemata
Überlappende Anwendungsbereiche → DB-übergreifende Verbundoperationen
BEGIN
MAPPED_SCHEMAS
z := integriert <- q1 = teile_db@db2@host1,
q2 = pers_db@oracle@host2;
END_MAPPED_SCHEMAS;
ENTITY_MAPPING
MAP Teil <-_t := q1.Teil, _p:= q2.Pers;
Q1
ON_RETRIEVE
SachNr <- _t.SNR;
erstellt_von <- _p.Name;
...
WHERE (_t.erstellt_von = _p.PersNr);
...
END_ENTITY_MAPPING;
END.
50
AG Heterogene Informationssysteme
Teil
SachNr
erstellt_von
Teil
SNR
erstellt_von
Z
Pers
PersNr
Name
Q2
Middleware für Verteilte
Informationssysteme - WS03/04
Identische Anwendungsbereiche →
kontextabhängige Abbildung
MAP Teil <-
Teil
SachNr
...
PARTITION db_q1: _t := q1.Teil,
PARTITION db_q2: _i := q2.item;
Z
PARTITION db_q1
ON_RETRIEVE
SachNr <- _t.SNR;
IDENTIFIED_BY(_t.SNR);
Q1
...
PARTITION db_q2
Teil
SNR
...
item
id
...
Q2
ON_RETRIEVE
SachNr <- _i.id;
IDENTIFIED_BY(_i.id);
END_ENTITY_MAPPING;
...
END.
51
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Globale Identität
MAP Teil <-
PARTITION db_q1: _t := q1.Teil,
PARTITION db_q2: _i := q2.item;
PARTITION db_q1
ON_RETRIEVE
Q1
SachNr <- _t.SNR;
Teil
Konstr_Bereich <- “EntwicklungPkw”
SNR
IDENTIFIED_BY(_t.SNR);
Gewicht
GLOBAL_IDENTITY (_t.SNR,
“EntwicklungPkw”);
...
PARTITION db_q2
ON_RETRIEVE
item
SachNr <- _i.id;
id
Konstr_Bereich <- _i.department
department
IDENTIFIED_BY(_i.id, _i.department);
Q2
END_ENTITY_MAPPING;
...
END.
52
AG Heterogene Informationssysteme
Teil
SachNr
Kontr_Bereich
Z
Middleware für Verteilte
Informationssysteme - WS03/04
Zusätzliche Integritätsbedingungen
IBs für Konflikte auf Instanzenebene: ECA-Regeln
Checkin-Abhängigkeiten
Z
CABLE
cable
end_of_cable
end_1
end_2
ID
ID_of_end_1
ID_of_end_2
ID
Q
(oo. DB)
INTEGRITY_CONSTRAINTS
DEPENDENCIES
GROUP
cable, end_of_cable
WHERE (cable.end_1 = OID(end_of_cable)) AND (cable.end_2 = OID(end_of_cable))
END_DEPENDENCIES;
END_INTEGRITY_CONSTRAINTS;
Initialisierung von Primärschlüsselattributen in Quellschemata
Middleware für Verteilte
Informationssysteme - WS03/04
53
AG Heterogene Informationssysteme
Ausführungsmodell
object buffer
e. g.,
ACCESS item
mapping definition
(specified in BRIITY and
stored in an ASCII file)
mapping layer
parser
BRIITY’algebra
e. g.,
MAP item
graph
assembly
pool of algebra graphs
e. g.,
ACCESS ITEM
DBs
54
AG Heterogene Informationssysteme
...
Middleware für Verteilte
Informationssysteme - WS03/04
Ausführungsmodell (Forts.)
Parsen der Abbildungsspezifikation
Anfragetransformation
Auswahl der relevanten Abbildungsgraphen
für die Bearbeitung einer Query sind die Abbildungsgraphen relevant, die für die
Erzeugung der in der Query angesprochenen Objekttypen des Zielschemas
verantwortlich sind
Abbildungsgraph wird anhand des Wurzelknotens selektiert
Assemblierung
Transformation in Abbildungsgraph (Algebra-Graph)
Blattknoten: Operationen zum Zugriff auf die DBSs
innere Knoten: Algebraoperatoren
Wurzelknoten: Operator zum Erzeugen von Zielinstanzen
Query-Graph und Abbildungsgraph werden zusammengefügt
Wurzel-Operator des Abbildungsgraphen und Zugriffsoperator des Query-Graphen
werden verschmolzen
Optimierung und Ausführung des assemblierten Graphen durch MappingLayer
55
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04
Zusammenfassung
Schemaabbildung und -integration
Zielvorstellung
Bereitstellung eines integrierten Schemas
Bearbeitung der Zieldaten mit generischen Operatoren
Unterstützung eines breiten Spektrums von Quellsystemen und Auswahlmöglichkeit
hinsichtlich der Nutzung eines Zielsystems
Schemaintegrationstechniken
Abbildungssprache BRIITY
löst die wesentlichen Probleme struktureller Heterogenität
unterstützt sowohl relationale als auch objektorientierte Modelle auf beiden Seiten
(Quellsysteme, Zielsystem)
erlaubt bi-direktionale Abbildung und unterstützt so beliebige Update-Operationen auf den
Zieldaten
hoher Spezifikationsaufwand
56
AG Heterogene Informationssysteme
Middleware für Verteilte
Informationssysteme - WS03/04