Altova UModel 2024 Enterprise Edition

Beispiel: Transformieren einer Access-Datenbank in SQLite

Zur Startseite Zurück Nach oben Weiter

In diesem Beispiel wird gezeigt, wie Sie ein Datenbankmodell von einer Datenbankart in eine andere konvertieren. Dabei wird insbesondere gezeigt, wie die Struktur einer Microsoft Access-Datenbank in ein UML-Modell eingelesen und anschließend mit einer vorhandenen SQLite-Datenbank zusammengeführt wird. Nach Fertigstellung dieses Beispiels wird die Struktur der Access-Quelldatenbank in der SQLite-Zieldatenbank übernommen. Beachten Sie, dass die Microsoft Access- und die SQLite-Datenbanken hier nur als Beispiel dienen; auch jede andere von UModel unterstützte Datenbank (siehe UModel und Datenbanken) kann auf diese Art konvertiert werden.

 

In diesem Beispiel werden folgenden Dateien aus dem Verzeichnis C:\Users\...\Documents\Altova\UModel2024 \UModelExamples\Tutorial verwendet:

 

Nanonull.mdb - die Microsoft Access-Quelldatenbank

Nanonull.sqlite - die SQLite-Zieldatenbank

 

Anmerkung:        Bevor Sie beginnen, wird empfohlen, ein Backup der Beispieldatenbankdatei Nanonull.sqlite anzulegen, da ihr Inhalt durch das unten beschriebene Verfahren verändert wird.

 

Schritt 1: Import der Quelldatenbank in UModel

1.Klicken Sie im Menü Projekt auf SQL-Datenbank importieren und befolgen Sie die Anweisungen des Assistenten, um eine Verbindung zur Microsoft Access-Quelldatenbank (Nanonull.mdb) herzustellen. Nähere Informationen dazu finden Sie unter Herstellen einer Verbindung zu einer Datenbank.

2.Wenn Sie aufgefordert werden, einen Namen für die Datenquelle anzugeben, geben Sie ihr einen beschreibenden Namen (z.B. "Quelldatenbank").

um_transform_db_01

3.Wählen Sie die Datenbankobjekte aus, die in das Modell importiert werden sollen, und klicken Sie auf Fertig stellen.

um_transform_db_02

Beachten Sie, dass im Fenster "Modell-Struktur" nun unter dem Paket "Root" ein Paket namens "Quelldatenbank" zur Verfügung steht.

um_transform_db_03

 

Schritt 2: Import der Zieldatenbank in UModel

1.Klicken Sie im Menü Projekt auf SQL-Datenbank importieren und befolgen Sie die Anweisungen des Assistenten, um eine Verbindung zur SQLite-Zieldatenbank (Nanonull.sqlite) herzustellen.

2.Wenn Sie aufgefordert werden, einen Namen für die Datenquelle anzugeben, geben Sie ihr einen beschreibenden Namen (z.B. "Zieldatenbank").

um_transform_db_04

3.Wählen Sie die Datenbankobjekte, die Sie in das Modell importieren möchten, aus und klicken Sie auf Weiter.

um_transform_db_05

4.Wenn Sie aufgefordert werden, ein Zielpaket auszuwählen, aktivieren Sie das Kontrollkästchen In neues Paket importieren und klicken Sie auf Fertig stellen.

um_transform_db_06

Daraufhin wird im Fenster "Modell-Struktur" unterhalb des Root-Pakets ein neues Paket namens "Zieldatenbank" hinzugefügt.

um_transform_db_07

 

Schritt 3: Ausführung der Modelltransformation von der Quell- in die Zieldatenbank

1.Klicken Sie im Menü Projekt auf Modelltransformation.

2.Wählen Sie im Dialogfeld "Quellpaket auswählen" "Quelldatenbank / Nanonull" als Paket aus und klicken Sie auf Weiter.

um_transform_db_08

3.Wählen Sie im Dialogfeld "Zielpaket auswählen" "Zieldatenbank / main" als Paket aus und klicken Sie auf Weiter.

um_transform_db_09

4.Wählen Sie im Dialogfeld "Einzelheiten zur Modelltransformation" als Transformationstyp DB in DB aus und klicken Sie auf Weiter.

