-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet der objektorientierten Datenbank. Insbesondere betrifft die vorliegende Erfindung ein Verfahren zum Erstellen von Objekten für eine derartige Datenbank, wobei ein Objekt der objektorientierten Datenbank zumindest eine Relation zu zumindest einem anderen Objekt dieser Datenbank aufweisen kann. Relationen zwischen Objekten können dabei als sogenannte Containment-Relationen, als einseitige Relationen oder als beidseitige Relationen ausgestaltet sein.
-
Stand der Technik
-
In der Informationstechnik wird unter dem Begriff „Objektorientierung” bzw. „objektorientiert” üblicherweise eine Sichtweise auf komplexe Systeme (z. B. Kommunikationsprogramme, Datenbanken, etc.) verstanden, bei welcher ein derartiges System durch ein Zusammenspiel kooperierender bzw. kommunizierender Objekte beschrieben wird. Die Objektorientierung wird heute hauptsächlich im Bereich der sogenannten objektorientierten Programmierung sowie bei objektorientierten Datenbanken, welche häufig einer objektorientierten Programmierung zugrunde liegen, angewandt, insbesondere um eine Komplexität von entstehenden Programmen und/oder Datenbankstrukturen zu verringern.
-
Grundlegender Gedanke bei der Objektorientierung ist beispielsweise, dass sich Einheiten (z. B. Datenstrukturen, Dateien, Vorgänge, etc.) nicht nur über Daten oder anders geartete Parameter der verschiedensten Art definieren, sondern auch über Eigenschaften, sogenannte Attribute. Beides zusammen – d. h. eine Einheit sowie ihre Eigenschaften – werden dann als Objekt bezeichnet. Der Begriff „Objekt” beschreibt damit eine Einheit (z. B. Datenstrukturen, Dateien, Vorgänge, etc.) sowie ihre Eigenschaften, durch welche festgelegt wird, was mit einem Objekt bzw. dessen Daten geschehen kann. Dem Objekt sind zusätzlich auch sogenannte Methoden zugeordnet, durch welche ein Verhalten des Objekts definiert wird. Ein Objekt im Rahmen der Objektorientierung stellt damit Daten und Funktionen mit eindeutig definierbaren Eigenschaften und zugeordneten Methoden dar, welche daher in der Lage ist, von anderen Objekten Nachrichten zu empfangen bzw. an andere Objekt Nachrichten zu senden. Gleichartige Objekte – d. h. Objekte mit gleichen Eigenschaften und Methoden – werden dann in sogenannten Klassen zusammengefasst, wobei von allen Objekten einer Klasse die dieser Klasse zugeordneten Methoden genutzt werden können.
-
Innerhalb von Anwendungen stehen Objekte nicht allein, sondern können Beziehungen, so genannte Relationen, zu anderen Objekten aufweisen. Damit können mittels der Relationen aus mehreren einfachen Objekten komplexe Objekte, so genannte Aggregationen, für Anwendungen erzeugt werden. Dabei können die einzelnen Objekte bzw. Teile, welche ein komplexes Objekt bilden, in unterschiedlichen Beziehungen bzw. Relationen zueinander stehen.
-
Bei komplexen Objekten bzw. Aggregationen werden daher beispielsweise verschiedene Arten von Relationen unterschieden. Eine Relation, von welcher eine sogenannte Teil-von- bzw. Besteht-aus-Beziehung beschrieben wird, wird auch als so genannte Containment-Relation bezeichnet. Das bedeutet, ein komplexes Objekt kann beispielsweise eines oder mehrere Objekte eines bestimmten Typs enthalten, auf welche die Containment-Relation verweist. Von einer Containment-Relation wird damit ein physisches Enthaltensein eines Objekts in einem anderen Objekt beschrieben.
-
Eine weitere Art einer Relation stellt die so genannte einseitige Relation dar. Bei einer einseitigen Relation ist die Beziehung zwischen zumindest zwei Objekte nur in eine Richtung lesbar. D. h. ein Typobjekt, von welchem beispielsweise Eigenschaften oder Informationen für mehrere Objekte einer Anwendung zur Verfügung gestellt werden, existiert für diese Anwendung nur einmal. Es können aber alle Objekte, die diesen Typ aufweisen, mit diesem Typobjekt mittels der einseitigen Relation verbunden werden. Den Objekten, welche mittels der einseitigen Relation z. B. auf das Typobjekt verweisen, ist das Typobjekt bekannt. Vom Typobjekt kann allerdings nicht festgestellt werden, welche Objekte bzw. wie viele Objekte mit ihm eine Relation aufweisen.
-
Neben einseitigen Relationen können bei komplexen Objekten und/oder in Anwendungen auch so genannte beidseitige Relationen eingesetzt werden. Dabei handelt es sich beispielsweise um Verweise von Objekten auf andere Objekte, von welchen eine Menge repräsentiert wird (z. B. elektrische Module – Modulpool, Buch – Bibliothek, etc.). D. h. ein Objekt einer bestimmten Klasse ist genau einem anderen Objekt, welches eine Menge bzw. einen Pool für Objekte dieser Klasse repräsentiert, zugeordnet. Von diesem Mengen-Objekt kann aber auf ein oder mehrere Objekte dieser Klasse verwiesen werden, wobei dem Mengen-Objekt alle Objekte, welche seiner Menge angehören bzw. die auf es verweisen, bekannt sind.
-
Um das Erstellen von neuen Objekten, insbesondere von komplexen bzw. stark vernetzten Objekten zu vereinfachen, werden üblicherweise Objektvorlagen, sogenannte Templates, eingesetzt. Derartige Templates werden beispielsweise aus bereits bestehenden Objekten abgeleitet. Objektvorlagen oder Templates stellen üblicherweise Schablonen bzw. Gerüste dar, welche einen Teil des Inhalts oder der Gestaltung des neuen Objekts bereits vorgeben. Durch Einsetzen und/oder Ergänzen von fehlenden Bestandteilen wird dann aus der Objektvorlage ein neues Objekt, welches dem ursprünglichen, existierenden Objekt weitgehend entspricht und wie dieses von der jeweiligen Anwendung verwendet werden kann.
-
Derzeit werden Objektvorlagen für komplexe Objekte beispielsweise durch einen Anwender auf Basis bereits existierender Objekt händisch erstellt. Eine derartige Vorgehensweise weist allerdings den Nachteil auf, dass sie relativ zeitaufwändig und fehleranfällig ist. Denn das existierende Objekt muss zuerst genau analysiert und dann durch den Anwender die entsprechenden Komponenten und Relationen für die Objektvorlage kopiert und/oder nachgebaut werden. Dabei besteht auch die Gefahr, dass Komponenten und/oder Beziehungen – insbesondere bei komplexen bzw. stark vernetzten Objektvorlagen – vergessen oder übersehen werden.
-
Eine weitere Methode um komplexe Objektvorlagen zu generieren, ist beispielsweise ein Importieren von Objektvorlagen mittels einer Importfunktion aus externen Datei bzw. anderen Anwendungen. Auch in diesem Fall müssen die importierten Objektvorlagen auf die Gegebenheiten der jeweiligen Anwendung – meist händisch durch den Anwender – angepasst werden. Insbesondere können Verknüpfungen bzw. Relationen mit anderen Objekten eines neuen, mittels Templates erzeugten Objekts z. B. nur manuell durch den Anwender durchgeführt werden. Dadurch kann es ebenfalls zu Fehler wie z. B. vergessenen oder falsch erzeugten Relationen kommen, durch welche letztendlich Fehler in einer Anwendung oder Datenbank erzeugt werden.
-
Darstellung der Erfindung
-
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zum Erstellen von Objekten einer objektorientierten Datenbank anzugeben, bei welchen auf einfache Weise Aufwand, Fehlerwahrscheinlichkeit und eine Anzahl an Arbeitsschritten beim Erstellen von neuen Objekten reduziert wird.
-
Die Lösung dieser Aufgabe erfolgt durch ein Verfahren der eingangs angegebenen Art, wobei aus bestehenden Objekten Objektvorlagen generiert werden, in welchen Informationen über jeweils enthaltene Objekte und die zugehörigen Containment-Relationen sowie einseitige Relationen abgespeichert und in welchen die beidseitigen Relationen durch Platzhalter ersetzt werden. Für ein Erstellen von neuen Objekten werden dann die derart erstellten Objektvorlagen herangezogen, wobei auf Basis der in den Objektvorlagen hinterlegten Informationen die jeweils enthaltenen Objekte mit den zugehörigen Containment-Relationen sowie die einseitigen Relationen generiert und dann die Platzhalter für beidseitige Relationen durch die entsprechenden beidseitigen Relationen ersetzt werden.
-
Der Hauptaspekt der erfindungsgemäß vorgeschlagenen Lösung besteht darin, dass auf Basis einfacher und durch den Anwender definierbarer Regeln, aus einem Objekt, insbesondere einem komplexen und/oder stark vernetzten Objekt, eine Objektvorlage generiert wird, aus welcher auf einfache Weise neue Objekte erzeugt werden können. Durch die Regeln kann beispielsweise festgelegt werden, welche Komponenten (d. h. Objekte) des bestehenden Objekts zu einer Objektvorlage gehören und wie mit den Relationen umgegangen werden soll. Dadurch wird auf einfache Weise der manuelle Aufwand und die Fehlerwahrscheinlichkeit beim Erzeugen der Objektvorlagen sowie beim Generieren eines neuen Objekts reduziert, insbesondere da die Regeln nur einmal für ein existierendes Objekt erstellt werden müssen. Eine komplette Objektvorlage kann dann in einem Arbeitsschritt vom Anwender aus diesem vorhandenen Objekt erstellt werden, wobei durch ein Ersetzen der beiseitigen Relationen durch Platzhalter ein Kopieren von einer Vielzahl von Objekten verhindert wird.
-
Weiters bestimmen die definierbaren Regeln auch ein Ableiten eines neuen Objekts aus der Objektvorlage. Dadurch werden ebenfalls der Arbeitsaufwand sowie die Wahrscheinlichkeit reduziert, dass beispielsweise Relationen vergessen oder falsch erzeugt werden. Einen zusätzlichen Vorteil des erfindungsgemäßen Verfahrens stellt die Möglichkeit dar, die Regeln zum Generieren der Objektvorlage bzw. des neuen Objekts rasch an geänderte Anforderungen anpassen zu können.
-
Zur Lösung der Aufgabe ist auch vorgesehen, dass für ein Generieren der Objektvorlagen aus bestehenden Objekten zuerst in den bestehenden Objekten enthaltene Objekte sowie die zugehörigen Containment-Relationen kopiert und gespeichert werden. Dann werden die einseitige Relationen kopiert und gespeichert und zuletzt die kopierten beidseitigen Relationen der bestehenden Objekte aufgelöst und durch Platzhalter ersetzt, durch welche die beidseitigen Relationen beschrieben werden.
-
Der Vorteil dieser Ausgestaltung des erfindungsgemäßen Verfahrens besteht darin, dass anhand einfacher Regeln bestimmt wird, welche Objekte des existierenden Objekts zur zu generierenden Objektvorlage gehören. Zusätzlich wird eine einfache Handhabung der jeweiligen im existierenden Objekt vorkommenden Relationen definiert. Dadurch kann eine Objektvorlage mit sehr geringem Aufwand – beispielsweise in einem Arbeitsschritt – von einem vorhandenen Objekt abgeleitet werden, ohne dass vom Anwender einzelne Objekte der Objektvorlage manuell erstellt werden müssen.
-
Eine zweckmäßige Ausgestaltung der Erfindung sieht auch vor, dass für ein Erstellen von neuen Objekten auf Basis der generierten Objektvorlagen zuerst die enthaltenen Objekte sowie die zugehörigen Containment-Relationen kopiert werden. Dann werden auf Basis der Objektvorlagen die einseitigen Relationen erzeugt und danach die in den Platzhaltern abgelegten Informationen derart aufgelöst, dass die entsprechenden beidseitigen Relationen erzeugt werden.
-
Dabei wird vorteilhafter Weise von definierbaren Regeln festgelegt, welche Objekte der Objektvorlage Bestandteil des neuen Objekts sind und welche Relationen im neuen Objekt zu erstellen sind. Insbesondere beidseitige Relationen können mit Hilfe der Information in den Platzhaltern erzeugt werden. Dadurch wird, insbesondere bei stark vernetzten Objekten, einerseits der manuelle Aufwand stark vermindert und andererseits vermieden, dass Relationen in neuen Objekten vergessen und/oder falsch erzeugt werden.
-
Es ist auch vorteilhaft, wenn die Platzhalter für beidseitige Relationen als sogenannte Relationsobjekte ausgestaltet werden, in welchen Schlüssel zum Auffinden von Zielobjekten für die beidseitigen Relationen hinterlegt werden. Dabei ist es auch günstig, wenn die Schlüssel zum Auffinden der Zielobjekte als sogenannte Attribute in den jeweiligen Relationsobjekten hinterlegt werden. Durch eine Gestaltung der Platzhalter als Relationsobjekte können auf einfache Weise die Informationen für beidseitige Relationen in Objektvorlagen beschrieben und hinterlegt werden. Beim Erstellen eines neuen Objekts auf Basis der Objektvorlage können die Relationsobjekte ebenfalls mittels einfacher Regeln aufgelöst und die beidseitigen Relationen wieder hergestellt werden.
-
Bei einer bevorzugten Fortbildung der Erfindung ist auch vorgesehen, dass beim Erzeugen von beidseitigen Relationen in neuen Objekten zuerst aus den Platzhaltern die entsprechenden Zielobjekte für die beidseitigen Relationen ermittelt werden, und dass dann die entsprechenden, zugehörigen beidseitigen Relation zu den Zielobjekten erzeugt werden. Damit wird auf einfache Weise festgelegt, welche beidseitigen Relationen in neuen Objekten zu bestimmten Zielobjekten hergestellt werden sollen, ohne dass Relationen vergessen oder falsch erzeugt werden.
-
Kurzbeschreibung der Zeichnung
-
Die Erfindung wird nachfolgend in beispielhafter Weise anhand der beigefügten Figuren erläutert. Die Figuren zeigen beispielhaft und schematisch:
-
1 den Ablauf des erfindungsgemäßen Verfahrens zum Erstellen von Objekten einer objektorientierten Datenbank
-
2a ein Generieren einer Objektvorlage aus einem beispielhaften, existierenden Objekt
-
2b ein Erstellen eines beispielhaften, neuen Objekts auf Basis der generierten Objektvorlage
-
Ausführung der Erfindung
-
In 1 ist beispielhaft in schematischer und vereinfachter Weise ein Ablauf des erfindungsgemäßen Verfahrens dargestellt. Dabei kann das erfindungsgemäße Verfahren zum Erstellen von Objekten einer objektorientierten Datenbank beispielsweise in zwei Abschnitte unterteilt werden. In einem ersten Abschnitt werden auf Basis existierenden Objekte, welche insbesondere komplex bzw. stark vernetzt sind, Objektvorlagen generiert. In einem zweiten Abschnitt werden dann auf Basis der erzeugten Objektvorlagen neue Objekte z. B. für Anwendungen hergestellt.
-
Das erfindungsgemäße Verfahren bzw. der erste Abschnitt des Verfahrens beginnt mit einem ersten Verfahrensschritt 1 zum Erstellen von Objektvorlagen. Dabei wird im ersten Verfahrensschritt 1, der auch den Startschritt des Verfahrens darstellt, beispielsweise von in einer Anwendung existierenden Objekten ausgegangen. Diese Objekte weisen üblicherweise Relationen auf, welche als sogenannte Containment-Relationen, einseitige Relationen oder als beidseitige Relationen ausgestaltet sein können. Über die sogenannten Containment-Relationen können die Objekte weitere – meist einfache – Objekte enthalten.
-
In einem zweiten Verfahrensschritt 2 werden dann für die jeweiligen Objektvorlagen Informationen über die jeweils enthaltenen Objekte abgespeichert. In einem dritten Verfahrensschritt 3 werden dann Informationen über die entsprechenden, zu den jeweiligen enthaltenen Objekten zugehörigen Containment-Relationen in den Objektvorlagen hinterlegt.
-
Bei einem vierten Verfahrensschritt 4 werden in der Folge Informationen über in den existierenden Objekten einseitige Relationen in den Objektvorlagen herlegt. Dabei stellen einseitige Relationen Verknüpfungen dar, welche in eine eindeutige Richtung lesbar bzw. interpretierbar sind, wobei ein Objekt (z. B. Typobjekt), auf welches von einer einseitigen Relation verwiesen wird, in einer Anwendung üblicherweise nur einmal existiert. Es ist aber diesem Objekt (z. B. Typobjekt) nicht bekannt, welche weiteren Objekte noch eine einseitige Relation zu ihm aufweisen.
-
In einem fünften Verfahrensschritt 5 werden in existierenden Objekten bestehende beidseitige Relationen durch entsprechende Platzhalter ersetzt, in welchen die Information über die jeweiligen beidseitigen Relationen hinterlegt wird. Ein derartiger Platzhalter kann beispielsweise als sogenanntes Relationsobjekt ausgestaltet sein, in welchem ein Schlüssel zum Auffinden für das jeweilige Zielobjekt z. B. als Attribut hinterlegt ist. Als beidseitige Relationen werden üblicherweise Relationen bezeichnet, welche in beide Richtungen interpretierbar sind. D. h. heißt ein bestimmtes Objekt ist über eine derartige Relation beispielsweise mit einem sogenannten Mengenobjekt verknüpft. Dieses Objekt wird durch die beidseitige Relation diesem Mengenobjekt eindeutig zugeordnet. Dem Mengeobjekt ist aber auch bekannt, welche Objekte eine Relation zum ihm aufweisen. Es wird damit vom Mengenobjekt gewusst, dass das bestimmte Objekt mit ihm verknüpft ist. Aufgrund dieser Verknüpfung können beidseitige Verbindungen nicht in Objektvorlagen übernommen werden, da sonst unnötiger Weise z. B. eine Vielzahl von Objekten kopiert wird bzw. schlimmstenfalls die gesamte Datenbank auf sich selbst kopiert werden würde.
-
In einem sechsten Verfahrensschritt 6 werden dann die jeweiligen Objektvorlagen erhalten, welche als Basis für neue Objekte herangezogen werden können, welche mit den existierenden Ausgangsobjekten weitestgehend identisch sind. Zur Vereinfachung können die Verfahrensschritte vom ersten 1 bis zum sechsten Verfahrensschritt 6 beispielsweise von einem Anwender als Regeln definiert werden, welche dann in einem ersten Arbeitsschritt F1 abgearbeitet werden. Das bedeutet, der erste Abschnitt des erfindungsgemäßen Verfahrens stellt den ersten Arbeitsschritt F1 dar, durch welchen von einem existierenden Objekt eine entsprechende Objektvorlage abgeleitet. Der erste Arbeitsschritt F1 wird im Folgenden noch detaillierter anhand der 2a erläutert, wobei von einem beispielhaften Objekt O1 (z. B. einem Schaltschrank) ausgegangen wird.
-
2a zeigt schematisch und beispielhaft auf einer linken Seite ein übergeordnetes Objekt UO – z. B. einen Raum, welcher einer Klasse Raum angehört. Im übergeordneten Objekt UO der Klasse Raum ist beispielhaft ein Objekt O1 wie z. B. ein Schaltschrank mit der Klasse Schrank zugeordnet, wobei das übergeordnete Objekt UO mehrere Objekt O1 der Klasse Schrank enthalten kann. Die Zuordnung des Objekts O1 zum übergeordneten Objekt UO wird durch eine erste Containment-Relation C1 erwirkt.
-
Weiters zeigt 2a auf der linken Seite, dass das Objekt O1 über einen zweite Containment-Relation C2 beispielhaft ein erstes sogenanntes Kindobjekt K1 enthält, welches einer Klasse Einschub angehört. Dem ersten Kindobjekt K1 ist dabei zumindest ein beispielhaftes zweites Kindobjekt K2 über eine dritte Containment-Relation C3 zugeordnet, welches einer Klasse Modul angehört. Die beiden Kindobjekte K1 und K2 sind damit über die Containment-Relationen C2, C3 im Objekt O1 der Klasse Schrank enthalten.
-
Zusätzlich weist das Objekt O1 ein erstes Attribut A1 auf, durch welches beispielsweise ein Typ des Objekts O1 näher beschrieben werden kann. Dazu wird z. B. das Objekt O1 über eine einseitige Relation R1 mit einem Typobjekt TO einer Klasse Schranktyp verknüpft. Das Typobjekt TO kann beispielsweise ein zweites Attribut A2 aufweisen, durch welches die Klasse Schranktyp näher spezifiziert wird. Das Typobjekt TO ist dabei üblicherweise nur ein einziges Mal in einer Anwendung bzw. objektorientierten Datenbank vorhanden. Von allen Objekten dieses Typs wird dann – üblicherweise mittels einer einseitigen Relation R1 auf dieses Typobjekt TO verwiesen, wobei dem Typobjekt die verweisenden Objekte nicht bekannt sind.
-
Weiters weist das zweite Kindobjekt K2 ein drittes Attribut A3 auf, durch welches z. B. eine Zugehörigkeit des zweiten Kindobjekts K2 der Klasse Modul zu einem Mengen-Objekt P einer Klasse Modulpool beschrieben wird. Die Verknüpfung des zweiten Kindobjekts K2 mit Mengen-Objekt P, welches – beschrieben durch ein viertes Attribut A4 des Mengen-Objekts P – viele Objekte der Klasse Modul enthalten kann, wird durch eine beidseitige Relation R2 realisiert. Durch die beidseitige Relation R2 ist nicht nur das zweite Kindobjekt K2 mit dem Mengen-Objekt P verknüpft, sondern es ist auch dem Mengen-Objekt P damit bekannt, dass von ihm auf das zweite Kindobjekt K2 verwiesen wird.
-
Durch den ersten Arbeitsschritt F1 wird nun aus dem beispielhaften auf der linken Seite der 2a dargestellten, existierenden Objekt O1 eine Objektvorlage T erstellt. Dazu wird zuerst die erste Containment-Relation C1 zum übergeordneten Objekt UO aufgelöst bzw. nicht kopiert. In der Folge werden dann einen erste Kopie O1a des Objekts O1 sowie entsprechende Kopien K1a, K2a der Kindobjekte K1, K1 angelegt. Alle diese Kopien bzw. kopierten Objekte O1a, K1a, K2a weisen die jeweiligen Attribute A1, A3 der Ausgangsobjekte O1, K1, K2 auf. Danach werden Kopien C2a, C3a der zweiten und dritten Containment-Relation C2, C3 erstellt und in der Objektvorlage T gespeichert. Dann wird auch die einseitige R1 als Kopie R1a in der Objektvorlage T erzeugt und gespeichert, um dort ebenfalls eine Typspezifikation für die Objektkopie O1a bzw. eine Verweis auf das Typobjekt TO zu hinterlegen.
-
Abschließend wird die beidseitige Relation R2 zum Mengen-Objekt P in der Objektvorlage T durch einen Platzhalten PH ersetzt. Als Platzhalter PH wird dabei ein sogenanntes Relationsobjekt PH erzeugt und eingesetzt, das beispielsweise eine Klasse Relation aufweist. Im Relationsobjekt PH ist als fünftes Attribut ziel ein Schlüssel zum Auffinden des Mengen-Objekts P hinterlegt. Damit wird vom Relationsobjekt PH der Objektvorlage T die beidseitige Relation R2 zwischen dem zweiten Kindobjekt K2 und dem Mengen-Objekt P beschrieben. Das Relationsobjekt PH ist auch über eine Relation RP, welche z. B. als einseitige Relation ausgeführt sein kann, mit der Kopie K2a des zweiten Kindobjekts in der Objektvorlage T verknüpft. Anhand dieser Vorgehensweise, welche den in 1 dargestellten Verfahrensschritten 1 bis 6 entspricht, werden Objektvorlagen T für existierende Objekte O1 generiert, in welchen Informationen für alle enthaltenen Objekte K1, K2, alle zugehörigen Containment-Relationen C2, C3, einseitigen Relationen R1 sowie Platzhalten PH für beidseitige Relationen R2 hinterlegt sind.
-
Wurden nun Objektvorlagen gemäß dem in der 1 beispielhaft dargestellten erfindungsgemäßen Verfahren bzw. gemäß dem in 2a beispielhaft und schematisch dargestellten Arbeitsschritt F1 erstellt, so beginnt der zweite Abschnitt des erfindungsgemäßen Verfahrens mit einem siebenten Verfahrensschritt 7 der 1, bei welchen auf Basis von Objektvorlagen mit dem Erstellen von neuen Objekten begonnen wird. In einem achten Verfahrensschritt 8 werden auf Basis der in den Objektvorlagen abgelegten Informationen die enthaltenen Objekte für die neuen Objekte erzeugt. Dann werden in einem neunten Verfahrensschritt 9 die entsprechenden zugehörigen Containment-Relationen für diese enthaltenen Objekte auf Basis der Informationen in den Objektvorlagen hergestellt.
-
In einem zehnten Verfahrensschritt 10 werden dann anhand der Informationen in den Objektvorlagen die jeweiligen einseitigen Relationen für die neuen Objekte entsprechend spezifiziert und erzeugt. In einem elften Verfahrensschritt 11 werden dann die Platzhalter bzw. die als Platzhalter genutzten Relationsobjekte aufgelöst und wieder durch die entsprechenden beidseitigen Relationen ersetzt.
-
In einem zwölften Verfahrensschritt 12 sind dann die neuen Objekte anhand der Objektvorlagen fertig erstellt. Diese neuen Objekte sind mit den jeweiligen Ausgangsobjekten weitgehend identisch. Zur einfacheren Benutzung können auch die Verfahrensschritte 7 bis 12 zu einem zweiten Arbeitsschritt für den Anwender zusammengefasst werden, welcher dem zweiten Abschnitt des erfindungsgemäßen Verfahrens entspricht. Damit werden auf einfache Weise für objektorientierte Anwendungen bzw. Datenbanken neue Objekte auf Basis von bestehenden Objekten generiert, wobei die Wahrscheinlichkeit, Relationen zu vergessen und/oder falsch zu erzeugen, erheblich reduziert wird. Eine beispielhafte, detaillierte Beschreibung des zweiten Arbeitschritts bzw. Abschnitts wird in der Folge anhand der 2b beschrieben.
-
2b zeigt auf einer linken Seite wieder die beispielhafte Objektvorlage T, in welcher eine kopiertes Objekt O1a der Klasse Schrank enthalten ist. Im kopierten Objekt O1a sind über entsprechende Containment-Relationen C2a, C3a Kindobjektkopien K1a, K2a enthalten. Die Objektvorlage weist auch die kopierte einseitige Relation R1a sowie den als Relationsobjekt ausgestalteten Platzhalter PH für die beidseitige Relation R2 auf.
-
Im zweiten Arbeitsschritt F2 soll das auf der rechten Seite der 2b dargestellte Objekt O1b auf Basis der Objektvorlage T für das übergeordnete Objekt UO erstellt werden, da diese übergeordnete Objekt UO ein zweites Objekt O1b der Klasse Schrank enthalten soll.
-
Dazu wird zuerst auf Basis der Objektvorlage T das Objekt O1b der Klasse Schrank erzeugt. Dann werden die in der Objektvorlage T abgespeicherten Kindobjekte K1a, K2a kopiert und als Kindobjekte K1b, K2b des Objekts O1b erzeugt. Die auf Basis der Objektvorlage T erzeugten Objekte O1b, K1b, K2b weisen wieder die jeweiligen Attribute A1, A3 der Ausgangsobjekte O1, K1, K2 auf. D. h. das Objekt O1b umfasst das erste Attribut A1, durch welches der Typ des Objekts O1b näher beschrieben wird, und das Kindobjekt K2b weist wieder das dritte Attribut A3 auf, durch welches die Zugehörigkeit zum Mengen-Objekt P festgelegt wird.
-
Dann werden auf Basis der Objektvorlage T die Containment-Relationen C2b, C3b durch Kopie erzeugt. In der Folge wird auch die einseitige Relation R1b auf Basis der Information in der Objektvorlage T vom neuen Objekt O1b zum Typobjekt TO aufgebaut. Danach wird der Platzhalter bzw. das Relationsobjekt PH der Objektvorlage T derart aufgelöst, dass daraus wieder die beidseitige Relation R2b zwischen dem zweiten Kindobjekt K2b des neuen Objekt O1b und dem Mengen-Objekt P erzeugt wird. Das Mengen-Objekt P als Ziel der beidseitigen Relation R2b wird dabei aus dem fünften Attribut ziel des Relationsobjekts PH ermittelt. Von der beidseitigen Relation R2b wird damit die Relation RP der Objektvorlage T und vom Mengen-Objekt P das Relationsobjekt der Objektvorlage T ersetzt.
-
Damit wurde auf einfache Weise und mit relativ geringer Fehlerwahrscheinlichkeit in zwei Arbeitsschritten F1, F2 auf Basis der Objektvorlage T aus dem existierenden Objekt O1 der Klasse Schrank ein neues Objekt O1b generiert, welches weitgehend eine Kopie des existierenden Objekts O1 darstellt und wieder über eine Containment-Relation C1b mit dem übergeordneten Objekt UO der Klasse Raum verbunden werden kann.