ローカルリレーションシップの定義

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > MapForce とデータベース > データベースマッピングの概要 >

ローカルリレーションシップの定義

データベース テーブルが明示的にリレーションシップを定義していない場合、 MapForce 内でそのようなリレーションシップをローカルに定義することができます。特に、 MapForce 内から、異なるテーブルの列の間の主キーと外部キーリレーションシップをデータベースに影響を与えることなく作成することができます。すべてのデータベース 列を主キー または 外部キーを作成するために使用することができます。また、データベース内に既存のリレーションに加え、 新規のリレーションを素早く作成することができます。ローカルで定義された リレーションシップはマッピングと共に保存されます。

 

これらの素早く作成されたリレーションシップは、 MapForce 内では ローカルリレーション と呼ばれます。次のテーブルはローカルリレーションを定義することのできるすべての可能なフィールドをリストしています (例えば、ストアドプロシージャの出力をデータベース列にマッピングするなど)。リレーションシップ内の一部のフィールドは、同じ、または、互換性のあるデータ型を持つ必要があります。

 

主/ユニーク キー

外部キー

データベーステーブル、または、ビューの列
ストアドプロシージャの出力パラメーターまたは戻り値。ストアドプロシージャを参照してください。
ストアドプロシージャにより返されたレコードセットの列*
ユーザー定義 SELECT ステートメントの列。 仮想テーブルとしての SQL SELECT ステートメント を参照してください。
データベーステーブル、または、ビューの列
ストアドプロシージャの入力パラメーター
ユーザー定義 SELECT ステートメントの入力パラメーター

 

* (パラメータを持たない) データソースまたは、 (入力と出力パラメーターを持つ)関数としてストアドプロシージャが呼び出された場合適用することができます。セクションのためにレコードセットが使用できるようになるには、レコードセットを取得するためにストアドプロシージャを一度実行する必要があります。

 

この例で使用されている、 altova-no-relation.mdb データベースは、 MapForce により与えられる altova.mdb データベースの簡素化されたバージョンです。 Person ならびに Address テーブルや、関連するテーブルが Microsoft Access。altova-no-relation ツリーにあるテーブルは、全て「ルート」レベルのテーブルで、子テーブルはありません。各テーブルのコンテンツは、そのテーブルに含まれるものだけに限定されています。

mf_db_relationships_11

明示的なリレーションシップを持たないデータベース構造

この例の目的は、「Altova」 のオフィスを表示し、各オフィス内の部署を表示することです。altova-no-relation.mdb 内では、主キーと外部キーリレーションシップは、上記のように、明示的には存在しません。 このリレーションシップは、論理的に (明示的に) 存在し、マッピングの目的を完成するためにローカルで内で再作成されます。

 

ローカルリレーションは、データベースをマッピングに追加中に定義することができます、または、既存の データベース コンポーネントを右クリックして、または、コンテキストメニューから「データベース オブジェクトの追加/削除/編集 」 を選択して定義することができます。

 

1.「挿入」 メニューから、「データベース」をクリックします。
2.「接続ウィザード」内の Microsoft Access (ADO) をクリックして、「次へ」をクリックします。
3.<マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ フォルダー内にある altova-no-relation.mdb データベース を参照し、 「接続」をクリックします。
4.ユーザーテーブル チェックボックスを選択します。

mf_db_relationships_12

5.アイコンバーにあるリレーションを追加/編集ボタンをクリックします。
6.リレーションを追加/編集ダイアログボックスが開かれますので、リレーションを追加ボタンをクリックします。

mf_db_relationships_13

7. 2 つのコンボボックスによりテーブルまたはデータベースオブジェクト間のリレーションを選択することができます。左側のコンボボックスが主キー/ユニークキーのテーブルで、右側が外部キーのテーブルになります。2つのドロップダウンリストにより、リレーションを作成するテーブル、または、データベースオブジェクトを選択することができます。 「主/一意のキー」 を保管する左側のリストは、オブジェクトを指定し、右側のリストは外部キー オブジェクトを指定します。主キー/一意キーオブジェクトが MapForce における親オブジェクトとなり、外部キーオブジェクトがデータベースコンポーネントの子として表示されます。(次も参照してください: データベースリレーションシップの処理)。

mf_db_relationships_14

8.「OK」ボタンをクリックしてローカルリレーションの定義を完了し、 「挿入」 ボタンをクリックして、データベースをマッピングエリアへ挿入します。

 

この段階では、 「Altova」 テーブルの 「PrimaryKey」 列と 「Office」 テーブルの 「ForeignKey」 列の間にローカルリレーションシップを作成します。下に表示されるとおり、 「Altova」 ルートテーブルは、 「Office」 テーブルの親になりました。具体的には、 Office テーブルは、 Altova テーブルの下の、自身の展開することのできるアイコンを持つ、関連するテーブルとして表示されています。

mf_db_relationships_15

しかしながら、 マッピングの目的はまだ達成されていません。マッピングの目的を完成するために、下に表示されるとおり、OfficeDepartment テーブル間のリレーションシップを作成するメソッドと同じメソッドを使用します。

mf_db_relationships_16

「リレーションの追加/編集 」 ダイアログボックスを再度開くには、データベースコンポーネントを右クリックし、 「データベース オブジェクトの追加/削除/編集 」 コンテキストメニューから選択します。

 

最後に、ターゲットスキーマをマッピングに以下のように追加します:

 

1.「挿入」 メニューから、「XML スキーマ/ファイルの挿入」をクリックします。
2.<マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\ フォルダー内で使用することのできる Altova_Hierarchical.xsd  ファイルを参照します。サンプル XML ファイルを与えるようにプロンプトされると、「スキップ」をクリックします。ルート要素を選択するようにプロンプトされると、「Altova」 を選択します。

 

ターゲット XML 内のテーブル間のリレーションシップを保持するために、全ての接続は、同じ 「ルート」 テーブルから、階層的 (この場合、 「Altova」) に描かれています。詳細に関しては、次を参照してください: データベースリレーションシップの処理

mf_db_relationships_17

マッピング上記のように、マッピングを定義し、 「出力」 タブをクリックして、結果をプレビューします。マッピングの結果は、このマッピングの目的のとおり、それぞれのオフィスの下にネスとされた部署の要素を表示しています。

mf_db_relationships_18


(C) 2019 Altova GmbH