DE10254571A1 - Data model transformation method, for transformation of a entity relationship model to an object orientated model, thus allowing combination of a entity relationship model with a unified modeling language model - Google Patents

Data model transformation method, for transformation of a entity relationship model to an object orientated model, thus allowing combination of a entity relationship model with a unified modeling language model Download PDF

Info

Publication number
DE10254571A1
DE10254571A1 DE10254571A DE10254571A DE10254571A1 DE 10254571 A1 DE10254571 A1 DE 10254571A1 DE 10254571 A DE10254571 A DE 10254571A DE 10254571 A DE10254571 A DE 10254571A DE 10254571 A1 DE10254571 A1 DE 10254571A1
Authority
DE
Germany
Prior art keywords
type
entity
association
types
class
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10254571A
Other languages
German (de)
Inventor
Mario Dipl.-Inf. Jeckle (FH)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mercedes Benz Group AG
Original Assignee
DaimlerChrysler AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DaimlerChrysler AG filed Critical DaimlerChrysler AG
Priority to DE10254571A priority Critical patent/DE10254571A1/en
Publication of DE10254571A1 publication Critical patent/DE10254571A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Abstract

Method for automatic generation of an object orientated data model from a given data model that comprises entity types (10,1, 10.n) and association types (20.1, 20.n), while the object-orientated model comprises classes, attributes and relation types. The automatic method links connections between data objects in the first model with connections between data objects in the object orientated model, while also making links between associated components and classes and association types and relation types. The invention also relates to a corresponding computer program product.

Description

Die Erfindung betrifft ein Verfahren zur automatischen Erzeugung eines objektorientierten Datenmodells aus einem vorgegebenen Datenmodell.The invention relates to a method for the automatic generation of an object-oriented data model from a given data model.

Datenmodelle werden aufgestellt und verwendet, um Daten zu strukturieren. Beispielsweise wird mit Hilfe eines Datenmodells ein Datenbankschema für eine zunächst leere Datenbank erzeugt, die dann mit Datensätzen gefüllt wird, die zum Datenbankschema passen.Data models are set up and used to structure data. For example, with help of a data model creates a database schema for an initially empty database, then with records filled which fits the database schema.

Zwei wichtige Sorten von Datenmodellen sind Datenmodelle mit Entitätstypen und Assoziationstypen sowie objektorientierte Datenmodelle. Ein Beispiel für ein Datenmodell mit Entitätstypen und Assoziationstypen ist das Entity-Relationship-Modell, eines für ein objektorientiertes ist die „Unified Modeling Language" (UML), die aus http://www.uml.org, abgefragt am 14. 11. 2002, bekannt ist.Two important varieties of data models are data models with entity types and association types and object-oriented data models. On example for a data model with entity types and association types is the entity-relationship model, one for an object-oriented one is the "Unified Modeling Language "(UML), which is known from http://www.uml.org, queried on 14. 11. 2002.

Ein Beispiel für ein Entity-Relationship-Modell (ER-Modell) ist aus P.-P. S. Chen: „The Entity-Relationship Model – toward a unified view of data", ACM Transactions on Database Systems, Vol. 1 No. 1, pp. 9 – 36, March 1976, bekannt. Entitätstypen werden dort als „entity sets" und Assoziationstypen als „relationship Sets" bezeichnet. Ein Entitätstyp repräsentiert einen Typ von Entitäten, das sind reale Objekte („things"), z. B. Personen, Unternehmen oder technische Gegenstände. Ein Assoziationstyp repräsentiert einen Typ von Assoziationen zwischen Entitäten. „Ist Angestellter von" ist ein Assoziationstyp zwischen den Entitätstypen „Unternehmen" und „Person". Assoziationstypen werden in Druckschriften über ER oft als Relationstypen bezeichnet, im folgenden wird aber die Bezeichnung Assoziationstyp verwendet. Ein Entity-Relationship-Diagramm (ER-Diagramm) zeigt Entitätstypen durch Rechtecke, Assoziationstypen durch Rauten und Verbindungen zwischen Entitätstypen und Assoziationstypen durch Linien zwischen Rechtecken und Rauten. Auf S. 19 von P.-P. S. Chen sind zwei ER-Diagramme gezeigt. In P.-P. S. Chen wird weiterhin beschrieben, wie mit Hilfe eines ER-Modells eine Datenbank entworfen und dabei ein Datenbankschema mit Datendefinitionen erzeugt wird.An example of an entity relationship model (ER model) is from P.-P. S. Chen: "The Entity-Relationship Model - Towards a unified view of data ", ACM Transactions on Database Systems, Vol. 1, pp. 9 - 36, March 1976, known. entity be there as "entity sets "and association types as "relationship Sets ". An entity type represents a type of entity, these are real things, such as people, Company or technical items. An association type represents a type of association between entities. "Is an employee of" is an association type between the entity types "company" and "person". Association types be in pamphlets about He often referred to as relation types, but in the following is the Name Association type used. An entity relationship diagram (ER diagram) shows entity types through rectangles, types of associations through diamonds and connections between entity types and association types by lines between rectangles and diamonds. On page 19 of P.-P. S. Chen, two ER diagrams are shown. In P.-P. S. Chen continues to be described as using an ER model designed a database and a database schema with data definitions is produced.

Ein weiteres Datenmodell mit Entitätstypen und Assoziationstypen, nämlich das „semantically enriched extended entity relationship model" (E3R), wird in M. Jeckle und L. Kern-Bausch: „Automatische Generierung objektorientierter Strukturen", KnowTech 2000, Leipzig, 5. – 8. 9. 2000, verfügbar unter http://www.jeckle.de/publikat.htm (abgefragt am 10. 4. 2002), vorgestellt. Eine Verbindung zwischen Entitätstypen und Assoziationstypen kann durch ein Mitgliedschaftsintervall und eine Rolle gekennzeichnet sein.Another data model with entity types and association types, viz the "semantically enriched extended entity relationship model "(E3R), in M. Jeckle and L. Kern-Bausch:" Automatic Generation of object-oriented structures ", KnowTech 2000, Leipzig, 5. - 8. 9. 2000, available at http://www.jeckle.de/publikat.htm (queried on 10. 4. 2002), presented. A connection between entity types and association types can be characterized by a membership interval and a role his.

Datenmodelle mit Entitätstypen und Assoziationstypen sind seit langem bekannt. Für ihre Aufstellung werden nur wenige Beschreibungsmittel benötigt. Daher sind sie auch für Fachexperten für ein technisches Sachgebiet, die keine IT-Fachleute sind, relativ leicht zu verstehen.Data models with entity types and association types have long been known. For their lineup will be only a few descriptive means needed. Therefore, they are also for subject matter experts for a technical subject, who are not IT professionals, relatively easy to understand.

In US 6038393 wird die objektorientierte Sprache UML skizziert. Zu UML gehören Klassen von Objekten („object types"), Relationen („associations") zwischen den Objekten dieser Klassen, eine Verwandtschaftshierarchie unter Klassen („subtypes") und Aggregationen („aggregations") von Klassen. Typen realer Objekte und Datentypen sind Beispiele für UML-Klassen. Klassendiagramme („class diagrams") beschreiben u. a. Relati onstypen zwischen und Verwandtschaftshierarchien unter Klassen. In US 6038393 wird ein Verfahren vorgestellt, um ein spezifisches Datenmodell für Geschäftsprozesse („business model") in ein UML-Modell zu transformieren und umgekehrt. Eine bidirektionale Abbildung zwischen den beiden Modellen wird erzeugt. Jedoch wird in US 6038393 nicht offenbart, wie diese Transformation für den Fall eines Datenmodells mit Entitätstypen und Assoziationstypen durchgeführt wird.In US 6038393 the object-oriented language UML is sketched. UML includes classes of objects ("object types"), associations between the objects of these classes, a subtypes hierarchy, and aggregations ("aggregations") of classes. Types of real objects and data types are examples of UML classes. Class diagrams describe inter alia relationship types and relationship hierarchies among classes US 6038393 A method is presented to transform a specific business model into a UML model, and vice versa, creating a bidirectional mapping between the two models US 6038393 does not disclose how this transformation is performed in the case of a data model with entity types and association types.

Für die Aufstellung, Wartung und Aktualisierung von objektorientierten Datenmodellen, insbesondere von UML-Modellen, stehen leistungsfähige Software-Werkzeuge zur Verfügung. Objektorientierte Datenmodelle und die Modellierungssprachen für diese haben jedoch eine Komplexität erreicht, das die korrekte Abbildung großer realer Systeme erschwert. Die objektorientierten Datenmodelle sind meist so komplex und abstrakt, daß nur wenige Fachleute für Informationsverarbeitung sie verstehen können. Fachexperten für ein technisches Fachgebiet, aus dem die zu strukturierenden und zu verarbeitenden Daten stammen, können die objektorientierten Datenmodelle nicht direkt nutzen, um z. B. konsistente, vollständige und wartbare Datenmodelle aufzustellen. Das vorhandene Fachwissen kann nicht direkt in den Modellierungs- und Entwicklungsprozeß eines Softwaresystems einfließen, vielmehr ist ein zusätzlicher interpretierender und umsetzender Schritt erforderlich. Bei Aktualisierungen und Anpassungen ist der Schritt erneut durchzuführen. Dieser Bruch zwischen Fachexperten und IT-Experten ist teuer und fehleranfällig. Außerdem sinkt die Qualität eines Softwaresystems, das mit Hilfe des objektorientierten Datenmodells erzeugt wurde. Darüber hinaus sind objektorientierte Datenmodelle oft schwer vom einem Rechner zu verarbeiten und nur mit erheblichem Aufwand graphisch darzustellen.For the installation, maintenance and updating of object-oriented Data models, especially UML models, are powerful software tools to disposal. Object-oriented data models and the modeling languages for them however, they have a complexity achieved, which complicates the correct mapping of large real systems. The object-oriented data models are usually so complex and abstract, that only few professionals for Information processing can understand them. Specialists for a technical Subject area from which to structure and process Data can come from do not use the object-oriented data models directly to B. consistent, complete and set up maintainable data models. The existing expertise can not directly into the modeling and development process of a Incorporate software systems, rather, it is an additional one interpretive and implementing step required. For updates and adjustments is the step again. This break between Subject matter experts and IT experts are expensive and error-prone. It also drops the quality a software system that uses the object-oriented data model was generated. About that In addition, object-oriented data models are often heavy on one Process computer and graphically represent only with considerable effort.

Daher wird gewünscht, sowohl Datenmodelle mit Entitätstypen und Assoziationstypen als auch objektorientierte Datenmodelle verwenden zu können. In L. Kern-Bausch, M. Jeckle: „Ableitung eines UML-Modells aus einem semantisch irreduzibel formulier ten konzeptuellen Schema", Workshop „Einsatz, Bewertung und Stand der Unified Modeling Language (UML)", Mannheim, 10.–11. 10. 1997, wird ein Datenmodell mit Entitätstypen und Assoziationstypen vorgestellt. Entitätstypen werden dort Objekttypen genannt. Weiterhin wird ein Verfahren skizziert, um ein UML-Modell aus diesem Datenmodell mit Entitätstypen und Assoziationstypen abzuleiten.Therefore, it is desirable to be able to use both data models with entity types and association types as well as object-oriented data models. In L. Kern-Bausch, M. Jeckle: "Derivation of a UML Model from a Semantically Irreducibly Formulated Conceptual Scheme", Workshop "Use, Assessment and Status of the Unified Modeling Language (UML)", Mannheim, 10.-11. 10. 1997, a data model with entity types and association types is presented. Entity types are called object types there. Furthermore, a method is outlined to derive a UML model from this data model with entity types and association types forward.

Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Erzeugung eines objektorientierten Datenmodells aus einem vorgegebenen Datenmodell mit Entitätstypen und Assoziationstypen bereitzustellen. Das Verfahren soll die aus dem Stand der Technik bekannten Ableitungs-Verfahren verbessern und automatisch auf einer Datenverarbeitungsanlage ablaufen.The invention is based on the object a method for creating an object-oriented data model from a given data model with entity types and association types provide. The method should be that of the prior art improve known derivation method and automatically on a Expire data processing system.

Die Aufgabe wird durch ein Verfahren nach Anspruch 1 sowie eine Vorrichtung nach Anspruch 10 oder Anspruch 11 gelöst. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen offenbart.The task is performed by a procedure according to claim 1 and an apparatus according to claim 10 or claim 11 solved. Advantageous embodiments are disclosed in the subclaims.

Das Verfahren ermöglicht es, die Vorteile von Datenmodellen mit Entitätstypen und Assoziationstypen zu nutzen und trotzdem bewährte Verfahren und Software-Werkzeuge für objektorientierte Datenmodelle, insbesondere für UML-Modelle, ohne großen Anpassungsaufwand verwenden zu können.The procedure makes it possible to take advantage of Data models with entity types and using association types while still using best practices and software tools for object-oriented Data models, in particular for UML models, without big ones Be able to use adaptation effort.

