Definieren von lokalen Beziehungen

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Datenquellen und -ziele > Datenbanken und MapForce > Einführung in Datenbank-Mappings >

Definieren von lokalen Beziehungen

Wenn es zwischen Datenbanktabellen keine explizit definierten Beziehungen gibt, können Sie solche Beziehungen lokal in MapForce definieren. So können Sie etwa von MapForce aus Primär- und Sekundärschlüsselbeziehungen zwischen Spalten unterschiedlicher Tabellen erstellen, ohne dass sich dies in irgendeiner Art auf die Datenbank auswirkt. Als Primär- oder Sekundärschlüssel kann jede beliebige Datenbankspalte verwendet werden. Außerdem können zusätzlich zu den bereits bestehenden Beziehungen in der Datenbank neue Beziehungen erstellt werden. Lokal definierte Beziehungen werden zusammen mit dem Mapping gespeichert.

 

Diese "on-the-fly"-Beziehungen werden in MapForce als lokale Beziehungen bezeichnet. In der folgenden Tabelle sind alle möglichen Felder aufgelistet, zwischen denen lokale Beziehungen definiert werden können. Auch gemischte Beziehungen (z.B. Mappen der Ausgabe einer gespeicherten Prozedur auf eine Datenbankspalte) sind möglich. Die an einer Beziehung beteiligten Felder müssen denselben oder einen kompatiblen Datentyp haben.

 

Primärschlüssel/eindeutiger Schlüssel

Sekundärschlüssel

Spalte einer Datenbanktabelle oder -ansicht
Output-Parameter oder Rückgabewert einer gespeicherten Prozedur, siehe auch Gespeicherte Prozeduren
Spalte einer von einer gespeicherten Prozedur zurückgegebenen Datensatzstruktur*
Spalte einer benutzerdefinierten SELECT-Anweisung, siehe auch SELECT-Anweisungen als virtuelle Tabellen.
Spalte einer Datenbanktabelle oder -ansicht
Input-Parameter einer gespeicherten Prozedur
Input-Parameter einer benutzerdefinierten SELECT-Anweisung

 

* Anwendbar, wenn die gespeicherte Prozedur entweder als Datenquelle (ohne Parameter) oder Funktion (mit Input- und Output-Parametern) aufgerufen wird. Damit die Datensatzstruktur für die Auswahl zur Verfügung steht, müssen Sie die gespeicherte Prozedur einmal ausführen, um die Datensatzstruktur abzurufen.

 

Die in diesem Beispiel verwendete Datenbank altova-no-relation.mdb ist eine vereinfachte Version der mit MapForce mitgelieferten Datenbank altova.mdb. Die Tabellen "Person" und "Address" sowie alle Tabellenbeziehungen wurden in Microsoft Access entfernt. Wie unten gezeigt, hat keine der in der altova-no-relation-Struktur sichtbaren Tabellen Child-Tabellen; alle Tabellen befinden sich auf derselben "root"-Ebene. Der Inhalt der einzelnen Tabellen beschränkt sich auf die enthaltenen Felder.

mf_db_relationships_11

Datenbankstruktur ohne explizite Beziehungen

Ziel des Beispiels ist, die Niederlassungen (offices) von "Altova" sowie die Abteilungen in den einzelnen Niederlassungen anzuzeigen. Beachten Sie, dass die Primär- und Sekundärschlüsselbeziehungen in altova-no-relation.mdb, wie oben erwähnt, nicht explizit vorhanden sind. Sie sind nur logischerweise (implizit) vorhanden, daher werden wir diese zu diesem Zweck lokal in MapForce neu erstellen.

 

Lokale Beziehungen können definiert werden, wenn Sie eine Datenbank zum Mapping hinzufügen oder durch Rechtsklick auf die Datenbankkomponente und Auswahl des Kontextmenübefehls Datenbankobjekte hinzufügen/entfernen/bearbeiten, wie in den folgenden Schritten unten gezeigt.

 

