(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0007】
BIツールによるOLAPは、多次元データ構造をもつ単一のキューブを前提として、高度なデータ分析のため手法を提供している。
しかし、現実の世界では、完全かつ一貫性のあるデータを入手することは困難な場合も多く、またそのためのデータ整備に多大なコストがかかったり、データ整備や集計の段階で重要な情報が欠落したりしてしまう場合がある。
【0008】
<小粒度における不整合(明細データに共通キー項目が含まれない)の例>
図1を参照して説明する。例えば、商品別・得意先別に「売上高」が定義され、商品別・仕入先別に「仕入高」が定義されているものとする。商品については「粗利益額」を[商品別に集計した売上高−商品別に集計した仕入高]として算出することができる。さらに商品別レコードを集計することによって、全社レベル(全社レベル)の「売上高」、「仕入高」、「粗利益」をレポートする(ロールアップ)こともできる。
しかし、商品別レコードから得意先別の明細を見たいと思うと、得意先別の「仕入額」と「粗利益額」は明細レベルでは定義されていないため、同一のキューブをドリルダウンして見ることはできない。
一方で、単独の「売上高」については、得意先別・商品別を集計して全社レベルの売上高レポートすることができ、そこからは得意先別、さらに得意先別・商品別とドリルダウンすることができる。「仕入高」についても同様である。
この例の場合、「粗利益額」という値項目(メジャー)は「得意先」および「仕入先」をデータ集計項目(ディメンション)に含まない上位の粒度(階層レベル)においてのみ定義されており、「売上高」は「仕入先」を含まない全階層、「仕入高」は「得意先」を含まない全階層で定義されている。
したがって、これらの「売上高」、「仕入高」、および「粗利益額」のデータをすべて参照しようとすると、1個の分析用キューブでは不可能であり、3個のキューブを用意しておく必要がある。
【0009】
<大粒度における不整合(集約データへの統合処理の制約・限界)の例>
図2を参照して説明する。例えば、多国籍企業では、それぞれの国で異なる通貨で会計処理を行っているため、複数国の企業の連結を行うには、基準通貨への換算を行ってから合算をする必要がある。通貨間の為替レートは刻々と変動しているために、ある時点のレートで換算して連結ベースでの報告書作成や評価は可能である。しかし、基準通貨で合算する際には、換算前の金額や通貨などの項目は集約できないため、切り捨てられてしまう。
また、法制度やルール、システムなども、複数国の企業間で決して同じではないため、データ統合により全体をマクロに把握することはできても、集約した結果見えなくなるデータはきわめて多い。そのため、具体的なアクションをとるための分析では、連結ベースでの集約データではなく、個別の原データを見る必要がある場合が多い。
【0010】
現実の世界では不整合を含むデータが随所に存在しているが、このような不整合を含むデータを分析するためのアプローチは、以下のような理由から実現できていなかった。
【0011】
(従来のデータ統合手法(単一キューブ)の限界)
完全で一貫性のある単一のキューブであれば、上位階層のデータは下位階層のデータを集約することにより生成できるため、比較的少ない種類のデータを業務システムから収集してデータベースに保持すれば済む。このため従来は、企業の中核的なデータに範囲を限定して、業務システムから収集したデータを整形(クレンジング)して、一旦データウェアハウスやデータマートに蓄積し、ここからキューブを切り出すことにより、できる限り完全で一貫性がある多次元データモデルとして分析に提供してきた。
しかし、不整合を含むデータを分析するには、不整合のある部分を回避して、それぞれをモデル化が可能な部分に分けて、複数のキューブを構築する必要がある。このために必要なキューブの個数は、不整合を含むデータの種類や項目数により級数的に増加し、あらゆる場合に対応しようとすると理論的には膨大な個数となってしまうため、このようなケースへの対応は困難とされてきた。
【0012】
企業活動の複雑化・多様化、管理の高度化などの要因から、マネジメントの関心は特定の問題領域から企業活動全般へと拡大しており、これに伴い企業内外のあらゆるデータが分析対象となる可能性を持ってきている。
しかし、企業内のあらゆる業務システムのデータを複製して分析データとして提供することの費用対効果は、企業が保有するデータの種類や量から見ても明らかに非現実的である。
また、業務データは日々刻々と変化しているにもかかわらず、データウェアハウス更新のためのデータ複製に要するバッチ処理の時間を考えると、最新データの分析データとして提供は困難である。
さらに、そもそも独立して動作している複数の業務システムのデータを統合するには、相当なエンジニアリング作業が必要であり、統合するシステムの数が増えれば増えるほど、その労力は飛躍的に増加する。しかし、本当に統合・集約が必要とされているデータはその中の一部であり、むしろサマリーせずに業務システムデータを直接分析する方が有効な局面も多々ある。
したがって、データを一括で複製して再構築し、不整合を含まないキューブとして提供する従来のデータ統合手法は、コスト、時間、情報ロスといった面で、より高度で広範な分析を要求する企業ニーズに合わなくなってきている。全体では共通化可能な範囲で関連付けを行ってデータ統合を行い、詳細については業務システムの原データを生かして、それぞれのデータを直接分析するような、ユーザの分析ニーズの実態を踏まえた柔軟なアプローチが理想といえる。
【0013】
(単一キューブにもとづくOLAP分析の限界)
一般のOLAP分析では、単一のキューブを対象としては、効率よくデータ分析を行うことができる。しかし不整合を含むようなデータを互いに関連する複数のキューブとして分析する場合には、それぞれのキューブの間に深い関係性があるにもかかわらず、その関係性を管理・利用する方法がなかったため、それぞれ全く別のキューブとして扱うしかなかった。
そのため、あるキューブを分析している過程で関連する別のキューブを参照するといった場合でも、それまでの分析内容の引継ぎや関連する項目のガイダンスといったユーザサポートは提供されず、新たに別のキューブを開いて最初から処理を始めるしかなかった。
【0014】
(複数キューブに対する従来のBIツールの表現方法の限界)
BIツールは、1つのデータから論理的に多次元の分析用キューブを構築し、そこからデータを取り出して基本的には2次元の表、グラフなどの形式で表示し、スライシング、ダイシング、ドリルダウンの分析操作により表示を切り替えて多次元的な側面の分析を行う。
しかし、不整合を含むデータを扱う場合には、複数のデータの関連する内容を包括的に把握する必要があるため、単純な2次元の表やグラフだけでは表現することが難しい。
このためには、例えば、様々な情報源から集めたデータを、グラフィカルなレポートとして同一画面上に複数配置し、多様な視点からの情報を一度に表示するダッシュボードは、かなり有効な手法である。しかし、従来のBIツールのダッシュボードでは、切り出した情報を静的に並べて表示することはできたが、異なるデータを対象とする複数のキューブに対して一括して同時にスライシングやドリルダウンなどを行う機能は、異なるデータ間の項目の関連性が定義できないためサポートできておらず、不整合を含むデータの多次元的な側面の分析は非常に手間がかかった。
さらに、あるレポートから関連する異なるデータを対象とするレポートへ遷移する場合には、データ間の関係性を定義する手段が提供されていないのみならず、スライシング、ダイシング、ドリルダウンといった単一キューブを前提とする単純な分析操作には当てはまらないケースも多々存在し、異なるデータ間のレポート遷移を従来のBIツールで実現することはきわめて困難であった。
【0015】
このため、本発明は、企業などで、複数の業務システムに分散した関連するデータを収集して分析する場合のように、単一のキューブでは対応が困難な不整合を含むデータを分析するためのデータ検索ツールを提供することを目的とする。
【課題を解決するための手段】
【0016】
上記の目的を達成するために、本発明では、基本的に、
・仮想データベースの機能とBIツールの機能を一体のソフトウェアとして融合し、
・複数の検索間のデータ関連性を管理することのできる単一のデータ辞書で制御する、
ことにより、
・複数のデータベースからそれぞれ取得したデータを統合して検索結果を作成し、
・複数の検索結果から用途・目的に応じて複数のレポートを作成し、
・作成された複数のレポートを自動的に関連付けて操作する、
ことを特徴とするデータ検索ツールを提供する。
【0017】
<複数のデータベースからのデータを統合する仮想データベース機能>
従来の手法では、複数の分散した関連データを複製してデータウェアハウスなどに蓄積し、ここから分析のためのキューブを切り出す。しかし、従来の手法によると、不整合を含むデータを分析する場合には、分析するキューブが局面やパターンにより異なってくるため、蓄積する必要のあるデータの種類や量が膨大になってしまう。
これに対して、仮想データベース(EII(Enterprise information integration)あるいはFederated database systemとも呼ばれる)によれば、分散したデータを移動や複製をすることなく、利用者は単一の問合せで複数データベースに対する検索を行うことができる。仮想データベースは、各種の定義やルールを持つだけのあくまでも論理的なものであり、実際のデータは実行時に必要なデータだけをもとに仮想的かつリアルタイムに作られる。
したがって、仮想データベースは、無駄なデータ複製を行う必要がないため柔軟性が高く、業務データの容量の増大やデータベース数の増大に対応しやすいとともに、複数のデータウェアハウスやデータマートをまたがるようなデータ統合あるいは外部データとのデータ統合も可能となる。また、複製データを格納するためのサーバやデータベースのコストが不要となり、データ管理やデータ品質維持、システム改修・変更のための運用・保守コストを低減することができる。さらに、仮想データベースは、DWHのようなデータの再構成作業が不要で、データ生成のタイムラグがないため、リアルタイムに直近データを取得することができ、業務の最新状況を反映したレポートの作成が可能となる、といった利点がある。
仮想データベースの機能を用いることにより、業務システムなどからのデータを複製や蓄積して、恒常的に保持することなく、必要な都度データを取得して擬似的に多次元データモデルのデータを提供し、分析することができる。
【0018】
<作成された複数のレポートを関連付けるデータ辞書機能>
データ辞書は、仮想データ構造の定義情報と、プレゼンテーション構造の定義情報と、検索要求の定義情報を含んで構成される。仮想データ構造の定義情報は、検索対象とする複数のデータベースのそれぞれに格納されているテーブルや項目などの物理データ構造の定義情報に加えて、物理データ構造とは完全に独立して用途・目的に応じた利用者独自の視点からデータ構造を柔軟に定義し、物理データ構造を持つデータを統合・編集して要求されたデータ構造に変換するための定義を含む。プレゼンテーション構造の定義情報は、利用者を入力支援して検索要件に適合する検索要求を発行するための定義を含む。さらに、検索要求の定義情報は、異なる検索要求間の関連性を管理するためのものである。
データ辞書において、異なる検索要求間の関連性を定義し、大域的に識別可能なデータ項目の定義情報、及び複合的あるいは階層的なデータ項目の定義情報を持つことにより、仮想データ構造に基づき発行された検索要求により取得された複数の検索結果、及び検索結果から作成された複数のレポートの間で、データ項目やデータ階層の共通性・関連性の管理を行うことができるようになる。
【0019】
<複数のレポートを関連付けて操作するBI機能>
一般のBIツールは、非定型検索、定型検索、レポート参照といった単一のレポートを扱う機能をもち、単一の検索結果を対象とする範囲で、スライシング、ダイシング、ドリルダウンのデータ分析操作により関連レポートへ移動することが可能である。
これに加えて、本発明では、データ辞書により複数の検索要求間の関連性を管理することができるため、仮想データベースの機能とBIツールの機能を一体のソフトウェアとして融合させることで、不整合を含むデータを扱うことが可能となる。このため、本発明は、異なる検索結果を対象とするレポートに対しても相互間の関連付けを行うことのできる検索リンクの機能を有するものとなり、現在のレポートの抽出条件や選択内容を引き継ぎながら関連するレポートへの移動を実現することができる。
【0020】
また、本発明によれば、複数のレポートを同一画面上に複数配置するダッシュボードにおいても、異なる検索結果を参照する複数のレポートを一括して、データ分析操作する機能を実現することができる。
【0021】
具体的に説明すると、本発明のデータ検索装置は、以下の構成を有する。
【0022】
本発明の第1の側面は、検索命令に応答して検索データを返す2以上のデータベース(1)をデータソースとするデータ検索装置である。
このデータ検索装置は、
利用者端末(2)を入力支援して検索要件に適合する検索要求を発行するためのプレゼンテーション構造の定義情報と、前記検索要求を解析して前記データベース(1)で処理可能な物理情報で表される検索命令に変換するための仮想データ構造の定義情報と、異なる検索要求間の関連性を管理するための検索要求の定義情報と、を含むデータ辞書(10)と、
前記データ辞書(10)で定義された前記プレゼンテーション構造に基づいて前記利用者端末(2)を入力支援して、前記プレゼンテーション構造に基づき記述された検索要求を発行するとともに、当該検索要求を仮想データベース部(20)で実行して取得した前記仮想データ構造に基づく検索結果を、前記利用者端末(2)に対して出力するビジネスインテリジェンス部(30)と、
前記データ辞書(10)で定義された前記仮想データ構造に基づいて前記検索要求を解析して検索命令を生成し、生成された検索命令を前記データベース(1)でそれぞれ実行して2以上の検索データを取得し、取得された2以上の検索データを統合加工して検索要求に対応する検索結果を作成する仮想データベース部(20)と、を含み、
異なる検索要求に対応して作成された複数の検索結果を、前記検索要求の定義情報により関連付けることができる。
【0023】
詳しく説明すると、前記データ辞書(10)は、
検索命令に応答して検索データを返すデータベース(1)についての物理データ構造の定義情報と、
検索要件に適合する検索要求を記述して前記データベース(1)で処理可能な物理データ構造で表される検索命令に変換するとともに、前記データベース(1)から取得された検索データに基づいて検索要求に対応する検索結果を作成するための仮想データ構造の定義情報と、
前記利用者端末(2)を入力支援して検索要件に適合する検索要求を発行するとともに、検索結果を前記利用者端末(2)に対して出力するためのプレゼンテーション構造の定義情報と、を含み、
プレゼンテーション構造の定義情報が、異なる検索要求間の関連性を管理する検索要求の定義情報を持つことが好ましい。
【0024】
前記仮想データベース部(20)と前記ビジネスインテリジェンス部(30)は、前記データ辞書(10)に含まれる、異なる検索要求間の関連性を管理する検索要求の定義情報に基づく制御を行うことが好ましい。
具体的には、前記仮想データベース部(20)は、前記検索要求の定義情報において関連付けられた異なる検索要求に対応する複数の検索結果を作成した場合には、作成した複数の検索結果を自動的に関連付け、
前記ビジネスインテリジェンス部(30)は、前記仮想データベース部(20)が関連付けた複数の検索結果からそれぞれ複数のレポートを作成するとともに、作成した複数のレポートを自動的に関連付けることが好ましい。
【0025】
前記ビジネスインテリジェンス部(30)は、
前記利用者端末(2)を前記データ辞書(10)の前記プレゼンテーション構造に基づいて支援して、前記プレゼンテーション構造に基づく検索要求を前記仮想データベース部(20)に対して発行する検索要求発行手段(31)と、
前記仮想データベース部(20)から取得した検索結果をもとにレポートを作成し、前記利用者端末(2)に対して送出するレポート出力手段(32)と、を有することが好ましい。
【0026】
前記ビジネスインテリジェンス部(30)は、
複数の検索要求を実行して得られた複数の検索結果から作成された複数のレポートを順次あるいは同時に表示することができ、
前記データ辞書(10)に含まれる異なる検索要求間の関連性を管理する検索要求の定義情報により、複数のレポートを相互に関連付けて操作できることが好ましい。
【0027】
前記ビジネスインテリジェンス部(30)は、
第1の検索要求に対して第2の検索要求を関連検索として対応付けし、
前記利用者端末(2)において第1の検索要求を実行して第1の検索結果を表示し、第1の検索結果に含まれるデータを選択して第2の検索要求へのリンクを指示することにより、
第1の検索要求に含まれている抽出条件の項目と条件値、および第1の検索結果の中から選択されたデータに対応する項目と表示値を第2の検索要求に引き継ぎ、
第2の検索要求の抽出条件に、第1の検索要求から引き継がれた項目と関連付けられた関連項目が存在する場合には、その関連項目の条件値を、第1の検索要求から引き継がれた条件値に置き換えて、第2の検索要求を実行して第2の検索結果を表示することが好ましい。
【0028】
前記ビジネスインテリジェンス部(30)は、
複数の検索結果から出力された複数のレポートを同一画面上に配置したダッシュボードを構成することができ、
ダッシュボード内の1つのレポートの検索結果に含まれるデータが選択された場合には、選択されたデータに対応する見出し項目及び表示値をダッシュボード内の他のレポートに引き継ぎ、
他のレポートの検索要求の抽出条件に引き継がれた見出し項目と関連付けられた項目が存在する場合には、その抽出条件の条件値を引き継がれた表示値に置き換えて、検索要求を実行して新たな検索結果を表示することにより、ダッシュボード内の複数のレポートを連動して操作することができることが好ましい。
【0029】
前記ビジネスインテリジェンス部(30)の前記レポート出力手段(32)は、
検索要求が、分類が可能な複数の見出し項目(ディメンジョン)と、集約が可能な1以上の値項目(メジャー)を含む場合には、集約レベルが同一である見出し項目の組み合わせについて一体として集約操作を行うものであることが好ましい。
ここで、見出し項目の順位を区分するための集約レベルが2以上設定されている場合において、前記レポート出力手段(32)は、
ある集約レベルでの検索結果を前記利用者端末(2)に表示する場合には、見出し項目については前記ある集約レベルより上位の見出し項目のみに値を表示し、値項目については前記ある集約レベルより上位の見出し項目のみで集約した集計値を表示するようにし、
前記利用者端末(2)が前記ある集約レベルの検索結果の特定のデータを選択した場合には、選択した特定のデータの表示されている見出し項目と同一の見出し項目を持つ1つ下位の集約レベルの明細レコードを前記利用者端末(2)に表示することが好ましい。
【0030】
前記ビジネスインテリジェンス部(30)は、
前記利用者端末(2)が一度作成した検索要求を保存しておき、読み込んで再利用することができるライブラリ管理手段(33)を有し、
ライブラリ管理手段(33)を利用できる前記利用者端末(2)を、利用者の権限に応じて設定することにより、利用目的に応じて検索要求を共有することができることが好ましい。
【0031】
前記ビジネスインテリジェンス部(30)は、
検索要求に対応する検索結果を、前記利用者端末(2)の指定により、一定期間あるいは一定履歴回数、保存することができる検索履歴管理手段(34)を有し、
前記利用者端末(2)において、ライブラリの中から検索要求を指定すると、その検索要求に対応する検索結果が一覧表示され、
その中から検索結果を指定することにより、検索結果を直接参照することができることが好ましい。
【0032】
前記検索要求発行手段(31)は、
関連する複数の項目を一つの概念であらわす集合項目を扱うことができ、
前記集合項目を検索要求の抽出条件に指定する場合には、前記関連する複数の項目の値を参照しつつ条件値の設定ができるとともに、
前記集合項目を検索結果の表示項目に追加する前記利用者端末(2)の入力操作により、前記関連する複数の項目が自動的に検索結果の表示項目に追加されることが好ましい。
【0033】
前記検索要求発行手段(31)の前記集合項目は、
互いに階層関係にある1以上の項目から構成され、
前記利用者端末(2)の画面において、上位レベルの項目の値が一覧で表示されている中から1つの値を選択すると、その値に関連付けられている下位レベルの項目の値が一覧で表示され、
前記利用者端末(2)は、任意のレベルの一覧で表示された値の中から、検索の抽出条件とする値を指定することができることが好ましい。
【0034】
前記仮想データベース部(20)は、
前記仮想データ構造に基づき記述された検索要求を解析して、前記データベース(1)に対する1以上の検索命令を生成する検索要求翻訳手段(21)と、
前記検索要求翻訳手段(21)によって生成された検索命令を前記データベース(1)のうちのいくつかに対してそれぞれ実行して検索データを取得する検索命令実行手段(22)と、
前記検索命令実行手段(22)によって取得された1以上の検索データを統合加工してデータ検索要求に対応する検索結果を作成するデータ統合加工手段(23)と、を有することが好ましい。
【0035】
前記検索要求翻訳手段(21)は、
前記検索要求を、前記データ辞書(10)の前記仮想データ構造に基づいて解析して、
検索対象のデータベース上で実行可能な検索命令と、前記データ統合加工手段(23)で実行可能な一つ以上の検索命令を生成し、
あるデータ統合加工手段(23)に対する検索命令の出力を、他のデータ統合加工手段(23)に対する検索命令の入力とすることにより、多段階にわたるデータ統合加工を行う、検索命令を生成することができる、ことが好ましい。
【0036】
前記検索要求翻訳手段(21)は、
検索要求に指示されている前記仮想データベース部(20)に対する抽出条件は、前記データベース(1)に対する検索命令に変換して適用し、
検索要求で要求されている分類集計は、あらかじめ前記データベース(1)で実行し、
対象の静的な属性を管理するマスターを参照する処理は、明細データの検索段階では行わずに、データが集約された段階で実行し、
これにより、前記データベース(1)から送出されるデータ量が最小となるように検索命令を最適化する、ことが好ましい。
【0037】
前記検索命令実行手段(22)は、
前記データベースが検索インターフェイスとしてSQL言語をサポートする場合には、
前記データベースの物理表に対するSQLによる検索命令の実行手段、
前記データベースに格納されたストアド・プロシージャを用いる検索命令の実行手段、あるいは
前記データベースのSQL言語で直接定義された検索の検索結果を検索対象として検索結果から再度検索する検索命令の実行手段、
のいずれか一つ以上の実行手段を備え、
前記データベースが検索インターフェイスとしてSQL言語をサポートしないデータベースの場合には、
当該データベースの検索インターフェイスに対応する検索命令の実行手段、を備え、
前記データベースがファイルシステム上のデータファイルの場合には、
当該データファイルに対応する検索命令の実行手段、を備えていることが好ましい。
【0038】
前記データ統合加工手段(23)は、
前記検索命令実行手段(22)によって取得された中間的な検索データ、あるいは他のデータ統合加工手段(23)が出力する結果データの一つまたは複数を入力として、データ統合とデータ加工を行って、結果データを一つの表として出力することができ、
さらに結果データを他のデータ統合処理加工手段(23)に入力として引き渡すことにより、複数段にわたるデータ統合加工の処理を行うことができる、ことが好ましい。
【0039】
前記データ統合加工手段(23)は、
各データベースから抽出・集計した中間データを併合した後にキーで集約する併合方式、
あるいは、検索要求の内容に応じて、複数のデータベースの検索対象候補から検索対象を自動的に選択して抽出・集計する選択方式、
あるいは、一つのデータベースから取得した中間データの各レコードに対して、あらかじめ定義された参照条件にもとづいて他のデータベースから参照データを取得し、もとの中間データに不足する項目を参照データから補完する参照方式
のいずれか一つ以上のデータ統合方式を備えており、その中から最適な方式を選択することができることが好ましい。
【0040】
前記データ統合加工手段(23)のデータ統合方式における参照方式は、
一つのデータベースから抽出・集計した中間データを基に、中間データの各レコードに対してその他のデータベースを結合条件にしたがい逐次検索して統合する逐次参照方式、
あるいは、他のデータベースから抽出・集計した中間データを、一つのデータベース管理システムに転送し、転送された中間データ同士、または中間データとデータベース管理システム内のデータをデータベース管理システムの結合機能で統合する一括結合方式、
あるいは、参照元の検索対象となるデータと参照先の検索対象となるデータを取得して、あらかじめ参照条件の条件値の順番に並び替えておき、その後参照元レコードと参照先レコードを順次1件ずつ読み込みながら参照条件の条件値を比較し、参照条件が成立するものについて統合する順次併合方式
のいずれか一つ以上のデータ統合方式を備えており、その中から最適な方式を選択できることが好ましい。
【0041】
前記データ統合加工手段(23)は、
キー項目でグルーピングし属性項目の値をグループ毎に集約する分類・集約処理、項目の値に関するデータ編集処理、判定条件によるデータ抽出処理、出力順指定によるソート処理の機能を備え、
また、レコード間の関係や順序に依存する演算に対応することのできることが好ましい。
【0042】
前記データ統合加工手段(23)は、
データ統合とデータ加工を行った結果データを、ビジネスインテリジェンス部(30)、
他のデータ統合処理加工手段(23)、あるいは、データベースのテーブル、ファイルシステムに格納されるデータファイル、ネットワークを介して送られるデータストリーム、
のいずれかの外部の出力先に、出力することができる、ことが好ましい。
【0043】
前記データ統合加工手段(23)は、
データ統合処理の結果の表データ、あるいは検索命令実行の結果として分割作成される中間的な検索データを、事前に作成して外部記憶領域に格納しておき、検索実行時には、データベースの代わりに当該外部記憶領域に格納されたデータを参照する検索データ・キャッシュを備えることが好ましい。
【0044】
前記データベース(1)は、
リレーショナルデータベース、オブジェクト指向データベース、XMLデータベース、ファイルシステム、URLディレクトリ管理システム、データウェアハウス、データマートのうちの少なくとも1つを含むことが好ましい。
【0045】
本発明の第2の側面は、コンピュータを、検索命令に応答して検索データを返す2以上のデータベース(1)をデータソースとするデータ検索装置として機能させるプログラムである。
このプログラムは、
前記コンピュータを、
利用者端末(2)を入力支援して検索要件に適合する検索要求を発行するためのプレゼンテーション構造の定義情報と、前記検索要求を解析して前記データベース(1)で処理可能な物理情報で表される検索命令に変換するための仮想データ構造の定義情報と、異なる検索要求間の関連性を管理するための検索要求の定義情報と、を含むデータ辞書(10)と、
前記データ辞書(10)で定義された前記プレゼンテーション構造に基づいて前記利用者端末(2)を入力支援して、前記プレゼンテーション構造に基づき記述された検索要求を発行するとともに、当該検索要求を仮想データベース部(20)で実行して取得した前記仮想データ構造に基づく検索結果を、前記利用者端末(2)に対して出力するビジネスインテリジェンス部(30)と、
前記データ辞書(10)で定義された前記仮想データ構造に基づいて前記検索要求を解析して検索命令を生成し、生成された検索命令を前記データベース(1)でそれぞれ実行して2以上の検索データを取得し、取得された2以上の検索データを統合加工して検索要求に対応する検索結果を作成する仮想データベース部(20)と、を含み、
異なる検索要求に対応して作成された複数の検索結果を、前記検索要求の定義情報により関連付ける
データ検索装置として機能させる。
【0046】
本発明の第3の側面は、上記プログラムを格納したコンピュータが読み取り可能な記録媒体である。
【発明の効果】
【0047】
本発明は、複数の検索要求間の関連性を管理することのできるデータ辞書を設け、仮想データベースとBIツールを一体のソフトウェアとして融合させることで、複数のデータベースからデータを直接取得する機能、用途・目的に応じた複数の検索結果を関連付けて作成する機能、および複数の検索結果にまたがる複数のレポートを関連付けて操作する機能を発揮する。したがって、本発明によれば、単一のキューブでは対応が困難な不整合を含むデータの分析が容易となる。これにより、利用者の観点からは、利用者の目的や用途に合わせて仮想データ構造を柔軟に作成することができるため、例えば、全体については関連付けによりデータ統合して分析しつつ、詳細については業務システムのそれぞれのデータを直接分析するような、自由度の高いきめ細かな分析を簡単に実現することができる。
【0048】
このように、本発明は、BIツールの機能と仮想データベースの機能の両方を含んで構成され、それぞれの機能が共通のデータ辞書で駆動されることを特徴とする。BIツールが検索対象とするデータ構造定義を仮想データベースが提供するデータ構造定義と共通化することにより、仮想データベースの提供機能は、自ずとBIツールの検索要件を必要かつ十分に満たすものとなり、分析・設計プロセスを大幅に簡略化できる。また、BIの要件分析ではユーザニーズを事前に正確に把握することが難しく、構築途中あるいは完成後でも要件の追加・変更が多発しがちであるが、BIツールと仮想データベースのデータ構造定義をデータ辞書において一元的に管理することで、ユーザ要件の追加・変更の影響範囲が明確になり、システム保守プロセスも大幅に効率化できる。
【0049】
さらに、組織のトップレベルの経営分析から、それぞれの現場の個別業務の分析まで、共通したデータ分析手段を使えることができるようになるため、組織における情報共有とコミュニケーションの円滑化が促進される。
【0050】
また、システムの観点からは、データ分析のために企業内の複数の業務システムの大量のデータを一括で複製してデータウェアハウスなどに再構成・蓄積する必要性がなくなり、仮想データ構造をデータ辞書に定義するだけですぐさま分析データを利用可能となるため、きわめて短期間・低コストで開発することができる。
【0051】
また、企業全体にわたるデータを統合的に体系管理できるため、データに関するアクセス管理や品質管理の効率化を図ることができるメリットも有している。
【発明を実施するための形態】
【0053】
以下、図面を用いて本発明を実施するための形態について説明する。本発明は、以下に説明する形態に限定されるものではなく、以下の形態から当業者が自明な範囲で適宜変更したものも含む。
【0054】
<システムの全体構成図>
図3は、本発明の一実施形態であるデータ検索装置の全体構成を示している。データ検索装置100は、検索命令に応答して検索データを返す2台以上のデータベース1をデータソースとするデータ検索装置である。データ検索装置100は、2台以上の外部のデータベース1と、1台または2台以上の外部の利用者端末2と、1台または2台以上の外部の管理者端末3とに接続される。また、データ検索装置100は、データ辞書10と、仮想データベース部20と、ビジネスインテリジェンス部30とを備えている。また、データ検索装置100は、外部の管理者端末2に接続されるデータ辞書編集部40を持つこともできる。
データベース1として接続されるデータベースが2台以上である場合とは、物理的にデータベースが2台以上に分かれている場合のみならず、物理的には1つのデータベースが異種データを含むなどの理由で論理的に2台以上に分かれている場合を含む。
【0055】
<不整合を含むデータの分析処理イメージ図>
図4は、データ検索装置100を用いて、単一のキューブでは対応が困難な不整合を含むデータを分析する際の処理イメージ図である。
【0056】
図4に示された例において、検索要求1及び検索要求2は、検索する対象(データベースなど)が異なっている。ただし、検索要求1と検索要求2は、検索する内容は関連している。このため、検索要求1と検索要求2は、データ辞書10の検索要求間の関連性の定義(検索要求の定義情報)により、関連検索として対応付けられている。検索要求同士の関連付けは、検索要求の入力画面などにおいて利用者が任意に行うことができる。
【0057】
このように、データ辞書10において検索要求1と検索要求2とを関連付けることで、検索要求1を実行した検索結果1から作成されたレポート1と、検索要求2を実行した検索結果2から作成されたレポート2を、検索要求間の関連性に基づき相互に関連付けることができる。このため、現在のレポートの抽出条件や選択内容を引き継ぎながら関連するレポートへ移動する、検索リンクの機能を実現することができる。このように、異なる検索要求から作成された複数の検索結果を関連付け、異なる検索結果間においても簡単にレポート間を移動できることにより、単一のキューブでは対応が困難な不整合を含むデータを効率的に分析できるようになる。
【0058】
具体的には、利用者はまず、ビジネスインテリジェンス部30の検索要求入力画面から、用途・目的に応じて抽出条件や出力方法などの設定を行い、検索要求1を仮想データベース部20に発行する。仮想データベース部20では、受け取った検索要求1に基づき、複数のデータベース1のうちのいくつかに対して検索命令を発行して検索を実行し、それぞれの検索で取得した2以上の検索データを統合して検索結果1を作成する。ビジネスインテリジェンス部30では、作成された検索結果1から分析用の多次元のキューブを構築し、このキューブの一つの断面をレポート1として表示する。表示されたレポート1に対しては、スライシング、ダイシング、ドリルダウンのOLAP分析操作を指示することにより、検索結果1のキューブの他の断面に切り替えて表示することもできる。
【0059】
さらに、ビジネスインテリジェンス部30は、データ辞書10における検索要求1と検索要求2の関連性の定義に基づき、検索要求1に基づいて作成されたレポート1から検索要求2を呼び出すための、検索リンク機能を提供する。レポート1から検索要求2を呼び出すときには、検索要求1に含まれている抽出条件の項目と条件値、及び表示されているレポート1に対して利用者がマウスやキーボードにより選択したデータに対応する項目と表示値を、検索要求2に引き継ぐ。検索要求2の抽出条件に、検索要求1から引き継がれた項目と関連付けられた関連項目が存在する場合には、その関連項目の条件値を、検索要求1から引き継がれた条件値に置き換えて、検索要求2を発行する。このようにして、ビジネスインテリジェンス部30は、検索要求2を仮想データベース20に発行する。そして、仮想データベース部20は、検索要求2を実行して検索結果2を作成して、ビジネスインテリジェンス部30に受け渡す。ビジネスインテリジェンス部30は、検索結果2から分析用の多次元のキューブを構築し、キューブの一つの断面をレポート2として表示する。これより、レポート1で利用者が選択したのと関連する内容を、自動的に検索要求2で異なる視点から検索して、レポート2として表示することができる。表示されたレポート2に対しては、上記したレポート1と同様に、スライシング、ダイシング、ドリルダウンのOLAP分析操作を指示することにより、検索結果2のキューブの他の断面に切り替えて表示することもできる。
【0060】
ここで、レポート1からレポート2への移動は、人手を介さないで自動的に行なうこともできる。したがって、データ辞書10によって検索要求1と検索要求2の関連性を定義することにより、検索要求1を実行した検索結果1から作成されたレポート1と検索要求2を実行した検索結果2から作成されたレポート2とを互いに関連付けできるようになり、異なる検索結果間においても簡単にレポート間を移動できるようになる。
【0061】
また、異なる検索要求から作成された複数のレポートを同一画面上に配置したダッシュボードにおいても、同様に、検索要求間の関連性の定義に基づくレポート間の関連付けを行なうことができる。レポート間の関連付けに基づき、ダッシュボードに配置された異なるデータから作成された複数のレポートを、一括してスライシング、ダイシング、ドリルダウンするOLAP分析操作を実現することができる。
【0062】
<データ辞書のデータ構造>
図5は、データ辞書10のデータ構造の概略をあらわすクラス図である。
データ辞書10は、物理データ構造の定義情報、仮想データ構造の定義情報、及びプレゼンテーション構造の定義情報の3階層から構成される。物理データ構造の定義情報は、検索対象とする複数のデータベース1のそれぞれに接続して、データ検索を行うために必要となるテーブルや項目といった物理データ構造を定義している。仮想データ構造の定義情報は、物理データ構造とは完全に独立しており、用途・目的に応じてデータ利用の視点からデータ構造を柔軟に定義し、物理データを要求されたデータ構造に変換するための定義を含む仮想データ構造を定義している。プレゼンテーション構造の定義情報は、利用者を入力支援して検索要件に適合する検索要求を発行するためのプレゼンテーション構造を定義している。
物理データ構造の定義情報は、基本的に、データベースの定義と同一あるいはその必要部分の転記である。仮想データ構造の定義情報は、データベースに関する知識を有するシステム管理者が、データ利用ニーズに応じて構築するのが、通例である。一方、プレゼンテーション構造の定義情報は、利用者がそれぞれの権限や役割に応じて、随時、追加・更新できるようにしても構わない。
【0063】
(物理データ構造)
データ辞書10は、仮想データベース部20から、検索対象とする外部のデータベースに接続して、データ検索を行うために必要となる情報を、物理データ構造として定義する。接続するデータベースの個数は2台以上であることが好ましい。データベースが2台以上である場合とは、物理的にデータベースが2台以上に分かれている場合のみならず、異種データを含むなどの理由で論理的に2台以上に分かれる場合を含む。
物理データ構造の定義情報は、検索対象とするデータベースの定義である「物理データベース」、物理データベースに含まれる「物理表」、および物理表に含まれる「物理項目」の定義情報から構成される。
「物理データベース」の定義情報は、データベースへの接続手順、データベースが取り扱うことができるデータ型の種類、データベースに装備されている関数の種類等、データベース固有の情報等が定義された定義情報であり、検索対象が複数のデータベースにまたがる場合には、複数の「物理データベース」が定義される。
「物理表」の定義情報は、データベースに格納されている表(テーブル)の定義と同一の定義情報、あるいはその必要部分の転記である。
「物理項目」の定義は、データベース内の物理表に含まれる項目(フィールド)及びその属性の定義と同一の定義情報、あるいはその必要部分の転記である。
【0064】
(仮想データ構造)
データ辞書10において、仮想データ構造は、ユーザや業務の立場からみたデータ構造を定義している。仮想データ構造の定義情報は、基本的に、仮想的なデータ構造の全体である「仮想データベース」、仮想データベースに含まれる「仮想表」、仮想表に含まれる「仮想項目」の定義情報を含む。
対象とするユーザや業務が独立して複数ある場合は、複数の「仮想データベース」の定義情報が定義されることがある。
「仮想表」の定義情報は、論理的に完全で一貫性のある多次元データモデルを生成することのできる仮想項目の集合である。一つの仮想表に含まれる仮想項目は、任意に組み合わせることにより検索を定義し、取得したデータによりキューブを作成することができる。
「仮想項目」の定義情報では、業務およびシステムで認識の対象として具体的に識別できるものを指し示す実体(エンティティ)の特徴や性質などの属性(アトリビュート)を定義する(例えば「顧客」、「商品」、「注文書」、「売上高」など)。「仮想項目」の定義情報には、項目名が異なる複数の物理項目を論理的に同一の仮想項目として統合するための定義が含まれる。つまり、項目名が異なる複数の物理項目は、物理的には異なる項目として扱われる。ただし、項目名が異なる複数の物理項目であっても、論理的には同一の項目である場合がある。そこで、項目名が異なる複数の物理項目の対応関係を「仮想項目」の定義情報において定義しておくことで、これら複数の物理項目を同一の仮想項目として扱うことができる。
【0065】
さらに、仮想データ構造は、「仮想表」に対する「仮想項目」の対応関係を示した「仮想表項目」の定義情報を有することが好ましい。本実施例は、仮想表に従属して仮想項目を直接的に定義しない。つまり、本実施例では、異なる仮想表の間で仮想項目を関連付けるために、仮想項目を仮想表と独立して仮想データベース内で定義し、仮想表に対する仮想項目の対応関係を「仮想表項目」として関連付けている。これにより、異なる仮想表間でも、論理的に同一の項目である場合には、同一の仮想項目を割り当てるものとする。
このように「仮想表項目」の定義情報を設けることで、異なる仮想表間でも同一の仮想項目かどうかの判定が可能となり、同一の仮想項目ならば共通の属性を有することが保証される。このため、仮想表項目を参照することで、異なる仮想表の検索により作成された検索結果間でも、抽出条件や選択条件の引継ぎが可能となる。
【0066】
なお、本実施例では、同一仮想データベース内の異なる仮想表における同一項目の判別を、仮想項目の名称を仮想データベース内でユニークとする制約により行っている。ただし、これに限らない方式でも同一項目の判別が可能である。また、仮想表ごとに異なる仮想項目の名称を表示させたい場合には、仮想表項目に仮想表ごとの別名を与えることで対応することができる。
また、本実施例では、異なる仮想データベース間の同一項目の判別は、仮想表ごとにそれぞれ仮想項目を定義しておき、異なる仮想表間で同一の仮想項目であることの定義情報を後から仮想項目に相互に付加する方式で行っている。
【0067】
「仮想表」を構成する「仮想表項目」の定義情報は、キューブにおいてデータ集計項目(ディメンション)として扱う項目と、キューブにおいて値項目(メジャー)として扱う項目に区分される。
さらに「仮想表項目」の定義情報は、通常の文字型、数値型、日付型といった単純なデータ型に加えて、複数の属性を持つ実体を表現するために、関連する複数の仮想項目の集合として一つの仮想項目(クラス仮想項目)を定義することができる。特に、階層関係にあるような複数の仮想項目の集合については、階層型クラス仮想項目を定義することができる。
【0068】
さらに、仮想データ構造の定義情報には、仮想データベースの機能を使用して、物理データ構造を持つ複数のデータベースに格納されたデータを、仮想データ構造を持つ仮想データに変換するために必要な定義情報が含まれる。このための仮想データ構造には、例えば、「算出表」、「算出項目」、「物理表結合定義」、および「算出表適用定義」の定義情報が含まれる。
「算出表」の定義情報は、外部のデータベースを直接の検索対象とする「外部算出表」の定義情報と、外部算出表を含む他の算出表を検索対象とする「内部算出表」の定義情報から構成される。
「算出項目」の定義情報は、は算出表毎に各仮想項目に対して最大一つ定義され、算出表で仮想項目に対して算出項目が定義されない場合は、当該仮想項目を算出表で算出できないものとする。
【0069】
(外部算出表)
「外部算出表」の定義情報は、データベースから同時算出が可能な算出項目の集合に関する定義情報であり、外部算出表は一つのデータベースに対応付けられる。
「外部算出表」の定義情報は、データベースが検索インターフェイスとしてSQL言語をサポートする場合には、データベースの物理表に対するSQLによる検索手段、あるいはデータベースに格納されたストアド・プロシージャを用いる検索手段、あるいはデータベースのSQL言語で直接定義された検索の検索結果を検索対象として検索結果を再度検索する検索手段(インターナルビュー)のいずれかの検索手段を備える。また、外部算出表は、データベースが検索インターフェイスとしてSQL言語をサポートしない場合には、当該データベースの検索インターフェイスに対応する検索手段を備える。また、外部算出表は、データベースがファイルシステム上のデータファイルの場合には、当該データファイルに対応する検索命令の実行手段を備えることができる。
また、「外部算出表」の定義情報は、複数の物理表の相互の結合条件を「物理表結合定義」により定義することにより、データベースに含まれる複数の物理表を検索対象とすることができる。「物理表結合定義」は、外部算出表において基準としてデフォルトで用いる物理表を最上位のルートとし、補完的に結合参照される物理表を下位の子とする木構造、あるいはネットワーク構造で表現される。具体的には、この定義情報により、データベース検索命令の生成時に、自動的に必要な物理表間の結合条件が付加されるようになる。
外部算出表の算出項目には、結合定義された物理表の物理項目と、データベース固有の文法で記述される算出定義式や選択条件式等の定義情報とが含まれる。外部算出表の算出項目は、データベース検索命令の生成時に自動的に当該算出項目の算出方法を付加するために用いられる。
【0070】
(内部算出表)
「内部算出表」の定義情報には、外部算出表を含む1つ以上の他の算出表の出力を入力として、1つの処理結果に統合して出力するデータ統合処理を定義することができる。また、内部算出表の算出項目には、項目編集、分類・集約、並べ替えなどのデータ加工処理に関する指示を定義することができる。
【0071】
(算出表適用定義)
「算出表適用定義」は、特定の仮想表に対して検索時に適用可能な算出表の関係の定義情報である。本実施例では、仮想表に対応する1つの内部算出表を最上位のルートとし、1つ以上の外部算出表を末端のリーフとする木構造で表現しているが、あるいはネットワーク構造で表現することもできる。
一つの内部算出表に対しては、その下位に1つ以上の算出表を配置することができ、下位の算出表の出力が上位の内部算出表の入力となる。下位の複数の算出表の出力を上位の内部算出表で統合する方式を算出表適用定義に含むことができ、本実施例では、併合方式、選択方式、参照方式、およびそれらの任意の組み合わせを指定することができる。
算出表適用定義は、最も簡単な構成では、上位の1つの内部算出表と下位の1つの外部算出表を持つ。またより複雑な場合においては、複数段の上位の内部算出表と、最下位に複数の外部算出表を持つ
あるいは、算出表適用定義を、ネットワーク構造として表現することも可能である。この場合には、内部算出表は1つ以上の他の算出表の出力を入力として統合し、条件により場合分けして1つ以上の処理結果を出力する。
【0072】
(プレゼンテーション構造)
データ辞書10において、プレゼンテーション構造は、利用者を入力支援して検索要件に適合する検索要求を発行するための定義、及び検索結果を利用者に出力するための定義を含むことができる。
「検索要求」の定義情報は、検索の対象とする仮想表を指示する「検索表」、仮想表のデータの検索範囲を指示する「抽出条件」、検索結果としてデータを取得する仮想項目を指示する「表示項目」の定義情報を含む。また、検索要求を仮想データベース上で実行した検索結果が存在している場合には、プレゼンテーション構造において、検索日時、検索実行者、検索状況、レポート出力状況などの「検索履歴」と、その「検索結果」のデータが管理される。
【0073】
また、「検索要求」の定義情報には、異なる検索要求間の関連性を管理するための定義情報が含まれる。すなわち、「検索要求」の定義情報には、検索の対象となるデータベースや、データベースからデータを抽出する条件が異なる複数の検索要求であっても、これらの複数の検索要求が互いに関連性を有している旨が定義されている。これにより、「検索要求」の定義情報には、異なる検索結果を対象とするレポートに対して相互間の関連付けを行う「検索リンク」の設定を含むことができる。「検索リンク」において、異なる検索結果を対象とする相互間の関連付けは、異なる検索結果の「抽出条件」あるいは「表示項目」に共通の「仮想項目」を割り当てることにより実現される。
【0074】
プレゼンテーション構造には、「ダッシュボード」を含むことができる。ダッシュボードは、ユーザが必要とする多様な視点からの1つ以上のレポートを1つにまとめて表示させるための機能であり、それぞれのレポートの検索要求と、検索要求に対応する検索結果のレポート出力方法や配置などの定義を含んでいる。ダッシュボード内の複数のレポートの抽出条件が共通の「仮想項目」を対象としている場合には、「ダッシュボード抽出条件」として一括で指定することが出来る。これにより、ダッシュボード内の異なる検索結果を参照する複数のレポートを、一括してデータ分析操作できるようになる。
【0075】
プレゼンテーション構造は、「ライブラリ」をさらに含む。ライブラリは、ユーザが作成したレポートの検索要求のテンプレートあるいはダッシュボードを保管する。ライブラリを参照・編集できるユーザ権限を制限することにより、許可されたユーザの間でレポートの検索テンプレートあるいはダッシュボードの共有を実現することができる。
【0076】
<ビジネスインテリジェンス部の構成>
図6に、本実施例におけるビジネスインテリジェンス部30の機能ブロック図を示す。
図6に示されるように、ビジネスインテリジェンス部30は、例えば、検索要求発行手段31、レポート出力手段32、ライブラリ管理手段33、検索履歴管理手段34、検索リンク手段35、ダッシュボード表示手段36、およびダッシュボード連動手段37から構成される。
ビジネスインテリジェンス部30の動作は、利用者の役割や目的によって複数の利用パターンを想定することができる。例えば、パワーユーザや管理スタッフ向けの自由検索では、検索要求発行手段31の機能を使って、出力項目、出力形式、条件項目などを任意に設定して検索要求を発行し、見たいデータについてのレポートを自由に作成する。また、一般ユーザや経営層向けの定型検索では、出力項目、出力形式、条件項目などが固定で設定されている検索テンプレートをライブラリ管理手段33等から呼び出し、条件の値のみを変えて検索要求を発行し、あらかじめ規格化されたレポートを作成する。また、レポート参照では、検索結果一覧等から自分や他ユーザが過去に検索した検索結果を検索履歴管理手段34から呼び出して閲覧する。この場合は、検索要求発行手段31の機能は直接に使用する必要はない。
【0077】
(検索要求発行手段)
検索要求発行手段31が機能しているときの画面イメージを
図7に示す。検索要求発行手段31は、データ辞書10に登録されているプレゼンテーション構造の定義情報に基づいて利用者端末2を入力支援して、この利用者端末2によって入力された検索要件に適合する検索要求を発行することができる。検索要求発行手段31は、例えば、「検索対象選択機能」、「抽出条件設定機能」、「表示項目設定機能」、および「検索要求発行機能」を有している。
【0078】
検索対象選択機能では、仮想データベースと仮想表を選択し、表示されている選択可能な仮想項目の一覧から、任意の仮想項目を選択して、抽出条件項目あるいは表示項目に追加することができる。
図7に示した例では、「販売実績」という仮想データベースに含まれる「出荷実績」という仮想表から、「商品」という仮想項目が選択されて、抽出条件項目および表示項目に追加された様子が示されている。
抽出条件設定機能では、抽出条件項目を選択すると、それぞれの仮想項目に割り当てられている数値型、文字型、日付型、メニュー選択型など各種の条件設定ダイアログが表示される。このため、利用者は画面指示に従って簡単に抽出条件を設定できる。
表示項目設定機能では、検索結果のレポートに表示される表示項目を指定できるとともに、表示項目について、クロス集計の場合の行/列の指定、ソートにおける表示項目の優先順、ソート時の並び方向、小計の有無などを設定できる。
検索要求発行機能では、レポートの件名等の設定を行い、すべての設定が完了したならば、検索実行を指示する。
このようにして、検索要求発行手段31によって検索要求が発行される。そして、検索要求発行手段31によって発行された検索要求は、
図6に示されるように、仮想データベース部20へと送出されるとともに、検索履歴管理手段34へと伝達される。
【0079】
(レポート出力手段)
レポート出力手段32は、仮想データベース部20から取得した検索結果を利用者端末上で基本的に1画面に1つの表もしくはグラフなどをレポートとして表示するほか、表計算ソフト、CSVファイル、またはHTMLファイルなどの形式で外部出力することができる。
またレポート出力手段32は、検索結果を直接表示するだけではなく、検索結果を再編成して多次元多階層のキューブを作成し、検索結果を特定の項目でグルーピングして集計を行う機能、行および列の項目を指定してクロス集計する機能、検索したデータを特定の項目で並べ替える機能、および検索したデータをもとに計算した値を付加できる機能などを備えている。
【0080】
検索要求の表示項目は、データを識別および分類することが可能であり行や列のラベルになる見出し項目(ディメンジョン)と、分析対象となる属性を定義し値の集約が可能な値項目(メジャー)に区分される。通常は、検索要求で指定されている見出し項目についてはそれぞれの値を表示し、値項目については見出し項目で集約した集計値を表示して、レポート出力を行う。
さらに、検索要求の見出し項目には、集約レベルを設定することができる。集約レベルが同一である見出し項目が複数ある場合には、グルーピング・合計計算などの集約操作を、個別の見出し項目ごとには行なわず、集約レベルが同一の見出し項目の組み合わせを一体として行う。
集約レベルが2以上設定されている場合においては、利用者端末(2)から、ある集約レベルが指定された場合には、見出し項目についてはある集約レベルより上位の見出し項目のみに値を表示し、値項目については前記ある集約レベルより上位の見出し項目のみで集約した集計値を表示して、レポート出力するようにする。利用者端末(2)が前記ある集約レベルのレポートの特定のデータを選択した場合には、それより1つ下位の集約レベルの明細レコードを利用者端末(2)に表示するようにする。これにより、集約した中の1レコードを選択するとその詳細な内訳データを展開して表示するドリルダウンや、その逆のロールアップの操作を、集約レベルの設定により簡単に実現することができるようになる。
【0081】
また、スライシングは、検索要求に含まれる抽出条件の指定を変更することにより実現することができ、ダイシングは、検索要求に含まれる表示項目の指定を変更することにより実現することができる。
利用者端末2を介してレポートのデータ分析操作が行われたとき、レポート出力手段32は、そのデータ分析操作後の表やグラフなどを作成して、再度利用者端末2に提供する。
図6に示されるように、レポート出力手段32によって作成されたレポートは、検索リンク手段35およびダッシュボード表示手段36へと伝達される。
【0082】
(ライブラリ管理手段)
ライブラリ管理手段33は、ユーザの検索要件に基づいて作成された検索要求を保管し、ユーザの権限にしたがい許可されたユーザの間で共有することにより、定型検索のための検索テンプレートとして再利用できるようにする。またライブラリ管理手段33は、ユーザが過去に検索した検索要件に対応する検索結果を保管し、自分や他のユーザが検索結果をレポートとして参照できるようにする。これにより、ユーザ間での情報や分析ノウハウの共有を支援する役割を持つ。
【0083】
図8に、ライブラリ管理手段33が機能しているときの画面イメージを示す。
検索要求のライブラリは、本実施例では仮想データベース単位、あるいは特定のユーザのグループ単位に作成され、登録された検索要求が一覧で表示される。ライブラリに登録した検索要求は、登録者本人でなくとも、参照権限を有するユーザは参照することができる。
ライブラリ管理手段33は、検索を定期的にスケジュール実行する機能を備えており、指定された検索要件に基づいた検索をスケジュール実行して検索結果を定期的に作成しておくことにより、一般的なユーザが日常的に使用するようなレポートは、毎回検索することなく、あらかじめ作成しておくことができる。
図6に示されるように、ユーザが作成した検索要求は、ライブラリ管理手段33を介して、検索要求発行手段31及びダッシュボード表示手段36へと伝達される。
【0084】
(検索履歴管理手段)
検索履歴管理手段34は、検索要求に対応する検索結果を、利用者端末2の指定に基づいて、一定期間あるいは一定履歴回数保存する。このため、
図6に示されるように、検索履歴管理手段34には、検索要求発行手段31によって発行された検索要求と、この検索要求に対応して仮想データベース20から取得された検索結果が入力される。
検索要求ライブラリから表示されている検索要求の一つをマウス等で選択すると、検索履歴の保持が指定された検索要求については、直近の検索の実行日時等が検索履歴としてメニュー表示され、メニューの中から選択するとその検索結果のレポートが画面に表示される。新規に検索を行う場合には、検索履歴メニューから「新規検索」を選択する。
検索履歴保持については、年、月、週、日等の一定期間、あるいは一定の履歴回数の検索結果を保持するように指定して、検索履歴管理手段34に登録しておくことができる。
これらの機能を利用することにより、様々な役割とスキルユーザでも、規格化され品質の安定したレポートを、毎回検索することなく即座に入手することが出来るようになり、ユーザ間での情報の共有が容易となる。
【0085】
(ダッシュボード表示手段)
ダッシュボード表示手段36は、ユーザが必要とする多様な視点からの情報を1つのレポートとしてまとめて利用者端末2の表示部(ディスプレイ)に表示させるために、1つの画面内に複数の表やグラフを配置させることができる。ダッシュボード内の個々の表やグラフは、検索要求指示部およびレポート表示部を使って表示されるため、基本的には独立して動作することができる。ダッシュボードは、検索要求と同様にライブラリに登録しておき、テンプレートとして再利用を行ったり、過去の検索結果を参照したりすることができる。
【0086】
(不整合を含むデータを扱うための機能)
本発明は、ビジネスインテリジェンスとしての一般的な機能に加えて、不整合を含むデータを扱うことができる機能を備えている。このため、本発明は、複数の検索要求から作成された複数の検索結果にまたがる複数のレポートを関連付けて操作するための機能として、検索リンク手段35及び複数レポートの一括操作機能を備える。
また、本発明は、マスター表などの関連する複数の仮想項目の集合を、複数の検索要求で共通的に使用できるクラス仮想項目として定義する機能を備えることにより、異なる検索要求間でも共通の仮想項目として関連付けして処理することが容易になる。
【0087】
(検索リンク手段)
検索リンク手段35は、異なる検索結果を対象とするレポートに対しても相互間の関連付けを行うことができる。この検索リンク手段35により、現在のレポートの抽出条件や選択内容を引き継ぎながら関連する他のレポートへの移動を実現する。
図9に、検索リンク手段35の画面操作イメージを示す。
【0088】
検索リンク手段35では、まず、利用者端末上に表示されている表もしくはグラフの1つのデータ(レコード)を選択してマウス・クリックあるいはボタンの押し下げ等の操作を行うと、リンクが可能なレポートの一覧がメニュー表示される。例えば、
図9に示された「表からの検索リンク」の例では、あるレポートの表に含まれるデータ(レコード)のうち、B産業の商品Pの数量:120を選択することで、新たなウィンドウが表れて、そのウィンドウ内には「売上月別推移」や、「担当者別明細」、「売上利益率」のように、この選択されたデータからリンク可能な別のレポートのメニューが表示される。
そして、メニューの中から1つのレポートを選択すると、現在表示されているレポートの検索要求に含まれている抽出条件の条件項目及び条件値、並びに検索結果で選択されているレコードに対応する表示項目と表示値の引き継ぎが行われる。すなわち、リンク先の検索要求の抽出条件に引き継がれた項目と同一の項目が存在する場合には、その条件値を引き継がれた条件値に置き換えてから、リンク先の検索要求を実行して検索結果を取得し、画面が切り替わる。
検索リンクの一覧にメニュー表示されるレポートは、リンク元の検索要求に対してライブラリに登録されている任意の検索を関連付けることにより設定し、リンク元の検索要求をライブラリに保存する際に、メニュー表示されるレポートの情報もあわせて保存される。
【0089】
上記したような複数のレポート同士の関連付け(リンク)は、データ辞書10における検索要求の定義情報に基づくものである。つまり、データ辞書10において、検索要求の定義情報には、検索の対象となるデータベースや、データベースからデータを抽出する条件が異なる複数の検索要求であっても、これらの複数の検索要求が互いに関連性を有している旨が定義されている。このため、まず、検索リンク手段35は、データ辞書10の検索要求の定義情報を参照し、この定義情報において、ある検索要求と他の検索要求が関連付けられているかどうかを確認する。これにより、検索リンク手段35は、ある検索要求に基づいて作成されたレポートと、他の検索要求に基づいて作成されたレポートとの間の関連性を把握することができる。そして、検索リンク手段35は、あるレポートのデータが指定されたときには、データ辞書10の検索要求に含まれる関連性の定義情報を参照して、その指定されたデータとの関連付けられたデータを有する他のレポートを、ユーザの利用端末上に表示する。これにより、レポート間のリンクを行う。
【0090】
続いて、
図10に、検索リンク手段35において、異なる検索結果を対象とするレポートに対しても相互間の関連付けを実現することのできる、抽出条件および選択内容の引き継ぎの処理フローを示す。
先ず検索リンク手段35は、リンク元となるレポートの検索要求から抽出条件を1つ取得する(S1)。次に検索リンク手段35は、データ辞書10を参照してリンク先となるレポートの検索要求から抽出条件を1つ取得する(S2)。そして、検索リンク手段35は、データ辞書10を参照して、リンク元の抽出条件の仮想項目とリンク先の抽出条件の仮想項目とが「同じ」ものであると関連付けられているか否かを判断する(S3)。ここで、もし、リンク元の抽出条件の仮想項目とリンク先の抽出条件の仮想項目がデータ辞書1において「同じ」と関連付けられているならば、検索リンク手段35は、リンク先の抽出条件の条件値をリンク元の抽出条件の条件値に置き換える(S4)。他方で、リンク元の抽出条件の仮想項目とリンク先の抽出条件の仮想項目が同じでなければ何もしない。
以降、検索リンク手段35は、次のリンク先の抽出条件を同様に調査する(S5)。ここで、すべてのリンク先の抽出条件を調査し終えたと判断したならば、次のリンク元の抽出条件の調査(S6)へと進み、まだリンク先の検索要求に未処理の抽出条件があると判断したならば、再びステップS2へと戻る。その後、ステップS6では、次のリンク元の抽出条件を同様に調査する(S6)。ここで、すべてのリンク元の抽出条件を調査し終えたと判断したならば、次のステップS7へと進み、まだリンク元の検索要求に未処理の抽出条件があると判断したならば、再びステップS1へと戻る。
【0091】
次に検索リンク手段35は、リンク元となるレポートの検索結果から、画面上でマウス等により選択されているレコードを取り出し、選択レコードの表示項目と表示値のペアを1つ取得する(S7)。次に検索リンク手段35は、リンク先となるレポートの検索要求から抽出条件を1つ取得する(S8)。そして、検索リンク手段35は、データ辞書10を参照して、リンク元の選択レコードの表示項目とリンク先の抽出条件の仮想項目が「同じ」ものであると関連付けられているか否かを判断する(S9)。ここで、もし、リンク元の選択レコードの表示項目とリンク先の抽出条件の仮想項目がデータ辞書10において「同じ」と関連付けられているならば、検索リンク手段35は、リンク先の抽出条件の条件値をリンク元選択レコードの当該表示項目の表示値に置き換える(S10)。他方、リンク元の選択レコードの表示項目とリンク先の抽出条件の仮想項目が同じでなければ何もしない。
以降、検索リンク手段35は、次のリンク先の抽出条件を同様に調査する(S11)ここで、すべてのリンク先の抽出条件を調査し終えたと判断したならば、次のリンク元の選択レコードの調査(S12)へと進み、まだリンク元の検索要求に未処理の抽出条件があると判断したならば、再びステップS8へと戻る。その後、ステップS12では、次のリンク元の選択レコードの表示項目を同様に調査する(S12)。ここで、すべてのリンク元の選択レコードの表示項目を調査し終えたと判断したならば、引き継ぎ処理を終了させ、まだリンク元の選択レコードに未処理の表示項目があると判断したならば、再びステップS7へと戻る。
最後に、検索リンク手段35は、抽出条件が置き換えられたリンク先レポートの検索要求を仮想データベース部20に対して発行し、抽出条件および選択内容が引き継がれたリンク先の検索結果を得る。
【0092】
ここで、「同じ」と関連付けられているかどうかの判定は、本実施例においては、リンク元レポートの検索要求とリンク先レポートの検索要求が同一の仮想データベースを検索対象とする場合には、検索対象の仮想表に関わらず、仮想項目の定義(すなわち項目の名称)が同一かどうかで行っている。これにより、それぞれの検索要求間あるいは検索結果間あるいはレポート間の項目の関連付けを個別に定義することなく、異なるレポート間での抽出条件および選択内容の引き継ぎを、自動的に実現している。
また、リンク元検索要求とリンク先検索要求の検索対象が異なる仮想データベースの場合でも、仮想項目の定義に付加された、「異なる仮想表間で同一の仮想項目である」ことの定義情報を参照することにより、関連付けを判定することができる。
【0093】
(ダッシュボード連動手段)
ダッシュボード連動手段37は、複数のレポートを同一画面上に複数配置するダッシュボードにおいても、異なる検索結果から作成された複数のレポートを一括して、データ分析操作することができる。
図11に、ダッシュボードにおける複数レポート間の抽出条件連動の設定画面のイメージを示す。
ダッシュボードを構成する複数のレポートの間で抽出条件を連動させるには、先ず、「条件追加」のボタンを指示して「ダッシュボード抽出条件の追加」の画面を開く(
図11下)。すると、この「ダッシュボード抽出条件の追加」の画面には、抽出条件を連動させようとしているレポートの検索要求に含まれる抽出条件が表示される。そこで、この画面に表示された抽出条件の中から、任意の抽出条件を選択して、ダッシュボード抽出条件に追加を行う。追加されたダッシュボード抽出条件は、「ダッシュボード抽出条件の一覧」(
図11左側)に表示される。
例えば、
図11に示された例においては、「商品別売上一覧」といったレポートの検索要求に含まれる「商品番号」といった抽出条件を、他のレポートの抽出条件と連動させようとしている。このため、
図11の例では、まず、「商品別売上一覧」といったレポートの検索要求に含まれる「商品番号」といった抽出条件項目を、ダッシュボード抽出条件に追加している。
【0094】
次に、ダッシュボードの一覧からダッシュボード抽出条件の一つを選択すると、「この抽出条件と連動するレポート」という部位に、選択された抽出条件と同じ抽出条件項目を含むレポートの一覧が表示される(
図11右上)。そこで、この「この抽出条件と連動するレポート」に表示されたレポートのそれぞれついて、他のレポートの抽出条件との連動の可否を指定する。これにより、1回の抽出条件設定により、抽出条件の連動が可能となっている複数のレポートの抽出条件を同時に設定することができる。
例えば、
図11に示された例において、ダッシュボードの一覧の中から「商品番号」といった抽出条件項目を選択すると、「この抽出条件と連動するレポート」という部位(
図11右上)に、「商品別売上一覧」、「月次売上推移」、「担当者別実績」、および「顧客別売上ランキング」といったレポートが表示される。これは、ここに表示された各種のレポートが、「商品番号」という抽出条件と連動可能な抽出条件を有していることを意味する。そこで、これらの各種のレポートの中から、「商品番号」という抽出条件を連動させようとするレポートを任意に選択することができる。なお、
図11に示した例では、「商品別売上一覧」と「月次売上推移」の抽出条件だけを連動するように設定している。
【0095】
さらに、例えば、同じ意味内容を有しているにも関わらず名称の異なっている複数の抽出条件項目を互いに連動させることもできる。例えば、
図11に示された「他の抽出条件とのリンク」のボタンを指示指定すると、ダッシュボードの一覧で選択されている抽出条件(商品番号)以外の抽出条件項目が、選択可能に一覧表示される。そこで、ここに表示されている抽出条件項目の中から、ダッシュボードの一覧で選択されている抽出条件(商品番号)と連動させようとする抽出条件項目を選択する。これにより、このダッシュボードの一覧で選択されている抽出条件(商品番号)と他の抽出条件項目をリンクさせることができるようになる。なお、このようにして抽出条件のリンクが設定されたダッシュボード抽出条件は、利用時の抽出検索条件の一覧に表示されなくなり、検索実行時には、リンク元のダッシュボード抽出条件の値が、リンク先のダッシュボード抽出条件の値として、そのまま用いられる。
【0096】
図11に示された例において、このダッシュボードには「商品識別コード」というダッシュボード抽出条件項目がすでに定義されている。ただし、この「商品識別コード」という抽出条件項目は、「商品番号」という抽出条件項目と意味内容は同じものであるが、その名称が異なるため、コンピュータによる処理においては異なる抽出条件項目であると扱われる可能性が高い。そこで、これらの「商品識別コード」と「商品番号」を、操作画面上の「他の抽出条件とのリンク」の部位において互いに連動させることで、利用者端末からの入力操作に基づいて、異なるレポート間のリンク操作をより正確に行うことができるようになる。
【0097】
このようにして連動関係が指定された抽出条件項目に関する情報は、データ辞書10のプレゼンテーション構造に登録される。このような意味において、データ辞書10の内容(特に抽出条件項目同士の連動関係)は、利用者端末からの入力操作に基づいて更新されるものである。また、本発明のシステムを実際に使用することで、データ辞書10内の情報の精度を高めることができる。
また、複数レポート間の抽出条件を連動させる機能を用いることにより、抽出条件設定時だけではなく、ダッシュボード上のレポートのドリルダウンの連動が可能となる。初期状態では条件値が空の状態でダッシュボード抽出条件項目を作成しておき、ダッシュボード上のいずれかのレポートに対してドリルダウンが指示された場合、ドリルダウンする項目がダッシュボード抽出条件項目であれば、抽出条件の連動が可となっている複数のレポートの抽出条件の値を、ドリルダウンで指示された値に置き換えることにより、ダッシュボード上の複数のレポートを連動してドリルダウンすることが可能となる。
【0098】
(クラス仮想項目)
「顧客」や「商品」、「社員」といったマスター表は、主に対象の属性を管理するために用いられ、その構造は他のデータとは独立して定義されており、また関連する複数の項目を一体で操作することが一般的である、という特徴を持つ。
本発明は、このような関連する複数の仮想項目の集合を、仮想表とは独立して、一つの仮想項目として定義する、クラス仮想項目の機能を備える。
例えば、コードと名称等の属性を保持するマスター表において、検索要求発行手段31の検索対象選択によりクラス仮想項目が表示項目として選択された場合には、クラス仮想項目に属する複数の仮想項目(例えば、コードと名称等)が自動的に検索要求の表示項目に追加されるようにすることができる。また、検索要求発行手段31の抽出条件設定においては、利用者には自動的にコードと名称等が併記された分かりやすいメニューを表示し、利用者がメニューから条件を選択するとコードのみが検索条件に追加されるようなナビゲーションが可能となる。
また、階層関係にあるような複数の仮想項目の集合については、階層型クラス仮想項目を定義することができる。階層型クラス仮想項目では、例えば、検索要求指示部の抽出条件設定において、上位レベルの項目の値がメニュー表示されている中から1つを選択すると、その値に関連付けられている下位レベルの項目の値がメニュー表示され、利用者は、任意のレベルのメニュー表示された値の中から検索の抽出条件とする値を指定することができる。
【0099】
図12に、クラス仮想項目および階層型クラス仮想項目による抽出条件設定画面の操作イメージを示す。
マスター表に属する複数の項目を、個々の仮想表に従属する形で個別に定義するのではなく、複数の仮想表で共通して使用することのできるクラス仮想項目として一括で定義することにより、異なる仮想表に対する検索要求から作成された検索結果間でも同一あるいは関連する仮想項目として抽出条件や選択条件の値の引継ぎが容易となる。また、異なる仮想表においても、検索時の抽出条件の値設定や表示項目の選択などを、共通のガイダンスや操作手順で行うことができるようになり、利用者の利便性が向上する。
【0100】
<仮想データベース部の構成>
図13に、本実施例における仮想データベース部20の機能ブロック図を示す。
図13に示されるように、仮想データベース20は、検索要求翻訳手段21と、検索命令実行手段22と、データ統合加工手段23とを含む。
仮想データベース部20は、ビジネスインテリジェンス部30で作成された検索要求を受け付け、仮想データベース部20内で検索したデータを、ビジネスインテリジェンス部30に検索結果として返す処理を行うことができる。あるいは、仮想データベース部20は、ビジネスインテリジェンス部30以外で作成された検索要求を受け付けるように構成することもでき、ビジネスインテリジェンス部30以外の外部出力先に検索結果を返すように構成することもできる。
仮想データベース部20が受け取る検索要求の記述形式は、検索対象とする表、検索対象とする項目のリスト、抽出条件の指定、グルーピングの指定、ソート順の指定、検索結果の出力先、及び検索結果を表示する書式の指定等を含んで構成され、標準SQL構文を拡張して使用することも可能であり、あるいは専用の構文を用いても良い。
【0101】
(検索要求翻訳手段)
仮想データベース部20に入力された検索要求は、先ず、検索要求翻訳手段21に引き渡される。検索要求翻訳手段21は、検索要求解析機能と検索命令生成機能から構成される。
【0102】
(検索要求解析機能)
検索要求解析機能では、入力された検索要求における項目リスト、抽出条件、グルーピング指定及びソート順指定等に出現する項目のすべてについて、データ辞書10内の仮想データ構造の定義情報に基づいて仮想項目に変換する。さらに、重複する仮想項目を排除して、検索対象として含まれるべき仮想項目の一意のセットを作成する。
【0103】
次に、検索要求翻訳手段21は、抽出された仮想項目セットについて、算出表適用定義に基づいて算出表の検査を行い、1つ以上の適合する算出表(以下、適合算出表)を検出する。
通常は、算出表適用定義は、上位の1つの算出表の下位に1つ以上の算出表を持つ木構造で表される。算出表適用定義の末端のノードはデータベースを検索対象とする外部算出表で構成され、それ以外の上位のノードは内部算出表で構成される。
下位の内部算出表の上位に内部算出表が定義されている場合とは、下位の内部算出表に対応するデータ統合加工手段23の出力を、上位の内部算出表に対応するデータ統合加工手段23の入力とすることにより、データ統合加工手段23を多段階で実施することを意味する。
仮想項目のそれぞれに対して、算出表適用定義をたどって最適な適合算出表を検出するため、仮想項目によって異なる適合算出表が検出される場合もある。その場合には、異なる適合算出表から生成された検索命令を実行する段階において、異なる検索命令実行手段あるいは異なるデータ統合加工手段により取得されたそれぞれのデータを、最終的に統合して一つの検索結果として提供する。
【0104】
算出表適用定義の上位算出表と下位算出表の関係は、本実施例においては、併合関係、選択関係、参照関係の3つから選択することができ、これによりデータ統合処理機能でのデータ統合方式が決定される。
算出表適用定義をたどって、最適な適合算出表を検出する手順は、具体的には以下のようなる。なお、以降では、グルーピング指定または抽出条件の中で使われている仮想項目をキー項目と呼び、それ以外の仮想項目を属性項目と記述する。
【0105】
(1)算出表の算出項目リストに、仮想項目セットに含まれているキー項目をすべて含んでおり、且つ仮想項目セットに含まれている属性項目を一つ以上含んでいる場合、当該算出表を適合算出表とする。なお、算出表に個別に、抽出条件の条件値による判定等の適合条件が指定されている場合には、検索要求が適合条件を満たす場合のみ、適合算出表とする。
(2)下位に複数の算出表が併合関係で定義されている場合には、先行する算出表に適合した属性項目でも、以降の算出表を検査するための仮想項目セットに残す。
(3)下位に複数の算出表が選択関係で定義されている場合には、先行する算出表に適合した属性項目は、以降の算出表を検査するための仮想項目セットから除外する。
(4)下位に算出表が参照関係で定義されている場合には、下位の算出表の項目も上位の算出表で算出可能とみなし、仮想項目セットに下位の算出表の項目が含まれているときには、上位の算出表とともに下位の算出表を適合算出表とする。
(5)以上の手順を、最上位の算出表からその下位の算出表について順番に検査し、算出表が適合した場合にはさらにその下位の算出表について順番に検査し、これを繰り返す。以降の算出表を検査するための仮想項目セットに属性項目が無くなったとき、あるいはすべての算出表を検査し終えたならば終了する。
【0106】
(検索命令生成機能)
検索要求翻訳手段21で得られた検索要求に対応する1つ以上の適合算出表は、検索命令生成機能に引き渡される。検索命令生成機能では、適合算出表に対応して、適合算出表が外部参照表である場合には、検索対象のデータベース3上で実行可能な検索命令を生成し、検索命令実行手段22に引き渡す。また、適合算出表が内部参照表である場合には、データ統合加工手段23で実行可能な1つ以上の検索命令を生成し、データ統合加工手段23に引き渡す。
【0107】
先ず、検索命令生成機能では、適合算出表の各々について、仮想項目セットのキー項目および属性項目に適合した算出項目を、各検索単位の算出項目セットとする。
次に、検索命令生成機能では、求められた検索単位の各々における検索項目リスト、グルーピング指定、ソート指定、及び抽出条件について、仮想項目名を物理表及び物理項目を用いて記述されている算出項目の算出定義式に基づいて式展開する。
また、算出表における算出定義式の中で複数の物理表が使われている場合、物理表結合定義から複数の物理表間の結合条件を求め、表参照式に追加する。
検索対象のデータベースに対応する算出構文定義中の検索項目リスト、グルーピング指定式リスト、ソート指定式リスト、表参照式、抽出条件式等の各命令要素に対して、上記の式を展開して得られた式を代入することにより、実行可能な検索命令の一つが生成される。
以上の過程を、適合算出表の個数回繰り返すことにより、一連の正規化検索命令の組を得ることができる。
【0108】
なお、本実施例においては、検索命令生成機能は一つの適合算出表から一つの検索命令を生成しているが、一つの適合算出表から複数の検索命令を生成する、あるいは複数の適合算出表から一つの検索命令を生成するように構成することも可能である。
【0109】
(検索命令実行手段)
検索命令実行手段22は、検索要求翻訳手段21の検索命令生成機能で作成された1または複数の検索命令をデータベース1に対して実行し、それぞれの検索命令に対する応答として検索データを取得して一時保管領域に格納し、データ統合加工手段23のデータ統合処理機能に送出する。
データベース1が検索インターフェイスとしてSQL言語をサポートする場合には、データベース1の物理表に対するSQLによる検索命令の実行手段、データベース1に格納されたストアド・プロシージャを用いる検索命令の実行手段、あるいは、データベース1のSQL言語で直接定義された検索の検索結果を検索対象として検索結果から再度検索する検索命令の実行手段、のいずれか一つ以上の実行手段を備えて構成すればよい。
また、データベース1が検索インターフェイスとしてSQL言語をサポートしない場合には、データベース1の検索インターフェイスに対応する検索命令の実行手段、データベース1がファイルシステム上のデータファイルの場合には当該データファイルに対応する検索命令の実行手段、を備えて構成すればよい。
検索データの一時保管領域は、例えば、データベース1上における一時テーブル、特定の作業用データベース上における一時テーブル、磁気記憶媒体上の一時ファイル、メモリ上の記憶領域等を用いて構成すれば良い。
【0110】
(データ統合加工手段)
データ統合加工手段23は、検索要求翻訳手段21で生成された内部算出表に対応する検索命令に基づいて、データ統合およびデータ加工の処理を実行する。
データ統合とデータ加工を行った結果データは、検索要求に対応する検索結果として、ビジネスインテリジェンス部30、あるいは、ビジネスインテリジェンス部30以外の出力先に送られる。
ビジネスインテリジェンス部30以外の出力先として、例えば、データベースのテーブルに対して、結果データを出力することができる。あるいは、ファイルシステムに格納されるデータファイルやネットワークを介して送られるデータストリーム等に、結果データを出力することが可能である。この場合、結果データの出力形式としては、例えば、CSV(カンマ区切り可変長データ)形式、HTML形式、XML形式、表計算シート形式などを用いることができる。
【0111】
最も単純な構成例においては、データ統合加工手段23では、検索命令実行手段22における処理過程で分割作成される複数の中間的な検索データの1つまたは複数を入力として、データ統合とデータ加工を行って、結果データを一つの表として出力する。
また、より複雑な構成例においては、あるデータ統合加工手段23が出力する結果データを、別のデータ統合加工手段23への入力として引き渡すように構成することが可能である。
内部算出表に対応する検索命令が複数個発行されている場合には、検索命令に指示されている順序に従い、前段のデータ統合加工手段23が出力する結果データを、後段のデータ統合加工手段23への入力として引き渡すことにより、データ統合加工手段23の処理を順次繰り返し、多段階でデータ統合加工手段23の処理を実行することができる。
【0112】
データ統合加工手段23の機能は、データ統合処理機能と、統合されたデータの加工を行うデータ加工処理機能から構成される。
【0113】
(データ統合処理機能)
データ統合処理機能では、1つまたは複数の中間的なデータをもとに、データ統合を行って1つの表データを作成する。
データ統合処理機能では、併合方式、選択方式、参照方式のデータ統合方式を備え、その中から最適な方式を選択あるいは組み合わせて使用することができる。
検索要求に指定された仮想表に対してどのようにデータ統合方式を使用するかは、データ辞書10の仮想表に対応する算出表適用定義に記述される。
図14に、これらの複数のデータ統合方式の処理概念図を示す。
【0114】
併合方式(UNION)は、検索要求に対して適用可能な複数の算出表から複数の検索命令を生成し、複数の検索命令を並列的に実行して抽出された複数の検索データをすべて併合して、先ず一つの表データにする。複数の算出表の検索データは、すべて共通のキー項目を含んでいるが、属性項目は一部の検索データにしか含まれていない。このため、この表データを、含まれるすべてのキー項目でグルーピングして、属性項目の値をグループ毎に集約することにより、キー項目がすべて重複する冗長部分(非正規性)を除去する。属性項目の集約方法は、特に指定がない場合には、数値型データは合計計算を行い、数値型以外のデータは空値と有効値の場合には有効値を選択する最大値計算を行えばよい。ただし、集約方法をデータ辞書で個別に指定することも可能である。
図14の併合方式に示された例において、検索結果にキー項目として「得意先」と「商品」を持つことが要求されており、検索データ1と検索データ2はともにこの要件を満たし、両方に値が「得意先1」と「商品1」であるレコードが存在している。次に、属性項目の単価については、検索データ1のみに値があるため、集約して「単価1」を検索結果の値とする。また数量については、検索データ1と検索データ2の両方に値があるため、数値型の合計計算で集約して「数量1+数量2」を検索結果の値とする。
併合方式は、それぞれのデータベースからの検索データを一つの検索命令で取得することができ、また複数の検索命令を並列で実行できるため処理パフォーマンスが高いが、集約のために必要となるキー項目が、取得した検索データにすべて含まれていることが要件となる。
【0115】
選択方式(CHOICE)は、検索要求に対して適用可能な複数の算出表を優先順位に従って検査し、要求されているキー項目をすべて含んでいることを条件に、それぞれの属性項目を含んでいる最も優先順位の高い算出表を選択して検索命令を生成し、実行して検索データを取得する。複数の属性項目に対して複数の検索命令が生成された場合には、それぞれ実行して抽出された複数の検索データを、併合方式と同様の方法でグルーピング及び集約して、冗長部分を除去する。
図14の選択方式に示された例においては、検索結果にキー項目として「得意先」と「商品」を持つことが要求されているが、検索データ1はキー項目として「得意先」しか有していないので検索対象としない。次に、検索データ2にはキー項目として「得意先」と「商品」が含まれているので、ここから属性項目の「単価」、「数量」も取得する。これによりすべての属性項目が取得できるためここで判定を終了するが、もし属性項目の一部が取得できない場合には同様の判定をさらに続ける。
選択方式は、あるデータベースに格納されている明細データに対して、1または複数レベルの集約データも合わせて作成されてデータベースに格納されている場合に、与えられた検索要求の要求内容を満たし、かつ最も集約レベルの高いデータを検索対象とする算出表を自動的に選択することにより、データベースに対する検索処理効率の向上を図ることが出来る。
【0116】
参照方式(LOOKUP)は、一つの算出表に対して関連する1あるいは複数の参照する算出表を関連付けておく。もとの一つの算出表に対応する検索命令を生成・実行して取得した検索データの各レコードに対して、参照する算出表ごとに算出表適用定義に定義された参照条件にもとづいて検索を行って参照データとし、もとの検索データに不足する項目について参照データの対応する項目から値を転記することにより、複数の検索データを使って結果データを算出する。
図14の参照方式に示された例において、最初の検索データ1では「得意先」、「商品」、「数量」が得られているが、「単価」という項目が欠落している。検索データ2の参照条件が「検索データ1の商品と検索データ2の商品が同じ値であること」とすると、検索データ1で得られた商品の値「商品1」を条件として検索データ2を参照し、得られた単価の値「単価1」を検索結果の単価の値に転記する。
参照方式は、一つの検索命令を実行して取得した検索データに必要な集約キーの一部が含まれていない場合に、別の検索命令を実行して関連する検索データを取得し、不足する集約キーを補足してから集約処理を行うことができる利点がある。
【0117】
(参照の処理方式)
参照方式においては、定義された参照条件にもとづいて検索を行って参照データを取得するが、一般に、参照条件は条件式の変数として参照元の項目を含んでいるため、参照元と参照先のデータベースが異なる場合には、参照先のデータベースで直接に検索を実行することができない。このため、異なるデータベース間の参照の処理方式は、通常のデーベースにおける結合処理(JOIN)とは違う仕組みが必要となる。
本実施例においては、参照の処理方式として、逐次参照方式、一括結合方式及び順次併合方式の3つの処理方式を備える。
図15A及び
図15Bに、これらの複数の参照の処理方式の処理概念図を示す。
【0118】
逐次参照方式は、一つの検索命令を生成・実行して取得した検索データから、1レコードずつ取得する。当該レコードを参照元として検索するために、参照条件の条件式に変数として含まれている参照元の項目を、当該レコードの項目値に置換する。こうして得られた参照条件を検索命令に付加して参照先の検索データを取得し、両方のレコードを連結して結果データを算出する。以上の手順を、取得した検索データのすべてについて逐次繰り返す。
必要となる参照の検索命令の回数は、原理的には参照元の検索データの件数となるため、特に大量のデータを参照する場合には処理時間がかかる傾向がある。しかし、参照元の検索データの1レコードずつではなく、参照元の検索データの複数レコードをまとめて1つの参照する検索命令の結合条件に組み込むことは可能であり、その場合の発行する検索命令の個数は(参照元の検索データの件数÷参照1回あたりのレコード数)となる。
【0119】
一括結合方式は、参照元の検索対象となるデータおよび参照先の検索対象となるデータのすべてを一つの作業用データベースに一旦格納し、作業用データベースに対して結合(JOIN)処理を行う検索命令を発行して、結果データを一括算出する。作業用データベースに十分な作業領域が必要で、一般に処理手順が複雑となる。
一括結合方式の処理効率について、作業用データベースにおける結合処理は通常かなり高速であるため、結合処理の対象となるデータの作業用データベースへの転送効率、特に書き込み効率に大きく依存する。作業用データベースは検索対象のデータベースのいずれかを用いても良いため、参照元あるいは参照先のデータのいずれかが大量で、反対側は少量である場合には、大量側のデータを格納するデータベースへ少量側のデータを転送することにより、大量データの転送を行うことなく、高速に処理することが可能である。また、データの更新頻度が低く、静的に保持しても問題がないデータは、あらかじめ作業用データベースへ転送しておくことにより、参照検索の処理効率を向上させることができる。
【0120】
順次併合方式では、参照元の検索対象となるデータと参照先の検索対象となるデータを、あらかじめ参照条件の条件値の順番に並び替えておき、その後順次読み込みながら、参照元レコードと参照先レコードの参照条件の条件値を比較し、条件値が一致するものについて結果データを算出する。
図16に、順次併合方式の処理概念を例示する。参照元データには、「出荷先コード」、「商品コード」、「数量」が含まれている。参照先データ1には、「出荷先コード」と「出荷先名」が含まれている。参照元データと参照先データ1との参照条件は、「参照元データ.出荷先コード=参照先データ1.出荷先コード」である。したがって、参照元データを出荷先コードで並べ替えし、参照先データ1を出荷先コードで並べ替えを行う。その後、参照元データと参照先データ1を順次読み込み、出荷先コードが同一のレコードについて、出荷先名は参照先データ1を転記し、その他の項目は参照元データから転記して、中間データを作成する。
次に、中間データと参照先データ2に、同様に商品コードで並べ替えを行う。その後、中間データと参照先データ2を順次読み込み、商品コードが同一のレコードについて、商品名と単価は参照先データ2を転記し、その他の項目は中間データから転記して、結果データを作成する。もし参照元データあるいは参照先データに同一の条件値を持つレコードが複数存在する場合には、それぞれのレコードに対して結果データを作成するため、複数の結果データが出力されることとなる。
【0121】
図17に、順次併合方式の具体的な処理フローを示す。
先ず、参照条件に含まれるすべての参照元の項目で参照元データの並び替えを行い、参照条件に含まれるすべての参照先の項目で参照先データの並び替えを行う。このとき、並び替えの順序は、参照条件の条件値が昇順となるようにする。(降順の場合には、以下の大小関係を逆に読み替えればよい。)
次に、参照元からレコードを1件読み込む。参照先からもレコードを読み込むが、同一条件値のレコードが複数存在する場合は、同一条件値のレコードを全部読み込んでレコード・セットとする。
参照元レコードの項目値による参照条件の条件値と、参照先レコードの項目値による参照条件の条件値とで大小比較を行う。もし、参照元レコードの条件値が小さい場合には、次の参照元レコードを読み込んで、再度、条件値の大小比較を行う。もし、参照先レコード・セットの条件値が小さい場合には、次の参照先レコード・セットを読み込んで、再度、条件値の大小比較を行う。
もし両方の条件値が等しく、すなわち参照条件が成立しているならば、参照先レコード・セットから1件取り出して参照先レコードとし、参照元レコードの不足項目について参照先レコードから値を転記して、結果データを出力する。この処理を、参照先レコード・セットの全てのレコードについて繰り返す。これにより、参照元の1レコードと参照先のnレコードの条件値が対応する場合には、結果データがnレコード出力される。レコード・セットの処理を完了したならば、次の参照元レコードを読み込んで、再度、条件値の大小比較を行う。
ここで参照先レコード・セットはレコード出力後もそのまま残されるため、参照元のmレコードの条件値と、参照先のnレコードを含むレコード・セットの条件値が対応する場合には、結果データがm×nレコード出力されることになる。これは、SQLのキー重複を含むレコードの結合処理と同等の結果である。
以降、この手順をすべての参照元レコードあるいはすべての参照先レコードを処理し終えるまで繰り返す。
【0122】
順次併合方式は、検索対象となるデータを事前に並び替えておく必要はあるが、1回の全レコードの順次読み込みにより参照処理が完了するため、処理時間が極めて安定している。ただし、全体の中の一部のレコードだけが必要な場合には、全レコードの読み込みが必要となるためあまり適さない。
また、並び替え処理や参照条件比較処理を含めて、全ての処理をシーケンシャル処理で構成できるため、メモリ消費量が極めて少なく大量データの処理に適している。特に、複数の大量データ同士を結合しなければならない場合などには、順次併合方式は大きな効果を発揮する。
【0123】
以上のように、データ統合方式について、複数の方式から最適な統合方式を選択、あるいは複数の統合方式を組み合わせて使用することができ、また統合方式が参照の場合の処理方式についても、複数の方式から最適な参照処理方式を選択、あるいは複数の参照処理方式を組み合わせて使用することができ、様々な状況において最適な統合処理効率を実現できるようにする。
【0124】
(データ加工処理機能)
データ加工処理機能では、データ統合処理機能で得られた一つの表データに対して、以下のような処理を行い、検索命令における指示内容に適合する結果データとして出力する。
(1)キー項目でグルーピングし、属性項目の値をグループ毎に集約する、分類・集約処理
(2)検索命令にデータ編集の指定がある場合には、数値演算、文字列操作、日付変換、コード変換等のデータ編集処理
(3)データ抽出条件が指定されている場合には、特定の値範囲条件指定、文字列のパターン・マッチング等によるデータ抽出処理
(4)検索命令に出力順が指定されている場合には、ソート処理
【0125】
また、データ加工処理機能には、レコード内のスカラー演算では処理することが困難な、レコード間の関係・順序に依存するような演算を行う機能を持たせることも可能である。そのような機能の例を、以下に挙げる。
(1)1番目の合計、1番目と2番目の合計、1番目と2番目と3番目の合計、といった累計処理
(2)1番目の合計、1番目と2番目の合計、2番目と3番目の合計、3番目と4番目の合計、といった移動累計処理
(3)1番目の値、2番目と1番目の差分、3番目と2番目の差分、といった差分処理
(4)先頭値、末尾値、先頭からn件目、末尾からn件目などのレコード連番にもとづく処理
(5)直前レコード、直後レコードなどのレコード順番による処理
(6)分散、相関、推定、検定などの統計処理
このような処理は、SQLの分析関数を使用しても実現が可能なものもあるが、通常のデータベース・エンジンではSQLの分析関数はメモリ上での処理となるため、処理できるデータ量に制約があり、大量データの処理に適さない。本実施例のデータ加工処理機能は、ストリーム処理が前提となっているため、メモリの消費量がきわめて少なく、大量データの処理に適しているという利点がある。
【0126】
(検索命令生成機能の最適化)
また、検索命令実行手段22で取得した複数の中間的な検索データをもとに、データ統合加工手段23においてデータ統合処理やデータ加工処理を行う。このため、検索要求翻訳手段21の検索命令生成機能においては、処理対象とするデータベースからの結果データのレコード件数を最少とするように、検索命令を生成することが重要である。これにより、結果データの転送による通信オーバーヘッドを減らすとともに、データ統合加工手段23での処理効率を向上することができる。このため、検索命令生成機能では、以下のような対応を行う。
【0127】
検索要求に指示されている仮想データベース部に対する抽出条件のうち、可能なものについてデータベースに対する検索命令に変換して適用する。これにより、検索対象となるデータおよび検索結果として返されるデータを絞り込むことができる。
検索要求で要求されている分類集計のうち、可能なものについてデータベースに対する検索命令であらかじめ分類集計し検索結果を集約する。これにより、データベースから出力される検索結果のデータ件数を削減できる。
また、コード・名称変換のような、頻繁にデータの更新が行われない静的な属性を管理するマスターを参照するような処理は、件数が多いデータベースへの明細データの検索段階では行わず、件数の少ない集約後のデータに対して行う。これにより、参照処理の回数を減らすことが可能である。
【0128】
(データ・キャッシュ)
さらに、データ統合加工手段では、検索処理効率の向上のため、検索データをキャッシュする機構を備えることができる。
図18は、検索データ・キャッシュの処理概念図を示している。検索データ・キャッシュは、データ統合処理の結果の表データ、あるいはデータベース検索実行機能における処理過程で分割作成される中間的な検索データを、事前に作成して検索データ・キャッシュ用の外部記憶領域に格納しておき、検索実行時には、データベースの代わりに、検索データ・キャッシュ用の外部記憶領域のデータを参照することにより、実現される。
検索データ・キャッシュ用の外部記憶領域にあらかじめ格納するタイミングは、管理者の指定する一定の日時、あるいは利用者による初回検索時、あるいはデータ更新など外部のイベントによる起動など、任意に設定することができ、また管理者の指定により検索データ・キャッシュの有効期限を設定し、有効期間を超えている場合には検索データ・キャッシュを再作成するようにできる。
また検索データ・キャッシュの作成対象範囲については、仮想表あるいは算出表単位に、利用者の選択可能な項目はすべて含み、利用者の指定可能な抽出条件はすべての値を含んで、作成するようにできる。これにより、仮想表あるいは算出表を対象とする検索のすべてに対して、検索データ・キャッシュが有効となり、検索処理効率の高速化が図られる。
【0129】
(データ統合加工手段の多段階化の効果)
本発明は、データ統合加工手段23の処理を多段階で実行することができる機能を備えている。このような多段階のデータ統合加工の必要性は、特定対象の件数を求める場合や、全体構成比を求める場合、出現頻度を求める場合、あるいは上位/下位n件のみ出力する場合などがあり、特に検索結果の指標化などの統計加工を行う段階において多く発生する。
また、大量データに対して複雑な統計処理を行う場合には、処理効率の観点から、ステップを分けてデータ統合加工を実行する必要がある場合が多く見うけられる。
本発明では、データ辞書の算出表適用定義に、適用する仮想項目とともに、多段階のデータ統合加工を定義しておくことにより、利用者からの検索要求に応じて、仮想項目ごとに自動的に必要な段数のデータ統合加工を判別して、適切な段数のデータ統合加工処理を実行することができる。
【0130】
多段階のデータ統合加工手段を含む処理イメージを、
図19にもとづいて説明する。
データベースには、販売店ごとに分割された複数の出荷データ(物理表:T1およびT2)が格納されており、それぞれに商品、出荷先、出荷数量に相当する項目が含まれている。しかしながら、T1とT2は、検索に用いられない「・・・」で示される部位が異なっており、また登録されている項目の名称が異なる(「販売店名」と「Dealer」、「商品名」と「Product」等)といった点において、データのフォーマットが異なっている。このT1及びT2を含んで構築されたデータベースから、Rで示されるような商品別に出荷数量と出荷先数を集計した最終的な検索結果を得たいとする。
【0131】
まず、商品別の出荷数量を取得するには、T1およびT2から必要なデータを抽出した複数の検索データに対して、データ辞書に基づいて名称の異なる項目を関連付けるなどして一つの表に統合し、統合されたデータを商品別に集計する。これにより、商品別に出荷数量をカウントした第1の結果データ(V1)が得られる。この場合、データ統合加工手段の実行は1回である。
一方、商品別に出荷先数と出荷数量を取得する場合には、T1およびT2から取得して一つの表に統合したデータに対して、一旦、重複する出荷先を排除するために商品別・出荷先別にデータを集約(V2)してから、商品別に出荷先数のカウントを行って第2の結果データ(V3)を得る必要がある。このため、商品別・出荷先別のデータ集約と、出荷先件数のカウントとで、データ統合加工手段の実行は2回必要となる。
そして、第1の結果データ(V1)と第2の結果データ(V3)のデータをまとめることにより、検索要求に対応した最終的な結果データRを得ることができる。
【0132】
ここで、検索結果を得るために必要なデータ統合加工の段数は、データ辞書に基づいて自動的に判別されているため、利用者は全く意識する必要がない。
本発明における多段階でのデータ統合加工の実現により、利用者は、従来はデータベースから直接に取得することが困難であった複雑あるいは高度な統計処理などを含むレポートを、検索要求を発行するだけで簡単に取得できるようになり、事前や事後に人手によるデータ加工を行う必要がなくなる。すなわち、従来の仮想データベースに比べて、より複雑あるいは高度な検索要件に対して、柔軟に対応できるという特長を有している。
【0133】
以上、本願明細書では、本発明の内容を表現するために、図面を参照しながら本発明の実施形態の説明を行った。ただし、本発明は、上記実施形態に限定されるものではなく、本願明細書に記載された事項に基づいて当業者が自明な変更形態や改良形態を包含するものである。