(57)【特許請求の範囲】
【請求項１】
アプリケーションを自動生成するために必要な情報の設定を支援する設定情報入力支援装置において、
前記アプリケーションにおいて用いられる複数のカラムから構成される第１のテーブルを示す第１のテーブル情報であって当該カラムの各々が主キーであるか否かを示す主キー情報および当該カラムの各々のカラム名を含む第１のテーブル情報と、前記アプリケーションにおいて用いられる複数のカラムから構成される第２のテーブルを示す第２のテーブル情報であって当該カラムの各々が主キーであるか否かを示す主キー情報および当該カラムの各々のカラム名を含む第２のテーブル情報とを含む複数のテーブル情報が設定されている入力情報ファイルと、
前記入力情報ファイルに設定されている複数のテーブル情報を取得するテーブル情報取得手段と、
前記テーブル情報取得手段によって取得された複数のテーブル情報のうちの第１のテーブル情報に含まれる主キー情報に基づいて、当該第１のテーブル情報によって示される第１のテーブルを構成する複数のカラムのうちの１つである対象カラムが主キーであるかを判定する第１の判定手段と、
前記対象カラムが主キーでないと前記第１の判定手段によって判定された場合、当該対象カラムから構成される第１のテーブルを構成する複数のカラムのうち当該第１のテーブルにおいて主キーであるカラムを、前記第１のテーブル情報に含まれる主キー情報に基づいて特定する第１の特定手段と、
前記第１の特定手段によって特定されたカラムを前記第１のテーブルにおける外部キーの候補として取得する第１の外部キー候補取得手段と、
前記対象カラムが主キーでないと前記第１の判定手段によって判定された場合、当該対象カラムから構成される第１のテーブル以外の第２のテーブルを構成する複数のカラムのうち当該第２のテーブルにおいて主キーであるカラムを、前記テーブル情報取得手段によって取得された複数のテーブル情報のうちの第２のテーブル情報に含まれる主キー情報に基づいて特定する第２の特定手段と、
前記第１のテーブル情報に含まれる前記対象カラムのカラム名および前記第２のテーブル情報に含まれる前記第２の特定手段によって特定されたカラムのカラム名が同一であるかを判定する第２の判定手段と、
前記対象カラムのカラム名および前記第２の特定手段によって特定されたカラムのカラム名が同一であると前記第２の判定手段によって判定された場合、当該第２の特定手段によって特定されたカラムを前記第１のテーブルにおける外部キーの候補として取得する第２の外部キー候補取得手段と、
前記第１および第２の外部キー候補取得手段によって外部キーの候補として取得されたカラムを提示する提示手段と
を具備することを特徴とする設定情報入力支援装置。
【請求項２】
ユーザの操作に応じて、前記提示されたカラムを前記第１のテーブルにおける外部キーとして決定する決定手段と、
前記決定されたカラムを外部キーとして前記入力情報ファイルに設定する設定手段と
を更に具備することを特徴とする請求項１記載の設定情報入力支援装置。
【請求項３】
前記設定手段は、
前記提示されたカラムのうち前記第１の外部キー候補取得手段によって取得されたカラムが前記外部キーとして決定された場合、前記テーブル情報取得手段によって取得された複数のテーブル情報のうちの第１のテーブル情報に含まれる当該カラムのカラム名を外部キー名として前記入力情報ファイルに設定し、当該第１のテーブル情報によって示される第１のテーブルを当該外部キーによって参照される外部キー参照先テーブルとして前記入力情報ファイルに設定し、当該外部キー参照先テーブルとして前記入力情報ファイルに設定された第１のテーブルを構成する複数のカラムのうち当該第１のテーブルにおいて主キーであるカラムを外部キー参照先構成列として前記入力情報ファイルに設定し、
前記提示されたカラムのうち前記第２の外部キー候補取得手段によって取得されたカラムが前記外部キーとして決定された場合、前記テーブル情報取得手段によって取得された複数のテーブル情報のうちの第２のテーブル情報に含まれる当該カラムのカラム名を外部キー名として前記入力情報ファイルに設定し、当該第２のテーブル情報によって示される第２のテーブルを当該外部キーによって参照される外部キー参照先テーブルとして前記入力情報ファイルに設定し、当該外部キー参照先テーブルとして前記入力情報ファイルに設定された第２のテーブルを構成する複数のカラムのうち当該第２のテーブルにおいて主キーであるカラムを外部キー参照先構成列として前記入力情報ファイルに設定する
ことを特徴とする請求項２記載の設定情報入力支援装置。
【請求項４】
表示形式候補取得手段を更に具備し、
前記入力情報ファイルに設定されている第１のテーブル情報は、当該第１のテーブル情報によって示される第１のテーブルを構成するカラムの各々の桁数を更に含み、
前記入力情報ファイルに設定されている第２のテーブル定義情報は、当該第２のテーブル情報によって示される第２のテーブルを構成するカラムの各々の桁数を更に含み、
前記表示形式候補取得手段は、前記第１または第２のテーブル情報に含まれる前記設定手段によって外部キー参照先構成列として前記入力情報ファイルに設定されたカラムの桁数に基づいて、前記設定手段によって外部キー参照先テーブルとして前記入力情報ファイルに設定された第１または第２のテーブルの表示形式の候補を取得し、
前記提示手段は、前記表示形式候補取得手段によって取得された表示形式の候補を更に提示し、
前記決定手段は、前記ユーザの操作に応じて、前記表示形式の候補を、前記外部キー参照先テーブルとして前記入力情報ファイルに設定された前記第１または第２のテーブルの表示形式として決定し、
前記設定手段は、前記決定された表示形式を前記入力情報ファイルに設定する
ことを特徴とする請求項３記載の設定情報入力支援装置。
【請求項５】
表示項目候補取得手段を更に具備し、
前記入力情報ファイルに設定されている第１のテーブル情報は、当該第１のテーブル情報によって示される第１のテーブルを構成するカラムの各々が排他制御用のカラムであるか否かを示す排他制御情報を更に含み、
前記入力情報ファイルに設定されている第２のテーブル情報は、当該第２のテーブル情報によって示される第２のテーブルを構成するカラムの各々が排他制御用のカラムであるか否かを示す排他制御情報を更に含み、
前記表示項目候補取得手段は、前記第１または第２のテーブル情報に含まれる排他制御情報に基づいて、前記設定手段によって外部キー参照先テーブルとして前記入力情報ファイルに設定された第１または第２のテーブルを構成する複数のカラムのうち排他制御用のカラムでないカラムを当該第１または第２のテーブルの表示項目の候補として取得し、
前記提示手段は、前記表示項目候補取得手段によって取得された表示項目の候補を更に提示し、
前記決定手段は、前記ユーザの操作に応じて、前記表示項目の候補を、前記外部キー参照先テーブルとして前記入力情報ファイルに設定された第１または第２のテーブルの表示項目として決定し、
前記設定手段は、前記決定された表示項目を前記入力情報ファイルに設定する
ことを特徴とする請求項４記載の設定情報入力支援装置。
【請求項６】
アプリケーションにおいて用いられる複数のカラムから構成される第１のテーブルを示す第１のテーブル情報であって当該カラムの各々が主キーであるか否かを示す主キー情報および当該カラムの各々のカラム名を含む第１のテーブル情報と、前記アプリケーションにおいて用いられる複数のカラムから構成される第２のテーブルを示す第２のテーブル情報であって当該カラムの各々が主キーであるか否かを示す主キー情報および当該カラムの各々のカラム名を含む第２のテーブル情報とを含む複数のテーブル情報が設定されている入力情報ファイルを有する外部記憶装置と、当該外部記憶装置を利用するコンピュータとから構成される設定情報入力支援装置において、前記コンピュータによって実行されるプログラムであって、
前記コンピュータに、
前記入力情報ファイルに設定されている複数のテーブル情報を取得するステップと、
前記取得された複数のテーブル情報のうちの第１のテーブル情報に含まれる主キー情報に基づいて、当該第１のテーブル情報によって示される第１のテーブルを構成する複数のカラムのうちの１つである対象カラムが主キーであるかを判定するステップと、
前記対象カラムが主キーでないと判定された場合、当該対象カラムから構成される第１のテーブルを構成する複数のカラムのうち当該第１のテーブルにおいて主キーであるカラムを、前記第１のテーブル情報に含まれる第１の主キー情報に基づいて特定するステップと、
前記特定されたカラムを前記第１のテーブルにおける外部キーの候補として取得するステップと、
前記対象カラムが主キーでないと判定された場合、当該対象カラムから構成される第１のテーブル以外の第２のテーブルを構成する複数のカラムのうち当該第２のテーブルにおいて主キーであるカラムを、前記取得された複数のテーブル情報のうちの第２のテーブル情報に含まれる主キー情報に基づいて特定するステップと、
前記第１のテーブル情報に含まれる前記対象カラムのカラム名および第２のテーブル情報に含まれる前記特定された第２のテーブルにおいて主キーであるカラムのカラム名が同一であるかを判定するステップと、
前記対象カラムのカラム名および前記特定された第２のテーブルにおいて主キーであるカラムのカラム名が同一であると判定された場合、当該特定された第２のテーブルにおいて主キーであるカラムを前記第１のテーブルにおける外部キーの候補として取得するステップと、
前記外部キーの候補として取得されたカラムを提示するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、アプリケーションの自動生成に必要な情報の設定を支援する設定情報入力支援装置およびプログラムに関する。
【背景技術】
【０００２】
一般的に、アプリケーションは、リレーショナルデータベースを用いる場合が多い。このリレーショナルデータベースでは、複数のテーブル間に関係がある場合がある。
【０００３】
例えば従業員テーブルに部署番号のカラムがあり、部署テーブルに部署番号および部署名のカラムがある場合、当該従業員テーブルと部署テーブルとは部署番号を介して関係があるといえる。また、従業員テーブルの部署番号から部署テーブルの部署番号を介して部署名を参照することができる。このため、従業員テーブルと部署テーブルとの間では参照関係があるともいえる。なお、このような場合における従業員テーブルの部署番号は、当該従業員テーブルにおいて外部キーと呼ばれる。
【０００４】
このような参照関係があるテーブルにアクセスするようなアプリケーションを作成する場合、参照先となるテーブルの表示形式および参照画面の表示内容等が多様になる。
【０００５】
ところで、近年、アプリケーションを自動生成するシステムが増加している。そこで、上記したようなアプリケーションを自動生成する場合、当該自動生成されるアプリケーションのために多様な表示形式を指定するためには、入力情報としてユーザが多くの項目を設定する必要がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３１８２６０号公報
【特許文献２】特開２００５−０５５９５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記したように、リレーショナルデータベースのテーブル間の参照関係に対応したアプリケーションを自動生成するためには、ユーザが多くの項目を設定する必要がある。
【０００８】
しかしながら、このような多くの項目の全てをユーザが設定しなければならないとすると手間が掛かり、当該ユーザにとっては非常に煩雑である。
【０００９】
そこで、本明細書で開示された実施形態では、アプリケーションの自動生成に必要な情報の設定を支援することが可能な設定情報入力支援装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施形態によれば、アプリケーションを自動生成するために必要な情報の設定を支援する設定情報入力支援装置が提供される。
【００１１】
実施形態に係る設定情報入力支援装置は、前記アプリケーションにおいて用いられる複数のカラムから構成される第１のテーブルを示す第１のテーブル情報であって当該カラムの各々が主キーであるか否かを示す主キー情報および当該カラムの各々のカラム名を含む第１のテーブル情報と、前記アプリケーションにおいて用いられる複数のカラムから構成される第２のテーブルを示す第２のテーブル情報であって当該カラムの各々が主キーであるか否かを示す主キー情報および当該カラムの各々のカラム名を含む第２のテーブル情報とを含む複数のテーブル情報が設定されている入力情報ファイルを具備する。
【００１２】
実施形態に係る設定情報入力支援装置は、前記入力情報ファイルに設定されている複数のテーブル情報を取得するテーブル情報取得手段を具備する。
【００１３】
実施形態に係る設定情報入力支援装置は、前記テーブル情報取得手段によって取得された複数のテーブル情報のうちの第１のテーブル情報に含まれる主キー情報に基づいて、当該第１のテーブル情報によって示される第１のテーブルを構成する複数のカラムのうちの１つである対象カラムが主キーであるかを判定する第１の判定手段を具備する。
【００１４】
実施形態に係る設定情報入力支援装置は、前記対象カラムが主キーでないと前記第１の判定手段によって判定された場合、当該対象カラムから構成される第１のテーブルを構成する複数のカラムのうち当該第１のテーブルにおいて主キーであるカラムを、前記第１のテーブル情報に含まれる主キー情報に基づいて特定する第１の特定手段を具備する。
【００１５】
実施形態に係る設定情報入力支援装置は、前記第１の特定手段によって特定されたカラムを前記第１のテーブルにおける外部キーの候補として取得する第１の外部キー候補取得手段を具備する。
【００１６】
実施形態に係る設定情報入力支援装置は、前記対象カラムが主キーでないと前記第１の判定手段によって判定された場合、当該対象カラムから構成される第１のテーブル以外の第２のテーブルを構成する複数のカラムのうち当該第２のテーブルにおいて主キーであるカラムを、前記テーブル情報取得手段によって取得された複数のテーブル情報のうちの第２のテーブル情報に含まれる主キー情報に基づいて特定する第２の特定手段を具備する。
【００１７】
実施形態に係る設定情報入力支援装置は、前記第１のテーブル情報に含まれる前記対象カラムのカラム名および前記第２のテーブル情報に含まれる前記第２の特定手段によって特定されたカラムのカラム名が同一であるかを判定する第２の判定手段を具備する。
【００１８】
実施形態に係る設定情報入力支援装置は、前記対象カラムのカラム名および前記第２の特定手段によって特定されたカラムのカラム名が同一であると前記第２の判定手段によって判定された場合、当該第２の特定手段によって特定されたカラムを前記第１のテーブルにおける外部キーの候補として取得する第２の外部キー候補取得手段を具備する。
【００１９】
実施形態に係る設定情報入力支援装置は、前記第１および第２の外部キー候補取得手段によって外部キーの候補として取得されたカラムを提示する提示手段を具備する。
【図面の簡単な説明】
【００２０】
【図１】実施形態に係る設定情報入力支援装置のハードウェア構成を示すブロック図。
【図２】図１に示す設定情報入力支援装置３０の主として機能構成を示すブロック図。
【図３】図２に示す入力情報ファイル２２に設定されている第１のテーブル情報２２１のデータ構造の一例を示す図。
【図４】図２に示す入力情報ファイル２２に設定されている第２のテーブル情報２２２のデータ構造の一例を示す図。
【図５】参照先テーブル定義情報に含まれる参照時の表示項目の一例を示す図。
【図６】外部キー参照先テーブルの参照時の画面の一例を示す図。
【図７】参照先テーブル定義情報に含まれる参照時の表示項目の一例を示す図。
【図８】外部キー参照先テーブルの参照時の画面の一例を示す図。
【図９】参照先テーブル定義情報に含まれる参照時の表示項目の一例を示す図。
【図１０】外部キー参照先テーブルの参照時の画面の一例を示す図。
【図１１】図２に示す入力値候補取得ルール保持部２３に保持されているルールのデータ構造の一例を示す図。
【図１２】本実施形態に係る設定情報入力支援装置３０の処理手順を示すフローチャート。
【図１３】第１の入力値候補取得処理の処理手順を示すフローチャート。
【図１４】第１の入力値候補取得処理の処理手順を示すフローチャート。
【図１５】入力値決定部３３に対して出力される外部キーの入力値の候補のデータ構造の一例を示す図。
【図１６】第１の入力値候補選択画面の一例を示す図。
【図１７】図１６に示す第１の入力値候補選択画面におけるプルダウン表示の一例を示す図。
【図１８】第２の入力値候補取得処理の処理手順を示すフローチャート。
【図１９】入力値決定部３３に対して出力される外部キー参照先テーブルの入力値の候補のデータ構造の一例を示す図。
【図２０】第２の入力値候補選択画面の一例を示す図。
【図２１】図２０に示す第２の入力値候補選択画面におけるプルダウン表示の一例を示す図。
【図２２】第２の入力値候補取得処理の処理手順を示すフローチャート。
【図２３】入力値決定部３３に対して出力される外部キー参照先構成列の入力値の候補のデータ構造の一例を示す図。
【図２４】第３の入力値候補選択画面の一例を示す図。
【図２５】図２４に示す第３の入力値候補選択画面におけるプルダウン表示の一例を示す図。
【図２６】第４の入力値候補取得処理の処理手順を示すフローチャート。
【図２７】入力値決定部３３に対して出力される参照時の表示形式の入力値の候補のデータ構造の一例を示す図。
【図２８】第４の入力値候補選択画面の一例を示す図。
【図２９】図２８に示す第４の入力値候補選択画面におけるプルダウン表示の一例を示す図。
【図３０】第５の入力値候補取得処理の処理手順を示すフローチャート。
【図３１】入力値決定部３３に対して出力される参照時の表示項目の入力値の候補のデータ構造の一例を示す図。
【図３２】第５の入力値候補選択画面の一例を示す図。
【図３３】図３２に示す第５の入力値候補選択画面におけるプルダウン表示の一例を示す図。
【発明を実施するための形態】
【００２１】
以下、図面を参照して、実施形態について説明する。
【００２２】
図１は、本実施形態に係る設定情報入力支援装置のハードウェア構成を示すブロック図である。図１に示すように、コンピュータ１０は、例えばハードディスクドライブ（ＨＤＤ：Hard Disk Drive）のような外部記憶装置２０と接続されている。この外部記憶装置２０は、コンピュータ１０によって実行されるプログラム２１を格納する。コンピュータ１０および外部記憶装置２０は、設定情報入力支援装置３０を構成する。
【００２３】
この設定情報入力支援装置３０は、例えばアプリケーションを自動生成するために必要な情報の設定を支援するために用いられる。
【００２４】
図２は、図１に示す設定情報入力支援装置３０の主として機能構成を示すブロック図である。
【００２５】
図２に示すように、設定情報入力支援装置３０は、入力情報取得部３１、入力値候補取得部３２、入力値決定部３３および入力情報反映部３４を含む。本実施形態において、これらの各部３１〜３４は、図１に示すコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。このプログラム２１は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム２１が、例えばネットワークを介してコンピュータ１０にダウンロードされても構わない。
【００２６】
また、設定情報入力支援装置３０は、入力情報ファイル２２および入力値候補取得ルール保持部２３を含む。本実施形態において、入力情報ファイル２２および入力値候補取得ルール保持部２３は、例えば外部記憶装置２０に格納される。
【００２７】
入力情報ファイル２２には、例えばアプリケーションを自動生成するために必要な情報が設定される。この入力情報ファイル２２に設定された情報は、例えばアプリケーションを自動生成する際に用いられる。
【００２８】
入力情報ファイル２２には、自動生成されるアプリケーションにおいて用いられる複数のカラムから構成されるテーブルを示すテーブル情報が当該テーブル毎に設定されている。入力情報ファイル２２に設定されているテーブル情報には、当該テーブル情報によって示されるテーブルを構成するカラムの各々が主キーであるか否かを示す主キー情報および当該カラムのカラム名等が含まれる。なお、テーブル情報に含まれる主キー情報およびカラム名等の情報は、例えばユーザによって予め設定（入力）さている。
【００２９】
なお、入力情報ファイル２２には、予め設定されている情報以外に、テーブル情報によって示されるテーブルと例えば参照関係があるテーブル（以下、参照先テーブルと表記）についての情報等がアプリケーションを自動生成するために必要な情報として設定される。
【００３０】
入力情報取得部３１は、入力情報ファイル２２に設定されているテーブル毎のテーブル情報（つまり、複数のテーブル情報）を、当該入力情報ファイル２２から取得する。ここで、入力情報取得部３１によって取得される複数のテーブル情報は、上記したようにユーザによって予め入力（設定）されている情報（入力情報）である。
【００３１】
入力値候補取得ルール保持部２３には、入力値候補取得部３２によって用いられるルールが予め保持されている。この入力値候補取得ルール保持部２３に保持されているルールの詳細については後述する。
【００３２】
入力値候補取得部３２は、入力情報取得部３１によって取得された複数のテーブル情報（テーブル毎のテーブル情報）および入力値候補取得ルール保持部２３に保持されているルールに基づいて、入力情報ファイル２２に設定すべき値（入力値）の候補を取得する処理を実行する。
【００３３】
入力値決定部３３は、入力値候補取得部３２によって取得された入力値の候補を出力する。入力値決定部３３は、ユーザの操作に応じて、出力された入力値の候補を入力情報ファイル２２に設定すべき値（つまり、入力値）として決定する。
【００３４】
入力情報反映部３４は、入力値決定部３３によって決定された入力値を入力情報ファイル２２に設定（反映）する。
【００３５】
図３および図４を参照して、図２に示す入力情報ファイル２２のデータ構造について説明する。上述したように、入力情報ファイル２２には、アプリケーションにおいて用いられるテーブル毎のテーブル情報（つまり、複数のテーブル情報）が設定される。
【００３６】
入力情報ファイル２２に設定されるテーブル情報の各々には、当該テーブル情報によって示されるテーブルの構造を定義するテーブル定義情報および当該テーブルと参照関係があるテーブル（参照先テーブル）についての情報（以下、参照先テーブル定義情報と表記）が含まれる。
【００３７】
ここでは、入力情報ファイル２２には、第１および第２のテーブル情報を含む複数のテーブル情報が設定されているものとする。以下、第１のテーブル情報によって示されるテーブルを第１のテーブル、第２のテーブル情報によって示されるテーブルを第２のテーブルと称する。
【００３８】
図３は、入力情報ファイル２２に設定されている第１のテーブル情報２２１のデータ構造の一例を示す。
【００３９】
図３に示す第１のテーブル情報２２１は、第１のテーブル定義情報２２１ａおよび第１の参照先テーブル定義情報２２１ｂを含む。
【００４０】
第１のテーブル定義情報２２１ａには、テーブル名およびテーブルＩＤ（の項目）が含まれる。テーブル名の項目には、第１のテーブルのテーブル名が設定される。テーブルＩＤの項目には、第１のテーブルを識別するためのテーブルＩＤ（テーブル識別情報）が設定される。
【００４１】
また、第１のテーブル定義情報２２１ａには、第１のテーブルを構成するカラム毎に、当該カラムのカラム名（論理名、物理名）、型、桁、位取、Not Null、主キー、外部キー、検索条件、一覧表示および排他制御（の項目）が含まれる。
【００４２】
Not Nullの項目には、各カラムがNull（つまり、空）であるか否かを示す情報が設定される。主キーの項目には、各カラムが主キーであるか否かを示す情報（主キー情報）が設定される。外部キーの項目には、各カラムが外部キーであるか否かを示す情報が設定される。検索条件の項目には、各カラムが第１のテーブル情報によって示される第１のテーブルの参照時に検索条件として表示される項目（カラム）であるか否かを示す情報が設定される。一覧表示の項目には、各カラムが第１のテーブル情報によって示される第１のテーブルの参照時に一覧表示される項目（カラム）であるか否かを示す情報が設定される。また、排他制御の項目には、各第１のカラムが排他制御用のカラムであるか否かを示す情報（排他制御情報）が設定される。
【００４３】
第１の参照先テーブル定義情報２２１ｂには、第１のテーブルにおける外部キー毎に、当該外部キーの外部キー名、外部キー参照先テーブル、外部キー参照先構成列、参照時の表示形式および参照時の表示項目（の項目）が含まれる。
【００４４】
外部キー名の項目には、第１のテーブルにおいて外部キーとして設定されているカラムのカラム名（物理名）が設定される。外部キー参照先テーブルの項目には、第１のテーブルにおける外部キーによって参照される参照先テーブル（以下、外部キー参照先テーブル）が設定される。外部キー参照先テーブルの項目には、名称およびＩＤ(物理名）の項目が含まれる。外部キー参照先テーブルの項目に含まれる名称の項目には、外部キー参照先テーブルのテーブル名が設定される。外部キー参照先テーブルの項目に含まれるＩＤの項目には、外部キー参照先テーブルを識別するためのテーブルＩＤが設定される。外部キー参照先構成列の項目には、外部キー参照先テーブル（の項目に設定されているテーブル）を構成する複数のカラムのうち当該テーブルにおいて主キーであるカラムのカラム名（物理名）が設定される。
【００４５】
参照時の表示形式の項目には、例えばアプリケーションで外部キー参照先テーブル（の項目に設定されているテーブル）が参照される際の表示形式が設定される。この参照時の表示形式（の項目に設定される表示形式）には、例えばチェックボックス、ラジオボタン、コンボボックス、リストボックスおよびポップアップが含まれる。
【００４６】
参照時の表示項目の項目には、外部キー参照先テーブル（の項目に設定されているテーブル）が参照される際に表示される項目について設定される。参照時の表示項目の項目には、検索条件および一覧表示の項目が含まれる。参照時の表示項目の項目に含まれる検索条件の項目には、外部キー参照先テーブルが参照される際に検索条件として表示されるカラムのカラム名（物理名）等が設定される。参照時の表示項目の項目に含まれる一覧表示の項目には、外部キー参照先テーブルが参照される際に一覧表示されるカラムのカラム名（物理名）等が設定される。参照時の表示項目（に含まれる検索条件及び一覧表示）の項目は、参照時の表示形式の項目にポップアップが設定（指定）された場合に設定される。
【００４７】
図３に示す第１のテーブル情報２２１において、点線枠１０１に該当する項目（つまり、第１のテーブル定義情報２２１ａに含まれるテーブル名、テーブルＩＤ、論理名、物理名、型、桁、位取、Not Null、主キー、検索条件、一覧表示および排他制御の項目）は、ユーザが設定する項目である。また、図３に示す第１のテーブル情報２２１において、太線枠１０２に該当する項目（つまり、第１のテーブル定義情報２２１ａに含まれる外部キー、第１の参照先テーブル定義情報２２１ｂに含まれる外部キー名、外部キー参照先テーブル、外部キー参照先構成列、参照時の表示形式および参照時の表示項目の項目）は設定情報入力支援装置３０において入力支援が行われる項目である。
【００４８】
図４は、入力情報ファイル２２に設定されている第２のテーブル情報２２２のデータ構造の一例を示す。図４に示す第２のテーブル情報２２２は、第２のテーブル定義情報２２２ａおよび第２の参照先テーブル定義情報２２２ｂを含む。
【００４９】
第２のテーブル定義情報２２２ａには、上記した第１のテーブル定義情報２２１ａと同様に、テーブル名およびテーブルＩＤ（の項目）が含まれる。また、第２のテーブル定義情報２２２ａには、第２のテーブルを構成するカラム毎に、当該カラムのカラム名（論理名、物理名）、型、桁、位取、Not Null、主キー、外部キー、検索条件、一覧表示および排他制御（の項目）が含まれる。なお、これらの項目については、上記した第１のテーブル定義情報２２１ａにおいて説明した通りであるため、その詳しい説明を省略する。
【００５０】
第２の参照先テーブル定義情報２２２ｂには、上記した第１の参照先テーブル定義情報２２１ｂと同様に、第２のテーブルにおける外部キー毎に、当該外部キーの外部キー名、外部キー参照先テーブル、外部キー参照先構成列、参照時の表示形式および参照時の表示項目（の項目）が含まれる。なお、これらの項目については、上記した第１の参照先テーブル定義情報２２２ｂにおいて説明した通りであるため、その詳しい説明を省略する。
【００５１】
また、図３に示す第１のテーブル情報２２１と同様に、図４に示す第２のテーブル情報２２２において、点線枠１０１に該当する項目はユーザが設定する項目であり、太線枠１０２は設定情報入力支援装置３０において入力支援が行われる項目である。
【００５２】
本実施形態においては、図３に示す第１のテーブル情報２２１および図４に示す第２のテーブル情報２２２（を含む複数のテーブル情報）の点線枠１０１に該当する項目には、予めユーザによって値が設定（入力）されていることを前提としている。
【００５３】
なお、上記したように入力情報ファイル２２に設定されるテーブル情報に含まれる参照先テーブル定義情報において、参照時の表示項目に含まれる検索条件および一覧表示の項目には例えばカラム名等が設定（指定）されるが、当該設定の仕方によって外部キー参照先テーブルについて複数通りの内容を表示させることが可能となる。
【００５４】
ここで、図５〜図１０を参照して、外部キー参照先テーブルの参照時の画面（以下、参照画面と表記）について具体的に説明する。
【００５５】
なお、外部キー参照先テーブルは、上記した図４に示す第２のテーブル情報２２２によって示される第２のテーブルであるものとして説明する。
【００５６】
まず、図５に示すように、参照先テーブル定義情報に含まれる参照時の表示項目の項目（に含まれる検索条件および一覧表示の項目）が空欄のままである場合を想定する。
【００５７】
この場合、図６に示すように、参照画面３００に設けられている検索条件領域３０１には、上記した図４に示す第２のテーブル定義情報２２２ａに含まれる検索条件の項目において「表示」が設定されているカラムの論理名（カラム名）がラベルとして表示される。ここでは、参照画面３００に設けられている検索条件領域３０１には、検索条件の項目に「表示」が設定されているカラムの論理名である「部署番号」、「部署名」および「所在地」がラベルとして表示されている。
【００５８】
また、図６に示すように、参照画面３００に設けられている一覧表示領域３０２には、上記した図４に示す第２のテーブル定義情報２２２ａに含まれる一覧表示の項目において「表示」が設定されているカラムの論理名（カラム名）がラベルとして表示される。ここでは、参照画面３００に設けられている一覧表示領域３０２には、一覧表示の項目に「表示」が設定されているカラムの論理名である「部署番号」、「部署名」および「所在地」がラベルとして表示されている。
【００５９】
次に、図７に示すように、参照先テーブル定義情報に含まれる参照時の表示項目の項目（に含まれる検索条件および一覧表示の項目）にカラム名（物理名）が設定された場合を想定する。図７に示す例では、検索条件の項目には「deptno」および「dname」が設定されており、一覧表示の項目には「dname」および「loc」が設定されている。
【００６０】
この場合、図８に示すように、参照画面３１０に設けられている検索条件領域３１１には、上記した図４に示す第２のテーブル定義情報２２２ａに含まれる検索条件の項目において「表示」が設定されているカラムであって図７に示す参照先テーブル定義情報の参照時の表示項目の項目に含まれる検索条件の項目に物理名が設定されたカラムの論理名がラベルとして表示される。ここでは、参照先テーブル定義情報の参照時の表示項目の項目に含まれる検索条件の項目には「deptno」および「dname」が設定されているため、参照画面３１０に設けられている検索条件領域３１１には、物理名が当該「deptno」および「dname」であるカラムの論理名である「部署番号」および「部署名」がラベルとして表示されている。
【００６１】
また、図８に示すように、参照画面３１０に設けられている一覧表示領域３１２には、上記した図４に示す第２のテーブル定義情報２２２ａに含まれる一覧表示の項目において「表示」が設定されているカラムであって図７に示す参照先テーブル定義情報の参照時の表示項目の項目に含まれる一覧表示の項目に物理名が設定されたカラムの論理名がラベルとして表示される。ここでは、参照先テーブル定義情報の参照時の表示項目の項目に含まれる一覧表示の項目には「dname」および「loc」が設定されているため、参照画面３１０に設けられている一覧表示領域３１２には、物理名が当該「dname」および「loc」であるカラムの論理名である「部署名」および「所在地」がラベルとして表示されている。
【００６２】
次に、図９に示すように、参照先テーブル定義情報の参照時の表示項目の項目に含まれる検索条件の項目に「なし」が設定された場合を想定する。
【００６３】
この場合、図１０に示すように、参照画面３２０には、検索条件領域は設けられず、一覧表示領域３２１のみが設けられる。この参照画面３２０に設けられた一覧表示領域３２１には、上記した図６に示す一覧表示領域３０２と同様に、図４に示す第２のテーブル定義情報２２２ａに含まれる一覧表示の項目において「表示」が設定されているカラムの論理名（ここでは、「部署番号」、「部署名」および「所在地」）が表示される。
【００６４】
図１１は、図２に示す入力値候補取得ルール保持部２３に保持されているルールのデータ構造の一例を示す。入力値候補取得ルール保持部２３に保持されているルールには、以下に説明する例えば第１〜第５のルールが含まれる。
【００６５】
第１のルールは、外部キーの項目に設定すべき値の候補（外部キーの入力値の候補）を取得するために用いられる外部キー候補取得ルールである。第２のルールは、外部キー参照先テーブルの項目に設定すべき値の候補（外部キー参照先テーブルの入力値の候補）を取得するために用いられる外部キー参照先テーブル候補取得ルールである。第３のルールは、外部キー参照先構成列の項目に設定すべき値の候補（外部キー参照先構成列の入力値の候補）を取得するために用いられる外部キー参照先構成列候補取得ルールである。第４のルールは、参照時の表示形式の項目に設定すべき値の候補（参照時の表示形式の入力値の候補）を取得するために用いられる参照時の表示形式候補取得ルールである。第５のルールは、参照時の表示項目の項目に設定すべき値の候補（参照時の表示項目の入力値の候補）を取得するために用いられる参照時の表示項目候補取得ルールである。
【００６６】
第１のルールは、図１１に示すルールにおける１行目〜３行目に記述されている。図１１に示すルールの１行目には第１のルールのルール名（外部キー候補取得ルール）が記述されており、２行目および３行目には当該第１のルールの内容が記述されている。
【００６７】
なお、図１１に示すルールの２行目（つまり、第１のルール）によれば、対象のカラムが主キーおよび排他制御用のカラムでない場合、当該対象のカラムから構成されるテーブルにおいて主キーであるカラムを外部キー候補とすることが記述されている。また、図１１に示すルールの３行目（つまり、第１のルール）によれば、対象のカラムが主キーおよび排他制御用のカラムでない場合、当該対象のカラムから構成されるテーブル以外のテーブルにおいて主キーであるカラムであって、かつ、当該対象のカラムとカラム名（物理名）が同一であるカラムを外部キーの候補とすることが記述されている。
【００６８】
第２のルールは、図１１に示すルールにおける４行目および５行目に記述されている。図１１に示すルールの４行目には第２のルールのルール名（外部キー参照先テーブル候補取得ルール）が記述されており、５行目には当該第２のルールの内容が記述されている。
【００６９】
なお、図１１に示すルールの５行目（つまり、第２のルール）によれば、対象の外部キーの外部キー名（の項目に設定されている値）をカラム名（物理名）とするカラム（つまり、当該外部キー名と同一のカラム名を持つカラム）であって、当該カラムが主キーであるテーブルを外部キー参照先テーブルの候補とすることが記述されている。
【００７０】
第３のルールは、図１１に示すルールにおける６行目および７行目に記述されている。図１１に示すルールの６行目には第３のルールのルール名（外部キー参照先構成列候補取得ルール）が記述されており、７行目には当該第３のルールの内容が記述されている。
【００７１】
なお、図１１に示すルールの７行目（つまり、第３のルール）によれば、対象の外部キーによって参照されるテーブル（つまり、当該対象の外部キーの外部キー参照先テーブルの項目に設定されているテーブル）において主キーであるカラムを外部キー参照先構成列の候補とすることが記述されている。
【００７２】
第４のルールは、図１１に示すルールにおける８行目〜１０行目に記述されている。図１１に示すルールの８行目には第４のルールのルール名（参照時の表示形式候補取得ルール）が記述されており、９行目および１０行目には当該第４のルールの内容が記述されている。
【００７３】
なお、図１１に示すルールの９行目（つまり、第４のルール）によれば、対象の外部キーの外部キー参照先構成列の項目に設定されているカラム（つまり、当該外部キー参照先構成列に物理名が設定されているカラム）の桁数が１の場合にはチェックボックス、ラジオボタン、コンボボックスおよびリストボックスを参照時の表示形式の候補とすることが記述されている。また、図１１に示すルールの１０行目（つまり、第４のルール）によれば、対象の外部キーの外部キー参照先構成列の項目に設定されているカラムの桁数が２以上の場合にはポップアップを参照時の表示形式の候補とすることが記述されている。
【００７４】
第５のルールは、図１１に示すルールにおける１１行目および１２行目に記述されている。図１１に示すルールの１１行目には第５のルールのルール名（参照時の表示項目候補取得ルール）が記述されており、１２行目には当該第５のルールの内容が記述されている。
【００７５】
なお、図１１に示すルールの１２行目（つまり、第５のルール）によれば、対象の外部キーの外部キー参照先テーブルの項目に設定されているテーブル（外部キー参照先テーブル）を構成する複数のカラムのうち排他制御用のカラムでないカラムを参照時の表示項目の候補とすることが記述されている。
【００７６】
次に、図１２のフローチャートを参照して、本実施形態に係る設定情報入力支援装置３０の処理手順について説明する。
【００７７】
入力値候補取得部３２は、上述した入力値候補取得ルール保持部２３に保持されているルールに含まれる第１〜第５のルールの各々を順に対象ルールとして以下のステップＳ１以降の処理を実行する。
【００７８】
入力情報取得部３１は、入力情報ファイル２２に設定されている複数のテーブル情報（の各項目に設定されている入力情報）を、当該入力情報ファイル２２から取得する（ステップＳ１）。
【００７９】
次に、入力値候補取得部３２は、対象ルール（例えば、第１のルール）を用いて、入力情報ファイル２２に設定すべき値（入力値）の候補を取得する処理（以下、入力値候補取得処理と表記）を実行する（ステップＳ２）。なお、ステップＳ２において実行される入力値候補取得処理の詳細については後述する。
【００８０】
次に、ステップＳ２の入力値候補取得処理において入力値の候補が出力されたか否かが判定される（ステップＳ３）。
【００８１】
入力値の候補が出力されたと判定された場合（ステップＳ３のＹＥＳ）、入力値決定部３３は、当該入力値の候補をユーザに対して提示する。この場合、ユーザは、入力値決定部３３によって提示された入力値の候補の中から入力値（つまり、入力情報ファイル２２に設定すべき値）を選択（指定）することができる。
【００８２】
入力値決定部３３は、ユーザの操作に応じて、ユーザに対して提示された入力値の候補の中から入力値を決定する（ステップＳ４）。換言すれば、入力値決定部３３は、ユーザに対して提示された入力値の候補のうち、当該ユーザによって指定された入力値の候補を入力値として決定する。
【００８３】
入力情報反映部３４は、入力値決定部３３によって決定された入力値を入力情報ファイル２２に反映（設定）する（ステップＳ５）。
【００８４】
次に、第１〜第５のルールの全てを対象ルールとして上記したステップＳ１以降の処理が実行されたか否かが判定される（ステップＳ６）。
【００８５】
全てのルールを対象ルールとして処理が実行されていないと判定された場合（ステップＳ６のＮＯ）、ステップＳ１に戻って処理が繰り返される。
【００８６】
この場合、対象ルールとされていない次のルールを対象ルールとしてステップＳ１以降の処理が実行される。具体的には、第１〜第５のルールを順に対象ルールとして処理が実行されるため、例えば対象ルールが第１のルールであった場合には、次は、第２のルールを対象ルールとしてステップＳ１以降の処理が実行される。
【００８７】
このように処理が繰り返されることで、第１〜第５のルールの各々を用いて入力値候補取得処理が実行される。
【００８８】
一方、全てのルールについて処理が実行されたと判定された場合（ステップＳ６のＹＥＳ）、処理が終了される。
【００８９】
また、上記したステップＳ３において入力値の候補が出力されていないと判定された場合、ステップＳ６の処理が実行される。
【００９０】
上記したように、設定情報入力支援装置３０の処理においては、第１〜第５のルールの各々を用いて入力値候補取得処理（ステップＳ２の処理）が実行される。この入力値候補取得処理は、用いられるルール（つまり、第１〜第５のルール）の内容に応じて異なる。
【００９１】
なお、第１〜第５のルールを順に用いて入力候補取得処理が実行されると、入力情報ファイル２２に設定されているテーブル情報（に含まれるテーブル定義情報および参照先テーブル定義情報）の各々において、外部キー（外部キー名）、外部キー参照先テーブル、外部キー参照先構成列、参照時の表示形式および参照時の表示項目の順に値が設定されているか否かがチェックされる。
【００９２】
ここで、第１〜第５のルールを用いた場合のそれぞれの入力値候補取得処理について詳細に説明する。
【００９３】
以下の説明では、第１のルールを用いた場合の入力値候補取得処理を第１の入力値候補取得処理、第２のルールを用いた場合の入力値候補取得処理を第２の入力値候補取得処理、第３のルールを用いた場合の入力値候補取得処理を第３の入力値候補取得処理、第４のルールを用いた場合の入力値候補取得処理を第４の入力値候補取得処理、第５のルールを用いた場合の入力値候補取得処理を第５の入力値候補取得処理と称する。
【００９４】
また、第１〜第５の入力値候補取得処理の説明においては、便宜的に、入力情報ファイル２２には複数のテーブル情報として例えば第１および第２のテーブル情報が設定されているものとして説明する。この場合、第１および第２のテーブル情報によって示されるテーブルをそれぞれ第１および第２のテーブルと称する。また、第１のテーブル情報に含まれるテーブル定義情報を第１のテーブル定義情報、当該第１のテーブル情報に含まれる参照先テーブル定義情報を第１の参照先テーブル定義情報と称する。更に、第２のテーブル情報に含まれるテーブル定義情報を第２のテーブル定義情報、当該第２のテーブル情報に含まれる参照先テーブル定義情報を第２の参照先テーブル定義情報と称する。
【００９５】
なお、入力情報ファイル２２には複数のテーブル情報として第１および第２のテーブル情報が設定されているため、上述した図１２に示すステップＳ１においては、入力情報ファイル２２に設定されている第１および第２のテーブル情報（の各項目に設定されている値）が入力情報取得部３１によって取得されたものとする。
【００９６】
まず、図１３および図１４のフローチャートを参照して、第１の入力値候補取得処理の処理手順について説明する。
【００９７】
第１の入力値候補取得処理は、上記したように第１のルール（外部キー候補取得ルール）を用いた場合の入力値候補取得処理である。この第１の入力値候補取得処理においては、第１のルールに基づいて、入力情報ファイル２２に設定されているテーブル情報によって示されるテーブルを構成する複数のカラムの中から当該テーブルにおいて外部キーとして設定すべきカラムの候補（外部キーの入力値の候補）が取得される。
【００９８】
まず、入力値候補取得部３２は、入力情報取得部３１によって取得された第１および第２のテーブル情報（の各項目に設定されている値）を、当該入力情報取得部３１から取得する（ステップＳ１１）。この第１および第２のテーブル情報の各々には、上述したようにテーブル定義情報および参照先テーブル定義情報が含まれる。以下、第１のテーブル情報に含まれるテーブル定義情報を第１のテーブル定義情報、当該第１のテーブル情報に含まれる参照先テーブル定義情報を第１の参照先テーブル定義情報と称する。また、第２のテーブル情報に含まれるテーブル定義情報を第２のテーブル定義情報、当該第２のテーブル情報に含まれる参照先テーブル定義情報を第２の参照先テーブル定義情報と称する。
【００９９】
入力値候補取得部３２は、入力値候補取得ルール保持部２３に保持されているルールに含まれる第１のルール（外部キー候補取得ルール）を取得する（ステップＳ１２）。以下に説明するステップＳ１３〜Ｓ１８の処理は、この第１のルールに基づいて実行される。なお、第１のルールの内容については上述した図１１において説明した通りであるため、ここでは詳しい説明を省略する。
【０１００】
次に、入力値候補取得部３２は、ステップＳ１１において取得されたテーブル情報（ここでは、第１および第２のテーブル情報）によって示されるテーブルを構成するカラムの各々について以下のステップＳ１３以降の処理を実行する。以下、この処理の対象となるカラムを対象カラムとする。つまり、対象カラムとは、ステップＳ１において取得されたテーブル情報によって示されるテーブルを構成する複数のカラムのうちの１つのカラムである。ここでは、ステップＳ１１において取得された第１および第２のテーブル情報のうちの第１のテーブル情報によって示される第１のテーブルを構成する複数のカラムのうちの１つが対象カラムであるものとする。
【０１０１】
入力値候補取得部３２は、第１のテーブル情報に含まれる第１のテーブル定義情報に含まれる対象カラムの外部キー（の項目）がnullであるか否かを判定する（ステップＳ１３）。
【０１０２】
対象カラムの外部キーがnullであると判定された場合（ステップＳ１３のＹＥＳ）、入力値候補取得部３２は、第１のテーブル情報に含まれる第１のテーブル定義情報に含まれる対象カラムの主キー（の項目）を参照して、当該対象カラムが第１のテーブルにおいて主キーであるか否かを判定する（ステップＳ１４）。この場合、第１のテーブル定義情報に含まれる対象カラムの主キーの項目がnullであれば当該対象カラムが主キーでないと判定され、当該対象カラムの主キーの項目に「○」が設定されていれば当該対象カラムが主キーであると判定される。
【０１０３】
対象カラムが主キーでないと判定された場合（ステップＳ１４のＮＯ）、入力値候補取得部３２は、第１のテーブル情報に含まれる第１のテーブル定義情報に含まれる対象カラムの排他制御（の項目）を参照して、当該対象カラムが第１のテーブルにおいて排他制御用のカラムであるか否かを判定する（ステップＳ１５）。この場合、第１のテーブル定義情報に含まれる対象カラムの排他制御の項目がnullであれば当該対象カラムが排他制御用のカラムでないと判定され、当該対象カラムの排他制御の項目に「○」が設定されていれば当該対象カラムが排他制御用のカラムであると判定される。
【０１０４】
対象カラムが排他制御用のカラムでないと判定された場合（ステップＳ１５のＮＯ）、入力値候補取得部３２は、第１のテーブル情報に含まれる第１のテーブル定義情報に基づいて、第１の外部キー候補特定処理を実行する（ステップＳ１６）。
【０１０５】
この第１の外部キー候補特定処理では、入力値候補取得部３２は、第１のテーブル定義情報に含まれる主キーの項目に設定されている値（主キー情報）に基づいて、対象カラムから構成される第１のテーブルにおいて主キーであるカラムを検索する。この場合、入力値候補取得部３２は、第１のテーブル定義情報に含まれる主キーの項目を参照して第１のテーブルを構成するカラムの各々が主キーであるか否かを判定することによって、検索処理を実行する。入力値候補取得部３２は、検索されたカラムを第１のテーブルにおける外部キーの候補として特定する。
【０１０６】
次に、入力値候補取得部３２は、第１および第２のテーブル情報に含まれる第１および第２のテーブル定義情報に基づいて、第２の外部キー候補特定処理を実行する（ステップＳ１７）。
【０１０７】
この第２の外部キー候補取得処理では、入力値候補取得部３２は、対象カラムから構成される第１のテーブル以外の他のテーブル（ここでは、第２のテーブル）において主キーであるカラムを検索する。この場合、入力値候補取得部３２は、第２のテーブル情報に含まれる第２のテーブル定義情報に含まれる主キーの項目に設定されている値（主キー情報）に基づいて第２のテーブルを構成するカラムの各々が主キーであるか否かを判定することによって、検索処理を実行する。入力値候補取得部３２は、この検索処理によって、第２のテーブルにおいて主キーであるカラムを特定する。次に、入力値候補取得部３２は、第１および第２のテーブル定義情報に含まれる物理名（の項目）を参照して、対象カラムの物理名および特定されたカラム（第２のテーブルにおいて主キーであるカラム）の物理名が同一であるか否かを判定する。入力値候補取得部３２は、対象カラムの物理名および第２のテーブルにおいて主キーであるカラムの物理名が同一であると判定された場合、当該第２のテーブルにおいて主キーであるカラムを第１のテーブルにおける外部キーの候補として特定する。
【０１０８】
上記したように第１および第２の外部キー候補特定処理が実行されると、入力値候補取得部３２は、当該第１および第２の外部キー候補特定処理において特定されたカラム（の物理名）を、第１のテーブルにおける外部キーとして設定すべきカラムの候補（つまり、外部キーの入力値の候補）として取得する（ステップＳ１８）。
【０１０９】
なお、上記したステップＳ１４において対象カラムが主キーであると判定された場合およびステップＳ１５において対象カラムが排他制御用のカラムであると判定された場合、ステップＳ１６〜Ｓ１８の処理は実行されない。
【０１１０】
次に、入力値候補取得部３２は、ステップＳ１１において取得されたテーブル情報（第１および第２のテーブル情報）によって示されるテーブルを構成する全てのカラムについて上記したステップＳ１３以降の処理が実行されたか否かを判定する（ステップＳ１９）。
【０１１１】
全てのカラムについて処理が実行されていないと判定された場合（ステップＳ１９のＮＯ）、上記したステップＳ１３に戻って処理が繰り返される。この場合、ステップＳ１３以降の処理が実行されていないカラムを対象カラムとして処理が実行される。
【０１１２】
一方、全てのカラムについて処理が実行されたと判定された場合（ステップＳ１９のＹＥＳ）、入力値候補取得部３２は、上記したステップＳ１９の処理において取得された外部キーの入力値の候補があるか否かを判定する（ステップＳ２０）。
【０１１３】
外部キーの入力値の候補があると判定された場合（ステップＳ２０のＹＥＳ）、入力値候補取得部３２は、当該外部キーの入力値の候補を入力値決定部３３に対して出力する（ステップＳ２１）。なお、入力値決定部３３に対して出力される外部キーの入力値の候補には、外部キーの候補となるカラムのカラム名（物理名）等が含まれる。
【０１１４】
一方、外部キーの入力値の候補がないと判定された場合（ステップＳ２０のＮＯ）、ステップＳ２１の処理は実行されない。
【０１１５】
また、上記したステップＳ１３において対象カラムの外部キーがnullでないと判定された場合、入力値候補取得部３２は、第１のテーブル情報に含まれる第１の参照先テーブル定義情報に含まれる外部キー名（の項目）に当該対象カラムの物理名が設定されているか否かを判定する（ステップＳ２２）。
【０１１６】
外部キー名に対象カラムの物理名が設定されていないと判定された場合（ステップＳ２２のＮＯ）、入力値候補取得部３２は、第１のテーブル定義情報に含まれる対象カラムの物理名を取得し、当該取得された対象カラムの物理名を外部キー名として入力情報ファイル２２に反映（設定）する（ステップＳ２３）。具体的には、入力値候補取得部３２は、第１の参照先テーブル定義情報に含まれる外部キー名（の項目）に対象カラムの物理名を設定する。なお、この設定処理は、入力情報反映部３４を介して実行される。ステップＳ２３の処理が実行されると、上記したステップＳ１９の処理が実行される。
【０１１７】
一方、外部キー名に対象カラムの物理名が設定されていると判定された場合（ステップＳ２２のＹＥＳ）、ステップＳ２３の処理は実行されず、上記したステップＳ１９の処理が実行される。
【０１１８】
上記したように第１の入力値候補取得処理においては、例えば第１のテーブルを構成する複数のカラムのうちの１つである対象カラムが主キーおよび排他制御用のカラムでない場合には、当該第１のテーブルにおいて主キーであるカラムおよび当該第１のテーブル以外の第２のテーブルにおいて主キーであるカラムであって対象カラムと物理名が同一であるカラムが当該第１のテーブルにおいて外部キーとして設定すべきカラムの候補（外部キーの入力値の候補）として取得される。
【０１１９】
上記した図１３および１４においては、第１のテーブルを構成するカラムが対象カラムであるものとして説明したが、当該第１のテーブル以外のテーブル（ここでは、第２のテーブル）を構成するカラムが対象カラムである場合についても同様である。
【０１２０】
ここで、第１の入力値候補取得処理について、上述した図３および図４を用いて具体的に説明する。ここでは、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成するカラムの各々が対象カラムである場合について説明する。
【０１２１】
まず、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する複数のカラムのうちの論理名が「従業員番号」であるカラムが対象カラムである場合を想定する。以下、論理名が「従業員番号」であるカラムを単に「従業員番号」カラムと称する。なお、他のカラムについても同様であるものとする。
【０１２２】
この場合、図３に示す第１のテーブル情報２２１に含まれる第１のテーブル定義情報２２１ａに含まれる「従業員番号」カラムの主キーの項目には「○」が設定されている。このため、「従業員番号」カラムは第１のテーブルにおいて主キー（のカラム）である。したがって、第１のテーブルを構成する「従業員番号」カラムが対象カラムである場合には、外部キーの入力値の候補は取得されない。
【０１２３】
次に、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する複数のカラムのうちの「氏名」カラムが対象カラムである場合を想定する。
【０１２４】
この場合、図３に示す第１のテーブル情報２２１に含まれる第１のテーブル定義情報２２１ａに含まれる「氏名」カラムの主キーの項目および排他制御の項目はnullである。したがって、「氏名」カラムは第１のテーブルにおいて主キーのカラムでなく、かつ、排他制御用のカラムでない。
【０１２５】
ここで、対象カラムである「氏名」カラムから構成される第１のテーブルにおいては上記したように「従業員番号」カラムが主キーである。このため、上記した第１の外部キー候補特定処理においては、「従業員番号」カラムが第１のテーブルにおける外部キーの候補として特定される。
【０１２６】
一方、図３に示す第１のテーブル定義情報２２１ａによれば、「氏名」カラムの物理名は、「ename」である。また、「氏名」カラムから構成される第１のテーブル以外のテーブル（ここでは、第２のテーブル）において主キーであるカラムは、図４に示す第２のテーブル定義情報２２２ａによれば、主キーの項目に「○」が設定されている「部署番号」カラムである。更に、図４に示す第２のテーブル定義情報２２２ａによれば、この「部署番号」カラムの物理名は、「deptno」である。
【０１２７】
ここで、対象カラムである「氏名」カラムの物理名（ここでは、「ename」）および第２のテーブル（第１のテーブル以外の他のテーブル）において主キーである「部署番号」カラムの物理名（ここでは、「deptno」）は同一ではない。したがって、上記した第２の外部キー候補特定処理においては、第１のテーブルにおける外部キーの候補は特定されない。
【０１２８】
つまり、上記したように第１のテーブルを構成する「氏名」カラムが対象カラムである場合には、第１の外部キー候補特定処理において特定された「従業員番号」カラムが外部キーの入力値の候補として取得される。
【０１２９】
なお、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する複数のカラムのうちの「職種」カラム、「上長」カラム、「入社年月日」カラム、「給料」カラムおよび「手当」カラムが対象カラムである場合も同様に、「従業員番号」カラムが外部キーの入力値の候補として取得される。
【０１３０】
次に、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する複数のカラムのうちの「部署番号」カラムが対象カラムである場合を想定する。
【０１３１】
この場合、図３に示す第１のテーブル情報２２１に含まれる第１のテーブル定義情報２２１ａに含まれる「部署番号」カラムの主キーの項目および排他制御の項目はnullである。したがって、「部署番号」カラムは第１のテーブルにおいて主キーのカラムでなく、かつ、排他制御用のカラムでない。
【０１３２】
ここで、対象カラムである「部署番号」カラムから構成される第１のテーブルにおいては上記したように「従業員番号」カラムが主キーである。このため、上記した第１の外部キー候補特定処理においては、「従業員番号」カラムが第１のテーブルにおける外部キーの候補として特定される。
【０１３３】
一方、図３に示す第１のテーブル定義情報２２１ａによれば、第１のテーブルを構成する「部署番号」カラムの物理名は、「deptno」である。また、「部署番号」カラムから構成される第１のテーブル以外のテーブル（ここでは、第２のテーブル）において主キーであるカラムは、図４に示す第２のテーブル定義情報２２２ａによれば、主キーの項目に「○」が設定されている「部署番号」カラムである。更に、図４に示す第２のテーブル定義情報２２２ａによれば、この第２のテーブルを構成する「部署番号」カラムの物理名は、「deptno」である。
【０１３４】
ここで、対象カラムである「部署番号」カラムの物理名および第２のテーブルにおいて主キーである「部署番号」カラムの物理名は「deptno」で同一である。したがって、上記した第２の外部キー候補特定処理においては、第２のテーブルにおいて主キーである「部署番号」カラムが第１のテーブルにおける外部キーの候補として特定される。
【０１３５】
つまり、上記したように第１のテーブルを構成する「部署番号」カラムが対象カラムである場合には、第１の外部キー候補特定処理において特定された「従業員番号」カラムおよび第２の外部キー候補特定処理において特定された「部署番号」カラム（第２のテーブルにおいて主キーであるカラム）が外部キーの入力値の候補として取得される。
【０１３６】
次に、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する複数のカラムのうちの「バージョン」カラムが対象カラムである場合を想定する。
【０１３７】
この場合、図３に示す第１のテーブル情報２２１に含まれる第１のテーブル定義情報２２１ａに含まれる「バージョン」カラムの排他制御の項目には「○」が設定されている。このため、「バージョン」カラムは第１のテーブルにおいて排他制御用のカラムである。したがって、第１のテーブルを構成する「バージョン」カラムが対象カラムである場合には、外部キーの入力値の候補は取得されない。
【０１３８】
上記したように入力値候補取得部３２によって取得された外部キーの入力値の候補（つまり、外部キーとして設定すべきカラムの候補）は、入力値決定部３３に対して出力される。
【０１３９】
ここで、図１５は、入力値決定部３３に対して出力される外部キーの入力値の候補のデータ構造の一例を示す。
【０１４０】
図１５に示すように、入力値決定部３３に対して出力される外部キーの入力値の候補（外部キー入力値候補）には、入力値候補取得部３２によって外部キーの入力値の候補として取得されたカラム（第１および第２の外部キー候補特定処理において外部キーの候補として特定されたカラム）の物理名が参照先テーブル主キーとして含まれる。また、外部キーの入力値の候補には、参照先テーブル主キーに加えて、対象カラム名、テーブル名、テーブルＩＤ、参照先テーブル名および参照先テーブルＩＤが含まれる。
【０１４１】
対象カラム名は、外部キーの入力値の候補が取得された際における対象カラムのカラム名（物理名）である。テーブル名は、対象カラムから構成されるテーブルのテーブル名である。テーブルＩＤは、対象カラムから構成されるテーブルを識別するための識別子である。
【０１４２】
参照先テーブル名は、外部キーの入力値の候補であるカラム（つまり、外部キーの入力値の候補として入力値候補取得部３２によって取得されたカラム）を外部キーとした場合に当該外部キーによって参照されるテーブルであって、当該カラムが主キーとして設定されているテーブルのテーブル名である。参照先テーブルＩＤは、外部キーの入力値の候補であるカラムを外部キーとして場合に当該外部キーによって参照されるテーブルであって、当該カラムが主キーとして設定されているテーブルを識別するためのテーブルＩＤである。
【０１４３】
入力値決定部３３に対して出力される外部キーの入力値の候補に含まれる対象カラム名、テーブル名、テーブルＩＤ、参照先テーブル名および参照先テーブルＩＤは、上記した第１の入力値候補取得処理において取得されたテーブル情報（第１および第２のテーブル情報）から取得される。
【０１４４】
図１５に示す例では、外部キーの入力値の候補には、外部キー入力値候補１および２が含まれる。
【０１４５】
なお、図１５に示す外部キー入力候補１および２は、上記した図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する複数のカラムのうちの「部署番号」カラムが対象カラムである場合に第１の入力値候補取得処理において出力される外部キーの入力値の候補の一例を示す。
【０１４６】
外部キー入力値候補１には、対象カラム名「deptno」、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、参照先テーブル名「従業員テーブル」、参照先テーブルＩＤ「emp」および参照先テーブル主キー「empno」が含まれている。これによれば、外部キー入力値候補１は、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する「部署番号」カラム（物理名が「deptno」であるカラム）が対象カラムである場合における外部キーの入力値の候補が「従業員番号」カラム（の物理名）であることを示している。なお、この外部キーの入力値の候補である「従業員番号」カラムは、上記した第１の外部キー候補特定処理において特定されたカラムである。
【０１４７】
また、外部キー入力値候補２には、対象カラム名「deptno」、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、参照先テーブル名「部署テーブル」、参照先テーブルＩＤ「dept」および参照先テーブル主キー「deptno」が含まれている。これによれば、外部キー入力値候補２は、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する「部署番号」カラム（物理名が「deptno」であるカラム）が対象カラムである場合における外部キーの入力値の候補が「部署番号」カラム（の物理名）であることを示している。なお、この外部キーの入力値の候補である「部署番号」カラムは、上記した第２の外部キー候補特定処理において特定されたカラムである。
【０１４８】
ここでは、図３に示す第１のテーブル情報２２１によって示される第１のテーブルを構成する複数のカラムのうちの「部署番号」カラムが対象カラムである場合に出力される外部キーの入力値の候補について説明したが、他のカラムが対象カラムである場合に出力される外部キーの入力値の候補についても同様である。
【０１４９】
なお、図１５に示す外部キーの入力値の候補においては、対象カラム名として対象カラムの物理名のみが含まれているが、当該物理名に加えて対象カラムの論理名が含まれていても構わない。
【０１５０】
上記した図１５に示す形式の外部キーの入力値の候補が入力値決定部３３に対して出力されると、入力値決定部３３は、当該外部キーの入力値の候補を選択するための画面（以下、第１の入力値候補選択画面と表記）を表示する。
【０１５１】
ここで、図１６は、第１の入力値候補選択画面（外部キー入力値候補選択画面）の一例を示す。第１の入力値候補選択画面４００には、例えばテーブル名およびテーブルＩＤが表示される。この第１の入力値候補選択画面４００に表示されるテーブル名およびテーブルＩＤは、上記した図１５に示す入力値決定部３３に対して出力された外部キーの入力値の候補に含まれるテーブル名およびテーブルＩＤである。
【０１５２】
また、第１の入力値候補選択画面４００には、図１５に示す入力値決定部３３に対して出力された外部キーの入力値の候補に含まれる対象カラム名（ここでは、論理名および物理名）が表示されている。
【０１５３】
更に、第１の入力値候補選択画面４００においては、対象カラム名に対応づけてプルダウン４０１が設けられている。この第１の入力値候補選択画面４００に設けられているプルダウン４０１には、例えば図１７に示すように外部キーの入力値の候補（ここでは、参照先テーブルＩＤおよび参照先テーブル主キーの組）が設定されている。なお、図１７は、論理名「部署番号」および物理名「deptno」に対応づけられているプルダウン４０１の表示（つまり、対象カラムが「部署番号」カラムである場合における外部キーの入力値の候補）の例を示す。つまり、図１７に示すように、論理名「部署番号」および物理名「deptno」に対応づけられているプルダウン４０１においては、上記した図１５に示す外部キー入力値候補１および２の各々に含まれる参照先テーブルＩＤおよび参照先テーブル主キーの組（つまり、外部キーの入力値の候補）が表示される。
【０１５４】
これにより、ユーザは、第１の入力値候補選択画面４００を介して、外部キーの入力値の候補（つまり、外部キーとして設定すべきカラムの候補）の中から実際に入力値とすべき候補を選択することができる。なお、図１７に示すように、外部キーに関しては「（空欄）」が設定されており、ユーザは、当該「（空欄）」を選択することも可能である。
【０１５５】
また、第１の入力値候補選択画面４００には、設定ボタン４０２が設けられている。ユーザが第１の入力値候補選択画面４００に設けられているプルダウン４０１において所望の外部キーの入力値の候補を選択し、設定ボタン４０２を指定（押下）すると、当該選択された外部キーの入力値の候補が入力値（外部キーとして設定すべきカラム）として決定され、当該入力値が入力情報反映部３４によって入力情報ファイル２２に反映される。
【０１５６】
この場合、入力情報反映部３４は、入力情報ファイル２２に設定されているテーブル情報（上記した外部キーの入力値の候補に含まれるテーブルＩＤによって識別されるテーブルを示すテーブル情報）に含まれるテーブル定義情報において、入力値として決定されたカラム（外部キーの入力値の候補であるカラム）の外部キーの項目に「○」を設定する。これにより、入力値として決定されたカラムが外部キーとして設定される。
【０１５７】
また、入力情報反映部３４は、外部キーとして設定されたカラムの物理名（外部キーの入力値の候補に参照先テーブル主キーとして含まれるカラムの物理名）を、当該外部キーの入力値の候補に含まれるテーブルＩＤによって識別されるテーブルを示すテーブル情報の参照先テーブル定義情報に含まれる外部キー名の項目に設定する。
【０１５８】
また、入力情報反映部３４は、外部キーとして設定されたカラムの物理名が設定された外部キー名の項目を含む参照先テーブル定義情報に含まれる外部キー参照先テーブルの項目に、当該外部キーによって参照されるテーブル（外部キー参照先テーブル）を設定する。この場合、入力情報反映部３４は、外部キー参照先テーブルのテーブル名（外部キーの入力値の候補に含まれる参照先テーブル名）を、外部キー参照先テーブルの項目に含まれる名称の項目に設定する。また、入力情報反映部３４は、外部キー参照先テーブルのテーブルＩＤ（外部キーの入力値の候補に含まれる参照先テーブルＩＤ）を、外部キー参照先テーブルの項目に含まれるＩＤの項目に設定する。
【０１５９】
更に、入力情報反映部３４は、外部キー参照先テーブルの項目に設定されたテーブル（外部キー参照先テーブル）において主キーであるカラムの物理名（外部キーの入力値の候補に含まれる参照先テーブル主キー）を、外部キーとして設定されたカラムの物理名が設定された外部キー名の項目を含む参照先テーブル定義情報に含まれる外部キー参照先構成列の項目に設定する。
【０１６０】
つまり、第１の入力値候補取得処理において外部キーの入力値の候補が取得され、当該外部キーの入力値の候補（であるカラム）の中から外部キーが設定された場合には、参照先テーブル定義情報に含まれる当該外部キーの外部キー名、外部キー参照先テーブルおよび外部キー参照先構成列の項目についても適切な入力値が自動的に設定される。
【０１６１】
次に、図１８のフローチャートを参照して、第２の入力値候補取得処理の処理手順について説明する。
【０１６２】
第２の入力値候補取得処理は、上記したように第２のルール（外部キー参照先テーブル候補取得ルール）を用いた場合の入力値候補取得処理である。この第２の入力値候補取得処理においては、第２のルールに基づいて、入力情報ファイル２２に設定されているテーブル情報の参照先テーブル定義情報に含まれる外部キー参照先テーブルの項目に設定すべき値の候補（外部キー参照先テーブルの入力値の候補）が取得される。
【０１６３】
なお、第２の入力値候補取得処理が実行される際、入力情報ファイル２２に設定されているテーブル情報によって示されるテーブルにおいて外部キーが設定されている場合には当該テーブル情報の参照先テーブル定義情報に含まれる少なくとも外部キー名の項目に値が設定されているものとする。
【０１６４】
まず、入力値候補取得部３２は、入力情報取得部３１によって取得された第１および第２のテーブル情報を、当該入力情報取得部３１から取得する（ステップＳ３１）。
【０１６５】
入力値候補取得部３２は、入力値候補取得ルール保持部２３に保持されているルールに含まれる第２のルール（外部キー参照先テーブル候補取得ルール）を取得する（ステップＳ３２）。以下に説明するステップＳ３３〜Ｓ３６の処理は、この第２のルールに基づいて実行される。なお、第２のルールの内容は上述した図１１において説明した通りであるため、ここではその詳しい説明を省略する。
【０１６６】
次に、入力値候補取得部３２は、ステップＳ３１において取得されたテーブル情報（ここでは、第１および第２のテーブル情報）によって示されるテーブルにおける外部キー（当該第１および第２のテーブル情報の参照先テーブル定義情報に含まれる外部キー名）の各々について以下のステップＳ３３以降の処理を実行する。以下、この処理の対象となる外部キーを対象外部キーとする。ここでは、対象外部キーは、第１のテーブルにおける外部キーであるものとする。
【０１６７】
入力値候補取得部３２は、ステップＳ３１において取得された第１のテーブル情報に含まれる参照先テーブル定義情報（第１の参照先テーブル定義情報）を参照して、対象外部キーの外部キー参照先テーブルの項目に含まれるＩＤ（の項目）がnullであるか否かを判定する（ステップＳ３３）。
【０１６８】
ＩＤがnullであると判定された場合（ステップＳ３３のＹＥＳ）、入力値候補取得部３２は、第１および第２のテーブル情報に基づいて、当該第２のテーブル情報によって示される第２のテーブルが該当テーブルであるか否かを判定する（ステップＳ３４）。入力値候補取得部３２は、対象外部キーとして設定されているカラムから構成されるテーブル（ここでは、第１のテーブル）以外のテーブルが該当テーブルであるか否かを判定する。
【０１６９】
ここで、該当テーブルとは、第１のテーブル情報の第１の参照先テーブル情報に含まれる対象外部キーの外部キー名（の項目に設定されている物理名）を物理名とするカラムから構成されるテーブルをいう。換言すれば、該当テーブルは、対象外部キーの外部キー名と同一のカラム名（物理名）を持つテーブルである。
【０１７０】
第２のテーブルが該当テーブルであると判定された場合（ステップＳ３４のＹＥＳ）、入力値候補取得部３２は、当該第２のテーブルを構成する複数のカラムのうちの対象外部キーの外部キー名（の項目に設定されている物理名）を物理名とするカラムが当該第２のテーブルにおいて主キーであるか否かを判定する（ステップＳ３５）。この場合、入力値候補取得部３２は、第２のテーブルを示す第２のテーブル情報のテーブル定義情報（第２のテーブル定義情報）に含まれる主キーの項目を参照して判定処理を実行する。
【０１７１】
対象外部キーの外部キー名を物理名とするカラムが第２のテーブルにおいて主キーであると判定された場合（ステップＳ３５のＹＥＳ）、入力値候補取得部３２は、当該第２のテーブル（のテーブル名およびテーブルＩＤ）を対象外部キーの外部キー参照先テーブルの入力値の候補として取得する（ステップＳ３６）。第２のテーブルのテーブル名およびテーブルＩＤは、第２のテーブル情報（に含まれる第２のテーブル定義情報）から取得される。
【０１７２】
次に、入力値候補取得部３２は、ステップＳ３１において取得されたテーブル情報（第１および第２のテーブル情報）によって示されるテーブルにおける全ての外部キー（つまり、当該第１および第２のテーブル情報において設定されている全ての外部キー）について上記したステップＳ３３以降の処理が実行されたか否かを判定する（ステップＳ３７）。
【０１７３】
全ての外部キーについて処理が実行されていないと判定された場合（ステップＳ３７のＮＯ）、上記したステップＳ３３に戻って処理が繰り返される。この場合、ステップＳ３３以降の処理が実行されていない外部キーを対象外部キーとして処理が実行される。
【０１７４】
一方、全ての外部キーについて処理が実行されたと判定された場合（ステップＳ３７のＹＥＳ）、入力値候補取得部３２は、上記したステップＳ３６の処理において取得された外部キー参照先テーブルの入力値の候補があるか否かを判定する（ステップＳ３８）。
【０１７５】
外部キー参照先テーブルの入力値の候補があると判定された場合（ステップＳ３８のＹＥＳ）、入力値候補取得部３２は、当該外部キー参照先テーブルの入力値の候補を入力値決定部３３に対して出力する（ステップＳ３９）。なお、入力値決定部３３に対して出力される外部キー参照先テーブルの入力値の候補には、外部キー参照先テーブルの項目に設定すべき値の候補となるテーブルのテーブル名およびテーブルＩＤ等が含まれる。
【０１７６】
一方、外部キー参照先テーブルの入力値の候補がないと判定された場合（ステップＳ３８のＮＯ）、ステップＳ３９の処理は実行されない。
【０１７７】
なお、上述したように図１８に示す第２の入力値候補取得処理の前には、図１３および図１４に示す第１の入力値候補取得処理が実行される。この第１の入力値候補取得処理において外部キーの入力値の候補が取得され、当該外部キーの入力値の候補の中から外部キーが設定された場合には、上記したように参照先テーブル定義情報に含まれる外部キー参照先テーブルの項目（に含まれる名称およびＩＤの項目）にも値が設定される。
【０１７８】
したがって、このような場合には、上記したステップＳ３３においてＩＤがnullでないと判定され、外部キー参照先テーブルの入力値の候補は取得されず、ステップＳ３７の処理が実行される。
【０１７９】
また、上記したステップＳ３４において第２のテーブルが該当テーブルでないと判定された場合およびステップＳ３５において対象外部キーの外部キー名を物理名とするカラムが第２のテーブル（該当テーブル）において主キーでないと判定された場合、ステップＳ３７の処理が実行される。
【０１８０】
上記したように第２の入力値候補取得処理においては、対象外部キーの外部キー名を物理名とするカラムから構成されるテーブルにおいて当該カラムが主キーである場合には、当該テーブルのテーブル名およびテーブルＩＤが外部キー参照先テーブルの入力値の候補として取得される。
【０１８１】
例えば、上述した図１４に示すステップＳ２３の処理によって図３に示す第１のテーブル情報２２１の第１の参照先テーブル定義情報２２１ｂに含まれる外部キー名の項目に「deptno」が設定されている場合を想定する。この場合には、この外部キー名「deptno」を物理名とするカラムが図４に示す第２のテーブル情報２２２によって示される第２のテーブルを構成する複数のカラムの中に存在する。また、この複数のカラムの中の物理名が「deptno」であるカラム（「部署番号」カラム）は、第２のテーブルにおける主キーである。したがって、外部キー名が「deptno」である外部キーが対象外部キーである場合には、第２のテーブルのテーブル名およびテーブルＩＤが外部キー参照先テーブルの入力値の候補として取得される。
【０１８２】
このように入力値候補取得部３２によって取得された外部キー参照先テーブルの入力値の候補は、入力値決定部３３に対して出力される。
【０１８３】
ここで、図１９は、入力値決定部３３に対して出力される外部キー参照先テーブルの入力値の候補のデータ構造の一例を示す。
【０１８４】
図１９に示すように、入力値決定部３３に対して出力される外部キー参照先テーブルの入力値の候補（外部キー参照先テーブル入力値候補）には、上記した図１８に示すステップＳ３６において取得されたテーブル名およびテーブルＩＤ（ここでは、第２のテーブルのテーブル名およびテーブルＩＤ）が参照先テーブル名および参照先テーブルＩＤとして含まれる。また、外部キー参照先テーブルの入力値の候補には、参照先テーブル名および参照先テーブルＩＤに加えて、テーブル名、テーブルＩＤ、外部キー名および参照先テーブル主キーが含まれる。
【０１８５】
テーブル名は、対象外部キーとして設定されているカラム（対象外部キーのカラム）から構成されるテーブル（つまり、当該対象外部キーが設定されているテーブル）のテーブル名である。テーブルＩＤは、対象外部キーのカラムから構成されるテーブルを識別するための識別子である。外部キー名は、対象外部キーの外部キー名（対象外部キーのカラムの物理名）である。参照先テーブル主キーは、外部キー参照先テーブルの入力値の候補に含まれる参照先テーブルＩＤによって識別されるテーブルにおいて主キーであるカラムの物理名である。つまり、参照先テーブル主キーは、対象外部キーによって参照されるテーブル（外部キー参照先テーブル）において主キーであるカラムの物理名である。
【０１８６】
外部キー参照先テーブルの入力値の候補に含まれるテーブル名、テーブルＩＤ、外部キー名および参照先テーブル主キーは、上記した第２の入力値候補取得処理において取得されたテーブル情報（第１および第２のテーブル情報）から取得される。
【０１８７】
図１９に示す例では、外部キー参照先テーブルの入力値の候補には、外部キー参照先テーブル入力値候補１が含まれる。
【０１８８】
なお、図１９に示す外部キー参照先テーブル入力値候補１は、上記した図３に示す第１のテーブル情報２２１の第１の参照先テーブル定義情報２２１ｂに含まれる外部キー名の項目に例えば「deptno」が設定されていた場合に第２の入力値候補取得処理において出力される外部キー参照先テーブルの入力値の候補の一例である。
【０１８９】
この外部キー参照先テーブル入力値候補１には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」、参照先テーブル名「部署テーブル」、参照先テーブルＩＤ「dept」および参照先テーブル主キー「deptno」が含まれている。これによれば、外部キー参照先テーブル入力値候補１は、上記したように図３に示す第１のテーブル情報２２１の第１の参照先テーブル定義情報２２１ｂに含まれる外部キー名に例えば「deptno」が設定されていた場合における外部キー参照先テーブルの入力値の候補が図４に示す第２のテーブル情報２２２によって示される第２のテーブル（のテーブル名「部署テーブル」およびテーブルＩＤ「dept」）であることを示している。
【０１９０】
上記した図１９に示す形式の外部キー参照先テーブルの入力値の候補が入力値決定部３３に対して出力されると、入力値決定部３３は、当該外部キー参照先テーブルの入力値の候補を選択するための画面（以下、第２の入力値候補選択画面と表記）を表示する。
【０１９１】
ここで、図２０は、第２の入力値候補選択画面（外部キー参照先テーブル入力値候補選択画面）の一例を示す。第２の入力値候補選択画面４１０には、例えばテーブル名およびテーブルＩＤが表示される。この第２の入力値候補選択画面４１０に表示されるテーブル名およびテーブルＩＤは、上記した図１９に示す入力値決定部３３に対して出力された外部キー参照先テーブルの入力値の候補に含まれるテーブル名およびテーブルＩＤである。
【０１９２】
また、第２の入力値候補選択画面４１０においては、対象外部キーの外部キー名に対応づけてプルダウン４１１が設けられている。この第２の入力値候補選択画面４１０に設けられているプルダウン４１１には、例えば図２１に示すように外部キー参照先テーブルの入力値の候補（ここでは、参照先テーブル名、参照先テーブルＩＤおよび参照先テーブル主キーの組）が設定されている。
【０１９３】
これにより、ユーザは、第２の入力値候補選択画面４１０を介して、外部キー参照先テーブルの入力値の候補（つまり、外部キー参照先テーブルの項目に設定すべきテーブル名およびテーブルＩＤの候補）の中から実際に入力値とすべき候補を選択することができる。
【０１９４】
また、第２の入力値候補選択画面４１０には、設定ボタン４１２が設けられている。ユーザが第２の入力値候補選択画面４１０に設けられているプルダウン４１１において所望の外部キー参照先テーブルの入力値の候補を選択し、設定ボタン４１２を指定（押下）すると、当該選択された外部キー参照先テーブルの入力値の候補が入力値（外部キー参照先テーブルの項目に設定すべきテーブル名およびテーブルＩＤ）として決定され、当該入力値が入力情報反映部３４によって入力情報ファイル２２に反映される。
【０１９５】
この場合、入力情報反映部３４は、入力情報ファイル２２に設定されているテーブル情報（上記した外部キー参照先テーブルの入力値の候補に含まれるテーブルＩＤによって識別されるテーブルを示すテーブル情報）の参照先テーブル定義情報に含まれる外部キー参照先テーブルの項目（に含まれる名称およびＩＤの項目）に、入力値として決定されたテーブル名およびテーブルＩＤ（外部キー参照先テーブルの入力値の候補に含まれる参照先テーブル名および参照先テーブルＩＤ）を設定する。これにより、入力情報反映部３４は、参照先テーブル定義情報に含まれる外部キー参照先テーブルの項目に対象外部キーによって参照されるテーブルを設定する。
【０１９６】
また、入力情報反映部３４は、外部キー参照先テーブルの項目に設定されたテーブルにおいて主キーであるカラムの物理名（外部キー参照先テーブルの入力値の候補に含まれる参照先テーブル主キー）を、当該外部キー参照先テーブルの項目を含む参照先テーブル定義情報に含まれる対象外部キーの外部キー参照先構成列の項目に設定する。
【０１９７】
つまり、第２の入力値候補取得処理において外部キー参照先テーブルの入力値の候補が取得され、当該外部キー参照先テーブルの入力値の候補の中から外部キー参照先テーブルの項目に値が設定された場合には、当該外部キー参照先テーブルの項目を含む参照先テーブル定義情報に含まれる外部キー参照先構成列の項目についても適切な入力値が自動的に設定される。
【０１９８】
次に、図２２のフローチャートを参照して、第３の入力値候補取得処理の処理手順について説明する。
【０１９９】
第３の入力値候補取得処理は、上記したように第３のルール（外部キー参照先構成列候補取得ルール）を用いた場合の入力値候補取得処理である。この第３の入力値候補取得処理においては、第３のルールに基づいて、入力情報ファイル２２に設定されているテーブル情報の参照先テーブル定義情報に含まれる外部キー参照先構成列の項目に設定すべき値の候補（外部キー参照先構成列の入力値の候補）が取得される。
【０２００】
なお、第３の入力値候補取得処理が実行される際、入力情報ファイル２２に設定されているテーブル情報によって示されるテーブルにおいて外部キーが設定されている場合には当該テーブル情報の参照先テーブル定義情報に含まれる少なくとも外部キー名および外部キー参照先テーブルの項目に値が設定されているものとする。
【０２０１】
まず、入力値候補取得部３２は、入力情報取得部３１によって取得された第１および第２のテーブル情報を、当該入力情報取得部３１から取得する（ステップＳ４１）。
【０２０２】
入力値候補取得部３２は、入力値候補取得ルール保持部２３に保持されているルールに含まれる第３のルール（外部キー参照先構成列候補取得ルール）を取得する（ステップＳ４２）。以下に説明するステップＳ４３〜Ｓ４５の処理は、この第３のルールに基づいて実行される。なお、第３のルールの内容は上述した図１１において説明した通りであるため、ここではその詳しい説明を省略する。
【０２０３】
次に、入力値候補取得部３２は、ステップＳ４１において取得されたテーブル情報（ここでは、第１および第２のテーブル情報）によって示されるテーブルにおける外部キー（当該第１および第２のテーブル情報の参照先テーブル定義情報に含まれる外部キー名）の各々について以下のステップＳ４３以降の処理を実行する。以下、この処理の対象となる外部キーを対象外部キーとする。ここでは、対象外部キーは、第１のテーブルにおける外部キーであるものとする。
【０２０４】
入力値候補取得部３２は、ステップＳ４１において取得された第１のテーブル情報に含まれる参照先テーブル定義情報（第１の参照先テーブル定義情報）を参照して、対象外部キーの外部キー参照先構成列（の項目）がnullであるか否かを判定する（ステップＳ４３）。
【０２０５】
外部キー参照先構成列がnullであると判定された場合（ステップＳ４３のＹＥＳ）、入力値候補取得部３２は、第１の参照先テーブル定義情報に含まれる対象外部キーの外部キー参照先テーブル（に含まれる名称およびＩＤ）の項目にテーブル名およびテーブルＩＤが設定されているテーブル（つまり、当該外部キー参照先テーブルの項目に設定されているテーブル）において主キーであるカラムを特定する（ステップＳ４４）。
【０２０６】
なお、対象外部キーの外部キー参照先テーブルの項目にテーブル名およびテーブルＩＤが設定されている外部キー参照先テーブルとは、当該テーブルＩＤによって識別されるテーブルであり、対象外部キーによって参照されるテーブルである。以下、対象外部キーの外部キー参照先テーブルの項目にテーブル名およびテーブルＩＤが設定されている外部キー参照先テーブルを、単に対象外部キー参照先テーブルと称する。ここでは、対象外部キー参照先テーブルは、第２のテーブルであるものとする。
【０２０７】
この場合、入力値候補取得部３２は、対象外部キー参照先テーブルである第２のテーブルを示す第２のテーブル情報の第２のテーブル定義情報に含まれる主キーの項目を参照してステップＳ４４の処理を実行する。
【０２０８】
入力値候補取得部３２は、特定されたカラム（ここでは、第２のテーブルにおいて主キーであるカラム）の物理名を第１の参照先テーブル定義情報に含まれる外部キー参照先構成列の入力値の候補として取得する（ステップ４５）。なお、第２のテーブルにおいて主キーであるカラムの物理名は、第２のテーブル情報から取得される。
【０２０９】
なお、例えば上述した図１３および図１４に示す第１の入力値候補取得処理および図１８に示す第２の入力値候補取得処理が実行されることによって外部キー参照先構成列の項目に値が設定されている場合には、上記したステップＳ４３において外部キー参照先構成列がnullでないと判定され、ステップＳ４４およびＳ４５の処理は実行されない。
【０２１０】
次に、入力値候補取得部３２は、ステップＳ４１において取得されたテーブル情報（第１および第２のテーブル情報）によって示されるテーブルにおける全ての外部キー（つまり、当該第１および第２のテーブル情報において設定されている全ての外部キー）について上記したステップＳ４３以降の処理が実行されたか否かを判定する（ステップＳ４６）。
【０２１１】
全ての外部キーについて処理が実行されていないと判定された場合（ステップＳ４６のＮＯ）、上記したステップＳ４３に戻って処理が繰り返される。この場合、ステップＳ４３以降の処理が実行されていない外部キーを対象外部キーとして処理が実行される。
【０２１２】
一方、全ての外部キーについて処理が実行されたと判定された場合（ステップＳ４６のＹＥＳ）、入力値候補取得部３２は、上記したステップＳ４５の処理において取得された外部キー参照先構成列の入力値の候補があるか否かを判定する（ステップＳ４７）。
【０２１３】
外部キー参照先構成列の入力値の候補があると判定された場合（ステップＳ４７のＹＥＳ）、入力値候補取得部３２は、当該外部キー参照先構成列の入力値の候補を入力値決定部３３に対して出力する（ステップＳ４８）。なお、入力値決定部３３に対して出力される外部キー参照先構成列の入力値の候補には、外部キー参照先構成列の項目に設定すべき値の候補となるカラムの物理名等が含まれる。
【０２１４】
一方、外部キー参照先構成列の入力値の候補がないと判定された場合（ステップＳ４７のＮＯ）、ステップＳ４８の処理は実行されない。
【０２１５】
上記したように第３の入力値候補取得処理においては、対象外部キー参照先テーブルにおいて主キーであるカラムの物理名が外部キー参照先構成列の入力値の候補として取得される。
【０２１６】
例えば、対象外部キー参照先テーブルが図４に示す第２のテーブル情報２２２によって示される第２のテーブルである場合、つまり、対象外部キーの外部キー参照先テーブルの項目に含まれる名称の項目に「部署テーブル」、ＩＤの項目に「dept」が設定されている場合を想定する。この場合には、対象外部キー参照先テーブルである第２のテーブルにおいて主キーである「部署番号」カラムの物理名（ここでは、「deptno」）が外部キー参照先構成例の入力値の候補として取得される。
【０２１７】
このように入力値候補取得部３２によって取得された外部キー参照先構成列の入力値の候補は、入力値決定部３３に対して出力される。
【０２１８】
ここで、図２３は、入力値決定部３３に対して出力される外部キー参照先構成列の入力値の候補のデータ構造の一例を示す。
【０２１９】
図２３に示すように、入力値決定部３３に対して出力される外部キー参照先構成列の入力値の候補（外部キー参照先構成列入力値候補）には、上記した図２２に示すステップＳ４５の処理において取得された対象外部キー参照先テーブルにおいて主キーであるカラムの物理名が参照先テーブル主キー（外部キー参照先構成列）として含まれる。また、外部キー参照先構成列の入力値の候補には、参照先テーブル主キーに加えて、テーブル名、テーブルＩＤ、外部キー名、参照先テーブル名および参照先テーブルＩＤが含まれる。
【０２２０】
テーブル名は、対象外部キーのカラムから構成されるテーブルのテーブル名である。テーブルＩＤは、対象外部キーのカラムから構成されるテーブルを識別するための識別子である。外部キー名は、対象外部キーの外部キー名である。参照先テーブル名は、対象外部キー参照先テーブルのテーブル名である。参照先テーブルＩＤは、対象外部キー参照先テーブルを識別するためのテーブルＩＤである。
【０２２１】
外部キー参照先構成列の入力値の候補に含まれるテーブル名、テーブルＩＤ、外部キー名、参照先テーブル名および参照先テーブルＩＤは、上記した第３の入力値候補取得処理において取得されたテーブル情報（第１および第２のテーブル情報）から取得される。
【０２２２】
図２３に示す例では、外部キー参照先構成列の入力値の候補には、外部キー参照先構成列入力値候補１が含まれる。
【０２２３】
なお、図２３に示す外部キー参照先構成列入力値候補１は、上記した図３に示す第１のテーブル情報２２１の第１の参照先テーブル定義情報２２１ｂに含まれる外部キー参照先テーブルの項目に、図４に示す第２のテーブル情報２２２に含まれるテーブル名およびテーブルＩＤが設定されていた場合に第３の入力値候補取得処理において出力される外部キー参照先構成列の入力値の候補の一例である。
【０２２４】
この外部キー参照先構成列入力値候補１には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」、参照先テーブル名「部署テーブル」、参照先テーブルＩＤ「dept」および参照先テーブル主キー「deptno」が含まれている。これによれば、外部キー参照先構成列入力値候補１は、上記したように図３に示す第１のテーブル情報２２１の第１の参照先テーブル定義情報２２１ｂに含まれる外部キー参照先テーブルの項目に第２のテーブル（図４に示す第２のテーブル情報２２２に含まれるテーブル名およびテーブルＩＤ）が設定されていた場合における外部キー参照先構成列の入力値の候補が当該第２のテーブルにおいて主キーである「部署番号」カラムの物理名「deptno」であることを示している。
【０２２５】
上記した図２３に示す形式の外部キー参照先構成列の入力値の候補が入力値決定部３３に対して出力されると、入力値決定部３３は、当該外部キー参照先構成列の入力値の候補を選択するための画面（以下、第３の入力値候補選択画面と表記）を表示する。
【０２２６】
ここで、図２４は、第３の入力値候補選択画面（外部キー参照先構成列入力値候補選択画面）の一例を示す。第３の入力値候補選択画面４２０には、例えばテーブル名およびテーブルＩＤが表示される。この第３の入力値候補選択画面４２０に表示されるテーブル名およびテーブルＩＤは、上記した図２３に示す入力値決定部３３に対して出力された外部キー参照先構成列の入力値の候補に含まれるテーブル名およびテーブルＩＤである。
【０２２７】
また、第３の入力値候補選択画面４２０においては、対象外部キーの外部キー名に対応づけてプルダウン４２１が設けられている。この第３の入力値候補選択画面４２０に設けられているプルダウン４２１には、例えば図２５に示すように外部キー参照先構成列の入力値の候補（ここでは、参照先テーブル名、参照先テーブルＩＤおよび参照先テーブル主キーの組）が設定されている。
【０２２８】
これにより、ユーザは、第３の入力値候補選択画面４２０を介して、外部キー参照先構成列の入力値の候補（つまり、外部キー参照先構成列の項目に設定すべきカラムの物理名）の中から実際に入力値とすべき候補を選択することができる。
【０２２９】
また、第３の入力値候補選択画面４２０には、設定ボタン４２２が設けられている。ユーザが第３の入力値候補選択画面４２０に設けられているプルダウン４２１において所望の外部キー参照先構成列の入力値の候補を選択し、設定ボタン４２２を指定（押下）すると、当該選択された外部キー参照先構成列の入力値の候補が入力値（外部キー参照先構成列に設定すべきカラムの物理名）として決定され、当該入力値が入力情報反映部３４によって入力情報ファイル２２に反映される。
【０２３０】
この場合、入力情報反映部３４は、入力情報ファイル２２に設定されているテーブル情報（上記した外部キー参照先構成列の入力値の候補に含まれるテーブルＩＤによって識別されるテーブルを示すテーブル情報）の参照先テーブル定義情報に含まれる対象外部キーの外部キー参照先構成列の項目に、入力値として決定されたカラムの物理名（外部キー参照先構成列の入力値の候補に含まれる参照先テーブル主キー）を設定する。
【０２３１】
次に、図２６のフローチャートを参照して、第４の入力値候補取得処理の処理手順について説明する。
【０２３２】
第４の入力値候補取得処理は、上記したように第４のルール（参照時の表示形式候補取得ルール）を用いた場合の入力値候補取得処理である。この第４の入力値候補取得処理においては、第４のルールに基づいて、入力情報ファイル２２に設定されているテーブル情報の参照先テーブル定義情報に含まれる参照時の表示形式の項目に設定すべき値の候補（参照時の表示形式の入力値の候補）が取得される。なお、参照先テーブル定義情報に含まれる参照時の表示形式の項目には、当該参照先テーブル定義情報に含まれる外部キー参照先テーブルの項目に設定されているテーブル（外部キー参照先テーブル）の参照時における表示形式が設定される。
【０２３３】
なお、第４の入力値候補取得処理が実行される際、入力情報ファイル２２に設定されているテーブル情報によって示されるテーブルにおいて外部キーが設定されている場合には当該テーブル情報の参照先テーブル定義情報に含まれる少なくとも外部キー名、外部キー参照先テーブルおよび外部キー参照先構成列の項目に値が設定されているものとする。
【０２３４】
まず、入力値候補取得部３２は、入力情報取得部３１によって取得された第１および第２のテーブル情報を、当該入力情報取得部３１から取得する（ステップＳ５１）。
【０２３５】
入力値候補取得部３２は、入力値候補取得ルール保持部２３に保持されているルールに含まれる第４のルール（参照時の表示形式候補取得ルール）を取得する（ステップＳ５２）。以下に説明するステップＳ５３〜Ｓ５６の処理は、この第４のルールに基づいて実行される。なお、第４のルールの内容は上述した図１１において説明した通りであるため、ここではその詳しい説明を省略する。
【０２３６】
次に、入力値候補取得部３２は、ステップＳ５１において取得されたテーブル情報（ここでは、第１および第２のテーブル情報）によって示されるテーブルにおける外部キー（当該第１および第２のテーブル情報の参照先テーブル定義情報に含まれる外部キー名）の各々について以下のステップＳ５３以降の処理を実行する。以下、この処理の対象となる外部キーを対象外部キーとする。ここでは、対象外部キーは、第１のテーブルにおける外部キーであるものとする。
【０２３７】
入力値候補取得部３２は、ステップＳ５１において取得された第１のテーブル情報に含まれる参照先テーブル定義情報（第１の参照先テーブル定義情報）を参照して、対象外部キーの参照時の表示形式（の項目）がnullであるか否かを判定する（ステップＳ５３）。
【０２３８】
参照時の表示形式がnullであると判定された場合（ステップＳ５３のＹＥＳ）、入力値候補取得部３２は、第１の参照先テーブル定義情報に含まれる対象外部キーの外部キー参照先構成列の項目に物理名が設定されているカラムを特定する。ここで、入力値候補取得部３２によって特定されたカラムは、第１の参照先テーブル定義情報に含まれる対象外部キーの外部キー参照先テーブルの項目に設定されているテーブル（つまり、対象外部キー参照先テーブル）において主キーであるカラムである。以下、対象外部キー参照先テーブルは、第２のテーブルであるものとする。
【０２３９】
次に、入力値候補取得部３２は、特定されたカラムから構成されるテーブルを示すテーブル情報（ここでは、第２のテーブル情報）に含まれるテーブル定義情報に含まれる当該カラムの桁（の項目に設定されている値）が２以上であるか否かを判定する（ステップＳ５４）。
【０２４０】
カラムの桁が２以上でない、つまり、１であると判定された場合（ステップＳ５４のＮＯ）、入力値候補取得部３２は、チェックボックス、ラジオボタン、コンボボックスおよびリストボックスを参照時の表示形式の入力値の候補として取得する（ステップＳ５５）。
【０２４１】
一方、カラムの桁が２以上であると判定された場合（ステップＳ５４のＹＥＳ）、入力値候補取得部３２は、ポップアップを参照時の表示形式の入力値の候補として取得する（ステップＳ５６）。
【０２４２】
ステップＳ５５またはＳ５６の処理が実行されると、入力値候補取得部３２は、ステップＳ５１において取得されたテーブル情報（第１および第２のテーブル情報）によって示されるテーブルにおける全ての外部キー（つまり、当該第１および第２のテーブル情報において設定されている全ての外部キー）について上記したステップＳ５３以降の処理が実行されたか否かを判定する（ステップＳ５７）。
【０２４３】
全ての外部キーについて処理が実行されていないと判定された場合（ステップＳ５７のＮＯ）、上記したステップＳ５３に戻って処理が繰り返される。この場合、ステップＳ５３以降の処理が実行されていない外部キーを対象外部キーとして処理が実行される。
【０２４４】
一方、全ての外部キーについて処理が実行されたと判定された場合（ステップＳ５７のＹＥＳ）、入力値候補取得部３２は、上記したステップＳ５５およびＳ５６において取得された参照時の表示形式の入力値の候補があるか否かを判定する（ステップＳ５８）。
【０２４５】
参照時の表示形式の入力値の候補があると判定された場合（ステップＳ５８のＹＥＳ）、入力値候補取得部３２は、当該参照時の表示形式の入力値の候補を入力値決定部３３に対して出力する（ステップＳ５９）。
【０２４６】
一方、参照時の表示形式の入力値の候補がないと判定された場合（ステップＳ５８のＮＯ）、ステップＳ５９の処理は実行されない。
【０２４７】
また、上記したステップＳ５３において参照時の表示形式がnullでないと判定された場合、ステップＳ５４〜Ｓ５６の処理は実行されず、ステップＳ５７の処理が実行される。
【０２４８】
上記したように第４の入力値候補取得処理においては、対象外部キーの外部キー参照先構成列のカラム（当該外部キー参照先構成列の項目に物理名が設定されているカラム）の桁数に基づいて参照時の表示形式の入力値の候補が取得される。
【０２４９】
例えば、対象外部キー参照先テーブルが図４に示す第２のテーブル情報２２２によって示される第２のテーブルであり、対象外部キーの外部キー参照先構成列の項目に「deptno」が設定されていた場合には、当該第２のテーブル情報２２２の第２のテーブル定義情報２２２ａに含まれる物理名が「deptno」であるカラム（つまり、「部署番号」カラム）の桁数は２以上であるため、ポップアップが参照時の表示形式の入力値の候補として取得される。
【０２５０】
このように入力値候補取得部３２によって取得された参照時の表示形式の入力値の候補は、入力値決定部３３に対して出力される。
【０２５１】
ここで、図２７は、入力値決定部３３に対して出力される参照時の表示形式の入力値の候補のデータ構造の一例を示す。
【０２５２】
図２７に示すように、入力値決定部３３に対して出力される参照時の表示形式の入力値の候補（参照時の表示形式入力値候補）には、上記した図２６に示すステップＳ５５またはＳ５６において取得された参照時の表示形式の候補（チェックボックス、ラジオボタン、コンボボックス、リストボックスまたはポップアップ）が表示形式として含まれる。また、入力値決定部３３に対して出力される参照時の表示形式の入力値の候補には、表示形式に加えて、テーブル名、テーブルＩＤおよび外部キー名が含まれる。
【０２５３】
テーブル名は、対象外部キーのカラムから構成されるテーブルのテーブル名である。テーブルＩＤは、対象外部キーのカラムから構成されるテーブルを識別するための識別子である。外部キー名は、対象外部キーの外部キー名である。
【０２５４】
参照時の表示形式の入力値の候補に含まれるテーブル名、テーブルＩＤおよび外部キー名は、上記した第４の入力値候補取得処理において取得されたテーブル情報（第１および第２のテーブル情報）から取得される。
【０２５５】
図２７に示す例では、入力値決定部３３に対して出力される参照時の表示形式の入力値の候補には、参照時の表示形式入力値候補１〜４が含まれる。
【０２５６】
なお、図２７に示す参照時の表示形式入力値候補１〜４は、例えば図３に示す第１の参照先テーブル定義情報２２１ｂに含まれる外部キー参照先テーブルの項目に第２のテーブルが設定されており、外部キー参照先構成列の項目に図４に示す第２のテーブル定義情報２２２ａに含まれる「部署番号」カラムの物理名「deptno」が設定されている場合に第４の入力値候補取得処理において出力される参照時の表示形式の入力値の候補（ここでは、ポップアップ、チェックボックス、ラジオボタン、コンボボックスおよびリストボックス）の一例である。
【０２５７】
図２７に示す例では、参照時の表示形式入力値候補１には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」および表示形式「ポップアップ」が含まれている。これによれば、参照時の表示形式入力値候補１は、対象外部キー（ここでは、外部キー名が「deptno」である外部キー）の参照時の表示形式の項目に設定すべき値の候補（参照時の表示形式の入力値の候補）がポップアップであることを示している。
【０２５８】
また、参照時の表示形式入力値候補２には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」および表示形式「ポップアップ」が含まれている。これによれば、参照時の表示形式入力値候補１は、対象外部キー（ここでは、外部キー名が「deptno」である外部キー）の参照時の表示形式の項目に設定すべき値の候補（参照時の表示形式の入力値の候補）がポップアップであることを示している。
【０２５９】
また、参照時の表示形式入力値候補３には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」および表示形式「ポップアップ」が含まれている。これによれば、参照時の表示形式入力値候補１は、対象外部キー（ここでは、外部キー名が「deptno」である外部キー）の参照時の表示形式の項目に設定すべき値の候補（参照時の表示形式の入力値の候補）がポップアップであることを示している。
【０２６０】
また、参照時の表示形式入力値候補４には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」および表示形式「ポップアップ」が含まれている。これによれば、参照時の表示形式入力値候補１は、対象外部キー（ここでは、外部キー名が「deptno」である外部キー）の参照時の表示形式の項目に設定すべき値の候補（参照時の表示形式の入力値の候補）がポップアップであることを示している。
【０２６１】
これらの例では、外部キー名が「deptno」であるため参照時の表示形式の候補は「ポップアップ」であるが、外部キー名が他のものであれば、参照時の表示形式の候補として、ポップアップ以外のチェックボックス、ラジオボタン、コンボボックスおよびリストボックスも示されることになる。
【０２６２】
上記した図２７に示す形式の参照時の表示形式の入力値の候補が入力値決定部３３に対して出力されると、入力値決定部３３は、当該参照時の表示形式の入力値の候補を選択するための画面（以下、第４の入力値選択画面と表記）を表示する。
【０２６３】
ここで、図２８は、第４の入力値候補選択画面（参照時の表示形式入力値候補選択画面）の一例を示す。第４の入力値候補選択画面４３０には、例えばテーブル名およびテーブルＩＤが表示される。この第４の入力値候補選択画面４３０に表示されるテーブル名およびテーブルＩＤは、上記した図２７に示す入力値決定部３３に対して出力された参照時の表示形式の入力値の候補に含まれるテーブル名およびテーブルＩＤである。
【０２６４】
また、第４の入力値候補選択画面４３０においては、対象外部キーの外部キー名に対応づけてプルダウン４３１が設けられている。この第４の入力値候補選択画面４３０に設けられているプルダウン４３１には、例えば図２９に示すように参照時の表示形式の入力値の候補（ここでは、ポップアップ）が設定されている。
【０２６５】
これにより、ユーザは、第４の入力値候補選択画面４３０を介して、参照時の表示形式の入力値の候補（つまり、参照時の表示形式の項目に設定すべき値の候補）の中から実際に入力値とすべき候補を選択することができる。
【０２６６】
また、第４の入力値候補選択画面４３０には、設定ボタン４３２が設けられている。ユーザが第４の入力値候補選択画面４３０に設けられているプルダウン４３１において所望の参照時の表示形式の入力値の候補を選択し、設定ボタン４３２を指定（押下）すると、当該選択された参照時の表示形式の入力値の候補が入力値として決定され、当該入力値が入力情報反映部３４によって入力情報ファイル２２に反映される。
【０２６７】
この場合、入力情報反映部３４は、入力情報ファイル２２に設定されているテーブル情報（上記した参照時の表示形式の入力値の候補に含まれるテーブルＩＤによって識別されるテーブルを示すテーブル情報）の参照先テーブル定義情報に含まれる対象外部キーの参照時の表示形式の項目に、入力値として決定された表示形式（ここでは、ポップアップ）を設定する。
【０２６８】
次に、図３０のフローチャートを参照して、第５の入力値候補取得処理の処理手順について説明する。
【０２６９】
第５の入力値候補取得処理は、上記したように第５のルール（参照時の表示項目候補取得ルール）を用いた場合の入力値候補取得処理である。この第５の入力値候補取得処理においては、第５のルールに基づいて、入力情報ファイル２２に設定されているテーブル情報の参照先テーブル定義情報に含まれる参照時の表示項目の項目に設定すべき値の候補（参照時の表示項目の入力値の候補）が取得される。なお、参照先テーブル定義情報に含まれる参照時の表示項目の項目には、当該参照先テーブル定義情報に含まれる外部キー参照先テーブルの項目に設定されているテーブル（外部キー参照先テーブル）の参照時に表示される項目（表示項目）が設定される。
【０２７０】
なお、第５の入力値候補取得処理が実行される際、入力情報ファイル２２に設定されているテーブル情報によって示されるテーブルにおいて外部キーが設定されている場合には当該テーブル情報の参照先テーブルテーブル定義情報に含まれる外部キー名、外部キー参照先テーブル、外部キー参照先構成列および参照時の表示形式の項目に値が設定されているものとする。
【０２７１】
まず、入力値候補取得部３２は、入力情報取得部３１によって取得された第１および第２のテーブル情報を、当該入力情報取得部３１から取得する（ステップＳ６１）。
【０２７２】
入力値候補取得部３２は、入力値候補取得ルール保持部２３に保持されているルールに含まれる第５のルール（参照時の表示項目候補取得ルール）を取得する（ステップＳ６２）。以下に説明するステップＳ６３〜Ｓ６７の処理は、この第５のルールに基づいて実行される。なお、第５のルールの内容は上述した図１１において説明した通りであるため、ここではその詳しい説明を省略する。
【０２７３】
次に、入力値候補取得部３２は、ステップＳ６１において取得されたテーブル情報（ここでは、第１および第２のテーブル情報）によって示されるテーブルにおける外部キー（当該第１および第２のテーブル情報の参照先テーブル定義情報に含まれる外部キー名）の各々について以下のステップＳ６３以降の処理を実行する。以下、この処理の対象となる外部キーを対象外部キーとする。ここでは、対象外部キーは、第１のテーブルにおける外部キーであるものとする。
【０２７４】
入力値候補取得部３２は、ステップＳ６１において取得された第１のテーブル情報に含まれる参照先テーブル定義情報（第１の参照先テーブル定義情報）を参照して、対象外部キーの参照時の表示形式の項目にポップアップが設定されているか否かを判定する（ステップＳ６３）。
【０２７５】
参照時の表示形式の項目にポップアップが設定されていると判定された場合（ステップＳ６３）、入力値候補取得部３２は、第１の参照先テーブル定義情報を参照して、対象外部キーの参照時の表示項目（の項目）がnullであるか否かを判定する（ステップＳ６４）。
【０２７６】
参照時の表示項目がnullであると判定された場合（ステップＳ６４のＹＥＳ）、入力値候補取得部３２は、第１の参照先テーブル定義情報に含まれる対象外部キーの外部キー参照先テーブルの項目に設定されているテーブル（対象外部キー参照先テーブル）を示すテーブル情報に基づいて、当該対象外部キー参照先テーブルを構成するカラムの中から排他制御用のカラムでないカラムを特定する（ステップＳ６５）。以下、対象外部キー参照先テーブルは、第２のテーブルであるものとする。この場合、入力値候補取得部３２は、対象外部キー参照先テーブルである第２のテーブルを示す第２のテーブル情報に含まれる当該第２のテーブルを構成するカラムの各々の排他制御の項目がnullであるか否かを判定することによって、排他制御用のカラムでないカラムを特定する。
【０２７７】
入力値候補取得部３２は、特定されたカラムの物理名を参照時の表示項目の入力値の候補として取得する（ステップＳ６６）。入力値候補取得部３２によって特定されたカラムの物理名は、第２のテーブルを示す第２のテーブル情報に含まれるテーブル定義情報（第２のテーブル定義情報）から取得される。
【０２７８】
入力値候補取得部３２は、ステップＳ６１において取得されたテーブル情報（第１および第２のテーブル情報）によって示されるテーブルにおける全ての外部キー（つまり、当該第１および第２のテーブル情報において設定されている全ての外部キー）について上記したステップＳ６３以降の処理が実行されたか否かを判定する（ステップＳ６７）。
【０２７９】
全ての外部キーについて処理が実行されていないと判定された場合（ステップＳ６７のＮＯ）、上記したステップＳ６３に戻って処理が繰り返される。この場合、ステップＳ６３以降の処理が実行されていない外部キーを対象外部キーとして処理が実行される。
【０２８０】
一方、全ての外部キーについて処理が事項されたと判定された場合（ステップＳ６７のＹＥＳ）、入力値候補取得部３２は、上記したステップＳ６６において取得された参照時の表示項目の入力値の候補があるか否かを判定する（ステップＳ６８）。
【０２８１】
参照時の表示項目の入力値の候補があると判定された場合（ステップＳ６８のＹＥＳ）、入力値候補取得部３２は、当該参照時の表示項目の入力値の候補を入力値決定部３３に対して出力する（ステップＳ６９）。
【０２８２】
一方、参照時の表示項目の入力値の候補がないと判定された場合（ステップＳ６８のＮＯ）、ステップＳ６９の処理は実行されない。
【０２８３】
また、上記したステップＳ６３において参照時の表示形式の項目にポップアップが設定されていないと判定された場合およびステップＳ６４において参照時の表示項目がnullでないと判定された場合、ステップＳ６７の処理が実行される。
【０２８４】
上記したように第５の入力値候補取得処理においては、対象外部キーによって参照されるテーブル（対象外部キー参照先テーブル）を構成する複数のカラムのうちの排他制御用のカラムでないカラムの物理名が参照時の表示項目の入力値の候補として取得される。
【０２８５】
例えば、対象外部キー参照テーブルが図４に示す第２のテーブル情報２２２によって示される第２のテーブルである場合には、当該第２のテーブルを構成する複数のカラムのうちの当該第２のテーブル定義情報２２２ａに含まれる排他制御の項目に「○」が設定されていないカラムの物理名「deptno」、「dname」および「loc」が参照時の表示項目の入力値の候補として取得される。
【０２８６】
このように入力値候補取得部３２によって取得された参照時の表示項目の入力値の候補は、入力値決定部３３に対して出力される。
【０２８７】
ここで、図３１は、入力値決定部３３に対して出力される参照時の表示項目の入力値の候補のデータ構造の一例を示す。
【０２８８】
図３１に示すように、入力値決定部３３に対して出力される参照時の表示項目の入力値の候補（参照時の表示項目入力値候補）には、上記した図３０に示すステップＳ６６において取得された参照時の表示項目の候補（対象外部キー参照先テーブルを構成する複数のカラムのうちの排他制御用のカラムでないカラムの物理名）が表示項目として含まれる。また、入力値決定部３３に対して出力される参照時の表示項目の入力値の候補には、表示項目に加えて、テーブル名、テーブルＩＤおよび外部キー名が含まれる。
【０２８９】
テーブル名は、対象外部キーのカラムから構成されるテーブルのテーブル名である。テーブルＩＤは、対象外部キーのカラムから構成されるテーブルを識別するための識別子である。外部キー名は、対象外部キーの外部キー名である。
【０２９０】
参照時の表示形式の入力値の候補に含まれるテーブル名、テーブルＩＤおよび外部キー名は、上記した第５の入力値候補取得処理において取得されたテーブル情報（第１および第２のテーブル情報）から取得される。
【０２９１】
図３１に示す例では、入力値決定部３３に対して出力される参照時の表示項目の入力値の候補には、参照時の表示項目入力値候補１〜３が含まれる。
【０２９２】
なお、図３１に示す参照時の表示項目入力値候補１〜３は、例えば図３に示す第１の参照先テーブル定義情報２２１ｂに含まれる外部キー参照先テーブルの項目に第２のテーブルが設定されている場合に第５の入力値候補取得処理において出力される参照時の表示形式の入力値の候補の一例である。
【０２９３】
図３１に示す例では、参照時の表示項目入力値候補１には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」および表示項目「deptno」が含まれている。これによれば、参照時の表示項目入力値候補１は、対象外部キー（ここでは、外部キー名が「deptno」である外部キー）の参照時の表示項目に設定すべき値の候補（参照時の表示項目の候補）が「deptno」であることを示している。
【０２９４】
また、参照時の表示項目入力値候補２には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」および表示項目「dname」が含まれている。これによれば、参照時の表示項目入力値候補２は、対象外部キー（ここでは、外部キー名が「deptno」である外部キー）の参照時の表示項目に設定すべき値の候補（参照時の表示項目の候補）が「dname」であることを示している。
【０２９５】
また、参照時の表示項目入力値候補３には、テーブル名「従業員テーブル」、テーブルＩＤ「emp」、外部キー名「deptno」および表示項目「loc」が含まれている。これによれば、参照時の表示項目入力値候補３は、対象外部キー（ここでは、外部キー名が「deptno」である外部キー）の参照時の表示項目に設定される値の候補（参照時の表示項目の候補）が「loc」であることを示している。
【０２９６】
上記した図３１に示す形式の参照時の表示項目の入力値の候補が入力値決定部３３に対して出力されると、入力値決定部３３は、当該参照時の表示形式の入力値の候補を選択するための画面（以下、第５の入力値選択画面と表記）を表示する。
【０２９７】
ここで、図３２は、第５の入力値候補選択画面（参照時の表示項目入力値候補選択画面）の一例を示す。
【０２９８】
第５の入力値候補選択画面４４０においては、対象外部キーの外部キー名に対応づけてプルダウン４４１が設けられている。なお、プルダウン４４１は、検索条件および一覧表示の各々について設けられている。この第５の入力値候補選択画面４４０に設けられているプルダウン４４１には、例えば図３３に示すように参照時の表示項目の入力値の候補（ここでは、「deptno」、「dname」および「loc」）が設定されている。なお、図３３に示すように、第５の入力値候補選択画面４４０に設けられているプルダウン４４１には、空欄が設定されており、検索条件のみには「なし」についても設定されている（一覧表示には「なし」は設定されていない）。
【０２９９】
これにより、ユーザは、第５の入力値候補選択画面４４０を介して、参照時の表示項目の入力値の候補（つまり、参照時の表示項目の項目に設定すべき値の候補）の中から実際に入力値とすべき候補を選択することができる。
【０３００】
第５の入力値候補選択画面４４０には、設定ボタン４４２が設けられている。ユーザが第５の入力値候補選択画面４４０に設けられているプルダウン４４１において所望の参照時の表示項目の入力値の候補を選択し、設定ボタン４４２を指定（押下）すると、当該選択された参照時の表示項目の入力値の候補が入力値として決定され、当該入力値が入力情報反映部３４によって入力情報ファイル２２に反映される。
【０３０１】
この場合、入力情報反映部３４は、入力情報ファイル２２に設定されているテーブル情報（上記した参照時の表示項目の入力値の候補に含まれるテーブルＩＤによって識別されるテーブルを示すテーブル情報）の参照先テーブル情報に含まれる対象外部キーの参照時の表示項目の項目（に含まれる検索条件および一覧表示の項目）に、入力値として決定された表示項目（ここでは、「（空欄）」、「なし」、「deptno」、「dname」または「loc」）を設定する。
【０３０２】
なお、参照時の表示項目に関しては複数の値を設定することができる。このため、第５の入力値候補選択画面４４０においては、プルダウン追加ボタン４４３およびプルダウン削除ボタン４４４が設けられている。このプルダウン追加ボタン４４３がユーザによって指定（押下）されると、プルダウン４４１が１つ追加される。これにより、複数の参照時の表示項目に設定される値を複数選択することができる。一方、プルダウン削除ボタン４４４がユーザによって指定（押下）されると、プルダウン４４１が１つ削除される。
【０３０３】
上記したように本実施形態においては、入力情報ファイル２２に設定されている複数のテーブル情報が取得され、当該複数のテーブル情報および入力値候補取得ルール保持部２３に保持されているルール（例えば、第１のルール）に基づいて当該入力情報ファイル２２に設定すべき値（入力値）の候補が取得される。
【０３０４】
具体的には、本実施形態においては、入力情報ファイル２２に設定されている複数のテーブル情報（例えば、第１および第２のテーブル情報）のうちの第１のテーブル情報によって示されるテーブル（第１のテーブル）を構成する複数のカラムのうちの１つである対象カラムが当該第１のテーブルにおいて主キーでない場合、当該第１のテーブルにおいて主キーであるカラムが当該第１のテーブルにおける外部キーの候補として取得される。
【０３０５】
また、本実施形態においては、例えば第１のテーブル情報によって示される第１のテーブルを構成する複数のカラムのうちの１つである対象カラムが当該第１のテーブルにおいて主キーでない場合、当該第１のテーブルとは異なるテーブル（例えば、第２のテーブル）を構成する複数のカラムのうち当該第２のテーブルにおいて主キーであるカラムが当該第２のテーブルを示す第２のテーブル情報に含まれる主キー情報（主キーの項目に設定されている値）に基づいて特定され、当該対象カラムのカラム名および当該特定されたカラムのカラム名が同一である場合には、当該第２のテーブルにおいて主キーであるカラムが第１のテーブルにおける外部キーの候補として取得される。
【０３０６】
本実施形態においては、上記したように取得された外部キーの候補（外部キーの入力値の候補）がユーザに対して提示される。
【０３０７】
これにより、本実施形態においては、ユーザは提示された外部キーの候補の中から外部キー（実際に入力情報ファイル２２に外部キーとして設定すべきカラム）を選択することが可能となるため、アプリケーションの自動生成に必要な情報の設定を支援することが可能となる。また、本実施形態においては、ユーザの操作に応じて決定された外部キー（を示す外部キー情報）を自動的に入力情報ファイル２２に設定（反映）することができる。
【０３０８】
また、本実施形態においては、上記したように外部キーが入力情報ファイル２２に設定された場合、外部キー名、外部キー参照先テーブルおよび外部キー参照先構成列の項目についても自動的に適切な値を入力情報ファイル２２に設定することができる。
【０３０９】
また、本実施形態においては、外部キー参照先構成列として入力情報ファイル２２に設定されたカラムの桁数に基づいて外部キー参照先テーブルとして入力情報ファイル２２（の外部キー参照先テーブルの項目）に設定されたテーブルの表示形式の候補が取得され、当該取得された表示形式の候補がユーザに対して提示される。これにより、本実施形態においては、ユーザの操作に応じて、提示された表示形式の候補を、外部キー参照先テーブルの表示形式（入力情報ファイル２２に設定すべき表示形式）として決定し、当該決定された表示形式を入力情報ファイル２２に設定することができる。
【０３１０】
また、本実施形態においては、外部キー参照先テーブルとして入力情報ファイル２２（の外部キー参照先テーブルの項目）に設定されたテーブルを構成する複数のカラムのうちの排他制御用のカラムでないカラムが当該テーブルの表示項目の候補として取得され、当該取得された表示項目の候補がユーザに対して提示される。これにより、本実施形態においては、ユーザの操作に応じて、提示された表示項目の候補を、外部キー参照先テーブルの表示項目（入力情報ファイル２２に設定すべき表示項目）として決定し、当該決定された表示項目を入力情報ファイル２２に設定することができる。
【０３１１】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。  
【符号の説明】
【０３１２】
１０…コンピュータ、２０…外部記憶装置、２２…入力情報ファイル、２３…入力値候補取得ルール保持部、３０…設定情報入力支援装置、３１…入力情報取得部、３２…入力値候補取得部、３３…入力値決定部、３４…入力情報反映部。
【図１】
0005487181.tif 000002
【図２】
0005487181.tif 000003
【図３】
0005487181.tif 000004
【図４】
0005487181.tif 000005
【図５】
0005487181.tif 000006
【図６】
0005487181.tif 000007
【図７】
0005487181.tif 000008
【図８】
0005487181.tif 000009
【図９】
0005487181.tif 000010
【図１０】
0005487181.tif 000011
【図１１】
0005487181.tif 000012
【図１２】
0005487181.tif 000013
【図１３】
0005487181.tif 000014
【図１４】
0005487181.tif 000015
【図１５】
0005487181.tif 000016
【図１６】
0005487181.tif 000017
【図１７】
0005487181.tif 000018
【図１８】
0005487181.tif 000019
【図１９】
0005487181.tif 000020
【図２０】
0005487181.tif 000021
【図２１】
0005487181.tif 000022
【図２２】
0005487181.tif 000023
【図２３】
0005487181.tif 000024
【図２４】
0005487181.tif 000025
【図２５】
0005487181.tif 000026
【図２６】
0005487181.tif 000027
【図２７】
0005487181.tif 000028
【図２８】
0005487181.tif 000029
【図２９】
0005487181.tif 000030
【図３０】
0005487181.tif 000031
【図３１】
0005487181.tif 000032
【図３２】
0005487181.tif 000033
【図３３】
0005487181.tif 000034