arbeiten:schema-evolution_von_graphdatenbanken_in_prosa

Schema-Evolution von Graphdatenbanken in ProSA

Thema:
Schema-Evolution von Graphdatenbanken in ProSA
Art:
BA, MA
BetreuerIn:
Tanja Auge
Status:
ausgeschrieben
angelegt:
2024-07-23

Hintergrund

ProSA ist ein System zur Unterst¨utzung der Reproduzierbarkeit von Datenbankauswertungen. Dazu kombinieren wir den Chase — eine Familie von Algorithmen zur Transformation von Datenbanken — mit zus¨atzlichen 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¨ache, 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 ¨uber einem Quell-Schema S und/oder einem Ziel-Schema T. F¨ur 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¨utzt aktuell nur Anfragen auf relationalen Datenbanken. Das wollen wir ¨andern und eine Anbindung an Graphdatenbanken erm¨oglichen. Eine Graphdatenbank ist eine Datenbank, die Graphen benutzt, um stark vernetzte Informationen darzustellen und abzuspeichern. Ein solcher Graph besteht aus Knoten (Eintr¨age 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¨ur muss zun¨achst das Schema der Graphdatenbank extrahiert und dieses in ein relationales Schema ¨uberf¨uhrt werden (Schritte 1+2). Anschließend kann die Datenbank in ProSA ausgewertet und weiterverarbeitet werden (Schritte 3, 5, 6) und abschließend zur¨uck in eine Graphdatenbank transformiert werden (Schritt 8). Zur ¨Uberpr¨ufung 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 ¨uber 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¨uhrung der SQL-Anfragen in ProSA sowie der Graphdatenbank
  • Vergleich der Anfrageergebnisse
  • Evolution der ProSA-Datenbank sowie der Graphdatenbank
  • (Parallele) Ausf¨uhrung der transformierten SQL-Anfragen in ProSA sowie der Graphdatenbank
  • Vergleich der Anfrageergebnisse
  • R¨ucktransformation der ProSA-Datenbank in die Graphdatenbank/ Mappen der relationalen

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

Konkrete Aufgaben

  • Extraktion des Graphdatenbank-Schemas (Annahme: JSON-File oder ¨ahnliches 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¨ur 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¨olter: Schemaextraktion f¨ur verschiedene NoSQL-Datenbanksysteme. Masterarbeit, FernUniversit¨at in Hagen, Fakult¨at f¨ur 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¨ubner: Schema-Extraktion aus einer Graphdatenbank. Bachelorarbeit, FernUniversit¨at in Hagen, Fakult¨at f¨ur Mathematik und Informatik, 2023
  • I. Kavisanczki: Erweiterung des ProSA-Parsers. Bachelorarbeit, Universit¨at Rostock, Institut f¨ur Informatik, 2022 Systeme