arbeiten:schema-evolution_von_graphdatenbanken_in_prosa

Schema-Evolution von Graphdatenbanken in ProSA

Thema:
Schema-Evolution von Graphdatenbanken in ProSA
Art:
BA
BetreuerIn:
Tanja Auge; Dominique Hausler
BearbeiterIn:
Timo Hanöffner
ErstgutachterIn:
Niels Henze
ZweitgutachterIn:
Meike Klettke
Status:
in Bearbeitung
angelegt:
2024-07-23
Antrittsvortrag:
2025-01-27

Hintergrund

ProSA ist ein System zur Unterstützung der Reproduzierbarkeit von Datenbankauswertungen. Dazu kombinieren wir den Chase — eine Familie von Algorithmen zur Transformation von Datenbanken — mit zusätzlichen Provenance-Informationen. Provenance (engl.: Herkunft) beschreibt den Entstehungsprozess eines Datenobjekts bzw. eines Anfrageergebnisses. ProSA ist als Maven-Projekt in Java 11 implementiert. Es bietet eine Benutzeroberfläche, in welcher der Nutzer eine einfache SQL-Anfrage formulieren kann, welche intern auf eine Reihe von (s-t) tgds abgebildet wird. Eine (s-t) tgd ist eine Formel der Form ∀x(ϕ(x) → ∃y : ψ(x, y) mit x, y Tupel von Variablen und ϕ(x), ψ(x, y) Konjunktionen von Atomen über einem Quell-Schema S und/oder einem Ziel-Schema T. Für zwei Relationen employee(id,name) und salary(id,sal) lautet eine solche Formalisierung beispielsweise:

  • SQL-Anfrage: SELECT name FROM employee NATURAL JOIN salary WHERE sal=1500
  • Relationenalgebra-Anfrage: πname(employee ▷◁ σsal=1500(salary))
  • Menge von s-t tgds: employee(id, name) ∧ salary(id, 1500) → res(name)

ProSA unterstützt aktuell nur Anfragen auf relationalen Datenbanken. Das wollen wir ändern und eine Anbindung an Graphdatenbanken ermöglichen. Eine Graphdatenbank ist eine Datenbank, die Graphen benutzt, um stark vernetzte Informationen darzustellen und abzuspeichern. Ein solcher Graph besteht aus Knoten (Einträge der Datenbank) und Kanten, welche die Beziehungen zwischen den Knoten beschreiben.

Zielsetzung der Arbeit

Ziel der Bachelorarbeit ist die Implementierung eines Konzeptes zur Anwendung von ProSA auf Graphdatenbanken. Hierfür muss zunächst das Schema der Graphdatenbank extrahiert und dieses in ein relationales Schema überführt werden (Schritte 1+2). Anschließend kann die Datenbank in ProSA ausgewertet und weiterverarbeitet werden (Schritte 3, 5, 6) und abschließend zurück in eine Graphdatenbank transformiert werden (Schritt 8). Zur Überprüfung der korrekten Arbeitsweise von ProSA sollen die Anfrageergebnisse verschiedener (einfacher) SQL-Anfragen vor und nach der Schema-Evolution in ProSA mit denen aus der Graphdatenbank verglichen werden (Schritte 4+7). Schema-Evolution findet über Evolutionsoperatoren wie add, rename, delete, copy, move, split und merge auf Schemaebene statt.

  • Extraktion des Graphdatenbank-Schemas
  • Transformation der Graphdatenbank zur Verarbeitung in ProSA – Mappen der Graphdatenbank in eine relationale Datenbank zur Verarbeitung in ProSA
  • (Parallele) Ausführung der SQL-Anfragen in ProSA sowie der Graphdatenbank
  • Vergleich der Anfrageergebnisse
  • Evolution der ProSA-Datenbank sowie der Graphdatenbank
  • (Parallele) Ausführung der transformierten SQL-Anfragen in ProSA sowie der Graphdatenbank
  • Vergleich der Anfrageergebnisse
  • Rücktransformation der ProSA-Datenbank in die Graphdatenbank/ Mappen der relationalen

ProSA-Datenbank in eine Graphdatenbank Für die Transformation/das Mappen der Graphdatenbank in ProSA sowie die Formulierung der Evolutionsanfrage sollen die ProSA-eigenen Eingebaformat (spezielle XML-Files) eingehalten werden. Hierfür müssen insbesondere alle Tabellen relational beschrieben und alle Anfragen als Menge von s-t tgds formuliert werden. Für die Verarbeitung der Evolutionsanfrage kann der vorhandene Parser erweitert werden. Für die Transformation und Rücktransformation der Graphdatenbank in ProSA muss ein entsprechender Parser entwickelt werden.

Konkrete Aufgaben

  • Extraktion des Graphdatenbank-Schemas (Annahme: JSON-File oder ähnliches Format)
  • Entwicklung eines formalen Mappings zwischen ProSA und der Graphdatenbank mit anschließender
  • Anpassung an die gegebenen Dateiformate (JSON, XML)
  • Prototypische Implementierung eines Parsers für das Mappen von ProSA in die Graphdatenbank
  • und umgekehrt (in Phython)
  • Automatisierung der Schema-Evolution in ProSA
  • Vergleich der Anfrageergebnisse (jeweils vor und nach der Evolution)

Erwartete Vorkenntnisse

Keine

Weiterführende Quellen

  • T. Auge: ProSA – A provenance system for reproducing query results. In: WWW (CompanionVolume), ACM, pp. 1555–1558, 2023
  • T. Auge, M. Hanzig, A. Heuer: ProSA Pipeline – Provenance Conquers the Chase. In: ADBIS (Short Papers), pp.89–98, 2022
  • N. Bölter: Schemaextraktion für verschiedene NoSQL-Datenbanksysteme. Masterarbeit, FernUniversität in Hagen, Fakultät für Mathematik und Informatik, 2023
  • A. Bonifiati, P. Furniss, A. Green, R. Harmer, E. Oshurko, H.Voigt: Schema Validation and Evolution for Graph Databases. abs/1902.06427, 2019
  • J. Hübner: Schema-Extraktion aus einer Graphdatenbank. Bachelorarbeit, FernUniversität in Hagen, Fakultät für Mathematik und Informatik, 2023
  • I. Kavisanczki: Erweiterung des ProSA-Parsers. Bachelorarbeit, Universität Rostock, Institut für Informatik, 2022 Systeme