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