Können Sie mir ein Tutorial oder ein Buch empfehlen, um ein Klassendiagramm in ein relationales Datenbankdiagramm umzuwandeln? und umgekehrt, wenn eine solche Referenz existiert, bitte posten Sie sie.
Ein Klassendiagramm repräsentiert ein System, das das Objektmodell verwendet. Ein relationales Datenbankdiagramm stellt ein Datensystem dar, das das relationale Modell verwendet. Es gibt signifikante Unterschiede zwischen den Möglichkeiten, wie diese beiden Modelle das gleiche System darstellen. Und ein Datenmodell modelliert kein Verhalten. Es modelliert nur Daten.
Es gibt jedoch ein Modellierungssystem, das auf halbem Wege zwischen einem Klassendiagramm und einem relationalen Diagramm liegt. Es heißt ein E-R-Diagramm, wobei E-R eine Abkürzung für Entity-Relationship ist. Im E-R-Modell wird das gesamte Thema in "Entitäten" analysiert, bei denen es sich um Personen, Orte oder Dinge mit einer Identität handeln kann. Sie können sogar immaterielle Dinge sein, wie ein Bankkonto. Zu den Beziehungen gehören zwei oder mehr Entitäten und ihre Assertionen zu den Beziehungen, die einen Großteil der Daten in einer Datenbank ausmachen. Datenwerte sind Instanzen von Attributen und Attribute beschreiben entweder Entitäten oder Beziehungen zwischen Entitäten.
Die meisten E-R-Diagramme, die Sie in SO sehen, sind echte relationale Diagramme, die sich als ER-Diagramme tarnen. In einem echten ER-Diagramm sind Fremdschlüssel nicht vorhanden, Viele-zu-Viele-Beziehungen können als eine einzige Zeile dargestellt werden, und solche Dinge wie Gen-Spezifikationsmuster sehen fast genauso aus wie in Klassendiagrammen. Tatsächlich kann ein ER-Diagramm als Projektion einer Objektwelt auf die Welt der Daten betrachtet werden.
Wenn Sie die ER-Modellierung als eine von der relationalen Modellierung verschiedene Aktivität lernen, die zu einem anderen Modell führt, werden Sie es ziemlich leicht finden, Klassendiagramme in ER-Diagramme umzuwandeln.
Von dort ist die Umwandlung von ER-Diagrammen in relationale Diagramme fast mechanisch. Jede Entität erhält eine Tabelle, viele-zu-viele-Beziehungen erhalten ihre eigene Tabelle. Vererbung und Assoziation werden speziell behandelt, und so weiter. Beziehungen, die in der Welt der ER-Modellierung als Abstraktionen behandelt wurden, werden als Fremdschlüssel materialisiert. Der Primärschlüssel jeder Tabelle wird anhand der Schlüsselattribute von Entitäten im ER-Modell ersichtlich.
Und was im ER-Modell "Attribute" genannt wurde (möglicherweise "Eigenschaften" im Klassenmodell), werden im relationalen Modell zu "Spalten".
Es gibt einige raffinierte Werkzeuge, die Objektmodelle, ER-Modelle und relationale Modelle im selben Werkzeug verwalten und zwischen diesen Modellen für Sie wechseln können. Einer von ihnen, "Data Architect" war sehr gut, aber vor ein paar Jahren sehr teuer.
Nicht sicher, was Sie mit einem "relationalen Datenbankdiagramm" meinen. Wenn Sie auf ein SQL-Skript mit den DDL-Sätzen verweisen, um das relationale Schema für Ihr Modell zu erstellen, können Sie vielleicht sehen, wie Tools diese Transformation durchführen (z. B. diesen Online-UML-zu-SQL-Codegenerator überprüfen). Ссылка )
Die meisten Transformationsregeln sind einfach (class- & gt; Tabelle, Attribut - & gt; Spalte, Assoziation - & gt; Fremdschlüssel, ...), aber Sie können mit UML-Diagrammen mit Vererbungs- und Assoziationsklassen spielen und sehen, wie dies geschieht ist übersetzt.
Es gibt einen ausgezeichneten Artikel, der diese Transformation erklärt: Datenbank-Modellierung in UML
>Eine weitere Option, die ich verwende, ist das Hinzufügen von Datenbank-Stereotypen in meinem Klassendiagramm. Es generiert Java-Persistenz-Annotation in meinem Code. Schließlich erzeuge ich meinen Code aus meinem Java-Code mit Hibernate.
Es funktioniert wirklich gut !!
Mit Enterprise Architect können Sie Ihre Klassenmodale automatisch in relationale Datenbankmodelle unter Verwendung seiner MDA-Transformation (Model Driven Architecture) generieren. Dies erspart Ihnen die Arbeit, alle Ihre Diagramme von Hand neu zu bearbeiten.
Weitere Informationen zu MDA-Transformationen
Tags und Links class database uml relational-database