Themen von Meike Klettke

Im Themenbereich NoSQL-Daten, Schema-Management, Schema-Evolution sind jederzeit Abschlussarbeiten zu vergeben. Bitte vereinbaren Sie einen Termin (meike.klettke(at)uni-rostock(dot)de).

NoSQL-Benchmark für die Performancebewertung von Integritätsbedingungsableitung

Im Mittelpunkt dieser Abschlussarbeit steht die Entwicklung eines Benchmarks, der Verfahren zur Ableitung von Integritätsbedingungen (Schlüssel, funktionale Abhängigkeiten, Inklusionsabhängigkeiten, Fremdschlüssel) bezüglich ihrer Laufzeit bewerten kann.

Dieser Benchmark soll anhand der vorhandenen Implementierungen getestet werden.

Motivation des Themas:
Die Verfahren zur Ableitung der Integritätsbedingungen sind Reverse-Engineering Verfahren. In NoSQL-Datenbanken werden diese im Gegensatz zu relationalen Datenbanken nicht während des Entwurfsprozesses definiert und beim Einfügen und Verändern und Löschen von Datensätzen kontrolliert. Dennoch gelten solche Integritätsbedingungen häufig in den Daten, da viele NoSQL-Daten aus anderen Anwendungen heraus generiert werden und dabei bestimmten Mustern folgen. Das Ableiten von Integritätsbedingungen aus bereits vorhandenen NoSQL-Datenbanken kann durch Reverse-Engineering-Ansätze erfolgen. Hierfür liegen bereits Java-Implementierungen vor, die auch schon durch erste Beispiele getestet sind. Eine wichtige Frage ist die Effizienz dieser Verfahren, da sie auf großen Datenbeständen skalierbar ausgeführt werden sollen. Dafür soll ein Benchmark entwickelt werden, der geeignet ist, die Ableitung von Integritätsbedingungen aus NoSQL-Datenbanken zu testen und deren Performance zu bewerten.

Aufgabe:

Im Rahmen dieser Bachelorarbeit soll dafür folgende Aufgabe gelöst werden. 

  1. Einarbeitung in das Thema Anforderungen an Benchmarks und Testumgebungen
  2. Analyse von Benchmarks verwandter Gebiete (Benchmarks für relationale Datenbanken und NoSQL-Datenbank Benchmark für )
  3. Definition der Anforderungen an den Benchmark
  4. Erstellung des Benchmarks und Generierung von Beispieldaten
  5. Test des Benchmarks mit den vorhandenen Varianten der Java-Implementierungen

Literatur:

  • Professionalle Performance-tests
  • Benchmarks (rel)
  • YCSB-Benchmark

Projekt:

Die Bachelorarbeit ordnet sich in die Arbeiten zum DFG-Projekt Darwin ein, in dem das Thema „Schema-Management für NoSQL-Datenbanken“ im Mittelpunkt steht. Die Forschungsarbeiten werden zusammen mit der Hochschule Darmstadt und der OTH Regensburg durchgeführt.

Visualisierung von Schema-Versionen, NoSQL-Daten und Schema-Evolutionsoperationen

Visualisierung von Schema-Versionen, NoSQL-Daten und Schema-Evolutionsoperationen

Motivation des Themas:

Die schemalose Speicherung in NoSQL-Datenbanken bewirkt, dass in diesen häufig heterogene Datensätze gespeichert sind. Bei jeder Art der Verwendung oder Auswertung dieser Daten ist der erste Schritt „Understanding of the NoSQL Data“. Für diesen Schritt soll eine Visualisierung konzipiert und entwickelt werden. Bereits vorhanden sind Programme, die zu einer gegebenen NoSQL-Datenbank die Schemaversionen über die Zeit ableiten, diese stehen als JSON Schema bereit. Weiterhin sind bereits die Evolutions-operationen vorhanden, die die Änderungen von einer Version zu der Nachfolgerversion beschreiben. Diese Evolutionssprache enthält die Operationen add, delete, rename, copy und move. In einigen Fällen werden aus den Daten mehrere Varianten der Evolutionsoperationen abgeleitet, hier wird eine Benutzerentscheidung benötigt, welche ausgewählt werden soll. Visualisiert werden sollen die JSON-Schemata als relativ kompakte Graphen sowie die Evolutionsoperationen zwischen diesen. Optional können dazu ebenfalls beschriebene Merkmale zu den NoSQL-Daten und Beispiele aus diesen Daten dargestellt werden. Durch geeignete Techniken soll eine interaktive Exploration ermöglicht werden.

