conference on Database Systems in Busines

Werbung
School of Information Technology
Proceedings of the
Studierendenprogramm at the 12th GIconference on Database Systems in
Business, Technology, and Web (BTW)
March, 6 2007, Aachen, Germany
Hagen Höpfner (IU Bruchsal, Germany)
Stefan Conrad (Uni Düsseldorf, Germany)
Technical Report 01/2007
Bruchsal, February 2007
ISSN 1861-9231 (print version)
ISSN 1861-924X (online version)
Dr. Hagen Höpfner is Lecturer in Databases and Information Systems at the
International University in Germany.
Prof. Dr. Stefan Conrad holds the chair on Databases and Information Systems at the
Heinrich-Heine-Universität in Düsseldorf, Germany.
Contact: [email protected]
International University in Germany
School of Information Technology
Campus 3
D-76646 Bruchsal
Germany
http://www.i-u.de
I
Vorwort
Nach der erfolgreichen Etablierung eines Studierendenprogramm bei der 9. BTW 2001 in Oldenburg
wurde auch bei der 10. BTW 2003 in Leipzig und bei der 11. BTW in Karlsruhe Studierenden die
Möglichkeit gegeben, Forschungsluft zu schnuppern. Die 12. BTW-Konferenz liegt nun hinter uns, und
auch in ihrem Rahmen fand im März 2007 in Aachen ein Studierendenprogramm statt. Erneut wurde
Studierende die Möglichkeit geboten, über ihre Studien-, Diplom-, Projekt-, Bachelor-, Master- oder
Praktikumsarbeiten in einem 15 bis 20-minütigen Vortrag zu berichten. Kurzfassungen der vorgestellten
Arbeiten sind in dem hier vorliegenden Beitragsband gebündelt.
Deutschland ist Weltmeister! Ok, für den Titel im Fußball hat es 2006 nicht gereicht, aber im Handball waren unsere Jungs 2007 unschlagbar. Ähnlich sieht es mit der Nachwuchsförderung an Hochschulen aus. Dass sich unsere Studierenden im Datenbank- und Informationssystemeumfeld nicht verstecken
müssen, beweist die beachtliche Qualität der eingereichten Beiträge. Lothar Späth sagte einmal:
Wir müssen Professoren und Studenten wieder etwas abverlangen. Wir müssen vor allem
”
darauf achten, wieder Stürmer in und für diese Gesellschaft auszubilden und nicht allein
Schiedsrichter. Wir haben unzählige Schiedsrichter in der Wohlstandsgesellschaft ausgebildet, die jedem, auch in der internationalen Welt, die Spielregeln erläutern, ohne selber
spielen zu können.“
Dieser Beitragsband beweist, dass wir in Forschung und Lehre auf dem richtigen Weg sind, aber noch
lange nicht am Ziel. Das erste Studierendenprogramm in der Geschichte der BTW war ein zweitägiger
Workshop. In diesem Jahr mussten mehrere Beiträge, die inhaltlich gut bis ausgezeichnet waren, leider
aufgrund der Beschränkung auf einen Tag abgelehnt werden. Ob dieser Tatsache sollte für die Zukunft
noch mehr Platz für Studierendenbeiträge im Rahmen der BTW eingeplant werden.
Teile der angefallenen Kosten der Veranstaltung wurden von Sponsoren getragen. Somit war auch die
Teilnahme der Vortragenden beim Studierendenprogramm und an der Tagung selbst kostenlos möglich.
An dieser Stelle seien der Gesellschaft für Informatik (GI) e.V., dem Fachbereich Datenbanken und Informationssysteme (FB DBIS) der GI und Accenture für ihre finanzielle Unterstützung gedankt. Ein
herzliches Dankeschön geht auch an den dpunkt.verlag, welcher dem Studierendenprogramm erneut kostenlose Fachbücher gespendet hat.
Bruchsal, im Februar 2007
Hagen Höpfner
Organisations- und Programmkomitee
Stefan Conrad (Heinrich-Heine-Universität in Düsseldorf)
Hagen Höpfner (International University in Germany, Bruchsal)
INHALTSVERZEICHNIS
III
Inhaltsverzeichnis
Sadet Alčić
(Uni Düsseldorf / Prof. Dr. Stefan Conrad)
Konzeption und Implementierung einer Datenbank zur Speicherung, Verwaltung und Retrieval
von Bilddaten
1
Sebastian Bächle
(TU Kaiserslautern / Prof. Dr. Theo Härder)
Auftragsorientierte Kopplung von Produktdatenmanagement-Systemen
4
Andre Bolles
(Uni Oldenburg / Prof. Dr. Hans-Jürgen Appelrath)
Rettungswachdienste an Binnengewässern webbasiert und aktiv verwalten
7
Alexandru Caracas, Iulia Ion, Mihaela Ion
(IU Bruchsal / Dr. Hagen Höpfner)
Web Services and Data Caching for Java Mobile Clients
10
Mathias Detzner, Christian Beucker, Florian Sonennschein
(FH Düsseldorf / Prof. Dr.-Ing. Thomas Rakow)
Soccertrend
13
Tobias Exner
(Uni Jena / Prof. Dr. Klaus Küspert)
Techniken zur Approximation und Optimierung von Performancefunktionen
16
Christian Helmchen
(Uni Leipzig / Prof. Dr. Erhard Rahm)
Teiresias: Datenbank-basiertes Online-Wörterbuch für Griechisch
19
Bernhard Jäcksch
(TU Dresden / Prof. Dr.-Ing Wolfgang Lehner)
Integration von Stichprobenverfahren in ein rel. DBMS
22
Thomas Jörg
(TU Kaiserslautern / Prof. Dr.-Ing. Stefan Deßloch)
Regelbasiertes Visualisieren und Editieren beliebiger Graphen
25
Andreas Lübcke
(Uni Magdeburg / Prof. Dr. Gunter Saake, Dr. Eike Schallehn)
Self-Tuning für Bitmap-Index-Konfigurationen
28
Emmanuel Alexander Müller
(RWTH Aachen / Prof. Dr. Thomas Seidl)
Subspace Clustering für die Analyse von CGH Daten
31
Martin Richtarsky
(TU Ilmenau / Prof. Dr. Kai-Uwe Sattler)
CouPé: Ein Query Processor für UniStore
34
Gunnar Söllig
(Uni Rostock / Prof. Dr. Andreas Heuer)
Multidimensionale Indexierung in ORDBMS
37
Marcus Wenzel
(Uni Jena / Prof. Dr. Birgitta König-Ries)
Konzeption und prototypische Realisierung einer Portalanwendung zur föderierten Suche im
Online-Angebot einer Bibliothek
39
1
Konzeption und Implementierung einer Datenbank
zur Speicherung, Verwaltung und Retrieval von Bilddaten
Sadet Alčić
[email protected]
Lehrstuhl für Datenbanken und Informationssysteme
Institut für Informatik, Heinrich-Heine-Universität
D-40225 Düsseldorf, Germany
Betreuer: Prof. Dr. Stefan Conrad
Multimediale Daten bilden heutzutage einen wesentlichen Bestandteil der heutigen Informationsquellen und gewinnen in der Kommunikationswelt stetig an Bedeutung. Die rasante Entwicklung des Internets
und dessen Verfügbarkeit für jedermann, und die kostengünstige Hardware fordern diesen Prozess enorm.
Um weiterhin effizient in Datenbeständen suchen zu können, sind Verwaltungsmechanismen notwendig,
welche auf die Besonderheiten dieser neuen Medien ausgerichtet sind. Relationale Datenbanksysteme
sind prinzipiell in der Lage Objekte wie Bilder als Binary Large OBjects (BLOBs) zu speichern und zu
verwalten. Somit wäre eine exakte Suche basierend auf der Byterepräsentation der Bilder umsetzbar.
Beispielsweise bei Bildern kann jedoch in Abhängigkeit von verschiedenen Parametern die Byterepräsentation zweier, für den Menschen sehr ähnlicher Bilder, sich komplett unterscheiden, so dass eine exakte
Suche für viele Anwendungen ein zu scharfes Kriterium darstellen würde. Im Rahmen der Bachelorarbeit
[Alc05] werden unterschiedliche Ansatzweisen aus der Forschung zur Suche in Bildbeständen präsentiert
und diskutiert. Die Picture Storing Multimedia Database (PSMMDB) stellt das in dieser Arbeit entstandene Bildverwaltungssystem dar.
1
Suchparadigmen in Bilddatenbanken
Es gibt zahlreiche Strategien, um nach Bildern in Bilddatenbanken zu suchen. Sie unterscheiden sich
hauptsächlich in der Aufbereitung der Bilder zur Suche. Auf drei meist verwendete Mechanismen wollen
wir hier kurz eingehen.
Ein sehr primitiver Ansatz ist die Suche über die Struktur- oder Metadaten des Bildes, auch als
Metasuche [RHC97] bekannt. Dabei werden zu einem Bild auch dessen Metadaten, wie Dateiname,
Format, Höhe und Breite ermittelt und in der Datenbank abgelegt und stehen für die Spezifikation der
Suchanfrage zur Verfügung. Klarer Vorteil dieses Verfahrens ist die Einfachheit in der Implementierung
und seine effiziente Suche, denn die Strukturdaten von Bildern lassen sich ohne großen Aufwand ermitteln
und die Anfragebearbeitung erfolgt wie bisher basierend auf dem exakten Retrieval-Modell. Da Metadaten
jedoch im Wesentlichen die Struktur von Bildern beschreiben und somit eher inhaltsunabhängig sind, ist
ein auf diesen Ansatz basierendes System für die inhaltsbasierende Suche ungeeignet.
Als nächstes bietet sich ein Verfahren an, welches unter dem Begriff Stichwortsuche [HSWW03,
RHC97] bekannt ist. Hierbei wird jedes einzelne Bild in dem Datenbankbestand von einem Menschen
analysiert und durch Stichworte beschrieben (annotiert). Diese Annotationen liefern konzeptuelle Beschreibungen und ordnen die Bildaten somit zu high-level Konzepten zu, die wiederum für die Suche
auf semantischer Ebene verwendet werden. Diese Vorgehensweise liefert uns Verfahren, mit dem auch inhaltsbezogene Anfragen gestellt werden können, allerdings steht dem leider der hohe personelle Aufwand
gegenüber, welcher für großere Datenbankbestände kaum vorstellbar ist. Ein weiterer Nachteil ist die
Subjektivität des Menschen bei der Interprätation und die verschiedenen Abstraktionsebenen, in denen
die abgebildeten Objekte beschrieben werden können.
Als Konsequenz ist ein Verfahren notwendig, das inhaltsbezogene Informationen automatisch aus
dem Bild extrahiert und für die Suche bereitstellt. Damit leiten wir auch zum nächten Ansatz über,
dem Content Based Image Retrieval (CBIR) [FBF+ 94, RHC97, Hua99], welches mit Hilfe von
statistischen Methoden der Bildverarbeitung versucht, aus den Rohdaten des Bildes repräsentative Eigenschaften (Features), wie z.B. Farb-, Textur- oder Formeigenschaften, zu extrahieren und für die Suche
2
bereitzustellen. Ein großer Vorteil von CBIR ist die automatische Erschließung von inhaltsbezogenen Informationen. Wir haben uns in der Arbeit für diesen Ansatz entschieden, da er völlig ohne redaktionellen
Aufwand auskommt und dennoch den tatsächlichen Inhalt der Bilder in Betracht zieht.
2
Das implementierte System PSMMDB
Im Rahmen dieser Bachelorarbeit ist ein in Java implementiertes Image Retrieval System, das PSMMDB
(Picture Storing Multimedia Database) entstanden, welches den CBIR Ansatz verwendet und auf dem
Vektorraummodel (VRM) basiert. Das VRM zeichnet sich dadurch aus, dass die aus einem Bild extrahierten skalaren Merkmale zu einem Vektor eines endlich dimensionalen Vektorraums aufgefasst werden
und somit dieses Bild in ein wohldefiniertes System überführen. Die Ähnlichkeit bzw. die Unähnlichkeit
zwischen zwei Bildern entspricht dann dem durch eine in diesem Vektorraum definierten Distanzfunktion
ermittelten Abstand zwischen den Merkmalsvektoren dieser Bilder. Definitionsgemäß sind dann bei kleinem Abstand die Bilder sehr ähnlich und bei großem eher unähnlich, wobei die Qualität dieser Aussage
von den extrahierten Merkmalen abhängt. Vom System werden die Durchschnittswerte von Rot-, Grünund Blauanteil des Bildes und auch die Durchschnittswerte der Farbkomponenten des YUV Farbraums
extrahiert. Zusätzlich ermitteln wir die Histogramme von Bildern in den Farbkomponenten Rot, Grün
und Blau. Die Distanzfunktion kann zwischen den wichtigsten Ln -Normen variiert werden und auch
Merkmalsgewichtungen können explizit angegeben werden, wodurch die Relevanz einzelner Merkmale
zusätzlich spezifiziert wird. Abbildung 1 enthält eine schematische Darstellung der Komponenten von
PSMMDB.
Abbildung 1: PSMMDB Architektur
Den ersten Schritt stellt die Speicherung der Bilddaten in der Datenbank dar. Dazu werden die Merkmale der Bilder mittels des Java Advanced Imaging API [JAI] aus den Rohdaten des Bildes extrahiert
und in einem Vektor dargestellt, der zu der Byterepräsentation des Bildes in der Datenbank abgelegt
wird. Bei dem Query-by-Image-Ansatz (QBI) gibt der Benutzer dem System ein Anfragebild vor, welches ebenfalls zunächst durch die Merkmalsextraktion in einen Vektor überführt wird. Anschließend kann
die Distanz zwischen diesem Vektor und allen in der Datenbank gespeicherten Vektoren mit Hilfe der
gewählten Distanzfunktion ermittelt werden. Dem Benutzer werden die Retrievalergebnisse in aufsteigender Reihenfolge bezüglich des Abstandes zum Anfragebild (oder Relevanz) vorgestellt. In Abbildung 2
ist der Retrieval-Bereich des Systems dargestellt, der für die Anfragespezifizierung und die Ausgabe
der Ergebnisse zuständig ist. Eine weitere Möglichkeit Anfragen mit einem Bild zu stellen liefert uns
die Query-by-Histogramm-Methode. Hierbei kann der Benutzer eines der extrahierten Farbhistogramme
des Bildes wählen und damit die Anfrage starten. Dieses wird dann mit den entsprechenden Farbhistogrammen der Datenbankbilder verglichen und liefert ebenfalls eine nach Ähnlichkeit sortierte Liste
von Bildern. Die Kommunikation mit der Datenbank aus der Java Applikation erfolgt mittels des Java
Database Connectivity API [JDB].
3
Abbildung 2: Retrievaloberfläche von PSMMDB
3
Ausblick
Die PSMMDB liefert für ausgewählte Anwendungsbereiche bereits sehr gute Ergebnisse [Alc05]. Für
Benutzer, die kein passendes Anfragebild haben, empfiehlt sich die Anfrage mittels ausgesuchter Farbe
(Query-by-Color oder QBC). Möglich wäre zusätzlich die Verwendung von Relevance Feedback -Mechanismen [Roc71], bei denen das System dem Benutzer vorläufige Ergebnisse präsentiert und dieser bewertet
dann die Bilder einzeln. Diese Bewertung fließt dann in der erneuten Berechnung mit ein. Dadurch kann
das System sich schrittweise den Präferenzen des Benutzers anpassen. Eine Erweiterung der low-levelEigenschaften um weitere Textur- und Formmerkmale kann die Qualität der Ergebnisse noch wesentlich
steigern. Die Ähnlichkeitssuche erfolgt durch einen iterativen Durchlauf aller in der Datenbank enthaltenen Objekte. Mittels geeigneter Indexstrukturen kann die Suche noch effizienter implementiert werden.
Literatur
[Alc05]
Alcic, Sadet: Konzeption und Implementierung einer Datenbank zur Speicherung, Verwaltung und Retrieval von multimedialen Daten, Institut für Informatik, Universität Düsseldorf,
Bachelorarbeit, 2005
[FBF+ 94]
Faloutsos, Christos ; Barber, Ron ; Flickner, Myron ; Hafner, Jim ; Niblack, Wayne ;
Petkovic, Dragutin ; Equitz, William: Efficient and Effective Querying by Image Content.
In: Journal of Intelligent Information Systems 3 (1994), Nr. 3/4, S. 231–262
[HSWW03] Hollink, L. ; Schreiber, G. ; Wielemaker, J. ; Wielinga, B.: Semantic Annotation of Image Collections. In: Workshop on Knowledge Markup and Semantic Annotation,
KCAP’03, 2003
[Hua99]
Huang, J.: Image Indexing using Color Correlogramm. In: IEEE Int. Conf. on Computer
Vision and Pattern Recognition, 1999, S. 762–768
[JAI]
Java Advanced Imaging (JAI) API. – http://java.sun.com/products/java-media/jai
[JDB]
Java Database Connectivity (JDBC) API. – http://java.sun.com/javase/technologies/
database/index.jsp
[RHC97]
Rui, Yong ; Huang, Thomas S. ; Chang, Shih-Fu: Image Retrieval: Past, Present, and
Future. In: International Symposium on Multimedia Information Processing, 1997
[Roc71]
Rochhio, J. J. J.: Relevance Feedback in Information Retrival. Prentice Hall, Englewood
Cliffs, New Jersey, USA, 1971
4
Auftragsorientierte Kopplung von
Produktdatenmanagement-Systemen
Sebastian Bächle
AG Datenbanken und Informationssysteme
Fachbereich Informatik
Technische Universität Kaiserslautern, Germany
s [email protected]
1
Ausgangssituation
Die Aufgabe von Produktdatenmanagement-Systemen (PDMS) ist die Verwaltung von produktdefinierenden Daten und deren Integration in die Geschäftsprozesse eines Unternehmens.
Sie speichern alle Informationen, die in den einzelnen Phasen eines Produktlebens anfallen,
angefangen bei der Entwicklung, über die Produktion bis hin zur After-Sales-Phase.
Die Untersuchungen finden im Kontext des Produktdatenmanagements eines deutschen Automobilkonzerns statt. Aufgrund der unterschiedlichen Anforderungen der einzelnen Bereiche
wie z. B. CAD-Konstruktion oder E/E kommen dort mehrere, unterschiedliche PDMS zum
Einsatz, bei denen die Struktur und die Organisation der verwalteten Produktdaten auf das
jeweilige Einsatzgebiet zugeschnitten sind. Auf logischer Ebene existieren dabei aber Beziehungen zwischen diesen Daten, weshalb es notwendig ist, diese systemübergreifend Verknüpfen und
Austauschen zu können. Gerade bei übergeordneten Geschäftsprozessen wie z. B. der Konstruktionsfreigabe, bei denen die lückenlose Verfolgbarkeit aller Abhängigkeiten und die Absicherung
der Abläufe absolut geschäftkritisch sind, wird eine Kopplung der einzelnen PDMS benötigt.
Deshalb müssen geeignete Konzepte entwickelt werden, mit denen diese Daten prozessgerecht
und effizient ausgetauscht werden können, ohne jedoch die lokalen Prozesse innerhalb der Teilbereiche zu beeinträchtigen. Darüber hinaus muss die Kopplungslösung flexibel genug sein, um
schnell und damit kostengünstig auf sich ändernde Prozessanforderungen reagieren zu können.
2
Ziel der Arbeit
Bei der Kopplung von PDMS müssen komplexe Objekte und Strukturen übertragen werden
können, wobei deren Konzeption und Repräsentation jedoch von den bereichsspezifischen und
systeminternen Gegebenheiten bestimmt werden. Solche internen Eigenschaften gilt es möglichst
auszublenden und den Austausch auf die prozessrelevanten Informationen zu reduzieren. Diese
Arbeit betrachtet einen auftragsorientierten Ansatz zur Kopplung von PDMS, bei dem der Fokus
auf der Kapselung von lokalen Systemeigenschaften und der prozessgerechten Abbildung der
Daten liegt. Neben der Untersuchung der konzeptionellen Eignung dieses Ansatzes sollten auch
praktische Erfahrungen damit gesammelt werden. Deshalb wurde mit Hilfe eines entsprechenden
Frameworks ein Prototyp für ein realistisches Anwendungsszenario erstellt.
3
Probleme bei der PDMS-Kopplung
Die heutige Standardlösung für die lose Kopplung von Informationssystemen lautet Web Services
inklusive der vielfältigen Erweiterungen wie z. B. WS-Transactions und WS-Security. Im PDMSUmfeld sind Web Services alleine allerdings nicht ausreichend, da es sich dabei lediglich um eine
Technologie und nicht um ein Architekturkonzept handelt. Im Fokus stehen hier deshalb mit 5
der Datenabbildung und der Schnittstellengestaltung zwei konzeptionelle Fragestellungen, die im
PDMS-Umfeld nicht alleine durch den Einsatz der Technologie Web Services abgedeckt werden
können.
Mit Hilfe standardisierter XML-Schemata ist es möglich alle Daten eines PDMS als beliebig komplexe Produktstrukturen in einem universellen Format zur Verfügung zu stellen. Dennoch ist die Repräsentation in einem globalen Kodierungsschema für eine Kopplung noch nicht
ausreichend. Es fehlen die notwendigen Informationen zur prozessgerechten Abbildung der ausgetauschten Daten auf die einzelnen lokalen Datenmodelle. Jedem Konsumenten eines solchen
Web Service müsste daher zusätzliches Wissen über das lokale Datenmodell des Anbieters und
auch über die prozessgerechte Abbildung dieser Daten auf das eigene, lokale Datenmodell zur
Verfügung stehen. Darüber hinaus ist der Einsatz solcher Standardschemata aufgrund ihrer
generischen Konzeption mit einem höheren Entwicklungsaufwand verbunden, der sich jedoch
nicht immer auszahlt. Häufig werden nämlich nur Teilausschnitte der Produktstrukturen für
den Austausch benötigt.
Das zweite Problem ist die Gestaltung einer geeigneten Schnittstelle, die z. B. als Web Service
zur Verfügung gestellt werden soll. Ein typischer Ablauf im PDMS-Umfeld beginnt mit der Suche
eines bestimmten Objektes, von dem aus dann über die komplexen Produktstrukturen navigiert
wird. Eine Schnittstelle mit den elementaren Funktionen für die Suche und den navigierenden
Zugriff ist damit zwar sehr allgemein einsetzbar, allerdings auch potentiell ineffizient. Zudem
erfordert sie von den Konsumenten zusätzliches Wissen über die interne technische und fachliche Organisation der Daten des Anbieters. Eine Schnittstelle die komplexe Operationen und
Ergebnisse anbietet, ist im Gegensatz dazu effizienter und kann auch die internen Eigenschaften eines Systems besser verbergen. Die Operationen sind dann aber häufig so spezifisch, dass
Änderungen der Prozess-Anforderungen schnell einen hohen Anpassungsaufwand verursachen.
An diesen beiden Kritikpunkten setzt der auftragsorientierte Kopplungsansatz an. Jeder
von einem Prozess vorgesehene Datenaustausch wird dabei als Auftrag betrachtet, für den die
benötigten Daten individuell zusammengestellt und repräsentiert werden können. Der Ansatz
konzentriert sich auf die flexible Umsetzung von Standardaufgaben und die Kapselung der internen Systemeigenschaften.
4
Der auftragsorientierte Ansatz
Im auftragsorientierten Ansatz wird die Kopplungsaufgabe durch mehrere, so genannte Agenten
realisiert. Der Hersteller des verwendeten Frameworks bezeichnet es daher auch als agentenbasierten Ansatz. Um jedoch Verwechslungen mit verbreiteten Konzepten zu vermeiden, die
darunter proaktiv und kooperativ agierende Systemen verstehen, wurde an dieser Stelle zur
Abgrenzung bewusst die Bezeichnung auftragsorientierter Ansatz gewählt.
Im Gegensatz zu einer Hub-and-Spoke-Architektur wird im auftragsorientierten Ansatz das
für den Datentransfer notwendige Wissen verteilt. Ein Agent agiert dabei als Stellvertreter
jeweils eines PDMS, der mit den anderen Agenten nachrichtenbasiert über einen beliebigen
Kommunikationskanal Daten austauscht. Seine Aufgabe ist es, Arbeitsaufträge von anderen
Agenten anzunehmen, lokal zu bearbeiten und bei Bedarf ein Ergebnis zur Verfügung zu stellen.
Ein Arbeitsauftrag könnte beispielsweise das Auslesen und Filtern einer BOM (Bill of Materials)
sein.
Prinzipiell kann ein Agent alle PDMS-typischen Aufgaben unterstützen. Dazu gehören u. a.
das Lesen und Speichern von Produktdaten und Produktstrukturen, das Anlegen neuer Revisionen oder den Check-In bzw. Check-Out von Objekten. Das Ziel bei der Implementierung der
Agenten ist es nun, diese Auftragstypen soweit wie möglich zu parametrisieren. Dadurch können
viele, auch komplexe Szenarien trotz einer relativ kleinen Anzahl an implementierten Auftragstypen umgesetzt werden. Die notwendigen Informationen für einen konkreten Auftrag werden
als
6 spezifische Konfigurationen zur Verfügung gestellt. Bei dem verwendeten Framework kann
so z. B. mit nur einem einzigen Auftragstyp sowohl ein einzelnes Objekt als auch eine komplette
Produktstruktur ausgelesen bzw. gespeichert werden.
Für den Austausch zwischen zwei oder mehreren Agenten werden die Daten auf ein Austauschschema abgebildet, welches speziell auf die Anforderungen des jeweiligen Prozesses abgestimmt ist. Für jeden Auftrag existiert deshalb ein eigenes Export-Schema auf der Senderseite
und ein passendes Import-Schema auf der Empfängerseite (vgl. Abb. 1). Auf diese Weise können
die systemspezifischen Besonderheiten der PDMS verborgen werden. Außerdem muss nur ein auf
den Anwendungsfall eingeschränktes Austauschschema von der jeweils anderen Seite auf das lokale Schema abgebildet werden, wodurch die Flexibilität bei Änderungen erhöht wird.
Abbildung 1: Prinzip der auftragsorientierten PDMS-Kopplung
Ein Agent kommuniziert mit seinem lokalen PDMS über eine der angebotenen Erweiterungsschnittstellen, die im Allgemeinen einen sehr feingranularen Zugriff auf das System ermöglichen.
Um die Kommunikationskosten gering zu halten, sollte sich ein Agent deshalb möglichst nahe
bei dem PDMS befinden. Teure Operationsfolgen finden bei der Auftragsbearbeitung somit ausschließlich zwischen dem Agenten und dem PDMS statt und sind damit deutlich günstiger als
dies bei einer zentralisierten Lösung oder gar einer Punkt-zu-Punkt-Kopplung der Fall wäre.
Durch die nachrichtenbasierte Kommunikation eignet sich der Ansatz auch für einen weltweit
verteilten Einsatz.
Einfache zusätzliche Funktionen können im verwendeten Framework als anwendungsspezifische Erweiterung in einen Agenten integriert werden. Der Entwicklungsaufwand ist dabei in
der Regel deutlich geringer als eine alleinstehende Entwicklung. Ein weiterer Vorteil dieses Ansatzes ergibt sich dadurch, dass ein großer Teil der Anwendungslogik der Agenten wie z. B. die
Schema-Abbildung systemunabhängig realisiert werden kann. Systemspezifischer Code muss nur
noch für den Zugriff auf das konkrete PDMS bereitgestellt werden.
5
Ergebnisse
Die prototypische Implementierung des exemplarischen Anwendungsfalles wurde bei der Evaluierung erfolgreich umgesetzt. Der von dem Framework verfolgte konzeptionelle Ansatz erwies
sich dabei als sehr flexibel einsetzbar. Die Stärken des Ansatzes gegenüber reinen Punkt-ZuPunkt-Lösungen oder Hub-and-Spoke-Architekturen liegen in der lokalen Ausführung teurer
Operationsfolgen und in der Flexibilität, die durch die gute Kapselung der systemspezifischen
Datenmodelle erreicht wird. Ermöglicht werden diese Vorteile durch die Fokussierung auf die praxisrelevanten Funktionen im PDMS-Umfeld und die prozessorientierte Konfiguration des Datentransfers. Gleichzeitig wird diese Fokussierung dann zum Nachteil, wenn speziellere Funktionen
benötigt werden, die nicht über die parametrisierten Auftragstypen abgebildet werden können.
Diese müssen dann selbst implementiert und in die Agenten integriert werden.
Aus Platzgründen wurde an dieser Stelle die Betrachtung weiterer wichtiger Punkte wie z. B.
der Unterstützung von Transaktionen und durchgängiger Sicherheitskonzepte ausgelassen. Bei
der Realisierung des Prototyps zeigte sich jedoch gerade dort noch Verbesserungspotential.
7
Rettungswachdienste an Binnengewässern webbasiert und aktiv verwalten
Andre Bolles
Abteilung Informationssysteme
Prof. Dr. Hans-Jürgen Appelrath
Department für Informatik
Carl von Ossietzky Universität Oldenburg
[email protected]
Zusammenfassung der Arbeit
Ziel dieses Individuellen Projektes (3-fach Modul im 6. Semester des Studiengangs Informatik)
war die Identifikation und Implementierung von Möglichkeiten zur zeitbasierten asynchronen
und verschlüsselten Kommunikation eines aktiven Datenbanksystems mit einer Menge von Datenanalyseanwendungen. Das hier betrachtete Individuelle Projekt ergab sich aus dem Dissertationsvorhaben von Dipl.-Inform. Heiko Tapken, in welchem unter Anderem eine Umgebung entwickelt wird, die eine Integration von Analysen in verteilen Informationssystemen ermöglicht. In
diesem Individuellen Projekt sollten daher Möglichkeiten identifiziert werden, mit denen asynchron Ergebnisse von Analysen, die zu unterschiedlichen Zeitpunkten durchgeführt wurden,
verschlüsselt übertragen werden können, um sie in eine Gesamtanalyse einbetten zu können.
Zur größeren Anschaulichkeit wurde in dem Individuellen Projekt als Awendungsszenario eine
Webapplikation zur Verwaltung von Rettungswachdiensten an Binnengewässern der DeutschenLebens-Rettungs-Gesellschaft e. V. betrachtet und implementiert. Die Webapplikation sollte die
gleichen Anforderungen erfüllen, wie sie auch im genannten Dissertationsvorhaben auftreten.
Daher sollten Informationen in verschlüsselter Form gespeichert werden. Situationsbedingt sollten weiterhin in einem aktiven Oracle Datenbanksystem Nachrichten generiert und eine externe
Anwendung zur Verarbeitung dieser Nachrichten angestoßen werden. Für diese Funktionalität
wurde insbesondere auf sogenannte Oracle Streams Advanced Queues (s. [Foc05]) in Verbindung
mit einem Oracle Scheduler (s. [Fog05]) zurückgegriffen. Des Weiteren wurde die Möglichkeit der
Ausführung von Java-Code in einem Oracle Datenbanksystem mittels der Oracle Java Virtual
Machine Aurora (vgl. [IMSW05, Iye05, Rap05] genutzt.
Die Abbildung 1 zeigt speziell die Komponenten des realisierten Systems, welche für die Umsetzung der zeitbasierten asynchronen Kommunikation und der sicheren Datenspeicherung und
Datenübertragung benötigt werden.
Daten werden in dieser Webapplikation verschlüsselt in einem Oracle Datenbanksystem gespeichert. Dazu werden neu eingetragende Daten im Oracle Datenbanksystem mittels Java-Code, der
von der Oracle Java Virtual Machine ausgeführt wird, symmetrisch mit einer 256 Bit starken
AES-Verschlüsselung verschlüsselt. Diese Daten sind damit vor dem unberechtigten Auslesen
geschützt, so lange kein Zugriff auf den Schlüssel besteht.
In dem Oracle Datenbanksystem ist ein Oracle Scheduler aktiv, der situationsbedingt zu einem
selbstständig berechneten Zeitpunkt oder bei Eintritt eines anderen Ereignisses die Erzeugung
von Nachrichten mittels PL/SQL anstößt, die dann über eine Oracle Streams Advanced Queue
an eine externe Anwendung gesandt werden. Die Daten können dabei in verschlüsselter Form
aus der Datenbank ausgelesen werden. Der Empfang einer solchen Nachricht stößt dann eine externe Applikation an, die daraufhin beliebige Aktionen ausführen kann. Hier wurde der Versand
einer mit OpenPGP verschlüsselten Email realisiert.
Diese Architektur erlaubt also zunächst die verschlüsselte Speicherung von Daten in einem
Oracle Datenbanksystem ohne eine externe Applikation für die Verschlüsselung anstoßen zu
müssen. Des Weiteren wird eine asynchrone Kommunikation eines Oracle Datenbanksystems
mit einer externen Applikation ermöglicht. Das Besondere hieran ist, dass hier nicht wie oft in
8
Aktives Oracle
Datenbanksystem
Scheduler stößt zeitbasiert
PL/SQL-Code an, der
Nachrichten in eine Oracle
Streams Advanced Queue
schreibt
Einga
ten
n Da
be vo
Nutzer / externe Anwendung A
Oracle Scheduler
Aurora
K
Ora
cle S ommun
ik
trea
ms A ation üb
e
dva
nc ed r
Que
u
es
Externe Anwendung B
Ausführung von Java-Code
zur symmetrischen
Verschlüsselung zu
speichernder Daten
OpenPGP-Verschlüsselung
von Emails
Abbildung 1: Architektur des entwickelten Systems
anderen Applikationen eine externe Anwendung Anfragen an ein Datenbankmanagementsystem
sendet, sondern ein aktives Datenbanksystem eine externe Applikation anstößt. Damit wurde
mit der in diesem Individuellen Projekt realisierten Webapplikation beispielhaft gezeigt, wie die
Anforderungen umgesetzt werden können, die sich aus dem genannten Dissertationsvorhaben
ergeben. Der Einsatz von Oracle Streams Advanced Queues in Verbindung mit einem Oracle
Scheduler sowie der Oracle Java Virtual Machine kann es dort ermöglichen, dass einzelne verteilte Oracle Datenbanksysteme bei Abschluss von Teilanalysen selbstständig die Ergebnisse
in verschlüsselter Form an eine externe Applikation übertragen, die diese Ergebnisse in eine
Gesamtanalyse integriert.
9
Literatur
[Foc05]
R Streams Advanced Queuing User’s Guide and
Craig B. Foch.
Oracle
Reference 10g Release 2 (10.2).
Oracle Corporation, http://downloadeast.oracle.com/docs/cd/B19306 01/server.102/b14257.pdf,
zuletzt besucht: 13. März 2006, 2005.
[Fog05]
R
Steve
Fogel.
Oralce
Database
Administrator’s
Guide
10g
Release
2
(10.2).
Oracle
Corporation,
http://downloadeast.oracle.com/docs/cd/B19306 01/server.102/b14231.pdf,
zuletzt besucht: 24. März 2006, 2005.
[IMSW05] Venkatasubramaniam Iyer, Sheryl Maring, Rick Sapir und Michael Wiesenberg.
R Database Java Developer’s Guide 10g Release 2 (10.2). Oracle CorpoOracle
ration, http://download-east.oracle.com/docs/cd/B19306 01/java.102/b14187.pdf,
zuletzt besucht: 13. April 2006, 2005.
[Iye05]
R Database SQLJ Developer’s Guide and
Venkatasubramaniam Iyer.
Oracle
Reference 10g Release 2 (10.2).
Oracle Corporation, http://downloadeast.oracle.com/docs/cd/B19306 01/java.102/b16018.pdf,
zuletzt besucht: 24. April 2006, 2005.
[Rap05]
R
Denis Raphaely.
Oracle
Database PL/SQL Packages and Types Reference 10g Release 2 (10.2).
Oracle Corporation, http://downloadeast.oracle.com/docs/cd/B19306 01/appdev.102/b14258.pdf,
zuletzt besucht: 20. April 2006, 2005.
10
Web Services and Data Caching for Java Mobile Clients
Alexandru Caracas, Iulia Ion, Mihaela Ion
{alexandru.caracas|iulia.ion|mihaela.ion}@i-u.de
International University in Germany, 76646 Bruchsal, Germany
January 27, 2007
Abstract
Web services are becoming more and more pervasive and are used by a number of information system clients. However, mobile clients still have limited computing and network
resources. Mobile information systems require client side caching of data for various reasons. Caching issues are discussed in many scientific publications that mostly lack an usable
implementation. Nearly all mobile devices support Java’s mobile information device profile
(MIDP). This paper presents the implementation of real-time train schedule mobile application for MIDP-capable mobile phones using web services architecture and data caching.
1
Introduction and Related Work
Mobile information systems clients pose many challenges. One of these challenges is the wireless
connectivity which could be slow, expensive, or not widely available. Another issue is that mobile
devices have limited computational and memory resources. To alleviate these two problems we
propose mobile applications to have: a web services architecture to lessen computation and
memory requirements, and data caching to reduce network traffic.
Web services for mobile clients are scarcely discussed in literature and implementations for
mobile phones are nascent. There are several advantages of using a service oriented architecture:
loose coupling of services and adaptability for changes. There are many publications on caching,
hoarding or replicating data in mobile information systems. However, almost all of them lack an
usable implementation and evaluations are mostly of a purely scientific nature based on system
simulations. In this paper, we present the implementation of a Java-based train schedule mobile
application using web services as well as client side caching for storage and offline usage of data.
Our paper touches various research areas. The main two topics are web services for mobile
devices and client side data storage in mobile information system. Based on the classification of
replication, hoarding and caching in [4] one can identify major caching issues in our work. We
implicitly store data on the mobile client that is explicitly queried and reuse it.
There are some projects that aim to implement a similar system to our application presented
in Section 3. Deutsche Bahn offers a static solution for train schedules1 . Mobile users have the
possibility to download a personal schedule between two stations by specifying the start and
destination. However, there is no guarantee that the data is up to date, moreover the user is
presented only with the trains to one particular destination.
Another approach is by Actuan Mobile who offers the complete dynamic schedule for the
New Jersey Transit rail system. The application2 is offered both as a mobile browser solution
and J2ME application. The mobile application available for download offers extensive features.
However, the schedule information is obtained directly by querying on line servers for each
request using proprietary protocols.
1
2
http://persoenlicherfahrplan.bahn.de
http://www.actuanmobile.com/documentation/train\ schedule\ manual-online-version-v0\ 1.pdf
11
2
Caching and Web Services on Java Mobile Devices
In the following we briefly present how to access an information system server via web-services
from an MIDP-capable mobile device and introduce the Record Management Store (RMS) that
was used for caching data on the client.Web services are accessed from mobile devices (J2ME
clients) using the standard JSR 172: J2ME Web Services Specification [1]. The specification
provides two new capabilities to the J2ME platform: (a) access to remote SOAP/XML based
web services, and (b) parsing XML data.
Method invocation follows the syncronous request-response model of client-server interaction.
A mobile client invokes a request to a remote web service. The web service processes the
request and sends back the result. The client then receives the data. The JSR 172 stub and
runtime handle the encoding of the method and arguments, serialization, sending the request
and receiving the response, decoding, and de-serialization - transparent to the application.
The RMS provided by MIDP is ideal for storing data on the client. A record store is identified
by its name. A record store contains a number or records accessible by their index. A MIDlet
application can persistently store data using the provided framework. A more detailed description of the MIDP record management store is given in [2, 3]. Our Java caching implementation
address the following caching issues: coherency, replacement and look-up.
3
Mobile Train Application Architecture
The mobile application (see Figure 1(a)) connects to a web service to download the latest
schedules for a given station. The web service sends the schedule which is serialized as an XML
document which includes trains with their respective type, departure time, final destination, etc.
The web service is responsible for data consistency, updates and proper format. This transfers
the computation and storage intensive tasks to an ’always’ on-line server machine.
(a) Train schedule application architecture
(b) Train schedule data structure
Figure 1: Architecture and implementation details
The MIDlet application caches the data into the persistent storage of the Record Store. If
the user queries for the next trains for a given station, the application first checks whether the
information is already present in cache. If the information is cached and the schedule still upto-date the next departing trains are presented to the user. Otherwise, the MIDlet queries the
Web Service for the latest schedule for the given station and caches the received response.
Web services involve marshaling of XML documents. However, saving XML data on a
mobile phone is not feasible due to the limited amount of storage. Nevertheless, XML data is
hierarchical and can be mapped to the RMS while keeping an efficient index structure. The
pragmatic method is to map each binary serialized XML data record to a record and use the
name of the document as the key for the record store. Figure 1(b) graphically depicts the
data structure used for caching the train schedule information for two example train stations,
Bruchsal and Karlsruhe. Each of the train station is saved in a separate record store.
12
4
Evaluation
For measuring the performance of our application we used the mobile emulator present with
the J2ME Wireless Toolkit. The reason is that support for JSR 172 is nascent. Many devices,
especially mobile phones and smart phones lack the required implementation. The tests represent
the performance of the application for various parameters of the VM emulator speed and network
throughput emulation.
(a)
(b)
Figure 2: Cache performance
Figure 2(a) illustrates for various XML data sizes the response time for answering a query
if no caching is used. In fact, this means that all data needs to be accessed from the server.
Figure 2(b) shows the response time in case of a cache miss to the case of a cache hit. Answering
a query locally is much faster than receiving the data over network. It is interesting to see, that
the influence of the size of nearly requested data disappears if data can be provided locally.
5
Summary, Conclusions and Outlook
We presented a service oriented train schedule application using data caching for MIDP-capable
mobile device. We discussed the architecture and implementation, illustrated the cache related
issues and presented first evaluation results. This paper is only a first step in terms of caching
for mobile clients. Our implementation substituted nearly all caching issues that are currently
discussed in journals and on conferences by pragmatic approaches. Moreover, the web services
technology is currently not widely deployed and supported by Java mobile clients. Nevertheless,
the results show that web services and caching on mobile phones are indeed possible and have a
huge potential to support the integration on mobile devices into distributed information systems.
The next steps of our work are to investigate further the availability of web service specifications for mobile devices, and implement more efficient caching strategies as well as more
detailed evaluations.
References
[1] John Ellis and Mark Young. J2ME Web Services 1.0. Sun Microsystem, Inc., Santa Clara, CA, USA, final draft
edition, October 2003. Available at http://jcp.org/aboutJava/communityprocess/final/jsr172/index.
html.
[2] Soma Ghosh. J2ME record management store – Add data storage capacities to your MIDlet apps. Online
article at IBM developerWorks, May 2002. Available at http://www-128.ibm.com/developerworks/library/
wi-rms/.
[3] Eric Giguere. Databases and MIDP, Part 1: Understanding the Record Management System. Online article at
Sun Developer Network, February 2004. Available at http://developers.sun.com/techtopics/mobility/
midp/articles/databaserms/.
[4] Hagen Höpfner, Can Türker, and Birgitta König-Ries. Mobile Datenbanken und Informationssysteme —
Konzepte und Techniken. dpunkt.verlag, Heidelberg, Germany, July 2005. in German.
13
FH Düsseldorf, Fachbereich Medien
Soccertrend
Projekt Praktische Medieninformatik im Studiengang B. Sc. Medien und angewandte
Informationstechnologie an der FH Düsseldorf, Prof. Dr.-Ing. Thomas Rakow
Eine Zusammenfassung der Projektteilnehmer
Mathias Detzner , Christian Beucker und Florian Sonennschein
Aufgabenstellung
Die Aufgabe zum Thema "Publikationssysteme" war die Entwicklung einer datenbank-basierten
Website für die Prognose der Ergebnisse von Fußballspielen. Die Ergebnisse sollen nach einem festen
Schema berechnet werden und demnach auch begründet werden können.
Konzeption
Auf der Homepage des Fußballmagazins Kicker werden Vereinsergebnisse, Spieler, Spielernoten und
Spieltagsergebnisse publiziert. Die Schwierigkeit lag in der Beschaffung der Daten und deren Import
in die Datenbank, da es keinen direkten Zugriff auf die Datenbank des Kickers gab. Es musste also ein
Daten-Grabber entwickelt werden, der die Homepage des Kickers auslesen kann. Auf Grundlage
eines entsprechenden ER-Modells wurde die Datenbank entwickelt. Ein Prognostizierer sollte die
Berechnung der Spielergebnisse ausführen, deren Güte anhand einer Auswertung der historischen
Daten der letzten 5 Jahre optimiert werden sollte. Die Darstellung der Prognoseergebnisse und eine
einfache Benutzerführung sollte die Webanwendung übernehmen.
Systemarchitektur
Auf einem Apache-Webserver der FH-Düsseldorf wurden fünf Module installiert, die in PHP und
MySQL bzw. HTML mit passendem CSS implementiert wurden.
Datenbanksystem:
Bei der Umsetzung des ER-Modells in das Relationen-Modell der MySQL-Datenbank
entstehen aus den 5 Entities jeweils
5 Tabellen, die mit Ihren Attributen
WebWebFremd-Server
bestückt werden. Hierbei werden die
client
client
www.kicker.de
Normalformen eingehalten.
Daten-Grabber:
Der Grabber besteht aus PHPDateien, welche jeweils für eine der
Tabellen der Datenbank die Daten
beim Kicker auslesen. Der Grabber
sucht dabei auf den Seiten des
Kickers nach
Schlüsselinformationen und liest
dementsprechend den Quelltext ein.
HTML-Tags werden entfernt und
die bereinigten Daten werden
zusammen mit daraus berechneten
Aggregaten in die Datenbank
geschrieben. Per Cron-Job werden
die Daten alle 24 Stunden
aktualisiert.
Webclient
WWW
Internet
Firewall
Webanwendung
Prognostizierer
Daten-Grabber
Datenbanksystem
Auswerter
Web-Server
http://dbe.medien.fh-duesseldorf.de/fussball
14
Prognostizierer:
Der Prognostizierer errechnet die Ergebnisse eines Spieltags. Dabei nimmt er die einzelnen
Attribute der Mannschaft mit einer Gewichtung und erhält einen Vereinswert. Die Werte für
Heim- und Gastverein der entsprechenden Begegnungen werden voneinander subtrahiert. Die
Ergebnisse werden anschließend nach einem festen aus der Evaluierung gewonnenem System
(s. unten) Heimsiegen, Unentschieden und Niederlagen zugeordnet.
Auswerter:
Der Auswerter ist nun letztendlich da, um reales und prognostiziertes Ergebnis zu
vergleichen. In der Datenbank markiert er richtige und falsche Ergebnisse dementsprechend.
Webanwendung:
Die Webanwendung besteht aus der Startseite, der Ausgabeseite der Prognose mit einer
optionalen Seite für die Begründung aus Standardtextbausteinen, dem Impressum und dem
Making-off. Die Gestaltung ist CSS-basiert und W3C-konform.
Evaluierung
Bei den Testreihen gibt es zwei Stellschrauben an denen gedreht werden kann: Zum einen die
Gewichtungen der einzelnen Kriterien und zum anderen das System, das über die Anzahl an Siegen,
Unentschieden und Niederlagen entscheidet.
Die Systemtests führten zum einen zu dem Ergebnis, dass eine rein wertebezogene Prognose nicht
wirkungsvoll genug arbeitet. Hierbei lagen die Trefferwahrscheinlichkeiten nicht über 34,9%. Aus
diesem Grund wird für die Berechnung der Prognose ein zweistufiges System benutzt, d.h. es wird die
wertebezogene Prognose in ein vorgegebenes Verhältnis von Heimsiegen, Unentschieden und
Niederlagen an einem Spieltag zugeordnet. Die Testreihen ergaben beim 6-2-1-System die
bestmöglichste Trefferquote von 48,04%.
Um dieses Ergebnis noch zu verbessern, werden die Kriterien unterschiedlich gewichtet. Dazu
wurden die Kriterien einzeln angehoben bzw. herausgenommen und beobachtet, wie sich die
Trefferquote verhält. Je nach den Auswirkungen kommt man auf das optimale
Gewichtungsverhältnis. Wenn man jetzt optimale Kriterien und Gewichtungssystem zusammen führt,
erhält man eine – allerdings nur leicht erhöhte – Trefferwahrscheinlichkeit von 48,1%.
Die Schrittweisen Verbesserungen des Testverfahrens kann man in folgendem Diagramm sehen.
Maßstab ist der Zufallswert (Wert links), welcher sich aus völlig zufälligen Prognosen begründet, die
keinerlei System oder Kriterien folgen.
15
Verwandte Arbeiten
Forecast Pro ist ein Expertensystem für betriebswirtschaftliche Prognosen bzw.
Fundamentalanalysen, das Prognosen und Trends erstellt, die auf Zeitreihen basieren und mehrere
Schätzungsalgorithmen verwenden (z. B. gleitender Durchschnitt, exponentielle Glättung).
http://www.softguide.de/prog_f/pf_0051.htm
Das Fußballprognosesystem "fussballvorhersage.de" prognostiziert den jeweils nächsten
Bundesligaspieltag. Berechnungsgrundlage sind die gewonnenen, unentschiedenen oder verlorenen
Partien getrennt nach Heim- und Auswärtsspielen auf der Datenbasis der aktuellen Saison.
http://www.fussballvorhersage.de/auswertung_vorhersage.htm
Quotenberechnung bei Sportwetten beruhen auf einer vom Buchmacher zu leistenden
Wahrscheinlichkeitskomponente. Ein Algorithmus wird nur für die betriebswirtschaftlichen
Rentabilitätsberechnungen verwendet. http://www.wettbueros.net/wettinfos/
Soccertrend basiert auf einer großen Basis an Kriterien. Aus der Vergangenheit werden Gewichtung
der Kategorien und die Zuordnung auf Heimsiege, Unentscheiden und Auswärtssiegen hergeleitet.
http://www.soccertrend.de.vu
Fazit
Die beste theoretische Ausbildung nützt nichts, wenn man nicht die Möglichkeit hat diese in der
Praxis anzuwenden. Aus diesem Grund sind Projekte wie dieses für den Lernerfolg und die
Verbesserung der eigenen Fähigkeiten unbedingt notwendig. Auch wenn der Arbeitsaufwand für ein
Semester recht hoch bei einem Team von 3 Personen ist, so ist dennoch der Lernerfolg den dieses
Projekt gebracht hat, für alle Teilnehmer unbestreitbar groß. Neben den technischen Fähigkeiten
wurden auch die Projektarbeit verbessert und die Teamfähigkeit gesteigert.
Das Prognosesystem ist online und läuft seit mehreren Monaten reibungslos. Die Ergebnisse liegen im
erwarteten Bereich. Zu Problemen könnte es kommen, sobald sich das Layout der Kicker-Webseiten
ändert und der Grabber nicht mehr in der Lage wäre, die Daten zu finden. Auf Grund des erst kürzlich
geänderten Layouts und der freundlichen Genehmigung des Kickers kann man auch in Zukunft auf
sichere Prognosen hoffen. Bei Google findet man unter dem Stichwort „Soccertrend“ diese Homepage
bereits an erster Stelle!
16
Techniken zur Approximation und Optimierung von
Performancefunktionen
Tobias Exner
Lehrstuhl für Datenbanken und Informationssysteme
Friedrich-Schiller-Universität Jena
Ernst-Abbe-Platz 2
07743 Jena
[email protected]
1 Einleitung und Motivation
Relationale Datenbanksysteme, wie IBM DB2, sind durch eine hohe systeminhärente Komplexität
und Konfigurationsvielfalt gekennzeichnet. Um den hohen an diese Systeme gestellten Anforderungen1 ,
wie Verfügbarkeit, Sicherheit, Integrität und Performance, gerecht zu werden, ist ein sehr großes Fachwissen der Datenbankadministratoren von Nöten. Das Verbessern der Systemkonfiguration sowohl vorab als auch im laufenden Betrieb wird durch die Administratoren meistens manuell vorgenommen und
erfolgt reaktiv, d.h. Änderungen der Systemkonfiguration werden erst vorgenommen, wenn ein Performanceproblem auftritt. Diese, auch als black art of database tuning“ [WMHZ02] bezeichnete Vorge”
hensweise ist zeitaufwendig, kostenintensiv und zudem sehr fehleranfällig.
Aus diesem Grund verfolgen Ansätze wie das Autonomic Computing [IBM06] das Ziel, die Bedienung und Administration von IT-Systemen zu vereinfachen und zu automatisieren. Im Rahmen eines Koorperationsprojekts2 wird am hiesigen Lehrstuhl eine Infrastruktur zur Automatisierung typischer
Datenbank-Tuning-Aufgaben entwickelt. Dieses Papier ist die Zusammenfassung einer Diplomarbeit, die
in Zusammenarbeit mit dem Institut für Angewandte Mathematik entsteht. Dabei wird die Möglichkeit
des Einsatzes von mathematischer Optimierung für das Performancetuning untersucht.
2 Optimierung von Performancefunktionen
Durch direkt steuerbare Effektoren (Konfigurationsparameter, Umgebungsvariablen etc.) kann ein
Datenbanksystem an eine dynamische Umgebung (Workload, Hardware) angepasst werden. Diese Effektoren haben Auswirkungen auf die Performance, wie beispielweise Antwortzeiten von SQL-Anfragen
oder die Buffer Pool Hit Ratio, und beeinflussen sich gegenseitig. Ziel administrativer Tätigkeiten ist
die Maximierung der Performance unter Berücksichtigung der Policies. In alternativen Ansätzen für
selbst-optimierende Komponenten wird bisher versucht, die Performance unter Verwendung von BestPractices-Methoden schrittweise zu verbessern [Ben03]. Eine weitere Möglichkeit besteht darin, ein
mathematisches Modell der Parameterabhängigkeiten zu entwickeln, mit dessen Hilfe dann eine zu maximierende Performancefunktion aufgestellt werden kann. Zur Laufzeit müsste dann diejenige Parameterbelegung berechnet werden, welche ein Optimum für die Performancefunktion liefert.
Für die Erarbeitung eines mathematischen Modells (Zielfunktion, Nebenbedingungen), soll der Einfluss von Parametern untereinander und auf die Performance genauer untersucht und in Form eines funktionalen Zusammenhangs beschrieben werden. Als Datenbankmanagementsystem wird IBM DB2 UDB
8.2 gewählt und eine Workload darauf simuliert. Gleichzeitig werden Werte von Sensoren (Kenngrößen
1
2
Diese werden in sogenannten Policies vereinbart.
Projektseite: http://www.informatik.uni-jena.de/dbis/dbat/index.html
17
der Performance) gemessen und abgespeichert. Die Effektoren werden nun schrittweise geändert und die
Simulation inklusive Datensammlung wird wiederholt. Aus den so gewonnen Daten sollen nun durch
(nichtlineare) Regressionsanalyse Funktionen ermittelt werden, die den Zusammenhang zwischen Effektoren und Sensoren widerspiegeln. Ein in [Gan06] entwickeltes Werkzeug automatisiert den Prozess
der Datensammlung und -speicherung. Da es in DB2 Hunderte konfigurierbarer Parameter gibt, wird sich
zunächst auf die Konfiguration des Buffer Pool Pools und des Lockings beschränkt. In [Ben03] wurden
ähnliche Messungen für eine Online Transaction Processing Workload (OLTP) durchgeführt, um u.a.
Performanceprobleme, die mit der Konfiguration des Buffer Pools zusammenhängen, zu erkennen. Als
Ausgangspunkt unserer Analyse dient ebenfalls eine feste OLTP Workload (TPC-C Standard Benchmark
[TPC06]), im Gegensatz zu [Ben03] sind aber mehrere variable Effektoren möglich, um Korrelationen
zwischen Effektoren zu erkennen.
Als erstes wurde die Konfiguration des Buffer Pools untersucht, indem die DB2-Konfigurationsparameter Buffer Pool Size3 und num iocleaners4 jeweils in einem festen Wertebereich geändert wurden.
Als Performancesensor wurde der Anteil asynchroner Schreiboperationen (das sind diejenigen Schreiboperationen, bei denen geänderte Seiten des Buffer Pools auf Festplatte durch Page Cleaner zurück
geschrieben werden) betrachtet. Es stellte sich heraus, dass dieser Anteil nicht von der Größe des Buffer
Pools abhängig ist. Für die Anzahl der Page Cleaner hingegen ergab sich ein Zusammenhang der Form
f (x) = a arctan(b x), wie Abbildung 1 zeigt. Je mehr Page Cleaner zur Verfügung stehen, desto mehr
100
Anteil asynchroner Schreiboperationen (in%)
90
f(x)
80
70
60
50
40
30
20
10
0
0
10
20
30
x . . . num_iocleaners
40
50
60
Abbildung 1: Anteil der asynchronen Schreiboperationen in Abhängigkeit von num iocleaners
geänderte Seiten des Buffer Pools können asynchron auf Platte geschrieben werden. Sind weniger Page
Cleaner vorhanden, gibt es in der Folge im Buffer Pool zu wenig freie Seiten. Daher müssen geänderte
Seiten unerwünschterweise synchron auf Platte geschrieben werden. Die Asynchronität der Schreiboperationen erhöht sich durch die Verwendung von zusätzlichen Page Cleanern. Jedoch kann mit immer
mehr Page Cleanern die Asynchronität natürlich nicht beliebig gesteigert werden, denn die Stärke des
Einflusses verringert sich und eine Sättigung stellt sich ein.
3 Ausblick und weitere Schwerpunkte
Im weiteren Verlauf der Arbeit sind Untersuchungen hinsichtlich des Sortings und Lockings vorgesehen. Dies beinhaltet z.B. die Frage, welche Abhängigkeit zwischen der Größe der Lockliste und
3
4
Die Buffer Pool Size gibt die Größe des Buffer Pools in Anzahl der Seiten an.
num iocleaners bestimmt die maximale Anzahl der Page Cleaner.
18
der Anzahl der auftretenden Sperreskalationen besteht. Da in der Realität dynamische Workloadtypen auftreten [WMHZ02], sind Untersuchungen unter verschiedenen Standard Benchmarks angedacht.
Möglicherweise lässt sich daraus eine Klassifikation der Performancefunktionen bezüglich der Workload
ableiten. Der Nutzen des Untersuchungsaufwandes, die mögliche Integrierbarkeit in eine selbst-optimierende Komponente und die Übertragbarkeit auf andere Datenbankmanagementsyteme sollen ebenfalls
analysiert werden. Anhand dieser Ergebnisse sollte dann abgeschätzt werden können, ob der gewählte
Ansatz, das Datenbank-Tuning unter Verwendung (nichtlinearer) Optimierungsprobleme vorzunehmen,
eine Verbesserung gegenüber den Best-Practices-Methoden darstellt.
Literatur
[Ben03]
Darcy G. Benoit. Automatic Diagnosis of Performance Problems in Database Management
Systems. Dissertation, Queens University, Kingston, Ontario, Canada, 2003.
[Gan06]
Kai Ganskow. Autonomic Database Performance Tuning: Systemmodellierung am Beispiel
von IBM DB2. Diplomarbeit, Friedrich-Schiller-Universität Jena, 2006.
[IBM06]
IBM.
An architectural blueprint for autonomic computing. White Paper, Juni 2006.
online, abgerufen am 06.09.2006: http://www03.ibm.com/autonomic/pdfs/AC Blueprint White Paper 4th.pdf.
[TPC06]
TPC Benchmark C Standard Specification Revision 5.7, April 2006.
[WMHZ02] Gerhard Weikum, Axel Mönkeberg, Christof Hasse und Peter Zabback. Self-tuning Database Technology and Information Services: from Wishful Thinking to Viable Engineering.
In Proceedings of 28th International Conference on Very Large Data Bases, Seiten 20–31,
2002.
19
Teiresias:
Datenbank-basiertes Online-Wörterbuch für Griechisch
Christian Helmchen
Kontakt: [email protected]
Universität Leipzig - Institut für Informatik - Abteilung Datenbanken
Im Web existieren zahlreiche Programme und Onlinewörterbücher für die Übersetzung ins Englische
bzw. aus dem Englischen. Doch wie sieht es mit anderen Sprachen aus? Welche Besonderheiten gilt
es zu beachten, wenn die Sprachen völlig unterschiedliche Buchstaben und Zeichensätze verwenden?
Und wie beeinflussen deren spezielle linguistische Eigenheiten die Suche im Wörterbuch? Diese
Fragen sollen am speziellen Beispiel der Sprachen Deutsch und Neugriechisch diskutiert werden. Das
Ergebnis der Untersuchungen fand seinen Ausdruck im datenbank-basierten Online-Wörterbuch
„Teiresias“:
http://teiresias.uni-leipzig.de/
Dabei sind besondere Anforderungen zu erfüllen:

Unterstützung verschiedensprachiger Zeichensätze bei Eingabe, Speicherung und Ausgabe der
Wörterbucheinträge

Problemangepasste Suchmöglichkeiten im Wörterbuch (fehlertolerant, phonetisch...)

Intuitive Benutzeroberfläche

Möglichst Standardsoftware
Außerdem sollen auch die Vorteile eines elektronischen Wörterbuches genutzt werden: hohe
Flexibilität durch verschiedene Suchmechanismen, Sortiermöglichkeiten und variable Darstellung der
Inhalte, schnelle Navigation mittels Hyperlinks und auch Interaktivität durch Kommentare und
Fragen zu Einträgen.
Architektur
Das Wörterbuch wurde als Client-Server-Anwendung realisiert. Der Anwender greift mit Hilfe eines
Web-Browsers darauf zu, während für die Autoren der Wörterbucheinträge eine eigene Software zur
Datenpflege zur Verfügung steht. Beiden Interfaces gemein ist eine intuitiv zu bedienende
Benutzeroberfläche. Sowohl beim Anwender als auch bei den Autoren sollen keine besonderen
Kenntnisse
der
Informatik
vorausgesetzt
werden.
Deshalb
wurden
unter
anderem
Umschaltmöglichkeiten zwischen den verschiedenen Zeichensätzen integriert, die unabhängig vom
Betriebssystem arbeiten. Die Autorensoftware wahrt zudem die Konsistenz der Daten durch
Plausibilitätsprüfungen und unterstützt den Autor durch Automatisierung verschiedener Teilprozesse
während der Dateneingabe.
20
Abbildung 1: Das Web-Frontend zur Suche im Wörterbuch
Zusätzlich zu den eigentlichen Daten, deren Aufbau an [1] angelehnt ist, wurde mit Data-WarehouseTechniken eine speziell auf die Anforderungen der Suche zugeschnittene Mischung aus
materialisierter View und Data-Mart realisiert. Diese Strukturen enthalten vorverarbeitete Daten, mit
denen die unten beschriebenen Suchverfahren performant umgesetzt werden.
Unicode-Unterstützung
Noch vor wenigen Jahren war die Verwendung unterschiedlicher Zeichensätze in Datenbanken und
Programmiersprachen ein Problem. Doch mit zunehmender Unicode-Unterstützung sollte dies der
Vergangenheit angehören: sowohl MySQL als DBMS, als auch PHP und Java zur Implementierung
der geforderten Funktionalität bieten, wie durch eigene Untersuchungen festgestellt wurde, heute eine
ausreichende Unterstützung des Unicode-Formates für viele gängige Sprachen, darunter auch für die
momentan geltende Schreibung des Neugriechischen. Im Detail sind beim Zusammenwirken
zwischen DBMS und Programmiersprache einige Besonderheiten zu beachten. Auch der Großteil der
getesteten Web-Browser kann mehrsprachige Texte korrekt darstellen, so dass die Verwendung
verschiedener Zeichensätze kein Problem mehr ist. Ältere Schreibweisen des Griechischen wurden
nicht näher untersucht - hier sind noch Probleme zu erwarten. Dies deutet sich bereits bei der
Verwendung von seltenen Sonderzeichen (z.B. Auslassungszeichen) oder altgriechischen Buchstaben
(z.B. als Zahlzeichen) an.
Suchverfahren
Für die Suche stehen dem Benutzer eine Reihe von Suchverfahren zur Verfügung, von der einfachen
Wortsuche über eine so genannte Stammsuche bis hin zur weitaus mächtigeren phonetischen Suche.
Stammsuche: Bei dieser Suche werden, im Gegensatz zur „echten“ Stammerkennung, die auch Vor-
21
und Nachsilben abtrennt, alle Flexionsendungen griechischer Wörter auf der Grundlage von [2], [4]
eliminiert. Die daraus resultierenden Zeichenketten bilden die Grundlage der Suche. Die Regeln,
nach denen die Endungen ermittelt werden, stehen dem System in Form von Beispiellisten zur
Verfügung, welche mit einem einfachen Texteditor beliebig ergänzt werden können. Ein
Sprachkundiger kann so leicht fehlende Formen durch Eingabe eines Beispieles hinzufügen.
Phonetische Suche: Die phonetische Suche ist die mächtigste und zugleich weitestgehend fehlertolerante Suchmethode. Ziel ist es, Wörter nicht nur an der Schreibweise, sondern auch an der
Aussprache zu erkennen, da für eine korrekte Schreibung oft tiefere Kenntnisse der Sprachgeschichte
notwendig sind. So gibt es z.B. für das Phonem i im Griechischen insgesamt 5 Schriftzeichen
(Grapheme) bzw. Zeichenfolgen (Details siehe [2]). Der Soundex-Algorithmus, der für die englische
Sprache entwickelt wurde, lässt sich für das Neugriechische jedoch leider nicht zufriedenstellend
anwenden. Die Ursache liegt unter anderem in der fehlenden Unterstützung für Grapheme, die
mehrere Phoneme repräsentieren (so entspricht „ψ“ der Folge „ps“). Deshalb wurde für das Wörterbuch auf Basis der Ausspracheregeln aus [2] ein eigenes zweistufiges phonetisches Such-verfahren
entwickelt [3]. Dabei steuert ein Regelinterpreter die phonetische Analyse eines Wortes. Dessen
Regeln lassen sich beliebig anpassen und erweitern. In der ersten Stufe werden unhörbare Varianten
(z.B. Doppelkonsonanten oder verschiedene Grapheme für ein Phonem) umgewandelt. In der zweiten
Stufe wird dann eine Reduktion auf ausgewählte Phonemklassen des Neugriechischen durchgeführt.
Dieses Vorgehen ist auch auf andere Sprachen und Alphabete übertragbar. Zur Demonstration der
Flexibilität wurden die Regeln so gestaltet, dass sich griechische Suchbegriffe mit lateinischen
Buchstaben, die dem vernommenen Klangbild im Deutschen entsprechen, eingeben lassen.
Zusammenfassung und Erweiterungen
Das vorgestellte Wörterbuch überwindet die Barriere zwischen verschiedenen Sprachen und
Zeichensätzen. Der aktuelle Stand der verfügbaren Datenbanken und Programmiersprachen erlaubt
die Realisierung komplexer mehrsprachiger Anwendungen im Web ohne grundsätzliche Probleme.
Sie können jedoch immer noch in Detailfragen, z.B. bei nicht weit verbreiteten Sprachen, auftreten.
Durch Hinzufügen weiterer Schnittstellen können auf Basis der vorliegenden Daten vielfältige
Anwendungen implementiert werden: Vokabeltrainer, Rechtschreibhilfen oder Wortschatzanalysen.
Die Datenstrukturen und Verfahren des Wörterbuches lassen sich auch bei ähnlich gelagerten
Aufgaben in anderen indogermanischen Sprachen einsetzen.
Literatur
[1] Lenk, H.: Vorlesung Lexikologie, Univ. Helsinki, 2003,
http://www.helsinki.fi/~lenk/mikrostruktur.htm (26.01.2007)
[2] Ruge, H.: Grammatik des Neugriechischen. Romiosini-Verlag, Köln, 2001
[3] Sosna, D.: Phonetische Suche in neugriechischen Texten, Univ. Leipzig, 2007,
http://lips.informatik.uni-leipzig.de/pub/2007-1
[4] Lexikon des Neugriechischen (griech.), Univ. Tessaloniki, 1999, ISBN 960-231-085-5
22
Integration von Stichprobenverfahren in ein rel.
DBMS
Bernhard Jäcksch
Decision-Support-Systeme verwenden oft große Datenmengen, was sich kritisch auf deren Interaktivität auswirkt. Stichproben sind ein geeignetes Mittel, um approximative Ergebnisse zu erhalten. Durch die wesentlich geringere Größe von Stichproben im Bezug auf
die Quelldaten, helfen sie, die Antwortzeiten für komplexe Anfragen zu minimieren. Zusätzlich sind Aussagen über den Fehler in Form von Konfidenzintervallen möglich. Um
die genannten Vorteile effizienter nutzbar zu machen, integriert Derby/S [2] stichprobenbasierte Anfragebearbeitung direkt in ein rel. DBMS. Basierend auf einem Framework mit
einer Plugin-Schnittstelle, soll eine einfache Integration neuer Stichprobenverfahren möglich werden. Im folgenden werden Anforderungen und Architektur des Frameworks und der
Schnittstelle skizziert und wichtige Implementationsdetails erläutert.
1 Einleitung
Stichproben können bspw. zur approximativen Anfragebearbeitung in großen Data-Warehouse-Systemen
eingesetzt werden. Häufig ist hier ein schnell verfügbares, approximiertes Anfrageergebnis einer zeitintensiven, exakten Berechnung vorzuziehen. Trotzdem gibt es derzeit kaum ein DBMS, das Stichproben
als grundsätzliche Datenobjekte unterstützt. Hier setzt Derby/S [2] an, dessen Ziel die vollständige Integration von Stichproben in ein relationales DBMS ist. Dabei wurde Apache Derby [1] als Grundlage
verwendet. Durch eine nahtlose SQL-Erweiterung gestaltet sich die Erzeugung und Verwendung von
materialisierten Stichproben denkbar einfach. Im aktuell vorliegenden Derby/S-Prototypen erfordert die
Implementierung neuer Stichprobenverfahren eine umfassende Einarbeitung in Derby und ist eng mit
Derby Interna verzahnt. Um das Problem der Integration neuer Verfahren in Derby/S wesentlich zu
vereinfachen, wird in dieser Arbeit ein Framework, als Abstraktionsschicht zwischen Derby und den
Stichprobenverfahren, vorgeschlagen (siehe Abb. 1(a)).
Die vorgeschlagene Modularisierung führt die grundlegenden Schritte zur Erzeugung, Wartung und Verwendung von Stichproben aus und bindet mittels einer Plugin-Schnittstelle neue Verfahren ein. Anhand
der näherungsweisen Anfrage in Listing 1 wird die Funktionsweise von Derby/S kurz illustriert. Die Anfrage wird direkt auf den Basistabellen formuliert, auch wenn ein approximatives Ergebnis gewünscht
ist. Dabei definiert SOME, dass das Ergebnis unvollständig sein kann. Die ~ vor dem Aggregat gibt an,
dass der Ergebniswert nicht exakt sein muss. Die Selektion von Stichproben und das Umschreiben der
näherungsweisen Anfrage werden automatisch von Derby/S vollzogen. Während der Erzeugung einer
Stichprobe lassen sich wichtige Merkmale parametrisieren, bspw. Größe oder Wartungsart. Dazu bietet
das System fein abgestufte Wartungsstrategien an und übernimmt die Verwaltung der Stichproben.
Abschnitt 2 geht zunächst auf Anforderungen an das Framework ein und in Abschnitt 3 wird kurz die
prinzipielle Architektur erläutert. In Abschnitt 4 wird zu einigen ausgewählten Implementierungsdetails
Stellung genommen und in Abschnitt 5 werden die Ergebnisse zusammengefasst.
2 Anforderungen
Aus den charakteristischen und repräsentativen Eigenschaften sowohl einfacher Verfahren wie Reservoirund Bernoulli-Sampling als auch einiger komplexerer Verfahren ergeben sich eine ganze Reihe verschiedener Merkmale, die von dem Framework und der Plugin-Schnittstelle unterstützt werden sollen.
Listing 2: umgeformte Anfrage
Listing 1: Approximative Anfrage
SELECT SOME YEAR(OrderDate),
2 ~SUM(Quantity * Price)
3 FROM Sales
4 GROUP BY YEAR(OrderDate)
1
SELECT YEAR(OrderDate),
2 AVG(Quantity * Price) * 100
3 FROM SP_Sales
4 GROUP BY YEAR(OrderDate)
1
23
Stichprobentabellen. Um z.B. obige Anfrage zu beantworten, könnte ein optimiertes Verfahren zum
Einsatz kommen, das neben einer einfachen Zufallsstichprobe, weitere statistische Informationen über
die Quelldaten vorhält. Diese Daten werden jeweils als eigene Entität gespeichert. Das Framework muss
also für die Stichprobenverfahren einfache Mittel bereitstellen, Entitäten anlegen und erweitern zu können.
Wartung. Um eine Stichprobe verwenden zu können, muss sie zuerst aus den Quelldaten erhoben werden. Die Plugin-Schnittstelle muss der Stichprobe die Quelldaten zur Verfügung stellen können. Auch
erlaubt Derby/S eine feinabgestimmte Wartung der im System befindlichen Stichproben. Die Schnittstelle sollte eine einfache Einbindung neuer Verfahren in die Wartungsmechanismen unterstützen.
Anfragebearbeitung. Neben Erzeugung und Wartung ist die Verwendung der Stichproben in approximativen Anfragen ein wichtiger Bestandteil von Derby/S. Um die obige Anfrage zu beantworten, könnte
eine 1% Stichprobe SP_Sales der Sales Tabelle zum Einsatz kommen. Diese würde dann wie in
Listing 2 umgeschrieben werden. Damit dieser Schritt transparent im System erfolgen kann, muss die
Plugin-Schnittstelle in der Lage sein, eine geeignete Stichprobe auszuwählen und das Verfahren beim
Umschreiben der Anfrage unterstützen.
3 Architektur
Im Folgenden wird auf wichtige Grundzüge der Architektur eingegangen, wobei sich an den im vorangegangenen Abschnitt beschriebenen Kriterien orientiert wird.
Logische und Physische Stichproben: Zentrales Element der Schnittstellenarchitektur ist die Aufteilung in logische und physische Stichproben. Eine logische Stichprobe fasst eine oder mehrere physische
Stichproben zusammen und ist für deren Verwaltung zuständig. Physische Stichproben verkörpern eine
konkrete Entität, in der die eigentlichen Daten hinterlegt sind. Die Hierarchiebeziehung zwischen logischer und physischer Stichprobe wurde im vorliegenden Framework noch um die Möglichkeit erweitert,
auch logische Stichproben miteinander kombinieren zu können. Abb. 1(b) zeigt bspw. eine geschichtete Stichprobe, die die Daten nach YEAR partitioniert. Für Datensätze mit YEAR <= 2000 wird eine
einfache Zufallsstichprobe verwendet, während für alle >= 2000 ein optimiertes Verfahren verwendet
wird, um ein genaueres Ergebnis zu erzielen.
Auswahlstrategien: Um wenige Spezialkenntnisse vorauszusetzen und den Administrationsaufwand
zu minimieren, soll Derby/S Entscheidungen über die Wahl des Stichprobenverfahrens und die korrekte
Umformung des Anfragebaumes selbst treffen. Um den Einsatz verschiedener Strategien nicht zu beschränken, wurden an diesen Stellen des Frameworks Strategy- und Factory-Muster eingesetzt. Diese
ermöglichen die einfache Erweiterbarkeit um neue und angepasste Strategien. Zusätzlich wurden bereits verschiedene Basisstrategien implementiert, die auch als Ausgangspunkt für neue Strategien dienen
können.
Stichprobenverwaltung: Für die Verwaltung und den Zugriff auf die im System verfügbaren Stichprobenverfahren existiert ein Repository, das jederzeit abrufbar ist. In diesem sind wichtige Eigenschaften aller Verfahren registriert und zugreifbar. Diese Informationen können von den im vorangegangenen
Abschnitt beschriebenen Strategien benutzt werden, beispielsweise um bei der Erstellung einer neuen
Stichprobe anhand der gegeben Parameter ein optimales Stichprobenverfahren auszuwählen. Zusätzlich
wurden neue Systemkataloge eingeführt, in denen die jeweiligen Parameter für die erstellten Stichproben
festgehalten sind.
Hilfsklassen: Zahlreiche grundlegende Funktionen, wie das Manipiulieren von Tabellen oder der Zugriff auf die Systemkataloge, werden von allen Stichprobenverfahren zur Erzeugung und Verwaltung der
Stichprobe benötigt. Da die Verfahren innerhalb der Datenbank implementiert werden, wird aus Efizienzlogische
Stichprobe 1
year < 2000
Derby
Framework
Schnittstelle zu Derby
logische
Stichprobe 2
B
physische
Stichprobe 1
E
= Stichprobe
A
X
= Verfahren
= gehört zu
year >= 2000
logische
Stichprobe 3
C
Eigene Verfahren
physische
Stichprobe 2
E
physische
Stichprobe 3
F
Plugin-Schnittstelle
(a) Schematische Ansicht der Erweiterung
(b) Beispielhierarchie kombinierter Stichproben
24
gründen nicht mit SQL-Befehlen, sondern direkt mit internen Strukturen gearbeitet. Um die Abstraktion
von Derby-internen Objekten beizubehalten, wurden verschiedene Hilfsobjekte eingeführt, die einen einfachen Umgang mit diesen erlauben.
4 Implementation
Im folgenden Abschnitt wird dokumentiert, wie die obigen Anforderungen und die Architektur im Derby/S Framework umgesetzt wurden.
Das Repository verwendet einen vorhandenen Modul-Mechanismus von Derby/S, wodurch es automatisch geladen wird und innerhalb der ganzen Datenbank zur Verfügung steht. Um die Auswahl von
Stichprobenverfahren nach bestimmten Eigenschaften zu ermöglichen, besitzt jedes Verfahren sog. Capabilities, die seine Funktionalität, bspw. die beherrschten Wartungssmethoden, widerspiegeln. Anhand
dieser kann das Repository nach Einträgen gefiltert werden, die die Vorgaben der Quellanfrage erfüllen.
Die Wartungstechniken für Stichproben in Derby/S wurden mittels dem in Derby bereits vorhandenen Triggermechanismus umgesetzt. Dabei werden auf den Quelltabellen Trigger definiert, die erfolgte
Aktualisierungen an die Stichprobenverfahren weiterleiten. Projektionen, Selektionen und Joins werden
dabei bereits berücksichtigt. Die Trigger werden vom Framework automatisch angelegt.
Die näherungsweise Anfragebearbeitung mittels Stichproben ist in Derby/S wie folgt realisiert: Derby
parst Anfragen nach der Eingabe in einen Baum, dessen Knoten einzelne Elemente der Anfrage repräsentieren. Um eine approximative Anfrage umzuschreiben, bietet die Plugin-Schnittstelle Möglichkeiten an,
vor der Weiterverarbeitung Teile des Baumes zu ersetzen. Beim Beispiel aus der Einleitung wird u.a. die
Quellrelation Sales, gegen die entsprechende Stichprobe ausgetauscht. Da sich die Änderungen der
Anfrage für jedes Stichprobenverfahren unterscheiden können, ist es vorgesehen, dass jedes Stichprobenverfahren ein Strategieobjekt zur Verfügung stellt, das einen gegebenen Anfragebaum entsprechend
umformen kann. Grundlegende Operationen werden dafür bereits zur Verfügung gestellt.
5 Zusammenfassung
Derby/S bietet eine umfassende Unterstützung von Stichprobenverfahren und deren Einsatz in näherungsweisen Anfragen. Zusammen mit der nahtlosen Integration in SQL und den feinstufig justierbaren
Wartungsoperationen sind Stichproben in Derby/S vollwertige Datenbankobjekte. Durch die vorgenommene Erweiterung um ein Modulkonzept bleibt Derby/S nicht auf wenige vorkonfigurierte Stichprobenverfahren beschränkt. Vielmehr können nahezu beliebige Verfahren über eine einheitliche Schnittstelle
implementiert und getestet werden.
Um die Einsatzmöglichkeiten von Derby/S zukünftig zu erweitern und die Plugin-Schnittstelle zu verbessern wird u.a. bereits parallel die Erhebung und Integration von Workload Informationen umgesetzt.
Diese können für eine zusätzliche Parametrisierung der Stichprobenverfahren oder etwa zur automatischen Erzeugung relevanter Stichproben eingesetzt werden.
Literatur
[1] A. S. Foundation. Apache db project. db.apache.org/derby, 2006.
[2] A. Klein, R. Gemulla, P. Rösch, and W. Lehner. Derby/s: A dbms for sample-based query answering.
In ACM Sigmod 06.
25
Regelbasiertes Visualisieren und Editieren
beliebiger Graphen
Thomas Jörg
[email protected]
1. Februar 2007
Zusammenfassung
Graphen sind eine flexible und ausdrucksmächtige Datenstruktur. Es gibt eine große Zahl
an Modellen und Notationen, die auf Graphen basieren: Bekannte Vertreter sind EntityRelationship-Diagramme zur Datenmodellierung, die Diagramme der UML-Familie zur Beschreibung des Verhaltens und der Struktur von Softwaresystemen oder RDF-Modelle zur
Darstellung von Metadaten. Mit zunehmender Größe sind Graphen ohne geeignete Werkzeuge kaum beherrschbar. Existierende Werkzeuge bleiben in der Regel auf eine konkrete
Sprache bzw. Notation beschränkt. Ziel der Diplomarbeit ist die Entwicklung eines Editors
für beliebige Graphmodelle, die in einem Standardformat vorliegen. Der Editor soll flexibel
an das zugrunde liegende Modell angepasst werden können.
1
Einleitung
Die aktuellen Forschungsprojekte der Arbeitsgruppe Heterogene Informationssysteme an der TU
Kaiserslautern verwenden Graphen zur Repräsentation von Daten und Metadaten. Diese Arbeit
beschreibt den zur Visualisierung und Manipulation dieser Modelle entwickelten Graph-Editor.
Zentrale Anforderung war jedoch, die Verarbeitung beliebiger Modelle zu ermöglichen, die als
gerichtete, markierte, attributierte Graphen vorliegen. Abbildung 1 stellt beispielhaft das Modell
einer Tabelle in einer relationalen Datenbank dar, die zur Speicherung von Kundendaten dient.
Ein Datensatz besteht aus Vor- und Nachnamen, sowie einer eindeutigen Kundennummer, die
gleichzeitig der Primärschlüssel der Tabelle ist.
has
Colu
mn
yKey
rimar
hasP
Table
name: Customer
PrimaryKey
m
o lu
sC
ha
has
Co
lu
n
Column
name: LastName
lu m
has
Typ
e
Co
Type
type: VARCHAR(255)
h as
mn
n
ha
sT
yp
e
Column
name: FirstName
Column
name: CNo
Type
type: INTEGER
e
yp
sT
ha
Abbildung 1: Beispielhaftes Graphmodell
Graphen neigen mit zunehmender Größe dazu, unübersichtlich zu werden. Abbildung 2 zeigt
eine alternative Darstellung des betrachteten Modells aus Abbildung 1. Offensichtlich erhöht
diese Art der Darstellung die Übersichtlichkeit deutlich.
26
Customer
CNo: INTEGER
FirstName: VARCHAR(255)
LastName: VARCHAR(255)
Abbildung 2: Bildschirmdarstellung
Der Editor erlaubt, die gewünschte Visualisierung durch so genannte Darstellungsregeln in
deklarativer Weise zu beschreiben. Der zugrunde liegende Graph, im Folgenden als Anwendungsmodell bezeichnet, wird anhand der Darstellungsregeln um ein so genanntes Darstellungsmodell
ergänzt (Abbildung 3). Das Darstellungsmodell ist ebenfalls ein Graph; den verwendeten Knotenund Kantentypen ist eine graphische Entsprechung zugeordnet, beispielsweise eine Box oder ein
Pfeil. Eigenschaften, wie Farbe, Schriftart oder die Bildschirmposition, werden durch Attribute
beschrieben. Das Darstellungsmodell lässt sich sehr einfach in eine entsprechende Bildschirmdarstellung überführen.
Neben der Visualisierung lässt sich auch die Möglichkeit zum Editieren beliebig anpassen.
Dazu werden so genannte Editieroperationen in deklarativer Weise angegeben.
Text
caption: Customer
font-weight: bold
table head
Text
caption: CuNo: INTEGER
icon: /icons/key.png
table row
Table
background-color: blue
border-width: 1,5pt
table
ow
row
table r
Text
caption:
LastName: VARCHAR(255)
Text
caption:
FirstName: VARCHAR(255)
Abbildung 3: Darstellungsmodell
2
Graphtransformation
Anwendungs- und Darstellungsmodell sind Graphen, die Umsetzung des Anwendungsmodells in
ein entsprechendes Darstellungsmodell ist somit eine Graphtransformation. Bisher gibt es keine
Implementierungen von Graphtransformationssystemen, die über das Stadium von Forschungsprototypen hinausgehen. Aus diesem Grund und in Anbetracht spezieller Anforderungen an
die Sprache zur Definition von Transformationsregeln, fiel die Entscheidung zu einer eigenen
Entwicklung. Sie setzt den algebraischen Ansatz der Graphtransformation [Ehr86, EKL90] um.
Zusätzlich werden Attributbedingungen [EPT04], sowie positive und negative Graphbedingungen berücksichtigt [Lam04]. Als Grundlage dient eine relationale Datenbank. Neben der Speicherung von Graphen wird diese zur Suche nach isomoprhen Teilgraphen verwendet; dies ist eine
zentrale Aufgabe im Graphtransformationsprozess. Das Teilgraph-Isomorphie-Problem ist NPvollständig, die Berechnungen sind daher äußerst aufwendig. Relationale Datenbanken erzielen
gerade bei großen Graphen1 gute Ergebnisse, sofern die zu suchenden Teilgraphen klein sind;
dies ist für Graphtransformationsregeln typischerweise der Fall.
Die Verwendung von Graphtransformationsregeln zum Aufbau des Darstellungsmodells bietet ein Höchstmaß an Flexibilität. Die Möglichkeiten gehen weit über eine formatierte Darstellung eines Graphen hinaus. Vielmehr kann die Struktur des Darstellungsmodells beliebig vom
Anwendungsmodell abweichen. Dies ermöglicht es, von der Komplexität des zugrunde liegenden
Graphen zu abstrahieren.
1
Getestet wurden Graphen mit 5000 bis 45000 Knoten und etwa der doppelten Anzahl an Kanten
27
3
Aktualisierung des Darstellungsgraphen
Eine Editieroperation wird durch eine Menge von Graphtransformationsregeln mit festgelegtem
Kontrollfluss realisiert; die verwendeten Kontrollstrukturen entsprechen denen, die [Göt88] im
Rahmen der Programmierten Graphgrammatiken vorschlägt.
Bei der Anwendung einer Editieroperation ist zu beachten, dass Anwendungs- und Darstellungsmodell nebeneinander existieren. Wird eines der Modelle geändert, muss sich dies im jeweils
anderen widerspiegeln. Der Benutzer interagiert mit dem Darstellungsmodell. Daraus ergibt sich
eine Problematik, die als Variante des bekannten View-Update-Problems gesehen werden kann.
Im Allgemeinen ist es nicht möglich eine Änderung am Darstellungsmodell auf das Anwendungsmodell zu übertragen. Daher werden Editieroperationen verwendet, um das Anwendungsmodell
direkt zu modifizieren. Das Darstellungsmodell muss daraufhin entsprechend aktualisiert werden. Es ist zu beachten, dass bestimmte Informationen im Darstellungsmodell gehalten werden,
die sich nicht aus dem Anwendungsmodell herleiten lassen und deren Manipulation keine Auswirkungen auf selbiges hat. Ein Beispiel ist die Bildschirmposition der Kundentabelle. Es muss
sichergestellt werden, dass derartige Informationen im Laufe der Aktualisierung nicht verloren
gehen. Man kann daher das Darstellungsmodell nicht einfach verwerfen und neu berechnen.
Jede Veränderung des Anwendungsmodells darf sich nur auf diejenigen Teile des Darstellungsmodells auswirken, die tatsächlich betroffen sind. Um diese Teile zu finden, muss nachvollzogen
werden, welche Darstellungsregeln zu Anfang auf die geänderten Teile des Anwendungsmodells
angewendet wurden. Potentiell von der Änderungsoperation betroffen sind nur solche Teile des
Darstellungsmodells, die aus eben diesen Regelanwendungen hervorgingen.
4
Zum Entwicklungsstand
Die Entwicklung des Editors ist weitgehend abgeschlossen. Es konnte gezeigt werden, dass relationale Datenbanken gut zur Transformation großer Graphen nach dem algebraischen Ansatz
geeignet sind. Weiterhin ist es gelungen, einen effizienten Ansatz zur selektiven Aktualisierung
des Darstellungsgraphen zu entwickeln.
Literatur
[Ehr86] Hartmut Ehrig. Tutorial introduction to the algebraic approach of graph grammars.
In Graph-Grammars and Their Application to Computer Science, pages 3–14, 1986.
[EKL90] Hartmut Ehrig, Martin Korff, and Michael Löwe. Tutorial introduction to the algebraic
approach of graph grammars based on double and single pushouts. In Graph-Grammars
and Their Application to Computer Science, pages 24–37, 1990.
[EPT04] Hartmut Ehrig, Ulrike Prange, and Gabriele Taentzer. Fundamental theory for typed
attributed graph transformation. Technical report, 2004.
[Göt88] Herbert Göttler. Graphgrammatiken in der Softwaretechnik: Theorie und Anwendungen, volume 178 of Informatik-Fachberichte. Springer, 1988.
[Lam04] Leen Lambers. A new version of gtxl: An exchange format for graph transformation
systems. In Workshop on Graph-Based Tools (GraBaTs) 2004 at Second International
Conference on Graph Transformation (ICGT 2004), 2004.
28
Self-Tuning für Bitmap-Index-Kongurationen
Andreas Lübcke
Institut für Technische und Betriebliche Informationssysteme
Otto-von-Guericke-Universität Magdeburg
1
Einführung
Als Teilgebiet des Self-Tunings in Datenbankmanegementsysteme wird das Ziel verfolgt, die
Index- oder Design Advisor [1, 6] der aktuellen DBMS so abzuändern, daÿ bezüglich der Indexkonguration ein sich selbst überwachendes und tunendes DBMS entsteht. Dabei sollen weitgehend
die bisherigen statischen Ansätze der Advisor genutzt werden, diese aber in einem dynamischen
und autonomen Kontext Verwendung nden. Die neu entstandenen Möglichkeiten sollen zu einer selbstständigen Anpassung an sich ändernde Rahmenbedingungen führen. Dies bezieht sich
sowohl auf die Daten selbst, auf deren Nutzung sowie alle relevanten Aspekte der Systemumgebung. Self-Tuning wird in aktuellen Ansätzen durch einen Regelkreis [5] aus der Überwachung von
Systemverhalten und -nutzung (Observation), der Vorhersage zukünftig gewinnbringender Systemeinstellungen (Prediction) und deren Umsetzung (Reaction) realisiert. Für das Self-Tuning von
Index-Kongurationen besteht dieser Regelkreis aus der Überwachung des aktuellen Workloads,
der Ableitung geeigneter Indexkandidaten [2] und gegebenfalls der Erzeugung der vielversprechendsten Kandidaten und dem Löschen weniger protabler Indexe [4]. Bei aktuellen Ansätzen
blieben Bitmap-Indexe [3] und deren Besonderheiten bisher unberücksichtigt und werden deshalb
im Rahmen des hier vorgestellten Diplomprojektes untersucht.
2
Grundlagen und Anforderungen
Bitmap-Indexe ersetzen für einzelne Schlüsselwerte Tupelidentikator-Listen durch Bitvektoren,
und sind deshalb besonders ezient, wenn nur wenige mögliche Schlüsselwerte existieren. Der
erste auällige Vorteil ist dabei der geringe Platzbedarf. Desweiteren können Bitvektoren leicht
logisch miteinander verknüpft werden, um komplexe Selektionsbedingungen auszuwerten. Aus
den genannten Gründen werden Bitmap-Indexe oft in Data Warehouse-Lösungen für die Indexierung von Dimensionsdaten verwendet. Ausserdem stellen Bitmap-Indexe als Verbund-Indexe
eine ideale Möglichkeit zur Berechnung von STAR-Joins dar. Der Aufbau von Bitmap-Indexen
bringt neben Vorteilen aber auch Nachteile, denn für Änderungsoperationen sind Matrixmodikationen nötig, welche aufwändig sind und Sperrkonikte wahrscheinlicher werden lassen.
Für das Self-Tuning von Bitmap-Index-Kongurationen ergeben sich im Vergleich zu herkömmlichen B-Baum-Indexen eine Reihe von neuen Anforderungen, die hier kurz diskutiert werden.
Wie gehabt basiert die Ableitung einer Index-Konguration auf der Überwachung von Workloads.
Jedoch ergeben sich bei der Auswertung einzelner Anfragen folgende Unterschiede.
•
r(R) sind lediglich Prädikate aus der WHEREKlausel relevant, welche die Form A = const aufweisen, wobei die Spalte A ∈ R eine
Attributwertskardinalitätbedingung card(dom(A))/card(r(R)) < maxSelectivity erfüllt,
d.h. A hat eine geringe Anzahl möglicher Werte im Vergleich zur Gröÿe der Relation.
•
Für Bitmap-Join-Indexe muss ein (innerer) Equi-Join
Für Bitmap-Indexe auf einer Relation
A2 ∈ S
r(R) ./A1 =A2 r(S) mit A1 ∈ R und
A3 ∈ S (Indexschlüs-
(Verbundattribute) erkannt werden, wobei eine weitere Spalte
sel) in der WHERE-Klausel existiert, für die die oben genannten Bedingungen zutreen.
Für die Erkennung der Join-Bedingung können in einem Data Warehouse gegebenfalls Dimensionsdenitionen herangezogen werden.
29
Observation
Prediction
Reaction
Für jede Anfrage Statistik
für Indexkandidaten:
- Indexempfehlungen
- Profit und Größe jedes
Indexkandidaten
- Kombinationen von
Indexkandidaten
Kontinuierliche
Kontrolle der Indexstatistiken
- entsteht günstigere
Indexkonfiguration
durch Austausch von
Indexen?
Erzeugen/Löschen von
Indexen zu geeignetem
Zeitpunkt
- vor/nach der Anfrage
- System Downtime
Abbildung 1: Regelkreis Index-Self-Tuning
•
Bitmap-Indexe sind besonders sinnvoll, wenn davon mehrere in einer Anfrage verwendet
und ihre Bit-Felder logisch kombiniert werden. Dies muss im Entscheidungsmodell entsprechen berücksichtigt werden.
•
Mehrspalten-Bitmap-Indexe sind möglich, aber durch die schlechtere Attributwertskardinalität und eingeschränkte Kombinierbarkeit meist nicht empfohlen, wodurch sich eine
Einschränkung des Suchraums ergibt.
•
Bitmap-Indexe haben auf Grund Ihrer geringeren Gröÿe meist ein besseren Verhältnis von
Nutzen zu Speicherverbrauch, weshalb die Integration mit dem Tuning anderer Indexstrukturen berücksichtig werden muss.
•
Bitmap-Indexe haben vergleichsweise geringe Erzeugungskosten, jedoch höhere Kosten bei
Updates. Dies muss in das Kostenmodell einiessen.
3
Ansätze zum autonomen Bitmap Index Tuning
Das prinzipielle Vorgehen beim Self-Tuning von Bitmap-Index-Kongurationen ist in Abb. 1
dargestellt. Generell werden die Indexkandidaten durch eine syntaktische Analyse von Anfragen
entsprechend den oben genannten Anforderungen ermittelt. Daraufhin werden diese Kandidaten
in den Systemtabellen erzeugt und für die eine What-If-Analyse (was wäre, wenn diese Index
existieren würden) dem Optimierer zur Verfügung gestellt.
Der aus der What-If-Analyse berechnete Gewinn von Indexkandidaten und bereits materialisierten Indexen gegenüber der Ausführung der Anfrage ohne Indexe wird für spätere Analyse
und Empfehlungen als Indextstatistiken gespeichert. Aufgrund der Kombinierbarkeit der BitmapIndexe stellt sich die Frage, ob diese jeweils einzeln gespeichert werden sollten, oder diese wiederum direkt in die Bewertung der Konguration eingehen. Auf dieser Basis muÿ ein angepaÿtes
Entscheidungsmodell gefunden werden, daÿ die Besonderheiten der Bitmap-Indexe berücksichtigt. Weiterhin muÿ anhand der Gröÿe des Indexpools und weiteren Parametern entschieden
werden, welche Konguration bestmöglich alle Parameter erfüllen kann. Dies kann durch einen
Greedy-Algorithmus oder Dynamic Programming geschehen. Abschlieÿend muÿ die Frage des
Erstellungszeitpunktes geklärt werden, denn werden die Bitmap-Indexe vor der Ausführung der
Anfrage erzeugt, dann führt dies zu einer verzögerten Ausführung. Hier muÿ betrachtet werden,
wie stark die Erzeugung der Kongurationen die Anfragezeiten beeinuÿt. Im Gegensatz dazu
können die Index-Kongurationen in der System Downtime oder Phasen geringer Auslastung
erzeugt werden, wodurch der Gewinn durch die neue Index-Konguration für die aktuelle Anfrage verloren geht. Für das Diplomvorhaben wird das DBMS Oracle 10g genutzt. Dessen Design
30
Advisor bietet bereits eine Unterstützung für Bitmap-Indexe an, jedoch werden keine VerbundIndexe unterstützt und Ziel der hier beschriebenen Arbeit ist die dynamische Unterstützung des
Self-Tuning von Bitmap-Indexen. Im Rahmen dieses Diplomvorhabens wird das Self-Tuning der
Bitmap-Indexe unabhängig von anderen Indexstrukturen in einem separaten Index-Pool behandelt.
Literatur
[1] S. Agrawal, S. Chaudhuri, L. Kollár, A. P. Marathe, V. R. Narasayya, and M. Syamala. Database
Tuning Advisor for Microsoft SQL Server 2005. In VLDB '04, pages 11101121, 2004.
[2] N. Bruno and S. Chaudhuri. To Tune or not to Tune? A Lightweight Physical Design Alerter. In
VLDB '06, pages 499510, 2006.
[3] C.-Y. Chan and Y. E. Ioannidis. Bitmap index design and evaluation. In SIGMOD '98: Proceedings
of the 1998 ACM SIGMOD international conference on Management of data, pages 355366, New
York, NY, USA, 1998. ACM Press.
[4] K. Sattler, E. Schallehn, and I. Geist. Autonomous Query-driven Index Tuning. In Proc. Int. Database
Engineering and Applications Symposium (IDEAS 2004), Coimbra, Portugal, pages 439448, July
2004.
[5] G. Weikum, C. Hasse, A. Moenkeberg, and P. Zabback. The COMFORT Automatic Tuning Project,
Invited Project Review. Information Systems, 19(5):381432, 1994.
[6] D. C. Zilio, J. Rao, S. Lightstone, G. M. Lohman, A. Storm, C. Garcia-Arellano, and S. Fadden. DB2
Design Advisor: Integrated Automatic Physical Database Design. In VLDB '04, pages 10871097,
2004.
31
Subspace Clustering für die Analyse von CGH Daten
Emmanuel Alexander Müller
[email protected]
Lehrstuhl für Datenmanagement und Exploration
Prof. Dr. Thomas Seidl
RWTH Aachen
Abstract: Durch Problemstellungen bei der Anwendung von traditionellen Clustering-Algorithmen auf hochdimensionalen Daten motiviert, wurde im Rahmen meiner Diplomarbeit ein
neues algorithmisches Konzept zum effizienten Subspace Clustering entwickelt. Eine mögliche
Anwendung dieses Konzeptes stellt die Analyse von CGH Daten dar. Durch Subspace Clustering ist es möglich, Gruppen von Patienten zu identifizieren, deren Genom charakteristische
Veränderungen in bestimmten Abschnitten der DNA aufweist. Durch Analyse der so identifizierten Gruppen können Hinweise auf Zusammenhänge zwischen den charakteristischen
Veränderungen und den Erkrankungen der Patienten erkannt werden.
Zuordnung: Data Mining, Clustering, hochdimensionale Daten, Comparative Genomic
Hybridization
Subspace Clustering
Heutzutage werden enorme Datenmengen zur Analyse von verschiedensten Sachverhalten herangezogen, sei es zur Analyse von Kundenverhalten im Einzelhandel oder Hochdurchsatzexperimenten in der Biologie um nur zwei Beispiele zu nennen. Dabei entstehen neue Problemstellungen, welche nur durch den Einsatz von effizienten Data Mining Verfahren gelöst werden
können. Clustering ist eines der hierzu verwendeten Verfahren, wie z.B. in DBSCAN [EKSX96]
umgesetzt. Clustering ist die automatische Gruppierung von Objekten. Objekte innerhalb einer Gruppe sollen möglichst ähnlich sein, während Objekte verschiedener Gruppen möglichst
unähnlich sein sollen. Jedoch gelingt es bei manchen Datensätzen, welche sich durch einen hochdimensionalen Datenraum auszeichnen, nicht mehr mit den bisher gebräuchlichen Clustering
Algorithmen gute Resultate zu erzielen. Dies liegt in der hohen Dimensionalität (Anzahl der Attribute) der verwendeten Objektbeschreibung begründet. Für traditionelle Clustering Verfahren
erscheinen aufgrund der hohen Dimensionalität die gegeben Daten als gleichverteilt, wodurch
keine Cluster zu erkennen sind. Irrelevante Dimensionen, in denen die Objekte einer Gruppe
stark streuen, sind dafür verantwortlich.
Eine Lösung für das hier beschriebene Problem scheint einfach. Die irrelevanten Dimensionen
sind auszublenden. Als Subspace Cluster (O, S) wird allgemein eine Objektmenge O zusammen
mit einer Auswahl von Dimensionen S bezeichnet. Der durch die Dimensionen in S gebildete Teilraum gibt dabei an, welches die relevanten Dimensionen für den durch die Objekte in
O gebildeten Cluster sind. Es lassen sich somit Cluster in unterschiedlichen Projektionen des
Datenraumes finden, wie erstmals in CLIQUE [AGGR98] vorgestellt. Diese Teilräume und die
darin enthaltenen Cluster zu identifizieren, ist die Aufgabenstellung für das Subspace Clustering.
Die naive Reduktion des Problems auf das traditionelle Clustering würde alle möglichen Teilräume
mit einem bestehenden Clustering Verfahren untersuchen. Wegen der exponentiellen Anzahl an
32
möglichen Teilräumen ist dies jedoch nicht effizient möglich. Im Rahmen meiner Diplomarbeit
wurde ein effizienter Subspace Clustering Algorithmus entwickelt, welcher auf erfolgreich angewendeten dichte-basierten Ansätzen aufbaut und diese durch eine statistisch fundierte Modellierung erweitert. Durch den Algorithmus wird die Vollständigkeit des Resultates gewährleistet,
im Gegensatz zu bestehenden Verfahren, welche nur durch ein approximatives Vorgehen eine
effiziente Berechnung erreichen. Durch Verwendung einer neuen Datenstruktur wird im eigenen
Algorithmus sowohl die Effizienz als auch die Vollständigkeit bei der Berechnung erzielt.
Subspace Clustering von CGH Daten
Subspace Clustering wurde im Rahmen der Diplomarbeit für die Analyse von CGH (comparative
genomic hybridization) Daten verwendet. Der untersuchte Datensatz besteht aus einer Menge
von CGH-Untersuchungen von verschieden Patienten, die an Krebs erkrankt sind. Die Daten
stammen von der Website Progenetix.net [BC01], welche solche Untersuchungen in einer Datenbank verwaltet und zur Forschung frei zur Verfügung stellt. Bei einer CGH-Untersuchung wird
das Genom auf veränderte Genomabschnitte untersucht. Es können dabei Vervielfältigungen
oder Deletionen von Abschnitten auf der DNA identifiziert werden. Eine solche Veränderung
weist auf das evtl. Vorkommen von Onkogenen (Zugewinn) bzw, Tumorsuppressorgenen (Verlust) in der betroffenen Region hin [LMC+ 06]. Es soll mit solchen Untersuchungen der Zusammenhang zwischen Mutationen in gewissen Regionen der DNA und verschiedenen Krebserkrankungen untersucht werden. Zu jedem Patienten liegen in dem verwendeten Datensatz für 862
Abschnitte des Genoms Messwerte zur Veränderung der DNA vor. Zusätzlich liegt zu jedem
Patienten eine Einteilung in eine Klasse von Krebserkrankungen vor.
Ziel ist es, eine Gruppierung der Patienten anhand der gegebenen CGH-Untersuchungen vorzunehmen. Eine Gruppe soll dabei eine für sie charakteristische Veränderung bestimmter Abschnitte der DNA aufweisen. Die für diese Gruppierungen durch das Subspace Clustering gewählten
Dimensionen (Abschnitte der DNA) werden dann, zusammen mit den in diesen Gruppen gefunden Krebserkrankungen, von Experten analysiert. Es kann dadurch ein Hinweis auf einen
Zusammenhang zwischen Mutationen in bestimmten Regionen des Genoms und den dabei auftretenden Krebserkrankungen erkannt werden.
Modellierung
Die Veränderungen in den 862 Abschnitten werden aggregiert für die 48 Chromosomenarme
betrachtet. Dabei werden Vervielfältigungen, Deletionen und keine Veränderungen oder keine
eindeutigen Veränderungen auf einem Chromosomenarm durch die diskreten Attributwerten 1,1 und 0 modelliert. Durch Subspace Clustering soll eine charakteristische Veränderung (1,-1)
auf bestimmten Chromosomenarmen identifiziert werden. Man ist dabei jedoch nicht an keinen
Veränderungen oder an nicht eindeutigen Veränderungen, wie sie der Wert 0 repräsentiert, interessiert. Relevante Informationen stellen in diesem Anwendungsfall also nur die Werte 1 und
-1 dar, der Wert 0 ist als irrelevant zu betrachten. Als irrelevant wird beim Subspace Clustering
eine Dimension mit starker Streuung der Daten angesehen. Man transformiert somit die Werte
in drei getrennt voneinander vorliegende Bereiche in einem kontinuierlichen Wertebereich. Der
Wert 0 wird dabei in einen Bereich, in welchem die Werte durch einen Zufallsgenerator gleichverteilt vorliegen, transformiert. Abbildung 1 verdeutlicht diese Transformation zweier Objekte
mit nur zwei Dimensionen. Es sind pro Dimension die drei Bereiche für die Werte -1,0,1 hervorgehoben, in die ein Objekt transformiert wird. In dem schraffierten Bereich können somit alle
Objekte mit Wert 1 in der ersten Dimension als Subspace Cluster erkannt werden.
33
-1
0
1
(1,0)
( -1 , 1 )
Abbildung 1: Transformation zweier 2D CGH-Objekte zur Identifikation als Subspace Cluster
Diskussion der Ergebnisse
Es wurden Subspace Cluster mit mindestens 20 Objekten (Patienten) im Datensatz gesucht.
Dabei wurden Cluster in bis zu 7-dimensionalen Teilräumen (Auwahl von relevanten Chromosomenarmen) gefunden, welche 1407 der 1823 Patienten beinhalten. Die identifizierten Subspace
Cluster stellen eine Gruppierung der Krankheitsbilder dar, wobei in den meisten Fällen innerhalb
einer Gruppe eine Krankheit den Cluster dominiert. Eine Auswahl von identifizierten Subspace
Clustern wurde manuell auf bekannte Zusammenhänge zwischen Mutationen und Erkrankungen untersucht. Dabei konnten schon bekannte Zusammenhänge durch das Clustering bestätigt
werden. Darüber hinaus könnte, durch weitere Analysen der gefundenen Subspace Cluster durch
Mediziner auf noch unbekannte Zusammenhänge zwischen Mutationen auf bestimmten Chromosomen und gewissen Krebserkrankungen geschlossen werden.
Danksagung
Mein besonderer Dank gilt Michael Baudis für die Bereitstellung und Aufarbeitung der in den
Untersuchungen verwendeten CGH Daten.
Literatur
[AGGR98] R. Agrawal, J. Gehrke, D. Gunopulos und P. Raghavan. Automatic subspace clustering of high dimensional data for data mining applications. In SIGMOD, Seiten
94–105, 1998.
[BC01]
M. Baudis und M. Cleary. Progenetix.net: an online repository for molecular cytogenetic aberration data. Bioinformatics, 17 (12):1228–1229, 2001.
[EKSX96] M. Ester, H.-P. Kriegel, J. Sander und X. Xu. A density-based algorithm for discovering clusters in large spatial databases. In KDD, Seiten 226–231, 1996.
[LMC+ 06] J. Liu, J. Mohammed, J. Carter, S. Ranka, T. Kahveci und M. Baudis. Distancebased clustering of CGH data. Bioinformatics, 22 (16):1971–1978, 2006.
34
CouPé: Ein Query Processor für UniStore
Martin Richtarsky
TU Ilmenau, Fachgebiet Datenbanken und Informationssysteme
1
Einleitung
Die im folgenden vorgestellte Diplomarbeit ist Teil von UniStore, einem Projekt zur Realisierung
einer massiv verteilten Universal Storage-Plattform zur Speicherung von strukturierten Daten
und Durchführung komplexer Anfragen. Der Verzicht auf zentrale Komponenten und der Einsatz einer P2P-Architektur ermöglichen eine Skalierung bis auf Internetgröße. Grundlage bildet
ein DHT-basiertes Overlay-Netzwerk, durch das Daten verteilt gespeichert und effizient extrahiert werden können. Angestrebt wird ein Datensystem, das durch Hinzunahme weiterer Peers
skaliert werden kann und eine Anfragebearbeitung, die auf den Funktionen des Overlays aufsetzt und komplexe, in einer deklarativen Sprache formulierte Anfragen effizient beantwortet.
Ein mögliches Einsatzgebiet sind Public Data Management-Systeme, die auf sehr umfangreichen
Daten arbeiten. Üblicherweise werden diese von mehreren Teilnehmern zur Verfügung gestellt
und können verschiedene Schemata aufweisen. Infrastrukturkosten sollen fair verteilt werden,
Lastverteilung und Ausfallsicherheit sind gewünscht. Beispiele für solche Systeme sind Datenbanken für das semantische Web, spezialisierte Suchmaschinen und Verzeichnisdienste. Um die
Skalierbarkeit zu gewährleisten, wird auf bestimmte DBMS-Features wie z.B. Transaktionen
verzichtet, was aufgrund der Profile der zu erwartenden Anwendungen zulässig ist.
Thema der Diplomarbeit ist die Realisierung und Evaluierung der Anfragebearbeitung. Auf
Basis der eng begrenzten Anfragemöglichkeiten der DHT und unter Berücksichtigung der Eigenschaften von P2P-Netzen muss ein geeigneter Ansatz für komplexe Anfragen gefunden werden. Wenn möglich, sind zur Effizienzsteigerung Overlay-Features zu nutzen. Weiterhin sind
Ähnlichkeits- und Operatoren auf Schemaebene umzusetzen, und die Skalierbarkeit muss unter
Beweis gestellt werden.
2
Grundlagen: P-Grid, Speicherung strukturierter Daten
Das verwendete Overlay-Netzwerk P-Grid [1] bietet im Gegensatz zu anderen Designs wie CAN
oder Chord zusätzlich Bereichsanfragen – es können effizient alle Daten extrahiert werden, die
unter einem Schlüssel mit einem bestimmten Präfix eingefügt wurden, auch wenn sie sich auf verschiedenen Peers befinden (eine präfixerhaltende Hashfunktion h muss eingesetzt werden). Dies
kann die Effizienz der Anfragebearbeitung erheblich steigern. In dieser Arbeit wird beispielhaft
von relationalen Daten ausgegangen. Jedes Tupel (OID, v1 , ..., vn ) einer Relation R(A1 , ..., An )
wird zunächst in n Tripel der Form (OID, Ai , vi ) (object identifier, attribute, value) aufgespalten, OID ist eine systemweit eindeutige ID. Jedes dieser Tripel wird nun in der DHT gespeichert,
wobei der Schlüssel jeweils durch Anwendung einer Hashfunktion auf Komponenten des Tripels
ermittelt wird. Dadurch entstehen Indexe, über die dann später auf die Daten zugegriffen werden
kann. Zwei mögliche Indexe sind:
OID-Index Die Tripel werden unter dem Schlüssel h(OID) abgelegt. Dadurch werden Tripel
eines Tupels auf demselben Peer gespeichert und ein Tupel kann durch das Kontaktieren eines
Peers schnell rekonstruiert werden.
35
VQL Query
VQL Parser
Logical
Query Plan
Optimizer/
Code Generator
Logical/Physical
Query Plan +
Strategies
Strategies
Execution Engine
Results
Operators
Abbildung 1: Architektur des Query Processors
Attribute-Value-Index In diesem Fall ist der Schlüssel die Konkatenation aus h(Ai ) und
h(vi ). Mit einer Bereichsanfrage auf h(Ai ) lässt sich so eine Spalte der Relation extrahieren,
Zugriffe auf bestimmte Werte sind ebenfalls möglich.
Weiterhin gibt es q-gram-Indexe [2] zur Unterstützung von Ähnlichkeitsanfragen auf Strings.
Es ist möglich, nur Teile einer Relation zu indexieren.
3
Architektur des Query Processors
Die Architektur ist in Abb. 1 dargestellt. Mit VQL existiert eine deklarative Anfragesprache,
die auf Tripelbasis arbeitet. Eine solche Anfrage wird zunächst an den bereits existierenden
VQL-Parser übergeben, der diese in einen logischen Anfrageplan umwandelt und algebraische
Umformungen durchführt. In der Optimierungs-/Codegenerierungsphase werden den logischen
Operatoren physische zugeordnet, die gleichzeitig ausführbaren Code repräsentieren. Die dabei
zu verwendenden Strategien müssen spezifiziert werden. Eine Optimierung im eigentlichen Sinne
war nicht Teil dieser Arbeit, kann aber an dieser Stelle leicht ergänzt werden – die derzeit manuelle Auswahl der Strategien wird dann von einer Kostenabschätzungskomponente übernommen.
Es ist möglich, logische Operatoren erst während der Bearbeitung der Anfrage zu substituieren,
was z.B. eine Einbeziehung von Statistiken auf den beteiligten Peers ermöglicht (adaptive query
processing). Dies ist in P2P-Systemen essenziell für eine erfolgreiche Optimierung. Die Execution
Engine bearbeitet den Plan unter Zuhilfenahme der Operatoren und liefert das Ergebnis.
4
Execution Engine
Als einfache Strategie zur Bearbeitung eines Anfrageplans bestehend aus physischen Operatoren wurde ein den Mutant Query Plans [3] vergleichbarer Ansatz gewählt: Operatoren des Plans
speichern Zwischenergebnisse und der komplette Plan wird durch das Netz gesandt. Die Abarbeitung erfolgt in Postorder-Reihenfolge. Dadurch wird jeder Operator erst dann bearbeitet,
wenn alle seine Kindoperatoren abgearbeitet sind, und die Verwendung der dort gespeicherten
Zwischenergebnisse ist möglich. Operatoren auf Blattebene extrahieren Daten direkt aus der
lokalen Datenbasis auf den entsprechenden Peers. Ein Operator bestimmt selbst, wann der Plan
an einen anderen Peer geschickt werden muss. Die Bearbeitung ist an der Wurzel beendet, und
die Ergebnisse werden an den Anfrager zurückgeschickt.
Da dieser naive Ansatz relativ ineffizient ist (keine Parallelität), wurde er um drei weitere
Strategien erweitert. Die ersten beiden realisieren Intra-Operator-, der dritte Inter-OperatorParallelität. In allen Fällen entstehen damit mehrere nebenläufige Pläne pro Anfrage, die aber
alle dieselbe Operatorstruktur aufweisen.
Bereichsanfragen Wenn auf die Daten eines Attributs zugegriffen wird, muss der Plan nacheinander an alle Peers geschickt werden, auf denen der entsprechende Attribute-Value-Index
gespeichert ist. Es ist aber auch möglich, hierfür eine Bereichsanfrage einzusetzen. In diesem
36
Fall wird nur eine Anfrage abgesetzt, und der Routing-Layer von P-Grid sorgt dafür, dass jeder
zuständige Peer eine Kopie des Plans erhält, die dann parallel weiterverarbeitet werden.
Plan Cloning Bei diesem Ansatz erfolgt die Duplizierung der Pläne in der Execution Engine
selbst, unter Kontrolle des gerade aktiven Operators. Dieser kann für jeden Plan ein eigenes Ziel
angeben und ihn zusätzlich modifizieren. Dadurch eröffnen sich weitreichende Möglichkeiten in
die Anfragebearbeitung einzugreifen. Intra-Operator-Parallelität ist nun auch für Operatoren
möglich, die Indexe nicht mit Bereichsanfragen ansprechen können (z.B. q-gram-Suche).
Parallele Bearbeitung von binären Operatoren Die Zweige der Operatoren werden parallel abgearbeitet.
In allen drei Fällen müssen die Pläne an einer geeigneten Stelle wieder zusammengeführt
werden. Dies ist notwendig für die Berechnung von blockierenden Operatoren (z.B. Sortierung)
und des Endergebnisses. Um Wartezeiten zu vermeiden, wird dafür Online Processing eingesetzt:
Anstatt auf alle parallelen Pläne zu warten, werden Teil(zwischen)ergebnisse schnellstmöglich
weiterverarbeitet, und es entstehen mehrere Versionen des Ergebnisses. Dadurch sind erste Antworten schnell verfügbar und werden dann sukzessive verfeinert.
5
Physische Operatoren
Zu jedem logischen Operator existieren mehrere Implementierungen, die sich in Eigenschaften
wie verwendete Indexe, Parallelität oder Bandbreitenbedarf unterscheiden. Die Datentypen Integer und String werden unterstützt. Die meisten Operatoren können sowohl auf die Werte als
auch auf die Attribute der Tripel angewendet werden (instance bzw. schema level). Neben den
üblichen Vergleichen wie <, >, ≤, ≥, =, 6= wurden Ähnlichkeitsoperationen (∼) zur Bearbeitung von mit Fehlern behafteten Daten realisiert. Die Zusammenführung von Datenbeständen
mit ähnlichen Schemata wird erleichtert durch Ähnlichkeitsjoins auf Schemaebene. Dazu wurden
Operatoren entwickelt, die auf q-gram-basierten Ähnlichkeitsindexen arbeiten. Das Best-EffortPrinzip wird angewendet: Wird ein benötigtes Datum nicht gefunden, werden nur die betroffenen
Tripel verworfen, alle übrigen bearbeitet und ein unter Umständen nicht vollständiges Ergebnis
generiert. Dies ist eine praktikable Lösung in Systemen, die keine Konsistenz gewährleisten.
6
Evaluierung
Die zwei wichtigsten Fragen sind hier: (1) Ist die vorgestellte Anfragebearbeitung in DHTs generell praxistauglich, skaliert sie? (2) Welche Operatoren sind für welche Situationen besonders geeignet? Dazu wurden bereits zahlreiche erfolgreiche Tests mit bis zu 35 Peers in LANs absolviert.
Die eigentliche Evaluierung wird momentan auf PlanetLab (www.planet-lab.org) durchgeführt,
um möglichst praxisnahe Bedingungen zu erhalten. Auch hier wurden mit ähnlichen Netzgrößen
bereits gute Erfahrungen gemacht. Es ist geplant, mit bis zu 200 Peers zu testen.
Literatur
[1] Karl Aberer. P-Grid: A self-organizing access structure for P2P information systems. In
CoopIS, 2001.
[2] Marcel Karnstedt, Kai-Uwe Sattler, Manfred Hauswirth, and Roman Schmidt. Similarity
Queries on Structured Data in Structured Overlays. In NetDB’06, 2006.
[3] Vassilis Papadimos and David Maier. Mutant Query Plans. Information & Software Technology, 44(4), 2002.
37
Multidimensionale Indexierung in ORDBMS
Verfasser:
betreut durch:
Gunnar Söllig, Universität Rostock, E-Mail: soellig(at)web.de
Lehrstuhl Datenbanken und Informationssysteme am Institut für
Informatik der Universität Rostock
Thema der Studienarbeit [1] waren für multidimensionale Indexierung geeignete Zugriffsstrukturen in ORDBMS. Diese werden insbesondere zur Ähnlichkeitssuche auf komplexen Datenstrukturen
benötigt. Praktische Einsatzgebiete finden sich etwa bei der inhaltsbasierten Suche in der MultimediaIndexierung, in CAD-Anwendungen und im Bereich des Data Mining zur Unterstützung von ClusteringAlgorithmen und OLAP. Die in herkömmlichen Datenbanksystemen vorhandenen Zugriffsstrukturen
sind für diese Zwecke nur sehr eingeschränkt einsetzbar.
Den Ausgangspunkt der Untersuchungen bildeten die in [2] vorgestellten Möglichkeiten der Erweiterung objektrelationaler Systeme, darunter die Methode des Generalized Search Tree [3] und das Relational Indexing. Das Indexverfahren des LSDh-Baumes nach A. Henrich, beschrieben in [4], wurde
mittels Relational Indexing umgesetzt und für das System IBM DB2 prototypisch implementiert. Es ist
eines der Verfahren, die vom sogenannten Curse of Dimensionality“ am wenigsten betroffen sind, und
”
erzielte in Leistungstests, insbesondere im direkten Vergleich mit R-baumbasierten Verfahren (Varianten
des X-Baumes), herausragende Ergebnisse. Seine interne Umsetzung lässt sich auf B-Bäume abbilden.
Das von Henrich et al. vorgestellte Paging-Konzept verteilt den Splitbaum des Indexes auf eine permanent im Speicher zu verwaltende Wurzelseite und weitere externe Verzeichnisseiten, falls die Größe
des bereitgestellten Hauptspeichers überschritten wird. Für die Umsetzung mittels Relational Indexing
werden die Knoten des Splitbaumes schemabezogen mit relationalen Tabellen in aus Knotennummer und
Splitinformationen bestehenden Tupeln abgelegt. Die gemeinsame Speicherung zusammengehöriger
Teilbäume auf derselben physischen Seite wird durch ein zusätzliches Attribut mit der Seitennummer
und einen Standardindex bezüglich dieses Attributes erreicht. Die Blattseiten des Indexes speichern die
indexierten Featurewerte und eine Zeilenkennung bezüglich der Nutzertabelle. Sie werden auf gleiche
Weise in relationalen Tabellen gespeichert, wobei die verwendeten Seitennummern sich in die Knotennummerierung des Splitbaumes einfügen, siehe dazu untenstehende Abbildung. Den Zusammenhang
zwischen Nutzertabellen und Indextabellen eines Schemas beinhaltet eine dritte Relation mit Metadaten. Dies sind Name der Nutzertabelle, Anzahl indexierter Dimensionen, interne Schlüsselnummer der
Tabelle, eingestellte Größen von Wurzel- und Verzeichnisseiten usw.
Das Relational Indexing Framework von IBM DB2 ist für die Implementation nicht geeignet, da es
beim Einfügen den Zugriff auf die Informationen des aktuell einzufügenden Datensatzes beschränkt. Die
Funktionalität des Indexes wird deshalb durch DB2 UDFs bereitgestellt, die als externe Funktionen einer
C++-basierten DLL registriert werden. Ihr Aufruf wird durch an die Nutzertabelle gebundene Trigger
initiiert. Die Registrierung der Funktionen, Triggererzeugung u.ä. erfolgt dabei weitgehend automatisch
(für ein System mit konzeptueller Schnittstelle für Extensible Indexing wäre die Deklarative Integration
gegeben). Die Implementation unterstützt sämtliche für den LSDh-Baum vorgesehenen Anfragearten,
neben der Punktanfrage (identity query) also Bereichsanfragen und zur Ähnlichkeitssuche sowohl - als
auch k -NNB-Anfragen, Ranking-Anfragen mit Einschränkungen. Partial-Match-Anfragen können durch
Bereichsabfragen simuliert werden. Dieselbe Indexinstanz kann Anfragen mit verschiedenen nutzerdefinierten Ähnlichkeitsmaßen unterstützen. Verwendbare Distanzmaße sind z.B. Euklidische Distanz (Metrik L2 ), Maximum-Metrik L1 und gewichtete Distanzfunktionen. Zukünftige mögliche Erweiterungen
wären die Speicherung von Coded Actual Data Regions, die Umsetzung einer Optimiererschnittstelle
und Maßnahmen zur Vermeidung der Baumdegeneration.
38
Abbildung 1: Nummerierung der Knoten und Seiten
Die Betrachtung hochdimensionaler Indexstrukturen wird in der derzeit laufenden Diplomarbeit fortgesetzt. Darin wird untersucht, welche Zugriffsverfahren für das Retrieval digitaler Bilder der INEXMultimediakollektion einsetzbar sind (Wikipedia-Bilder). Dies geschieht auf der Basis automatisch extrahierter Featurewerte. Am Beispiel des Oracle Datenbank Management Systems werden verschiedene
Mechanismen zur Integration nutzerdefinierter Zugriffsstrukturen untersucht und bezüglich der prototypischen Implementation ausgewählter Verfahren deren Effizienz evaluiert. Insbesondere wird die unmittelbare Umsetzung von Zugriffsverfahren basierend auf Standardindexen deren Anbindung an GiSTFrameworks gegenübergestellt.
Literatur
[1] Gunnar Söllig: Umsetzung von nutzerdefinierten Indexstrukturen in ORDBMS am Beispiel eines
Indexes für mehrdimensionale Datenstrukturen (Studienarbeit), Universität Rostock, 2006
[2] Hans-Peter Kriegel, Martin Pfeifle, Marco Pötke, Thomas Seidl: The Paradigm of Relational Indexing: A Survey; In LNI – Tagungsband der 10. BTW-Konferenz, Leipzig, 2003
[3] Joseph M. Hellerstein, Jeffrey F. Naughton, Avi Pfeffer: Generalized Search Trees for Database
Systems; In Proceedings 21st International Conference on VLDB, 1995
[4] Andreas Henrich: The LSDh-tree: An Access Structure for Feature Vectors; In Proceedings 14th
International Conference on Data Engineering, Orlando 1998
39
Konzeption und prototypische Realisierung einer Portalanwendung zur
föderierten Suche im Online-Angebot einer Bibliothek
Marcus Wenzel
Institut für Informatik
Friedrich-Schiller-Universität Jena
[email protected]
1
Motivation und Aufgabenstellung
Das elektronische Angebot einer Bibliothek stellt eine heterogene Menge vieler Informationsquellen dar. Diese
werden von Bibliotheken zum Teil lokal verwaltet und zum Teil stammen sie von externen Informationsanbietern
(z.B. anderen Bibliotheken oder Fachdatenbanken). Bei den elektronischen Informationen, die eine Bibliothek
ihren Nutzern zur Verfügung stellen möchte, handelt es sich zum einen um Verweise auf die bibliografischen
Daten des eigenen Bestandes, und zum anderen um digital verfügbare Dokumente (z.B. Artikel, Bücher, Bibliografien, Vorlesungsaufzeichnungen), die die Bibliothek online zur Nutzung anbietet. Diese Informationen sind
typischerweise in verschiedenen Katalog- bzw. Verwaltungssystemen abgelegt. Um eine effiziente und einfache
Recherche gewährleisten zu können, ist es notwendig, möglichst viele Quellsysteme in die Suche einzubeziehen. Im Auftrag der Thüringer Universitäts- und Landesbibliothek (ThULB) wird derzeit im Rahmen der hier
vorgestellten Diplomarbeit eine Anwendung entwickelt, die die föderierte Suche in ausgewählten Beständen der
Bibliothek zulässt. Es soll den verschiedenen Klassen von Bibliotheksnutzern (z.B. Studenten, wissenschaftlichen
Mitarbeitern, universitätsfremden Nutzern) zukünftig möglich sein, die in eine Suche einzubeziehenden Quellen
ihren Ansprüchen nach auszuwählen, interessante Einträge einer Ergebnismenge über die laufende Session hinaus
in einer persönlichen Literaturliste zu speichern oder zu exportieren und auf bereits benutzte Suchphrasen zurückzugreifen. Die Aufgaben der Authentifizierung und Personalisierung können mit Hilfe eines Portals besonders gut
umgesetzt werden. Um auf Änderungen der Quellsysteme flexibel reagieren zu können, ist es wichtig, das System
modular aufzubauen.
2
Existierende Produkte und Forschungsansätze
In den letzten Jahren ist im Bereich des Bibliothekswesens der Wunsch nach Integration ihrer verschiedenen
Informationsressourcen gestiegen. Dies betrifft sowohl die eigenen lokal vorhandenen Ressourcen als auch die
extern verwalteten Katalogsysteme anderer Informationsanbieter. So existieren seit einigen Jahren kommerzielle Systeme, die eine große Zahl von Katalogsystemen einbeziehen. Diese Syteme können unterschieden werden
in Portalsysteme, welche eine Bibliothek lokal auf ihren Servern installiert, und in Portalsysteme, zu denen der
Bibliothek die Nutzung gewährt wird und deren Administration vom Hersteller übernommen wird. Die ThULB
hat im Vorfeld des hier skizzierten Projekts zwei dieser Systeme getestet, “OCLC PICA iPort” [6] und OVID
“SearchSolver“[5]. Bei dem OCLC PICA iPort handelt es sich um ein lokal zu installierendes System, das Quellen über Z39.50 [3], SRU/ SRW und HTML/XML-Wrapper einbindet. Der OVID SearchSolver hingegen ist ein
System, das von der Firma OVID betreut wird. Es verfügt über ähnliche Konnektoren zu den Quellsystemen. Beide Systeme bieten jedoch nicht die Möglichkeit der Personalisierung der Suche an. Neben diesen kommerziellen
40
Systemen existieren sowohl Forschungansätze zu föderierter Suche, Sammlung und Aufbereitung der gefundenen
Informationen als auch freie Implementierungen von Konnektoren und Clients (z.B. Unicats [7], Old Dominion
University Digital Library Group [4] ). Für das Protokoll Z39.50 existieren mehrere Implementierungen von Clients, die zur Umsetzung eines Konnektors zu Z39.50-Quellsystemen genutzt werden können. Jzkit [2] ist eine
dieser Implementierungen. Zu den existierenden Implementierungen zählt auch ein Z39.50-Client zur föderierten
Suche in ausgwählten Z39.50 Katalogsystemen in Deutschland und weltweit [8].
3
Lösungsidee
Die existierenden Lösungen decken nur einen Teil der beschriebenen Anforderungen an ein zukünftig einzusetzendes System ab, deshalb wurde von Seiten der ThULB eine Eigenentwicklung initiiert. Die zu entwickelnde
Portal-Server
Portalanwendung
Login-Portlet
Portlet zur
Darbietung der
personalisierten
Funktionen
Fkt.
1
Fkt.
m
Portlet zur Darstellung der
Ergebnismenge
Suchanfrageportlet
Konnektor
zur
Zielsystem
-klasse 1
z.B.Z39.50
Quellsystemklasse 1
Datenbank
zur
Speicherung
persönl.
Daten
Quellsystem
a
z.B. OPAC
Quellsystem
b
Konnektor
zur
Zielsystem
-klasse 2
z.B. OAI
Quellsystemklasse 2
Quellsystem
c
z.B. MyCoreAnwendung
Quellsystem
d
Konnektor
zur
Zielsystem
-klasse n
z.B. HTML
Quellsystemklasse n
LDAP-Server
mit
Nutzerdaten
Quellsystem
k
Quellsystem
k+1
Abbildung 1. Architektur des zu entwickelnden Systems
Portalanwendung soll jederzeit um neue Konnektoren zu Informationsquellen erweiterbar sein, daher ist ein modularer Aufbau des Systems notwendig.
Abbildung 1 skizziert die Architektur des geplanten Systems: Die Portalanwendung ist aus vier Portlets aufgebaut: Dem Suchanfrageportlet, einem Portlet zur Darstellung der Ergebnismenge, einem Portlet, welches die
Funktionen der Personalisierung anbietet und dem dem Login-Portlet. Nachdem von der Bibliothek die Menge
der angebotenen Katalogsysteme nach Art der Schnittstellen klassifiziert wurde, werden für jede dieser Klassen
von Quellsystemen Konnektoren gesucht bzw., falls noch keine Konnektoren für spezielle Schnittstellen existieren,
erstellt. Im Suchportlet kann der Nutzer spezifizieren, wonach er sucht, dies kann durch Eingabe eines oder mehrerer Suchworte oder durch die Angabe bestimmter Eigenschaften, nach denen er sucht, wie z.B. ISBN, Titel, Autor
geschehen. Die Suche ist auch möglich, wenn der Nutzer sich nicht gegenüber dem Login-Portlet authentifiziert
hat, allerdings sollen bei einer anonymen Suche für die Bibliothek kostenpflichtige Quellsysteme nicht berücksich-
41
tigt werden. Hat der Bibliotheksnutzer seine Suchanfrage formuliert und dem Suchanfrageportlet übergeben, so
werden die Parameter der Suchanfragen an die angeschlossenen Konnektoren übergeben. Jeder Konnektor bildet
aus den Parametern eine für seine Zielsystemklasse angepasste Suchanfrage, verbindet sich mit den angeschlossenen Systemen dieser Klasse und sammelt die Ergebnisse. Ein Konnektor besteht aus einem Java-Treiber für
das Protokoll oder die Schnittstelle seiner Quellsystemklasse, einer Syntax zur Übersetzung der Parameter des
Suchanfragepotlets in eine Suchanweisung in der Sprache der Quellsysteme sowie einem Parser, der die Ergebnismenge von dem Schema der Quellsysteme in das globale Schema übersetzt. Das Darstellungs-Portlet zeigt die
empfangene Ergebnismenge seitenweise an und bietet die Möglichkeit, sie anhand der Attribute umzusortieren.
Der Nutzer kann aus dem Darstellungsportlet durch Anwählen von Checkboxen einzelne Titel in seine persönliche
Literaturliste übernehmen. Die Größe der Literaturliste ist abhängig von der Nutzerklasse, der er angehört. Alle
vom Benutzer gesammelten Daten werden in einer angebundenen Datenbank gespeichert.
Bei der Anmeldung eines Nutzers am Login-Portlet werden seine Angaben mit den Daten des LDAP-Servers der
ThULB, auf dem die Nutzerdaten gespeichert sind, abgeglichen. Sind die Angaben des Nutzers korrekt, so wird
eine eindeutige ID des Nutzers an das Personaliersierungsportlet gesendet. Erhält das Personalisierungsportlet eine
ID von dem Login-Portlet, so werden alle persönlichen Daten, die in der Personalisierungs-Datenbank abgelegt
sind, in das Portlet geladen und dem Nutzer zur Verfügung gestellt. Ähnlich wie das Suchportlet ist das Personalisierungsportlet auch um neue Funktionen erweiterbar. Das Personalisierungsportlet bietet z.B. einem Studenten
Kombinationen von speziellen Katalogsystemen, die an seiner Studienrichtung orientiert sind, für föderierte Suche an. Wählt ein Nutzer diese Option, werden die gewählten Parameter an das Suchportlet übermittelt und die
entsprechenden Konnektoren zu den ausgewählten Katalogsystemen geladen. Diese Art der Architektur soll eine
Weiterentwicklung während des Einsatzes des Systems und ein Hot-Plugin ermöglichen.
4
Realisierungsstand und -ausblick
Die Diplomarbeit begann am 01. November 2006 nach einer einmonatigen Einarbeitungsphase in der ThULB,
in deren Verlauf der IBM Websphere Portal Server V. 6.0 [1], auf dem die zu entwickelnde Portalanwendung
getestet werden soll, installiert wurde. Das hier vorgestellte Konzept resultiert aus einer Anforderungsanalyse,
die in den Monaten Oktober und November angestellt wurde. In den folgenden Monaten soll dieses Konzept auf
Realisierbarkeit überprüft und prototypisch umgesetzt werden. Der modulare Aufbau des Systems stellt sicher,
dass es auch über den Rahmen dieser Arbeit weiterentwickelt und erweitert werden kann. So werden in den
folgenden Monaten nicht alle Konnektoren und Funktionen der Personalisierung umgesetzt werden können. Ziel
ist es jedoch, Konnektoren und Funktionen zu erstellen, nach deren Beispiel möglichst einfach neue Zielsysteme
angeschlossen und Aufgabenfelder abgedeckt werden können.
Literatur
[1] IBM. Ibm websphere - software - deutschland, November 2006. http://www-306.ibm.com/software/de/websphere/.
[2] K. Integration. Knowledege integration website, November 2006. http://developer.k-int.com/projects.php?page=jzkit2.
[3] C. A. Lynch. The z39.50 information retrieval protocol: an overview and status report. SIGCOMM Comput. Commun.
Rev., 21(1):58–70, 1991.
[4] K. Maly, M. Zubair, V. Chilukamarri, and P. Kothari. Grid based federated digital library. In CF ’05: Proceedings of the
2nd conference on Computing frontiers, pages 97–105, New York, NY, USA, 2005. ACM Press.
[5] OVID.
Ovid searchsolver documentation, November 2006.
http://www.ovid.com/site/help /documentation/searchsolver.jsp.
[6] O. PICA. Oclc pica iport information site, November 2006. http://oclcpica.org/?id=1078.
[7] B. Schmitt. Benutzerprofile für die Anfrageverarbeitung in verteilten digitalen Bibliotheken. PhD thesis, Universität
Karlsruhe (TH), 2003.
[8] W. Schneider. Ein verteiltes bibliotheks-informationssystem auf basis des z39.50 protokolls. Master’s thesis, Technische
Universität Berlin Fachbereich Informatik, 1999.
Herunterladen