Kurzfassung

Datenbankversionierung erlaubt es, dass mehrere Schemaversionen innerhalb einer Datenbank co-existieren. Damit wird die Verfübarkeit der logischen, externen Schemaversionen von der eigentlichen Materialisierung der Daten entkoppelt. Diese Materialisierung ist jedoch maßgeblich für die Performance von Schreib- und vor allem Leseanfragen. Ziel der Diplomarbeit ist es, einen Advisor zu entwickeln, welcher eine möglichst performante Materialisierung für einen gegebene Workload vorschlägt.

Ausgangssituation

Datenbankversionierung erlaubt es, dass mehrere Schemaversionen innerhalb einer Datenbank co-existieren. Damit wird die Verfügbarkeit der logischen, externen Schemaversionen von der eigentlichen Materialisierung der Daten entkoppelt. Diese Materialisierung ist jedoch maßgeblich für die Performance von Schreib- und vor allem Leseanfragen.

Aufgabenstellung

Ziel der Diplomarbeit ist es, einen Advisor zu entwickeln, welcher eine möglichst performante Materialisierung für einen gegebenen Workload vorschlägt. Dabei werden all jene Materialisierungen betrachtet, welche die Daten nicht-redundant entsprechend einer Tabellenversion ablegen.

Wesentliche Aufgaben sind dabei:

  • Charakterisieren des Overheads der einzelnen Evolutionsoperation
  • Konzipieren und implementieren eines Algorithmus‘ zur Enumeration der Materialisierungsvarianten.
  • Implementieren eines Tools zum Evaluieren von Materialisierungsvarianten. Dabei kann auf den Forschungsprototypen InVerDa aufgebaut werden.
  • Testen und Evaluieren des Advisors und seiner Ergebnisse.

Für größere Datenbanken kann dieser naive Ansatz an Komplexitätsgrenzen stoßen und unpraktikabel sein. Deshalb soll der Datenbestand gesampelt und in einer parallelen Datenbank analysiert werden. Dabei ergeben sich die folgenden Teilaufgaben:

  • Auswählen und implementieren eines Samplingalgorithmus‘
  • Extrapolieren der Ergebnisse
  • Evaluieren