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
- Neo4j: https://neo4j.com