Aladin – Almost HandsOff Data Integration for the Life Sciences VL Informationsintegration 7.12.2006 Gliederung Die Grundidee: Was ist Aladin? Einordnung in die Begriffe der VL Szenarien, Kriterien, Architekturen Algorithmen zur Bestimmung von Inklusionsabhängigkeiten der offensichtliche Weg der effiziente Weg mögliche Erweiterungen Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 2 Die Grundidee (Fast) Automatische Integration von Life Science Datenbanken Wie? datenzentriert (nicht schema-zentriert), denn: Schemata meist nicht vertrauenswürdig Semantische Heterogenität besonders problematisch unter Ausnutzung von domänenspezifischem Wissen Primärrelation, Accession-Number Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 3 Integrationsschritte Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 4 Gliederung Die Grundidee: Was ist Aladin? Einordnung in die Begriffe der VL Szenarien, Kriterien, Architekturen Algorithmen zur Bestimmung von Inklusionsabhängigkeiten der offensichtliche Weg der effiziente Weg mögliche Erweiterungen Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 5 Anwendungsszenarien Data-Warehouse (Materialisierung) vs. Förderierte Datenbank (virtuelle Anfragen) • Gründe: • Technische und DatenmodellHeterogenität eliminieren • schnelles Arbeiten auf den Daten Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 6 Extension vs. Intension „Extension kann zum Verständnis der Intension benutzt werden“ Ausnutzung extensionaler Redundanz für Erkennen intensionaler Redundanz und damit für Verständnis der Intension Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 7 Verteilung Physische Verteilung vs. Logische Verteilung (in unterschiedl. Schemata) • Grund: • Erhaltung der Quellenidentität Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 8 Autonomie Design-Autonomie Kommunikations-Autonomie Ausführungs-Autonomie Schnittstellenautonomie Zugriffsautonomie Juristische Autonomie • Grund: Quellen wissen überhaupt nicht, dass sie integriert werden Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 9 Heterogenität Technische Heterogenität eliminiert nach Import Syntaktische Heterogenität Datenmodellheterogenität eliminiert nach Import Strukturelle Heterogenität Schematische Heterogenität Semantische Heterogenität Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 10 Transparenz Ortstransparenz Quellen-, Verteilungstransparenz Schnittstellentransparenz Schematransparenz • Gründe: • kein globales Schema, denn: • Datenherkunft ist wichtigstes Kriterium für Einschätzung der Qualität der Informationen • kein neues (evtl. sehr kompliziertes) Schema lernen Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 11 Architektur verteilt, heterogen, autonom strukturiert lose Kopplung (kein globales Schema) materialisiert read-only Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 12 Gliederung Die Grundidee: Was ist Aladin? Einordnung in die Begriffe der VL Szenarien, Kriterien, Architekturen Algorithmen zur Bestimmung von Inklusionsabhängigkeiten der offensichtliche Weg der effiziente Weg mögliche Erweiterungen Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 13 Inklusionsabhängigkeiten (IND) syntaktisch prüfbarer Teil eines Fremdschlüssels Fremdschlüsselbeziehungen interessant für Verständnis der Daten Information für Anfrage-Optimierung Information für Schema-Matching Integration von Datenbanken … Problem: Fremdschlüssel sind häufig nicht definiert. Idee: Fremdschlüssel sind implizit über die Daten gegeben! Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 14 Ein Beispiel Aufgabe: Import der PDB in ein RDBMS Schema: OpenMMS 175 Tabellen 2705 Attribute Primärschlüssel sind definiert aber: keine Fremdschlüssel definiert! Ziel: Finden von Inklusionsabhängigkeiten (INDs) als Vorbedingung für Fremdschlüssel Wie aufwändig ist das? Komplexität: O(n2) mit n := # Attribute Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 15 Begriffe Inklusionsabhängigkeit (IND) A ⊆ B Menge der Werte des abhängigen Attributes A ist Teilmenge der Menge der Werte des referenzierten Attributes B IND Kandidat A ⊆ B zu testende IND A ⊆ B erfüllte IND A ⊆ B IND Definition erfüllt für A ⊆ B Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 16 Der offensichtliche Weg Aufgabe: Teste für alle Attribut-Paare A, B einer relationalen Datenbank A ⊆ B Lösung: Verwende ein passendes SQL-Statement Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 17 Join-Statement für jeden IND Kandidaten: Join über Attribute SELECT count(*) AS matchedDeps FROM (depTable JOIN refTable ON depTable.depColumn = refTable.refColumn) Test (nur mit unique Attributen als referenziertes A.): matchedDeps = # Tupel des abhängigen Attributes dep 1 3 4 7 ref 1 2 3 5 dep Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences ref 1 3 18 Experimente # Tabellen # Attribute DB-Größe join SCOP 4 22 17 MB 7s UniProt 16 85 667 MB 15 min Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences PDB 109 1576 2,7 GB > 7 Tage 19 Was ist passiert? SELECT count(*) AS matchedDeps FROM (depTable JOIN refTable ON depTable.depColumn = refTable.refColumn) mehrfaches Lesen und Sortieren der Daten Join berechnet mehr als notwendig. besser: Stoppen nach dem ersten abhängigen Wert ohne Join-Partner dep ref Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 20 Anfragen mit frühzeitigen Abbruch Formulieren von Anfragen, die Tupel zurückgeben ⇔ IND Kandidat ist nicht erfüllt und 2. Stoppen nach dem ersten Ergebnistupel 1. Mögliche Formulierungen mittels SQL und MINUS NOT IN NOT EXISTS Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 21 MINUS dep ref {Werte des abhängigen Attributes} \ {Werte des referenzierten Attributes} select count(*) as unmatchedDeps from (select /+ first rows (1) / from (select to_char(depColumn) from depTable where depColumn is not null MINUS select to_char(refColumn) from refTable) where rownum < 2) Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 22 NOT IN (Anti-Join) dep ref Anfrage nach Werten des abhängigen Attributes, die nicht in Werten des referenzierten Attributes enthalten sind select count(*) as unmatchedDeps from (select /+ first rows (1) / depColumn from depTable where to_char(depColumn) NOT IN (select to_char(refColumn) from refTable) and rownum < 2 ) Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 23 NOT EXISTS dep ref Gibt es einen Wert, der in dep enthalten ist aber nicht in ref? select count(*) from depTable where depColumn is not null and not exists (select refColumn from refTable where to_char(refColumn) = to_char(depColumn)) and rownum < 2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 24 Experimente # Tabellen # Attribute DB-Größe join minus not in not exists SCOP 4 22 17 MB 7s 14 s 46 min 43 min UniProt 16 85 667 MB 15 min 29 min 1h 53 min 4 min Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences PDB 109 1576 2,7 GB > 7 Tage Abschätzung: 1-3 Wochen 25 Optimierungsversuche Indexe auf Attributen Tests auf UniProt Ergebnis: schneller, aber durch Zeit für Indexerzeugung aufgehoben Fremdschlüssel einfach anlegen (Versuch) aber: unflexibel kein Test für non-unique referenzierte Attribute kein Test für partielle INDs Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 26 Gliederung Die Grundidee: Was ist Aladin? Einordnung in die Begriffe der VL Szenarien, Kriterien, Architekturen Algorithmen zur Bestimmung von Inklusionsabhängigkeiten der offensichtliche Weg der effiziente Weg mögliche Erweiterungen Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 27 Ansätze basierend auf geordneten Werten Sortieren der unterschiedlichen Werte beider Attribute Iteration über beide Listen Abbruch nach dem ersten abhängigen Wert, der nicht in Werten des referenzierten Attributes enthalten ist Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences dep 1 3 4 7 ref 1 2 3 5 28 Architektur der Umsetzung Test der IND Kandidaten Lesen und Schreiben der Daten auf Platte Sortieren der Daten ⇒ Trade-Off frühzeitiger Abbruch der Berechnung Auslesen der Daten aus der Datenbank Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 29 Brute Force sequentielles Erzeugen und Testen aller IND-Kandidaten dep1 dep2 ref1 ref2 1 3 4 2 3 5 1 2 3 5 1 3 7 8 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 30 SPIDER Paralleles Erzeugen und Testen aller IND Kandidaten ⇒ jeder Wert wird maximal einmal gelesen Herausforderung: Synchronisation des Lesens der Werte aller Attribute jedes abhängige Attribut beeinflusst wann alle referenzierten Attribute gelesen werden können jedes referenzierte Attribut beeinflusst wann alle abhängigen Attribute gelesen werden können dep1 dep2 ref1 ref2 1 3 4 2 3 5 1 2 3 5 1 3 7 8 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 31 SPIDER: Idee Werte jedes Attributs sind sortiert jedes Attribut wiederum wird in Min-Heap gehalten, der die Attribute anhand deren aktueller minimaler Werte sortiert Min-Heap Attribute 134 dep1 1235 ref1 1378 ref2 235 dep2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 32 Einschub: Was ist ein Min-Heap? Datenstruktur, die kleinstes Element in O(1) liefert Eigenschaften: balancierter binärer Baum jeder Knoten ist kleiner als oder gleich seiner Kindknoten Entfernen des kleinsten Knotens in O(log n) Einfügen eines Knotens in O(log n) 1 2 17 24 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 3 42 12 23 33 8 SPIDER: Idee Werte jedes Attributs sind sortiert jedes Attribut wiederum wird in Min-Heap gehalten, der die Attribute anhand deren aktueller minimaler Werte sortiert IND Kandidaten werden in abhängigen Attributen repräsentiert über Liste aller referenzierten Attribute Min-Heap Attribute bildet IND Kandidat mit: 134 dep1 1235 ref1 1378 ref2 235 dep2 … ref1, ref2 … ref1, ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 34 SPIDER: Idee Liste unterscheidet referenzierte Attribute danach ob aktueller Wert des abhängigen Attributs auch in referenziertem Attribut gesehen wurde (noch) nicht gesehen wurde Blockweises Verarbeiten der Attribute mit gleichem aktuellem Wert und Verfolgen der (immer noch gültigen) IND Kandidaten 134 dep1 1235 ref1 1378 ref2 235 dep2 … ref1 , ref2 … ref1 , ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 35 SPIDER: Beispiel blockweises Verarbeiten: 1. Block Informieren der abhängigen Attribute und Update der (nicht-)gesehen-Tags 134 dep1 1235 ref1 1378 ref2 235 dep2 … ref1 , ref2 … ref1 , ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 36 SPIDER: Beispiel blockweises Verarbeiten: 1. Block Lesen der nächsten Werte und Update des min-Heap 235 dep2 1235 ref1 134 dep1 1378 ref2 … ref1 , ref2 … ref1 , ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 37 SPIDER: Beispiel blockweises Verarbeiten: 2. Block Informieren der abhängigen Attribute und Update der (nicht-)gesehen-Tags 235 dep2 1235 ref1 134 dep1 1378 ref2 … ref1 , ref2 … ref1 , ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 38 SPIDER: Beispiel blockweises Verarbeiten: 2. Block Lesen der nächsten Werte und Update des min-Heap 235 1235 dep2 … ref1 , ref2 … ref1 , ref2 ref1 134 dep1 1378 ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 39 SPIDER: Beispiel blockweises Verarbeiten: 3. Block Informieren der abhängigen Attribute und Update der (nicht-)gesehen-Tags 235 1235 dep2 … ref1 … ref1 , ref2 ref1 134 dep1 1378 ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 40 SPIDER: Beispiel blockweises Verarbeiten: 3. Block Lesen der nächsten Werte und Update des min-Heap 134 dep1 … ref1 , ref2 235 dep2 … ref1 1235 1378 ref1 ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 41 SPIDER: Beispiel blockweises Verarbeiten: 4. Block Informieren der abhängigen Attribute und Update der (nicht-)gesehen-Tags 134 dep1 … ref1 , ref2 235 dep2 … ref1 1235 1378 ref1 ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 42 SPIDER: Beispiel blockweises Verarbeiten: 4. Block Lesen der nächsten Werte und Update des min-Heap 134 dep1 … ref1 , ref2 235 dep2 … ref1 1235 1378 ref1 ref2 kein referenziertes Attribut übrig und alle Werte von dep1 verarbeitet dep1 aus min-heap entfernt Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 43 SPIDER: Beispiel blockweises Verarbeiten: 5. Block Informieren der abhängigen Attribute und Update der (nicht-)gesehen-Tags 235 1235 1378 dep2 … ref1 ref1 ref2 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 44 SPIDER: Beispiel blockweises Verarbeiten: 5. Block Lesen der nächsten Werte und Update des min-Heap 235 1235 1378 dep2 … ref1 ref1 ref2 alle Werte von dep2 getestet und ref1 mit getaggt dep2 ⊆ ref1 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 45 Experimente # Tabellen # Attribute DB-Größe join Brute Force SPIDER SCOP 4 22 17 MB 7s 10 s 10 s UniProt 16 85 667 MB 15 min 2 min 38 s 2 min 14 s Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences PDB 109 1576 2,7 GB > 7 Tage 3h 13 min 22 min 46 Gliederung Die Grundidee: Was ist Aladin? Einordnung in die Begriffe der VL Szenarien, Kriterien, Architekturen Algorithmen zur Bestimmung von Inklusionsabhängigkeiten der offensichtliche Weg der effiziente Weg mögliche Erweiterungen Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 47 Finden partieller INDs mit SPIDER „fast“ alle Werte des abhängigen Attributs sind in Werten der referenzierten Attributs enthalten Wozu? INDs/FKs in verschmutzten Daten finden Wie zählt man nicht enthaltene Werte? Anzahl der unterschiedlichen Werte Anzahl der Vorkommen der Werte Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 48 Finden partieller INDs mit SPIDER Anpassung des Algorithmus: Anzahl 1235 der unterschiedlichen Werte ref1 Zähler für nicht enthaltene Werte 2378 ref2 235 dep2 … ref1 (1x), ref2 (5x) dep1 … ref1 134 Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 49 Finden partieller INDs mit SPIDER Anpassung des Algorithmus: Anzahl 1235 ref1 Zähler für nicht enthaltene Werte 2378 ref2 235 dep2 … ref1 (1x), ref2 (5x) dep1 … ref1 134 der Vorkommen der Werte Ermitteln der Anzahl des Vorkommens jedes Wertes per GROUP-BY-Anfrage für jeden nicht enthaltenen Wert: Anzahl seines Vorkommens dazuaddieren Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 50 Finden mehr-attributiger INDs mit SPIDER mehr-attributige INDs: AB ⊆ CD Idee: aus 1-attributigen INDs 2-attributige INDs bilden (und testen) aus 2-attributigen INDs 3-attributige INDs bilden (und testen) … Problem: Anzahl der IND Kandidaten im Worst Case exponentiell Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 51 Finden mehr-attributiger INDs mit SPIDER der Algorithmus arbeitet wie bisher, nur auf Attribut-Tupeln statt auf einzelnen Attributen Problem in Praxis: je mehr ein-attributige INDs, desto mehr mehr-attributige IND Kandidaten Trade-Off zwischen Kosten für Bestimmung und Nutzen Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 52 Zusammenfassung Vorstellung des Projekts Aladin Einordung von Aladin in die Begriffe der VL (Szenarien, Kriterien, Architekturen) Inklusionsabhängigkeiten können nicht per SQL-Anfrage bestimmt werden Vorstellung des Algorithmus SPIDER Erweiterungen zu SPIDER für partielle und mehrwertige INDs Jana Bauckmann: VL Informationsintegration, 07.12.2006 Aladin: Almost Hands-Off Data Integration for the Life Sciences 53