Kurzfassung

Moderne Softwaresysteme befinden sich in einem höchst wechselhaften und dynamischen Umfeld. Anwendung müssen sich aktuellen Kontexten anpassen, neue Anforderungen erfüllen, geänderte gesetzliche Vorgaben umsetzen und so weiter. Die rollen-basierte Softwareentwicklung ermöglicht hierzu einfache und robuste Adaption sowie Evolution von Anwendungen zur Laufzeit, was die Entwicklungsgeschwindigkeit der Anwendungen signifikant erhöht. Einzig die Datenbank, welche die Persistenz der Anwendungsdaten realisiert, kann mit dieser Geschwindigkeit nicht Schritt halten. Die Evolution einer bestehenden Datenbank wird nach wie vor manuell umgesetzt, was äußerst aufwändig und fehler-anfällig ist.

Ziel der Arbeit ist die Entwicklung einer neuen Sprache, welche die Evolution einer rollen-basierten Datenbank beschreiben kann. Dies ist die Grundlage für robuste und einfache Datenbankevolution. Die Sprache stellt Operationen bereit, welche die Evolution des Schemas sowie der existierenden Daten in kompakte und intuitive Einheiten kapseln.

Ausgangssituation

Moderne Softwaresysteme befinden sich in einem höchst wechselhaften und dynamischen Umfeld. Anwendung müssen sich aktuellen Kontexten anpassen, neue Anforderungen erfüllen, geänderte gesetzliche Vorgaben umsetzen und so weiter. Die rollen-basierte Softwareentwicklung ermöglicht hierzu einfache und robuste Adaption sowie Evolution von Anwendungen zur Laufzeit, was die Entwicklungsgeschwindigkeit der Anwendungen signifikant erhöht. Einzig die Datenbank, welche die Persistenz der Anwendungsdaten realisiert, kann mit dieser Geschwindigkeit nicht Schritt halten. Die Evolution einer bestehenden Datenbank wird nach wie vor manuell umgesetzt, was äußerst aufwändig und fehler-anfällig ist.

Aufgabenstellung

Ziel der Arbeit ist die Entwicklung einer neuen Sprache, welche die Evolution einer rollen-basierten Datenbank beschreiben kann. Dies ist die Grundlage für robuste und einfache Datenbankevolution. Die Sprache stellt Operationen bereit, welche die Evolution des Schemas sowie der existierenden Daten in kompakte und intuitive Einheiten kapseln. Die einzelnen Operationen haben eine klar definierte Syntax und Semantik.

Im Detail sind dazu die folgenden Schritte auszuführen:

  • Einarbeiten in Rollen-basierte Datenbanken
  • Analysieren des Raumes möglicher Evolutionen
  • Definieren von rollen-basierten Evolutionsoperationen (Syntax und Semantik)