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