Die Verwendung eines Datenmodells mit Entitätstypen und Assoziationstypen erlaubt es, Fachexperten für ein technisches Sachgebiet und Endanwender eines Softwaresystems bereits frühzeitig, z. B. in frühe Analysephasen, einzubeziehen, weil es einerseits ausdrucksstark genug, andererseits zureichend einfach ist. Zur guten Verständlichkeit und Übersichtlichkeit des Datenmodells trägt bei, daß keine aggregierenden Notationen verwendet werden. Aggregierende Notationen können insbesondere bei komplexen Datenmodellen dazu führen, daß Änderungen an einer Stelle des Datenmodells weitereichende Änderungen an anderen Stellen, insbesondere an Datenobjekten, die Aggregate („Container") sind und geänderte Datenobjekte enthalten, erforderlich machen. Das ER-Modell und E3R stellen hingegen „Änderungs-Lokalität" sicher, d. h. Änderungen an einer Stelle des Datenmodells erfordern keine Änderungen an anderen Stellen und lösen keine Seiteneffekte aus.The use of a data model with entity types and association types allows subject matter experts in a technical field and end users of a software system early on, for. Eg in early phases of analysis, because on the one hand expressive enough, on the other hand It is easy enough. For ease of understanding and clarity of the data model in that no aggregating notations are used. Aggregating notations can In particular, in the case of complex data models, changes in one place of the Data model far-reaching changes in other places, especially data objects, the aggregates ("Container") are and changed data objects included, required. The ER model and E3R, on the other hand, ensure "change locality", that is, changes One place in the data model does not require changes elsewhere and solve no side effects.

Das erfindungsgemäße Verfahren ermöglicht es, aus einem Datenmodell mit Entitätstypen und Assoziationstypen ein objektorientiertes Datenmodell automatisch zu erzeugen. Dieses erzeugte Objekt-orientiertes Datenmodell läßt sich mit den verfügbaren Software-Werkzeugen weiter bearbeiten, und es kann z. B. ein Datenbankschema abgeleitet werden.The method according to the invention makes it possible from a data model with entity types and association types an object-oriented data model automatically to create. This generated object-oriented data model can be with the available Continue editing software tools, and it may, for. For example, a database schema be derived.

Das erfindungsgemäße Verfahren ist vollständig in dem Sinne, daß alle Entitätstypen und Assoziationstypen in Klassen, Attribute oder Relationstypen transformiert werden, also keine Information verloren geht. In der Regel umfaßt das erfindungsgemäß erzeugte objektorientierte Datenmodell deutlich weniger Relationstypen als das vorgegebene Datenmodell Assoziationstypen. Die nicht in Relationstypen transformierten Assoziationstypen werden vorzugsweise in Attribute überführt.The inventive method is completely in the sense that all entity and association types in classes, attributes, or relation types be transformed, so no information is lost. In the Usually includes the invention produced object-oriented data model significantly less relation types than the given data model association types. The not in relation types transformed association types are preferably converted into attributes.

Aus demselben vorgegebenen Datenmodell mit Entitätstypen und Assoziationstypen lassen sich durch das erfindungsgemäße Verfahren verschiedene Datenmodelle für unterschiedliche Implementierungen oder unterschiedliche Implementierungs-Paradigmen erzeugen. Beispielsweise werden aus demselben vorgegebenen Datenmodell sowohl ein UML-Modell als auch ein Datenbankschema für eine relationale Datenbank erzeugt. Das UML-Modell und die relationale Datenbank bleiben auch bei Änderungen konsistent zueinander, da sie beide aus demselben vorgegeben Datenmodell abgeleitet wurden und der erfindungsgemäße Erzeugungsvorgang bei Bedarf beliebig oft wiederholt werden kann. Dank des erfindungsgemäßen Verfahrens lassen sich im Verlaufe eines Produktentstehungsprozesses z. B. für eine neue Fahrzeug-Baureihe reproduzierbare Ergebnisse gleichbleibender Qualität erzeugen.From the same given data model with entity types and types of association can be achieved by the method according to the invention different data models for create different implementations or different implementation paradigms. For example, from the same given data model both generates a UML model as well as a database schema for a relational database. The UML model and the relational database remain the same for changes consistent with each other since they are both from the same given data model were derived and the generation process according to the invention as needed can be repeated as often as you like. Thanks to the method according to the invention can be in the course of a product development process z. B. for one new vehicle series reproducible results consistent quality produce.

Im folgenden werden Ausführungsbeispiele der Erfindung anhand der beiliegenden Zeichnungen näher beschrieben. Dabei zeigen:The following are exemplary embodiments the invention described in more detail with reference to the accompanying drawings. Showing:

1. ein Beispiel für ein Datenmodell mit Entitätstypen und Assoziationstypen (Stand der Technik); 1. an example of a data model with entity types and association types (prior art);

2. ein erstes Beispiel für die Erzeugung von Oberklassen; Second a first example for the generation of superclasses;

3. ein zweites Beispiel für die Erzeugung von Oberklassen; Third a second example for the generation of superclasses;

4. ein drittes Beispiel für die Erzeugung von Oberklassen; 4th a third example for the generation of superclasses;

5. das Datenmodell der 1 nach Ermittlung der Kopplungswerte (Schritt a) des erfindungsgemäßen Verfahrens; 5th the data model of 1 after determining the coupling values (step a) of the method according to the invention;

6. den Graphen mit Knoten für Entitätstypen und Assoziationstypen und Kanten für Eins-Eins-Verbindungen (Schritt b); 6th the graph with nodes for entity types and association types and edges for one-one connections (step b);

7. der Graph mit den Zusammenhangskomponenten für die Knoten des Graphen (Schritt g); 7th the graph with the connected components for the nodes of the graph (step g);

8. die ausgewählten Zusammenhangskomponenten (in Schritt h) und die anhand der Kopplungswerte ausgewählten Objekttypen der ausgewählten Zusammenhangskomponenten (in Schritt i); 8th. the selected context components (in step h) and the object types of the selected context components selected based on the coupling values (in step i);

9. die erzeugten Klassen des objektorientierten Datenmodells (Schritt k); 9th the generated classes of the object-oriented data model (step k);

10. eine aus einem Assoziationstyp erzeugte Relations-Klasse (Schritt o) und zwei aus weiteren Assoziationstypen erzeugte Relationstypen (ebenfalls Schritt o); 10th a relation class generated from an association type (step o) and two relation types generated from other association types (also step o);

11. das Endergebnis des erfindungsgemäßen Verfahrens. 11th the final result of the method according to the invention.

In 1 ist eine graphische Darstellung eines beispielhaften Datenmodells mit Entitätstypen und Assoziationstypen gezeigt. Das Datenmodell bezieht sich auf Autos mit Rädern, Fahrgestell-Nummern und Haltern.In 1 FIG. 3 is a graphical representation of an example data model having entity types and association types. FIG. The data model refers to cars with wheels, chassis numbers and holders.

Entitätstypen sind in den Figuren durch Rechtecke, Assoziationstypen durch quadratische Rauten dargestellt. Der Entitätstyp 10.1 mit dem Namen „Auto" und der Entitätstyp 10.4 mit dem Namen „Autorad" repräsentieren Autos bzw. Autoräder als Typen realer Objekte. Ein Auto hat Autoräder. Daher umfaßt das Datenmodell einen Assoziationstyp 20.2 namens „Radsatz", der mit den Entitätstypen 10.1 („Auto") und 10.4 („Autorad") verbunden ist. Das Datenmodell umfaßt weiterhin die Entitätstypen 10.2 („Halter") und 10.3 („Fahrgestell-Nummer") sowie die Assoziationstypen 20.2 („Radsatz") und 20.3 („Kennzeichnung" ).Entity types are represented in the figures by rectangles, types of association by square diamonds. The entity type 10.1 named "car" and the entity type 10.4 with the name "car wheel" reprä Show cars or car wheels as types of real objects. A car has car wheels. Therefore, the data model includes an association type 20.2 called "wheelset", which coincides with the entity types 10.1 ("Car") and 10.4 ("Car wheel"). The data model further includes the entity types 10.2 ("Holder") and 10.3 ("Chassis number") and the association types 20.2 ("Wheelset") and 20.3 ("Identification" ).

Jeder Verbindung zwischen einem Entitätstyp und einem Assoziationstyp ist eine Rolle zugeordnet, welche die Rolle angibt, die der Entitätstyp in Bezug auf den Assoziationstyp spielt. Ein Autorad ist an einem Auto montiert, daher ist der Verbindung zwischen dem Entitätstyp 10.4 („Autorad") und dem Assoziationstyp 20.2 („Radsatz") die Rolle 50.8 mit dem Namen „montiert an" zugeordnet. Ein Auto wird durch eine Fahrgestell-Nummer identifiziert. Daher ist der Verbindung zwischen dem Entitätstyp 10.1 („Auto") und dem Assoziationstyp 20.3 („Kennzeichnung") die Rolle 50.6 mit dem Namen „identifiziert durch" zugeordnet.Each connection between an entity type and an association type is assigned a role that indicates the role that the entity type plays in relation to the association type. A car wheel is mounted on a car, so the connection between the entity type 10.4 ("Car wheel") and the association type 20.2 ("Wheelset") the role 50.8 A car is identified by a chassis number, so the connection is between the entity type 10.1 ("Car") and the association type 20.3 ("Marking") the role 50.6 associated with the name "identified by".

Im Datenmodell der 1 ist jeder Verbindung zwischen einem Assoziationstyp und einem Entitätstyp zusätzlich ein Mit gliedschaftsintervall zugeordnet, das aus einer unteren und einer oberen Schranke besteht. Die beiden Schranken legen fest, wie viele Entitäten des Entitätstypen mit einer Assoziation des Assoziationstypen mindestens bzw. höchstens verbunden sein dürfen. Ein Mitgliedschaftsintervall eines vorgegebenen Datenmodells ist in den Figuren durch eine Angabe a:b beschrieben, wobei a die untere und b die obere Schranke ist. Die untere Schranke a ist eine natürliche Zahl oder die 0, wobei die Angabe „0" festlegt, daß die Anzahl nach unten nicht begrenzt ist. Die obere Schranke b ist eine natürliche Zahl oder das Symbol „n", wobei die Angabe „n" festlegt, daß die Anzahl nach oben nicht begrenzt ist.In the data model of 1 Each connection between an association type and an entity type is additionally assigned a membership interval consisting of a lower and an upper bound. The two bounds determine how many entities of the entity type may be associated with an association of the association type at least or at most. A membership interval of a given data model is described in the figures by an indication a: b, where a is the lower bound and b is the upper bound. The lower bound a is a natural number or the 0, where the indication "0" specifies that the number is not limited downwards.The upper bound b is a natural number or the symbol "n", where the indication "n" determines that the number is not limited upwards.

Ein Auto hat mindestens 4 und höchstens 5 Autoräder, nämlich die vier Autoräder des Fahrwerks und möglicherweise ein Reserverad. Umgekehrt ist ein Autorad an höchstens einem Auto montiert, es kann aber auch auf Halde liegen und daher an keinem Auto montiert sein. Dieser Sachverhalt wird durch die Mitgliedschaftsintervalle 60.7 und 60.8 festgelegt. Das Mitgliedschaftsintervall 60.7 ist der Verbindung zwischen dem Entitätstyp 10.1 („Auto") und dem Assoziationstyp 20.2 („Radsatz") zugeordnet und hat den Wert „4:5". Das Mitgliedschaftsintervall 60.8 ist der Verbindung zwischen dem Entitätstyp 10.4 („Autorad") und dem Assoziationstyp 20.2 („Radsatz") zugeordnet und hat den Wert „0:1".A car has at least 4 and a maximum of 5 car wheels, namely the four wheels of the chassis and possibly a spare wheel. Conversely, a car wheel is mounted on at most one car, but it can also be on heap and therefore not mounted on any car. This issue is determined by the membership intervals 60.7 and 60.8 established. The membership interval 60.7 is the connection between the entity type 10.1 ("Car") and the association type 20.2 ("Wheel set") and has the value "4: 5". The membership interval 60.8 is the connection between the entity type 10.4 ("Car wheel") and the association type 20.2 ("Wheelset") and has the value "0: 1".

Im Beispiel der 1 bezeichnet 30.1 einen Hybrid-Typ mit dem Namen „Eigentums-Verhältnis". Jeder Hybrid-Typ besteht aus genau einem Entitätstyp und genau einem Assoziationstyp und wird durch ein Rechteck über einer Raute dargestellt. Der Assoziationstyp des Hybrid-Typen 30.1 ist mit zwei Entitätstypen verbunden, nämlich mit dem Entitätstyp 10.1 („Auto") und dem Entitätstyp 10.2 („Halter"). Der Entitätstyp des Hybrid-Typen 30.1 ist mit dem Assoziationstyp 20.1 („Kaufvorgang") verbunden, der seinerseits mit dem Entitätstyp 10.5 („Kaufvertrag") verbunden ist. Mit Hilfe des Hybrid-Typen 30.1 werden folgende Sachverhalte repräsentiert: Jede Assoziation vom Typ „Eigentums-Verhältnis" zwischen einem Halter und einem Auto wird durch einen Kaufvertrag begründet. Der Kaufvertrag kennzeichnet damit die Assoziation vom Typ „Eigentums-Verhältnis" näher. In diesem Beispiel wird jedes Eigentumsverhältnis durch genau einen Kaufvertrag begründet. Umgekehrt begründet jeder Kaufvertrag mindestens ein Eigentumsverhältnis.In the example of 1 designated 30.1 A hybrid type called "Property Ratio." Each hybrid type consists of exactly one entity type and exactly one association type, and is represented by a rectangle over a rhombus 30.1 is associated with two entity types, the entity type 10.1 ("Car") and the entity type 10.2 ("Holder"). The entity type of the hybrid type 30.1 is with the association type 20.1 ("Purchase transaction"), which in turn is related to the entity type 10.5 ("Purchase contract") is connected. With the help of the hybrid types 30.1 The following facts are represented: Each ownership-type association between a keeper and a car is established by a contract of sale, and the contract of sale marks the association of the property-ownership type more closely. In this example, each ownership relationship is justified by exactly one purchase contract. Conversely, each purchase contract establishes at least one ownership.

Ein Assoziationstyp 20.1 („Kaufvorgang") verbindet den Assoziationstyp des Hybrid-Typs 30.1 mit dem Entitätstypen 10.5 („Kaufvertrag"). Der Assoziationstyp 20.1 („Kaufvorgang") kann nicht direkt mit einem anderen Assoziationstypen verbunden werden. Daher wird ein Hybrid-Typ 30.1 eingeführt, und dessen Entitätstyp wird mit dem Assoziationstyp 20.1 („Kaufvorgang") verbunden.An association type 20.1 ("Purchase transaction") combines the association type of the hybrid type 30.1 with the entity types 10.5 ("Purchase Agreement"). The Association Type 20.1 ("Purchase") can not be linked directly to another type of association, so it becomes a hybrid type 30.1 and whose entity type is associated with the association type 20.1 ("Purchase process").

Der Assoziationstyp 20.4 mit dem Namen „Kaufpreis" ist mit den Entitätstypen 10.5 („Kaufvertrag") und 10.7 („Preis") verbunden. Es ist vorteilhaft, für die Preise einen eigenen Entitätstyp einzuführen, weil dann Umrechnungen in andere Währungen sowie statistische Auswertungen vereinfacht werden. Repräsentiert wird der Sachverhalt, daß jeder Kaufvertrag genau einen Preis als Kaufpreis für das Auto oder die Autos festlegt. Umgekehrt kann derselbe Kaufpreis in verschiedenen Kaufverträgen genannt sein. Daher haben die Mitgliedschaftsintervalle 60.9 und 60 .10 die Werte „1.1" bzw. „1:n".The association type 20.4 named "purchase price" is with the entity types 10.5 ("Purchase Agreement") and 10.7 It is advantageous to introduce a separate entity type for the prices because it simplifies conversions to other currencies as well as statistical evaluations.The fact is represented that each purchase contract is exactly one price as purchase price for the car or the cars Conversely, the same purchase price may be mentioned in various purchase contracts 60.9 and 60 .10 the values "1.1" or "1: n".

Der Entitätstyp 10.7 („Preis") ist mit einem Datentyp verbunden, nämlich 40.1 („Währungsbetrag"). Diesem Datentyp können bestimmte Festlegungen für Datenformate zugeordnet sein, z. B. zwei Nachkommastellen, sowie eine Festlegung für die verwendete Währung.The entity type 10.7 ("Price") is associated with a data type, namely 40.1 ("Currency amount") .This data type can be assigned specific data format definitions, eg two decimal places, as well as a definition for the currency used.

Im folgenden wird der Begriff „Datenobjekte" als Oberbegriff für Entitätstypen, Assoziationstypen, Hybrid-Typen und Datentypen verwendet.In the following, the term "data objects" is used as a generic term for entity types, Association types, hybrid types, and data types used.

Das beispielhafte Datenmodell der 1 bezieht sich auf Autos, die ein Hersteller an Unternehmen verkauft hat. Daher ist jeder berücksichtigte Halter eines Autos ein Unternehmen. Sachverhalte dieser Art werden vorzugsweise durch eine Ver wandtschaftshierarchie, oft auch Taxonomie genannt, unter Datenobjekten einer Kategorie, in diesem Beispiel unter Entitätstypen, repräsentiert. Im Beispiel der 1 ist der Entitätstyp 10.2 („Halter") ein Untertyp, d. h. ein Spezialfall, des Entitätstyps 10.6 („Unternehmen"). Dieser Sachverhalt wird durch einen Doppelpfeil 70.1 vom Untertyp zum Obertyp, in diesem Beispiel vom Entitätstyp 10.2 (Halter) zum Entitätstyps 10.6 (Unternehmen) dargestellt. Dieser Doppelpfeil 70.1 repräsentiert eine taxonomische Verbindung zwischen zwei Entitätstypen.The exemplary data model of 1 refers to cars that a manufacturer has sold to companies. Therefore, every holder of a car considered is a company. Facts of this kind are preferably represented by a relationship hierarchy, often also called a taxonomy, under data objects of a category, in this example under entity types. In the example of 1 is the entity type 10.2 ("Holder") is a subtype, ie a special case, of the entity type 10.6 ("Company"). This issue is indicated by a double-headed arrow 70.1 from the subtype to the top type, in this example, the entity type 10.2 (Holder) to the entity type 10.6 (Company). This double arrow 70.1 represents a taxonomic connection between two entity types.

In einer bevorzugten Ausführungsform umfaßt das erfindungsgemäße Verfahren die im folgenden beschriebenen Schritte. Vorgegeben ist ein Datenmodell mit Entitätstypen und Assoziationstypen. Abkürzend werden im folgenden die Bezeichnungen „Datenmodell" für das vorgegebene Datenmodell mit Entitätstypen und Assoziationstypen und „Objekttypen" als Oberbegriff für die Entitätstypen und Hybrid-Typen des vorgegebenen Datenmodells verwendet.

  • a) Der Kopplungswert jedes Entitätstyps und jedes Hybrid-Typs wird ermittelt. Der Kopplungswert eines Entitätstyps ET ist die Summe aus – der Anzahl der Assoziationstypen, mit denen der Entitätstyp ET verbunden ist – und der Anzahl der Entitätstypen, die in der Verwandtschaftshierarchie mit dem Entitätstyp ET verbunden sind, also Obertyp oder Untertyp des Entitätstyp ET sind. Der Kopplungswert eines Hybrid-Typs ist gleich dem Kopplungswert des Entitätstyps, der zum Hybrid-Typ gehört.
  • b) Ein Graph mit Knoten und Kanten wird erzeugt. – Für jeden Entitätstyp und jeden Assoziationstyp, der nicht zu einem Hybrid-Typ gehört, wird ein Knoten erzeugt. – Für jeden Hybrid-Typ wird ein Knoten erzeugt, der den Hybrid-Typen sowie den in ihm enthaltenen Entitätstyp und Assoziationstyp repräsentiert. – Für jede Eins-Eins-Verbindung zwischen einem Entitätstyp und einem Assoziationstyp wird eine Kante zwischen den entsprechenden Knoten erzeugt. Gehört beispielsweise der Entitätstyp zu einem Hybrid-Typ und der Assoziationstyp nicht, so wird eine Kante zwischen dem Knoten für den Hybrid-Typen und dem Assoziationstypen erzeugt. – Eine Eins-Eins-Verbindung zwischen einem Entitätstyp und einem Assoziationstyp ist eine Verbindung, für die das folgende festgelegt ist: Jede Entität des Entitätstyps ist mit genau einer Assoziation des Assoziationstyps verbunden, und umgekehrt ist jede Assoziation des Assoziationstyps mit genau einer Entität des Entitätstyps verbunden. – Für Datentypen werden keine Knoten erzeugt.
  • c) Sind zwei Knoten für Hybrid-Typen durch einen Pfad verbunden, also durch eine einzige Kante oder durch eine Abfolge von Kanten und Knoten, so wird die Kante bzw. mindestens eine Kante des Pfads gelöscht. Sind die Knoten durch mehrere Pfade miteinander verbunden, so wird jeweils eine Kante jedes Pfades gelöscht. Dieser Schritt führt dazu, daß jede in Schritt g) erzeugte Zusammenhangskomponente höchstens einen Knoten für einen Hybrid-Typen umfaßt.
  • d) Jede Kante zwischen einem Knoten für einen Hybrid-Typ und einem Knoten für einen Objekttypen, der einen Kopplungswert größer 1 hat, wird gelöscht.
  • e) Ist ein Knoten für einen Assoziationstyp oder einen Hybrid-Typ – durch eine erste Kante mit einem ersten Knoten für einen Objekttyp mit einem Kopplungswert größer 1 – und durch eine zweite Kante mit einem zweiten Knoten für einen weiteren Objekttyp mit einem Kopplungswert größer 1 verbunden, so werden die erste und die zweite Kante gelöscht. Dieser Schritt trägt dazu bei, daß eine in Schritt k) erzeugte Klasse nur eine überschaubare Anzahl von Relationstypen besitzt.
  • f) Ist ein Knoten für einen Assoziationstyp durch eine Kante mit einem Knoten für einen ersten Objekttyp mit einem Kopplungswert von 1 verbunden und ist der Assoziationstyp im Datenmodell mit einem zweiten Entitätstyp mit einem Kopplungswert größer 1 verbunden, so wird die Kante gestrichen. Der Knoten für den Assoziationstyp braucht nicht mit dem Knoten für den zweiten Entitätstyp durch eine Kante verbunden zu sein. Der Schritt f) trägt ebenfalls dazu bei, daß eine in Schritt k) erzeugten Klassen nur eine überschaubare Anzahl von Relationstypen besitzt.
  • g) Durch die Schritte b) bis f) ist ein Graph mit jeweils zusammenhängenden Teilgraphen entstanden, so daß die Knoten jedes Teilgraphen untereinander durch Pfade verbunden sind und zwei Knoten verschiedener Teilgraphen nicht durch Pfade verbunden sind. Durch die Erzeugung des Graphen wurden bestimmte Verbindungen zwischen Datenobjekten des Datenmodells ausgewählt – nämlich diejenigen Verbindungen, für die je eine Kante des Graphen im Schritt b) erzeugt und in keinem der Schritte c) bis f) wieder gelöscht wurde. Für jeden Teilgraphen, der mindestens einen Knoten für einen Objekttyp umfaßt, wird eine Zusammenhangskomponente erzeugt. Diese Zusammenhangskomponente besteht aus denjenigen Datenobjekten des Datenmodells, deren Knoten zum Teilgraphen gehören. Gehört ein Hybrid-Typ zur Zusammenhangskomponente, so gehören auch der Entitätstyp und der Assoziationstyp des Hybrid-Typen zur Zusammenhangskomponente. Auch für Teilgraphen, die nur aus einem einzigen Knoten für einen Objekttypen bestehen, wird eine Zusammenhangskomponente erzeugt. Für einen Teilgraphen, der nur Knoten für Assoziationstypen umfaßt, wird keine Zusammenhangskomponente erzeugt. Ein Assoziationstyp kann zu einer Zusammenhangskomponente gehören oder auch nicht. Durch den Schritt c) ist sichergestellt, daß eine Zusammenhangskomponente höchstens einen Hybrid-Typen umfaßt. Für die im Schritt h) ausgewählten Zusammenhangskomponenten werden in den nachfolgenden Schritten Klassen des objektorientierten Datenmodells erzeugt.
  • h) Von den in Schritt g) erzeugten Zusammenhangskomponenten werden einige oder auch alle ausgewählt. Eine Zusammenhangskomponente wird dann ausgewählt, wenn mindestens eine der folgenden Bedingungen erfüllt ist, ansonsten nicht: – Die Zusammenhangskomponente besteht aus mehreren Datenobjekten. – Die Zusammenhangskomponente umfaßt einen Hybrid-Typ. – Die Zusammenhangskomponente besteht aus einem einzigen Datenobjekt, nämlich einem Entitätstypen, entstand also aus einem Teilgraphen mit einem Knoten für einen Entitätstyp als einzigem Knoten. Alle Knoten für Assoziationstypen, mit denen der Entitätstyp im Datenmodell verbunden ist, gehören demnach zu anderen Teilgraphen. Für diesen Entitätstypen gilt mindestens eine der folgenden Bedingungen: – Der Entitätstyp ist im Datenmodell mit einem Assoziationstyp verbunden, der seinerseits mit einem Entitätstyp verbunden ist, der zu einem Hybrid-Typ gehört. – Der Entitätstyp ist im Datenmodell entweder mit gar keinem Assoziationstyp verbunden, oder das Datenmodell umfaßt ausschließlich solche Verbindungen zwischen dem Entitätstypen und Assoziationstypen, die jeweils ein Mitgliedschaftsintervall haben, deren untere Schranke größer gleich 1 ist. – Der Entitätstyp hat in einer Vererbungshierarchie unter Entitätstypen einen Obertypen oder einen Untertypen.
  • i) In jeder ausgewählten Zusammenhangskomponente wird genau ein Objekttyp ausgewählt, nämlich bevorzugt der Objekttyp mit dem größten Kopplungswert. Falls es in einer ausgewählten Zusammenhangskomponente mehrere Objekttypen mit gleich großem Kopplungswert gibt und dieser Kopplungswert der größte in der Zusammenhangskomponente ist, wird einer dieser Objekttypen ausgewählt, beispielsweise derjenige mit dem kürzesten Namen.
  • j) Ein objektorientiertes Datenmodell wird erzeugt, das als „leere Hülle" für die nachfolgenden Schritte fungiert und zunächst keine Klassen und Assoziationstypen besitzt. Der Name dieses objektorientierten Datenmodells ist gleich dem Namen des erfindungsgemäßen Datenmodells.
  • k) Für jede ausgewählten Zusammenhangskomponente, deren ausgewählter Objekttyp ein Entitätstyp ist, wird eine Klasse des objektorientierten Datenmodells erzeugt. Der Name dieser Klasse ist gleich der Name des ausgewählten Entitätstyp. Ist dem ausgewählten Entitätstyp ein Datentyp zugeordnet, so wird dieser Datentyp ein Datentyp der Klasse.
  • l) Für jede Klasse werden wie folgt Attribute erzeugt: – Sei G die ausgewählte Zusammenhangskomponente, für die die Klasse erzeugt wurde. – Für jeden Objekttyp der Zusammenhangskomponente G – außer dem in Schritt i) ausgewählten und als Namensgeber verwendeten – wird ein Attribut der Klasse erzeugt. – Für einen Hybrid-Typ der Zusammenhangskomponente G wird dabei ein abgeleitetes Attribut erzeugt. Ein abgeleitetes Attribut ist eines, dessen Wert aus anderen Attributen, die bereits in das objektorientierte Datenmodell aufgenommen wurden, hergeleitet werden kann. – Für jedes Attribut wird eine Eindeutigkeitsvorschrift erzeugt: Für unterschiedliche Objekte der Klasse nimmt das Attribut verschiedene Werte an. Im Falle eines UML-Modells umfaßt diese Eindeutigkeitsvorschrift die Festlegung, daß das Attribut ein markierter Wert („tagged value") hat.
  • m) Für jede Klasse werden wie folgt zusätzliche Attribute erzeugt: – Sei G die ausgewählte Zusammenhangskomponente, für die die Klasse erzeugt wurde. – Für einen Entitätstyp ET außerhalb der Zusammenhangskomponente G wird dann ein Attribut der Klasse erzeugt, wenn folgende Bedingungen erfüllt sind: – Der Knoten für den Entitätstyp ET ist nicht durch eine Kante mit irgendeinem anderen Knoten des in Schritt g) erzeugten Graphen verbunden, und die Zusammenhangskomponente mit dem Entitätstypen ET als einzigem Datenobjekt wurde in Schritt h) nicht ausgewählt. – Mindestens ein Assoziationstyp AT der Zusammenhangskomponente G ist im erfindungsgemäßen Datenmodell einerseits mit dem ausgewählten Objekttyp OT der Zusammenhangskomponente G verbunden, andererseits mit dem Entitätstypen ET. – Ist der Entitätstyp, für den ein Attribut der Klasse erzeugt wurde, im Datenmodell mit einem Datentyp verbunden, so wird dieser Datentyp auch der des Attributs. – Das Mitgliedschaftsintervall der Verbindung zwischen dem Objekttypen OT und dem Assoziationstypen AT wird verwen det, um festzulegen, ob das Attribut vektorwertig ist, d. h. ob jeder Wert des Attributs ein Vektor mit mehreren Vektorelementen ist.
  • n) Für jeden Assoziationstyp AT, der zu keiner ausgewählten Zusammenhangskomponente gehört, werden folgende Schritte durchgeführt: – Die Objekttypen, mit denen der Assoziationstyp AT verbunden ist, werden ermittelt. – Die ausgewählten Zusammenhangskomponenten, zu denen diese Objekttypen gehören, werden ermittelt. – Die Klassen, die für diese ausgewählten Zusammenhangskomponenten erzeugt wurden, werden ermittelt. – Wenn diese Klassen nicht alle identisch sind, wird ein Relationstyp Rel zwischen diesen Klassen als Bestandteil des objektorientierten Datenmodells erzeugt. – Der Relationstyp Rel ist eine Verbindung zwischen diesen Klassen. Er hat einen Namen sowie pro Klasse, die mit dem Relationstyp Rel verbunden ist, eine Rolle und eine minimale und maximale Objekte-Anzahl. Die minimale und die maximale Objekte-Anzahl legen fest, wie viele Objekte der Klasse mit einer Relation des Relationstypen mindestens bzw. höchstens verbunden sein dürfen. Der Name von Rel ist gleich dem Namen des Assoziationstyps AT. Die Rollen der Verbindungen des Assoziationstyps AT werden die Rollen des Relationstypen Rel. Aus einer unteren und einer oberen Schranke im Mitgliedschaftsintervall der Verbindung des Assoziationstypen AT werden eine untere und eine obere Schranke im Mitgliedschaftsintervall des Relationstypen Rel.
  • o) Für jeden Assoziationstyp AT, der zu einer ausgewählten Zusammenhangskomponente G gehört, werden folgende Schritte durchgeführt: – Die Klasse K, die für die Zusammenhangskomponente G erzeugt wurde, wird ermittelt. – Die Objekttypen, die zu anderen ausgewählten Zusammenhangskomponenten gehören und mit denen der Assoziationstyp AT im Datenmodell verbunden ist, werden ermittelt. – Die Klassen K_1,..., K_n, die für diese anderen Zusammenhangskomponenten erzeugt wurde, werden ermittelt. – Falls der Assoziationstyp AT zu einem Hybrid-Typ gehört, der in der Zusammenhangskomponente G ausgewählt wurde, so wird für die Zusammenhangskomponente G eine Relations-Klasse K erzeugt. Der Name dieser Relations-Klasse K ist gleich der Name des ausgewählten Hybrid-Typs. Diese Relations-Klasse K wird durch je eine Verbindung mit den Klassen K_1,..., K_n verbunden. Analog zu Schritt n) werden Rolle, minimale und maximale Objekte-Rnzahl der Verbindung festgelegt. – Ansonsten wird ein Relationstyp zwischen der Klasse K und den Klassen K_1,..., K_n erzeugt. Wie in Schritt n) werden Rolle, minimale und maximale Objekte-Anzahl des Relationstyp festgelegt.
  • p) Falls ein Entitätstyp ET in Schritt l) oder m) in mehreren Klassen als jeweils ein Attribut aufgenommen wurde, so werden Abhängigkeitsbeziehungen zwischen diesen Attributen erzeugt. Durch die Zuweisung eines Wertes an eines dieser Attribute wird automatisch jedem dieser Attribute derselbe Wert zugewiesen. Dies wird für den Fall erläutert, daß das objektorientierte Datenmodell ein UML-Modell ist. – Falls der Entitätstyp ET im Datenmodell eine Verbindung mit einem Assoziationstyp besitzt, wobei das Mitgliedschaftsintervall der Verbindung die untere Schranke 0 besitzt, so erhalten die Attribute ein sogenanntes Stereotyp „foreign source". – Ansonsten erhalten die Attribute die Festlegung, daß ihre Werte automatisch synchronisiert werden sollen („synchronize").
  • q) Um die Anzahl der Klassen zu verringern, werden weitere Klassen zu Attributen gemacht. Dies geschieht vorzugsweise wie folgt: Ermittelt wird jede Klasse K, die folgende Eigenschaften besitzt: – Die Klasse K besitzt kein oder genau ein Attribut Att. – Die Klasse ist durch keinen Relationstyp Rel mit anderen Klassen so verbunden, daß die minimale Objekte-Anzahl des Relationstyps bezüglich jeder der anderen Klasse gleich 0 ist. – Die Klasse K ist durch einen Relationstyp Rel mit n anderen Klassen so verbunden, daß die minimale Objekte-Anzahl des Relationstyps bezüglich jeder der n anderen Klasse größer gleich 1 ist. Begonnen wird vorzugsweise mit n = 1, dann folgt n = 2 und so fort. Ein der Klasse K und/oder dem Attribut der Klasse K entsprechendes Attribut Att jeder dieser n anderen Klassen wird erzeugt. Diese n Attribute werden mit einer Abhängigkeitsbeziehung wie in Schritt p) versehen. Die Klasse K und jeder Relationstyp, durch die K mit genau einer anderen Klasse verbunden ist, werden gelöscht. Sei K_1 eine Klasse, die durch der Relationstyp Rel mit K verbunden ist. Seien l und u die minimale bzw. maximale Objekte-Anzahl von Rel bezüglich K. Das erzeugte Attribut von K_1 wird ein vektorwertiges Attribut, d. h. ein Vektor mit mehreren Werten. Für diesen Vektor werden minimale und maximale Anzahl der Elemente erzeugt. – Falls das Attribut Att von K kein vektorwertiges Attribut ist, so ist 1 die minimale und u die maximale Elemente-Anzahl des Attributs. – Falls das Attribut Att von K ein vektorwertiges Attribut mit m_1 als minimale und m_2 als maximale Elemente- Anzahl des Attributs Att von K ist, so ist 1*m_1 die minimale und u*m_2 die maximale Elemente-Anzahl des Attributs Att von K_1.
  • r) Eine Vererbungshierarchie unter den Klassen wird aus einer Vererbungshierarchie unter den Objekttypen des Datenmodells abgeleitet. Falls OT_1 im erfindungsgemäßen Datenmodell Untertyp von OT_2 ist und OT_1 zur Klasse K_1 und OT_2 zur Klasse K_2 gehören, so wird K_1 Unterklasse von K_2.
  • s) Ergänzend oder alternativ zum Schritt r) werden Oberklassen und eine Vererbungshierarchie erzeugt. Der im folgenden beschriebene Schritt läßt sich auch dann durchführen, wenn das Datenmodell keine Vererbungshierarchie umfaßt. Die Oberklassen werden in Abhängigkeit von den Attributen der bereits erzeugten Klassen erzeugt, wobei das Distributivgesetz für Mengen auf die Menge der Attribute angewendet wird. Die Oberklassen werden je nach Ausführungsform des Schrittes so erzeugt, daß die breiteste oder die tiefste Vererbung von Attributen durchgeführt wird. Weiterhin wird festgelegt, ob eine Klasse von mehreren Oberklassen Attribute und/oder Attributwerte erben kann (Mehrfachvererbung, „multiple inheritance") oder von höchstens einer Oberklasse erbt („single inheritance").
