説明

情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体

【課題】本番環境のデータベースにかかる負荷を増大させることなく、容易に必要なデータを取得可能な情報処理装置を提供する。
【解決手段】第1のデータベースに記憶されているデータを、第2のデータベースに移動させる情報処理装置であって、移動対象元データを含む元テーブルと関連テーブルとを対応付けたテーブル間依存関連表と、元テーブルと関連テーブルに含まれる関連データまたはキー情報とを対応付けたテーブル列間依存関連表とを記憶する記憶部と、キー情報の入力を受け付ける入力受付部と、キー情報に基づいて、元テーブルのデータを第1のデータベースから取得するデータ取得部と、元テーブルに基づいて対応する関連テーブルを特定し、関連テーブルと元テーブルとに基づいて、関連データを取得する関連データ取得部と、元テーブルのデータと関連データとを第2のデータベースに挿入するデータ挿入部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベースに記憶されているデータを取得することが可能な情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体に関するものである。
【背景技術】
【0002】
一般に、顧客からの依頼に応じて本番データの調査を行う場合、あるいはシステムの本番環境で発生した事故事象を、テスト環境、疑似環境、検査環境で再現させる場合、本番環境にあるデータベースから、その調査のための様々なデータを取得し、取得したデータをテスト環境、疑似環境、検査環境に移動させる必要がある場合が多い。従来の方法としては、例えば、本番環境にあるデータベースのバックアップを取得してリストアする方法、本番環境にあるデータベースをエクスポートしてインポートするユーティリティを使用する方法、あるいはクエリツールを使用してデータを取得する方法などがある。また、特許文献1に開示されているように、ETL(Extract Transform Load)ツールを用いて、データベースから必要となるデータを抽出して加工する方法などがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2009−509271号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
前述した従来技術により、本番環境にあるデータベースから調査対象となるデータを取得し、挿入するという処理を行うことは可能である。しかし、データベースのバックアップを取得し、その後リストアする方法では、本番環境のシステムに大きな負荷がかかる上、取り出したいデータ以外のデータも取得することになる。例えば、エクスポート・インポートユーティリティでは、バックアップのリストア同様、データベースに大きな負荷がかかり、取り出したいデータ以外も取得することになり、不必要にデータベースに負荷がかかってしまう。また、クエリツールでは、利用者が自らSQL(Structured Query Language)文を作成するため、テーブルの構造を理解した上で使用する必要があり、容易に必要なデータを取得できない。また、上述した特許文献に示されている技術では、本番環境にあるデータベースから必要となるデータを抽出して加工するため、データベースへのアクセスが多く発生し、データベースに負荷がかかってしまう。
【0005】
本発明は、上記に鑑みてなされたものであって、本番環境のデータベースにかかる負荷を増大させることなく、容易に必要なデータを取得することが可能な情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した目的を達成するために、本発明にかかる情報処理装置は、第1のデータベースに記憶されているデータを、前記第1のデータベースとは異なる第2のデータベースに移動させる処理を行う情報処理装置であって、移動対象となる元データを含む元テーブルと、前記元テーブルに関連する関連テーブルとを対応付けたテーブル間依存関連表と、前記元テーブルと前記関連テーブルに含まれる関連データまたは前記第1のデータベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関連表とを記憶する記憶部と、前記キー情報の入力を受け付ける入力受付部と、前記入力受付部が受け付けたキー情報と、前記テーブル列間依存関係表に含まれるキー情報とに基づいて、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第1のデータベースから取得するデータ取得部と、前記データ取得部が取得した前記元テーブルと、前記テーブル間依存関係表に記憶された元テーブルとに基づいて、前記元テーブルに対応する前記関連テーブルを特定し、特定した前記関連テーブルと、前記データ取得部が取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得する関連データ取得部と、前記データ取得部が取得した前記元テーブルのデータと、前記関連データ取得部が取得した前記関連データとを前記第2のデータベースに挿入するデータ挿入部と、を備えることを特徴とする。
【0007】
また、本発明は、上記情報処理装置で行われるデータ取得方法、データ取得プログラム、及び記録媒体である。
【発明の効果】
【0008】
本発明によれば、本番環境のデータベースにかかる負荷を増大させることなく、容易に必要なデータを取得することが可能な情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体を提供することができる。
【図面の簡単な説明】
【0009】
【図1A】本実施の形態における情報処理装置が行うデータ取得方法の処理の概要を示す図である。
【図1B】情報処理装置の機能的な構成の例を示す図である。
【図2】テーブル間依存関係表の具体的な例を示す図である。
【図3】テーブル列間依存関係表の具体的な例を示す図である。
【図4A】情報処理装置で行われるデータ取得処理の処理手順を示すフローチャートである。
【図4B】情報処理装置で行われるデータ取得処理の処理手順を示すフローチャートである。
【図4C】情報処理装置で行われるデータ取得処理の処理手順を示すフローチャートである。
【図5】キー情報が入力されてから関連するテーブルのデータを取得するまでの概念図である。
【発明を実施するための形態】
【0010】
以下に添付図面を参照して、この発明にかかる情報処理装置、データ取得方法、データ取得プログラム、及び記録媒体の実施の形態を詳細に説明する。
【0011】
図1Aは、本実施の形態における情報処理装置100が行うデータ取得方法の処理の概要を示す図である。図1に示すように、情報処理装置100は、本番環境データベースからの取得対象となるデータである入力キー情報1〜入力キー情報nが入力されると、その入力キー情報をキーとして、あらかじめ定められたテーブル間依存関係表およびテーブル列間依存関係表(いずれも後述)を参照し、本番環境データベースから入力キー情報を有したデータを取得するためのSQL(Structured Query Language)文を生成する。
【0012】
そして、情報処理装置100は、生成したSQL文が重複していないかチェックした上でそのSQL文を実行し、本番環境データベースに記憶されている入力キー情報を有したテーブルのデータを取得し、取得したデータをテスト環境データベースや擬似環境データベース、あるいは検査環境データベース等の本番環境とは異なる環境にあるデータベースに挿入するためのSQL文を生成して実行する。このような流れの処理を行うことによって、入力キー情報に関係する必要なデータのみを取得することができるようになっている。なお、入力キー情報とは、取得対象となるデータが個人情報に関連するデータである場合には、例えば、氏名や住所、あるいは年齢、性別等、個人情報を構成する種々の情報である。
【0013】
情報処理装置100は、例えば、サーバやPC(Personal Computer)である。図1Bは、情報処理装置100の機能的な構成の例を示す図である。図1Bに示すように、情報処理装置100は、機能的には、記憶部101と、データ取得部102と、関連データ取得部103と、データ挿入部104と、入力受付部105とを含んで構成されている。なお、情報処理装置100は、本番環境データベース、テスト環境データベースや擬似環境データベース、あるいは検査環境データベース等との間で、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークによって接続されているものとする。
【0014】
記憶部101は、例えば、HDD(Hard Disk Drive)等の記憶装置であり、テーブル間依存関係表およびテーブル列間依存関係表を記憶する。
【0015】
図2は、テーブル間依存関係表の具体的な例を示す図である。図2に示すように、テーブル間依存関係表は、入力キー情報を有したテーブル(元テーブル)と、その元テーブルに関連するテーブル(関連テーブル)とが対応付けて記憶されている。図2では、例えば、元テーブル「A」は、他のテーブルとは関連性がないため関連テーブルを有していないことを示している。また、元テーブル「B」は、他のテーブル「H」、「I」、「J」、「K」、「L」との間で関連性を有していることを示している。ここで、テーブルの関連性とは、例えば、あるテーブルが有している項目と同じ項目を他のテーブルが有している場合、その他のテーブルはあるテーブルとが関連性を有していることを意味するほか、あるテーブルが有している項目を用いて所定の算式によって導かれる値を他のテーブルの一つの項目として有している場合にも、これらのテーブルは関連性を有しているものとする。このようなテーブル間の関連性が、図2に示したテーブル間依存関係表にあらかじめ登録されている。
【0016】
後述するように、関連データ取得部103は、例えば、入力キー情報より取得したテーブルの中に、テーブル「A」とテーブル「B」が含まれていた場合、テーブル「A」、テーブル「B」に関連するテーブル情報を得るため、テーブルの関連する関連テーブル1の列を参照し、値が存在しないため、関連するテーブルが存在しないと判定する。次に、関連データ取得部103は、テーブル「B」の関連する関連テーブル1の列を参照し、テーブル「H」が登録されているため、関連するテーブルとしてテーブル名「H」を保持する。さらに、関連データ取得部103は、これと同様に、関連する関連テーブル2の列を参照し、テーブル「I」が登録されているため、テーブル名「I」を保持する。このように、関連データ取得部103は、テーブル間の依存関係表を参照し、テーブル名の情報を保持する。
【0017】
図3は、テーブル列間依存関係表の具体的な例を示す図である。図3に示すように、テーブル列間依存関係表は、あるテーブル(現テーブル)と、現テーブルが有している項目(現テーブル項目)と、現テーブルが参照するテーブル(参照テーブル)と、参照テーブルが有している項目(参照テーブル項目)とが対応付けて記憶されている。図3では、例えば、現テーブル「H」が有している現テーブル項目のうち、1カラム目の項目(col1)は、参照テーブル「B」が有している2カラム目の項目(col2)を参照してその値が設定されていることを示している。また、元テーブル「A」が有している元テーブル項目のうち、1カラム目の項目(col1)は、あらかじめ設定された参照テーブルおよび参照テーブル項目がなく、入力受付部105が受け付けた入力キー情報1が参照テーブル項目として設定されることを示している。このように、テーブル列間の関連性が、図3に示したテーブル列間依存関係表にあらかじめ登録されている。続いて、図1Bに戻り、データ取得部102について説明する。
【0018】
後述するように、データ取得部102は、例えば、テーブル「B」の2列目(col2)は、テーブル「H」の1列目(col1)を参照していることを示している。データ取得部102は、この情報を使用し、入力したキー情報から得られたデータにさらに関連するデータを抜き出すことが可能となる。なお、参照するテーブルが「Null」である場合、どのテーブルの列からも参照されないことを示している。図2に示したテーブル間依存関係表と図3に示したテーブル列間依存関連表を使用することで、入力キー情報に関連するデータを取得することが可能となる。
【0019】
データ取得部102は、後述する入力受付部105が受け付けた入力キー情報(例えば、入力キー情報1〜入力キー情報n)をもとに、本番環境データベースが有するテーブルからデータを取得するSQL文を作成して実行するものである。データ取得部102は、入力されたキー情報から直接アクセス可能なテーブルを参照し、入力キー情報により指定されたデータを抜き出している。このデータ取得部102が行う具体的な処理についてはフローチャートを用いて後述する。
【0020】
関連データ取得部103は、データ取得部102が抜き出したデータを有するテーブルとの間で関連性のあるテーブルから、関連性のあるデータを取得するものである。関連データ取得部103は、データ取得部102が作成したSQL文に、関連性のあるテーブルからデータを取得するためのSQL文を追加して、再度SQL文を実行している。この関連データ取得部103が行う具体的な処理についてはフローチャートを用いて後述する。
【0021】
データ挿入部104は、データ取得部102および関連データ取得部103が作成したSQL文を用いて、テスト環境データベースや擬似環境データベース、あるいは検査環境データベース等にデータを挿入するものである。データ挿入部104は、データ取得部102および関連データ取得部103が作成したSQL文を用いて、挿入用のSQL文を生成して実行することにより、データ取得部102および関連データ取得部103が取得したデータをテスト環境データベースや擬似環境データベース、あるいは検査環境データベース等にデータを挿入する。このデータ挿入部104が行う具体的な処理についてはフローチャートを用いて後述する。
【0022】
入力受付部105は、例えば、キーボードやマウス等の入力装置であり、上述した入力キー情報の入力を受け付ける。
【0023】
なお、情報処理装置100が有する各部は、データ取得部102、関連データ取得部103、およびデータ挿入部104の各機能を実現するためのプログラムにより実行される。これらのプログラムは、例えば、上述した各部を含むモジュール構成となっており、実際のハードウェアとしては、CPU等の制御部がHDD等の記録装置からこれらのプログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、データ取得部102、関連データ取得部103、およびデータ挿入部104の各部が主記憶装置上に生成されるようになっている。
【0024】
また、上述したプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録されて提供することも可能である。さらに、これらのプログラムを、ネットワーク経由でダウンロードさせて提供または配布するように構成してもよい。続いて、情報処理装置100で行われる入力されたキー情報から関連するデータの取得と挿入するまでの処理(データ取得処理)について説明する。
【0025】
図4A〜Cは、情報処理装置100で行われるデータ取得処理の処理手順を示すフローチャートである。図4Aに示すように、情報処理装置100は、まず、入力受付部105が入力キー情報の入力を受け付けると(ステップS401)、データ取得部102は、図3に示したテーブル列間依存関係表の参照テーブルが「null」であるデータ、すなわちそのキー情報から直接アクセス可能なテーブルからデータを抜き出すための処理(ステップS402〜S411)を行う。
【0026】
具体的には、データ取得部102は、図3に示したテーブル列間依存関係表の元テーブルをキーとしてグループ化し(ステップS402)、そのグループ化した現テーブルのレコードの総数を取得する(ステップS403)。図3に示した例では、データ取得部102は、現テーブルA〜Sまでの合計19個の元テーブルごとにグループ化する。
【0027】
そして、データ取得部102は、グループ化した現テーブルの行数をカウントするための整数Mを「M=1」と定義し(ステップS404)、その整数Mの値がステップS403で取得したレコードの総数よりも大きいか否か、すなわちグループ化した全ての現テーブルについて、以降の処理が終了したか否かを判定する(ステップS405)。例えば、図3では、現テーブルA〜Sまでのテーブルの総数は19であるため、データ取得部102は、これらの全ての現テーブルについての処理が終了するまで、上述した整数Mをカウントアップさせ、ステップS406〜S411までの処理を繰り返し行う。
【0028】
データ取得部102は、整数Mの値がステップS403で取得したレコードの総数よりも大きくないと判定した場合(ステップS405;No)、グループ化したテーブルからM行目のテーブル名を取得する(ステップS406)。そして、データ取得部102は、図3に示したテーブル列間依存関係表を参照し、ステップS406で取得したM行目のテーブル名、かつそのテーブル名に対応する参照テーブルが「null」であるレコードを取得する(ステップS407)。
【0029】
図3に示した例では、整数M=1である場合、現テーブルは「A」となり、現テーブル「A」に対応する参照テーブルは「null」であるため、データ取得部102は、そのレコードを取得する。また、整数M=8である場合、現テーブルは「H」となり、現テーブル「H」に対応する参照テーブルは「B」であるため、データ取得部102は、そのレコードは取得せずに次の処理に進むこととなる。このように、ステップS407において、データ取得部102は、現テーブルに対応する参照テーブルが「null」である場合、すなわちその現テーブルに関連性のある参照テーブルがなく、入力キー情報に直接関係する現テーブルが含まれるレコードを、図3に示したテーブル列間依存関係表の中から取得する。
【0030】
その後、データ取得部102は、ステップS407において取得したレコードがあるか否かを判定し(ステップS408)、ステップS407において取得したレコードがあると判定した場合(ステップS408;Yes)、そのレコードに含まれる入力キー情報をキーとして、元テーブルからデータを取得するためのSQL文を生成する(ステップS409)。
【0031】
例えば、図3では、ステップS407において取得したレコードが元テーブル「A」を含むレコードである場合、データ取得部102は、入力キー情報1をキーとして元テーブル「A」からデータを取得するためのSQL文を生成する。なお、以下では入力キー情報1をキーとして元テーブル「A」が有する全てのデータを取得する前提で説明しているが、例えば、その元テーブル「A」に対応する現テーブル項目のデータ(例えば、col1)のみを取得するSQL文を生成することとしてもよい。
【0032】
そして、データ取得部102は、生成したSQL文をバッチファイルに書き込み(ステップS410)、整数Mの値に1を加算すると(ステップS411)、ステップS405に戻って、以降の処理(ステップS406〜S411)を繰り返し行う。なお、ステップS408において、データ取得部102は、ステップS407において取得したレコードがないと判定した場合(ステップS408;No)、何もせずにそのままステップS411に進む。
【0033】
データ取得部102は、ステップS405において、整数Mの値がステップS403で取得したレコードの総数よりも大きいと判定した場合、すなわちグループ化した全ての元テーブルについて、以降の処理が終了したと判定した場合(ステップS405;Yes)、整数Mの値を「1」にリセットする(ステップS412)。このステップS412の処理が終了すると、入力キー情報から直接アクセス可能なテーブルからデータを抜き出すための処理が終了する。
【0034】
続いて、関連データ取得部103は、ステップS406の場合と同様に、グループ化したテーブルからM行目のテーブル名を取得する(ステップS413)。このステップS413〜S426までの処理は、元テーブルに関連性のあるテーブルからデータを取得するための処理である。例えば、ステップS412において整数M=1にリセットされた直後の場合、関連データ取得部103は、テーブル名「A」を取得する。
【0035】
関連データ取得部103は、図2に示したテーブル間依存関係表を参照してステップS413で取得したテーブル名があるか否かを判定し(ステップS414)、ステップS413で取得したテーブル名があると判定した場合(ステップS414;Yes)、図2に示したテーブル間依存関係表の列数をカウントするための整数NをN=2(すなわち関連テーブル1の列)と定義する(ステップS415)。
【0036】
そして、関連データ取得部103は、図2に示したテーブル間依存関係表にアクセスしてステップS413で取得した元テーブルのテーブル名を含む行を参照し、そのN列目のテーブル名を取得する(ステップS416)。図2では、例えば、ステップS413で取得したテーブル名が「B」(すなわち、整数M=2)である場合、関連データ取得部103は、元テーブルのテーブル名「B」を含む行を参照し、2列目である関連テーブル1の列のテーブル名「H」を取得する。
【0037】
関連データ取得部103は、ステップS416で取得したテーブル名があるか否かを判定し(ステップS417)、ステップS416で取得したテーブル名がないと判定した場合(ステップS417;No)、整数Mの値に1を加算して(ステップS418)、ステップS413に戻り、以降の処理を繰り返し行う。図2に示した例では、関連データ取得部103は、元テーブルのテーブル名「A」を含む行を参照した場合、2列目である関連テーブル1の列のテーブル名を取得しようとするが、元テーブル「A」に関連するテーブルが登録されていないため、整数M=1の値に1を加算してM=2としてステップS413に戻って以降の処理を繰り返し行う。
【0038】
一方、関連データ取得部103は、ステップS416で取得したテーブル名があると判定した場合(ステップS417;Yes)、ステップS410で書き込んだバッチファイルを参照し、FROM句がステップS413で取得したテーブル名(例えば、テーブル名「B」)であるSQL文を取得し(ステップS419)、取得したSQL文を実行する(ステップS420)。
【0039】
そして、関連データ取得部103は、図3に示したテーブル列間依存関係表にアクセスし、参照テーブルがステップS413で取得したテーブル名であり、かつ現テーブルがステップS416で取得したテーブル名であるレコードを取得する(ステップS421)。例えば、図3では、ステップS413で取得したテーブル名が「B」であり、かつステップS416で取得したテーブル名が「H」である場合には、図3に示したテーブル列間依存関係表の中の12行目に相当するレコードを取得する。
【0040】
関連データ取得部103は、ステップS421で取得したレコードの中から参照テーブル項目に記載されている列情報を取得する(ステップS422)。図3に示した例では、関連データ取得部103は、テーブル列間依存関係表の中の12行目のレコードの中に含まれる参照テーブル項目の列情報「col2」を取得する。
【0041】
そして、関連データ取得部103は、ステップS420で実行したSQL文の結果、取得したテーブルのうち、ステップS422で取得した列のデータのみを取得する(ステップS423)。例えば、関連データ取得部103は、ステップS420において取得したテーブルが「B」である場合、参照テーブル項目「col2」の列のデータを取得する。
【0042】
関連データ取得部103は、ステップS423で取得したデータを取得するためのSQL文を生成し(ステップS424)、ステップS410においてデータ取得部102が作成したバッチファイルに、生成したSQL文を書き込む(ステップS425)。例えば、関連データ取得部103は、ステップS420において取得したテーブルが「B」である場合、参照テーブル項目「col2」の列のデータを取得するためのSQL文を生成し、上述したバッチファイルに、そのSQL文を書き込む。
【0043】
その後、関連データ取得部103は、整数Mに1を加算し(ステップS426)、ステップS416に戻って以降の処理を繰り返し、ステップS414において、ステップS413で取得したテーブル名がない、すなわち全てのテーブル名について処理が終了したと判定した場合(ステップS414;No)、データ挿入部104は、それまでに生成されたバッチファイルに書き込まれたSQL文が重複して記載されていないかチェックする(ステップS427)。
【0044】
データ挿入部104は、重複するSQL文があると判定した場合(ステップS427;Yes)、そのSQL文のうちの重複したSQL文を削除する(ステップS428)。一方、データ挿入部104は、重複するSQL文がないと判定した場合(ステップS427;No)、何もせずにそのまま次の処理に移る。
【0045】
そして、データ挿入部104は、重複したSQL文の有無をチェックした後のそれぞれのSQL文を実行させるためのSQL文を生成し(ステップS429)、テスト環境データベースや擬似環境データベース、あるいは検査環境データベース等にデータを挿入する(ステップS430)。このステップS430の処理が終了すると、図4A〜Cに示したデータ取得処理の全ての処理が終了する。
【0046】
そして、上述した各処理が実行されることにより、入力キー情報に関連するデータだけでなく、その入力キー情報に関連するデータを取得することができる。図5は、キー情報が入力されてから関連するテーブルのデータを取得するまでの概念図である。図5に示すように、例えば、図4に示したステップS401〜S430までの処理において、入力キー情報1〜入力キー情報6をキーとして入力キー情報1〜入力キー情報6を含む元テーブルのデータを取得するためのSQL文を作成し、テーブル「A」〜「G」の中からこれらの入力キー情報に関連するデータを取得するためのSQL文を生成する。その後、さらにテーブル「B」に関連するテーブル「H」からテーブル「L」までのデータを取得するためのSQL文を生成する。次に、これと同様に、テーブル「C」に関連するテーブル「M」からテーブル「P」のデータを取得するためのSQL文を生成し、さらに、テーブル「K」に関連するテーブル「Q」からテーブル「S」のデータを取得するためのSQL文を生成する。このようにして、入力されたキー情報に関連するデータを取得することができる。
【0047】
このように、本番環境データベースに記憶されているデータを、本番環境データベースとは異なるテスト環境データベースや擬似環境データベース、あるいは検査環境データベース等に移動させる処理を行う情報処理装置100において、記憶部101が、移動対象となる元データを含む元テーブルと、元テーブルに関連する関連テーブルとを対応付けたテーブル間依存関連表と、元テーブル(現テーブル)と関連テーブルに含まれる関連データまたは本番環境データベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関連表とを記憶し、入力受付部105が、キー情報の入力を受け付け、データ取得部102が、入力受付部105が受け付けたキー情報と、テーブル列間依存関係表に含まれるキー情報とに基づいて、入力受付部105が受け付けたキー情報に直接関係する元テーブルのデータを本番環境データベースから取得し、関連データ取得部103が、データ取得部102が取得した元テーブルと、テーブル間依存関係表に記憶された元テーブルとに基づいて、元テーブルに対応する関連テーブルを特定し、特定した関連テーブルと、データ取得部102が取得したデータを有した元テーブルとに基づいて、テーブル列間依存関係表に含まれる関連データを取得し、データ挿入部104が、データ取得部102が取得した元テーブルのデータと、関連データ取得部103が取得した関連データとを本番環境データベースとは異なるテスト環境データベースや擬似環境データベース、あるいは検査環境データベース等に挿入するので、本番環境のデータベースにかかる負荷を増大させることなく、容易に必要なデータを取得することが可能となる。具体的には、本番環境にかかる負荷を最小限に抑え、本番環境と異なるデータベースに一括移動することが可能となる。
【0048】
また、あらかじめどのテーブルがどのテーブルを参照しているかを定義しているテーブル間依存関係表と、どのテーブルの列がどのテーブルの列を参照しているかを定義しているテーブル列間依存関連表を作成し、これらの表の情報と与えられたキー情報から、テーブルごとに関連するデータを取得するSQL文を生成し、実行することで関連するデータを一括取得し、テーブルごとにデータを取得するSQL文を使用するため、複雑なテーブルの結合処理を行わず、データベースへの負荷を最小限に抑えることができ、データベースにかかる負荷を増大させることなく、必要なデータを一括で移動することが可能となる。
【0049】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。例えば、入力キー情報や関連するテーブルの数が多く処理負荷が大きい場合には、情報処理装置が有する複数の機能を物理的に2以上のサーバに分ける等、実施の形態に示される全構成要素からいくつかの構成要素を変更したり、構成要素を適宜組み合わせても良い。
【符号の説明】
【0050】
100 情報処理装置
101 記憶部
102 データ取得部
103 関連データ取得部
104 データ挿入部
105 入力受付部。

