第1データストアに対する処理を記述したプログラムで定義される永続化対象のうち、前記第1データストアが管理方式の異なる第2データストアを参照することを示す第1属性を、前記プログラムの永続化対象から除外する除外部と、前記プログラムの参照先を識別する第2属性を永続化対象として、前記プログラムに追加する追加部と、前記追加された第2属性に対応する定義情報として、前記参照先を特定する特定情報を前記プログラムに定義する定義部と、前記プログラムに定義される前記第1属性に対応した定義情報を、前記特定情報を用いて前記第2のデータストアから取得する処理の実行を示す情報に変更する変更部とを有することを特徴とするデータストア制御装置。前記定義部は、前記定義情報として、前記第2属性に所定値を設定する設定関数と、前記第1属性に値が設定されている場合には、前記第2のデータストアに対する処理を記述した別プログラムに定義される第2属性の値を応答し、前記第1属性に値が設定されていない場合には、前記設定関数によって設定された所定値を応答する応答関数とを定義することを特徴とする請求項1に記載のデータストア制御装置。前記変更部は、前前記第1属性に所定値を設定し、設定された所定値がNULLであれば前記第2属性の値をNULLに設定し、設定された所定値がNULLでなければ前記第1属性の識別子を前記第2属性に設定する処理の実行を示す情報に、前記プログラムに定義される前記第1属性に対応した設定関数に定義される情報を変更するとともに、前記第1属性の値がNULLでありかつ前記第2属性の値がNULLでなければ前記プライマリキーを用いて取得したオブジェクトを応答し、前記第1属性の値がNULLでない又は前記第2属性の値がNULLであれば前記第1属性に設定されている値を応答する処理の実行を示す情報に、前記プログラムに定義される前記第1属性に対応した応答関数に定義される情報を変更することを特徴とする請求項1に記載のデータストア制御装置。前記第1データストアに配置されるテーブルと、前記第2データストアに配置されるテーブルとを定義した設定ファイルに基づいて、前記各テーブルごとにアクセスするデータストアのアクセッサを生成する生成部と、前記生成されたデータストアごとのアクセッサを用いて、前記第1データストアまたは前記第2データストアに対してアクセスを実行するアクセス実行部とをさらに有することを特徴とする請求項1~3のいずれか一つに記載のデータストア制御装置。前記アクセス実行部は、前記第1データストアまたは前記第2データストアに対する複数のアクセスを同時に開始して同時に終了させることを特徴とする請求項4に記載のデータストア制御装置。コンピュータに、第1データストアに対する処理を記述したプログラムで定義される永続化対象のうち、前記第1データストアが管理方式の異なる第2データストアを参照することを示す第1属性を、前記プログラムの永続化対象から除外し、前記プログラムの参照先を識別する第2属性を永続化対象として、前記プログラムに追加し、前記追加した第2属性に対応する定義情報として、前記参照先を特定する特定情報を前記プログラムに定義し、前記プログラムに定義される前記第1属性に対応した定義情報を、前記特定情報を用いて前記第2のデータストアから取得する処理の実行を示す情報に変更する処理を実行させることを特徴とするデータストア制御プログラム。コンピュータが実行する制御方法であって、第1データストアに対する処理を記述したプログラムで定義される永続化対象のうち、前記第1データストアが管理方式の異なる第2データストアを参照することを示す第1属性を、前記プログラムの永続化対象から除外し、前記プログラムの参照先を識別する第2属性を永続化対象として、前記プログラムに追加し、前記追加した第2属性に対応する定義情報として、前記参照先を特定する特定情報を前記プログラムに定義し、前記プログラムに定義される前記第1属性に対応した定義情報を、前記特定情報を用いて前記第2のデータストアから取得する処理の実行を示す情報に変更することを特徴とするデータストア制御方法。しかしながら、従来の技術では、管理方式が異なるデータストアに跨ってデータを登録する場合に、外部キーを用いてデータストア間が関連付けられるので、データの配置を変更するなどのデータストアの保守作業を効率的に実行できないという問題があった。上述したJPAを例にして説明すると、JPAでは、RDBにテーブルを作成するプログラム内に、RDBのデータが分散KVSを参照していることを外部キーで定義する。すなわち、JPAで複数のデータストアを扱う場合、データストアを跨るリレーションを有するテーブル間での外部参照は、アプリ側で実装することになる。このため、データの配置変更に伴ってアプリを修正するなどデータベース以外の保守を行うことになり、保守を行う範囲が広くなるので、データベースの保守作業を容易に行うことができず、効率的であるとは言い難い。第1の側面では、データストアの保守作業を効率化するデータストア制御装置、データストア制御プログラムおよびデータストア制御方法を提供することを目的とする。第1の案では、データストア制御装置は、第1データストアに対する処理を記述したプログラムで定義される永続化対象のうち、前記第1データストアが管理方式の異なる第2データストアを参照することを示す第1属性を永続化対象から除外する除外部を有する。データストア制御装置は、前記プログラムの参照先を識別する第2属性を永続化対象として、前記プログラムに追加する追加部を有する。データストア制御装置は、前記追加された第2属性に対応する定義情報として、前記参照先を特定する特定情報を前記プログラムに定義する定義部を有する。データストア制御装置は、前記プログラムに定義される前記第1属性に対応した定義情報を、前記特定情報を用いて前記第2のデータストアから取得する処理の実行を示す情報に変更する変更部を有する。データストアの保守作業を効率化できる。以下に、本願の開示するデータストア制御装置、データストア制御プログラムおよびデータストア制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。図1は、実施例1に係るアプリケーションサーバを含むシステムの全体構成を示す図である。図1に示すように、このシステムは、データストアマシン1およびデータストアマシン2各々とアプリケーションサーバ3とがネットワークを介して接続される。このシステムは、アプリケーションサーバ3がデータストアマシン1またはデータストアマシン2に記憶されるデータを用いて各処理を実行するクラウドコンピューティングを実現する。データストアマシン1は、RDBRelationalDatabaseを用いてデータを記憶するサーバである。データストアマシン2は、KVSKeyValueStoreを用いてデータを記憶するサーバである。アプリケーションサーバ3は、除外部3a、追加部3b、定義部3c、変更部3dを有し、データストアマシン1またはデータストアマシン2に対して、テーブル作成、データ登録、データ更新、データ削除等を実行するサーバである。例えば、アプリケーションサーバ3がJPAJava登録商標PersistenceApplicationProgrammingInterfaceを用いて、データストアマシン1とデータストアマシン2とが参照関係にあるテーブルを作成する例について説明する。ここで、はじめに、データストアマシン1とデータストアマシン2にあるテーブルが参照関係にある例を説明する。図2は、テーブルの参照関係を示す図である。図2に示すように、RDBは、社員ID、役職、名前、部署IDから形成されるレコードを有する社員テーブルを有し、KVSは、部署ID、部署名から形成されるレコードを有する社員テーブルを有する。このような状況において、RDBの社員テーブルとKVSの部署テーブルは部署IDで関連付けられており、社員テーブルから関連する部署テーブルのレコードを取得することが出来る。このような関係を参照関係にあるという。次に、アプリケーションサーバ3がJPAを用いて、データストアマシン1にデータストアマシン2を参照するテーブルを生成する第1プログラムを実行したとする。この場合、除外部3aは、データストアマシン1に作成するテーブルに関して定義した永続化対象のうち、データストアマシン1のテーブルが他のテーブルを参照することを示す第1属性をプログラムの永続化対象から除外する。続いて、追加部3bは、データストア1のテーブルからデータストア2のテーブルを識別する第2属性を永続化対象としてプログラムに追加する。そして、定義部3cは、追加された第2属性に対応する定義情報として参照先を特定する特定情報をプログラムに含めるようにする。さらに、変更部3dは、プログラムに定義される第1属性に対応した定義情報を、特定情報を用いてデータストアマシン2から取得する処理の実行を示す情報に変更する。このように、アプリケーションサーバ3は、外部キーが定義されたプログラムが実行された場合でも、外部キーを使わずに、管理方式が異なるデータベース間が結びつくように、プログラム内容を書き換えることができる。したがって、データストアマシン1やデータストアマシン2のデータ配置を変更した場合でも、プログラムを修正しなくて済むので、管理方式が異なるデータストアに跨ってデータが登録されている状況でも、データストアの保守作業を効率的に実行できる。次に、実施例2に係るアプリケーションサーバについて説明する。ここでは、アプリケーションサーバの構成、具体例、処理の流れ、実施例2による効果を説明する。なお、システム構成は図1と同様とするので、システム構成およびアプリケーションサーバ以外は省略する。また、実施例2では、JPAを用いたプログラムで記述されるアプリケーションを例にして説明する。[アプリケーションサーバの構成]図3は、実施例2に係るアプリケーションサーバの構成を示すブロック図である。図3に示すように、アプリケーションサーバ10は、変換前アプリテーブル11、変換後アプリテーブル12、設定ファイルテーブル13、変換前実行部14、永続化クラス変換部15、変換後実行部16、データアクセス部17、データアクセッサ18を有する。なお、変換前アプリテーブル11、変換後アプリテーブル12、設定ファイルテーブル13は、半導体メモリ素子やハードディスクなどに設けられる。また、上記テーブル以外の各制御部は、CPUCentralProcessingUnitなどによって実行される。変換前アプリテーブル11は、開発者が生成したアプリケーションを記憶する。例えば、変換前アプリテーブル11は、RDBでデータを管理するデータストアマシン1に対して、テーブル作成、データ登録、データ更新、データ削除等の処理を実行するアプリケーションを記憶する。また、変換前アプリテーブル11は、KVSでデータを管理するデータストアマシン2に対して、テーブル作成、データ登録、データ更新、データ削除等の処理を実行するアプリケーションを記憶する。別例としては、変換前アプリテーブル11は、データストアマシン1に対するデータ処理であって、データストアマシン2のテーブルを参照する外部キーが設定されたアプリケーションを記憶する。同様に、変換前アプリテーブル11は、データストアマシン2に対するデータ処理であって、データストアマシン1のテーブルを参照する外部キーが設定されたアプリケーソンを記憶する。なお、ここで記憶されるアプリケーションは、アプリケーション開発者やアプリケーションサーバ10の管理者等によって格納される。変換前のアプリケーション11は、変換前アプリケーションに対応付けて、生成された日時や更新回数などを記憶することもできる。変換後アプリテーブル12は、永続化クラス変換部15によって変換されたアプリケーションを記憶する。なお、ここで記憶されるアプリケーションは、後述する永続化クラス変換部15の変更部15dによって格納および更新される。また、変換後アプリテーブル12は、変換後のアプリケーションに対応付けて、変換された日時や変換回数などを記憶することもできる。設定ファイルテーブル13は、データストアごとに配置されるクラスの設定ファイルを記憶する。図4は、設定ファイルテーブル13に記憶される設定ファイルの例を示す図である。図4に示すように、データストアとして、URLUniformResourceLocatorがhttplocaldomainRDBであり、RDBで管理するデータストア名RDB4Updateが設定されている。そして、このデータストアのクラスとしてEntityClass=Departmentが設定されている。同様に、データストアとして、URLがhttplocaldomainKVSであり、KVSで管理するデータストア名KVSが設定されている。そして、このデータストアのクラスとしてEntityClass=Employeeが設定されている。つまり、図4では、DepartmentクラスがRDBに配置され、EmployeeクラスがKVSに配置されることを、マップで管理することが示されている。変換前実行部14は、管理者等の指示操作を受け付けると、指定されたアプリケーションを変換前アプリテーブル11から読み出して実行する。なお、変換前実行部14は、マウスなどの入力装置やタッチパネルなどの出力装置等から指示操作を受け付けることができ、さらに、ネットワークを介して他のサーバから指示操作を受け付けることもできる。実施例2では、変換前実行部14が、データストアマシン1に対するデータ処理であって、データストアマシン2のテーブルを参照する外部キーが設定されたアプリケーションAを実行したとする。永続化クラス変換部15は、除外部15a、追加部15b、定義部15c、変更部15dを有し、これらによって、変換前実行部14によって実行されたアプリケーションを変換して、変換後アプリテーブル12に格納する。除外部15aは、永続化クラスのクラス間の参照関係を表すリレーション属性を永続化対象から除外する。例えば、除外部15aは、データストアマシン1にテーブルを作成するアプリケーションAにおいて、アプリケーションAがデータストアマシン1と管理方式が異なるデータストアマシン2を参照することを示すリレーション属性を永続化対象から除外する。つまり、除外部15aは、アプリケーションA内のクラス1においてリレーションを表すアノテーションで記述された参照先オブジェクトをリレーション属性として特定し、特定したオブジェクトを永続化対象から除外する。言い換えると、除外部15aは、リレーション属性をデータストアマシン1の管理対象から除外する。追加部15bは、クラス1の参照先を識別する識別属性を永続化対象としてアプリケーションAのクラス1に追加する。上記例を用いて説明すると、追加部15bは、除外部15aによってリレーションが管理対象から除外されたアプリケーションAに対して、除外されたリレーションによって指定されていた参照先を識別する識別属性をアプリケーションAに新たに追加する。定義部15cは、追加された識別属性に対応する定義情報として、参照先を特定する特定情報をアプリケーションAに定義する。上記例を用いて説明すると、定義部15cは、識別属性が新たに記述されたアプリケーションAに対して、識別属性のsetterメソッドとgetterメソッドを新たに記述する。変更部15dは、アプリケーションAのクラス1に定義されているリレーション属性の定義内容を、定義部15cによって定義されたプライマリキーを用いてデータストアマシン2から参照先のオブジェクトを取得する処理に変更する。上記例を用いて説明すると、変更部15dは、識別属性が新たに記述されたアプリケーションAに対して、外部キーとして設定されていたリレーション属性に対して定義されるsetterメソッドとgetterメソッドを修正する。そして、変更部15dは、変換した変換後のアプリケーションAを変換後アプリテーブル12に格納する。ここで、定義部15cおよび変更部15dは、図5~図8に示したいずれの条件であっても整合性が取れるように、setterメソッドとgetterメソッドの定義または修正を実行する。図5は、識別属性およびリレーションが共に設定されている例を示す図である。図6は、識別属性には値が設定されているがリレーションが設定されていない例を示す図である。図7は、識別属性には値が設定されていないがリレーションが設定されている例を示す図である。図8は、識別属性およびリレーション共に設定されていない例を示す図である。具体的には、図5は、データストアマシン1のEmployeeテーブルを定義するアプリケーションAに、社員ID=003、役職=一般社員、名前=山田、識別属性dep_id=B001が設定されている。さらに、Employeeテーブルの参照先であるデータストアマシン2のDepartmentテーブルを定義するアプリケーションBに、部署ID=B001、部署名=購買が設定されている状況である。図6は、データストアマシン1のEmployeeテーブルを定義するアプリケーションAに、社員ID=003、役職=一般社員、名前=山田、識別属性dep_id=B001が設定されている。一方、データストアマシン2のDepartmentテーブルを定義するアプリケーションBには何も設定されていない状況である。図7は、データストアマシン1のEmployeeテーブルを定義するアプリケーションAに、社員ID=003、役職=一般社員、名前=山田、識別属性dep_id=NULLが設定されている。さらに、Employeeテーブルの参照先であるデータストアマシン2のDepartmentテーブルを定義するアプリケーションBに、部署ID=B001、部署名=購買が設定されている状況である。図8は、データストアマシン1のEmployeeテーブルを定義するアプリケーションAに、社員ID=003、役職=一般社員、名前=山田、識別属性dep_id=NULLが設定されている。さらに、データストアマシン2のDepartmentテーブルを定義するアプリケーションBに、部署ID=B001、部署名=購買が設定されているが、EmployeeテーブルとDepartmentテーブルとは参照関係にない状況である。したがって、定義部15cおよび変更部15dは、アプリケーションAの変換前と変換後とでテーブル構成等が変わらないように、様々な状況に対応可能なsetterメソッドとgetterメソッドを生成する。なお、具体例を挙げた説明は後述するので、ここでは省略する。図3に戻り、変換後実行部16は、変換後アプリテーブル12から変換後のアプリケーションを読み出して実行する。変換後実行部16は、変換後のアプリケーションAを実行した場合、データストアマシン1に対するテーブル作成要求をデータアクセス部17に出力する。データアクセス部17は、設定ファイルテーブル13に記憶されるクラスごとの設定ファイルに基づいて、クラスごとにアクセスするデータストアを定義するMetaEntityManagerを生成する。例えば、データアクセス部17は、永続化クラスと配置先データストアに対応するアクセッサをマップで保持する。続いて、データアクセス部17は、データストアと配置されるクラスの一覧ファイルとを設定ファイルテーブル13から取り込み、マップ内に、クラスをキーにして配置先データストアのデータアクセッサであるEntityManagerを設定する。そして、データアクセス部17は、作成部17a、更新部17b、参照部17c、トランザクション管理部17dを有し、これらと図9に示したプログラムとにしたがって処理を実行する。図9は、データアクセス部が実行するプログラムの例を示す図である。作成部17aは、変換後実行部16によって実行されたアプリケーションからCreateメッセージを受信した場合、当該アプリケーションのクラスに対応するデータアクセッサを特定する。そして、作成部17aは、特定したデータアクセッサを実行するデータアクセッサ18にCreateメッセージを送信する。例えば、作成部17aは、データストアマシン1へのCreateメッセージを受信した場合に、rdb_EntityManagerにCreateメッセージを送信する。また、作成部17aは、データストアマシン2へのCreateメッセージを受信した場合に、kvs_EntityManagerにCreateメッセージを送信する。更新部17bは、JPAのpersist関数を複数データストアに対応付けたものであり、図9に示した更新用メソッドを実行する。例えば、更新部17bは、変換後実行部16によって実行されたアプリケーションがpersist関数を実行した場合、当該persist関数の実行先アプリケーションのクラスに対応するデータアクセッサを特定する。そして、更新部17bは、特定したデータアクセッサを実行するデータアクセッサ18に処理実行依頼を送信する。一例を挙げると、更新部17bは、persist関数におけるEntityの配置先がデータストアマシン1である場合に、rdb_EntityManagerに更新処理の実行を指示する。また、更新部17bは、persist関数におけるEntityの配置先がデータストアマシン2である場合に、kvs_EntityManagerに更新処理の実行を指示する。参照部17cは、JPAのfind関数を複数データストアに対応付けたものであり、図9に示した参照用メソッドを実行する。例えば、参照部17cは、変換後実行部16によって実行されたアプリケーションがfind関数を実行した場合、当該find関数の実行先アプリケーションのクラスに対応するデータアクセッサを特定する。そして、参照部17cは、特定したデータアクセッサを実行するデータアクセッサ18に処理実行依頼を送信する。一例を挙げると、参照部17cは、find関数におけるクラスの配置先がデータストアマシン1である場合に、rdb_EntityManagerに参照処理の実行を指示する。また、参照部17cは、find関数におけるクラスの配置先がデータストアマシン2である場合に、kvs_EntityManagerに参照処理の実行を指示する。トランザクション管理部17dは、JPAにおけるgetTransactionを複数データストアに対応付けたものであり、図9に示したトランザクションインスタンスの取得を実行する。このトランザクション管理部17dは、図10に例示した複数のトランザクションを管理するMetaTransactionクラスを実装し、各データストアマシンへのトランザクションを同時に実行して終了させるように、各トランザクションを管理する。図10は、図9に示したトランザクションインスタンスの取得の実装例を示す図である。データアクセッサ18は、各データストアマシンに対応したアクセッサを保持し、データアクセス部17から入力された各種処理を対応するアクセッサに振り分ける。そして、データアクセッサ18は、各アクセッサを用いてデータストアに処理を実行する。例えば、データアクセッサ18は、データストアマシン1へのテーブル作成処理、言い換えると、Employeeクラスの実行要求を受信した場合に、データストアマシン1に対応したアクセッサを用いて、テーブル作成処理をデータストアマシン1に実行する。同様に、データアクセッサ18は、データストアマシン2へのテーブル作成処理、言い換えると、Departmentクラスの実行要求を受信した場合に、データストアマシン2に対応したアクセッサを用いて、テーブル作成処理をデータストアマシン2に実行する。[具体例]次に、図11~図13を用いて、プログラム変換の具体例を説明する。図11は、変換前のEmployeeクラスの例を示す図であり、図12は、リレーションを永続化対象から除外して識別属性を記述した例を示す図であり、図13は、変換後のEmployeeクラスの例を示す図である。ここでは、JPAで記述されるプログラムを例にして説明する。変換前実行部14は、図11に示したプログラムを有するアプリケーションを実行する。すると、除外部15aは、図11のAに示したアノテーションOneToOneに記述されるprivateDepartmentdepを、図12に示すようにprivatetransientDepartmentdepに変更する。この結果、Departmentdepが永続化対象から除外され、各データストアマシンの管理対象外となる。追加部15bは、図12に示すように、図11の状態では記述されていなかったprivateStringdep_idをプログラム内に新たに記述する。この結果、識別属性としてString型のdep_idが永続化対象として新たに定義される。そして、定義部15cは、図13のBに示すように、識別属性dep_idのgetterメソッドをプログラム内に新たに定義する。具体的には、定義部15cは、Employeeクラス内のリレーション属性thisdepに値が設定されていれば、リレーション先の識別属性の値を返し、クラス内のリレーション属性thisdepに値が設定されていなければ、識別属性の値を返す。つまり、定義部15cは、リレーション先であるDepatmentクラスに値が設定されている場合には、Depatmentクラスで設定されている識別属性の値、言い換えると、参照先のオブジェクトのプライマリキーを返す。また、定義部15cは、リレーション先であるDepatmentクラスに値が設定されている場合には、Employeeクラスの識別属性の値を返す。また、定義部15cは、図13のCに示すように、識別属性dep_idのsetterメソッドをプログラム内に新たに定義する。具体的には、定義部15cは、識別属性dep_idにthisdep_idの値を設定する。続いて、変更部15dは、図13のDに示すように、Employeeクラス内に既に定義されているリレーション属性depのgettrメソッドを変更する。具体的には、変更部15dは、Employeeクラス内のリレーション属性thisdepにnullが設定され、かつ、Employeeクラス内の識別属性thisdep_idにnullが設定されていなければ、識別属性を用いてデータストアからオブジェクトを取得して応答する。また、変更部15dは、Employeeクラス内のリレーション属性thisdepにnullが設定されていない、または、Employeeクラス内の識別属性thisdep_idにnullが設定されている場合、リレーション属性depの値を応答する。つまり、変更部15dは、クラス内のリレーション属性がnullで、かつ、クラス内の識別属性がnullでなければ、データアクセス部17やデータストアクセッサ18を介して、参照先のオブジェクトを取得するように、getterメソッドを変更する。また、変更部15dは、図13のEに示すように、Employeeクラス内に既に定義されているリレーション属性depのsettrメソッドを変更する。具体的には、変更部15dは、Employeeクラス内のリレーション属性thisdepにリレーション属性depの値を設定する。そして、変更部15dは、設定された値がnullであれば、識別属性dep_idにnullを設定する。また、変更部15dは、設定された値がnullでなければ、リレーション属性のIDを識別属性dep_idに設定する。つまり、変更部15dは、リレーション属性に参照先のオブジェクトを設定した結果、nullでなければ、識別属性に参照先のオブジェクトのプライマリキーを設定し、nullであれば、識別属性にnullを設定するように、setterメソッドを変更するこのようにして変換された変換後のアプリケーションは、変換後実行部16によって実行される。すると、データアクセス部17の作成部17aは、実行された変換後のアプリケーションを解析して、データストアマシン1へのテーブル作成処理をデータアクセッサ18に出力する。データアクセッサ18は、データストアマシン1に対応したデータアクセッサを介して、データストマシン1にテーブル作成を実行する。[処理の流れ]次に、アプリケーションプログラムの変換処理の流れを説明する。図14は、アプリケーション変換処理の流れを示すフローチャートである。図14に示すように、変換前実行部14が変換前のアプリケーションを実行するとS101肯定、追加部15bは、実行された変換前のアプリケーションのリレーションを切断し、当該変換前のアプリケーションに識別属性を追加するS102。続いて、定義部15cは、変換前のアプリケーションに追加した識別属性に対して、図5~図8に示したどの条件でも整合性が取れるように、getterメソッドおよびsetterメソッドを定義した定義内容を変換前のアプリケーションに追加するS103。さらに、変更部15dは、変換前のアプリケーションに既に記述されているリレーション属性のgetterメソッドおよびsetterメソッドを、図5~図8に示したどの条件でも整合性が取れるように修正するS104。ここまでの処理を実行することで、アプリケーションサーバ10は、図11に示した変換前のEmployeeクラスを図13に示した変換後のEmployeeクラスに変換できる。その後、データアクセス部17は、設定ファイルテーブル13に記憶されるクラスごとの設定ファイルに基づいて、クラスごとにアクセスするデータストアを定義するMetaEntityManagerを生成するS105。このとき、データアクセス部17は、トランザクション管理部17dが実行するトランザクションインスタンスも生成する。この処理によって、アプリケーションサーバ10は、図4に示した設定ファイル等を基に、図9に示したMetaEntityManagerおよび図10に示したトランザクションインスタンスを生成する。そして、変換後実行部16は、S101~S104の処理によって変換された変換後のアプリケーションを実行するS106。このとき、データアクセッサ18は、各データストアマシンに対応したアクセッサに、データアクセス部17から入力された各種処理を振り分け、各アクセッサを用いてデータストアに処理を実行する。また、トランザクション管理部17dは、MetaTransactionクラスに基づいて、実行されたトランザクションが同時に実行されて同時に終了するように制御する。[実施例2による効果]実施例2によれば、データストアを跨ぐ参照関係があってもデータ登録が可能になり、ソースコードを修正することなくデータの配置を変更可能になる。各データストアにおけるテーブル作成時にリレーションを外部キーForeignkeyとして設定しなくなり、テーブル作成が可能になる。図15は、クラス変換後のプログラムの実行によって作成されるテーブルの例を示す図である。図15の左図に示すように、アプリケーションサーバ10は、Departmentクラスへのリレーションを有するEmployeeクラスが実行された場合に、Employeeクラスが有するリレーションを永続化対象外として、新たな属性である識別属性dep_idを定義する。アプリケーションサーバ10は、図15の左図にように変換したクラスを実行することで、データストアマシン1に社員ID、役職、名前、dep_idの社員テーブルを生成する。このとき、アプリケーションサーバ10は、社員テーブルのdep_idに、別のクラスによってデータストアマシン2に生成された部署テーブル部署ID、部署名の部署IDを取得して格納する。この結果、アプリケーションサーバ10は、社員テーブルが部署テーブルを参照する関係にある場合でも、社員テーブルに外部キーを設定することなく、参照関係を維持することができる。さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。データストアの種別実施例1や2では、RDBで管理される社員テーブルがKVSで管理される部署テーブルを参照する例について説明したが、これに限定されるものではない。例えば、対象となるDBの種別や参照関係は任意に設定変更できる。また、テーブルの名称等もあくまで例示であり、これに限定されるものではない。処理種別実施例1や2では、テーブル作成を実行するアプリケーションを例にして説明したが、これに限定されるものではない。例えば、テーブルにデータを登録するアプリケーション、テーブルのデータを更新するアプリケーション、テーブルからデータを削除するアプリケーションなどについても、実施例1や2と同様の処理を実行することができる。また、データアクセス部17は、任意によって実行させないように設定し、予め定めたデータアクセス部を用いることもできる。プログラム言語実施例2等では、Java登録商標においてJPAを利用するプログラムを例にして説明したが、これに限定されるものではなく、C言語など任意にプログラムを用いることができる。その場合でも、実施例2等で説明した処理と同様の処理を実行することで、実施例2等と同様の効果を得ることができる。変換例実施例2等では、実行されたアプリケーションAに対して、識別属性や識別属性のsetterメソッド等を追加し、元々あるリレーション属性のsetterメソッドを変更することで、変換後にアプリケーションを生成する例を説明したが、これに限定されるものではない。例えば、変換前のアプリケーションAを複製した複製後のアプリケーションAに対して実施例2等の変換処理を実行してもよく、実施例2等の変換処理によって別ファイルのアプリケーションを生成するようにしてもよい。システムまた、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば追加部15bと定義部15cとを統合するなど各装置の分散統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUCentralProcessingUnitおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。プログラムところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図16は、データストア制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図16に示すように、コンピュータシステム100は、バス101に、CPU102、入力装置103、出力装置104、通信インタフェース105、HDDHardDiskDrive106、RAMRandomAccessMemory107が接続される。入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NICNetworkInterfaceCardなどのインタフェースである。HDD106には、データストア制御プログラム106aととともに、図3に示した各テーブルに記憶される情報が記憶される。記録媒体の例としてROM104を例に挙げたが、HDD、RAM、CD-ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。CPU102は、データストア制御プログラム106aを読み出してRAM107に展開することで、図1や図3で説明した各機能を実行するデータストア制御プロセス107aを動作させる。すなわち、データストア制御プロセス107aは、除外部3a、追加部3b、定義部3c、変更部3dと同様の機能を実行する。また、データストア制御プロセス107aは、永続化クラス変換部15、データアクセス部17と同様の機能も実行することもできる。このようにコンピュータシステム100は、プログラムを読み出して実行することでアドレス学習方法を実行する情報処理装置として動作する。