In a preferred embodiment, the method according to the invention comprises the steps described below. The default is a data model with entity types and association types. abbreviated In the following, the terms "data model" are used for the given data model with entity types and association types and "object types" as the generic term for the entity types and hybrid types of the given data model.
  • a) The coupling value of each entity type and each hybrid type is determined. The coupling value of an entity type ET is the sum of - the number of association types to which the entity type ET is connected - and the number of entity types that are linked to the entity type ET in the relationship hierarchy, that is, the top type or subtype of the entity type ET. The coupling value of a hybrid type is equal to the coupling value of the entity type belonging to the hybrid type.
  • b) A graph with nodes and edges is created. - For each entity type and each association type that does not belong to a hybrid type, a node is created. - For each hybrid type, a node is created that represents the hybrid types as well as the entity type and association type they contain. For each one-to-one connection between an entity type and an association type, an edge is created between the corresponding nodes. For example, if the entity type is a hybrid type and the association type is not, an edge is created between the node for the hybrid type and the association type. - A one-to-one connection between an entity type and an association type is a connection for which the following is defined: Each entity of the entity type is associated with exactly one association type association and, conversely, each association is associated with exactly one entity type entity connected. - No nodes are created for data types.
  • c) If two nodes for hybrid types are connected by a path, ie by a single edge or by a sequence of edges and nodes, then the edge or at least one edge of the path is deleted. If the nodes are connected by several paths, one edge of each path is deleted. This step causes each connected component generated in step g) to comprise at most one node for a hybrid type.
  • d) Each edge between a node for a hybrid type and a node for an object type that has a coupling value greater than 1 is deleted.
  • e) Is a node for an association type or a hybrid type - connected by a first edge with a first node for an object type with a coupling value greater than 1 - and by a second edge with a second node for another object type with a coupling value greater than 1 , the first and second edges are deleted. This step helps to ensure that a class generated in step k) has only a manageable number of relation types.
  • f) If a node for an association type is connected by an edge to a node for a first object type with a coupling value of 1 and the association type in the data model is connected to a second entity type with a coupling value greater than 1, the edge is deleted. The node for the association type need not be connected to the node for the second entity type by an edge. The step f) also contributes to the fact that a class generated in step k) has only a manageable number of relation types.
  • g) Through the steps b) to f), a graph has been created, each with contiguous subgraphs, so that the nodes of each subgraph are interconnected by paths and two nodes of different subgraphs are not connected by paths. Through the generation of the graph, certain connections between data objects of the data model were selected - namely those compounds for which one edge of the graph was generated in step b) and was not deleted again in any of steps c) to f). For each subgraph that contains at least one node for an object type, a connected component is created. This connected component consists of the data objects of the data model whose nodes belong to the subgraph. If a hybrid type belongs to the connected component, the entity type and the association type of the hybrid type also belong to the connected component. Even for subgraphs that only consist of a single node for an object type, a connected component is created. For a subgraph that includes only nodes for association types, no connected component is created. An association type may or may not belong to a connected component. The step c) ensures that a connected component comprises at most one hybrid type. For the context components selected in step h), classes of the object-oriented data model are generated in the subsequent steps.
  • h) Some or all of the connected components generated in step g) are selected. A connected component is selected if at least one of the following conditions is met, otherwise not: - The connected component consists of several data objects. The connected component comprises a hybrid type. - The connected component consists of a single data object, namely an entity type, thus resulting from a subgraph with a node for an entity type as the only node. All nodes for association types to which the entity type is linked in the data model therefore belong to other subgraphs. At least one of the following conditions applies to this entity type: - The entity type in the data model is associated with an association type, which in turn is associated with an entity type that belongs to a hybrid type. - The entity type is either not associated with any association type in the data model, or the data model includes only those connections between the entity types and association types, each having a membership interval whose lower bound is greater than or equal to 1. - In an inheritance hierarchy, the entity type has entity types or subtypes among entity types.
  • i) In each selected context component, exactly one object type is selected, namely preferably the object type with the largest coupling value. If there are several object types with the same large coupling value in a selected connected component and this coupling value is the largest in the connected component, one of these object types is selected, for example the one with the shortest name.
  • j) An object-oriented data model is generated which acts as an "empty shell" for the subsequent steps and initially has no classes and association types The name of this object-oriented data model is the same as the name of the data model according to the invention.
  • k) For each selected context component whose selected object type is an entity type, a class of the object-oriented data model is generated. The name of this class is equal to the name of the selected entity type. If a data type is assigned to the selected entity type, this data type becomes a data type of the class.
  • l) For each class, attributes are generated as follows: Let G be the selected context component for which the class was generated. - For each object type of the connected component G - except that selected in step i) and used as namesake - an attribute of the class is generated. For a hybrid type of the connected component G, a derived attribute is generated. A derived attribute is one whose value can be derived from other attributes already included in the object-oriented data model. - A uniqueness rule is generated for each attribute: For different objects of the class, the attribute assumes different values. In the case of a UML model, this uniqueness requirement includes determining that the attribute has a tagged value.
  • m) Additional attributes are generated for each class as follows: - Let G be the selected connected component for which the class was created. An attribute of the class is then generated for an entity type ET outside the connected component G if the following conditions are met: The entity type node ET is not connected by an edge to any other node of the graph generated in step g), and the Correlated component with entity type ET as the only data object was not selected in step h). At least one association type AT of the connected component G is connected in the data model according to the invention, on the one hand, to the selected object type OT of the connected component G, and on the other hand to the entity type ET. - If the entity type for which an attribute of the class was created is linked to a data type in the data model, then this data type also becomes that of the attribute. The membership interval of the connection between the object type OT and the association type AT is used to determine whether the attribute is vector-valued, ie whether each value of the attribute is a vector with several vector elements.
  • n) For each association type AT that does not belong to a selected context component, the following steps are performed: - The object types to which the association type AT is connected are determined. - The selected context components to which these object types belong are determined. - The classes generated for these selected context components are determined. - If these classes are not all identical, a Rel Relation type is created between these classes as part of the object-oriented data model. - Relation type Rel is a connection between these classes. It has a name and per class, which is connected to the relation type Rel, a role and a minimum and maximum number of objects. The minimum and maximum number of objects determine how many objects of the class may be connected to a relation of the relation type at least or at most. The name of Rel is equal to the name of the association type AT. The roles of the associations of the association type AT become the roles of the relation type Rel. From a lower and an upper bound in the membership interval of the association of the association type AT, a lower and an upper bound in the membership interval of the relation type Rel.
  • o) For each association type AT belonging to a selected connected component G, the following steps are performed: The class K generated for the connected component G is determined. - The object types that belong to other selected context components and to which the association type AT is connected in the data model are determined. The classes K_1, ..., K_n generated for these other connected components are determined. If the association type AT belongs to a hybrid type selected in the context component G, a relation class K is generated for the connected component G. The name of this relation class K is equal to the name of the selected hybrid type. This relation class K is connected by a connection with the classes K_1, ..., K_n. Analogous to step n), the role, minimum and maximum number of objects of the connection are defined. Otherwise, a relation type is generated between the class K and the classes K_1,..., K_n. As in step n), the role, minimum and maximum number of objects of the relation type are specified.
  • p) If an entity type ET in step l) or m) was included as a single attribute in several classes, dependency relationships between these attributes are generated. Assigning a value to one of these attributes automatically assigns each of these attributes the same value. This is explained in case the object-oriented data model is a UML model. If the entity type ET in the data model has a connection with an association type, where the membership interval of the connection has the lower bound 0, the attributes receive a so-called stereotype "foreign source." Otherwise, the attributes are given the definition that their values are synchronized automatically should be ("synchronize").
  • q) To reduce the number of classes, additional classes are made attributes. This is preferably done as follows: Each class K is determined, which has the following properties: - The class K has no or exactly one attribute att. - The class is not connected to other classes by means of a relation type Rel such that the minimum number of objects of the class Relation type is equal to 0 with respect to each other class. The class K is connected by a relation type Rel with n other classes such that the minimum number of objects of the relation type with respect to each of the n other classes is greater than or equal to 1. It is preferable to start with n = 1, then n = 2 and so on. An attribute Att of each of these n other classes corresponding to the class K and / or the attribute of the class K is generated. These n attributes are provided with a dependency relationship as in step p). The class K and any relation type that links K to exactly one other class will be deleted. Let K_1 be a class that is connected to K by the relation type Rel. Let l and u be the minimum and maximum number of objects of Rel, respectively. The generated attribute of K_1 becomes a vector-valued attribute, ie, a multi-valued vector. For this vector minimum and maximum number of elements are generated. - If the attribute Att of K is not a vector-valued attribute, then 1 is the minimum and u is the maximum number of elements of the attribute. If the attribute Att of K is a vector-valued attribute with m_1 as minimum and m_2 as maximum element number of the attribute Att of K, then 1 * m_1 is the minimum and u * m_2 is the maximum element number of the attribute Att of K_1.
  • r) An inheritance hierarchy among the classes is derived from an inheritance hierarchy among the object types of the data model. If OT_1 in the data model according to the invention is subtype of OT_2 and OT_1 belongs to class K_1 and OT_2 belongs to class K_2, then K_1 becomes subclass of K_2.
  • s) In addition or as an alternative to step r), superclasses and an inheritance hierarchy are generated. The step described below can be performed even if the data model does not include an inheritance hierarchy. The superclasses are created depending on the attributes of the already created classes, whereby the distributive law for sets is applied to the set of attributes. The superclasses are generated, depending on the embodiment of the step, so that the widest or lowest inheritance of attributes is performed. Furthermore, it is determined whether a class of several superclasses can inherit attributes and / or attribute values (multiple inheritance) or of at most one superclass ("single inheritance").