1.Klicken Sie im Menü Einfügen auf Datenbank.
2.Klicken Sie im Verbindungsassistenten auf Microsoft Access (ADO) und anschließend auf Weiter.
3.Navigieren Sie zur Datenbank altova-no-relation.mdb im Ordner <Dokumente>\Altova\MapForce2019\MapForceExamples\ und klicken Sie auf Verbinden.
4.Aktivieren Sie das Kontrollkästchen Benutzertabellen.

mf_db_relationships_12

5.Klicken Sie in der Symbolleiste auf die Schaltfläche Beziehungen hinzufügen/bearbeiten.
6.Daraufhin wird das Dialogfeld "Tabellenbeziehungen hinzufügen/bearbeiten" geöffnet. Klicken Sie auf Beziehung hinzufügen.

mf_db_relationships_13

7.Wählen Sie Werte aus den beiden Dropdown-Listen aus, um, wie unten gezeigt, zwischen den Tabellen "Altova" und "Office" eine Primär- und Sekundärschlüsselbeziehung zu erstellen. Über die beiden Dropdown-Listen können Sie die Tabellen oder Datenbankobjekte, für die Sie Beziehungen erstellen möchten, auswählen. In der linken Liste ist das Objekt definiert, in dem der Primärschlüssel/eindeutige Schlüssel gespeichert ist, während in der rechten Liste das Sekundärschlüsselobjekt definiert ist. Das Objekt für den Primärschlüssel/eindeutigen Schlüssel-Objekt bildet das Parent-Objekt in MapForce, das Sekundärschlüsselobjekt wird in der Datenbankkomponente als Child angezeigt (siehe auch Behandlung von Datenbankbeziehungen).

mf_db_relationships_14

8.Klicken Sie auf OK, um die Definition der lokalen Beziehung fertig zu stellen und klicken Sie anschließend auf die Schaltfläche Einfügen, um die Datenbank in den Mapping-Bereich einzufügen.

 

Sie haben in diesem Schritt eine lokale Beziehung zwischen der Spalte PrimaryKey der Tabelle "Altova" und der Spalte ForeignKey der Tabelle "Office" erstellt. Die Root-Tabelle "Altova" ist nun, wie unten gezeigt, ein Parent der Tabelle "Office". Die Tabelle "Office" wird dabei mit eigenem Erweiterungssymbol unterhalb der Tabelle "Altova" als damit in Beziehung stehende Tabelle angezeigt.

mf_db_relationships_15

Noch ist das Ziel des Mappings aber nicht erreicht. Gehen Sie nun auf dieselbe Art vor, um zwischen den Tabellen Office und Department ebenfalls eine Beziehung zu erstellen, wie unten gezeigt.

mf_db_relationships_16

Um das Dialogfeld "Beziehungen hinzufügen/bearbeiten" erneut zu öffnen, klicken Sie mit der rechten Maustaste auf die Datenbankkomponente und wählen Sie im Kontextmenü den Befehl Datenbankobjekte hinzufügen/entfernen/bearbeiten.

 

Fügen Sie schlussendlich das Zielschema zum Mapping hinzu:

 

1.Klicken Sie im Menü Einfügen auf XML-Schema/Datei einfügen.
2.Navigieren Sie zur Datei Altova_Hierarchical.xsd im Ordner <Dokumente>\Altova\MapForce2019\MapForceExamples\. Wenn Sie aufgefordert werden, eine XML-Beispieldatei anzugeben, klicken Sie auf Überspringen. Wenn Sie aufgefordert werden, ein Root-Element auszuwählen, wählen Sie "Altova" aus.

 

Beachten Sie, dass alle Verbindungen von derselben "root"-Tabelle aus (in diesem Fall "Altova") hierarchisch gezogen wurden, um die Beziehungen zwischen den Tabellen in der XML-Zieldatei zu bewahren. Nähere Informationen dazu finden Sie unter Behandlung von Datenbankbeziehungen.

mf_db_relationships_17

Nachdem Sie das oben gezeigte Mapping definiert haben, klicken Sie auf das Register Ausgabe, um eine Vorschau auf das Ergebnis zu sehen. Im Mapping-Ergebnis sehen Sie die unter den jeweiligen Niederlassungen (office) verschachtelten Department-Elemente. Damit wurde das beabsichtigte Ergebnis des Mappings erzielt.

mf_db_relationships_18


© 2019 Altova GmbH