(57)【要約】【課題】  データベースを網羅的に分析し、当該データベースのデータ群をテーブルカラム単位の特徴で分類したデータパターンを提供する。【解決手段】  データベース分析装置１０は、分析対象のデータベース３０から取得されたデータ群をテーブルカラムのデータ値に基づいて整理し分析対象データとして記憶部に格納するデータ整理部１１６と、データ値の差異に基づいてデータ値ごとにグループを作成し、グループをまとめたデータパターンを記憶部に格納するデータパターン作成処理部１１１と、データパターンの妥当性を判定するデータパターン判定処理部１１２と、妥当性の判定で否定結果が得られた場合に、データパターンに含まれる各グループの構成要素について、概念上類似している構成要素を同じ構成要素に変換するような所定の変換規則に従って各グループを変形して再構成し記憶部に格納するデータパターン変形処理部１１４とを備える。【選択図】図１
2014085926.tif 000002
【特許請求の範囲】
【請求項１】
分析対象のデータベースに格納されているデータ群を、該データ内の指定されたテーブルカラムに着目して分析するデータベース分析装置において、
データを格納する記憶部と、
前記分析対象のデータベースから取得されたデータ群を前記テーブルカラムのデータ値に基づいて整理し、分析対象データとして前記記憶部に格納するデータ整理部と、
前記分析対象データにおけるデータ値の差異に基づいて前記データ値ごとにグループを作成し、前記グループをまとめたデータパターンを前記記憶部に格納するデータパターン作成処理部と、
前記記憶部に格納されたデータパターンの妥当性を第１の判定基準に基づいて判定するデータパターン判定処理部と、
前記データパターン判定処理部による妥当性の判定において否定結果が得られた場合に、前記データパターンを変形して再構成し、前記再構成したデータパターンを前記記憶部に格納するデータパターン変形処理部と、
を備え、
前記データパターン変形処理部は、前記データパターンに含まれる各グループの構成要素について、概念上類似している構成要素を同じ構成要素に変換するような所定の変換規則に従って前記各グループを変形して前記データパターンを再構成する
ことを特徴とするデータベース分析装置。
【請求項２】
予め設定された数値化方法に従って、前記データパターンの適切さを判定するための点数付けを行うデータパターン数値化処理部をさらに備え、
前記データパターン判定処理部は、前記データパターン数値化処理部によって前記データパターンに付けられた点数を前記第１の判定基準と比較することによって前記データパターンの妥当性を判定する
ことを特徴とする請求項１記載のデータベース分析装置。
【請求項３】
前記データパターン変形処理部は、前記データパターン判定処理部による妥当性の判定において肯定結果が得られるまで、又は、否定結果が得られた場合には、前記所定の変換規則に従って前記データパターンをさらに変形できなくなるまで、前記データパターンの再構成を繰り返す
ことを特徴とする請求項１記載のデータベース分析装置。
【請求項４】
前記データパターンの各グループは、前記分析対象データにおけるテーブルカラムのデータ値を示す構成要素と、該データ値の出現回数又は該データの種類数を示す構成要素とを含んで構成される
ことを特徴とする請求項１記載のデータベース分析装置。
【請求項５】
前記データ変形処理部は、前記データパターンを変形する処理に加えて、さらに、
変形後のデータパターンに含まれるグループについて、各グループの出現頻度又はデータ構成に関する第２の判定基準に基づいて例外的なグループを決定し、前記決定した例外的なグループを例外パターンとして前記記憶部に格納し、前記変形後のデータパターンから該例外パターンを除外したデータパターンを作成し、再構成したデータパターンとして前記記憶部に格納する
ことを特徴とする請求項１記載のデータベース分析装置。
【請求項６】
前記第２の判定基準には、前記データパターンに含まれる各グループについて、該グループの構成要素の値、又は該グループに含まれるデータの種類数が含まれる
ことを特徴とする請求項５記載のデータベース分析装置。
【請求項７】
データを出力する出力装置と、
前記記憶部に最後に格納されたデータパターンを所定の形式に変換し、変換後のデータパターンを前記出力装置に出力させる第１のデータパターン出力処理部とをさらに備える
ことを特徴とする請求項１記載のデータベース分析装置。
【請求項８】
データを出力する出力装置と、
前記記憶部に最後に格納されたデータパターン及び前記記憶部に格納された全ての例外パターンを所定の形式に変換し、前記変換後のデータパターン及び前記変換後の例外パターンを前記出力装置に出力させる第２のデータパターン出力処理部とをさらに備える
ことを特徴とする請求項５記載のデータベース分析装置。
【請求項９】
分析対象のデータベースに格納されているデータ群を、該データ内の指定されたテーブルカラムに着目して分析するデータベース分析装置によるデータベース分析方法において、
前記データ分析装置は、データを格納する記憶部を有し、
前記データ分析装置が、前記分析対象のデータベースから取得されたデータ群を前記テーブルカラムのデータ値に基づいて整理し、分析対象データとして前記記憶部に格納するデータ整理ステップと、
前記データ分析装置が、前記分析対象データにおけるデータ値の差異に基づいて前記データ値ごとにグループを作成し、前記グループをまとめたデータパターンを前記記憶部に格納するデータパターン作成ステップと、
前記データ分析装置が、前記記憶部に格納されたデータパターンの妥当性を第１の判定基準に基づいて判定するデータパターン判定ステップと、
前記データ分析装置が、前記データパターン判定処理部による妥当性の判定において否定結果が得られた場合に、前記データパターンに含まれる各グループの構成要素について、概念上類似している構成要素を同じ構成要素に変換するような所定の変換規則に従って前記各グループを変形して前記データパターンを再構成し、前記再構成したデータパターンを前記記憶部に格納するデータパターン再構成ステップと、
を備えることを特徴とするデータベース分析方法。
【請求項１０】
前記データパターン判定ステップにおいて、前記データ分析装置が、
予め設定された数値化方法に従って、前記データパターンの適切さを判定するための点数付けを行い、前記点数付けによって前記データパターンに付けられた点数を前記第１の判定基準と比較することによって前記データパターンの妥当性を判定する
ことを特徴とする請求項９記載のデータベース分析方法。
【請求項１１】
前記データベース分析装置が、前記データパターン判定ステップにおける妥当性の判定において肯定結果が得られるまで、又は、否定結果が得られた場合には、前記所定の変換規則に従って前記データパターンをさらに変形できなくなるまで、前記データパターン再構成ステップを繰り返す
ことを特徴とする請求項９記載のデータベース分析方法。
【請求項１２】
前記データパターン再構成ステップにおいて、
前記データベース分析装置が、前記データパターンを変形する処理の後に、前記変形後のデータパターンに含まれるグループについて、各グループの出現頻度又はデータ構成に関する第２の判定基準に基づいて例外的なグループを決定する例外パターン決定ステップと、
前記データベース分析装置が、前記例外パターン決定ステップで決定した例外的なグループを例外パターンとして前記記憶部に格納し、前記変形後のデータパターンから該例外パターンを除外したデータパターンを作成する除外ステップとをさらに備え、
前記データベース分析装置は、前記除外ステップによって作成されたデータパターンを、再構成したデータパターンとして前記記憶部に格納する
ことを特徴とする請求項９記載のデータベース分析方法。
【請求項１３】
前記第２の判定基準には、前記データパターンに含まれる各グループについて、該グループの構成要素の値、又は該グループに含まれるデータの種類数が含まれる
ことを特徴とする請求項１２記載のデータベース分析方法。
【請求項１４】
前記データ分析装置は、データを出力する出力装置を有し、
前記データベース分析装置が、前記記憶部に最後に格納されたデータパターンを所定の形式に変換し、変換後のデータパターンを前記出力装置に出力させる第１のデータパターン出力ステップをさらに備える
ことを特徴とする請求項９記載のデータベース分析方法。
【請求項１５】
前記データ分析装置は、データを出力する出力装置を有し、
前記データ分析装置が、前記記憶部に最後に格納されたデータパターン及び前記記憶部に格納された全ての例外パターンを所定の形式に変換し、前記変換後のデータパターン及び前記変換後の例外パターンを前記出力装置に出力させる第２のデータパターン出力ステップをさらに備える
ことを特徴とする請求項１２記載のデータベース分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース分析装置及びデータベース分析方法に関し、データベースに保持されているデータ群を解析するデータベース分析装置及びデータベース分析方法に適用して好適なものである。
【背景技術】
【０００２】
近年、大量のデータを保持するデータベースの利用が活発になっているが、データベースの開発では、データベース内で割り当てる資源のサイズ等、データベースに関する様々なパラメータを調整する必要がある（データベースのチューニング）。データベースのチューニングを適切に行うためには、ダミーのテストデータによってデータベースに負荷を与えるテストを行い、データベースの状況を評価する方法が一般的である。
【０００３】
このようなテストデータを作成するときには、市販のテストデータ生成ツールを使用することができるが、データ値の範囲や出現頻度等について、生成されるデータの特性をユーザが設定する必要がある。そのためには、分析対象のデータベースにおいて、どのような特徴を有するデータが格納されているのかを確実に把握することが重要であった。
【０００４】
例えば特許文献１には、既存のデータベースに格納されているデータからダミーのテストデータを生成するテストデータ生成装置が記載されている。特許文献１に記載されたテストデータ生成装置は、実稼働している既存のデータベースに格納されているデータからデータの特徴を算出し、算出した特徴を活用して開発対象のデータベースに必要なテストデータを生成することによって、実情に即したダミーのテストデータを生成することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２５６０７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載されたテストデータ生成装置では、分析対象とするデータ群について、データのテーブルカラム間の特徴に注目してデータの特徴を取得しているが、テーブルカラム単位のデータの特徴を取得することはできないので、データカラム単位の特徴に基づいて、網羅性を担保する適量のテストデータを生成することが難しいという課題があった。
【０００７】
以下に、具体例をあげて説明する。例えば、あるデータベース内のデータ群において、データカラムのデータが「空値」、「半角文字列」、「全角文字列」の３種類のデータ群に分けられるとすると、上述の３種類の情報を扱うケースそれぞれについてテストデータを作成してテストを実施することにより、データベースに対するテストの網羅性が担保できると考えられる。しかしながら、特許文献１に記載されたテストデータ生成装置の場合には、テーブルカラム単位でデータの特徴を取得することができないので、テストデータ生成装置で生成した全てのテストデータによってテストを実施するか、テストデータ生成装置で生成した全てのテストデータからランダムに選択したデータによってテストを実施するか、という方法を選択せざるを得ない。このとき、全てのテストデータを用いる場合には、テストの網羅性を確保するために、本来必要とされるテスト量以上のテストデータが使用される可能性があり、テスト費用及びテスト時間効率の面で問題がある。また、ランダムに選択したデータを用いる場合には、網羅性を担保できないという問題がある。すなわち、特許文献１に記載されたテストデータ生成装置では、データカラム単位の特徴に基づいた適切なテストデータの生成が難しい。
【０００８】
本発明は以上の点を考慮してなされたもので、データベースを網羅的に分析し、当該データベースのデータ群をテーブルカラム単位の特徴で分類したデータパターンを提供し得るデータベース分析装置及びデータベース分析方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、分析対象のデータベースに格納されているデータ群を、該データ内の指定されたテーブルカラムに着目して分析するデータベース分析装置において、データを格納する記憶部と、前記分析対象のデータベースから取得されたデータ群を前記テーブルカラムのデータ値に基づいて整理し、分析対象データとして前記記憶部に格納するデータ整理部と、前記分析対象データにおけるデータ値の差異に基づいて前記データ値ごとにグループを作成し、前記グループをまとめたデータパターンを前記記憶部に格納するデータパターン作成処理部と、前記記憶部に格納されたデータパターンの妥当性を第１の判定基準に基づいて判定するデータパターン判定処理部と、前記データパターン判定処理部による妥当性の判定において否定結果が得られた場合に、前記データパターンを変形して再構成し、前記再構成したデータパターンを前記記憶部に格納するデータパターン変形処理部と、を備え、前記データパターン変形処理部は、前記データパターンに含まれる各グループの構成要素について、概念上類似している構成要素を同じ構成要素に変換するような所定の変換規則に従って前記各グループを変形して前記データパターンを再構成するデータベース分析装置が提供される。
【００１０】
また、かかる課題を解決するため本発明においては、分析対象のデータベースに格納されているデータ群を、該データ内の指定されたテーブルカラムに着目して分析するデータベース分析装置によるデータベース分析方法において、前記データ分析装置は、データを格納する記憶部を有し、前記データ分析装置が、前記分析対象のデータベースから取得されたデータ群を前記テーブルカラムのデータ値に基づいて整理し、分析対象データとして前記記憶部に格納するデータ整理ステップと、前記データ分析装置が、前記分析対象データにおけるデータ値の差異に基づいて前記データ値ごとにグループを作成し、前記グループをまとめたデータパターンを前記記憶部に格納するデータパターン作成ステップと、前記データ分析装置が、前記記憶部に格納されたデータパターンの妥当性を第１の判定基準に基づいて判定するデータパターン判定ステップと、前記データ分析装置が、前記データパターン判定処理部による妥当性の判定において否定結果が得られた場合に、前記データパターンに含まれる各グループの構成要素について、概念上類似している構成要素を同じ構成要素に変換するような所定の変換規則に従って前記各グループを変形して前記データパターンを再構成し、前記再構成したデータパターンを前記記憶部に格納するデータパターン再構成ステップと、を備えるデータベース分析方法が提供される。
【発明の効果】
【００１１】
本発明によれば、データベースを網羅的に分析し、当該データベースのデータ群をテーブルカラム単位の特徴で分類したデータパターンを提供し得る。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態におけるデータベース分析装置の構成例を示すブロック図である。
【図２】データベースのデータ群を分析するデータベース分析の処理手続を示すフローチャートである。
【図３】分析対象データを説明するための概略図である。
【図４】初期データパターンを作成する処理を説明するための概略図（その１）である。
【図５】初期データパターンを作成する処理を説明するための概略図（その２）である。
【図６】初期データパターンを作成する処理を説明するための概略図（その３）である。
【図７】データパターン評価基準の一例を示すテーブルである。
【図８】データパターンの妥当性を評価する処理を説明するための概略図である。
【図９】データパターン変形規則の一例を示すテーブルである。
【図１０】データパターンを変形する処理を説明するための概略図（その１）である。
【図１１】データパターンを変形する処理を説明するための概略図（その２）である。
【図１２】データパターンを変形する処理を説明するための概略図（その３）である。
【図１３】変形処理後のデータパターンのうちから再構成したデータパターンを決定する処理を説明するための概略図である。
【図１４】再構成されたデータパターンに対する妥当性の評価を説明するための概略図である。
【図１５】データパターンを出力する処理の一例を説明するための概略図である。
【図１６】第２の実施の形態によるデータベース分析装置の構成例を示すブロック図である。
【図１７】第２の実施の形態における初期データパターンの作成処理を説明するための概略図（その１）である。
【図１８】第２の実施の形態における初期データパターンの作成処理を説明するための概略図（その２）である。
【図１９】第２の実施の形態におけるデータパターン評価基準の一例を示すテーブルである。
【図２０】第２の実施の形態におけるデータパターンの妥当性評価を説明するための概略図である。
【図２１】第２の実施の形態におけるデータパターン変形規則の一例を示すテーブルである。
【図２２】第２の実施の形態におけるデータパターン除外規則に基づく例外パターンの判定処理を説明するための概要図である。
【図２３】第２の実施の形態における例外パターンの除外処理を説明するための概略図である。
【図２４】第２の実施の形態における最終的に再構成されたデータパターンに対して妥当性を評価する処理を説明するための概要図である。
【図２５】第２の実施の形態におけるデータパターンを出力する処理の一例を説明するための概略図である。
【発明を実施するための形態】
【００１３】
（１）第１の実施の形態
第１の実施の形態によるデータベース分析装置は、指定されたテーブルカラムに着目してデータベースの分析を行って当該データベースのデータ群を分類し、当該データベースのデータ群をテーブルカラム単位の特徴で分類したデータパターンを作成及び出力することを特徴としている。
【００１４】
（１−１）データベース分析装置の構成
まず、本実施の形態によるデータベース分析装置の構成について説明する。図１は、第１の実施の形態によるデータベース分析装置の構成例を示すブロック図である。データベース分析装置１０は、分析対象となるデータが格納されたデータベース３０にネットワーク３１を介して接続し、例えば一般的な構成を有するコンピュータを用いることができる。図１に示すように、データベース分析装置１０は、ネットワークインタフェース（Ｉ／Ｆ）１００、ＣＰＵ（Central Processing Unit）１０１、メモリ１０２、入力装置１０３、出力装置１０４、及び外部記憶装置１０５を備えて構成される。
【００１５】
ネットワークＩ／Ｆ１００は、ネットワーク３１を介してデータベース分析装置１０の外部と通信可能に接続し、データベース分析装置１０の外部との間でデータの入出力及び信号の送受信を行うためのインタフェースである。例えば、データベース３０に格納されているデータは、ネットワーク３１及びネットワークＩ／Ｆ１００を経由してデータベース分析装置１０に入力される。
【００１６】
ＣＰＵ１０１は、データベース分析装置１０における全体的な制御を司る。例えば、外部記憶装置１０５に保持される処理プログラム１１０を実行する場合には、ＣＰＵ１０１が、外部記憶装置１０５から読み出した処理プログラム１１０をメモリ１０２に読み込み、メモリ１０２に読み込んだ処理プログラム１１０を実行する。メモリ１０２は、データやプログラムを一時的に格納する記憶デバイスであり、例えば、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static RAM）を用いることができる。
【００１７】
入力装置１０３は、キーボード又はマウス等の入力デバイスであり、ユーザによる入力操作に応じた信号をＣＰＵ１０１に送信する。例えば、ユーザからの所定の入力操作が入力装置１０３に行われると、当該入力操作に応じた信号を受信したＣＰＵ１０１による制御に従って、データベース３０に保持されているデータが、ネットワーク３１及び入力Ｉ／Ｆ１００を介してデータベース分析装置１０に入力され、外部記憶装置１０５に書き込まれる。
【００１８】
出力装置１０４は、ディスプレイ又はプリンタ等の出力デバイスであり、ＣＰＵ１０１による制御に従って、データや信号を出力する。例えば、出力装置１０４は、後述するデータベースの分析処理の後に、ＣＰＵ１０１による制御に従って、データベースの分析結果を示す画像をディスプレイ上に表示したり、データベースの分析結果を示すテキストデータをプリンタから出力したりする。また、データベースの分析結果をデータベース分析装置１０に接続された外部機器に出力する場合には、ＣＰＵ１０１は、ネットワークＩ／Ｆ１００を介して、当該外部機器にデータベースの分析結果を出力させるようにすればよい。
【００１９】
外部記憶装置１０５は、内部にデータ及びプログラムを格納する記憶デバイスであり、例えばＨＤＤ（Hard Disk Drive）やＣＤ−Ｒ（Compact Disc Recordable）等を用いることができる。なお、外部記憶装置１０５の代わりに、例えばＵＳＢ（Universal Serial Bus）メモリのように、データベース分析装置１０に接続される補助記憶装置が用いられてもよい。図１に示すように、外部記憶装置１０５は、データベースの分析処理を行うための処理プログラム１１０を保持する。また、外部記憶装置１０５は、データ記憶部１０６、データパターン判定基準記憶部１０７、データパターン記憶部１０８、及びデータパターン変形規則記憶部１０９の各記憶部を有している。
【００２０】
データ記憶部１０６は、外部からネットワークＩ／Ｆ１００を介して入力されるデータを格納する。例えば図１では、データベース３０のデータがデータ記憶部１０６に格納される。また、データパターン記憶部１０８は、分析対象のデータベースに保持されるデータ群のグループ分けする方法を示す情報であるデータパターンを格納する。処理プログラム１１０が実行されることにより、データ記憶部１０６に格納されたデータ群に対するデータパターンが作成されてデータパターン記憶部１０８に格納される。
【００２１】
また、データパターン判定基準記憶部１０７は、データパターン判定基準を示すデータを予め保持し、データパターン変形規則記憶部１０９は、データパターン変形規則を示すデータを予め保持する。データパターン、データパターン判定基準及びデータパターン変形規則の詳細については、後述するデータベース分析処理の中で説明する。
【００２２】
処理プログラム１１０は、ＣＰＵ１０１がメモリ１０２に読み込んで実行することにより、データパターン作成処理部１１１、データパターン判定処理部１１２、データパターン数値化処理部１１３、データパターン変形処理部１１４、データパターン視覚化処理部１１５、及びデータ整理部１１６を実現するプログラムである。
【００２３】
データパターン作成処理部１１１は、データ記憶部１０６に格納されているデータを参照し、データの差異に基づいてグループを作成することによって初期データパターンを作成し、データパターン記憶部１０８に書き込む。初期データパターンの詳細については、図４〜図６を参照しながら後述する。
【００２４】
データパターン判定処理部１１２は、データパターン記憶部１０８に格納されたデータパターンについて、データパターン数値化処理部１１３を用いて点数付けし、データパターン判定基準記憶部１０７から読み出したデータパターン判定基準に基づいてデータパターンの適切さが必要な水準に達しているかを判定する。データパターン数値化処理部１１３は、データパターンの特徴に応じて点数付けを行うことにより、データパターンを数値化する処理を行う。
【００２５】
データパターン変形処理部１１４は、データパターン変形規則記憶部１０９から読み出したデータパターン変形規則に基づいて、データパターン記憶部１０８から読み出したデータパターンを変形する処理を行う。さらにデータパターン変形処理部１１４は、変形したデータパターンを、データパターン数値化処理部１１３を用いて点数付けし、最も点数が高いデータパターンをデータパターン記憶部１０８に書き込む。
【００２６】
データパターン視覚化処理部１１５は、データパターン記憶部１０８に格納されたデータパターンを読み出し、ユーザが視覚的に容易に認識可能な所定の形式に変換して出力装置１０４に出力する。データパターンを変換する所定の形式とは、例えば、画像形式、表形式、グラフ形式、テキストデータ形式等である。なお、データパターン視覚化処理部１１５は、データパターンをコンピュータが読み取り可能な所定の形式に変換して出力するようにしてもよい。この場合、所定の形式とは、例えばテキストデータ形式やバイナリデータ形式等である。
【００２７】
データ整理部１１６は、データベース分析装置１０に入力されるデータに対して所定の規則に従った整理を行い、分析対象データとしてデータ記憶部１０６に格納する処理を行う。なお、データ整理部１１６によるデータの整理は、処理プログラム１１０内の他の処理部１１１〜１１５による処理に優先して実行される。
【００２８】
データベース分析装置１０は、上述した各処理部１１１〜１１６の動作によって、データベース３０に保持されるデータ群に対して、同一のテーブルカラム内のデータ値に着目して特徴を分析し、特徴に応じて当該データ群をグループ分けするためのデータパターンを作成し、最終的に決定されたデータパターンに基づいてデータ群を分類することによって、データベースのデータ群をテーブルカラム単位で分析する。
【００２９】
（１−２）データベース分析処理
図２は、データベースのデータ群を分析するデータベース分析の処理手続を示すフローチャートである。図２を参照しながら、データベース分析装置１０によるデータベース分析処理の概要を説明し、詳細については、必要に応じて他図を参照しながら説明する。
【００３０】
（１−２−１）分析対象データの入力
まず、入力装置１０３において、データベース分析の開始を指示する所定の入力操作がユーザによって行われると、データベース３０に格納されているデータ群のコピーデータが、ネットワーク３１及びネットワークＩ／Ｆ１００を介してデータベース分析装置１０に入力される（図２のステップＳ１０１）。データベース分析の開始を指示する所定の入力操作時には、分析対象とするデータ群と、分析時に注目するテーブルカラム（分析対象カラム）とが指定される。この分析対象カラムは、分析対象とするデータ群においてテーブルデータを構成しているカラムの１つであり、例えば、後述する図３の「商品」テーブル３０１においては、「商品ＩＤ」や「商品名」がカラムに相当する。
【００３１】
なお、データベース３０からデータベース分析装置１０に入力されるデータは、データベース３０に格納されているデータ群の全てのコピーデータであってもよいが、処理速度の向上や格納領域の使用効率を考慮すると、データベース３０に格納されているデータ群のうち分析対象として指定されたデータ群のコピーデータであることが好ましい。以後では、分析対象として指定されたデータ群のコピーデータがデータベース分析装置１０に入力されたとして説明を行う。
【００３２】
そして、ステップＳ１０１では、データベース３０からデータベース分析装置１０に入力されたデータに対して、データ整理部１１６が、指定された分析対象カラムに注目して当該データを整理し、整理結果のデータを分析対象データとしてデータ記憶部１０６に格納する。
【００３３】
図３は、分析対象データを説明するための概略図である。図３に示す「商品」テーブル３０１はデータベース３０に格納されているデータ群の一部であって、データベース分析の開始を指示する所定の入力操作時に分析対象として指定されたデータ群の一例である。「商品」テーブル３０１は、「商品」に関連する情報を収集したテーブル形式のデータであり、商品名が記載される商品名カラムや、商品名に対応して予め付与された商品ＩＤが記載される商品ＩＤカラム３０２等から構成される。
【００３４】
ここで、データベース分析の開始を指示する所定の入力操作時に、商品ＩＤ３０２が分析対象カラムに指定されたとする。このとき、データ整理部１１６は、商品ＩＤカラム３０２に含まれるデータを整理し、分析対象データ３０３としてデータ記憶部１０６に格納する。データ整理部１１６は、「商品」テーブル３０１に格納された商品ＩＤカラム３０２内の複数のデータについて、同じデータ値の出現回数をカウントする。そして、データ整理部１１６は、商品ＩＤのデータ値３０４と該データ値３０４の出現回数３０５とを組（ペア）にして、分析対象データ３０３を作成する。図３に示す分析対象データ３０３において、ペア３０６は、「１２３４５６」というデータ値３０４を示す商品ＩＤが「８」個存在することを示し、ペア３０７は、「１２３５６８」というデータ値３０４を示す商品ＩＤが「２」個存在することを示している。
【００３５】
なお、データ整理部１１６は、分析対象データ３０３の作成時に、データ値３０４と出現回数３０５とのペアをまとめるだけでなく、さらに、商品ＩＤのデータ値３０４又は出現回数３０５について昇順に整列する処理を行ったり、データパターンの算出のために有効な整列処理等を行ったりしてもよい。
【００３６】
また、第１の実施の形態では、一例として、１つのカラムに含まれるデータが全て同じ長さの文字列であるとして説明を行うが、カラムに含まれるデータの文字列長は同じでなくてもよい。異なる長さの文字列からなるデータがカラムに含まれる場合には、データ整理部１１６が文字列長ごとにデータ群を分ける処理を予め行ってから、後述の処理を行うようにすればよい。
【００３７】
（１−２−２）初期データパターンの作成
ステップＳ１０１で分析対象データ３０３がデータ記憶部１０６に入力されると、データパターン作成処理部１１１が、データ記憶部１０６から分析対象データ３０３を参照する。そして、データパターン作成処理部１１１は、分析対象データ３０３からデータの差異に基づいてグループを作成し、作成したグループをまとめて最初のデータパターン（初期データパターン）を作成し、作成した初期データパターンをデータパターン記憶部１０８に書き込む（図２のステップＳ１０２）。ここで、データの差異とは、分析対象データ３０３として整理されたカラムの文字列（データ値３０４に相当）の差異に相当し、データパターン作成処理部１１１は、カラムの文字列をデータ値ごとにツリー構造にして初期データパターンを作成する。
【００３８】
図４〜図６は、初期データパターンを作成する処理を説明するための概略図である。まず、データパターン作成処理部１１１は、図４に示すように、ツリーの根となるノード４００を作成する。さらに、データパターン作成処理部１１１は、データ記憶部１０６に格納されている分析対象データ３０３を参照して１つのペア（例えばペア３０６）を選択し、選択したペア３０６に対応するツリーを作成する。このツリーは、ノード４０１〜４０７によって構成され、データ値３０４の先頭の文字（ペア３０６の場合「１」）を値に持つノード４０１を根とし、データ値３０４のｋ番目（ｋは２以上の自然数）の文字を値に持つノード４０２〜４０６が、（ｋ−１）番目の文字を値に持つノード４０１〜４０５の子として保持されるように構成され、かつ、データ値３０４の末尾の文字（ペア３０６の場合「６」）を値に持つノード４０６の子として、出現回数３０５（ペア３０６の場合「８」）を値に持つノード４０７が保持されるように構成される。次に、データパターン作成処理部１１１は、ノード４００にノード４０１を子として追加することによってツリーを合成し、ツリー４１０を作成する。従って図４に示すツリー４１０は、ペア３０６に対応して作成されたツリーである。
【００３９】
次に、図５に示すように、データパターン作成処理部１１１は、分析対象データ３０３のうち、まだ選択されていないペア（例えばペア３０７）を選択し、選択したペア３０７に対応するツリー５００を図４と同様の作成方法によって作成する。そして、データパターン作成処理部１１１は、ノード４００を根とする作成済みのツリー４１０に対して、ノード４００の子としてツリー５００の根であるノード５０１を追加し、ツリー４１０にツリー５００を合成する。ツリー４１０にツリー５００を合成する際、データパターン作成処理部１１１は、ツリーの同じ深さにあり、かつ、同じ文字を値に持つノードは、同一のノードとなるように合成する。例えば図５では、ツリー５００におけるノード５０１，５０２，５０３と、ツリー４１０におけるノード４０１，４０２，４０３とが、それぞれ同じ深さにあって同じ文字を値に持つので、合成後のツリー５１０では同一のノード（ノード５１１〜５１３）となる。
【００４０】
次いで、データパターン作成処理部１１１は、データ記憶部１０６に保持されている分析対象データ３０３の全てのペアについて、図４〜図５に示したような方法でツリーを作成し、ノード４００を根とするツリーに合成する処理を実行する。図６には、１０組のペアからなる分析対象データ６００と、分析対象データ６００に基づいて作成されるツリー６０１が示されている。ツリー６０１は、分析対象データ６００の全てのペアに対応して作成される１０本のツリーを、ノード４００を根として合成したツリーである。データパターン作成処理部１１１は、ステップＳ１０２の最後に、ツリー６０１を分析対象データ６００に基づいた初期データパターンとしてデータパターン記憶部１０８に書き込む。
【００４１】
（１−２−３）データパターンの妥当性評価
ステップＳ１０２で初期データパターン（ツリー６０１）がデータパターン記憶部１０８に書き込まれると、データパターン判定処理部１１２が、データパターン記憶部１０８に保持されているデータパターンの妥当性を評価する（図２のステップＳ１０３）。なお、データパーン評価部１１２は、ステップＳ１０２に続いてステップＳ１０３の処理が行われる場合には、初期データパターンに対して妥当性を評価するが、ステップＳ１０３の処理がステップＳ１０５〜Ｓ１０６の処理（後述する）に続いて行われる場合には、直前のステップＳ１０５〜Ｓ１０６で再構成されたデータパターンに対して妥当性を評価する。
【００４２】
ステップＳ１０３では、まず、データパターン判定処理部１１２が、データパターン記憶部１０８に保持されているデータパターンを読み出し、データパターン数値化処理部１１３を用いて点数付けする。データパターン数値化処理部１１３は、データパターンの特徴を数値化するための所定の処理を行い、例えば、データパターンがツリー６０１の場合に、ツリー６０１を構成する葉の数を計数することによってグループ数を算出する。図６に示すツリー６０１では、葉の数は１０であるので、データパターンは、グループ数１０と点数付けされる。
【００４３】
データパターン判定処理部１１２は、データパターン数値化処理部１１３を用いて点数付けされたデータパターンに対し、データパターン評価基準記憶部１０７に保持された所定の基準（データパターン評価基準）に基づいて、当該データパターンが適切な水準を満足しているかという妥当性を判定する。
【００４４】
図７は、データパターン評価基準の一例を示すテーブルである。データパターン評価基準７００は、予め規定されてデータパターン評価記憶部１０７に格納される評価基準用のテーブルデータであって、評価基準の項目が記載される評価項目欄７０１と、当該評価基準の項目値が記載される項目値欄７０２とを有して構成される。図７に示すデータパターン評価基準７００では、評価基準として「グループ数の上限を５までとする」ことが設定されている。なお、データパターン評価基準は、グループ数の上限数に限定されるものではなく、グループ数の範囲がより細かく規定された基準であってもよいし、他にも例えば、出現回数に基づいて規定された基準等であってもよい。何れの場合であっても、データパターン数値化処理部１１３は、データパターン判定処理部１１２がデータパターン評価基準に基づいてデータパターンの妥当性を判定できるように、当該データパターンに対する点数付けを行うように設定される。
【００４５】
図８は、データパターンの妥当性を評価する処理（妥当性評価）を説明するための概略図である。図８には、データパターン記憶部１０８から読み出されたデータパターンを示すツリー６０１と、データパターン評価基準記憶部１０７に保持されたデータパターン評価基準７００とが示されている。このとき、データパターン判定処理部１１２は、データパターン数値化処理部１１３を用いて算出されたグループ数８００と、データパターン評価基準７００の項目値欄７０２で規定されたグループ数の上限「５」とを比較する（図２のステップＳ１０４）。ステップＳ１０４では、グループ数８００はツリー６０１におけるグループ数、すなわち「１０」であるから、「５」以下という条件を満たさず、データパターン判定処理部１１２は、当該データパターンが妥当でないと判定し、ステップＳ１０５の処理に移行する。ステップＳ１０４で妥当と判定した場合には、ステップＳ１０７の処理に移行する。
【００４６】
（１−２−４）データパターンの再構成
図２のステップＳ１０５では、データパターン変形処理部１１４が、データパターン変形規則記憶部１０９から読み出したデータパターン変形規則を参照しながら、データパターン記憶部１０８から読み出したデータパターンを変形する。さらに、ステップＳ１０５では、データパターン変形処理部１１４は、変形処理後のデータパターンに対して、データパターン数値化処理部１１３を用いて所定の処理による点数付けを行い、点数付けの結果に基づいて、再構成したデータパターンとするデータパターンを決定し、データパターン記憶部１０８に書き込む。
【００４７】
図９は、データパターン変形規則の一例を示すテーブルである。データパターン変形規則は、データパターンが保持するデータ分類を変更してデータパターンを変形する処理のために、データパターンの情報（データパターンを構成するノードのノード値）を書き換える規則に関する情報であって、事前にデータパターン変形規則記憶部１０９に格納されている。図９に示すデータパターン変形規則９００は、書き換えの対象となる情報（ノード値）が記載される変形前欄９０１と、当該情報に対する書き換え後の情報（ノード値）が記載される変形後欄９０２とを組にして構成される。例えば、データパターン変形規則９００によれば、「ａ」という情報は［ａ−ｚ］に書き換えられ、［０−９］という情報は「￥ｗ」に書き換えられる。なお、変形前欄９０１に記載されていない情報は、書き換えを行わなくてよい。
【００４８】
以下では、データパターン変形処理部１１４が、図６に示したデータパターン（ツリー６０１）に対して、図９に示したデータパターン変形規則９００を用いて変形する処理について、図１０〜図１２を参照しながら説明する。
【００４９】
図１０〜図１２は、データパターンを変形する処理を説明するための概略図である。まず、図１０に示すように、データパターン変形処理部１１４は、データパターン記憶部１０８からデータパターン（ツリー６０１）を読み出し、ツリー６０１を構成するノードのうち、複数の子を有するノードを探索する。図１０のツリー６０１において、複数の子を有するノードは、ノード１０００〜１００６である。例えば、ノード１００１は、ノード値「Ｃ」のノードとノード値「Ｄ」のノードとを子に有している。次に、データ変形処理部１１４は、探索されたノード１０００〜１００６のそれぞれについて、当該ノードの子をデータパターン変形規則９００に基づいて書き換える処理を行い、書き換え後のツリー１００７〜１０１３を作成する。なお、ツリー６０１において、複数の子を有するノードが存在しない場合には、データパターン変形処理部１１４は、図２のステップＳ１０６でデータパターンの変形が不可能と判断して（ＮＯ）、ステップＳ１０７の処理に移行する。
【００５０】
図１１〜図１２では、複数の子を持つノードの子を書き換える処理の一例として、データパターン変形処理部１１４が、データパターン変形規則９００に基づいて、図１０のノード１００２の子を書き換えていき、変形したデータパターンの最終形としてツリー１００９を作成する処理について説明する。
【００５１】
まず、データパターン変形処理部１１４は、図１１に示すように、データパターン６０１をコピーしてデータパターン１１００を作成する。このとき、ノード１００２の全ての子、すなわち、ノード１１０１，１１０２について、データパターン変形規則９００の書き換え規則に従って、ノード値の書き換えを行う。すなわち、データパターン変形処理部１１４は、ノード値「４」を持つノード１１０１をノード値［０−９］を持つノード１１０３に、ノード値「５」を持つノード１１０２をノード値［０−９］を持つノード１１０４に書き換える。
【００５２】
次に、データパターン変形処理部１１４は、ツリー１１００に対して、同じ深さで同じノード値を持ち、共にノード１００２の子であるノード１１０３及びノード１１０４を１つのノード１２００にまとめる。このとき、ツリー１１００は、図１２に示すツリー１２０１に変形される。さらに、データパターン変形処理部１１４は、合成されたノード１２００の子にあたるノード１２０２〜１２０５に注目し、同じノード値「５」を持つノード１２０２及びノード１２０４を１つのノード１２０６にまとめ、同じノード値「８」を持つノード１２０３及びノード１２０５を１つのノード１２０７にまとめる。このとき、ツリー１２０１は、ツリー１２０８に変形される。そしてさらに、データパターン変形処理部１１４は、合成されたノード１２０６，１２０７のそれぞれについても同様に、同じノード値を持つ子ノードを１つにまとめる。具体的には、ノード１２０９及びノード１２０１０をノード１２１３に合成し、ノード１２１１及びノード１２１２をノード１２１４に合成する。その結果、ツリー１２０８はツリー１２１５に変形される。
【００５３】
ここで、ツリー１２１５は、データ値３０４の文字列の末尾を示すノードまで変形処理が完了した状態であるが、ノード１２１３やノード１２１４には、子のノードとして出現回数３０５を示す複数のノードが存在している。このような出現回数３０５を示すノードについては、データパターン変形処理部１１４は、データ値３０４の文字列を示すノードのように同じノード値を持つノードを１つにまとめるのではなく、当該ノードが持つノード値を加算して１つにまとめる。具体的には、データパターン変形処理部１１４は、ノード１２１３の子であるノード１２１６，１２１７について、ノード値「８」を持つノード１２１６とノード値「１」を持つノード１２１７とをまとめて、ノード値「９」を持つノード１２２０とする。同様に、データパターン変形処理部１１４は、ノード１２１４の子であるノード１２１８，１２１９について、ノード値「６」を持つノード１２１８とノード値「２」を持つノード１２１９とをまとめて、ノード値「８」を持つノード１２２１とする。この結果、ツリー１２１５はツリー１００９となり、ノード１００２の子を書き換えて変形した最終形のデータパターンが作成される。
【００５４】
データパターン変形処理部１１４は、上述したノード１００２に対する処理と同様の変形処理を、ツリー６０１において複数の子を有するノード１０００〜１００６に対してそれぞれ行うことによって、変形処理後のデータパターンを示すツリー１００７〜１０１３を作成することができる。
【００５５】
図１３は、変形処理後のデータパターンのうちから再構成したデータパターンを決定する処理を説明するための概略図である。まず、データパターン変形処理部１１４は、変形処理後のデータパターンであるツリー１００７〜１０１３について、データパターン数値化処理部１１３を用いてそれぞれのツリーの葉の数をカウントし、グループ数を算出する。図１３では、ツリー１００７〜１０１３のそれぞれについて算出したグループ数１３００〜１３０６が示されている。次に、データパターン変形処理部１１４は、グループ数１３００〜１３０６のうち、最もグループ数が少ないデータパターンを１つ選択する。ここでは、「８」を有するグループ数１３０２に対応するツリー１００９を選択する。そして、データパターン変形処理部１１４は、選択したツリー１００９を、再構成されたデータパターンに決定し、データパターン記憶部１０８に書き込む。なお、図１３におけるツリー１００９及びツリー１０１２のように、最も少ないグループ数に対応するデータパターンが複数ある場合には、データパターン変形処理部１１４は、当該複数のデータパターンのうち何れか１つを任意に選択して再構成されたデータパターンに決定する。
【００５６】
次に、ステップＳ１０６では、データパターン変形処理部１１４が、再構成されたデータパターンが変形可能であるか判定する。具体的には例えば、再構成されたデータパターンを示すツリー１４００において、複数の子を持つノードが存在する場合には、さらなる変形が可能と判定してステップＳ１０３の処理に戻る。また、再構成されたデータパターンを示すツリー１４００において、複数の子を持つノードが存在しない場合には、これ以上の変形は不可能と判定して、ステップＳ１０７の処理に移行する。また、ステップＳ１０６において、再構成されたデータパターン（ツリー１４００）が、再構成される前のデータパターン（ツリー６００）と完全に同一である場合には、データパターン変形処理部１１４はデータパターンの変形が不可能と判定し、ステップＳ１０７の処理に移行する。
【００５７】
（１−２−５）再構成されたデータパターンの妥当性評価
図２のステップＳ１０６処理後のステップＳ１０３では、データパターン判定処理部１１２が、再構成されたデータパターンに対してデータパターンの妥当性を評価する。
【００５８】
図１４は、再構成されたデータパターンに対する妥当性の評価を説明するための概略図である。再構成されたデータパターンに対する妥当性の評価は、前述した初期データパターンに対する妥当性の評価における処理と同様に、データパターン判定処理部１１２によって行われる。すなわち、データパターン判定処理部１１２は、データパターン記憶部１０８に保持されている再構成されたデータパターンを読み出し、データパターン数値化処理部１１３を用いて点数付けし、点数付けの結果と、データパターン評価基準記憶部１０７に保持されたデータパターン評価基準７００とに基づいて、再構成されたデータパターンが適切な水準を満足しているかという妥当性を判定する。
【００５９】
図１４では、再構成されたデータパターンを示すツリー１４００について、グループ数１４０１として「５」が点数付けされる。グループ数１４０１は、データパターン評価基準７００に示される「グループ数上限が５以下」という条件を満たすので、データパターン判定処理部１１２は、ツリー１４００が妥当であると判定し、ステップＳ１０７の処理に移行する。
【００６０】
（１−２−６）データパターンの出力
上述してきたように、データパターンは、図２のステップＳ１０３においてデータパターン評価基準７００を満足できずに否定判定が得られた場合には、ステップＳ１０４でデータパターンが再構成され、再構成されたデータパターンが変形可能であれば、再度ステップＳ１０３において妥当性の評価が行われる処理を繰り返す。そして、何れかの段階における妥当性の評価で肯定判定が得られるか、妥当性の評価で否定判定が得られてデータパターンを再構成したがそれ以上データパターンを変形できない場合（ステップＳ１０６のＮＯ）には、ステップＳ１０７でデータパターンの出力が行われる。
【００６１】
ステップＳ１０７では、データパターン視覚化処理部１１５が、データパターン記憶部１０８に最後に格納されたデータパターンを読み出し、所定の形式に変換して出力装置１０４に出力する。なお、ステップＳ１０７におけるデータパターンの出力は、ステップＳ１０１でユーザから入力装置１０３に対してデータベース分析の開始が指示されるときに、出力方法（出力先及び出力形式）が指定され、データベース分析処理の終了後に自動的に、当該出力方法に応じて出力装置１０４に出力されるようにしてもよいし、データベース分析処理の終了後に、ユーザから入力装置１０３に対してデータパターンの出力を指示する所定の入力操作が行われたことを契機として実行されるようにしてもよい。また、データパターンの出力先には、ディスプレイ、プリンタ、又はファイル等の一般的な出力先を選択することができ、データパターンの出力形式は、文字やグラフィックによる画像表示や、テキストデータ又はバイナリデータ等の一般的な出力形式を選択することができる。
【００６２】
図１５は、データパターンを出力する処理の一例を説明するための概略図である。図１５では、データパターンを出力テーブル１５１０にまとめて出力する処理を示している。出力テーブル１５１０は、データパターンが保持するツリーにおけるパス構成が記載されるグループ１５１１と、当該パス構成で表されるデータの出現回数が記載される出現回数１５１２とが組（ペア）になって構成される。
【００６３】
データパターン視覚化処理部１１５は、まず、データパターン記憶部１０８から、最後に格納されたデータパターンを読み出す。従って、初期データパターンが変形されて再構成されたデータパターンが格納されている場合には、データパターン記憶部１０８から再構成されたデータパターンが読み出される。次に、データパターン視覚化処理部１１５は、読み出したデータパターンが保持するツリー１４００から、根からそれぞれの葉までのパス１５００〜１５０４を取得する。その後、データパターン視覚化処理部１１５は、取得したパス１５００〜１５０４に含まれる葉以外のノードの値を、出力テーブル１５１０のグループ１５１１の値とし、葉のノード値を当該グループ１５１０とペアになる出現回数１５１２の値とする。図１５に示す出力テーブル１５１０のグループ１５１１では、文字列の先頭に「＾」を付し、文字列の終端に「＄」を付している。この結果、例えば、出力テーブル１５１０のペア１５１３には、「５Ｆ３Ｃ２［Ａ−Ｚ］」という文字列で表されるグループが「４」回出現したことが示され、ペア１５１４には、「５Ｆ３Ｄ４３」という文字列で表されるグループが「１」回出現したことが示される。そして、データパターン視覚化処理部１１５は、ユーザに指定された出力方式に従って、出力テーブル１５１０を出力装置１０４に出力する。
【００６４】
（１−３）本実施の形態による効果
このようなデータベース分析装置１０によれば、データベースが保持するデータ群を分析する場合に、ユーザによって指定されたテーブルカラムに着目し、同一カラム内のデータ値に基づいて当該データ群の特徴を分析し、当該データ群の特徴に基づいたグループ分け（分類）を行うことができる。そして、このようなデータベース分析装置１０は、分析対象のデータ群を同一カラム内のデータ値に着目してグループ分けする方法をデータパターンによって示し、出力することができるので、データベースを網羅的に分析し、当該データベースのデータ群をテーブルカラム単位の特徴で分類したデータパターンを自動的に提供し得る。かくして、ユーザが分析対象のデータベースに対するテストデータを作成する場合に当該データパターンに基づいてテストデータを作成することによって、当該データベース内のデータ群に対する網羅性を担保しながら、データの特徴に基づいた効率的なテストデータの作成に寄与する効果が期待できる。
【００６５】
また、このようなデータベース分析装置１０では、ユーザによって指定された様々な出力方法（出力先及び出力形式）に従ってデータパターンを出力できるので、例えば視覚的に認識しやすい出力やデータ処理を行いやすい出力等、ユーザの要求に応えて柔軟な出力方法によって分析対象のデータベースの特徴を示すデータパターンを提供することができる。より具体的には、例えば、データパターンをテキストデータやバイナリデータで出力し、テストデータを生成するツールに対する入力データとして、出力データをそのまま利用することが可能となる。
【００６６】
また、このようなデータベース分析装置１０では、データベース分析の開始を指示する際に、特徴抽出のために着目するデータ項目（テーブルカラム、カラム）が指定されればよいので、分析対象とするデータ群の具体的なデータ値やその特徴についてユーザに事前知識の把握を要求しない。従って、このようなデータベース分析装置１０では、分析対象とするデータベースのデータ群に関するユーザの事前知識を必要とせずに、当該データベースの特徴を解析し、データパターンとしてユーザに提供することができる。
【００６７】
また、このようなデータベース分析装置１０によれば、データパターンを出力する場合に、図１５の出力テーブル１５１０のグループ１５１１に示したように、出力内容を抽象化（記号化）することが可能であり、抽象化した出力を行うことにより、データベースのデータ内容を部外者には分かりにくくする効果が期待できる。
【００６８】
（２）第２の実施の形態
第２の実施の形態によるデータベース分析装置は、第１の実施の形態によるデータベース分析装置１０のように指定されたテーブルカラムに着目してデータベースの分析を行って当該データベースのデータ群の特徴を表すデータパターンを作成する際に、データ群を分類したパターングループのうち、出現頻度が低い又はデータ構成（文字パターン）が極端に異なる等の例外的な特徴を有するパターングループについて、例外パターンとしてデータパターンから除外し、データ群の特徴をより集約したデータパターンを作成することを特徴としている。
【００６９】
（２−１）データベース分析装置の構成
図１６は、第２の実施の形態によるデータベース分析装置の構成例を示すブロック図である。図１６に示すように、データベース分析装置２０は、外部記憶装置２０１内にデータパターン例外記憶部２０２が新たに追加された点以外は、図１に示したデータベース分析装置１０と同様の構成を備え、共通の構成要素については図１と同じ番号を付して説明を省略する。また、処理プログラム２０は、データパターン変形処理部１１４とは異なる処理を行うデータパターン変形処理部２１４、及びデータパターン視覚化処理部１１５とは異なる処理を行うデータパターン視覚化処理部２１５を有する。データパターン変形処理部２１４及びデータパターン視覚化処理部２１５による処理については、図２１〜図２３並びに図２５を参照しながら後述する。
【００７０】
（２−２）データベース分析処理
以下では、第２の実施の形態によるデータベース分析装置２０がデータベースのデータ群を分析する処理を、図２を参照しながら説明する。データベース分析装置２０によるデータベース分析処理は、データベース分析装置１０による処理と同様に、図２に示したフローチャートに従って進められるので、データベース分析装置１０と同様の処理を行う箇所については、詳細な説明を省略する。
【００７１】
（２−２−１）分析対象データの入力
まず、図２のステップＳ１０１では、入力装置１０３においてデータベース分析の開始を指示する所定の入力操作が行われたことを契機として、データベース３０のデータ群がデータベース分析装置２０に入力され、データ整理部１１６が該データ群を整理して分析対象カラム３０３をデータ記憶部１０６に書き込む。
【００７２】
（２−２−２）初期データパターンの作成
次に、ステップＳ１０２では、データパターン作成処理部１１１が、データ記憶部１０６に格納された分析対象データ３０３に基づいて、初期データパターンを作成し、データパターン記憶部１０８に書き込む。
【００７３】
図１７及び図１８は、第２の実施の形態における初期データパターンの作成処理を説明するための概略図である。図１７には、データ作成処理部１１１が、データ記憶部１０６に格納されている分析対象データ３０３を参照して、分析対象データ３０３のペア３０６に対応するツリー１７１０を作成する様子が示されている。ツリー１７１０を作成する基本的な処理手順は、図４に示した処理と同様なので説明を省略する。ただし、ツリー１７１０の葉ノード１７０１は、出現回数３０５の値ではなく、葉ノード１７０１に対応するパス（ノード４０１〜４０６）に含まれるデータの種類数を値に持つ。すなわち、図１７に示す段階では、ノード４０１〜４０６で示されるパスには、ペア３０６に示される１種類のデータ（データ値「１２３４５６」）が含まれるだけなので、葉ノード１７０１はノード値「１」を持つ。さらに、データ作成処理部１１１は、分析対象データ３０３の全てのペアについて、図１７のツリー１７０１を作成する処理と同様の処理を行ってツリーを作成し、作成した複数のツリーを、ノード１７００を根とする１つのツリーに合成する。
【００７４】
図１８には、データ作成処理部１１１が、分析対象データ６００の全てのペアについてツリーを作成し、１本のツリーに合成したツリー１８００が示されている。ツリー１８００におけるそれぞれの葉ノードは、データ種類数「１」を値に持つ。そして、データ作成処理部１１１は、ツリー１８００を分析対象データ６００に基づいた初期データパターンとしてデータパターン記憶部１０８に書き込む。
【００７５】
（２−２−３）データパターンの妥当性評価
次に、ステップＳ１０３〜Ｓ１０４では、データパターン判定処理部１１２が、データパターン記憶部１０８に保持されているデータパターン（ツリー１８００）を読み出し、データパターン数値化処理部１１３を用いて点数付けし、点数付けの結果と、データパターン評価基準記憶部１０７に保持されたデータパターン評価基準１９００とに基づいて、当該データパターンが適切な水準を満足しているかという妥当性を判定する。
【００７６】
図１９は、第２の実施の形態におけるデータパターン評価基準の一例を示すテーブルである。図１９に示すデータパターン評価基準１９００では、評価基準の項目が記載される評価項目欄１９０１に「グループ数上限」が記載され、当該評価基準の項目値が記載される項目値欄１９０２に「３」が記載されていることから、「グループ数の上限を３までとする」ことが設定されている。なお、第２の実施の形態におけるデータパターン評価基準は、図１９に示すようにグループ数の上限数に限定されるものではなく、グループ数の範囲がより細かく規定された基準であってもよいし、他にも例えば、出現回数に基づいて規定された基準であってもよいし、又は、後述する例外パターンの出現割合に基づいた基準（例えば例外パターンの割合が全体の５％以下である等）等であってもよい。何れの場合であっても、データパターン数値化処理部１１３は、データパターン判定処理部１１２がデータパターン評価基準に基づいてデータパターンの妥当性を判定できるように、当該データパターンに対する点数付けを行うように設定される。
【００７７】
図２０は、第２の実施の形態におけるデータパターンの妥当性評価を説明するための概略図である。図２０に示すように、データパターン判定処理部１１２は、データパターン記憶部１０８に保持されているデータパターンとしてツリー１８００を読み出し、データパターン数値化処理部１１３を用いてツリー１８００のグループ数２０００を算出する。ここで、ツリー１８００のグループ数２０００は「１０」となる。データパターン判定処理部１１２は、グループ数「１０」を、「グループ数の上限を３までとする」データパターン評価基準１９００と比較し、当該データパターンが妥当でないという判定結果を得る。ステップＳ１０４で否定結果（妥当でないという判定）が得られた場合には、ステップＳ１０５の処理に移行する。なお、ステップＳ１０４で肯定結果（妥当であるという判定）が得られた場合には、ステップＳ１０７の処理に移行する。
【００７８】
（２−２−４）データパターンの再構成
ステップＳ１０５では、データパターン変形処理部２１４が、データパターン変形規則記憶部１０９に格納されたデータパターン変形規則２１００を参照しながら、データパターンの再構成を行う。ここで、第２の実施の形態における特徴的な処理の１つとして、データパターンの再構成処理においては、データパターンの情報を書き換えてデータパターンを変形する変形処理が行われた後で、出現頻度が低い又は文字パターンが極端に異なる等の例外的な特徴を有する例外パターンをデータパターンから除外する除外処理が行われる。
【００７９】
図２１は、第２の実施の形態におけるデータパターン変形規則の一例を示すテーブルである。図２１に示すデータパターン変形規則２１００は、データパターンの情報（データパターンを構成するノードのノード値）を書き換える規則を示すデータパターン置換規則２１１０と、データパターンから除外する例外的なデータパターン（例外パターン）を決定するための規則を示すデータパターン除外規則２１２０とを含み、データパターン変形規則記憶部１０９に予め格納されている。データパターン置換規則２１１０は、第１の実施の形態において図９に示したデータパターン変形規則９００に相当し、書き換えの対象となる情報（ノード値）が記載される変形前欄２１１１と、当該情報に対する書き換え後の情報（ノード値）が記載される変形後欄２１１２とを組にして構成される。また、データパターン除外規則２１２０は、例外的なパターン情報の判定項目が記載される判定項目欄２１２１と、当該判定項目における除外条件が記載される除外条件欄２１２２とを組にして構成される。例えば、データパターン除外規則２１２０には、「該当種数≦（［最大］／４）」という除外規則が設定され、これはすなわち「該当種数がデータパターン中の該当種数の最大値の４分の１以下である」ことを意味する。なお、「該当種数」とは、データパターンの各パスにおけるデータの種類数のことである。
【００８０】
まず、データパターンの変形処理において、データパターン変形処理部２１４が、データパターン変形規則２１００を参照しながら、データパターン記憶部１０８から読み出したデータパターン（ツリー１８００）を書き換え、変形処理後のデータパターンに対して、データパターン数値化処理部１１３を用いて所定の処理による点数付けを行い、点数付けの結果に基づいて、再構成したデータパターンを決定する。このような処理は、第１の実施の形態において図１０〜図１３を参照して説明した処理と同様なので、説明を省略する。データパターン変形処理部２１４は、決定した「再構成したデータパターン」をデータパターン記憶部１０８に書き込む。
【００８１】
その後、データパターン変形処理部２１４は、再構成したデータパターンについて、データパターン除外規則２１２０を満足しているかを判定し、データパターン除外規則２１２０を満足するパターン情報が存在する場合には、当該パターン情報を例外パターンとしてデータパターンから除外する除外処理を行う。
【００８２】
図２２は、第２の実施の形態におけるデータパターン除外規則に基づく例外パターンの判定処理を説明するための概要図である。図２２に示すツリー２２００は、ツリー１８００に対するデータパターンの変形処理によって変形され、再構成したデータパターンとして決定されたツリーである。データパターン除外規則２１２０によれば、例外パターンの判定規則は、「ツリー２２００の各パスにおけるデータの種類数（該当種数）が、データパターン中の該当種数の最大値の４分の１以下である」こととされている。ここで、ツリー２２００におけるそれぞれの葉ノード２２０１〜２２０５のノード値はデータの種類数を示すので、ノード２２０１〜２２０５のノード値を参照する。その結果、データパターン変形処理部２１４は、ノード２２０３から最大値「４」を取得し、ノード２２０１〜２２０５のうち、最大値の４分の１、すなわち、「１」以下であるノード値を持つノードが存在するかを判定する。図２２を参照すれば、ノード２２０２，２２０５がノード値「１」を持ち、上述の条件に該当するので、ノード２２０２，２２０５を葉に持つパス構成が、例外パターンとして選択される。
【００８３】
次に、データパターン変形処理部２１４は、例外パターンとして選択されたパス構成をデータパターンから除外する。図２３は、第２の実施の形態における例外パターンの除外処理を説明するための概略図である。まず、データパターン変形処理部２１４は、例外パターンとして選択されたパス構成のうち１つを選ぶ。ここでは、ノード２２０２を葉とするパス構成が選ばれたとする。次に、データパターン変形処理部２１４は、ツリー２２００の根のノード２３００から、当該パス構成の葉にあたるノード２２０２まで繋がる一連のパス２３０１をコピーし、例外パターンとしてデータパターン例外記憶部２０２に追加する。さらに、データパターン変形処理部２１４は、ノード２２０２からノード２２０２に最も近く、かつ、複数の子を持つ祖先のノード２００１までのパス２３０２を、ツリー２２００から取り除き、ツリー２３０３を作成する。その後、データパターン変形処理部２１４は、ノード２２０２の場合と同様に、ノード２２０５についても例外パターンをデータパターン例外記憶部２０２に追加し、ノード２２０５からノード２２０５に最も近く、かつ、複数の子を持つ祖先のノードまでのパスをツリー２３０３から取り除く。データパターン変形処理部２１４は、例外パターンとして選択された全てのパス構成に対して同様の処理を行って、データパターンから例外パターンを除外し、例外パターンを除外したツリーを「最終的に再構成されたデータパターン」とする。例えば、ツリー２２００は、このような除外処理を行われることによって、後述する図２４に示すツリー２４００となる。このツリー２４００が「最終的に再構成されたデータパターン」に相当し、データパターン変形処理部２１４は、ツリー２４００をデータパターン記憶部１０８に書き込む。
【００８４】
次に、ステップＳ１０６では、データパターン変形処理部２１４が、「最終的に再構成されたデータパターン」が変形可能であるか判定し、変形可能と判定した場合には、ステップＳ１０３の処理に戻る。「最終的に再構成されたデータパターン」が変形不可能、又は、再構成前のデータパターンと完全に同一である場合には、ステップＳ１０７の処理に移行する。
【００８５】
（２−２−５）最終的に再構成されたデータパターンの妥当性評価
ステップＳ１０６の処理後のステップＳ１０３では、データパターン判定処理部１１２が、「最終的に再構成されたデータパターン」に対する妥当性の評価を行う。
【００８６】
図２４は、第２の実施の形態における最終的に再構成されたデータパターンに対して妥当性を評価する処理を説明するための概要図である。最終的に再構成されたデータパターンに対する妥当性の評価は、前述した初期データパターンに対する妥当性の評価における処理と同様に、データパターン判定処理部１１２によって行われる。すなわち、データパターン判定処理部１１２は、データパターン記憶部１０８に保持されている「最終的に再構成されたデータパターン」を読み出し、データパターン数値化処理部１１３を用いて点数付けし、点数付けの結果と、データパターン評価基準記憶部１０７に保持されたデータパターン評価基準１９００とに基づいて、再構成されたデータパターンが適切な水準を満足しているかという妥当性を判定する。
【００８７】
図２４では、再構成されたデータパターンを示すツリー２４００について、グループ数２４０１として「３」が点数付けされる。グループ数２４０１は、データパターン評価基準１９００に示される「グループ数上限が３以下」という条件を満たすので、データパターン判定処理部１１２は、ツリー２４００が妥当であると判定し、ステップＳ１０７の処理に移行する。
【００８８】
上述してきたように、データパターンは、図２のステップＳ１０３においてデータパターン評価基準１９００を満足できずに否定判定が得られた場合には、ステップＳ１０４でデータパターンが再構成され、最終的に再構成されたデータパターンが変形可能であれば、再度ステップＳ１０３において妥当性の評価が行われる処理を繰り返す。そして、何れかの段階における妥当性の評価で肯定判定が得られるか、妥当性の評価で否定判定が得られてデータパターンを再構成したがそれ以上データパターンを変形できない場合（ステップＳ１０６のＮＯ）には、ステップＳ１０７でデータパターンの出力が行われる。
【００８９】
（２−２−６）データパターンの出力
ステップＳ１０７では、データパターン視覚化処理部２１５が、データパターン記憶部１０８に最後に格納されたデータパターンを読み出し、ユーザが視覚的に容易に認識可能な所定の形式に変換して出力装置１０４に出力する。なお、データパターン視覚化処理部２１５は、データパターン視覚化処理部１１５と同様に、データパターンをコンピュータが読み取り可能な所定の形式に変換して出力するようにしてもよい。また、ステップＳ１０７におけるデータパターンの出力方法は、第１の実施の形態による場合と同様に、ユーザからの指定に応じて決定される。
【００９０】
図２５は、第２の実施の形態におけるデータパターンを出力する処理の一例を説明するための概略図である。図２５では、データパターンを出力テーブル２５１０にまとめて出力する処理を示している。出力テーブル２５１０は、データパターンが保持するツリーにおけるパス構成が記載されるグループ２５１１と、当該パス構成で表されるデータの種類数が記載される該当種数２５１２と、当該グループの区分が記載される区分２５１３とを有して構成される。グループ２５１１における記載方法は、図１５を参照して説明したグループ１５１１と同様とする。また、該当種数２５１２に記載されるデータの種類数は、当該グループの子にあたる葉ノードのノード値に相当し、例えばツリー２４００の場合にはノード２２０１，２２０３，２２０４のノード値である。また、区分２５１３には、当該グループが例外パターンに相当する場合に、例えば「例外」と記載される。
【００９１】
データパターン視覚化処理部２１５は、まず、データパターン記憶部１０８から、最後に格納されたデータパターンを読み出す。従って、初期データパターンが変形されて「最終的に再構成されたデータパターン」が格納されている場合には、図２５に示すように、データパターン記憶部１０８からは「最終的に再構成されたデータパターン」に相当するツリー２４００が読み出される。次に、データパターン視覚化処理部２１５は、読み出したデータパターンが保持するツリー２４００から、根からそれぞれの葉までのパス２５００〜２５０３を取得する。その後、データパターン視覚化処理部２１５は、取得したパス２５００〜２５０３に含まれる葉以外のノードの値を、出力テーブル２５１０のグループ２５１１の値とし、葉のノード値を当該グループ２５１０の該当種数２５１２の値とする。そして、データパターン視覚処理部２１５は、データパターン記憶部１０８から読み出したデータパターンに対応する出力である場合には、区分２５１３に何も記載しない。
【００９２】
さらに、データパターン視覚化処理部２１５は、データパターン例外記憶部２０２に格納された例外パターンを読み出し、データパターン記憶部１０８から読み出したデータパターンと同様に、出力テーブル２５１０を作成する。すなわち、データパターン視覚処理部２１５は、パス２５０３，２５０４を取得し、パス２５０３，２５０４に含まれる葉以外のノード値をグループ２５１１の値とし、葉のノード値を該当種数２５１２の値とする。そして、データパターン視覚処理部２１５は、データパターン例外記憶部２０２から読み出した例外パターンに対応する出力である場合には、区分２５１３に「例外」と記載する。
【００９３】
この結果、図２５に示すように、列２５１４には、データパターンの一部として「５Ｆ３Ｃ２［Ａ−Ｚ］」という文字列で表されるグループが「２」つのデータ種数を有することが示される。また、列２５１７には、「＃＃＃＃＃＃」という文字列で表されるグループが「１」つのデータ種数を有し、当該グループは例外パターンであることが示されているが、列２５１７の例外パターンは、他のパターングループに比べて文字パターンが極端に異なるパターングループの一例である。また、列２５１８には、「５Ｆ３Ｄ４３」という文字列で表されるグループが「１」つのデータ種数を有し、当該グループは例外パターンであることが示されているが、列２５１８の例外パターンは、他のパターングループに比べて出現頻度が低いパターングループの一例である。最後に、データパターン視覚化処理部２１５は、ユーザに指定された出力方式に従って、出力テーブル２５１０を出力装置１０４に出力する。
【００９４】
（２−３）本実施の形態による効果
このようなデータベース分析装置２０では、指定されたテーブルカラムに着目し、同一カラム内のデータ値に基づいて分析対象のデータベース内のデータ群の特徴を分析し、当該データ群の特徴に基づいたグループ分け（分類）を行うだけでなく、さらに、データの種類数が所定の基準よりも少ないパターングループ、すなわち、出現頻度が低い、又は文字パターンが極端に異なる等の例外的な特徴を有するパターングループについて例外パターンとしてデータパターンから除外し、データパターンを作成及び出力する。その結果、第１の実施の形態によるデータベース分析装置１０が奏する効果に加えて、分析対象のデータベース内のデータ群を、第１の実施の形態による場合よりもさらに代表的な特徴に集約したデータパターンをユーザに提供することができる。かくして、ユーザがデータベース分析装置２０による出力結果に基づいてテストデータを作成する場合に、代表的なデータの特徴を把握しながらテストデータを作成することに寄与できる。
【００９５】
また、このようなデータベース分析装置２０によれば、データパターンから除外された例外パターンも、データパターンとは区分して共に出力するので、分析対象のデータベース内のデータ群に対しての網羅性を損なうことなく、データ群の特徴をより細かくユーザに提供することができる。そして、ユーザがデータベース分析装置２０による出力結果に基づいてテストデータを作成する場合には、データパターンに対応するテストデータに加えて、例外パターンとして出力されたパターングループに対応するテストデータも併せて用意することによって、出現頻度や文字パターンの傾向を意識しながら、データベースのデータ群の特徴を網羅したテストデータを作成することができる。
【００９６】
また、このようなデータベース分析装置２０では、データベースの分析処理において、例外パターンを除外しながらデータパターンを再構成することにより、データパターンの再構成における処理時間が短縮され、データベースの分析処理に要する全体的な処理時間を短縮する効果が期待できる。
【００９７】
（３）他の実施の形態
なお、上述の第１及び２の実施の形態によるデータベース分析装置１０，２０では、データベース３０に格納されたデータ群に対して分析を行う場合について述べたが、本発明はこれに限らず、例えばネットワーク３１を介してデータベース分析装置１０，２０に接続される複数のデータベースが存在する場合には、データベース分析の開始を指示する所定の入力操作をユーザが行う際に、分析の対象とするデータベースを指定することによって、指定されたデータベースからデータベース分析装置１０，２０に、当該データベースに格納されているデータ群のコピーデータが入力されるように構成されてもよい。
【００９８】
また、上述の第１及び第２の実施の形態によるデータベース分析装置１０，２０において、外部記憶装置１０５，２０１は記憶部の一例であり、データパターン評価基準７００，１９００は、データパターンの妥当性を判定するための第１の判定基準の一例である。また、データパターン変形規則９００又はデータパターン置換規則２１１０は、データパターンに含まれる各グループの構成要素について、概念上類似している構成要素を同じ構成要素に変換するような所定の変換規則の一例である。また、データパターン除外規則２１２０は、例外的なグループを決定するための、変形後のデータパターンに含まれる各グループの出現頻度又はデータ構成に関する第２の判定基準の一例である。また、データパターン視覚化処理部１１５は、記憶部に最後に格納されたデータパターンを所定の形式に変換し、変換後のデータパターンを出力装置に出力させる第１のデータパターン出力処理部の一例である。また、データパターン視覚化処理部２１５は、記憶部に最後に格納されたデータパターン及び記憶部に格納された全ての例外パターンを所定の形式に変換し、変換後のデータパターン及び変換後の例外パターンを出力装置に出力させる第２のデータパターン出力処理部の一例である。
【００９９】
また、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態における構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態における構成に他の実施の形態における構成を加えることも可能である。また、各実施の形態における構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１００】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１０１】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実施には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１０２】
１０，２０  データベース分析装置
１０１  ＣＰＵ
１０２  メモリ
１０３  入力装置
１０４  出力装置
１０５，２０１  外部記憶装置
１０６  データ記憶部
１０８  データパターン記憶部
１１０  処理プログラム
１１１  データパターン作成処理部
１１２  データパターン判定処理部
１１３  データパターン数値化処理部
１１４，２１４  データパターン変形処理部
１１５，２１５  データパターン視覚化処理部
２０２  データパターン例外記憶部
３０    データベース
３１    ネットワーク
【図１】
2014085926.tif 000003
【図２】
2014085926.tif 000004
【図３】
2014085926.tif 000005
【図４】
2014085926.tif 000006
【図５】
2014085926.tif 000007
【図６】
2014085926.tif 000008
【図７】
2014085926.tif 000009
【図８】
2014085926.tif 000010
【図９】
2014085926.tif 000011
【図１０】
2014085926.tif 000012
【図１１】
2014085926.tif 000013
【図１２】
2014085926.tif 000014
【図１３】
2014085926.tif 000015
【図１４】
2014085926.tif 000016
【図１５】
2014085926.tif 000017
【図１６】
2014085926.tif 000018
【図１７】
2014085926.tif 000019
【図１８】
2014085926.tif 000020
【図１９】
2014085926.tif 000021
【図２０】
2014085926.tif 000022
【図２１】
2014085926.tif 000023
【図２２】
2014085926.tif 000024
【図２３】
2014085926.tif 000025
【図２４】
2014085926.tif 000026
【図２５】
2014085926.tif 000027