(57)【特許請求の範囲】
【請求項１】
第１のデータベースに記憶されているデータを、前記第１のデータベースとは異なる第２のデータベースに移動させる処理を行う情報処理装置であって、
移動対象となる元データを含む元テーブルと、前記元テーブルに関連する関連テーブルとを対応付けたテーブル間依存関係表と、前記元テーブルと前記関連テーブルに含まれる関連データまたは前記第１のデータベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関係表とを記憶する記憶部と、
前記キー情報の入力を受け付ける入力受付部と、
前記入力受付部が受け付けたキー情報と、前記テーブル列間依存関係表に含まれるキー情報とに基づいて、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第１のデータベースから取得するデータ取得部と、
前記データ取得部が取得した前記元テーブルと、前記テーブル間依存関係表に記憶された元テーブルとに基づいて、前記元テーブルに対応する前記関連テーブルを特定し、特定した前記関連テーブルと、前記データ取得部が取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得する関連データ取得部と、
前記データ取得部が取得した前記元テーブルのデータと、前記関連データ取得部が取得した前記関連データとを前記第２のデータベースに挿入するデータ挿入部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記テーブル列間依存関係表は、さらに前記元テーブルに含まれる元データを対応付けて記憶し、
前記データ取得部は、前記入力受付部が受け付けたキー情報と、前記テーブル列間依存関係表に含まれるキー情報とに基づいて、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルが有する元データを前記第１のデータベースから取得する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記データ取得部は、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第１のデータベースから取得して前記第２のデータベースに挿入するためのＳＱＬ（Structured  Query  Language）を生成し、
前記関連データ取得部は、特定した前記関連テーブルと、前記データ取得部が取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得して前記第２のデータベースに挿入するためのＳＱＬを生成する、
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記データ取得部および前記関連データ取得部は、作成した前記ＳＱＬを所定のバッチファイルに書き込んで実行する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記データ取得部及び前記関連データ取得部は、同一のバッチファイル前記ＳＱＬを書き込む、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記データ挿入部は、前記バッチファイルに書き込まれたＳＱＬが重複しているか否かをチェックした上で、前記データ取得部が取得した前記元テーブルのデータと、前記関連データ取得部が取得した前記関連データとを前記第２のデータベースに挿入する、
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
第１のデータベースに記憶されているデータを、前記第１のデータベースとは異なる第２のデータベースに移動させる処理を行う情報処理装置で行われるデータ取得方法であって、
前記第１のデータベースに記憶されているデータを移動させるためのキー情報の入力を受け付ける入力受付ステップと、
前記入力受付ステップにおいて受け付けたキー情報と、移動対象となる元データを含む元テーブルと、前記元テーブルに関連する関連テーブルに含まれる関連データまたは前記第１のデータベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関係表に含まれるキー情報とに基づいて、入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第１のデータベースから取得するデータ取得ステップと、
前記データ取得ステップにおいて取得した前記元テーブルと、前記元テーブルと前記関連テーブルとを対応付けたテーブル間依存関係表に記憶された元テーブルとに基づいて、前記元テーブルに対応する前記関連テーブルを特定し、特定した前記関連テーブルと、前記データ取得ステップにおいて取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得する関連データ取得ステップと、
前記データ取得ステップにおいて取得した前記元テーブルのデータと、前記関連データ取得ステップにおいて取得した前記関連データとを前記第２のデータベースに挿入するデータ挿入ステップと、
を含むことを特徴とするデータ取得方法。
【請求項８】
コンピュータに、
第１のデータベースに記憶されているデータを、前記第１のデータベースとは異なる第２のデータベースに移動させるためのキー情報の入力を受け付ける入力受付ステップと、
前記入力受付ステップにおいて受け付けたキー情報と、移動対象となる元データを含む元テーブルと、前記元テーブルに関連する関連テーブルに含まれる関連データまたは前記第１のデータベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関係表に含まれるキー情報とに基づいて、入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第１のデータベースから取得するデータ取得ステップと、
前記データ取得ステップにおいて取得した前記元テーブルと、前記元テーブルと前記関連テーブルとを対応付けたテーブル間依存関係表に記憶された元テーブルとに基づいて、前記元テーブルに対応する前記関連テーブルを特定し、特定した前記関連テーブルと、前記データ取得ステップにおいて取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得する関連データ取得ステップと、
前記データ取得ステップにおいて取得した前記元テーブルのデータと、前記関連データ取得ステップにおいて取得した前記関連データとを前記第２のデータベースに挿入するデータ挿入ステップと、
を実行させることを特徴とするデータ取得プログラム。
【請求項９】
請求項８に記載されたデータ取得プログラムを格納したコンピュータの読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに記憶されているデータを取得することが可能な情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体に関するものである。
【背景技術】
【０００２】
一般に、顧客からの依頼に応じて本番データの調査を行う場合、あるいはシステムの本番環境で発生した事故事象を、テスト環境、疑似環境、検査環境で再現させる場合、本番環境にあるデータベースから、その調査のための様々なデータを取得し、取得したデータをテスト環境、疑似環境、検査環境に移動させる必要がある場合が多い。従来の方法としては、例えば、本番環境にあるデータベースのバックアップを取得してリストアする方法、本番環境にあるデータベースをエクスポートしてインポートするユーティリティを使用する方法、あるいはクエリツールを使用してデータを取得する方法などがある。また、特許文献１に開示されているように、ＥＴＬ（Extract  Transform  Load）ツールを用いて、データベースから必要となるデータを抽出して加工する方法などがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００９−５０９２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述した従来技術により、本番環境にあるデータベースから調査対象となるデータを取得し、挿入するという処理を行うことは可能である。しかし、データベースのバックアップを取得し、その後リストアする方法では、本番環境のシステムに大きな負荷がかかる上、取り出したいデータ以外のデータも取得することになる。例えば、エクスポート・インポートユーティリティでは、バックアップのリストア同様、データベースに大きな負荷がかかり、取り出したいデータ以外も取得することになり、不必要にデータベースに負荷がかかってしまう。また、クエリツールでは、利用者が自らＳＱＬ（Structured  Query  Language）文を作成するため、テーブルの構造を理解した上で使用する必要があり、容易に必要なデータを取得できない。また、上述した特許文献に示されている技術では、本番環境にあるデータベースから必要となるデータを抽出して加工するため、データベースへのアクセスが多く発生し、データベースに負荷がかかってしまう。
【０００５】
本発明は、上記に鑑みてなされたものであって、本番環境のデータベースにかかる負荷を増大させることなく、容易に必要なデータを取得することが可能な情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した目的を達成するために、本発明にかかる情報処理装置は、第１のデータベースに記憶されているデータを、前記第１のデータベースとは異なる第２のデータベースに移動させる処理を行う情報処理装置であって、移動対象となる元データを含む元テーブルと、前記元テーブルに関連する関連テーブルとを対応付けたテーブル間依存関係表と、前記元テーブルと前記関連テーブルに含まれる関連データまたは前記第１のデータベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関係表とを記憶する記憶部と、前記キー情報の入力を受け付ける入力受付部と、前記入力受付部が受け付けたキー情報と、前記テーブル列間依存関係表に含まれるキー情報とに基づいて、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第１のデータベースから取得するデータ取得部と、前記データ取得部が取得した前記元テーブルと、前記テーブル間依存関係表に記憶された元テーブルとに基づいて、前記元テーブルに対応する前記関連テーブルを特定し、特定した前記関連テーブルと、前記データ取得部が取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得する関連データ取得部と、前記データ取得部が取得した前記元テーブルのデータと、前記関連データ取得部が取得した前記関連データとを前記第２のデータベースに挿入するデータ挿入部と、を備えることを特徴とする。
【０００７】
また、本発明は、上記情報処理装置で行われるデータ取得方法、データ取得プログラム、及び記録媒体である。
【発明の効果】
【０００８】
本発明によれば、本番環境のデータベースにかかる負荷を増大させることなく、容易に必要なデータを取得することが可能な情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体を提供することができる。
【図面の簡単な説明】
【０００９】
【図１Ａ】本実施の形態における情報処理装置が行うデータ取得方法の処理の概要を示す図である。
【図１Ｂ】情報処理装置の機能的な構成の例を示す図である。
【図２】テーブル間依存関係表の具体的な例を示す図である。
【図３】テーブル列間依存関係表の具体的な例を示す図である。
【図４Ａ】情報処理装置で行われるデータ取得処理の処理手順を示すフローチャートである。
【図４Ｂ】情報処理装置で行われるデータ取得処理の処理手順を示すフローチャートである。
【図４Ｃ】情報処理装置で行われるデータ取得処理の処理手順を示すフローチャートである。
【図５】キー情報が入力されてから関連するテーブルのデータを取得するまでの概念図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかる情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体の実施の形態を詳細に説明する。
【００１１】
図１Ａは、本実施の形態における情報処理装置１００が行うデータ取得方法の処理の概要を示す図である。図１に示すように、情報処理装置１００は、本番環境データベースからの取得対象となるデータである入力キー情報１〜入力キー情報ｎが入力されると、その入力キー情報をキーとして、あらかじめ定められたテーブル間依存関係表およびテーブル列間依存関係表（いずれも後述）を参照し、本番環境データベースから入力キー情報を有したデータを取得するためのＳＱＬ（Structured  Query  Language）文を生成する。
【００１２】
そして、情報処理装置１００は、生成したＳＱＬ文が重複していないかチェックした上でそのＳＱＬ文を実行し、本番環境データベースに記憶されている入力キー情報を有したテーブルのデータを取得し、取得したデータをテスト環境データベースや擬似環境データベース、あるいは検査環境データベース等の本番環境とは異なる環境にあるデータベースに挿入するためのＳＱＬ文を生成して実行する。このような流れの処理を行うことによって、入力キー情報に関係する必要なデータのみを取得することができるようになっている。なお、入力キー情報とは、取得対象となるデータが個人情報に関連するデータである場合には、例えば、氏名や住所、あるいは年齢、性別等、個人情報を構成する種々の情報である。
【００１３】
情報処理装置１００は、例えば、サーバやＰＣ（Personal  Computer）である。図１Ｂは、情報処理装置１００の機能的な構成の例を示す図である。図１Ｂに示すように、情報処理装置１００は、機能的には、記憶部１０１と、データ取得部１０２と、関連データ取得部１０３と、データ挿入部１０４と、入力受付部１０５とを含んで構成されている。なお、情報処理装置１００は、本番環境データベース、テスト環境データベースや擬似環境データベース、あるいは検査環境データベース等との間で、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークによって接続されているものとする。
【００１４】
記憶部１０１は、例えば、ＨＤＤ（Hard  Disk  Drive）等の記憶装置であり、テーブル間依存関係表およびテーブル列間依存関係表を記憶する。
【００１５】
図２は、テーブル間依存関係表の具体的な例を示す図である。図２に示すように、テーブル間依存関係表は、入力キー情報を有したテーブル（元テーブル）と、その元テーブルに関連するテーブル（関連テーブル）とが対応付けて記憶されている。図２では、例えば、元テーブル「Ａ」は、他のテーブルとは関連性がないため関連テーブルを有していないことを示している。また、元テーブル「Ｂ」は、他のテーブル「Ｈ」、「Ｉ」、「Ｊ」、「Ｋ」、「Ｌ」との間で関連性を有していることを示している。ここで、テーブルの関連性とは、例えば、あるテーブルが有している項目と同じ項目を他のテーブルが有している場合、その他のテーブルはあるテーブルとが関連性を有していることを意味するほか、あるテーブルが有している項目を用いて所定の算式によって導かれる値を他のテーブルの一つの項目として有している場合にも、これらのテーブルは関連性を有しているものとする。このようなテーブル間の関連性が、図２に示したテーブル間依存関係表にあらかじめ登録されている。
【００１６】
後述するように、関連データ取得部１０３は、例えば、入力キー情報より取得したテーブルの中に、テーブル「Ａ」とテーブル「Ｂ」が含まれていた場合、テーブル「Ａ」、テーブル「Ｂ」に関連するテーブル情報を得るため、テーブルの関連する関連テーブル１の列を参照し、値が存在しないため、関連するテーブルが存在しないと判定する。次に、関連データ取得部１０３は、テーブル「Ｂ」の関連する関連テーブル１の列を参照し、テーブル「Ｈ」が登録されているため、関連するテーブルとしてテーブル名「Ｈ」を保持する。さらに、関連データ取得部１０３は、これと同様に、関連する関連テーブル２の列を参照し、テーブル「Ｉ」が登録されているため、テーブル名「Ｉ」を保持する。このように、関連データ取得部１０３は、テーブル間の依存関係表を参照し、テーブル名の情報を保持する。
【００１７】
図３は、テーブル列間依存関係表の具体的な例を示す図である。図３に示すように、テーブル列間依存関係表は、あるテーブル（現テーブル）と、現テーブルが有している項目（現テーブル項目）と、現テーブルが参照するテーブル（参照テーブル）と、参照テーブルが有している項目（参照テーブル項目）とが対応付けて記憶されている。図３では、例えば、現テーブル「Ｈ」が有している現テーブル項目のうち、１カラム目の項目（ｃｏｌ１）は、参照テーブル「Ｂ」が有している２カラム目の項目（ｃｏｌ２）を参照してその値が設定されていることを示している。また、元テーブル「Ａ」が有している元テーブル項目のうち、１カラム目の項目（ｃｏｌ１）は、あらかじめ設定された参照テーブルおよび参照テーブル項目がなく、入力受付部１０５が受け付けた入力キー情報１が参照テーブル項目として設定されることを示している。このように、テーブル列間の関連性が、図３に示したテーブル列間依存関係表にあらかじめ登録されている。続いて、図１Ｂに戻り、データ取得部１０２について説明する。
【００１８】
後述するように、データ取得部１０２は、例えば、テーブル「Ｂ」の２列目（ｃｏｌ２）は、テーブル「Ｈ」の１列目（ｃｏｌ１）を参照していることを示している。データ取得部１０２は、この情報を使用し、入力したキー情報から得られたデータにさらに関連するデータを抜き出すことが可能となる。なお、参照するテーブルが「Ｎｕｌｌ」である場合、どのテーブルの列からも参照されないことを示している。図２に示したテーブル間依存関係表と図３に示したテーブル列間依存関係表を使用することで、入力キー情報に関連するデータを取得することが可能となる。
【００１９】
データ取得部１０２は、後述する入力受付部１０５が受け付けた入力キー情報（例えば、入力キー情報１〜入力キー情報ｎ）をもとに、本番環境データベースが有するテーブルからデータを取得するＳＱＬ文を作成して実行するものである。データ取得部１０２は、入力されたキー情報から直接アクセス可能なテーブルを参照し、入力キー情報により指定されたデータを抜き出している。このデータ取得部１０２が行う具体的な処理についてはフローチャートを用いて後述する。
【００２０】
関連データ取得部１０３は、データ取得部１０２が抜き出したデータを有するテーブルとの間で関連性のあるテーブルから、関連性のあるデータを取得するものである。関連データ取得部１０３は、データ取得部１０２が作成したＳＱＬ文に、関連性のあるテーブルからデータを取得するためのＳＱＬ文を追加して、再度ＳＱＬ文を実行している。この関連データ取得部１０３が行う具体的な処理についてはフローチャートを用いて後述する。
【００２１】
データ挿入部１０４は、データ取得部１０２および関連データ取得部１０３が作成したＳＱＬ文を用いて、テスト環境データベースや擬似環境データベース、あるいは検査環境データベース等にデータを挿入するものである。データ挿入部１０４は、データ取得部１０２および関連データ取得部１０３が作成したＳＱＬ文を用いて、挿入用のＳＱＬ文を生成して実行することにより、データ取得部１０２および関連データ取得部１０３が取得したデータをテスト環境データベースや擬似環境データベース、あるいは検査環境データベース等にデータを挿入する。このデータ挿入部１０４が行う具体的な処理についてはフローチャートを用いて後述する。
【００２２】
入力受付部１０５は、例えば、キーボードやマウス等の入力装置であり、上述した入力キー情報の入力を受け付ける。
【００２３】
なお、情報処理装置１００が有する各部は、データ取得部１０２、関連データ取得部１０３、およびデータ挿入部１０４の各機能を実現するためのプログラムにより実行される。これらのプログラムは、例えば、上述した各部を含むモジュール構成となっており、実際のハードウェアとしては、ＣＰＵ等の制御部がＨＤＤ等の記録装置からこれらのプログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、データ取得部１０２、関連データ取得部１０３、およびデータ挿入部１０４の各部が主記憶装置上に生成されるようになっている。
【００２４】
また、上述したプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録されて提供することも可能である。さらに、これらのプログラムを、ネットワーク経由でダウンロードさせて提供または配布するように構成してもよい。続いて、情報処理装置１００で行われる入力されたキー情報から関連するデータの取得と挿入するまでの処理（データ取得処理）について説明する。
【００２５】
図４Ａ〜Ｃは、情報処理装置１００で行われるデータ取得処理の処理手順を示すフローチャートである。図４Ａに示すように、情報処理装置１００は、まず、入力受付部１０５が入力キー情報の入力を受け付けると（ステップＳ４０１）、データ取得部１０２は、図３に示したテーブル列間依存関係表の参照テーブルが「ｎｕｌｌ」であるデータ、すなわちそのキー情報から直接アクセス可能なテーブルからデータを抜き出すための処理（ステップＳ４０２〜Ｓ４１１）を行う。
【００２６】
具体的には、データ取得部１０２は、図３に示したテーブル列間依存関係表の元テーブルをキーとしてグループ化し（ステップＳ４０２）、そのグループ化した現テーブルのレコードの総数を取得する（ステップＳ４０３）。図３に示した例では、データ取得部１０２は、現テーブルＡ〜Ｓまでの合計１９個の元テーブルごとにグループ化する。
【００２７】
そして、データ取得部１０２は、グループ化した現テーブルの行数をカウントするための整数Ｍを「Ｍ＝１」と定義し（ステップＳ４０４）、その整数Ｍの値がステップＳ４０３で取得したレコードの総数よりも大きいか否か、すなわちグループ化した全ての現テーブルについて、以降の処理が終了したか否かを判定する（ステップＳ４０５）。例えば、図３では、現テーブルＡ〜Ｓまでのテーブルの総数は１９であるため、データ取得部１０２は、これらの全ての現テーブルについての処理が終了するまで、上述した整数Ｍをカウントアップさせ、ステップＳ４０６〜Ｓ４１１までの処理を繰り返し行う。
【００２８】
データ取得部１０２は、整数Ｍの値がステップＳ４０３で取得したレコードの総数よりも大きくないと判定した場合（ステップＳ４０５；Ｎｏ）、グループ化したテーブルからＭ行目のテーブル名を取得する（ステップＳ４０６）。そして、データ取得部１０２は、図３に示したテーブル列間依存関係表を参照し、ステップＳ４０６で取得したＭ行目のテーブル名、かつそのテーブル名に対応する参照テーブルが「ｎｕｌｌ」であるレコードを取得する（ステップＳ４０７）。
【００２９】
図３に示した例では、整数Ｍ＝１である場合、現テーブルは「Ａ」となり、現テーブル「Ａ」に対応する参照テーブルは「ｎｕｌｌ」であるため、データ取得部１０２は、そのレコードを取得する。また、整数Ｍ＝８である場合、現テーブルは「Ｈ」となり、現テーブル「Ｈ」に対応する参照テーブルは「Ｂ」であるため、データ取得部１０２は、そのレコードは取得せずに次の処理に進むこととなる。このように、ステップＳ４０７において、データ取得部１０２は、現テーブルに対応する参照テーブルが「ｎｕｌｌ」である場合、すなわちその現テーブルに関連性のある参照テーブルがなく、入力キー情報に直接関係する現テーブルが含まれるレコードを、図３に示したテーブル列間依存関係表の中から取得する。
【００３０】
その後、データ取得部１０２は、ステップＳ４０７において取得したレコードがあるか否かを判定し（ステップＳ４０８）、ステップＳ４０７において取得したレコードがあると判定した場合（ステップＳ４０８；Ｙｅｓ）、そのレコードに含まれる入力キー情報をキーとして、元テーブルからデータを取得するためのＳＱＬ文を生成する（ステップＳ４０９）。
【００３１】
例えば、図３では、ステップＳ４０７において取得したレコードが元テーブル「Ａ」を含むレコードである場合、データ取得部１０２は、入力キー情報１をキーとして元テーブル「Ａ」からデータを取得するためのＳＱＬ文を生成する。なお、以下では入力キー情報１をキーとして元テーブル「Ａ」が有する全てのデータを取得する前提で説明しているが、例えば、その元テーブル「Ａ」に対応する現テーブル項目のデータ（例えば、ｃｏｌ１）のみを取得するＳＱＬ文を生成することとしてもよい。
【００３２】
そして、データ取得部１０２は、生成したＳＱＬ文をバッチファイルに書き込み（ステップＳ４１０）、整数Ｍの値に１を加算すると（ステップＳ４１１）、ステップＳ４０５に戻って、以降の処理（ステップＳ４０６〜Ｓ４１１）を繰り返し行う。なお、ステップＳ４０８において、データ取得部１０２は、ステップＳ４０７において取得したレコードがないと判定した場合（ステップＳ４０８；Ｎｏ）、何もせずにそのままステップＳ４１１に進む。
【００３３】
データ取得部１０２は、ステップＳ４０５において、整数Ｍの値がステップＳ４０３で取得したレコードの総数よりも大きいと判定した場合、すなわちグループ化した全ての元テーブルについて、以降の処理が終了したと判定した場合（ステップＳ４０５；Ｙｅｓ）、整数Ｍの値を「１」にリセットする（ステップＳ４１２）。このステップＳ４１２の処理が終了すると、入力キー情報から直接アクセス可能なテーブルからデータを抜き出すための処理が終了する。
【００３４】
続いて、関連データ取得部１０３は、ステップＳ４０６の場合と同様に、グループ化したテーブルからＭ行目のテーブル名を取得する（ステップＳ４１３）。このステップＳ４１３〜Ｓ４２６までの処理は、元テーブルに関連性のあるテーブルからデータを取得するための処理である。例えば、ステップＳ４１２において整数Ｍ＝１にリセットされた直後の場合、関連データ取得部１０３は、テーブル名「Ａ」を取得する。
【００３５】
関連データ取得部１０３は、図２に示したテーブル間依存関係表を参照してステップＳ４１３で取得したテーブル名があるか否かを判定し（ステップＳ４１４）、ステップＳ４１３で取得したテーブル名があると判定した場合（ステップＳ４１４；Ｙｅｓ）、図２に示したテーブル間依存関係表の列数をカウントするための整数ＮをＮ＝２（すなわち関連テーブル１の列）と定義する（ステップＳ４１５）。
【００３６】
そして、関連データ取得部１０３は、図２に示したテーブル間依存関係表にアクセスしてステップＳ４１３で取得した元テーブルのテーブル名を含む行を参照し、そのＮ列目のテーブル名を取得する（ステップＳ４１６）。図２では、例えば、ステップＳ４１３で取得したテーブル名が「Ｂ」（すなわち、整数Ｍ＝２）である場合、関連データ取得部１０３は、元テーブルのテーブル名「Ｂ」を含む行を参照し、２列目である関連テーブル１の列のテーブル名「Ｈ」を取得する。
【００３７】
関連データ取得部１０３は、ステップＳ４１６で取得したテーブル名があるか否かを判定し（ステップＳ４１７）、ステップＳ４１６で取得したテーブル名がないと判定した場合（ステップＳ４１７；Ｎｏ）、整数Ｍの値に１を加算して（ステップＳ４１８）、ステップＳ４１３に戻り、以降の処理を繰り返し行う。図２に示した例では、関連データ取得部１０３は、元テーブルのテーブル名「Ａ」を含む行を参照した場合、２列目である関連テーブル１の列のテーブル名を取得しようとするが、元テーブル「Ａ」に関連するテーブルが登録されていないため、整数Ｍ＝１の値に１を加算してＭ＝２としてステップＳ４１３に戻って以降の処理を繰り返し行う。
【００３８】
一方、関連データ取得部１０３は、ステップＳ４１６で取得したテーブル名があると判定した場合（ステップＳ４１７；Ｙｅｓ）、ステップＳ４１０で書き込んだバッチファイルを参照し、ＦＲＯＭ句がステップＳ４１３で取得したテーブル名（例えば、テーブル名「Ｂ」）であるＳＱＬ文を取得し（ステップＳ４１９）、取得したＳＱＬ文を実行する（ステップＳ４２０）。
【００３９】
そして、関連データ取得部１０３は、図３に示したテーブル列間依存関係表にアクセスし、参照テーブルがステップＳ４１３で取得したテーブル名であり、かつ現テーブルがステップＳ４１６で取得したテーブル名であるレコードを取得する（ステップＳ４２１）。例えば、図３では、ステップＳ４１３で取得したテーブル名が「Ｂ」であり、かつステップＳ４１６で取得したテーブル名が「Ｈ」である場合には、図３に示したテーブル列間依存関係表の中の１２行目に相当するレコードを取得する。
【００４０】
関連データ取得部１０３は、ステップＳ４２１で取得したレコードの中から参照テーブル項目に記載されている列情報を取得する（ステップＳ４２２）。図３に示した例では、関連データ取得部１０３は、テーブル列間依存関係表の中の１２行目のレコードの中に含まれる参照テーブル項目の列情報「ｃｏｌ２」を取得する。
【００４１】
そして、関連データ取得部１０３は、ステップＳ４２０で実行したＳＱＬ文の結果、取得したテーブルのうち、ステップＳ４２２で取得した列のデータのみを取得する（ステップＳ４２３）。例えば、関連データ取得部１０３は、ステップＳ４２０において取得したテーブルが「Ｂ」である場合、参照テーブル項目「ｃｏｌ２」の列のデータを取得する。
【００４２】
関連データ取得部１０３は、ステップＳ４２３で取得したデータを取得するためのＳＱＬ文を生成し（ステップＳ４２４）、ステップＳ４１０においてデータ取得部１０２が作成したバッチファイルに、生成したＳＱＬ文を書き込む（ステップＳ４２５）。例えば、関連データ取得部１０３は、ステップＳ４２０において取得したテーブルが「Ｂ」である場合、参照テーブル項目「ｃｏｌ２」の列のデータを取得するためのＳＱＬ文を生成し、上述したバッチファイルに、そのＳＱＬ文を書き込む。
【００４３】
その後、関連データ取得部１０３は、整数Ｍに１を加算し（ステップＳ４２６）、ステップＳ４１６に戻って以降の処理を繰り返し、ステップＳ４１４において、ステップＳ４１３で取得したテーブル名がない、すなわち全てのテーブル名について処理が終了したと判定した場合（ステップＳ４１４；Ｎｏ）、データ挿入部１０４は、それまでに生成されたバッチファイルに書き込まれたＳＱＬ文が重複して記載されていないかチェックする（ステップＳ４２７）。
【００４４】
データ挿入部１０４は、重複するＳＱＬ文があると判定した場合（ステップＳ４２７；Ｙｅｓ）、そのＳＱＬ文のうちの重複したＳＱＬ文を削除する（ステップＳ４２８）。一方、データ挿入部１０４は、重複するＳＱＬ文がないと判定した場合（ステップＳ４２７；Ｎｏ）、何もせずにそのまま次の処理に移る。
【００４５】
そして、データ挿入部１０４は、重複したＳＱＬ文の有無をチェックした後のそれぞれのＳＱＬ文を実行させるためのＳＱＬ文を生成し（ステップＳ４２９）、テスト環境データベースや擬似環境データベース、あるいは検査環境データベース等にデータを挿入する（ステップＳ４３０）。このステップＳ４３０の処理が終了すると、図４Ａ〜Ｃに示したデータ取得処理の全ての処理が終了する。
【００４６】
そして、上述した各処理が実行されることにより、入力キー情報に関連するデータだけでなく、その入力キー情報に関連するデータを取得することができる。図５は、キー情報が入力されてから関連するテーブルのデータを取得するまでの概念図である。図５に示すように、例えば、図４に示したステップＳ４０１〜Ｓ４３０までの処理において、入力キー情報１〜入力キー情報６をキーとして入力キー情報１〜入力キー情報６を含む元テーブルのデータを取得するためのＳＱＬ文を作成し、テーブル「Ａ」〜「Ｇ」の中からこれらの入力キー情報に関連するデータを取得するためのＳＱＬ文を生成する。その後、さらにテーブル「Ｂ」に関連するテーブル「Ｈ」からテーブル「Ｌ」までのデータを取得するためのＳＱＬ文を生成する。次に、これと同様に、テーブル「Ｃ」に関連するテーブル「Ｍ」からテーブル「Ｐ」のデータを取得するためのＳＱＬ文を生成し、さらに、テーブル「Ｋ」に関連するテーブル「Ｑ」からテーブル「Ｓ」のデータを取得するためのＳＱＬ文を生成する。このようにして、入力されたキー情報に関連するデータを取得することができる。
【００４７】
このように、本番環境データベースに記憶されているデータを、本番環境データベースとは異なるテスト環境データベースや擬似環境データベース、あるいは検査環境データベース等に移動させる処理を行う情報処理装置１００において、記憶部１０１が、移動対象となる元データを含む元テーブルと、元テーブルに関連する関連テーブルとを対応付けたテーブル間依存関係表と、元テーブル（現テーブル）と関連テーブルに含まれる関連データまたは本番環境データベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関係表とを記憶し、入力受付部１０５が、キー情報の入力を受け付け、データ取得部１０２が、入力受付部１０５が受け付けたキー情報と、テーブル列間依存関係表に含まれるキー情報とに基づいて、入力受付部１０５が受け付けたキー情報に直接関係する元テーブルのデータを本番環境データベースから取得し、関連データ取得部１０３が、データ取得部１０２が取得した元テーブルと、テーブル間依存関係表に記憶された元テーブルとに基づいて、元テーブルに対応する関連テーブルを特定し、特定した関連テーブルと、データ取得部１０２が取得したデータを有した元テーブルとに基づいて、テーブル列間依存関係表に含まれる関連データを取得し、データ挿入部１０４が、データ取得部１０２が取得した元テーブルのデータと、関連データ取得部１０３が取得した関連データとを本番環境データベースとは異なるテスト環境データベースや擬似環境データベース、あるいは検査環境データベース等に挿入するので、本番環境のデータベースにかかる負荷を増大させることなく、容易に必要なデータを取得することが可能となる。具体的には、本番環境にかかる負荷を最小限に抑え、本番環境と異なるデータベースに一括移動することが可能となる。
【００４８】
また、あらかじめどのテーブルがどのテーブルを参照しているかを定義しているテーブル間依存関係表と、どのテーブルの列がどのテーブルの列を参照しているかを定義しているテーブル列間依存関係表を作成し、これらの表の情報と与えられたキー情報から、テーブルごとに関連するデータを取得するＳＱＬ文を生成し、実行することで関連するデータを一括取得し、テーブルごとにデータを取得するＳＱＬ文を使用するため、複雑なテーブルの結合処理を行わず、データベースへの負荷を最小限に抑えることができ、データベースにかかる負荷を増大させることなく、必要なデータを一括で移動することが可能となる。
【００４９】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。例えば、入力キー情報や関連するテーブルの数が多く処理負荷が大きい場合には、情報処理装置が有する複数の機能を物理的に２以上のサーバに分ける等、実施の形態に示される全構成要素からいくつかの構成要素を変更したり、構成要素を適宜組み合わせても良い。
【符号の説明】
【００５０】
１００  情報処理装置
１０１  記憶部
１０２  データ取得部
１０３  関連データ取得部
１０４  データ挿入部
１０５  入力受付部。
【図１Ａ】
0005814039.tif 000002
【図１Ｂ】
0005814039.tif 000003
【図２】
0005814039.tif 000004
【図３】
0005814039.tif 000005
【図４Ａ】
0005814039.tif 000006
【図４Ｂ】
0005814039.tif 000007
【図４Ｃ】
0005814039.tif 000008
【図５】
0005814039.tif 000009