Die automatische Erzeugung von Oberklassen in Schritt s) wird an drei Beispielen erläutert.The automatic generation of superclasses in step s) will be explained in three examples.

Im ersten Beispiel, das durch 2 illustriert wird, sind die Klassen 100 .20 (K_1) und 100.21 (K_2) im Schritt k) erzeugt worden. Die Klasse 100 .20 (K_1) hat die Attribute 800 .a, 800.b und 800.c. Die Klasse 100 .21 (K_2) hat die Attribute 800.a, 800.d und 800.e. Eine Klasse 100 .30 (K_x) mit dem Attribut 800.a wird erzeugt. Die Klassen 100 .20 (K_1) und 100.21 (K_2) werden zu Klassen 100 .24 (K_1') und 100.23 (K_2') abgewandelt, die nur die Attribute 800.b und 800.c bzw. die Attribute 800.d und 800.e haben. Die Klasse 100 .30 (K_x) ist Oberklasse von 100.24 (K_1') und 100.23 (K_2').In the first example, that through 2 Illustrated are the classes 100 .20 (K_1) and 100.21 (K_2) in step k). The class 100 .20 (K_1) has the attributes 800 .a . 800.b and 800.c , The class 100 .21 (K_2) has the attributes 800 .a, 800.d and 800.e , A class 100 .30 (K_x) with the attribute 800 .a is generated. The classes 100 .20 (K_1) and 100.21 (K_2) become classes 100 .24 (K_1 ') and 100.23 (K_2 ') modified only the attributes 800 , b and 800.c or the attributes 800 , d and 800.e to have. The class 100 .30 (K_x) is upper class of 100.24 (K_1 ') and 100.23 (K_2 ').

