(57)【要約】【課題】関連の無い或いは薄い複数の業務で参照あるいは更新される複数のカラムの組み合わせが、分析対象として選択されてしまうこと。【解決手段】分析対象決定装置は、プログラム解析手段と分析対象生成手段とを有する。プログラム解析手段は、対象となるデータベースへアクセスするアプリケーションプログラムからデータベースへのアクセス処理部分を抽出する。分析対象生成手段は、アクセス処理部分からカラムを抽出し、同じアトミックな論理作業単位から抽出したカラムの組み合わせを分析対象として生成する。【選択図】図１
2013125429.tif 000002
【特許請求の範囲】
【請求項１】
対象となるデータベースへアクセスするアプリケーションプログラムから前記データベースへのアクセス処理部分を抽出するプログラム解析手段と、
前記アクセス処理部分からカラムを抽出し、同じアトミックな論理作業単位から抽出した前記カラムの組み合わせを分析対象として生成する分析対象生成手段と
を有する分析対象決定装置。
【請求項２】
前記分析対象生成手段は、前記生成した分析対象における各カラムの出現回数、および前記生成された各分析対象毎のカラム数の少なくとも一方を計算し、該計算結果に従って前記生成した分析対象に優先度を付与する
請求項１に記載の分析対象決定装置。
【請求項３】
前記分析対象生成手段は、前記アトミックな論理作業単位の開始点を表す文字列とその終了点を表す文字列とで挟まれたプログラム領域を同じアトミックな論理作業単位として認識する
請求項１または２に記載の分析対象決定装置。
【請求項４】
前記プログラム解析手段が前記アクセス処理部分を抽出する前記アプリケーションプログラムは、ソースプログラムである
請求項１乃至３の何れかに記載の分析対象決定装置。
【請求項５】
分析対象生成手段は、前記アクセス処理部分中の、レコードの抽出、挿入、削除、更新の何れかの処理を記述する部分から前記カラムを抽出する
請求項１乃至４の何れかに記載の分析対象決定装置。
【請求項６】
請求項１乃至５の何れかに記載の分析対象決定装置によって決定された分析対象に含まれる前記カラム間の相関を計算する分析手段を有するデータベース分析装置。
【請求項７】
プログラム解析手段と分析対象生成手段とを有する分析対象決定装置が実行する分析対象決定方法であって、
前記プログラム解析手段が、対象となるデータベースへアクセスするアプリケーションプログラムから前記データベースへのアクセス処理部分を抽出し、
前記分析対象生成手段が、前記アクセス処理部分からカラムを抽出し、同じアトミックな論理作業単位から抽出した前記カラムの組み合わせを分析対象として生成する
分析対象決定方法。
【請求項８】
コンピュータを、
対象となるデータベースへアクセスするアプリケーションプログラムから前記データベースへのアクセス処理部分を抽出するプログラム解析手段と、
前記アクセス処理部分からカラムを抽出し、同じアトミックな論理作業単位から抽出した前記カラムの組み合わせを分析対象として生成する分析対象生成手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースからの知識発見技術に関し、特に分析対象とするテーブルのカラムの組み合わせを決定する分析対象決定装置に関する。
【背景技術】
【０００２】
データベースからの知識発見技術は、データベースに蓄積されたデータの集合から何らかの規則性や関係を抽出する技術であり、データマイニングとも呼ばれる。一般にこの種の技術では、データベース中のテーブルのカラム間の関係を分析する。しかし、全てのカラムの組み合わせを分析対象にすると、計算量が膨大になり、現実的な計算機リソースでは実現が困難になる。そこで、分析対象とするカラムの組み合わせを絞り込む必要がある。
【０００３】
分析するカラムの組み合わせを絞り込む典型的な方法は、当該データベースおよびそれを使用する業務に精通した人の知識を利用することである。しかし、この人的資源に依存する方法は、多大な労力と工数を必要とする。そこで、機械的に絞り込む技術が提案されている（例えば特許文献１参照）。
【０００４】
特許文献１に記載の技術では、データベースの利用者が行った問い合わせの履歴を用いて、データベース中の分析対象とするカラムを制限する。より具体的には、まず、データベースへの問い合わせの履歴から問い合わせ文を順次取り出す。次に、取り出した問い合わせ文から、テーブルのカラムと、当該カラムの出現する節（ＳｅｌｅｃｔやＷｈｅｒｅ等）とを抽出する。次に、テーブルのカラムに対して、それが出現した節の種類に応じた得点を付与する。そして、各カラムに付与された総得点のより高いカラムほど重要なカラムとして選択する。例えば、総得点が上位ｎ位のカラムを選択する。あるいは、総得点が閾値以上のカラムを選択する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３００６５２５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術によれば、重要なカラムを機械的に選択することができる。しかし、この選択されたカラムの網羅的な組み合わせ全てを分析対象とするのは好ましくない。その理由は、特許文献１では、データベースの利用者が行った全ての問い合わせを一律に扱っているため、無意味なカラムの組み合わせが生じるためである。例えば、データベースが互いに関連の無い或いは薄い業務Ａと業務Ｂとで利用されているとする。この場合、特許文献１で選択される重要なカラムの中には、業務Ａに関連する問い合わせによって総得点が高くなったカラムａと、業務Ｂに関連する問い合わせによって総得点が高くなったカラムｂとが混在する。しかし、そのようなカラムａとカラムｂとの組み合わせは、殆ど意味のないカラムの組み合わせであることが多い。
【０００７】
本発明の目的は、上述したような課題、すなわち関連の無い或いは薄い複数の業務で参照あるいは更新される複数のカラムの組み合わせが、分析対象として選択されてしまう、という課題を解決することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態にかかる分析対象決定装置は、
対象となるデータベースへアクセスするアプリケーションプログラムから上記データベースへのアクセス処理部分を抽出するプログラム解析手段と、
上記アクセス処理部分からカラムを抽出し、同じアトミックな論理作業単位から抽出した上記カラムの組み合わせを分析対象として生成する分析対象生成手段と
を有する、といった構成を採る。
【発明の効果】
【０００９】
本発明は上述したような構成を有するため、関連の無い或いは薄い複数の業務で参照あるいは更新される複数のカラムの組み合わせを分析対象から除外することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態のブロック図である。
【図２】本発明の第２の実施形態のブロック図である。
【図３】本発明の第３の実施形態のブロック図である。
【図４】本発明の実施形態で使用するカラム抽出ルールの構成例を示す図である。
【図５】本発明の第３の実施形態における分析対象カラム優先度計算手段のブロック図である。
【図６】本発明の実施形態におけるデータベースの構成例を示す図である。
【図７】本発明の第２の実施形態の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１を参照すると、本発明の第１の実施形態にかかる分析対象決定装置１００は、プログラム解析手段１０１と分析対象生成手段１０２とを有する。
【００１２】
プログラム解析手段１０１は、知識発見の対象とするデータベース１１１をアクセスするアプリケーションプログラム１１２からデータベース１１１へのアクセス処理部分を抽出する機能を有する。アプリケーションプログラム１１２は、分析対象決定装置１００にローカルに接続された記憶装置に記憶されていても良いし、ネットワークを通じて接続された遠隔地の記憶装置に記憶されていても良い。また、アプリケーションプログラム１１２は、ソースプログラムであっても良いし、実行可能なオブジェクト形式であっても良い。さらに、対象とするデータベース１１１をアクセスするアプリケーションプログラム１１２の全てを処理しても良いし、その一部だけを処理しても良い。
【００１３】
分析対象生成手段１０２は、プログラム解析手段１０１によって抽出されたアクセス処理部分からカラムを抽出する機能を有する。このカラムの抽出では、分析対象生成手段１０２は、アクセス処理部分中の、レコードの抽出、挿入、削除、更新の処理を記述する部分から全てのカラムを抽出する。例えば、アクセス処理部分中に、或る条件に合致するレコードを検索する記述が存在しており、当該条件中に１以上のカラムの記述が含まれる場合、当該カラムの記述を抽出する。
【００１４】
また分析対象生成手段１０２は、同じアトミックな論理作業単位から抽出したカラムの組み合わせを分析対象として生成する機能を有する。分析対象生成手段１０２は、例えば、アトミックな論理作業単位の開始点を表す文字列とその終了点を表す文字列とで挟まれたプログラム領域を、同じアトミックな論理作業単位として認識する。そして、抽出したカラムの組み合わせを一つの分析対象として生成する。例えば、アトミックな論理作業単位に、或る条件に合致するレコードを検索する記述と、別の条件に合致するレコードの或るカラムの値を変更する記述とがあり、前者の記述部分からカラムＸを抽出し、後者の記述部分からカラムＹを抽出した場合、カラムＸとカラムＹの組み合わせを一つの分析対象とする。
【００１５】
次に本実施形態の動作を説明する。
【００１６】
分析対象決定装置１００は、まずプログラム解析手段１０１により、知識発見の対象とするデータベース１１１をアクセスするアプリケーションプログラム１１２から、データベース１１１へのアクセス処理部分をすべて抽出する。
【００１７】
次に分析対象決定装置１００は、分析対象生成手段１０２により、上記アクセス処理部分からカラムを抽出し、同じアトミックな論理作業単位から抽出したカラムの組み合わせを分析対象として生成する。
【００１８】
このように本実施形態によれば、関連の無い或いは薄い複数の業務で参照あるいは更新される複数のカラムの組み合わせを分析対象から除外し、業務と関連する意味のあるカラムの組み合わせを抽出することができる。その理由は、同じアプリケーションプログラム中のデータベースへのアクセス処理部分に存在する同じアトミックな論理作業単位から抽出したカラムの組み合わせを分析対象として生成するためである。
【００１９】
なお、本実施形態は種々の付加変更が可能である。例えば、分析対象生成手段１０２は、上記生成した分析対象に優先度を付与して出力しても良い。優先度の付与の仕方は任意で良い。例えば、分析対象生成手段１０２は、生成した分析対象における各カラムの出現回数、および各分析対象毎のカラム数の少なくとも一方を計算し、その計算結果に従って分析対象に優先度を付与するようにして良い。
【００２０】
また、分析対象生成手段１０２によって決定された分析対象に含まれるカラム間の相関を計算する分析手段を、分析対象生成手段１０２に組み入れるか、あるいは接続するようにして良い。
【００２１】
[第２の実施形態]
図２を参照すると、本発明の第２の実施の形態は、ソース格納手段２０１、ソース解析手段２０２、カラム抽出ルール格納手段２０３、分析対象カラム判定手段２０４、分析手段２０５、分析結果格納手段２０６、およびデータベース２０７から構成されている。これらの手段はそれぞれ概略つぎのように動作する。
【００２２】
データベース２０７は、分析対象のデータを格納する。データベース２０７は、図６に例示するような１個以上の表からなる、いわゆるリレーショナルデータベースである。図６には、データベースの２つの表が示されている。一つ目の表は、顧客情報を格納するcustomer表６１である。この表６１には、顧客のＩＤと名前と年齢とが格納されている。ここでＩＤ，名前、年齢をカラムと呼ぶことにする。カラムは表の列方向を示す。一方で各行をレコードと呼ぶことにする。図６のもう一つの表は、購入情報を格納するpurchase表６２である。Purchase表６２には、顧客のＩＤと購入回数と購入総額とが格納されている。
【００２３】
再び図２を参照すると、ソース格納手段２０１は、アプリケーションのソースプログラムを格納する。ソースプログラムの言語は、特定の言語に限定されず、任意で良い。
【００２４】
ソース解析手段２０２は、ソースプログラムのうち特にデータベースへのアクセス処理部分を解析する。具体的には、図6のデータベースのデータを参照、更新、削除する命令部分を抽出する。ソースプログラム全体からデータベースへのアクセス処理部分を抽出し、同処理部分の命令を解析する技術は、形式言語の構文・意味解析技術を利用すればよい。リレーショナルデータベースについて最も一般的な命令はＳＱＬ形式であり、以降はＳＱＬに準拠した例で説明する。
【００２５】
カラム抽出ルール格納手段２０３は、分析対象カラムを抽出するためのルールを格納する。具体的なルールの例は、図４を用いて後述する。
【００２６】
分析対象カラム判定手段２０４は、カラム抽出ルール格納手段２０３中のルールを参照して、ソース解析手段２０２から出力されたデータベースへのアクセス処理部分から、分析対象カラムを判定する。本手段２０４の詳細についても図４を用いて後述する。
【００２７】
分析手段２０５は、判定された分析対象カラムに関してデータベース２０７を分析する。例えば顧客の年齢と購入総額との相関の有無などを分析する例が考えられるが、データベースからの知識発見を目的とするデータベースの分析手法は周知であるため、その詳細な説明は省略する。
【００２８】
分析結果格納手段２０６は、分析手段２０５の分析結果を格納する。分析結果の格納形式は、通常のデータ形式であるリストや表を用いればよい。
【００２９】
次に、図７のフローチャートを参照して本実施形態の全体の動作について詳細に説明する。
【００３０】
まず、ソース解析手段２０２は、ソース格納手段２０１からソースプログラムを取得し（ステップ７０１）、そのソースプログラムからデータベース２０７へのアクセス処理部分を抽出する（ステップ７０２）。データベース２０７へのアクセス処理部分が一つのソースプログラムの中に複数存在する場合は、その各々が抽出される。
【００３１】
次に、分析対象カラム判定手段２０４は、カラム抽出ルール格納手段２０３からルールを取得し（ステップ７０３）、上記ソースプログラムから抽出された各々のアクセス処理部分に対して、当該ルールが適用可能であれば適用する（ステップ７０４）。このルールの適用によって、後述するようにカラムの抽出が行われる。分析対象カラム判定手段２０４は、一つのルールの適用を終えると、カラム抽出ルール格納手段２０３に他のルールが存在すれば（ステップ７０５でｙｅｓ）、ステップ７０３に戻って上述と同様な処理を残りのルールについて繰り返す。そして、一つのソースプログラムの全てのアクセス処理部分に対するルールの適用を終えると、それによって抽出したカラムの組み合わせを分析対象として分析手段２０５へ出力し、一つのソースプログラムに対する処理を終える。
【００３２】
ソース解析手段２０２および分析対象カラム判定手段２０４は、ソース格納手段２０１に他のソースプログラムが存在すれば（ステップ７０６でｙｅｓ）、ステップ７０１に戻って上述と同様な処理を残りのソースプログラムについて繰り返す。
【００３３】
その後、分析手段２０５は、分析対象カラム判定手段２０４によって生成された分析対象のカラムの組み合わせを対象として、カラム間の相関の計算など所定の分析を行い（ステップ７０７）、分析結果を分析結果格納手段２０６へ格納する（ステップ７０８）。
【００３４】
次にカラム抽出ルールについて、図４を参照して説明する。図４はカラム抽出ルール格納手段２０３に格納されているルールの例を示している。
【００３５】
ルール番号４１のルールは、データベースから特定の条件に合致するレコードを検索するソースプログラムから、分析対象カラムを抽出するルールの例を示している。ここで「（表名.カラム名）」は、特定の表の特定のカラムを示している。また、「（表名.カラム名）＋」は特定の表の特定のカラムが１個以上あることを示している。また、アンダーラインは、ソースプログラム中で抽出対象が存在する場所を示している。このルール４１の（表名.カラム名）に該当する箇所から抽出したカラムを列挙したものが分析対象カラムとなる。例えば、ソースプログラム中に以下のような記述が存在しているとする。
【００３６】
select customer.name, customer.age from customer where customer.age > $age and purchase.count > $count
ここで、$age、$countには、アプリケーションによって具体的な数値が入る。
【００３７】
この記述部分にルール４１を適用すると、selectの直後の２個のカラム、すなわち、顧客表(customer)の名前カラム(name)、および顧客表(customer)の年齢カラム(age)と、whereの直後の１個のカラム、すなわち、購入表(purchase)の回数カラム(count)との合計３個のカラムが、分析対象カラムとして抽出される。例示したソースプログラムは、リレーショナルデータベースの操作言語として標準的なＳＱＬ言語に準じているが、ＳＱＬ言語には限定されないことは勿論のことである。
【００３８】
ルール番号４２のルールは、データベース中の特定の条件に合致するレコードの特定カラムの値を変更するソースプログラムから、分析対象カラムを抽出するルールの例を示している。このルール４２にマッチするソースプログラムからは、setの直後の１以上のカラムと、whereの直後の１以上のカラムとが分析対象カラムとして抽出される。例えば、ソースプログラム中に以下のような記述が存在しているとする。
【００３９】
update customer set customer.royalty = $royalty where purchase.amount > $amount and customer.cust_id = purchase.cust_id
ここで、$royalty、$amountには、アプリケーションによって具体的な数値が入る。
【００４０】
この記述部分にルール４２を適用すると、setの直後の１個のカラム、すなわち顧客表(customer)の忠誠度カラム(royalty)と、whereの直後の２個のカラム、すなわち、購入表(purchase)の金額カラム(amount)、および顧客表(customer)の顧客番号カラム(cust_id)との合計３個のカラムが、分析対象カラムとして抽出される。ここで購入表(purchase)の顧客番号カラム(cust_id)は、顧客表(customer)の顧客番号カラム(cust_id)と同一であることから、分析対象カラムとしては抽出されない。
【００４１】
ルール番号４４のルールは、ルール４１や図４には図示しないルール２１等の複数のルールに合致するソースプログラムから、分析対象カラムを抽出するルールの例を示している。ここで、「（ルール４１｜ルール４２｜…）」は、ルール４１もしくはルール４２もしくは他のルールの選択であることを示している。また、「（ルール４１｜ルール４２｜…）＋」はルール４１もしくはルール４２もしくは他のルールが１個以上あることを示している。また、ルール４４は、「begin transaction」と「end transaction」に囲まれたソースプログラムをひとまとめとして、分析対象カラムを抽出することを示している。
【００４２】
ルール番号４５のルールも、ルール４４と同様に、複数のルールに合致するソースプログラムから、分析対象カラムを抽出するルールの他の例を示している。ルール４５は、「begin」と「end」に囲まれたソースプログラムをひとまとめとして分析対象カラムを抽出することを示している。
【００４３】
上記では、ＳＱＬ言語におけるレコードの選択(select)、更新(update)の例を図４を参照して説明したが、挿入(insert)や削除(delete)についても、該当する抽出ルールを定義すれば、本方式によって対応可能である。
【００４４】
このように本実施形態によれば、第１の実施形態と同様の効果が得られると共に、データベースの表のカラム間の関係を高速に計算することができる。その理由は、アプリケーションのソースを分析することにより、計算対象となるカラムを絞り込むことができるためである。
【００４５】
[第３の実施形態]
図３を参照すると、本発明の第３の実施形態は、分析対象カラム判定手段２０４と分析手段２０５との間に分析対象カラム優先度計算手段３０８が接続されている点で、図２に示した第２の実施形態と相違する。
【００４６】
分析対象カラム優先度計算手段３０８は、分析対象カラム判定手段２０４の生成したカラム組合せ（すなわち分析対象）に対して、何らかの基準で優先順位を付与する機能を有する。分析対象に付与される優先順位は、分析手段２０５における処理の優先度となる。すなわち、分析手段２０５は、その優先順に従って分析対象を分析する。
【００４７】
本実施形態の全体の動作は、図７に示した第２の実施形態と基本的に同じである。但し、ステップ７０６とステップ７０７との間に、分析対象カラム優先度計算手段３０８に相当する図示しない処理ステップが介在する。
【００４８】
次に、図５を参照して分析対象カラム優先度計算手段３０８について詳細に説明する。
【００４９】
図５を参照すると、分析対象カラム優先度計算手段３０８は、優先度計算表５１と優先度計算手段５２と優先度順出力手段５３とから構成される。
【００５０】
優先度計算手段５２は、分析対象カラム判定手段２０４が抽出した分析対象のカラムの組を受け取り、優先度計算表５１に格納する。
【００５１】
優先度計算表５１における分析対象１〜分析対象５は、分析対象カラム判定手段２０４が５つの分析対象を抽出したのに対応している。例えば、分析対象１は、顧客表(customer)の名前カラム(name)と顧客表(customer)の年齢カラム(age)が分析対象として抽出されたことを示している。
【００５２】
優先度計算表５１の出現回数は、分析対象１〜分析対象５を通して、各カラムが何回抽出されたかを示している。出現回数を計算するのは、優先度計算手段５２である。
【００５３】
優先度計算表５１の分析対象カラム数は、分析対象１〜分析対象５のそれぞれに対して、いくつのカラムが含まれているかを示している。分析対象カラム数を計算するのは、優先度計算手段５２である。
【００５４】
優先度順出力手段５３は、優先度計算表５１の出現回数と分析対象カラム数とを参照して、分析対象１〜分析対象５をどの順番で分析するか（すなわち優先度）を判定し、分析手段２０５に対して出力する。
【００５５】
例えば優先度順出力手段５３は、出現回数のもっとも多いカラムを重視し、次に分析対象カラム数を重視する場合、顧客表(customer)のＩＤカラム(id)が含まれ、かつ、カラム数の多い分析対象２を一番に出力する。次に顧客表(customer)のＩＤカラム(id)が含まれるが、カラム数の少ない分析対象１と分析対象３を出力する。最後に、顧客表(customer)のＩＤカラム(id)の含まれない分析対象４を出力する。
【００５６】
優先度順出力手段５３の処理は上記にとどまるものでなく、出現回数のもっとも多いカラムは一般的なので優先度を下げるという考え方もできる。また、分析対象カラム数の小さいものを優先させるという考え方もできる。さらに、出現回数のみ、分析対象カラム数のみで順序を決めるという考え方もできる。さらに、指標を出現回数や分析対象カラム数に限定するものではない。出現回数や分析対象カラム数以外の指標を使うため、優先度計算手段５２もそれに合わせて計算方法を変えるという構成も考えられる。
【００５７】
このように本実施形態によれば、第１および第２の実施形態と同様の効果が得られると共に、出現回数のより多いカラムを含むカラムの組み合わせを優先的に分析する等、所定の優先順位で分析を行うことができる。
【産業上の利用可能性】
【００５８】
本発明によれば、データベースからの知識獲得に適用できる。また、データベースの傾向を可視化することによって、システム運用管理の用途に適用できる。また、業務システムのデータベースの傾向を可視化することによって経営支援にも応用できる可能性がある。
【符号の説明】
【００５９】
１００…分析対象決定装置
１０１…プログラム解析手段
１０２…分析対象生成手段
１１１…データベース
１１２…アプリケーションプログラム
２０１…ソース格納手段
２０２…ソース解析手段
２０３…カラム抽出ルール格納手段
２０４…分析対象カラム判定手段
２０５…分析手段
２０６…分析結果格納手段
２０７…データベース
３０８…分析対象カラム優先度計算手段
５１…優先度計算表
５２…優先度計算手段
５３…優先度順出力手段
【図１】
2013125429.tif 000003
【図２】
2013125429.tif 000004
【図３】
2013125429.tif 000005
【図４】
2013125429.tif 000006
【図５】
2013125429.tif 000007
【図６】
2013125429.tif 000008
【図７】
2013125429.tif 000009