um_transform_db_10

5.Überprüfen Sie im Dialogfeld "Typ-Mapping" die Datentypen und ändern Sie diese nach Bedarf. In diesem Beispiel wollen wir nur einige Microsoft Access-spezifische Datentypen, die in SQLite nicht existieren, mappen (siehe Abb. unten):

um_transform_db_11

Im Allgemeinen sollte sichergestellt werden, dass die linke Spalte einen mit der Quelldatenbank kompatiblen Datentyp und die rechte Spalte einen mit der Zieldatenbank kompatiblen Datentyp enthält. Um neue Mappings hinzuzufügen oder zu löschen, klicken Sie auf die Schaltflächen Anhängen, Einfügen und Löschen.

6.Klicken Sie auf Fertig stellen. Bestätigen Sie die Meldung, die nun angezeigt wird, mit OK.

um_transform_db_12

Es wird nun ein Abhängigkeitsdiagramm generiert, in dem Sie alle der zuvor definierten Einstellungen, darunter auch die Datentyp-Mappings überprüfen (und gegebenenfalls ändern können). In diesem Beispiel übernehmen wir die Standardeinstellungen unverändert.

um_transform_db_13

 

Schritt 4: Zusammenführen von Programmcode aus dem UModel-Projekt

1.Klicken Sie im Menü Projekt auf Merge Programmcode aus UModel-Projekt.

2.Belassen Sie die Standardeinstellungen unverändert und klicken Sie auf OK.

um_transform_db_14

Daraufhin wird ein Datenbankaktualisierungsskript generiert und, wie unten gezeigt, in einem Dialogfeld angezeigt. Sie können das Skript nun direkt in UModel ausführen oder es in einer Datei speichern. Wenn Sie Altova DatabaseSpy installiert haben, können Sie das Skript auch in DatabaseSpy, das bessere Datenbankverwaltungsfunktionen hat, öffnen und ausführen.

um_transform_db_15

Es wird empfohlen, das generierte Skript unbedingt zu überprüfen und gegebenenfalls zu ändern, bevor Sie es an der Zieldatenbank ausführen.

 

Wenn eine Quelldatenbank Objektnamen (wie z.B. Indizes oder Sekundärschlüssel) enthält, die auf Datenbankebene nicht eindeutig sind, kann das Datenbankaktualisierungsskript nicht erfolgreich ausgeführt werden. So könnte eine Microsoft Access-Datenbank etwa mehrere Indizes mit demselben Namen enthalten. Wenn die Zieldatenbank doppelt vorhandene Namen für Indizes nicht akzeptiert, müssen Sie das Aktualisierungsskript bearbeiten, sodass alle erforderlichen Objektnamen eindeutig sind.

 

Eventuell müssen Sie das Skript auch aktualisieren, um die Größe von Spalten den Anforderungen der Zieldatenbank entsprechend zu ändern.

 

Nachdem Sie das Skript ausgeführt haben (entweder direkt in UModel oder extern in einem Tool wie z.B. DatabaseSpy), werden die erforderlichen Tabellen, Spalten sowie Indizes und Constraints in der SQLite-Zieldatenbank neu erstellt. Beachten Sie, dass SQLite (Version 3.6.19) die von der SQL-Anweisung bereitgestellten Namen von Sekundärschlüssel-Constraints akzeptiert, aber keine Möglichkeit bietet, diese aus der Datenbank abzurufen (Sekundärschlüssel-Constraints werden mit einem beliebigen Namen, der nicht der tatsächliche Name ist, abgerufen). Um sicherzustellen, dass in Ihrem Datenbankmodell die tatsächlichen Objektnamen, so wie sie von der Datenbank bereitgestellt werden, angezeigt werden, führen Sie eine umgekehrte Aktualisierung vom Modell in die Datenbank durch. Führen Sie zu diesem Zweck den Menübefehl Projekt | Merge UModel-Projekt aus Programmcode. Daraufhin wird das Modell aktualisiert, sodass die Objektnamen, wie sie von der Datenbank bereitgestellt werden, angezeigt werden.

© 2017-2023 Altova GmbH