Migration einer relationalen Datenbank in eine objektorientierte Datenbank

Zusammenfassung und Ausblick

Ziel dieser Arbeit war es, ein Verfahren zu entwickeln, das es ermöglicht, Daten, die sich in einer relationalen Datenbank befinden, in eine objektorientierte Datenbank zu migrieren. Dazu wurde eine relationale Datenbank ausgewählt, die einem PPS-System zugrunde liegt.

Die PPS-System-Datenbank, die in der Industrie zum Einsatz kommt, ist sehr umfangreich. Daher wurde im Rahmen dieser Arbeit die Essenz des PPS-Systems extrahiert und ein "PPS-Kern" modelliert. Hierzu ist ein ER-Diagramm entstanden, das unter anderem zum kanonischen Entwurf der objektorientierten Klassen genutzt wurde. Zu diesem PPS-Kern wurde eine Informix-Datenbank erzeugt und mit Daten aus der Datenbank des PPS-Systems gefüllt. Die entstandene PPS-Kern-Datenbank wurde in die objektorientierte Datenbank O2 migriert.

Die Migration selbst ist unterteilt in die Migration der Datenstruktur einerseits und die Migration der Daten andererseits. Um auf den Daten leichter operieren zu können, werden die tabellarisch gespeicherten Daten zuerst nach O2 portiert und in temporären Objekten gespeichert. Diese temporären Objekte sind Instanzen von Klassen, die dynamisch angelegt werden und ebenfalls nur temporär in der Datenbank vorhanden sind. Die temporären Klassen bilden die Tabellenstruktur der relationalen Datenbank nach. Für jede relationale Tabelle wird eine solche Klasse zur Laufzeit erzeugt. Die Struktur der Klassen, die erzeugt werden, wird durch die Datei festgelegt, die auch Informix zum Erzeugen der relationalen Datenbank benutzt. Tabellenklassen können daher auch für andere als die PPS-Kern-Datenbank in O2 angelegt werden. Von jeder dieser Klassen wird ein Objekt erzeugt und mit den Daten der entsprechenden relationalen Tabelle gefüllt.

Nachdem sich die Daten bereits in der objektorientierten Datenbank befinden, ist die Migration der Datenstruktur erforderlich. Da auf der Basis der relationalen Datenbank eine Generierung der Klassenhierarchie nicht möglich ist, geschieht der Entwurf der Klassen kanonisch anhand des ER-Diagramms. Für die im Rahmen des PPS-Kerns auftretetenden Beziehungen werden Regeln aufgestellt, um diese im objektorientierten Datenmodell abzubilden. Dabei entsteht für jedes Entity im ER-Diagramm eine Klasse. Die Beziehungen, die zwischen den Entities bestehen, werden durch zusätzliche Attribute in den Klassen abgebildet. Bei der Erzeugung der Klassen bleiben alle Attribute erhalten, d.h. relationale Schlüsselattribute sind auch in den Klassen als Attribute vorhanden.

Nach Abschluß der Migration der Datenstruktur werden die Daten aus den temporären Tabellenobjekten in Objekte der objektorientierten Datenbank überführt. Für jedes Tupel einer Tabelle, die nicht nur Zuordnungen zwischen anderen Tabellen abbildet, wird eine Instanz einer Klasse erzeugt. Nachdem alle Objekte erzeugt worden sind, werden die Beziehungen, die zwischen diesen Objekten bestehen, hergestellt. Dazu werden die Tabellenobjekte, die Fremdschlüssel enthalten, noch einmal bearbeitet. Aufgrund der Schlüsselattribute, die bei der Erzeugung der Klassen erhalten geblieben sind, können die Objekte nun in der Datenbank identifiziert und zueinander in Beziehung gesetzt werden.

Die Migration kann entweder interaktiv durch Aufruf der Applikationen Tabellenmigration und Zuordnung_zu_Klassen oder ohne Benutzerinteraktion mit Hilfe des Skripts o2migration durchgeführt werden. Wird die Migration nicht interaktiv durchgeführt, ist die Klassenhierarchie vorher anzulegen. Das Erzeugen der Tabellenobjekte funktioniert auch, wenn die Klassenhierarchie noch nicht existiert.

Mit dem hier vorgestellten Verfahren kann eine Informix-Datenbank in das objektorientierte Datenbankmanagementsystem O2 migriert werden. Eine mögliche Erweiterung des Verfahrens besteht darin, nicht nur Informix-Datenbanken, sondern auch andere relationale Datenbanken zu migrieren. Beim Erzeugen der temporären Tabellenklassen und beim Laden der Daten aus den Dateien ist dabei das Format der unload-Dateien entscheidend. Die Tabellenobjekte werden in der Applikation Tabellenmigration angelegt, die im Rahmen der Arbeit entstanden ist. Diese Applikation kann so erweitert werden, daß auch unload-Dateien anderer relationaler Datenbankmanagementsysteme lesbar sind und somit auch andere relationale Datenbanken migriert werden können. Beim Erzeugen der Objekte aus den Tabellenobjekten spielt es keine Rolle, um welche relationale Datenbank es sich dabei handelt. Da schon die Tabellenobjekte zueinander in Beziehung gesetzt werden, muß die relationale Datenbank allerdings bereits über Konzepte für Primär- und Fremdschlüssel verfügen.

Die entwickelten Applikationen, Programme und Methoden sind in O2C geschrieben und deshalb an das objektorientierte Datenbankmanagementsystem O2 gebunden. Die entwickelten Konzepte können aber auch allgemein zur Migration von relationalen Datenbanken in objektorientierte Datenbankmanagementsysteme genutzt werden.