Im zweiten Beispiel, das durch 3 illustriert wird, sind die Klassen 100.20 (K_1), 100.21 (K_2) und 100.22 (K_3) im Schritt k) erzeugt worden. Die Klasse 100 .20 (K_1) hat die Attribute 800.a, 800.b und 800.c. Die Klasse 100.21 (K_2) hat die Attribute 800.a, 800.b und 800.d. Die Klasse 100.22 (K_3) hat die Attribute 800.a, 800.e und 800.f. Im zweiten Beispiel wird durch zwei Schritte eine tiefe Vererbungshierarchie, nämlich eine mit mehr als zwei Stufen, erzeugt.

  • – Im ersten Schritt wird eine Klasse 100.36 (K_x) mit den Attributen 800.a und 800.b erzeugt. Die Klassen 100.20 (K_1) und 100.21 (K_2) werden zu Klassen 100.25 (K_1') und 100.26 (K_2') abgewandelt, die nur die Attribute 800.c bzw. 800.d haben. 100.22 (K_3) bleibt im ersten Schritt unverändert. 100.36 (K_x) ist Oberklasse von 100.25 (K_1') und 100.26 (K_2').
  • – Im zweiten Schritt wird eine Klasse 100.31 (K_y) mit dem Attribut 800.a erzeugt. Die Klassen 100.36 (K_x) und 100.22 (K_3) werden zu Klassen 100.32 (K_x') und 100.27 (K_3') abgewandelt, die nur die Attribute 800.b bzw. 800.e und 800.f haben. 100.31 (K_y) ist Oberklasse von 100.32 (K_x') und 100.27 (K_3').
In the second example, that by 3 Illustrated are the classes 100 , 20 (K_1) 100.21 (K_2) and 100.22 (K_3) in step k). The class 100 .20 (K_1) has the attributes 800 .a, 800.b and 800.c , The class 100 , 21 (K_2) has the attributes 800 .a, 800.b and 800.d , The class 100 , 22 (K_3) has the attributes 800 .a, 800.e and 800.f , In the second example, two steps create a deep inheritance hierarchy, one with more than two levels.
  • - In the first step becomes a class 100 , 36 (K_x) with the attributes 800 .a and 800.b generated. The classes 100 , 20 (K_1) and 100.21 (K_2) become classes 100 , 25 (K_1 ') and 100.26 (K_2 ') modified only the attributes 800 .c or 800.d to have. 100.22 (K_3) remains unchanged in the first step. 100.36 (K_x) is upper class of 100.25 (K_1 ') and 100.26 (K_2 ').
  • - In the second step becomes a class 100 , 31 (K_y) with the attribute 800 .a generated. The classes 100 , 36 (K_x) and 100.22 (K_3) become classes 100 , 32 (K_x ') and 100.27 (K_3 ') modified only the attributes 800 , b respectively. 800.e and 800.f to have. 100.31 (K_y) is upper class of 100.32 (K_x ') and 100.27 (K_3 ').

Im dritten Beispiel, das durch 4 illustriert wird, wird von den Klassen 100.20 (K_1), 100.21 (K_2) und 100.22 (K_3) des zweiten Beispiels ausgegangen. Im zweiten Beispiel wird durch einen einzigen Schritt eine breite Vererbungshierarchie erzeugt. Eine Klasse 100 .33 (K_x) mit dem Attribut 800.b und eine Klasse 100.31 (K_y) mit dem Attribut 800.a werden erzeugt. Die Klassen 100.20 (K_1), 100.21 (K_2) und 100.22 (K_3) werden zu Klassen 100.25 (K_1'), 100.26 (K_2') und 100.27 (K_3') abgewandelt, die nur die Attribute 800.c, 800.d bzw. 800.e und 800.f haben. 100.31 (K_y) ist Oberklasse von 100.25 (K_1'), 100.26 (K_2') und 100. 27 (K_3'). 100.33 (K_x) ist Oberklasse von 100.25 (K_1') und von 100.26 (K_2'). Im dritten Beispiel tritt also eine Mehrfach-Vererbung auf, d. h. eine Klasse kann mehrere Oberklassen haben. 100.25 (K_1'), 100.26 (K_2') und 100.27 (K_3') haben jeweils zwei Oberklassen.In the third example, that by 4 is illustrated by the classes 100 , 20 (K_1) 100.21 (K_2) and 100.22 (K_3) of the second example. In the second example, a single step creates a broad inheritance hierarchy. A class 100 .33 (K_x) with the attribute 800 .b and a class 100 , 31 (K_y) with the attribute 800 .a are generated. The classes 100 , 20 (K_1) 100.21 (K_2) and 100.22 (K_3) become classes 100 , 25 (K_1 '), 100.26 (K_2 ') and 100.27 (K_3 ') modified only the attributes 800 , c . 800.d respectively. 800.e and 800.f to have. 100.31 (K_y) is upper class of 100.25 (K_1 '), 100.26 (K_2 ') and 100. 27 (K_3 '). 100.33 (K_x) is upper class of 100.25 (K_1 ') and from 100.26 (K_2 '). In the third example, a multiple inheritance occurs, ie a class can have several superclasses. 100.25 (K_1 '), 100.26 (K_2 ') and 100.27 (K_3 ') each have two superclasses.

Das gerade beschriebene Verfahren, durch das aus einem Datenmodell mit Entitätstypen und Assoziationstypen ein objektorientiertes Datenmodell erzeugt wird, wird am Beispiel des Datenmodells der 1 erläutert.The method just described, by means of which an object-oriented data model is generated from a data model with entity types and association types, is described using the example of the data model of FIG 1 explained.

