Methoden zum homogenen Zugriff und zur - Dr.

Werbung
Methoden zum homogenen Zugriff und zur
Integration heterogener, biologischer Datenquellen
mittels beschränkter Zugriffsmuster
Dissertation
zur Erlangung der akademischen Grades
Doktoringenieur
(Dr.-Ing.)
angenommen durch die Fakultät für Informatik
der Otto-von-Guericke-Universität Magdeburg
von:
Dipl.-Inf. Matthias Lange
geb. am: 31.07.1973 in Magdeburg
Gutachter:
Prof. Dr. rer. nat. habil. Ralf Hofestädt
Prof. Dr. rer. nat. habil. Gunter Saake
Dr. rer. nat. Falk Schreiber
Magdeburg, den 30. März 2006
Lange, Matthias:
Methoden zum homogenen Zugriff und zur Integration heterogener,
biologischer Datenquellen mittels beschränkter Zugriffsmuster
216 Seiten
60 Abbildungen
10 Tabellen
Dissertation, Otto-von-Guericke-Universität Magdeburg, 2005.
Kurzfassung
Der Fortschritt in der Molekularbiologie, beginnend bei der experimentellen Datenakquisition zu einzelnen Genen und Proteinen über die post-genomics“-Technologien, wie
”
etwa DNA-Arrays“ oder Proteomics“ bis hin zur integrativen Bioinformatik mit dem
”
”
Ziel der Erfassung von Gesamtzusammenhängen ganzer biologischer Systeme, bedingt
steigende Erfordernisse an die elektronische Datenverarbeitung. Dabei werden gerade
das Internet und Web-Services“ als primäre Medien für die elektronische Veröffentli”
chung von Forschungsergebnissen genutzt.
Die vorliegende Arbeit ist dem Bereich der angewandten Informatik zuzuordnen.
Schwerpunkt ist die Identifizierung von Verfahren und Methoden aus dem Bereich der
Informationssysteme und Datenbanken, die zur Lösung bioinformatischer Fragestellungen aus dem Bereich Datenbankintegration anwendbar sind. Der Fokus der vorliegenden Arbeit wurde auf die Unterstützung eines integrativen und homogenen Zugriffs auf
molekularbiologische Datenquellen und deren möglichst nahtlose Einbettung in Frameworks zur Datenanalyse gelegt. Die Aufgabe besteht somit darin, die Gegebenheiten der
Bioinformatik zu nutzen und mit Techniken der Informatik zur Datenbankintegration
zu kombinieren, um eine in der Praxis anwendbare Lösung zu gewinnen.
Durch den gegebenen Umstand, daß unterschiedlichste Ansätze der Datenmodellierung, -speicherung und -zugriffe existieren, die Datenbanken aber derart zusammenhängen, daß erst mit der ganzheitlichen Betrachtung ein für die biologische Forschung
nutzbarer Kontext entsteht, ist die Bereitstellung von Methoden zur Überwindung der
damit verbundenen Datenverteilung und Heterogenität eine sehr wesentliche Aufgabenstellung. Dies erklärt wiederum die Bedeutung der Datenbankintegration in der
Bioinformatik.
Es werden charakterisierende Merkmale und Besonderheiten von molekularbiologischen Datenbanken ausgearbeitet und etablierte Datenformate sowie Schnittstellen vorgestellt. Eine wesentliche Eigenschaft ist dabei, daß der Zugriff auf die molekularbiologischen Datenbanken starken Beschränkungen auf der Ebene der Anfrage- oder Programmierschnittstelle unterliegt. Aus diesem Umstand heraus werden vom relationalen
Datenmodell und der relationalen Algebra abgeleitete Integrationsoperatoren vorgeschlagen, die zum einen die Anforderungen dieser beschränkten Zugriffsmuster erfüllen
und zum anderen den Ausgangspunkt für Abbildungsregeln von schwach strukturierten Datenformaten molekularbiologischer Datenquellen auf das relationale Datenmodell
bilden. Mit dem so abgeleiteten Datenmodell und den Integrationsoperatoren können
dann komplexe, hierarchische Datenanfragepläne erstellt werden, mit deren Hilfe eine
transparente Zerlegung einer globalen Datenanfrage in Unterabfragen und deren Verteilung auf notwendige Komponentendatenbanken erfolgt.
Das vorgestellte Konzept wurde in Form des Datenbankintegrationssystems BioDa”
taServer“ implementiert. Zur nahtlosen Nutzung durch Standardprogrammiersprachen
und existierende Software wurde eine TCP/IP- sowie eine JDBC/ODBC-Schnittstelle
umgesetzt. Die praktische, projektübergreifende Nutzbarkeit konnte anhand mehrerer
Anwendungen konkret demonstriert werden.
Vorwort und Danksagung
Die vorliegende Arbeit ist während meiner Tätigkeit an der Otto-von-Guericke-Universität Magdeburg und am Institut für Pflanzengenetik und Kulturpflanzenforschung
(IPK) Gatersleben entstanden. Die initiale Idee des Dissertationsthemas entstand während der Arbeit am DFG-Projekt Modellierung und Animation regulatorischer Gen”
wirknetze“ (MARG), das während der ersten Projekthälfte an der Otto-von-GuerickeUniversität Magdeburg in der Arbeitsgruppe Bioinformatik durchgeführt wurde. Nach
der Auflösung der Arbeitsgruppe und der Verlagerung des Projektes an die Universität Bielefeld, entstand die Möglichkeit, die Dissertation am IPK in verschiedenen
Bioinformatikprojekten fortzuführen und so eine direkte Verbindung zu biologischen
Forschungsbereichen aufzubauen. Durch diesen Umstand verstärkte sich der Fokus der
Arbeit auf die Erforschung und Implementierung einer praxistauglichen Datenbankintegrationslösung in der Bioinformatik.
Mein erster Dank gilt insbesondere Prof. Dr. Ralf Hofestädt als Betreuer der Dissertation sowie Prof. Dr. Georg Paul, Dr. habil. Patrick Schweizer und Dr. Uwe Scholz,
die mir durch ihre fördernde und kooperative Projekt- und Arbeitsgruppenleitung den
nötigen Freiraum zur kontinuierlichen Bearbeitung meiner Dissertation gewährten. Ein
besonderer Dank gilt weithin Prof. Dr. Gunter Saake, der als Koreferent die direkte
Betreuung an der Universität Magdeburg übernahm und Dr. Falk Schreiber, der als
Koreferent am IPK die Dissertation begleitete.
Das besonders freundschaftliche und kommunikative Wesen vieler ehemaliger Kollegen verdanke ich die Aufrechterhaltung einer virtuellen, über viele Orte und Projekte
verteilten Arbeitsgruppe, was mir insbesondere als herrvorangende Diskussions und Kooperationsplattform sowie nicht zuletzt als unerbitterlicher Antrieb diente. In diesem
Zusammenhang möchte ich mich bei Dr. Sören Balko, Dr. Andreas Freier, Dr. Jacob
Köhler, Roland Schnee, Dr. Uwe Scholz, Andreas Stephanik und Dr. Thoralf Töpel
bedanken.
Durch die Zusammenarbeit und Diskussion mit Wissenschaftlern des IPK in den
Bereichen Bioinformatik und Molekularbiologie wurden entscheidende Impulse zur Anwendung des in der Arbeit vorgestellten Datenbankintegrationssystems auf bioinformatischen Fragestellungen gegeben. Somit möchte ich mich insbesondere bei Prof. Dr.
Lothar Altschmied, Steffen Flemming, Dr. Ivo Grosse, Vasudev Kumanduri, Christian Künne, Christian Klukas, Dirk Koschützki, Dr. habil. Patrick Schweizer, Dr. Ralf
Sigmund, Dr. Nese Sreenivasulu und Stephan Weise für konstruktive Diskussionen und
Ideen bedanken. In diesem Zusammenhang geht insbesondere mein Dank an Thomas
Münch, Heiko Miehe, Steffen Thorhauer und Fred Kreuzmann für die technische und
organisatorische Unterstützung.
Die Realisierung eines großen Umfanges von Implementierungen wäre ohne die Arbeit
vieler Studenten und Diplomanden nicht möglich gewesen. So gilt mein Dank Lars Kägebein, Matthias Klapperstück, Thomas Krahmer, Stefanie Kreide, Michael Ortmann,
Marco Reinke, Karl Spies und Michael Soffner.
Darüber hinaus möchte ich mich bei der Deutschen Forschungsgemeinschaft (DFG),
beim Bundesministerium für Bildung und Forschung (BMBF), bei der Kurt-Eberhard-
Bode-Stiftung sowie beim Land Sachsen-Anhalt für die Förderung verschiedener Projekte bedanken.
Für das intensive und aufopferungsvolle Korrekturlesen und Kommentieren des Manuskripts gilt mein Dank Dr. Sören Balko, Birgit Lange, Roland Schnee, Dr. Uwe Scholz,
Andreas Stephanik und Dr. Thoralf Töpel. Erst durch diese Arbeit wurden teils unverständliche Absätze und Satzkonstruktionen lesbar und die Tippfehler erheblich reduziert.
Die positive Erfahrung eines herzlichen und freundschaftlichen Arbeitsklimas an der
Universität Magdeburg und am IPK möchte ich an dieser Stelle ganz besonders hervorheben. Somit möchte ich mich bei allen Mitarbeitern des Genomzentrums und des
Instituts für Technische und Betriebliche Informationssysteme für die vielen aufmunternden und persönlichen Gespräche und Gesten bedanken. Herausheben möchte ich
dabei auch die geduldige Einführung in Fragen der praktischen Biotechnologie durch
Bettina Brückner, Susanne König und Ines Walde.
Ein ganz besonderer Dank gilt meinen Eltern und Großeltern, die mir meinen Lebensweg ermöglichten, sowie meinem kleinen Bruder Dirk Lange, dessen Kraft und
Kreativität mir ein Vorbild sind.
Der größte Dank jedoch gebührt meinen drei Jungs, deren Energie, impulsive Lebensfreude und Individualität ein großes Geschenk sind sowie meiner einzigartigen Frau für
ihre Liebe, die Kinder und dafür, daß sie mir meine Ecken und Kanten läßt.
Matthias Lange
Magdeburg, November 2005.
Inhaltsverzeichnis
Abbildungsverzeichnis
vii
Tabellenverzeichnis
ix
Verzeichnis der Abkürzungen
xi
1 Einführung
1
1.1 Einordnung und Problembeschreibung . . . . . . . . . . . . . . . . . .
1
1.2 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2 Grundlagen
5
2.1 Molekulare Genetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.1.1
DNA als Träger der genetischen Information . . . . . . . . . . .
5
2.1.2
Genexpression . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.1.3
Proteine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.2 Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.2.1
Datenbanksysteme . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.2.2
Datenmodellierung . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.2.3
Datenformate . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.2.4
Anfragesprachen . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.2.5
Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.3 Verteilte Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
2.3.1
Multidatenbanksysteme . . . . . . . . . . . . . . . . . . . . . .
28
2.3.2
Homogene Multidatenbanksysteme . . . . . . . . . . . . . . . .
29
2.3.3
Heterogene Multidatenbanksysteme . . . . . . . . . . . . . . . .
30
2.3.4
Integrationskonflikte . . . . . . . . . . . . . . . . . . . . . . . .
38
2.4 Resümee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
i
3 Datenbankintegration in der Bioinformatik
3.1
3.2
3.3
Datenbanken in der Molekularbiologie . . . . . . . . . . . . . . . . . . .
45
3.1.1
Charakterisierende Besonderheiten . . . . . . . . . . . . . . . .
45
3.1.2
Datenformate und Datenzugriff . . . . . . . . . . . . . . . . . .
49
3.1.3
Datenqualität . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
Integration molekularbiologischer Datenbanken . . . . . . . . . . . . . .
61
3.2.1
Architekturen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
3.2.2
Stand der Technik . . . . . . . . . . . . . . . . . . . . . . . . .
64
3.2.3
Sequence Retrieval System . . . . . . . . . . . . . . . . . . . . .
65
3.2.4
PEDANT/BioRS . . . . . . . . . . . . . . . . . . . . . . . . . .
66
3.2.5
DiscoveryLink . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
3.2.6
BioKleisli/K2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
3.2.7
Andere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
Resümee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
4 Ansatz zur Integration molekularbiologischer Datenbanken
4.1
4.2
4.3
4.4
4.5
ii
45
75
Relationales Integrationsdatenmodell . . . . . . . . . . . . . . . . . . .
76
4.1.1
Basisdatenmodell . . . . . . . . . . . . . . . . . . . . . . . . . .
76
4.1.2
Schlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
4.1.3
Abbildung auf das Relationenmodell . . . . . . . . . . . . . . .
80
Datenschemata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
4.2.1
Remote Export Schema (RES) . . . . . . . . . . . . . . . . . . .
83
4.2.2
Adapterschema (AS) . . . . . . . . . . . . . . . . . . . . . . . .
84
4.2.3
Integriertes Nutzerschema (IUS) . . . . . . . . . . . . . . . . . .
86
Integrationsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
4.3.1
Basisoperationen . . . . . . . . . . . . . . . . . . . . . . . . . .
89
4.3.2
Datenquellenanfragen . . . . . . . . . . . . . . . . . . . . . . . .
92
4.3.3
Anfragepläne . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
Verarbeitung von Datenfragen . . . . . . . . . . . . . . . . . . . . . . .
98
4.4.1
Abbildung relationaler Datenanfragen auf das IUS . . . . . . . .
99
4.4.2
Komposition von Anfrageplänen . . . . . . . . . . . . . . . . . . 101
4.4.3
Ausführung von Anfrageplänen . . . . . . . . . . . . . . . . . . 103
4.4.4
Relationale Auflösung der Anfrageresultate . . . . . . . . . . . . 109
Resümee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5 Datenbankintegrationssystem BioDataServer (BDS)
113
5.1 Architektur einer nutzerspezifischen Datenbankintegration . . . . . . . 114
5.1.1
Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.1.2
Systemarchitektur . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.2 Mediatorsystem des BioDataServer . . . . . . . . . . . . . . . . . . . . 119
5.2.1
Nutzerspezifischen Datenschemata . . . . . . . . . . . . . . . . . 121
5.2.2
Schnittstelle des BioDataServer . . . . . . . . . . . . . . . . . . 123
5.2.3
TCP/IP-basierte BDS-Kommunikationsprotokoll . . . . . . . . . 126
5.2.4
SQL-Dialekt des BioDataServer . . . . . . . . . . . . . . . . . . 129
5.3 Implementierungsaspekte des Mediators . . . . . . . . . . . . . . . . . 134
5.3.1
JAVA Quellkode . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.3.2
SQL Implementierung des BioDataServer . . . . . . . . . . . . . 136
5.3.3
Implementierung von Verbundoperationen . . . . . . . . . . . . 137
5.3.4
Parallelisierung der Adapteranfragen . . . . . . . . . . . . . . . 138
5.4 Adapter für den BioDataServer . . . . . . . . . . . . . . . . . . . . . . 140
5.4.1
Angewandte Methoden zur Adaptererstellung . . . . . . . . . . 143
5.5 Resümee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6 Anwendungen des Integrationsdienstes
149
6.1 Datenimportwerkzeug Debbie . . . . . . . . . . . . . . . . . . . . . . . 150
6.2 Datenbankbrowser- und Explorationswerkzeug DBOra . . . . . . . . . 151
6.2.1
DBOra-Datenbrowser . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.2
Berechnung von Data Linkage Graphs . . . . . . . . . . . . . . 154
6.2.3
Funktionsklassifikationen mittels Data Linkage Graphs . . . . . 156
6.3 Anwendung in der Medizinischen Informatik . . . . . . . . . . . . . . . 157
6.4 Integrationsdatenbanken für Genwirknetze (iUDB) . . . . . . . . . . . 160
6.5 Semantische Metadatenbank (SEMEDA) . . . . . . . . . . . . . . . . . 161
6.6 Web-Anwendung zur Analyse von Stoffwechselwegen (phpMetatool) . . 163
6.7 Funktionale Annotationen von Pflanzen-ESTs im CR-EST-Informationssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.8 Resümee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7 Zusammenfassung und Ausblick
169
7.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
iii
7.2
Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
7.3
Schlußbemerkung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
A Ausgewählte Schnittstellen und Datenformate
175
A.1 EMBL-flat-file Datensatz . . . . . . . . . . . . . . . . . . . . . . . . . . 175
A.2 GenBank-flat-file Datensatz . . . . . . . . . . . . . . . . . . . . . . . . 176
A.3 GenBank-ASN.1 Datensatz . . . . . . . . . . . . . . . . . . . . . . . . . 177
A.4 UniProt DTD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
A.5 BioPerl Beispiel zum Zugriff auf die GenBank . . . . . . . . . . . . . . 179
A.6 BioPython Beispiel zum Zugriff auf die GenBank . . . . . . . . . . . . 179
A.7 BioJava Beispiel zum Zugriff auf die GenBank . . . . . . . . . . . . . . 179
A.8 CORBA/JAVA Beispiel zum Zugriff auf EMBL . . . . . . . . . . . . . 180
A.9 SOAP/JAVA Beispiel zum Zugriff auf KEGG . . . . . . . . . . . . . . 181
B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
183
B.1 BDS JAVA-Klassen für integrierte Nutzerschemata . . . . . . . . . . . 183
B.2 BDS JAVA-Interface für die Adapter . . . . . . . . . . . . . . . . . . . 186
B.3 Beispiel eines IUS-Nutzerschemas . . . . . . . . . . . . . . . . . . . . . 189
B.4 Ausgabe des BDS-Kommunikationsprotokolls zum KEGG-Adapterschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
B.5 Ausgabe des BDS-Kommunikationsprotokolls zum BRENDA-Adapterschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
B.6 Parameterdateien zur Generierung des KEGG-Adapters . . . . . . . . . 199
Literaturverzeichnis
iv
203
Abbildungsverzeichnis
1.1 Zukunft der Informationsverarbeitung in der Biotechnologie aus [3] . .
2
2.1 Anordnung und Verknüpfung der Nukleotide in der DNA-Doppelhelix
aus [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.2 Schema der Expression des genetischen Materials bei Eukarioten . . . .
8
2.3 Schema der RNA-Synthese nach [8] . . . . . . . . . . . . . . . . . . . .
8
2.4 Abschnitt der Primärstruktur und eine gefaltete Polypeptidkette des Arginase-Proteins aus der PDB-Datenbank [13] . . . . . . . . . . . . . . .
10
2.5 Graphische Darstellung des Harnstoffzyklus und Metabolismus der Aminogruppen aus [14] . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.6 Software-Architektur eines DBMS aus [15] . . . . . . . . . . . . . . . .
14
2.7 Drei-Ebenen-Schema-Architektur aus [15] . . . . . . . . . . . . . . . . .
16
2.8 Notation für Basiselemente eines E/R-Modells . . . . . . . . . . . . . .
18
2.9 Notation ausgewählter UML-Sprachelemente . . . . . . . . . . . . . . .
21
2.10 Veranschaulichung von Konzepten des Relationenmodells . . . . . . . .
24
2.11 Verteilte Datenhaltung . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
2.12 Taxonomie von Multidatenbanksystemen aus [33] . . . . . . . . . . . .
29
2.13 Architektur eines homogenen Multidatenbanksystems aus [33] . . . . .
30
2.14 Allgemeine Struktur eines Föderierten Datenbanksystems aus [37] . . .
31
2.15 5-Ebenen-Schema-Architektur aus [38] . . . . . . . . . . . . . . . . . .
32
2.16 Schematischer Aufbau einer Mediator-Wrapper-Architektur nach [36] .
34
2.17 Mediatorhierarchie zur Modularisierung und Bündelung der Datenintegration nach [39] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.18 ETL-Prozeß eines Data Warehouses im Überblick aus [44]
35
. . . . . . .
37
2.19 Beispiel einer Partitionierung und Allokation . . . . . . . . . . . . . . .
40
3.1 Datenwachstum ausgewählter molekularbiologischer Datenbanken [59] .
46
v
3.2
Schematische Darstellung der Datenaustauschformatklassen molekularbiologischer Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3
Middleware-Architektur für etablierte Datenbankschnittstellen in der
Bioinformatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4
49
57
Einordnung der Annotationsfehler für 398 Gene des Chlamydia trachomatis Genoms aus [105]
. . . . . . . . . . . . . . . . . . . . . . . . . .
61
3.5
Szenario der Datenbankintegration in der Bioinformatik aus [123] . . .
64
3.6
Systemarchitektur von BioRS aus [126] . . . . . . . . . . . . . . . . . .
67
3.7
Systemarchitektur von DiscoveryLink aus [127] . . . . . . . . . . . . . .
68
3.8
Systemarchitektur von BioKleisli aus [117] . . . . . . . . . . . . . . . .
70
4.1
3-Ebenen-Schemaarchitektur des Integrationsansatzes . . . . . . . . . .
83
4.2
Schematischer Prozeß von Datenanfragen auf Attributen aus dem IUS .
96
4.3
Graph von Anfrageabhängigkeiten von subgoals . . . . . . . . . . . . .
97
5.1
Schematische Darstellung der Systemarchitektur des BDS aus [136] . . 118
5.2
UML-Komponentendiagramm des BDS . . . . . . . . . . . . . . . . . . 120
5.3
UML-Klassendiagramm der Nutzerschemata . . . . . . . . . . . . . . . 122
5.4
Syntaxdiagramm der IUS-Nutzerschemata . . . . . . . . . . . . . . . . 123
5.5
Screenshot des IUS-Schemaeditors . . . . . . . . . . . . . . . . . . . . . 124
5.6
UML-Zustandsdiagramm der Kommunikationsschnittstelle des BDS . . 125
5.7
UML-Aktivitätsdiagramm der BDS Client-Server-Kommunikation . . . 125
5.8
Syntaxdiagramm der Kommandos des BDS-Kommunikationsprotokolls
5.9
UML-Sequenzdiagramm zur Abfrage des BDS-Serverstatus . . . . . . . 128
126
5.10 UML-Sequenzdiagramm zur Authentifizierung am BDS . . . . . . . . . 128
5.11 UML-Aktivitätsdiagramm einer Datenanfrage . . . . . . . . . . . . . . 129
5.12 Syntaxdiagramm des BDS-SQL-Dialekts aus [143] . . . . . . . . . . . . 131
5.13 Komponenten des JDBC-Frameworks . . . . . . . . . . . . . . . . . . . 133
5.14 Aktivitätsdiagramm einer JDBC-Datenquellenverbindung . . . . . . . . 134
5.15 Binärbaum zu einer Beispiel SQL-Selektionsbedingung . . . . . . . . . 137
5.16 Ausführungsschema von Adapteranfragen . . . . . . . . . . . . . . . . . 139
5.17 UML-Klassendiagramm der Adapter . . . . . . . . . . . . . . . . . . . 141
5.18 UML-Aktivitätsdiagramm einer Adapterdatenanfrage . . . . . . . . . . 143
6.1
vi
Screenshot des Datenbankimportwerkzeugs Debbie . . . . . . . . . . . . 152
6.2 Screenshot des DBOra-Datenbankbrowsers . . . . . . . . . . . . . . . . 153
6.3 Beispiel von Data Linkage Graphs“ aus DBOra . . . . . . . . . . . . . 155
”
6.4 Prozeß der metabolischen Klassifikation von EST-Sequenzen . . . . . . 156
6.5 Systemarchitektur des Genotyp-Phänotyp-Analysesystems aus [147] . . 158
6.6 Screenshots der webbasierten graphischen Nutzerschnittstelle des Genotyp-Phänotyp-Analysesystems aus [147] . . . . . . . . . . . . . . . . . . 160
6.7 Systemkomponenten des iUDB-Systems aus [156] . . . . . . . . . . . . 161
6.8 Screenshot des iUDB-Network-Designers aus [156] . . . . . . . . . . . . 162
6.9 Screenshot der SEMEDA Web-Oberfläche . . . . . . . . . . . . . . . . 164
6.10 Schematische Darstellung der Bedienschritte des phpMetatools aus [158] 165
6.11 Screenshots aus dem Informationssystem CR-EST . . . . . . . . . . . . 166
vii
Tabellenverzeichnis
2.1 Genetischer Code zur Übersetzung der mRNA in Aminosäuren aus [9] .
9
2.2 Datenmodelle und populäre Anfragesprachen . . . . . . . . . . . . . . .
23
2.3 Systemheterogenitäten ausgewählter Beispieldatenbanken . . . . . . . .
39
3.1 Genutzte Methoden für molekularbiologische Datenbanken nach [57] . .
47
3.2 Klassifizierung von Identifikatoren molekularbiologischer Datenbanken .
48
3.3 Klassifizierung von Datenschemata für molekularbiologische Datenbanken 54
3.4 Qualitätsskala für Annotationsreproduzierbarkeit in Datenbanken (TABS) 60
3.5 Klassifizierung von Integrationsansätzen . . . . . . . . . . . . . . . . .
62
5.1 Kommandos der BDS-Kommunikationsschnittstelle . . . . . . . . . . . 127
5.2 Kostenklassifikation der Adapterschemaerstellung . . . . . . . . . . . . 146
ix
Verzeichnis der Abkürzungen
API
AS
ASCII
ASN.1
BDS
BLOB
CAS
CGI
CORBA
CPL
CVS
DB
DBI
DBMS
DCOM
DDB
DDBMS
DDL
DHGP
DLG
DML
DNA
DNS
DTD
DW
DWDB
ER
EST
ETL
FDBS
FTP
GaV
GIF
GUI
HTML
IDL
IIOP
Application Programming Interface
Adapter Schema
American Standard Code for Information Interchange
Abstract Syntax Notation One
BioDataServer
Binary Large Object
Chemical Abstract Service
Common Gateway Interface
Common Object Request Broker Architecture
Collection Programming Language
Concurrent Versions System
Datenbank
Database Independent Interface for Perl
Datenbankmanagementsystem
Distributed Component Object Model
Distributed Databases
Distributed Databases Management System
Data Definition Language
Deutsches Humangenomprojekt
Data Linkage Graph
Data Manipulation Language
Deoxyribonucleic Acid
Desoxyribonukleinsäure
Data Type Definition
Data Warehouse
Data Warehouse Datenbank
Entity/Relationship
Expressed Sequence Tag
Extraktion-Transformation-Laden
Föderiertes Datenbanksystem
File Transfer Protocol
Global-as-View
Graphic Image Format
Graphical User Interface
Hyper Text Markup Language
Interface Definition Language
Internet Inter-ORB Protocol
xi
IP
IUS
JDBC
JDK
JSP
JVM
KDBS
LaV
MDBS
NCBI
NFS
NRC
ODBC
OLAP
OOM
OODBMS
ORDBMS
OQL
OWL
PHP
PS
PL/SQL
RDF
RDBMS
RES
RMI
RNA
RNS
RPC
SGML
SMILE
SOAP
SQL
SSH
UML
URL
WSDL
WML
WWW
XML
xii
Internet Protocol
Integrated User Schema
Java Database Connectivity
Java Development Kit
Java Server Page
JAVA Virtual Machine
Komponentendatenbanksystem
Local-as-View
Multidatenbanksystem
National Center for Biotechnology Information
Network File System
Nested Relational Calculus
Open Database Connectivity
On-Line Analytical Processing
Objektorientierte Modellierung
Objektorientiertes Datenbankmanagementsystem
Objektrelationales Datenbankmanagementsystem
Object Query Language
Web Ontology Language
PHP: Hypertext Preprocessor
Postscript
Procedural Language/Structured Query Language
Resource Description Framework
Relationales Datenbankmanagementsystem
Remote Export Schema
Remote Method Invocation
Ribonucleic Acid
Ribonukleinsäure
Remote Procedure Call
Standard Generalized Markup Language
Simplified Molecular Input Line Entry Specification
Simple Object Access Protocol
Structured Query Language
Secure Shell
Unified Modeling Language
Uniform Ressource Location
Web Service Description Language
Wireless Markup Language
World Wide Web
Extensible Markup Language
Kapitel 1
Einführung
Der Fortschritt in der Molekularbiologie, beginnend bei der experimentellen Datenakquisition zu einzelnen Genen und Proteinen, über die post-genomics“-Technologien,
”
wie etwa DNA-Arrays“ oder Proteomics“, bis hin zur integrativen Bioinformatik mit
”
”
dem Ziel der Erfassung von Gesamtzusammenhängen ganzer biologischer Systeme [1],
bedingt steigende Erfordernisse an die elektronische Datenverarbeitung. Daneben ist die
permanente Entwicklung und Akzeptanz der Internettechnologie essentiell für den Umgang mit diesen genomischen Informationen. Die Entwicklung geht von webbasierten
Systemen zum proprietären Datenzugriff über leistungsfähige Protokolle zum einfachen
und schnellen Datenaustausch bis hin zum verteilten Rechnen und verteilten Datenbanken. Diese Entwicklungen gehen einher mit dem Einsatz von Datenbank-ManagementSystemen (DBMS) zur Verwaltung von immer komplexer werdenden Datenstrukturen
sowie zur Abbildung stark vernetzter Genomics“- und Proteomics“-Daten, sowie de”
”
ren Analyse [2]. Aktuelle Arbeiten zur konsistenten Klassifizierung und eindeutigen
Definition der in den Datenbanken modellierten biologischen Objekte, u. a. mittels Ontologien, verbunden mit Methoden der Wissenverarbeitung, der Informationsextraktion
und des Data Mining“, bilden Schlüsselkonzepte für die zukünftige Biotechnologie und
”
somit auch für die Bioinformatik [3].
1.1 Einordnung und Problembeschreibung
Die vorliegende Arbeit ist dem Bereich der angewandten Informatik zuzuordnen. Dabei
werden Verfahren und Methoden aus dem Bereich der Informationssysteme und Datenbanken identifiziert, die zur Lösung bioinformatischer Fragestellungen aus dem Bereich
Datenbankintegration anwendbar sind. Der Fokus wurde auf die Unterstützung eines
integrativen und homogenen Zugriffs auf molekularbiologische Datenquellen und deren
möglichst nahtlose Einbettung in Frameworks zur Datenanalyse gelegt. Somit werden
bekannte Theorien aus dem Bereich der Informatik mit der Notwendigkeit konfrontiert,
bestehende Techniken der Datenhaltung und des Datenzugriffs nutzen zu müssen. Die
Aufgabe ist es, die Gegebenheiten der Bioinformatik zu nutzen, diese mit Techniken der
Informatik zur Datenbankintegration zu kombinieren, um eine in der Praxis einsetzbare
Lösung zu gewinnen.
Wie eingangs angedeutet, nehmen Datenbanken eine zentrale Rolle in der Biologie bzw. Molekularbiologie ein und sind Basis vieler Analysen mittels Methoden aus
1
Kapitel 1 Einführung
Abbildung 1.1: Zukunft der Informationsverarbeitung in der Biotechnologie aus [3]
der Bioinformatik. Durch den gegebenen Umstand, daß unterschiedlichste Ansätze der
Datenmodellierung, -speicherung und Datenanfragen existieren, die Datenbanken aber
derart zusammenhängen, daß erst mit der ganzheitlichen Betrachtung ein für biologische Forschungen nutzbarer Kontext ensteht, ist die Bereitstellung von Methoden
zur Überwindung der damit verbundenen Datenverteilung und Heterogenität eine sehr
wesentliche Aufgabenstellung. Dies erklärt wiederum die Bedeutung der Datenbankintegration in der Bioinformatik. Denn ohne geeignete computerunterstützte Methoden
kann das volle Potential des in Form von Daten erfaßten Wissens der biologischen
Grundlagenforschung nur durch immer größer werdenden zeitlichen Aufwand genutzt
werden. Es sollte prinzipiell dem Trend entgegen gewirkt werden, daß Wissenschaftler
einen nicht unwesentlichen Teil ihrer Zeit mit Aufgaben der manuellen Datenakquisition, Bereinigung, Konvertierung und Integration verbringen [4].
So werden gerade das Internet und Web-Services“ als primäre Medien für die elektro”
nische Veröffentlichung von Forschungsergebnissen genutzt [5]. Insbesondere die massive
Bereitstellung von Daten zu molekularbiologischen Forschungsergebnissen und die damit zu beobachtende, teils anarchische Vorgehensweise bezüglich der benutzten Technologien, Datenstrukturen und Zugriffsschnittstellen stellt eine besondere Herausforderung für die Informatik dar. Das Potential der im Web vorhandenen Daten muß
durch Methoden zur Wissensableitung genutzt werden. Ein wesentlicher Teil ist dabei
2
1.2 Aufbau der Arbeit
die Überwindung der Datenverteilung und der damit verbundenen Heterogenität, um
ganzheitliche Betrachtungen der Daten durchführen zu können.
Es werden in dieser Arbeit bekannte Theorien und Konzepte der Informatik auf die
Bioinformatik angewandt. Dabei besteht nicht der Anspruch, neue theoretische Ansätze
zur Datenbankintegration zu finden. Vielmehr wird ein anwendbares Softwaresystem
entwickelt und vorgestellt, das einige Kernprobleme der heterogenen Datenhaltung in
der Bioinformatik zu lösen versucht.
1.2 Aufbau der Arbeit
Nach diesen einleitenden Ausführungen werden im Kapitel 2 Grundlagen aus den Bereichen Molekularbiologie, Datenbanken sowie verteilter Datenbanken gelegt. Zum Verständnis der Besonderheiten molekularbiologischer Daten und deren notwendigen Abhängigkeiten untereinander werden, ausgehend vom Begriff des Gens, die Prozesse der
Translation und Transkription eingeführt, um auf die Rolle von Proteinen als ein wesentlicher Bestandteil komplexer biologischer Systeme, wie etwa dem Stoffwechsel, einzugehen.
Das Hauptaugenmerk wird im Grundlagenkapitel auf die Einführung von Begriffen
und Theorien aus dem Bereich der Datenbanken und der verteilten Datenbanken gelegt.
Dabei werden grundlegende Eigenschaften von Datenbanksystemen, Fragen der Datenmodellierung und -formate sowie Anfragesprachen und Schnittstellen soweit aufgearbeitet und vorgestellt, als daß sie als Grundlage und Vergleich für die in den folgenden
Kapiteln vorgestellten Lösungen maßgeblich sind. Die Ausarbeitungen zum Thema der
verteilten Datenbanken stellen zum einen Anforderungen und Probleme einer Datenbankintegration als auch eine Auswahl bekannter Architekturen vor, insofern diese auf
die erarbeiteten Lösungsstrategien der vorliegenden Arbeit Einfluß haben.
Im Kapitel 3 werden charakterisierende Merkmale und Besonderheiten von molekularbiologischen Datenbanken ausgearbeitet und etablierte Datenformate sowie Schnittstellen vorgestellt. Für die folgenden Kapitel wird hier empirisch die Begründung für
die notwendige Annahme gegeben, daß der Zugriff auf molekularbiologische Datenquellen beschränkten Zugriffsmustern unterliegt und gezeigt, um welche es sich handelt.
Weiterhin werden Ausführungen zu Aspekten der bewertbaren Datenqualität gemacht.
Anschließend erfolgt eine Vorstellung existierender Architekturen und im praktischen
Einsatz befindlicher Systeme zur Datenbankintegration in der Molekularbiologie.
Mit dem Kapitel 4 wird eine theoretische Lösung einer Datenbankintegration für
einen nur lesenden Zugriff auf molekularbiologische Datenquellen erarbeitet. Hierzu
werden vom relationalen Datenmodell und der relationalen Algebra abgeleitete Integrationsoperatoren vorgeschlagen, die zum einen die Anforderungen beschränkter Zugriffsmuster erfüllen und zum anderen den Ausgangspunkt für Abbildungsregeln von
schwach strukturierten Datenformaten molekularbiologischer Datenquellen auf das relationale Datenmodell bilden. Aus den eingeführten Integrationsoperatoren können dann
komplexe, hierarchische Datenanfragepläne erstellt werden, mit deren Hilfe eine transparente Zerlegung einer globalen Datenanfrage in Unterabfragen und deren Verteilung
3
Kapitel 1 Einführung
auf notwendige Komponentendatenbanken erfolgt. Die notwendigen Eigenschaften dieser Anfragepläne, Regeln zur Evaluierung von sogenannten Anfrageabhängigkeiten sowie deren Auflösung werden im Anschluß erläutert. Mit der Spezifikation von Regeln zur
Erstellung von integrierten, globalen Datenschemata wird dieses Kapitel abgeschlossen.
Auf Basis des Kapitels 4 wird im Kapitel 5 eine Client-Server-Softwarearchitektur entworfen, die zur Implementierung der zuvor vorgestellten Konzepte genutzt wird. Es folgt
die Erläuterung der konkreten, in Form des BioDataServers vorgenommenen Implementierung des Integrationssystems. Dazu werden die Implementierung des Integrationsalgorithmus zur Ausführung von statischen Anfrageplänen sowie die semiautomatische
Erstellung von Datenbankadaptern zur Umsetzung der Integrationsoperationen auf der
Ebene des Zugriffs auf die Komponentendatenbanken vorgestellt. Weiterhin wird auf
die im BioDataServer umgesetzte Cache-Strategie zum redundanzarmen Datenzugriff
eingegangen. Zur Nutzung des BioDataServers werden die entworfenen Zugriffsschnittstellen, die Spezifikation des implementierten “read only SQL Dialektes für Anfragen
”
eines integrierten Datenbestandes sowie die Möglichkeiten der entfernten Administration beschrieben.
Verschiedene Anwendungen des vorgestellten Datenbankintegrationsdienstes werden
im Kapitel 6 vorgestellt. Dabei stehen die direkte Nutzung von Datenabfragen über
integrierte molekularbiologische Datenbanken, die Anwendung des BioDataServers als
Datenimportwerkzeug für Data Warehouse Lösungen, die Einbindung in Analyse- und
Simulationsframeworks zu Fragestellungen im Zusammenhang mit biologischen Netzwerken sowie die Anwendung im Kontext einer semantischen Datenbankintegration im
Mittelpunkt.
Die Arbeit endet mit dem Kapitel 7, das die Ergebnisse der vorliegenden Arbeit zusammenfaßt und offene Fragestellungen überblicksartig diskutiert sowie einen Ausblick
auf weiterführende Untersuchungen gibt. Zu jedem der Inhaltskapitel 2 bis 6 wurde zur
Unterstützung der Gesamtlesbarkeit der Arbeit ein kurzes Resümee als Zusammenfassung des jeweiligen Kapitels angefügt.
Im abschließenden Anhang sind Beispiele zu Schnittstellen und Datenformaten zu
Kapitel 3 gegeben. Weiterhin sind hier, neben Beispielen zu Datenschemata und Adaptergrammatiken, Auflistungen von Spezifikationen zu den Kapiteln 4 und 5 zu finden.
4
Kapitel 2
Grundlagen
In diesem Kapitel sollen für das Verständnis der Arbeit grundlegende Erkenntnisse,
Techniken, Begriffe und Fragestellungen der Biologie, der Bioinformatik und der Informatik eingeführt werden. Da die vorliegende Arbeit interdisziplinär ausgerichtet ist,
d. h. die Informatik zur Lösung molekularbiologischer Fragestellungen genutzt wird, ist
dieses Kapitel dreigeteilt. Dabei liegt der Fokus auf der Informatik, insbesondere auf
dem Teilgebiet Informationssysteme und Datenbanken.
Im Abschnitt Molekulare Genetik werden Grundlagen aus dem Bereich der Molekularbiologie soweit eingeführt, wie sie für das Verständnis der Besonderheiten und Probleme
der Datenhaltung und -auswertung in diesem Wissenschaftsbereich wesentlich sind. Im
Abschnitt Datenbanken werden grundlegende Konzepte der Datenbanktheorie und etablierte Techniken erläutert, um im letzten Teil des Kapitels auf Aspekte der Verteilten
Datenbanken einzugehen.
2.1 Molekulare Genetik
Die Biologie und deren verwandte Teildisziplinen, wie etwa die Genetik1 , sind komplexe Wissenschaften. Diese Komplexität zeigt sich schon allein am Umfang biologischer
Prozesse, welche in den verschiedenen Organismen stattfinden. Dabei zeigen sich mikroskopische Regelkreise, die in ihrer Summe den Phänotyp, also Verhalten, Funktionen, Aussehen etc. eines Lebewesens bestimmen. Die Molekulargenetik oder auch die
Molekularbiologie befassen sich hierbei mit der Erforschung der biophysikalischen und
biochemischen Mechanismen von Lebewesen. Ein für diese Arbeit relevanter Überblick
über den aktuellen Forschungsstand der Molekularbiologie wird in diesem Abschnitt
soweit gegeben, wie dies für das weitere Verständnis der Arbeit notwendig erscheint.
Die folgenden Ausführungen stützen sich dabei auf die Lehrbücher [6, 7, 8, 9].
2.1.1 DNA als Träger der genetischen Information
Ausgangspunkt ist die Erkenntnis, daß die biologischen Vorgänge in einem Lebewesen ursprünglich von dessen Genen gesteuert bzw. bestimmt werden. Die Theorie einer
physischen Grundeinheit, dem Gen, das ein bestimmtes Merkmal eines Organismus bestimmt, existiert seit dem 19. Jahrhundert. Ab den 50er Jahren des 20. Jahrhunderts
1
Im ursprünglichen Sinne handelt es sich hier um die Vererbungslehre.
5
Kapitel 2 Grundlagen
war bekannt, daß die Desoxyribonukleinsäure (DNS/DNA)2 das eigentliche genetische
Material ist. Wie in Abbildung 2.1 veranschaulicht, existieren hierbei zwei, in Form einer Doppelhelix umeinander gewundene Polynukleotide [10]. Dabei handelt es sich bei
jedem Strang um eine Verkettung von genau vier biologischen Molekülen, die aufgrund
ihrer Phosphatgruppen zusammengehalten werden. Das sind die Nukleotide Adenin,
Thymin, Guanin und Cytosin. Aufgrund der chemischen Beschaffenheit der Basen dieser Moleküle können exakt zwei dieser Nukleotide, die sich über eine schwache Wasserstoffbrückenbindung verbinden können, ein Paar bilden. Auf diese Weise bilden Adenin
und Thymin sowie Guanin und Cytosin ein Basenpaar (abgekürzt bp). Die Folge ist,
daß sich zu einem DNA-Strang nur ein komplementärer Strang anlagern kann und so
die erwähnte Doppelhelix entsteht. Die Gesamtmenge der DNA eines Organismus bildet das Genom, welches somit alle genetischen Informationen eines jeden Lebewesens
kodiert.
Wird die dreidimensionale Struktur der DNA vernachlässigt, so genügt es, die DNA
durch einen Nukleotidstrang darzustellen. Abstrakt kann die DNA als Sequenz von vier
Buchstaben und deren Komplement dargestellt werden, die sich aus den Anfangsbuchstaben der erwähnten Nukleotide ergeben:
DNA-Strang:
DNA-Komplement:
AAGCTG
TTCGAC
Hierbei handelt es sich um eine schematische Schreibweise der Primärstruktur der DNA.
Ein Gen ist ein spezieller Abschnitt der DNA, der zwischen 75 bis 2.300.000 bp umfassen kann [7]. Die Nukleotidsequenz ist ein entscheidenes Merkmal eines Gens. Die
Anzahl der Gene in einem Organismus ist sehr unterschiedlich. So existieren bei der
Fruchtfliege ca. 13.000 Gene [11] und beim Menschen 25.000 bis 120.000 Gene [12].
Dabei ist aber die Anzahl der Gene kein Maß für die Komplexität eines Organismus.
Neben den genetischen Informationen bilden eine Vielzahl regulativer Mechanismen
ein komplexes Netzwerk, welches das Erscheinungsbild und die Funktionen in einem
Organismus bestimmt.
Außer der DNA existiert in den Zellen eines Organismus eine zweite Form von Polynukleotidketten, die Ribonukleinsäure (RNS/RNA)3 , welche den Hauptteil der Nukleinsäuren in den Zellen stellt. Ein wichtiges Unterscheidungsmerkmal zur DNA ist der
Austausch der Base Thymin durch Uracil (abgekürzt durch U), deren komplementäre
Base aber ebenfalls Adenin ist. Folglich kann ein RNA-Stück der Kopie eines komplementären DNA-Stückes entsprechen:
DNA-Strang:
RNA-Komplement:
AAGCTG
UUCGAC
Die meist als Einzelstränge vorliegenden RNA-Stücke (DNA-Kopien) nehmen bei der
Proteinsynthese (Translation) bestimmte Aufgaben wahr (siehe Abschnitt 2.1.2). In
2
Das korrekte deutsche Akronym ist DNS. In den folgenden Ausführungen wird auch die gebräuchliche, englische Abkürzung DNA (deoxyribonucleic acid) benutzt.
3
Ähnlich der DNA lautet das korrekte deutsche Akronym RNS. Es wird aber auch hier die englische
Abkürzung RNA (ribonucleic acid) benutzt.
6
2.1 Molekulare Genetik
Abbildung 2.1: Anordnung und Verknüpfung der Nukleotide in der DNA-Doppelhelix
aus [6]
diesem Zusammenhang werden nach ihren Aufgaben kategorisierte RNA-Arten in der
Zelle unterschieden.
2.1.2 Genexpression
Der als Genexpression bekannte Prozeß, der die Ausprägung der genetischen Information zu den Merkmalen beschreibt, so wie er durch Abbildung 2.2 illustriert wird, beginnt
mit der Herstellung einer RNA-Kopie eines Genabschnitts. Bei diesem als Transkription
bezeichneten Prozeß bindet sich ein Molekül eines speziellen Proteins, die RNA-Polymerase, an eine bestimmte DNA-Sequenz, den Promoter, der am Anfang eines Gens
steht. Dabei werden die beiden Stränge der DNA aufgewunden und die RNA-Polymerase bewegt sich auf der kodierenden Sequenz des Gens entlang. Die gelesene DNASequenz wird so zu einem komplementären mRNA-Strang synthetisiert (T durch U
ersetzt). Besondere Nukleotidsequenzen am Ende eines Gens signalisieren den Abbruch
7
mRNA
tRNA
Enzymprotein
Strukturprotein
Regulatorprotein
Rezeptorprotein
...
Merkmal
rRNA
Translation
DNA
Transkription
Kapitel 2 Grundlagen
Abbildung 2.2: Schema der Expression des genetischen Materials bei Eukarioten
der Transkription und sorgen für die Freisetzung der fertigen RNA und der anschließenden Neubildung der DNA-Doppelhelix. Abbildung 2.3 illustriert diesen Prozeß. Dabei
wachsender RNA− Strang
RNA− Polymerase
Syntheserichtung
neugebildete
DNA− Doppelhelix
originale
DNA− Doppelhelix
Bewegungsrichtung der RNA− Polymerase
Abbildung 2.3: Schema der RNA-Synthese nach [8]
spielen synthetische Teilstücke dieser RNA, die sogenannten Expressed Sequence Tags“
”
(ESTs), bei der Expressionsanalyse und funktionalen Annotation von Genen in der experimentellen Molekularbiologie eine wichtige Rolle, da über deren Konzentration in
der Zelle indirekt Rückschlüsse auf die Genaktivität möglich sind.
Bevor diese Transkriptionsprodukte ihre Funktionen für den nächsten Schritt der
Genexpression wahrnehmen können, müssen sie noch erhebliche molekulare Veränderungen durchlaufen, die sogenannte posttranskriptionale Prozessierung.
Die anschließenden, als Translation bezeichneten, Vorgänge setzen die Informationen
der mRNA in Aminosäuren um, von denen 22 verschiedene in Lebewesen vorkommen,
davon 20 im Menschen. Die Übersetzung der mRNA in Aminosäuren basiert auf Kodierungseinheiten. Genau drei Nukleotide bilden hierbei sogenannte Codons, die also 64
verschiedene Möglichkeiten der Nukleotidanordnung ermöglichen. Da direkte Abhängigkeiten zwischen Codons und den bei der Translation synthetisierten Aminosäuren
nachgewiesen wurden, kann eine Regel, der genetische Code, zur direkten Abbildung
8
2.1 Molekulare Genetik
1. Position
U
C
A
G
U
Phe (F)
Phe (F)
Leu (L)
Leu (L)
Leu (L)
Leu (L)
Leu (L)
Leu (L)
Ile (I)
Ile (I)
Ile (I)
Met (M)/Start
Val (V)
Val (V)
Val (V)
Val (V)
2. Position
C
A
Ser (S) Tyr (Y)
Ser (S) Tyr (Y)
Ser (S)
Stop
Ser (S)
Stop
Pro (P) His (H)
Pro (P) His (H)
Pro (P) Gln (Q)
Pro (P) Gln (Q)
Thr (T) Asn (N)
Thr (T) Asn (N)
Thr (T) Lys (K)
Thr (T) Lys (K)
Ala (A) Asp (D)
Ala (A) Asp (D)
Ala (A) Glu (E)
Ala (A) Glu (E)
G
Cys (C)
Cys (C)
Trp (W)/Stop
Trp (W)
Arg (R)
Arg (R)
Arg (R)
Arg (R)
Ser (S)
Ser (S)
Arg (R)
Arg (R)
Gly (G)
Gly (G)
Gly (G)
Gly (G)
3. Position
U
C
A
G
U
C
A
G
U
C
A
G
U
C
A
G
Tabelle 2.1: Genetischer Code zur Übersetzung der mRNA in Aminosäuren aus [9]
von Codons auf Aminosäuren4 mit der Tabelle 2.1 angegeben werden. Bis auf wenige
Ausnahmen gilt dieser Code universell für alle Lebewesen. Die Aminosäuren werden als
dreibuchstabige Abkürzung oder als einbuchstabiges Symbol wiedergegeben, das entsprechend in Klammern steht. Dabei kommt einigen Codons eine Sonderfunktion zu.
Sie bestimmen den Start- bzw. den Endpunkt des Ablesevorgangs der mRNA und sind
deshalb entsprechend bezeichnet. Um die Informationen der Codons in Aminosäuren
umzusetzen, binden die mit Aminosäuren beladenen tRNAs, beginnend am Startcodon,
an die mRNA Codons. Dies ist möglich, da die tRNA mit entsprechenden Anticodons
ausgestattet ist, bei denen es sich um Komplemente der Codons handelt. So können
die an der tRNA gebundenen Aminosäuren zu einer Sequenz geordnet werden, bis ein
Stopcodon erkannt wird.
2.1.3 Proteine
Die grundlegenden Funktionen und Eigenschaften eines Organismus werden durch Proteine bestimmt. Wie bei der DNA besteht ein Protein aus einer oder mehreren Molekülketten, den sogenannten Polypeptide. Der Grundbaustein sind hierbei Aminosäuren.
Die Abfolge der Aminosäuren und die räumliche Form der Polypeptide eines Proteins
4
In der zugrundeliegenden Quelle werden nur 20 Aminosäuren beachtet. Die Zeitschrift Science berichtete aber, daß im Mai 2002 die bisher unbekannte 22. Aminosäure Pyrrolysin entdeckt wurde.
Die 21. Aminosäure Selenocystein wurde bereits im Jahr 1986 entdeckt.
9
Kapitel 2 Grundlagen
bestimmen dessen biologische Funktion. Nach groben Schätzungen enthält z. B. der
menschliche Organismus 50.000 verschiedene Proteine [9], die häufig als Familien vorkommen aber sehr spezialisierte Funktionen besitzen. Abbildung 2.4 zeigt einen Ausschnitt der räumlichen Struktur und der Aminosäuresequenz eines Proteins.
gefaltetes Polypeptid
Aminosäuresequenz
mkpisiigvp mdlgqtrrgv dmgpsamrya gvierlerlh ydiedlgdip
igkaerlheq gdsrlrnlka vaeaneklaa avdqvvqrgr fplvlggdhs
iaigtlagva khyerlgviw ydahgdvnta etspsgnihg mplaaslgfg
hpaltqiggy spkikpehvv ligvrsldeg ekkfirekgi kiytmhevdr
lgmtrvmeet iaylkertdg vhlsldldgl dpsdapgvgt pviggltyre
shlamemlae aqiitsaefv evnpildern ktasvavalm gslfgeklm
Abbildung 2.4: Abschnitt der Primärstruktur und eine gefaltete Polypeptidkette des
Arginase-Proteins aus der PDB-Datenbank [13]
Zu den Aufgaben von Proteinen gehören Syntheseaktivitäten, wie sie z. B. für die
Bildung von DNA, RNA oder der Katalyse von biochemischen Reaktionen in den Zellen
notwendig sind. Diese speziellen Proteine werden als Enzyme bezeichnet. Auch diese
Syntheseaktivitäten werden wiederum durch Proteine reguliert. Proteine sorgen dafür,
daß Signale von Zelle zu Zelle übermittelt werden, transportieren schlecht wasserlösliche Stoffe, wie z. B. Sauerstoff, und leiten Ionen durch Zellmembranen. Außerdem
bilden Proteine viele Strukturbausteine, die Form und Beweglichkeit der Zellen und
Organismen bestimmen.
Zu den grundlegenden Vorgängen in einem Organismus, von denen dessen Erscheinungsbild und Funktion abhängen, gehören die biologischen Stoffwechselwege (engl.
Pathways). Hierbei werden drei Klassen unterschieden: (1) metabolische und biochemi-
10
2.1 Molekulare Genetik
sche, (2) Transkription, Genregulation, Proteinsynthese und (3) Signalwege. Alle drei
Arten haben eine Gemeinsamkeit: sie beschreiben funktionale Beziehungen zwischen
Molekülen. So beschreibt die 1. Klasse die Gesamtheit aller chemischen Umsetzungen
basierend auf komplexen biochemischen Reaktionen. Die beteiligten Stoffe werden als
Substrate bezeichnet. Bei enzymatisch katalysierten Reaktionen spielen eine Vielzahl
von Einflüssen eine Rolle, auf die in dieser Arbeit nicht weiter eingegangen wird. So
läßt sich die Enzymaktivität eines Enzyms (E) vereinfacht durch die Menge von Ausgangsstoffen (A) und Reaktionsprodukten (P) beschreiben. Es ist zu beachten, daß
eine Reaktion durchaus reversibel ablaufen kann, was durch die Richtung der Pfeile
symbolisiert wird:
E : A1 + ... + An ⇌ P1 + ... + Pm
So läßt sich zum Beispiel die vom Enzym Arginase (siehe Abbildung 2.4) katalysierte
biochemische Reaktion wie folgt schreiben:
EArginase : L − Arginine + H2 O ⇌ L − Ornithine + Urea
Diese biochemischen Reaktionen bilden einen wichtigen Bestandteil des biologischen
Gesamtsystems eines Organismus, den Stoffwechsel. In Abbildung 2.5 ist ein Stoffwechselweg dargestellt, der einem Teil des Gesamtstoffwechsels entspricht. Der Stoffwechsel
ist ein offenes, räumlich kompartimentiertes System komplexer chemischer Prozesse,
das ein Gleichgewicht zwischen den zu- und abfließenden Stoffen bildet.
Mit dieser Einführung in den Stoffwechsel und den weiteren, im vorliegenden Kapitel beschriebenen Begriffen und Erkenntnissen aus dem Bereich der Molekularbiologie
wurde die Grundlage für das Verständnis der folgenden Kapitel gelegt. Dabei ist hier
keinesfalls eine erschöpfende Ausarbeitung vorgenommen worden, da einige ebenso interessante aber für die vorliegende Arbeit nicht maßgebliche Aspekte, wie etwa die
Genregulation oder die Zellbiologie, nicht eingeführt wurden. Der Fokus liegt vielmehr
auf dem Aufbau eines Kontextes zu den folgenden Ausarbeitungen der spezifischen
Eigenschaften der Datenverwaltung und -integration in besonderer Beachtung der Biologie als Anwendung der Informatik. Für weitergehende Informationen zu dem Bereich
der Molekularbiologie wird auf die eingangs diesen Kapitels aufgeführte Literatur verwiesen.
11
Kapitel 2 Grundlagen
Abbildung 2.5: Graphische Darstellung des Harnstoffzyklus und Metabolismus der
Aminogruppen aus [14]
12
2.2 Datenbanken
2.2 Datenbanken
Bei der systematischen Erfassung von Forschungsergebnissen der Molekularbiologie
stellt die Nutzung von Datenbanken eine essentielle Komponente dar. Das stetig steigende Volumen von Daten erfordert entsprechende Methoden zur dauerhaften Speicherung
derselben. So umfaßt z. B. allein das Genom des Menschen etwa 3 ∗ 109 Basenpaare.
Würde hierbei jedes Nukleotid relativ großzügig durch ein Byte codiert, so müßten für
die Speicherung der vollständigen DNA-Primärstruktur des Menschen ca. 2,8 GByte
aufgebracht werden. Betrachtet man in Relation dazu die komplexen Strukturen und
Vorgänge in der Menge aller Organismen, so bekommt man einen Eindruck von dem
gesamten Datenaufkommen, das verwaltet werden muß. Daneben spielt die systematische und vor allem effiziente Verarbeitung gerade dieser Daten eine weitere wesentliche
Rolle. Es ist somit für eine praktikable Erforschung der molekularbiologischen Zusammenhänge unerläßlich, moderne Computertechnik und Informatikmethoden zu nutzen,
was die Teildisziplin Bioinformatik kennzeichnet.
Aus diesem Grund wird in diesem Abschnitt ein Überblick über die sich aktuell
bietenden Möglichkeiten und Techniken der Informatik, insbesondere der Datenbanksysteme gegeben. Darüber hinaus wird gezeigt, welche Datenbankmethoden zur Zeit
in der Bioinformatik Anwendung finden und diese anhand ausgewählter Datenbanken
und Informationssysteme erläutert.
2.2.1 Datenbanksysteme
Der Begriff Datenbank wird nicht nur in der Informatik vielfältig genutzt und meint im
allgemeinen eine Sammlung von zueinander in Beziehung stehender Daten [15]. Dabei
werden Daten in der gleichen Literaturquelle als im Rechner speicherbare Fakten mit
implizierter Bedeutung definiert. Daneben existieren restriktivere Definitionen, etwa
in [16]. Hierbei wird eine Datenbank als Sammlung von Daten definiert, die durch
ein Datenbank-Management-System (DBMS)5 verwaltet werden. In der vorliegenden
Arbeit wird das Wort Datenbank im Sinne von [15] benutzt. Dies macht vor allem in
Bezug auf die evolutionär gewachsenen molekularbiologischen Datenbestände Sinn, die
oftmals keineswegs Eigenschaften eines DBMS besitzen.
In der Praxis sollte davon ausgegangen werden, daß eine Datenbank weitere Eigenschaften besitzt, die sie von einfachen Datensammlungen“ unterscheidet. Die Daten
”
haben einen festen Bezug zu einem bestimmten Anwendungsszenario, sie stehen untereinander in bestimmten Beziehungen und werden hinsichtlich bekannter oder angenommener Anwendungs- bzw. Nutzeranforderungen bereitgestellt. Da der Zweck von
Datenbanken das Anlegen, die Pflege, die Verarbeitung und der Zugriff auf Daten ist,
wird somit eine Sammlung von Software notwendig, die das unterstützt und als Datenbank-Management-System bezeichnet wird.
Ein DBMS ist eine komplexe Software zur homogenen Verwaltung von Datenbanken.
Definitionen wie etwa in [15] bezeichnen ein DBMS als ein Mehrzweck-Softwaresystem,
5
An dieser Stelle wird aus Gründen der gebräuchlichen Terminologie auf eine Übersetzung in die
deutsche Sprache verzichtet.
13
Kapitel 2 Grundlagen
welches die Prozesse der Definition, Konstruktion und Manipulation von Datenbanken
für verschiedene Applikationen unterstützt. Einschränkendere Definitionen, so wie in
[16] bestimmt, fordern weiterhin, daß diese zu verwaltenden Datenbanken6 sowohl groß
als auch gemeinsam nutzbar sind, sowie deren Schutz und Zuverlässigkeit gewährleistet
werden. Der grundsätzliche Aufbau eines DBMS ist in Abbildung 2.6 illustriert.
Abbildung 2.6: Software-Architektur eines DBMS aus [15]
In [17] wurden neun allgemeine Anforderungen an ein DBMS formuliert, die zur
Definition des notwendigen Funktionsumfangs eines DBMS dienen. Diese sind:
1. Integration
Einheitliche Verwaltung aller benötigten Daten
2. Operationen
Bereitstellung von Operationen zum Einfügen, Ändern und Aufsuchen von Daten
3. Katalog
Zugriff auf Datenbeschreibungen
4. Benutzersichten
Funktionalität zur anwendungsspezifischen Bereitstellung von Datensichten
5. Konsistenzüberwachung
Gewährleistung der Korrektheit des Datenbankinhaltes und von Änderungsoperationen
6
Im englischen Text wird verallgemeinernd der Begriff Datensammlung benutzt.
14
2.2 Datenbanken
6. Datenschutz
Verhinderung eines unauthorisierten Datenzugriffs
7. Transaktionen
Zusammenfassung von Änderungsoperationen zu konsistent ausgeführten Einheiten
8. Synchronisation
Koordinierung konkurrierender Transaktionen
9. Datensicherung
Verhinderung von Datenverlusten nach Systemfehlern
Diese grundlegenden Eigenschaften eines DBMS sollten in einer konkreten Implementierung eines DBMS umgesetzt werden. Mittels Abstraktionen von der Gesamtfunktionalität zu Teilproblemen können entsprechend Teil-Architekturen entworfen werden,
durch die spezielle Aspekte des o. g. Anforderungskataloges modelliert werden und letztlich die Vorlage für Implementierungen bilden. Zwei Kernaspekte eines DBMS stellen
sicherlich die Konzepte der Datenschemata und Datenunabhängigkeit dar. Da insbesondere die Datenunabhängigkeit in der vorliegenden Arbeit von weiterer Bedeutung sein
wird, werden diese Prinzipien im folgenden anhand der Drei-Ebenen-Schemaarchitektur
eingeführt.
Drei-Ebenen-Schemaarchitektur
Das Ziel der Drei-Ebenen-Schemaarchitektur in Abbildung 2.7 ist es, die Datenbankanwendung des Nutzers von der physikalischen Datenbank, wie etwa eine Datei auf der
Festplatte eines Computers, zu trennen. In dieser Architektur werden drei Ebenen von
Schemata unterschieden:
1. Die interne Ebene beinhaltet das interne Schema und beschreibt die kompletten
Details der physischen Speicherung der Daten. Dazu zählen insbesondere Informationen, wie Dateistrukturen, Blockgrößen, Dateizugriffspfade und andere teils
betriebssystemabhängige Parameter.
2. Das konzeptuelle Schema dieser Ebene beschreibt in einem implementierungsunabhängigen Modell (siehe hierzu auch Abschnitt 2.2.2) die gesamte Datenbank.
Aspekte wie etwa Entitäten7 als Abbildung eines Realweltobjektes, Datentypen,
Beziehungen oder Konsistenzbedingungen sind so spezifizierbar.
3. Die externe Ebene enthält eine Anzahl von Nutzersichten auf die konzeptuelle
Ebene, die Sichten auf den Datenbestand festlegen. Dabei spielen anwendungsspezifische Erfordernisse eine Rolle, um etwa (Teil-)Entitäten zu verstecken oder
logisch neu zusammenzustellen. Das hier verwendete Modell muß dabei nicht dem
der 2. Ebene entsprechen.
7
Der Begriff Entität wird im Abschnitt 2.2.2 erläutert.
15
Kapitel 2 Grundlagen
Abbildung 2.7: Drei-Ebenen-Schema-Architektur aus [15]
Somit sind die Vorteile dieser Architektur, daß Anwendungen unabhängig von der physischen Speicherung der Daten implementiert werden können (physische Datenunabhängigkeit), was bestehende Anwendungen robust gegenüber Änderungen auf dieser
Ebene, wie z. B. Änderungen von Dateistruktur oder -format, der Veränderung von
Dateizugriffspfaden etc. macht. Positiv wirkt sich natürlich auch die somit hohe Abstraktionsstufe des Datenzugriffs aus, was sich u. a. in Portabilität, Wartbarkeit und
nicht zuletzt in Zeitersparnis bei der Implementierung von robusten Anwendungen bemerkbar macht.
Daneben wird die logische Datenunabhängigkeit gewährleistet, die Anwendungen unanfällig gegen Änderungen im konzeptionellen Schema macht. Das kann z. B. das Entfernen oder das Hinfügen von Attributen oder Konsistenzbedingungen einer Entität
sein, was dann gegebenenfalls Anpassungen am externen Schema notwendig macht.
Die Anwendung kann davon unberührt weiterarbeiten.
Um diese Architektur in eine konkreten Implementierung umzusetzen, sind Transformationen zwischen den drei Ebenen notwendig, um Datenoperationen von Anwendungen zu ermöglichen. Da diese sehr zeitintensiv sein können, wird bei einigen DBMS
mitunter auf die externe Ebene zugunsten der Geschwindigkeit verzichtet.
2.2.2 Datenmodellierung
In der vorliegenden Arbeit liegt in einigen Abschnitten der Schwerpunkt der Betrachtungen auf der Erfassung und Modellierung von Datenstrukturen, Abhängigkeiten etc.
Aus diesem Grund wird in diesem Abschnitt ein Exkurs in den Bereich der Datenmodellierung vorgenommen. Dies soll dem Leser eine Grundlage für die weiteren Kapitel
geben.
16
2.2 Datenbanken
Beim Entwurf eines Modells ist es eine sehr wichtige Aufgabe, eine geeignet abstrakte
Beschreibung der abzubildenden Wirklichkeit derart zu finden, daß nur die notwendigen
Fakten zur Beantwortung bekannter oder unbekannter Fragestellungen an das Modell
abgebildet werden. Dieser Anspruch ist sicherlich nicht zu erreichen, da zum Zeitpunkt
der Modellerstellung keine Aussagen über alle möglichen Fragestellungen an das Modell
möglich sind. Also werden mögliche Fragestellungen aufgrund zu erarbeitender Anforderungskataloge künstlich eingeschränkt. Bei der anschließenden Modellierung ist ein
geeignetes Optimum zwischen einem zu einfachen Modell, das nicht alle Fragestellungen
ermöglicht, und einem unnötig komplexen Modell zu finden.
Die Nutzung von Datenbanken zur strukturierten Speicherung von Daten geschieht
in der Regel mit einem bestimmten Ziel: der idealisierten Abbildung bzw. Erfassung
eines interessierenden Ausschnittes der Wirklichkeit (Diskursbereich, Universum) zur
Unterstützung von Wissensfindungen und Vorhersage bestimmter Eigenschaften. Dies
führt direkt zum Begriff des Modells. In [18] werden dazu verschiedene Arten von Modellen und deren Eigenschaften im Überblick genannt, die auch in der vorliegenden
Arbeit genutzt werden sollen.
Bei der Erstellung eines konzeptionellen Datenschemas eines Diskursbereiches sollte
darauf geachtet werden, daß jegliche Implementierungsaspekte und Aspekte der Aufbereitung für den Nutzer vollständig verborgen sind. Weiterhin müssen alle erlaubten
Zustände einer dem Modell entsprechenden Datenbank vorherbestimmt sein und jeder
gültige Zustand einem sinnvollen und möglichen Zustand des Diskursbereiches entsprechen. Somit ist zu folgern, daß die Datenmodellierung eine wesentliche Aufgabe ist, die
in der Praxis oftmals nicht hinreichend genug beachtet wird. Dies spiegelt sich mitunter in Inkonsistenzen der Daten oder einer nicht wiedergegebenen Umsetzbarkeit von
Fragestellungen des Diskursbereiches wider.
Ein semantisches Datenmodell [19] dient der Beschreibung eines konzeptionellen Modells in einer speziellen Sprache (Notation), die idealerweise kein Informatikwissen voraussetzt, aber auch mächtig genug ist, Aspekte des Diskursbereiches möglichst unmittelbar zu beschreiben. Dazu sind Wahrnehmungen aus dem Diskursbereich und
Beziehungen zwischen solchen Wahrnehmungen zu erfassen. Weitergehende Konzepte berücksichtigen auch dynamische und temporale Aspekte, was hier aber nicht weiter
betrachtet werden soll.
Im folgenden werden einige populäre Sprachen zur Datenmodellierung, die auch in
den nächsten Kapiteln genutzt werden, kurz beschrieben. Es kann hier nicht der volle
Umfang, insbesondere die Notationselemente und Sprachkonstrukte dargestellt werden.
Im Falle von UML werden einige Grundkonstrukte dieser Sprache eingeführt, da dies
die für die vorliegende Arbeit benutzte Modellierungssprache ist. Die Wahl fiel auf
UML, da sich während der Recherche zeigte, daß dies eine in der Bioinformatik weit
verbreitete Modellierungssprache ist, die zunehmend genutzt wird. Dies begründet sich
auch in dem Umstand, daß mit UML nicht nur Datenmodelle sondern auch andere
Arten von Modellen, wie etwa Prozessmodelle, entworfen werden können.
17
Kapitel 2 Grundlagen
Entity/Relationship-Modell
Das Entity/Relationship-Modell (E/R-Modell) [18] ist ein weit verbreitetes semantisches Datenmodell. Die Grundkonstrukte sind die Entitäten, die Attribute und die
Beziehungen.
1. Entitätstyp
Das Grundkonstrukt bei den E/R-Modellen ist die Entität, was einem Realweltkonzept entspricht, das in einer Datenbank abzubilden ist. Der Entitätstyp ist
dabei eine Abstraktion einzelner Entitäten.
2. Attributtyp
Eigenschaften von Entitäten werden durch Attribute näher beschrieben. Es können
pro Entität ein oder mehrere Attribute genutzt werden. Dabei können Attribute zu Attributtypen gruppiert werden, wie etwa rot“, gelb“, grün“ zu einem
”
”
”
Farbattribut.
3. Beziehungstyp
Da Entitäten im allgemeinen nicht voneinander isoliert sind, werden Beziehungen
zur Modellierung bereitgestellt. Auch hier wird ein abstrakter Typ, der Beziehungstyp, genutzt, um Beziehungen zu einer Aggregatbeziehung zu gruppieren,
wie etwa ist Blatt von“ oder ist Zellteil“. Einschränkungen der möglichen Enti”
”
täten, die an einer Beziehung teilnehmen, werden über Kardinalitäten vorgenommen.
Hierzu ist anzumerken, daß strikt zwischen den realen Ausprägungen (Instanzen, Exemplare) und den abstrakten Typen der genannten Konstrukte unterschieden wird. D. h.,
eine Entität ist z. B. eine Ausprägung eines Entitätstypes. Dies gilt analog für Attribute
und Beziehungen. In der Abbildung 2.8 ist die Notation für die genannten Basiskonzepte dargestellt. Es existieren zu diesen Basiskonzepten Erweiterungen, die zusätzliche
Modellierungskonstrukte unterstützen, wie etwa das erweiterte E/R-Modell.
Abbildung 2.8: Notation für Basiselemente eines E/R-Modells
18
2.2 Datenbanken
Unified Modeling Language
Bei der Unified Modeling Language (UML) [20] handelt es sich um eine universal einsetzbare Modellierungssprache und Notation, mit deren Hilfe sowohl statische Datenstrukturen als auch dynamische Abläufe beschrieben werden können. Dabei berücksichtigt UML die ganzheitliche Erfassung vieler Aspekte der Softwareentwicklung. Aus
dieser Motivation heraus wird die objektorientierte Modellierung (OOM) als Basis für
UML genutzt. Als Vorteile gegenüber der strukturierten Modellierung werden in [20]
folgende Argumente aufgeführt:
1. Ganzheitliche Arbeitsgegenstände
Verschmelzung von Daten und Operationen
2. Bessere Abstraktionsmöglichkeiten
Verschiebung der Modellierung vom Lösungs- zum Problembereich
3. Methodische Durchgängigkeit
alle Phasen der Softwareentwicklung arbeiten mit den selben Konzepten
4. Evolutionäre Entwicklung
Unterstützung einer evolutionären Entwicklung zur Weiterentwicklung und Verbesserung der Modelle
Dieser Argumentation folgend, wird auch in der vorliegenden Arbeit UML zur Modellierung eingesetzt. Zur Erhöhung der Lesbarkeit der folgenden Kapitel wird eine
überblicksartige Auflistung der wesentlichen Konstrukte von UML gegeben. Dabei wird
vorausgesetzt, daß der Leser mit den Ideen, die der OOM zugrunde liegen, vertraut ist.
Weitergehende Details können der angegebenen Literatur entnommen werden.
Ergebnisse einer UML-Modellierung sind Diagramme. Dabei werden in der vorliegenden Arbeit drei Diagrammtypen bzw. ausgewählte Subdiagramme genutzt. Diese
Auswahl aus den mit UML darstellbaren Diagrammen wird im folgenden kurz vorgestellt:
1. Klassendiagramm
Mittels folgender Konstrukte wird eine informale Definition der Semantik für eine
Menge von Objekten gegeben.
• Klassen
• Attribute
• Operationen
Analog zu Entitäten des E/R-Modells sind Objekte im System konkrete Ausprägungen (Instanzen, Exemplare) eines Entitätstypes, hier: einer Klasse. Attribute
sind (Daten-) Elemente, die gewisse Eigenschaftstypen von Klassen beschreiben.
Diese aus E/R-Modellen bekannten Konzepte werden durch Operationen erweitert.
19
Kapitel 2 Grundlagen
Klassen stehen untereinander in verschiedenen Beziehungen. Dabei werden nachfolgende Arten unterschieden:
• Generalisierung, Spezialisierung (Vererbung, Konkretisierung)
• Assoziation, Aggregation, Komposition (Objektverbindung, Abhängigkeiten)
2. Verhaltensdiagramm
Dient der Darstellung von dynamischen Modellsachverhalten; es werden folgende
Subdiagramme unterschieden:
a) Aktivitätsdiagramm
Darstellung von Aktivitäten, Objektzuständen, Zuständen, Zustandsübergängen und Ereignissen
b) Sequenzdiagramm
Beschreibt Objekte und ihre Beziehungen inklusive ihres zeitlich geordneten
Nachrichtenaustausches
c) Zustandsdiagramme
Darstellung von Zuständen, Zustandsübergängen und Ereignissen
3. Implementierungsdiagramm
Dient der Beschreibung der Implementierungsstruktur eines Softwareprojektes
a) Komponentendiagramm
Beschreibung der Beziehungen zwischen physischen Teilen eines Programmcodes
b) Verteilungsdiagramm
Darstellung der Topologie von auf Knoten verteilter Komponenten
Der hier gegebene Überblick zu UML und die in Abbildung 2.9 dargestellten Notationselemente sollen als Glossar dienen, um das Verständnis der in der vorliegenden Arbeit
entworfenen UML-Diagramme zu unterstützen.
Die Kombination von E/R-Modell und UML in den folgenden Kapiteln erfolgt u. a.
aus der Notwendigkeit, verschiedene Modellarten (relational, objektorientiert) beschreiben zu müssen. Dabei wurden die verschiedenen Vorteile, die das jeweilige Model bietet,
mit evolutionär und aus der Anwendungspraxis in der Bioinformatik entstandenen Gegebenheiten in Beziehung gesetzt. So wird bei der Datenschemamodellierung vorrangig
das E/R-Model eingesetzt. Wogegen für die Darstellung von Implementierungs- und
Verhaltensdiagrammen UML eingesetzt wird.
2.2.3 Datenformate
Die zuvor eingeführten Konzepte aus dem Gebiet der Datenmodellierung sind in dem
Sinne abstrakt, als daß hier noch keine implementierte Ausprägung des modellierten
20
2.2 Datenbanken
Abbildung 2.9: Notation ausgewählter UML-Sprachelemente
Sachverhaltes existiert. Vielmehr müssen die modellierten Datenschemata in eine durch
Computerprogramme verarbeitbare Form überführt werden. Die konkrete Anwendung
hierzu ist die Entwicklung von Strukturen zur persistenten Speicherung von Daten zu
einem konkreten Datenschema auf Sekundärspeichern, wie etwa auf Festplatten. Da in
der Praxis meist die Funktionalität eines Betriebssystems zum Zugriff und zur Verwaltung der Sekundärmedien genutzt wird, beziehen sich die genannten Speicherstrukturen
auf Dateien in einem Dateisystem. Somit kann folgende Definition gegeben werden:
Definition 2.1 (Datenformat) Ein Datenformat ist eine wohldefinierte Struktur zur
persistenten Speicherung von Daten in ein oder mehreren Dateien bzw. Dateiverbünden mit
dem Ziel der automatischen Verarbeitbarkeit durch ein Computerprogramm. Ferner sollte
sich ein Datenformat auf ein vorhandenes Datenschema beziehen, wobei alle modellierten
Konzepte durch die aufsetzenden Computerprogramme umsetzbar sein müssen.
2
21
Kapitel 2 Grundlagen
Der zweite Teil von Definition 2.1 ist absichtlich optional gelassen, da diese Forderung
nicht immer umgesetzt wird. Im Falle eines Direktzugriffes auf diese Dateien ohne die
Nutzung einer Middleware, wie etwa eines DBMS (siehe Abbildung 2.6), ist es notwendig, das Dateiformat zu kennen. Hierbei muß es möglich sein, ein Datenschema aus
dem jeweiligen Datenformat abzuleiten, was wiederum die Voraussetzung ist, damit
die in den Dateien abgelegten Daten von Anwendern und Softwareentwicklern verwendet werden können. Diesen Prozeß bezeichnet man als Reengineering. Der Grad der
Strukturierung des zugrundeliegenden Datenformates spielt dabei eine entscheidende
Rolle. In [21] werden dazu mehrere Klassen von Strukturierungskonzepten unterschieden. Die in folgender Aufzählung ausgewählten Konzepte treten in der Praxis durchaus
kombiniert oder hierarchisch geschachtelt auf:
1. Block
Hier werden logisch zusammenhängende Daten durch eindeutige Begrenzer (z. B.
Klammern oder Zeilenumbrüche) zusammengefaßt.
2. Liste
Dieses Konstrukt bildet ähnlich den Blöcken zusammenhängende Bereiche in einer Datei. Charakteristisch ist, daß die so separierten Bereiche als semantisch
gleichartig angesehen werden und so einem Attributtyp zugeordnet werden können.
3. Name-Wert-Paare
Ein weitverbreitetes Konstrukt zur starken Strukturierung sind Name-Wert-Paare. Hierbei werden Attributwerte (Daten) zu vorangestellten Attributnamen (Metadaten) zugeordnet.
4. Binäre Datensätze
Bei dieser Art der Strukturierung werden über einen sehr festen Bezug zur konkreten Implementierung Daten abgespeichert, so daß der Zugriff auf die einzelnen
Datensätze auf festen Positionsangaben in der Datei beruht. Dieses Format ist im
allgemeinen wenig für ein Reengineering geeignet.
5. Textuelle Datensätze
Im Gegensatz zu binären Datensätzen werden hier alle Variablentypen als ASCIIText gespeichert. Zum Unterscheiden der einzelnen Datensätze werden in der
Regel spezielle Trennzeichen eingesetzt.
6. Hypertexte und strukturierte Texte
Hier werden semantische Markups durch spezielle Schlüsselworte vorgenommen.
Dabei werden teilweise verschachtelte Blockstrukturen und Listen genutzt.
7. Schwache Strukturierung
Zahlreiche konkrete Formate kapseln wohlstrukturierte Daten in Freitext, was zu
einer Koexistenz von strukturierten und unstrukturierten Bestandteilen führt.
22
2.2 Datenbanken
Aus obiger Aufstellung sind in der Bioinformatik für den gezielten Datenaustausch vor
allem textuelle Datensätze als Listen von Name-Wert-Paare anzutreffen. Aber auch
der Einsatz von XML als eine Klasse der Hypertexte wird immer populärer. Im Gegensatz dazu sind die Ausgabeformate resultierend von direkten Datenanfragen über
eine Middleware oftmals der Klasse der schwach strukturierten Hypertexte zuzuordnen.
Weitergehende Ausführungen zu konkreten Datenformaten in der Bioinformatik sind
in Abschnitt 3.1.2 zu finden.
2.2.4 Anfragesprachen
Eine Grundforderung, um Daten gezielt nutzbar zu machen, ist die Bereitstellung
von Anfragemechanismen. Ähnlich den Anforderungen an die konzeptuelle Ebene der
DBMS-Architektur in Abschnitt 2.2.1 besteht hier die Forderung nach einer Abstraktion
vom Datenformat. Datenanfragen sollen also unabhängig vom genutzten physikalischen
Dateiformat sein und es ermöglichen, Daten nach zu spezifizierenden Kriterien zu extrahieren bzw. Operationen auf der Datenbank durchzuführen. Diese Forderung nach
Unterstützung von Datenbankoperationen wird durch Anfragesprachen umgesetzt. Diese basieren auf einem Datenmodell und leiten daraus ihre Ausdrucksstärke ab. Darüber
hinaus können zwei Typen von Anfragesprachen unterschieden werden: prozedurale und
deklarative. Im ersten Fall ist es notwendig, durch Schachtelung oder sequentielle Programmierung von Datenbankoperationen eine Anfrage umzusetzen. Im zweiten Fall ist
es ausreichend, die Resultatstruktur und die zu erfüllenden Eigenschaften zu definieren.
Das heißt, es wird spezifiziert, was“ abzufragen ist und nicht wie“. In diesem Kontext
”
”
wird eine Klassifizierung zu den in der Bioinformatik üblichen Datenmodellen und den
populärsten Anfragesprachen in Tabelle 2.2 gegeben. Ohne einen vollständigen ÜberDatenmodell
kein
hierarchisch
relational
objektrelational
objektorientiert
Anfragesprache
proprietär programmiert
XQL[22], XML-QL[23]
SQL[24]
SQL99[25]
OQL[26]
Typ
prozedural
deklarativ
deklarativ, prozedural
deklarativ, prozedural
deklarativ, prozedural
Tabelle 2.2: Datenmodelle und populäre Anfragesprachen
blick zu den einzelnen Anfragesprachen und der zugrundeliegenden formalen Semantik
geben zu wollen, werden nachfolgend kurz ausgewählte Beispiele von Anfragesprachen
vorgestellt.
Die Klasse der proprietären Anfragesprachen setzt sich im wesentlichen aus einfachen,
über Logikoperatoren verknüpfte Selektionsanfragen zusammen. Diese werden dann
auf indizierte Attribute A aus flachen Dateien, die in Form von Name-Wert-Paaren
strukturiert sind (siehe Abschnitt 2.2.3) oder unstrukturierten Textdateien abgesetzt:
σa=c | a ∈ A ∧ c ∈ Menge von jeweils zulässigen Textbausteinen
23
Kapitel 2 Grundlagen
Die Selektionsanfragen können boolsche Ausdrücke formen, wobei in der Regel die Operatoren ¬, ∧, ∨ unterstützt werden. Das heißt verallgemeinert, die Unterstützung einer
Teilmenge der Relationenalgebra mit eingeschränkten Selektions- und Projektionsprädikaten. Solche Anfragen richten sich nach keiner Standardsyntax, sondern werden häufig
mittels HTML-Formularen erfaßt und an die Datenbanken übermittelt (vergleiche hierzu auch Abschnitt 3.1). Ein Beispiel wäre etwa die Selektion aller Proteindaten zu den
Organismen Gerste oder Kartoffel:
σOrganism=’Barley’ ∨ σOrganism=’Potatoe’
In der Klasse der relationalen Anfragesprachen spielt sicherlich SQL die bedeutendste
Rolle und soll deshalb hier kurz eingeführt werden. SQL basiert auf dem relationalen
bzw. Tupelkalkül und somit auch auf der relationalen Algebra und auf dem relationalen
Datenmodell [27], das die Nutzung von tabellarischen Strukturen zur Datenverwaltung
formalisiert. Hier werden Entitäten der zu modellierenden Datenbankstruktur durch
Relationenschemata (Tabellen) beschrieben, die aus einer Menge von Attributen (Spalten) bestehen. Diesen werden Wertebereiche, sogenannte Domänen, zugeordnet. Eine
Relation ist nun eine Teilmenge des kartesischen Produktes über den Wertebereich aller Attribute eines Relationenschemas. Ein Element einer Relation heißt Tupel und
entspricht einer Tabellenzeile. Abbildung 2.10 soll dies veranschaulichen. Die Idee des
Abbildung 2.10: Veranschaulichung von Konzepten des Relationenmodells
relationalen Kalküls ist die Nutzung von tupelwertigen Variablen t, die jeweils an eine
Relation r gebunden sind. Dabei können die Komponenten der Tupel einzeln referenziert, d. h. mittels der Notation t.A benannt werden. Die Tupelbindung (rn ) an Relationen und für Tupelvariablen zu erfüllende Tupelbedingungen (ti ) werden in CON D
angegeben.
{t1 .A1 , . . . , tn .An | CON D(r1 (t1 ), . . . , rn (tn ), c1 , . . . ci )}
Bei der Spezifikation von mehreren Tupelbindungen in CON D wird das kartesische Produkt gebildet, das dann natürlich über entsprechende Tupelbedingungen eingeschränkt
werden kann. Die Tupelbedingungen sind dabei der Form:
c = ti .A op tj .B | op ∈ {=, >, ≥, <, ≤, 6=}
c = ti .A op k | k ist eine Konstante ∧ op ∈ {=, >, ≥, <, ≤, 6=}
24
2.2 Datenbanken
Diese können über die logischen Operationen ∧, ∨, ¬ miteinander zu boolschen Ausdrücken verbunden werden. Weitergehende Konstrukte, wie etwa Quantoren, werden
hier nicht weiter betrachtet.
Ein Beispielausdruck im relationalen Kalkül wäre z. B., alle Gennamen und Proteinnamen für alle Proteine zu ermittelt, die für einen bestimmten Organismus bekannt
sind:
r = {t.genname, t.proteinname | P rotein(t) ∧ t.organism = ’Barley’}
Die Anfragesprache SQL basiert auf dem relationalen Kalkül und stellt entsprechende
syntaktische Konstrukte zur Verfügung. Die allgemeine Struktur einer SQL-Anfrage ist:
select t1 .A1 , . . . , tn .An from t1 , . . . , tn where c1 . . . ci
Auf das obige Beispiel angewandt, lautet die entsprechende SQL-Anweisung:
select t.genname, t.proteinname from Protein as t
where t.organism = ’Barley’
Der Sprachumfang von SQL beschränkt sich aber nicht auf Datenanfragemöglichkeiten. Darüber hinaus existieren die Data Definition Language“ (DDL) und die Data
”
”
Manipulating Language“ (DML). Diese sind zur Manipulation und Definition von Relationenschemata bzw. für Datenänderungsoperationen auf Tupelebene einzusetzen.
2.2.5 Schnittstellen
Datenzugriffschnittstellen sind zur Kopplung zwischen Anwendungen und der Datenhaltungskomponente notwendig. Eine weitere Forderung an einen Datenzugriff besteht
also darin, daß die bereitgestellte Anfragesprache durch Programmiersprachen direkt
nutzbar ist. Es muß ein sogenanntes Application Programming Interface (API) bereitgestellt werden. Diese basieren auf den zugrundeliegenden Datenmodellen. Folgende Liste
bildet einen Auszug aus bekannten Kommunikationsschnittstellen zur Koppelung von
Anwendungen und Datenbanken.
• Lokaler Dateizugriff
Die wohl einfachste Technik um auf Daten zuzugreifen, ist die direkte Nutzung
von Dateien im lokalen Dateisystem eines Rechners. Hierzu zählen auch Netzwerkdateisysteme, wie etwa NFS, oder der Dateizugriff mittels Dateitransferprotokollen wie FTP oder RPC. Der Datenzugriff erfolgt durch das Parsen der gesamten
Dateien. Dabei ist das Datenformat bekannt, und so können Datenelemente extrahiert und in Datenstrukturen überführt werden. Hierzu existieren verschiedene,
vorgefertigte Parser, die durch APIs genutzt werden können, wie sie in Abschnitt
3.1.2 beschrieben sind.
• Remote Procedure Call (RPC)
Eine weitere Möglichkeit des Datenzugriffs ist der Aufruf von entfernten Methoden. Darüber hinaus bieten die nachfolgend aufgezählten Standards und Techniken erweiterte Funktionalitäten. Dies reicht von einfachen Methodenaufrufen bis
25
Kapitel 2 Grundlagen
hin zu verteilten Objektnetzwerken, Web-Services, Events- und Persistenzframeworks. Eine wesentliche Eigenschaft ist hier, daß eine Programmiersprachenunabhängigkeit besteht. Nachfolgend wird eine Auswahl der gängigsten Techniken
gegeben:
– CGI
– SOAP/XML-RPC [28]
– DCOM [29]
– .NET
– CORBA [30]
• DBMS-Anfrage-APIs
Natürlich handelt es sich bei DCOM, .NET und CORBA um Frameworks zur
Unterstützung der Arbeit mit verteilten Objekten. Die Reduzierung auf RPC
begründet sich in der praktischen Anwendung dieser Techniken im Kontext der
vorliegenden Arbeit. Im Kapitel 3 sind hierzu weitere Ausarbeitungen zu finden.
Die Nutzung von DBMS-Funktionalität zum entfernten Datenzugriff wird durch
eine Kombination aus Datenanfragesprache und APIs unterstützt. Zum einen
kann das durch die Einbettung von speziellen Datenbankzugriffsbefehlen in die
Programmiersprache oder zum anderen durch die Integration von Datenanfragesprache und Funktionsaufrufen in Form von APIs realisiert werden. Zu beobachten
ist hier eine direkte Bindung an eine Programmiersprache (Perl-DBI, PHP Datenbank-API). Auch sind DBMS-spezifische APIs nicht unüblich. Daneben existieren
vom DBMS abstrahierende Architekturen, wie etwa JDBC [31] oder ODBC [32].
26
2.3 Verteilte Datenbanken
2.3 Verteilte Datenbanken
Ein sehr interessanter Aspekt bei der Datenhaltung ist, neben dem zentralistischen Ansatz von DBMS aus Abschnitt 2.2.1, der der Verteilten Datenbanken. Da die vorliegende
Arbeit sich in den weiteren Kapiteln intensiv mit diesem Fakt aus der speziellen Sicht
der Bioinformatik befassen wird, wird hier eine allgemeine Problemspezifikation von
verteilter Datenhaltung gegeben.
Das Datenaufkommen in den verschiedenen Bereichen der Industrie, Verwaltung und
Wissenschaft wird durch unterschiedliche Techniken der Datenhaltung organisiert. Die
Vorstellung eines großen, zentralen DBMS, das von den verschiedensten Datenbankanwendungen, wie z. B. Datenbeschreibungs-, Manipulations- oder Anfragesprachen
genutzt wird, zeigt sich in der Bioinformatik als kaum realisierbar.
Vielmehr ist solch eine zentrale Instanz eines DBMS oftmals in kleinere, spezialisierte Komponenten-DBMS aufgeteilt. Eine derartige Verteilung der Daten, wie sie in
Abbildung 2.11 dargestellt wird, kann verschiedene Gründe haben. Das Datenvolumen,
administrative Aspekte, Optimierungsgesichtspunkte oder Sicherheitskriterien können
dabei eine Rolle spielen. Neben diesen technischen Aspekten, bei denen Lösungsstrategien denkbar sind, ist es auch bislang noch nicht umfänglich gelungen, ein einheitliches,
allgemein anerkanntes Datenschema für zumindest Teildisziplinen der Molekularbiologie zu schaffen, das letztendlich in einer zentralen Datenbank umgesetzt wird. Das hat
u. a. mit nationalen Förderungen der datenproduzierenden Forschungsprojekte oder
auch mit fehlender Koordinierung auf internationaler Ebene zu tun. Aber auch kommerzielle Interessen spielen zunehmend bei der absichtlich“ hervorgerufenen Daten”
bankheterogenität und -verteilung eine Rolle .
Literatur−
daten
Sequenz−
daten
Phänotyp−
daten
Expressions−
daten
Protein−
daten
Abbildung 2.11: Verteilte Datenhaltung
27
Kapitel 2 Grundlagen
Die so entstandene dezentrale Datenhaltung hat aber auch diverse Nachteile. So werden die Daten oft redundant gehalten, es existiert keine einheitliche Zugriffsschnittstelle
und die Struktur und das Datenschema zwischen den Datenbanken ist oft sehr divergent. Eine globale Zugriffsschnittstelle für die verteilten Datenbanken ist schon allein
aus diesen Gründen wünschenswert. Zu diesem Zweck wurden die Multidatenbanksysteme (MDBS) konzipiert. In diesem Kapitel wird eine Übersicht zu den verschiedenen
Architekturen und den Problemen von MDBS gegeben. Die folgenden Ausführungen
stützen sich dabei im wesentlichen auf [33, 34, 35].
2.3.1 Multidatenbanksysteme
Der Begriff Multidatenbanksystem (MDBS) kann als Oberbegriff für die Software zur
Organisation verteilter Datenbanken betrachtet werden. In [33] werden distributed databases (DDB) und distributed database management system (DDBMS) verwendet. Dabei
werden diese folgendermaßen definiert:
Definition 2.2 (DDB) Eine verteilte Datenbank kann als eine logisch integrierte Kollektion von gemeinsamen Daten definiert werden, die physikalisch über die Knoten eines
Computernetzwerkes verteilt sind.
2
Definition 2.3 (DDBMS) Ein verteiltes Datenbankmanagementsystem ist die Software, die nötig ist, um eine verteilte Datenbank derart zu verwalten, daß die Aspekte der
Verteilung transparent vor dem Nutzer sind.
2
In obigen Aussagen sind schon die grundsätzlichen Voraussetzungen enthalten, die ein
Multidatenbanksystem erfüllen muß, um als solches bezeichnet zu werden:
• die Daten sollten logisch zusammenhängen
• die Daten sind physikalisch in einem Netzwerk verteilt
• die Datenverteilung ist gegenüber den Anwendungen nicht sichtbar
Die an einem Multidatenbanksystem beteiligten Datenbanken werden dabei als lokale
Datenbanken oder auch als Komponentendatenbanken bezeichnet. Das Multidatenbanksystem an sich wird als globale Datenbank bezeichnet.
Es wurde schon an anderer Stelle erwähnt, daß verschiedene Architekturen für Multidatenbanksysteme existieren. Diese unterscheiden sich in der Realisierung der Verteilung und sind in zwei Klassen einzuteilen:
• homogen verteilte Daten
• heterogen verteilte Daten
28
2.3 Verteilte Datenbanken
In homogenen MDBS sind die lokalen Datenbanken in einem globalen Gesamtschema
eingeordnet, d. h. sie gehören logisch zusammen und sind physikalisch fragmentiert.
Dabei können mehrere Arten der Fragmentierung unterschieden werden. In diesem Fall
hat ein DDBMS die Aufgabe, diese Fragmentierung bei Datenzugriffen zu verbergen
und die Daten wieder geeignet zusammenzufügen. Einige weitere Ausführungen hierzu
werden im Abschnitt 2.3.2 gemacht.
Im Gegensatz dazu existiert bei heterogenen DDBMS kein globales Gesamtschema,
es muß explizit generiert werden. Die lokalen Datenbanken existieren unabhängig voneinander, und die Autonomie darf vom Multidatenbanksystem nicht angetastet werden.
Im Abschnitt 2.3.3 werden die damit verbundenen Probleme näher betrachtet.
Diese grobe Unterteilung läßt sich weiter verfeinern. In Abbildung 2.12 wird dazu
eine Übersicht zur Taxonomie der Multidatenbanksysteme gegeben, wie es in [33] vorgeschlagen wird. Auf die Charakteristika dieser Unterarten soll in dieser Arbeit nicht
Multidatenbanksysteme
homogen
autonom
heterogen
nicht−autonom
Integration mittles
DDBMS
komplette DBMS−Funktionalität
Integration mittels
Gateways
teilweise DBMS−Funktionalität
föderierte Systeme
lose Kopplung
nicht−föderierte Systeme
enge Kopplung
einzeln
mehrfach
Abbildung 2.12: Taxonomie von Multidatenbanksystemen aus [33]
weiter eingegangen werden.
2.3.2 Homogene Multidatenbanksysteme
Ein homogenes Multidatenbanksystem ist stark mit einem zentralen Datenbanksystem
verwandt. Der Unterschied besteht in dem physischen Speicherort, an dem die Daten
gespeichert werden. Wie der Name schon andeutet, geschieht dies bei einem zentralen
29
Kapitel 2 Grundlagen
DBMS an einer zentralen Stelle. Dagegen sind die Daten eines homogenen Multidatenbanksystems über verschiedene Rechner eines Netzwerkes verteilt gespeichert. Die
Eigenschaft homogen besagt, daß die Kontrolle der verschiedenen lokalen Datenbanken
allein dem MDBS obliegt. Der Zugriff erfolgt ebenso ausschließlich durch das MDBS.
Alle zugrundeliegenden lokalen Datenbeschreibungen werden aus diesem Grund in einem globalen Datenschema vereinigt. Es ist keine notwendige Voraussetzung lokaler
Datenbanken, daß ein DBMS oder ein explizites Schema lokal existiert. Auch diese
Punkte können vom MDBS übernommen werden. In Abbildung 2.13 ist die allgemeine
Architektur eines homogenen MDBS dargestellt.
Abbildung 2.13: Architektur eines homogenen Multidatenbanksystems aus [33]
2.3.3 Heterogene Multidatenbanksysteme
Die Klasse der heterogenen MDBS zeichnet sich im wesentlichen dadurch aus, daß
die beteiligten Komponentendatenbanksysteme (KDBS) zwar kooperieren, jedoch für
sich autonom sind. Die wohl wichtigste Eigenschaft solcher MDBS ist, daß neben der
globalen Nutzung der KDBS über ein MDBS auch der lokale Zugriff möglich ist. Dabei
darf aber die Autonomie der KDBS vom Multidatenbanksystem nicht verletzt werden.
Eine Unterart der heterogenen MDBS sind die Föderierten Datenbanksysteme (FDBS)
[34] sowie Datenbankmediatoren [36].
Im folgenden wird eine Einführung in die Problematik der Datenbankföderierung,
der Datenbankmediatoren und der Data Warehouses gegeben, da diese für das Szenario
eines molekularbiologischen Informationssystems von grundlegender Bedeutung sind.
30
2.3 Verteilte Datenbanken
Anwendungsbezogene Datenintegrationstechniken, wie etwa Frameworks zur Applikationsintegration bzw. Methodenintegration oder komponentenbasierte Frameworks
sollen an dieser Stelle nicht unerwähnt bleiben, werden aber ausschließlich im Kontext
des homogenen Datenzugriffs im Abschnitt 3.1.2 erwähnt. Darauf aufbauende Techniken, wie etwa Portale oder Workflowsysteme, spielen zwar in der Bioinformatik eine
wesentliche Rolle, haben aber zur Thematik der vorliegenden Arbeit einen nur indirekten Bezug.
Datenbankföderierung
In Abbildung 2.14 ist die grobe Struktur eines Föderierten Datenbanksystems dargestellt. Bei der Konzeption einer föderierten Datenbankstruktur und des FöderierungsGlobale
Anwendungen
Globale
Anwendungen
Föderierungsdienst
Lokale
Anwendungen
DBMS 1
...
DBMS n
DB 1
DB n
KomponentenDBS 1
KomponentenDBS n
Lokale
Anwendungen
Föderiertes Datenbanksystem
Abbildung 2.14: Allgemeine Struktur eines Föderierten Datenbanksystems aus [37]
dienstes stellen sich zuerst folgende Fragen:
• Wie werden Anfragen globaler Anwendungen auf die einzelnen Komponentensysteme aufgeteilt, von diesen bearbeitet, und wie werden die lokalen Anfrageergebnisse wieder zusammengesetzt?
• Dürfen globale Anwendungen Daten der an der Föderation beteiligten Komponentendatenbanksysteme ändern?
Entstehen dabei nicht Konflikte mit den lokalen Anwendungen?
Wie werden solche Konflikte vermieden oder aufgelöst?
• Welche Aufgaben hat der sogenannte Föderierungsdienst?
Darf er die Arbeit der Komponentendatenbanksysteme beeinflussen?
Wie kann er deren Arbeit zielgerichtet beeinflussen?
31
Kapitel 2 Grundlagen
Architektur Föderierter Datenbanksysteme
Im folgenden wird die 5-Ebenen-Schema-Architektur [38] vorgestellt. Die Besonderheit
dieses Architekturvorschlages ist, daß ein föderiertes Schema auf globaler, also übergeordneter Ebene, vorhanden ist. In dieser Architektur werden fünf verschiedene Arten
von Schemata unterschieden. In Abbildung 2.15 sind diese graphisch dargestellt.
externes Schema
externes Schema
föderiertes Schema
Exportschema
Exportschema
Komponentenschema
Komponentenschema
lokales Schema
lokales Schema
Datenbank
Datenbank
Abbildung 2.15: 5-Ebenen-Schema-Architektur aus [38]
Das lokale Schema beschreibt das konzeptionelle Schema eines Komponentendatenbanksystems. Hierbei handelt es sich um die implementierungsabhängige Beschreibung
aller Daten des Komponentensystems. Die lokalen Schemata liegen oftmals in unterschiedlichen Datenmodellen vor.
Um die Unterschiede in den Datenmodellen zu beseitigen, wird das lokale Schema in
ein einheitliches Datenmodell, das Komponentenschema, überführt. Dieses enthält die
gleichen Informationen wie die lokalen Schemata aber in einem einheitlichen Datenmodell.
Das Exportschema beschreibt einen Ausschnitt des Komponentenschemas, welcher
der Föderierung zur Verfügung gestellt wird. Um weitere Datenmodelltransformationen
zu vermeiden, wird auch hier das Datenmodell des Komponentenschemas genutzt.
Die Exportschemata aller Komponentensysteme werden zu einem globalen Schema,
dem föderierten Schema, zusammengefaßt. Diese Schemaintegration und die damit verbundenen Probleme werden im Abschnitt 2.3.4 näher beschrieben. Das föderierte Schema enthält die Beschreibung aller Daten, die durch die Exportschemata bereitgestellt
werden.
Beim externen Schema handelt es sich um eine, auf einzelne Benutzer oder Benutzergruppen zugeschnittene, Schnittstelle, welche die benötigten Daten in geeigneter Form
32
2.3 Verteilte Datenbanken
anbietet. Dafür können auch andere Datenmodelle als im föderierten Schema verwendet
werden.
Mediatoren
Im Gegensatz zur Datenbankföderierung wird bei der Mediator-Wrapper-Architektur,
die vor allem durch Wiederhold [36] populär wurde, nicht davon ausgegangen, daß die
zu integrierenden Komponentendatenbanksysteme kooperativ sind. Vielmehr wird hier
eine isolierende Autonomie der KDBS angenommen. Das heißt, die jeweilige KDBSInstanz wurde unabhängig als Einzellösung für spezielle Anwendungen entworfen und
implementiert. Eine kooperative Auslegung der KDBS zur Einbettung in ein Multidatenbanksystem ist dagegen nicht vorgesehen. Darüber hinaus ist davon auszugehen, daß
kein Exportschema vorliegt.
Bei der Mediator-Wrapper-Architektur werden die KDBS ohne verändernden Eingriff vollkommen autonom gelassen und somit ohne Unterstützung einer Integration,
wie etwa bei den FDBS, über Exportschema bzw. -schnittstellen integriert. Vielmehr
wird eine Vermittlerschicht, der sogenannte Mediator, eingesetzt, um eine integrierende
Sicht auf spezifische, interessierende Ausschnitte der KDBS bereitzustellen. Weiterhin
gilt hier erweitert, daß über KDBS im Sinne eines DBMS hinaus auch weitere Datenquellen, wie z. B. dynamische WWW-Seiten, Methodenaufrufe oder komplexe Informationssysteme, als Komponentensysteme bei dieser Architektur dienen können. Diese
Flexibilität erscheint insbesondere im Zusammenhang mit Web-Datenbanken, die ihren
Inhalt mittels HTML oder eigener XML-Formate präsentieren und über HTTP oder
weitere Protokolle zugreifbar sind, geeignet.
Ebenso wie im Falle von Föderierten Datenbanken ist bei der Mediator-WrapperArchitektur eine Schemahomogenisierung und -integration notwendig. Diese und weitere Aufgaben werden von Softwaremodulen, den Wrappern, übernommen, welche die
Datenquellen kapseln. Der Zugriff vom Mediator erfolgt somit nicht direkt auf die Datenquellen sondern indirekt mittels der Wrapper. Die beschriebene Architektur ist in
Abbildung 2.16 dargestellt.
Dabei übernimmt der Mediator [39, 35] folgende Aufgaben:
1. einheitliche, zentrale Sichten auf die Datenquellen
2. Selektion und Zugriff der für eine Datenanfrage relevanten Datenquellen
3. Filterung und Integration der gewonnenen Daten
4. Zusammenfassung und Strukturierung der Anfrageergebnisse
5. Auslieferung der Anfrageergebnisse an die Anwendung
Der Wrapper hat danach folgende Kernfunktionen zu erfüllen:
1. wrapperübergreifend homogenisierter Export von Schemainformationen
2. Bereitstellung homogener Datenanfrage und -zugriffsfunktionalität
33
Kapitel 2 Grundlagen
Abbildung 2.16: Schematischer Aufbau einer Mediator-Wrapper-Architektur nach [36]
3. Informationen zu den Wrapperfähigkeiten bzgl. Datenschema, -anfrage und Dateneigenschaften
Die Mediator-Wrapper-Architektur ist eine lose Datenbankintegrationsarchitektur,
bei der ein großes Maß an Flexibilität möglich ist. Vor allem hinsichtlich der vollkommenen Autonomie insbesondere dahingehend, daß die Datenquellen nicht zwingend die
Fähigkeiten eines DBMS aufweisen müssen, und daß die Anwendungen des Mediators
sehr robust gegenüber Änderungen des Datenschemas, der Schnittstelle oder der Anfragesprache auf der Seite der Datenquellen sind. Vor allem der Aspekt der zentralen
Sichten ist hier ein wesentlicher Vorteil. Bei Änderungen an einem oder mehreren Komponentendatenschemata müssen nur die betroffenen Views angepaßt werden. Dies kann
auch gegebenenfalls auf Mediator-Ebene erfolgen. So müssen nicht zwingend die Datenschemata der Datenquellen zu einem neuen Gesamtschema integriert werden, wie
das etwa bei einem FDBS denkbar wäre. Dies trifft ebenfalls für Änderungen der Anfragesprache oder der Schnittstelle von Datenquellen zu.
Hier zeigt sich aber auch der Nachteil dieser Architektur: Da Mediator und Wrapper
die zuvor aufgezählte Funktionalität bereitstellen, sind bei entsprechenden Änderungen bei den Datenquellen die zentralen Sichten und/oder die Wrapper anzupassen. Im
schlimmsten Fall ändert sich eine Datenquelle derart, daß der entsprechende Wrapper
34
2.3 Verteilte Datenbanken
neu implementiert werden muß. Aber hier kommt der Vorteil der starken Modularisierung zum Tragen, da eben nur die unmittelbar betroffenen Module gewartet bzw. angepaßt werden müssen, ohne daß weitere Module oder gar Anwendungen/Datenquellen
davon betroffen sind.
Eine weitere Eigenschaft von Mediatoren ist im Zusammenhang mit dem WWW
erkennbar. Dieses Medium erfreut sich großer Popularität zur Bereitstellung von Datenbankinhalten. Somit ist auch die Anzahl der möglicherweise zu integrierenden Datenbanken sehr hoch. Aktuelle Schätzungen kategorisieren etwa in der Bioinformatik
über 550 Datenbanken [40]. Somit wäre ein gesamtintegrierender Ansatz nicht sinnvoll,
da ein derart hochintegriertes Schema zu viele Konflikte zu lösen hätte und, wie die Erfahrung zeigt, relativ häufige Schemaänderungen bei WWW-Datenbanken vorhanden
sind. Weiterhin kann die Mediator-Wrapper-Architektur, wie in Abbildung 2.17 dargestellt, hierarchisch aufgebaut werden, um die Komponenten möglichst klein und somit
wartbar zu machen [39]. So sind z. B. datendomänenspezifische Mediatoren denkbar,
die nach Bedarf gekoppelt werden können aber getrennt wartbar sind.
Abbildung 2.17: Mediatorhierarchie zur Modularisierung und Bündelung der Datenintegration nach [39]
Somit lassen sich die Vorteile eines mediatorbasierten Ansatzes mit besonderer Beachtung der Gegebenheiten der Datenbanken in der Molekularbiologie wie folgt zusammenfassen:
1. Eine vollständige Schemaintegration in ein einheitliches globales Datenschema,
wie bei FDBS vorgeschlagen, ist bezüglich der aufgeführten Konflikte sehr komplex. Folglich wird die anwendungsgetriebene Schemaintegration ausgewählter
Schemateile der Komponentendatenbanken propagiert.
2. Die Menge der zu integrierenden Datenbanken ist derart dynamisch, daß dies
einen Ansatz verlangt, der gegenüber häufigen Änderungen der Exportschemata
35
Kapitel 2 Grundlagen
der Komponentendatenbanken robust ist. Ziel ist es, stabile globale Datenschemata zu gewährleisten.
3. Verschiedene Nutzerklassen haben eine unterschiedliche Sicht des zu modellierenden integrierten Schemas. So kann auch hier der Einsatz von verschiedenen
Sichten, die durchaus auf die gleichen Komponentenschemata Bezug nehmen, als
Vorteil gewertet werden. Dies entspricht einem expliziten Strukturkonflikt, wie er
in Abschnitt 2.3.4 beschrieben ist.
4. Die Komponentendatenbanken besitzen sehr divergente Mächtigkeiten bezüglich der unterstützen DBMS-Funktionalität. Diese reichen von voll unterstützten
DBMS bis hin zu einfachen flachen Dateien ohne unterstützte Anfragesprachen.
5. Die Strukturierung der Daten kann von unstrukturiert bis semistrukturiert reichen, was ebenfalls eine Integration durch ein FDBS verhindert. Vielmehr ist
gerade hier ein Sichtenkonzept in Verbindung mit flexibler Einbindung von divergentesten Datenquellen, wie sie ein Mediator bietet, vorteilhaft.
Mediatorsysteme lassen sich hinsichtlich der Korrespondenz zwischen den lokalen
Schemata der Datenquelle und dem globalen Mediatorschema in zwei Klassen unterscheiden: dem Global-as-View-Ansatz (GaV) und dem Local-as-View-Ansatz (LaV) [41].
Beim GaV-Ansatz wird das globale Schema als Sicht über den lokalen Schemata definiert. Dagegen wird beim LaV-Ansatz von einem globalen Schema ausgegangen, über
das die lokalen Schemata als Sichten definiert werden, die somit nur Ausschnitte des
Schemas sowie der Extensionen beinhalten.
Data Warehouses
Eine weitere Möglichkeit zur Datenbankintegration sind die Data Warehouses (DW).
Die ursprüngliche Entwicklung dieser Datenbankintegrationsarchitektur entstammt der
Unternehmens- oder Wirtschaftsinformatik. Die von der heutigen Anwendung in der
Bioinformatik abweichende ursprüngliche Zielsetzung dieser Architektur wurde mit dem
Ziel entworfen, als Entscheidungshilfe für eine Unternehmensführung zu dienen. Der
Begriff des Data Warehouses wurde zuerst in [42] charakterisiert. Dabei sollen die zu
integrierenden Daten:
• nicht anwendungsbezogen wie die operativen Daten sein,
• verschiedene Anwendungen und Datenbestände einbeziehen,
• die Zeit als bewertbare Bezugsgröße enthalten und
• über einen längeren Zeitraum bestehen
Gleichwohl sind die hier propagierten Eigenschaften in der Anwendung von Data
Warehouses in der Bioinformatik in dieser ursprünglichen Form weniger relevant. Vielmehr wird in [43] eine physikalisch materialisierte, integrierte Sicht auf verteilte Datenquellen als DW bezeichnet. Somit sind in der Bioinformatik die entscheidungsunterstützenden Elemente, der zeitliche Aspekt sowie der operative Charakter der integrierten
36
2.3 Verteilte Datenbanken
Daten weniger zwingend. Vielmehr wird von multidimensionalen bewertbaren Bezugsgrößen, die über die Zeit als ursprünglich einzige Dimension hinausgehen, ausgegangen.
Das heißt, daß in der Bioinformatik eher die Data Warehouse Datenbank (DWDB) in
direkter Verbindung mit der als Extraktion-Transformation-Laden“-Prozeß (ETL) um”
gesetzten Datenbankintegration gemeint ist. Eine solche Architektur ist in Abbildung
2.18 dargestellt und orientiert sich an dem ETL-Prozeß eines zentralen Data Warehouses, wie er in [44] im Überblick beschrieben wird. Der ETL-Prozeß gliedert sich dabei
Abbildung 2.18: ETL-Prozeß eines Data Warehouses im Überblick aus [44]
in vier Schritte:
1. Filterung
Im Rahmen der Filterung erfolgt znächst die Anbindung der unterschiedlichsten
internen und externen Datenquellen über entsprechende Schnittstellen, wie z. B.
ODBC oder JDBC. Darüber hinaus sollten Extraktions- und Transformationswerkzeuge auch flat-file-Formate und weitere Datenzugriffsschnittstellen unterstützen. Die Funktionalität ist hier mit Wrappern aus Abschnitt 2.3.3 vergleichbar. Im Zuge der Extraktion erfolgt die Selektion der Basisdaten in eine sogenannte Staging Area. Hier erfolgt eine temporäre Zwischenspeicherung der importierten
Rohdaten, um diese von systematischen Fehlern zu bereinigen. Diese Fehler fallen in die Klasse der Datenheterogenitäten, wie sie in Abschnitt 2.3.4 beschrieben
werden.
2. Harmonisierung
Hierzu gehört neben der Zusammenfassung der Daten aus den unterschiedlichen
37
Kapitel 2 Grundlagen
Datenquellen auch die einheitliche Kodierung von Attributen und die Abstimmung der Schlüsselbeziehungen. Somit kann dieser Schritt im Kontext der Datenbankintegration als Menge von Datenvereinigungsoperationen über datendomänen- und datentypspezifischen Join- sowie Union-Operationen aufgefaßt werden.
3. Verdichtung
Liegen die Daten in bereinigter und konsistenter Form vor, so werden in diesem
Schritt ausgewählte Daten mit dem Ziel der späteren Zuführung zu On-Line
”
Analytical Processing“ (OLAP) u. a. in Form von Aggregationen gruppiert. Dieser Schritt ist im Kontext der Verwendung des Data-Warehouse-Begriffes in der
Bioinformatik nicht zwingend notwendig.
4. Anreicherung
Analog zum vorherigen Schritt ist dieser im Kontext der Bioinformatik weniger
von praktischer Bedeutung. Hier werden Vorausberechnungen auf den in der Staging Area befindlichen Daten durchgeführt, um Kennzahlen für spätere OLAPAnwendungen zu gewinnen. Bei diesen Vorausberechnungen spielen vor allem
Performanceüberlegungen eine Rolle.
Im Bereich der Bioinformatik sind die Schwerpunkte des ETL-Prozesses auf der Ebene
der Extraktion und der Harmonisierung zu finden. Vor allem bei sehr umfangreichen
Operativdaten ist hier der Flaschenhals“ zu sehen, da notwendige Datenaktualisie”
rungen mit einem erneuten Extraktionsprozeß verbunden sind. So sind entsprechende
Varianten zur Datenaktualisierung zu wählen, wie etwa inkrementelle Mechanismen
oder Änderungsverfolgungen der Operativdaten.
2.3.4 Integrationskonflikte
Wie bereits angedeutet, existieren bei homogenen wie auch bei heterogenen MDBS
heterogene Komponentendatenbanken. Da diese zu einem globalen System zusammengeführt werden sollen, müssen die möglichen Heterogenitäten aufgelöst werden. Die
hierzu notwendige Integration der KDBS findet auf verschiedenen Ebenen statt:
1. System
2. Datenmodell
3. Partitionierung/Allokation
4. Daten
5. Schema
Nachfolgend werden die genannten Heterogenitäten überblicksweise charakterisiert. Dabei wird auf Schemaheterogenitäten verstärkt eingegangen, weil hier aufgrund der Problemkomplexität eine zusätzliche Unterteilung sinnvoll erscheint.
38
2.3 Verteilte Datenbanken
1. Systemheterogenitäten
Durch die Vielzahl von Software in den Bereichen
a) Netzwerkkommunikation,
b) Zugriff auf entfernte Dienste,
c) Datenbankmanagementsystem oder
d) Implementierungen von Datenzugriff oder -anfragesprachen
existieren je nach jeweiliger Projektanforderung oder anderer, teils evolutionär
vorhandener Gegebenheiten, verschiedenste Systeme auf KDBS-Seite. Dies wiederum propagiert sich zu Systemheterogenitäten und somit zu Konflikten bei der
Datenbankintegration. Ein einheitlicher Datenzugriff auf Systemebene ist in der
Praxis schwer zu realisieren. So unterscheidet sich beispielsweise der Zugriff auf
die in Tabelle 2.3 aufgeführten Datenbanken erheblich.
Datenbank Netzwerkprotokoll
KEGG [14]
HTTP
SWISSPROT [46]
HTTP
CR-EST
[49]
HTTP
SQLNET
native
Schnittstelle
DBGET
[45]
HTTPGET
JDBC,
ODBC
API
SOAP
SwissKnife
[47],
BioPerl [48]
keine
Datenhaltungsmethode
indizierte
flat-files
DBMS
DBMS
Schemainformationen
WSDL
HTMLDokumente
DBKatalog
Tabelle 2.3: Systemheterogenitäten ausgewählter Beispieldatenbanken
2. Datenmodellheterogenitäten
Wie in Abschnitt 2.2.2 eingeführt, existieren verschiedene Paradigmen, Methoden
und Sprachen zur semantischen Modellierung von Datenbanken. Das resultiert in
dementsprechend divergenten Umsetzungen von DBMS, die notwendigerweise an
ein zugrundeliegendes Datenmodell geknüpft sind. Im Einsatz befinden sich, insbesondere im Diskursbereich der Molekularbiologie, das objektorientierte, relationale sowie das hierarchische Modell. Dieser Umstand macht somit eine Abbildung
der verschiedenen Modelle aufeinander notwendig. Manche Konzepte der verschiedenen Modelle sind direkt nicht aufeinander abbildbar, wie etwa das Konzept der
Polymorphie bzw. im speziellen das Vererbungskonzept. Bestenfalls gelingt es,
indirekt Konzepte nachzubilden, wie etwa bei objektrelationalen Abbildungen.
Dabei ist es durchaus möglich, daß die im jeweiligen Modell implizit enthaltene
Semantik auf der Schemaebene und/oder der Datenebene/Anwendungsebene explizit nachgebildet werden muß. Das gilt so auch für die Datenbankintegration,
die Konvertierungen zwischen den Modellen vornehmen muß.
39
Kapitel 2 Grundlagen
3. Partition/Allokation
Da die Daten physikalisch über verschiedene Datenquellen verteilt sind, entstehen
in diesem Zusammenhang Heterogenitäten. Abbildung 2.19 zeigt eine mögliche
Datenverteilung über drei Datenserver in graphischer Form.
Abbildung 2.19: Beispiel einer Partitionierung und Allokation
Bei der Partitionierung ist eine globale Datenstruktur in Teilstrukturen zerlegt.
Die Partitionierung wird in zwei Klassen unterteilt:
Horizontale Partitionierung
Diese Klasse erzeugt aus der Menge von Daten, die in einer Datenstruktur vorliegen, Teilmengen. Die in Abbildung 2.19 dargestellte Beispieldatenstruktur beinhaltet in der ersten Hierarchiestufe eine Unterstruktur 4,
von der eine Menge von Instanzen existieren. Davon werden die ersten in
der Datenquelle 1, weitere Instanzen in Datenquelle 3 und die restlichen in
Datenquelle 4 gespeichert.
Vertikale Partitionierung
Hierbei handelt es sich um die Zerlegung der globalen Datenstruktur in Unterstrukturen. So kann z. B. eine Struktur mit fünf Elementen in zwei Teile
zerlegt werden, wobei der erste Teil die Elemente 1, 3 und 5 enthält und der
zweite Teil aus den Elementen 2 und 4 besteht.
40
2.3 Verteilte Datenbanken
Die Allokation legt den physischen Speicherort fest. Das heißt, die zuvor partitionierten Daten werden bestimmten Datenquellen zugewiesen. Es ist auch möglich,
daß auf dieser Ebene Überschneidungen der Daten entstehen, also die horizontale
Partitionierung in nicht-disjunkte Teilmengen zerlegt wird.
4. Datenheterogenitäten
Basierend auf Erfahrungen bei der Integration von Daten und theoretischen Betrachtungen wie in [50], ergeben sich Probleme bei der Integration von Daten.
Das heißt, die durch mehrere KDBS modellierten Sachverhalte und die hierzu
gespeicherten Daten können semantisch ähnlich sein. Nur folgt daraus keineswegs
in allen Fällen eine direkte Datengleichheit. Hier sind Methoden notwendig, um
beim Zusammenführen von Daten bei der Datenbankintegration, im einfachsten
Fall durch Mengenoperationen, semantisch gleiche Daten zu vereinigen. Es können
drei Fälle unterschieden werden:
a) direkt umrechenbare Daten
Zu dieser Kategorie zählen solche Daten, die trotz der Existenz von Datentypkonflikten (Integer vs. String), Dateneinheitskonflikten (Grad Fahrenheit vs. Grad Celsius) oder Präzisions-/Wertebereichs-/Zeichensatzkonflikte
(TRUE/FALSE vs. 0/1) aufeinander abbildbar sind.
b) semantisch äquivalente Daten
Im Falle von Daten, die einen Sachverhalt in semantisch äquivalenter Weise
erfassen, d. h. bedeutungsgleich sind, sind klassische Verfahren zur Datenzusammenführung in Form von Mengenoperationen nicht mehr möglich. Denn
es sollte davon ausgegangen werden, daß dazu die Daten interpretiert werden müssen. Hierzu ist Domänenwissen notwendig. Das heißt, die Bedeutung
muß eindeutig erfaßt und diese in Beziehung zueinander gesetzt werden. Da
es sich hierbei um eigene Forschungsbereiche handelt, nämlich die der semantischen Datenbankintegration und Ontologien, wird hier auf [51] verwiesen.
In dieser Dissertation werden zu diesem Thema detaillierte Ausführungen
gegeben.
Weiterhin kann davon ausgegangen werden, daß mitunter Redundanz durchaus gewollt bzw. notwendig ist. So existieren z. B. für ein und das selbe
Protein verschiedene Namen oder multilinguale Funktionsbeschreibungen,
die natürlich keine vollständig automatische Mengenvereinigung derart zulassen, daß nur noch der an einem Institut gebräuchlichste Proteinname und
die deutsche Funktionsbeschreibung im Resultat enthalten sind. Andererseits könnte argumentiert werden, daß ebensolches Verhalten von Nutzern
einer Datenbankintegration gewünscht wird und etwaige Integrationsprofi”
le“ zur Konfiguration der Datenbankintegration genutzt werden. Somit sind
Strategien notwendig, die hier angewandt werden können.
c) Falschdaten
Aufgrund von fehlerhaften oder überalterten Daten ist es schwer möglich,
41
Kapitel 2 Grundlagen
Datenäquivalenz festzustellen. Dies ist aber notwendig, um das Zusammenführen von gleichen Daten umzusetzen, denn auf keinen Fall sollten zueinander inkonsistente Daten als Alternativen im Sinne einer Mengenvereinigung
aufgefaßt werden. Vielmehr wären Mechanismen umzusetzen, die inkorrekte
von korrekten Daten unterscheiden und die inkorrekten als nicht vorhanden
auffassen.
5. Schemaheterogenitäten
Ein sehr wichtiger Punkt bei der Konzeption einer Datenbankintegration ist die
Zusammenführung der Datenbankschemata der Komponentensysteme und die damit verbundene Überwindung von Schemaheterogenitäten. In [52] wurden hierzu
drei Grundforderungen an ein integriertes Schema gestellt:
• Vollständigkeit
• Minimalität
• Verständlichkeit
Daß bei diesen Kriterien in späteren Betrachtungen der vorliegenden Arbeit Einschränkungen gemacht werden, ändert nichts an den wesentlichen Problemen der
Schemaintegration, die von einer Datenbankintegration gelöst werden müssen. So
werden nachfolgend einige wesentliche Aspekte hierzu aufgeführt, wie sie in der
Literatur, etwa in [34], erörtert worden.
Es können zwischen den in den lokalen Schemata modellierten Weltausschnitten
Überlappungen auftreten, da die Daten der Komponentensysteme untereinander
teilweise redundant gehalten werden oder in enger Beziehung zueinander stehen.
Dieser Umstand ist auch und vor allem in der Molekularbiologie zu beobachten.
So werden z. B. Genomdaten in Europa in der EMBL-Datenbank [53], in den
USA in der Genbank [54] und in Japan in der DDBJ-Datenbank [55] gehalten,
da es jeweils nationale (regionale) Genomprojekte gibt. Strukturell und inhaltlich unterscheiden sich diese drei Datenbanken nur nominal. Diese Redundanzen
müssen bei der Integration erkannt und aufgelöst werden.
Weiterhin können strukturelle und semantische Inkompatibilitäten auftreten, die
auf der Tatsache beruhen, daß die Komponentendatenbanken unabhängig oder
wenigstens sehr autonom voneinander entworfen und implementiert wurden. In
folgenden Unterabschnitten werden dazu einige Hauptprobleme und Aspekte heterogener Datenschemata in Bezug auf deren Integrierbarkeit aufgeführt:
• Semantische Konflikte
Hierbei sind die Realweltobjekte in den einzelnen Datenbanken unterschiedlich repräsentiert. So kann es z. B. in einem System Proteine geben und in
einem anderen nur Enzyme, wobei Enzyme spezielle Proteine sind.
• Beschreibungskonflikte
Es ist möglich, daß Realweltobjekte unterschiedlich modelliert werden. Mögliche Differenzen sind:
42
2.4 Resümee
–
–
–
–
–
–
unterschiedliche Attribute
Benennungskonflikte
Wertebereichskonflikte
Skalierungskonflikte
unterschiedliche Integritätsbedingungen
unterschiedliche Manipulationsoperationen
• Heterogenitätskonflikte
Oftmals liegen die zu integrierenden Schemata in unterschiedlichen Datenmodellen vor. Das ist der Fall, wenn ein relationales und ein objektorientiertes Schema integriert werden sollen. Dieser Konflikt impliziert üblicherweise
immer auch strukturelle Konflikte.
• Strukturelle Konflikte
Derselbe Sachverhalt aus der realen Welt kann oft durch Verwendung unterschiedlicher Modellierungskonzepte beschrieben werden. Dies ist vor allem
bei Datenmodellen der Fall, die viele Modellierungskonzepte unterstützen.
So hat der Datenbankarchitekt bei einem objektorientierten Datenmodell
oft die Wahl, ob er eine Eigenschaft einer bestimmten Klasse von Objekten
als wertbasiertes Attribut oder als Referenz auf ein eigenständiges Objekt
modelliert, das diesen Wert repräsentiert.
Diese Konflikte müssen bei der Schemaintegration durch menschlichen Eingriff
erkannt und behoben werden. Das dazu nötige Detailwissen muß durch eingehendes Studium der lokalen Schemata und Befragungen der Datenbankanbieter
gewonnen werden.
Obwohl die Integritätssicherung ebenfalls im engen Kontext zu den in diesem Abschnitt eingeführten Integrationskonflikten steht, wird dieses Thema an dieser Stelle
nicht weiter betrachtet. Vielmehr wird auf den Abschnitt 3.1.3 verwiesen, in dem allgemeine Aspekte der Datenqualität im besonderen Kontext einer Datenbankintegration
aufgearbeitet wurden.
2.4 Resümee
In diesem Kapitel wurden für die Arbeit wesentliche Aspekte der molekularen Genetik,
der Datenbanken und der verteilten Datenbanken aus Sicht der Informatik vorgestellt.
Es wurden Begriffe eingeführt und grundlegende Definitionen gegeben.
Im Abschnitt zu den Grundlagen der molekularen Genetik wurden die DNA als Träger der genetischen Informationen, die Genexpression als Umsetzung der genetischen
Informationen in Polypeptide und schließlich die Proteine und speziell die Enzyme und
deren Rolle in Stoffwechselwegen eingeführt.
Im folgenden ersten Informatikabschnitt wurden grundlegende Begriffe der Datenbanktheorie und der Modellierung erörtert. Anschließend wurden Basiselemente der
43
Kapitel 2 Grundlagen
E/R- und UML-Notation eingeführt, die auch in folgenden Kapiteln der Arbeit Verwendung finden werden. Die Abschnitte Datenformate, Anfragesprachen und Schnittstellen
informierten zu aktuellen Methoden und Techniken zum Zugriff auf Datenbanken.
Abgeschlossen wurde das Kapitel mit einer Ausarbeitung zu verteilten Datenbanken. Dabei wurden neben theoretischen Betrachtungen auch ausgewählte Ansätze zur
Datenbankintegration im Bereich heterogener Multidatenbanksysteme vorgestellt. Insbesondere datenbankzentrische Ansätze, wie Föderierte Datenbanksysteme, Mediatoren
und Data Warehouses wurden beschrieben.
44
Kapitel 3
Datenbankintegration in der
Bioinformatik
In diesem Kapitel werden Aspekte der angewandten Datenbankintegration in der Molekularbiologie erörtert. Insbesondere werden spezielle Eigenschaften von molekularbiologischen Datenbanken in Bezug auf deren Besonderheiten aufgezeigt. Weiterhin werden
existierende Systeme zur Datenbankintegration in der Molekularbiologie vorgestellt und
analysiert.
3.1 Datenbanken in der Molekularbiologie
Datenbanken spielen in der Molekularbiologie eine zentrale Rolle. Momentan existieren
zwischen 500 und 1000 publizierte Datenbanken. In diesem Zusammenhang existieren Erhebungen, welche einen gewissen Umfang dieser Datenbanken katalogisieren, wie
zum Beispiel DBcat [56] und The Molecular Biology Database Collection“ [40]. Ein
”
entscheidendes Merkmal dieser Datenbanken ist der Umstand, daß ein Großteil der Forschungsaktivitäten existentiell von der Nutzung von Datenbanken abhängt, und deshalb
etablierte Datenbanken notwendigerweise über das Internet zugänglich sein müssen. Ein
weiterer Aspekt ist die starke Vernetzung der Datenbanken, die in Form von expliziten
Querverweisen der Daten untereinander oder implizit durch überlappende Datenbestände in verschiedenen Datenbanken existiert.
3.1.1 Charakterisierende Besonderheiten
Die in der vorliegenden Arbeit als Ausgangspunkt und Basis der in den nachfolgenden
Kapiteln beschriebenen Datenbankintegration betrachteten Datenbanken entstammen
biologischen bzw. molekularbiologischen Forschungsprojekten. Daraus ergeben sich besondere Eigenschaften, die in diesem Abschnitt untersucht werden sollen. Nachfolgende
Betrachtungen stützen sich auf Ausarbeitungen zu diesem Thema aus [57, 58].
Molekularbiologische Datenbanken sind sehr heterogen in Bezug auf Zielsetzung,
Nutzbarkeit, Umfang oder die genutzte Softwaretechnologie. Dabei sind viele molekularbiologische Datenbanken sehr groß im Datenumfang. So enthält die GenBank [54],
als eine der Hauptressourcen für öffentlich verfügbare Nukleotidsequenzen, über 4 ∗ 107
45
Kapitel 3 Datenbankintegration in der Bioinformatik
Sequenzen mit ca. 4, 4 ∗ 1010 Basenpaaren1 . Hierbei handelt es sich um eine Momentaufnahme, denn das Wachstum des Datenbestandes der meisten Datenbanken ist exponential, wie Abbildung 3.1 zeigt.
Abbildung 3.1: Datenwachstum ausgewählter molekularbiologischer Datenbanken [59]
Viele molekularbiologische Datenbanken wurden unter Nutzung von ad hoc“Metho”
den zur Datenverwaltung entwickelt. Hierbei steht oftmals weniger eine umfangreiche,
gut strukturierte Datenmodellierung als eine anwendungsbezogene Datenerfassung im
Fokus der Datenbankentwickler. So sind Datenbanken häufig als einfache Sammlungen von indizierten flat-files implementiert. Eine vollständige Auflistung ist in Tabelle
3.1 zu finden. Dabei enthält die Klasse der flat-file“-Datenbanken die sogenannten
”
Web-Datenbanken. Diese können als eine Kombination einfacher, flacher Dateien und
formularbasierter Datenzugriffsschnittstellen aufgefaßt werden. Dabei wird in vielen
Fällen HTML als Datenformat genutzt. Weitere Betrachtungen zu Datenformaten und
Schnittstellen werden in Abschnitt 3.1.2 vorgenommen. Der Ursprung der Daten sind:
1. reformatierte Ausgaben von Analysewerkzeugen,
2. formularbasierte Datenerfassungswerkzeuge, wobei Probleme mit inkonsistenten
und oftmals Freitextdaten auftreten und
1
Stand Februar 2005: http://www.ncbi.nlm.nih.gov/Genbank/genbankstats.html
46
3.1 Datenbanken in der Molekularbiologie
Genutzte Methode
flat-file
RDBMS
OODBMS
ORDBMS
keine Aussage
Anteil
40%
37%
6%
3%
14%
Tabelle 3.1: Genutzte Methoden für molekularbiologische Datenbanken nach [57]
3. manuelle Datenakquisition aus der Literatur.
Somit sind Inkonsistenzen, Redundanzen und relativ viele Freitextdaten in den Datenbanken zu finden.
Eine weitere wesentliche Eigenschaft von molekularbiologischen Datenbanken ist deren reiche Verknüpfung untereinander. So wird in einer Untersuchung festgestellt, daß
87% der dort betrachteten Datenbanken Querweise zu weiteren Datenbanken enthalten
[57]. Die verbreiteste Methode ist hier die Anreicherung von Datenbanken mit HTMLHyperlinks zu in Beziehung stehenden Daten weiterer Datenbanken. Dabei wird in
der Regel auf die Web-Präsentation der jeweiligen Datenbank durch die Nutzung von
HTTP-GET-kompatiblen URLs zurückgegriffen.
Eine weitere, als zunehmender Trend in der Molekularbiologie zu beobachtende Eigenschaft ist die Nutzung einheitlicher Identifikatoren und kontrollierter Vokabularien.
Dies begünstigt Aufgaben der Schema- und Datenintegration, da so schon grundlegende
Konfliktklassen, wie in Abschnitt 2.3.4 aufgeführt, vermieden werden.
Auch und gerade auf der Ebene der semantischen Datenbankintegration im Bereich
der Molekularbiologie existieren einige Arbeiten, die molekularbiologische Datenbanken
auf Datenschema- und Datenebene semantisch anreichern. Dazu gehören TAMBIS [60],
SEMEDA [61] und auf Datenebene die Gene Ontology [62] oder Medical Subject Headings (MeSH) [63]. Verwandte Arbeiten aus dem Bereich Semantic Web [64], wie etwa
die Web Ontology Language (OWL) [65] oder WordNet [66] als lexikalische Datenbank
der englischen Sprache, haben ebenfalls Einfluß auf aktuelle Forschungsarbeiten in der
Bioinformatik.
In diesen Bereich der Besonderheiten molekularbiologischer Datenbanken fällt auch
die Verwendung einheitlicher Datenidentifikatoren bzw. Bezeichner. So existieren datendomänenspezifische Nomenklaturen. So gibt es Bestrebungen, etwa Gennamen beim
menschlichen und beim bakteriellen E.-coli-Genom oder auch Molekülbezeichnungen,
wie etwa bei Enzymen [67], einheitlich zu wählen.
Zur eindeutigen Identifizierung von Datenbankeinträgen im Kontext der Molekularbiologie sind datenbankübergreifende Mechanismen erkennbar. Diese beruhen auf
Standardisierungsbemühungen, um in einzelnen Domänen der Molekularbiologie eine
Systematik und Referenzierbarkeit der Daten umzusetzen.
Es können vier Arten von eindeutigen Bezeichnern klassifiziert werden. Die sich ergebenen Bezeichnerklassen und entsprechende Beispiele sind in Tabelle 3.2 zusammen-
47
Kapitel 3 Datenbankintegration in der Bioinformatik
gefaßt. Weitere Beispiele und Benennungsstandards sind in WWW-Dokumenten, wie
Identifikatorklasse
künstlich
Anwendung
Referenz
generierte Zeichenketten oder Zahlen
ohne implizite Semantik
systematisierend Dezimalzahlen geben
eine
hierarchische
Klassifizierung wider
Gene Ontology
[62]
akronymisierend natürlichsprachliche
Beschreibungen werden zu eindeutigen
Akronyme gebildet
hybrid
Kombination aus natürlichen Zahlen mit
Buchstabenkode zur
eindeutigen Identifizierung sowie impliziten Informationen
UniProt [69]
EC-Nummern
[68]
CR-EST [49]
Ausprägung/Bedeutung
GO:0008150
biological process“
”
EC 3.5.3.1
– Hydrolases
– Acting on Carbon-Nitrogen Bonds
– Linear Amidines
– Arginase
SKG1
Suppenkaspergen“
”
HO40A07S
– Bibliothek
– Platte
– Plattenadresse
– Primer
Tabelle 3.2: Klassifizierung von Identifikatoren molekularbiologischer Datenbanken
etwa unter der URL:
http://www.genome.ad.jp/kegg/kegg4.html
zu finden. Eine Auswahl bildet folgende Aufzählung:
• OMIM [70]
• ICD-10-Code [71]
• CAS-Nummern [72]
• SMILES [73]
Es kann nicht davon ausgegangen werden, daß die genannten Beispiele für eindeutige
Identifikatoren kontrolliert eingesetzt werden. Eine Datenintegration kann also nicht
unter der Annahme umgesetzt werden, daß gleiche Identifikatoren gleiche, hierzu funktional abhängige Daten bedingen. Dies ist nur für größere Verbundprojekte, wie etwa
die drei Sequenzdatenbanken EMBL [74], Genbank [54] und DDBJ [55], der Fall. Hier
werden datenbankübergreifend eindeutige Identifikatoren eingesetzt.
48
3.1 Datenbanken in der Molekularbiologie
3.1.2 Datenformate und Datenzugriff
Für den Austausch und die Präsentation von Daten in der Molekularbiologie ist die
Verwendung von dateibasierten Datenformaten weit verbreitet [75]. Es ist dabei zu
beobachten, daß eine Trennung von
1. Datenbackend, d. h. der eigentlichen DBMS-Komponente,
2. Datenpräsentation und
3. Datenaustausch
vorgenommen wird. Abbildung 3.2 zeigt eine schematische Darstellung der vorherrschenden Architektur von molekularbiologischen Datenbanken hinsichtlich der angebotenen Datenformate.
Abbildung 3.2: Schematische Darstellung der Datenaustauschformatklassen molekularbiologischer Datenbanken
Das Datenbackend ist, wie im Abschnitt 3.1.1 ausgeführt wurde, entweder ein DBMS
oder ein proprietäres, auf flat-file-Techniken basierendes Datenbanksystem. In beiden
Fällen ist eine Datenunabhängigkeit anzunehmen, so daß die hier verwendeten Datenformate nicht weiter betrachtet werden sollen.
Für die Datenpräsentation ist die Nutzung von HTML oder auch WML [76] als
Datenformate, die bekanntermaßen wiederum auf XML beruhen, verbreitet. Für den
Datenaustausch sind die gleichen Formate üblich, obgleich hier HTML eine eher untergeordnete Rolle spielt, aber in manchen Fällen aufgrund fehlender Alternativen, wie
etwa durch das Spiegeln der HTML-Datenpräsentationsschicht einer Web-Datenbank,
genutzt werden muß. Auch ist es möglich, durch Parser den Inhalt von HTML-Seiten zu
49
Kapitel 3 Datenbankintegration in der Bioinformatik
extrahieren. Da aber HTML als Präsentationsformat eingesetzt wird, sind hier strukturierende Elemente dieses Datenformates eher auf das visuelle Layout der Daten als
auf die Unterstützung einer maschinellen Verarbeitung ausgerichtet.
Daneben spielt die Verwendung von proprietären ASCII-flat-file-Strukturen eine
große Rolle. Populäre Datenbanken wie EMBL [74], als eine der drei internationalen
Hauptressourcen für Sequenzdaten, setzen ein solches Format um. Aber auch das sogenannte FASTA-Format [77], das für das gleichnamige Bioinformatikwerkzeug zum Sequenzvergleich entwickelt wurde, ist heute ein Quasistandardformat zum Austausch von
Sequenzdaten. Ein weiteres, populäres Format für flat-files ist das sogenannte Two-Letter-Code-Format für Datenbanken am European Bioinformatics Institute (EBI). Hierbei
wird das in Abschnitt 2.2.3 eingeführte Konstrukt von Name-Wert-Paaren genutzt. In
den Anhängen A.1 und A.2 sind entsprechende Beispiele eines formatierten Datensatzes
für den jeweils gleichen Eintrag einer DNA-Sequenz in der EMBL-Datenbank [74] und
GenBank-Datenbank [54] dargestellt.
Im Falle von flat-files ist eine Formatbeschreibung notwendig, die es ermöglicht, Parser zu entwickeln, die diese Formate verarbeiten können. Eine solche Beschreibung sollte
folgende Informationselemente enthalten:
1. zulässige lexikale Konstrukte
Hier werden alle zulässigen Wörter als Kombination von gültigen Zeichen spezifiziert.
2. Syntaxbeschreibung
Die Syntax beschreibt hier Regeln zur Konstruktion von gültigen Kombinationen,
Abfolgen und Strukturen lexikaler Konstrukte.
3. Datenschemasemantik
Hier werden Regeln zur Abbildung der Strukturen des Datenformates auf Datenschemaelemente und -beziehungen angegeben.
Im Falle von molekularbiologischen Datenbanken sind formale und informale Formatbeschreibungen für die Anforderungen 1 und 2 üblich. Dagegen ist Punkt 3 eher selten
erfüllt. Einige Beispiele existieren aber auch hier, wie etwa die UniProt-Datenbank
[69], die mittels eines XML-Schemas die Abbildung ihres XML-Formates in die hierarchischen Strukturen von XML-Datenbanken ermöglicht.
Informale Beschreibungen erlauben das manuelle Programmieren von Parsern. Sie
sind aber nicht bzw. nur bedingt für eine automatische Generierung von Parsern geeignet, da die so angegebenen Regeln manuell interpretiert werden müssen.
Dagegen ist für eine Automatisierung dieses Prozeßes eine formale, maschinell verarbeitbare Formatbeschreibung notwendig. Dies können Grammatiken, Datenstrukturspezifikationssprachen u. a. sein. Entsprechende Notationen sind in der Informatik bekannt und werden auch in der Bioinformatik eingesetzt. Dazu gehören Sprachen, wie
die Data Type Definition Language (DTD) für das XML-Datenformat oder Abstract
Syntax Notation One (ASN.1).
50
3.1 Datenbanken in der Molekularbiologie
Am National Center for Biotechnology Information (NCBI) z. B. wird zur Spezifikation von Datentypen ASN.1 eingesetzt. ASN.1 ist ein Standard2 , welcher einen
Formalismus zur Spezifikation von abstrakten Datentypen definiert. Ausgehend von
Basisdatentypen können komplexe Datenstrukturen inklusive Parametrisierungen und
Nebenbedingungen, d. h. Konsistenzbedingungen entwickelt werden, die wiederum als
Datenaustauschformat dienen. Durch die Unterstützung verschiedener Programmiersprachen, wie etwa JAVA, C++ oder C, sowie das Vorhandensein verschiedener Werkzeuge hat sich ASN.1 vor allem auch in anderen ingenieurtechnischen Bereichen als weit
genutzter Standard zur Datenmodellierung etabliert.
Das UniProt-Konsortium nutzt u. a. zur Formatierung ihrer flat-file-Daten
XML/DTD. Hier existiert eine in der DTD-Sprache formatierte Syntax für das auf
XML-basierende Austauschformat der UniProt-Datenbank. Im Anhang A.4 ist ein Auszug dieser DTD enthalten. Wie an diesem Beispiel zu erkennen ist, wird hier Forderung
3, einer Datenschemasemantik, aus der in diesem Abschnitt eingeführten Anforderungsliste an Formatbeschreibungen in Form von natürlichsprachlichen Kommentaren zur
Interpretation der Datenstrukturelemente erfüllt.
Da XML in der Bioinformatik insbesondere bei molekularbiologischen Datenbanken
eine zunehmend bedeutende Rolle in Bezug auf die Datenformatierung einnimmt, werden im folgenden einige Beispiele für XML-basierte Datenformate nach [75] gegeben.
Bioinformatic Sequence Markup Language
Die Bioinformatic Sequence Markup Language (BSML)3 spezifiziert eine DTD,
die Sequenzinformationen für die DNA, RNA und Proteine modelliert.
BIOpolymer Markup Language
Die BIOpolymer Markup Language (BioML)[78] wurde entwickelt, um die hierarchische Struktur eines lebenden Organismus abzubilden. Damit wird es möglich,
Informationen verschiedener Domänen untereinander in Verbindung zu setzen und
so Protein- und DNA-Sequenzen zu annotieren.
Chemical Markup Language
Die Chemical Markup Language (CML)[79] hat das Ziel, verschiedene chemische
Informationen (atomare, molekulare, kristallographische etc.) in Verbindung mit
zusätzlichen Informationen, wie etwa Veröffentlichungen etc., einheitlich zu verwalten.
KGML
Die KEGG Markup Language (http://kegg.genome.ad.jp/kegg/kegg3.html)
beinhaltet eine DTD für eine Stoffwechselwegdarstellung inklusive Metaboliten,
Enzymen und deren Verbindungen.
SBML
Die Systems Biology Markup Language (SBML) [80] ist eine allgemeine Sprache zur Repräsentation von biochemischen Modellen. SBML enthält Strukturen
2
3
ISO 8824-1 bis ISO 8825-2 / ITU-T X.680 bis ITU-T X.683, ITU-T X.690, ITU-T X.691
http://www.visualgenomics.com/products/index.html
51
Kapitel 3 Datenbankintegration in der Bioinformatik
zur Beschreibung von Zellkompartimenten, biochemischen Reaktionen, daran beteiligten chemischen Entitäten und globalen bzw. lokalen Parametern. Darüber
hinaus können optional abstrakte Einheiten für Quantitäten definiert, sowie mathematische Regeln spezifiziert werden.
Taxonomic Markup Language
Die Taxonomic Markup Language [81] beinhaltet eine DTD für die Beschreibung
von taxonomischen Beziehungen zwischen Organismen.
XEMBL
Die EMBL-Datenbank des European Bioinformatics Institute (EBI) ist traditionell in verschiedenen flat-file-Formaten erhältlich. Es wurde aber erkannt, daß die
Nutzung von XML als Datenaustauschformat für die EMBL-Daten vorteilhaft
ist. So wurde mit XEMBL [82] ein CORBA-basierter WWW-Dienst implementiert, der aus den EMBL-Daten XML-Dateien erzeugt. Dabei werden z. Zt. DTDs
von BSML4 und AGAVA5 (Architecture for Genomic Annotation, Visualization
and Exchange) von DoubleTwist, Inc. unterstützt. Der Zugriff erfolgt über SOAP
bzw. CGI-Aufrufe.
Die obige Aufzählung stellt eine Auswahl dar. Weitere Informationsquellen zu XMLbasierten Sprachen können folgender Auflistung entnommen werden:
• CellML (Cell Markup Language)
http://www.cellml.org
• PSI-MI (Proteomics Standards Initiative/Molecular Interaction)
http://psidev.sourceforge.net/mi/xml/doc/user
• PSI-MS (Proteomics Standards Initiative/Mass Spectrometry)
http://psidev.sourceforge.net/ms/index.html
• GEML (Gene Expression Markup Language)
http://www.geml.org
• MAGE-ML (MicroArray and Gene Expression Markup Elements)
http://www.mged.org/Workgroups/MAGE
• MSAML (XML for Multiple Sequence Alignments)
http://xml.coverpages.org/msaml.html
• BIOXML (a center of development for open source biological DTDs)
http://www.bioxml.org
Diese Auflistung von XML-basierten Datenformaten in der Molekularbiologie stellt
einen Ausschnitt dar und erhebt keinen Anspruch auf Vollständigkeit, zumal in diesem Gebiet eine starke Dynamik existiert.
4
5
http://www.visualgenomics.com
http://www.agavexml.org
52
3.1 Datenbanken in der Molekularbiologie
Schemainformationen
Die Bereitstellung und Verwaltung von Schemainformationen sind wesentliche Eigenschaften eines DBMS. Für die Nutzung der Daten einer Datenbank ist es unabdingbar,
Struktur und Beziehungen der Daten zu kennen. Somit ist der Zugriff auf Metadaten,
die ein Datenschema beschreiben, notwendig. Es besteht hier auch ein Zusammenhang
mit den Datenbankzugriffsschnittstellen, wie sie in Abschnitt 2.2.5 beschrieben wurden.
Somit ist der Zugriff auf ein Datenschema von einer direkten Schnittstelle zum DBMS
abhängig und setzt voraus, daß der direkte Zugriff auf das DBMS möglich ist. Das
kann im Fall von DBMS mittels etablierter APIs, wie etwa JDBC oder ODBC, erfolgen. Tatsächlich ist dies in den seltensten Fällen möglich. Vor allem Sicherheits- und
Stabilitätsforderungen der Datenbankanbieter sind Begründungen, um einen direkten
DBMS-Zugriff nicht zu unterstützen.
Vielmehr wird oftmals eine Middlewarelösung eingesetzt. Middlewarelösungen im
Umfeld der Bioinformatik zum Zugriff auf Datenbanken sind z. B. CORBA, SOAP
oder auch HTTP/CGI-Aufrufe. Hierbei wird im ersten Fall die Interface Definition
Language (IDL) bzw. Web Service Description Language (WSDL) zur Schnittstellendefinition eingesetzt. Dabei ist die Definition der Datenstruktur ebenfalls ein Teil dieses
Standards. Das zugrundeliegende Datenmodell ist hierbei objektorientiert. Bei diesen
Techniken ist es programmiersprachenübergreifend möglich, diese Datenschemaspezifikationen direkt in Datenstrukturen der Programmiersprachen zu übersetzen. Aus diesen
kann dann wiederum direkt ein objektorientiertes Datenschema in Form von Klassen
und verschiedenen Beziehungstypen generiert werden.
Im Gegensatz dazu ist im Fall von HTTP/CGI-Aufrufen kein direkter Zugriff auf ein
Datenschema möglich. Die aus dieser Technik resultierenden Möglichkeiten beschränken
sich auf einen einheitlichen Datenzugriff, weniger auf die allgemeine Bereitstellung von
Schemainformationen. Diese müssen dann restrukturierend durch geeignete Methoden
der Datenstruktur- und darauf aufbauend der Schemaerkennung aus flat-files ermittelt
werden. Hierbei handelt es sich vielfach um HTML-formatierte Dateien, so daß gewisse Strukturierungsmerkmale durch diese Sprache genutzt werden können. Ohne an
dieser Stelle das Problem der Datenschemaableitung aus flat-files vertiefend zu behandeln, werden in der Literatur Ansätze vorgeschlagen, die sich an folgender allgemeiner
Vorgehensweise orientieren [83]:
1. Identifizierung von atomaren lexikalen Elementen
2. Erfassung der Datenstruktur durch Syntaxbeschreibung
Solche Ansätze sind Gegenstand aktueller Forschungsarbeiten und werden u. a. im
Bereich der automatischen Generierung von Wrappern in der Bioinformatik eingesetzt.
In [84, 21] ist hierzu ein Überblick entsprechender Arbeiten nachzulesen.
Ebenso wie der HTTP/CGI-Zugriff auf Datenbanken ist der direkte Dateizugriff auf
in flat-files exportierte Daten mit dem Problem der notwendigen Restrukturierung des
Datenschemas verbunden. Es ist jedoch im Falle eines direkten Dateizugriffes, wie z. B.
über FTP, üblich, Dateien bereitzustellen, die mittels etablierter Auszeichnungsspra-
53
Kapitel 3 Datenbankintegration in der Bioinformatik
chen formatiert wurden. Diese enthalten dann automatisch verarbeitbare Datenstrukturen, so wie sie im vorherigen Abschnitt 3.1.2 zu Datenformaten eingeführt wurden.
Sind explizit keine datenstrukturbeschreibenden, maschinell verarbeitbaren Daten vorhanden, so muß auch hier eine Restrukturierung vorgenommen werden. In vielen Fällen
kann aber davon ausgegangen werden, daß keine Informationen zur direkten Abbildung
der erkannten Datenstruktur auf ein Datenschema vorhanden sind. Hierzu sind bestenfalls gute Dokumentationen der Datenstruktur in Form von mit Kommentaren angereicherten Datendateien oder natürlichsprachlichen Formatbeschreibungen vorhanden.
Eine Ausnahme ist hier aber das XML-Schema [85], das direkt in XML formatierte flatfiles auf ein Datenschema abbildet. So existieren Werkzeuge, um aus XML-Dateien und
den passenden XML-Schemata automatisiert eine objektrelationale Datenbankinstanz
zu erzeugen. Es ist aber im allgemeinen in der Klasse der flat-files davon auszugehen, daß eine manuelle oder gegebenenfalls durch Werkzeuge unterstützte Nach- bzw.
Neumodellierung des jeweiligen Datenschemas notwendig ist. In Tabelle 3.3 ist diese
Klassifizierung inklusive einiger Anwendungsbeispiele zusammengefaßt.
Datenschemaklasse
DBMS
Framework
Methode
Beispiel
JDBC
ODBC
CORBA
JAVA-API
C-API
IDL
SOAP
HTTP/CGI
WSDL
Restrukturierung
FTP/HTTP
Restrukturierung
GeneOntology [62]
GeneOntology
CORBA@EBI
[86, 82]
KEGG [14]
KEGG/DBGET
[45]
UNIPROT [69]
Middleware
flat file
Tabelle 3.3: Klassifizierung von Datenschemata für molekularbiologische Datenbanken
Schnittstellen
Das Internet ist ein populäres Medium für die Bereitstellung und den Austausch von
Daten sowie den Zugriff auf Methoden. Dabei kann das Internet das volle Potential eines verteilten Informationssystems nicht ausnutzen, da es keinen allgemeinen Standard
für eine gemeinsame Schnittstelle für die Bioinformatik zur Nutzung der angebotenen
Dienste gibt. Es gibt aber Bestrebungen, Vereinheitlichung zu schaffen, wie etwa BioJava [87], BioPython [88] oder BioPerl [47].
Hierbei handelt es sich um APIs und Datenstrukturen zum Zugriff auf Datenquellen im Sinne des Abschnittes 2.3.3, die mitunter auf den weiter unten beschriebenen
Schnittstellen aufsetzen. Bei den hier genannten APIs wird eine Menge von Funktionen
oder Objekten bereitgestellt, die proprietäre Anfragen zulassen. Das Ergebnis dieser
Funktions- oder Methodenaufrufe sind Datenstrukturen der jeweils unterstützten Programmiersprache. Neben dem Zugriff auf Datenquellen ist auch die Kapselung von Bio-
54
3.1 Datenbanken in der Molekularbiologie
informatikwerkzeugen ein Bestandteil dieser APIs. So wurde z. B. BioPerl populär, da
hier eine sehr umfangreiche API zum Ausführen von diversen Bioinformatikwerkzeugen,
wie etwa BLAST [89] zur Homologiesuche über Sequenzen, enthalten ist. Die Ergebnisse dieser in Programmiersprachen eingebetteten Programmaufrufe werden geparst, da
sie als Textausgabe vorliegen und in entsprechende Datenstrukturen überführt. Nachfolgend werden derartige Ansätze im Überblick dargestellt, wobei BioPerl die zur Zeit
umfangreichste API umfaßt:
BioPerl
BioPerl ist eine Kollektion von Perl-Modulen, welche die Entwicklung von Bioinformatikanwendungen mittels Perl unterstützen sollen. Das umfaßt u. a. die
Handhabung von Sequenzen, den Zugriff auf Datenbanken mit einer Vielzahl unterstützter Datenformate und das Ausführen und Parsen der Ausgaben verschiedenster Bioinformatiksoftware. Im Anhang A.5 ist die Nutzung von BioPerl am
Beispiel demonstriert.
BioPython
Das BioPython-Projekt ist eine Sammlung von Werkzeugen und Modulen für
Python für die Bioinformatik. Dabei ist die unterstützte Funktionalität ähnlich
zu BioPerl bzw. BioJava. Im Anhang A.6 ist die Nutzung von BioPython am
Beispiel demonstriert.
BioJava
BioJava ist ein Projekt zur Bereitstellung eines Java-Frameworks zur Verarbeitung biologischer Daten. Es beinhaltet u. a. Klassen zur Bearbeitung von Sequenzen, Parser für Dateiformate, Zugriff zu diversen Datenbanken sowie umfangreiche
Routinen zu statistischen Analysen. Im Anhang A.7 ist die Nutzung von BioJava
am Beispiel demonstriert.
Neben dieser Art der Schnittstellen existieren flexiblere Methoden, die auf teils standardisierten Frameworks bzw. Industriestandards aufsetzen. Analog zur Tabelle 3.3 des
Abschnittes 3.1.2 sind zu nennen:
• JDBC
• ODBC
• CORBA
• SOAP
• CGI
Ein direkter, lesender Datenbankzugriff über SQL, wie es bei JDBC/ODBC möglich
ist, sollte zwar als Möglichkeit erwähnt werden, zeigt sich aber in der Praxis als wenig
nutzbar. Obwohl etwa die Hälfte (ca. 47%) aller in der Molekularbiologie verfügbaren Datenbanken auf einem DBMS beruhen [57], existieren nur wenige Datenbanken,
55
Kapitel 3 Datenbankintegration in der Bioinformatik
bei denen eine JDBC/ODBC-Schnittstelle angeboten wird. Vielmehr werden entweder flat-files exportiert oder Middlewarelösungen angeboten, die dann die in diesem
Abschnitt beschriebenen Schnittstellen unterstützen. Es existieren dabei vielfältig motivierte Gründe für dieses Vorgehen. Das sind u. a. Sicherheitsaspekte (Hackerangriffe
aufgrund von Systemfehlern, DoS-Angriffe6 , Datenschutz etc.), Eigentumsschutz (Patente, Datenschema, private Daten) oder technische Erfordernisse (Abschirmung des
DBMS durch eine Firewall, Kapazitätsprobleme des Netzwerkes oder des DBMS-Rechners).
Diese somit teilweise künstlich erzeugten Beschränkungen der Datenbankzugriffsmöglichkeiten motivieren einen wesentlichen Aspekt der vorliegenden Arbeit, nämlich die
beschränkten Zugriffsmuster molekularbiologischer Datenbanken. Da, wie in den späteren Kapiteln erörtert wird, die in dieser Arbeit vorgestellte Datenbankintegrationslösung einen SQL-Zugriff unterstützen soll, muß diese Zugriffseinschränkung überwunden
werden.
Die Schnittstellen CORBA [90, 86, 91, 92, 93] und SOAP [94, 82, 95, 96] erfreuen
sich bei Middlewarelösungen starken Zuspruches. In beiden Fällen werden APIs vom
Datenbankanbieter in Form von Schnittstellenbeschreibungen bereitgestellt, die dann
programmiersprachenunabhängig genutzt werden können. Bei CORBA handelt es sich
um die Interface Definition Language (IDL) und bei SOAP ist es die Web Service
Definition Language (WSDL).
Im Falle von CORBA existiert ein CORBA-Server, der die API-Aufrufe eines Clients in Datenbankaufrufe umsetzt und die Ergebnisse in die bereitzustellenden Datenstrukturen überführt und mittels eines Frameworks an den Client ausliefert. Das
Kommunikationsprotokoll ist hier das Internet Inter-ORB Protocol (IIOP). Ein ähnliches Vorgehen erfolgt bei SOAP, wobei hier in den meisten Fällen das http-Protokoll7
zur Kommunikation mit dem SOAP-Server genutzt wird. Die notwendigen Schnittstellen werden durch IDL-Dateien (CORBA) bzw. WSDL-Dateien (SOAP) definiert. Diese
dienen dann als Basis zur Erzeugung von programmiersprachenabhängigen Clientkode.
Die so vorgegebenen Zugriffsmuster auf die Daten ähneln denen der zuvor beschriebenen
programmiersprachenabhängigen APIs. In den Anhängen A.8 und A.9 sind Beispiele
für JAVA-Clients auf CORBA- bzw. SOAP-Basis aufgeführt.
Als letzte hier betrachtete Schnittstelle dient CGI. Diese einfache, aber sehr verbreitete Weise, um Daten über RPC-Aufrufe abzufragen, basiert auf dem HTTP-Protokoll.
Hierzu werden Web-URLs nach dem Muster
http://<host>/<script>?<par_1=wert_1>&...&<par_n=wert_n>
gebildet. Die Rückgabe eines solchen Aufrufes sind verbreitete Dateiformate, so wie sie
in Abschnitt 3.1.2 beschrieben sind. Diese Art des Zugriffes auf entfernte Methoden ist
zwar programmiersprachenunabhängig, stellt aber erhöhten Aufwand für die Programmierung dar. Neben fehlender maschinenlesbarer Schnittstellenbeschreibungen sind kei6
7
Deny of Service – Vorsätzliche Erzeugung hoher Last auf dem DBMS
Da der SOAP-Standard unabhängig vom zu nutzenden Transportprotokoll definiert wurde, ist das
genutzte Protokoll implementierungsabhängig.
56
3.1 Datenbanken in der Molekularbiologie
ne Datenstrukturen für die Clientprogrammiersprache vorhanden. Vielmehr muß das
durch Parsen der Resultate nachgebildet werden.
In Abbildung 3.3 sind diese Schnittstellen zusammengefaßt dargestellt.
Abbildung 3.3: Middleware-Architektur für etablierte Datenbankschnittstellen in der
Bioinformatik
Datenextraktion
Wie bereits gezeigt wurde, besteht die Notwendigkeit, Daten aus flachen Dateien zu extrahieren. Unter der Voraussetzung, daß die Struktur solcher Dateien, wie in Abschnitt
3.1.2 gefordert, vorliegt und weiterhin die lexikalen Konstrukte sowie die Syntax bekannt sind, müssen Methoden zum Parsen angewandt werden. Im Falle von standardisierten Dateiformaten, wie XML oder auch HTML, existieren vorgefertigte Parser für
alle gängigen Programmiersprachen.
Für Nicht-Standard-Dateiformate existieren Ansätze, um Parser zu generieren [83],
die bei stark dynamischen Datenformaten sinnvoll sind. In der Literatur [97] sind aber
auch Gründe bezüglich des Programmieraufwandes zur oftmals notwendigen Nachbearbeitung generierter Parser genannt, die einen manuellen Ansatz unterstützen. Solche
57
Kapitel 3 Datenbankintegration in der Bioinformatik
Ansätze bedienen sich dann grammatikverarbeitender Werkzeuge, wie LEX/YACC [98]
oder JAVACC [99], die Parser aus einer lexikalen und syntaktischen Eingabesprache erzeugen. Aufarbeitungen zu Methoden der Datenextraktion sind auch in [100] enthalten.
Da für die etablierten Dateiformate vorgefertigte Parser existieren (siehe Abschnitt
3.1.2), sind nur für Einzelfälle Parser neu zu entwickeln. Eine Auswahl existierender
Parser für diverse Programmiersprachen wird in folgender Liste gegeben:
• SIR [101]
• Swissknife [48]
• SPEM/PrEMBL [102]
• Parsen mit Python [103]
3.1.3 Datenqualität
Die in der Literatur vorgeschlagene Taxonomie von Datenbankqualitätsproblemen umfaßt im Bereich der Informatik verschiedene Problemklassen. Dabei existieren verschiedene Definitionen dieser Problemklassen zu denen in [104] ein kurzer Überblick gegeben wurde. Auch wurden im Abschnitt 2.3.4 der vorliegenden Arbeit Ausführungen zu
Datenbankintegrationskonflikten gemacht, die als Datenqualitätsprobleme eingeordnet
werden können. Aus diesen beiden Quellen lassen sich folgende Klassen von Qualitätsproblemen nennen:
• Korrektheit der Daten (Maß für den Fehlergrad der Daten)
– syntaktische Korrektheit
– semantische Korrektheit
– Datenduplikation
• Komplettheit (Maß für unvollständig belegte Attributwerte)
– Datenschemakomplettheit
– Attributkomplettheit
– Referenzierungskomplettheit
• Datenaktualität (Maß für die Aktualität zeitvariabler Daten)
• Konsistenz (Maß für die Datenintegrität)
– Wertebereichskonsistenz
– Eindeutigkeit
– referenzielle Integrität
58
3.1 Datenbanken in der Molekularbiologie
Einige dieser Probleme lassen sich durch Mechanismen von DBMS automatisch erkennen. Die allgemeine, automatische Bewertung der Datenqualität, insbesondere im Szenario einer Datenbankintegration, ist Gegenstand aktueller Forschungsarbeiten. Dabei
ist u. a. die semantische Datenqualitätsbewertung sehr komplex und nicht vollständig
automatisierbar.
Gerade die Bewertung von semantischen Qualitätsproblemen stellt in der Bioinformatik eine besondere Herausforderung dar. So ist ein Schwerpunkt zur Bewertung der
Qualität von biologischen Datenbanken die Untersuchung von der Vertrauenswürdigkeit
von Annotationen. Dabei beschreibt eine Annotation die Bestimmung der Funktion, der
Struktur oder weiterer wesentlicher phänotypischer Merkmale zum untersuchten biologischen Material, wie etwa DNA/RNA-Sequenzen, Proteine oder gesamte Organismen.
Zu diesem Zweck wurde in [105] das Genom eines Bakteriums reannotiert, um die Qualität der ursprünglichen Annotation zu werten. Bei Annotationen sind zwei Arten zu
unterscheiden: die manuelle und die automatische.
Im Fall einer automatischen Annotation werden ausgehend von einer unbekannten
DNA- oder Aminosäuresequenz ähnlichkeitsbasierte Suchanfragen über entsprechende
Sequenzen in bereits annotierten Proteindatenbanken ausgeführt [89]. Die so gefundenen Treffer“ werden manuell weiter validiert. In diesem Schritt wird die Relevanz des
”
Treffers für die Eingabesequenz auf verschiedene Arten geprüft. Das Studium der für
den Treffer zugrundeliegenden Literatur und die Überprüfung verschiedener Merkmale
der gefundenen Ähnlichkeit etc. dienen als Entscheidungskriterien, ob und wie relevant
die gefundene Annotation für die Eingabesequenz ist. Letztendlich wird die Funktion
der unbekannten Eingabesequenz aus den gefundenen Daten abgeleitet.
Ist es jedoch nicht möglich, auf diese Weise eine Funktionszuordnung vorzunehmen,
so ist diese durch experimentelle Methoden im Labor zu bestimmen. Da der Prozeß der
manuellen Annotation natürlich sehr aufwendig ist und entsprechende Ressourcen an
Personal, Laborzeiten etc. verlangt, existieren Ansätze, die den genannten Prozeß automatisch durchführen [106, 107]. Die Ergebnisse solcher Funktionsvorhersagen fließen
auch in verfügbare Datenbanken ein, wie etwa Ensembl [108] oder TrEMBL [46]. Wie
wichtig Qualitätsaussagen zu eben solchen Daten sind, ist anhand folgender, in [105]
genannter Probleme bei Genomannotationen zu sehen:
1. inkonsistente Funktionsbeschreibungen in verschiedenen Datenbanken
2. falsche Funktionszuordnung
3. unbestätigte Funktionsvorhersagen
4. willkürliche, inkonsistente Terminologie
5. typographische Fehler
6. unzureichende Benchmarkmethoden für die Fehlerrate von Annotationsstrategien
(Stichwort: gold standard“)
”
59
Kapitel 3 Datenbankintegration in der Bioinformatik
Zur Lösung dieser Probleme wurde in [109] eine Skala von Punkten zwischen 7 (schlechteste Wertung) und 0 (beste Wertung) zur Bewertung der Reproduzierbarkeit von Annotationen vorgeschlagen. Diese Skala ist in Tabelle 3.4 abgebildet. Diese Bewertungs-
Punkte
7
Beschreibung
False positive
6
Over-prediction
5
Domain error
4
False negative
3
Under prediction
2
Undefined source
1
Typographical error
0
Total agreement
Kommentar
Originalannotation sagt eine Funktion ohne
Nachweis voraus
Originalannotation sagt eine spezielle
biochemische Funktion ohne ausreichenden
Nachweis voraus
Originalannotation übersieht verschiedenartige
Domainstrukturen des gesuchten und
referenzierten Proteins
Originalannotation vermißt eine vorhergesagte
Funktion, obwohl es ausreichende Funktionsdaten
gibt
Originalannotation sagt eine unspezifische
Funktion voraus, obwohl eine detailliertere
Vorhersage gemacht werden könnte
Originalannotation enthält undefinierte Begriffe,
nicht-homologie basierte Vorhersagen, etc.
Originalannotation enthält typographische Fehler,
die propagiert werden können
Originalannotation ist korrekt, wobei die
Annotationen nur semantisch identisch sein
müssen
Tabelle 3.4: Qualitätsskala für Annotationsreproduzierbarkeit in Datenbanken (TABS)
skala und weitere, wie etwa in [110], werden zur Zeit in den Datenbanken nur selten
unterstützt, so daß ein allgemeingültiger Qualitätsstandard noch nicht existiert. Wenn
man bedenkt, daß viele Datenbanken kaskadierend aufeinander aufbauen und sich so
fehlerhafte Daten schnell verbreiten können [110], wäre die Umsetzung dieser oder ähnlicher Bewertungsskalen als direkter Bestandteil in den Datenbanken sehr vorteilhaft.
Denn wie Abbildung 3.4 zeigt, existieren Annotationen von Genomen, bei denen nach
manueller Überprüfung der Originalannotation etwa 63% korrekte Einträge bestätigt
worden [105]. Es wurden Ansätze vorgeschlagen, diese Datenqualitätsskalen in Datenbanken zu berücksichtigen, wie etwa in Form des Attributes evidence“ in der DTD der
”
UniProt-Datenbank (siehe Anhang A.4).
60
3.2 Integration molekularbiologischer Datenbanken
Abbildung 3.4: Einordnung der Annotationsfehler für 398 Gene des Chlamydia trachomatis Genoms aus [105]
3.2 Integration molekularbiologischer Datenbanken
Aus der Motivation heraus, die weltweit verfügbaren Daten zu bündeln, um daraus gezielt Nutzen für die Erforschung von Zusammenhängen in der Molekularbiologie ziehen
zu können, ist es notwendig, existierende Datenbanken zu integrieren. Zur gezielten
Nutzung der vorhandenen Datenbanken ist eine Schnittstelle zu schaffen, die Heterogenitäten und Datenfragmentierungen überwindet. Eine so mögliche gesamtheitliche Sicht
wird durch verschiedenste Anforderungen und Visionen motiviert, wie sie etwa in [111]
oder [112] zu finden sind. Aus der Motivation der Arbeit und den zuvor vorgestellten
Eigenschaften molekularbiologischer Datenbanken ergibt sich ein spezieller Fokus, der
sich in folgenden Kernforderungen zusammenfassen läßt:
1. ausschließlich lesender Zugriff auf die Datenquellen
2. Schemaintegration auf globaler Schemaebene
3. für automatische, globale Datenanfragen geeignetes einheitliches Datenmodell
4. Unterstützung beschränkter Zugriffsmuster auf Datenquellenebene
Dabei ist zu beachten, daß hier von einer nur-lesenden“ Datenbankintegration aus”
gegangen wird. Das impliziert, daß Änderungsoperationen auf den Komponentendatenbanksystemen im Kontext des Zugriffes durch eine Datenbankintegrationssoftware
nicht zulässig sind. Somit müssen Probleme der Datenbankintegration aus Sicht der
neun Codd‘schen Regeln für Datenbankmanagementsysteme aus Abschnitt 2.2.1, wie
61
Kapitel 3 Datenbankintegration in der Bioinformatik
etwa die Behandlung von Transaktionen, Konsistenzwahrung, Dauerhaftigkeit von Datenänderungen oder Datensicherungen auf Integrationsebene nicht beachtet werden.
Folglich ist auch die Anzahl der zu unterstützenden Datenoperationen eingeschränkt.
Weiterhin sollen Datenquellen integriert werden können, die nur über sehr einfache
Schnittstellen verfügen, also beschränkte Zugriffsmöglichkeiten aufweisen. Dazu gehören
insbesondere die zuvor in Abschnitt 2.2.5 betrachteten Gegebenheiten molekularbiologischer Datenquellen.
In den folgenden Abschnitten werden in diesem Kontext Untersuchungen zu Ansätzen
der Datenbankintegration in der Bioinformatik gemacht.
3.2.1 Architekturen
Das Literaturstudium zu Architekturen und Techniken der Datenbankintegration zeigt
in den Gebieten Informatik und Bioinformatik, daß zum einen verschiedene Begriffe
und zum anderen unterschiedliche Merkmale zur Klassifizierung der Ansätze zur Datenbankintegration genutzt werden. Aus dieser Motivation heraus sollen am Anfang
dieses Abschnittes Einordnungen von Datenbankintegrationsarchitekturen und daraus
resultierende Techniken kurz eingeführt werden.
In [43] werden vier Integrationsansätze in der Bioinformatik beschrieben. Das Szenario einer Interaktion mit einer Menge heterogener molekularbiologischer Datenbanken
zum Sichten des Datenbestandes, zur Informationsgewinnung, zur Formulierung komplexer Anfragen oder zur Datenanalyse und Simulation stützt sich zur Zeit auf vier
technische Umsetzungen. In Tabelle 3.5 sind diese mit den äquivalenten Techniken aus
dem Bereich der Informatik und entsprechenden Beispielsystemen dargestellt.
Begriff Bioinformatik
Hypertextnavigation
Einordnung Informatik
Integration mittels Gateways
Data Warehouse
Staging Areas in Data
Warehouses
Multidatenbankanfragesprachen
Multidatenbankanfragesprachen
Mediatortechniken
Mediatoren
FDBS
FDBS
Beispielsystem
KEGG [113]
SRS [114]
PEDANT [115]
HUSAR [116]
BioKleisli/K2 [117]
OPM [118]
Multiagents [119]
BioMoby [120]
DAS
DiscoveryLink [121]
Tabelle 3.5: Klassifizierung von Integrationsansätzen
Neben den angesprochenen Integrationstechniken und der Einordnung in die Taxonomie der Multidatenbanksysteme in Abschnitt 2.3.1 lassen sich die Ansätze zur Datenbankintegration nach Klassifizierungsmerkmalen aus dem Bereich der Bioinformatik
einordnen, die sich als Hauptunterscheidungskriterien in der Praxis etabliert haben. Zu
62
3.2 Integration molekularbiologischer Datenbanken
beachten ist hierbei insbesondere, daß etablierte Kriterien aus der Informatik, wie etwa die neun Regeln aus Abschnitt 2.2.1 keine Praxisrelevanz haben. Eine Begründung
hierzu ist der Umstand, daß die Datenbankintegration von nicht änderbaren Komponentendatenbanken ausgeht, also nur lesend zugreift. Nach [122] sind das zwei Kriterien:
der Grad der Integration und die Materialisierung der Daten:
Grad der Integration
Der Grad der Integration beschreibt den Umfang von Integrationsaufgaben, die
gelöst wurden. Dazu zählen der Grad der Schemaintegration, der Datentransformationen, semantische Datenverbindungen etc. Auf dieser Grundlage werden
Integrationsansätze in lose und eng gekoppelte Varianten unterschieden.
Materialisierung der Daten
Diese Eigenschaft beschreibt den Grad der Datenmaterialisierung. Zum einen
kann eine physikalische (materialisierte) Kopie der Daten verwendet werden und
zum anderen verbleiben die zu integrierenden Daten physikalisch in den jeweiligen Datenbanksystemen. Im letzten Fall werden Datenanfragen von der Integrationssoftware in Teilanfragen verteilt und somit eine virtuelle integrierte nicht
materialisierte Sicht auf den zu integrierenden Datenbestand erzeugt.
Auf der Basis der eingeführten Klassifikationsmerkmale lassen sich die genannten Ansätze zur Integration molekularbiologischer Datenbanken anhand ihrer Eigenschaft im
Bezug zur Bioinformatik systematisieren. Dazu wurden in [58] detaillierte Betrachtungen vorgenommen, die in folgendem Kriterienkatalog zusammengefaßt wurden:
• Systemarchitektur
– FDBS
– Mediatoren
– Multidatenbankanfragesprachen
– Data Warehouses
• Technische Kriterien
– Grad der Integration
– Materialisierung der Daten
• Subjektive Bewertung
– Internetfähigkeit
– Programmiersprachenanbindung
– Ausgabeformate
– Flexibilität
– Unterstützung von Informationsfusion
63
Kapitel 3 Datenbankintegration in der Bioinformatik
In der zugrundeliegenden Arbeit wurden anhand obiger Kriterien existierende Integrationsansätze der Bioinformatik klassifiziert. Dieser Katalog soll zur Bewertung und
Einordnung von Datenbankintegrationssysteme dienen. Weitere Informationen zu diesem Bewertungssystem sind in der genannten Publikation zu finden.
3.2.2 Stand der Technik
Neben der, einem Datenbankintegrationssystem zugrundeliegenden, Architektur spielt
vor allem die Umsetzung in Form konkreter Systeme eine Rolle. Den Anforderungen,
die zu den jeweiligen Implementierungen führen, ist gemein, daß erstens eine möglichst
große Anzahl verschiedener Datenformate und Anfrageschnittstellen auf Seite der Datenquellen unterstützt werden sollte und zweitens ein breites Spektrum von unterstützten Klienten bzw. Anfragesprachen und -schnittstellen gewährleistet werden muß. Dies
trägt dem Grundgedanken Rechnung, daß eine Datenbankintegration für bestehende
Bioinformatikanwendungen entwickelt wird und nicht bestehende Software auf die Integrationslösung portiert werden muß. Das Konzept wird in Abbildung 3.5 verdeutlicht.
Die zuvor genannten Architekturen und Methoden zur Datenbankintegration in der
Abbildung 3.5: Szenario der Datenbankintegration in der Bioinformatik aus [123]
Bioinformatik werden durch verschiedene, im praktischen Einsatz befindliche System
umgesetzt. Dabei werden im folgenden vor allem Systeme vorgestellt, die in der Bioinformatik tatsächlich Anwendung finden und auch als Implementierung zur Verfügung
stehen. Folgende Erörterungen zu den einzelnen Systemen stellen einen Überblick und
weniger eine systematische Einordnung und Bewertung dar, da die Systeme oftmals
hybrider Natur sind und notwendige weitere Untersuchungen der Implementierungen
über die Zielstellung der vorliegenden Arbeit hinaus gehen würden. Vielmehr wird eine
64
3.2 Integration molekularbiologischer Datenbanken
Auswahl von Systemen als Repräsentanten vorherrschender Techniken dargeboten. Eine weitaus umfangreichere Aufarbeitung existierender Datenbankintegrationssysteme
im Umfeld der Bioinformatik ist etwa in [124] zu finden.
3.2.3 Sequence Retrieval System
Die sicherlich populärste und bekannteste Datenbankintegrationsplattform ist das kommerzielle Sequence Retrieval System (SRS) [114, 125] der Firma LION Bioscience AG.
Prinzipiell handelt es sich um mit Indexen angereicherte flat-files, die als Kopie im
Dateisystem des SRS-Servers vorliegen müssen und durch entsprechende Skripte aktualisiert werden, d. h. mittels FTP oder HTTP von der Originaldatenquelle kopiert
werden. Zur Indizierung existieren in der eigens entwickelten Sprache Icarus Parser, die
für jedes flat-file-Format implementiert werden müssen.
Die Attribute der so zu parsenden Datenbank werden durch das Icarus-Script spezifiziert und somit die Datenstruktur manuell nachgebildet. Aus den so für ein Attribut
extrahierten Attributwerten wird jeweils ein Index berechnet, der ebenfalls im Dateisystem des SRS-Servers abgelegt wird. Neben der Indizierung von flat-files existiert auch
die Option, relationale DBMS als Datenquelle anzubinden. Dabei werden die Indexe
aus dem DBMS abgeleitet.
Im nächsten Schritt werden zu den einzelnen, indizierten Datenbanken, ebenfalls
mittels der implementierten Icarus Scripte Querverweise, berechnet. Dabei werden zu
den bereits indizierten referenzierten Datenbanken Verweise eingefügt. Diese können
dann genutzt werden, um navigierend auf Attribute separater Datenbanken zuzugreifen.
Die Anfragemöglichkeiten vom SRS sind mit Multidatenbankanfragen zu vergleichen,
wobei die Möglichkeit von Joins nicht gegeben ist. Das heißt, es ist nur möglich, die
Komponentendatenbanken einzeln, nacheinander abzufragen. Für solche Anfragen
sind Projektions- und Selektionsanfragen mit dem Gleichheitprädikat zulässig, das
einen Vergleich eines Attributs mit einer Konstanten implementiert. Hierzu zulässige
Attribute sind nur diejenigen, für die ein Index angelegt wurde oder das virtuelle
Attribut alltext, was eine Volltextsuche über alle Attribute zuläßt. Beispielsweise
lautet eine Abfrage, die alle Autoren (aut) und die Publikationstitel (tit) der
UNIPROT-Datenbank extrahiert, wobei der Organismus Hordeum vulgare“ (Gerste)
”
ist:
getz -vf "aut tit" ’[UNIPROT_SWISSPROT-organism:Hordeum
vulgare]’
Darüber hinaus bietet SRS drei logische Operatoren AND, OR und BUTNOT zur
Kombination von Selektionsanfragen. Das folgende Beispiel ergänzt das vorige mit der
Alternative, daß der Organismus gleich Pisum sativum“ (Erbse) ist:
”
getz -vf "aut tit" ’[UNIPROT_SWISSPROT-organism:Hordeum
vulgare]OR[UNIPROT_SWISSPROT-organism:Pisum sativum]’
Die zuvor berechneten Querverweise sind die Basis für den link-Operator < bzw. >.
So berechnet der Operation A > B all die Datenbankeinträge aus der Datenbank
65
Kapitel 3 Datenbankintegration in der Bioinformatik
B, die in Datenbank A direkt oder indirekt referenziert werden. Indirekte Referenzen
werden durch transitive Verbindungen über mehrere Datenbanken gebildet, wobei ein
Datenbankeintrag ein Knoten in einem Netzwerk von Datenbanken bildet. Die dafür
genutzte Methode ist in der Literatur unzureichend beschrieben. So berechnet der
folgende Ausdruck alle Datenbankeinträge zu Hordeum vulgare“ aus der Datenbank
”
UNIPROT SWISSPROT, die zur Datenbank EMBLRELEASE Verbindungen haben:
getz ’[UNIPROT_SWISSPROT-organism:Hordeum vulgare] >
EMBLRELEASE’
Durch Konkatenation der Operatoren ist es auch möglich, Pfadausdrücke zur Suche
von Datenquerverbindungen anzugeben, um notwendigerweise zu besuchende Knoten
im Datenbanknetzwerk im Algorithmus zu definieren.
Neben dem in den Beispielen vorgestellten Kommandozeilenwerkzeug existiert eine
Web-Server-Implementierung, die formularbasierte Datenanfragen und deren Ergebnisse graphisch darstellt. Eine breite Unterstützung von Programmiersprachen ist ebenfalls
gegeben. Dazu zählen eine C-API, eine JAVA-API sowie eine CORBA-Schnittstelle [90].
3.2.4 PEDANT/BioRS
Im Kontext eines Frameworks zur Anwendungsintegration ist das PEDANT-System
[107], das zum Teil kommerziell von der Firma Biomax Informatics AG vermarktet
wird, zu nennen. Da hier zwar keine Datenbankintegration im Sinne der vorliegenden
Arbeit umgesetzt wird, aber es dennoch eine Integration von strukturell und funktionell
aufbereiteten Sequenzdaten verschiedener Organismen aus verschiedenen Datenquellen
ist, soll PEDANT an dieser Stelle kurz genannt werden. Das Ziel des Systems ist es,
eine Plattform zur funktionalen und strukturellen Analyse von Sequenzdaten bereit
zu stellen. Vorhandene Bioinformatikwerkzeuge werden angewandt, um zu analysierende Sequenzdaten auf funktionale und strukturelle Eigenschaften zu untersuchen. Dazu
gehören u. a. Homologiesuche in bereits annotierten Proteindatenbanken oder die Erkennung von Sequenzstrukturmustern, die eine Funktionsdomäne vermuten lassen. Die
Ergebnisse dieser und weiterer Analysen werden zum Teil manuell nachbearbeitet und
in einem RDBMS strukturiert für weitere Analysen gespeichert. Der Zugriff auf die
angesprochenen Werkzeuge erfolgt durch Wrapper, die mittels Parser die Ergebnisse
der Berechnungen extrahieren. Diese extrahierten Daten werden dann über eine Middleware anhand eines vorgefertigten relationalen Datenschemas strukturiert und in eine
entsprechende Datenbank gespeichert.
Im Zusammenhang mit PEDANT existiert ein kommerzielles Produkt namens BioRS
[126]. In den Produktinformationen im WWW wird von einem System zur Anfrage von
Daten aus öffentlichen, proprietären Datenbanken gesprochen, das neben flat-files auch
auf RDBMS zugreifen kann. Als Schnittstellen zum System sind neben einer interaktiven WWW-Oberfläche auch ein CORBA-Dienst und eine Anfragesprache vorhanden,
die auf einfachen Prädikaten und einer logischen Verknüpfung über AND, OR sowie
NOT beruht. Ähnlichkeiten zum SRS-System aus Abschnitt 3.2.3 sind vorhanden. Die
66
3.2 Integration molekularbiologischer Datenbanken
Systemarchitektur, so wie sie auf den WWW-Seiten des Unternehmens zu finden ist,
wird in Abbildung 3.6 dargestellt.
Abbildung 3.6: Systemarchitektur von BioRS aus [126]
3.2.5 DiscoveryLink
In einem von der Firma IBM unterstützten Forschungsprojekt wurde ein FDBS namens DiscoveryLink [121] entwickelt. Die grundlegende Architektur beruht auf einer
zentralen Föderierungsschicht, die über Wrapper auf Datenquellen zugreift. DiscoveryLink nutzt das relationale Datenmodell sowie die relationale Algebra. Somit wird SQL
als Anfragesprache unterstützt. Abbildung 3.7 zeigt die Systemarchitektur von DiscoveryLink. Das System ist in das RDBMS DB2 der Firma IBM eingebettet und bietet
somit den vollen Umfang von Anfragesprachen und Schnittstellen, sowie die bekannten
Standardfunktionen eines DBMS.
Eine SQL-Anfrage wird vom System bearbeitet, indem (1) relevante Datenquellen
ausgewählt werden, (2) ein optimaler Ausführungsplan generiert wird, die originale
Anfrage in Teilanfragen aufgebrochen wird, die zu den entsprechenden Datenquellen
weitergeleitet werden. Und (3) werden dem Anfrageplan notwendige Ergänzungen zugefügt, die von den Datenquellen nicht unterstützte relationale Operationen und Prädikate nachbilden.
67
Kapitel 3 Datenbankintegration in der Bioinformatik
WRAPPERS
SQL API
(JDBC/ODBC)
LIFE
SCIENCE
APPLICATION
DATABASE
MIDDLEWARE
ENGINE
CATALOG
DATA
SOURCE
DATA
DATA
SOURCE
DATA
DATA
Abbildung 3.7: Systemarchitektur von DiscoveryLink aus [127]
Die Kernaufgabe der Anbindung der Datenquellen fällt den Wrappern zu, die vier
Kernaufgaben in dieser Architektur zu erfüllen haben:
1. Überführung des Datenmodells der Datenquelle in das relationale Datenmodell
2. Informationen zu den, von der Datenquelle unterstützten Operationen und Prädikaten
3. Transformation der Teilanfragen in relationaler Algebra in die native Anfrageschnittstelle der Datenquelle
4. Ausführung und Kontrolle von Anfragen und die Resultatzusammenstellung
Die implementierten Wrapper liegen als C-Bibliotheken vor und werden über spezielle
SQL-DDL-Anweisungen am Integrationssystem angemeldet:
CREATE WRAPPER PROTEINDBWRAPPER LIBRARY ’libuniprot.a’;
Nachdem ein Wrapper so am System angemeldet ist, wird eine Datenquelle ebenfalls
über SQL-DDL erstellt:
CREATE SERVER PROTEINDB WRAPPER PROTEINDBWRAPPER
OPTIONS(NODE ’data.bigpharma.com’,
PORT ’2004’, VERSION ’3.2b’);
Über sogenannte NICKNAMES wird das Datenschema jeder Datenquelle erstellt. Dabei
ist eine Verwandtschaft zu der CREATE TABLE Anweisung von SQL festzustellen:
68
3.2 Integration molekularbiologischer Datenbanken
CREATE NICKNAME PROTEINS (
PROTEIN_ID VARCHAR(30) NOT NULL,
NAME VARCHAR(60),
FAMILY VARCHAR(256),
DISEASES VARCHAR(256)
) SERVER PROTEINDB;
Als Erweiterung ist es möglich, nutzerdefinierte Funktionen zur Nutzung spezieller, von
einer Datenquelle angebotene Funktionen, anzulegen.
Über die Spezifikation von Parametern zu einzelnen Wrappern kann der Umfang
der unterstützten Anfrageoperationen, wie z. B. Joins oder Prädikate, wie etwa <, >,
= zur Anfrageplangenerierung angegeben werden. Das mindestens zu unterstützende
Anfragefragment wird mit:
SELECT <projektionsliste> from <nickname>
angegeben. Fehlende Fähigkeiten eines Wrapper müssen dann vom Integrationssystem
nachgebildet werden.
Weiterhin wird ein Kostenmodell genutzt, das für jede Operation eines Wrappers
die zu erwartende Komplexität angibt. Komplexitätsmaße sind u. a. die CPU-Zeit als
relatives Maß zum DiscoveryLink-Server oder I/O-Operationen. Auf dieser Basis werden alle möglichen sowie gültigen alternativen Anfragepläne generiert und derjenige
ausgewählt, der die geringsten Gesamtkosten hat.
3.2.6 BioKleisli/K2
Das 1997 im Rahmen des Human Genome Project“ an der University of Pennsylvania
”
entwickelte Datenbankintegrationssystem BioKleisli [117] basiert auf einem Ansatz, der
auf Sichten beruht. Mittlerweile existiert ein auch kommerziell von der Firma geneticXchange vermarkteter Nachfolger namens K2/Kleisli [123, 128]. Beide Systeme basieren
auf der eigens entwickelten Anfragesprache Collection Programming Language“ (CPL)
”
in Kombination mit Datenbankwrappern, den sogenannten data driver“. Diese Treiber
”
sind individuell implementierte Wrapper, die zum einen Zugriffshomogenisierung der
anzukoppelnden Datenquellen besitzen und zum anderen die Datenformate der Anfrageergebnisse in die notwendige Datenstruktur von K2/Kleisli überführen. Somit sind
die Wrapper von den Zugriffsmöglichkeiten der Datenquellen abhängig. Die Gesamtarchitektur des Systems ist in Abbildung 3.8 dargestellt.
Im folgenden wird auf einige Komponenten aus der Systemarchitektur eingegangen.
Die Anfragesprache CPL beruht auf einem eigens entwickelten Datenmodell, das Mengen komplexer Werte in Form von Mengen, Listen, Multimengen typisiert und in den
intern verwendeten nested relational calculus“ (NRC) [129] überführt wird. Basisdaten”
typen sind bool, string und int. Mittels einer entsprechenden Modellierungssyntax
werden diese Typen für jede Datenanfrage in Form einer Sicht erstellt. Die Werte zu
den so dynamisch modellierten Datenstrukturen werden mittels Datenzugriffsfunktionen ermittelt. Diese Funktionen werden von den genannten data driver“ zur Verfügung
”
gestellt und durch den Driver Manager“ verwaltet.
”
69
Kapitel 3 Datenbankintegration in der Bioinformatik
CPL-Kleisli
Type
Module
Drivers
Driver
Manger
pipe
Net
Remote
Servers
Sybase
GSDB
ASN.1
CPL
NRC
Complex
Object
Library
OPM
shared
memory
Optimizer
GenBank
ACeDB
GDB
Primitiv
Manager
BLAST
NCBI-BLAST
Abbildung 3.8: Systemarchitektur von BioKleisli aus [117]
Eine Erweiterung zu BioKleisli ist K2. Ausgehend von CPL wird eine OQL-Anfragesprache angeboten, wobei die zuvor genannten Datenzugriffsfunktionen, vordefiniert
in OQL, eingebettet zur Verfügung stehen. Ebenso wie CPL wird OQL in den NRC
transformiert.
Die Datenbankzugriffsfunktionen werden mit einer Parameterliste aufgerufen und liefern die Resultate in Form von OQL-unterstützten Datentypen. Es existieren sowohl
eine Anzahl von Treibern für populäre molekularbiologische Datenbanken als auch zur
Anbindung von Bioinformatikwerkzeugen. Ein Beispiel ist der Treiber für die über das
Entrez-System zugänglichen Datenbanken (vergleiche hierzu Abschnitt 3.2.7). Hier existiert z. B. eine Funktion zur Abfrage von Daten der PubMed-Datenbank get-medline”
substances“:
define get.medline-substances(pmid) as
entrez("-g " ||pmid|| " -d m
-r Entrez.back.getmle.data.E.substance.E.name")
Der Aufruf dieser Funktion liefert eine Liste aller Substanzen aus der PubMed-Datenbank mittels des Entrez-Systems [130], die zu einer gegebenen PubMed-ID (pmid)
zugeordnet sind:
list("Heparin",
"Complement 3d",
...
"clusterin")
70
3.2 Integration molekularbiologischer Datenbanken
Auf diese Weise können OQL-Anfragen formuliert werden, die Informationen aus mehreren Datenquellen abfragen und zu einem Anfrageergebnis z. B. mittels Joins vereinigen. Es ist also notwendig, die Anfrageverteilung und Daten- bzw. Schemaintegration
in der Anfrage selbst zu spezifizieren. Dabei analysiert der Optimierer die OQL-Anfrage, schreibt Teile gegebenfalls um, die nicht direkt von den Treibern unterstützt
werden. Diese werden dann lokal vom Laufzeitsystem ausgeführt. Desweiteren werden vom Optimierer Ersetzungsregeln für Operationen, wie mehrfach nested loop“
”
für Joins, zusammengefaßt oder nicht benötigte Attribute erkannt und durch zusätzliche Projektionen entfernt. Ein Hauptziel ist die Reduzierung von Zwischenergebnissen.
Darüber hinaus ist es auch möglich, nutzerspezifische Sichten zu definieren, die somit
vorgefertigte Datenbankintegrationsanfragen umsetzen. Dazu wird die Sprache K2MDL
angeboten. Somit ähnelt Kleisli/K2 der Technik der Multidatenbankanfragesprachen.
Aussagen zu den unterstützten Schnittstellen konnten nur unzureichend in der Literatur gefunden werden. Es ist aber anzunehmen, daß die für OODBMS üblichen
Bindungen, wie CORBA oder entsprechende APIs, verfügbar sind.
Als aufgesetzte Data-Warehouse-Komponente zu Kleisli/K2 existiert eine Datenbank
namens Genomics Unified Schema“ (GUS). Das zentrale Dogma der Molekularbiologie
”
(DNA → RNA → Protein) wird hier in einem relationalen Schema von über 180 Tabellen modelliert. Die entsprechenden Daten werden inklusive Versions- und Quellinformationen mittels K2/Kleisli in ein RDBMS importiert. Über eine spezielle Updatestrategie
werden bei Änderungen oder Erweiterungen zu den im Data Warehouse importierten
Daten inkrementelle Imports durchgeführt.
3.2.7 Andere
An dieser Stelle sollen weitere bekannte Systeme zur Datenbankintegration vorgestellt
werden, die in den vorherigen Abschnitten nicht detailliert erörtert wurden, da sie
entweder nicht implementiert wurden oder technisch auf den vorgestellten Systemen
basieren oder wenig Eigenschaften eines Datenbankintegrationssystem besitzen. Die
Nutzung dieser Systeme ist nichtsdestotrotz in der Bioinformatik populär.
Ein Vertreter der materialisierten Datenbankintegration auf Grundlage von Indizierungen ist neben dem vorgestellten SRS-System aus Abschnitt 3.2.3 Entrez [130]. Das
vom National Center for Biotechnology Information (NCBI) in den USA genutzte System nutzt lokal gespeicherte flat-files, die indiziert werden und über eine WWW-basierte Schnittstelle angefragt werden können. Im System sind nur Datenquellen des
NCBI integriert. Verbindungen unter den flat-files existieren in Form von Datenbankquerverweisen. Datenanfragen sind über proprietäre Anfragesprachen, ähnlich der des
SRS-Systems zu spezifizieren. Eine Schemaintegration, selbst in Form von Views wie
bei SRS, findet nicht statt. Die Ausgabeformate reichen von HTML über ASN.1 bis zu
XML.
Vom Deutschen Krebsforschungszentrum in Heidelberg (DKFZ) wird ein System mit
dem Namen HUSAR (Heidelberg Unix Sequence Analysis Resources) angeboten. Im
ursprünglichen Sinne handelt es sich hier um ein Framework zur Anwendungsintegration. Eine Vielzahl von Datenquellen sind u. a. über eine lokal installierte SRS Instanz
71
Kapitel 3 Datenbankintegration in der Bioinformatik
den über 250 Bioinformatikanwendungen homogen zugänglich gemacht worden. Mittels einer graphischen X-Windows-Nutzeroberfläche [116] und einer WWW-Benutzerschnittstelle W2H [131] können die angebotenen Werkzeuge genutzt und miteinander
gekoppelt werden.
Eine im Zusammenhang mit dem Kleisli/K2-System populär gewordene Datenbankintegrationslösung ist TAMBIS (Transparent Access to Multiple Bioinformatics Information Sources) [60]. Auf der Datenbankintegrationskomponente K2/Kleisli wurde eine ontologiebasierte Datenschemaintegrations- und Anfrageformulierungskomponente
aufgesetzt. Im wesentlichen besteht das Gesamtsystem aus fünf Teilkomponenten: einer Ontologie biologischer Konzepte, die eine semantische Schemaintegration der über
Kleisli/K2 bereitgestellten Datenquellen umsetzen soll. Datenanfragen werden über graphische Nutzerschnittstellen in Form von JAVA-Applets über eine wissensbasierten Anfrageformulierungsschnittstelle gestellt. Somit soll der Nutzer von der notwendigen manuellen Datenschemaintegration in Form der Multidatenbankanfragesprache CLP des
Kleisli-Systems entkoppelt werden. Vielmehr bedient er sich einer explorativen Suche
in der angebotenen Ontologie nach gewünschten Konzepten, zu denen Daten aus den
hierzu in Beziehung stehenden Datenquellen automatisch über eine generierte CPLAnfrage angefragt werden.
Die zuvor vorgestellten Systeme zur Datenbankintegration wurden im Kontext der
Bioinformatik ausgewählt. Natürlich existieren weitere, nicht in der Bioinformatik motivierte Datenbankintegrationssysteme. Besonders auf dem Gebiet der sichtenbasierten
Integration bzw. der heterogenen Multidatenbanksysteme existieren einige Forschungsprojekte und auch kommerzielle Produkte.
Dazu gehört das Projekte TSIMMIS [132], welches Datenbankkonzepte und nichtprozedurale Spezifikationen nutzt, um eine Mediatoren-Wrapper Architektur zu implementieren. Das Projekt Pegasus [133] setzt ein FDBS-nahes System um. Dabei wird
ein eigenes Datenmodell und eine eigene Anfragesprache benutzt, welche ähnlich dem
K2/Kleisli-System aus Abschnitt 3.2.6 auf einem funktionalen Objektmodell basieren,
das eine große Flexibilität hinsichtlich der Modellierung und Anbindung von Datenquellen bietet.
Garlic [134, 127] wird als das erste Datenbankintegrationsprojekt bezeichnet, das
die volle Ausdrucksstärke und den Funktionsumfang von RDBMS offeriert. Basis ist
das von der Firma IBM entwickelte Datenbanksystem DB2. Zur Unterstützung einiger
objektorientierter Eigenschaften wurde die Anfragesprache erweitert. Die entwickelte
Wrapper-Architektur sowie die datenquellenübergreifenden Anfrageoptimierungen flossen direkt in Produkte von IBM ein. So wurde der DB2 DataJoiner als kommerzielles
Produkt entwickelt, der ein FDBS implementiert, das die Föderierung von relationalen
Komponentendatenbanksystemen realisiert. Garlic und der DataJoiner sind Vorläufer
für das IBM-Produkt DiscoveryLink, welches in Abschnitt 3.2.5 beschrieben wurde.
Das Konzept von Wrappern zur Einbettung von relationalen Komponentendatenbanksystemen in kommerzielle RDBMS wird auch von der Firma ORACLE mit dem
Produkt ORALE9i unterstützt. Hier werden über sogenannte Datenbank-Links Verknüpfungen zu über ODBC zugreifbare DBMS hergestellt. Dazu müssen Verbindungsaliase erstellt werden, die u. a. den ODBC-Treibernamen und die Verbindungsparameter
72
3.3 Resümee
enthalten. Darüber hinaus ist ein Zugriff auf tabellarische, im CSV-Format vorliegende
flat-files möglich. Mit der SQL-Schnittstelle von ORACLE9i kann dann auf die jeweiligen Datenbank-Links zugegriffen werden. Im folgenden Beispiel wird ein Link zu einer
entfernten Tabelle einer ORACLE9i-Datenbank als Datenbankobjekt angelegt und mittels SQL angefragt:
CREATE DATABASE LINK my_remote_schema
CONNECT TO remote_user
IDENTIFIED BY remote_password
USING ’remote_database’;
select * from remote_table@my_remote_schema;
Neben diesen genannten Integrationslösungen existieren weitere Systeme. Eine nützliche
Zusammenfassung und Bewertung der in der vorliegenden Arbeit vorgestellten und
weitere Systeme findet der interessierte Leser in [124, 58].
3.3 Resümee
In diesem Kapitel wurde eine Analyse von molekularbiologischen Datenbanken und
von existierenden Lösungen zur Datenbankintegration in der Bioinformatik durchgeführt. Dabei wurden im ersten Teil spezifische Gegebenheiten öffentlicher Datenbanken mit besonderem Fokus auf die angebotenen Schnittstellen und Datenformate sowie
die charakterisierenden Eigenschaften der so angebotenen Daten untersucht. So wurde
festgestellt, daß die Daten in Hinsicht auf datenbankübergreifende, eindeutige Identifikatoren, Qualitätskriterien und in der Vereinheitlichung befindliche Datendomänen ein
hohes Integrationspotential besitzen. Weiterhin wurden drei Typen von verfügbaren
Datenbankschnittstellen klassifiziert. Das Resultat war die Erkenntnis, daß für eine in
der Praxis anwendbare Datenbankintegrationslösung im allgemeinen keine Standardschnittstelle genutzt werden kann. Vielmehr existieren in Form der möglichen Zugriffsmuster teilweise starke Beschränkungen der angebotenen Funktionalität.
Im Mittelpunkt des zweiten Teils des Kapitels stand die Untersuchung von im Umfeld
der Bioinformatik vorgeschlagenen Methoden zur Datenbankintegration. Dabei wurde
der Bezug zu den zuvor erarbeiteten Anforderungen an praxistaugliche Datenbankintegrationssysteme hergestellt. Nach einer allgemeinen Klassifikation von Integrationsarchitekturen bezüglich ihrer Eigenschaften wurde der Stand der Technik anhand repräsentativer, in der Praxis eingesetzter Systeme vorgestellt. Insbesondere wurden die
jeweils genutzten Methoden zum Zugriff auf die Komponentendatenbanken und der
angebotene Funktionsumfang der Anfragesprachen betrachtet. Die Analyse dieser Systeme und die sich in der Anwendung ergebenen Probleme ergab die Motivation für
die Entscheidung, eine Mediatorarchitektur als Grundlage für das in der vorliegenden
Arbeit vorgeschlagene, konzipierte und implementierte Datenbankintegrationssystem
einzusetzen.
73
Kapitel 4
Ansatz zur Integration
molekularbiologischer Datenbanken
Motiviert durch die Erkenntnisse aus Kapitel 3 ist die Annahme zu treffen, daß der
Zugriff auf biologische Datenquellen in Form von Datenbanken oder unter der Nutzung
von Datenbankintegrationssystemen in vielen Fällen beschränkten Zugriffsmustern unterliegt. Dies macht eine Abstraktion über gegebene Anfragesprachen, Schnittstellen
und Datenmodelle notwendig. Das Ziel ist ein homogener Datenzugriff im Kontext limitierter Zugriffsschnittstellen und Anfragesprachen zur mediatorbasierten Datenbankintegration.
Neben der eher technischen Herausforderung der Homogenisierung von Schnittstellen ist die Homogenisierung von Anfragesprachen bzw. Anfrageoperationen eine Kernanforderung an die Datenbankintegration in der Bioinformatik. Eine entscheidende
Voraussetzung ist deshalb ein kanonisches Datenmodell verbunden mit, für alle Datenquellen gültigen, Operationen zum Datenzugriff. Ziel ist ein integrativer Zugriff
auf Datenquellen mit heterogenen Datenmodellen, Anfragesprachen und Schnittstellen. Da zur Akzeptanz und Verwendbarkeit eines Datenbankintegrationssystems durch
existierende Bioinformatikanwendungen die Unterstützung von komplexen, deklarativen Datenbankanfragesprachen wie SQL gehört, muß das gewählte Datenmodell auf
das relationale abbildbar sein. Somit ist ein Kompromiß zwischen den gegensätzlichen
Annahmen zu finden, so daß
(a) jede zu integrierende Datenquelle das relationale Datenmodell bzw. das relationale
Tupelkalkül durch nachträglich zugefügte Funktionalität, etwa durch Wrapper,
unterstützt und somit eine Homogenisierung auf Datenquellenebene stattfindet
oder
(b) die Schnittstelle der Datenquelle als gegeben betrachtet wird und somit nur ein
heterogener Zugriff möglich ist, der in einer Homogenisierung auf der Ebene des
Datenbankintegrationssystems resultiert.
Dieser Kompromiß wird im folgenden durch ein relationales Integrationsdatenmodell
und den darauf definierten Operationen vorgeschlagen.
Dazu wird im ersten Abschnitt ein Datenmodell eingeführt, daß eine Adaption des
relationalen Datenmodells darstellt. Dazu werden zu unterstützende Integrationsoperationen vorgestellt, sowie eine darauf aufbauende mögliche Anfragesprache beschrieben.
75
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Abschließend werden Strategien zur Anfragebearbeitung und die damit verbundenen
Methoden zur Anfrageverteilung auf die Komponentensysteme behandelt.
4.1 Relationales Integrationsdatenmodell
Um die notwendigen Eigenschaften und Funktionen einer Datenbankintegration im Umfeld der Molekularbiologie, so wie sie in [58] beschrieben wurden, in ein Softwaresystem
zu überführen, wird es notwendig, formale Grundlagen zu erarbeiten. Diese dienen
der konkreten Algorithmisierung und anschließenden Implementierung einer Lösung
zur Datenbankintegration. Als Grundlage hierzu soll die Definition eines geeigneten
Datenmodells dienen, das auf Grundlage der Analyse existierender, zu integrierenden
Datenquellen erarbeitet wird. Ziel ist ein Datenmodell, auf das die existierenden Datenquellen abgebildet werden können. Angelehnt an das relationale Datenmodell wird
im folgenden das Relationale Integrationsdatenmodell (RIND) erarbeitet. Zuvor sollen
aber grundlegende Konzepte des relationalen Datenmodells eingeführt werden.
4.1.1 Basisdatenmodell
In der Molekularbiologie wird mit realen Objekten gearbeitet. Das heißt, diese werden,
wie in Naturwissenschaften üblich, empirisch beobachtet und gemessen. Die Ergebnisse
hieraus werden ausgewertet und genutzt, um Theorien zu beweisen oder zu widerlegen. Dabei handelt es sich um greifbare“, d. h. meßbare bzw. durch die menschlichen
”
Sinnesorgane erfaßbare Objekte. Weiterhin existieren durchaus Objekte, die ausschließlich auf der menschlichen Vorstellung beruhen. Somit kann folgende Definition gegeben
werden:
Definition 4.1 (Objekt) In der realen Welt der Molekularbiologie existieren Objekte, die
aus den Bereichen der Realität und der menschlichen Vorstellung resultieren. Diese Objekte
sind meßbar bzw. sprachlich klar zu beschreiben.
2
Beispiel 4.1 Anhand folgender Aufzählung von Objekten soll obige Definition illustriert werden: das Molekül Adenin, die Aminosäure L-Alanine, das Enzym Arginase,
der Stoffwechselweg der Glycolyse, die Stoffwechselkrankheit Arginemia.
2
Bei der Betrachtung des Beispiels fällt auf, daß Objekte keineswegs atomar sind. Vielmehr können die das Objekt charakterisierenden Eigenschaften komplexe Strukturen
bilden. Dabei kann nicht davon ausgegangen werden, daß ein Objekt nicht vollständig
über seine Eigenschaften definiert werden kann. Eine bijektive Beziehung zwischen einem Objekt und seinen Eigenschaften ist also nicht zwingend vorhanden. Das liegt zum
einen daran, daß nicht alle Eigenschaften zu einem Objekt erforscht wurden oder gar unbekannt sind. Zum anderen können Eigenschaften so allgemein sein, daß ein Schluß auf
ein bestimmtes Objekt nicht möglich ist. Das wiederum kann durchaus notwendig sein,
etwa um Objektklassen zu definieren. Um nun Objekte durch Computer verarbeiten zu
können, ist aber eine eigenschaftsbasierte Abstraktion von Objekten notwendig. D. h.,
76
4.1 Relationales Integrationsdatenmodell
Objekte werden durch ihre Eigenschaften im Computer repräsentiert. Dabei können
natürlich nur die Eigenschaften betrachtet werden, die im Computer erfaßbar sind.
Darüber hinaus ist festzustellen, daß biologische Objekte der realen Welt durchaus
dynamischen Veränderungen unterliegen oder auch polymorphen Charakter besitzen
können. Diese beiden Aspekte sollen für das hier vorgestellte Datenmodell keine Rolle spielen. Dies ergibt sich aus der Motivation der Arbeit und auch den in Kapitel 3
untersuchten Eigenschaften molekularbiologischer Daten. Somit kann aus dem hier eingeführten Begriff eines Objektes keine Analogie zu bekannten Methoden der objektorientierten Modellierung aus Abschnitt 2.2.2 hergestellt werden. Vielmehr ist eher eine
Verwandtschaft zu den im Abschnitt 2.2.2 eingeführten Konzepten des E/R-Modells
feststellbar.
Diese Betrachtungen führen somit zur Definition von Objekteigenschaften und Eigenschaftsdaten.
Definition 4.2 (Objekteigenschaft) Unter der Eigenschaft eines Objektes (Objekteigenschaft) Ej versteht man ein bekanntes, bezeichnendes Merkmal aus der Menge aller
möglichen Eigenschaften E = {E1 , . . . , Ej } für j ∈ N zu Objekten gemäß Definition 4.1.
2
Beispiel 4.2 Enzymen kann z. B. eine Menge von Eigenschaften zugeordnet werden.
Neben folgender Aufzählung existieren natürlich eine Vielzahl weiterer Eigenschaften,
die Enzyme charakterisieren:
• E1 = Name
• E2 = EC Nummer
• E3 = Organismus
• E4 = Genbezeichnung
2
Definition 4.3 (Domäne) Sind die Ausprägungen einer Eigenschaft durch einen Computer erfaßbar, so werden diese als Eigenschaftsdaten, kurz Daten, bezeichnet. Die Menge
D aller möglichen Daten über allen Eigenschaften läßt sich in Untermengen zerlegen, so
daß gilt:
n
[
D=
Di
für alle n ∈ N
i=1
Ein Di wird als Wertebereich bzw. die Domäne eines Ej bezeichnet. Es existiert eine surjektive Funktion dom : E → D, die jeder Eigenschaft Ej eine Domäne Dj zuweist.
2
77
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Beispiel 4.3 Angenommen die Menge D besteht aus den Elementen:
{Arginase, Arginosuccinase, Argininosuccinate synthase, Ornithine carbamoyltransferase, 3.5.3.1, 4.3.2.1, 6.3.4.5, 2.1.3.3, Human, Homo sapiens, ARG1, ARG2, ASL, ASS,
OTC}
so erhält man nach Anwendung der Funktion dom:
dom(E1 ) = {Arginase, Arginosuccinase, Argininosuccinate synthase,
Ornithine carbamoyltransferase}
dom(E2 ) = {3.5.3.1, 4.3.2.1, 6.3.4.5, 2.1.3.3}
dom(E3 ) = {Human, Homo sapiens}
dom(E4 ) = {ARG1, ARG2, ASL, ASS, OTC}
2
Auf diese Weise lassen sich Eigenschaften Objekten zuordnen, so daß man in die Lage versetzt wird, von Objekten gemäß Definition 4.1 derart zu abstrahieren, daß diese
durch Computer erfaßbar werden. Da jeder Eigenschaft genau einer Domäne zugeordnet ist, umfassen die Objekteigenschaften die Menge aller möglichen Eigenschaftsdaten.
Es ist leicht einzusehen, daß durch die Auswahl spezieller Eigenschaftsdaten eine bestimmte Ausprägung eines Objektes erfaßt werden kann.
Definition 4.4 (Eigenschaftsschema) Eine Menge S ⊆ E definiert das Eigenschaftsschema OS eines Datenobjektes DO. Dabei sind die Elemente wohlgeordnet.
2
Beispiel 4.4 Um die eben eingeführte Defintion eines Eigenschaftsschemas transparent
darzustellen, wird das Beispiel 4.3 erweitert. Das Eigenschaftsschema ist also:
OSEnzyme = (Name, EC Nummer, Organismus, Genbezeichnung)
2
Die konkrete Ausprägung eines Eigenschaftsschemas kann nun über die Eigenschaftsdaten und die Abbildungsfunktion dom erfolgen:
Definition 4.5 (Eigenschaftsausprägung) Aus der Menge aller möglichen Eigenschaftsdaten zu einem gegebenen Eigenschaftsschema OS lassen sich jeweils Teilmengen
von Objektdaten bilden. So gebildete i-Tupel OA sind Eigenschaftsausprägungen zu OS.
Der Index von OA entspricht dem Index von OS:
OA = (oa1 , . . . , oai )
für alle oai ⊆ dom(osi ) ∧ si ∈ OS
Ein jedes Tupel aus OA ist also eine Objektausprägung für ein spezielles Eigenschaftsschema
osi . Die Menge aller Objektausprägungen aus OA zu einem Eigenschaftsschema aus OS
wird über die surjektive Funktion obj : OS → OA angegeben.
2
78
4.1 Relationales Integrationsdatenmodell
Beispiel 4.5 Mögliche Objektausprägungen können so aus Untermengen der jeweiligen
Eigenschaftsdomäne gebildet und dem Eigenschaftsschema OSEnzyme aus Beispiel 4.4
zugeordnet werden:
obj(Enzyme) =
n
{Arginase}, {3.5.3.1}, {Human, Homo sapiens}, {ARG1, ARG2} ,
{Arginosuccinase}, {4.3.2.1}, {Human, Homo sapiens}, {ASL} ,
{Argininosuccinate synthase}, {6.3.4.5}, {Human, Homo sapiens},
{ASS} ,
{Ornithine carbamoyltransferase}, {2.1.3.3}, {Human, Homo sapiens},
o
{OTC}
2
Betrachtet man nun ein Eigenschaftsschema und die Objektausprägungen, so sind Ähnlichkeiten zum Relationenmodell [27] erkennbar. Daß Objektausprägungen Tupel über
Mengen von Eigenschaftsdaten sind, widerspricht natürlich dem Atomaritätskriterium von Attributen in Relationen. Durch die Einführung des N F 2 -Modells durch [135]
wurde das Relationenmodell diesbezüglich erweitert. So können hier durch die Anwendung von Schachtelungs- bzw. Entschachtelungsoperationen geschachtelte Relationen
in flache Relationen überführt werden. Diese Methode ist auf das soeben eingeführte
Datenmodell nicht anwendbar.
Denn beim hier eingeführten RIND-Datenmodell handelt es sich bei den Eigenschaftswerten zu jeder Eigenschaft osi eines Eigenschaftsschemas OS um Mengen von Daten.
Dieses allgemeinere Konzept spiegelt die Gegebenheiten in molekularbiologischen Datenbanken wider, so wie sie in Abschnitt 3.1.1 eingeführt wurden. Somit müssen spezielle Regeln angewandt werden, um Relationen zu erzeugen (siehe Abschnitt 4.1.3).
Wie später gezeigt wird, sind die objektidentifizierenden Eigenschaften gesondert zu
behandeln. Auch im Bereich der Beziehungen zwischen Datenobjekten sind spezielle
Methoden notwendig, die in den folgenden Abschnitten beschrieben werden.
4.1.2 Schlüssel
Betrachtet man Objekausprägungen, so erscheint es sinnvoll, diese anhand spezieller
Eigenschaften eindeutig identifizieren zu können. Dazu kann das gesamte Eigenschaftschema derart genutzt werden, indem sich alle Elemente möglicher Objektausprägungen
aufgrund unterschiedlicher Eigenschaftsdaten unterscheiden.
Definition 4.6 (Objekteindeutigkeit) Die Definition einer Menge läßt sich nutzen,
um die Eigenschaft zu begründen, daß also ein Tupel aus der Menge O = obj(OS) diese
Objektausprägung eindeutig in O bestimmt:
∀x, y ∈ obj(OS) : x 6= y
für OS ⊆ E
2
79
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Diese Eindeutigkeitseigenschaft von Objektausprägungen nutzt die gesamte Anzahl von
Objekteigenschaften in S. Eine sinnvollere Methode ist die Bildung einer Untermenge
der Form OS ǫ ⊆ OS derart, daß die Definition 4.6 mit OS ǫ erfüllt ist:
Definition 4.7 (Minimale Objekteindeutigkeit) Es existiert eine Untermenge OS ǫ ,
so daß gilt:
∀x, y ∈ obj(OS ǫ ) : x 6= y
für OS ǫ ⊆ OS
2
OS ǫ sind die Schlüsseleigenschaften aus OS und bestimmen die anderen Eigenschaften
OS γ = OS \ OS ǫ funktional. Diejenige Untermengen OSiǫ für die gilt:
∀OSiǫ ⊆ OS ǫ : |OSiǫ | ist minimal über alle OSiǫ
ǫ
ǫ
bezeichnen wir als OSmin
. Dabei muß OSmin
natürlich Defintion 4.7 erfüllen.
Beispiel 4.6 Um die eben eingeführten Schlüsseleigenschaften am Beispiel darzustellen, nutzen wir das bereits eingeführte Objekteigenschaftsschema OSEnzyme :
ǫ
OSEnzyme
1
γ
OSEnzyme
1
ǫ
OSEnzyme 2
γ
OSEnzyme
2
ǫ
OSEnzyme
min
γ
OSEnzyme min
=
=
=
=
=
=
(Name, EC Nummer, Organismus, Genbezeichnung)
()
(EC Nummer, Genbezeichnung)
(Name, Organismus)
(Genbezeichnung)
(Name, EC Nummer, Organismus)
2
4.1.3 Abbildung auf das Relationenmodell
Wie in Definition 4.5 bestimmt wurde, sind die Eigenschaftsausprägungen für eine Eigenschaft Mengen von Daten gemäß Definition 4.3. Mit dem Ziel der Abbildung auf
das relationale Datenmodell ist es notwendig, diese derart aufzulösen, daß atomare,
nicht mengenwertige Eigenschaftsausprägungen existieren. Mittels einer rekursiven Anwendung des Kreuzproduktes zweier Mengen lassen sich Objektausprägungen zu einer
Menge von Tupeln relational auflösen:
Definition 4.8 (Paarfunktion Tupel/Menge) Die Definition einer Paarmenge zweier Mengen läßt sich auf eine Kombination eines Tupels T und einer Menge M erweitern:
T = (te1 , . . . , ten )
M = {me1 , . . . , mem }
T × M = {(te1 . . . , ten , me1 ),
..
.
(te1 . . . , ten , mem )}
2
80
4.1 Relationales Integrationsdatenmodell
Definition 4.9 (Paarfunktion Relation/Menge) Da das Ergebnis der Operation ×
einer Relation entspricht, d. h. einer Menge von Tupeln, kann diese Operation auch auf die
Paarbildung einer Relation R und eines Tupels T ausgeweitet werden:
T = (te1 , . . . , ten )
R = (r1 , . . . , rm ) | rm ∈ T
R×T =
|R|
[
ri × T
| ri ∈ R
i=1
2
Mit der zuvor definierten Funktion × kann nun aus einer Objektausprägung OA zu
einem gegebenen Eigenschaftsschema OS gemäß den Definitionen 4.5 und 4.4 eine Relation ROA berechnet werden:
R0 = {()}
Ri = Ri−1 × oai
ROA = Rn
für alle oai ∈ OA ∧ 1 ≤ i ≤ n ∧ n = |OS|
Die Ergebnisrelation ROA hat somit n Attribute und eben soviel Tupel m wie das
Produkt der Größe aller Elemente aus OA:
Y
m=
|oai |
1≤i≤n
Beispiel 4.7 Bezugnehmend auf Beispiel 4.5 kann eine Objektausprägung wie folgt
rekursiv aufgelöst werden:
OA =
R0
R1
R2
R3
R4
ROA
n
{Arginase}, {3.5.3.1}, {Human, Homo sapiens}, {ARG1, ARG2}
{()}
{()} × {Arginase}
{(Arginase)} × {3.5.3.1}
{(Arginase, 3.5.3.1)} × {Human, Homo sapiens}
(Arginase, 3.5.3.1, Human),
=
× {ARG1, ARG2}
(Arginase, 3.5.3.1, Homo sapiens)


(Arginase, 3.5.3.1, Human, ARG1), 





(Arginase, 3.5.3.1, Human, ARG2),
=
(Arginase, 3.5.3.1, Homo sapiens, ARG1)




(Arginase, 3.5.3.1, Homo sapiens, ARG2)
=
=
=
=
Es ergeben sich somit n = 4 und m = 4.
2
81
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Da die Menge O aller Objektausprägungen zu einem Eigenschaftsschema über die Funktion O = obj(OS) ermittelt werden kann, ist es möglich, die relationale Abbildung auf
jedes Element aus O anzuwenden und mittels der Mengenvereinigung eine Gesamtrelation R zu O auszurechnen:
|O|
[
R=
oi | o ∈ O
i=1
4.2 Datenschemata
Das zuvor vorgestellte Datenmodell dient als Basis zur konkreten Implementierung
einer Datenbankintegration mittels eines Mediators, dem im Kapitel 5 vorgestellten
BioDataServer. Dabei wird davon ausgegangen, daß kein homogenes Datenmodell in
allen Ebenen, die zu einem Mediator gehören, vorliegt. Vielmehr existieren die Anwendungsebene, die Datenquellenebene und die Vermittlerschicht. Diese Architektur wurde
bereits im Abschnitt 2.3.3 vorgestellt.
Dabei besteht die Notwendigkeit, die Datenmodelle derart auszuwählen, daß
1. komplexe Datenmodelle zur strukturierten und konsistenten Datenbereitstellung
mit Unterstützung deklarativer Anfragesprachen auf Anwenderebene, wie etwa
das relationale Modell und SQL, bereitgestellt werden, und andererseits
2. die eher einfachen Datenmodelle, wie etwa flache Dateistrukturen und die teilweise sehr beschränkten Datenanfragemöglichkeiten der Datenquellen, unterstützt
werden.
Diese beiden Ebenen sind durch den Mediator zusammenzuführen. Dabei sind folgende
Aspekte von der Schemaebene des Mediators zu berücksichtigen:
• Datenschemapartitionierung,
• Datenallokation und
• Datenschemaintegration.
Diese Aspekte fließen in die nachfolgend beschriebene 3-Ebenen-Schemaarchitektur
ein, deren Ebenen Elemente aus dem RIND-Datenmodell benutzen. Abbildung 4.1 zeigt
die drei Schemaebenen1 .
Das Remote Export Schema (RES) wird auf der Ebene der Datenquellen angewandt
und beschreibt die dortigen Datenschemata im nativen Datenmodell. Das Adapter Schema (AS) ist eine Abbildung des RES einer Datenquelle auf das in Abschnitt 4.1 eingeführte RIND-basierte Datenschema. Letztlich repräsentiert das Integrated User Schema
(IUS) partiell integrierte, mit Datenallokations- und Partitionselementen angereicherte,
relationale Sichten auf Adapterschemata.
1
Die Bezeichnungen der Schemaebenen sind aus Gründen der Konsistenz mit dem hierzu bereits in
[136] veröffentlichten Beitrag des Autors in englischer Sprache angegeben
82
4.2 Datenschemata
Abbildung 4.1: 3-Ebenen-Schemaarchitektur des Integrationsansatzes
4.2.1 Remote Export Schema (RES)
Die Schemaebene des Remote Export Schemas (RES) ist analog dem lokalen Schema
der 5-Ebenen Schemaarchitektur eines FDBS aufzufassen. Hier wird das konzeptionelle
Schema des jeweiligen KDBS beschrieben. Wie im Kapitel 3 bereits erläutert, ist die
Vielzahl der Datenbanken in der Molekularbiologie konzeptionell wohlmodelliert, können aber oftmals nicht direkt zur Schemaintegration genutzt werden. Der Umstand begründet sich vornehmlich im fehlenden Exportschema dieser Datenbanken. Die Hauptgründe liegen in Zugriffsbeschränkungen auf das zugrundeliegende backend“-DBMS,
”
wodurch keine Metadaten automatisch abgefragt werden können. Alternativen, wie die
Bereitstellung von expliziten Datenschemasichten gemäß den Darstellungen aus Abschnitt 3.1.2 können ebenso als Grund genannt werden.
Somit können zwei Arten von RES klassifiziert werden:
1. diejenigen, die direkt von der Datenquelle zur Nutzung in Applikationen mittels
APIs abgefragt werden können und
2. die Datenschemata, die durch manuelles oder semi-automatisches Nachmodellieren (re-engineering) erstellt werden müssen [100, 21, 84].
Beispiele von RES sind in den Anhängen A.1 bis A.4 zu finden.
Die notwendige Voraussetzung eines RES ist die Abbildbarkeit auf die im Abschnitt
4.1.1 vorgestellten Basiskonzepte eines kanonischen Datenmodells. Das ist die Voraussetzung zur Nutzung eines RES als Basis für ein Adapterschema, d. h. die Konzepte
• Objekteigenschaft
• Eigenschaftsschema
83
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
• Eigenschaftsausprägung
• Schlüsseleigenschaften
müssen aus den jeweiligen Modellen der RES abstrahiert werden können. Falls diese
Möglichkeit gegeben ist, kann für die jeweilige Datenquelle ein Adapter zur Nutzung
durch den Mediator implementiert werden.
4.2.2 Adapterschema (AS)
Mit Hilfe der Adapterschemata (AS) werden die Datenmodellheterogenitäten der RES
überwunden. Über die Abbildung des RES auf die Konzepte des Basisdatenmodells,
kann ein Adapterschema als direkte Instanz des RIND-Datenmodells implementiert
werden. Einem AS ist genau ein RES zugeordnet. Das trifft auch für den umgekehrten
Fall zu.
Somit erfüllt das AS folgende Basisanforderungen:
1. Alle wichtigen Basiskonzepte zur Bereitstellung einer relationalen Schnittstelle
über das IUS müssen abbildbar sein.
2. Es muß ausreichend semantisch arm sein, um möglichst viele RES auf AS abbilden
zu können.
Es werden hier also Eigenschaftsschemata OS gemäß Definition 4.4, Eigenschaftsausprägungen OA gemäß Definition 4.5 sowie daraus ableitbare Schlüsseleigenschaften OS ǫ
gemäß Definition 4.7 als Schemakonstrukte genutzt. Zusätzlich werden Metainformationen zu möglichen Zugriffspfaden, d. h. ob eine indexunterstützte Selektion über ein
Attribut unterstützt wird, abgelegt. Dies ist für die Anfrageverarbeitung, die in Abschnitt 4.3 vorgestellt wird, wichtig.
Ein Adapterschema ist also ein Exportschema einer Datenquelle in einem kanonischen Datenmodell und wird als Tabellen T , die Tupel von Attributen A umfassen2
beschrieben. Zu beachten ist hierbei, daß ein Attribut Gültigkeit für das gesamte Adapterschema besitzt, aber in verschiedenen Tabellen enthalten sein kann. Das bedeutet,
daß die Metainformationen, wie z. B. zur Indizierung, über alle Tabellen gültig sind.
Ein Adapterschema kann also wie folgt aufgeschrieben werden:
P
= {indexed, not indexed}
A = (name, typ, P )
T
= {a1 , . . . , an }
| name ∈ E ∧ typ = dom(name)
(Definitionen 4.2 und 4.3)
| an ∈ A
Um funktionale Abhängigkeiten von Attributen innerhalb einer Tabelle T zu bestimmen, existiert eine Funktion key, die sich aus Definition 4.7 ableitet:
key : T → T ǫ
2
ǫ
| T ≡ OS ∧ T ǫ ≡ OSmin
Es werden hier die Begriffe Tabelle und Attribut synonym für Eigenschaftsschemata OS bzw. Objekteigenschaften genutzt, da das Adapterschema als Basis für eine Abbildung auf das Relationenmodell genutzt wird.
84
4.2 Datenschemata
Somit ist ein Adapterschema eine Menge von Tabellen T :
AS = {T }
Beispiel 4.8 Für ein konkretes Beispiel werden zwei Datenquellen KEGG und BRENDA
betrachtet. In diesen Datenquellen sind Daten zu Enzymen und Stoffwechselwegen enthalten. Für das vorliegende Beispiel soll ein abstrakter Ausschnitt aus den realen Schemata der beiden Datenquellen betrachtet werden. Die vollständigen Adapterschemata,
so wie sie für den in Kapitel 5 beschriebenen BioDataServer genutzt werden, sind in den
Anhängen B.4 und B.5 zu finden. Das vorliegende Beispiel umfaßt für den KEGG-Adapter zwei Tabellen mit Daten zu enzymatisch katalysierten biochemischen Reaktionen
bzw. Stoffwechselwegen:
KEGG = {kr 1 , kr 2 }
Der BRENDA-Adapter wiederum liefert analog zum KEGG-Adapter in einer Tabelle
organismusspezifische Enzymdaten:
BRENDA = {br 1 }
Dabei werden die Attribute und Tabellen wie folgt definiert:
BRENDA:
b1
b2
b3
b4
=
=
=
=
(ec, string, {indexed})
(name, string, {not indexed})
(reaction, string, {not indexed})
(organism, string, {not indexed})
KEGG:
a1
a2
a3
a4
a5
=
=
=
=
=
(ec, string, {indexed})
(name, string, {indexed})
(reaction, string, {indexed})
(map, string, {indexed})
(pathwayname, string, {not indexed})
br 1 = {b1 , b2 , b3 , b4 }
kr 1 = {a1 , a2 , a3 }
kr 2 = {a1 , a4 , a5 }
keybr1 = (b1 )
keykr1 = (a1 )
keykr2 = (a1 )
85
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
2
Darüber hinaus bietet das Adapterschema die Möglichkeit, zusätzlicher Informationen, die es ermöglichen eine Klassifikation der jeweiligen Datenquelle hinsichtlich der
Zugriffskosten und der Datenqualität vorzunehmen, zu erfassen. Solche Informationen
werden für die Nutzung durch den Integrationsdienst BioDataServer konzipiert und
sind im UML-Klassendiagramm in Abbildung 5.17 spezifiziert. Dazu zählen u. a. Informationen zu:
• Datenformat
• Zugriffsschnittstelle
• Datenherkunft und Datenqualität
Da diese nur sekundäre Bestandteile der hier vorgestellten Adapterschemata sind, werden sie implementierungsabhängig verwaltet. Nähere Informationen sind deshalb in
Abschnitt 5.4 enthalten.
Der Mediator oder der Anwendungsentwickler kann auf dieser Grundlage Entscheidungen zu Anfrageoptimierungen oder Datenvereinigungsstrategien vornehmen. Zum
Beispiel können Datenquellen mit überschneidenen Datendomänen gemäß der Datenqualität priorisiert werden. So ist es vorstellbar, daß für statistische Analysen zur Ermittlung von Trends auch weniger vertrauenswürdige Daten herangezogen werden. Für
die gezielte Analyse einzelner Daten dagegen können restriktivere Qualitätskriterien
spezifiziert werden.
Im Falle der Anfrageoptimierung ist es durchaus nützlich, die einer Datenanfrage
zugrundeliegenden Protokolle und Extraktionstechniken zu werten. So ist etwa eine
Datenquelle über das FTP-Protokoll zugänglich, und die Datenextraktion geschieht
durch den Adapter mittels Parsen. Dagegen könnte eine andere Datenquelle der gleichen
Datendomäne über das JDBC-Protokoll mit SQL zugänglich sein. Somit kann die zweite
Datenquelle einen höheren Rang im Kontext von Anfrageplanbewertungen einnehmen.
4.2.3 Integriertes Nutzerschema (IUS)
Das IUS reflektiert die Intension einer engen Datenbankintegration im Sinne der im
Abschnitt 3.2.1 vorgestellten Integrationsmerkmale. Hierbei werden die Teile der Adapterschemata in Form von Views integriert und mit notwendigen Metadaten zur Anfrageverarbeitung angereichert (vergleiche hierzu Abschnitt 4.4). Wie in Abbildung 4.1
dargestellt, können mehrere, sich überlappende integrierte Nutzerschemata existieren,
welche unterschiedliche, nutzerspezifische Sichten auf die zu integrierenden Daten umsetzen. Jedes dieser IUS umfaßt so spezifisch modellierte, integrierte Datenbanken, wie
z. B. zu Enzymen oder Stoffwechselwegen.
Das genutzte Datenmodell basiert auf dem relationalen Datenmodell und besteht aus
Tabellen T , die eine Menge von Attributen A umfassen. Dabei hat jedes Attribut einen
Namen und einen Datentyp, welche mit den Konzepten aus Definitionen 4.2 und 4.3
86
4.2 Datenschemata
korrespondieren. Da es sich beim IUS um die direkte Schnittstelle zu den Applikationen handelt, sind für Datendomänen eines Attributes durchaus abstrakte Datentypen
wie etwa string, integer oder float möglich. Notwendige Typkonvertierungen zwischen
den einzelnen Schemaebenen sind hierzu durchzuführen. Weitere Konzepte, wie etwa
konsistenzunterstützende Konstrukte, wie Primärschlüssel oder Fremdschlüssel, werden
nicht unterstützt. Zusätzlich zu der primären Datenstruktur wird jedes Attribut mit
Metadaten zu den zugrundeliegenden Datenquellen, den Partitionierungs-, Allokationsmetadaten sowie Anfrageabhängigkeiten angereichert.
A = (name, typ) | name ∈ E ∧ typ ≡ dom(name) (Definitionen 4.2 und 4.3)
T = {a1 , . . . , an } | an ∈ A
Mit diesen Konstrukten ist es möglich, eine Datenstruktur zu beschreiben. Die notwendigen Metadaten zur Auflösung der Datenquellen eines Attributes müssen Partitionierungsdaten (Teil eines Datenschemas einer Datenquelle) und Allokationsdaten (zuständiger Wrapper/Adapter) enthalten. Dazu werden Elemente aus dem Adapterschema,
das im Abschnitt 4.2.2 beschrieben ist, referenziert. Ein Adapter Q umfaßt dabei eine Menge von Eigenschaftsschemata OS. Um die Partitionierung zu überwinden, sind
semantisch äquivalente Objekteigenschaften zu einem globalen Attribut aus dem IUS
abzubilden. Somit gilt es eine Funktion source zu definieren, die einem Attribut aus
dem IUS auf eine nicht leere Menge von Objekteigenschaften AQ der Datenquelle Q
aus bestimmten Eigenschaftschemata OS eines Adapters zuordnet:
source : AQ → A | AQ ∈ OS
(Definition 4.4)
In Abschnitt 4.4 werden notwendige Strategien zur Ausführung von Datenanfragen an
den hier vorgestellten Mediator erarbeitet. Die zur Berechnung der in diesem Abschnitt
beschriebenen Anfragepläne notwendigen Metadaten in Form von Ausführungsabhängigkeiten werden ebenfalls als Metadaten im IUS für jedes Attribut geführt. Dabei muß
eine Funktion retrieval dependency definiert werden, die zu jedem Element aus der Menge AQ eines Attributes A0 ein anfragebestimmendes Attribut A1 der gleichen Tabelle
T bestimmt:
retrieval dependency : A → AQ
| AQ ∈ OS
(Definition 4.4)
Diese Funktion kann auf Basis der in Abschnitt 4.2.2 erläuterten Abhängigkeiten auf
Datenquellenebene, den sogenannten subgoals, spezifiziert werden. Beim IUS sind aber
Anfrageabhängigkeiten auch zwischen verschiedenen Datenquellen zu spezifizieren, so
daß die innerhalb eines Adapterschemas geltenden Anfrageabhängigkeiten nicht automatisch genutzt werden können. Die Funktion source kann also nicht genutzt werden,
um die Funktion retrieval dependency zu bestimmen. Vielmehr dienen die subgoals den
Adapterschemata als Vorlage bzw. Modellierungshilfe für die IUS.
Beispiel 4.9 Anhand folgender integrierter Nutzerschemata sollen obige Konzepte veranschaulicht werden. Auf der Grundlage des Beispiels 4.8 kann eine Tabelle modelliert
87
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
werden, die Daten zu Enzymen und deren Rolle in Stoffwechselwegen beschreibt. Es ist
dabei zu beachten, daß nicht alle im IUS definierten Attribute in Tabellen enthalten
sein müssen. Das erklärt sich aus notwendigen Anfrageabhängigkeiten zu Attributen,
die aber nicht Bestandteil einer Tabelle sein sollen:
A1
A2
A3
A4
A5
=
=
=
=
=
(ec, string)
(name, string)
(reaktion, string)
(map, string)
(stoffwechselweg, string)
Tenzym = (A1 , A2 , A3 , A4 )
retrieval
retrieval
retrieval
retrieval
retrieval
retrieval
retrieval
retrieval
source(A1 )
source(A2 )
source(A3 )
source(A4 )
source(A5 )
=
=
=
=
=
{a1 , b1 }
{a2 , b2 }
{a3 , b3 }
{a4 }
{a5 }
dependency(a1 )
dependency(b1 )
dependency(a2 )
dependency(b2 )
dependency(a3 )
dependency(b3 )
dependency(a4 )
dependency(a5 )
=
=
=
=
=
=
=
=
{}
{}
{A1 }
{A1 }
{A1 }
{A1 }
{A1 }
{A4 }
2
Während der Integration, der von den Datenquellen angefragten Daten, wird die
Funktion source als eine Gleichheitsrelation für Adapterattribute genutzt. Es wird in
Abschnitt 4.4.3 beschrieben, wie auf dieser Basis eine Vereinigung der Anfrageresultate
verschiedener Datenquellen durchgeführt wird.
4.3 Integrationsoperatoren
Auf dem im vorigen Abschnitt eingeführten Datenmodell sind notwendigerweise gültige
Operationen zu definieren. Diese dienen zur Anfrageverarbeitung und müssen deshalb
88
4.3 Integrationsoperatoren
auf jeder Schemaebene ausgeführt werden können. Eine weitere Forderung ergibt sich
aus der Einleitung zu diesem Kapitel. Was für die Datenmodelle der zu nutzenden Datenquellen bezüglich der Minimalität gilt, ist auch auf den anzunehmenden Umfang
von Anfrageschnittstellen zu übertragen. Die Datenquellen unterliegen beschränkten
Zugriffsmustern derart, daß angenommen werden muß, daß nicht alle Operationen der
relationalen Algebra unterstützt werden. Dies folgt aus den Analysen des Abschnittes
3.1.2 und aus der Annahme heraus, daß diese Operationen ein relationales Datenmodell
bedingen. Somit sind Operationen auf dem eingeführten Datenmodell RIND zu definieren. Diese sind von den Datenquellen auszuführen und daher so zu definieren, daß die
Mehrzahl der Datenquellen die Operationen direkt ausführen können. Andernfalls sind
diese Operationen vom Adapter nachzubilden.
Die letzte Forderung ist, daß durch Kombination der zu definierenden Operationen
auf globaler Ebene komplexe Anfragesprachen realisiert werden können. Es muß möglich
sein, eine globale Anfragesprache mit wenigen zusätzlichen, über die Basisoperationen
hinausgehenden Operationen zu implementieren. Ein Beispiel ist der, für den im Kapitel
5 vorgestellten BioDataServer, implementierte SQL-Dialekt. Die auf dem Datenmodell
zu definierenden Operationen sollen einerseits minimal genug sein, um von den Datenquellen direkt ausgeführt werden zu können und andererseits genügend Funktionalität
besitzen, um als Basisoperationen für komplexe, globale Anfragesprachen zu dienen.
Das wird durch die Kombination dieser Operationen in Form von Anfrageplänen umgesetzt und in Abschnitt 4.3.2 erläutert. Zunächst werden eben diese Basisoperationen
eingeführt.
4.3.1 Basisoperationen
Die Definition von Basisoperationen erfolgt auf der Grundlage des relationalen Integrationsdatenmodells RIND in der konkreten Ausprägung als Adapterschema. Es werden
drei Operationen unterstützt, die von der relationalen Algebra abgeleitet werden. Diese
sind Projektion π, Selektion σ und der natürliche Verbund ⊲⊳. Die folgenden Definitionen dieser Operationen beziehen sich dabei auf das im Abschnitt 4.1 eingeführte
Datenmodell, das vom relationalen Datenmodell abgeleitet wurde.
Definition 4.10 (Projektion) Die Projektion π ist die Einschränkung der Funktion obj
auf einer Menge von Objektausprägungen O = obj(OS) aus Definition 4.5, wobei die als Parameter aufgezählten Objekteigenschaften (Attribute) als Einschränkung bzw. Untermenge
zu OS aufzufassen sind. Somit werden aus dem Eigenschaftsschema einer Objektausprägung gewisse Objekteigenschaften ausgewählt, wodurch die resultierende Objektausprägung
nur die jeweiligen Tupelelemente zu dieser Auswahl enthält:
πY (OS) = obj(Y ) | Y ⊆ OS
2
89
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Beispiel 4.10 Als Grundlage für die Veranschaulichung der Projektion dient hier das
Beispiel 4.5. Dabei werden die Eigenschaften Name und Genbezeichnung aus dem
Eigenschaftschema Enzyme ausgewählt:
n
πName,Genbezeichnung (Enzyme) =
{Arginase}, {ARG1, ARG2} ,
{Arginosuccinase}, {ASL} ,
{Argininosuccinate synthase}, {ASS} ,
o
{Ornithine carbamoyltransferase}, {OTC}
2
Definition 4.11 (Selektion) Die Selektion σ wählt Objektausprägungen aus einer Menge von Objektausprägungen O = obj(OS) (Definition 4.5) aus. Als Parameter wird eine
Konstantenselektionsbedingung mit dem Mengengleichheitsoperator angegeben. Da Eigenschaftsausprägungen mengenwertig sind, muß die Konstante ebenfalls mengenwertig sein
und Elemente der Domäne der zu vergleichenden Eigenschaft (Definition 4.3) enthalten.
Das Ergebnis dieser Operation ist dann eine Untermenge von O, worin alle Elemente der
Selektionsbedingung genügen:
σe=c (OS) = O′ | O′ ⊆ O ∧ e ∈ OS ∧ c ∈ dom(e) ∧ ∀o′ ∈ O′ : o′ .e = c)
2
Beispiel 4.11 Als Grundlage für die Veranschaulichung der Selektion dient auch hier
das Beispiel 4.5. Es sollen alle die Objektausprägungen ermittelt werden, bei denen die
Eigenschaft EC_Nummer der einelementigen Menge {’3.5.3.1’} entspricht:
σEC Nummer={′ 3.5.3.1′ } (Enzyme) =
n
o
{Arginase}, {3.5.3.1}, {Human, Homo sapiens}, {ARG1, ARG2}
2
Definition 4.12 (natürlicher Verbund) Der natürliche Verbund ⊲⊳ verbindet zwei
Mengen von Objektausprägungen O1 = obj(OS1 ) und O2 = obj(OS2 ) derart miteinander, daß das Eigenschaftsschema der resultierenden Menge eine nicht leere Vereinigung der
beiden Ursprungseigenschaftsschemata (OS1 und OS2 ) ist und genau nur die Objektausprägungen enthalten sind, deren Projektion mit den Eigenschaftsschemata OS1 und OS2 in
O1 bzw. O2 enthalten sind:
O1 ⊲⊳ O2 = {o = obj(OS1 ∪ OS2 ) | OS1 ∩ OS2 6= ∅ ∧ πOS1 (o) ∈ O1 ∧ πOS2 (o) ∈ O2 }
2
90
4.3 Integrationsoperatoren
Laut Definition ist der klassische Verbund, wie er aus der relationalen Algebra bekannt
ist, eingeschränkt. So darf die Schnittmenge der zu vereinigenden Objekteigenschaftsschemata nicht leer sein. Die Begründung ist die spätere Nutzung in Anfrageplänen,
die exakt so konstruiert werden, daß ausschließlich dieser Fall eintritt. Die Motivation hierzu ergibt sich aus der zwingenden Notwendigkeit zur Erhaltung des Kontextes
der molekularbiologischen Daten. Der Kontext ergibt sich dabei über semantisch äquivalente Eigenschaften, die auf Schemaebene im IUS definiert werden. Somit ist etwa
der Fall eines kartesischen Produktes zweier Mengen von Objektausprägungen nicht
möglich, was in der relationalen Algebra gegeben wäre. Also können keine globalen Objektausprägungen gebildet werden, die nicht über semantisch äquivalente Eigenschaften
verbunden und so in einen ungültigen Bezug zueinander gesetzt worden sind. Die Konsequenz ist, daß nur konsistenzerhaltene Anfragepläne konstruierbar sind, die auf den
in Abschnitt 4.2.3 eingeführten source und retrieval dependency Funktionen beruhen.
Beispiel 4.12 In diesem Beispiel wird auf den Fall des natürlichen Verbundes eingegangen, wo die Schnittmenge von OS1 und OS2 nicht leer ist. Laut Definition ist nur
solch ein Verbund zulässig. Zur Veranschaulichung wird das in zwei Objekteigenschaften
zerlegte Beispiel 4.5 genutzt. Hierbei existiert ein Eigenschaftschema zu Enzymnamen:
OSEnzyme Names = (Name, EC Nummer)
n
{Arginase}, {3.5.3.1} ,
obj(Enzyme N ames) =
{Arginosuccinase}, {4.3.2.1} ,
{Argininosuccinate synthase}, {6.3.4.5} ,
o
{Ornithine carbamoyltransferase}, {2.1.3.3}
Weiterhin existiert ein Schema zu speziesspezifischen Genen:
OSEnzyme Genes = (EC Nummer, Organismus, Genbezeichnung)
n
obj(Enzyme Genes) =
{3.5.3.1}, {Human, Homo sapiens}, {ARG1, ARG2} ,
{4.3.2.1}, {Human, Homo sapiens}, {ASL} ,
{6.3.4.5}, {Human, Homo sapiens}, {ASS} ,
o
{2.1.3.3}, {Human, Homo sapiens}, {OTC}
Dabei wird die Bedingung erfüllt, daß die Schnittmenge der beiden Eigenschaftschemata
nicht leer ist:
OSEnzyme N ames ∩ OSEnzyme Genes = {EC Nummer}
Die Vereinigung von OSEnzyme N ames und OSEnzyme Genes ergibt somit:
(Name, EC Nummer, Organismus, Genbezeichnung)
91
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Dazu existiert u. a. eine, laut Definition des natürlichen Verbundes gültige, Objektausprägung:
oa = {Arginase}, {3.5.3.1}, {Human, Homo sapiens}, {ARG1, ARG2}
Denn es gelten:
πName, EC Nummer (oa) ∈ obj(Enzyme N ames)
πEC Nummer, Organismus, Genbezeichnung (oa) ∈ obj(Enzyme Genes)
Würden bei obigen Eigenschaftsschemata im Gegensatz zur Definition auch kartesische Produkte zugelassen, so ist leicht einzusehen, daß inkonsistente Ergebnisse entstehen würden. Etwa die falsche Zuordnung von Genen zu Enzymen, falls die Eigenschaft EC_Nummer nicht in beiden Schemata enthalten wäre und ein Verbund ohne
sich schneidende Eigenschaftsschemata gebildet würde.
2
Die vorgestellten Operationen bilden nun die Basis für die Ausführung von Anfrageplänen auf Ebene der Adapterschemata und den Datenanfragen auf Ebene der Datenquellen. So wird der natürliche Verbund als Operation zum Zusammenfügen von
Anfrageergebnissen von Teilbäumen eingesetzt. Die Projektion und Selektion wird auf
der Ebene der Datenquellen bzw. der Wrapper für die Ausführung der im nächsten
Abschnitt vorgestellten subgoals benötigt.
4.3.2 Datenquellenanfragen
Für die konkrete Anfrage von Daten aus Datenquellen wird eine Methodik vorgeschlagen, die auf dem eingeführten Datenmodell RIND und den darauf definierten Operationen π, σ und ⊲⊳ beruht. Hierdurch wird die Kernidee der vorgeschlagenen Datenbankintegrationslösung aufgegriffen: Die Abstraktion gegebener Funktionalität aller
potentiell zu integrierenden Datenquellen zu minimal notwendigen Elementarfunktionen. Das bedeutet, daß für jede Datenquelle eine Schnittstelle in Form eines Adapters
implementiert sein muß, welche
1. das Adapterdatenschema gemäß der Vorgaben aus Abschnitt 4.2.2 beschreibt und
2. die Basisoperationen π, σ und ⊲⊳ aus Abschnitt 4.3.1 implementiert.
Diese Implementierung erfolgt mit Hilfe einer Adaption des aus der Literatur bekannten
Konzeptes der subgoals [137]. Hierbei wird davon ausgegangen, daß die o. g. Basisoperationen π und σ über konkrete Datenquellen in Form der folgenden, SQL-ähnlichen
Anfrage ausgeführt werden können.
select A1 , . . . , Ai from R where B1 = b1 and . . . and Bj = bj
Ziel ist es, sogenannte Anfrageabhängigkeiten oder auch retrieval dependencies ausdrücken zu können. Diese sind Gegebenheiten der existierenden Anfrageschnittstellen
92
4.3 Integrationsoperatoren
für die in der vorliegenden Arbeit untersuchten Datenquellen. So ist es etwa üblich, daß
Daten abhängig von gegebenen Bezeichnern angefragt werden können und somit verkettete Anfragesequenzen notwendig sind, um die interessierenden Daten abzufragen.
Auf diese Weise ist etwa die Anfrage aller Enzymnamen über alle Enzyme in nur zwei
Schritten mittels HTTP/CGI-Aufrufen möglich:
1. Abfrage aller Enzymnummern und Extraktion aus der resultierenden HTMLSeite:
http://kegg.genome.ad.jp/dbget-bin/get_htext?ECtable+D
2. Abfrage aller Enzymeigenschaften in Form einer HTML-Seite zu jeder Enzymnummer und Projektion auf die Enzymnamen mittels Parsern:
http://kegg. . . . .jp/dbget-bin/www_bget?enzyme:<ec_nummer>
In dem Konzept der subgoals stellt eine gültige Datenanfrage eine Kombination aus
Selektion und Projektion dar und kann in einer Funktion H, die ein subgoal auf eine
Datenquelle darstellt, aufgeschrieben werden:
H(B1 , . . . , Bj ; A1 , . . . , Ai ) = σB1 =b1 (σBj =bj (πA1 ,...,Aj (R))) | 0 ≤ j < n ∧ 1 ≤ i < n
Anders ausgedrückt: zu einer, möglicherweise leeren Menge von Attributen (B1 , . . . , Bj )
aus einer Tabelle R und ein daran gebundenes Tupel mit korrespondierenden Attributwerten (b1 , . . . , bj ) werden ungebundene, d. h. mit noch keinen Werten belegte Ausgabeattribute (A1 , . . . , Ai ) abgefragt. Dabei ist zu beachten, daß in der Regel A1 , . . . , Ai
und B1 , . . . , Bj disjunkt sind. Somit wird impliziert, daß die Selektionsbedingungen als
ein konjunktiver Ausdruck, also die logische Verknüpfung der einzelnen Selektionsoperationen mittels des logischen Operators ∧ evaluiert werden müssen. Das bedeutet, daß
die Datenquellen diese Konjunktion mehrerer Selektionsoperationen seitens der bereitgestellten Anfrageschnittstelle unterstützen müssen.
Wenn davon ausgegangen wird, daß die Anfragen auf Tabellen des Adapterschemas
keine aus mehreren Attributen zusammengesetzte Anfrageabhängigkeiten haben, wird
es nicht nötig, daß zwei oder mehr Attribute spezifiziert werden müssen, um eine Datenanfrage zu stellen. D. h. es existieren ausschließlich 1:n und keine m:n-Anfrageabhängigkeiten. Diese Annahme leitet sich aus den Gegebenheiten des WWW im Zusammenhang
mit der vorherrschenden Datenpräsentation mittels HTML ab, wo eben nur eine 1:nNavigation mittels Hyperlinks realisiert ist. D. h. es ist nicht möglich, eine Web-Seite
aufzurufen, die abhängig vom Zustand einer oder mehrerer weiterer Web-Seiten ist.
Dabei ist hier diese Anfrageabhängigkeitskardinalität nicht mit der Anzahl von Parametern für den Aufruf eines Web-Services zu verwechseln. Mehrere Parameter, etwa
für den Aufruf einer SOAP-Methode oder eines HTTP/GET-Aufrufes, stellen letztlich
einen einzigen, zusammengesetzten Parameter dar, der in genau ein Resultat mündet.
Diese zusammengesetzten Parameter werden per Definition von der Selektionsoperation unterstützt, da das genutzte Datenmodell RIND mit mengenwertigen Attributen
arbeitet.
93
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Durch diese Vereinfachung des ursprünglichen Konzeptes der subgoals ist es möglich,
sogenannte Anfrageabhängigkeiten als gerichteten Baum aufzufassen, was in Abschnitt
4.3.3 zu Anfrageplänen weiter betrachtet wird. Dagegen soll an dieser Stelle darauf
hingewiesen werden, daß Selektionen nicht zum Filtern bzw. zur Datenanalyse sondern
zur Umsetzung von Anfrageabhängigkeiten auf der Ebene der subgoals Anwendung
finden. Für die Datenanalyse wird vielmehr die, auf dem integrierten Nutzerschema
aufsetzende, Schnittstelle genutzt, die etwa, wie im Fall der im Kapitel 5 beschriebenen Szenarien einer Datenbankintegration, als Kombination von Data Warehouses und
Datenquellenintegration mittels einer Untermenge von SQL umgesetzt wurde.
Aus dieser Motivation heraus wird eine Vereinfachung der subgoals vorgeschlagen,
wobei die Anzahl der gebundenen Attribute, d. h. die Selektionsoperationen für eine
Datenquellenanfrage nicht größer als eins sein darf.
Definition 4.13 (subgoal) Ein subgoal H ist eine Funktion, welche als eine geschachtelte Kombination von Selektion σ und Projektion π definiert ist. Dabei ist T eine Attributmenge im Kontext eines Adpterschemas als eine Instanz einer Objektausprägung OS aus
Definition 4.4:
H(B, A) = σB=b (πA1 ,...,Aj (T )) | A, B ⊆ T ∧ |B| ∈ {0, 1}
2
Anzumerken ist hierbei, daß die Reihenfolge zwischen Selektion und Projektion nicht
beliebig ist. Auf jeden Fall ist im ersten Schritt eine Selektion in Form einer Datenquellenanfrage und im zweiten Schritt eine Projektion in Form der Extraktion der
notwendigen Attributwerte aus den, im ersten Schritt ermittelten, Anfrageresultaten
durchzuführen. Diese Reihenfolge ergibt sich aus den vorliegenden Eigenschaften der
Anfrageschnittstelle, die in den meisten Fällen keine Projektion auf Datenquellenebene
unterstützen. Dies muß vielmehr in der Praxis auf Ebene der Datenquellenadapter etwa
durch Parsen umgesetzt werden.
Somit wären dann in SQL ausgedrückt ausschließlich folgende Typen von Anfragen
möglich:
1. select A1 , . . . , Ai from R where B1 = b1
2. select A1 , . . . , Ai from R
Beispiel 4.13 Diese subgoals können individuell durch verschiedene, existierende
Schnittstellen der Datenquellen implementiert werden. So können etwa aufbauend auf
dem Adapterschema aus Beispiel 4.8 sechs subgoals angegeben werden.
HKEGG,1 ( ; a1 )
HKEGG,4 ( ; a4 )
HKEGG,2 (a1 ; a2 , a3 )
HKEGG,5 (a4 ; a5 , a1 )
HKEGG,3 (a1 ; a4 )
HBRENDA,1 (b1 ; b2 , b3 , b4 )
Obige Beispielausprägungen von subgoals setzen dabei folgende Anfragen um. Die Subskripte geben dabei die Datenquelle an:
94
4.3 Integrationsoperatoren
• HKEGG,1 :
Abfrage aller Enzymnummern
• HKEGG,2 :
Abfrage von Enzymnamen und der katalysierten Reaktion zu einer gegebenen
Enzymnummer
• HKEGG,3 :
Abfrage von Stoffwechselwegbezeichnern zu einer gegebenen Enzymnummer
• HKEGG,4 :
Abfrage aller Stoffwechselwegbezeichner
• HKEGG,5 :
Abfrage von Stoffwechselwegnamen und von darin involvierten Enzymnummern
zu einem gegebenen Stoffwechselwegbezeichner
• HBRENDA,1 :
Abfrage von Enzymnamen, katalysierter Reaktionen und den Organismen, bei
denen das Enzym beschrieben wurde, bezüglich einer gegebenen Enzymnummer
Wie aus diesen subgoals ersichtlich, erlaubt die Datenquelle KEGG die Anfrage aller gespeicherten Enzymnummern. Dahingegegen unterstützt BRENDA dies im obigen
Szenario nicht. Daher hängt BRENDA-subgoal HBRENDA,1 direkt vom KEGG-subgoal
HKEGG,1 ab.
2
Im obigen Beispiel wurde u. a. deutlich, daß zwischen den subgoals Abhängigkeiten
bestehen. So sind manche subgoals eben von den Ergebnissen zuvor auszuführender
subgoals abhängig. Das wiederum motiviert die im folgenden Abschnitt erläuterten
Anfragepläne.
4.3.3 Anfragepläne
Zur Ausführung konkreter Datenanfragen auf Ebene eines integrierten Datenschemas
ist es notwendig, dies auf Adapterebene mittels der zuvor eingeführten subgoals umzusetzen. Wie bereits erläutert wurde, existieren Anfrageabhängigkeiten oder auch retrieval dependecies zwischen den subgoals und damit zwischen den Attributen im integrierten Nutzerschema (IUS). Diese werden deshalb dort spezifiziert (vergleiche hierzu
Abschnitt 4.2.3). Werden nun globale Attribute aus dem IUS angefragt, ergeben sich
Verkettungen von Anfragen auf die korrespondierenden Adapterattribute. Durch die
zuvor beschriebene Eigenschaft von subgoals, daß nur maximal ein gebundenes Attribut pro subgoal existiert, leitet sich die Eigenschaft ab, daß die Verkettung von globalen
Attributen über deren Anfrageabhängigkeiten und somit die Verkettung von subgoals
einen gerichteten Graphen ergibt. Die Verkettung erfolgt über die im IUS definierten
Abbildungsfunktionen source und retrieval dependency sowie mittels einer bislang nicht
eingeführten Funktion choose subgoal, die aus der Menge vorhandener subgoals eines
95
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
auswählt, das mindestens dieses Attribut aus einer Datenquelle abfragt und die modellierte Anfrageabhängigkeit erfüllt. Diese Funktion wird in Abschnitt 4.4 detailliert
beschrieben.
Ein Anfrageplan für IUS-Attribute ergibt sich also
1. aus der Anwendung der Funktion source zur Ermittlung der Adapterschemaattribute,
2. der Abbildung auf ein gültiges subgoal über die Funktion choose subgoal sowie
3. der Ermittlung der Anfrageabhängigkeit eines subgoals zu einem Attribut aus
dem IUS mittels der Funktion retrieval dependency.
Zur Veranschaulichung der Konstruktion eines Anfrageplanes ist ein solcher Prozeß der
Anfrageplanerstellung in Abbildung 4.2 dargestellt. Dieser modelliert eine Abfrage aller
IUS-Attribute aus Beispiel 4.9.
Abbildung 4.2: Schematischer Prozeß von Datenanfragen auf Attributen aus dem IUS
Im dargestellten Prozeß sind subgoals indirekt über IUS-Attribute verbunden. Diese
Attribute liefern notwendige Bindungen der Eingabeattribute der subgoals an Attributwerte. Aus der Definition der Funktion source geht hervor, daß für ein IUS-Attribut
mehr als ein Adapterattribut als Datenquelle dienen kann. Somit findet auf Ebene
der IUS-Attribute eine Vereinigung der über subgoals angefragten Attributwerte statt.
Dieser Schritt ist als Verarbeitungsschritt zur Datenintegration zu betrachten. Wird
nun der dargestellte Prozeß zur Datenanfrage um die Attribute reduziert, so kann ein
96
4.3 Integrationsoperatoren
Graph von subgoals gebildet werden, der Anfrageabhängigkeiten zwischen subgoals beschreibt. In Abbildung 4.3 ist der auf subgoals reduzierte Anfrageabhängigkeitsgraph
zu Abbildung 4.2 dargestellt.
Abbildung 4.3: Graph von Anfrageabhängigkeiten von subgoals
Wie im Abschnitt zur Anfrageverarbeitung ausgeführt werden wird, werden die im
Anfrageplan enthaltenen subgoals beginnend mit den subgoals ohne Eingabeattribute,
im Beispiel subgoal HKEGG,1 , verkettet ausgeführt. Da notwendigerweise die Ausführung eines Anfrageplanes, d. h. die Verkettung von subgoals, terminieren muß, ist die
Einschränkung auf azyklische Anfragepläne notwendig. Somit handelt es sich bei einem
Anfrageplan um einen azyklisch gerichteten Graphen:
Definition 4.14 (Anfrageplan) Ein Anfrageplan A ist ein gerichteter, azyklischer
Graph mit subgoals H als Knoten und Anfrageabhängigkeiten R als Kanten. Dabei werden
die Knoten, die subgoals ohne Eingabeattribute enthalten, als Startknoten bezeichnet. Ein
Anfrageplan ist somit:
A = (H, R) | R ⊆ {(u, v)} ∧ u, v ∈ H
Weiterhin wird gefordert, daß A azyklisch ist. Zur Definition dieser Eigenschaft werden Pfade
als Sequenz von benachbarten Knoten definiert, die in R enthalten sind:
P = (v1 , . . . , vn ) | ∀ 1 ≤ i < n ∃ (vi , vi+1 ) ∈ R
Zur Einschränkung auf azyklische Graphen wird nun gefordert, daß es keinen Pfad gibt, in
dem Knoten mehrfach vorkommen:
∀ (v1 , . . . , vn ) ∈ P : vi 6= vj ∧ 1 ≤ i, j ≤ n ∧ i 6= j
2
97
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Beispiel 4.14 Der in Abbildung 4.3 dargestellte Graph kann auf Grundlage der gegebenen Definition wie folgt aufgeschrieben werden:
H = {HKEGG,1 , HKEGG,2 , HKEGG,3 , HKEGG,4 , HKEGG,5 , HBRENDA,1 }
R = {
(HKEGG,1 , HKEGG,2 ),
(HKEGG,1 , HKEGG,3 ),
(HKEGG,1 , HBRENDA,1 ),
(HKEGG,3 , HKEGG,5 )
}
p1 = (HKEGG,1 , HKEGG,3 , HKEGG,5 ) ∈ P
p2 = (HKEGG,1 , HBRENDA,1 ) ∈ P
p3 = (HKEGG,1 , HKEGG,5 ) ∈
/P
2
Die hier eingeführten Anfragepläne bilden die Basis für die Verarbeitung von Anfragen
auf das integrierte Nutzerschema. Dabei sind Redundanzen enthalten, wie beispielsweise
die unnötige Mehrfachausführung von gleichen subgoals mit der gleichen Wertbelegung,
wie etwa in Abbildung 4.3 im Falle der subgoals HKEGG,2 und HBRENDA,1 . Auf die Auflösung dieser Redundanz und weitere notwendige Strategien zur Anfrageverarbeitung
auf Basis von Anfrageplänen wird in den nächsten Abschnitten eingegangen.
4.4 Verarbeitung von Datenfragen
Im Sinne der in diesem Kapitel vorgestellten Datenanfragen ist unter diesem Ausdruck
die kombinierte Anwendung von verschiedenen Funktionen und Operationen auf Basis
des zuvor im Abschnitt 4.1 eingeführten Datenmodells RIND zu verstehen. Das Ziel ist
die Verarbeitung einer Datenanfrage über integrierten Nutzerschemata. Diese Datenanfragen werden mittels der vorgestellten Konzepte an Datenquellen verteilt und die
Ergebnisse zu einer Menge von Tupeln mengenwertiger Attribute integriert. Diese Anfrageresultate sind dann gemäß der Anforderungen an zu unterstützende Schnittstellen
und Anfragesprachen der in dieser Arbeit vorgestellten Datenbankintegrationslösung
auf Zieldatenmodelle abzubilden.
Im vorliegenden Anwendungsszenario und des auf dieser Basis entworfenen und implementierten Datenbankintegrationssystems aus Kapitel 5 wurde als Zieldatenmodell
das relationale Datenmodell gewählt. Somit wird letztlich das Resultat von Datenanfragen auf Ebene des integrierten Nutzerschemas (IUS) auf Relationen und auf die relationale Algebra abgebildet. Weitere Zieldatenmodelle, wie etwa das objektorientierte
Datenmodell sind ebenfalls von RIND abbildbar und wurden in [138, 139] beschrieben.
98
4.4 Verarbeitung von Datenfragen
Anfragen an ein IUS werden in mehreren Schritten umgesetzt. Im ersten Schritt wird
die Anfrage, die mittels des relationalen Tupelkalküls angegeben wird, auf Operationen,
die auf dem IUS ausgeführt werden können, abgebildet. Anschließend werden alle, für
jedes einzelne der angefragten Attribute gebildeten Anfragepläne, zu einem Gesamtanfrageplan zusammengefügt. Dieser wird ausgeführt und letztlich die resultierende Menge
von Resultattupeln relational aufgelöst. Schließlich werden die Selektionsbedingungen
der im ersten Schritt spezifizierten Anfrage auf die Ergebnisrelation angewandt. Diese
Schritte der Anfrageverarbeitung werden in folgenden Abschnitten behandelt.
4.4.1 Abbildung relationaler Datenanfragen auf das IUS
Wie im Abschnitt 2.2.4 des Grundlagenkapitels erläutert, basieren Anfragen im relationalen Tupelkalkül auf Tupelvariablen t, die jeweils an eine Relation r gebunden sind.
Die Tupelbindung (rn ) an Relationen und für Tupelvariablen zu erfüllende Tupelbedingungen (ci ) werden in CON D angegeben.
{t1 .A1 , . . . , tn .An | CON D(r1 (t1 ), . . . , rn (tn ), c1 , . . . ci )}
Ein Beispiel für einen relationalen Kalkülausdruck ist folgender, der Enzymnummern,
Enzymnamen und katalysierte Reaktionen für alle Enzyme ermittelt:
{t.ec, t.name, t.reaktion | enzyme(t) ∧ t.stoffwechselweg = ’Urea cycle’}
In SQL kann diese Anfrage wie folgt ausgedrückt werden:
select ec, name, reaktion
from enzyme
where stoffwechselweg = ’Urea cycle’
Eine solche Anfrage kann nun auf Operationen des RIND-Datenmodells abgebildet
werden. Dabei entspricht die Komponentenauswahl über der Tupelvariable t der Projektion π auf einer Tabelle T aus einem IUS. Weiterhin wurde die Tupelvariable t an
eben diese Tabelle T mittels der Funktion obj(T ) gebunden. Es gelten zwei wesentliche
Einschränkungen:
1. Eine Einschränkung ist die nicht gegebene Abbildbarkeit der Selektionsbedingung
im Kalkül auf entsprechende Operationen des IUS. Das motiviert sich aus der beschränkten Mächtigkeit der Anfrageschnittstellen auf Datenquellen und somit der
subgoals. Deshalb wurden in Definition 4.11 die zulässigen Selektionsbedingungen auf den Konstantenvergleich der Form An = c limitiert. Die Auflösung der im
Kalkül angegebenen Selektionsbedingungen ist daher im allgemeinen erst nach erfolgter relationaler Auflösung des Anfrageresultates möglich, welche in Abschnitt
4.4.4 erläutert wird. Die mit dieser Einschränkung verbundene Abfrage und Integration unnötiger“ Attributwerte ist somit zugunsten der direkten Nutzbarkeit
”
eingeschränkter Funktionalität von Datenquellenzugriffsschnittstellen unumgänglich.
99
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Einen Spezialfall stellen die Selektionsbedingungen im Kalkül dar, die einer Konstantenselektion entsprechen. Hier ist eine direkte Abbildung in den Fällen möglich, wobei subgoals existieren, bei denen das gebundene Eingabeattribut dem
Attribut einer Konstantenselektion im Kalkül entspricht. So kann eine direkte
Belegung des entsprechenden Eingabeattributes mit der bzw. den Konstanten erfolgen, was die Ausführung von Vorgängersubgoals im Anfragegraphen erübrigt.
Ein Beispiel hierzu ist folgender Ausdruck:
{t.ec, t.name, t.reaktion | enzyme(t) ∧ (t.ec = ’3.5.3.1’ ∨ t.ec = ’4.3.2.1’)}
Unter der Annahme, daß ein Anfrageplan (HKEGG,1 , HBRENDA,1 ) existiert, könnte so auf das subgoal HKEGG,1 verzichtet und das Eingabeattribut des subgoals
HBRENDA,1 sofort mit beiden Werten belegt werden, weil in jedem Fall nur die
Enzymnummern ’3.5.3.1’ und ’4.3.2.1’ zulässig sind.
2. Die nächste Einschränkung ist die Vermeidung von mehr als einem Prädikat zur
Bindung der Tupelvariablen eines Kalküls an eine Relation. Somit ist nur die
Verwendung genau einer Tupelvariablen zulässig. Zwar existiert die Möglichkeit
eines Verbunds mehrerer Tabellen des IUS als kartesisches Produkt, darüber hinausgehende Verbundoperationen, wie etwa der natürliche Verbund im Sinne der
relationalen Algebra, sind nicht möglich. Die Begründung ergibt sich wiederum
aus der Beschränkung der Selektionsoperation auf Konstantenvergleiche mittels
der Gleichheitsrelation. Das Zulassen von mehreren Tabellen in einer Anfrage auf
das IUS würde die Kalkülauswertung komplizieren. Vielmehr wird die Berechnung
von Verbünden auf Ebene des IUS vermieden und nach der relationalen Auflösung des Anfrageergebnisses durchgeführt. Im Sinne von Anfrageoptimierungen
ist das ein denkbar ungünstiges Vorgehen, da zum Verbund erst alle beteiligten
Tabellen des IUS komplett von den Datenquellen abgefragt werden müssen, ehe
der Verbund vom Datenbankintegrationsdienst durchgeführt werden kann. Bei
Tabellen mit sehr vielen Tupeln ist ein solches Vorgehen nicht praktikabel. Dieses
Problem sollte in der Praxis nicht auftreten, da die Tabellen im IUS bereits eine
integrierende Sicht über die Adapterschemata, also die zu integrierenden Datenquellen, umsetzen und somit implizit über die zur Anfrage notwendigen Anfragepläne einzelne Attribute des AS zu globalen Sichten verbinden. Ausschließlich
aus dem Grund einer Unterstützung möglichst vieler SQL-Sprachelementen wird
ein Verbund unterstützt und sollte eher über syntaktische Einschränkungen der
bereitzustellenden SQL-basierten Anfragesprache vermieden werden.
Ein derart eingeschränktes relationales Tupelkalkül umfaßt somit die Bindung einer
Tupelvariablen t an eine Relation T ohne Selektionsprädikate und hat die Form:
{t.A1 , . . . , t.An | CON D(T (t))}
Eine gültige Abbildung eines so eingeschränkten Kalküls kann auf einen Term von
RIND-Operationen angegeben werden:
πA1 ,...,An (T ) ≡ {t.A1 , . . . , t.An | CON D(T (t))}
100
4.4 Verarbeitung von Datenfragen
Das zuvor gegebene Beispiel einer Anfrage im relationalen Tupelkalkül resultiert dann
in der folgenden Projektion:
πec,name,reaktion(enzyme)
Im Falle angefragter Verbünde über mehrere Tabellen ist für jede einzelne Tabelle eine
Anfrage nach obigem Muster zu bilden. Wie bereits angedeutet, sind weitere Verarbeitungsschritte zur Berechnung des endgültigen relationalen Anfrageresultates notwendig,
wie der Verbund und die Anwendung von Selektionsbedingungen. Zunächst ist es aber
notwendig, aus obiger Projektion mittels subgoals einen Anfrageplan zu bilden.
4.4.2 Komposition von Anfrageplänen
Die Umsetzung von Projektionsoperationen auf dem IUS stellt einen notwendigen
Schritt zur Ausführung von Datenanfragen auf Basis des in dieser Arbeit vorgestellten Ansatzes zur Datenbankintegration dar. Dabei wird über eine IUS-Tabelle eine
Menge von Tupel abgefragt. Die Tupelelemente bestimmen sich über die Projektionsliste, d. h. die Liste von Attributen der Projektion. Zu jedem dieser Attribute existiert
ein Graph über subgoals und Anfrageabhängigkeiten, um darüber die Attributwerte
aus dem Adapterschema abfragen zu können. Diese Graphen sind im IUS statisch vorgegeben. Die zu jedem Attribut der Projektionsoperation vorhandenen Einzelgraphen
sind zu Anfragegraphen gemäß Definition 4.14 zu kombinieren.
Zunächst wird eine Menge von Einzelanfragegraphen EA durch eine Vereinigung aller
Knoten und Kanten aller in EA enthaltenen Graphen zu einem Gesamtanfragegraphen
GA kombiniert:
GA =
|EA|
[
i=1
|EA|
eai .H,
[
i=1
eai .R | EA = {ea | ea ∈ A}
Hierbei können mehrere, untereinander unverbundene Teilgraphen entstehen. Die Konsequenz ist, daß nur innerhalb eines Teilbaumes eine funktionale Abhängigkeit der
Attribute existieren kann, denn es können nur die Attribute in Beziehung zueinander stehen, die durch einen Pfad verbunden sind. Dieses Kriterium ist aber nur die
notwendige Voraussetzung für die Erhaltung etwaiger funktionaler Abhängigkeiten im
IUS und stellt keineswegs ein hinreichendes Merkmal zur Bestimmung ebensolcher dar.
Vielmehr wird in den Tabellen des IUS nicht gefordert, daß Attribute andere Attribute
funktional bestimmen. Das wiederum ist die Begründung für die nicht ausgeschlossene Eigenschaft des Gesamtanfragegraphen, einer nicht vorhandenen Verbindung aller
Knoten über Pfade. Dies entspricht mögliche, voneinander unabhängige Anfragegraphen im Gesamtanfragegraphen. Die Konsequenz ist hier, daß so auch Attribute des
IUS voneinander unabhängig bei den Datenquellen angefragt werden und in solchen
Fällen nicht in Beziehung, etwa im Sinne funktionaler Abhängigkeiten, gesetzt werden
können. Im folgenden Beispiel wird aber ein verbundener Graph gegeben, d. h. zwischen
allen Knotenpaaren existiert ein Pfad.
101
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Beispiel 4.15 Unter Vereinfachung des Beispiels 4.14 soll das Konzept der Vereinigung der Einzelanfragegraphen zu einem Gesamtanfragegraphen demonstriert werden.
Es wurde eine Anfrage spezifiziert, die alle Enzymnummern, Enzymnamen eines Stoffwechselweges ermittelt:
πec,name,stoffwechselweg(enzyme)
Die zur Attributwertanfrage notwendigen Einzelanfragegraphen sind:
Aec =
Aname1 =
Aname2 =
Astoffwechselweg =
({HKEGG,1 }, {})
({HKEGG,1 , HKEGG,2 }, {(HKEGG,1 , HKEGG,2 )})
({HKEGG,1 , HBRENDA,1 }, {(HKEGG,1 , HBRENDA,1 )})
({HKEGG,1 , HKEGG,3 , HKEGG,5 },
{(HKEGG,1 , HKEGG,3 ), (HKEGG,3 , HKEGG,5 )})
Die Vereinigung der Einzelgraphen ergibt also den folgenden Anfragegraphen:
GAec,name,stoffwechselweg = ({HKEGG,1 , HKEGG,2 , HBRENDA,1 , HKEGG,3 , HKEGG,5 },
{(HKEGG,1 , HKEGG,2 ), (HKEGG,1 , HBRENDA,1 ),
(HKEGG,1 , HKEGG,3 ), (HKEGG,3 , HKEGG,5 )})
Dies ist eben der Graph, der in Abbildung 4.3 dargestellt ist.
2
In den resultierenden Gesamtanfragegraphen existieren nun Knoten von subgoals, die
als Quellen für die in der Projektionsliste angegebenen IUS-Attribute dienen. Da ein
subgoal mehr als ein Ausgabeattribut enthalten kann, werden so möglicherweise Adapterattribute abgefragt, die für die zugrundeliegende Projektionsliste nicht notwendig
waren. Solche Adapterattribute sind zu ignorieren. So ermittelt im obigen Beispiel das
subgoal HBRENDA,1 die Adapterattribute b2 , b3 , b4 , d. h. den Enzymnamen, die katalysierte Reaktion und den Organismus. Im Sinne der Verwendung als Datenquelle für das
IUS-Attribut name sind die beiden letzten Adapterattribute also zu verwerfen.
Neben dieser Redundanz existiert eine weitere aus dem Umstand heraus, daß subgoals im Gesamtanfragegraph auftauchen, die zu keinem über die Projektionsliste der
Anfrage spezifizierten IUS-Attribute Datenquellattribute enthalten. Das ist im obigen
Beispiel beim Attribut a4 in subgoal HKEGG,5 der Fall. Keine der angefragten IUS-Attribute ec, name oder stoffwechselweg enthält ein abhängiges subgoal, das a4 liefern
soll. Trotzdem ist die implizite Anfrage dieses Adapterattributes und des IUS-Attributes map notwendig, da über diesen Knoten der Anfragepfad für den Stoffwechselweg
läuft, d. h. das subgoal HKEGG,5 zur Abfrage des IUS-Attributes stoffwechselweg
ist von der vorherigen Anfrage des Attributes a4 abhängig. Diese zur Konstruktion
eines gültigen Anfrageplanes notwendigen IUS- Hilfsattribute“ sind dann, wie im Ab”
schnitt 4.4.4 beschrieben, im Zuge der relationalen Auflösung des Anfrageresultates zu
eliminieren.
102
4.4 Verarbeitung von Datenfragen
4.4.3 Ausführung von Anfrageplänen
Die zuvor eingeführten Anfragepläne bilden die strukturelle Grundlage für Datenanfragen über integrierte Nutzerschemata in Form von Sichten integrierter Datenquellen.
Zu jeder Anfrage auf ein IUS wird ein Anfrageplan in Form eines Graphen gebildet,
der ausgeführt werden muß, um die angefragten IUS-Attribute mit Attributwerten aus
den Datenquellen zu belegen. Dazu werden die, über die Funktion source an die IUSAttribute gebundenen, subgoals von entsprechenden Adaptern, z. B. durch den Aufruf
einer URL, ausgeführt. Da für ein IUS-Attribut mehrere Adapterattribute als Datenquelle dienen, sind diese durch den Verbundoperator ⊲⊳ zu vereinigen. Die Reihenfolge
der Ausführung ist durch den Anfrageplan in Form eines Graphen derart gegeben, daß:
1. derjenige oder diejenigen Knoten bzw. subgoals zuerst ausgeführt werden, die
kein Eingabeattribut benötigen. Die Ergebnismenge von Adapterattributwerten
werden an das entsprechende IUS-Attribut über Vereinigung der Einzelresultate
der subgoals gebunden.
2. Von diesen Startknoten beginnend, werden dann alle Pfade entgegengesetzt der
durch die Funktion retrieval dependency vorgegebenen Richtung verfolgt und das
Eingabeattribut des auszuführenden subgoals mit jedem Element der zuvor berechneten Ergebnismenge des IUS-Attribut, der zuvor ausgeführten subgoals, gebunden.
3. Die an ein IUS-Attribut gebundenen Adapterattribute werden aus den entsprechenden, ausgeführten subgoals ausgewählt und zu einem mengenwertigen Attributwert vereinigt. Somit sind die Kanteneingänge in einen Knoten des Anfrageplanes als Verbundoperationen auszuführen.
Zu einer konkreten Datenanfrage im relationalen Tupelkalkül wird nun, wie zuvor beschrieben, eine Projektionsoperation π über einer Menge von IUS-Attributen I1 , . . . , Ii
und ein Gesamtanfrageplan GA berechnet. Das Ergebnis einer solchen Anfrage ist eine
Menge von Tupeln R zu einem Eigenschaftsschema I, das den in der Anfrage selektierten IUS-Attributen entspricht. Somit wird die Funktion obj aus Defintion 4.5 über die
Ausführung eines Anfrageplanes implementiert. Die Ausführung eines Anfrageplanes
kann wie folgt als rekursiver Algorithmus angegeben werden:
Execute-Query(I)
(1) berechne Anfrageplan GA zu I
(2) initialisiere ein leeres Resultat RESU LT AT := {}
(3) ermittele Menge aller IUS-Attribute start ⊆ I
zu Startknoten in GA
(4) initialisiere zu jedem si ∈ start eine leere Menge valuesi
(5) for each h mit h := (B, A) ∧ h ∈ GA.H ∧ |h.B| = 0
(6)
bestimme für subgoal h das an die Attributwerte valuesi
des IUS-Attributes si zu bindende Adapterattribut a ∈ h.A
103
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
(7)
führe subgoal h aus
(8)
valuesi ∪ h.a
(9) for each s ∈ start
(10) for each v ∈ valuesi
(11)
tupel := ({}I1 , . . . , {}Ii )
(12)
tupel.si := {v}
(13)
Execute-Dependent-subgoal(tupel, subgoals zu source(si ))
(14)
RESU LT AT ∪ tupel
(15) return RESU LT AT
Execute-Dependent-subgoal(tupel, H)
(16) if |H| = 0 then
(17) return
(18) DH := {}
(19) for each r ∈ R mit R := GA.R
(20) if r.u ∈ H then
(21)
h′ := r.v
(22)
ermittele IUS-Attribut b ∈ I zu Adapterattribut h′ .B
(23)
h′ .B := tupel.Ii
(24)
führe subgoal h′ aus
(25)
ermittele Menge aller gültigen Paare
I ′ = {(Ij , h′ .Ak ) | source(Ij ) = h′ .Ak }
(26)
for each i′ ∈ I ′
(27)
tupel.i′ .Ij ∪ i′ .Ak
(28)
DH ∪ h′
(29) Execute-Dependent-subgoal(tupel, DH)
(30) return
Die Erläuterung des Algorithmus zur Ausführung eines Anfrageplanes wird anhand
eines Beispieles durchgeführt. Dabei wird jeder Schritt des Algorithmus mit einer Beispielbelegung von Variablen illustriert.
Beispiel 4.16 Zur Veranschaulichung soll die im Beispiel 4.15 zur Demonstration benutzte Beispielprojektion πec,name,stoffwechselweg(enzyme) ausgeführt werden. Dazu wird
zu jedem Schritt des Algorithmus die Variablenbelegung am Beispiel angegeben, und die
Nummer eines etwaigen Schleifendurchlaufes ist in Klammern hinter dem Algorithmusschritt angegeben. Schleifendurchläufe geschachtelter Schleifen werden durch mehrere,
hintereinander stehende Klammern dargestellt. Auf eine vollständige, schrittweise Ausführung des Beispielanfrageplanes inklusive aller Variablenbelegungen wird verzichtet.
Mehrfachschleifendurchläufe oder rekursive Funktionsaufrufe werden verkürzt wiedergegeben:
Parameterübergabe Execute-Query(I):
Der übergebene Parameter ist die Menge von IUS-Attributen, die abgefragt werden
104
4.4 Verarbeitung von Datenfragen
sollen:
I := {ec, name, stoffwechselweg}
Schritt 1: Gemäß Abschnitt 4.4.2 wird aus allen zu den abgefragten IUS-Attributen existierenden Einzelanfrageplänen ein Gesamtanfrageplan gebildet:
GA := ({HKEGG,1 , HKEGG,2 , HBRENDA,1 , HKEGG,3 , HKEGG,5 },
{(HKEGG,1 , HKEGG,2 ), (HKEGG,1 , HBRENDA,1 ),
(HKEGG,1 , HKEGG,3 ), (HKEGG,3 , HKEGG,5 )})
Schritt 2: Erzeugung eines leeren Anfrageresultates:
RESU LT AT := {}
Schritt 3: Ermittlung aller IUS-Attribute, von denen auf die Startknoten des Gesamtanfrageplanes mittels der Funktion source eine Abbildung existiert:
start := {ec}
Schritt 4: Belegung der im vorherigem Schritt ermittelten IUS-Attribute (Startattribute)
mit einer leeren Menge von Attributwerten:
valuesec := {}
Schritt 5: Ermittlung aller Startknoten des Anfrageplanes:
h := HKEGG,1
Schritt 6: Ermittlung desjenigen Attributes aus den Ausgabeattributen des auszuführenden
subgoals des Startknotens, das einem IUS-Startattribut als Datenquelle dient:
a := a1
Schritt 7: Ausführung des entsprechenden subgoals – die Ergebnisse sind an die Ausgabeattribute gebundene Attributwerte:
n
o
h.A :=
{3.5.3.1} , {4.3.2.1} , {6.3.4.5} , {2.1.3.3}
Schritt 8: Bindung des entsprechenden IUS-Startattributs mit dem entsprechenden Ausgabeattribut des ausgeführten subgoals:
valuesec := {3.5.3.1, 4.3.2.1, 6.3.4.5, 2.1.3.3}
Schritt 9 (1): Iteration über alle IUS-Startattribute:
s := ec
Schritt 10 (1)(1): Iteration über alle Attributwerte des gewählten Startattributes:
v := {3.5.3.1}
Schritt 11 (1)(1): Berechnung einer Objektausprägung zu den angefragten IUS-Attributen
mit leeren Eigenschafts- bzw. Attributwerten:
tupel := ({}ec , {}name , {}stoffwechselweg)
105
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Schritt 12 (1)(1): Belegung des IUS-Startattributes mit einem Startattributwert:
tupel := ({3.5.3.1}ec , {}name , {}stoffwechselweg)
Schritt 13 (1)(1): Ausführung aller vom zuvor ausgeführten subgoal abhängigen subgoals:
Execute-Dependent-subgoal(tupel, {HKEGG,1 })
Parameterübergabe Execute-Dependent-subgoal(tupel, H): Die übergebenen Parameter sind ein Ergebnistupel mit teilweise an IUS-Attribute gebundenen Attributwerten
sowie eine Menge von subgoals:
tupel := ({3.5.3.1}ec , {}name , {}stoffwechselweg), H := {HKEGG,1 }
Schritt 16: Überprüfung, ob der Subgoal-Parameter nicht leer ist:
(|H| = 0) ; false
Schritt 18: Wenn subgoals übergeben wurden, dann fahre mit diesem Schritt fort und initialisiere eine leere Menge von auszuführenden subgoals, welche sukzessive erweiter wird:
DH := {}
Schritt 19 (1): Iteration über alle Knoten des Anfrageplanes:
r := (HKEGG,1 , HKEGG,2 )
Schritt 20 (1): Überprüfung, ob das erste Tupelelement des Knotens r einem der Funktion
übergebenen subgoals entspricht:
(HKEGG,1 ∈ H) ; true
Schritt 21 (1): Wenn Schritt 20 erfüllt ist, so ergibt sich ein auszuführendes subgoal aus
dem zweiten Tupelelement, d. h. dem abhängigen Kind“-subgoal im Anfrageplan:
”
h′ := HKEGG,2
Schritt 22 (1): Ermittlung des IUS-Attributes aus dem Ergebnistupel, welches die Attributwerte enthält, die an das Eingabeattribut des zuvor ermittelten subgoals h′ zu binden
sind:
Ii := ec
Schritt 23 (1): Bindung der IUS-Attributwerte des aktuellen Ergebnistupels an das Eingabeattribut des auszuführenden subgoals:
h′ := ({3.5.3.1}; a2, a3)
Schritt 24 (1): Ausführung des subgoals – das Ergebnis sind an die Ausgabeattribute gebundene Attributwerte:
n
o
h′ .A :=
{Arginase}, {L-Arginine + H2O = L-Ornithine + Urea}
Schritt 25 (1): Berechnung der Menge aller IUS-Attribute, für die die ermittelten Ausgabeattributwerte als Datenquelle dienen:
I ′ = {(name, a2)}
106
4.4 Verarbeitung von Datenfragen
Schritt 26 (1)(1): Iteration über alle diese IUS-Attribute, die im vorherigen Schritt ermittelt worden:
i′ = (name, a2)
Schritt 27 (1)(1): Vereinigung des im Ergebnistupel enthaltenen Attributwertes eines IUSAttributes i′ mit dem entsprechenden Attributwert des ausgeführten subgoals:
tupel := {3.5.3.1}ec , {Arginase}name , {}stoffwechselweg
Schritt 28 (1): Übernahme des zuvor ausgeführte subgoals in die Menge der in diesem Funktionsaufruf ausgeführten subgoals DH = {HKEGG,2 }
Schritt 19 (2): Ermittlung des nächste subgoals im Anfragegraphen:
..
.
r := (HKEGG,1 , HBRENDA,1 )
Schritt 24 (2):
h′ .A :=
..
.
n
{Canavanese}, {L-Arginine + H2O = L-Ornithine + Urea},
o
{Human, Chicken}
Schritt 27 (2)(1): tupel := {3.5.3.1}ec , {Arginase, Canavanese}name , {}stoffwechselweg
Schritt 28 (2): DH = {HKEGG,2 , HBRENDA,1 }
Schritt 29: Rekursive Ausführung der Funktion Execute-Dependent-subgoal mit dem
momentanen Ergebnistupel und der Menge aller im aktuellen Funktionsaufruf ausgeführten subgoals:
..
.
Execute-Dependent-subgoal(tupel, DH)
Schritt 30: Beendigung des aktuell ausgeführten Funktionsaufrufes:
return
Schritt 14: (1)(1): Vereinigung der bislang abgefragten Objektausprägungen der angefragten IUS-Attribute mit dem Ergebnistupel des Schrittes 13:
n
o
RESU LT :=
{3.5.3.1}, {Arginase, Canavanese}, {Urea cycle}
Schritt 10 (1)(1): Iteration über alle Attributwerte des gewählten Startattributes:
..
.
v := {4.3.2.1}
Schritt 10 (1)(2): Iterieration über alle Attributwerte des gewählten Startattributes:
..
.
v := {6.3.4.5}
107
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
Schritt 10 (1)(3): Iterieration über alle Attributwerte des gewählten Startattributes:
..
.
v := {2.1.3.3}
Schritt 14 (1)(4): Vereinigung der bislang abgefragten Objektausprägungen der angefragten IUS-Attribute mit dem Ergebnistupel des vorherigen Schrittes:
RESU
LT :=
n
{3.5.3.1}, {Arginase, Canavanese}, {Urea cycle}
{4.3.2.1}, {Arginosuccinase, Argininosuccinate lyase}, {Urea cycle}
{6.3.4.5}, {Argininosuccinate synthase, citr.-aspartate ligase}, {Urea cycle}
o
{2.1.3.3}, {Ornithine carbamoyltransferase, citr. phosphorylase}, {Urea cycle}
Schritt 15: Ende der Anfrageausführung:
return RESU LT
2
Im Beispiel wird deutlich, daß die Anwendung der Mengenvereinigung als Datenintegrationsoperation zur Synthese eines IUS-Attributes aus mehreren Adapterattributen
von der Semantik des zugrundeliegenden Vergleichsoperators abhängt. Denn hier wird
bestimmt, welche Attributwerte gleich sind. Diese Gleichheit definiert sich über den Basisdatentyp, worauf eine Gleichheitsrelation im algebraischen Sinne definiert sein muß.
Dabei sind die Eigenschaften Reflexivität, Symmetrie und Transitivität einer Äquivalenzrelation zu gewährleisten. Da bei Adapter- bzw. IUS-Attributen die Datendomäne
bzw. der Datentyp aus dem Adapterschema bekannt sind, kann daraus der geeignete
Vergleichsoperator bestimmt werden. Voraussetzung dafür ist, daß keine Datentypkonflikte auftreten, wie sie in Abschnitt 2.3.4 beschrieben werden. In solchen Fällen sind
geeignete Datentypkonvertierungsmethoden oder Fehlerbehandlungen vorzusehen.
Weitere algebraische Operationen sind zwar im Kontext der Anfrageplanverarbeitung
nicht notwendig, spielen aber bei der Umsetzung von Anfragesprachen auf Basis der
hier vorgestellten Datenintegrationsmethode eine Rolle. So sollten etwa die algebraische
Relationen kleiner“ oder größer“ auf dem jeweiligen Datentyp definiert sein, da diese
”
”
etwa im Falle von SQL notwendige Sprachelemente darstellen.
Gerade im Anwendungsgebiet der Molekularbiologie stellt die Bereitstellung spezifischer Datentypen inklusive algebraischer Elemente, wie Operationen oder Relationen
ein Problem dar. So existieren z. B. verschiedene Schreibweisen, Synonyme, Homonyme,
die auf semantischer Ebene zu überprüfen sind. Wie in [140] vorgestellt, bietet sich hier
etwa der Einsatz von Thesauri oder Ontologien im Zusammenspiel mit hierarchischen
modellierten Datentypen an. Im Default“-Fall sollten Attribute als String-Datentyp
”
behandelt werden, was natürlich sehr restriktive Gleichheitseigenschaften zweier Attributwerte fordert, aber einfach zu implementieren ist. So werden etwa zwei Enzymnamen
108
4.4 Verarbeitung von Datenfragen
als Alternativnamen interpretiert, wenn die Anfangsbuchstaben entweder als Groß- oder
Kleinbuchstaben geschrieben werden. Alle anderen Datentypen sind Spezialisierungen
dieses Default“-Datentypes. Im so gebildeten Datentypbaum sind Datentypen derart
”
aufeinander abbildbar, daß bei Datentypkonflikten ein gemeinsamer Vaterknoten im
Baum gesucht wird, auf den dann jeweils die zuvor konfliktbehafteten Datentypen abgebildet werden.
Ein weiterer Aspekt der Anfrageverarbeitung ist die Unterstützung des relationalen
Datenmodells in Form der standardisierten Anfragesprache SQL. So ist das Anfrageergebnis relational aufzulösen.
4.4.4 Relationale Auflösung der Anfrageresultate
Das hier vorgestellte Datenmodell RIND stellt ein kanonisches Basismodell dar, das in
das jeweilige Zieldatenmodell der angebotenen Schnittstelle einer konkreten Implementierung transformiert werden muß. Wie eingangs erwähnt wurde, erfolgt die Umsetzung
des in diesem Kapitel vorgestellten Konzeptes in Form des Datenbankintegrationssystems BioDataServer. Als Zieldatenmodell wurde hierzu das relationale Datenmodell
gewählt. Deshalb soll in diesem Abschnitt auf die Transformation von RIND-Anfrageergebnissen, die in Form von Objekteigenschaftsausprägungen gemäß Definition 4.5
vorliegen, auf das relationale Modell eingegangen werden. Die relationalen Basisoperationen werden nicht direkt über die vorgestellen Operationen des Datenmodells RIND
umgesetzt. Vielmehr sind relationale Anfragen auf im Sinne von Abschnitt 4.4.1 gültige
IUS-Anfragen zu reduzieren. Das bedeutet, daß vor allem Selektions- und Verbundoperationen aus einer relationalen Anfrage entfernt werden müssen, um nachträglich auf
das zu einer Relation aufgelöste IUS-Anfrageergebnis angewandt zu werden.
Nachteilig sind hierbei augenscheinlich die somit fehlenden Möglichkeiten der Anfrageoptimierung. So ist es nicht möglich, hochselektive Selektionsbedingungen auf Ebene
der Datenquellen durchzuführen, um so die Menge der abzufragenden Tupel auf der
Ebene der Datenquellen zu reduzieren. Aus der Motivation des vorgeschlagenen Ansatzes heraus, insbesondere unter der Annahme beschränkter Zugriffsmuster auf Datenquellenebene, ergibt sich diese Einschränkung. Es kann somit zwar jede konkrete
Implementierung des vorliegenden Konzeptes den vollen Sprachumfang relationaler Anfragesprachen zur Verfügung stellen, ist aber weniger als sogenanntes read-only-OLTPSystem geeignet. Dieser Aspekt findet insbesondere im Kapitel 5 weitergehende Beachtung.
Eine Ausnahme bildet dabei der natürliche Verbund, der direkt bei den Datenanfragen an das IUS in Form des vorgestellen RIND-Operators ⊲⊳ umsetzbar ist. So sind also
relationale Anfragen der Form:
select A1 , . . . , An
from T1 natural join T2
möglich.
Diese Anfrage kann dann gemäß der im Abschnitt 4.2.3 eingeführten IUS-Tabellen T
109
Kapitel 4 Ansatz zur Integration molekularbiologischer Datenbanken
und den darauf gültigen Operationen der Projektion π und des natürlichen Verbundes
⊲⊳ aus den Definitionen 4.10 und 4.12 in die IUS-Anfrage
πA1 ,...,An (T1 ⊲⊳ T2 )
transformiert werden.
Das Ergebnis von IUS-Anfragen ist eine Eigenschaftsausprägung O = obj(T ), und ist
in eine Relationen R zu überführen. Dazu kann sich der Methodik zur Abbildung von
Eigenschaftsausprägungen auf das Relationenmodell aus Abschnitt 4.1.3 bedient werden. Der folgende Algorithmus löst so die Eigenschaftsausprägung O zu einer Relation
R auf:
(1)
(2)
(3)
(4)
(5)
(6)
R := {}
for each o ∈ O
r := {()}
for each a ∈ T
r := r × oa
R := R ∪ r
Beispiel 4.17 In Abschnitt 4.1.3 wurde bereits ein entsprechendes Beispiel zur Methode der relationalen Auflösung gegeben, so daß an dieser Stelle das Ergebnis der
relationalen Auflösung eines IUS-Anfrageergebnisses aus Beispiel 4.16 ohne die schrittweise Abarbeitung des angegebenen Algorithmus direkt angegeben werden kann:


(3.5.3.1,
Arginase,
Urea
cycle)








(3.5.3.1,
Canavanese,
Urea
cycle)








(4.3.2.1,
Arginosuccinase,
Urea
cycle)






(4.3.2.1, Argininosuccinate lyase, Urea cycle)
R =
(6.3.4.5, Argininosuccinate synthase, Urea cycle) 






(6.3.4.5, citrulline-aspartate ligase, Urea cycle) 








(2.1.3.3,
Ornithine
arbamoyltransferase,
Urea
cycle)






(2.1.3.3, citrulline phosphorylase, Urea cycle)
2
4.5 Resümee
Gegenstand dieses Kapitels war die Erarbeitung der theoretischen Grundlagen für eine mediatorbasierte Datenbankintegration unter Nutzung beschränkter Zugriffsmuster
der zu integrierenden Datenquellen. Zu diesem Zweck wurde auf der Grundlage des
110
4.5 Resümee
relationalen Datenmodells das relationale Integrationsdatenmodell (RIND) vorgeschlagen. Hier wurden relationale Konzepte auf mengenwertigen Objekteigenschaften angewendet. Darauf aufbauend wurden drei Ebenen von Datenschemata als notwendige
RIND-Instanzen in einer Integrationsarchitektur eingeführt. Die zur Ausführung der
Integrationprozesse notwendigen Operationen wurden für das RIND-Modell definiert.
Das beinhaltete die Einführung und Definition von Anfrageplänen, die auf dem Konzept
von subgoals basieren. Subgoals wiederum nutzen ausschließlich die RIND-Operationen.
Zur Ausführung dieser Anfragepläne wurde ein Algorithmus erarbeitet und vorgestellt.
Mit der Erläuterung eines Algorithmus zur relationalen Auflösung der Resultate von
Anfrageplanausführungen schloß dieses Kapitel.
111
Kapitel 5
Datenbankintegrationssystem
BioDataServer (BDS)
Aus den zuvor in Kapitel 3 aufgezeigten Vor- und Nachteilen der bestehenden Integrationsansätze wird deutlich, daß ein kombinierter Ansatz vorteilhaft ist, der die speziellen
Anforderungen und Gegebenheiten der Bioinformatik berücksichtigt. Auf Basis des zuvor entwickelten, relationalen Integrationsdatenmodells und der darauf aufbauenden
Methodik einer Datenbankintegration wurde ein Softwaresystem entworfen und durch
den BioDataServer (BDS) [141] als Mediator-Wrapper-Architektur unter Nutzung des
Global-as-View-Ansatzes implementiert.
Der Fokus des BioDataServers liegt in einer homogenen, integrierten Nutzung molekularbiologischer Datenquellen unter Offerierung standardisierter, plattformunabhängiger Schnittstellen. Aufbauend auf den Erfahrungen bei der Implementierung des BDS
und dessen Anwendung in verschiedenen Projekten, wie sie in Kapitel 6 vorgestellt werden, wird zu Beginn dieses Kapitels der Entwurf einer Datenbankintegrationssoftware
gegeben. Anschließend wird eine existierende Implementierung vorgestellt, die wesentliche Teile der konzipierten Softwarearchitektur umsetzt.
Um das gesamte Potential semantisch in Beziehung stehender aber physikalisch verteilter und strukturell heterogener molekularbiologischer Daten auszuschöpfen, müssen
alle relevanten Datenquellen als eine virtuelle, miteinander vernetzte, verteilte Datenbank nutzbar gemacht werden. Diese Datenquellen werden unter Nutzung verschiedenster Techniken und Methoden als isolierte Knoten eines globalen Datenbanknetzwerkes
aufgefaßt. Die Kanten dieses Netzwerkes sind basierend auf Methoden der Web-Technologie, wie etwa HTML-Hyperlinks, zu interpretieren. Hierbei wird zwar die Navigation
zwischen den Datenquellen unterstützt, die Möglichkeit komplexer Datenanfragen über
wohlstrukturierten Datenschemata ist nicht gegeben. So sind Anfragen über relational
modellierten und integrierten molekularbiologischen Datenquellen, wie z. B. Verbünden,
Gruppierungen oder indexunterstützten Ähnlichkeitsanfragen, als Voraussetzung von
Datenanalysen über isolierten, heterogenen Datenquellen, schwerlich möglich. Jedoch
hängen Bioinformatikanwendungen, die mit molekularbiologischen Daten arbeiten und
Aufgaben, wie data retrieval“, knowledge discovery“ oder Data Mining“ umsetzen,
”
”
”
von der Existenz eben solcher komplexen Anfragesprachen auf integrierten molekularbiologischen Datenquellen ab. Demzufolge erscheint eine Datenbankintegrationsmethode geeignet, die es ermöglicht, eben solche Anwendungen zu unterstützen, indem eine
113
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
virtuelle, nicht materialisierte Integration als Vorstufe zum Import in eine enge, materialisierte Integrationslösung mit der Unterstützung komplexer Anfragesprachen im
Kontext von Data Warehouses bereitgestellt wird.
Somit wird in diesem Kapitel ein Integrationssystem von in verschiedener Hinsicht
heterogenen, verteilten aber semantisch überlappenden Datenquellen vorgestellt, das
auf den im Kapitel 4 eingeführten Konzepten beruht und erstmals in [136] beschrieben
wurde.
5.1 Architektur einer nutzerspezifischen
Datenbankintegration
Auf Basis der in Kapitel 3 gewonnenen Erkenntnisse bezüglich der Eigenschaften molekularbiologischer Datenquellen und der Vor- und Nachteile existierender Techniken
und konkreter Systeme zur Datenbankintegration in der Bioinformatik, wird in diesem Abschnitt eine daraus abgeleitete Systemarchitektur vorgeschlagen. Diese soll die
besonderen Erfordernisse des Umfeldes der vorliegenden Arbeit, insbesondere im Anwendungskontext bioinformatischer Software, berücksichtigen und so als Basis für eine
implementierbare Datenbankintegrationslösung dienen.
5.1.1 Anforderungen
Mit den Eigenschaften der verteilten Datenquellen in der Bioinformatik, so wie sie in
Abschnitt 3.1 beschrieben wurden, muß ein Datenbankintegrationssystem in diesem
Anwendungskontext mit einem hohen Grad an Autonomie der Datenquellen umgehen.
Es ist darüber hinaus davon auszugehen, daß es nicht möglich ist, in die Datenquellen
bzw. die Remote Data Sources (RDS) hinsichtlich
1. der Autonomie der angebotenen Schnittstelle oder
2. der Autonomie des Exportdatenschemas
einzugreifen.
Insbesondere sind die vorhandenen, typischerweise beschränkten Zugriffsmuster auf
die RDS von dem Datenbankintegrationssystem als gegeben zu betrachten. Wie in den
vorhergehenden Kapiteln motiviert, sind die Zugriffsoperationen auf die RDS auf nur
lesende limitiert. Weitere Aspekte der existierenden Datenverteilung und -heterogenität,
die von dem Integrationsansatz zu beachten sind, sind:
3. Datenfragmentierung und -allokation,
4. kanonische Datenmodellierung sowie
5. Datenschemaintegration.
114
5.1 Architektur einer nutzerspezifischen Datenbankintegration
Diese Aspekte werden durch die im weiteren vorgestellte Systemarchitektur des Datenbankintegrationssystems BioDataServer behandelt. Diese fünf Anforderungen begründen die im folgenden vorgestellten Softwareentwurfsentscheidungen.
Beim Entwurf eines Datenbankintegrationssystems ist eine der im Umfeld der Bioinformatik vorgeschlagenen Systemarchitekturen (siehe hierzu Abschnitt 3.2.1) zu wählen, die entweder (a) materialisierte oder (b) eine sichtenbasierte Datenbankintegration
umsetzt.
Materialisierte Datenbankintegration
Vorteile
Bei diesem Typ der Datenbankintegration sind eine hohe Verfügbarkeit der
bereitzustellenden integrierten Datenbank mit kurzen Antwortzeiten, ausdrucksstarken Anfragesprachen zur Formulierung komplexer, deklarativer
Anfragen und Unabhängigkeit gegenüber Schemaänderungen der Datenquellen als Positivmerkmale zu nennen. Somit kann der Nutzer einer solchen
Integrationslösung das volle Potential aktueller, kommerzieller DBMS zur
Analyse integrierter molekularbiologischer Daten nutzen. Daraus ergibt sich
ein weiteres Argument, die Robustheit der Software. Da durch eine materialisierte Integration der Einsatz von kommerzieller DBMS-Software möglich wird, die, im Gegensatz zu akademischen Implementierungen, die nötige
Stabilität und Skalierbarkeit aufweist, kann diese Architektur im unternehmenskritschen Bereichen eingesetzt werden.
Nachteile
Demgegenüber stehen die Nachteile der Arbeit mit, von den Datenquellen
entkoppelter, offline“-Daten, die möglicherweise veraltet sind. Dazu kommen
”
zeit- und speicherkomplexe Update-Operationen, die darüber hinaus Probleme der Schemaevolution auf Datenquellenebenen und der damit notwendigen
Schematransformationen auf Integrationsebenen verursachen. Jedoch ist die
Bereitstellung von konsistenten, integrierten Datenbanken für Analysesoftware mit häufigen und komplexen Datenzugriffsoperationen unumgänglich.
Sichtenbasierte Datenbankintegration
Vorteile
Bei einer sichtenbasierten Integration autonomer Datenquellen ist die Vermeidung redundantem und ressourcenintensivem Kopierens ganzer Datenbanken. Auch wird so ein zu jedem Zeitpunkt ein aktueller integrierter Datenbestand gewährleistet.
Nachteile
Der Nachteil der Schemaevolution auf Datenquellenebene existiert auch hier.
Dieser wird jedoch auf die Anwendungsebene verlagert, da hier die notwendigen Änderungen im integrierten, globalen Datenschema adaptiert werden
müssen. Weiterhin birgt bei dieser Architektur die starke Abhängigkeit von
115
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
den Datenquellen weitere Probleme. Diese sind u. a. die teilweise stark eingeschränkte Mächtigkeit der Anfrageschnittstelle, Verfügbarkeitsprobleme,
etwa auf Netzwerkebene, starke Belastung des Netzwerkes und somit sehr
schlechtes Antwortverhalten.
Als Resultat dieser Betrachtungen fällt die erste Designentscheidung, für den hier
zu entwerfenden Datenbankintegrationsansatz, auf einen kombinierten Ansatz, der die
Vorteile der jeweiligen Lösungen zu einem anwendbaren System vereinigt. So wird hier,
ähnlich einem Data Warehouse, eine Systemarchitektur vorgeschlagen, die aus einer materialisierten Ebene besteht und durch eine sichtenbasierte Integrationslösung ergänzt
wird, die als homogene Importquelle dient.
Die zweite Designentscheidung ergibt sich somit in Form einer engen Datenbankintegration, die ein integriertes Datenbankschema über alle zu integrierenden Datenquellen legt und so ein homogenes, wohlstrukturiertes und semantisch integriertes
Datenschema bereitstellt, das die begrenzten Möglichkeiten disjunkter Datenschemata überwindet. So wird es möglich, daß Anwendungen auf globalen Schemata arbeiten
können und somit nicht länger an die individuelle Struktur jeder einzelnen Datenquelle
gebunden sind. Weiterhin können so in den integrierten Schemata semantische Beziehungen zwischen den ansonsten inkoherenten Datenbanken zentral modelliert und gewartet werden, was üblicherweise der Anwendungsprogrammierer in der Bioinformatik
für jedes Werkzeug selbst durchführen mußte. Somit wird in die Systemarchitektur ein
relationales DBMS eingebettet, welches alle aktuellen technischen Möglichkeiten zur
Datenanalyse anbieten kann und über Standardschnittstellen auf eine zu implementierende sichtenbasierte Integrationssoftware als Importschnittstelle zugreift.
Für die dritte Designentscheidung wurde beachtet, daß typischerweise seitens
der Anwender die Anforderung an eine Datenbankintegration existiert, daß eigene, sogenannte in-house“-Daten in die Integration mit einbezogen werden sollen. Somit müssen
”
die Anwenderdaten in das integrierte Schema bzw. in die Datenbank mit aufgenommen
werden, aber nur ausgewählten, die jeweiligen Datenschutzanforderungen erfüllenden
Anwenderkreisen zugänglich sein. Dementsprechend muß gewährleistet sein, daß in keinem Fall diese privaten Daten während der Anfrageverarbeitung über das öffentliche
Netzwerk, etwa zu öffentlichen Datenbanken, gelangen, um dort als z. B. Selektionskonstante zu dienen. Auf diese Weise dürfen keine privaten Daten außer Haus gelangen.
Somit ist eine materialisierte in-house“-Datenbankintegration zu bevorzugen.
”
Die vierte Designentscheidung geht davon aus, daß jede Anwendergruppe verschiedenste Anforderungen an den Inhalt der integrierten Datenbank hat, was bedeutet,
daß die vorzuschlagende Systemarchitektur adaptiv genug sein muß, um flexibel relevante Datenquellen zusammenzuführen und in die integrierte Datenbank aufzunehmen.
Es ist also eine Komponente nötig, die dem Integrationssystem flexibel Datenquellen
zugänglich macht. Dieses Konzept wird in Form von Adaptern bzw. Wrappern vorgeschlagen, die eine eindeutig definierte Schnittstelle implementieren, um der Importebene, die auf einer nicht-materialisierten Datenbankintegration basiert, als homogene
Kapselung der Datenquellen zu dienen. Eine weitere Begründung zur Nutzung von Adaptern ist das vielfache Interesse an eher übersichtlichen, spezialisierten integrierten
116
5.1 Architektur einer nutzerspezifischen Datenbankintegration
Datenbanken, was es überflüssig macht, gesamte Datenquellen in eine materialisierte
Datenbank zu importieren. Somit werden auch unnötige Ressourcennutzungen vermieden, was wiederum die Anwendbarkeit des Integrationssystems erhöht. Denn je kleiner
das zu importierende Datenspektrum hinsichtlich Datenschema und Datenvolumen ist,
umso besser ist das Gesamtsystem zu warten.
Somit können die Anforderungen wie folgt zusammengefaßt werden:
1. Schemaintegration
2. Materialisierung
3. Unterstützung von Datenquellen mit beschränkten Zugriffsmustern
4. Bereitstellung komplexer, deklarativer Anfragesprachen
5. Offerierung von Standard-APIs
6. Datenschutz
Diese Anforderungen führen zur im folgenden vorgestellten Systemarchitektur eines
Datenbankintegrationssystems in der Bioinformatik.
5.1.2 Systemarchitektur
Auf Basis der zuvor gemachten Betrachtungen wird in Abbildung 5.1 die Gesamtsystemarchitektur des Datenbankintegrationsansatzes im Umfeld der Bioinformatik schematisch vorgeschlagen.
Auf unterster Ebene sind die Datenquellen, die sogenannten remote data sources“
”
(RDS), die über das Internet oder als flat-files über Dateisysteme und diverse Schnittstellen zugänglich sind. Diese Datenquellen werden über die Adapter gekapselt, die
Datenextraktionsanfragen von der Integrationsschicht in Form der in Kapitel 4.3 eingeführten Integrationsopertoren umsetzen und im RIND-Modell die abgefragten Datenobjekte homogenisiert zurückliefern. Zum Zwecke des homogenen Zugriffs auf die
Funktionalität der Adapter ist eine einheitliche, funktionsbasierte Schnittstelle definiert. Eine detaillierte Beschreibung der Adapter wird im Abschnitt 5.4 gegeben.
Der Datenbankintegrationsdienst, der sogenannte BioDataServer, ist die zentrale
Komponente der Architektur und basiert wiederum auf einem Mediatoransatz. Die
Kernfunktionalitäten des BDS bestehen in der Anfragehomogenisierung und der Datenintegration, die Konzepte des RIND-Datenmodells und die darauf definierten Operationen umsetzen. Die als Dienst konzipierte Systemkomponente nimmt in einer SQLAdaption spezifizierte Datenanfragen entgegen, löst diese auf der Basis Integrierter Nutzerschemata (IUS) (vergleiche hierzu Abschnitt 4.2) zu Anfrageplänen auf und führt
diese aus. Die Datenanfragen werden gegen existierende, dem Integrationsdienst zur
Verfügung zu stellenden, integrierten Nutzerschemata gestellt. Dabei werden die dort im
Anfrageplan organisierten Datenextraktionsoperationen auf die funktionale Schnittstelle der jeweils angefragten Adapter abgebildet. Um redundante Extraktionsoperationen
117
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Abbildung 5.1: Schematische Darstellung der Systemarchitektur des BDS aus [136]
auf den RDS zu vermeiden, werden bereits extrahierte Daten in einem Cache temporär
gepuffert. Während der laufenden Ausführung des Anfrageplanes werden bereits ermittelte Teilanfrageresultate, die in Form von Tupeln mengenbasierter Attribute vorliegen,
mittels Mengenvereinigung zusammengeführt und relational aufgelöst. Auf den so bereitgestellten relationalen Tupel mit atomaren Attributwerten werden in der Anfrage
formulierte relationale Operatoren ausgeführt, und das Ergebnis sukzessive über die
JDBC-Schnittstelle bereitgestellt, bis der Anfrageplan vollständig abgearbeitet wurde.
Da die an dieser Stelle skizzierte Funktionsweise des Datenbankintegrationsdienstes
BDS eine Kernfunktionalität der Gesamtarchitektur darstellt, wird auf diesen Dienst
im Abschnitt 5.2 detailliert eingegangen.
Die SQL-Anfragen an den Integrationsdienst werden hauptsächlich mit dem Zweck
eines Imports in ein DBMS zur Umsetzung einer materialisierten Datenbankintegrati-
118
5.2 Mediatorsystem des BioDataServer
on formuliert. Eine dazu alternative Nutzung des BDS als nicht-matarialisierte, onlineIntegration ist durch die offene Systemarchitektur möglich und kann in entsprechenden
Anwendungsszenarien, wie z. B. dem explorativen Arbeiten auf entfernten Datenquellen, von Bedeutung sein. Die eigentliche Bedeutung des BDS erschließt im Zusammenhang mit Datenimportwerkzeugen. Solches Werkzeuge importieren zyklisch aus dem
BDS integrierte öffentliche Daten und Daten aus in-house“-DBMS in ein Anwender”
DBMS mit vordefinierten, integrierten Datenschemata. Dieser Prozeß entspricht dem
Import in ein Data Warehouse, wobei durch die im BDS vorhandenen IUS-Schemata individuell und vor allem selektiv der zu integrierende Datenbestand spezifiziert
werden kann. So ist es nicht notwendig, öffentliche Datenbanken vollständig in einer
Staging Area zu materialisieren. Diese Ebene eines Data Warehouses ist bei der hier
vorgestellten Architektur somit nur im Falle zu archivierender oder zu versionisierender externer Daten notwendig. Ein Datenimportwerkzeug zur Kopplung von BDS und
Data Warehouse kann durch den Hersteller des Anwender-DBMS, durch kommerzielle
Datenextraktionssoftware [142] bereitgestellt werden oder mittels der, im Abschnitt 6.1
vorgestellten, DBMS-unabhängigen Eigenentwicklung Debbie genutzt werden.
Zusammenfassend bildet die Systemarchitektur einen hybriden Ansatz. Auf der einen
Seite nutzen die Bioinformatikanwendungen der Anwender ein materialisiert integriertes DBMS. Auf der anderen Seite dient eine sichtenbasierte Datenbankintegration als
homogene Importdatenquelle, die auf einer Mediator-Wrapper-Architektur beruht und
nutzerspezifische integrierte Datenschemata unterstützt.
5.2 Mediatorsystem des BioDataServer
Der Datenbankintegrationsdienst BioDataServer (BDS) ist im Anwendungskontext einer Client-Server-Architektur konzipiert worden. Dabei ist er als vollständig autonomer
Bestandteil in die Gesamtarchitektur der, in diesem Kapitel vorgeschlagenen, Datenbankintegrationsarchitektur eingebettet. Basierend auf dem Konzept einer MediatorWrapper-Architektur ist ein Softwaresystem entstanden, das aus sieben Komponenten besteht, die untereinander über definierte Schnittstellen interagieren. Das UMLKomponentendiagramm der Abbildung 5.2 stellt dies dar.
Ausgehend von der Anwenderschnittstelle, die als Bestandteil des BioDataServers
die Kommunikation mit den Clients übernimmt, soll das Gesamtsystem im folgenden
beschrieben werden. Die Anwenderschnittstelle übernimmt die Aufgabe der authentifizierten Kommunikation zwischen den verschiedenen Anwendern auf der Client-Seite,
die über mehrere parallele Sitzungen am System angemeldet sind und den Zugriff auf
serverseitigen Betriebselementen des Dienstes. Das sind (a) der Zugriff auf Nutzerschemata, (b) Weiterleitung von BDS-SQL-Anfragen (vergleiche hierzu Abschnitt 5.2.4) an
die Anfrageverarbeitung, (c) Bereitstellung von Funktionalitäten zur externen Überwachung und Kontrolle der Ausführung von Anfrageplänen sowie (d) das Ausliefern von
Anfrageergebnissen an den Client. Dabei wird über ein einfaches, proprietäres TCP/IPProtokoll, das in Abschnitt 5.2.3 vorgestellt wird, die Möglichkeit geboten, einen JDBCTreiber und ODBC-Treiber als API-Schnittstelle für Datenbankanwendungen bereitzu-
119
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Abbildung 5.2: UML-Komponentendiagramm des BDS
stellen, so wie sie in Abschnitt 5.2.4 beschrieben werden. Für die externe Kontrolle
der Ausführung von Anfrageplänen und den Zugriff auf die Nutzerschemata ist keine
Unterstützung einer Standard-API vorgesehen.
Die Komponente Anfrageverarbeitung nimmt eine im BDS-SQL-Dialekt spezifizierte
Anfrage entgegen, zerlegt diese in relationale Operationen und bildet diese auf RINDOperationen ab. Unter der Verwendung genau eines Nutzerschemas wird zu den abgefragten Attributen ein Anfrageplan laut Definition 4.14 berechnet. Dieser wird dann an
eine Instanz der Anfrageplanausführung übergeben.
Ein der Komponente Anfrageplanausführung bereitgestellter Anfrageplan wird nun,
gemäß des in Abschnitt 4.4.3 angegebenen Algorithmus, ausgeführt. So werden also subgoals gemäß der bestehenden Abhängigkeiten ausgeführt, indem diese an die jeweiligen
Adapter übergeben werden. Falls für ein solches subgoal von der Cache-Komponente
ein Anfrageergebnis einer vorherigen Ausführung bereitgestellt werden kann, wird dieses anstelle einer Adapteranfrage gemäß vorgegebener Gültigkeitsbedingungen genutzt.
Verschiedene Anfragepläne zu verschiedenen Datenanfragen werden parallel ausgeführt.
120
5.2 Mediatorsystem des BioDataServer
Die Ausführung kann von priviligierten externen Anwendern überwacht und gegebenenfalls beeinflußt werden.
Die Adapterkomponente verwaltet alle verfügbaren Adapter des Mediators. Ein flexibler Mechanismus zum dynamischen An- und Abmelden von Adaptern für verschiedene Datenquellen wird hier umgesetzt. Der Zugriff erfolgt einheitlich über eine Funktionsschnittstelle. Dazu gehören die Ausführung von subgoals (vergleiche hierzu Abschnitt
4.3.2), Metainformationen zu den so angekoppelten Datenquellen, wie u. a. das Remote
Export Schema (RES).
Die durch die Ausführung eines Anfrageplanes ermittelten Attributwerte sind zu Tupeln zusammenzustellen und über die Komponente der Anwenderschnittstelle an den
Client zu übergeben. Diese Aufgabe wird von der Komponente Ergebnisauslieferung
umgesetzt. Dazu gehört auch die nachträgliche Anwendung relationaler Operationen
der eingehenden BDS-SQL-Anfrage, die vor der Transformation in die RIND-Operationen entfernt wurden. Dabei muß gewährleistet werden, daß die bereits vollständig
vorliegenden Tupel sukzessiv ausgeliefert werden können, soweit dies durch die BDSSQL-Anfrage möglich ist. Bei einem Join etwa, der hier nachgebildet werden muß, ist die
Auslieferung erst nach vollständiger Abarbeitung eines Anfrageplanes und dem anschließenden Verbund möglich. Darüber hinaus wird von dieser Komponente kontrollierend
auf die Ausführung von subgoals eingewirkt. So werden über time-out-Mechanismen
nicht abgearbeitete subgoals erkannt und das so fehlende Ergebnis auf einen Fehlerwert
gesetzt. So wird sichergestellt, daß eine Anfrage auch bei temporärer Nichtverfügbarkeit von Datenquellen nicht komplett zurückgewiesen werden muß, was insbesondere
bei längeren Datenimporten von Vorteil ist.
5.2.1 Nutzerspezifischen Datenschemata
Ein integraler Bestandteil des Mediators sind die Integrated User Schemata (IUS), wie
sie in Abschnitt 4.2.3 eingeführt wurden. Diese Datenschemata realisieren den Globalas-View-Ansatz (GaV) für den BDS-Mediator. Wie in Abschnitt 2.3.3 beschrieben wurde, hat der GaV-Ansatz den Vorteil einer einfachen Anfrageverarbeitung auf Grundlage
konstanter, globaler Schemata. Der mögliche Nachteil von Schemaänderungen auf Ebene der Datenquellenschemata, die vom IUS adaptiert werden müssen und somit globale
Schemata variabel werden, kann durch das Adapter Schema (AS) bis zu einem gewissen
Maße abgefangen werden. Betrachtet man das gesamte Spektrum molekularbiologischer
Datenquellen, so sind diese zwar einer Schemaevolution unterworfen, die sich aber zum
großen Teil auf das Zufügen neuer Attribute beschränkt. Weiterhin sind durch verschiedene Initiativen und Standards (vergleiche Abschnitt 3.1.1) stabile Datenschemata auf
Datenquellebene vorhanden. Auch sind die IUS als kleine, spezialisiert integrierte Datenschemata konzipiert, die einige wenige Attribute der Datenquellen integrieren und
so nur ein geringes Potential an Adaptionen erwarten lassen.
Die Anforderungen der Anwender bzw. Anwendungen an eine integrierte, globale
Sicht auf molekularbiologische Datenquellen lassen sich in Form von IUS spezifizieren.
Im Klassendiagramm aus Abbildung 5.3 sind die Komponenten der vom BioDataServer
genutzten IUS dargestellt. Ein IUS-Schema besteht also aus mehreren Tabellen, denen
121
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Abbildung 5.3: UML-Klassendiagramm der Nutzerschemata
jeweils einer nicht leeren Menge von Objekten der Klasse Attribute zugeordnet ist.
Jedem Attribut ist ein oder sind mehrere Adapterschemaattribute in Form der Klasse SourceAttribute als Datenquelle zugeordnet. Weiterhin hat ein Attribut einen
bestimmten Datentyp, der die Attributwerte aufnimmt und auf dem zumindest die
Basisoperationenen <, > und = implementiert sind. Die Klasse SourceAttribute
identifiziert über entsprechende Attribute das Adapterattribut eindeutig, das als Datenquelle dient. Auch ist jeder Instanz der Klasse SourceAttribute ein Datentyp
zugeordnet. Die Datentypen der Klasse Attribut und der referenzierten Adapterschemaattribute können unterschiedlich sein. Eine notwendige Transformation bzw. Datentypkonvertierung wird vom Mediator vorgenommen.
Neben diesen, die Datenstruktur beschreibende Elemente, sind Daten zu den zuvor
eingeführten Anfrageabhängigkeiten zwischen den IUS-Attributen im Schema zu erfassen. Dazu dient die Klasse Dependency. Eine Instanz der Klasse SourceAttribute
ist somit einem oder keinem Objekt der Klasse Attribute zugeordnet. Diese Assoziationen werden vom Mediator genutzt, um Anfragepläne zu berechnen.
Das modellierte Klassendiagramm kann zur Basis genommen werden, um daraus die
Datenstruktur eines Nutzerschemas abzuleiten. Im Anhang B.1 sind die, auf dieser
Basis implementierten JAVA-Klassen, um die Funktionen reduziert, enthalten.
122
5.2 Mediatorsystem des BioDataServer
Zur persistenten Repräsentation der vorgestellten Klassenstruktur der IUS-Schemata
wurde ein Dateiformat spezifiziert, das alle notwendigen Attributwerte der JAVA-Klassen speichert und ohne weitere Werkzeuge editierbar ist. Aus der Basisimplementierung
des BioDataServers resultiert eine proprietäre Syntax des Dateiformats der IUS-Schemata. Die Syntax für ein IUS-Nutzerschema kann in erweiterter Backus-Naur-Form in
Abbildung 5.4 definiert werden. Eine Schemadatei besteht also aus einer Anzahl von
<scheme> :== ’scheme’ <ID> {<class>}+
<class> :== ’class’ <ID> ’{\n’ {<attribute>}+ ’}\n’
<attribute> :== <ID> ’:’ <data type> {<data source>}+ ’;\n’
<data source> :== <attribute source> [<retrieval dependency>]
<attribute source> :== ’<’ <ID> ’,’ <ID> ’,’ <ID> ’>’
<retrieval dependency> :== ’:’ <ID> ’->’ <ID>
<data type> :== ’string’|’integer’|’float’|’boolean’
Abbildung 5.4: Syntaxdiagramm der IUS-Nutzerschemata
Blöcken, die in geschweiften Klammern die Tabellen und ihre Attribute umschließen.
Die Attribute werden durch Zeilenendezeichen und einem ;“ voneinander getrennt
”
und bezeichnen durch ein oder mehrere in <“ und >“ eingeschlossene Tripel von Ad”
”
aptername, Adaptertabellenname und Adapterattributname die Datenquelle. Hinter
jeder Datenquelle ist mit der Zeichenkette ->“, die einen Pfeil andeutet, die Anfrage”
abhängigkeit zum nachfolgend notierten Attributnamen aus der gleichen IUS-Tabelle
vermerkt. Bei dieser Syntaxbeschreibung ist zu beachten, daß der Aufbau des Elementes
ID nicht weiter spezifiziert wird. Hier gelten die in Programmiersprachen üblichen Regeln für Bezeichner. Zur Illustration ist im Anhang B.3 ein in dieser Notation abgelegtes
IUS-Nutzerschema enthalten.
Zur Unterstützung der Schemaerstellung wurden Konzepte und Werkzeuge entwickelt, die es erlauben, unter Zuhilfenahme von Ontologien und eines Client-ServerZugriffes, auf die IUS-Schemata einer BDS-Installation eine komfortable Erstellung von
individuellen Nutzerschemata vorzunehmen. So nutzt das Softwaresystem SEMEDA,
ein System zur semantischen Datenbankintegration, das in Abschnitt 6.5 vorgestellt
wird, diese Möglichkeiten. Ferner ist ein GUI zum entfernten Editieren der IUS-Schemata implementiert worden, welches im Screenshot 5.5 dargestellt ist.
5.2.2 Schnittstelle des BioDataServer
Die Kommunikation zwischen dem BioDataServer und den Clients erfolgt über das
TCP/IP-Protokoll. Zur Umsetzung dieser Kommunikationsschnittstelle wurde ein auf
TCP/IP aufsetzendes, verbindungsorientiertes Protokoll spezifiziert. Dazu bindet sich
der BDS an ein Socket des Hosts und startet bei jeder Verbindungsanforderung einen
Leichtgewichtsprozeß (Thread), der die weitere Kommunikation mit dem Client übernimmt. Die Entscheidung, einen eigenen Mechanismus inklusive eines proprietären
Kommunikationsprotokolls als Schnittstelle zum BDS zu konzipieren, motiviert sich
123
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Abbildung 5.5: Screenshot des IUS-Schemaeditors
aus der notwendigen Leichtgewichtigkeit des zu implementierenden Softwaresystems.
Es soll möglich sein, den Integrationsdienst mit einer schlanken, robusten und intuitiv
zu nutzenden Schnittstelle ohne Frameworks, wie etwa SOAP, CORBA oder RMI, zu
nutzen. Weiterhin sollte diese Schnittstelle funktional genug sein, um sogenannte highlevel-APIs, wie etwa JDBC oder ODBC darauf implementieren zu können.
Wie im Zustandsdiagramm in Abbildung 5.6 dargestellt wird, beruht der BDS auf
zwei Zuständen. Der Server wartet auf Verbindungsanforderungen und startet gegebenenfalls einen neuen Leichtgewichtsprozeß, der an den neuen Client-Server-Socket als
Ein- und Ausgabestream gebunden wird. Diese sogenannte dedizierte Client-ServerKommunikation, bei der jeder aufrufende Client einen dedizierten Prozeß zur Verarbeitung der Client-Kommandos zugewiesen bekommt, ist eine Möglichkeit, um eine
gleichmäßige Verteilung der Serverressourcennutzung zu gewährleisten. Die so aufgebaute TCP/IP-Verbindung ist bidirektional, wobei eine einzelne Client-Server-Verbindung entweder senden oder empfangen kann. So liegt eine synchrone Kommunikation,
ähnlich dem HTTP-Protokoll, vor.
Wie im Aktivitätsdiagramm 5.7 dargestellt, stehen nach einem erfolgreichen Verbindungsaufbau zum BDS drei Modi zur Verfügung:
124
5.2 Mediatorsystem des BioDataServer
Abbildung 5.6: UML-Zustandsdiagramm der Kommunikationsschnittstelle des BDS
1. Serverinformation
2. Serveradministration
3. Nutzermodus
Im Modus Serverinformation können ohne vorherige Authentifizierung Statusinformationen, wie z. B. angemeldete Nutzer, vorhandene Adapter abgefragt sowie Kommunikationstests durchgeführt werden. Die Serveradministration setzt eine erfolgreiche Authentifizierung voraus und bietet Funktionalitäten zur Steuerung und Verwaltung von
Datenanfragen aller am System angemeldeten Nutzer. Weiterhin ist es in diesem Modus
möglich, Servernutzer zu verwalten. Dazu gehören etwa das Anlegen und Entfernen von
Nutzern. Der Nutzermodus ist die primäre Betriebsart des BDS. Hier kann der Nutzer
nach erfolgreicher Authentifizierung auf Grundlage seines Datenschemas, das nur für
ihn sichtbar ist, SQL-Anfragen an integrierte Datenquellen stellen. Weiterhin können
im Nutzermodus IUS-Nutzerschemata verwaltet und die Adapterschemata abgefragt
werden. Die Verbindung zum Client wird geschlossen, sobald der Server das Resul-
Abbildung 5.7: UML-Aktivitätsdiagramm der BDS Client-Server-Kommunikation
tat ausgeliefert hat. Das bedeutet, jede Client-Server-Verbindung verarbeitet genau ein
125
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Kommando. Details zum Kommunikationsprotokoll werden im folgenden Abschnitt erläutert.
5.2.3 TCP/IP-basierte BDS-Kommunikationsprotokoll
Das synchrone BDS-Kommunikationsprotokoll basiert auf im ASCII-Code übermittelten Zeichenketten. Dabei ist das newline-Zeichen \n“ der Kode für das Ende der Zei”
chenkette. Der Client setzt Kommandos in Form dieser ASCII-Zeichenketten ab und
empfängt im Kontext des Kommandos als Resultat vom Server ebenfalls eine Menge von Zeichenketten. Bei Antworten vom Server enthält dabei die erste Zeichenkette
die Quittierung des empfangenen Kommandos. Dies entfällt bei Parameterabfrage vom
Server zum gerade zu bearbeitenden Kommando. Der Prefix dieses Status ist entweder
(a) OK:“ für eine erfolgreiche Verarbeitung des Kommandos oder
”
(b) KO:“ für den Fall eines Problems
”
Hinter dem Prefix ist dann ein Text mit zusätzlicher Erläuterung der Statusmeldung
enthalten. Das kann z. B. eine Fehlermeldung sein. Das Syntaxdiagramm in erweiterter
Backus-Naur-Form der Abbildung 5.8 spezifiziert die gültigen Konstrukte der BDSKommandosprache. Das Element <CHAR>“ entspricht dabei einem gültigen ASCII”
Zeichen.
<command> :== <CMD> ’\n’
<CMD> :== ’admin’|’user’|’status low’|’status high’|’test’|
’create’|’delete’|’kill’|’list’|’getadapterscheme’|
’getinfo’|’getscheme’|’putscheme’|’sql’
<result> :== [<result_prefix>] <string> ’\n’ {<string>}* <EOF>
<result_prefix> :== ’KO: ’|’OK: ’
<string> :== {<CHAR>}*
Abbildung 5.8: Syntaxdiagramm der Kommandos des BDS-Kommunikationsprotokolls
Die Semantik der einzelnen Kommandos ist in Tabelle 5.1 dargestellt.
Serverinformations- und der Serveradministrationsmodus
Der Administrations- und Serverinformationsmodus wird bei jeder neuen Verbindung
zum BDS durchlaufen. Zum einen können Statusinformationen abgerufen werden. Hier
werden die am System angemeldeten Nutzer, der Fortschritt von Datenanfragen und
eine Liste der am System angemeldeten Adapter abgefragt. Die Sequenz von hierzu
notwendigen Kommandos ist in Abbildung 5.9 dargestellt.
Zum anderen wird hier die Authentifizierung der Nutzer vorgenommen. Durch das
entsprechende Kommando wird der gewünschte Modus ausgewählt (user, admin).
126
5.2 Mediatorsystem des BioDataServer
Systemzugang und Serverinformationen
admin
Authentifizierung zur Serveradministration
user
Authentifizierung zum Nutzermodus
status low
allgemeine Statusinformationen
status high
detaillierte Statusinformationen
test
Ausgabe von Zufallszeichen
Serveradministration
create
neuen Nutzer anlegen bzw. dessen Password ändern
delete
Nutzer löschen
kill
Sitzung eines beliebigen Nutzers abbrechen
list
listet alle vorhandenen Systemnutzer
Nutzer-Modus
getadapterscheme
Adapterschema zu einem Adapter abfragen
getinfo
Ausgabe von Versionsinformation
getscheme
Datenschema des aktuellen Nutzers abfragen
kill
Sitzung aller Nutzer mit gleicher Nutzerkennung abbrechen
putscheme
Datenschema für den aktuellen Nutzer dem Server
übermitteln
sql
SQL-Anfrage übermitteln
Tabelle 5.1: Kommandos der BDS-Kommunikationsschnittstelle
Anschließend wird vom Server das Kommando quittiert und nacheinander die Parameter Nutzername und Kennwort abgefragt. Wurden diese Authentifizierungstoken erfolgreich evaluiert, erfolgt nach entsprechender Quittierung der Wechsel in den angeforderten Modus. Im Sequenzdiagramm 5.10 wird dieses Vorgehen verdeutlicht.
Nach erfolgreicher Anmeldung dient der Serveradministrationsmodus zur Verwaltung
und Steuerung des BDS. Da es sich um einen priviliegierten Modus handelt, können
hier beliebige Nutzersitzungen abgebrochen bzw. die Kennwörter manipuliert werden.
Die Kommandosequenz beruht auf der Vorgehensweise der Authentifizierung: Ein Kommando wird dem Server übermittelt, vom Server kommt eine Quittierung und die Aufforderung, notwendige Parameter zu übergeben. Ist dies ohne Fehler geschehen, werden
die entsprechenden Daten an den Client übertragen. Aus Platzgründen wird hier auf
die Sequenzdiagramme zu allen Administrationskommandos verzichtet.
127
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Abbildung 5.9: UML-Sequenzdiagramm zur Abfrage des BDS-Serverstatus
Abbildung 5.10: UML-Sequenzdiagramm zur Authentifizierung am BDS
Nutzermodus
Im Nutzermodus sind gewisse Verwaltungsfunktionen möglich, die allein den angemeldeten Nutzer betreffen. So kann das Nutzerschema herunter- bzw. hochgeladen, alle
Sitzungen des Nutzers abgebrochen und Adapterschemata abgefragt werden. Auch in
diesem Fall entspricht die Kommandosequenz der zuvor in diesem Unterabschnitt erläuterten BDS-Kommunikation. Somit wird auch hier auf die Angabe von Sequenzdiagrammen zu jedem Kommando verzichtet.
Die Hauptanwendung dieses Modus ist es, unter Nutzung des, dem angemeldeten
Nutzer entsprechenden, IUS-Datenschemas, Datenanfragen zu stellen. Dazu wird mit
dem Kommando sql dem Server mitgeteilt, daß eine SQL-Anfrage gestellt wird. Nach
der Quittierung mit der Meldung OK: SQLEngine is ready“ kann vom Nutzer
”
eine SQL-Anfrage spezifiziert werden. Diese wird dann auf syntaktische Korrektheit
überprüft und zur weiteren Verarbeitung der Anfrageverarbeitungskomponente des
BDS übergeben. Parallel dazu wird eine Instanz der Ergebnisausliefungskomponente
als Leichtgewichtsprozeß gestartet, die zyklisch berechnete Resultate des, in der Ausführung befindlichen, Anfrageplanes abruft. Auf die abgerufenen Tupel werden von der
128
5.2 Mediatorsystem des BioDataServer
Anfragealgebra nicht direkt umsetzbare SQL-Operationen tupelweise angewandt und
das Ergebnis an den Client als Stream ausgeliefert. Dabei wird überprüft, ob der Client noch vorhanden ist, ansonsten kann die aktuelle Anfrage abgebrochen werden. Bei
kompletter Abarbeitung des Anfrageplanes wird die Nutzersitzung geschlossen. Diese Vorgehensweise ist im Aktivitätsdiagramm 5.11 dargestellt. Ausführungen zum an-
Abbildung 5.11: UML-Aktivitätsdiagramm einer Datenanfrage
gebotenen SQL-Dialekt und dessen Interpretation durch den BDS sind im nächsten
Unterabschnitt zu finden.
5.2.4 SQL-Dialekt des BioDataServer
In Form der Anfrageschnittstelle wird den Anwendern die Möglichkeit geboten, SQLAnfragen zum Zugriff auf integrierte Datenbanken mit dem primären Hintergrund eines
Imports in ein Data Warehouse zu stellen. Es wird eine Anfragesprache angeboten, mit
deren Hilfe komplexe, deklarative Anfragen auf den integrierten Datenbanken durchgeführt werden können. Dazu wurde ein SQL-Dialekt implementiert, der die Basiskonstrukte von SQL umgesetzt. Die unterstützten Sprachkonstrukte sind:
• Projektionslisten
• Verbünde in Form eines kartesischen Produkts
• Selektionsbedingungen
– Konstanten-Selektion
– Attribut-Selektion
– zulässige Vergleichsoperatoren (=, 6=, <, ≤, >, ≥)
• Bool’sche Verknüpfungen ∧, ∨, ¬
129
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Ausschließlich die in der vorherigen Aufzählung hervorgehobenen Konstrukte können
aufgrund der zuvor eingeführten Anfrageoperationen auf Basis der subgoals direkt als
Operationen in Anfragepläne umgesetzt werden. Die anderen Konstrukte sind vom
Mediator nachträglich auf die aus der Anfrageausführung resultierenden Tupel anzuwenden. Bei der Formulierung von SQL-Anfragen ist dem Rechnung zu tragen, indem
komplexe Konstrukte, wie etwa Verbünde, vermieden werden sollten. Das ist im Anwendungskontext des Mediators als Importkomponente für ein Data Warehouse wenig
einschränkend. Im Gegensatz dazu sind SQL-Anfragen zur Onlineanalyse oder Datenexploration somit weniger gut geeignet aber auf entsprechend kleinen IUS-Tabellen
mit wenigen Attributen und restriktiven Konstantenselektionsbedingungen unter Akzeptanz eines schlechten Antwortverhaltens durchaus möglich. Zur Unterstützung eines
solchen Anwendungsfalls würde bei einer Anfrage mit einer oder mehreren Konstantenselektionen auf dem Startattribut des Anfrageplanes, d. h. dem IUS-Attribut ohne
Anfrageabhängigkeit zu einem anderen IUS-Attribut, auf die Ausführung der zugrundeliegenden subgoals verzichtet. Vielmehr können die angegebenen Konstantenwerte als
Attributwerte ohne Datenquellenanfrage angenommen werden. Auf diese Weise können zu einer gegebenen Liste von Enzymnummern, die in Form einer Disjunktion von
Konstantenvergleichen in SQL ausgedrückt werden kann, direkt alle interessierenden
Attribute abgefragt werden, ohne alle Enzymnummern sequentiell von den Datenquellen abfragen zu müssen. Die Syntax des vom BDS unterstützen SQL-Dialektes ist in
Abbildung 5.12 angegeben.
Implementierte Client-API
Die möglichen Programmierschnittstellen für die den Mediator anfragenden Anwendungen wurden hinsichtlich folgender Kriterien untersucht:
(a) Unterstützung der Datenbankanfragesprache SQL
(b) intuitive Anwendbarkeit
(c) Akzeptanz bei Anwendungsentwicklern
(d) stabile Spezifikation
(e) Umfang des notwendigen Implementierungsaufwandes
Es wurden insbesondere die etablierten, im Abschnitt 3.1.2 erläuterten Datenbankschnittstellen im Umfeld der Bioinformatik betrachtet. Dabei können drei Klassen von
Schnittstellen gebildet werden:
1. Datenbankübergreifend, sowohl abstrakte als auch uniforme Funktionsschnittstellen (z. B. JDBC)
2. Dynamisch aus Daten- und Funktionsbeschreibungssprachen generierte Schnittstellen (z. B. CORBA)
130
5.2 Mediatorsystem des BioDataServer
select
SPACE
ROW
from
TABLE
;
SPACE
SPACE
ROW
:
:
TABLE
where
OPERATOR
SPACE
:
CONDITION
:
ID
=
ID
ROW
,
LETTER
>=
ROW
DIGIT
<=
SPACE
>
<
:
CONDITION
!=
:
LETTER
"A"-Z","a"-"z"
SPACE
TERM
SPACE
AND
CONDITION
DIGIT
:
OR
"0"-"9"
TERM
:
ID
!
SPACE
’
ID
OPERATOR
’
SPACE
ID
SPACE
’
ID
’
Abbildung 5.12: Syntaxdiagramm des BDS-SQL-Dialekts aus [143]
3. Properitäre, sich evolutionär entwickelnde Funktionsschnittstellen (z. B. BioJava)
Aus Gründen der gegebenen Akzeptanz, Verbreitung sowie der stabilen API-Spezifikation wurde sich für JDBC als API für JAVA-Anwendungen sowie für ODBC für CProgramme unter Microsoft Windows entschieden. Das entspricht der 1. Klasse aus
den zuvor genannten Schnittstellenklassen. Weiterhin wird hier SQL als Datenanfragesprache unterstützt. Skriptsprachen, wie etwa Perl, werden dagegen nicht unterstützt,
da hier die 3. Schnittstellenklasse, wie etwa in Form der BioPerl-API, verbreitet sind,
was aufgrund der gegebenen Dynamik dieser Schnittstelle ständige Anpassungen und
Wartungen notwendig macht. Auch werden hier keine Anfragesprachen wie SQL unterstützt. Auf der Basis dieser Entscheidung wird im folgenden die Implementierung der
JDBC-API vorgestellt. Da ODBC konzeptuell sehr ähnlich zu JDBC ist, wird auf eine Vorstellung dieser Schnittstellenimplementierung, die in Form eines ODBC-Treibers
vorgenommen wurde, verzichtet.
JDBC spezifiziert eine API, die Java-Programmen einen, vom DBMS abstrahierten,
Datenbankzugriff ermöglicht. Dazu gehören Operationen zum Suchen, Abfragen, Erzeugen und Verändern von Relationen. Für die Formulierung entsprechender Anweisungen
an das Datenbanksystem wird gewöhnlich die standardisierte Datenbanksprache SQL
verwendet. JDBC setzt damit auf einer recht tiefen sprachlichen Ebene an und hat
dementsprechend schlichte Fähigkeiten im Vergleich zu den meist sehr anspruchsvol-
131
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
len Datenbankentwicklungswerkzeugen. Deshalb wird JDBC auch als low-level“- oder
”
call level“-SQL-Schnittstelle für die Java-Plattform bezeichnet. JDBC besteht aus zwei
”
Komponenten:
1. aus Datenbanktreibern, die den Anschluß von Java-Anwendungen an Datenbanksysteme ermöglichen, und
2. aus dem Paket java.sql, bestehend aus einem Manager für diese Treiber, einem
Interfaces als Schnittstellen zu den Treibern sowie Hilfsklassen für Datum,
Uhrzeit und gültige JDBC-Typen.
Die Treiber sind datenbank- und herstellerabhängige Java-Klassen, die sich dem Anwender aber als einheitliche Implementierungen von JDBC-Interfaces präsentieren. Dieses
Konzept wurde genutzt, um Java-Programmen eine unabhängige Programmierschnittstelle für den BioDataServer anzubieten. Demgemäß ist der BDS-JDBC-Treiber eine Implementierung der Interfaces des Pakets java.sql (Connection, Statement,
ResultSet etc.).
Neben den Schnittstellenfestlegungen verfügt java.sql noch über einen Treibermanager, mit dem Treiberobjekte verwaltet werden können. Objekte von JDBC-konformen
Treiberklassen registrieren sich beim Treibermanager des Java-Programms stets selbst.
Jede JDBC-Applikation hat genau einen solchen Treibermanager. Der Treibermanager verwaltet lediglich die Treiberobjekte selbst, nicht deren Verbindungen zu Datenbanksystemen. Wird er verwendet, so werden über ihn zwar die Verbindungen zu den
Datenbanken hergestellt, die darauf folgenden Datenbankanfragen werden aber direkt
über die Treiber abgewickelt. Dabei werden im Falle des BioDataServer-JDBC-Treibers
die JDBC-Interfaces und nicht die vom Treiber bereitgestellten Klassen verwendet, also etwa ResultSet statt z. B. BDSSQLResultSet. Die Komponenten einer JDBCArchitektur sind in Abbildung 5.13 illustriert.
Die Vorgehensweise einer Anwendung zum Verbindungsaufbau zu einer Datenquelle
über einen JDBC-Treiber wird im Aktivitätsdiagramm der Abbildung 5.14 dargestellt.
Dazu sind folgende Schritte notwendig:
1. Laden der JAVA-Klasse eines JDBC-Treibers
2. Registrierung der Treiberinstanz beim Treibermanager
3. Anforderung eines datenquellenspezifischen Treibers durch die Anwendung
4. Verbindungsaufbau zur Datenquelle mittels des JDBC-Treibers
5. Abwicklung der Datenbankoperationen über den Treiber direkt, d. h. über das
Objekt vom Typ Connection, das bei der Verbindungsaufnahme erzeugt wurde
6. Verbindungsabbau und Freigabe des Treiberobjektes
Der implementierte JDBC-Treiber für den BioDataServer besteht aus 23 JAVA-Klassen,
die 150 abstrakte Funktionen aus dem JDBC-Framework der Version 2 implementieren.
132
5.2 Mediatorsystem des BioDataServer
Abbildung 5.13: Komponenten des JDBC-Frameworks
Alle anderen JDBC-Funktionen werden nicht unterstützt. Die Anfragefunktionalität
des BDS-JDBC-Treibers wurde auf Basis des zuvor im Abschnitt 5.2.2 vorgestellten
Kommunikationsprotokolls nach dem Muster von Consumer/Producer“-Threads auf
”
Basis von TCP/IP-Streams implementiert. Dabei empfängt der Producer“-Thread im
”
TCP-Stream die zu einer zuvor übermittelten Datenanfrage Resultattupel, parst diese
und überführt sie in die Datenstruktur des JDBC-Interfaces ResultSet. Der Zugriff
auf die in einem ResultSet strukturierten Anfrageergebnisse basiert auf dem CursorKonzept, wobei ein Cursor unidirektional, iterativ durch die Menge aller Resultattupel bewegt wird. Somit konsumiert“ das ResultSet die vom Producer-Thread in einem
”
Puffer bereitgestellten Daten. Bei Weiterbewegen des Cursors zum nächsten Tupel wird
das vorige Tupel aus dem Hauptspeicher entfernt. Dieses sogenannte Streaming“-Kon”
zept stellt sicher, daß auch große Resultate verarbeitet werden können und nicht durch
die Hauptspeichergröße limitiert werden.
Neben der so implementierten Standardfunktionalität des JDBC-Frameworks wurde
eine darauf aufsetzende JAVA-Klasse entwickelt, die JDBC-ResultSets automatisch in
XML umwandelt. Das ermöglicht eine nahtlose Integration in XML-basierende Frameworks, wie etwa XML-Datenbankanwendungen. Erweiterte Funktionalitäten, wie etwa
das Management von Datenanfragen an den BDS-Mediator oder administrative Aufgaben, so wie diese, die zur Funktionalität des BDS gehören, sind vom JDBC-Framework
nicht vorgesehen. Dazu wurde ein graphischer JAVA-Administrationsclient implementiert, welcher über das BDS-Protokoll auf entfernt laufende Instanzen des BDS-Mediators zugreift. Alle hier genannten Implementierungen sind als Open Source“ verfügbar
”
und sind als SourceForge-Projekt unter der URL
133
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Abbildung 5.14: Aktivitätsdiagramm einer JDBC-Datenquellenverbindung
http://sourceforge.net/projects/biodataserver
veröffentlicht.
5.3 Implementierungsaspekte des Mediators
Die vorgestellte Konzeption des BioDataServers als Umsetzung einer Mediator-Wrapper-Architektur wurde unter der Maßgabe einer praktischen Umsetzung entworfen. Neben den theoretischen Arbeiten, die auf eine Realisierbarkeit und praktische Anwendbarkeit des zu enwickelnden Datenbankintegrationssystems fokussiert wurden, stellt die
Implementierung der Konzepte den zweiten Hauptteil der Arbeit dar. Dem gerecht werdend, wurde eine Implementierung des BioDataServers vorgenommen, um ein nutzbares
Werkzeug zur Datenbankintegration für die Bioinformatik bereitzustellen.
So konnte ein großer Teil der, für die vorliegende Arbeit zur Verfügung stehenden,
Ressourcen zur Programmierung folgender nach Implementierungsumfang geordneter
Software aufgewandt werden:
1. Mediator
2. Datenbankadapter
3. Treiber für den BioDataServer nutzende Applikationen
4. unterstützende Werkzeuge
Die Implementierungen der Datenbankadapter, der JDBC- und ODBC-Treiber und
der unterstützenden Werkzeuge wurde im Kontext der Abschnitte 5.4, 5.2.4 und 5.2.1
beschrieben. Die größte Implementierungsarbeit wurde für den Mediator notwendig.
Deshalb werden in diesem Abschnitt einige wesentliche Implementierungsaspekte des
Mediators erläutert. Dazu werden neben der gewählten Implementierungstechnologie,
die Klassen und Paketstruktur sowie für die Implementierung wesentliche Funktionsteile
des Mediators erläutert.
134
5.3 Implementierungsaspekte des Mediators
5.3.1 JAVA Quellkode
Der Mediator und die JDBC-Treiber sind als Open Source“ implementiert und im
”
SourceForge-Projekt unter der URL
http://sourceforge.net/projects/biodataserver
veröffentlicht. Als Programmiersprache wurde JAVA gewählt. Die Entscheidung dazu
motivierte sich aus der Plattformunabhängigkeit, der Objektorientierung, dem umfangreichen Funktionsumfang der frei verfügbaren Klassenbibliotheken, den in der Sprache
eingebetteten Konstrukten zur Synchronisation von Leichtgewichtsprozessen sowie der
in der JAVA Virtual Machine (JVM) integrierten Speicherverwaltung. Die Implementierung wurde mit dem Funktionsumfang des Java Development Kit (JDK) der Version
1.2 vorgenommen. Außer der im JDK enthaltenen API wurden Funktionalitäten des
HSQL-Projektes [144] genutzt. Hierbei handelt es sich um ein in JAVA programmiertes
und in JAVA-Anwendungen direkt einbettbares relationales DBMS, das für die CacheFunktionen des BioDataServers genutzt wird.
Die auf dieser Grundlage entwickelte Software wurde in Pakete strukturiert, die jeweils aus einer Anzahl von Klassen bestehen. Folgende Softwarepakete wurden entwickelt:
• adapter“ (16 Klassen)
”
Dieses Paket umfaßt Klassen und Interfaces zur Implementierung von Adaptern.
Dazu gehören Dienstklassen zum Scheduling der Adapteranfragen, zum zwischenspeichern von Anfrageergebnissen und zur Überwachung der subgoal-Ausführung
durch Threads.
• admin“ (1 Klasse)
”
Durch eine Klasse wurden alle Administratorfunktionalitäten implementiert.
• bionet“ (9 Klassen)
”
In diesem Paket werden Klassen zur Realisierung des Netzwerkprotokolls, zur
Kommunikation mit dem BioDataServer, der Verwaltung von Clientverbindungen, der Aktivitäts- und Fehlerprotokollierung und der Serverlaufzeitüberwachung
implementiert. Weiterhin sind in der Klasse Defines“ global gültige Parameter
”
für den Server definiert. Diese sind in folgenden Klassen von Parametern organisiert:
– Netzwerk- und Clientverbindungsparameter
– Threadprioritäten
– Pfade zu den Dateien
– Grenzwerte für time out“ und Cacheüberalterungen, Anzahl von Anfrage”
attributen und parallelen Threads
– Kommandos und Schlüsselwörter des BDS-Kommunikationsprotokolls (vergleiche hierzu auch Tabelle 5.1)
135
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
• integration“ (3 Klassen)
”
Durch dieses Paket werden Klassen mit Funktionalität zur Anfrageplanabarbeitung und zur relationalen Auflösung von Ergebnistupeln bereitgestellt. Dabei
wurden in der Klasse QueryData“ ein Großteil in dieser Arbeit vorgestellten
”
Algorithmen implementiert.
• profile“ (19 Klassen)
”
Hier sind Klassen zur Nutzer- und IUS-Datenschemaverwaltung implementiert.
Die Klassen zum Parsen der Schema- und Kennwortdateien wurden mittels des
JAVACC Parsergenerators [99] erzeugt.
• sql“ (14 Klassen)
”
Das Paket enthält Klassen zum Parsen, Interpretieren und Ausführen von SQLAnfragen, die an den BioDataServer gestellt werden. Die Klassen zum Parsen von
SQL wurden auch hier mittels JAVACC generiert.
• util“ (6 Klassen)
”
Dieses Paket enthält zentrale Hilfsklassen, wie z. B. eine Erweiterung der JAVAKlasse Vector oder einen HTML-Parser.
Es wurden somit 68 Klassen in 7 Paketen mit 521 Funktionen implementiert. An dieser
Stelle soll auf eine komplette Darstellung des, sich über die implementierten Klassen
ergebenen, Klassenschemas verzichtet werden. Eine zum Verständnis notwendige Detailbeschreibung der Klassen und eine Dokumentation des Quellkodes wird hier nicht
gegeben. Die Klassenstruktur ergibt sich aus dem verfügbaren, im SourceForge-Projekt
veröffentlichten Quellkode.
5.3.2 SQL Implementierung des BioDataServer
Für die SQL-Schnittstelle waren drei Kernfunktionalitäten zu implementieren, die nicht
bereits von den RIND-Operationen bereitgestellt werden:
1. SQL-Parser
2. Auswertung der WHERE-Klausel
3. Ausführen von Verbundoperationen
Der SQL-Parser, der mit Hilfe einer JAVACC-Grammatik generiert wurde, bildet
die in Abschnitt 5.2.4 definierten, vom BioDataServer unterstützten SQL-Elemente auf
RIND-Datenanfragen ab. Diejenigen Konstrukte, die nicht direkt von RIND-Operationen unterstützt werden, wie z. B. zum Gleichheitsprädikat ergänzende Bool’sche
Prädikate für Attributvergleiche in der WHERE-Klausel, müssen auf SQL-Ebene des
BDS implementiert werden.
Die vollständige Umsetzung der WHERE-Klausel kann nicht direkt von RINDOperationen durchgeführt werden. Deshalb ist dies für alle relational aufgelösten
136
5.3 Implementierungsaspekte des Mediators
Resultattupel von der SQL-Implementierung durchzuführen. Für eine WHEREKlausel werden Bool’sche Funktionen verwandt, die entweder Negationen von Attributvergleichen oder logische Verknüpfungen mittels AND und OR sind. So ist z. B.
folgender Term eine gültige Bedingung einer WHERE-Klausel:
(((ec = ’3.5.3.1’ OR ec = ’4.3.2.1’) AND (name =
’Arginase’))) OR (not (gen = ’ARG1) OR ec = ’6.3.4.5’)
Dieser ist graphisch als binärer Baum in Abbildung 5.15 dargestellt. Die Knoten
sind dabei als binäre Bool’sche Funktionen zu verstehen, deren Parameter sich im
Fall der inneren Knoten aus den beiden Kindknoten oder bei den Blattknoten aus
dem Attributnamen und der Konstante bestimmen. Alle Knoten/Bool’sche Funk-
Abbildung 5.15: Binärbaum zu einer Beispiel SQL-Selektionsbedingung
tionen werden beginnend mit den Blättern ausgewertet, indem unter Nutzung der
rekursiven Methode der Tiefensuche der Baum traversiert wird. Die Auswertung bzw.
das Funktionsresultat des Wurzelknotens ist dann der Wahrheitswert des gesamten
Ausdrucks.
5.3.3 Implementierung von Verbundoperationen
Als einzige zur Zeit implementierte Art der Verbundoperation wird das kartesische
Produkt zwischen Relationen unterstützt. Dieser Verbund nutzt die RIND-Operation
⊲⊳. Diese Operation ist aber nicht auf Datenquellenabfragen anwendbar. Hier sind in
Form der subgoals ausschließlich die Projektion π sowie die Selektion σ aus den in
Abschnitt 4.3.2 genannten Gründen zulässig. Die Konsequenz ist, daß sich die Ausführung von Verbundoperationen bei der momentan verfügbaren Implementierung des
BioDataServers auf das kartesische Produkt unter Anwendung der, in der WHEREKlausel formulierten, Selektionsbedingungen beschränkt. Auf dieser Basis sind weitere
Verbundoperationen, wie z. B. der natürliche oder auch der äußere Verbund, durchführbar. Eine direkte Implementierung unter Anwendung bekannter Algorithmen, wie der
Hash- oder Merge-Join zur Verbundberechnung, ist zur Zeit nicht vorgesehen. Mit dem
Hinweis auf den Entwurf des Mediators als Importwerkzeug für Datenbanken bedeutet
das aber eine wenig maßgebliche Einschränkung. Die Voraussetzung zur Berechnung des
137
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
kartesischen Produktes mehrerer Relationen ist, daß alle Tupel der zu verbindenden Relationen bzw. Objektausprägungen im RIND-Modell vollständig abgefragt worden und
dem BioDataServer vorliegen. Diese sind dann durch, je nach Anzahl der zu verbindenden Relationen, verschachtelte Schleifen nach Definition des Kreuzproduktes zu einer
Relation zusammenzufügen. Die Implementierung benutzt ausschließlich den Primärspeicher (RAM) und ist somit gerade für große Relationen nicht anwendbar. Durch diese offensichtlichen Negativmerkmale der Verbundimplementierung ist diese Operation
nur aus Vollständigkeitsgründen zum SQL-Dialekt des BioDataServers aufgenommen
worden und bietet somit eine Vorlage für weitergehende Implementierungen.
5.3.4 Parallelisierung der Adapteranfragen
Kernfunktionalität der Mediatorimplementierung ist die parallelisierte subgoal-Ausführung. Wie bereits erläutert, werden subgoals von Adaptern ausgeführt. Da die subgoals
im Ausführungsplan über die Eingabe- und Ausgabeattribute voneinander abhängen,
unterliegen auch die auszuführenden Adapteranfragen dieser Anfrageabhängigkeit. Um
einen möglichst guten Datendurchsatz bei Datenanfragen an den Mediator zu gewährleisten, werden Adapteranfragen parallel als Leichtgewichtsprozesse, sogenannte Threads,
ausgeführt. Das hat gegenüber einer sequentiellen Implementierung des in Abschnitt
4.4.3 vorgeschlagenen Algorithmus zur Anfrageplanausführung den Vorteil, daß Wartesituationen einzelner Adapteranfragen, die z. B. aus einer hohen Netzwerk- oder Middlewareauslastung bei den entfernten Datenquellen resultieren können, durch Anfragen
an andere, zum Anfragezeitpunkt weniger ausgelastete Datenquellen ergänzt werden
können. Da die Auslastung der genannten Ressourcen entfernter Datenquellen während der Anfrageplanabarbeitung schwankt, kann durch diese Idee der Parallelisierung
von subgoal-Ausführungen eine gute Gesamtleistung erzielt werden.
Um nun die Anfrageabhängigkeiten bei der Parallelisierung zu gewährleisten, wurde
eine Implementierung umgesetzt, die auf anfrageabhängiger Ausführungssynchronisation von Adapteranfrage-Threads mit gekoppelter Consumer/Producer“ Strategie ba”
siert. Mit Hilfe des Beispieles aus Abbildung 5.16 wird diese Implementierung erläutert.
Im Beispiel existieren fünf Adapter, die zur Ausführung von subgoals benötigt werden. Jeder Adapter hat einen Pufferspeicher, worin die Anfrageergebnisse abgelegt werden. Diese Puffer werden zu einer zweidimensionalen Matrix mit festen Zeilen und
Spaltenadressen zusammengefügt. Unter den Adaptern bestehen, gemäß der Anfrageabhängigkeiten, Abhängigkeiten zwischen den Pufferspeichern. Diese sind in der Abbildung 5.16 durch Pfeile dargestellt. Jedem subgoal wird nun ein Platz in dem jeweiligen
Adapterpufferspeicher und somit eine eindeutige Matrixadresse zugewiesen. In der Abbildung sind bereits durch Anfrageergebnisse belegte Zellen durch geometrische Objekte
veranschaulicht. Ist eine Zeile über alle Puffer mit Resultatobjekten belegt, so wird diese
Zeile als Ergebnistupel abgerufen und diese Zeile aus allen Puffern entfernt (im Beispiel:
Ergebnistupel 1 und 3). Auf diese Weise und durch eine maximale Anzahl von Threads
pro Adapter wird sichergestellt, daß kein Speicherüberlauf auftritt.
Ein subgoal wird als Thread ausgeführt und besitzt drei Zustände:
138
5.3 Implementierungsaspekte des Mediators
Abbildung 5.16: Ausführungsschema von Adapteranfragen
1. wartet“
”
Das notwendige Eingabeattribut des subgoals ist noch nicht an ein Attributwert
gebunden (subgoals zu Ergebnistupeln 2 und 5).
2.
geplant“
”
Das subgoal ist bereit zur Ausführung und wird nach Maßgabe des Schedulers
einem Thread zugewiesen (subgoals zu Ergebnistupel 7).
3. arbeitet“
”
Das subgoal wird ausgeführt (subgoals zu Ergebnistupel 4 und 6).
Ein Thread ändert seinen Zustand immer von wartet“ über geplant“ zu arbeitet“.
”
”
”
Um Blockierungen von einem nicht beendeten Thread zu vermeiden, werden arbeitende
Threads nach einem time out“-Kriterium abgebrochen. Nach einer bestimmten Anzahl
”
von erfolglosen Wiederholungen eines subgoals wird ein Fehlerresultat erzeugt, so daß
nur ein Tupel ungültig wird, aber die Anfrage nicht abgebrochen werden muß. Eine
Datenanfrage ist vollständig abgearbeitet, wenn Adapter A, d. h. der Startknoten im
Anfrageplan, keine ausstehenden subgoals mehr auszuführen hat und alle Zeilen komplett ausgeliefert werden konnten.
139
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
5.4 Adapter für den BioDataServer
Zur Umsetzung der zur Abarbeitung von Anfrageplänen notwendigen subgoals (vergleiche hierzu Abschnitt 4.3.2) wurden in der Systemarchitektur des BioDataServers
Adapterkomponenten vorgesehen. Diese setzen die Funktionalität der aus der Literatur
bekannten Wrapper im Kontext von Mediatorsystemen um. Gemäß den im Grundlagenkapitel eingeführten Mediator-Wrapper-Architekturen stellen Wrapper das Datenschema der gekapselten Datenquelle bereit, offerieren Funktionalität für Datenanfragen und
geben Informationen zu Datenquelleneigenschaften. Da der Mediator in JAVA implementiert wurde, wird zur homogenen Einbettung von Adaptern ein JAVA-Interface
definiert, das von allen Adaptern zu implementieren ist. Dieses Interface basiert auf
[143] und ist im Anhang B.2 enthalten. Dabei wurden einige der folgenden Konzepte,
insbesondere die Metadaten zu Datenquellen und der Abfrage aller ungebundenen subgoal-Attribute mit einem Adapteraufruf, aus Gründen einer zeitnahen Umsetzbarkeit
und Wartbarkeit nicht berücksichtigt. Durch die in JAVA gebotene Möglichkeit des
dynamischen Ladens von Klassenimplementierungen werden Adapter zur Laufzeit am
BioDataServer angemeldet.
Im Falle des BioDataServers sind speziell die subgoals und Methoden zum Zugriff auf
die Adapterschemata von den Adaptern zu implementieren. Ergänzend zum Adapterschema gehören auch weitergehende Informationen zu den jeweils gekapselten Datenquellen:
• Metadaten zur Datenquelle
– Name und IP-Adresse der Datenquelle
– Vertrauenswürdigkeit der Daten (subjektive Noten zwischen 1: sehr gut“
”
und 6: fragwürdig“)
”
– Herkunft der Daten (manuell gepflegte Experimentdaten, aus der Literatur
oder berechnet)
• Schnittstellentyp der Datenquelle
– lokales Dateisystem
– lokale API
– diverse Netzwerkprotokolle
– API für entfernten Zugriff
• Datenformat
– unstandardisiertes flat-file
– Datenaustauschformat, wie z. B. XML
– Datenpräsentationsformat, wie z. B. HTML
– von Dateien unabhängiges Datenformat, wie etwa beim DBMS
140
5.4 Adapter für den BioDataServer
• Version des Adapters
Diese Metadaten ermöglichen eine statische Klassifikation von Datenquellen gemäß
zu erwartender Zugriffskosten und können vom Mediator zur Priorisierung von subgoalAusführungen genutzt werden. In diesem Zusammenhang sind Informationen zum Datenformat, zur genutzten Schnittstelle und zu vorhandenen Indexen nützlich. Dadurch
und mittels anfragestatistikbasierter, dynamischer Anfragekostenabschätzungen wäre
es möglich, ein besseres Antwortverhalten für ein exploratives Arbeiten zu erreichen.
Wie eingangs diesen Kapitels erläutert, ist dies nicht der primäre Anwendungsfall des
BioDataServers und stellt vielmehr eine Möglichkeit für aufbauende Arbeiten dar. Weiterhin sind durch die vorgesehenen Datenqualitätsinformationen hinsichtlich der, vom
Nutzer gewünschten, Anforderungen an die Vertrauenswürdigkeit oder der Datenherkunft Möglichkeiten gegeben, je nach Anwendungsfall, etwa für statistische Analysen,
auf einem umfassenden Datenbestand oder explorativ auf weniger aber dafür qualitativ
hochwertigeren Daten zu arbeiten.
Basierend auf diesen Überlegungen und den im vorhergehenden Kapitel eingeführten
Datenstrukturen und Datenanfragekonzepten wurde ein Klassendiagramm konzipiert,
das in Abbildung 5.17 dargestellt ist.
Abbildung 5.17: UML-Klassendiagramm der Adapter
141
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Datenanfragen mittels Adapter
Die Ausführung der im Anfrageplan ausgeführten subgoals wird durch Adapter umgesetzt. Eine Datenquelle wird derart von einem Adapter gekapselt, so daß die auf dieser
Datenquelle definierten subgoals über eine homogene Funktionsschnittstelle vom Mediator ausgeführt werden können. Diese homogene Funktionsschnittstelle wird in Form
des bereits genannten JAVA-Interfaces realisiert. Die Ausführung von Adapteranfragen
geschieht wie folgt.
Dem auszuführenden subgoal liegen entweder kein oder ein gebundenes Adapterattribut und eine Menge von ungebundenen Adapterattributen zugrunde. Ein gebundenes
Attribut besitzt einen Wert, der für die Konstruktion der Datenanfrage notwendig ist.
Da die subgoals und somit die Datenanfragen auf den in Abschnitt 4.3.1 eingeführten
Basisoperationen aufbauen, wird ein vorhandenes gebundenes Attribut als Selektion
über den Datenbestand der Datenquelle aufgefaßt. Für den Fall, daß kein gebundenes
Attribut im auszuführenden subgoal existiert, werden alle Datentupel abgefragt.
Auf dieser Basis wird unter Nutzung vorhandener Schnittstellen der Datenquelle
eine entsprechende Anfrage generiert. Für einfache CGI-Schnittstellen kann das z. B.
folgende URL zur Abfrage alle Enzymattribute aus der KEGG-Datenbank sein:
http://kegg. ... .jp/dbget-bin/www_bget?enzyme:3.5.3.1
Hier wäre das Adapterattribut enzyme mit dem Wert 3.5.3.1“ gebunden. Ein weiteres
”
Beispiel ist die Abfrage aller Gene eines Stoffwechselweges unter Nutzung der SOAPSchnittstelle von KEGG (siehe Anhang A.9), wobei der Stoffwechselweg das gebundene
Attribut darstellt. Das Ziel der Ausführung der Datenanfragen ist die Ermittlung von
Werten für die ungebundenen Attribute eines subgoals.
Die Ausführung der Datenanfragen unter Nutzung der jeweiligen Schnittstelle kann
im Falle von Verfügbarkeitsproblemen der Datenquelle, insbesondere bei Netzwerkproblemen, wiederholt ausgeführt werden. Gerade bei umfangreichen Datenimportanfragen, wie etwa dem Abfragen eines gesamten Datenbestandes, können solche Probleme
auftreten. Kann eine Anfrage trotz Wiederholung nicht abgearbeitet werden oder treten
weitere schwerwiegende Fehler auf, so wird die gesamte Ausführung des subgoals mit
einem Fehler abgebrochen.
Zur Bindung der freien Attribute muß gemäß der Definition von subgoals eine Projektion auf den so abgefragten Daten vorgenommen werden. Kann diese Operation
nicht direkt von der Datenquellenschnittstelle durchgeführt werden, da keine DBMSFunktionalität vorliegt, muß vom Adapter eine Methode zur Datenextraktion für die
ungebundenen Attribute implementiert werden. So kann z. B. eine Datenanfrage in
einem flat-file resultieren, dessen Format bekannt ist. Anschließend kann auf dieser
Datenstruktur mit einem Parser eine Datenextraktion durchgeführt werden. Die Projektionsoperation ist in solchen Fällen also über Parser implementiert, was nicht selten
zu Fehlern führt, da sich z. B. das Format eines flat-files oder die lexikale Struktur der
Datenformatelemente ändern können.
Der gesamte Ablauf der Anfrageausführung ist im Aktivitätsdiagramm der Abbildung
5.18 dargestellt.
142
5.4 Adapter für den BioDataServer
Abbildung 5.18: UML-Aktivitätsdiagramm einer Adapterdatenanfrage
5.4.1 Angewandte Methoden zur Adaptererstellung
Die Verfügbarkeit von konkreten Adaptern ist eine existentielle Voraussetzung zur Anwendbarkeit des BioDataServer. Durch die einfach gehaltene Schnittstelle, die aus wenigen zu implementierenden Funktionen besteht und auf die explizite Beschränkung auf
rudimentäre Datenanfragefunktionalitäten in Form der vorgeschlagenen subgoals aufbaut, wurde auf die Möglichkeit einer ad-hoc Realisierung von Adaptern hingearbeitet.
Auf der Grundlage immer funktionsreicher werdender APIs zum Datenzugriff können
so mit überschaubarem“ Aufwand Adapter manuell implementiert werden, d. h. je
”
nach Erfahrungsstand des Softwareentwicklers konnten Adapterimplementierungen unter Nutzung von geeigneten APIs innerhalb von wenigen Tagen neu entwickelt werden.
Sind hingegen keine APIs für eine Datenquelle nutzbar, so zeigt die Erfahrung, daß für
die Adapterentwicklung einige Wochen veranschlagt werden müssen.
Aber auch generative Ansätze zur Erzeugung von Adapterimplementierungen sind
wegen der einfachen Adapterfunktionen nutzbar, da sich der zu erzeugende Kode im
wesentlichen auf die Datenextraktion beschränkt. Die Konstruktion von spezifischen
Datenquellenanfragen zur Ausführung von subgoals ist weniger aufwendig und kann
durch statisch vorgegebene Abbildungen, etwa auf CGI oder API-Funktionsaufrufe, erfolgen. Die weitaus aufwendigste Aufgabe ist die Ableitung bzw. Erstellung der Adapterschemata. Diese sind die Basis für die integrierten Nutzerschemata des BioDataServers und müssen die Attribute und Strukturen enthalten, die auch durch Datenanfragen
mit Werten belegt werden können. Auf der Basis existierender Arbeiten aus [100] und
mit dem Ziel der Anwendbarkeit für den implementierten Datenbankintegrationsdienst
werden in folgenden Unterabschnitten sowohl generative als auch manuelle Methoden
zur Implementierung dieser Adapterfunktionsgruppen vorgestellt. Die Anwendung weitergehender Ansätze, wie sie im Abschnitt 3.1.2 genannt worden, erscheint hinsichtlich
143
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
der bereits existierenden APIs zum Datenzugriff im Rahmen der vorliegenden Arbeit
als wenig nutzbringend.
Erstellung des Adapterschemas
Das von einem Adapter bereitzustellende Datenschema umfaßt Attribute, den Datentyp
und deren Gruppierung aufgrund funktionaler Abhängigkeiten zu Tabellen.
Die elementarste Dateneinheit ist somit das Attribut, was ein nicht weiter zerlegbares
Eigenschaftmerkmal eines Datenobjektes gemäß Definition 4.2 darstellt. Als Empfehlung für die Ableitung von Attributen aus Datenquellen soll hier auf die Einhaltung der
ersten Normalform, wie sie für das relationale Datenmodell definiert ist, hingewiesen
werden. Zwar ist dies keine notwendige Eigenschaft eines Adapterschemaattributes,
stellt aber eine wesentliche Voraussetzung zur Anwendbarkeit der über die Adapter
extrahierten Daten dar. Betrachtet man etwa den Extremfall eines nicht-atomaren, akkumulierten Attributes, das etwa alle Daten zu einem biologischen Objekt als Text
zusammenfaßt, so ist offensichtlich eine darauf aufbauende Modellbildung oder Datenanalyse nur eingeschränkt möglich.
Der Datentyp eines Attributes definiert die auf einem Attribut anwendbaren Operationen und ermöglicht weiterhin einfache, statische Konsistenzüberprüfungen. Im Adapterschema können Datentypen frei definiert werden, wobei eine Spezialisierungshierarchie von Datentypen in Abschnitt 4.2 vorgeschlagen wurde. Ausgehend vom allgemeinen Datentyp string können so diverse Datentypen definiert werden, wobei dazu die
Basisoperationen und Relationen im BioDataServer implementiert werden müssen. Der
BioDataServer unterstützt in der vorliegenden Implementierung daneben die Basisdatentypen integer, float und boolean. Die Ermittlung des Datentypes eines Attributes
geht einher mit der Ableitung der Attributsemantik, wozu in der Regel Expertenwissen
oder daraus abgeleitete Regeln notwendig sind.
Die Gruppierung der Attribute zu Tabellen ist das zu wählende Mittel, um Beziehungen zwischen den Attributen zu modellieren. Da ein Adapterschema nicht als Basis zur
physikalischen Datenorganisation dient, sondern vielmehr eine Sicht auf das Exportschema einer Datenquelle ist, können Attribute durchaus redundant in verschiedenen
Tabellen auftauchen, die jeweils verschiedene funktionale Aspekte ein und desselben
Datenobjektes modellieren. So kann etwa das Ausführen von teuren Verbundoperationen bei Datenanfragen vermieden oder verschiedene Nutzersichten auf das gleiche
Datenobjekt definiert werden.
Die Aufgabe der Ermittlung dieser drei Datenschemaelemente besteht nun darin,
vorhandene Datenschemata der Datenquelle mit vorhandenen Zugriffsmustern, d. h.
von der Datenquelle bereitgestellte Funktionen zur Umsetzung von subgoals, derart zu
kombinieren, daß alle Attribute eines Adapterschemas durch subgoals angefragt werden
können. Kommt ein im Adapterschema modelliertes Attribut in keinem subgoal vor,
so muß vom Adapter ein entsprechendes subgoal explizit implementiert werden. So
können etwa auch künstliche, z. B. berechnete Attribute, die in einer Datenquelle nicht
enthalten sind, vom Adapter angeboten werden. Die Berechnung dieser Attribute kann
durchaus von der jeweiligen Datenquelle explizit unterstützt werden. Das können z. B.
144
5.4 Adapter für den BioDataServer
komplexe Aggregat- und Statistikfunktionen eines DBMS oder API-Funktionen sein.
Im Gegensatz zu künstlichen Attributen können natürliche Attribute einer Datenquelle
in subgoals enthalten sein, müssen aber nicht in das Adapterschema aufgenommen
werden.
Im einfachsten Fall kann ein explizit vorhandenes Datenschema einer Datenquelle,
das Exportschema, als Adapterschema übernommen werden. Das kann z. B. bei einem
direkten Zugriff auf ein DBMS erfolgen, wobei das Datenschema aus dem Datenbankkatalog abgefragt werden kann und zu jedem Attribut eine Zugriffsfunktion, z. B. in
Form von SQL, besteht. Der Aufwand zur Kapselung eines solchen Datenquellentyps
durch einen Adapter ist somit gering.
Beim Vorhandensein von API-Funktionen zum Zugriff auf Attributwerte einer Datenquelle, z. B. mittels BioJava, können diese Attribute direkt in ein Adapterschema
aufgenommen werden. Umfaßt die Datenquelle aber Attribute, die nicht über die API
angefragt werden können, so sind hierzu explizit vom Adapter zusätzlich entsprechende
subgoals zu implementieren. Das wiederum bedeutet einen hohen Entwicklungs- und
Wartungsaufwand für solche Adapter.
Im ungünstigsten Fall existiert keine API oder DBMS-Funktionalität für eine Datenquelle. Das ist z. B. bei flat-files der Fall, zu denen keine Parser existieren. Die Folge ist,
daß zum einen ein explizites Datenschema nicht vorhanden ist und somit ein Reengi”
neering“ durchgeführt werden muß. Wie bereits in Abschnitt 3.1.2 des Grundlagenkapitels erwähnt, befassen sich hiermit verschiedene Forschungsprojekte, die automatische
und semi-automatische Methoden zur Datenschemableitung aus flat-files vorschlagen.
Diese können bezüglich der Extraktion von Attributen angewandt werden. Zur Ableitung von Tabellen als funktionale Gruppierung ist Expertenwissen zu den funktionalen
Beziehungen und der Attributsemantik notwendig. Es kann also gefolgert werden, daß
eine vollständige Automatisierung einer Adapterschemaableitung aus flat-files ohne explizit vorhandene Strukturbeschreibung nicht möglich ist. Desweiteren sind für den, in
diesem Absatz beschriebenen Typ von Datenquellen alle subgoals durch den Adapter
zu implementieren, sobald sie aus dem zugrundeliegenden flat-file-Attributen abgeleitet
worden sind. Intuitiv kann dies über Parser in Kombination mit einer Indizierung des
flat-files umgesetzt werden. Diese Methode findet z. B. beim im Abschnitt 3.2.3 vorgestellten Sequence Retrieval System“ (SRS) Anwendung. Dabei ist zu erkennen, daß
”
der Aufwand der Parserimplementierung und -pflege gerade bei den sich evolutionär
entwickelnden Dateiformaten erheblich ist.
Zusammenfassend werden in Tabelle 5.4.1 die Arten der Adapterschemamodellierung in Bezug zu den Kosten einer Schemableitung und zur Anfragemächtigkeit einer
durch einen Adapter zu kapselnden Datenquelle klassifiziert. Zur weiteren Veranschaulichung ist ein aus der KEGG-Datenbank abgeleitetes Adapterschema im Anhang B.4
enthalten. Mögliche, dazu passende subgoal-Implementierungen wurden in Beispiel 4.13
vorgestellt.
145
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
Adapterschemamodellierung
Kosten der
Schemaableitung
DBMS API flat-file
atomare Attribute
gering
mittel hoch
künstliche Attribute
gering
hoch
hoch
kein
hoch
kein
kein
kein
gering
gering
akkumulierte
Attribute
subgoalImplementierungskosten
Datenquelle Adapter
gering
hoch
hoch
gering
Tabelle 5.2: Kostenklassifikation der Adapterschemaerstellung
Datenextraktion
Zur Zuweisung von Attributwerten zu den im Adapterschema modellierten Attributen
ist die Extraktion von Daten aus den zugrundeliegenden Datenquellen notwendig. In
diesem Schritt werden aus den Ergebnissen einer Datenanfrageausführung die Attributwerte extrahiert. Ähnlich der subgoal-Implementierung für die Datenanfrage zu einem
Adapterschemaattribut bestimmt der Typ der Datenquelle die Methode der Datenextraktion. Durch die Adapter ist entsprechend der verfügbaren Schnittstelle entweder ein
direkter Zugriff auf die Attributwerte eines Anfrageresultates oder eine nachträgliche
Datenextraktion aus dem Anfrageergebnis, z. B. aus einem flat-file, umzusetzen. Für
Datenquellen, die über eine JDBC-Schnittstelle verfügen, kann der Adapter automatisch generiert werden. Dagegen ist bei proprietären APIs oder bei nicht selbstbeschreibenden flat-files der Adapter manuell zu entwickeln. Eine weitere Möglichkeit bilden in
XML-formatierte flat-files, die über eine DTD oder ein XML-Schema verfügen. Auch
hier wäre eine automatische Adaptergenerierung möglich. Bei den zur Zeit verfügbaren
Adaptern des BioDataServers wurden bislang drei Adaptertypen unterschieden:
1. JDBC-basiert
2. Parser-basiert
3. Manuell
In der Klasse der JDBC-Adapter wird, ausgehend von einer existierenden JDBCSchnittstelle, der Adapter automatisch generiert. Grundlage hierzu bilden Arbeiten aus
[100]. Es werden bei diesem Ansatz allein die Datenbankverbindungsparameter, die
Datenquelleninformationen, wie der Adaptername etc. und ein zuvor erstelltes Adapterschema einem Adaptergenerierungswerkzeug bereitgestellt. Dieses Werkzeug erzeugt
aus diesen Parametern JAVA-Kode, der das definierte Adapter-JAVA-Interface aus Anhang B.2 implementiert.
Adapter, die flat-files aus Datenquellen abfragen, müssen diese parsen, um Attributwerte zu extrahieren. Hier kommt ein semi-automatischer Ansatz, ebenfalls aus [100],
146
5.4 Adapter für den BioDataServer
zum Einsatz. Basierend auf einer vom Adapterentwickler zu spezifizierenden Grammatik und einem zuvor erstellten Adapterschema wird mittels des Parsergenerators
JAVACC [99] ein Parser für alle zu extrahierenden Attributwerte generiert. Dieser
wird automatisch mit zusätzlichem JAVA-Kode angereichert, um das Adapter-JAVAInterface zu implementieren. Die Spezifikation der JAVACC-Grammatik stellt hierbei
die Hauptkosten der Adapterentwicklung dar. Im Anhang B.6 sind Auszüge von JAVACC-Grammatiken und das dazu manuell erstellte Adapterschema dargestellt. Im
Anhang sind drei Dateien wiedergegeben, die als Eingabe für den Adaptergenerator
zur Erzeugung des KEGG-Adapters dienen, der subgoals zur Anfrage von Enzymdaten umsetzt. Der KEGG-Adapter soll mehrere subgoals implementieren: eines ermittelt
alle Enzymnummern: HKEGG,1 ( ; ec nr), die anderen ermitteln zu einer gegebenen Enzymnummer jeweils die Werte zu einem Attribut aus KEGG. Das kann etwa subgoal
HKEGG,2 (ec nr; name) sein. Bei der ersten Datei handelt es sich um eine Datenquellenbeschreibungsdatei, die neben Datenquellen beschreibende Elemente, die Zugriffspfade
zu der Datenquellenschnittstelle und das Adapterschema in einer proprietären Syntax spezifiziert. Allen subgoals des Adapters liegen zwei URLs zugrunde, die als CGISchnittstelle zur Middleware von KEGG dienen. Die erste URL ( keysurl“) dient
”
dem Zugriff auf alle Enzymnummern und implementiert damit HKEGG,1 . Auf Basis der
zweiten URL ( url“) werden alle weiteren subgoals umgesetzt, da hier alle Attribute
”
des KEGG-Adapters zum Eingabeattribut ec nr abgefragt werden können. Im Anschluß an das Adapterschema, am Ende dieser Beschreibungsdatei, sind Verweise auf
die Dateien, welche die Grammatiken zum Parsen und somit zur Datenextraktion der
einzelnen Attribute enthalten: datagramma und keygramma. Weitere Erläuterungen
zur Methode der kurz skizzierten Adaptergenerierung sind in [100] nachzulesen.
Alle Adapterimplementierungen sind manuell vorzunehmen und nutzen vorhandene
APIs oder andere in Abschnitt 3.1.2 vorgestelle Schnittstellen. Da hierbei alle Änderungen direkt im JAVA-Kode vorgenommen werden müssen, ist dieser Adaptertyp
mit hohen Wartungskosten verbunden. Im Vergleich zur Erstellung einer Grammatik
für den Parser-basierten Adaptertyp ist die Entwicklungszeit durchaus geringer. Eine
Vorlage zur manuellen Adapterimplementierung ist im SourceForge-CVS-Verzeichnis
des BioDataServers verfügbar:
cvs/biodataserver/BDS/mediator/adapter/Test.java
Aus den hier vorgestellten Methoden zur Adaptererstellung resultieren ca. 25, sich
bezüglich der so an den BioDataServer angekoppelten Datenquellen überschneidenden
Adapter, die als Teil des BioDataServers SourceForge-Projekt unter der URL
http://sourceforge.net/projects/biodataserver
verfügbar sind.
147
Kapitel 5 Datenbankintegrationssystem BioDataServer (BDS)
5.5 Resümee
Zur Umsetzung der im Kapitel 4 erarbeiteten Konzepte zur Datenbankintegration in
der Molekularbiologie wurden in diesem Kapitel die Systemarchitektur, Spezifikationen und Implementierungsaspekte des Datenbankintegrationssystems BioDataServer
(BDS) vorgestellt. Da in der Bioinformatik die Fusion von Daten und Methoden, d. h.
die Informationsgewinnung durch die Analyse integrierter Datenbanken durch Bioinformatikalgorithmen, eine entscheidende Rolle einnimmt, wurde zu Beginn des Kapitels
eine entsprechend fokussierte Anforderungsanalyse eines Datenbankintegrationssystems
durchgeführt. In der resultierenden Systemarchitektur wurde der BDS als Importkomponente eingesetzt, kann aber auch als eigenständiger Mediator in einer Client-ServerArchitektur genutzt werden.
Die Spezifikation des Mediators erfolgte im zweiten Teil des Kapitels. Neben Klassendiagrammen und Syntaxbeschreibungen der Datenschemata als Kernkomponente des
Mediators zur Schemaintegration stand die Spezifikation der BDS-Schnittstelle im Vordergrund. Insbesondere das TCP/IP-basierte Protokoll, die Kommandosprache und die
Implementierung des SQL-Dialektes des BDS wurden detailliert mittels entsprechender
UML-Diagramme als Voraussetzung zur Implementierung von Anwendungen auf dem
BDS dokumentiert.
Die Implementierung des BDS erfolgte als Open Source“-Projekt und ist im Source”
Forge-Projekt verfügbar. Einige ausgewählte Implementierungsaspekte wurden im dritten Teil des Kapitels vorgestellt. Dabei wurden sowohl die Organisation des Quellkodes
als auch ausgewählte Implementierungen vorgestellt. Dazu zählten die Erläuterung der
parallelisierten Ausführung von Anfrageplänen, der Auflösung von SQL-Anfragen und
der Umsetzung von Verbundoperationen.
Das Kapitel schloss mit einem Überblick zur Erstellung von Adaptern, welche die
vom BDS zu nutzenden Datenquellen kapseln, um subgoals und ein Adapterschema bereitzustellen. Dazu konnte zum großen Teil auf bestehende Arbeiten verwiesen werden.
Neben der Klassifikation von Ansätzen zur Generierung bzw. zur manuellen Erstellung
von Adaptern wurde die Modellierung von Klassen- und Aktivitätsdiagrammen als
Spezifikation des von Adaptern zu implementierenden JAVA-Interfaces und der Ausführungsreihenfolge von Adapteranfragen dokumentiert. Abschließend wurden aus der
Erfahrung des Autors resultierende Abschätzungen und Empfehlungen zu Kosten und
der Praktikabilität von Techniken der Adapterimplementierung angegeben.
148
Kapitel 6
Anwendungen des Integrationsdienstes
Aus dem zuvor erarbeiteten Konzept einer Datenbankintegration für molekularbiologische Datenquellen mit beschränkten Zugriffsmustern und der Umsetzung in Form
des Mediator-Wrapper-Datenbankintegrationsdienstes BioDataServer (BDS) entstanden Applikationen, welche die Anwendbarkeit des in dieser Arbeit vorgeschlagenen Ansatzes zur Datenbankintegration demonstrieren. Weiterhin werden Forschungsergebnisse aus dem Bereich der funktionalen Genetik vorgestellt, die in einem hohen Maße von
der Existenz von Datenbankintegrationssystemen, wie dem BioDataServer, abhängen.
Als Importwerkzeug betrachtet, ist ein Szenario von flexiblen Data Warehouses umsetzbar, so wie es in Form des DBOra“-Systems demonstriert wurde [145]. Dazu wurde
”
ein Datenbankkopierwerkzeug Debbie“ entwickelt, das verschiedene JDBC-zugängliche
”
Datenbanken, unter besonderer Beachtung des BioDataServer, in Ziel-DBMS kopiert.
Somit kann Debbie insbesondere als Datenladewerkzeug für Data Warehouses genutzt
werden.
Als autonomer Mediator betrachtet, wird Bioinformatikanwendungen die Möglichkeit geboten, gemäß individueller Anforderungen auf nicht materialisierte, integrierte
Datenquellen zuzugreifen. Als Beispiel hierzu werden
• das Informationssystem CR-EST“ [49] zu Pflanzen-ESTs,
”
• ein Informationssystem zu metabolischen Krankheiten und Patienten ( RAME”
DIS“) [146],
• ein Softwaresystem zur klinischen Analyse von Genotyp-Phänotyp-Korrelation
[147] und
• das Bioinformatikwerkzeug METATOOL“ [148] zur Analyse metabolischer Netze
”
mit integrierten molekularbiologischen Daten versorgt.
Darüber hinaus ermöglicht der als eigenständig, über das Internet erreichbare Dienst
mit der zugehörigen JDBC- und ODBC-API eine nahtlose Einbindung in Datenbankintegrationssysteme verschiedener Projekte, wie etwa
• das Projekt zur Modellierung und Animation regulatorischer Genwirknetze
( MARGBench“) [149],
”
• dem objektorientierten System zur Modellierung, Integration und Analyse genkontrollierter metabolischer Netzwerke ( iUDB“) [138, 139] oder
”
149
Kapitel 6 Anwendungen des Integrationsdienstes
• dem semantischen Datenbankintegrationssystem SEMEDA“ [61, 51].
”
Insbesondere die Projektanforderungen des MARGBench-Projektes waren für die
Entwicklung des BioDataServers richtungsweisend. Vom damaligen Prototypen, zu dem
unter der URL
http://www.genophen.de
einige Demonstrationsanwendungen verfügbar sind, wurde die heutige Gesamtarchitektur und Implementierung abgeleitet. In den folgenden Abschnitten werden diese
Anwendungen des BioDataServer vorgestellt.
6.1 Datenimportwerkzeug Debbie
Der Export oder der Import von Daten aus bzw. in verschiedene DBMS zum Zwecke
ihrer Analyse oder Integration mit weiteren Daten ist eine häufig anzutreffende Anwendung von DBMS in der Bioinformatik. Beispiele sind die verschiedenen flat-files, die aus
DBMS exportiert werden, um als Eingabe für dateibasierte Analysewerkzeuge zu dienen. Ein prominentes Beispiel hierzu ist das FASTA-Format für das BLAST-Werkzeug
zur Berechnung lokaler Alignments von Sequenzen [89]. Zur Erzeugung dieser Dateien werden verschiedene, proprietäre Funktionen angewandt, die von SQL-Skripten für
DBMS bis zu API-Funktionsaufrufen, wie z. B. in BioJava, reichen.
Ein weiteres Ziel der Datenimporte sind in vielen Fällen relationale DBMS. So werden
spezielle Data Warehouses aufgebaut, die für bestimmte Anwendungsfälle entwickelt
wurden. Beispiele sind etwa COLUMBA [150], eine integrierte relationale Datenbank
zur Analyse von Proteinfunktionen, GeneKeyDB [151], die relational integrierte Daten zu Genen zur Unterstützung von Data Mining enthält, oder Atlas [152], ein Data Warehouse für integrative Bioinformatik. Diese Systeme basieren auf relationalen
DBMS. Zum Zweck des Datenimportes wurden proprietäre Skripte eingesetzt. Im Falle
kommerzieller DBMS existieren zu Datenimportzwecken vorgefertigte, auf das jeweilige DBMS zugeschnittene Lösungen. Ein guter Überblick zu kommerziellen und frei
verfügbaren Datenimportwerkzeugen inklusive deren Bewertung ist in [142] zu finden.
Um ein allgemein anwendbares Werkzeug für den Datentransfer zwischen relationalen DBMS unter Einbeziehung des BioDataServers als Importquelle zur Verfügung zu
stellen, wurde das Datenimportwerkzeug Debbie“ im Rahmen einer Praktikumsarbeit
”
umgesetzt. Um eine breite Anwendbarkeit zu gewährleisten, ist Debbie plattformunabhängig in JAVA implementiert. Es können diejenigen DBMS über Debbie zum Datenimport und -export genutzt werden, die einen JDBC-Treiber zur Verfügung stellen. Zu
jedem so zu nutzenden DBMS muß ein Plugin implementiert werden, das die Datenbankoperationen zum Anlegen und Löschen von Tabellen, die Konvertierung von DBMSspezifischen Datentypen sowie den Datentransfer übernimmt. Zur Zeit existieren diese
Plugins für ORACLE, PostgreSQL, MySQL sowie für den BioDataServer.
Debbie unterstützt einen interaktiven und einen Batch-Modus. Im interaktiven Modus werden die zu kopierenden Tabellen und Attribute ausgewählt und das Ziel-DBMS
spezifiziert. Das resultiert in einem sogenannten Transfer-Job, der entweder in der GUI
150
6.2 Datenbankbrowser- und Explorationswerkzeug DBOra
oder in der Kommandozeile als Stapelverarbeitungsprozeß gestartet werden kann. In
diesem Fall kann Debbie mit vorher spezifizierten Jobs zyklisch ausgeführt werden,
um etwa wöchentlich neue Daten in ein Ziel-DBMS zu importieren. Für einen Import
existieren zwei Modi:
Überschreiben
Hier werden im Zieldatenschema zu importierende Tabellen neu angelegt, wenn
diese noch nicht existieren. Falls bereits Tabellen existieren, werden diese zuvor
entfernt. Anschließend werden die Tupel in die Zieltabellen eingefügt.
Anhängen
Wird dieser Modus gewählt, so werden die zu importiernden Daten an bestehende
Tabellen angehängt. Ist dies aufgrund von Konsistenzbedingungen nicht möglich,
so wird das entsprechende Tupel ignoriert.
Die zum Anlegen von Tabellen im Zieldatenbankschema notwendigen DDL-Operationen beschränken sich auf das Übertragen von Tabellendefinitionen inklusive Attributen
und notwendigen Typkonvertierungen. Integritätsregeln, wie etwa Fremdschlüssel, werden nicht berücksichtigt. Es können so entweder 1:1 die Tabellendefinitionen in das
Zielschema übertragen werden oder Umbenennungen der Tabellen oder Attribute festgelegt werden.
Darüber hinaus bietet Debbie die Möglichkeit, verschiedene Parameter für den Datentransfer zu setzen:
• Anzahl gleichzeitig zu transferierender Tupel ( fetchsize“)
”
• Puffergröße für Binary Large Objects (BLOB)
• Tunnelung und Verschlüsselung über das SSH-Protokoll
Diese Parameter und die genannten Regeln für die DDL-Operationen werden als Importskript für Debbie in einer XML-Datei pro Job zusammengefaßt.
Der Screenshot in Abbildung 6.1 zeigt die graphische Nutzeroberfläche des Werkzeuges. Eingesetzt wird Debbie u. a. für die im Abschnitt 6.2 beschriebene integrierte
Proteomics-Datenbank DBOra“ sowie für diverse interne Projekte am IPK Gatersle”
ben. Da das Werkzeug unter dem Schutz eines Betriebsgeheimnisses steht, ist es nicht
frei verfügbar.
6.2 DBOra: Das Browser- und Explorationswerkzeug
für materialisiert integrierte Datenbanken
Bei DBOra“ [145] handelt es sich um ein webbasiertes, graphisches Werkzeug zum
”
Suchen und Navigieren in Proteomicsdaten. Darüber hinaus werden transitive Beziehungen in den Daten berechnet, die sogenannten Data Linkage Graphs“ (DLG) [153]
”
bilden und als Basis für funktionale Klassifikationen von EST-Sequenzen dienen. Die
151
Kapitel 6 Anwendungen des Integrationsdienstes
Abbildung 6.1: Screenshot des Datenbankimportwerkzeugs Debbie
Grundlage bildet eine integrierte, relationale Datenbank, in der, mit Hilfe des BioDataServers und proprietärer Skripte, Daten aus öffentlichen Datenquellen importiert wurden. Die Technologieplattform bildet dabei ORACLE in Verbindung mit einem PHPInterpreter. DBOra enthält Protein-, Stoffwechselweg- und Krankheitsdaten aus öffentlichen Quellen (UniProt, OMIM, BRENDA, GeneOntology und KEGG). Mittels des
in Abschnitt 6.1 vorgestellten Werkzeuges Debbie werden in ein zuvor modelliertes Datenschema die Daten in die jeweiligen Tabellen importiert. Nach dem Import von ca. 5
GB 1 relevanten Daten aus den genannten Datenbanken verteilen sich ca. 16 ∗ 106 Tupel
auf 98 Tabellen. Die auf diese Weise strukturierten Daten aus dem Proteomicsbereich
sind die Grundlage für die zwei Funktionsmodule von DBOra: die manuelle, sukzessive Datenexploration und die automatische Datenbeziehungsexploration. Ziel war es,
eine vom Datenschema unabhängige Lösung zu schaffen, die als Framework für weitere
relationale, auf ORACLE-basierten Datenbanken dient. So ist es möglich, weitere Datenschemata zu konzipieren, diese mit öffentlichen oder privaten Daten zu belegen und
dann ad-hoc über die Funktionalität von DBOra dem Anwenderkreis zur Verfügung
zu stellen. Die entwickelten Softwaremodule wurden im Rahmen eines IPK-internen
Projektes entwickelt und stehen als Betriebsgeheimnis nicht frei zur Verfügung.
1
Stand November 2005
152
6.2 Datenbankbrowser- und Explorationswerkzeug DBOra
6.2.1 DBOra-Datenbrowser
Die Browserkomponente wurde als generische Web-Oberfläche zum Suchen und explorativen Navigieren im integrierten Datenbestand umgesetzt. Die Flexibilität dieser
Lösung beruht auf SQL-Skripten, welche die jeweilige integrierte Datenbank automatisch aufbereiten, was somit die Austauschbarkeit der zugrundeliegenden Datenbank
ohne Anpassung der Browserkomponente ermöglicht.
Zur Bereitstellung der HTML-Benutzeroberfläche wurde ein generisches PHP-Skript
implementiert, das auf die zuvor aufbereitete Datenbank aufsetzt. Die Relationen sind
über Fremdschlüssel untereinander verknüpft und durch Indexe so aufbereitet, daß eine
ähnlichkeitsbasierte Freitextsuche möglich ist. Ähnlichkeitsoptionen, wie Wortstamm, Phonetik- oder Wortnachbarschaftssuche, sind spezifizierbar. Anschließend ist eine
Navigation über die mit Fremdschlüsseln angedeuteten Beziehungen bzw. eine erneute Suche nach, zu dem aktuell angezeigten Datensatz ähnlichen, Datenbankeinträgen
möglich. Weiterhin wird durch die Ankopplung des BLAST-Werkzeuges [89] eine Homologiesuche über den in der Datenbank enthaltenen Aminosäurensequenzen bzw. Nukleotidsäurensequenzen ermöglicht. In der Abbildung 6.2 ist ein Screenshot der Suchoptionen der DBOra-Anwendung dargestellt. Neben der bereits integrierten Datenbank
Abbildung 6.2: Screenshot des DBOra-Datenbankbrowsers
ist es möglich, Projektdatenbanken automatisch so aufzubereiten, daß hier die zuvor
153
Kapitel 6 Anwendungen des Integrationsdienstes
beschriebenen Anwendungsfunktionen mittels dieser Web-Oberfläche dem Anwender
ad-hoc zur Verfügung stehen.
6.2.2 Berechnung von Data Linkage Graphs
Die in der Datenbank definierten Fremdschlüssel können neben ihrer eigentlichen Bedeutung für die Konsistenzerhaltung auch als Beziehungen zwischen Tabellen betrachtet
werden. So ist es möglich, neben der eigentlichen Beziehung von Attributen innerhalb
einer Tabelle, Attribute über Fremdschlüssel in Beziehung zu setzen. Da ein Attribut
der Datenbank über den Attributnamen A und den Tabellennamen T eindeutig identifiziert wird, kann so eine Menge S von Schlüssel- bzw. Fremdschlüsselattributen gebildet
werden: S = (T, A). Dabei ist A entweder ein Schlüssel- oder ein Fremdschlüsselattribut. Auf dieser Basis läßt sich diejenige Untermenge R ⊆ S × S aller möglichen
Beziehungen zwischen Schlüsseln definieren:
Rs
Rf
Rt
R
=
=
=
=
{(s, f ) | s, f ∈ S ∧ f ist Fremdschlüssel von s}
{(f, s) | f, s ∈ S ∧ s ist Primärschlüssel von f }
{(s1 , s2 ) | s1 , s2 ∈ S ∧ s1 .T = s2 .T }
Rs ∪ Rf ∪ Rt
Zieht man nun noch die Attributwerte hinzu, so ist es möglich, Paare von Attributwerten zu finden, die zueinander in Beziehung stehen. So wird das Paar S mit einem
Attributwert W zu einem Tripel SW erweitert. Die Konzepte der relationalen Algebra
nutzend, bestimmt sich der Attributwert W als ein Element der Domäne des Schlüsselattributes: SW = (T, A, W ) | W ∈ dom(T, A). Unter Nutzung der Operationen
der relationalen Algebra kann eine Relation ⇋ gebildet werden, die definiert, ob zwei
Attributwerte in Beziehung zueinander stehen:
sw1 ⇋ sw2 ↔ t1 = sw1 .T ∧ a1 = sw1 .A ∧ w1 = sw1 .W ∧
t = sw2 .T ∧ a2 = sw2 .A ∧ w2 = sw2 .W ∧
2
(Bed. 1)
(Bed. 2)
((t1 , a1 ), (t2 , a2 )) ∈ (Rs ∪ Rf ) ∧ πa1 (σa2 =w2 (t2 )) = πa2 (σa1 =w1 (t1 ))
∨
((t1 , a1 ), (t2 , a2 )) ∈ Rt ∧ σa1 =w1 (t1 ) = σa2 =w2 (t2 )
Umgangssprachlich ausgedrückt stehen zwei Attributwerte in Beziehung zueinander,
1. wenn sich die entsprechenden Attribute in einer Fremdschlüsselbeziehung zueinander befinden, also Element der Menge Rs oder Rf sind und die Attributwerte
in beiden Tabellen gleich sind oder
154
6.2 Datenbankbrowser- und Explorationswerkzeug DBOra
2. wenn sich die entsprechenden Attribute in ein und derselben Tabelle befinden,
also Element der Menge Rt sind und die Attributwerte in den gleichen Tupeln
(Zeilen) sind.
Auf der Grundlage der transitiven Anwendung dieser Relation ⇋ können Graphen
G = (SW, E) gebildet werden. Dabei sind die Knoten S die Attributwerte und E die
Kanten:
E = (sw1 , sw2 ) | sw1 , sw2 ∈ SW
Weiterhin muß folgende Bedingung gelten:
E ⊆ SW × SW ∧ ∀(sw1 , sw2 ) ∈ E : sw1 ⇋ sw2
In Abbildung 6.3 sind zwei Beispielgraphen dargestellt, die jeweils einen Pfad zwischen
einem Eintrag der EMBL-Datenbank, d. h. einer Nukleotidsequenz, und einem Eintrag
aus der KEGG-Datenbank, z. B. einem Stoffwechselweg, bilden. Im Beispiel werden
Abbildung 6.3: Beispiel von Data Linkage Graphs“ aus DBOra
”
die verschiedenen Attributbeziehungen deutlich. In der Tabelle ENZYME findet so die
Beziehung Rt und zwischen den anderen Tabellen finden die Beziehungen Rs und Rf
Anwendung. Die Tabelle ENZYME ist somit eine Koppeltabelle“, die etwa bei der Mo”
dellierung von m:n-Beziehungen eingesetzt werden kann.
Die Berechnung dieser Graphen bildet die Grundlage für die Bestimmung von transitiven Beziehungen zwischen Attributwerten in integrierten Datenbanken. Diese Funktionalität kann durch den relationalen Verbundoperator berechnet werden. Da die Berechnung eines solchen Verbundes über mehrere Tabellen, gerade im Falle des DBOraDatenbankschemas mit 98 Tabellen, aufgrund der Implementierung über Merge-Joins“
”
erhebliche Kosten an RAM-Speicher und CPU verursacht, wurde eine eigene Implementierung der Graphenberechnung in Form einer modifizierten Tiefensuche eingesetzt
[153].
Aus den berechneten Graphen können verschiedene Anwendungen abgeleitet werden, wie z. B. die Berechnung der transitiven Hülle eines Attributwertes, um indirekte
funktionale Beziehungen zwischen Daten in integrierten molekularbiologischen Datenbanken aufzudecken. Im Fall der DBOra-Datenbank ist es so möglich, Proteine und
155
Kapitel 6 Anwendungen des Integrationsdienstes
Gene mittels transitiver Beziehungen in den integrierten Datenbanken funktional zu
klassifizieren. So kann z. B. ein Gen transitiv einer enzymatischen Funktion zugeordnet
werden.
6.2.3 Funktionsklassifikationen mittels Data Linkage Graphs
Viele biologische Fragestellungen, insbesondere aus der Expressionsanalyse zu Genen,
beschäftigen sich mit der funktionalen Zuordnung von biologischen Makromolekülen
bzw. deren abstrakter Repräsentation, wie etwa EST’s. Über eine funktionale Annotation zu EST-Sequenzen, die mittels einer Sequenzhomologiesuche in öffentlichen Datenbanken, etwa durch das Werkzeug BLAST [89], durchgeführt werden kann, ist es z. B.
möglich, Schlüsselattribute und -werte zu ermitteln, die in DBOra vorhanden sind.
Mit Hilfe der vorberechneten Data Linkage Graphs können transitive Attributbeziehungen zu dem über BLAST gefundenen Attributwert bestimmt werden. So kann z. B.
ermittelt werden, ob zum gegebenen Attributwert, und damit zu einer EST-Sequenz,
Daten zu einer bestimmten Funktionsklasse, wie etwa Stoffwechselwege, in Beziehung
stehen. Dieser Klassifikationsprozeß ist beispielhaft in Abbildung 6.4 dargestellt. Hier
wird eine Sequenz über BLAST mit öffentlichen Sequenzdatenbanken verglichen. Aus
dem resultierenden Ergebnis werden die in der Abbildung markierten Schlüsselwerte
extrahiert und als Eingabe für eine Suche nach möglichen transitiven Beziehungen zu
Stoffwechselwegen genutzt.
Abbildung 6.4: Prozeß der metabolischen Klassifikation von EST-Sequenzen
Die dazu notwendige Anfrage auf die Data Linkage Graphs wird über relationale
Speicherung der Graphen und unter Nutzung von rekursiven SQL-Sprachkonstrukten
zur Abfrage von hierarchischen Tabellen umgesetzt. Der Vorteil einer relationalen Speicherung von Graphen besteht in der Möglichkeit, sehr gut skalierende DBMS-Implementierungen, wie z. B. ORACLE, zu nutzen, was für einfache Graphanfragen, wie
etwa einer Suche von transitiven Beziehungen, zu gutem Antwortverhalten, gerade bei
großen Datenmengen, führt. So konnten auf diese Weise die ca. 225.000 EST-Sequen-
156
6.3 Anwendung in der Medizinischen Informatik
zen und 44.500 Konsensussequenzen2 mit insgesamt 2.3 ∗ 106 BLAST-Resultaten der, in
Abschnitt 6.7 vorgestellten, EST-Datenbank in ca. 60 Minuten automatisch funktional
klassifiziert werden. Das geschah auf Basis der metabolischen Funktion aus KEGG [14]
sowie der Funktionsklassen aus der Gene Ontology [62].
Als nachteilig bei der Umsetzung von Graphanfragen auf der Basis des relationalen Datenmodells stellt sich das Fehlen von Pfadausdrücken heraus. So ist es durchaus
sinnvoll, nur bestimmte Pfade zur Ermittlung von transitiven Beziehungen zuzulassen,
die über bestimmte Knoten, d. h. Attribute, laufen, die vom jeweiligen Anwender als
vertauenswürdig eingestuft wurden. Für solche Fälle wird in [154] eine Kombination
aus relationalen und hierarchischen Anfragesprachen vorgeschlagen, um eine performante und funktionale DLG-Anfragebasis zum späteren Einsatz für ein Data Mining
auf integrierten molekularbiologischen Datenquellen bereitzustellen.
6.3 Anwendung in der Medizinischen Informatik
An den Universitäten Magdeburg und Bielefeld wird in Zusammenarbeit mit dem Kinderkrankenhaus Reutlingen ein System zur Erkennung von angeborenen Stoffwechseldefekten entwickelt [146, 147]. Mit Methoden des fallbasierten Schließens in Verbindung mit integrierten öffentlichen Datenbanken und einer, von der gleichen Gruppe
umgesetzten, Datenbank zu metabolischen Krankheiten und Patienten ( RAMEDIS“)
”
[155] wird ein Werkzeug implementiert, das im Rahmen des DHGP in der klinischen
Forschung eingesetzt werden soll. Mit den in der RAMEDIS-Datenbank gesammelten
Krankheitsfällen und den dazu gespeicherten Attributen, wie verschiedene Laborwerte,
Fallbeschreibungen, Diagnosen und Referenzen, wurde eine Wissensbasis für ein medizinisches Informationssystem zur Analyse von Stoffwechselerkrankungen geschaffen.
Die Analyse metabolischer Prozesse und die Genexpression als miteinander verbundene dynamische Netzwerke bildet den Grundansatz dieses Systems. Zur spezifischen
Anwendung der Algorithmen des fallbasierten Schließens auf integrierten Datenbanken
werden neben den Standarddatentypen, wie String, Integer etc., erweiterte Datentypen
eingeführt. Dazu gehören z. B. der Datentyp Biochemical Reaction. Diese Datentypen
werden mit einem Konzept abstrakter Datendomänen verbunden und bilden das Basiskonzept einer Genotyp-Phänotyp-Analyse. Ausgehend von vorhandenen Datenbanken
werden ausgewählte Datensätze unter der Nutzung des BioDataServers gemäß eines
vorgegebenen Datenschemas integriert und in eine relationale Datenbank importiert.
Auf den so fusionierten Daten werden Algorithmen des fallbasierten Schließens angewandt, die über eine Web-basierte Nutzerschnittstelle initiiert werden können. Die
graphische Darstellung der Ergebnisse erfolgt ebenfalls durch diese Oberfläche. Diese
Vorgehensweise ist in Abbildung 6.5 veranschaulicht.
2
Hierbei handelt es sich um ein Repräsentationsmittel, um das Resultat multibler (EST-)Sequenzalignements darzustellen. Auf diese Weise können ähnliche Sequenzen zu einer Gesamt- bzw. Konsensussequenz vereinigt werden.
157
Kapitel 6 Anwendungen des Integrationsdienstes
Existierende
Analysewerkzeuge
Nutzer
Genotyp-PhänotypAnalyse
Domänendatenverwaltung
Lokale
Speicherung
Replikationssteuerung
Datenintegration
Integrierte Analyseumgebung
Datenquellen
Abbildung 6.5: Systemarchitektur des Genotyp-Phänotyp-Analysesystems aus [147]
Die dargestellte Systemarchitektur stellt verschiedene DBMS-Standardschnittstellen
für Endanwender und für Analysewerkzeuge bereit. Die Teilkomponenten der Architektur werden im folgenden kurz vorgestellt.
Datenintegration
Ausgehend von der anwendungsbezogenen Analyse der verbreiteten medizinischen
und molekularbiologischen Datenbanken wurde eine Menge dieser Systeme zur
Integration ausgewählt. Dazu gehören die Datenbanken BRENDA, TRANSFAC,
TRANSPATH, OMIM, SwissProt und EMBL. Zur Integration von ausgewählten
Ausschnitten dieser Datenbanken wurde der BioDataServer herangezogen.
Lokale Speicherung
Die materialisierte Speicherung der integrierten Datenbanken ist die Voraussetzung zur Anwendung der Analysemethoden des Genotyp-Phänotyp-Analysesystems. Hierzu werden die, durch die Integrationskomponente gewonnen, Daten in
ein ORACLE-DBMS repliziert.
158
6.3 Anwendung in der Medizinischen Informatik
Replikationssteuerung
Die zur Replikation notwendigen Methoden sind Bestandteil dieser Komponente.
Hier wurden Mechanismen zur Steuerung eines zyklischen Datenimports über die
Datenintegrationskomponente implementiert.
Domänendatenverwaltung
Die Teilkomponente Domänendatenverwaltung innerhalb der Integrierten Analyseumgebung ermöglicht es dem Nutzer, individuelle Anforderungen an den Inhalt
und die Präsentation des integrierten Datenbestandes zu definieren. Außerdem
bildet sie die Grundlage für eine Untersuchung von Genotyp-Phänotyp-Korrelationen in der Teilkomponente Genotyp-Phänotyp-Analyse und stellt für diese
Aufgabe zusätzlich benötigte semantische Daten über den integrierten Datenbestand bereit. Dazu werden verschiedene nutzerspezifische Datendomänen in Form
von Sichten angelegt. Bestandteil einer solchen Sicht sind die Definition verschiedener Attribute für Suchoperationen und die Festlegung der Repräsentation über
die graphische Nutzerschnittstelle. Die Beziehungen zwischen Sichten werden außerdem durch abstrakte Konzepte, wie Generalisierung oder Spezialisierung, beschrieben.
Genotyp-Phänotyp-Analyse
Ziel dieser Teilkomponente ist die Bereitstellung von Methoden zur Unterstützung des Nutzers bei der Suche und Verwaltung von Zusammenhängen auf Basis
einer Genotyp-Phänotyp-Korrelation innerhalb des integrierten Datenbestandes.
Dabei werden dem Anwender über eine graphische Nutzerschnittstelle geeignete
Werkzeuge bereitgestellt, die eine Navigation innerhalb und zwischen den Informationsdomänen erlauben.
Die als Prototyp implementierte und in Abbildung 6.6 als Screenshot dargestellte
Web-Anwendung dieses Systems bildet die zentrale Schnittstelle zur Pflege und Eingabe
von Krankheitsfällen sowie deren Analyse mittels Methoden des fallbasierten Schließens.
Dabei sind die folgenden GUI-Ausschnitte des Prototypen dargestellt:
(a) Anfragemaske mit vordefinierten Informationsdomänen
(b) Beispiel eines vom Nutzer ausgewählten Pfades vom Genotyp (Sequenz) zum
Phänotyp (Patient)
(c) Darstellung von Datensätzen der Originalrelation in Tabellenform
(d) Auswahlmöglichkeit zwischen verschiedenen Fremdschlüsselbeziehungen innerhalb des integrierten Datenbestandes ausgehend von einem bestimmten Attribut
Das vorgestellte System wird momentan in der Arbeitsgruppe Bioinformatik/Medizinische Informatik der Universität Bielefeld in Zusammenarbeit mit dem Kinderkrankenhaus Reutlingen weiterentwickelt und stellt dort eine zentrale Ressource bei
der Erforschung von Stoffwechselkrankheiten dar.
159
Kapitel 6 Anwendungen des Integrationsdienstes
a
b
d
c
Abbildung 6.6: Screenshots der webbasierten graphischen Nutzerschnittstelle des Genotyp-Phänotyp-Analysesystems aus [147]
6.4 Integrationsdatenbanken für Genwirknetze (iUDB)
In [138, 139] wurde ein Softwaresystem namens iUDB“ vorgestellt, das mit dem Ziel
”
entwickelt wurde, komplexe biologische Systeme zu modellieren und zu analysieren.
Der Einsatz von objektorientierten Konzepten zur Abbildung von Netzwerken biologischer Entitäten und deren Beziehung und Interaktionen stellt ein Schlüsselkonzept
bei diesem Ansatz dar. So wird für den Aufbau dieser biologischen Netzwerke eine Abbildung auf Objektnetzwerke vorgenommen. Diese Abbildung geschieht mit Hilfe von,
in öffentlichen Datenquellen verfügbaren und über JDBC-Datenquellen bzw. über den
BioDataServer importierte, Daten. Dazu wurden Methoden zur relational-objektorientierten Abbildung dieser relationalen Daten in ein objektorientiertes DBMS implementiert. Nach diesem Datenimport werden auf Grundlage von in IDL-Dateien spezifizierten Klassenstrukturen automatisch Objektnetzwerke aufgebaut. Auf diese Weise ist es
weiterhin möglich, nutzerspezifische Netzwerke zu modellieren und diese als verschiedene Projekte zu verwalten. Durch eine, für jedes Projekt automatisch erzeugte und
für Client-Anwendungen bereitgestellte, CORBA-Schnittstelle besteht die Möglichkeit,
160
6.5 Semantische Metadatenbank (SEMEDA)
plattform- und programmiersprachenunabhängig auf die objektorientierten Netzwerke
zuzugreifen. Die Systemkomponenten des iUDB-Systems sind in Abbildung 6.7 dargestellt.
Abbildung 6.7: Systemkomponenten des iUDB-Systems aus [156]
Der anwendungsbezogene Fokus des iUDB-Systems liegt auf der Simulation und
strukturellen Analyse von Pathwaydaten. Insbesondere Stoffwechsel- und Signalwege
innerhalb geschlossener Systeme, wie z. B. einer Zelle, wurden modelliert. Die vom
iUDB-System bereitgestellten Methoden zur Analyse und Simulation von Objektnetzwerken sind teils über die CORBA-API und teils über eine GUI zugänglich. Gerade die
komplexen Möglichkeiten, die etwa der Einsatz von OQL auf objektorientierten DBMS
bietet, unterstützt ein exploratives Arbeiten mit den biologischen Netzwerken. Darüber
hinaus ist eine Kernfunktionalität die diskrete Simulation von Stoffwechselprozessen auf
Grundlage von Regeln, die teilweise automatisch aus den Objektnetzwerken abgeleitet
werden. Eine Regel v besteht dabei aus Eingabeobjekten IN , Ausgabeobjekten OU T ,
Einflüssen IN F und Lokalitätsobjekten LOC: v = (IN, OU T, IN F, LOC). Durch die
Simulation von Regelnetzwerken können so z. B. Vorhersagen über das Verhalten von
Stoffwechselwegen unter bestimmten externen Einflüssen, wie z. B. das Ausschalten von
Genen oder eine Konzentrationserhöhung von externen Metaboliten, gemacht werden.
Zur Veranschaulichung der komplexen Funktionalität der iUDB-GUI ist in Abbildung
6.8 ein Screenshot des Netzwerkdesigners dargestellt. Das iUDB-System wurde in der
Programmiersprache JAVA unter Nutzung des objektorientierten DBMS Versant Ob”
ject Database“ implementiert und ist unter folgender URL verfügbar:
http://tunicata.techfak.uni-bielefeld.de
6.5 Semantische Metadatenbank (SEMEDA)
Die semantische Metadatenbank (SEMEDA) [61, 51] ist ein Softwaresystem zur semantischen Unterstützung einer Datenbankintegration in der Bioinformatik. Insbesondere
161
Kapitel 6 Anwendungen des Integrationsdienstes
Abbildung 6.8: Screenshot des iUDB-Network-Designers aus [156]
bei der Integration von Datenschemata, einer Voraussetzung zur Datenbankintegration, existieren Konflikte, wie sie in Abschnitt 2.3.4 eingeführt wurden. Im Mittelpunkt
von SEMEDA stehen die Überwindung einiger wesentlicher Aspekte von Datenschemakonflikten sowie Aspekte der semantischen Anfrageformulierung. Die Schemata, mit
denen SEMEDA arbeitet, sind die Adapterschemata des BioDataServer. So wurde mit
dem BioDataServer als Datenbankintegrationsdienst ein Softwaresystem konzipiert, das
mittels Ontologien über ein einheitliches Vokabular von Attribut- und Tabellenbezeichenungen die folgenden Probleme bei der Datenbankintegration löst. Dabei ist ein
kontrolliertes Vokabular CV eine Menge von Konzepten c, die vereinfacht ein Tupel
aus einem Term t und dessen natürlichsprachliche Definition d sind: CV = {c} und
c = (t, d). Eine Ontologie wird dabei als ein azyklischer Graph über alle c definiert,
wobei die Kanten zwischen den Konzepten den Typ einer Spezialisierungsbeziehung
( is-a“) haben.
”
Die Auflösung von Homonymen und Synonymen über alle Adapterschemata erfolgt
für Attribute und Tabellen über deren Abbildung auf Konzepte. Es werden also alle
Attribute und Tabellen des Adapterschemas auf Konzepte abgebildet. Werden so mehrere Attribute auf ein Konzept abgebildet, so handelt es sich um Synonyme. Weil jedes
162
6.6 Web-Anwendung zur Analyse von Stoffwechselwegen (phpMetatool)
Konzept eindeutig definiert ist, wird somit auch die Semantik des Schemaelementes
bestimmt. Mit der Nutzung dieses Konzeptes wird es auch möglich, Attribute verschiedener Adapterschemata semantisch als sogenannte cross-references“ aufeinander
”
abzubilden, was eine Voraussetzung einer semantischen Datenschemaintegration ist.
Die Ontologie als Graphstruktur wird zur Anfragegenerierung eingesetzt. Durch die
gebildete Spezialisierungshierarchie wird dem Anwender die Möglichkeit gegeben, ohne die Kenntnis der Adapterschemata und deren Interpretation, ad-hoc Datenanfragen
über, mit dem BioDataServer integrierte, Datenbanken zu stellen. Durch den in SEMEDA integrierten Ontologiebrowser kann ein Anwender interessierende Konzepte, also
Attributsemantiken, auswählen, die wie erläutert auf Adapterschemaattribute abgebildet sind. So werden alle die Attribute ausgewählt, die für die Anfrage integriert werden
müssen. Weiterhin wird ein IUS-Datenschema erzeugt, worüber eine ebenfalls automatisch generierte SQL-Anfrage ausgeführt wird. Auf diese Weise wird ein exploratives
Arbeiten unterstützt und eine semantische SQL-Anfrageerzeugung realisiert.
SEMEDA wurde als Web-Anwendung unter Nutzung der Java-Server-Page-Technologie (JSP) entwickelt und ist unter folgender URL verfügbar:
http://www-bm.ipk-gatersleben.de/semeda
JDBC-Treiber dienen als einheitliche Anfrageschnittstelle zu den einzelnen zu integrierenden Datenquellen, inklusive des BioDataServer. Die Anwendung gliedert sich in den
Ontologiebrowser, in das Administratorwerkzeug und in die Komponente zur semantischen Datenanfrageformulierung. In Abbildung 6.9 ist ein Screenshot des Administratorwerkzeuges zur IUS-Schemagenerierung abgebildet.
6.6 Web-Anwendung zur Analyse von
Stoffwechselwegen (phpMetatool)
Aus Forschungsarbeiten auf dem Gebiet der Rekonstruktion und Analyse von Stoffwechselwegen entstand das Werkzeug METATOOL“ [148, 157]. METATOOL ist eine
”
Software zur Analyse und Vorhersage metabolischer Stoffwechselwege. Es berechnet aus
elementaren chemischen Reaktionsketten zusammenhängende Stoffwechselwege. Diejenigen elementaren Reaktionsketten, welche nicht weiter zerlegt werden können, werden
als Elementarmodi bezeichnet. Aus diesen Elementarmodi können Rückschlüsse auf die
Metabolitflüsse in Stoffwechselwegen und deren Topologie gezogen werden. Dies dient
als analytische Basis für etwaige künstliche Restrukturierungen nur teilweise bekannter
Stoffwechselwege.
Das Werkzeug zur Berechnung dieser Elementarmodi ist in der Programmiersprache
C++ geschrieben. Es benötigt eine flat-file-Eingabedatei, die in Form stöchiometrischer
Gleichungen die biochemischen Reaktionen, die beteiligten Metabolite als Reaktionsausgangsstoffe bzw. als Produkte, die Enzyme als Katalysatoren und die Reaktionsrichtung beschreibt. Die Ausgabe ist ebenfalls ein flat-file. Auf Basis dieser Ein- und
Ausgabeschnittstelle wurde im Rahmen eines Laborpraktikums die Web-Anwendung
phpMetatool“ [158] geschaffen, welche die Eingabedateien halbautomatisch aus den
”
163
Kapitel 6 Anwendungen des Integrationsdienstes
Abbildung 6.9: Screenshot der SEMEDA Web-Oberfläche
Daten einer vorhandenen Datenbank erzeugt, die als Produkt einer Datenbankintegration von Stoffwechsel- und Enzymdatenbanken durch den BioDataServer entstand.
Die entwickelte Web-Anwendung erzeugt aus diesem integrierten Datenbestand Eingabedateien für das METATOOL. Die erzeugten Eingabedateien können bei Bedarf
vor der Verarbeitung editiert werden. Der Zugriff auf einen bestehenden Datenbestand
ermöglicht das Erzeugen von parametrisierten Vorlagen für diese Eingabedateien. Es
können über Kriterien, wie Stoffwechselwegname und Organismus, spezifisch für eine
Fragestellung interessierende Daten vorausgewählt werden. So ist es etwa möglich, aus
allen, zu einer bestimmten Spezies bekannten, biochemischen Reaktionen und Metaboliten des Stoffwechselweges Glykolyse“ automatisch eine entsprechende Eingabedatei
”
zu generieren. Diese dient als Basis für eine manuelle Verfeinerung und Korrekturen. Es
ist vorstellbar, daß diese Unterstützung einen erheblichen zeitlichen Vorteil gegenüber
einer ausschließlich manuellen Datenakquisition darstellt. In der Abbildung 6.10 ist der
eben skizzierte Prozeß schematisch dargestellt.
Die Implementierung erfolgte mittels der Skriptsprache PHP, die für die Entwicklung
leichtgewichtiger Web-Anwendungen weit verbreitet ist. Das so umgesetzte phpMeta”
tool“ ist unter folgender URL verfügbar:
164
6.7 Funktionale Annotationen von Pflanzen-ESTs im CR-EST-Informationssystem
Abbildung 6.10: Schematische Darstellung der Bedienschritte des phpMetatools aus
[158]
http://www-bm.ipk-gatersleben.de/tools/phpMetatool/
6.7 Funktionale Annotationen von Pflanzen-ESTs im
CR-EST-Informationssystem
Zur Verwaltung und Analyse von EST-Sequenzen, d. h. die elektronische Repräsentation der im Laufe der Genexpression in Zellen synthetisierten RNA (vergleiche hierzu
Abschnitt 2.1.2), wurde am Institut für Pflanzengenetik und Kulturpflanzenforschung
(IPK) in Gatersleben das Informationssystem CR-EST“ [49] implementiert, das diese
”
Daten für die am IPK untersuchten Nutzpflanzen verwaltet. Die hier enthaltenen Daten sind zur Unterstützung verschiedenster Analyseverfahren im experimentellen und
Genkontext organisiert.
So existieren Gruppen von Sequenzen, die sogenannten EST-Bibliotheken zugeordnet
werden. Dabei wurden alle ESTs einer Bibliothek im gleichen experimentellen Kontext
gemessen. Dieser kann z. B. das Gewebe einer Pflanze als Lokalitätskontext, ein Entwicklungsstadium als zeitlicher Kontext oder ein Streßkontext (Pilzbefall oder Wassermangel) sein.
Im genetischen Kontext werden die ESTs, die letztlich translatierte Teilsequenzen
eines Gens darstellen, derart untereinander aligniert, so daß alle von einem Gen während der Genexpression translatierten ESTs einen sogenannten Cluster bilden. Diese als
165
Kapitel 6 Anwendungen des Integrationsdienstes
EST-Clustering“ bekannte EST-Analyse wird für alle ESTs der CR-EST-Datenbank
”
durchgeführt und resultiert neben den EST-Gruppen bzw. Clustern in sogenannten
Konsensussequenzen, die als eine künstliche Vereinigung aller sich überlagernden Teilsequenzen eines Gens zu einer Gesamtsequenz interpretiert werden können.
Neben diesen sequenzzentrischen Daten in CR-EST werden Daten zur funktionalen
Bedeutung der Sequenzen in der Datenbank erfaßt. Dazu werden über den BioDataServer öffentliche Datenquellen aus dem Bereich der funktionalen Genetik integriert und
so Proteindaten und weitere spezielle funktionale Genannotationen in die CR-ESTDatenbank importiert. Auf dieser Datenbasis erfolgt dann, unter Nutzung existierender Verfahren zur Sequenzähnlichkeitssuche, die funktionale Klassifikation der ESTSequenzen im Informationssystem CR-EST.
Zur Veranschaulichung der in CR-EST enthaltenen Daten und Funktionalitäten ist im
rechten Teil des Screenshots aus Abbildung 6.11 die funktionale Klassifikation von ausgewählten ESTs in Form eines GeneOntology-Klassifikationsbaumes dargestellt. Diese
Abbildung 6.11: Screenshots aus dem Informationssystem CR-EST
typische Art der, dem Data Mining“ zugrundeliegenden, Methodik des Gruppierens
”
und Klassifizierens, stammt aus dem in Abschnitt 6.2 beschriebenen Ansatz der Data
”
166
6.8 Resümee
Linkage Graphs“ und basiert so wiederum auf den, durch den BioDataServer integrierten, öffentlichen Datenbanken.
Aktuelle, auf diesem Konzept aufbauende Forschungsarbeiten am IPK im Bereich der
Funktionsannotation im besonderen Kontext von Genexpressionsstudien nutzen multidimensionale Data Mining“-Techniken zu in-silico-Expressionsdaten. Diese Expres”
sionsdaten lassen sich z. B. indirekt aus Gruppierungen bzw. Clustern aller zu einem
Gen expremierter RNA-Stränge bzw. deren Repräsentation in Form von ESTs ableiten.
Hier werden auf Grundlage von EST-Sequenzclustern bibliotheksspezifisch3 expremierte
Gene unter Nutzung statistischer Verfahren vorhergesagt. Dazu wurden ebenfalls mittels des BioDataServers öffentliche EST-Clusterdatenbanken, wie z. B. NCBI-UniGene
[159], in ein relationales DBMS importiert und mit den zuvor genannten Genfunktionsannotationen verknüpft. Auf diese Weise können alle Gene vorhergesagt werden,
die während eines bestimmten Entwicklungsstadiums einer Pflanzenspezies eine hohe
Expressionsaktivität zeigen. So wurden in noch unveröffentlichten Analyseergebnissen
Transkriptionsfaktoren und deren Expressionsprofile ermittelt, die bei der Samenentwicklung bei Gerste eine Schlüsselrolle einnehmen.
6.8 Resümee
Mit dem Ziel der Demonstration der praktischen Anwendbarkeit des BioDataServer,
wurden in diesem Kapitel Projekte vorgestellt, die den BDS als Komponente zum homogenen Zugriff und zur Integration molekularbiologischer Daten nutzen. Diese unterscheiden sich nach der Art der Einbettung des BDS und der Verarbeitung der Datenanfrageergebnisse. Es wurden somit Anwendungen vorgestellt, die den BDS
1. als Importwerkzeug zur Materialisierung von integrierten Daten in ein DBMS
verwenden oder
2. in einer Client-Server-Architektur für integrative, explorative Datenfragen nutzen.
Im ersten Fall, der die Mehrzahl der Anwendungsfälle darstellt und der explizit für die
im Kapitel 5 vorgestellte Datenbankintegrationsarchitektur zugrunde gelegt wird, wird
eine sogenannte offline“-Analyse von integrierten Datenbanken vogenommen. Der sel”
tenere Anwendungsfall einer Datenexploration auf virtuell über Sichten integrierte Datenbanken, wobei der BDS-Mediator als eigenständiges Datenbankintegrationssystem
Verwendung findet, wird als online“-Datenzugriff bezeichnet.
”
Neben den zu Beginn dieses Kapitels genannten Demonstrationsanwendungen zum
online-Datenzugriff, nutzt SEMEDA als System zur semantischen Datenbankintegration den BioDataServer zur sichtenbasierten Integration von molekularbiologischen Datenbanken. Die geringe Anwendung für online-Anwendungen begründet sich aus dem
3
ESTs werden in sogenannte EST-Bibliotheken gruppiert, die den experimentellen Kontext der RNAProbenentnahme beschreiben. Das sind z. B. Entwicklungsstadien der Pflanze, das Gewebe, Streßsituation etc.
167
Kapitel 6 Anwendungen des Integrationsdienstes
beschränkten Sprachumfang des SQL-Dialektes des BioDataServer, was die Konsequenz
der allgemein beschränkten Zugriffsmuster molekularbiologischer Datenquellen ist.
Als Beispiel für offline-Nutzung des BDS wurde ein universelles JAVA-Importwerkzeug namens Debbie vorgestellt, was u. a. für das ebenfalls in diesem Kapitel beschriebene Datenbankintegrations- und Analysesystem DBOra verwendet wird. Auf der Basis
von DBOra wurden Konzepte und Methoden entwickelt, um die, am IPK Gatersleben
erhobenen, Sequenz- und Genexpressionsdaten funktional zu charakterisieren. Weitere
vorgestellte offline-Anwendungen des BDS waren das Softwaresystem zur klinischen
Analyse von Genotyp-Phänotyp-Korrelationdas, das iUDB-System zur Analyse von
Genwirknetzen, das phpMetatool als Web-Anwendung zur strukturellen Analyse von
Pathways und das Pflanzeninformationssystem CR-EST als IPK-Resource zur Verwaltung und Analyse von Nutzpflanzen ESTs.
168
Kapitel 7
Zusammenfassung und Ausblick
Der überwiegende Teil des molekularbiologischen Wissens wird teils in öffentlichen,
teils in kommerziellen Datenbanken gepflegt. Die Anwendung von Bioinformatik als
Wissenschaft zur Verarbeitung und Analyse dieser Datenbanken ist ein wesentlicher
Faktor zum Verständnis der Zusammenhänge zwischen den genetischen Erbinformationen, den dynamischen Vorgängen in Organismen bis hin zu verschiedensten Aspekten
phänotypischer Diversität, wie etwa Krankheiten, Streßresistenzen oder Ernteerträgen.
Die vorliegende Arbeit ist mit dem Ziel der Schaffung einer Komponente zur Verbindung von statischem, in Datenbanken gespeichertem Wissen mit Bioinformatikmethoden zur Wissensableitung angefertigt wurden. Die Integration und der homogene
Zugriff auf molekularbiologische Datenbanken ist eine Voraussetzung zur Nutzung ihres gesamten Potentials. Unter diesen Gesichtspunkten bildet die Aussage
Das Ganze ist mehr als die Summe seiner Teile“
”
die zentrale Motivation des entworfenen Konzeptes zur Datenbankintegration in der
Bioinformatik und der darauf beruhenden Implementierung des Datenbankintegrationssystems BioDataServer.
In diesem Kapitel wird eine Zusammenfassung der erarbeiteten Konzepte und Methoden zur Integration molekularbiologischer Datenquellen unter Nutzung beschränkter
Zugriffsmuster gegeben. Anschließend wird ein Ausblick auf einige, in diesem Kontext
interessante, weiterführende Aspekte erörtert, die im Rahmen der vorliegenden Arbeit
nicht behandelt werden konnten.
7.1 Zusammenfassung
In der Informatik, respektive im Forschungsbereich der Informationssysteme und Datenbanken, gehört die Erforschung der Probleme und Herausforderungen der Datenbankintegration zu den bereits durch umfangreiche Forschungsergebnisse etablierten
Gebieten. Dazu existieren im Informatikkontext der vorliegenden Arbeit anerkannte
Methoden zur Lösung verschiedener Probleme, wie z. B. die Datenschemaintegration, die Transaktionsverwaltung, Datenbankintegrationsarchitekturen, Anfragesprachen
oder Optimierungsstrategien für Anfragepläne über verteilte Datenbanken, veröffentlicht.
169
Kapitel 7 Zusammenfassung und Ausblick
Aufgabe war die Adaption bestehender Methoden zur Datenbankintegration auf die
konkreten Gegebenheiten in der Bioinformatik, insbesondere der molekularbiologischen
Datenbanken. Eben diese Gegebenheiten stellen spezielle Anforderungen an eine in
der bioinformatischen Praxis realisierbare Lösung, die über akademisch, theoretische
Lösungsstrategien hinausgehen. Gerade der Zugriff auf die Datenquellen mittels beschränkter Zugriffsmuster als Basis für ein Datenbankintegrationssystem mit umfangreichen Funktionalitäten zur Datenschemaintegration und Anfragefunktionalität sind
zwei konträre Bedingungen, die es zu kombinieren galt. Eben diese Kombination wurde
durch das in dieser Arbeit vorgestelle Datenbankintegrationsmodell RIND und dessen
Umsetzung durch das Datenbankintegrationssystem BioDataServer realisiert.
Dazu wurden im Kapitel 2 Grundlagen elementarer Konzepte der Molekularbiologie insoweit vorgestellt, wie sie zur Einordnung der Arbeit und zum Verständnis der
vorgeschlagenen Strategien notwendig waren. Weiterhin wurden wichtige Begriffe und
Methoden aus der Datenbanktheorie insbesondere der Datenmodellierung, Schnittstellen und Anfragesprachen zusammengefaßt. Der dritte Inhaltsschwerpunkt des Grundlagenkapitels war die Aufarbeitung von Informatikkonzepten zu verteilten Datenbanken.
Im Mittelpunkt stand die klassifizierende Aufarbeitung der verschiedenen Arten von
Multidatenbanksystemen in besonderem Hinblick auf die genutzten Lösungsstrategien.
In diesem Zusammenhang wurde abschließend eine Charakterisierung von Datenbankintegrationskonflikten erarbeitet. Aus diesen Analysen bestehender Methodiken der
Datenbankintegration motiviert sich die Erkenntnis, daß eine hybride Lösungsstrategie
für eine Datenbankintegration in der Bioinformatik notwendig ist, die Komponenten
von Data Warehouses mit Aspekten von Mediatoren kombiniert.
Die Analyse, Nutzung und Adaption bewährter Methoden und Erkenntnisse sollte vor
der Erarbeitung einer Lösung für ein wissenschaftliches Problem stehen. Die Möglichkeit
aus bestehenden Ansätzen zu lernen und daraus für die Zielsetzung der vorliegenden
Arbeit geeignete Lösung abzuleiten, war Kernaufgabe des Kapitels 3. Dazu waren Vorund Nachteile einzelner existierender Ansätze hinsichtlich der zu entwickelnden Datenbankintegrationslösung abzuwägen, um so eine neue, erweiterte Lösung zu finden.
Die Erfassung und Analyse der Eigenschaften molekularbiologischer Datenbanken und
existierender Datenbankintegrationssysteme in der Bioinformatik stellte deshalb den
ersten Schwerpunkt diesen Kapitels dar. Es wurden charakterisierende Besonderheiten
molekularbiologischer Datenbanken und deren Schnittstellen sowie Datenqualitätskriterien untersucht. Dem folgte die Vorstellung ausgewählter, populärer und bezüglich
der verschiedenen Lösungsansätze und Datenbankintegrationsarchitekturen repräsentativer Systeme. So wurden vier Vertreter bioinformatischer Datenbankintegrationssysteme hinsichtlich der zuvor vorgestellten Klassifikationsmerkmale, wie z. B. dem Grad
der Schemaintegration und der Datenmaterialisierung, detailliert analysiert. Weitere
in der Literatur oft referenzierte Systeme wurden kurz beschrieben, um einen groben
Überblick zu bestehenden, nicht ausschließlich der Bioinformatik zuzuordnenden Datenbankintegrationslösungen anzugeben.
Ein Kern der Arbeit bildet das Kapitel 4, in dem das aus dem relationalen Datenmodell abgeleitete Integrationsdatenmodell RIND erarbeitet wurde. Gegenstand
war die Bereitstellung einer theoretischen Grundlage zur Umsetzung der eingangs er-
170
7.1 Zusammenfassung
wähnten Kombination von beschränkten Zugriffsmustern molekularbiologischer Datenquellen mit ausdrucksstarken, integrierenden Datenanfragen. Zunächst wurden die Basiselemente von RIND vorgeschlagen sowie Abbildungsregeln auf das Relationenmodell
vorgestellt. Darauf aufbauend erfolgte die Ableitung von Datenschemata, welche die
Basis zur Schemaintegration sind. Die drei Schemaebenen sind die Exportschemata,
die Adapterschemata und die integrierten Nutzerschemata. Um die so bereitgestellten Datenstrukturen für Datenanfragen nutzen zu können, wurden im dritten Teil des
Kapitels auf dem RIND-Modell definierte Integrationsoperatoren eingeführt. Anschließend wurde beschrieben, wie ausschließlich aus der Kombination des Selektions- und
Projektionsoperators Datenquellenanfragen gebildet werden können. So wurde das aus
Publikationen bekannte Konzept der subgoals derart umgesetzt, daß gerade auch Datenquellen mit beschränkten Zugriffsmustern auf der Ebene der Adapterschemata in
eine Datenbankintegration eingebettet werden können. Weiterhin wurde anhand von
Anfrageplänen demonstriert, wie die drei RIND-Operationen Projektion, Selektion und
Verbund zu ausführbaren Anfragepläne kombiniert werden können, um auf diese Weise Datenanfragen an die integrierten Nutzerschemata umzusetzen. Das Kapitel wurde
mit Ausführungen der Regeln und Algorithmen zur Komposition und Ausführung von
Anfrageplänen sowie der relationalen Auflösung der resultierenden mengenwertigen Anfrageresultate abgeschlossen.
Ein weiteres Kernkapitel ist die Demonstration der Anwendbarkeit der zuvor vorgestellten theoretischen Konzepte im Kapitel 5. Dazu wurde zunächst ein Datenbankintegrationssystem konzipiert und spezifiziert. Eine entsprechende Anforderungsanalyse
wurde durchgeführt. Auf deren Grundlage wurde eine Systemarchitektur vorgestellt,
in der eine Kombination aus Data Warehouse und Mediatorkonzepten vorgeschlagen
wurde. Als Importkomponente wurde der BioDataServer (BDS) als ein Datenbankmediator zur sichtenbasierten Integration von molekularbiologischen Datenquellen entworfen. Bei dem als Open Source“-Projekt implementierten und so öffentlich verfügbaren
”
BDS wurde die meiste Programmierarbeit geleistet, denn eines der erklärten Ziele war
die Bereitstellung einer funktionstüchtigen und anwendbaren Datenbankintegrationslösung. Der BDS wurde in JAVA als Server implementiert, der über ein TCP/IP-basiertes Netzwerkprotokoll einem breiten Spektrum von Anwendungen zugänglich ist.
Auf der Basis einer in diesem Kapitel spezifizierten SQL-Schnittstelle wurden JDBCund ODBC-Treiber implementiert, die eine nahtlose Anbindung von Datenbankanbindungen an den BDS ermöglichen. Einige für die Implementierung des BDS entwickelten
Algorithmen und weitere Implementierungsaspekte wurden im dritten Teil des Kapitels
vorgestellt. Das Kapitel endete mit Ausführungen zur manuellen und automatischen Erstellung von Adaptern, die vom BioDataServer zu integrierende Datenquellen kapseln
und so die zur Ausführung von Anfrageplänen notwendigen subgoals implementieren.
Weil die Anwendbarkeit der in der vorliegenden Arbeit vorgeschlagenen und implementierten Lösung zur Datenbankintegration eine wesentliche Vorgabe war, wurden
im Kapitel 6 konkrete Applikationen beschrieben, die den BDS als Komponente zum
integrativen Zugriff auf molekularbiologische Datenquellen nutzen. Es wurden sieben
Systeme vorgestellt, die den BDS teils für einen Datenimport und teils für explorative Datenanfragen verwenden. Neben Werkzeugen zur Abfrage, Exploration und zum
171
Kapitel 7 Zusammenfassung und Ausblick
Import von integrierten Datenbanken, wie Debbie“, DBOra“ oder SEMEDA“, wur”
”
”
den diverse Bioinformatikfragestellungen in Form von Analysewerkzeugen bearbeitet.
Die Applikationen zur bioinformatischen Datenanalyse beruhen auf individuell entworfenen integrierten Datenschemata und darüber in DBMS importierte Datenbanken.
Ergebnisse dieser Analysen sind funktionale Klassifikationen von EST-Sequenzen, die
Rekonstruktion und Simulation von Stoffwechselwegen bis hin zur Unterstützung medizinischer Diagnosen von Erbkrankheiten. Mit dem BioDataServer wurde somit ein
universell einsetbares Datenbankintegrationssystem umgesetzt, das im Bereich der Bioinformatik Anwendung findet.
7.2 Ausblick
Aktuelle Entwicklungen auf dem Gebiet der Bioinformatik, Informatik und Erfahrungen
bei der Nutzung des BioDataServers zeigen interessante Möglichkeiten zur Erweiterung
und Verbesserung der in dieser Arbeit vorgestellten Konzepte und Methoden zur Datenbankintegration in der Bioinformatik. Diese wurden teilweise in den jeweiligen Kapiteln
und Abschnitten angesprochen und sollen an dieser Stelle zusammengefaßt werden.
Die Existenz einer Vielzahl von Adaptern zur Anbindung einer möglichst umfangreichen Anzahl von molekularbiologischen Datenquellen an den BioDataServer ist eine
wichtige Voraussetzung zur Anwendbarkeit und somit der Akzeptanz. Die verfügbaren
Adapter resultieren aus einem semi-automatischen Ansatz, der in vielen Fällen die manuelle Erstellung von Grammatiken zum Parsen von Dateien notwendig macht. Diese
Grammatiken wurden nur für einige Datenbanken erstellt. Auch ist eine häufige Anpassung der Grammatiken notwendig, da sich die Dateiformate und der Attributumfang in
vielen Fällen ändern. Aus diesem Grund erscheint es naheliegend, bestehende Wrapper
bzw. Adapter anderer Systeme, wie z. B. dem SRS-System, zu nutzen oder aktuelle
Ansätze zur Adaptergenerierung auf ihre Anwendbarkeit für die Erstellung von BDSAdaptern zu untersuchen.
Interessante Möglichkeiten bietet eine Unterstützung von verschiedenen, hierarchisch
strukturierten Datentypen mit entsprechenden Operationen, wie es im Abschnitt 4.2
vorgeschlagen wurde. Gerade das breite Spektrum von molekularbiologischen Daten
macht die Erweiterung der zur Zeit unterstützten Datentypen wie string oder
integer sinnvoll. Da die Konzeption des BDS dies explizit unterstützt, sind z. B.
Datentypen für Sequenzen oder Proteinstrukturen denkbar, für die neben den Standardoperationen auch Ähnlichkeitsvergleiche möglich sind.
Das Gebiet der Anfrageoptimierung wurde in der vorliegenden Arbeit nicht behandelt. Auch hier ergeben sich Möglichkeiten, aktuelle Forschungsergebnisse im Bereich
von verteilten Datenanfragen zur automatischen Optimierung von Anfrageplänen mit
einzubeziehen. So wären hier etwa kosten- oder regelbasierte Modelle denkbar.
Neben der Veröffentlichung des BDS-Quellkodes sind zur Erhöhung der Akzeptanz
die Einbettung in bestehende Bioinformatik-APIs von Bedeutung. So könnten etwa
Funktionen in der BioJava- oder BioPerl-API zum Zugriff auf den BDS implementiert
werden. Auch die Unterstützung weiterer SQL-Sprachkonstrukte oder anderer Daten-
172
7.3 Schlußbemerkung
anfragesprachen, wie z. B. OQL sind Erweiterungsmöglichkeiten der BDS-Implementierung.
7.3 Schlußbemerkung
Die in dieser Arbeit vorgestellten Konzepte und Methoden zur Datenbankintegration in
der Bioinformatik resultieren aus verschiedenen Forschungsprojekten. Dabei wurden im
ersten Teil des DFG-Projekts Modellierung und Animation regulatorischer Genwirk”
netze“ (MARG), das an der Universität Magdeburg durchgeführt wurde, Grundlagen
gelegt. Die Verfeinerung und praktische Umsetzung der Konzepte wurde am Institut
für Pflanzengenetik und Kulturpflanzenforschung (IPK) in Gatersleben erarbeitet. Dabei wurden während eines BMBF-Bioinformatikprojektes im Rahmen der InnoPlantaInitiative angewandte Forschung mit dem Ziel einer Kommerzialisierung betrieben. Abschließende Arbeiten wurden als projektunabhängige Forschung direkt am IPK durchgeführt.
Die entstandenen Lösungen und Konzepte fließen direkt in weitere Forschungsprojekte ein. Dazu gehören Projektteile der BMBF-Initiative Bioinformatics Center Ga”
tersleben-Halle“ (BIC-GH) und ein Teilprojekt des BMBF-Verbundprojektes Cellu”
lar Eukaryotic proteome-Code deciphering Technology“ (CELLECT). Weiterhin flossen
Ergebnisse in die bereits beendete zweite Projektphase des bereits erwähnten DFGProjektes MARG ein.
173
Anhang A
Ausgewählte Schnittstellen und
Datenformate molekularbiologischer
Datenbanken
A.1 EMBL-flat-file Datensatz
ID
AF093062
standard; genomic DNA; INV; 2795 BP.
XX
AC
AF093062;
XX
SV
AF093062.2
XX
....
DE
Leishmania major polyadenylate-binding protein 1 (PAB1) gene, ....
XX
....
FT
CDS
263..1945
FT
/codon_start=1
FT
/db_xref="GOA:O96606"
FT
/db_xref="TrEMBL:O96606"
FT
/note="polyA-binding protein"
FT
/gene="PAB1"
175
Anhang A Ausgewählte Schnittstellen und Datenformate
FT
/product="polyadenylate-binding protein 1"
FT
/protein_id="AAC64372.2"
FT
/translation="MAAAVQEAAAPVAHQPQMDKPIEIASIY....
....
A.2 GenBank-flat-file Datensatz
LOCUS
AF093062
2795 bp
DNA
INV
12-OCT-1999
DEFINITION
Leishmania major polyadenylate-binding protein 1 (PAB1) gene,
complete cds.
ACCESSION
AF093062
VERSION
AF093062.2
GI:6019463
....
CDS
263..1945
/gene="PAB1"
/note="polyA-binding protein"
/codon_start=1
/product="polyadenylate-binding protein 1"
/protein_id="AAC64372.2"
/db_xref="GI:6019464"
/translation="MAAAVQEAAAPVAHQPQMDKPIEIASIY....
176
A.3 GenBank-ASN.1 Datensatz
A.3 GenBank-ASN.1 Datensatz
seq {
id {
genbank {
name "AF093062" ,
accession "AF093062" ,
version 2 } ,
gi 6019463 } ,
....
seq {
id {
genbank {
accession "AAC64372" ,
version 2 } ,
gi 6019464 } ,
....
177
Anhang A Ausgewählte Schnittstellen und Datenformate
A.4 UniProt DTD
<?xml version="1.0" encoding="UTF-8"?>
....
<!--Contains a collection of SPTr entries.-->
<!ELEMENT uniprot (entry+, copyright)>
<!ATTLIST uniprot
xmlns CDATA #FIXED "http://uniprot.org/uniprot"
xmlns:xsi CDATA #IMPLIED
xsi:schemaLocation CDATA #IMPLIED
>
<!--A (public) SPTr entry-->
<!ELEMENT entry (accession+, name+, protein, gene*, organism+, ....>
<!ATTLIST entry
dataset CDATA #REQUIRED
created CDATA #REQUIRED
updated CDATA #REQUIRED
>
<!ELEMENT copyright (#PCDATA)>
<!ELEMENT accession (#PCDATA)>
<!--The name type is used for all basic names occuring in an entry.-->
<!ELEMENT name (#PCDATA)>
<!ATTLIST name
evidence CDATA #IMPLIED
type (common | full | scientific | synonym | abbreviation) #IMPLIED
>
<!--The protein element stores all the information found in the DE ....
<!ELEMENT protein (name+, domain*, component*)>
<!--evidence: This contains all evidences that are connected to ....
<!--ref: This is referring to a possible EC number ....
<!ATTLIST protein
type NMTOKEN #IMPLIED
evidence CDATA #IMPLIED
ref CDATA #IMPLIED
>
....
178
A.5 BioPerl Beispiel zum Zugriff auf die GenBank
A.5 BioPerl Beispiel zum Zugriff auf die GenBank
$gb = new Bio::DB::GenBank();
$seq1 = $gb->get_Seq_by_id(’MUSIGHBA1’);
$seq2 = $gb->get_Seq_by_acc(’AF303112’);
$seqio = $gb->get_Stream_by_id(["J00522","AF303112"]);
A.6 BioPython Beispiel zum Zugriff auf die GenBank
>>>from Bio import GenBank
>>>gi_list = GenBank.search_for("Opuntia AND rpl16")
>>>ncbi_dict = GenBank.NCBIDictionary()
>>>gb_record = ncbi_dict[gi_list[0]]
>>>print gb_seqrecord
A.7 BioJava Beispiel zum Zugriff auf die GenBank
import
import
import
import
import
org.biojava.bio.seq.*;
org.biojava.bio.seq.io.*;
java.io.*;
org.biojava.bio.*;
java.util.*;
public class ReadGB {
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(args[0]));
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
System.exit(-1);
}
SequenceIterator sequences = SeqIOTools.readGenbank(br);
while(sequences.hasNext()){
try {
Sequence seq = sequences.nextSequence();
179
Anhang A Ausgewählte Schnittstellen und Datenformate
}
catch (BioException ex) {
ex.printStackTrace();
}catch (NoSuchElementException ex) {
ex.printStackTrace();
}
}
}
}
A.8 CORBA/JAVA Beispiel zum Zugriff auf EMBL
package embl.ebi.emblclient.jitka;
import embl.ebi.tools.*;
import java.util.*;
public class TextViewer {
/* generated class from IDL */
DataAccess dac = new DataAccessImpl();
String[] accNos = {"J00522","AF303112"};
/* generated class from IDL */
DataContents data;
for (int i = 0; i < accNos.length; i++) {
try {
data = dac.getDataContents (accNos[i]);
System.out.println ("Accession number: " + accNos[i]);
System.out.println ("\Molecule:" + data.molType);
System.out.println ("tLength: " + data.length());
System.out.println ("Sequence: " + data.nucSeq);
} catch (NonAvailableData e) {
System.err.println ("Error: " + e.getMessage());
} catch (UnknownData e) {
System.err.println ("Error: " + e.getMessage());
}
}
}
180
A.9 SOAP/JAVA Beispiel zum Zugriff auf KEGG
A.9 SOAP/JAVA Beispiel zum Zugriff auf KEGG
import keggapi.*;
class GetGenesByPathway {
public static void main(String[] args) throws Exception {
/* aus der WSDL generiert*/
KEGGLocator locator = new KEGGLocator();
/* aus der WSDL generiert*/
KEGGPortType serv
= locator.getKEGGPort();
String
query
= args[0];
String[] results = serv.get_genes_by_pathway(query);
for (int i = 0; i < results.length; i++) {
System.out.println(results[i]);
}
}
}
181
Anhang B
Ausgewählte Spezifikationen und
Implementierungsbeispiele des BDS
B.1 BDS JAVA-Klassen für integrierte Nutzerschemata
public class Scheme{
/**
* Name des Schemas
*/
private String name;
/**
* Klassen dieses Schemas vom Typ SchemeTable
*/
private Vector Table = new Vector();
}
public class SchemeTable {
/**
* Zugehoeriges Schema
*/
private Scheme scheme;
/**
* Name der Tabelle
*/
private String name;
/**
* Attribute der Klasse vom Typ SchemeAttribute
*/
private Vector attributes = new Vector();
/**
183
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
* alle Anfrageabhaengigkeiten der Klasse
*/
private AttributeDepends dependings = new AttributeDepends();
}
public class AttributeDepends {
/**
* vom IUS-Attribut attribut anfrageabhaengige
* IUS-Attribute vom Type AttribteDepends
*/
private Vector depend = new Vector();
/**
* IUS-Attribut
*/
private SchemeAttribute attribute;
}
public class SchemeAttribute
{
/**
* Datentypidentifikatoren
*/
public static final int TYPE_INT = -1;
public static final int TYPE_STRING = -2;
public static final int TYPE_DECIMAL = -3;
public static final int TYPE_BOOLEAN = -4;
/**
* Datentyp des IUS-Attributs
*/
private int _type;
/**
* Name des IUS-Attributs
*/
private String _name;
/**
* Verweis auf die Tabelle dieses IUS-Attributs
*/
private SchemeTable table;
184
B.1 BDS JAVA-Klassen für integrierte Nutzerschemata
/**
* Menge von Adapterattributen vom Typ Source
*/
private Vector SourceAttribute;
}
public class Source {
/**
* Name des Adapters
*/
public String Adapter;
/**
* Name der Adaptertabelle
*/
public String AdapterTable;
/**
* Name des Adapterattributs
*/
public String AdapterAttribute;
}
185
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
B.2 BDS JAVA-Interface für die Adapter
public interface PhysicalAdapter {
/**
* Ausfuehrung subgoal ohne gebundenens Attribut
*/
public void getPureAttribute(SelectQuery query, Vector result)
throws PhysicalAdapterException;
/**
* Ausfuehrung subgoal mit gebundenem Attribut
*/
public void getSelectedAttribute(SelectQuery query,
String CompareValue,
Vector result)
throws PhysicalAdapterException;
/**
* Abfrage des Adapterschemas
/
*
public AdapterScheme getAdapterScheme();
/**
* Abfrage der Adapterversion
*/
public String getVersion();
/**
* Abfrage des Datenquellennamens
*/
public String getName();
/**
* Abfrage des Adapterherstellers
*/
public String getManufacturer();
}
public class SelectQuery {
/**
* Adaptertabelle
/
*
public String Class;
186
B.2 BDS JAVA-Interface für die Adapter
/**
* Adapterattribut
*/
public String Attribute;
/**
* ungebundenes subgoal-Attribut
*/
public String SelectAttribute;
/**
* gebundenes subgoal-Attribut
/
*
public String WhereAttribute;
}
public class AdapterScheme {
/**
* Adaptertabellen
*/
private AdapterClass classes[];
}
public class AdapterClass {
/**
* Adapterattribute
/
*
private AdapterAttribute attributes[];
/**
* Name der Adaptertabelle
/
*
private String name;
}
public class AdapterAttribute {
/**
* Name des Adapterattributes
*/
187
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
private String name;
/**
* Datentyp
*/
private String type;
/**
* Freitextbeschreibung
*/
private String description;
/**
* Attribut ist indiziert oder nicht indiziert
*/
private boolean isKey;
}
188
B.3 Beispiel eines IUS-Nutzerschemas
B.3 Beispiel eines IUS-Nutzerschemas
scheme demo
class Enzyme {
ec:string<GeneratedKeggAdapter,Enzyme,ec_nr>;
name:string<GeneratedKeggAdapter,Names,name>:ec->ec_nr;
enzymeclass:string<GeneratedKeggAdapter,Classes,eclass>:ec->ec_nr;
reaction:string<GeneratedKeggAdapter,Reactions,reaction>:ec->ec_nr;
product:string<GeneratedKeggAdapter,Productes,product>:ec->ec_nr;
substrate:string<GeneratedKeggAdapter,Substrates,substrate>:ec->ec_nr;
comment:string<GeneratedKeggAdapter,Comment,comment>:ec->ec_nr;
pathway:string<GeneratedKeggAdapter,Pathway,pathway>:ec->ec_nr;
gene:string<GeneratedKeggAdapter,Gene,gene>:ec->ec_nr;
}
class KeggReactionEnzyme {
map:string<GeneratedKeggReactionAdapter,Pathway,map_nr>;
ec:string<GeneratedKeggReactionAdapter,Reaction,ec_nr>:map->map_nr;
mapec:string<GeneratedKeggReactionAdapter,Reaction,mapec>:map->map_nr;
}
class Disease {
mim:string<GeneratedMDDBAdapter,DISEASES,MIM>;
name:string<GeneratedMDDBAdapter,DISEASES,NAME>:mim->MIM;
age_unit:string<GeneratedMDDBAdapter,DISEASES,AGE_UNIT>:mim->MIM;
FREQUENCY:string<GeneratedMDDBAdapter,DISEASES,FREQUENCY>:mim->MIM;
DESCRIPTION:string<GeneratedMDDBAdapter,DISEASES,DESCRIPTION>:mim->MIM;
}
189
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
B.4 Ausgabe des BDS-Kommunikationsprotokolls zum
KEGG-Adapterschema
class "Enzyme" {
name: "ec_nr" type: "string"
description: "" isKey: "true"
}
class "Names" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "name" type: "string"
description: "" isKey: "false"
}
class "Classes" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "eclass" type: "string"
description: "" isKey: "false"
}
class "Sysnames" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "sysname" type: "string"
description: "" isKey: "false"
}
class "Reactions" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "reaction" type: "string"
description: "" isKey: "false"
}
class "Substrates" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "substrate" type: "string"
description: "" isKey: "false"
}
class "Productes" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "product" type: "string"
description: "" isKey: "false"
}
class "Inhibitors" {
name: "ec_nr" type: "string"
description: " foreign key references
190
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
B.4 Ausgabe des BDS-Kommunikationsprotokolls zum KEGG-Adapterschema
name: "inhibitor" type: "string"
description: "" isKey: "false"
}
class "Cofactors" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "cofactor" type: "string"
description: "" isKey: "false"
}
class "Comment" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "comment" type: "string"
description: "" isKey: "false"
}
class "Pathway" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "pathway" type: "string"
description: "" isKey: "false"
}
class "Gene" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "gene" type: "string"
description: "" isKey: "false"
name: "genename" type: "string"
description: "" isKey: "false"
}
class "Disease" {
name: "ec_nr" type: "string"
description: " foreign key references
name: "disease" type: "string"
description: "" isKey: "false"
}
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
Enzyme(ec_nr)" isKey: "true"
191
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
B.5 Ausgabe des BDS-Kommunikationsprotokolls zum
BRENDA-Adapterschema
class "Enzyme" {
name: "ec_nr" type: "string"
description: ""
isKey: "true"
}
class "Organism" {
name: "ec_nr" type: "string"
description: " foreign key references
isKey: "true"
name: "organismid" type: "string"
description: ""
isKey: "false"
}
class "Organismname" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "organismname" type: "string"
description: ""
isKey: "false"
}
class "Other_names" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "other_name" type: "string"
description: ""
isKey: "false"
}
class "Cas_reg_nrs" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "cas_reg_nr" type: "string"
description: ""
isKey: "false"
}
class "Reactions" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "reaction" type: "string"
description: ""
192
Enzyme(ec_nr)"
Organism(organismid)"
Organism(organismid)"
Organism(organismid)"
Organism(organismid)"
B.5 Ausgabe des BDS-Kommunikationsprotokolls zum BRENDA-Adapterschema
isKey: "false"
}
class "Reaction_types" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "reaction_type" type: "string"
description: ""
isKey: "false"
}
class "Substrates" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "substrate" type: "string"
description: ""
isKey: "false"
}
class "Products" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "product" type: "string"
description: ""
isKey: "false"
}
class "Natural_Substrates" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "natural_substrate" type: "string"
description: ""
isKey: "false"
}
class "Turnover_numbers" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "turnover_number" type: "string"
description: ""
isKey: "false"
}
class "Specific_activities" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
193
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
name: "specific_activity" type: "string"
description: ""
isKey: "false"
}
class "Km_values" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "km_value" type: "string"
description: ""
isKey: "false"
}
class "Ph_optimums" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "ph_optimum" type: "string"
description: ""
isKey: "false"
}
class "Ph_ranges" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "ph_range" type: "string"
description: ""
isKey: "false"
}
class "Temperatur_optimums" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "temperatur_optimum" type: "string"
description: ""
isKey: "false"
}
class "Temperatur_ranges" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "temperatur_range" type: "string"
description: ""
isKey: "false"
}
class "Cofactors" {
name: "organismid" type: "string"
194
B.5 Ausgabe des BDS-Kommunikationsprotokolls zum BRENDA-Adapterschema
description: " foreign key references
isKey: "true"
name: "cofactor" type: "string"
description: ""
isKey: "false"
}
class "Metal_ions" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "metal_ion" type: "string"
description: ""
isKey: "false"
}
class "Inhibitors" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "inhibitor" type: "string"
description: ""
isKey: "false"
}
class "Tissues" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "tissue" type: "string"
description: ""
isKey: "false"
}
class "Sources" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "source" type: "string"
description: ""
isKey: "false"
}
class "Localizations" {
name: "organismid" type: "string"
description: " foreign key references
isKey: "true"
name: "localization" type: "string"
description: ""
isKey: "false"
}
Organism(organismid)"
Organism(organismid)"
Organism(organismid)"
Organism(organismid)"
Organism(organismid)"
Organism(organismid)"
195
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
class "Purifications" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "purification" type: "boolean"
description: ""
isKey: "false"
}
class "Crystallizations" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "crystallization" type: "boolean"
description: ""
isKey: "false"
}
class "Molecular_weights" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "molecular_weight" type: "string"
description: ""
isKey: "false"
}
class "Subunits" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "subunit" type: "string"
description: ""
isKey: "false"
}
class "Posttransmods" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "posttransmod" type: "string"
description: ""
isKey: "false"
}
class "Cloneds" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "cloned" type: "boolean"
description: ""
196
B.5 Ausgabe des BDS-Kommunikationsprotokolls zum BRENDA-Adapterschema
isKey: "false"
}
class "Ph_stabilities" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "ph_stability" type: "string"
description: ""
isKey: "false"
}
class "Temperatur_stabilities" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "temperatur_stability" type: "string"
description: ""
isKey: "false"
}
class "Organic_solvent_stabilities" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "organic_solvent_stabilitiy" type: "string"
description: ""
isKey: "false"
}
class "Oxidation_stabilities" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "oxidation_stability" type: "string"
description: ""
isKey: "false"
}
class "General_stabilities" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "general_stability" type: "string"
description: ""
isKey: "false"
}
class "Storage_stabilities" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
197
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
name: "storage_stability" type: "string"
description: ""
isKey: "false"
}
class "Renaturateds" {
name: "organismid" type: "string"
description: " foreign key references Organism(organismid)"
isKey: "true"
name: "renaturated" type: "boolean"
description: ""
isKey: "false"
}
198
B.6 Parameterdateien zur Generierung des KEGG-Adapters
B.6 Parameterdateien zur Generierung des
KEGG-Adapters
----------------- Datei "keggbeschreibung.txt" ------------------adaptertype: USER_DEFINED_GRAMMA
adaptername: GeneratedKeggAdapter
manufacturer: "Matthias Lange, mail: [email protected] "
version: 1.2
url: http://kegg.genome.ad.jp/dbget-bin/www_bget?enzyme:
urlextension: "+-s"
keysurl: http://kegg.genome.ad.jp/dbget-bin/get_htext?ECtable+D
scheme: KEGG
table Enzyme (ec_nr string primary key)
table Names (ec_nr string foreign key references Enzyme(ec_nr),
name string);
table Classes (ec_nr string foreign key references Enzyme(ec_nr),
eclass string);
table Sysnames (ec_nr string foreign key references Enzyme(ec_nr),
sysname string);
table Reactions (ec_nr string foreign key references Enzyme(ec_nr),
reaction string);
table Substrates (ec_nr string foreign key references Enzyme(ec_nr),
substrate string);
table Productes (ec_nr string foreign key references Enzyme(ec_nr),
product string);
table Inhibitors (ec_nr string foreign key references Enzyme(ec_nr),
inhibitor string);
table Cofactors (ec_nr string foreign key references Enzyme(ec_nr),
cofactor string);
table Comment (ec_nr string foreign key references Enzyme(ec_nr),
comment string);
table Pathway (ec_nr string foreign key references Enzyme(ec_nr),
pathway string);
table Gene (ec_nr string foreign key references Enzyme(ec_nr),
gene string,
genename string);
table Disease (ec_nr string foreign key references Enzyme(ec_nr),
disease string);
datagramma: keggdatagramma.txt
keygramma: keggkeygramma.txt
----------------- Datei "keggdatagramma.txt" ------------------TOKEN : {
<NAME:
<ECLASS:
<SYSNAME:
<REACTION:
"\nNAME"
>|
"\nCLASS"
>|
"\nSYSNAME"
>|
"\n"<HTMLTAG>"REACTION"<ENDTAG>
>|
199
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
<SUBSTRATE: "\nSUBSTRATE"
>|
<PRODUCT:
"\nPRODUCT"
>|
<INHIBITOR: "\nINHIBITOR"
>|
<COFACTOR:
"\nCOFACTOR"
>|
<COMMENT:
"\nCOMMENT"
>|
<REFERENCE:
"\nREFERENCE"
>|
<PATHWAY:
"\nPATHWAY"
>|
<ORTHOLOG:
"\nORTHOLOG"
>|
<GENE:
"\nGENES"
>|
<DISEASE:
"\nDISEASE"
>|
<HTMLTAG:
("<A HREF=" (<ID>)+ ">") >|
<ENDTAG:
"</A>"
>|
<WSP:
[" ", "\t"]
>|
<NL:
["\n", "\r"]
>|
<IDSPACE:
(<ID> (<ID> | " ")*)
>|
<IDSPACEEQUAL:(<ID> (<ID> | " " | "=")*)
<IDGENE:(<ID> ("+") <ID>)
>|
<ANY:
~[]
>|
>|
/* Hilfstoken */
<#ID: ["0"-"9", "%",":", "+", "-", "(", ")", ",",";", "$", "A"-"Z",
"a"-"z", "_", "?", "/", "\’", ".", "[", "]"]>
}
void parse() :
{Token t = null; StringBuffer sb = new StringBuffer();}
{
(<ANY> | <IDSPACE> | <IDSPACEEQUAL> | <HTMLTAG> | <ENDTAG> |
<WSP> | <NL>)*
(<NAME> ((<WSP>)+
t=<IDSPACE> {data.name.addElement(t.image);} (<NL>)?)+)?
(<ECLASS> ((<WSP>)+
t=<IDSPACE> {data.eclass.addElement(t.image);} (<NL>)? )+)?
(<SYSNAME> ((<WSP>)+
t=<IDSPACE> {data.sysname.addElement(t.image);} (<NL>)? )+)?
(<REACTION> ((<WSP>)+
((t=<IDSPACEEQUAL> {if(sb.length()!=0) {
data.reaction.addElement(sb.toString());
}
sb = new StringBuffer(t.image);}) |
(t=<IDSPACE> {sb.append(" ");sb.append(t.image);}))
(<NL>)?)+ {data.reaction.addElement(sb.toString());})?
(<SUBSTRATE> ((<WSP>)+ (<HTMLTAG>)?
t=<IDSPACE> {data.substrate.addElement(t.image);}
(<ENDTAG>)? (<NL>)? )+)?
200
B.6 Parameterdateien zur Generierung des KEGG-Adapters
(<PRODUCT> ((<WSP>)+ (<HTMLTAG>)?
t=<IDSPACE> {data.product.addElement(t.image);}
(<ENDTAG>)? (<NL>)? )+)?
(<INHIBITOR> ((<WSP>)+ (<HTMLTAG>)?
t=<IDSPACE> {data.inhibitor.addElement(t.image);}
(<ENDTAG>)? (<NL>)? )+)?
(<COFACTOR> ((<WSP>)+ (<HTMLTAG>)?
t=<IDSPACE> {data.cofactor.addElement(t.image);}
(<ENDTAG>)? (<NL>)? )+)?
{sb = new StringBuffer();}
(<COMMENT> ((<WSP>)+ ( (t=<IDSPACE> {sb.append(t.image);}) |
(<HTMLTAG> t=<IDSPACE> {sb.append(t.image+" ");} <ENDTAG>)
(<WSP>)*)+ (<NL>)? )+)?
{data.comment.addElement(sb.toString());}
(<REFERENCE> ((<WSP>)+
t=<IDSPACE> (<HTMLTAG><IDSPACE><ENDTAG><IDSPACE>)?(<NL>)?)+)?
( <PATHWAY> ((<WSP>)+ <IDSPACE> (<HTMLTAG>)?
t=<IDSPACE> {data.pathway.addElement
(t.image.substring(t.image.indexOf(’P’)+1,t.image.length()));}
(<ENDTAG>)? (<WSP>)+ <IDSPACE> (<NL>)? )+)?
(<ORTHOLOG> ((<WSP>)+ <IDSPACE> (<HTMLTAG>)?
t=<IDSPACE> (<ENDTAG>)? (<WSP>)+ <IDSPACE> (<NL>)? )+)?
(<GENE> ( (<WSP>)+ (<IDSPACE>)? (t = <HTMLTAG>
{data.gene.addElement(t.image.substring
(t.image.indexOf("?")+1,t.image.indexOf(">")));}
<IDSPACE> <ENDTAG> (<WSP>)* (<IDSPACE>)?)+ (<NL>)? )+)?
(<DISEASE> ( (<WSP>)+ (<IDSPACE>)? (t = <HTMLTAG> {
data.disease.addElement(t.image.substring
(t.image.indexOf(’+’)+1,t.image.indexOf(">")));}
<IDSPACE> <ENDTAG> (<WSP>)* (<IDSPACE>
(<NL> (<WSP>)* <IDSPACE>)*)? )+ (<NL>)? )+)?
{return;}
}
----------------- Datei "keggkeygramma.txt" ------------------TOKEN : {
<ANY: ~[] >|
<EC_NR: ((<DIGIT>)+ <DOT> (<DIGIT>)+ <DOT> (<DIGIT>)+ <DOT> (<DIGIT>)+)>|
<ENZYMEPREFIX: "<A HREF=/dbget-bin/www_bget?ligand+">|
<#DOT: ["."]>|
<#DIGIT: ["0"-"9"] >
}
201
Anhang B Ausgewählte Spezifikationen und Implementierungsbeispiele des BDS
void parse(Vector ret) :
{String s = null; Token t=null; int i = 0;}
{
((<ENZYMEPREFIX> t = <EC_NR> {ret.addElement(t.image);} )
| <EC_NR> | <ANY> )* <EOF>
}
202
Literaturverzeichnis
[1] Kitano, H.: Systems Biology: A Brief Overview. Science, 295:1662–1664, 2002.
[2] Stephens, S. M., J. Y. Chen, M. G. Davidson, S. Thomas und B. M. Trute: Oracle Database 10g: a platform for BLAST search and Regular Expression
pattern matching in life sciences. Nucleid Acids Ressearch, 33(suppl 1):D675–679,
2005.
[3] Valencia, Alfonso: Search and retrieve: Large-scale data generation is becoming increasingly important in biological research. But how good are the tools to
make sense of the data? EMBO Reports, 3(5):396–400, 2002.
[4] Stevens, R., C. Goble, P. Baker und A. Brass: A classification of tasks in
bioinformatics. Bioinformatics, 17(2):180–188, 2001.
[5] Stein, L.: Creating a bioinformatics nation. Nature, 417:119–120, 2002.
[6] Berg, P. und M. Singer: Die Sprache der Gene: Grundlagen der Molekulargenetik. Heidelberg: Spektrum Akademischer Verlag, 1993.
[7] Brown, T. A.: Moderne Genetik. Heidelberg: Spektrum Akademischer Verlag,
1999.
[8] Knippers, R.: Molekulare Genetik. Stuttgart, New York: Georg Thieme Verlag,
7. Auflage, 1997.
[9] Löffler, G. und P. E. Petrides: Biochemie und Pathobiochemie. Berlin et
al.: Springer, 6 Auflage, 1998. Gebundene Ausgabe.
[10] Watson, J. D. und F. H. C. Crick: Genetical Implications of the Structure
of Deoxyribonucleid Acid. Nature, 171(4361):964–967, 1953.
[11] Adams, M. D., S. E. Celniker, R. A. Holt, C. A. Evans, J. D. Gocayne,
P. G. Amanatides, S. E. Scherer, P. W. Li, R. A. Hoskins, R. F. Galle,
R. A. George, S. E. Lewis, S. Richards, M. Ashburner, S. N. Henderson, G. G. Sutton, J. R. Wortman, M. D. Yandell, Q. Zhang, L. X.
Chen, R. C. Brandon, Y.-H. C. Rogers, R. G. Blazej, M. Champe, B. D.
Pfeiffer, K. H. Wan, C. Doyle, E. G. Baxter, G. Helt, C. R. Nelson,
George L. Gabor M., J. F. Abril, A. Agbayani, H.-J. An, C. AndrewsPfannkoch, D. Baldwin, R. M. Ballew, A. Basu, J. Baxendale, L. Bayraktaroglu, E. M. Beasley, K. Y. Beeson, P. V. Benos, B. P. Berman,
203
Literaturverzeichnis
D. Bhandari, S. Bolshakov, D. Borkova, M. R. Botchan, J. Bouck,
P. Brokstein, P. Brottier, K. C. Burtis, D. A. Busam, H. Butler,
E. Cadieu, A. Center, I. Chandra, J. M. Cherry, S. Cawley, C. Dahlke, L. B. Davenport, P. Davies, B. de Pablos, A. Delcher, Z. Deng,
A. D. Mays, I. Dew, S. M. Dietz, K. Dodson, L. E. Doup, M. Downes,
S. Dugan-Rocha, B. C. Dunkov, P. Dunn, K. J. Durbin, C. C. Evangelista, C. Ferraz, S. Ferriera, W. Fleischmann, C. Fosler, A. E. Gabrielian, N. S. Garg, W. M. Gelbart, K. Glasser, A. Glodek, F. Gong,
J. H. Gorrell, Z. Gu, P. Guan, M. Harris, N. L. Harris, D. Harvey,
T. J. Heiman, J. R. Hernandez, J. Houck, D. Hostin, K. A. Houston,
T. J. Howland, M.-H. Wei, C. Ibegwam, M. Jalali, F. Kalush, G. H.
Karpen, Z. Ke, J. A. Kennison, K. A. Ketchum, B. E. Kimmel, C. D.
Kodira, C. Kraft, S. Kravitz, D. Kulp, Z. Lai, P. Lasko, Y. Lei, A. A.
Levitsky, J. Li, Z. Li, Y. Liang, X. Lin, X. Liu, B. Mattei, T. C. McIntosh, M. P. McLeod, D. McPherson, G. Merkulov, N. V. Milshina,
C. Mobarry, J. Morris, A. Moshrefi, S. M. Mount, M. Moy, B. Murphy, L. Murphy, D. M. Muzny, D. L. Nelson, D. R. Nelson, K. A.
Nelson, K. Nixon, D. R. Nusskern, J. M. Pacleb, M. Palazzolo, Gjange S. Pittman, S. Pan, J. Pollard, V. Puri, M. G. Reese, K. Reinert,
K. Remington, R. D. C. Saunders, F. Scheeler, H. Shen, B. C. Shue,
I. Sid-Kiamos, M. Simpson, M. P. Skupski, T. Smith, E. Spier, A. C.
Spradling, M. Stapleton, R. Strong, E. Sun, R. Svirskas, C. Tector,
R. Turner, E. Venter, A. H. Wang, X. Wang, Z.-Y. Wang, D. A. Wassarman, G. M. Weinstock, J. Weissenbach, S. M. Williams, T. Woodage, K. C. Worley, D. Wu, S. Yang, Q. A. Yao, J. Ye, R.-F. Yeh, J. S.
Zaveri, M. Zhan, G. Zhang, Q. Zhao, L. Zheng, X. H. Zheng, F. N.
Zhong, W. Zhong, X. Zhou, S. Zhu, X. Zhu, H. O. Smith, R. A. Gibbs,
E. W. Myers, G. M. Rubin und J. C. Venter: The Genome Sequence of
Drosophila melanogaster. Science, 287(5461):2185–2195, 2000.
[12] Pennisi, E.: A Low Number Wins the GeneSweep Pool. Science, 300:1484, 2003.
[13] Westbrook, J., Z. Feng, S. Jain, T. N. Bhat, N. Thanki, V. Ravichandran, G. L. Gilliland, W. Bluhm, H. Weissig, D. S. Greer, P. E.
Bourne und H. M. Berman: The Protein Data Bank: unifying the archive.
Nucleic Acids Research, 30(1):245–248, 2002.
[14] Kanehisa, M., S. Goto, S. Kawashima und A. Nakaya:
The
KEGG database at GenomeNet. Nucleic Acids Research, 30(1):42–46, 2002.
http://www.genome.ad.jp/kegg/.
[15] Elmasri, N. und S. B. Navathe: Fundamentals of database systems. Reading,
Mass. et al.: Addison-Wesley, 3rd international edition Auflage, 2000.
[16] Atzeni, P., S. Ceri, S. Paraboschi und R. Torlone: Database Systems
concepts, languages and architectures. London: McGraw-Hill, 1999.
204
Literaturverzeichnis
[17] Codd, E. F.: Relational Database: A Practical Foundation for Productivity.
Communications of the ACM, 25(2):109–117, Februar 1982.
[18] Habermann, H.-J. und F. Leymann: Repository — Eine Einführung. R. Oldenbourg Verlag, München, 1993.
[19] Peckham, J. und F. Maryanski: Semantic Data Models. ACM Computing
Surveys, 20(3):153–189, September 1988.
[20] Oestereich, B.: Objektorientierte Softwareentwicklung - Analyse und Design
mit der Unified Modeling Language (4. aktualisierte Auflage). München et al.:
Oldenbourg, 1998.
[21] Höding, M.: Methoden und Werkzeuge zur systematischen Integration von Dateien in Föderierte Datenbanksysteme. Shaker Verlag, Aachen, 2000.
[22] World Wide Web Consortium (W3C): XML Query Language (XQL).
http://www.w3.org/TandS/QL/QL98/pp/xql.html.
[23] Deutsch, A., M. Fernandez, D. Florescu, A. Levy und D. Suciu: A Query Language for XML. http://www8.org/w8-papers/1c-xml/query/query.html.
[24] International Organization for Standardization (ISO): Database Language SQL. Document ISO/IEC 9075:1992, 1992.
[25] International Organization for Standardization (ISO): Database Language SQL. Document ISO/IEC 9075:1999, 1999.
[26] Cattell, R.: The Object Database Standard: ODMG-2.0. San Fransisco: Morgan Kaufmann, 1997.
[27] Codd, E. F.: A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, 13(6):377–387, Juni 1970.
[28] SOAP 1.2.
http://www.w3.org/TR/2002/CR-soap12-part1-20021219
http://www.w3.org/TR/2002/CR-soap12-part2-20021219.
&
[29] Brockschmidt, K.: Inside OLE, 2nd edition. Redmond, Wash.: Microsoft
Press, 1995.
[30] Siegel, J.: CORBA Fundamentals and Programming. New York: Wiley, 1996.
[31] Siple, M. D.: The complete guide to Java database programming with JDBC.
McGraw-Hill, 1998.
[32] Geiger, K.: Inside ODBC : [Der Entwicklerleitfaden zum Industriestandard
fuer Datenbank-Schnittstellen]. Unterschleissheim : Microsoft Press, 1995.
205
Literaturverzeichnis
[33] Bell, D. und J. Grimson: Distributed database systems. Wokingham et al.:
Addison-Wesley, 1992.
[34] Conrad, S.: Föderierte Datenbanksysteme: Konzepte der Datenintegration.
Springer-Verlag, Berlin/Heidelberg, 1997.
[35] Özsu, M. T. und P. Valduriez: Principles of Distributed Database Systems.
Prentice Hall, 1999.
[36] Wiederhold, G.: Mediators in the Architecture of Future Information Systems.
IEEE Computer, 25(3):38–49, März 1992.
[37] Höding, M., C. Türker, S. Janssen, K.-U. Sattler, S. Conrad, G. Saake und I. Schmitt: Föderierte Datenbanksysteme — Grundlagen und Ziele des
Projektes SIGMAF DB . Preprint 12, Fakultät für Informatik, Universität Magdeburg, 1995.
[38] Sheth, A. P. und J. A. Larson: Federated Database Systems for Managing
Distributed, Heterogeneous, and Autonomous Databases. ACM Computing Surveys, 22(3):183–236, September 1990.
[39] Wiederhold, G.: Modeling and System Maintenance. In: Papazoglou, M.
(Herausgeber): OOER’95: Object-Oriented and Entity-Relationship Modeling,
Proc. of the 14th Int. Conf., Gold Coast, Australia, December 1995, Band 1021
der Reihe Lecture Notes in Computer Science, Seiten 1–20, Berlin, 1995. SpringerVerlag.
[40] Galperin, M. Y.: The Molecular Biology Database Collection: 2005 update.
Nucleic Acids Research, 33(1):D5–D24, 2005.
[41] Halevy, A. Y.: Answering Queries using Views: A Survey. The VLDB Journal,
10(4):270–294, 2001.
[42] Inmon, W. H.: Building the Data Warehouse,3rd Edition. John Wiley & Sons,
Inc., New York, NY, USA, 2002.
[43] Karp, P. D.: A Strategy for Database Interoperation. Journal of Computational
Biology, 2(4):573–586, 1995.
[44] Schinzer, H., C. Bange und H. Mertens: Data Warehouse und Data Mining.
Verlag Franz Vahlen, 1999. München.
[45] Fujibuchi, W., S. Goto, H. Migimatsu, I. Uchiyama, A. Ogiwara,
Y. Akiyama und M. Kanehisa: DBGET/LinkDB: an Integrated Database
Retrieval System. In: 3rd Pacific Symposium on Biocomputing, Seiten 683–694,
1997.
206
Literaturverzeichnis
[46] Boeckmann, B., A. Bairoch, R. Apweiler, M.-C. Blatter, A. Estreicher, E. Gasteiger, M. J. Martin, K. Michoud, C. O’Donovan, I. Phan,
S. Pilbout und M. Schneider: The SWISS-PROT protein knowledgebase and
its supplement TrEMBL in 2003. Nucleic Acids Research, 31(1):365–370, 2003.
[47] Stajich, J. E., D. Block, K. Boulez, S. E. Brenner, S. A. Chervitz,
C. Dagdigian, G. Fuellen, J. G. R. Gilbert, I. Korf, H. Lapp, H. Lehväslaiho, C. Matsalla, C. J. Mungall, B. I. Osborne, M. R. Pocock,
P. Schattner, M. Senger, L. D. Stein, E. Stupka, M. D. Wilkinson und
E. Birney: The Bioperl Toolkit: Perl Modules for the Life Sciences. Genome
Research, 12(10):1611–1618, 2002.
[48] Hermjakob, H., W. Fleischmann und R. Apweiler: Swissknife – ’lazy
parsing’ of SWISS-PROT entries. Bioinformatics, 15(9):771–772, 1999.
[49] Künne, C., M. Lange, T. Funke, H. Miehe, I. Grosse und U. Scholz:
CR–EST: a resource for crop ESTs. Nucleic Acids Research, 33(suppl 1):D619–
621, 2005.
[50] Kim, W. und J. Seo: Classifying Schematic and Data Heterogeneity in Multidatabase Systems. IEEE Computer, 24(12):12–18, 1991.
[51] Köhler, J.: SEMEDA (Semantic Meta-Database): Ontology Based Semantic
Integration of Biological Databases. Dissertation, Universität Bielefeld, Technische
Fakultät, 2003. http://bieson.ub.uni-bielefeld.de/volltexte/2003/349/.
[52] Batini, C., M. Lenzerini und S. B. Navathe: A Comparative Analysis
of Methodologies for Database Schema Integration. ACM Computing Surveys,
18(4):323–364, Dezember 1986.
[53] Stoesser, G., W. Baker, A. van den Broek, E. Camon, M. GarciaPastor, C. Kanz, T. Kulikova, R. Leinonen, Q. Lin, V. Lombard, R. Lopez, T. Redaschi, P. Stoehr, M. A. Tuli, K. Tzouvara und R. Vaughan:
The EMBL Nucleotide Sequence Database. Nucleic Acids Research, 30(1):21–26,
2002.
[54] Benson, D. A., I. Karsch-Mizrachi, D. J. Lipman, J. Ostell und D. L.
Wheeler: GenBank. Nucleic Acids Research, 33(suppl 1):D34–38, 2005.
[55] Tateno, Y., N. Saitou, K. Okubo, H. Sugawara und T. Gojobori: DDBJ in collaboration with mass-sequencing teams on annotation. Nucleic Acids
Research, 33(suppl 1):D25–28, 2005.
[56] Discala, C., X. Benigni, E. Barillot und G. Vaysseix: DBcat: a catalog
of 500 biological databases. Nucleic Acids Research, 28(1):8–9, 2000.
207
Literaturverzeichnis
[57] Bry, F. und P. Kröger: A Computational Biology Database Digest: Data, Data
Analysis, and Data Management. Distributed and Parallel Databases, 13(1):7–42,
2003.
[58] Scholz, U.: FRIDAQ – Ein Framework zur Integration molekularbiologischer
Datenbestände. Dissertation, Otto-von-Guericke-Universität Magdeburg, Fakultät für Informatik, Institut für Technische und Betriebliche Informationssysteme,
2002.
[59] Center, Kyoto University Bioinformatics: Growth of the Sequence and
3D Structure Databases. http://www.genome.ad.jp/dbget/db growth.html.
[60] Stevens, R., P. Baker, S. Bechhofer, G. Ng, A. Jacoby, N. W. Paton, C. A. Goble und A. Brass: TAMBIS: Transparent Access to Multible
Bioinformatics Information Sources. Bioinformatics, 16(4):184–185, 2000.
[61] Köhler, J., S. Philippi und M. Lange: SEMEDA: ontology based semantic
integration of biological databases. Bioinformatics, 19(18):2420–2427, 2003.
[62] Ashburner, M., C. A. Ball, J. A. Blake, D. Botstein, H. Butler,
J. M. Cherry, A. P. Davis, K. Dolinski, S. S. Dwight, J. T. Eppig,
M. A. Harris, D. P. Hill, L. Issel-Tarver, A. Kasarskis, S. Lewis, J. C.
Matese, J. E. Richardson, M. Ringwald, Rubin G. M. und G. Sherlock:
Gene Ontology: tool for the unification of biology. Nature Genetics, 25:25–29,
2000.
[63] National
Library
of
Medicine:
http://www.nlm.nih.gov/mesh/.
[64] World
Wide
Web
Consortium
http://www.w3.org/2001/sw/.
Medical
(W3C):
Subject
Headings.
Semantic
Web.
[65] World Wide Web Consortium (W3C): OWL Web Ontology Language Overview - W3C Recommendation 10 February 2004. http://www.w3.org/TR/owlfeatures/.
[66] Cognitive Science Laboratory at Princeton University: WordNet – a
lexical database for the english language. http://www.cogsci.princeton.edu/ wn/.
[67] Roberts, R. J., M. Belfort, T. Bestor, A. S. Bhagwat, T.A. Bickle,
J. Bitinaite, R. M. Blumenthal, S. K. Degtyarev, D. T. F. Dryden,
K. Dybvig, K. Firman, E. S. Gromova, R. I. Gumport, S. E. Halford,
S. Hattman, J. Heitman, D. P. Hornby, A. Janulaitis, A. Jeltsch,
J. Josephsen, A. Kiss, T. R. Klaenhammer, I. Kobayashi, H. Kong,
D. H. Kruger, S. Lacks, M. G. Marinus, M. Miyahara, R. D. Morgan,
N. E. Murray, V. Nagaraja, A. Piekarowicz, A. Pingoud, E. Raleigh,
D. N. Rao, N. Reich, V. E. Repin, E. U. Selker, P.-C. Shaw, D. C.
208
Literaturverzeichnis
Stein, B. L. Stoddard, W. Szybalski, T. A. Trautner, J. L. Van Etten, J. M. B. Vitor, G. G. Wilson und S.-Y. Xu: A nomenclature for
restriction enzymes, DNA methyltransferases, homing endonucleases and their
genes . Nucleic Acids Research, 31(7):1813–1820, 2003.
[68] Nomenclature Committee of the International Union of Biochemistry and Molecular Biology (NC-IUBMB): MRecommendations of the
Nomenclature Committee of the International Union of Biochemistry and Molecular Biology on the Nomenclature and Classification of Enzyme-Catalysed Reactions. http://www.chem.qmul.ac.uk/iubmb/enzyme/.
[69] Bairoch, A., R. Apweiler, C. H. Wu, W. C. Barker, B. Boeckmann,
S. Ferro, E. Gasteiger, H. Huang, R. Lopez, M. Magrane, M. J. Martin, D. A. Natale, C. O’Donovan, N. Redaschi und L. L. Yeh: The Universal Protein Resource (UniProt). Nucleic Acids Research, 33(suppl 1):D154–
159, 2005.
[70] Hamosh, A., A. F. Scott, J. Amberger, C. Bocchini, D. Valle und V. A.
McKusick: Online Mendelian Inheritance in Man (OMIM), a knowledgebase of
human genes and genetic disorders. Nucleic Acids Research, 30(1):52–55, 2002.
[71] National Center for Health Statistics: International Classification of Diseases, Tenth Revision, Clinical Modification (ICD-10-CM).
http://www.cdc.gov/nchs/about/otheract/icd9/icd10cm.htm.
[72] Chemical Abstract Service: CAS Registry Numbers. http://www.cas.org/.
[73] Daylight
Chemical
http://www.daylight.com.
Information
Systems,
Inc.:
SMILES.
[74] Kanz, C., P. Aldebert, N. Althorpe, W. Baker, A. Baldwin, K. Bates, P. Browne, A. van den Broek, M. Castro, G. Cochrane, K. Duggan, R. Eberhardt, N. Faruque, J. Gamble, F. G. Diez, N. Harte,
T. Kulikova, Q. Lin, V. Lombard, R. Lopez, R. Mancuso, M. McHale, F. Nardone, V. Silventoinen, S. Sobhany, P. Stoehr, M. A. Tuli,
K. Tzouvara, R. Vaughan, D. Wu, W. Zhu und R. Apweiler: The EMBL Nucleotide Sequence Database. Nucleic Acids Research, 33(suppl 1):D29–33,
2005.
[75] Achard, F., G. Vaysseix und E. Barillot: XML, bioinformatics and data
integration. Bioinformatics, 17(2):115–125, 2001.
[76] Riikonen, P., J. Boberg, T. Salakoski und M. Vihinen: BioWAP, mobile
Internet service for bioinformatics. Bioinformatics, 17(9):855–856, 2001.
[77] Pearson, W. und D. Lipman: Improved tools for biological sequence comparison. Proceedings of the National Academie of Science, USA, 85:2444–2448, 1988.
209
Literaturverzeichnis
[78] Fenyö, D: The biopolymer markup language. Bioinformatics, 15(4):339–340,
1999. http://www.proteometrics.com/BIOML/.
[79] Murray-Rust, P. und H.S. Rzepa: Chemical markup, XML, and the Worldwide Web. 1. Basic principles. Journal of Chemical Information and Computer
Sciences, 39(6):928–946, 1999. http://www.xml-cml.org.
[80] Hucka, M., A. Finney, H. M. Sauro, H. Bolouri, J. C. Doyle und H. Kitano: The systems biology markup language (SBML): a medium for representation and exchange of biochemical network models. Bioinformatics, 19(4):524–531,
2003. http://www.sbw-sbml.org/sbml/docs/.
[81] Gilmour, R.: Taxonomic markup language: applying XML to systematic data.
Bioinformatics, 16(4):406–407, 2000. http://www.albany.edu/∼gilmr/pubxml/.
[82] Lichun, W., J.-J. Riethoven und A. Robinson: XEMBL: distributing EMBL data in XML format. Bioinformatics, 18(8):1147–1148, 2002.
[83] Ashish, N. und C. A. Knoblock: Semi-Automatic Wrapper Generation for
Internet Information Sources. In: Proceedings of the Second IFCIS International
Conference on Cooperative Information Systems, Seiten 160–169. Publisher IEEE
Computer Society, 1997.
[84] Lacroix, Z.: Biological Data Integration: Wrapping Data and Tools. IEEE Transactions on Information Technology in Biomedicine, 6(2):123–128, 2002.
[85] World
Wide
Web
Consortium
http://www.w3.org/XML/Schema.
(W3C):
XML
Schema.
[86] Helgesen, C. und N. Redaschi: EMBL Nucleotide Sequence Database Object Model. Technischer Bericht, The European Bioinformatics Institute, 1998.
http://corba.ebi.ac.uk/models/emblom doc.html.
[87] BioJava Project Team: The BioJava Project. http://www.biojava.org.
[88] BioPython
Project
http://www.biopython.org.
Team:
The
BioPython
Project.
[89] Altschul, S. F., T. L. Madden, A. A. Schaffer, J. Zhang, Z. Zhang,
W. Miller und D. J. Lipman: Gapped BLAST and PSI-BLAST: a new generation of protein database search programs. Nucleic Acids Research, 25(17):3389–
3402, 1997.
[90] Coupaye, T.: Wrapping SRS with CORBA: from textual data to distributed
objects. Bioinformatics, 15(4):333–338, 1999.
[91] Parsons, J. D. und Rodriguez-Tomé: JESAM: CORBA software components to create and publish EST alignments and clusters. Bioinformatics,
16(4):313–325, 2000.
210
Literaturverzeichnis
[92] Campagne, F.: Clustalnet: the joining of Clustal and CORBA. Bioinformatics,
16(7):606–612, 2000.
[93] Kemp, G. J. L., C. J. Robertson und P. M. D. Gray: Efficient access to
biological databases using CORBA. CCP11 Newsletter, 3.1(7), 1999.
[94] Casstevens, T. M. und E. S. Buckler: GDPC: connecting researchers with
multiple integrated data sources. Bioinformatics, Seite bth277, 2004.
[95] Kawashima, S., T. Katayama, S. Sato und M. Kanehisa: KEGG API: A
Web Service Using SOAP/WSDL to Access the KEGG System. Genome Informatics, 14:673–674, 2003.
[96] Pillai, S., V. Silventoinen, K. Kallio, M. Senger, S. Sobhany, J. Tate,
S. Velankar, A. Golovin, K. Henrick, P. Rice, P. Stoehr und R. Lopez:
SOAP-based services provided by the European Bioinformatics Institute. Nucleid
Acids Ressearch, 33(suppl 2):W25–28, 2005.
[97] Florescu, D., A. Levy, I. Manolescu und D. Suciu: Query Optimization in the Presence of Limited Access Patterns. In: Delis, A., C. Faloutsos
und S. Ghandeharizadeh (Herausgeber): SIGMOD 1999, Proceedings ACM
SIGMOD International Conference on Management of Data, June 1-3, 1999,
Philadelphia, Pennsylvania, USA, Seiten 311–322. ACM Press, 1999.
[98] Johnson, S. C.: Yacc: Yet another compiler compiler. Technical Report CSTR
32, AT&T, 1978.
[99] java.net: JavaCC: the Java Compiler Compiler. https://javacc.dev.java.net.
[100] Stephanik, A.: Reengineering von Datenbankadaptern im BioBench-Projekt.
Diplomarbeit, Otto-von-Guericke-Universität Magdeburg, Fakultät für Informatik, Institut für Technische und Betriebliche Informationssysteme, May 1999.
[101] Ramu, C.: SIR: a simple indexing and retrieval system for biological flat file
databases. Bioinformatics, 17(8):756–758, 2001.
[102] Pocock, M. R., T. Hubbard und E. Birney: SPEM: a parser for EMBL
style flat file database entries. Bioinformatics, 14(9):823–824, 1998.
[103] Ramu, C., C. Gemünd und T. J. Gibson: Object-oriented parsing of biological
databases with Python. Bioinformatics, 16(7):628–638, 2000.
[104] Scannapieco, M., P. Missier und C. Batini: Data Quality at a Glance.
Datenbank-Spektrum, 14:6–14, 2005.
[105] Iliopoulos, I., S. Tsoka, M. A. Andrade, A. J. Enright, M. Carroll,
P. Poullet, V. Promponas, T. Liakopoulos, G. Palaios, C. Pasquier,
S. Hamodrakas, J. Tamames, A. T. Yagnik, A. Tramontano, D. Devos,
211
Literaturverzeichnis
C. Blaschke, A. Valencia, D. Brett, D. Martin, C. Leroy, I. Rigoutsos, C. Sander und C. A. Ouzounis: Evaluation of annotation strategies using
an entire genome sequence. Bioinformatics, 19(6):717–726, 2003.
[106] Andrade, M. A., N. P. Brown, C. Leroy, S. Hoersch, A. de Daruvar,
C. Reich, A. Franchini, J. Tamames, A. Valencia, C. Ouzounis und
C. Sander: Automated genome sequence analysis and annotation. Bioinformatics, 15(5):391–412, 1999.
[107] Frishman, D., K. Albermann, J. Hani, K. Heumann, A. Metanomski,
A. Zollner und H.-W. Mewes: Functional and structural genomics using
PEDANT. Bioinformatics, 17(1):44–57, 2001.
[108] Hubbard, T., D. Barker, E. Birney, G. Cameron, Y. Chen, L. Clark,
T. Cox, J. Cuff, V. Curwen, T. Down, R. Durbin, E. Eyras, J. Gilbert, M. Hammond, L. Huminiecki, A. Kasprzyk, H. Lehvaslaiho, P. Lijnzaad, C. Melsopp, E. Mongin, P. Pettett, M. Pocock, S. Potter,
R. Rust, E. Schmidt, S. Searle, G. Slater, J. Smith, W. Spooner,
A. Stabenau, J. Stalker, E. Stupka, A. Ureta-Vidal, I. Vastrik und
M. Clamp: The Ensembl genome database project. Nucleic Acids Research,
30(1):38–41, 2002.
[109] Ouzounis, C. A. und P. D. Karp: The past, present and future of genome-wide
re-annotation. Genome Biology, 3(2):comment2001.1–2001.6, 2001.
[110] Karp, P., S. Paley und J. Zhu: Database verification studies of SWISS–PROT
and GenBank. Bioinformatics, 17(6):526–532, 2001.
[111] Leser, Ulf und Peter Rieger: Integration molekularbiologischer Daten.
Datenbank-Spektrum, 3(6):56–66, 2003.
[112] Köhler, J.: Integration of Life Science Databases. BioSilico, 2004.
[113] Kanehisa, M. und S. Goto:
KEGG: Kyoto Encyclopedia of
Genes and Genomes.
Nucleic Acids Research, 28(1):27–30, 2000.
http://www.genome.ad.jp/kegg/.
[114] Etzold, T., A. Ulyanow und P. Argos: SRS: Information Retrieval System
for Molecular Biology Data Banks. Methods in Enzymology, 266:114–128, 1996.
[115] Frishman, D. und H. W. Mewes: PEDANTic genome analysis. Trends in
Genetics, 13(10):415–416, 1997.
[116] Senger, M., K.-H. Glatting, O. Ritter und S. Suhai: X-Husar, an Xbased graphical interface for the analysis of genomic sequences. Computer Methods and Programs in Biomedicine, 46(2):131–142, 1995.
212
Literaturverzeichnis
[117] Davidson, S. B., C. Overton, V. Tannen und L. Wong: BioKleisli: a digital
library for biomedical researchers. International Journal on Digital Libraries, 1:36–
53, 1997.
[118] Topaloglou, T., A. Kosky und V. Markowitz: Seamless Integration
of Biological Applications within a Database Framework. In: Lengauer, T.,
R. Schneider, D. Boork, D. Brutlag, J. Glasgow, H.-W. Mewes und
R. Zimmer (Herausgeber): The Seventh International Conference on Intelligent
Systems for Molecular Biology (ISMB ’99), Heidelberg, Germany, August 6-10,
Seiten 272–281, 1999.
[119] Matsuda, H., T. Imai, M. Nakanishi und A. Hashimoto: Querying Molekular Biology Databases by Integration Using Multiagents. IEICE TRANS. INF.
& SYST., E82-D(1):199–207, 1999.
[120] Wilkinson, M. D. und M. Links: BioMOBY: An open source biological web
services proposal. Briefings in Bioinformatics, 3(4):331–341, 2002.
[121] Haas, L. M., P. M. Schwarz, P. Kodali, E. Kotlar, J. E. Rice und
W. C. Swope: DiscoveryLink: A system for integrated access to life sciences
data sources. IBM Systems Journal, 40(2):489–511, 2001.
[122] Davidson, S. B., C. Overton und P. Buneman: Challenges in Integrating
Biological Data Sources. Journal of Computational Biology, 2(4):557–572, 1995.
[123] Davidson, S. B., J. Crabtree, B. P. Brunk, J. Schug, V. Tannen, G. C.
Overton und Jr. C. J. Stoeckert: K2/Kleisli and GUS: Experiments in
integrated access to genomic data sources. IBM Systems Journal, 40(2):512–531,
2001.
[124] Lacroix, Z. und T. Critchlow: Bioinformatics: Managing Scientific Data.
Morgan Kaufmann Publishers, 2003.
[125] Etzold, T., H. Harris und S. Beaulah: SRS: An Integration Platform for
Databanks and Analysis Tools in Bioinformatics, Kapitel 5, Seiten 109–145. Bioinformatics: Managing Scientific Data. Morgan Kaufmann Publishers, 2003.
[126] Biomax Informatics AG: BioRS. http://www.biomax.de/products.
[127] Haas, L. M., P. Kodali, J. E. Rice, P. M. Schwarz und W. C. Swope:
Integrating Life Sciences Data – With a Little Garlic. In: BIBE 2000: IEEE International Symposium on Bio-Informatic & Biomedical Engineering, Washington,
D.C., U.S.A., November 8-10, Seiten 5–12. IEEE Computer Society, 2000.
[128] Tannen, V., S. B. Davidson und S. Harker: The Information Integration
System K2, Kapitel 8, Seiten 225–248. Bioinformatics: Managing Scientific Data.
Morgan Kaufmann Publishers, 2003.
213
Literaturverzeichnis
[129] Buneman, P., S. Naquiv, V. Tannen und W. Limsoon: Principles of
programming with complex objects and collection types. Theoretical Computer
Science, 149:3–48, 1995.
[130] Schuler, G.D., J.A. Epstein, H. Ohkawa und J.A. Kans: Entrez: Molecular Biology Database and Retrieval System. Methods in Enzymology, 266:141–161,
1996.
[131] Senger, M., T. Flores, K.-H. Glatting, P. Ernst, A. HotzWagenblatt und S. Suhai: W2H: WWW interface to the GCG sequence
analysis package. Bioinformatics, 14(5):452–457, 1998.
[132] Chawathe, S. S., H. Garcia-Molina, J. Hammer, K. Ireland, Y. Papakonstantinou, J. D. Ullman und J. Widom: The TSIMMIS Project: Integration of Heteregenous Information Sources. In: Proc. of IPSI Conf., 1994.
[133] Shan, M.-C.: Pegasus Architecture and Design Principles. In: Buneman, P.
und S. Jajodia (Herausgeber): Proc. of the 1993 ACM SIGMOD Int. Conf.
on Management of Data, Washington, D.C., Band 22 der Reihe ACM SIGMOD
Record, Seiten 422–425. ACM Press, Juni 1993.
[134] Tork Roth, M., M. Arya, L. M. Haas, M. J. Carey, W. Cody, R. Fagin, P. M. Schwarz, J. Thomas und E. L. Wimmers: The Garlic Project. In:
Jagadish, H. V. und I. S. Mumick (Herausgeber): Proc. of the 1996 ACM SIGMOD Int. Conf. on Management of Data, Montreal, Quebec, Canada, Band 25
der Reihe ACM SIGMOD Record. ACM Press, Juni 1996.
[135] Schek, H.-J. und M. H. Scholl: The Relational Model with Relation-Valued
Attributes. Information Systems, 11(2):137–147, 1986.
[136] Balko, S., M. Lange, R. Schnee und U. Scholz: BioDataServer: An Applied Molecular Biological Data Integration Service. In: Istrail, S., P. Pevzner
und M. Waterman (Herausgeber): Data Integration in the Life Sciences, Band
2994 der Reihe Lecture Notes in Bioinformatics, Seiten 140–155. Berlin et al:
Springer, 2004.
[137] Prestwich, Steven und Stéphane Bressan: A SAT Approach to Query
Optimization in Mediator Systems. In: Proceedings of the Fifth International
Symposium on the Theory and Applications of Satisfiability Testing (SAT 2002),
Cincinnati, Ohio, USA, Seiten 252–259, 2002.
[138] Freier, A., R. Hofestädt und M. Lange: iUDB: An Object-Oriented System
for Modelling, Integration and Analysis of Gene Controlled Metabolic Networks.
In Silico Biology, 3:215–227, 2003.
[139] Freier, A.: Integrative Modellierung metabolischer Netzwerke. Dissertation, Universität Bielefeld, Technische Fakultät, 2005.
214
Literaturverzeichnis
[140] Lange, M., J. Köhler und P. Schweizer: Algebraic Concepts for Data Domains in Life Science. In: Lengauer, T., H.-P. Lenhof und R. Christmann
(Herausgeber): Poster Abstracts of the European Conference on Computational
Biology 2002, Saarbrücken, October 6–9, Seiten 134–135, 2002. Poster.
[141] Freier, A., R. Hofestädt, M. Lange, U. Scholz und A. Stephanik: BioDataServer: A SQL-based service for the online integration
of life science data.
In Silico Biology, 2(0005), 2002. Online Journal:
http://www.bioinfo.de/isb/2002/02/0005/.
[142] Barateiro, J. und H. Galhardas: A survey of data quality tools. DatenbankSpektrum, 14:15–21, 2005.
[143] Lange, M.: Integration heterogener WWW- und dateibasierter Informationsquellen sowie heterogener Datenbanksysteme in molekularbiologischen Informationssystemen – Methoden und Werkzeuge. Diplomarbeit, Otto-von-GuerickeUniversität Magdeburg, Fakultät für Informatik, Institut für Technische und Betriebliche Informationssysteme, Februar 1999.
[144] HSQLDB Development Group: HSQLDB - Lightweight 100% Java SQL Database Engine. http://www.hsql.org.
[145] Lange, M., V. Kumanduri, T. Münch, R. Schnee, U. Scholz und
P. Schweizer: DBOra: An Integrated Database for Context Based Search and
Browsing in Protein Data. In: Poster Abstracts of the European Conference on
Computational Biology 2003, Paris, September 27–30, 2003. Poster.
[146] Hofestädt, R. und T. Töpel: Case-based Support of Information Retrieval
and Analysis of Molecular Data. In: Proceedings of The 15th IEEE Symposium
on Computer-Based Medical Systems (CBMS 2002), Maribor, Slovenia, June 4-7,
Seiten 129–133, 2002.
[147] Töpel, T.: Untersuchung von Life-Science-Datenbeständen zur Identifikation
von Genotyp-Phänotyp-Korrelationen. Doktorarbeit, Universität Bielefeld, Technische Fakultät, 2004.
[148] Pfeiffer, T., I. Sánches-Valdenebro, J. C. Nuño, F. Montero und
S. Schuster: METATOOL: for studying metabolic networks. Bioinformatics,
15(3):251–257, 1999.
[149] Freier, A., R. Hofestädt, M. Lange und U. Scholz: Information Fusion
of Molecular Data Sources for Analysis of Metabolic Networks. In: ColladoVides, J. und R. Hofestädt (Herausgeber): Gene Regulation and Metabolism,
Seiten 49–84. MIT Press, 2002.
[150] Trißl, S., K. Rother, H. Müller, T. Steinke, I. Koch, R. Preissner,
C. Frommel und U. Leser: Columba: an integrated database of proteins, structures, and annotations. BMC Bioinformatics, 6(1):81, 2005.
215
Literaturverzeichnis
[151] Kirov, S. A., X. Peng, E. Baker, D. Schmoyer, B. Zhang und J. Snoddy: GeneKeyDB: A lightweight, gene-centric, relational database to support data
mining environments. BMC Bioinformatics, 6(1):72, 2005.
[152] Shah, S., Y. Huang, T. Xu, M. Yuen, J. Ling und B. F. F. Ouellette:
Atlas - a data warehouse for integrative bioinformatics. BMC Bioinformatics,
6(1):34, 2005.
[153] Lange, M., N. Sreenivasulu, A. Stephanik und U. Scholz: Data relationship mining in life science databases. In: Hofestädt, R. (Herausgeber):
Abstracts of the International Workshop Integrative Bioinformatics 2005, Bielefeld, July 4–5, Seiten 9–12, 2005.
[154] Soffner, M.: Offline Werkzeug zum Graphmining auf integrierten molekularbiologischen Datenbanken. Diplomarbeit, Otto-von-Guericke-Universität Magdeburg, Fakultät für Informatik, Institut für Technische und Betriebliche Informationssysteme, September 2005.
[155] Mischke, U., U. Scholz, T. Töpel, D. Scheible, R. Hofestädt und F. K.
Trefz: RAMEDIS – Rare Metabolic Diseases Publishing Tool for GenotypePhenotype Correlation. In: MedInfo 2001: Proceedings of the 10th World Congress
on Health and Medical Informatics, London, September 2 – 5, 2001, Seiten 970–
974. Amsterdam: IOS Press, 2001.
[156] Freier, A., R. Hofestädt und M. Lange: iUDB: An Object-Oriented
System for Modelling, Integration and Analysis of Gene Controlled Metabolic Networks.
In Silico Biology, 3(0019), 2003.
Online Journal:
http://www.bioinfo.de/isb/2003/03/0019/.
[157] Moldenhauer, F., M. Lange, R. Hofestädt und S. Schuster: METATOOL: Eine Software zur Analyse und Vorhersage metabolischer Stoffwechselwege. In: Hofestädt, R., K. Lautenbach und M. Lange (Herausgeber):
Modellierung und Simulation Metabolischer Netzwerke: DFG-Workshop im Rahmen des DFG-Schwerpunktes Informatikmethoden zur Analyse und Interpretation
großer genomischer Datenmengen, Magdeburg, 19. – 20. Mai 2000, Preprint Nr.
10, Seiten 96–102. Fakultät für Informatik, Universität Magdeburg, 2000.
[158] Höpfner, H. und M. Lange: phpMetatool - eine WWW-Schnittstelle für
das METATOOL. Laborpraktikumsbericht, Fakultät für Informatik, Universität Magdeburg, 2000. http://www-bm.ipk-gatersleben.de/tools/phpMetatool/.
[159] Wheeler, D. L., D. M. Church, S. Federhen, A. E. Lash, T. L. Madden, J. U. Pontius, G. D. Schuler, L. M. Schriml, E. Sequeira, T. A.
Tatusova und L. Wagner: Database resources of the National Center for
Biotechnology. Nucleic Acids Research, 31(1):28–33, 2003.
216
Werdegang
Ausbildung
09/1980 - 08/1990 Polytechnische Oberschule Johannes-R.-Becher in Magdeburg
09/1990 - 08/1992 Abitur am Cracauer Gymnasium in Magdeburg
10/1992 - 09/1993 Grundwehrdienst im 4./PzGrenBtl 401 Hagenow
10/1993 - 02/1999 Studium an der Otto-von-Guericke-Universität Magdeburg, Fachrichtung Informatik
in der Vertiefungsrichtung Datenbanksysteme
und Rechnerunterstützte Ingenieursysteme
mit dem Abschluß als Diplom-Informatiker
Berufspraxis
02/1999 - 10/2001 Drittmittelstellen als wissenschaftlicher Mitarbeiter an der Otto-von-Guericke-Universität Magdeburg, Institut für Technische Informationssysteme in den Projekten:
• Ein wissensbasierter Ansatz zur Diag”
nose von Stoffwechselwegerkrankungen“
(Kurt-Eberhard-Bode-Stiftung)
• Modellierung von genregulatorischen
”
Netzwerken“ (BMBF)
• Modellierung und Animation regulato”
rischer Genwirknetze“ (DFG)
11/2001 - 01/2002 wissenschaftlicher Mitarbeiter an der Ottovon-Guericke-Universität Magdeburg, Institut für Technische und Betriebliche Informationssysteme in der Arbeitsgruppe Rechnerunterstützte Ingenieursysteme
(Fortsetzung auf der nächsten Seite)
217
(Fortsetzung von der vorigen Seite)
02/2002 - 08/2003 Drittmittelstelle als wissenschaftlicher Mitarbeiter am IPK Gatersleben, Abteilung Cytogenetik in der Arbeitsgruppe Transkriptomanalyse im Projekt Elektronische In”
frastruktur für die Pflanzenbiotechnologie“
(BMBF)
seit 09/2003
tätig als Bioinformatiker am IPK Gatersleben, Abteilung Molekulare Genetik in der Arbeitsguppe Bioinformatik
218
Herunterladen