# データベースのマッピング

### MySQL/PostgreSQL 移行ツール

MySQLおよびPostgreSQLデータベースを変換します- MySQL、PostgreSQL、および主要なSQLデータベースを幅広くサポートしています
- SQLデータベースをNoSQLデータベースに変換する
- コードを記述する必要のない、グラフィカルなデータマッピング機能
- マップデータベースのデータを、他のデータ形式に変換したり、その逆を行ったりします
- データベースのキー設定を指定します

- 瞬時に変換でき、手頃な価格で自動化も可能です
- 出力ログとエラー処理
- データベーステーブルに対する操作を定義する
- データベースに直接問い合わせる
- データベースの入力要素を分類する

## MySQLをPostgreSQLに移行する

MapForceの一般的な用途として、MySQLとPostgreSQLデータベース間のデータ移行が挙げられます。MapForceは、グラフィカルなインターフェースとドラッグ＆ドロップ操作によるデータマッピングツールを提供し、豊富なフィルターやデータ処理機能のライブラリを備えているため、ソースデータの変換を容易に行うことができます。

MapForceに搭載されているデータベース接続ウィザードを使用すると、簡単にデータベースに接続できます。SQLite接続は、SQLiteデータベースファイルへのネイティブで直接的な接続としてサポートされています。別途、ドライバーは必要ありません。PostgreSQL接続は、ネイティブ接続として、また、ODBCやJDBCなどのインターフェース（ドライバー）を介したドライバーベースの接続としてもサポートされています。ネイティブ接続には、いずれのドライバーも必要ありません。

MySQLとPostgreSQLのデータベース構造をマッピングウィンドウに読み込むと、MapForceは自動的にデータベースのスキーマを解釈し、利用可能なデータベースのテーブルやビューを選択できるようにし、テーブル間の関係を認識します。

