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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
Abstract
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
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:
In
Entitätstypen sind in den Figuren
durch Rechtecke, Assoziationstypen durch quadratische Rauten dargestellt.
Der Entitätstyp
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
Im Datenmodell der
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
Im Beispiel der
Ein Assoziationstyp
Der Assoziationstyp
Der Entitätstyp
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
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").
- 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
Im zweiten Beispiel, das durch
- – Im ersten
Schritt wird eine Klasse
100 .36 (K_x) mit den Attributen800 .a und800.b erzeugt. Die Klassen100 .20 (K_1) und100.21 (K_2) werden zu Klassen100 .25 (K_1') und100.26 (K_2') abgewandelt, die nur die Attribute800 .c bzw.800.d haben.100.22 (K_3) bleibt im ersten Schritt unverändert.100.36 (K_x) ist Oberklasse von100.25 (K_1') und100.26 (K_2'). - – Im
zweiten Schritt wird eine Klasse
100 .31 (K_y) mit dem Attribut800 .a erzeugt. Die Klassen100 .36 (K_x) und100.22 (K_3) werden zu Klassen100 .32 (K_x') und100.27 (K_3') abgewandelt, die nur die Attribute800 .b bzw.800.e und800.f haben.100.31 (K_y) ist Oberklasse von100.32 (K_x') und100.27 (K_3').
- - In the first step becomes a class
100 ,36 (K_x) with the attributes800 .a and800.b generated. The classes100 ,20 (K_1) and100.21 (K_2) become classes100 ,25 (K_1 ') and100.26 (K_2 ') modified only the attributes800 .c or800.d to have.100.22 (K_3) remains unchanged in the first step.100.36 (K_x) is upper class of100.25 (K_1 ') and100.26 (K_2 '). - - In the second step becomes a class
100 ,31 (K_y) with the attribute800 .a generated. The classes100 ,36 (K_x) and100.22 (K_3) become classes100 ,32 (K_x ') and100.27 (K_3 ') modified only the attributes800 ,b respectively.800.e and800.f to have.100.31 (K_y) is upper class of100.32 (K_x ') and100.27 (K_3 ').
Im dritten Beispiel, das durch
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
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
In Schritt g) werden Zusammenhangskomponenten
In Schritt h) werden folgende Zusammenhangskomponenten ausgewählt:
- – Die
Zusammenhangskomponente
90.1 mit dem Entitätstypen10.1 („Auto") wird ausgewählt, weil sie aus mehreren Datenobjekten besteht. - – Die
Zusammenhangskomponente
90.2 mit dem Entitätstypen10.3 („Fahrgestell-Nummer") wird ausgewählt. Das Datenmodell umfaßt nämlich eine einzige Verbindung zwischen dem Entitätstypen10.3 und Assoziationstypen, nämlich die Verbindung mit dem Assoziationstypen20.3 („Kennzeichnung"). Das Mitgliedschaftsintervall60.5 dieser Verbindung hat den Wert „1:1", die untere Schranke ist also größer gleich 1. - – Die
Zusammenhangskomponente
90.3 mit dem Entitätstypen10.4 („Autorad") wird nicht ausgewählt. Das Datenmodell umfaßt nämlich eine Verbindung zwischen dem Entitätstypen10.4 und dem Assoziationstypen20.2 („Radsatz"), dessen Mitgliedschaftsintervall60.8 den Wert „0:1" hat, also eine untere Schranke gleich 0. - – Die
Zusammenhangskomponente
90.4 mit dem Hybrid-Typen30.1 („Eigentums-Verhältnis") wird ausgewählt, weil sie einen Hybrid-Typen umfaßt. - – Die
Zusammenhangskomponente
90.5 mit dem Entitätstypen10.7 („Preis") wird ausgewählt. Das Datenmodell umfaßt nämlich eine einzige Verbindung zwischen dem Entitätstypen10.7 und Assoziationstypen, nämlich die Verbindung mit dem Assoziationstypen20.4 („Kaufpreis"). Das Mitgliedschaftsintervall60 .10 dieser Verbindung hat den Wert „1:n" ", die untere Schranke ist also größer gleich 1. - – Die
Zusammenhangskomponente
90.6 mit dem Entitätstypen10.6 („Unternehmen") wird ausgewählt, weil der Entitätstyp10.6 einen Untertyp besitzt, nämlich den Entitätstypen10.2 („Halter"). - – Die
Zusammenhangskomponente
90.7 mit dem Entitätstypen10.2 („Halter") wird ausgewählt, weil der Entitätstyp10.2 einen Obertyp besitzt, nämlich den Entitätstypen10.6 („Unternehmen"). - – Die
Zusammenhangskomponente
90.8 mit dem Entitätstypen10.5 („Kaufvertrag") wird ausgewählt, weil sie aus mehreren Datenobjekten besteht.
- - The connected component
90.1 with the entity types10.1 ("Auto") is selected because it consists of multiple data objects. - - The connected component
90.2 with the entity types10.3 ("Chassis number") is selected because the data model includes a single connection between the entity types10.3 and association types, namely the association with the association type20.3 ("Labeling"). The membership interval60.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 types10.4 ("Car wheel") is not selected because the data model includes a connection between the entity types10.4 and the association types20.2 ("Wheelset"), whose membership interval60.8 has the value "0: 1", ie a lower bound equal to 0. - - The connected component
90.4 with the hybrid types30.1 ("Property Ratio") is selected because it includes a hybrid type. - - The connected component
90.5 with the entity types10.7 ("Price") is selected because the data model includes a single connection between the entity types10.7 and association types, namely the association with the association type20.4 ("Purchase price"). The membership interval60 .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 types10.6 ("Company") is selected because of the entity type10.6 has a subtype, the entity types10.2 ("Holder"). - - The connected component
90.7 with the entity types10.2 ("Holder") is selected because of the entity type10.2 has an upper type, namely the entity types10.6 ("Companies"). - - The connected component
90.8 with the entity types10.5 ("Purchase Agreement") is selected because it consists of multiple data objects.
Die Objekt-Klassen, die in Schritt
k) erzeugt wurden, sind in
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.
In Schritt n) wird kein Relationstyp
erzeugt. Denn der einzige Assoziationstyp, der zu keiner ausgewählten Zusammenhangskomponente
gehört,
ist der Assoziationstyp
In Schritt o), der durch
Die Relations-Klasse
Weiterhin werden in Schritt o) drei
Relationstypen für
die Assoziationstypen, die zu ausgewählten Zusammenhangskomponenten
gehören,
erzeugt. Zur Zusammenhangskomponente
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
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
Vorzugsweise wird darüber hinaus
die Klasse
In Schritt r) wird eine Vererbungshierarchie
(Taxonomie) aus dem Datenmodell der
Zusammenfassend betrifft die Erfindung
ein Verfahren zur automatischen Erzeugung eines objektorientierten
Datenmodells aus einem vorgegebenen Datenmodell. Das vorgegebenen
Datenmodell umfaßt
Entitätstypen
Bezugszeichenliste LIST OF REFERENCE NUMBERS
Claims (11)
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) |
-
2002
- 2002-11-22 DE DE10254571A patent/DE10254571A1/en not_active Withdrawn
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 |