5 zeigt das Datenmodell nach Durchführung des Schritts a). Die Kopplungswerte KW der Entitätstypen und Hybrid-Typen sind in 5 eingetragen. Der Hybrid-Typ 30.1 (Eigentums-Verhältnis) hat den Kopplungswert 3, weil der Entitätstyp des Hybrid-Typs 30.1 mit drei Assoziationstypen verbunden ist und daher seinerseits den Kopplungswert 3 hat. Der Entitätstyp 10.2 (Halter) hat den Kopplungswert 2, weil er mit dem Assoziationstyp des Hybrid-Typs 30.1 verbunden ist und einen Obertyp besitzt, nämlich den Entitätstyp 10.6 (Unternehmen). 5 shows the data model after performing step a). The coupling values KW of the entity types and hybrid types are in 5 entered. The hybrid type 30.1 (Ownership ratio) has the coupling value 3 because of the entity type of the hybrid type 30.1 is associated with three types of association and therefore in turn the coupling value 3 Has. The entity type 10.2 (Holder) has the coupling value 2 because he is with the association type of the hybrid type 30.1 is connected and has an upper type, namely the entity type 10.6 (Companies).

6 zeigt den Graphen, der nach Ausführung des Schritts b) entstanden ist. Nur für Eins-Eins-Verbindungen wurden Kanten erzeugt. Für den Datentypen 40.1 (Währungsbetrag") wird kein Knoten und daher später keine Klasse des objektorientierten Datenmodells erzeugt. 6 shows the graph that emerged after the execution of step b). Edges were created only for one-to-one connections. For the data types 40.1 (Currency amount "), no node and therefore no class of the object-oriented data model is generated later.

Die Schritte c) und d) verändern diesen Graphen nicht. Denn das Datenmodell umfaßt nur einen einzigen Hybrid-Typen, und eine Kante zwischen einem Knoten für einen Hybrid-Typen und einem Knoten für einen Objekttypen mit einem Kopplungswert größer 1 existiert nicht.Steps c) and d) change this Graphene not. Because the data model includes only a single hybrid type, and an edge between a node for a hybrid type and a node Node for An object type with a coupling value greater than 1 does not exist.

Auch der Schritt e) verändert den Graphen nicht.Step e) also changes the Graphene not.

In Schritt f) treffen die Voraussetzungen auf den Assoziationstyp 20.3 (Kennzeichnung) zu. Daher wird die Kante zwischen dem Knoten für den Assoziationstypen 20.3 („Kennzeichnung") und dem Knoten für den Entitätstypen 10.3 („Fahrgestell-Nummer") gelöscht.In step f), the requirements apply to the association type 20.3 (Marking). Therefore, the edge between the node for the association type 20.3 ("Labeling") and the node for the entity 10.3 ("Chassis number") deleted.

In Schritt g) werden Zusammenhangskomponenten 90.1,..., 90.n dergestalt erzeugt, daß jede Zusammenhangskomponente einen Knoten für einen Objekttyp umfaßt. Diese Zusammenhangs komponenten zeigt 7. Jede Zusammenhangskomponente ist durch ein Rechteck mit gerundeten Ecken und gepunkteter Umrandung angedeutet. Der Assoziationstyp 20.2 („Radsatz") und der Datentyp 40.1 („Währungsbetrag") gehören zu keiner Zusammenhangskomponente.In step g) become connected components 90.1 , ..., 90.n such that each connected component includes a node for an object type. This related component shows 7 , Each connected component is indicated by a rectangle with rounded corners and dotted border. The association type 20.2 ("Wheelset") and the data type 40.1 ("Currency amount") are not part of any related component.

In Schritt h) werden folgende Zusammenhangskomponenten ausgewählt:

  • – Die Zusammenhangskomponente 90.1 mit dem Entitätstypen 10.1 („Auto") wird ausgewählt, weil sie aus mehreren Datenobjekten besteht.
  • – Die Zusammenhangskomponente 90.2 mit dem Entitätstypen 10.3 („Fahrgestell-Nummer") wird ausgewählt. Das Datenmodell umfaßt nämlich eine einzige Verbindung zwischen dem Entitätstypen 10.3 und Assoziationstypen, nämlich die Verbindung mit dem Assoziationstypen 20.3 („Kennzeichnung"). Das Mitgliedschaftsintervall 60.5 dieser Verbindung hat den Wert „1:1", die untere Schranke ist also größer gleich 1.
  • – Die Zusammenhangskomponente 90.3 mit dem Entitätstypen 10.4 („Autorad") wird nicht ausgewählt. Das Datenmodell umfaßt nämlich eine Verbindung zwischen dem Entitätstypen 10.4 und dem Assoziationstypen 20.2 („Radsatz"), dessen Mitgliedschaftsintervall 60.8 den Wert „0:1" hat, also eine untere Schranke gleich 0.
  • – Die Zusammenhangskomponente 90.4 mit dem Hybrid-Typen 30.1 („Eigentums-Verhältnis") wird ausgewählt, weil sie einen Hybrid-Typen umfaßt.
  • – Die Zusammenhangskomponente 90.5 mit dem Entitätstypen 10.7 („Preis") wird ausgewählt. Das Datenmodell umfaßt nämlich eine einzige Verbindung zwischen dem Entitätstypen 10.7 und Assoziationstypen, nämlich die Verbindung mit dem Assoziationstypen 20.4 („Kaufpreis"). Das Mitgliedschaftsintervall 60.10 dieser Verbindung hat den Wert „1:n" ", die untere Schranke ist also größer gleich 1.
  • – Die Zusammenhangskomponente 90.6 mit dem Entitätstypen 10.6 („Unternehmen") wird ausgewählt, weil der Entitätstyp 10.6 einen Untertyp besitzt, nämlich den Entitätstypen 10.2 („Halter").
  • – Die Zusammenhangskomponente 90.7 mit dem Entitätstypen 10.2 („Halter") wird ausgewählt, weil der Entitätstyp 10.2 einen Obertyp besitzt, nämlich den Entitätstypen 10.6 („Unternehmen").
  • – Die Zusammenhangskomponente 90.8 mit dem Entitätstypen 10.5 („Kaufvertrag") wird ausgewählt, weil sie aus mehreren Datenobjekten besteht.
In step h), the following compound components are selected:
  • - The connected component 90.1 with the entity types 10.1 ("Auto") is selected because it consists of multiple data objects.
  • - The connected component 90.2 with the entity types 10.3 ("Chassis number") is selected because the data model includes a single connection between the entity types 10.3 and association types, namely the association with the association type 20.3 ("Labeling"). The membership interval 60.5 this connection has the value "1: 1", so the lower bound is greater than or equal to 1.
  • - The connected component 90.3 with the entity types 10.4 ("Car wheel") is not selected because the data model includes a connection between the entity types 10.4 and the association types 20.2 ("Wheelset"), whose membership interval 60.8 has the value "0: 1", ie a lower bound equal to 0.
  • - The connected component 90.4 with the hybrid types 30.1 ("Property Ratio") is selected because it includes a hybrid type.
  • - The connected component 90.5 with the entity types 10.7 ("Price") is selected because the data model includes a single connection between the entity types 10.7 and association types, namely the association with the association type 20.4 ("Purchase price"). The membership interval 60 .10 of this connection has the value "1: n"", so the lower bound is greater than or equal to 1.
  • - The connected component 90.6 with the entity types 10.6 ("Company") is selected because of the entity type 10.6 has a subtype, the entity types 10.2 ("Holder").
  • - The connected component 90.7 with the entity types 10.2 ("Holder") is selected because of the entity type 10.2 has an upper type, namely the entity types 10.6 ("Companies").
  • - The connected component 90.8 with the entity types 10.5 ("Purchase Agreement") is selected because it consists of multiple data objects.

8 zeigt die ausgewählten Zusammenhangskomponenten in Form von Rechtecken mit durchgezogenen Linien. Die Objekttypen, die in den ausgewählten Zusammenhangskomponenten im Schritt i) ausgewählt wurden, sind durch Unterstreichung dargestellt. 8th shows the selected connected components in the form of rectangles with solid lines. The object types selected in the selected context components in step i) are underlined.

Die Objekt-Klassen, die in Schritt k) erzeugt wurden, sind in 9 dargestellt. Die Klasse 100.7 („Preis") erhält den Datentyp 400.1 („Währungsbetrag").The object classes created in step k) are in 9 shown. The class 100.7 ("Price") receives the data type 400.1 ( "Currency Amount").

In Schritt 1) werden keine Attribute erzeugt, weil keine ausgewählte Zusammenhangskomponente mehrere Entitätstypen umfaßt.In step 1) will not be attributes generated because no selected Connected component comprises several entity types.

9 zeigt zusätzlich das einzige Attribut, das in Schritt m) erzeugt wurde. Die Klasse 100.1 („Auto") erhält ein Attribut 800.2 („Autorad"). Dieses Attribut stammt von dem Entitätstypen 10.4 (Autorad). Dieser gehört nicht zu einer ausgewählten Zusammenhangskomponente. Der Assoziationstyp 20.2 („Radsatz") ist mit dem Entitätstypen 10.4 sowie mit dem Entitätstyp 10.1 („Auto") verbunden. Der Entitätstyp 10.1 gab der Klasse 100.1 ihren Namen. Das Mitgliedschaftsintervall 60.7 der Verbindung zwischen dem Entitätstypen 10.1 („Auto") und dem Assoziationstyp 20.2 (Radsatz) wird verwendet, um festzulegen, daß das Attribut vektorwertig ist. Jedes Objekt der Klasse 100.1 hat das Attribut Autorad mindestens viermal und höchstens fünfmal, dies wird aus dem Wert des Mitgliedschaftsintervalls 60.7 abgeleitet. 9 additionally shows the only attribute created in step m). The class 100.1 ("Auto") receives an attribute 800.2 ("Car wheel"). This attribute comes from the entity type 10.4 (Car wheel). It does not belong to a selected context component. The association type 20.2 ("Wheelset") is with the entity types 10.4 as well as with the entity type 10.1 ("Auto"). The entity type 10.1 gave the class 100.1 Your Name. The membership interval 60.7 the connection between the entity types 10.1 ("Car") and the association type 20.2 (Wheelset) is used to specify that the attribute is vector-valued. Every object of the class 100.1 has the Autorad attribute at least four times and at most five times, this is the value of the membership interval 60.7 derived.

In Schritt n) wird kein Relationstyp erzeugt. Denn der einzige Assoziationstyp, der zu keiner ausgewählten Zusammenhangskomponente gehört, ist der Assoziationstyp 20.2 („Radsatz"). Die Objekttypen, die mit dem Assoziationstyp 20.2 verbunden sind, gehören zu derselben Klasse 100.1 („Auto").In step n) no relation type is generated. Because the only type of association that does not belong to a selected context component is the association type 20.2 ("Wheelset"). The object types associated with the association type 20.2 are associated with the same class 100.1 ("Automobile").

In Schritt o), der durch 10 illustriert wird, wird eine Relations-Klasse 300.1 („Eigentums-Verhältnis") für den Hybrid-Typen 30.1 erzeugt. Diese Relations-Klasse wird mit der Klasse 100.8 („Eigentums-Verhältnis") verbunden, denn beide gehen aus demselben Hybrid-Typen 30.1 hervor und haben den gleichen Namen, nämlich den des Hybrid-Typen 30.1. Die Verbindung zwischen der Klasse 100.8 („Eigentums-Verhältnis") und der Klasse 100.5 („Kaufvertrag") erhält die Rolle 500.4 („begründet") und das Mitgliedschaftsintervall 600.4 („1:n") von der Verbindung zwischen dem Entitätstypen 10.5 („Kaufvertrag") und dem Assoziationstypen 20.1 („Kaufvorgang").In step o), by 10 Being illustrated becomes a Relationship class 300.1 ("Property Relationship") for the hybrid types 30.1 generated. This Relations class is using the class 100.8 ("Ownership relationship"), because both are of the same hybrid type 30.1 and have the same name, namely the hybrid type 30.1 , The connection between the class 100.8 ("Property Relationship") and the class 100.5 ("Purchase Agreement") receives the role 500.4 ("Justified") and the membership interval 600.4 ("1: n") of the connection between the entity types 10.5 ("Purchase Agreement") and the association types 20.1 ( "Purchasing process").

Die Relations-Klasse 300.1 übernimmt Rollen und Mitgliedschaftsintervalle von der Verbindung zwischen dem Entitätstyp 10.1 („Auto") und dem Entitätstyp des Hybrid-Typen 30.1(„Eigentums-Verhältnis") einerseits und der Verbindung zwischen dem Entitätstyp des Hybrid-Typen 30.1(„Eigentums-Verhältnis") und dem Entitätstyp 10.2 („Halter") andererseits.The Relations class 300.1 takes over roles and membership intervals from the connection between the entity type 10.1 ("Car") and the entity type of the hybrid type 30.1 ("Ownership relationship") on the one hand, and the connection between the entity type of the hybrid type 30.1 ("Ownership relationship") and the entity type 10.2 ("Holder") on the other hand.

