(57)【要約】【課題】  業務システム上でおこなわれた業務の履歴データに基づき業務フローを復元する際に、業務フローに付随する１つ以上の属性の中から、業務フローに影響を与える属性を自動的に抽出する。【解決手段】  業務の属性名及び属性値からなる業務の履歴データから日時の属性値の時系列の関係に基づき、属性名の順序を示すイベント列のバリエーションを算出し、イベント列のバリエーション毎に、日時以外の各属性の各属性値の出現回数をカウントし、出現回数の分布が類似しているイベント列をグループ化し、グループごとに作成した業務フローを統合する。【選択図】  図１
2017091329.tif 000002
【特許請求の範囲】
【請求項１】
データベースに格納された業務システム上の業務の履歴データを入力して、当該業務のフローを解析するデータベース分析方法であって、
前記業務の履歴データは、業務の属性名及び属性値から構成されるテーブルデータであり、
入力された業務の履歴データから、日時の属性値の時系列の関係に基づき、属性名の順序を示すイベント列のバリエーションを算出するイベント列算出ステップと、
前記算出されたイベント列のバリエーション毎に、日時以外の各属性の各属性値の出現回数をカウントする属性値出現回数カウントステップと、
前記カウントされた出現回数の分布をイベント列のバリエーションの間で比較し、分布が類似しているイベント列を同じグループにするイベント列グループ化ステップと、
同じグループのイベント列を統合して、業務フローを作成し、作成された異なるグループの業務フローを統合して、全体の業務フローを作成する業務フロー作成ステップと、
前記全体の業務フローを出力する業務フロー出力ステップと、
を有することを特徴とするデータベース分析方法。
【請求項２】
請求項１に記載のデータベース分析方法であって、
前記業務フロー作成ステップで作成される全体の業務フローは、統合された異なるグループの業務フロー間の相違箇所を分岐点として示した業務フローであることを特徴とするデータベース分析方法。
【請求項３】
請求項２に記載のデータベース分析方法であって、
前記業務フロー出力ステップにおいて、前記分岐点が異なる複数種類の業務フローを出力することを特徴とするデータベース分析方法。
【請求項４】
請求項１に記載のデータベース分析方法であって、
イベント列グループ化ステップでは、前記カウントされた出現回数に基づき各属性値の出現割合を算出し、イベント列のバリエーション間で前記出現割合の差を比較し、その差が所定の閾値より小さい場合に、イベント列のバリエーション間で分布が類似していると判定することを特徴とするデータベース分析方法。
【請求項５】
請求項１に記載のデータベース分析方法であって、
前記属性値出現回数カウントステップでは、日時以外の属性値が数値である場合に、カテゴリ化することを特徴とするデータベース分析方法。
【請求項６】
データベースに格納された、業務システム上の業務の履歴データを入力する入力部と、ＣＰＵと、出力部とを備えるデータベース分析装置であって、
前記業務の履歴データは、業務の属性名及び属性値から構成されるテーブルデータであり、
前記ＣＰＵは、
前記入力部で入力された業務の履歴データから、日時の属性値の時系列の関係に基づき、属性名の順序を示すイベント列のバリエーションを算出するイベント列算出と、
前記算出された複数のイベント列のバリエーション毎に、日時以外の各属性の各属性値の出現回数をカウントする属性値出現回数カウントと、
前記カウントされた出現回数の分布をイベント列のバリエーションの間で比較し、分布が類似しているイベント列を同じグループにするイベント列グループ化と、
同じグループのイベント列を統合して、業務フローを作成し、作成された異なるグループの業務フローを統合して、全体の業務フローを作成する業務フロー作成と、
を実行し、
前記出力部は、前記全体の業務フローを出力すること、
を特徴とするデータベース分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース分析装置およびデータベース分析方法に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特許文献１には、業務システム上でおこなわれた業務の履歴データに基づき業務フローを復元する際に、業務フローに付随する特定の属性の属性値と業務フローとの関係で特徴的なポイントを自動的に抽出することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２０５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１の業務フローの復元では、「特定の属性」が履歴データのうちどの属性であるかについて、利用者により予め指定されておく必要があり、履歴データの仕様が明らかでない場合には、予め属性を指定することは困難となる。
【０００５】
例えば、エンタープライズシステムのデータベースデータから業務フローを復元する場合、データベースの１テーブルが持つ属性の数が１００を超えることも多いため、これらの属性の中から業務フローに影響を与える属性を利用者が予め把握することは困難である。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、データベースに格納された業務システム上の業務の履歴データを入力して、当該業務のフローを解析するデータベース分析方法であって、前記業務の履歴データは、業務の属性名及び属性値から構成されるテーブルデータであり、入力された業務の履歴データから、日時の属性値の時系列の関係に基づき、属性名の順序を示すイベント列のバリエーションを算出するイベント列算出ステップと、前記算出されたイベント列のバリエーション毎に、日時以外の各属性の各属性値の出現回数をカウントする属性値出現回数カウントステップと、前記カウントされた出現回数の分布をイベント列のバリエーションの間で比較し、分布が類似しているイベント列を同じグループにするイベント列グループ化ステップと、同じグループのイベント列を統合して、業務フローを作成し、作成された異なるグループの業務フローを統合して、全体の業務フローを作成する業務フロー作成ステップと、前記全体の業務フローを出力する業務フロー出力ステップと、を有することを特徴とするデータベース分析方法である。
【発明の効果】
【０００７】
本発明によれば、業務システム上でおこなわれた業務のデータベースに保持されている履歴データに基づき業務フローを復元する際に、業務フローに付随する１つ以上の属性の中から、業務フローに影響を与える属性を自動的に抽出することができる。従って、利用者は、業務フローの復元に利用する履歴データに関する仕様を把握していなくても業務フローに影響を与える属性を抽出することができ、当該属性を指定する手間もかけずに、業務フローを復元することができる。
【図面の簡単な説明】
【０００８】
【図１】データベース分析装置の構成図の例である。
【図２】データベース分析装置の処理を説明するフローチャートの例である。
【図３】データベース分析装置が分析対象とするデータのイメージ図の例である。
【図４】分析対象データから発生イベント列のバリエーションを算出する処理を説明するイメージ図の例である。
【図５】発生イベント列バリエーション毎の属性値出現回数をカウントする処理を説明するイメージ図の例である。
【図６】発生イベント列バリエーション毎の属性値出現回数の分布を比較する処理を説明するイメージ図の例である。
【図７】属性値出現回数の分布の類似性を判定する処理を説明するイメージ図の例である。
【図８】同一グループに分類された発生イベント列を統合する処理を説明するイメージ図の例である。
【図９】異なるグループの業務フローを統合する処理を説明するイメージ図の例である。
【図１０】分析結果を説明するイメージ図の例である。
【発明を実施するための形態】
【０００９】
以下、実施例について図面を用いて説明する。
【実施例１】
【００１０】
本実施例では、データベース分析装置の例を説明する。図１は、本実施例のデータベース分析装置の構成図の例である。
【００１１】
データベース分析装置１００は、ＣＰＵ１１０、メモリ１２０、入力装置１３０、出力装置１４０、外部記憶装置１５０を有する。外部記憶装置１５０は、分析対象テーブルデータ記憶部１５１、分析対象テーブル属性種別記憶部１５２、発生イベント列記憶部１５３、発生イベント列毎属性値出現回数記憶部１５４、発生イベント列グループ記憶部１５５、業務フロー記憶部１５６を保持しており、さらに処理プログラム１６０として、分析対象テーブル属性種別判定１６１、発生イベント列算出１６２、属性値出現回数カウント１６３、発生イベント列グループ化１６４、業務フロー作成１６５を保持する。処理プログラム１６０は、実行時にメモリ１２０に読み込まれ、ＣＰＵ１１０によって実行されるものとする。なお、データベース１には、業務システムにおける業務の履歴データが格納されている。
【００１２】
以下、図２に沿って、図1の各構成要素の動作を説明する。
【００１３】
図２は、本実施例のデータベース分析装置の処理を説明するフローチャートの例である。ステップ２０１は、データベース分析装置が分析するデータベース１のデータを入力するステップである。入力操作は、装置の利用者により実施される。ステップ２０１では、入力装置１３０を介して外部から入力されたデータベース１のデータのうち、１テーブルに相当するデータが、分析対象テーブルデータ記憶部１５１に書き込まれる。
【００１４】
なお、本実施例においては、単一のテーブルを分析するケースについて説明する。複数のテーブルを分析する場合は、それらテーブルを予めＪＯＩＮしておくなどして１テーブルに纏めておいても良いし、それらテーブルを個別に分析してもよい。
【００１５】
また、本実施例ではリレーショナルデータベースのテーブルの形式のデータを分析する処理について説明するが、例えばイベント名とタイムスタンプを属性に含むログデータなど、業務の履歴を示すデータであれば、他の形式のデータであっても扱うことが可能である。
【００１６】
図３は、本実施例のデータベース分析装置が分析対象とするデータのイメージ図の例である。データベース分析装置の分析対象となるデータは、１テーブルに相当する形式であり、複数の属性に分類される。また、各属性は、属性名３０１と属性値３０２分類される。本実施例において分析対象データは、ＩＤ３１１、予約年月日３１２、代金受領年月日３１３、チェックイン年月日３１４、チェックアウト年月日３１５、お礼状送付年月日３１６、顧客区分３１７、支払方法３１８、部屋タイプ３１９の９つの属性を持ち、このうちＩＤ３１１は主キーであることとする。なお、主キーである属性が不明な場合は、各レコードに一意な番号を付与することで、主キーの代替として利用する。
【００１７】
以下のステップ２０２から２０７までは、入力情報をもとにした機械的な処理であり、人手を介することなくデータベース分析装置のみで実施できる処理である。
【００１８】
ステップ２０２では、分析対象テーブル属性種別判定１６１のプログラムを読み込んだＣＰＵ１１０が、分析対象テーブルデータ記憶部１５１から読みだしたデータベースのデータを参照しながら、当該データの各属性が日時を表すものであるか否かを判定し、結果を分析対象テーブル属性種別記憶部１５２に書き込む。
【００１９】
ある属性が日時を表すデータであるか否かを判定する処理は、パターンマッチングなどの手段により、当該属性の値の形式が日時の形式（YYYY/MM/DD、YYYY-MM-DDなど）に当てはまる程度を算出することによって実現できる。実際には、日時の値のみであるケース、日付の値のみであるケース、 日付と時刻が別箇の属性となっているケースなど様々あり得るが、本実施例においては、簡単のため、日付の値のみがYYYY/MM/DD形式で示されるものとして説明する。
【００２０】
本実施例においては、予約年月日３１２、代金受領年月日３１３、チェックイン年月日３１４、チェックアウト年月日３１５、お礼状送付年月日３１６の５つの属性が、いずれもYYYY/MM/DD形式の値を持つことから、日時の値を持つ属性であると判定される。また、顧客区分３１７、支払方法３１８、部屋タイプ３１９の３つの属性については、日時の値ではない属性であると判定される。なお、主キーであるＩＤ３１１については、本ステップによる判定処理を実施しなくてよい。
【００２１】
ステップ２０３では、発生イベント列算出１６２を読み込んだＣＰＵ１１０が、分析対象テーブル属性種別記憶部１５２を参照しながら、分析対象テーブルデータ記憶部１５１から読みだしたデータベースのデータから日時の属性値を抽出し、当該属性値の時系列上の順序関係のバリエーションを算出し、結果を発生イベント列バリエーションとして発生イベント列記憶部１５３に書き込む。
【００２２】
図４は、本実施例の分析対象データから発生イベント列のバリエーションを算出する処理を説明するイメージ図の例である。本ステップでは、分析対象データテーブル３００の各レコードについて、ステップ２０２において日時の属性であると判断された３１２〜３１６の値を比較し、時系列上の順序関係を算出する。更に、算出された順序関係に基づき属性名を並び替えて属性名の順序を示す発生イベント列４１２として、発生イベント列バリエーションテーブル４００に書き込む。この際、発生イベント列バリエーションテーブル４００のバリエーションＩＤ４１１には、発生イベント列４１２に対して一意になる文字列が入力される。また、ＩＤ４１３には、発生イベント列４１２に該当する分析対象データのレコードに関する、ＩＤ３１１の値を追加する。分析対象データテーブル３００の全レコードについて本処理を実施し、作成した発生イベント列バリエーションテーブル４００を発生イベント列記憶部１５３に書き込むことにより、ステップ２０３を完了する。
【００２３】
以降、分析対象テーブルデータ記憶部１５１が持つデータベースのデータのうち、日時以外のすべての属性について、ステップ２０４からステップ２０７の処理を実施する。日時以外のすべての属性について完了した場合、ステップ２０８に進む。
【００２４】
ステップ２０４では、属性値出現回数カウント１６３のプログラムを読み込んだＣＰＵ１１０が、分析対象テーブル属性種別記憶部１５２を参照しながら、分析対象テーブルデータ記憶部１５１から読みだしたデータベースのデータから日時以外の属性のうち１つ以上を選択し、当該属性の値の出現回数を、発生イベント列記憶部１５３から読みだした発生イベント列バリエーション毎に算出し、発生イベント列毎属性値出現回数記憶部１５４に書き込む。
【００２５】
図５は、本実施例の発生イベント列バリエーション毎の属性値出現回数をカウントする処理を説明するイメージ図の例である。ここでは、日時以外の属性として顧客区分３１７を選択し、その値の出現回数をカウントする場合の処理について説明している。属性値出現回数カウント１６３のプログラムを読み込んだＣＰＵ１１０は、分析対象データテーブル３００の各レコードについて、主キーであるＩＤ３１１に対応するバリエーションＩＤ４１１の値を、発生イベント列バリエーションテーブル４００の情報から抽出する。さらに、発生イベント列バリエーション毎属値出現回数テーブル５００に、抽出したバリエーションＩＤ４１１の値がバリエーションＩＤ５１１の値であって、顧客区分３１７の値が属性値５１２の値である出現回数５１３の値をインクリメントする。分析対象データテーブル３００の全レコードについて本処理を実施し、結果の発生イベント列バリエーション毎属性値出現回数テーブル５００を発生イベント列毎属性値出現回数記憶部１５４に書き込むことにより、ステップ２０４を完了する。
【００２６】
なお、選択中の属性の値が数値である場合など、数値に意味があると想定されるケースでは、何らかの方法で属性値を量子化しても良い。例えば、３０〜３９の数値を“３０代”というカテゴリに変換して扱う。
【００２７】
ステップ２０５では、発生イベント列グループ化１６４のプログラムを読み込んだＣＰＵ１１０が、発生イベント列毎属性値出現回数記憶部１５４から読みだした発生イベント列バリエーション毎の属性値出現回数を比較し、出現回数の分布が類似している発生イベント列バリエーションが同一グループになるようにまとめ、結果を発生イベント列グループ記憶部１５５に書き込む。
【００２８】
なお、本ステップにおいて複数のグループが抽出された場合、選択中の属性の値によって発生イベント列が変化することを意味しており、当該属性が業務フローに影響すると判断できる。一方、すべてのイベント列が単一のグループに集約された場合、当該属性の値は発生イベント列の変化に寄与しておらず、業務フローに影響しないと判断できる。業務フローに影響しないと判断できた場合には、選択中の属性に関して、以降のステップ２０６、２０７を省略しても良い。
【００２９】
図６は、本実施例の発生イベント列バリエーション毎の属性値出現回数の分布を比較する処理を説明するイメージ図の例である。発生イベント列バリエーション毎属性値出現回数テーブル５００から、バリエーションＩＤ５１１毎の属性値５１２および出現回数５１３を参照し、バリエーションＩＤ毎の属性値出現割合６０１〜６０４を作成する。さらに、出現割合について類似度を判定し、類似していると判断できた６０１と６０４、また、６０２と６０３をそれぞれ、同一グループとしてまとめる。
【００３０】
図７は、本実施例の属性値出現回数の分布の類似性を判定する処理を説明するイメージ図の例である。属性値の出現割合の類似度を判定する方法には様々なものが考えられるが、ここでは、両者の属性値出現割合の差の絶対値をある閾値と比較することにより判定する方法を示している。属性値出現回数６０１と６０２から算出した出現割合の差の絶対値７０１の合計は１８１．１％であり、本実施例における閾値１００％を上回る。この場合、分布の差が大きく、類似していないものと判断できる。また、属性値出現回数６０２と６０３から算出した出現割合の差の絶対値７０２の合計は１２．６％であり、本実施例における閾値１００％を下回る。この場合、分布の差が小さいため、類似しているものと判断できる。ステップ２０６では、業務フロー作成１６５のプログラムを読み込んだＣＰＵ１１０が、発生イベント列グループ記憶部１５５から発生イベント列バリエーションの同一グループを読み出し、同一グループに分類された発生イベント列を統合した業務フローを作成し、業務フロー記憶部１５６に書き込む。図８は、本実施例の同一グループに分類された発生イベント列を統合する処理を説明するイメージ図の例である。業務フロー作成１６５のプログラムを読み込んだＣＰＵ１１０は、前ステップで抽出したグループのうち１つを選択し、グループ別業務フローテーブル８００のバリエーションＩＤ８０２に同一グループに分類されたイベント列のバリエーションＩＤを入力する。さらに、前記バリエーションＩＤに対応する発生イベント列４１２を、発生イベント列バリエーションテーブル４００を参照して、抽出する、更に、抽出した発生イベント列４１２からグループ別業務フロー８０３を作成し、業務フロー８０３に登録する。グループＩＤ８０１には、バリエーションＩＤ８０２に対して一意になるような文字列を付与する。
【００３１】
発生イベント列４１２からグループ別業務フロー８０３を作成する方法は様々あるが、一例として、イベント列を重ね合わせ、差分を並列実行する処理として表現した業務フローを作成する方法がある。図８においては、元の発生イベント列において「チェックイン年月日」「代金受領年月日」の発生順序が異なるため、これらを並列実行する処理として表現し、その他の共通するイベントを残した業務フローを作成している。なお、差分を並列実行処理として表現する際、全イベント列には存在していないイベントが含まれていた場合、そのようなイベントは任意処理のイベントとして表現する。
【００３２】
ステップ２０７では、業務フロー作成１６５のプログラムを読み込んだＣＰＵ１１０が、ステップ２０６の結果を異なるグループ間で重ね合わせ、差分を選択中の属性値による分岐と見なして業務フローを作成し、業務フロー記憶部１５６に書き込む。
【００３３】
図９は、本実施例の異なるグループの業務フローを統合する処理を説明するイメージ図の例である。業務フロー作成１６５のプログラムを読み込んだＣＰＵ１１０は、グループ別業務フロー８０３が保持するすべての業務フローを重ね合わせ、業務フロー間の差分を分岐９０１によって接続し表現した全体の業務フロー９００を作成し、選択中の属性名と対応付けた上で、業務フロー記憶部１５６に書き込む。
【００３４】
図１０は、本実施例の分析結果を説明するイメージ図の例である。データベース分析装置は、分析結果である属性別業務フロー１０００を、業務フロー記憶部１５６に保持する。属性別業務フロー１０００は、日時以外の属性の属性名１００１と、業務フロー１００２の組を持つ。属性名１００１の内容を確認することにより、業務フローの復元に利用する履歴データに関する仕様を把握していない利用者であっても，業務フローに影響を与える属性を抽出することができる。また，属性名１００１毎の業務フロー１００２の内容を確認することにより、各属性が業務フローに与える効果を比較することができる。ステップ２０８は、データベース分析装置１００が、装置による分析結果を、出力装置１４０で出力するステップである。業務フロー記憶部１５６に書き込まれた業務フローの情報は、入力装置１３０から入力された利用者の指示に従い、出力装置１４０に出力される。なお、出力は、計算機で扱えるようテキストデータ又はバイナリデータとして出力しても良いし、装置の利用者が閲覧できるようモニタに文字又はグラフィックを表示してもよい。
【符号の説明】
【００３５】
１００  データベース分析装置
１１０  ＣＰＵ
１２０  メモリ
１３０  入力装置
１４０  出力装置
１５０  外部記憶装置
１５１  分析対象テーブルデータ記憶部
１５２  分析対象テーブル属性種別記憶部
１５３  発生イベント列記憶部
１５４  発生イベント列毎属性値出現回数記憶部
１５５  発生イベント列グループ記憶部
１５６  業務フロー記憶部
１６０  処理プログラム
１６１  分析対象テーブル属性種別判定手段
１６２  発生イベント列算出手段
１６３  属性値出現回数カウント手段
１６４  発生イベント列グループ化手段
１６５  業務フロー作成手段
【図１】
2017091329.tif 000003
【図２】
2017091329.tif 000004
【図３】
2017091329.tif 000005
【図４】
2017091329.tif 000006
【図５】
2017091329.tif 000007
【図６】
2017091329.tif 000008
【図７】
2017091329.tif 000009
【図８】
2017091329.tif 000010
【図９】
2017091329.tif 000011
【図１０】
2017091329.tif 000012