Aufgabe:

Im Rahmen dieser Bachelorarbeit soll dafür folgende Aufgabe gelöst werden.

  1. Einarbeitung in NoSQL (JSON) und JSON-Schema
  2. Literaturüberblick zur Visualisierung zeitveränderlicher Graphen
  3. Erstellung eines Anforderungskataloges für die interaktive Visualisierung
  4. Auswahl eines Visualisierungsverfahrens und prototypische Umsetzung
  5. Abfassung der schriftlichen Arbeit und Präsentation der Ergebnisse

Umsetzung:

  • Mongodb
  • Java oder JavaScript

Betreuer:

  • PD Dr.-Ing. habil. Christian Tominski
  • PD Dr.-Ing. habil. Meike Klettke

    Literatur:

    • JSON Schema, json-schema.org
    • Meike Klettke, Uta Störl, Stefanie Scherzinger: Schema Extraction and Structural Outlier Detection for NoSQL Data Stores. BTW 2015
    • Meike Klettke, Stefanie Scherzinger, Uta Störl: Datenbanken ohne Schema? - Herausforderungen und Lösungs-Strategien in der agilen Anwendungsentwicklung mit schema-flexiblen NoSQL-Datenbanksystemen. Datenbank-Spektrum 14(2): 119-129
    • Aigner et al.: Visualization of Time-Oriented Data, Springer, 2011
    • Tominski et al.: CGV – An Interactive Graph Visualization System, Computers & Graphics 33(6), 2009
    • Hadlak et al.: A Survey of Multi-faceted Graph Visualization, EuroVis State-of-the-art-report, 2015

    Die Arbeit ordnet sich in die Arbeiten zu „Schema-Management für NoSQL-Datenbanken“ ein, die seit 2013 zusammen mit der Hochschule Darmstadt und der OTH Regensburg durchgeführt werden.

    Erweiterung einer NoSQL-Evolutionssprache

    Erweiterung einer NoSQL-Evolutionssprache

    Hintergrund

    Im thematischen Rahmen des DFG-Projektes „NoSQL-Schemaevolution und skalierbare Big Data Datenmigration“ wird eine Bachelorarbeit angeboten. Im DFG-Projekt wird ein Prototyp „Darwin“ implementiert, der die Schemaevolution und Datenmigration von NoSQL-Datenbanken automatisiert. Weitere Aspekte in dem Projekt sind die Schema-Extraktion für NoSQL Datenbanken.

    Aufgabenstellung

    Der Softwareprototyp „Darwin“ stellt unter anderem Features zur Schemaevolution von NoSQL-Datenbanken durch fünf Operationen (add, rename, delete, move, copy) bereit. Dabei können auf einer NoSQL-Datenbank bei allen Dokumenten einer Collection Properties hinzugefügt, umbenannt oder entfernt werden oder Properties zwischen Collections anhand einer Matching-Bedingung  verschoben oder kopiert werden.

    Die Evolutionssprache soll um die zwei zusätzliche Operationen „split“ und „merge“ erweitert werden, die die Properties einer Collection in zwei Collections aufteilt („split“) bzw. zwei Collections mit einer disjunkten Menge von Properties zu einer Collection zusammenfasst („merge“). Die Lösung zur Problematik soll konzeptionell entwickelt, die Semantik der Operation definiert und in Darwin implementiert werden. Ergebnisse sind zu dokumentieren.

    Wird diese Thematik als Bachelorarbeit bearbeitet, soll zusätzlich untersucht werden, wie split und merge sich bei einer nicht-disjunkten Teilmenge an Properties auswirkt. Dieser Umstand hat zur Folge, dass durch eine merge-Operation Properties verschiedener Collections mit dem identischen Namen zu einem Property zusammengefasst werden müssen. Insbesondere für die merge-Operation sind Konfliktlösungsstrategien notwendig, die ebenfalls untersucht, konzeptioniert und prototypisch implementiert werden sollen.

    Benötigte Kompetenzen

    • Solide Kenntnisse in Java und NoSQL (insbesondere MongoDB)
    • Kenntnisse in ANTLR v4 zur Erweiterung der Eingabesprache
    • Grundlegende Kenntnisse in UML für die technische Dokumentation
    • Grundlegende Kenntnisse im Java-Framework Spring und Maven

    Rahmenbedingungen

    • Als Softwareprojekt (6 CP)
    • Als Bachelorarbeit (CP nach Studiengang) mit erweiterter Themenstellung

    Einstiegsliteratur

    • Meike Klettke, Hannes Awolin, Uta Störl, Daniel Müller, Stefanie Scherzinger: Uncovering the Evolution History of Data Lakes, 6th Scalable Cloud Data Management Workshop (SCDM) @ IEEE Big Data Conference, Boston, USA, December 2017
    • Uta Störl, Daniel Müller, Meike Klettke, Stefanie Scherzinger: Enabling Efficient Agile Software Development of NoSQL-backed Applications, BTW Demo 2017
    • Mark Lukas Möller, Meike Klettke, Uta Störl: Formal Semantics of NoSQL Evolution Operations for Different Data Heterogeneity Classes, Technical Report, 2018.

    Kontakt

    Mark Lukas Möller/Meike Klettke
    Institut für Informatik, Zi. 240/241
    E-Mail: mark.moeller2uni-rostockde bzw. meike.klettkeuni-rostockde

    Implementierung einer Query Rewriting-Komponente für NoSQL-Datenbanken

    Implementierung einer Query Rewriting-Komponente für NoSQL-Datenbanken

    Als Masterarbeit oder HiWi/WiMi-Job

    Hintergrund

    Im thematischen Rahmen des DFG-Projektes „NoSQL-Schemaevolution und skalierbare Big Data Datenmigration“ wird ein Job für eine studentische oder wissenschaftliche Hilfskraft angeboten. Für das DFG-Projekt wurde in der Vergangenheit bereits ein Prototyp namens „Darwin“ implementiert, der bei der Lösung von Aufgaben im Bereich der Schemaevolution und Datenmigration von NoSQL- Datenbanken automatisiert unterstützt.

    Aufgabenstellung

    Der Softwareprototyp „Darwin“ stellt unter Anderem Features zur Schemaevolution und Datenmigration von NoSQL-Datenbanken durch fünf Evolutionsoperationen (add, rename, delete, move, copy) bereit. Für die Ausführung der Operationen gibt es zwei Hauptparadigmen: Operationen werden entweder physisch sofort umgesetzt und Daten direkt in das neue Schema migriert („Eager Migration“) oder das alte Datenbankschema wird beibehalten („Lazy Migration“) und Anfragen an die Datenbank werden umgeschrieben, sodass das Anfrageergebnis so aussieht, als wäre das Schema schon verändert und Daten migriert worden („Query Rewriting“). Die Informationen über die Evolutionensoperationen werden dafür in Form eines Graphen gespeichert, auf dessen Basis eine Query Rewriting-Komponente in Darwin implementiert werden soll. Ergebnisse müssen dokumentiert werden. Eine theoretische Vorarbeit für den Algorithmus ist vorhanden und wird bereitgestellt.

    Benötigte Kompetenzen

    • Solide Kenntnisse in Java

    • Kenntnisse in NoSQL (insbesondere MongoDB)

    • Grundkenntnisse in der Softwaredokumentation, insbesondere UML

    • Grundkenntnisse in Antlr4 zur Erweiterung der Anfragesprache erwünscht

    • Wünschenswert sind Kenntnisse im Java-Framework Spring und Maven

    Rahmenbedingungen

    • Als Masterarbeit (20 Wochen)
    • Als studentische oder wissenschaftliche Hilfskraft (angestrebt mit 10 Stunden/Woche, auf Absprache auch mehr oder weniger)

    Der genaue Umfang orientiert sich an der Art der Arbeit (Masterarbeit, Hilfskraftjob) und wird im Voraus festgelegt.

    Kontakt

    Mark Lukas Möller
    Institut für Informatik, Zi. 240
    E-Mail: mark.moeller2uni-rostockde
    Tel.: 0381 498-7606

    Meike Klettke
    Institut für Informatik, Zi. 241
    Email: meike.klettkeuni-rostockde
    Tel.: 0381 498-7596