Weiterhin werden in Schritt o) drei Relationstypen für die Assoziationstypen, die zu ausgewählten Zusammenhangskomponenten gehören, erzeugt. Zur Zusammenhangskomponente 90.1 mit dem Entitätstypen 10.1 („Auto") gehört der Assoziationstyp 20.3 („Kennzeichnung"), der mit dem Entitätstypen 10.3 („Fahrgestell-Nummer") verbunden ist. Daher wird ein Relationstyp 200.3 („Kennzeichnung") zwischen den Klassen 100.1 („Auto") und 100.3 („Fahrgestell-Nummer") erzeugt. Rollen und Mitgliedschaftsintervalle werden übernommen. Analog wird für den Assoziationstypen 20.4 („Kaufpreis") der Relationstyp 200.4 („Kaufpreis") zwischen den Klassen 100.5 („Kaufvertrag") und 100.7 („Preis") erzeugt. Für den Assoziationstyp 20.1 wird ein Relationstyp 200.1 („Kaufvertrag") erzeugt. Relations-Klassen und Relations-Typen werden in 10 und 11 mit kursiven Namen gekennzeichnet.Furthermore, in step o), three relation types for the association types belonging to selected ones belong to interconnected components. To the connected component 90.1 with the entity types 10.1 ("Auto") belongs to the association type 20.3 ("Labeling") associated with the entity types 10.3 ("Chassis number"). Therefore, a relation type becomes 200.3 ("Marking") between the classes 100.1 ("Car") and 100.3 ("Chassis number") is generated, roles and membership intervals are taken over, and the same applies to the association type 20.4 ("Purchase price") the relation type 200.4 ("Purchase price") between the classes 100.5 ("Purchase Agreement") and 100.7 ("Price") generated. For the association type 20.1 becomes a relation type 200.1 ("Purchase Agreement") generated. Relationship classes and relation types are in 10 and 11 marked with italics.

Entsprechend der UML-Konvention werden Mitgliedschaftsintervalle in der Form a..b angegeben, wobei a eine natürliche Zahl oder die 0 ist und b eine natürliche Zahl oder * als Symbol für das Fehlen einer oberen Schranke.According to the UML Convention Membership intervals are given in the form a..b, where a is a natural Number or 0 and b is a natural number or * as a symbol for the Absence of an upper bound.

Die Rollen und Mitgliedschaftsintervalle einer Verbindung zwischen Klassen werden ebenfalls gemäß der UML-Konvention eingetragen. Die Rolle einer Klasse in einem Relationstyp ist nahe der Klasse notiert, das Mitgliedschaftsintervall hingegen nahe der anderen Klasse. Beispielsweise ist die Rolle 50.6 („wird identifiziert durch") des Beispiels der 1 nahe des Entitätstypen 10.1 („Auto") eingetragen, die entsprechende Rolle 500.6 des Beispiels der 10 nahe der Klasse 100.1 („Auto"). Die Rolle 50.1 („gehört") des Beispiels der 1 ist nahe des Entitätstypen 10.1 („Auto") eingetragen, die entsprechende Rolle 500.1 („gehört") des Beispiels der 10 nahe der Klasse 100.1 („Auto"). Das Mitgliedschaftsintervall 60.1 („0:1") ist nahe des Entitätstypen 10.1 („Auto") eingetragen, das entsprechende Mitgliedschaftsintervall 600.1 („0..1") nahe der Klasse 100.2 („Halter") der 10. Das Mitgliedschaftsintervall 60.2 („1:n") ist nahe des Entitätstypen 10.2 („Halter") eingetragen, das entsprechende Mitgliedschaftsintervall 600.2 („1..*") nahe der Klasse 100.1 („Auto").The roles and membership intervals of a connection between classes are also entered according to the UML convention. The role of a class in one relation type is listed near the class, but the membership interval is close to the other class. For example, the role 50.6 ("Is identified by") of the example of 1 near the entity types 10.1 ("Car") entered the appropriate role 500.6 of the example of 10 near the class 100.1 ("Car"). The role 50.1 ("Heard") of the example of 1 is close to the entity type 10.1 ("Car") entered the appropriate role 500.1 ("Heard") of the example of 10 near the class 100.1 ("Auto"). The membership interval 60.1 ("0: 1") is close to the entity type 10.1 ("Auto"), the corresponding membership interval 600.1 ("0..1") near the class 100.2 ("Holder") the 10 , The membership interval 60.2 ("1: n") is close to the entity type 10.2 ("Holder"), the corresponding membership interval 600.2 ("1 .. *") near the class 100.1 ("Automobile").

10 zeigt das beispielhafte objektorientierte Datenmodell mit der Relations-Klasse 300.1 und den drei Relationstypen 200.1, 200.3 und 200.4, die in Schritt o) erzeugt wurden. 10 shows the exemplary object-oriented data model with the Relations class 300.1 and the three relation types 200.1 . 200.3 and 200.4 that were generated in step o).

Durch Schritt p) wird das objektorientierte Datenmodell nicht verändert, da kein Entitätstyp in mehreren Klassen als Attribut aufgenommen wurde.By step p) becomes the object-oriented Data model not changed, there is no entity type was added as an attribute in several classes.

In Schritt q) wird zunächst nach einer Klasse K gesucht, die kein Attribut hat und mit einer anderen Klasse durch einen Relationstyp verbunden ist. Dadurch wird die Klasse 100.3 („Fahrgestell-Nummer") ermittelt. Diese Klasse ist ausschließlich mit der Klasse 100.1 („Auto") durch eine Relation verbunden. Um die Anzahl der Klassen zu verringern, wird die Klasse 100.3 zu einem Attribut der Klasse 100.1 gemacht, nämlich dem Attribut 800.1 („Fahrgestell-Nummer"). Da die Objekte-Anzahl 60..6 des Relationstyps 200.3 („Kennzeichnung") den Wert „1:1" hat, ist dieses Attribut kein vektorwertiges.In step q), first a class K is searched for which has no attribute and is connected to another class by a relation type. This will make the class 100.3 ("Chassis number"). This class is exclusive to the class 100.1 ("Car") connected by a relation, to reduce the number of classes the class becomes 100.3 to an attribute of the class 100.1 made, namely the attribute 800.1 ("Chassis number"). Since the objects number 60 .. 6 of the relation type 200.3 ("Label") has the value "1: 1", this attribute is not vector-valued.

Vorzugsweise wird darüber hinaus die Klasse 100.7 (Preis) ermittelt. Sie wird zu einem Attribut der Klasse 100.5 (Kaufvertrag). Der Name dieses Attributs ist gleich dem Namen des Relationstyps 200.4. Der Datentyp dieses Attributs wird aus dem Datentyp der Klasse 100.7 ermittelt, nämlich 400.1 („Währungsbetrag"). Diese Festlegung stammt vom Datentyp 40.1 („Währungsbetrag") des Datenmodells.Preferably, moreover, the class 100.7 (Price) determined. It becomes an attribute of the class 100.5 (Purchase contract). The name of this attribute is the same as the name of the relation type 200.4 , The data type of this attribute is the data type of the class 100.7 determined, namely 400.1 ("Currency amount"). This definition comes from the data type 40.1 ("Currency amount") of the data model.

In Schritt r) wird eine Vererbungshierarchie (Taxonomie) aus dem Datenmodell der 1 übernommen. In diesem Beispiel wird die Klasse 100.6 („Unternehmen") Oberklasse von 100.2 („Halter"), was durch den Pfeil 700.1 dargestellt wird. In Schritt s) werden keine Veränderungen am Datenmodell vorgenommen. 11 zeigt das Endergebnis des erfindungsgemäßen Verfahrens, nämlich ein objektorientiertes Datenmodell, das aus dem Datenmodell der 1 ohne Informationsverlust erzeugt wurde. Im Vergleich zu 10 sind in 11 die beiden Attributen 800.1 („Kaufpreis") und 800.3 („Fahrgestellnummer") ergänzt und die beiden Klassen 100.3 und 100.7 gelöscht, außerdem wurde eine Vererbungs-Beziehung ergänzt. Das Attribut 800.1 („Kaufpreis") ist vom Datentyp „Währungsbetrag".In step r) an inheritance hierarchy (taxonomy) from the data model of the 1 accepted. In this example, the class becomes 100.6 ("Company") upper class of 100.2 ("holder"), which is indicated by the arrow 700.1 is shown. In step s), no changes are made to the data model. 11 shows the end result of the method according to the invention, namely an object-oriented data model, which from the data model of 1 was generated without loss of information. Compared to 10 are in 11 the two attributes 800.1 ("Purchase price") and 800.3 ("VIN") and the two classes 100.3 and 100.7 deleted, and an inheritance relationship has been added. The attribute 800.1 ("Purchase price") is of the data type "Currency amount".

Zusammenfassend betrifft die Erfindung ein Verfahren zur automatischen Erzeugung eines objektorientierten Datenmodells aus einem vorgegebenen Datenmodell. Das vorgegebenen Datenmodell umfaßt Entitätstypen 10.1,10.2,... und Assoziationstypen 20.1,20.2,..., das objektorientierte Datenmodell Klassen 100.1,100.2,..., Attribute 800.1,800.2,... und Relationstypen 200.1,200.2,.... Durch das automatisch ablaufende Verfahren werden Verbindungen zwischen Datenobjekten des vorgegebenen Datenmodells ausgewählt, für zusammenhängende Datenobjekte Zusammenhangskomponenten 90.1,90.2,... erzeugt, aus bestimmten Zusammenhangskomponenten Klassen 100.1,100.2,... erzeugt, und aus bestimmten Assoziationstypen 20.1,20.2,... werden Relationstypen 200.1,200.2,... zwischen Klassen sowie Relations-Klassen 300.1 generiert. Das Verfahren ermöglicht es insbesondere, die Vorteile von Entity-Relationship-Modellen mit denen der Unified Modeling Language (UML) zu kombinieren.In summary, the invention relates to a method for automatically generating an object-oriented data model from a given data model. The given data model includes entity types 10.1 . 10.2 , ... and association types 20.1 . 20.2 , ..., the object-oriented data model classes 100.1 . 100.2 , ..., attributes 800.1 . 800.2 , ... and relation types 200.1 . 200.2 , .... By the automatically running procedure connections between data objects of the given data model are selected, for connected data objects connected components 90.1 . 90.2 , ... generates, from certain connected components classes 100.1 . 100.2 , ..., and certain association types 20.1 . 20.2 , ... become relation types 200.1 . 200.2 , ... between classes as well as relationship classes 300.1 generated. In particular, the method makes it possible to combine the advantages of entity relationship models with those of the Unified Modeling Language (UML).

Bezugszeichenliste

Figure 00270001
LIST OF REFERENCE NUMBERS
Figure 00270001

Figure 00280001
Figure 00280001

Claims (11)