【特許請求の範囲】
【請求項1】
第1のデータベースに記憶されているデータを、前記第1のデータベースとは異なる第2のデータベースに移動させる処理を行う情報処理装置であって、
移動対象となる元データを含む元テーブルと、前記元テーブルに関連する関連テーブルとを対応付けたテーブル間依存関連表と、前記元テーブルと前記関連テーブルに含まれる関連データまたは前記第1のデータベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関連表とを記憶する記憶部と、
前記キー情報の入力を受け付ける入力受付部と、
前記入力受付部が受け付けたキー情報と、前記テーブル列間依存関係表に含まれるキー情報とに基づいて、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第1のデータベースから取得するデータ取得部と、
前記データ取得部が取得した前記元テーブルと、前記テーブル間依存関係表に記憶された元テーブルとに基づいて、前記元テーブルに対応する前記関連テーブルを特定し、特定した前記関連テーブルと、前記データ取得部が取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得する関連データ取得部と、
前記データ取得部が取得した前記元テーブルのデータと、前記関連データ取得部が取得した前記関連データとを前記第2のデータベースに挿入するデータ挿入部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記テーブル列間依存関係表は、さらに前記元テーブルに含まれる元データを対応付けて記憶し、
前記データ取得部は、前記入力受付部が受け付けたキー情報と、前記テーブル列間依存関係表に含まれるキー情報とに基づいて、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルが有する元データを前記第1のデータベースから取得する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記データ取得部は、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第1のデータベースから取得して前記第2のデータベースに挿入するためのSQL(Structured Query Language)を生成し、
前記関連データ取得部は、特定した前記関連テーブルと、前記データ取得部が取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得して前記第2のデータベースに挿入するためのSQLを生成する、
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記データ取得部および前記関連データ取得部は、作成した前記SQLを所定のバッチファイルに書き込んで実行する、
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記データ取得部及び前記関連データ取得部は、同一のバッチファイル前記SQLを書き込む、
ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記データ挿入部は、前記バッチファイルに書き込まれたSQLが重複しているか否かをチェックした上で、前記データ取得部が取得した前記元テーブルのデータと、前記関連データ取得部が取得した前記関連データとを前記第2のデータベースに挿入する、
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
第1のデータベースに記憶されているデータを、前記第1のデータベースとは異なる第2のデータベースに移動させる処理を行う情報処理装置で行われるデータ取得方法であって、
前記第1のデータベースに記憶されているデータを移動させるためのキー情報の入力を受け付ける入力受付ステップと、
前記入力受付ステップにおいて受け付けたキー情報と、移動対象となる元データを含む元テーブルと、前記元テーブルに関連する関連テーブルに含まれる関連データまたは前記第1のデータベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関係表に含まれるキー情報とに基づいて、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第1のデータベースから取得するデータ取得ステップと、
前記データ取得ステップにおいて取得した前記元テーブルと、前記元テーブルと前記関連テーブルとを対応付けたテーブル間依存関連表に記憶された元テーブルとに基づいて、前記元テーブルに対応する前記関連テーブルを特定し、特定した前記関連テーブルと、前記データ取得部が取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得する関連データ取得ステップと、
前記データ取得ステップにおいて取得した前記元テーブルのデータと、前記関連データ取得ステップにおいて取得した前記関連データとを前記第2のデータベースに挿入するデータ挿入ステップと、
を含むことを特徴とするデータ取得方法。
【請求項8】
コンピュータに、
第1のデータベースに記憶されているデータを、前記第1のデータベースとは異なる第2のデータベースに移動させるためのキー情報の入力を受け付ける入力受付ステップと、
前記入力受付ステップにおいて受け付けたキー情報と、移動対象となる元データを含む元テーブルと、前記元テーブルに関連する関連テーブルに含まれる関連データまたは前記第1のデータベースに記憶されているデータを移動させるためのキー情報とを対応付けたテーブル列間依存関係表に含まれるキー情報とに基づいて、前記入力受付部が受け付けたキー情報に直接関係する前記元テーブルのデータを前記第1のデータベースから取得するデータ取得ステップと、
前記データ取得ステップにおいて取得した前記元テーブルと、前記元テーブルと前記関連テーブルとを対応付けたテーブル間依存関連表に記憶された元テーブルとに基づいて、前記元テーブルに対応する前記関連テーブルを特定し、特定した前記関連テーブルと、前記データ取得部が取得したデータを有した前記元テーブルとに基づいて、前記テーブル列間依存関係表に含まれる前記関連データを取得する関連データ取得ステップと、
前記データ取得ステップにおいて取得した前記元テーブルのデータと、前記関連データ取得ステップにおいて取得した前記関連データとを前記第2のデータベースに挿入するデータ挿入ステップと、
を実行させることを特徴とするデータ取得プログラム。
【請求項9】
請求項8に記載されたデータ取得プログラムを格納したコンピュータの読み取り可能な記録媒体。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図5】
image rotate


【公開番号】特開2013−37490(P2013−37490A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−172189(P2011−172189)
【出願日】平成23年8月5日(2011.8.5)
【出願人】(000233491)株式会社日立システムズ (394)