(Diplom) Untersuchung von Prefetching-Strategien in Objekt-relationalen Mappern

Betreuer: Eike Schallehn,Philipp Noggler
Student: Michael Lipaczewski
Zeitraum:

Michael Lipaczewski (2011): Untersuchung von Prefetching-Strategien in Objekt-relationalen Mappern. 2011.

Objektorientierte Programmierung gehört inzwischen zum Standard in der Softwareentwicklung. Dabei werden die Datentypen immer komplexer und die Implementierungsebenen immer tiefer. Hauptursache für diesen Zuwachs ist die Verbesserung der Computersysteme, die es erlauben, auch größere Datenmengen performant im Arbeitsspeicher zu halten und zu bearbeiten. Darüber hinaus erlauben die heutigen Rechengeschwindigkeiten die Möglichkeit, mehrere Operationen parallel auszuführen. Dies ermöglichte die erfolgreiche Anwendung von objektorientierten Systemen. Darüber hinaus stellt es für Entwickler neue und einfachere Wege der Programmierung dar, wodurch die prozedurale Programmierung immer weiter zurückgeht.

Gleichzeitig gewinnen Datenbanken durch die fortschreitende Vernetzung von Computersystemen immer weiter an Bedeutungen. Dabei spielt hauptsächlich die zentrale Datenhaltung eine Rolle, wodurch sich Aspekte wie Datensicherung und Datensicherheit wesentlich besser realisieren lassen. Auch wird über Datenbanken die Mobilität und Flexibilität von vernetzten Systemen gesteigert sowie das gleichzeitige Arbeiten an mehreren geographisch verteilten Systemen ermöglicht. Aber auch die Performance der Systeme ist ein wesentlicher Bestandteil von Datenbanksystemen. So sind Suchabfragen durch die Optimierung auf genau dieses Problem wesentlich schneller als vergleichbare lokale Lösungen. Auch bei großen
Datenmengen spielen Datenbanken ihre Vorteile aus. Hier wären enorme Rechenleistungen auf dem Anwendungsrechner notwendig, um ähnliche Ergebnisse zu erzielen, was nicht zuletzt wieder eine Kostenfrage darstellt.
Datenbanken bieten jedoch, abgesehen von speziell entwickelten objektorientierten Datenbanken, nicht die nötigen Fähigkeiten, um einen verlustfreien Übergang von Daten zwischen einer objektorientierten Software und einem Datenbankschema sicherzustellen. Objektorientierte Datenbanken weisen eine Vielzahl von Problemen wie beispielsweise die Performance auf, weswegen sie in der Praxis bis jetzt seltener Verwendung finden. Hauptsächlich wird jedoch Abstand von objektorientierten Datenbanken genommen, da diese weitgehend unbekannt sind und eine neue Art der Programmierung erforderlich machen. Daher wird oftmals auf bewährte Mittel zurückgegriffen.

Dagegen bestechen relationale Datenbanken durch ihre Geschwindigkeit, Leistungsfähigkeit und Einfachheit. Um jedoch ein Objekt in eine solche Datenbank speichern und laden zu können, ist es erforderlich, die entsprechenden Objekte in einfache Datensätze zu zerlegen bzw. aus
diesen Datensätzen wieder Objekte zu generieren. Dazu dienen sogenannte objektrelationale Mapper.

Objektrelationale Mapper stellen die Schnittstelle zwischen objektorientierter Programmierung und relationalen Datenbanksystemen dar. Dazu werden Regeln definiert, welche den Schreib- und Lesezugriff beschreiben. Dadurch wird es der Applikation erlaubt, sich ohne spezielles Wissen den Aufbau der Datenbank auf dem Objektmodell wie auf einem lokalen Modell zu bewegen. Das Fetching, also das Abrufen der Daten aus der Datenbank, erfolgt dabei vollkommen automatisch. Jedoch ergeben sich dadurch verschiedene Probleme. Hauptsächlich beziehen sich diese Probleme dabei auf Performancefragen durch ein stückweises Laden der Objektdaten, durchgängige Datenbankanbindung sowie komplizierte Datenbankanfragen.

Als Resultat daraus wurden verschiedene Prefetching Verfahren entwickelt, die die Performance des Gesamtsystems durch das Vorausladen von Daten verbessern sollen. Dabei besteht die Möglichkeit, manuell das zu ladende Objektmodell zu bestimmen oder ein sich selbst optimierendes Verfahren zu verwenden. Eine Reihe von Verfahren sollen nun im Laufe der Arbeit sowohl erörtert als auch bewertet werden. Diese Ergebnisse werden anschließend genutzt, um für eine konkrete Problemstellung ein oder mehrere Verfahren auszuwählen und einen Prototyp zu entwickeln, der die Machbarkeit, Leistungsfähigkeit und den Performancegewinn des Verfahrens aufzeigen soll.
Ein weiterer, jedoch weit seltener betrachteter Vorteil von Prefetching Verfahren ist die Überlegung, dass bei entsprechendem Vorausladen des benötigten Objektmodells keine Datenbankverbindung mehr notwendig ist. Daraus resultierend ergeben sich Überlegungen zur Leistungssteigerung des Datenbanksystems, zur Entlastung der Netzwerkinfrastruktur sowie zu verschiedenen entwicklungstechnischen Überlegungen. Im Zuge der Entwicklung des Prototypssollen diese Überlegungen nun konkretisiert und bewertet werden.

(Diplom) Untersuchung von Prefetching-Strategien in Objekt-relationalen Mappern