[MapForceにおけるMySQLからPostgreSQLへの変換](https://www.altova.com/images/mysql-to-postgresql-mapping.png)

データベースのマッピングに必要なコンテンツモデルをすべて読み込んだら、ソースとターゲットの構造を結ぶ線をドラッグして接続するだけで、マッピングを完了できます。

コードを記述することなくMapForceを使用することで、一般的なデータ変換要件を容易に満たすことができます。例えば、以下のようなことが可能です

- PostgreSQLをMySQLに変換する
- PostgreSQLからMySQLへの移行
- PostgreSQLからMySQLへのデータ移行
- MySQLをPostgreSQLに移行する

### データのフィルタリングと処理 {#filtering}

多くのデータベースのマッピングでは、ソースとターゲット間でデータを変換する必要があり、その際、ブール条件やSQL、SQL/XMLのステートメントに基づいて処理が行われます。 論理的な比較、数学的な計算、文字列操作などが必要になる場合もあります。 また、特定の値をデータベースに持つデータを確認したり、データに対してその他の変更を加えることもあります。 上のスクリーンショットでは、ソースデータモデルとターゲットデータモデルを結ぶ線の中間に位置するボックスが、データ処理関数を示しています。

データ処理機能により、多様な実用的なデータ変換ニーズに対応するため、高度なデータベースのマッピングをリアルタイムで実行できます。 

### 瞬時にデータベースを変換します {#convert}

マッピングが定義されると、内蔵されたMapForceエンジンにより、ワンクリックで結果を確認し、保存することができます。

MySQLからPostgreSQLへの変換設定を行うと、SQLスクリプト（例えば、SELECT、INSERT、UPDATE、およびDELETE文）が生成され、これらのスクリプトがMapForce内で直接、対象のデータベースに対して実行されます。

出力結果を確認した後、MapForce Serverを通じて、データ変換プロセスを自動化するオプションを選択できます。 

## データベース出力のログ記録（トレース）

データベース出力の追跡機能により、マッピング処理の実行時に、マッピングプロジェクトがPostgreSQLまたはMySQLデータベースに行ったすべての変更を簡単に記録することができます。 

トレース機能が有効になっている場合、データベースへの挿入や更新といった操作、またはエラーが発生すると、それらの情報がXMLファイルに記録されます。後でこのファイルを分析したり、自動的に処理したりすることができます。 

データベースの追跡機能は、データベース全体、テーブル、ストアドプロシージャ、またはデータベースの特定のフィールドのレベルで有効にすることができます。 すべてのメッセージを追跡するか、エラーのみを追跡するか、または追跡機能を完全に無効にすることも可能です。 

希望するトレースレベルを選択すると、マッピングプロジェクト内の該当するデータベースコンポーネントに、ログ構造を示すXMLツリーが追加されます。もしログファイルをXML以外の形式で保存したい場合は、MapForceがサポートする他のデータ形式（例えば、テキストファイルや別のデータベースなど）にデータをマッピングすることができます。 

マッピングの結果をプレビューするために「出力」ボタンをクリックすると、マッピングが実行された際に表示されるトレースログの例も確認できます。 

[データベース変換のための、データベースの動作を追跡し、その情報をログに出力する機能](https://www.altova.com/images/database-tracing.png)

## データベーストランザクションのエラー処理

MapForceは、データベース変換中にエラーが発生した場合、影響を受けたデータベースの一部をロールバックする機能を提供します。また、必要に応じて、残りのマッピング処理を続行することも可能です。 

データベースのマッピング処理中に、エラーが発生することがあります。しかし、そのエラーがデータベース全体の処理を停止させるものではなく、例えば、特定のデータベースの制約によって、無効なデータが挿入または更新されるのを防ぐ場合に、エラーが発生することがあります。 

データベースのトランザクション処理を有効にすると、データベースコンポーネントが行うすべての変更がトランザクション内に包含され、エラーが発生した場合はロールバックされます。また、エラー発生時に、マッピング処理の残りの部分を続行するか、それともマッピング処理の実行を停止するかを選択できます。トランザクションは、データベースコンポーネントレベルと、テーブル操作レベルの両方で有効にすることができます。 

[エラー処理のためにデータベースのトランザクション機能を有効にする](https://www.altova.com/images/database-transactions.png)

これは、マッピング設計者が、有効な入力データを確実に取得し、同時に無効なデータは無視したい場合に非常に役立ちます。

## 高度なデータベースマッピング機能

MapForceは、データベースのマッピングと統合機能に加え、データベースへの直接的なクエリを実行するための「データベースクエリ」タブを備えています。このタブを使用してデータベースに接続すると、MapForceはブラウザウィンドウ内に、そのデータベースのテーブルを階層構造のツリー形式で表示します。MapForceは、MySQLやPostgreSQLだけでなく、以下のようなデータベースにも特化したサポートを提供しています 

- 火鳥
- IBM DB2 for iSeries
- IBM DB2®
- インフォミクス®
- MariaDB
- Microsoft Access (マイクロソフト アクセス)™
- Microsoft® Azure SQL (Azure SQLデータベース)
- Microsoft® SQL Server®
- MySQL®
- Oracle®
- PostgreSQL (ポストグレス)
- Progress OpenEdge
- SQLite
- サイベース®
- テラデータ
- MongoDB
- CouchDB 

[データベース変換のマッピングを定義しながら、データベースに対してクエリを実行します](https://www.altova.com/images/mapforce_database_query.png)

その後、SQLエディタのタブを使用して、既存のSQLファイルを開くか、ドラッグ＆ドロップや自動補完機能を使ってSQL文を新規作成し、SQL文を表示、編集、実行することができます。

SQLスクリプトを実行し、その結果をテーブル形式で表示することができます。また、取得したデータとSQLスクリプトをそれぞれ個別のファイルに保存することも可能です。

### データベースのキー設定 {#db-key}

MapForceのデータベースキー設定では、データマッピングの対象となるデータベースに、主キーおよび外部キーの値がどのように追加されるかをカスタマイズできます。キーの値は、MapForce内で直接入力することも、データベースシステムに自動的に値を生成させることも可能です。

データベースのテーブルで、主キーや外部キーの関係が明示的に定義されていない場合でも、MapForceを使用することで、元のデータに影響を与えることなく、これらの関係を直接定義することができます。

### データベーステーブルに対する操作を定義する {#db-table-actions}

データベースにデータをマッピングする際、MapForceでは、MySQLまたはPostgreSQLデータベースへのデータ書き込み方法を制御するために、データベーステーブルの操作を選択できます。これにより、最も高度なデータ管理タスクを自動化するための柔軟性が得られます。

使いやすい「データベーステーブル操作」ダイアログボックスを使用すると、選択したテーブル内の列を定義し、データベースで実行する操作（挿入、更新、削除）を決定することができます。

これにより、MapForceを通じて、XML、データベース、EDI、XBRL、テキストファイル、Excel、JSON、JSON5、Webサービス、またはその他のデータベースデータに対して、データベースのレコードを前例のない柔軟性で操作することが可能になります。

MapForceで、データベーステーブルの操作方法を設定する方法を学びましょう

[MapForceで、データベーステーブルの操作方法を学びましょう](https://www.youtube.com/watch?v=hHQmWdWVvgY)

### SQL ストアドプロシージャのサポート {#stored-procedures}

MapForceは、ストアドプロシージャを、入力コンポーネント（結果を提供するプロシージャ）または出力コンポーネント（データを挿入または更新するプロシージャ）として強力にサポートしています。また、ストアドプロシージャを関数のように呼び出すことも可能です。これにより、ユーザーは入力データを指定し、ストアドプロシージャを実行し、その出力データを他のコンポーネントに読み込んでマッピングすることができます。

このスクリーンショットは、SQL Serverにおけるストアドプロシージャが、XMLファイルを生成するためにどのように使用されているかを示しています。このプロシージャは、入力パラメータとして指定された従業員ID（この例では定数67）の上位にある組織構造におけるすべてのマネージャーの情報を表形式で返します。

そのパラメータは、計算によって得られた値として、あるいはデータベース内の別の場所から取得したデータ要素として提供することも可能です。

MapForceは、コンテキストメニューを提供し、ユーザーはこれを利用して保存されたプロシージャを実行し、マッピングに使用するデータ構造を表示することができます。 図示されたマッピングを実行すると、XML形式の出力が生成されます。

[高度なデータマッピングツールには、ストアドプロシージャのサポート機能が含まれています](https://www.altova.com/images/mapforce_stored_procedure.png)

### データベース入力コンポーネントを分類する {#data_sorting}

データベース内で実行されるSQLクエリだけでは、複雑なデータマッピング作業を常に十分に行えるとは限りません。MapForceは、SQL-WHERE/ORDERコンポーネントを通じて、データベースからの入力データに対して追加の処理が必要な場合、またはマッピングにおける他のデータや条件がデータの並び順に影響を与える場合に、データベースのソート機能を強化します。

### データベーステーブル操作におけるNULL値のサポート {#null-values}

データベーステーブル操作ダイアログでは、NULL値の比較がサポートされています。NULL値を考慮した比較機能は、NULL値を含むデータベースを扱う際に、より適切な方法を提供します。MapForceのユーザーは、データベースのマッピング設定を調整することで、マッピングに関わるデータベースの種類に応じたルールに基づいて、NULL値を考慮したデータ比較を行うことができます。

右側に表示されているデータマッピングは、重複したデータを挿入することなく、対象テーブルを更新することを目的としています。両方のテーブルは、メールアドレスのフィールドがNULL値を許容するように定義されているため、各テーブルに、名前が一致するもののメールアドレスがNULLであるレコードが存在する可能性があります。

「アクション」アイコンをクリックすると、対象のデータベーステーブルに対して「データベースアクション」ダイアログが開きます。メールアドレスのフィールドにある「NULLと等しい」チェックボックスをオンにすると、MapForceはデータマッピングの際に、ソースとターゲットのNULL値を等しいものとして扱います。ただし、これはデータベースのルールでは等しくないと見なされる場合でも適用されます。

[MapForceにおけるNULL値に対応したデータベースマッピング機能](https://www.altova.com/images/mapforce-null-actions.png)

## MapForce Serverを使用することで、データベースのマッピング処理を自動化できます

Altova [MapForce Server](../mapforce-server.md) この製品には、MapForce用に開発された組み込みデータ変換エンジンが含まれており、サーバー環境での動作を大幅に強化しています。MapForce Serverは、以下の機能を提供します [データ変換処理](mapforce.md#powerful) PostgreSQLからMySQL、またはXML、データベース、EDI、XBRL、テキストファイル、Excel、JSON、Shopify、および/またはWebサービスなど、さまざまな形式間でデータ変換を行うことができます。この際、MapForceで定義されたデータマッピングに基づいて、事前に処理および最適化されたデータマッピングを格納した実行ファイルを使用します。MapForce Serverは、並列処理、マルチスレッド、バルクSQL挿入、クロスプラットフォーム対応など、サーバー機能を通じてデータ変換をさらに高度化します。

前処理を行うことで、ほとんどのデータ変換処理において、処理速度の向上とメモリ使用量の削減を実現できます。MapForce Serverは、FlowForce Serverによって管理され、スタンドアロン環境でコマンドラインから実行することも、APIを通じてプログラム的に実行することも可能です。

MapForceでデータマッピングを設計・テストした後、MapForce Serverによって実行することで、繰り返し行われるデータ変換を自動化し、ビジネスプロセスを効率化することができます。

[MapForceを使用して、データベースのマッピング作業を自動化します](https://www.altova.com/images/mapforce-server-execution-file.png)

MapForceは、データマッピングを事前に処理し、最適化します。そして、それらをMapForce Serverのコマンドライン実行用のファイルに保存し、MapForce Serverによって実行できるようにします。また、これらのマッピング情報をFlowForce Serverのジョブで使用するためにアップロードすることも可能です。

MapForce ServerがFlowForce Serverによって管理されている場合、データマッピングは、FlowForce Serverのジョブの一部として定義されたトリガーに基づいて、FlowForce Serverのジョブステップとして実行されます。例えば、新しいXBRLインスタンスドキュメントが特定のディレクトリに配置されると、それがトリガーとなり、FlowForce Serverの複数のステップからなるジョブが開始されます。このジョブは、まずRaptorXML+XBRL Serverを使用してファイルを検証し、次にMapForce Serverを実行してXBRLから特定のデータを抽出し、データベースに挿入します。


## Call to Action

[既存のお客様は、こちらから最新バージョンにアップデートできます。](download.md)
[Altova MapForceの完全機能版の無料30日間トライアル版を今すぐダウンロードしてください！](download.md)

