(57)【要約】【課題】処理モジュールを改造することなく、処理モジュールによってデータベースに書き込まれるデータとともにメタデータもデータベースに登録できるようにするデータベース接続システムを提供する。【解決手段】設定情報記憶手段５１は、データベースにデータを書き込む際にそのデータとともにデータベースに書き込むメタデータの項目を定めた設定情報を記憶する。メタデータ収集手段５２は、メタデータを保持するメタデータ保持手段５４に対して、設定情報で定められた項目のメタデータを要求して、メタデータ保持手段５４からメタデータを収集する。書き込みクエリ変換手段５３は、データベースへのデータの書き込みを指示するクエリを、そのデータおよび設定情報で定められた項目のメタデータの書き込みを指示するクエリに変換する。【選択図】図１
2009043083.tif 000002
【特許請求の範囲】
【請求項１】
データベースにデータを書き込む際に当該データとともにデータベースに書き込むメタデータの項目を定めた設定情報を記憶する設定情報記憶手段と、
メタデータを保持するメタデータ保持手段に対して、設定情報で定められた項目のメタデータを要求して、前記メタデータ保持手段からメタデータを収集するメタデータ収集手段と、
データベースへのデータの書き込みを指示するクエリを、当該データおよび設定情報で定められた項目のメタデータの書き込みを指示するクエリに変換する書き込みクエリ変換手段とを備える
ことを特徴とするデータベース接続システム。
【請求項２】
データベースから読み込んだ読み込みデータの中から、設定情報で定められた項目のメタデータを削除するメタデータ削除手段を備える
請求項１に記載のデータベース接続システム。
【請求項３】
データベースへのデータの書き込みを指示するクエリで指定されたフィールド名を全て記憶するフィールド名記憶手段と、
全フィールドのデータの読み込みを指示するクエリに含まれる全フィールドのデータを意味する記号を、フィールド名記憶手段が記憶する各フィールド名に置き換えることにより、前記クエリを変換する読み込みクエリ変換手段とを備える
請求項１に記載のデータベース接続システム。
【請求項４】
新規テーブルの生成を指示するクエリで指定された新規テーブルのフィールド名に、設定情報で定められたメタデータの項目を追加することにより、前記クエリを変換するテーブル生成クエリ変換手段を備える
請求項１から請求項３のうちのいずれか１項に記載のデータベース接続システム。
【請求項５】
メタデータ収集手段は、
データベースへのデータの書き込みを指示するクエリを生成する１つまたは複数のソフトウェアの中の最初のソフトウェアが起動されるときに、各ソフトウェアが順次実行されていく経過に伴って変化しないメタデータを収集し、
個々のソフトウェアが起動されるときに、各ソフトウェアが順次実行されていく経過に伴って変化するメタデータを収集する
請求項１から請求項４のうちのいずれか１項に記載のデータベース接続システム。
【請求項６】
設定情報が入力される設定情報入力手段と、
設定情報入力手段に入力された設定情報を設定情報記憶手段に記憶させる設定情報登録手段とを備える
請求項１から請求項５のうちのいずれか１項に記載のデータベース接続システム。
【請求項７】
データベースにデータを書き込む際に当該データとともにデータベースに書き込むメタデータの項目を定めた設定情報を記憶する設定情報記憶手段を備えるコンピュータに搭載されるデータベース接続用プログラムであって、
前記コンピュータに、
メタデータを保持するメタデータ保持手段に対して、設定情報で定められた項目のメタデータを要求して、前記メタデータ保持手段からメタデータを収集するメタデータ収集処理、および
データベースへのデータの書き込みを指示するクエリを、当該データおよび設定情報で定められた項目のメタデータの書き込みを指示するクエリに変換する書き込みクエリ変換処理
を実行させるためのデータベース接続用プログラム。
【請求項８】
コンピュータに、
データベースから読み込んだ読み込みデータの中から、設定情報で定められた項目のメタデータを削除するメタデータ削除処理
を実行させる請求項７に記載のデータベース接続用プログラム。
【請求項９】
コンピュータに、
データベースへのデータの書き込みを指示するクエリで指定されたフィールド名を全て記憶するフィールド名記憶処理、および
全フィールドのデータの読み込みを指示するクエリに含まれる全フィールドのデータを意味する記号を、フィールド名記憶処理で記憶した各フィールド名に置き換えることにより、前記クエリを変換する読み込みクエリ変換処理
を実行させる請求項７に記載のデータベース接続用プログラム。
【請求項１０】
コンピュータに、
新規テーブルの生成を指示するクエリで指定された新規テーブルのフィールド名に、設定情報で定められたメタデータの項目を追加することにより、前記クエリを変換するテーブル生成クエリ変換処理
を実行させる請求項７から請求項９のうちのいずれか１項に記載のデータベース接続用プログラム。
【請求項１１】
コンピュータに、
データベースへのデータの書き込みを指示するクエリを生成する１つまたは複数のソフトウェアの中の最初のソフトウェアが起動されるときに、各ソフトウェアが順次実行されていく経過に伴って変化しないメタデータを収集させ、
個々のソフトウェアが起動されるときに、各ソフトウェアが順次実行されていく経過に伴って変化するメタデータを収集させる
請求項７から請求項１０のうちのいずれか１項に記載のデータベース接続用プログラム。
【請求項１２】
設定情報が入力される設定情報入力手段を備えるコンピュータに搭載され、
前記コンピュータに、
設定情報入力手段に入力された設定情報を設定情報記憶手段に記憶させる設定情報登録処理
を実行させる請求項７から請求項１１のうちのいずれか１項に記載のデータベース接続用プログラム。
【請求項１３】
データベースにデータを書き込む際に当該データとともにデータベースに書き込むメタデータの項目を定めた設定情報を記憶する設定情報記憶手段を備えたデータベース接続システムに適用されるデータベース接続方法であって、
メタデータ収集手段が、メタデータを保持するメタデータ保持手段に対して、設定情報で定められた項目のメタデータを要求して、前記メタデータ保持手段からメタデータを収集し、
書き込みクエリ変換手段が、データベースへのデータの書き込みを指示するクエリを、当該データおよび設定情報で定められた項目のメタデータの書き込みを指示するクエリに変換する
ことを特徴とするデータベース接続方法。
【請求項１４】
メタデータ削除手段が、データベースから読み込んだ読み込みデータの中から、設定情報で定められた項目のメタデータを削除する
請求項１３に記載のデータベース接続方法。
【請求項１５】
フィールド名記憶手段が、データベースへのデータの書き込みを指示するクエリで指定されたフィールド名を全て記憶し、
読み込みクエリ変換手段が、全フィールドのデータの読み込みを指示するクエリに含まれる全フィールドのデータを意味する記号を、フィールド名記憶手段が記憶する各フィールド名に置き換えることにより、前記クエリを変換する
請求項１３に記載のデータベース接続方法。
【請求項１６】
テーブル生成クエリ変換手段が、新規テーブルの生成を指示するクエリで指定された新規テーブルのフィールド名に、設定情報で定められたメタデータの項目を追加することにより、前記クエリを変換する
請求項１３から請求項１５のうちのいずれか１項に記載のデータベース接続方法。
【請求項１７】
メタデータ収集手段が、
データベースへのデータの書き込みを指示するクエリを生成する１つまたは複数のソフトウェアの中の最初のソフトウェアが起動されるときに、各ソフトウェアが順次実行されていく経過に伴って変化しないメタデータを収集し、
個々のソフトウェアが起動されるときに、各ソフトウェアが順次実行されていく経過に伴って変化するメタデータを収集する
請求項１３から請求項１６のうちのいずれか１項に記載のデータベース接続方法。
【請求項１８】
設定情報が入力される設定情報入力手段を備えるデータベース接続システムに適用され、
設定情報登録手段が、設定情報入力手段に入力された設定情報を設定情報記憶手段に記憶させる
請求項１３から請求項１７のうちのいずれか１項に記載のデータベース接続方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースの操作を行うデータベース接続システム、データベース接続用プログラムおよびデータベース接続方法に関する。
【背景技術】
【０００２】
インターネットの普及や企業内のデータ蓄積量の増大等によって、ＷＷＷ（World-Wide Web）や既存の情報システムあるいは音声・画像等のデータを利用したデータ分析を行い、その結果を蓄積・管理するシステムが重要となってきた。
【０００３】
図１５は、本発明に関連するデータベース接続システムの例を示す説明図である。図１５に例示するデータベース接続システムは、データベースシステム８５を含み、また、アプリケーションプログラム８１と、データベースアクセスモジュール８２とが搭載されている。アプリケーションプログラム８１とデータベースアクセスモジュール８２はソフトウェアであり、実際にはデータベース接続システムがこれらのソフトウェアに従って動作するが、図１５の説明では、便宜的にソフトウェアの動作として説明する。
【０００４】
データ分析を行うアプリケーションプログラム８１は、ＷＷＷや既存の情報システムが保持するデータ、音声・画像データ等をデータベースシステム８５に記録する。また、必要に応じて、処理の途中の中間データもデータベースシステム８５に書き込んだり読み込んだりしながら、データの分析や抽出を行い、最終的に得られる結果をデータベースシステム８５に書き込む。
【０００５】
データベースアクセスモジュール８２は、標準的なデータベース接続インタフェース８３をアプリケーションプログラム８１に提供する。また、データベースアクセスモジュール８２は、データベース言語（例えばＳＱＬ）によるデータの書き込みや読み取り等のコマンドを、データベースシステム８５に固有のプロトコルのコマンドに変換するライブラリ８４を含む。
【０００６】
アプリケーションプログラム８１は、データベースを読み書きする際、ＳＱＬ等のデータベース言語によるデータベースの読み書きのコマンドをデータベースアクセスモジュール８２に渡す。データベースアクセスモジュール８２は、ライブラリ８４によって、そのコマンドをデータベース固有のプロトコルのコマンドに変換し、データベースシステム８５にデータの読み取りあるいは書き込みを行わせる。
【０００７】
一方、ＢＩ（Business Intelligence：ビジネスインテリジェンス）等と呼ばれるデータ分析システムが知られている。このデータ分析システムは、ＷＷＷや企業内のデータベース等の様々な情報源からデータを収集し、形態素解析、音声認識、データマイニング等の様々な処理を行うための各種処理モジュールによる分析を行い、処理モジュールによる分析により得られたデータをさらに横断的に分析し、分析結果を利用者に提供する。このようなデータ分析システムでは、所望の全ての情報分析を行うための処理モジュールを予め不足なく用意しておくことはできず、収集したデータに対して分析者の所望の分析を行うための処理モジュールを追加して、所望の分析を行えるように機能拡張することがある。
【０００８】
このような横断的な分析を行う際には、分析結果のデータとともに、そのデータのメタデータを保持しておき、メタデータに基づいて適切なデータを選択的に利用する必要がある。メタデータは、分析結果（横断的な分析を行う前の処理モジュールによる分析結果）のデータに関連するデータである。
【０００９】
メタデータの例として、データの作成日時、分析結果のデータの元になったデータソースの情報、処理モジュールのパラメータ設定状態等が挙げられる。また、複数の処理モジュールを連携して分析結果を導いた場合には、どのような連携によって分析結果を得られたかという情報も、分析結果データの信頼性を確認するために必要なメタデータとなることがある。また、処理モジュールが搭載された装置の位置における雨量や周囲の音量等を収集する処理モジュールの場合には、その位置の情報もメタデータとなることがある。また、複数の同様な処理モジュールが複数人の利用者により利用されていたり、あるいは複数の装置（例えばパーソナルコンピュータ）で稼動している場合には、各処理モジュールを実行している装置名（例えばＰＣ名）あるいはその装置を利用しているユーザ名もメタデータとなる。
【００１０】
また、非特許文献１には、アプリケーションプログラムを変更することなしに、データベースシステムを異なるデータベースシステムに置き換える方式が記載されている。非特許文献１に記載された方式では、アプリケーションプログラムを変更せずに、アプリケーションプログラムが発行したＳＱＬを新たなデータベースシステム用のＳＱＬに変換する。この変換は、アプリケーションプログラムをデータベースシステムに接続させるデータベース接続層において行われる。また、ＳＱＬの変換の態様として、固有の予約語を変換する予約語変換、予約語だけでなくパラメータを含むロジックを変換するロジック変換、プリペアド変換が非特許文献１に記載されている。非特許文献１に記載された方式では、アプリケーションプログラムが発行したＳＱＬを変換することによって、アプリケーションプログラム自体を変更することなく新たなデータベースシステムへの置き換えを実現することができる。
【００１１】
【非特許文献１】藤山健一郎，喜田弘司，中村暢達、「データベース接続層におけるＳＱＬ変換によるＤＢＭＳ置き換え支援」、情報処理学会全国大会講演論文集、ＶＯＬ．６９ｔｈ，ＮＯ．１，ＰＡＧＥ．１．３５７‐１．３５８，２００７年
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述のように、ＢＩ等のデータ分析システムにおいて処理モジュールの分析結果に対してさらに横断的な分析を行うためには、分析結果のデータとともに、そのデータのメタデータを保持し、メタデータに基づいて適切なデータを選択的に利用する必要がある。ここで、処理モジュールは、各種アプリケーションプログラム向けに個別に開発された処理モジュールであることが一般的であり、アプリケーションプログラムの目的に応じた必要なデータのみを処理対象としている。また、処理モジュールによって読み書きされるデータベースのスキーマは予め決まっている。これらのことから、分析結果のデータとともにメタデータもデータベースに登録するように処理モジュールを改造しなければ、処理モジュールによる分析結果にメタデータを付加することはできない。しかし、処理モジュールとしては、実行モジュール（実行ファイル）のみが提供されるので、分析者自身が処理モジュールのソースコードを見て処理モジュールを改造することはできない。
【００１３】
また、非特許文献１に記載された方式は、処理モジュールを改造せずにクエリを変換する方式であるが、この変換は、予約語変換、ロジック変換等のような、クエリ内のデータベース言語の形式的な変換である。従って、元のクエリに含まれていないメタデータを、処理モジュールによる分析結果のレコードに追加して、そのレコードとともに同時に記録することはできない。
【００１４】
本発明は、処理モジュールを改造することなく、処理モジュールによってデータベースに書き込まれるデータとともにメタデータもデータベースに登録できるようにするデータベース接続システム、データベース接続用プログラムおよびデータベース接続方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明のデータベース接続システムは、データベースにデータを書き込む際に当該データとともにデータベースに書き込むメタデータの項目を定めた設定情報を記憶する設定情報記憶手段と、メタデータを保持するメタデータ保持手段に対して、設定情報で定められた項目のメタデータを要求して、前記メタデータ保持手段からメタデータを収集するメタデータ収集手段と、データベースへのデータの書き込みを指示するクエリを、当該データおよび設定情報で定められた項目のメタデータの書き込みを指示するクエリに変換する書き込みクエリ変換手段とを備えることを特徴とする。
【００１６】
また、本発明のデータベース接続用プログラムは、データベースにデータを書き込む際に当該データとともにデータベースに書き込むメタデータの項目を定めた設定情報を記憶する設定情報記憶手段を備えるコンピュータに搭載されるデータベース接続用プログラムであって、前記コンピュータに、メタデータを保持するメタデータ保持手段に対して、設定情報で定められた項目のメタデータを要求して、前記メタデータ保持手段からメタデータを収集するメタデータ収集処理、およびデータベースへのデータの書き込みを指示するクエリを、当該データおよび設定情報で定められた項目のメタデータの書き込みを指示するクエリに変換する書き込みクエリ変換処理を実行させることを特徴とする。
【００１７】
また、本発明のデータベース接続方法は、データベースにデータを書き込む際に当該データとともにデータベースに書き込むメタデータの項目を定めた設定情報を記憶する設定情報記憶手段を備えたデータベース接続システムに適用されるデータベース接続方法であって、メタデータ収集手段が、メタデータを保持するメタデータ保持手段に対して、設定情報で定められた項目のメタデータを要求して、前記メタデータ保持手段からメタデータを収集し、書き込みクエリ変換手段が、データベースへのデータの書き込みを指示するクエリを、当該データおよび設定情報で定められた項目のメタデータの書き込みを指示するクエリに変換することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、処理モジュールを改造せずに、処理モジュールによってデータベースに書き込まれるデータだけでなく、メタデータもデータベースに書き込むことができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を図面を参照して説明する。
図１は、本発明のデータベース接続システムの例を示すブロック図である。本実施形態のデータベース接続システム１０は、記憶装置１１と、ＤＢアクセス仮想化手段１００と、ＤＢアクセス手段２００と、処理実行手段３００と、実行制御手段４００とを備える。また、データベース接続システム１０は、データベース５０１を備えたデータベースシステム５００に通信ネットワークを介して接続され、データベース５０１の操作を行う。また、データベースシステム５００は、データベース管理システム（ＲＤＢＭＳ。図示せず。）も備えている。なお、ＤＢは、データベースを意味する。
【００２０】
データベース接続システム１０およびデータベースシステム５００はそれぞれ、例えば、パーソナルコンピュータ等の情報処理装置によって実現される。
【００２１】
記憶装置１１は、ＤＢアクセス仮想化モジュール１０１と、データベースアクセスモジュール（以下、ＤＢアクセスモジュールと記す。）２０１と、処理モジュール３０１と、実行制御モジュール４０１とを記憶する記憶装置である。これらの各モジュール１０１，２０１，３０１，４０１は、ソフトウェアである。ＤＢアクセス仮想化手段１００は、ＤＢアクセス仮想化モジュール１０１に従って動作する。ＤＢアクセス手段２００は、ＤＢアクセスモジュール２０１に従って動作する。処理実行手段３００は、処理モジュール３０１に従って動作する。実行制御手段４００は、実行制御モジュール４０１に従って動作する。
【００２２】
データベース接続システム１０の動作の概要について説明する。
処理モジュール３０１は、データベース５０１へのデータ書き込みまたはデータベース５０１からのデータ読み込みを伴う処理を処理実行手段３００に実行させるためのソフトウェアモジュールである。また、記憶装置１１は、複数種類の処理モジュール３０１を記憶していてもよい。実行制御モジュール４０１は、実行制御手段４００に、処理モジュールの呼び出し制御（例えば、呼び出し順序の制御）を行わせるソフトウェアである。処理実行手段３００は、実行制御手段４００の制御に従って処理モジュール３０１を呼び出し、データベースへのデータの書き込みまたはデータベースからのデータの読み込みを行うためのクエリ（命令）を生成する。処理モジュール３０１は、データベース言語（例えばＳＱＬ）で記述したクエリを生成する。
【００２３】
ＤＢアクセス仮想化手段１００には、データベース５０１に書き込まれるデータとそのデータに追加すべきメタデータの項目との対応関係を示す設定情報が予め入力され、ＤＢアクセス仮想化手段１００はその設定情報を記憶する。そして、データを書き込むためのクエリを処理実行手段３００が作成した場合、ＤＢアクセス仮想化手段１００は、予め記憶している設定情報を参照して、クエリで書き込みを指定されたデータだけでなく、そのデータに追加すべきメタデータもデータベース５０１に書き込むようにクエリを変換する。処理モジュール３０１によって書き込み指示されたデータとそのメタデータとが、変換後のクエリに基づいてデータベース５０１に書き込まれる。
【００２４】
処理モジュール３０１は、メタデータを用いずに処理を進めるための処理モジュールであり、処理モジュール３０１に従って動作する処理実行手段３００は、データベースへのメタデータの書き込みを指示するクエリは生成しない。
【００２５】
ＤＢアクセス仮想化手段１００は、データベース５０１からデータを読み込んだ場合、読み込んだ読み込みデータの中からメタデータを削除する。処理実行手段３００は、メタデータが削除されたデータに基づいて処理モジュール３０１の目的の処理を行う。ＤＢアクセス仮想化手段１００はメタデータを削除することによって、処理と関係のないメタデータが処理実行手段３００に送られることを防止する。
【００２６】
また、データベース５０１には、クエリで書き込みを指示されたデータとともにメタデータも書き込まれる。従って、ＢＩ等のデータ分析システム（図１において図示せず。）は、データベース５０１に記憶されたデータおよびメタデータを参照して、データの分析を行うことができる。
【００２７】
次に、データベース接続システム１０の各構成要素について説明する。
ＤＢアクセス仮想化手段１００は、設定情報が入力されるインタフェースを有し、そのインタフェースを介して入力された設定情報を予め記憶する。ＤＢアクセス仮想化手段１００は、データを書き込むためのクエリを処理実行手段３００が生成すると、設定情報を参照し、クエリで指定されたデータだけでなくメタデータもデータベース５０１に書き込むように、クエリを変換する。また、実行制御手段４００はメタデータを有しており、ＤＢアクセス仮想化手段１００はデータベース５０１に書き込むべきメタデータを実行制御手段４００から収集する。ＤＢアクセス仮想化手段１００は、データ書き込みのためのクエリを変換すると、そのクエリをＤＢアクセス手段２００に出力する。
【００２８】
また、データベース５０１からデータを読み込むためのクエリを処理実行手段３００が生成した場合、ＤＢアクセス仮想化手段１００は、そのクエリに対しては変換を行わずにＤＢアクセス手段２００に出力する。この結果、データベース５０１からデータが読み出され、その結果がＤＢアクセスモジュール２００から返ってくる。このとき、ＤＢアクセス仮想化手段１００は、データベース５０１から読み込んだ読み込みデータの中に、クエリの変換によって追加されたメタデータが含まれている場合には、そのメタデータを削除し、メタデータを取り除いた後のデータを処理実行手段３００に返す。なお、読み込みデータの中にメタデータが含まれていなければ、ＤＢアクセス仮想化手段１００は、そのデータを処理実行手段３００に返す。
【００２９】
ＤＢアクセス仮想化手段１００は、これらの処理をＤＢアクセス仮想化モジュール１０１に従って実行する。ＤＢアクセス仮想化モジュール１０１は、本発明のデータベース接続用プログラムである。
【００３０】
ＤＢアクセス手段２００は、ＳＱＬ等のデータベース言語で記述されたクエリがＤＢアクセス仮想化モジュール１００から入力されると、そのクエリを、データベースシステム５００において独自に定められているコマンドに書き換え、そのコマンドをデータベースシステム５００に送信する。データベースシステム５００は、データベースシステム５００の種類に応じた独自のコマンドに従って、データの読み込みや書き込みを行う。
【００３１】
また、ＤＢアクセス手段２００がデータベースシステム５００にコマンドを送信すると、データベースシステム５００は、データの読み込みや書き込みを行い、その結果の値（コマンドに対する応答結果）をＤＢアクセス手段２００に送信する。この応答結果も、データベースシステム５００の独自の表現で記述されている。ＤＢアクセス手段２００は、データベースシステム５００からこの応答結果を受信した場合、応答結果をデータベース言語による記述に書き換え、書き換えた結果をＤＢアクセス仮想化モジュール１００に送る。
【００３２】
ＤＢアクセス手段２００は、これらの書き換え処理を、ＤＢアクセスモジュール２０１に従って実行する。ＤＢアクセスモジュール２０１は、例えば、データベースシステム５００に対応したＪＤＢＣ（Java DataBase Connectivity）やＯＤＢＣ（Open DataBase Connectivity）である。なお、Ｊａｖａは登録商標である。
【００３３】
処理実行手段３００は、処理モジュール３０１に従って、データベース５０１へのデータの書き込みを指示するクエリ、またはデータベース５０１からのデータの読み込みを指示するクエリを生成する。また、処理実行手段３００は、データベース５０１から読み込んだ読み込みデータ等を用いて、処理モジュール３０１の目的に応じた処理を実行する。例えば、データベース５０１から読み込んだデータからの情報抽出や、データの分析等を行う。この処理の内容は限定されない。また、処理実行手段３００は、実行制御モジュール４００から処理モジュール３０１の起動通知を受けると、通知された処理モジュール３０１に従って処理を実行する。そして、その処理を完了すると、処理実行手段３００は、処理の完了を実行制御手段４００に通知する。
【００３４】
処理モジュール３０１の例を以下に示す。処理モジュール３０１は、例えば、処理実行手段３００に、データベース５０１からデータ（文）を順次読み込ませ、その文に対する形態素解析を実行させ、形態素解析の結果を新たなデータとしてデータベース５０１に書き込ませるソフトウェアモジュールであってもよい。また、処理モジュール３０１は、処理実行手段３００に、インターネットを介してＷｅｂページを収集させ、そのＷｅｂページを新たなデータとしてデータベース５０１に書き込ませるソフトウェアモジュールであってもよい。また、処理モジュール３０１は、処理実行手段３００に、ファイルを記憶しているパーソナルコンピュータ等の情報処理装置からファイルに関する情報を収集させ、その情報を新たなデータとしてデータベース５０１に書き込ませるソフトウェアモジュールであってもよい。また、処理モジュール３０１は、処理実行手段３００に外気温を測定させ、その測定結果をデータベース５０１に書き込ませるソフトウェアモジュールであってもよい。
【００３５】
実行制御モジュール４０１は、処理モジュールの連携を記述したり設定したりしたソフトウェアである。すなわち、実行制御モジュール４０１は、１つあるいは複数の処理モジュールの処理の順序を定めたソフトウェアである。実行制御モジュール４０１は、データベース接続システム１０の利用者によって作成され、記憶装置１１に記憶される。実行制御手段４００は、実行制御モジュール４０１に従って、実行する処理モジュールの順序を制御する。例えば、実行制御手段４００は、実行制御モジュール４０１に定められた順に、実行すべき処理モジュールを処理実行手段３００に通知することによって、処理実行手段３００に処理モジュールを順次、実行させる。
【００３６】
本システムの利用者は、１つの処理モジュールによって、あるいは複数の処理モジュールを連携することによって、意図した処理全体を行うアプリケーション（処理モジュールの組み合わせ）を定義する。利用者はこのアプリケーションにおける処理モジュールの実行順を定めた実行制御モジュール４０１を作成する。データベース接続システム１０は、実行制御モジュール４０１を入力するためのインタフェースを備え、そのインタフェースを介して利用者によって実行制御モジュール４０１が入力されると、実行制御モジュール４０１を記憶装置１１に記憶させる。
【００３７】
実行制御手段４００は、実行制御モジュール４０１に従って、処理実行手段３００に処理モジュールを順次、実行させる。例えば、実行制御手段４００は、実行制御モジュール４０１に従ってある処理モジュール３０１の起動通知を処理実行手段３００に送り、処理実行手段３００にその処理を実行させる。処理実行手段３００は通知された処理モジュール３０１の処理を完了すると、完了通知を実行制御手段４００に送り、実行制御手段４００は完了通知を受けると、次の処理モジュール３０１の起動通知を処理実行手段３００に送る。実行させるべき処理モジュールがなくなるまで、実行制御手段４００は上記の処理を繰り返す。
【００３８】
また、実行制御手段４００は、処理実行手段３００が生成するデータとともにデータベース５０１に書き込まれるメタデータを保持する。メタデータの例として、例えば、処理モジュール３０１の処理対象となるデータを作成したユーザのユーザ名や、処理モジュール３０１の処理対象となるデータを作成したり保持したりする装置の識別情報（例えば、装置名、ＩＰアドレス等）が挙げられる。例えば、処理モジュール３０１が通信ネットワーク上のＰＣ（パーソナルコンピュータ）からファイルを収集するためのファイルクローラである場合、ファイルを作成したユーザのユーザ名や、ファイルを保持しているＰＣの装置名等をメタ情報とすることができる。また、実行制御モジュール４０１を実行制御手段４００に実行させる操作を行っている利用者のユーザ名をメタデータとしてもよい。また、メタデータの例として、処理実行手段３００に実行させる処理モジュール３０１のモジュール名や、処理モジュール３０１のバージョン名も挙げられる。また、現在、処理実行手段３００に実行させている処理モジュール３０１の直前に実行させていた処理モジュールのモジュール名や、次に実行させる処理モジュールのモジュール名もメタデータとすることができる。また、処理モジュール３０１の実行時刻もメタデータとなる。また、アプリケーション（モジュールの組み合わせ）の名称（例えば、実行制御モジュール４０１の名称）をメタデータとしてもよい。また、処理モジュール３０１を実行させる際に、実行制御モジュール４０１が処理実行手段３００に入力する情報（データソース情報と記す。）や、処理モジュール３０１に設定されているパラメータをメタデータとして保持してもよい。また、処理モジュール３０１が、処理実行手段３００に処理完了時または処理の途中で実行制御手段４００へのデータ出力を行わせるプログラムである場合、実行制御手段４００は、処理完了時または処理の途中で出力されるデータをメタデータとしてもよい。ここで挙げたユーザ名や時刻等の各情報はメタデータの例示であり、実行制御手段４００は、上記以外の情報をメタデータとして保持してもよい。
【００３９】
実行制御手段４００は、例えば、処理モジュール３０１の実行を指示した時刻（すなわち起動通知を処理実行手段３００に送った時刻）を処理モジュール３０１の実行時刻として保持すればよい。あるいは、実行制御手段４００は時刻を計時し、処理モジュール３０１の起動通知を処理実行手段３００に送った後、ＤＢアクセス仮想化手段１００（具体的には後述のメタデータ収集手段１４０）から時刻を要求されたときに現在時刻を処理モジュール３０１の実行時刻として提供してもよい。
【００４０】
処理モジュール３０１の処理対象となるデータを作成したユーザのユーザ名は、例えば、実行制御モジュール４０１に明示しておけばよい。例えば、ファイルクローラの実行を指示する実行制御モジュール４０１の作成者が、ファイルクローラによって収集されるファイルの作成者のユーザ名を実行制御モジュール４０１内に予めメタデータとして記述しておき、実行制御手段４００は、そのユーザ名を読み取ってメタデータとして保持すればよい。また、処理モジュール３０１が、処理実行手段３００に、処理完了時または処理の途中で実行制御手段４００に対してユーザ名を出力させるプログラムである場合、実行制御モジュール４０１は、処理実行手段３００から出力されたユーザ名を保持してもよい。
【００４１】
また、実行制御モジュール４０１を実行制御手段４００に実行させる操作を行っている利用者のユーザ名をメタデータとするには、実行制御手段４００は以下のようにユーザ名を保持すればよい。すなわち、実行制御手段４００は、その実行制御手段４００自身を備える装置（図１に示す例ではデータベース接続システム１０）においてユーザ名を入力するログイン操作が行われたときに、そのユーザ名をメタデータとして保持すればよい。
【００４２】
実行制御手段４００は、ＤＢアクセス仮想化手段１００からメタデータの取得要求を受け取ると、要求されたメタデータをＤＢアクセス仮想化手段１００に送る。
【００４３】
処理モジュール３０１および実行制御モジュール４０１の例について説明する。例えば、各処理モジュール３０１は、それぞれプログラムであり、実行制御モジュール４０１は、各プログラムの実行順序を定めたバッチファイル（例えば、ＵＮＩＸにおけるシェルスクリプト）であってもよい。ＵＮＩＸは登録商標である。また、処理モジュール３０１はＤＬＬ（Dynamic Link Library）によって呼び出されるモジュールであり、実行制御モジュール４０１はそのモジュールを呼び出すファイルであってもよい。また、処理モジュール３０１はＪａｖａにおけるクラスライブラリであり、実行制御モジュール４０１はそのクラスライブラリを呼び出す情報であってもよい。
【００４４】
記憶装置１１が複数種類の処理モジュール３０１を記憶する場合、ＤＢアクセス仮想化モジュール１０１およびＤＢアクセスモジュール２０１も、処理モジュール３０１毎に用意され、記憶装置１１が各処理モジュール３０１に対応するＤＢアクセス仮想化モジュール１０１およびＤＢアクセスモジュール２０１をそれぞれ記憶する。記憶装置１１は、例えば、このように処理モジュール３０１、ＤＢアクセス仮想化モジュール１０１およびＤＢアクセスモジュール２０１を記憶する。あるいは、複数種類の処理モジュール３０１が用意されていても、ＤＢアクセス仮想化モジュール１０１およびＤＢアクセスモジュール２０１は、それぞれ単一のモジュールとして記憶装置１１に記憶されていてもよい。
【００４５】
データベースシステム５００は、ＤＢアクセス手段２００から受信するデータの読み込みや書き込みを指示するコマンドに応じて、データベース５０１からのデータの読み込みまたはデータの書き込みを行う。
【００４６】
また、データベースシステム５００には、データベース５０１を参照可能な統合データ分析システム（図１において図示せず。）が接続される。統合データ分析システムは、例えばＢＩであり、各種処理モジュール３０１の実行によりデータベース５０１に登録されたデータおよびそのデータとともに登録されたメタデータを参照し、各種処理モジュール３０１の実行結果を総合的に分析する。統合データ分析システムが行う分析の処理内容は特に限定されない。
【００４７】
図２は、ＤＢアクセス仮想化手段１００を示すブロック図である。ＤＢアクセス仮想化手段１００は、クエリ書き換え手段１１０と、書き換え設定手段１２０と、書き換え設定蓄積手段１３０と、メタデータ収集手段１４０と、メタデータ蓄積手段１５０とを備える。
【００４８】
書き換え設定手段１２０は、データベース５０１に書き込まれるデータとそのデータに追加すべきメタデータの項目との対応関係を示す設定情報が入力されるインタフェース（例えば、キーボード等の入力デバイス）を有し、インタフェースを介して入力された設定情報を書き換え設定蓄積手段１３０に記憶させる。書き換え設定蓄積手段１３０は、設定情報を記憶する記憶装置である。
【００４９】
設定情報では、データベース５０１のテーブル毎に、テーブルに書き込むデータとともに書き込むべきメタデータの項目が定められる。従って、テーブルに書き込むデータと、メタデータの項目とが対応づけられる。
【００５０】
図３および図４は、設定情報の例を示す説明図である。図３に例示する設定情報は、テーブルＡにデータを書き込む場合、そのデータとともに「ユーザ名」および「実行時刻」をメタデータとして書き込むことを示している。「ユーザ名」は、例えば、処理モジュール３０１の処理対象となるデータを作成したユーザのユーザ名であるが、他のユーザのユーザ名であってもよい。また、「実行時刻」は、テーブルＡにデータを書き込むクエリを処理実行手段３００に生成させた処理モジュール３０１の実行時刻である。
【００５１】
設定情報において、メタデータの項目は、メタデータが書き込まれるテーブルにおけるメタデータのフィールドを特定できるように記述される。例えば、メタデータが書き込まれるテーブルにおけるメタデータのフィールド名が、メタデータの項目として設定情報に記述される。図３に示す例では、テーブルＡでのメタデータのフィールド名である「ユーザ名」および「実行時刻」を設定情報に記述している。
【００５２】
なお、処理実行手段３００はメタデータを扱わないので、データベース５０１内のテーブルには、当初、メタデータのフィールドは設けられていない。そのため、例えば、利用者が手作業によって、データベース５０１のスキーマを確認し、メタデータのフィールドを追加するようにテーブルを変更しておく。
【００５３】
また、メタデータは、処理実行手段３００が生成したクエリで指定されたテーブルとは別のテーブルに記憶されてもよい。図４に例示する設定情報は、テーブルＢにデータを書き込む場合、テーブルＢにおける特定のフィールド（本例では「データ１」）を外部キーとして、他のテーブルＣに、外部キー（「データ１」）のキー値、「ユーザ名」、「実行時刻」を書き込むことを示している。本例では、テーブルＢに「データ１」、「データ２」を書き込む場合、メタデータある「ユーザ名」および「実行時刻」が別のテーブルＣに書き込まれることになる。なお、「ユーザ名」および「実行時刻」がメタデータの項目である旨が設定情報中に記述される。
【００５４】
図３および図４では、テーブル毎にメタデータの項目を定める設定情報の例を示したが、テーブルを指定する必要がない場合（例えば、各処理モジュール３０１の処理対象となるテーブルが１つである場合等）には、メタデータの項目だけ定められていてもよい。
【００５５】
メタデータ収集手段１４０は、設定情報において定められた各種メタデータを実行制御手段４００に要求し、実行制御手段４００からメタデータを収集する。
【００５６】
メタデータ蓄積手段１５０は、メタデータ収集手段１４０にメタデータを収集させる。また、メタデータ蓄積手段１５０は、メタデータを記憶する記憶装置を含んでおり、メタデータ収集手段１４０が収集したメタデータをその記憶装置に記憶する。また、メタデータ蓄積手段１５０は、クエリ書き換え手段１１０からの要求に応じて、記憶したメタデータをクエリ書き換え手段１１０に提供する。
【００５７】
クエリ書き換え手段１１０は、処理実行手段３００によってデータ書き込みのクエリが生成されると、書き換え設定蓄積手段１３０に記憶されている設定情報を参照し、クエリによって書き込みを指示されたデータに追加するメタデータの項目を特定する。例えば、図３や図４に例示した設定情報のように、データベース５０１内のテーブルとメタデータの項目とが対応付けられているとする。クエリ書き換え手段１１０は、クエリで指定されたテーブルに対応するメタデータの項目を、設定情報を参照することによって特定する。クエリ書き換え手段１１０は、その項目に該当するメタデータを、メタデータ蓄積手段１５０に要求し、メタデータを受け取ると、そのメタデータもデータベース５０１に書き込むようにクエリを変換し、変換後のクエリをＤＢアクセス手段２００に送る。
【００５８】
図３に例示する設定情報が定められていて、テーブルＡに対するデータ書き込みを指定するクエリが生成されたとする。すると、クエリ書き換え手段１１０は、テーブルＡに対応付けられた「ユーザ名」、「実行時刻」という項目を設定情報の中から特定し、その項目のメタデータ（例えば「Ｕｓｅｒ１」等）をメタデータ蓄積手段１５０から受け取り、それらのメタデータもテーブルＡに書き込むようにクエリを変換する。例えば、データベース５０１におけるメタデータのフィールド名およびメタデータをクエリに追加する。このようにクエリを変換することにより、図３の下段に示すように、ユーザ名や実行時刻等のメタデータもデータベース５０１内のテーブルＡに書き込まれる。
【００５９】
また、例えば、図４に例示する設定情報が定められていて、テーブルＢに対するデータ書き込みを指定するクエリが生成されたとする。すると、クエリ書き換え手段１１０は、テーブルＢに対応付けられた「ユーザ名」、「実行時刻」という項目を設定情報の中から特定し、その項目のメタデータ（例えば「Ｕｓｅｒ１」等）をメタデータ蓄積手段１５０から受け取る。そして、クエリ書き換え手段１１０は、テーブルＢに対するデータ書き込みを指定するクエリに含まれている外部キーのキー値と、「ユーザ名」、「実行時刻」のメタデータとをテーブルＣに書き込むクエリを新たに作成する。この結果得られたクエリによって、図４の下段に示すように、各データおよびメタデータがデータベース５０１内のテーブルＢ，Ｃに書き込まれる。
【００６０】
クエリ書き換え手段１１０は、処理実行手段３００によって生成されたクエリを、データベース５０１に書き込むデータおよびメタデータの各フィールド名と、データおよびメタデータを含めたクエリに変換すればよい。変換は、図４を例にして説明したように新たなクエリを追加する変換であってもよい。
【００６１】
また、データベース５０１からデータを読み込むためのクエリを処理実行手段３００が生成した場合、クエリ書き換え手段１１０は、そのクエリに対する変換を行わずにＤＢアクセス手段２００に送る。データベース５０１から読み出された読み込みデータがＤＢアクセス手段２００から返ってきた場合、クエリ書き換え手段１１０は、設定情報を参照し、設定情報で指定されているメタデータが、読み込みデータ中に含まれているか否かを判定する。設定情報には、メタデータの項目が、テーブルにおけるメタデータのフィールドを特定できるように記述されている。例えば、フィールド名がメタデータの項目として記述されている。クエリ書き換え手段１１０は、設定情報を参照してメタデータのフィールド名を特定し、読み込みデータ中にそのフィールドのデータが含まれているか否かを判定すればよい。読み込みデータ中に、設定情報で定められているメタデータが含まれていれば、クエリ書き換え手段１１０は、読み込みデータからメタデータを削除し、メタデータを削除したデータを処理実行手段３００に返す。読み込みデータにメタデータが含まれていなければ、クエリ書き換え手段１１０は、そのデータを処理実行手段３００に送る。
【００６２】
なお、図１では、記憶装置１１が各処理モジュール３０１に対応するＤＢアクセス仮想化モジュール１０１を記憶している場合を示している。ＤＢアクセス仮想化モジュール１０１が処理モジュール３０１毎に作成される場合、入力された設定情報を書き換え設定蓄積手段１３０に記憶させる命令に該当する部分を、共通のモジュールとして作成してもよい。そして、クエリ書き換え手段１１０、メタデータ収集手段１４０、およびメタデータ蓄積手段１５０に対する命令の部分を、各処理モジュール３０１毎に作成して記憶装置１１に記憶させてもよい。
【００６３】
クエリ書き換え手段１１０、メタデータ収集手段１４０、ＤＢアクセス手段２００、処理実行手段３００、実行制御手段４００は、例えば、プログラムに従って動作するＣＰＵによって実現される。書き換え設定手段１２０は、例えば、プログラムに従って動作するＣＰＵと、キーボード等の入力デバイスとによって実現される。メタデータ蓄積手段１５０は、プログラムに従って動作するＣＰＵと、記憶装置とによって実現される。上記の各手段を実現するためのＣＰＵは、同一のＣＰＵであってもよい。
【００６４】
なお、上記の説明では、データベース５０１内のテーブルにメタデータのフィールドを追加する例として、利用者が手作業によってメタデータのフィールドを追加する場合を例示した。データベース５０１内のテーブルにメタデータのフィールドを追加する処理を自動的に行ってもよい。例えば、新規テーブルの生成を指示するクエリに対して、設定情報で定められたメタデータのフィールドを追加する処理をＤＢアクセス仮想化手段１００（より具体的にはクエリ書き換え手段１１０）に実行させるモジュールを記憶させておく。そして、クエリ書き換え手段１１０が、新規テーブルの生成を指示するクエリ（例えば、ＳＱＬのcreate table文）が生成された場合、設定情報を参照してその新規テーブルに対応付けられたメタデータの項目を探索し、メタデータの項目があれば、その項目を新たなフィールドとしてテーブルに追加するようにクエリを変換してもよい。設定情報に、テーブルの情報がなく、メタデータの項目だけが指定されている場合、その項目を新たなフィールドとしてテーブルに追加するように、新規テーブルの生成を指示するクエリを書き換えればよい。ここで、データベース接続システム１０が、新規テーブルの生成を指示するクエリを作成する手段（図示せず。）を備えていてもよい。あるいは、データベース接続システム１０以外の装置あるいはデータベース接続システム１０の利用者によって、新規テーブルの生成を指示するクエリが入力されてもよい。
【００６５】
また、メタデータのフィールドを新規テーブルに追加させるようにクエリを変換させるためのモジュールは、ＤＢアクセス仮想化モジュール１０１とは、別のモジュールとして作成されるのではなく、ＤＢアクセス仮想化モジュール１０１と同一のモジュールとして作成されてもよい。すなわち、ＤＢアクセス仮想化モジュール１０１が、ＤＢアクセス仮想化手段１００に対して、メタデータのフィールドを新規テーブルに追加させるようにクエリを変換させる命令を含んでいてもよい。
【００６６】
次に、本発明のデータベース接続システムの他の構成例を示す。以下に示す図５および図６では、図１に示す構成要素と同様の構成要素については、図１と同一の符号を付し、説明を省略する。図５は、データベースシステムとデータベース接続システム１０とが同一の装置である場合の構成例を示すブロック図である。図５に示すように、データベース接続システム１０がデータベース５０１を保持する構成であってもよい。
【００６７】
また、図６は、処理モジュール３０１が複数台のデータベース接続システム１０に分散されている場合の構成例を示すブロック図である。この場合、各データベース接続システム１０は、ＤＢアクセス手段２００と、ＤＢアクセス仮想化手段１００と、処理実行手段３００とを備える。また、各データベース接続システム１０は、ＤＢアクセスモジュール２０１と、ＤＢアクセス仮想化モジュール１０１と、処理モジュール３０１とを記憶した記憶装置１１を備える。また、実行制御モジュール４０１を記憶する記憶装置７１と、実行制御手段４００とを備えた情報処理装置７０が設けられる。情報処理装置７０と各データベース接続システム１０とは通信ネットワークを介して接続される。実行制御手段４００は、実行制御モジュールに従い、各データベース接続システム１０の処理実行手段３００に、実行すべき処理モジュールの起動通知を順次送信する。処理実行手段３００は、実行制御手段４００に通知された処理モジュール３０１の処理を完了すると、完了通知を実行制御手段４００に送信する。また、ＤＢアクセス仮想化手段１００は、収集すべきメタデータを、通信ネットワークを介して実行制御手段４００に送信する。実行制御手段４００は要求されたメタデータをＤＢアクセス仮想化手段１００にに送信する。なお、図６では、実行制御手段４００を備える情報処理装置７０を各データベース接続システム１０とは別に設ける場合を示しているが、複数のデータベース接続システム１０のいずれかが実行制御モジュール４０１を記憶するとともに、実行制御手段４００を備えていてもよい。
【００６８】
次に、動作について説明する。
図７は、データベース接続システム１０および統合データ分析システム（図１において図示せず。）の動作の例を示すフローチャートである。まず、データベース接続システム１０の利用者は、１つの処理モジュールによって、あるいは複数の処理モジュールを連携することによって、所望の処理を行うアプリケーションを定める。アプリケーションは、処理モジュールの組み合わせであり、利用者は、処理モジュールの実行順を定めた実行制御モジュールを作成し、実行制御モジュールをデータベース統合システム１０に入力する。データベース統合システム１０（図１参照）は、実行制御モジュール４０１が入力されると、実行制御モジュール４０１を記憶装置１１に記憶させる（ステップＳ１）。
【００６９】
次に、利用者は、設定情報を作成する。処理モジュール３０１に従い動作する処理実行手段３００が処理実行時に使用せず、またデータベース５０１への書き込みも指示しないデータであって、統合データ分析システムが分析時に使用するデータを、利用者はメタデータとして定める。そして、利用者は、処理実行手段３００がデータベース３０１への書き込みを指示するデータと、メタデータの項目との対応関係を示す設定情報を作成する。データベース接続システム１０は、設定情報が入力されると、その設定情報を記憶する（ステップＳ２）。
【００７０】
続いて、処理実行手段３００は、利用者によってアプリケーションとして定められた各
処理モジュール３０１を実行する（ステップＳ３）。このとき、実行制御手段４００が処理モジュール３０１の実行順を制御する。ステップＳ３において、処理実行手段３００は、データベース５０１に記憶されているデータを読み込んだり、データベース５０１にデータを書き込んだりしながら、各処理モジュール３０１が定めている処理を行う。処理実行手段３００がデータベース５０１へのデータの書き込みを指示するクエリを生成した場合、ＤＢアクセス仮想化手段１００は、そのデータに対応するメタデータもデータベース５０１に書き込まれるようにクエリを変換する。ＤＢアクセス手段２００は、変換後のクエリをデータベースシステム５００独自のコマンドに変換し、データベースシステム５００はそのコマンドに従ってデータおよびメタデータを記憶する。この結果、処理実行手段３００が書き込もうとしたデータの他にメタデータもデータベース５０１に書き込まれる。
【００７１】
データベース接続システム１０が複数のアプリケーションを実行する場合、ステップＳ１〜Ｓ３の処理を繰り返せばよい。
【００７２】
統合データ分析システムは、データベース５０１に蓄積されたメタデータを活用し、データの分析を行う（ステップＳ４）。例えば、複数のアプリケーションが実行された後、統合データ分析システムは各アプリケーションの実行によりデータベース５０１に記憶されたデータおよびメタデータ全体を用いて分析を行う。
【００７３】
次に、ステップＳ２，Ｓ３の処理についてより詳細に説明する。図８ないし図１０は、ステップＳ２，Ｓ３の処理をより詳細に示すフローチャートである。具体的には、図８は、設定情報が入力されてからアプリケーション実行開始時までの動作を示す。図９は、処理実行手段３００がデータベースへのデータの書き込みを指示するクエリを生成した場合の動作の例を示すフローチャートである。図１０は、処理実行手段３００がデータベースからのデータの読み込みを指示するクエリを生成した場合の動作の例を示すフローチャートである。
【００７４】
また、実行制御手段４００がＤＢアクセス仮想化手段１００に提供するメタデータには、処理実行手段３００が各処理モジュール３０１を順次実行していく経過とともに変化するものと、変化しないものとがある。前者の例として、処理モジュール３０１の実行時刻等が挙げられる。また、後者の例として、アプリケーション（モジュールの組み合わせ）の名称（例えば、実行制御モジュール４０１の名称）が挙げられる。以下に示す説明では、ＤＢアクセス仮想化手段１００が後者のメタデータを最初に収集し、処理実行手段３００が処理モジュール３０１を実行する際に後者のメタデータを収集する場合を例にして説明する。
【００７５】
まず、図８を参照して、アプリケーション実行開始時までの動作を説明する。利用者は、データベース５０１に書き込まれるデータとメタデータの項目との対応関係を示す設定情報を作成する。書き換え設定手段１２０は、利用者により設定情報が入力される（ステップＳ１１）。すると、書き換え設定手段１２０は、入力された設定情報を書き換え設定蓄積手段１３０に記憶させる（ステップＳ１２）。
【００７６】
その後、実行制御手段４００は、アプリケーションを起動する（ステップＳ１３）。すなわち、実行制御モジュール４０１に定められた順に処理モジュール３０１の起動通知を順次、処理実行手段３００に送る処理を開始する。
【００７７】
また、処理実行手段３００は、実行制御手段４００から最初に処理モジュール３０１の起動通知を受けたときに、例えば、クエリ書き換え手段１１０を介して、メタデータ収集手段１４０にその旨を通知する。処理モジュール３０１が最初の起動通知を受けたことが通知されると、メタデータ収集手段１４０は、書き換え設定情報蓄積手段１３０に記憶された設定情報を参照し、メタデータの項目を特定する。メタデータ収集手段１４０は、そのメタデータの項目のうち、処理実行手段３００の処理経過とともに変化しないメタデータの項目を実行制御手段４００に送り、そのメタデータを要求する。利用者は、設定情報内で、メタデータの項目とともに、そのメタデータが処理実行手段３００の処理経過とともに変化するか否かを定めておけばよい。メタデータ収集手段１４０は、変化しないと定められたメタデータの項目を特定し、そのメタデータを実行制御手段４００に要求する。実行制御手段４００は要求されたメタデータをメタデータ収集手段１４０に送り、メタデータ収集手段１４０は実行制御手段４００から受け取ったメタデータをメタデータ蓄積手段１５０に記憶させる（ステップＳ１４）。
【００７８】
処理実行手段３００は、実行制御手段４００から処理モジュール３０１の起動通知を受けると、指定された処理モジュール３０１の処理を開始する。処理実行手段３００は、処理モジュール３０１に従って、データベース５０１にデータを書き込むクエリを生成したり、あるいはデータベース５０１からデータを読み込むクエリを生成したりする。以下、これらのクエリが生成された場合の動作を説明する。
【００７９】
まず、図９を参照して、処理実行手段３００がデータを書き込むクエリを生成する場合の動作を説明する。処理実行手段３００は指定された処理モジュール３０１に従って処理を行い、その処理において、データベース５０１へのデータの書き込みを指示するクエリを生成する（ステップＳ１５）。処理実行手段３００は、例えばＳＱＬ等のデータベース言語によりクエリを生成する。
【００８０】
データの書き込みを指示するクエリが生成されると、ＤＢアクセス仮想化手段１００が有するクエリ書き換え手段１１０（図２参照）は、そのクエリを解析する（ステップＳ１６）。具体的には、クエリ書き換え手段１１０は、データが書き込まれるテーブルのテーブル名をクエリ中から読み取る。クエリの書式はデータベース言語で定められているので、クエリ書き換え手段１１０は、クエリの所定箇所からテーブル名を読み取ればよい。
【００８１】
クエリ書き換え手段１１０は、書き換え設定蓄積手段１３０に記憶された設定情報を参照し、クエリ中で書き込み指示されているデータとともにデータベースに書き込むメタデータの項目を特定する。すなわち、クエリ書き換え手段１１０は、ステップＳ１６で読み取ったテーブルに対応づけられているメタデータの項目を設定情報の中から読み取る。さらに、クエリ書き換え手段１１０は、その項目の中から、処理実行手段３００の処理経過とともに変化するメタデータの項目を選択する。クエリ書き換え手段１１０は、選択した項目を指定して、その項目のメタデータを記憶するようにメタデータ蓄積手段１５０に要求する（ステップＳ１７）。なお、既に述べたように、設定情報内で、メタデータの項目とともに、そのメタデータが処理実行手段３００の処理経過とともに変化するか否かを定めておけばよい。そして、クエリ書き換え手段１１０は、変化すると定められているメタデータの項目を選択すればよい。
【００８２】
処理モジュール３０１の実行時刻等は処理実行手段３００の処理経過とともに変化し、これらのメタデータはステップＳ１４の時点では確定しないので、ステップＳ１７でメタデータ蓄積手段１５０に記憶させる。
【００８３】
メタデータ蓄積手段１５０は、クエリ書き換え手段１１０によってメタデータの項目を指定されると、その項目をメタデータ収集手段１４０に通知して、メタデータ収集手段１４０にメタデータを収集させる。メタデータ収集手段１４０は、通知された項目のメタデータを実行制御手段４００に要求し、実行制御手段４００は、要求されたメタデータをメタデータ収集手段１４０に送る。メタデータ収集手段１４０は、実行制御手段４００から受け取ったメタデータをメタデータ蓄積手段１５０に記憶させる。
【００８４】
ステップＳ１７の後、クエリ書き換え手段１１０は、クエリ中で書き込み指示されているデータとともにデータベースに書き込むメタデータをメタデータ蓄積手段１５０に要求する。データベースに書き込むべきメタデータの項目は、設定情報においてテーブルと対応付けられている項目であり、この項目はステップＳ１７で特定している。クエリ書き換え手段１１０は、その項目のメタデータをメタデータ蓄積手段１５０に要求する。メタデータ蓄積手段１５０は、要求されたメタデータをクエリ書き換え手段１１０に送る。さらに、クエリ書き換え手段１１０は、ステップＳ１５で生成されたクエリを、データベース５０１に書き込むデータおよびメタデータの各フィールド名と、データおよびメタデータを含めたクエリに変換する（ステップＳ１８）。
【００８５】
ステップＳ１８の後、クエリ書き換え手段１１０は、変換後のクエリをＤＢアクセス手段２００に渡す（ステップＳ１９）。ＤＢアクセス手段２００は、そのクエリをデータベースシステム５００で独自に定められているコマンドに書き換え、コマンドをデータベースシステム５００に送信する。この結果、データベースシステム５００は、ＤＢアクセス手段２００から受信したコマンドに従って、指定されたデータおよびメタデータをデータベース５０１に書き込む。また、データベースシステムはその処理結果をＤＢアクセス手段２００に返す。ＤＢアクセス手段２００は、データベースシステム５００独自の形式で記述された処理結果をデータベース言語が定める形式に書き換える。ＤＢアクセス仮想化手段１００は、その処理結果を処理実行手段３００に送る（ステップＳ２０）。
【００８６】
ここでは、メタデータの収集をステップＳ１４，Ｓ１７に分けて行う場合を例にして説明したが、メタデータが処理実行手段３００の処理経過とともに変化するか否かによらずに、ステップＳ１７で各メタデータを収集してもよい。ただし、ステップＳ１４，Ｓ１７に分けてメタデータを収集した方が、メタデータを効率的に収集できるので好ましい。
【００８７】
次に、図１０を参照して、処理実行手段３００がデータを読み込むクエリを生成する場合の動作を説明する。処理実行手段３００は指定された処理モジュール３０１に従って処理を行い、その処理において、データベース５０１からのデータの読み込みを指示するクエリを生成する（ステップＳ２１）。処理実行手段３００は、例えばＳＱＬ等のデータベース言語によりクエリを生成する。
【００８８】
データの読み込みを指示するクエリが生成されると、ＤＢアクセス仮想化手段１００が有するクエリ書き換え手段１１０（図２参照）は、そのクエリを変換せずにＤＢアクセス手段２００に送る（ステップＳ２２）。ＤＢアクセス手段２００は、そのクエリをデータベースシステム５００で独自に定められているコマンドに書き換え、コマンドをデータベースシステム５００に送信する。この結果、データベースシステム５００は、ＤＢアクセス手段２００から受信したコマンドに従って、データベース５０１からデータを読み込み、ＤＢアクセス手段２００に送信する。このときデータベース５０１から読み出された読み込みデータには、データ書き込み時に追加されたメタデータが含まれている場合もある。
【００８９】
データベースシステム５００がＤＢアクセス手段２００に送信したデータは、データベースシステム５００独自の形式で記述されている。ＤＢアクセス手段２００は、そのデータをデータベース言語が定める形式に書き換え、クエリ書き換え手段１１０に送る。
【００９０】
クエリ書き換え手段１１０は、読み込みデータをＤＢアクセス手段２００から受けると、その読み込みデータ内にメタデータが含まれているか否かを判定する。例えば、設定情報を参照してメタデータのフィールド名を特定し、読み込みデータ中にそのフィールドのデータが含まれているか否かを判定する。クエリ書き換え手段１１０は、読み込みデータ中に、メタデータのフィールドのデータが存在していれば、そのメタデータを削除する（ステップＳ２３）。そして、クエリ書き換え手段１１０は、メタデータを削除した後のデータを処理実行手段３００に送る（ステップＳ２４）。なお、読み込みデータにメタデータが存在していなければ、クエリ書き換え手段１１０は、そのデータをそのまま処理実行手段３００に送る。
【００９１】
次に、本実施の形態の効果について説明する。
本発明のデータベース接続システムは、クエリで書き込み指示されるデータとともにデータベース５０１に書き込むメタデータの項目を定めた設定情報を予め記憶する。また、メタデータ収集手段１４０は、実行制御手段４００からメタデータを収集する。そして、データベース５０１へのデータの書き込みを指示するクエリが生成されると、クエリ書き換え手段１１０は、クエリで指示されたデータだけでなく設定情報で定められたメタデータもデータベース５０１に書き込むようにクエリを変換する。従って、処理モジュール３０１を改造することなく、メタデータをデータベース５０１に書き込むことができる。また、各処理モジュール３０１の実行によってデータベース５０１に書き込まれたデータおよびメタデータを用いて、統合データ分析システム（図示せず。）は、各処理モジュール３０１の実行結果に対する分析を行うことができる。
【００９２】
また、処理モジュール３０１の実行時に処理実行手段３００がデータベース５０１からのデータの読み込みを指示するクエリを生成し、そのクエリに基づいて読み込んだ読み込みデータの中にメタデータが含まれている場合、ＤＢアクセス仮想化手段１００は、読み込みデータの中からメタデータを削除する。従って、メタデータに対する処理を行わない処理実行手段３００にメタデータが送られてしまうことを防止することができる。
【００９３】
また、書き換え設定手段１２０に設定情報が入力され、書き換え設定手段１２０は、入力された設定情報を書き換え設定蓄積手段１３０に記憶させる。従って、利用者が所望の設定情報を入力し、その設定情報に基づいてメタデータを追加することができる。
【００９４】
設定情報内において、処理モジュールの実行時刻がメタデータの項目として定められていることが好ましい。この場合、メタデータ収集手段１４０は実行制御手段４００から処理モジュールの実行時刻を収集し、クエリ書き換え手段１１０は、その実行時刻もデータベースに書き込まれるようにクエリを書き換える。この結果、統合データ分析システム（図示せず。）は、処理モジュール３０１の実行時刻の時系列に沿って、データベース５０１に書き込まれたデータのデータ量や質がどのように変換したのかを分析することができる。
【００９５】
また、設定情報内において、処理モジュール３０１の処理対象となるデータを作成したユーザのユーザ名が、メタデータの項目として定められていることが好ましい。この場合、ユーザ単位でのデータ分析を行うことができる。例えば、処理モジュール３０１がファイルクローラであり、処理実行手段３００がファイルを収集するとする。この場合、設定情報においてユーザ名がメタデータとして定められていれば、統合データ分析システム（図示せず。）は、ファイル作成者毎にファイルに関する分析を行うことができる。
【００９６】
また、上記の実施形態では、データベース５０１から読み込んだ読み込みデータからメタデータを削除する場合を説明した。全フィールドのデータを意味する記号を含むクエリであって、その全フィールドのデータの読み込みを指示するクエリを処理実行手段３００が生成した場合に、クエリ書き換え手段１１０がそのクエリを書き換えることによって、メタデータを読み込まないようにしてもよい。この場合にも、処理実行手段３００にメタデータを送らないようにすることができる。
【００９７】
この場合、クエリ書き換え手段１１０は、処理実行手段３００が生成したクエリであって、データベース５０１に対してデータを書き込むことを指示するクエリで指定されたフィールド名を全て記憶しておく。そして、全フィールドのデータを意味する記号（例えば“* ”）を含むクエリであって、その全フィールドのデータの読み込みを指示するクエリを処理実行手段３００が生成した場合、全フィールドのデータを意味する記号を、記憶しているフィールド名（データを書き込むことを指示するクエリで指定された各フィールド名）に置き換えればよい。この場合、データベース５０１から全フィールドのデータが読み込まれず、データ書き込みのためのクエリで指定されたフィールドのデータ（すなわちメタデータ以外のデータ）が読み込まれる。よって、クエリ書き換え手段１１０は、読み込みデータからメタデータを削除しなくてよい。また、処理実行手段３００にメタデータを送らないようにすることができる。
【００９８】
次に、本発明の動作の具体例を説明する。図１１は、データベース接続システムの例を示すブロック図であり、図１に示す構成要素と同様の構成要素については、図１と同一の符号を付し、説明を省略する。図１１に示すＰＣファイルクローラ３０１ａおよび分析モジュール３０１ｂは、いずれも図１に示す処理モジュール３０１に該当する。以下、処理実行手段３００が、ＰＣファイルクローラ３０１ａおよび分析モジュール３０１ｂに従って動作する場合を例にして説明する。また、図１１では、ＤＢアクセスモジュール２０１がＪＤＢＣである場合を例示している。
【００９９】
ＰＣファイルクローラ３０１ａは、通信ネットワーク上のＰＣ（パーソナルコンピュータ）に蓄積されているファイル（Ｗｅｂページ）に関する情報を処理実行手段３００に収集させる処理モジュールである。処理実行手段３００は、ＰＣファイルクローラ３０１ａに従って、イントラネット上のＰＣに蓄積されているファイルに関する情報を収集し、その情報をデータベース５０１に書き込むためのクエリを生成する。ここでは、処理実行手段３００が収集する情報に、ＰＣ内でのファイルの位置情報とファイルの本文（テキスト）が含まれているものとする。また、ファイルの位置情報は、ファイルが格納されているフォルダのフォルダ名とファイル名とを含む。
【０１００】
分析モジュール３０１ｂは、データベース５０１に蓄積された情報（ファイルに関する情報）を処理実行手段３００に読み取らせて、その情報に対する分析を行わせる処理モジュールである。処理実行手段３００は、分析モジュール３０１ｂに従って、ＰＣ内でのファイルの位置情報およびそのファイルの本文（テキスト）から、ファイルサイズを求め、検索インデックスを作成する等の処理を行う。
【０１０１】
ＰＣファイルクローラ３０１ａと分析モジュール３０１ｂとの組により、個々のＰＣのファイル検索（ＰＣデスクトップ検索）を実現でき、ＰＣファイルクローラ３０１ａと分析モジュール３０１ｂとの組は、ＰＣ毎に用意される。
【０１０２】
統合データ分析システム９１は、データベース５０１を参照し、ある一定期間に収集されたファイルに関する情報を分析して、ＰＣ間でのファイル受け渡し状況等の時系列での変化を分析する分析システムである。
【０１０３】
ＰＣファイルクローラ３０１ａは、ファイルの位置情報と本文の組をＰＣから収集し、ファイルのＩＤを付加してデータベース５０１に書き込む処理を処理実行手段３００に実行させる。図１２は、このような処理で用いられるテーブルの例を示す説明図である。ＰＣファイルクローラ３０１ａはメタデータを書き込む処理やメタデータを読み込む処理を処理実行手段３００に行わせない。よって、ＰＣファイルクローラ３０１ａに従って動作する処理実行手段３００がデータの読み書きを行うテーブルには、図１２に例示するように、ファイルのＩＤ、位置情報、およびテキストのフィールドが含まれ、メタデータのフィールドは含まれない。データベース接続システム１０が、図１２に例示するテーブルを新規作成することを指示するクエリを生成する手段（図示せず。）を備えていてもよい。あるいは、データベース接続システム１０以外の装置またはデータベース接続システム１０の利用者によって、テーブルを新規作成することを指示するクエリが入力されてもよい。
【０１０４】
ＤＢアクセス仮想化手段１００がテーブルの新規作成を指示するクエリをそのままＤＢアクセス手段２００に送ってもよい。この場合、データベースシステム５００は、図１２に例示するフィールドを有するテーブルを作成する。また、本例において統合データ分析システム９１は、ファイルを収集した日時と、ファイルの収集対象とされたＰＣ名をメタデータとして使用するものとする。このため、図１２に例示するテーブルに対して、ファイル収集日時とファイル収集対象とされたＰＣ名のフィールドを追加する必要がある。図１３は、図１２に例示するテーブルにメタデータとなる日時およびファイル名のフィールドを追加したテーブルの例を示す説明図である。クエリ書き換え手段１１０が、メタデータも書き込まれるようにクエリを変換し、そのクエリによりデータベースへのメタデータの書き込みを可能とするためには、図１３に例示するテーブルを用意しなければならない。図１２に例示するテーブルを作成した後、例えば、データベース接続システム１０の利用者が手作業で、日時およびＰＣ名のフィールドを追加してもよい。また、データベース接続システム１０の利用者は、データベース５０１に書き込むデータに対して日時およびＰＣ名が追加されるように定めた設定情報を書き換え設定手段１２０に入力し、書き換え設定手段１２０は、入力された設定情報を書き換え設定蓄積手段１３０に記憶させる。
【０１０５】
また、テーブルにメタデータのフィールドを追加する処理を利用者が手作業で行うのではなく、ＤＢアクセス仮想化手段１００が自動的に行ってもよい。なお、この場合、メタデータの項目は予め設定情報で定められているものとする。ＤＢアクセス仮想化手段１００のクエリ書き換え手段１１０は、新規テーブルの生成を指示するクエリに対して、設定情報で定められたメタデータの項目を新たなフィールドとして新規テーブルに追加するようにクエリを変換する。例えば、図１１に示すテーブルを新規に作成するためのクエリとして、例えば、create table t1 (id int,位置情報 text, テキスト text)というＳＱＬ文が入力されたとする。そして、設定情報において、メタデータとして日時およびＰＣ名が定められているとする。クエリ書き換え手段１１０は、このメタデータの項目を新たなフィールドとして新規テーブルに追加するように、上記のＳＱＬ文にメタデータのフィールド名を追加する。すなわち、新規テーブルの生成を指示するＳＱＬ文（create table文）においてフィールド名を記述する部分（すなわち、create table文の括弧内）に、メタデータのフィールド名を追加する。なお、create table文では、フィールド名およびデータ型が記述されるので、クエリ書き換え手段１１０は、メタデータのフィールド名およびデータ型をcreate table文に追加すればよい。例えば、クエリ書き換え手段１１０は、入力された上記のＳＱＬ文を、create talbe t1 (id int, 位置情報text, テキスト text,PC名 text, 時刻 time)というＳＱＬ文に変換する。データ型は、例えば、設定情報において定めておけばよい。クエリ書き換え手段１１０は、変換後のクエリをＤＢアクセス手段２００に送る。この結果、自動的に図１３に例示するテーブルが作成される。
【０１０６】
次に、処理実行手段３００がＰＣファイルクローラ３０１ａに従ってファイル（Ｗｅｂページ）を収集する動作を説明する。処理実行手段３００は、インターネットから順次Ｗｅｂページを収集し、収集したＷｅｂページのＩＤ、位置情報および本文（テキスト）をテーブルに書き込むクエリ（例えば、ＳＱＬのinsert into 文）を生成する。insert into 文では、最初にテーブル名を指定し、次のかっこ書きでフィールド名を指定し、その後に続ける文字列valuesの次の括弧で書き込むデータを指定する。なお、ＩＤとしては、収集したＷｅｂページの順番を表す数値を用いればよい。処理実行手段３００は、Ｗｅｂページの収集し、例えば、insert into t1 (id, 位置情報, テキスト) values (100,’c:\foo\index.html’,’<html>・・・</html>’)等のクエリを生成する。このように、処理実行手段３００は、書き込むデータのフィールド名およびデータを含むクエリを生成する。
【０１０７】
ＤＢアクセス仮想化手段１００は、このクエリに対して、メタデータのフィールド名（ＰＣ名、日時）と、メタデータを追加する。すなわち、ＤＢアクセス仮想化手段１００は、上記のinsert into 文を、insert into t1 (id, 位置情報, テキスト,PC名, 時刻) values (100,’c:\foo\index.html’,’<html>・・・</html>’,’PC1’,’2007/1/1 10:00:01’)というinsert into 文に変換する。変換後のクエリでは、最初から定められていたデータのフィールド名およびデータに加えて、メタデータのフィールド名（PC名、 時刻）とそのメタデータ（’PC1’，’2007/1/1 10:00:01’）も含まれている。
【０１０８】
このＤＢアクセス仮想化手段１００の処理をより具体的に説明する。利用者によって予め”add date as DATE; add pcname as PC名”の設定情報が書き換え設定手段１２０に入力され、書き換え設定手段１２０はその設定情報を書き換え設定蓄積手段１３０に記憶させているとする。なお、上記の”add date as DATE; add pcname as PC名”は設定情報の例示であり、設定情報は他の書式で記述されていてもよい。メタデータ収集手段１４０は、設定情報で定められたメタデータの項目（pcnameおよびdate）を実行制御手段４００に要求する。実行制御手段４００は、この要求に応じてＰＣ名とデータベースへの書き込み時刻（現在時刻）をメタデータ収集手段１４０に提供し、メタデータ収集手段１４０は、ＰＣ名および時刻をメタデータ蓄積手段１５０に蓄積する。また、クエリ書き換え手段１１０は、設定情報で定められたＰＣ名および日時をメタデータ蓄積手段１５０に要求し、ＰＣ名および日時を取得する。そして、処理実行手段３００が生成したクエリに対して、メタデータのフィールド名およびメタデータを追加することによって、insert into t1 (id, 位置情報, テキスト,PC名, 時刻) values (100,’c:\foo\index.html’,’<html>・・・</html>’,’PC1’,’2007/1/1 10:00:01’)というクエリに変換し、変換後のクエリをＤＢアクセス手段２００に送る。
【０１０９】
ＤＢアクセス手段２００は、変換後のクエリをデータベースシステム５００独自のコマンドに変換し、変換後のコマンドをデータベースシステム５００に送信する。データベースシステム５００は、そのコマンドに従って、処理実行手段３００が指定したＩＤ、位置情報およびテキストに、メタデータ（ＰＣ名および日時）を追加したレコードをデータベース５０１に書き込む。
【０１１０】
また、処理実行手段３００は、分析モジュール３０１ｂに従って動作するときに、データベース５０１のデータを読み込むＳＱＬを生成し、分析処理を行う。このとき、データを読み込むＳＱＬによって、分析モジュール３０１ｂが処理対象としないメタデータもデータベース５０１から読み込まれることがある。例えば、ＰＣファイルクローラ３０１ａにより書き込まれたデータベース内のデータを全て読み込んで順次、分析処理する場合、全フィールドのデータを意味する記号を用いたクエリを生成する。例えば、全フィールドのデータを意味する“* ”記号を用いて、“select * from t1”等のＳＱＬ文を生成する。このＳＱＬ文はテーブルt1の全データを読み込むことを意味している。この分析モジュール３０１ｂはメタデータを扱わないので、図１２に例示するテーブルから全データを読み込む目的で上記のＳＱＬ文が生成されたとしても、実際には図１３に例示するテーブルからＰＣ名および日時も読み込まれることになる。ＤＢアクセス手段２００が“select * from t1”をデータベースシステム５００独自のコマンドに変換し、データベースシステム５００はそのコマンドに基づいて、図１３に例示するテーブルから、ＩＤ、位置情報、テキスト、ＰＣ名および日時の各データを全て読み込む。データベース接続システム５００が読み込んだ読み込みデータは、ＤＢアクセス手段２００を介してＤＢアクセス仮想化手段１００に送られる。ＤＢアクセス仮想化手段１００は、設定情報を参照して、ＰＣ名および日時がメタデータであると判定し、読み込みデータの中からフィールド名がＰＣ名であるデータと、フィールド名が日時であるデータとを削除する。そして、削除後のデータを処理実行手段３００に送る。この結果、処理実行手段３００にはメタデータではないＩＤ、位置情報、テキストが送られ、処理実行手段３００は、これらのデータを用いた分析処理を行う。
【０１１１】
なお、クエリ書き換え手段１１０は、処理実行手段３００が生成した“select * from t1”において全フィールドのデータを意味する記号“*”を、メタデータ以外の各フィールドのデータのフィールド名に置き換える変換を行ってもよい。例えば、“select * from t1”というクエリを、“select id,url,本文 from t1 where PC名 like PC1”のようなクエリに変換してもよい。そして、その変換後のクエリに基づいて、データの読み込みを行ってもよい。
【０１１２】
このように処理実行手段３００が生成したデータ読み込みのためのクエリを書き換える場合、クエリ書き換え手段１１０は、処理実行手段３００が生成したデータ書き込みのためのクエリ内で指定されたフィールド名（id、位置情報、PC名）を記憶しておく。そして、データ読み込みのためのクエリ内に、全フィールドのデータを意味する記号（例えば“* ”）が含まれている場合、その記号を、データ書き込みのためのクエリ内で指定された全フィールド名（id、位置情報、PC名）に置き換える。この場合、メタデータ以外のデータが読み出されるので、メタデータの削除処理は行わなくてよい。
【０１１３】
このような動作により、ＰＣファイルクローラ３０１ａおよび分析モジュール３０１ｂを改造しなくても、データベース５０１には、統合データ分析システムが分析を行う際に用いるメタデータ（本例ではＰＣ名および日時）も書き込まれるようにすることができる。また、データベース５０１からデータを読み出す際には、処理モジュールが処理対象としないデータのみを選別し、不要なメタデータを処理実行手段３００に送らないようにすることができる。
【０１１４】
なお、上記の例のようにＰＣ名および日時をメタデータとして追加することによって、統合データ分析システム９１は、時間経過に伴って、ファイルがどのＰＣからどのＰＣに移動されたか等を分析することができる。
【０１１５】
例えば、時刻ｔ１においてファイル“file1.txt”がＰＣ１から収集され、ファイル“file2.txt”がＰＣ２から収集されたとする。そして、“file1.txt”に関する情報がメタデータｔ１，ＰＣ１とともにデータベース５０１に書き込まれ、“file2.txt”に関する情報がメタデータｔ１，ＰＣ２とともにデータベース５０１に書き込まれたとする。同様に、時刻ｔ２においてファイル“file1.txt”がＰＣ１，ＰＣ３から収集され、ファイル“file2.txt”がＰＣ３から収集されたとする。メタデータｔ２，ＰＣ１とともに“file1.txt”に関する情報がデータベース５０１に書き込まれ、メタデータｔ２，ＰＣ３とともに“file1.txt”に関する情報がデータベース５０１に書き込まれさらに、メタデータｔ２，ＰＣ３とともに“file2.txt”に関する情報がデータベース５０１に書き込まれたとする。統合データ分析システム９１は、これらのデータに基づいて、ＰＣ１からＰＣ３に“file1.txt”がコピーされ、ＰＣ２からＰＣ３に“file2.txt”が移動されたと分析することができる。
【０１１６】
次に、本発明の概要について説明する。図１４は、本発明の概要を示す説明図である。本発明のデータベース接続システム１０は、設定情報記憶手段５１と、メタデータ収集手段５２と、書き込みクエリ変換手段５３とを備える。
【０１１７】
また、メタデータ保持手段５４は、メタデータを保持し、メタデータ収集手段５２からの要求に応じてメタデータをメタデータ収集手段５２に提供する。
【０１１８】
設定情報記憶手段５１は、設定情報を記憶している。メタデータ収集手段５２は、設定情報で定められた項目のメタデータをメタデータ保持手段５４に要求し、メタデータ保持手段５４からメタデータを収集する。
【０１１９】
そして、書き込みクエリ変換手段５３は、データベースへのデータの書き込みを指示するクエリを、そのデータおよび設定情報で定められた項目のメタデータの書き込みを指示するクエリに変換する。
【０１２０】
このように、本発明では、クエリを生成する処理モジュールではなく、生成されたクエリを変換する。また、本発明では、データベースへのデータの書き込みを指示するクエリから、そのデータと、設定情報で定められた項目のメタデータとを書き込むためのクエリに変換するので、変換後のクエリによってデータとメタデータの双方をデータベースに書き込むことができる。従って、本発明では、処理モジュールを改造することなく、処理モジュールが生成したクエリで書き込み指示されたデータと、メタデータの双方をデータベースに書き込むことができる。
【０１２１】
また、上記の実施形態では、データベースから読み込んだ読み込みデータの中から、設定情報で定められた項目のメタデータを削除するメタデータ削除手段を備える構成が開示されている。
【０１２２】
また、上記の実施形態では、データベースへのデータの書き込みを指示するクエリで指定されたフィールド名を全て記憶するフィールド名記憶手段と、全フィールドのデータの読み込みを指示するクエリに含まれる全フィールドのデータを意味する記号を、フィールド名記憶手段が記憶する各フィールド名に置き換えることにより、そのクエリを変換する読み込みクエリ変換手段とを備える構成も開示されている。
【０１２３】
また、上記の実施形態では、新規テーブルの生成を指示するクエリで指定された新規テーブルのフィールド名に、設定情報で定められたメタデータの項目を追加することにより、そのクエリを変換するテーブル生成クエリ変換手段を備える構成が開示されている。
【０１２４】
また、上記の実施形態では、メタデータ収集手段が、データベースへのデータの書き込みを指示するクエリを生成する１つまたは複数のソフトウェアの中の最初のソフトウェアが起動されるときに、各ソフトウェアが順次実行されていく経過に伴って変化しないメタデータを収集し、個々のソフトウェアが起動されるときに、各ソフトウェアが順次実行されていく経過に伴って変化するメタデータを収集する構成が開示されている。
【０１２５】
また、上記の実施形態では、設定情報が入力される設定情報入力手段と、設定情報入力手段に入力された設定情報を設定情報記憶手段に記憶させる設定情報登録手段とを備える構成が開示されている。
【産業上の利用可能性】
【０１２６】
本発明は、クエリを生成させる処理モジュールを改造することなく、そのクエリで指定されたデータ以外のデータをデータベースに登録させるシステムに好適に適用される。
【図面の簡単な説明】
【０１２７】
【図１】本発明のデータベース接続システムの例を示すブロック図である。
【図２】ＤＢアクセス仮想化手段を示すブロック図である。
【図３】設定情報の例を示す説明図である。
【図４】設定情報の例を示す説明図である。
【図５】データベースシステムとデータベース接続システムとが同一の装置である場合の構成例を示すブロック図である。
【図６】処理モジュールが複数台のデータベース接続システムに分散されている場合の構成例を示すブロック図である。
【図７】データベース接続システムおよび統合データ分析システムの動作の例を示すフローチャートである。
【図８】設定情報が入力されてからアプリケーション実行開始時までの動作の例を示すフローチャートである。
【図９】処理実行手段がデータベースへのデータの書き込みを指示するクエリを生成した場合の動作の例を示すフローチャートである。
【図１０】処理実行手段がデータベースからのデータの読み込みを指示するクエリを生成した場合の動作の例を示すフローチャートである。
【図１１】データベース接続システムの例を示すブロック図である。
【図１２】ＰＣファイルクローラの処理で用いられるテーブルの例を示す説明図である。
【図１３】図１２に例示するテーブルにメタデータとなる日時およびファイル名のフィールドを追加したテーブルの例を示す説明図である。
【図１４】本発明の概要を示す説明図である。
【図１５】本発明に関連するデータベース接続システムの例を示す説明図である。
【符号の説明】
【０１２８】
１０  データベース接続システム
１１  記憶装置
１００  ＤＢアクセス仮想化手段
１０１  ＤＢアクセス仮想化モジュール
２００  ＤＢアクセス手段
２０１  ＤＢアクセスモジュール
３００  処理実行手段
３０１  処理モジュール
４００  実行制御手段
４０１  実行制御モジュール
５００  データベースシステム
５０１  データベース
【図１】
2009043083.tif 000003
【図２】
2009043083.tif 000004
【図３】
2009043083.tif 000005
【図４】
2009043083.tif 000006
【図５】
2009043083.tif 000007
【図６】
2009043083.tif 000008
【図７】
2009043083.tif 000009
【図８】
2009043083.tif 000010
【図９】
2009043083.tif 000011
【図１０】
2009043083.tif 000012
【図１１】
2009043083.tif 000013
【図１２】
2009043083.tif 000014
【図１３】
2009043083.tif 000015
【図１４】
2009043083.tif 000016
【図１５】
2009043083.tif 000017