Frühjahrsemester 2013 CS243 Datenbanken Kapitel 3: Informationsintegration* H. Schuldt * Folien basieren zum Teil auf Unterlagen von Dr. Diego Milano Warum Informationsintegration? • Aus Kapitel 1: A Data Warehouse is a subject-oriented, integrated, non-volatile, and time variant collection of data in support of managements decisions • Integration muss auf verschiedenen Ebenen stattfinden – Intensionale Ebene • Integration auf Schemaebene • wird auch als „Schemaintegration“ bezeichnet – Extensionale Ebene • Integration auf Instanzebene • wird auch als „Datenintegration“ oder „Data Cleaning“ bezeichnet FS 2013 Datenbanken (CS243) – Informationsintegration 3-2 1 Data Warehousing & Informationsintegration Operationale Datenbanksysteme Externe Systeme ... ... OLTP Informationsintegration Data Warehouse OLAP FS 2013 Datenbanken (CS243) – Informationsintegration 3-3 Informationsintegration Ziel der Integration • Mehrere Datenquellen einem Benutzer so zu präsentieren, als wäre es nur eine einzige Datenquelle Mögliche Probleme • Heterogenität der beteiligten Datenquellen • Daten werden physisch verteilt gespeichert – Redundanz: identische Duplikate vs. widersprüchliche Daten • Autonome Systeme – Einzelne Schemata können sich ändern – Integration muss dann jeweils erneut durchgeführt werden FS 2013 Datenbanken (CS243) – Informationsintegration 3-4 2 Architekturen • Wiederholung aus cs241 / cs261: Architektur eines DBMS A1 A2 Ext. Schema1 A3 A4 Ext. Schema2 A5 Anwendungen Ext. Schema3 Externe Ebene Logische Datenunabhängigkeit Konzeptuelle (logische) Ebene Logisches Schema Physische Datenunabhängigkeit Interne (physische) Ebene Internes Schema FS 2013 Datenbanken (CS243) – Informationsintegration 3-5 Virtuelle Integration • • • Daten bleiben in den beteiligten Quellsystemen Die Extension des integrierten Datenbestandes ist nicht materialisiert Daten werden bei jedem Zugriff zusammengeführt – Anfragen an das globale Schema werden durch Daten aus den lokalen Quellen bedient Integriertes (globales) Schema lokales Schema1 lokales Scheman Externes Schema1 Externes Scheman Logisches Schema1 Extension1 Internes Schema1 DBMS1 FS 2013 ... Logisches Scheman Internes Scheman Extensionn DBMSn Datenbanken (CS243) – Informationsintegration 3-6 3 Virtuelle Integration – Eigenschaften • Vorteile – Updates, die auf den lokalen Quellen durchgeführt werden, sind sofort in der (virtuellen) integrierten DB sichtbar – Keine Redundanz und damit auch keine Konflikte durch Synchronisation mehrerer Extensionen • Nachteile – Constraints auf dem globalen Schema können nicht oder nur mit grossem Aufwand umgesetzt und erzwungen werden – Die Bearbeitung von Anfragen kann sehr aufwändig und ineffizient sein (abhängig von der Komplexität der Abbildung von lokalen auf globale Schemata) – Das Propagieren von Updates vom globalen Schema zu den lokalen Schemata kann komplex (oder sogar nicht eindeutig) sein Ø vgl. Änderungsoperationen auf Views (cs241/cs261) – Problematische Behandlung von Inkonsistenzen über mehrere lokale Extensionen FS 2013 Datenbanken (CS243) – Informationsintegration 3-7 Materialisierte Integration • • • Daten werden zusätzlich in das integrierte System kopiert Es gibt also eine weitere Extension (die des integrierten Schemas) – Anfragen an das globale Schema werden durch diese Extension bedient Typische Konfiguration von Data Warehouses Integrierter Datenbestand Integriertes (globales) Schema lokales Schema1 lokales Scheman Externes Schema1 Externes Scheman Logisches Schema1 Extension1 Internes Schema1 DBMS1 FS 2013 ... Logisches Scheman Internes Scheman Extensionn DBMSn Datenbanken (CS243) – Informationsintegration 3-8 4 Materialisierte Integration – Eigenschaften • Vorteile – Anfragen können aus dem integrierten Datenbestand bedient werden (effektiver als bei der virtuellen Integration) – Komplexe Transformationen zwischen lokalen Schemata und globalem Schema können einfacher angewandt werden • Einmalige Integration (bzw. zu wohldefinierten Zeitunkten), nicht bei jeder Anfrage • Globales Schema kann signifikant von lokalen Schemata abweichen • Nachteile – Bei lokalen Updates sind lokale Datenbestände und integrierter Datenbestand nicht mehr synchron (Ø evtl. widersprüchliche Daten). Periodische Auffrischungen des integrierten Datenbestands nötig – Grössere Speicheranforderungen durch Replikation FS 2013 Datenbanken (CS243) – Informationsintegration 3-9 Heterogenität … • Syntaktische Heterogenität: – Unterschiede in der Darstellung gleicher Sachverhalte (z.B. UNICODE vs. ASCII, little endian vs. big endian, 42 vs. zweiundvierzig) • Datenmodellheterogenität: – Verwendung unterschiedlicher Datenmodelle für die Darstellung gleicher Sachverhalte (siehe Kapitel 2) – Flat files, XML, verschiedene Datenbanktypen, proprietäre Elemente in Datenmodellen – z.B. relationales Datenmodell vs. objektorientiertes Datenmodell, d.h. Modellierung von Person als Relation oder als Klasse FS 2013 Datenbanken (CS243) – Informationsintegration 3-10 5 … Heterogenität … • Strukturelle Heterogenität: – Unterschiede in der Repräsentation von Information – Zwei Schemata sind unterschiedlich, obwohl sie den gleichen Ausschnitt aus der realen Welt erfassen , z.B. Person (Name, Adresse) vs. Person (Vorname, Nachname, Strasse, Hausnummer, Ort, PLZ) – Verschiedene Repräsentation derselben Information, z.B. Speicherung des Preises einer Ware in €, CHF, $, £ oder ¥ – Andere Ursache: • Normalisierung von Relationen • Optimierung für bestimmte Arten von Joins, etc. FS 2013 Datenbanken (CS243) – Informationsintegration 3-11 … Heterogenität … • Schematische Heterogenität – Sonderfall der strukturellen Heterogenität – Verwendung unterschiedlicher Elemente des Datenmodells zur Modellierung derselben Sachverhalte, z.B. • Modellierung eines Sachverhalts als Attribut … • … oder als eigenständige Relation FS 2013 Datenbanken (CS243) – Informationsintegration 3-12 6 … Heterogenität • Semantische Heterogenität: – Unterschiede der Bedeutung der verwendeten Begriffe und Konzepte – die korrekte Interpretation hängt dabei zumeist vom Kontext ab • z.B. Homonyme Bank (Name, Bilanzvolumen, ...) vs. Bank (Ort, Anzahl_Sitzplätze, ...) • z.B. Synonyme Bank (Name, Bilanzvolumen, ...) vs. Geldinstitut (Bezeichnung, Gewinn, ...) • z.B. Hypernyme Sportler (Name, Verein, ...) vs. Fussballer (Name, Verein, ...) – Nicht oder nur partiell kompatible Domänen, z.B. Student (MatNr, Name, …) und Student (MatNr, Name, …) wobei eine Relation alle Basler Studierenden enthält, die andere alle Informatik-Studierenden FS 2013 Datenbanken (CS243) – Informationsintegration 3-13 3.1 Schemaintegration Präzisierung des Integrationsproblems auf intensionaler Ebene • Gegeben sind n (in der Regel heterogene) Quellschemata L1, …, Ln • Integration dieser n heterogenen Schemata erfordert – Identifikation von Korrespondenzen (Gemeinsamkeiten) zwischen diesen Quellschemata – Entwurf eines integrierten globalen Schemas, das von den n Quellschemata abstrahiert (und das evtl. Auf bestimmte Anwendungen zugeschnitten ist, wie z.B. analytische Anfragen im Data Warehousing) – Die formale Spezifikation von Abbildungsvorschriften zwischen den einzelnen Quellschemata und dem integrierten Schema • • • Schemaintegration ist eine komplexe intellektuelle Entwurfsaufgabe Es gibt vereinzelte Werkzeuge für die (zumindest semi-automatische) Unterstützung der Schemaintegration – jedoch in den meisten Fällen im Status von Forschungsprototypen Schemaintegration erfordert sowohl Kenntnisse im Datenbankentwurf als auch spezielle Kenntnisse über die Anwendungswelt, um die zu integrierenden Schemata zu verstehen FS 2013 Datenbanken (CS243) – Informationsintegration 3-14 7 Wrapper-basierte Architekturen • Ein Wrapper ist eine Software, die ein anderes Softwaresystem einkapselt und andere als die ursprünglich vorhandenen Schnittstellen nach aussen anbietet – Technische Unterschiede werden verborgen – In gewissem Masse können dadurch auch Unterschiede der verwendeten Datenmodelle verborgen werden (alle Quellen werden in einheitlicher Repräsentation dargestellt) Kanonisches Modell Wrapper Wrapper Wrapper Wrapper Altanwendung RDBMS OODBMS XML ? FS 2013 Datenbanken (CS243) – Informationsintegration <author id="mf"> <first->Max</first> <last>Frisch</last> </author> <book> <title>…</title> </book> 3-15 Schemaintegration Integriertes (globales) Schema SchemaAbbildung ... lokales Schema L1 DBMS1 FS 2013 lokales Schema Ln DBMSn Datenbanken (CS243) – Informationsintegration 3-16 8 Mediator • Ein Mediator interagiert mit den einzelnen Wrappern und stellt eine vereinheitlichte globale Sicht über den lokalen Schemata zur Verfügung Mediator Schema-Abbildung Wrapper Wrapper Wrapper Wrapper Altanwendung RDBMS OODBMS XML ? FS 2013 <author id="mf"> <first->Max</first> <last>Frisch</last> </author> <book> <title>…</title> </book> Datenbanken (CS243) – Informationsintegration 3-17 Schemaintegration: Schritte 1. Analyse, Normalisierung und Abstraktion – Verwendung einer gemeinsamen Sprache / Repräsentation zur konzeptuellen Modellierung (z.B. ER) 2. Auswahl einer Integrationsstrategie – Festlegen, wie (und in welcher Reihenfolge) Schemata verglichen werden 3. Schema Matching – Beziehungen zwischen lokalen Schemata identifizieren 4. Schema Alignment – Konflikte (durch Heterogenität) zwischen beteiligten Schemata auflösen 5. Schema Fusion – Globales Schema erstellen Ø Ergebnis ist eine paarweise Abbildung zwischen den lokalen Schemata und dem globalen Schema FS 2013 Datenbanken (CS243) – Informationsintegration 3-18 9 Schritt 1: Analyse • • • Ein vertieftes Verständnis der lokalen Datenquellen (zunächst unabhängig voneinander) erwerben Ergebnis ist ein konzeptuelles Schema in der Sprache, die für alle lokalen datenquellen gewählt wird Diese Aktivität besteht oftmals aus dem Re-Engineering des konzeptuellen Schemas – Im Gegensatz zur Abbildung ERM ins Relationenmodell ist in der Analyse zumeist nur die logische Repräsentation (oder evtl. sogar nur das physische Schema) gegeben, aus dem dann die konzeptuelle Repräsentation wieder abgeleitet werden muss – Ergebnis: genau und vollständiges (und dokumentiertes) konzeptuelles Schema der lokalen Datenquelle FS 2013 Datenbanken (CS243) – Informationsintegration 3-19 Probleme der Analysephase • Informationen über die Anwendungswelt sind unter Umständen nur schwer zu bekommen – Geschäftsregeln nicht explizit formuliert bzw. nicht zugänglich – Wichtigste Informationsquellen in der Praxis: lokale Domänenexperten • Analog ist es zumeist auch schwierig, Informationssysteme eines Unternehmens zu verstehen – Altsysteme ohne Datenbank, sondern mit proprietären Dateiformaten – Selbst bei der Verwendung von Datenbanken • Keine oder ungenügende Dokumentation, d.h., die Daten sind oftmals die einzige „Dokumentation“ • Keine oder ungenügende Normalisierung • Integritätsbedingungen nicht dokumentiert, zum Teil nicht einmal in der Datenbank erzwungen (bestenfalls in der Anwendung implementiert) • Gewachsene Systeme (d.h. Schema wurde mehrfach erweitert, ergänzt, modifiziert) und ist damit nur schwer verständlich FS 2013 Datenbanken (CS243) – Informationsintegration 3-20 10 Analyse, Normalisierung, Abstraktion CREATE TABLE product( cat_desc VARCHAR(255), cat_name VARCHAR(255), cat_code INTEGER, prod_desc VARCHAR(255), prod_name VARCHAR(255), prod_code INTEGER PRIMARY KEY ); prod_desc cat_desc Product cat_name prod_name prod_code cat_code Normalisierung und Korrektur: Das Ausgangsschema ist nicht normalisiert und stellt die Beziehungen der Anwendungswelt nicht korrekt dar. Description/String CREATE TABLE category( cat_desc VARCHAR(255), cat_name VARCHAR(255), cat_code INTEGER PRIMARY_KEY, ); Product CREATE TABLE product( prod_desc VARCHAR(255), prod_name VARCHAR(255), prod_code INTEGER PRIMARY KEY cat_code INTEGER REFERENCES category(cat_code) ); belongs_to Name/String Code / integer (1,1) (0,n) Category Description / String Name/String Code / String FS 2013 Datenbanken (CS243) – Informationsintegration 3-21 Schritt 2: Integrationsstrategie • • Der Vergleich vieler verschiedener Schemata in einem Schritt ist nicht immer möglich bzw. nicht sehr effizient (gerade bei grossen, sehr heterogenen Schemata) Unterschiedliche Ansätze, um strukturiert vorzugehen: Integration process binary ladder FS 2013 n-ary balanced single step Datenbanken (CS243) – Informationsintegration iterative 3-22 11 Schritt 3: Schema Matching • Vergleichende Analyse der unterschiedlichen konzeptuellen Schemata mit dem Ziel … – gemeinsame Konzepte (und Beziehungen zwischen diesen Konzepten) zu identifizieren – Unterschiede wie z.B. strukturelle und semantische Konflikte festzustellen – Abhängigkeiten zwischen (Teil-)Schemata zu identifizieren (um Teilschemata zusammen zu führen) FS 2013 Datenbanken (CS243) – Informationsintegration 3-23 Strukturelle Konflikte • • Beispiel: Book ist ein gemeinsames Konzept Publisher und die Beziehung zu Book besitzen einen strukturellen Konflikt – in einem Modell als Attribut repräsentiert, im anderen als Entitätstyp Title Book Title ISBN Book published_by Publisher Publisher_address FS 2013 ISBN Address Publisher Datenbanken (CS243) – Informationsintegration Name 3-24 12 Semantische Konflikte … • • • Die Attribute Age und Birthdate modellieren zwei semantisch unterschiedliche Konzepte Allerdings gibt es eine offensichtliche Beziehung zwischen diesen Konzepten, so dass der Konflikt einfach aufgelöst werden kann Die Auflösung des Konflikts erfordert die Restrukturierung eines der beiden Schemata, um die Konzepte zu vereinheitlichen – das bedeutet, dass eines der beiden konzeptuellen Schemata transformiert werden muss – diese Transformation muss dann auch auf der Extension ausgeführt werden Birthdate Age Citizen SSN FS 2013 Citizen SSN Datenbanken (CS243) – Informationsintegration 3-25 … Semantische Konflikte • Homonyme: • Synonyme: zwei Konzepte besitzen denselben Namen, aber unterschiedliche Bedeutungen zwei Konzepte haben dieselbe Bedeutung, aber unterschiedliche Namen Äquivalent, aber “linguistischer Konflikt” Æ Synonyme Worker Employee (1,1) (1,1) assigned_to assigned_to (1,n) (1,n) Department identisch FS 2013 Department inkompatibel Teacher (1,1) teaches (1,n) Class Object (1,1) instance_of (1,n) Class Nicht äquivalent Æ Homonyme Datenbanken (CS243) – Informationsintegration 3-26 13 Vergleich von Schemata • Identität: ein Konzept ist zweimal auf gleiche Art und Weise modelliert – sowohl aus struktureller als auch aus semantischer Sicht • Äquivalenz: zwei Konzepte besitzen dieselbe Semantik, es gibt jedoch strukturelle Konflikte (strukturelle Unterschiede) • Vergleichbarkeit: Konzepte sind mit unterschiedlicher Struktur und Semantik modelliert, stellen aber denselben Ausschnitt aus der Anwendungswelt dar • Inkompatibilität: Der Ausschnitt aus der Anwendungswelt unterscheidet sich. Die entstehenden Konflikte sind nicht (oder nur sehr schwer) zu beheben FS 2013 Datenbanken (CS243) – Informationsintegration 3-27 Beispiel: Unterschiedliche, aber vergleichbare Schemata Employee (1,1) Employee (1,1) participates_in assigned_to (1,n) (1,n) Project Department (1,1) belongs_to (1,n) Department FS 2013 Datenbanken (CS243) – Informationsintegration 3-28 14 Beispiel: nicht vergleichbare Schemata • • Die Semantik der beiden Schemata scheint gleich zu sein Allerdings sind die Kardinalitäten unterschiedlich, so dass damit auch die Schemata inkompatibel sind Professor Professor Name (0,1) (2,n) teaches teaches (1,n) Course Name (1,n) Course Course_ID FS 2013 Course_ID Datenbanken (CS243) – Informationsintegration 3-29 Beziehungen zwischen (Teil-)Schemata Schema i Title ISBN Address Name FS 2013 Schema k Book Book published_by written_by Publisher works_for Author Datenbanken (CS243) – Informationsintegration Title ISBN Address Name 3-30 15 Schritt 4: Schema Alignment • • • Ziel dieses Schritts ist es, sie Konflikte aufzulösen, die im vorigen Schritt identifiziert wurden Hierzu müssen die lokalen Schemata transformiert werden – Ändern von Entitätstypen (Namen und Typen von Attributen) – Ändern von Beziehungen zwischen Entitätstypen / funktionale Abhängigkeiten – Ändern von Kardinalitäten / Integritätsbedingungen Dabei ist zu beachten: – Nicht alle Konflikte lassen sich auflösen, da Informationen auf widersprüchliche Arten darstellt sein können – In diesem Fall müssen Domänenexperten (Anwendungsexperten) entscheiden, welche Sicht der Anwendungswelt sie im integrierten Schema unterstützen möchten – Im Zweifelsfall werden solche Schemata bevorzugt, die die spätere Anwendung (z.B. Data Warehousing-Anfragen) besser unterstützen FS 2013 Datenbanken (CS243) – Informationsintegration 3-31 Schritt 5: Schema Fusion • Aufeinander angeglichene (‚aligned‘) Schemata werden in einem einzigen integrierten Schema zusammen geführt – Je nach Wahl in Schritt 2 kann das für alle Schemata auf einmal passieren, oder inkrementell • Vorgehen – Gemeinsame Konzepte werden zusammengeführt (z.B. Erweiterung der Attributliste) – Unterschiedliche Konzepte werden zunächst unabhängig voneinander in das integrierte Schema eingebracht, allerdings mit dem Ziel, falls möglich Beziehungen zwischen (bisher disjunkten) Teilen zu identifizieren und in das integrierte Schema aufzunehmen FS 2013 Datenbanken (CS243) – Informationsintegration 3-32 16 Alignment und Fusion • Beide Schritte werden in der Praxis verzahnt und iterativ ausgeführt – Konflikte zwischen zwei lokalen Schemata werden aufgelöst – Ein initiales integriertes Schema wird erstellt – Nach und nach wird das integrierte Schema mit weiteren lokalen Schemata fusioniert • Ergebnis – Integriertes Schema (unter Berücksichtigung aller lokaler Schemata) – Schema-Abbildung (Mapping) FS 2013 Datenbanken (CS243) – Informationsintegration 3-33 Schema-Abbildung (Mapping) • Eine Schema-Abbildung besteht aus zwei Teilen – einer Menge von Korrespondenzen zwischen Elementen (Attributen, Entitätstypen, Beziehungen) zweier Schemata – Einer Beschreibung des Integrationsprozesses • Korrespondenzen – zwischen Attributen werden auch als Wertkorrespondenzen bezeichnet – daraus abgeleitet werden Korrespondenzen zwischen Entitätstypen und Beziehungen (auch Schemakorrespondenzen genannt) • Je nach Heterogenitätsgrad der zu integrierenden lokalen Schemata lassen sich Abbildungen mehr oder weniger gut formal beschreiben • Ein Mapping beschreibt sowohl die nötigen Anpassungen auf intensionaler Ebene als auch die Transformationen, die auf extensionaler Ebene nötig werden – Ziel ist es, jedes Konzept in jedem lokalen Schema durch eine Kette von Abbildungen in das globale Schema zu überführen FS 2013 Datenbanken (CS243) – Informationsintegration 3-34 17 3.2 Datenintegration • • • Nach der Integration der Schemata (intensionale Ebene) müssen in einem nächsten Schritt in der Regel auch die eigentlichen Daten (extensionale Ebene) integriert werden. Man spricht hier auch von Datenintegration Dazu gehört das Identifizieren von Datensätzen, die dasselbe Objekt der realen Welt darstellen (d.h. Datensätzen, die in zwei oder mehreren lokalen Datenbanken auftreten) Bei der Datenintegration müssen oftmals inkonsistente und/oder nicht vollständige Daten „repariert“ werden. Man spricht hier auch von Datenbereinigung (Data Cleaning) – Duplikaterkennung: welche (unterschiedlichen) Daten gehören zu demselben Objekt? – Inkonsistente Daten: in zwei oder mehreren lokalen Datenbanken werden dieselben Objekte unterschiedlich gespeichert (z.B. durch fehlerhafte Daten, veraltete Daten, falsch formatierte Daten, etc.) – Inkomplette Daten: durch die Schemaintegration können Teile von Datensätzen aus lokalen Quellen fehlen und müssen komplettiert werden FS 2013 Datenbanken (CS243) – Informationsintegration 3-35 Vergleich von Extensionen • Auch wenn nach der Integration auf intensionaler Ebene die Schemata von Datenbanken übereinstimmen, muss bei der Integration auf extensionaler Ebene überprüft werden, welche Datensätze evtl. gemeinsam sind, und welche Daten in die integrierte Datenbank überführt werden Student (MatNr, Name, Studiengang, Wohnort) Studierende aus Basel InformatikStudierende Student (MatNr, Name, Studiengang, Wohnort) FS 2013 Datenbanken (CS243) – Informationsintegration 3-36 18 Semantische Duplikate … • Unterschiedliche Datensätze repräsentieren das gleiche Objekt der realen Welt auf inkonsistente Art (d.h. produzieren einen Konflikt) – In einzelnen Quellen: fehlerhafte Tupel Bundesrat Name Vorname Departement Berset Alain EDI Widmer-Schlumpf Eveline EJPD … … … … … – Vor der Integration müssen Daten bereinigt werden, um nach der Integration potentielle semantische Duplikate zu verhindern FS 2013 Datenbanken (CS243) – Informationsintegration 3-37 … Semantische Duplikate • Mögliche semantische Duplikate in unterschiedlichen Quellen (nach der Integration), z.B. – Verschiedene Wertebereiche für IDs Bundesrat Bundesrat ID Name Vorname Departement ID Name Vorname DL Leuthard Doris UVEK 02 Leuthard Doris Departement UVEK EW Widmer-Schlumpf Eveline EFD 04 Widmer-Schlumpf Eveline EFD … … … … … … – Unterschiedliche Werte (Fehler oder Inkonsistenzen) Bundesrat Bundesrat ID Name Vorname Departement ID Name Vorname Departement 02 Leuthard Doris UVEK 02 Leuthard Doris EVD 04 Widmer-Schlumpf Eveline EFD 04 Widmer-Schlumpf Eveline EJPD … … … … … … FS 2013 Datenbanken (CS243) – Informationsintegration 3-38 19 Inkorrekte Daten • Inkorrekte Daten können aus mehreren Gründen entstehen – Durch Eingabefehler / Anwendungsfehler Bundesrat Name Vorname Departement Leuthard Doris UVEK Widmer-Schlumpff Evelyn EFD – Durch nicht-erzwungene Integritätsbedingungen (zu jedem Zeitpunkt kann nur ein Departement geleitet werden) Bundesrat Name Vorname Departement Widmer-Schlumpf Eveline EJPD Widmer-Schlumpf Eveline EFD – Änderungen in der realen Welt Bundesrat Name FS 2013 Vorname Departement Leuthard Doris EVD Widmer-Schlumpf Eveline EJPD Datenbanken (CS243) – Informationsintegration 3-39 Data Cleaning • • • Unter Data Cleaning versteht man das Auffinden und Bereinigen von Fehlern in der Ausprägung einer Datenbank In der Praxis ist dies ein komplexes Problem – Unterschiedliche Arten von Inkonsistenzen – Erkennung erfordert zumeist vertieftes Anwendungswissen; generische Lösungen sind nur begrenzt möglich – Oftmals muss man zur Erkennung und Behebung auch verstehen, welche Sicht auf die reale Welt für eine Datenbank die richtige ist (was ist Bestandteil der Datenbank, was nicht?) Bereinigte Daten sind in einer Vielzahl von Anwendungen essentiell – Data Warehousing – Data Mining – Datenanalyse – … FS 2013 Datenbanken (CS243) – Informationsintegration 3-40 20 Cleaning-Prozess • Data Cleaning erfordert die systematische Bereinigung von Datenquellen, in mehreren Schritten 1. Daten analysieren – sowohl das Schema als auch (Beispiel-)Daten – Daten zunächst umwandeln, um die nachfolgenden Schritte zu vereinfachen, z.B. • Attribute aufsplitten • Nachschlagen in Wörterbüchern (dictionary lookup), zur Fehlerkorrektur • Standardisierte Darstellung 2. Datenbereinigung (Transformationen): iterative Folge von unterschiedlichen Schritten – Datentransformation entwerfen – Datentransformation anwenden – Datentransformation verifizieren (und evtl. wieder rückgängig machen) – Gerade dieser iterative Prozess wird von vielen Werkzeugen nicht oder nur ungenügend unterstützt FS 2013 Datenbanken (CS243) – Informationsintegration 3-41 Vorverarbeitung … • Attribute aufsplitten Bundesrat • Bundesrat Name Departement Name Vorname Leuthard, Doris UVEK Leuthard Doris Departement UVEK Widmer-Schlumpf, Eveline EFD Widmer-Schlumpf Eveline EFD Normalisierung – Normalisierung von Datumsangaben (z.B. festgelegte Zeitzone, GMT, UTC, PST, …) – Normalisierung von Preisen (Festlegen einer Referenzwährung) – Normalisierung von Masseinheiten (m, cm, ft, …) www.schnaeppchen.ch www.cheapstuff.co.uk Item Price Item Price ipad 2 529 ipad 2 409 HTC One 349 HTC One 275 CHF FS 2013 £ Datenbanken (CS243) – Informationsintegration 3-42 21 … Vorverarbeitung • Standardisierung, z.B. – einheitliche Gross-/Kleinschreibung – einheitliche Datumsformate, z.B. YYYY-MM-DD vs. DD.MM.YYYY – Abkürzungen und Akronyme ausschreiben – unterschiedliche Schreibweisen vereinheitlichen wie z.B. ß vs. ss – … Bundesrat Bundesrat FS 2013 Name Vorname Leuthard Doris Departement UVEK Widmer-Schlumpf Eveline EFD Berset A. Eidgenössisches Departement des Innern Name Vorname Departement Leuthard Doris Eidgenössisches Departement für Umwelt, Verkehr, Energie und Kommunikation Widmer-Schlumpf Eveline Eidgenössisches Finanzdepartement Berset Alain Eidgenössisches Departement des Innern Datenbanken (CS243) – Informationsintegration 3-43 Dictionary Lookup • Verwendung von Wörterbüchern: Nachschlagen in Datenbanken mit hoher (evtl. garantierter) Datenqualität zum Auffinden und Korrigieren von Fehlern Name Vorname Kanton Leuthard Doris AG Widmer-Schlumpf Eveline GR Berset Allan FR … Kantone www.vornamen.ch/jungennamen/a.html FS 2013 Datenbanken (CS243) – Informationsintegration 3-44 22 Ähnlichkeits- bzw. Distanzfunktionen • Für einen Dictionary Lookup muss man die Werte der integrierten Datenbank mit den Werten aus dem Dictionary vergleichen, um den/die ähnlichsten Eintrag/Einträge zu finden – Benötigt wird ein Distanzmass bzw. ein Ähnlichkeitsmass zu Berechnung • Die besten Distanz-/Ähnlichkeitsmasse sind domänenspezifisch, lassen sich daher nicht generisch angeben • Weit verbreitete generische Distanzmasse sind auf spezielle Datentypen zugeschnitten – Für binäre Werte / Codes: • Hamming-Distanz – Für Zeichenketten • Phonetische Distanzmasse (z.B. Soundex) • String Edit Distance (Levenshtein-Distanz) • N-Gramme FS 2013 Datenbanken (CS243) – Informationsintegration 3-45 Hamming-Distanz • • • Bezeichnet die Anzahl der unterschiedlichen Zeichen in Codes fester Länge Sei S ein endliches Alphabet und x = (x1, x2, …, xn) sowie y = (y1, y2, …, yn) Worte aus S, d.h. x, y œ Sn Dann gilt für die Hamming-Distanz: D(x,y) = S xi∫yi 1 mit i = 1, …, n Beispiel: 01010101 01110001 FS 2013 Datenbanken (CS243) – Informationsintegration 3-46 23 Phonetische Suche • • • Basieren auf Indexierung von Worten gemäss ihrer Aussprache Homophone (unterschiedlich geschriebene, aber gleich oder ähnlich ausgesprochene Worte) erhalten denselben Index, werden daher als ähnlich angesehen Der am weitesten verbreitete Algorithmus zur phonetischen Suche ist Soundex (andere sind z.B. NYSIIS oder Metaphone) In Soundex wird ein Wort auf einen vierstelligen Code abgebildet, bestehend aus einem Buchstaben und drei Ziffern – Erster Buchstabe: Anfangsbuchstabe des Wortes – Drei Ziffern: kodieren die restlichen Konsonanten. Ähnlich klingende Konsonanten werden auf denselben Wert abgebildet, z.B. {B, F, P, V} → 1 Nach dritter Stelle wird abgebrochen bzw. bei kurzen Worten mit 0 aufgefüllt – Beispiel: • Soundex ist auch in den gängigen DBMS (wie z.B. MS SQL, Oracle) verfügbar • FS 2013 Datenbanken (CS243) – Informationsintegration 3-47 String Edit Distance (Levenshtein-Distanz) • • • Definiert als Distanzmass zweier Strings und bezeichnet die minimale Anzahl an atomaren Änderungsoperationen (Einfügen, Löschen, Ersetzen) von Zeichen, um von einem String zum anderen zu gelangen Beispiele Varianten der String Edit Distance – Häufig auftretende Fehler (wie verdrehte Buchstabenfolgen) werden zusammen betrachtet und als einer Änderungsoperation angesehen – Blockweise Betrachtung von Buchstaben, anstelle einzelner Buchstaben (für die Anwendung auf ganze Sätze) • Das Verfahren ist sehr aufwändig: O(m·n), wobei m und n die Längen der zu vergleichenden Strings sind FS 2013 Datenbanken (CS243) – Informationsintegration 3-48 24 N-Gramme • Zu analysierende Wörter werden in Fragmente (in der Regel einzelne Buchstaben) zerlegt. Danach werden jeweils n aufeinanderfolgende Fragmente zu N-Grammen zusammen gefasst – N-Gramme werden sehr häufig in der Computerlinguistik (aber z.B. auch in der Gensequenzanalyse) verwendet – Ausser auf Buchstaben können N-Gramme auch für Phoneme, Silben oder ganze Wörter verwendet werden • Beispiel: Trigramme (N = 3) FS 2013 Datenbanken (CS243) – Informationsintegration 3-49 Jaccard-Distanz • Die Jaccard-Distanz Jd wird häufig zusammen mit N-Grammen verwendet – Gibt das gemeinsame Auftreten von Elementen in zwei Mengen A und B an (hier: gemeinsame N-Gramme zweier Wörter) • Definition: seien A und B zwei Mengen, dann ist Jd(A, B) = 1- J(A, B) = 1- |A … B| |A » B| = |A » B| - |A … B| |A » B| • Beispiel: • N-Gramme werden für die String-Ähnlichkeit oft auch verwendet, um (englische) Strings in einen 263-dimensionalen Vektorraum (Dimensionen: aaa, aab, …, zzz) abzubilden. In diesem Vektorraum wird dann u.a. die Kosinus-Distanz als Ähnlichkeitsmass eingesetzt. FS 2013 Datenbanken (CS243) – Informationsintegration 3-50 25 Objekterkennung und Konfliktauflösung • In der Phase ‚Objekterkennung und Konfliktauflösung‘ (Reconciliation) geht es darum, semantische Duplikate in der Extension zu identifizieren und allfällige Konflikte zwischen diesen semantischen Duplikaten zu eliminieren 1. Welche Tupel repräsentieren dasselbe Objekt (= semantische Duplikate) 2. Alle semantischen Duplikate werden durch ein einziges, konsolidiertes Tupel ersetzt • Beispiel Bundesrat Name FS 2013 Vorname Departement Widmer-Schlumpff Eveline EFD Leuthard Doris UVEK Widmer-Schlumpf Eveline EJPD Datenbanken (CS243) – Informationsintegration 3-51 Ähnlichkeit von Tupeln • Wie beim Vergleich einzelner Attribute benötigt man auch ein Ähnlichkeitsmass für den Vergleich kompletter Tupel – Tupel als ein String betrachten (Attribute konkatenieren) und bekannte String-Ähnlichkeiten anwenden (aber: hohe Komplexität, ausserdem auch grosse Nachteile bei fehlenden Attributen) – Gewichtetes Mittel der Ähnlichkeitswerte der einzelnen Attribute • Ähnlichkeit, falls gewichtetes Mittel > Schwellwert – Vorgegebene Regeln (ebenfalls über die paarweise Ähnlichkeit einzelner Tupel), z.B. • D(t1, t2) = true, falls (t1.Name º t2.Name) ⁄ (t1.Vorname = t2.Vorname) FS 2013 Datenbanken (CS243) – Informationsintegration 3-52 26 Similarity Join • Um semantische Duplikate in einer Relation zu finden muss man alle Paare von Tupel vergleichen (= Similarity Join) – Dies entspricht einem Selbst-Join, allerdings müssen Join-Partner nicht über die Gleichheit der gemeinsamen Attribute sondern über ihre Ähnlichkeit ausgewählt werden • Naiver Ansatz bei Relation mit |N| Tupeln – O(N2) Ähnlichkeitsvergleiche (Berechnung des kartesischen Produkts) – Aber: Tupel-Vergleiche sind teuer – dieser Ansatz ist für grosse N nicht verwendbar FS 2013 Datenbanken (CS243) – Informationsintegration 3-53 Approximative Similarity Join • • Unterschiedliche Verfahren versuchen die Berechnung von Similarity Joins zu approximieren, um die Kosten für die Berechnung zu reduzieren – Tupel, die zu keinen anderen Tupel unähnlich sind, von Berechnung ausschliessen – Nur „aussichtsreiche“ Ähnlichkeitsvergleiche durchführen – … Diese Verfahren approximieren, da im Vergleich zum naiven Ansatz ähnliche Tupel übersehen werden können FS 2013 Datenbanken (CS243) – Informationsintegration 3-54 27 Approximative Similarity Join: Blocking • Grundüberlegung: ähnliche Tupel stimmen zumindest in einigen Attributen (Keys) überein – Bestimmung der Blöcke aus Tupeln mit identischen Attributwerten in den Keys, z.B. durch • Gruppierung mittels Group By in SQL über den Keys • Hashing über Key-Attributen • Sortierung nach Key-Attributen – Similarity Join muss dann nur noch für r Tupel innerhalb einer Gruppe durchgeführt werden (r á N) • Das Verfahren reduziert die Anzahl der Vergleiche, reagiert aber sehr empfindlich auf fehlerhafte Werte in den Key-Attributen FS 2013 Datenbanken (CS243) – Informationsintegration 3-55 Approximative Similarity Join: SNM • • SNM: Sorted Neighborhood Method Grundüberlegung: ähnliche Tupel besitzen ähnliche Werte in bestimmten Attributen – Sortierung bringt ähnliche Werte näher zueinander – Vergleich nur von Tupeln, die in der Sortierung nahe beieinander liegen – Verwendet für die Ähnlichkeitsbetrachtung ein sliding window fester Grösse – Komplexität: O(N·w), w: Grösse des sliding windows und w á N • Erhöhung der Ergebnisqualität – Mehrere Durchläufe mit jeweils unterschiedlichen Keys, nach denen sortiert wird – Betrachtung der transitiven Hülle der Ähnlichkeit, d.h. t1 º t2 ⁄ t2 º t3 fl t1 º t3 • SNM ist robust gegenüber kleineren Fehlern in den Keys, erfordert aber nach wie vor die Ähnlichkeit (ähnliche Tupel werden nur gefunden, wenn sie im gleichen sliding window sind) FS 2013 Datenbanken (CS243) – Informationsintegration 3-56 28 Konfliktauflösung • Nach dem Ermitteln von semantischen Duplikaten müssen allfällige Konflikte behoben werden • Naiver Ansatz: eines der Tupel aus einer Menge von semantischen Duplikaten wird ausgewählt, die anderen verworfen • Reconciliation: – Attributwerte werden gemäss vorgegebener Funktionen zur Konfliktauflösung zusammen geführt • Diese Funktionen sind anwendungsspezifisch bzw. domänenspezifisch, z.B. – Für numerische Werte: min, max, avg, … – Auswahl gemäss Vertrauen in die Quelle, aus der das Tupel stammt – Alle Werte werden aufbewahrt • Ist nur möglich bei einem nicht rein relationalen Datenmodell (z.B. in ORDBMS, bei mengenwertigen Attributen) • In der Praxis erfolgt die Reconciliation zumeist in Form des naiven Ansatzes, durch manuelle Auswahl von Tupeln (bzw. durch sehr einfache Regeln) FS 2013 Datenbanken (CS243) – Informationsintegration 3-57 Qualitätsmass für die Duplikaterkennung … • Dies entspricht einer Klassifikationsaufgabe, die die Menge der „relevanten“ (R, Elemente gehören zur Zielklasse) von der Menge der „nicht-relevanten“ (N, Elemente gehören nicht zur Zielklasse) unterscheiden soll. • Bei den relevanten Elementen, die korrekt der Zielklasse zugeordnet werden, spricht man von “true positives” (TP), nicht relevante Elemente die korrekterweise nicht der Zielklasse zugeordnet werden, bezeichnet “true negatives” (TN). • Unter “false positive” (FP) versteht man ein nicht-relevantes Element, das fälschlicherweise als positiv klassifiziert wurde, unter “false negative” (FN) ein relevantes Element, das fälschlicherweise als nicht-relevant klassifiziert wurde. R N FN TN TP FS 2013 FP Datenbanken (CS243) – Informationsintegration P = TP + FP als positiv klassifizierte Elemente 3-58 29 … Qualitätsmass für die Duplikaterkennung • Wichtigste Masse sind Precision und Recall – Precision: wie gut ist die Klassifikation bei der Vermeidung von false positives, d.h. welcher Prozentsatz der als positiv klassifizierten ist tatsächlich korrekt Prec R P (TP FN ) (TP FP) | TP | P TP FP | TP | | FP | – Recall: wie gut ist die Klassifikation bei der Vermeidung von false negatives, d.h. welcher Prozentsatz der relevanten Elemente wurde tatsächlich erkannt Rec R P (TP FN ) (TP FP) | TP | R TP FN | TP | | FN | – Fscore (F): Verbindet Precision und Recall F 2 FS 2013 Prec Rec Prec Rec Datenbanken (CS243) – Informationsintegration 3-59 Zusammenfassung Datenintegration • Vor Datenintegration: einzelne Datenquellen bereinigen • Durchführung der eigentlichen Datenintegration – Quellen zusammen führen (natürlich erst nach erfolgter Schemaintegration) – ggf. Daten transformieren, um einen integrierten Datenbestand zu erstellen • Nach Datenintegration: integrierten Datenbestand ggf. nochmals bereinigen FS 2013 Datenbanken (CS243) – Informationsintegration 3-60 30 3.3 Informationsintegration im Data Warehousing • Die Schemata von Datenbanken ändern sich in der Regel nicht allzu häufig. Schemaintegration wird daher im Data Warehousing nur einmal durchgeführt bzw. immer dann, wenn dies nötig wird. • Die Daten selbst ändern sich häufig und müssen daher regelmässig in das Data Warehouse überführt werden • Man spricht dabei auch von ETL-Operationen (Extraction, Transformation, Load) – Extraction: Datenquellen werden überwacht und die für das Data Warehouse relevanten Daten werden zu vorgegebenen Zeitpunkten extrahiert – Transformation: Anwendung von vorgegebenen Transformationsregeln • Zur Anpassung des Quellschemas an das Schema der integrierten Datenbank (= des Data Warehouse) • Zur Bereinigung der Datenquellen (vor bzw. nach der Integration) – Load: Das Laden der Daten in das Data Warehouse. Dabei können evtl. vordefinierte Konsistenzüberprüfungen vorgenommen werden (z.B. Integritätsbedingungen, etc.) FS 2013 Datenbanken (CS243) – Informationsintegration 3-61 ETL-Prozess Quellen Extract Transform Staging Area Load Integrierte Datenbank (Data Warehouse) FS 2013 Datenbanken (CS243) – Informationsintegration 3-62 31 Einstufige Architektur Source Level Operationale und externe Daten ETL Feeding Level Warehouse Level Integrierte Datenbank (Data Warehouse) Analysis Level Daten-Transformation Daten-Bereinigung Aggregation De-Normalisierung Metadaten Data Mart Data Mining FS 2013 • • • • OLAP Reporting Datenbanken (CS243) – Informationsintegration 3-63 Mehrstufige Architektur Operationale und externe Daten Source Level ETL Feeding Level Integrierte Datenbank ETL Warehouse Level • Aggregation • De-Normalisierung Data Warehouse Metadaten Analysis Level Data Mart Data Mining FS 2013 • Daten-Transformation • Daten-Bereinigung OLAP Reporting Datenbanken (CS243) – Informationsintegration 3-64 32 Integrierte Datenbank • Enthält das Ergebnis der Bereinigung und Integration der Quellen • Die Granularität ist in der Regel die der Quellen (d.h. Daten sind beispielsweise nicht aggregiert) • Das Datenmodell ist durch das integrierte Schema gegeben • Dieser Zwischenschritt wird oftmals eingesetzt um die Integration/Bereinigung der Daten vom Befüllen des Warehouses zu trennen – Zusätzliche Aktivitäten: Aggregation der Daten, Transformation in mehrdimensionales Datenmodell (Ø Kapitel 7), etc. FS 2013 Datenbanken (CS243) – Informationsintegration 3-65 Vorgehen • Typischerweise werden Data Warehouses in einem Bottom-Up-Prozess, beginnend mit den Quellsystemen erstellt – Design der Integrierten Datenbank • Abbildung Quellschemata Ø integriertes Schema – Festlegen der Transformationen / Datenbereinigungen – Design des Data Warehouses • Abbildung integriertes Schema Ø Date Warehouse-Schema – Festlegen, wie das Data Warehouse befüllt wird • De-Normalisierungen, Aggregationen, evtl. weitere Transformationen FS 2013 Datenbanken (CS243) – Informationsintegration 3-66 33 Historische Daten • Data Warehouses werden hauptsächlich für die strategische Planung und Analyse eingesetzt (z.B. um Trends festzustellen). Daher werden nicht nur die aktuellen Werte der Quellen gespeichert, sondern auch, wie sich diese über die Zeit entwickelt haben. – Data Warehouses müssen also die komplette Geschichte von Daten verwalten, oder zumindest eine aggregierte Sicht darüber (z.B. Mittelwert der Verkaufszahlen eines Produkts) – Beispiel für Daten mit historischem Bezug: für jeden Wert werden zwei Zeitstempel gespeichert, zwischen denen der Wert aktuell war • Daten der Quellen selbst können – transient sein: es werden nur aktuelle Daten aufbewahrt. Änderungsoperationen überschreiben alte Daten (z.B. Lagerbestand) – mehrere Versionen enthalten: eine mehrere historische Daten werden aufbewahrt (z.B. eine fest vorgegebene Anzahl alter Zustände, etc.). Es ist oftmals nicht bekannt, wie lange diese Daten aufbewahrt werden – sämtliche Versionen beinhalten: sämtliche Versionen von Daten werden aufbewahrt (z.B. aus rechtlichen Gründen für ein vorgegebenes Zeitintervall) FS 2013 Datenbanken (CS243) – Informationsintegration 3-67 Extraktion • Man unterscheidet zwischen inkrementellen und statischen Extraktionstechniken • Statische Extraktion: – Verwendet einen Snapshot jeder operativen Datenbank. Frühere Snapshots werden komplett überschrieben – Nicht geeignet für transiente Datenquellen und Datenquellen mit mehreren Versionen (da historische Daten überschrieben werden können) – Die Load-Operation entspricht dann einer kompletten Ersetzung des Data Warehouse • Inkrementelle Extraktion: – Verwendet nur die Änderungen, die in den operationalen Datenbanken seit der letzten Integration vorgenommen wurden – Die Load-Operation entspricht einem „Refresh“ des Data Warehouse FS 2013 Datenbanken (CS243) – Informationsintegration 3-68 34 Inkrementelle Extraktion • Unmittelbar, bei Änderung in Quellsystem – Trigger-basiert: Änderungen werden durch Trigger überwacht und weiter propagiert. Das ist in der Regel recht ineffizient und nur für kleine Teile der Datenbank anwendbar – Log-basiert: Änderungen werden via Datenbank-Log überwacht. Allerdings haben DB-Logs in der Regel ein proprietäres Format bzw. sind nur nutzbar, wenn DBMS entsprechendes Extraktions-Modul besitzt – Anwendungs-basiert: Protokollierung von Änderungen direkt in die OLTPAnwendung eingebaut (z.B. für DB-Systeme ohne Log und Trigger) • Verzögert – Basiert auf Zeitstempel der letzten Integration. Dies erfordert jedoch die Änderung des Schemas der Quelldatenbank (z.B. Änderungszeitstempel wird mit abgespeichert) FS 2013 Datenbanken (CS243) – Informationsintegration 3-69 Literatur [LN 07] Ulf Leser und Felix Naumann: „Informationsintegration – Architekturen und Methoden zur Integration verteilter heterogener Datenquellen“. dpunkt.verlag, 2007. FS 2013 Datenbanken (CS243) – Informationsintegration 3-70 35