Verfahren zur automatischen Erzeugung eines objektorientierten Datenmodells aus einem vorgegebenen Datenmodell, wobei – die Erzeugung automatisch von einer Datenverarbeitungsanlage durchgeführt wird, – das vorgegebene Datenmodell Datenobjekte umfaßt, – mindestens zwei Datenobjekte Entitätstypen (10.1,10.2,...) sind und mindestens ein Datenobjekt ein Assoziationstyp (20.1,20.2,...) ist, wobei – ein Entitätstyp (10.1,10.2,...) einen Typ realer Objekte repräsentiert – und ein Assoziationstyp (20.1,20.2,...) einen Typ von Zusammenhängen zwischen realen Objekten repräsentiert, – jeder Assoziationstyp (20.1,20.2,...) mit mindestens zwei Entitätstypen (10.1,10.2,...) verbunden ist, – und das objektorientierte Datenmodell Klassen (100.1,100.2,...) und Relationstypen (200.1,200.2,...) zwischen diesen Klassen umfaßt, folgende Schritte umfassend: – Auswählen von Verbindungen zwischen je einem Assoziationstyp (20.1,20.2,...) und einem Entitätstyp (10.1,10.2,...), – Erzeugen von Zusammenhangskomponenten (90.1,90.2,...) dergestalt, daß – jede Zusammenhangskomponente (90.1,90.2,...) mindestens einen Entitätstyp (10.1,10.2,...) umfaßt – und jeder Entitätstyp (10.1,10.2,...) einer Zusammenhangskomponente (90.1,90.2,...) mit jedem Assoziationstyp (20.1,20.2,...) dieser Zusammenhangskomponente (90.1,90.2,...) durch eine ausgewählte Verbindung oder einen Pfad mit ausgewählten Verbindungen verbunden ist, – Auswählen mindestens einer Zusammenhangskomponente (90.1,90.2,...), – Auswählen jeweils eines Entitätstypen (10.1,10.2,...) aus ausgewählten Zusammenhangskomponenten (90.1,90.2,...), – für jeden ausgewählten Entitätstypen (10.1,10.2,...) Erzeugen einer Klasse (100.1,100.2,...) des objektorientierten Modells – und für mindestens einen Assoziationstypen (20.1,20.2,...), der mit zwei Entitätstypen (10.1,10.2,...) verbunden ist, die zu zwei verschiedenen ausgewählten Zusammenhangskomponenten (90.1,90.2,...) gehören, Erzeugen eines Relationstyps (200.1,200.2,...) zwischen denjenigen Klassen (100.1,100.2,...), die für die ausgewählten Entitätstypen (10.1,10.2,...) dieser beiden Zusammenhangskomponenten (90.1,90.2,...) erzeugt wurden.Method for automatically generating an object-oriented data model from a given data model, wherein - the generation is performed automatically by a data processing system, - the given data model comprises data objects, - at least two data object entity types ( 10.1 . 10.2 , ...) and at least one data object is an association type ( 20.1 . 20.2 , ...), where - an entity type ( 10.1 . 10.2 , ...) represents a type of real objects - and an association type ( 20.1 . 20.2 , ...) represents a type of relationships between real objects, - each type of association ( 20.1 . 20.2 , ...) with at least two entity types ( 10.1 . 10.2 , ...), - and the object-oriented data model classes ( 100.1 . 100.2 , ...) and relation types ( 200.1 . 200.2 , ...) between these classes, including the following steps: - selecting links between each association type ( 20.1 . 20.2 , ...) and an entity type ( 10.1 . 10.2 , ...), - generating connected components ( 90.1 . 90.2 , ...) in such a way that - each connected component ( 90.1 . 90.2 , ...) at least one entity type ( 10.1 . 10.2 , ...) - and every entity type ( 10.1 . 10.2 , ...) of a connected component ( 90.1 . 90.2 , ...) with each association type ( 20.1 . 20.2 , ...) this connected component ( 90.1 . 90.2 , ...) is connected to a selected connection or a path with selected connections, - selecting at least one connected component ( 90.1 . 90.2 , ...), - Selecting one entity type each ( 10.1 . 10.2 , ...) from selected connected components ( 90.1 . 90.2 , ...), - for each selected entity type ( 10.1 . 10.2 , ...) Creating a class ( 100.1 . 100.2 , ...) of the object-oriented model - and for at least one association type ( 20.1 . 20.2 , ...), which has two entity types ( 10.1 . 10.2 , ...) connected to two different selected connected components ( 90.1 . 90.2 , ...), generating a relation type ( 200.1 . 200.2 , ...) between those classes ( 100.1 . 100.2 , ...), which are used for the selected entity types ( 10.1 . 10.2 , ...) of these two connected components ( 90.1 . 90.2 , ...) were created. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß den Klassen (100.1,100.2,...) Attribute (800.1,800.2,...) zuordenbar sind und dann, wenn eine ausgewählte Zusammenhangskomponente (90.1,90.2,...) außer dem ausgewählten einen nicht ausgewählten Entitätstypen (10.1,10.2,...) umfaßt, ein Attribut (800.1,800.2,...) derjenigen Klasse (100.1,100.2,...) erzeugt wird, die für den ausgewählten Entitätstypen (10.1,10.2,...) dieser Zusammenhangskomponente (90.1,90.2,...) erzeugt wurde.Method according to claim 1, characterized in that the classes ( 100.1 . 100.2 , ...) attributes ( 800.1 . 800.2 , ...) and then, if a selected connected component ( 90.1 . 90.2 , ...) except the selected one non-selected entity type ( 10.1 . 10.2 , ...), an attribute ( 800.1 . 800.2 , ...) of the class ( 100.1 . 100.2 , ...) generated for the selected entity type ( 10.1 . 10.2 , ...) this connected component ( 90.1 . 90.2 , ...) was created. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß den Klassen (100.1,100.2,...) Attribute (800.1,800.2,...) zuordenbar sind und dann, wenn das Datenmodell einen Assoziationstypen (20.1,20.2,...) umfaßt, der – mit einem Entitätstypen (10.1,10.2,...) einer ausgewählten Zusammenhangskomponente (90.1,90.2,...) – und mit einem Entitätstypen (10.1,10.2,...), der zu keiner Zusammenhangskomponente (90.1,90.2,...) gehört, verbunden ist, ein Attribut (800.1,800.2,...) derjenigen Klasse (100.1,100.2,...) erzeugt wird, die für den ausgewählten Entitätstypen (10.1,10.2,...) dieser Zusammenhangskomponente (90.1,90.2,...) erzeugt wurde.Method according to Claim 1 or Claim 2, characterized in that the classes ( 100.1 . 100.2 , ...) attributes ( 800.1 . 800.2 , ...) and then, if the data model is an association type ( 20.1 . 20.2 , ...), which - with an entity type ( 10.1 . 10.2 , ...) of a selected connected component ( 90.1 . 90.2 , ...) - and with an entity type ( 10.1 . 10.2 , ...), which does not belong to a connected component ( 90.1 . 90.2 , ...) belongs, an attribute ( 800.1 . 800.2 , ...) of the class ( 100.1 . 100.2 , ...) generated for the selected entity type ( 10.1 . 10.2 , ...) this connected component ( 90.1 . 90.2 , ...) was created. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß diejenigen Verbindungen zwischen einem Assoziationstypen (20.1,20.2,...) und einem Entitätstypen (10.1,10.2,...) ausgewählt werden, deren Kopplungswert kleiner oder gleich einer vorgegebenen Schranke ist, wobei der Kopplungswert eines Entitätstypen (10.1,10.2,...) von der Anzahl der Assoziationstypen (20.1,20.2,...), mit denen der Entitätstyp (10.1,10.2,...) verbunden ist, abhängt.Method according to one of Claims 1 to 3, characterized in that those connections between an association type ( 20.1 . 20.2 , ...) and an entity type ( 10.1 . 10.2 , ...) whose coupling value is less than or equal to a predetermined barrier, the coupling value of an entity type ( 10.1 . 10.2 , ...) of the number of association types ( 20.1 . 20.2 , ...), with which the entity type ( 10.1 . 10.2 , ...) depends. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß das vorgegebene Datenmodell eine Vererbungshierarchie unter Entitätstypen (10.1,10.2,...) umfaßt, durch die festgelegt wird, ob und wenn ja welche Obertypen und/oder Untertypen ein Entitätstyp (10.1,10.2,...) hat, und der Kopplungswert eines Entitätstypen (10.1,10.2,...) die Summe aus – der Anzahl der Assoziationstypen (20.1,20.2,...), mit denen der Entitätstyp (10.1,10.2,...) verbunden ist, – der Anzahl der Obertypen des Entitätstyps (10.1,10.2,...) – und der Anzahl der Untertypen des Entitätstyps (10.1,10.2,...) ist.Method according to Claim 4, characterized in that the predefined data model contains an inheritance hierarchy under entity types ( 10.1 . 10.2 , ...) that determines whether and, if so, which types and / or subtypes an entity type ( 10.1 . 10.2 , ...), and the coupling value of an entity type ( 10.1 . 10.2 , ...) the sum of - the number of association types ( 20.1 . 20.2 , ...), with which the entity type ( 10.1 . 10.2 , ...), - the number of top types of the entity type ( 10.1 . 10.2 , ...) - and the number of subtypes of the entity type ( 10.1 . 10.2 , ...) is. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß für jede Verbindung eines Assoziationstypen (20.1,20.2,...) mit einem Entitätstypen (10.1,10.2,...) festgelegt ist, ob diese eine Eins-Eins-Verbindung ist, wobei für eine Eins-Eins-Verbindung festgelegt ist, daß jede Entität des Entitätstyps (10.1,10.2,...) mit genau einer Assoziation des Assoziationstyps (20.1,20.2,...) und jede Assoziation des Assoziationstyps (20.1,20.2,...) mit genau einer Entität des Entitätstyps (10.1,10.2,...) verbunden sein muß, und ausschließlich Eins-Eins-Verbindungen ausgewählt werden.Method according to one of claims 1 to 5, characterized in that for each compound of an association type ( 20.1 . 20.2 , ...) with an entity type ( 10.1 . 10.2 , ...) whether this is a one-to-one connection, whereby for a one-to-one connection it is specified that each entity of the entity type ( 10.1 . 10.2 , ...) with exactly one association of the association type ( 20.1 . 20.2 , ...) and any association of the association type ( 20.1 . 20.2 , ...) with exactly one entity of the entity type ( 10.1 . 10.2 , ...), and only one-to-one connections are selected. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß eine Eins-Eins-Verbindung zwischen einem Entitätstyp (10.1,10.2,...) und einem Assoziationstyp (20.1,20.2,...) dann ausgewählt wird, wenn der Entitätstyp (10.1,10.2,...) mit genau einem Assoziationstyp (20.1,20.2,...) verbunden ist.Method according to Claim 6, characterized in that a one-to-one connection between an entity type ( 10.1 . 10.2 , ...) and an association type ( 20.1 . 20.2 , ...) is then selected when the entity type ( 10.1 . 10.2 , ...) with exactly one association type ( 20.1 . 20.2 ,...) connected is. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß eine Zusammenhangskomponente (90.1,90.2,...) dann ausgewählt wird, wenn sie – mehrere Datenobjekte umfaßt – oder nur aus einem einzigen Entitätstypen (10.1,10.2,...) besteht und dieser Entitätstyp (10.1,10.2,...) mit keinem Assoziationstyp (20.1,20.2,...) verbunden ist.Method according to one of Claims 1 to 7, characterized in that a connected component ( 90.1 . 90.2 , ...) is selected if it comprises - several data objects - or only one single entity type ( 10.1 . 10.2 , ...) and this entity type ( 10.1 . 10.2 , ...) with no association type ( 20.1 . 20.2 ,...) connected is. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß mindestens eine weitere Klasse (100.30,100.31,...) des objektorientierten Datenmodells erzeugt wird, mindestens ein Attribut (800.a,800.b,...) einer ersten Klasse (100.20,100.21,...) ausgewählt und zu einem Attribut (800.a,800.b,...) der weiteren Klasse (100.30,100.31,...) gemacht wird und die weitere Klasse (100.30,100.31,...) zu einer Oberklasse der ersten Klasse (100.20,100.21,...) gemacht wird.Method according to one of Claims 1 to 8, characterized in that at least one further class ( 100 , 30,100.31 , ...) of the object-oriented data model, at least one attribute ( 800 , a, 800.b , ...) of a first class ( 100 , 20,100.21 , ...) and to an attribute ( 800 , a, 800.b , ...) of the further class ( 100 , 30,100.31 , ...) and the further class ( 100 , 30,100.31 , ...) to a superclass of the first class ( 100 , 20,100.21 , ...) is made. Computerprogramm-Produkt, das direkt in den internen Speicher eines Computers geladen werden kann und Softwareabschnitte umfaßt, mit denen ein Verfahren nach einem der Ansprüche 1 bis 9 ausgeführt werden kann, wenn das Produkt auf einem Computer läuft.Computer program product directly in the internal Memory of a computer can be loaded and software sections comprises with which a method according to any one of claims 1 to 9 are carried out can if the product is running on a computer. Computerprogramm-Produkt, das auf einem von einem Computer lesbaren Medium gespeichert ist und das von einem Computer lesbare Programm-Mittel aufweist, die den Computer veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 9 auszuführen.Computer program product on one of one Computer readable medium is stored and stored by a computer has readable program means that cause the computer to to carry out a method according to any one of claims 1 to 9.
DE10254571A 2002-11-22 2002-11-22 Data model transformation method, for transformation of a entity relationship model to an object orientated model, thus allowing combination of a entity relationship model with a unified modeling language model Withdrawn DE10254571A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10254571A DE10254571A1 (en) 2002-11-22 2002-11-22 Data model transformation method, for transformation of a entity relationship model to an object orientated model, thus allowing combination of a entity relationship model with a unified modeling language model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10254571A DE10254571A1 (en) 2002-11-22 2002-11-22 Data model transformation method, for transformation of a entity relationship model to an object orientated model, thus allowing combination of a entity relationship model with a unified modeling language model

Publications (1)

Publication Number Publication Date
DE10254571A1 true DE10254571A1 (en) 2004-06-03

Family

ID=32240296

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10254571A Withdrawn DE10254571A1 (en) 2002-11-22 2002-11-22 Data model transformation method, for transformation of a entity relationship model to an object orientated model, thus allowing combination of a entity relationship model with a unified modeling language model

Country Status (1)

Country Link
DE (1) DE10254571A1 (en)

Similar Documents

Publication Publication Date Title
DE19538240A1 (en) Information system and method for storing data in an information system
DE69532307T2 (en) Expression propagation for hierarchical net lists
DE10244685A1 (en) Object-oriented product configuration method involves providing model tool storing information about particular product, and run time tool that allows external applications to access stored information
EP1638028A2 (en) Computer aided generation and change management for user interfaces
DE10250641A1 (en) Upward and downward compatible schema evolution
EP1674954A1 (en) System and method for reusing of design related data
WO2009033902A1 (en) Method and system for marking objects
DE10115046A1 (en) Method and device for generating an image of a network-like manufacturing process
WO1997015016A1 (en) Database management system and data transmission process
DE10103845B4 (en) computer system
DE10254571A1 (en) Data model transformation method, for transformation of a entity relationship model to an object orientated model, thus allowing combination of a entity relationship model with a unified modeling language model
EP1324218A1 (en) System for categorising data objects and method of checking the consistency of the designation of categories to the data objects
EP2515229A1 (en) Software tool for automation technology
DE19831651C1 (en) Method for generating a controllable and adaptable network of models of behavior patterns, including software systems
DE10250286A1 (en) Verifiable data model e.g. for motor vehicles, has at least one category of data objects representing a type of real object
EP1161723B1 (en) Method for the graphic representation and/or processing of values of data types
WO2006042501A2 (en) Method for the variant-based management of parameter sets used for the application of electronic control devices
DE102021004346A1 (en) Procedure for building and maintaining a vehicle type library
EP1234264A1 (en) Method for the machine representation, integration and control of processes in companies
EP3432139A1 (en) A computer implemented method for generating computer program code
DE10250638A1 (en) Data structuring, storage and processing system using generic object model, for engineering an automation system, using type object, and link to other element corresponding to type feature
DE10250642A1 (en) Extension of records
DE10355607A1 (en) Entity link creating method for e.g. company, involves creating link between entities by linking their identification systems that are used as identifying units and are unambiguous and common, where systems are stored in common memories
EP1326174A2 (en) Method and system for creating a product-related presentation
DE102004053230A1 (en) Apparatus and method for configuring a product

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: DAIMLERCHRYSLER AG, 70327 STUTTGART, DE

8139 Disposal/non-payment of the annual fee