Altova UModel 2024 Professional Edition

Konfigurieren des Round-Trip Engineering für Datenbanken

Zur Startseite Zurück Nach oben Weiter

Immer, wenn Sie eine Datenbank, wie in Importieren von SQL-Datenbanken in UModel beschrieben, in UModel importieren, wird Ihr Projekt an die Datenbank gebunden und Sie können entweder Elemente anhand der Datenbank mit Ihrem Modell synchronisieren oder umgekehrt.

 

Wenn Sie nur eine Synchronisierung des Modells anhand der Datenbank vornehmen möchten, sind keine zusätzlichen Konfigurationsmaßnahmen erforderlich - UModel kümmert sich im Hintergrund um die erforderlichen Zuordnungen. So werden z.B. neue Datenbanktabellen nach jeder Synchronisierung im Modell zu neuen Klassen, geänderte Datenbankspaltendefinitionen werden im Modell aktualisiert, usw. Auch alle Ihre Datenbankdiagramme werden automatisch entsprechend aktualisiert.

 

Wenn Sie jedoch am Modell Änderungen vornehmen und Sie diese mit der Datenbank synchronisieren und in dieser übernehmen möchten, müssen Sie in Ihrem UModel-Projekt eventuell einige zusätzliche Konfigurationsschritte vornehmen. Diese Konfigurationsmaßnahmen sind eventuell auch erforderlich, wenn Sie verhindern möchten, dass das Projekt (oder bestimmte Tabellen) mit der Datenbank synchronisiert wird.

 

Bei einer Synchronisierung können Änderungen entweder zusammengeführt oder überschrieben werden. Sie können dies mit dem Menübefehl Projekt | Synchronisierungseinstellungen jederzeit konfigurieren.

 

Anmerkung:Bei einigen Datenbankarten sind Änderungen der Datenbankstruktur aufgrund ihres Designs nicht möglich. So wird etwa das Umbenennen von Tabellen und Spalten von Microsoft Access-Datenbanken nicht unterstützt. Ebenso wird das Umbenennen von Spalten in SQLite nicht unterstützt. Aus diesem Grund wird durch solche Änderungen im Modell keine Datenbankaktualisierung ausgelöst und unter Umständen wird eine entsprechende Warnmeldung im UModel-Fenster "Meldungen" angezeigt.

 

Das Round-Trip Engineering ist bei Datenbanken ähnlich wie das Round-Trip Engineering bei Programmcode - es erfolgt für eine Komponente im Paket "Component View", das Ihr Projekt mit der tatsächlichen Datenbank verknüpft. Immer, wenn Sie die Datenbank das erste Mal importieren, wird unter dem Paket "Component View" automatisch eine Code Engineering-Komponente generiert. Wenn Sie z.B. die gesamte Anleitung im Kapitel Importieren von SQL-Datenbanken in UModel befolgt haben, wurde eine Komponente namens um_ic_component tutorial_database generiert:

um_db_import_09

Wie bereits erwähnt, entspricht jede Klasse im Modell einer Datenbanktabelle. Damit ein Code Engineering durchgeführt werden kann, muss die Code Engineering-Komponente alle Klassen (Tabellen) aus dem Modell realisieren. Beachten Sie alle Komponentenrealisierungsbeziehung in der Abbildung oben. Klassen, die von dieser Komponente nicht realisiert werden, bilden nicht Teil des Code Engineering. Wenn Sie nicht vorhaben, die Datenbank jemals anhand des Modells zu aktualisieren, müssen Sie nichts tun - UModel erstellt jedes Mal, wenn Sie das Modell anhand der Datenbank synchronisieren, automatisch alle Realisierungen.

 

Wenn Sie jedoch beabsichtigen, die Datenbank anhand des Modells zu synchronisieren, muss jede neue Klasse (Tabelle), die Sie hinzufügen, eine Komponentenrealisierungsbeziehung zur Code Engineering-Komponente haben. Andernfalls zeigt UModel beim Versuch die Datenbank anhand des Modells zu aktualisieren, eine Warnung ähnlich der folgenden an: Tabelle1 hat keine Komponentenrealisierung zu einer Komponente - es wird kein Code generiert.

 

Die einfachste Methode, um eine Komponentenrealisierung von einer Klasse zu einer Komponente zu erstellen, ist, die Klasse auf die Code Engineering-Komponente zu ziehen. Wenn Sie z.B. eine neue Klasse (Tabelle) erstellen, ziehen Sie die Klasse (im Fenster "Modell-Struktur") auf die Komponente um_ic_component tutorial_database, um die Beziehung zu erstellen. Sie können solchen Beziehungen auch über ein Komponentendiagramm hinzufügen oder entfernen (siehe Komponentendiagramme).

 

Ein Arbeitsbeispiel dazu finden Sie unter Beispiel: Aktualisieren einer Datenbank anhand des Modells.

© 2017-2023 Altova GmbH