Eignung von R und SQL

RESERVIERT als Bachelorarbeit

Betreuer / Ansprechpartner

  • Frank Krüger
  • Hannes Grunert

Charakter

  • Konzeption
  • Vergleichende Analyse
  • prototypische Implementierung

Vorkenntnisse

  • Datenbanken 1
  • (Datenbanken 2)
  • Datenbank-Anwendungsprogrammierung

Beschreibung

In smarten Umgebungen zeichnen verschiedene Sensoren die Aktivitäten der Nutzer auf. Auf Basis dieser Daten werden die Intentionen der Nutzer erkannt, wodurch smarte Systeme, wie das Smart Appliance Lab an der Universität Rostock, eigenständig Handlungen ausführen kann.

Die Grundlage solcher intelligenten Systeme stellt häufig eine umfassende Datenbasis dar. So werden zum Trainieren eines intelligenten Systems Trainingsdaten erfasst, die ein möglichst umfassendes sensorisches Bild des Problems darstellen. Die Größe dieses Datensatzes beeinflusst dabei allerdings die zu verwendenden Techniken. Während bei kleinen Datenmengen eine sequentielle dateibasierte Verarbeitung ausreichend ist, wird bei steigender Größe die Verwendung eines Datenbanksystems und die parallele Verarbeitung notwendig.

Algorithmen des maschinellen Lernens werden auf diese Datensätze angewendet. Um eine effiziente Verarbeitung von statistischen Operationen zu ermöglichen, werden im Bereich des maschinellen Lernens häufig Programme verwendet, die in R oder MATLAB geschrieben wurden. Diese Programme sind für kleinere Datenmengen sehr performant, leiden aber bei größeren Datensätzen unter erheblichen Performanzeinbrüchen.

Für die Verwaltung großer Datenmengen werden häufig Datenbankmanagementsysteme eingesetzt, die über SQL einen effizienten Zugriff auf die Daten erlauben. Allerdings bieten DBMSs nur eine eingeschränkte Auswahl an statistischen Methoden und stellen bei zu kleinen Datenmengen einen zu großen Overhead.

Neben reinen R- bzw. SQL-Ansätzen existieren auch verschiedene Möglichkeiten zur Kopplung von R und SQL. Zum Einen ist es möglich in R auf Daten aus einer SQL-Anfrage zuzugreifen, zum Anderen besteht die Möglichkeit in SQL benutzerdefinierte Funktionen und Stored Procedures in R zu definieren. Dadurch ist auch ein verschachtelter Aufruf von R und SQL realisierbar.

Im Rahmen dieser Projekt- /Bachelor- /Masterarbeit soll untersucht werden, wie aus den Eigenschaften eines Datenbestandes eine Entscheidung zugunsten der verschiedenen Auswertungsvarianten getroffen werden kann. Im Speziellen soll untersucht werden, welche Auswirkungen der verfügbare Hauptspeicher, die verwendete Art der Festplatte (HDD/SSD) und eine evtl. mögliche parallele Verarbeitung Einfluss auf die Systeme haben.  Ziel dieser Arbeit ist es, auf Basis einer Evaluation Entscheidungsrichtlinien für die Zusammenstellung eines Systems für die maschinelle Datenanalyse bereitzustellen. Dabei sollen verschiedene Faktoren, wie verfügbarer Hauptspeicher, Menge der Daten, Komplexität der Untersuchungen und Parallelisierbarkeit berücksichtigt werden.

Arbeitsschritte

  • Einarbeitung in das Gebiet: Datenbanken, Machine Learning
  • Literaturrecherche:
    • Machine Learning und statistische Auswertungen in R und SQL
    • Kopplungsmöglichkeiten von R und SQL
    • Parallele Datenverarbeitung
  • Konzeption
    • Auswahl geeigneter Systeme
    • Festlegung von Rahmenparameter
    • Entwicklung einer Verteilungsstrategie für die parallele Verarbeitung
  • Prototypische Implementierung
    • Umsetzung von Beispielanfragen in den verschiedenen Systemen
    • Ausführung der Anfragen
      • verschiedene Systeme
      • verschiedene Konfigurationen
    • Zeitmessung
    • Entwicklung eines Algorithmus für Auswahl des besten Verfahrens
    • Integration in die bestehende Systemumgebung (DBIS)
  • Test des Verfahrens auf einen anderem Datenbestand

Technologien

  • R
  •  Java, ggf. andere imperative Programmiersprachen
  • SQL (verschiedene DBMS)

Literatur

  • Dennis Weu; Erkennung, Übersetzung und parallele Auswertung von Operatoren und Funktionen aus R in SQL; Bachelor-Arbeit; Universität Rostock; März 2016
  • Öszu, T. and Valduriez, P.: Principles of Distributed Database Systems. Springer, 2011.
  • Valduriez P. and Pacitti E. Parallel database systems. In Handbook of Database Technology, J. Hammer, M. Scheider (eds.). CRC, USA, 2007.
  • Hameurlain and F. Morvan, "An overview of parallel query optimization in relational systems", Proceedings 11th International Workshop on Database and Expert Systems Applications, London, 2000, pp. 629-634.
  • Dennis Marten, Andreas Heuer: Transparente Datenbankunterstützung für Analysen auf Big Data, Proceedings of the 27th GI-Workshop Grundlagen von Datenbanken, Gommern, Germany, May 26-29, 2015., Seiten 36-41, 2015
  • Andreas Heuer, Dennis Marten: A Framework for Self-managing Database Support and Parallel Computing for Assistive Systems, Proceedings of the 8th International Conference on PErvasive Technologies Related to Assistive Environments, ACM, 2015