(57)【特許請求の範囲】
【請求項１】
少なくとも一つのテーブルを含むデータベースの内容と、時間に関する条件と、前記少なくとも一つのテーブルにおける項目のうちの少なくとも一つの項目の取り得る項目値に関する項目値条件とに基づいて、前記少なくとも一つのテーブルの識別情報を第１の視点とし、前記時間に関する条件を満たす時間を第２の視点とし、前記項目値条件を満たす項目値の組合せを第３の視点とし、前記第２の視点で層を形成し、３つの視点に該当するレコードの集合テーブルが入れ子状態に格納されている多層入れ子テーブルを生成する多層入れ子テーブル生成手段と、
前記少なくとも一つのテーブルの中から前記第１乃至第３の視点に該当するレコードを抽出して前記多層入れ子テーブルに格納する格納手段と
を具備したことを特徴とするデータ生成装置。
【請求項２】
少なくとも一つのテーブルを含むデータベースの内容と、時間に関する条件と、前記少なくとも一つのテーブルにおける項目のうちの少なくとも一つの項目の取り得る項目値に関する項目値条件とに基づいて、前記時間に関する条件を満たす具体的な時間と前記項目値条件を満たす具体的な項目値とを求める条件処理手段と、
前記条件処理手段によって求められた具体的な項目値に基づいて、この具体的な項目値の組合せを求める組合せ生成手段と、
前記少なくとも一つのテーブルの識別情報を第１の視点とし、前記条件処理手段によって求められた具体的な時間を第２の視点とし、前記組合せ生成手段によって求められた具体的な項目値の組合せを第３の視点とし、前記第２の視点で層を形成し、３つの視点に該当するレコードの集合テーブルが入れ子状態に格納するための多層入れ子テーブルを生成する多層入れ子テーブル生成手段と、
前記データベースの内容を読み込んで、前記多層入れ子テーブルに格納すべきレコードを抽出する抽出手段と、
前記抽出手段によって抽出されたレコードを前記多層入れ子テーブルの該当位置に格納する格納手段と
を具備したことを特徴とするデータ生成装置。
【請求項３】
コンピュータに、
少なくとも一つのテーブルを含むデータベースの内容と、時間に関する条件と、前記少なくとも一つのテーブルにおける項目のうちの少なくとも一つの項目の取り得る項目値に関する項目値条件とに基づいて、前記少なくとも一つのテーブルの識別情報を第１の視点とし、前記時間に関する条件を満たす時間を第２の視点とし、前記項目値条件を満たす項目値の組合せを第３の視点とし、前記第２の視点で層を形成し、３つの視点に該当するレコードの集合テーブルが入れ子状態に格納されている多層入れ子テーブルを生成させる多層入れ子テーブル生成機能と、
前記少なくとも一つのテーブルの中から前記第１乃至第３の視点に該当するレコードを抽出して前記多層入れ子テーブルに格納させる格納機能と
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項４】
コンピュータに、
少なくとも一つのテーブルを含むデータベースの内容と、時間に関する条件と、前記少なくとも一つのテーブルにおける項目のうちの少なくとも一つの項目の取り得る項目値に関する項目値条件とに基づいて、前記時間に関する条件を満たす具体的な時間と前記項目値条件を満たす具体的な項目値とを求めさせる条件処理機能と、
前記条件処理機能によって求められた具体的な項目値に基づいて、この具体的な項目値の組合せを求めさせる組合せ生成機能と、
前記少なくとも一つのテーブルの識別情報を第１の視点とし、前記条件処理機能によって求められた具体的な時間を第２の視点とし、前記組合せ生成機能によって求められた具体的な項目値の組合せを第３の視点とし、前記第２の視点で層を形成し、３つの視点に該当するレコードの集合テーブルが入れ子状態に格納するための多層入れ子テーブルを生成させる多層入れ子テーブル生成機能と、
前記データベースの内容を読み込んで、前記多層入れ子テーブルに格納すべきレコードを抽出させる抽出機能と、
前記抽出機能によって抽出されたレコードを前記多層入れ子テーブルの該当位置に格納させる格納機能と
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、業務管理や業務上の意思決定を支援するための装置であり、ＲＤＢ（Relational DataBase）に蓄積されたデータに対する比較、相関関係の抽出、現象の推測等のようなデータ分析を支援するデータ生成装置及びプログラムを記憶したコンピュータ読み取り可能な記憶媒体に関する。
【０００２】
【従来の技術】
例えば事務処理や予約管理、販売管理等を行うアプリケーションソフトウェアによって形成されるデータベースに蓄積されたデータを分析する代表的な技術として、ＯＬＡＰ（Online Analytical Processing）や、データマイニング技術がある。
【０００３】
ＯＬＡＰは、ユーザに問題点や解決策を提供し、意思決定をサポートするための技術であり、データを抽出して仮説に基づく分析を行う。
【０００４】
このＯＬＡＰにより、ユーザは分析用の次元を変えてデータを多角的に比較、分析、グラフ表示することが可能である。例えばＯＬＡＰにより「盗難クレジットカードによる１日平均の購買額は、通常の平均値と比べてどうか？」を分析する場合、分析用の次元に利用される項目の例として時間、種別、売上金額等がある。ユーザはこのような分析に有効とみられる項目を推測し、次元としてデータベースに予め与えることが必要である。ＯＬＡＰは、ユーザによって有効と推測された項目を次元とし、該当するレコードを抽出してユーザに提供する。
【０００５】
ＯＬＡＰによるデータ分析のためのデータ構造として、データをＣｕｂｅとして持つ多次元データベースがある。多次元データベースは、例えば３次元の構造の場合には、Ｘ、Ｙ、Ｚ軸に月別、商品別、担当別、テリトリー別などのうちの任意の項目（フィールド）を配備する。
【０００６】
すなわち、多次元データベースは、ユーザが要求する分析形態に応じて設計可能であり、ＲＤＢがフラットな２次元の表として設計するのに対して、多次元データベースはＣｕｂｅ構造のデータ設計が可能である。
【０００７】
しかしながら、このような多次元データベースの構築には、各軸の次元を予め決めておく必要があり、例えば３次元の場合にはＸ、Ｙ、Ｚ軸に相当する次元を予め決めておく必要がある。
【０００８】
データ分析のためのもう一方の技術であるデータマイニング技術は、遺伝的アルゴリズムやニューラルネットワークなどの機械学習の手法に基づいて、「クレジットカード詐欺につながる購買パターンは？」、「ダイレクトメールで効率よく契約ができる客層は？」などの経営やマーケティングに役立つ傾向、関係、特色、パターンを帰納的に導出する技術である。
【０００９】
すなわち、このデータマイニング技術は、データベースに蓄積された生データから帰納的に傾向を発見する技術であり、有効なデータ分析のためには、蓄積された生データの質や量が重要となる。
【００１０】
【発明が解決しようとする課題】
上記に述べた従来のＯＬＡＰや多次元データベースにおいては、次元を予め与えることにより、該当するレコードを抽出し、Ｃｕｂｅなどのデータ構造として、取り出し、加工、編集、比較を可能にする。
【００１１】
しかしながら、このＯＬＡＰや多次元データベースを使って業務上の意思決定の判断材料となりうるデータ分析を行うためには、意味のある次元の組合せを選択する必要がある。すなわち、どのような観点でデータを抽出し、加工し、比較するのかという観点を明確にする必要がある。
【００１２】
データ分析ではこのような次元や観点を具体的にどのように与えるかが重要であるにもかかわらず、従来においては予めこれらの情報を具体的に与える必要があり、従来のＯＬＡＰや多次元データベースは次元や観点が与えられたならば様々なデータの取り扱いができるツールやデータの入れ物といった役割のものしか存在していない。
【００１３】
以上のように、従来のＯＬＡＰや多次元データベースは、次元や観点が与えられた場合にこの次元や観点に応じてデータを取り扱うものであり、分析の発想や視点そのものをデータベースから作り出すのもではない。
【００１４】
一方、従来のデータマイニング技術において有効なデータ分析を行うためには、蓄積された生データの質や量が重要である。
【００１５】
データ分析においては、たとえ十分な量や質の生データが蓄積されていなくても分析者の経験的知識やノウハウを活用して分析を進める必要のある場合がある。
【００１６】
また、データの蓄積状況がどのようであっても、均質的な一定レベルの分析を行う必要がある。
【００１７】
しかしながら、従来のデータマイニング技術では、データベースの生データの蓄積状況によって分析結果のレベルにばらつきが発生し、また均質的なデータ分析の視点や発想を提供することが困難である。
【００１８】
本発明は、以上のような実情に鑑みてなされたもので、分析の視点に用いる項目の決定を支援し、この視点によって取り扱われるデータを提供可能とするデータ生成装置及びプログラムを記憶したコンピュータ読み取り可能な記憶媒体を提供することを目的とする。
【００１９】
【課題を解決するための手段】
本発明の骨子は、３つの次元を構成する第１の軸（視点）をデータベース内のテーブルの識別情報とし、第２の軸（視点）をユーザの指定した条件を満たす時間とし、第３の軸（視点）をユーザの指定した条件を満たすデータベース内のテーブルにおける任意の項目の取り得る項目値の組合せとする多層入れ子テーブルを生成する点にある。
【００２０】
以下、本発明を実現するにあたって講じた具体的手段について説明する。
【００２１】
第１の発明は、少なくとも一つのテーブルを含むデータベースの内容と、時間に関する条件と、少なくとも一つのテーブルにおける項目のうちの少なくとも一つの項目の取り得る項目値に関する項目値条件とに基づいて、少なくとも一つのテーブルの識別情報を第１の視点とし、時間に関する条件を満たす時間を第２の視点とし、項目値条件を満たす項目値の組合せを第３の視点とし、第２の視点で層を形成し、３つの視点に該当するレコードの集合テーブルが入れ子状態に格納されている多層入れ子テーブルを生成する多層入れ子テーブル生成手段と、少なくとも一つのテーブルの中から第１乃至第３の視点に該当するレコードを抽出して多層入れ子テーブルに格納する格納手段とを具備したデータ生成装置である。
【００２２】
この第１の発明のデータ生成装置は、データベースに蓄積された２次元の表形式のデータを「データベース内のテーブル（表）の識別情報（名称）」、「時間」、「項目（種別やＩＤ等）の取り得る項目値の組合せ」の３つの視点により再構成し、新たに１つの入れ子構造のデータを生成する。
【００２３】
生成されたデータにおいて「項目値の組合せ」は、データ分析（比較、相関関係、推測）のための視点を決定する際に参考にすることができる。
【００２４】
また、データ分析の際には、決定した分析の視点に基づいて時間単位毎、テーブルの種類毎に該当データを取り出し、データ比較、相関関係の抽出、現象の推測を行うことができる。
【００２６】
また、第２の発明は、少なくとも一つのテーブルを含むデータベースの内容と、時間に関する条件と、少なくとも一つのテーブルにおける項目のうちの少なくとも一つの項目の取り得る項目値に関する項目値条件とに基づいて、時間に関する条件を満たす具体的な時間と項目値条件を満たす具体的な項目値とを求める条件処理手段と、条件処理手段によって求められた具体的な項目値に基づいて、この具体的な項目値の組合せを求める組合せ生成手段と、少なくとも一つのテーブルの識別情報を第１の視点とし、条件処理手段によって求められた具体的な時間を第２の視点とし、組合せ生成手段によって求められた具体的な項目値の組合せを第３の視点とし、第２の視点で層を形成し、３つの視点に該当するレコードの集合テーブルが入れ子状態に格納するための多層入れ子テーブルを生成する多層入れ子テーブル生成手段と、データベースの内容を読み込んで、多層入れ子テーブルに格納すべきレコードを抽出する抽出手段と、抽出手段によって抽出されたレコードを多層入れ子テーブルの該当位置に格納する格納手段とを具備したデータ生成装置である。
【００２７】
第１及び第２の発明のデータ生成装置では、データ分析を行う際の視点となりうる３つの要素を軸として、データベース内に蓄積されているデータを再構成する。
【００２８】
第１の視点はデータベース内の全てのテーブルの識別情報（名称）であり、第２の視点は時間であり、第３の視点はデータベース内のテーブルで利用されている任意の項目（Viewともいう。例えば利用者における購入量分類（ランク）、性別等がある）の取りうる項目値（Valueともいう。例えば具体的な購入量分類のＡランク、Ｂランク、Ｃランク、具体的な性別の男、女等）の各種組合せである。
【００２９】
第１及び第２の発明のデータ生成装置は、データベースの内容を読み込んでテーブルの名称を特定し、分析に用いる時間を特定し、分析に用いる項目の取りうる項目値の組合せを特定し、データ分析のための視点を具体的に提供する。
【００３０】
そして、データベースに蓄積された少なくとも一つの２次元の表形式のデータを「テーブルの名称」、「時間」、「分析に用いる項目の取りうる項目値の組合せ」の３つの視点により再構成して多層入れ子テーブルとし、データベース内の２次元の表形式データをこの多層入れ子テーブルに配置する。
【００３１】
多層入れ子テーブルは、データ分析のための視点からなる次元を備えており、データベースからその次元毎にテーブルを抽出したデータ集合である。
【００３２】
このように第１及び第２の発明のデータ生成装置では、データ分析のための具体的な視点及びその視点に基づいてレコードを抽出、分類、生成し、その視点に基づいてデータを蓄積する。
【００３３】
例えば、ユーザは、多層入れ子テーブルの第３の視点を参照した結果、購入量がＡランク又はＢランクであり性別が男の利用者に関する販売状況に関心を持つことができる。
【００３４】
また、第１の視点を参照して販売状況の分析に適したテーブルを選択することができる。
【００３５】
そして、第２の視点を参照して販売状況の分析に適したテーブルによる時間毎の変化を調べることができる。
【００３６】
このように、第１及び第２の発明のデータ生成装置においては、データ分析の発想や視点と、このデータ分析の源となるデータをデータベースの内容から作成することができる。また、データベースのデータ量に関係なく、均質的にデータ分析の視点や発想を提供することができる。
【００３８】
また、第３の発明は、コンピュータに、少なくとも一つのテーブルを含むデータベースの内容と、時間に関する条件と、少なくとも一つのテーブルにおける項目のうちの少なくとも一つの項目の取り得る項目値に関する項目値条件とに基づいて、少なくとも一つのテーブルの識別情報を第１の視点とし、時間に関する条件を満たす時間を第２の視点とし、項目値条件を満たす項目値の組合せを第３の視点とし、第２の視点で層を形成し、３つの視点に該当するレコードの集合テーブルが入れ子状態に格納されている多層入れ子テーブルを生成させる多層入れ子テーブル生成機能と、少なくとも一つのテーブルの中から第１乃至第３の視点に該当するレコードを抽出して多層入れ子テーブルに格納させる格納機能とを実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３９】
また、第４の発明は、コンピュータに、少なくとも一つのテーブルを含むデータベースの内容と、時間に関する条件と、少なくとも一つのテーブルにおける項目のうちの少なくとも一つの項目の取り得る項目値に関する項目値条件とに基づいて、時間に関する条件を満たす具体的な時間と項目値条件を満たす具体的な項目値とを求めさせる条件処理機能と、条件処理機能によって求められた具体的な項目値に基づいて、この具体的な項目値の組合せを求めさせる組合せ生成機能と、少なくとも一つのテーブルの識別情報を第１の視点とし、条件処理機能によって求められた具体的な時間を第２の視点とし、組合せ生成機能によって求められた具体的な項目値の組合せを第３の視点とし、第２の視点で層を形成し、３つの視点に該当するレコードの集合テーブルが入れ子状態に格納するための多層入れ子テーブルを生成させる多層入れ子テーブル生成機能と、データベースの内容を読み込んで、多層入れ子テーブルに格納すべきレコードを抽出させる抽出機能と、抽出機能によって抽出されたレコードを多層入れ子テーブルの該当位置に格納させる格納機能とを実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００４０】
第３及び第４の発明は、それぞれ第１及び第２の発明で説明したデータ生成装置の機能をコンピュータにより実現するためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００４１】
このようなプログラムを記憶した記憶媒体を用いることによって、上述した機能を有していない計算機やデータベースシステムに対しても、簡単に上述した機能を付加することができる。
【００４４】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００４５】
（第１の実施の形態）
本実施の形態においては、テーブルの名称を第１の視点とし、時間を第２の視点とし、ユーザの要求する項目の取り得る項目値の全ての組合せを第３の軸とする多層入れ子テーブルを生成するデータ生成装置について説明する。
【００４６】
図１は、本実施の形態に係るデータ生成装置の構成を示すブロック図である。
【００４７】
データベース１は、通常の業務系システム、基幹系システムによって得られたデータを蓄えているＲＤＢである。このデータベース１のテーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３に蓄えられているデータが分析の対象となる。
【００４８】
時間に関する条件（以下、「時間条件」という）２とは、データ分析を行う際にどのような期間で、またどのような時間の間隔でデータを再構成するかを示す分析の条件であり、ユーザが設定する。
【００４９】
項目と項目値に関する条件（以下、「項目値条件」という）３とは、データベース１内のどのテーブルにおけるどの項目（View）の項目値（Value）を、どのように組合せるかを示す分析の条件であり、ユーザが設定する。
【００５０】
ここで、項目とは、例えば利用者ＩＤ、種別、購入量の分類、性別等のようなデータベース１内のテーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３に利用されているデータ項目のことを指す。また、項目値とは項目の持つ値を示し、例えば性別の項目値には「男」、「女」があり、購入量の分類の項目値には大量を示す「Ａランク」、少量を示す「Ｂランク」等がある。
【００５１】
本実施の形態に係るデータ生成装置４は、データベース１に蓄積された２次元の表形式データと、時間条件２と、項目値条件３とを入力する。すると、２次元の表形式データを「データベース１の持つ全てのテーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３の名称」、「時間」、「テーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３における任意の項目の取りうる項目値の組合せ」の３つの視点により再構成し、多層入れ子テーブル５を生成する。
【００５２】
このデータ生成装置４は、条件処理部６、組合せ生成部７、多層入れ子テーブル生成部８により再構成後のデータ構造（スキーマ）を求める。そして、抽出部９、格納部１０により再構成後のデータ構造を実現するデータを格納する。
【００５３】
条件処理部６は、時間条件２と項目値条件３とを入力して認識し、またデータベース１の内容を読み込んで各条件２、３のデータへの変換・展開を行うことにより、時間条件２を満たす具体的な時間と項目値条件３を満たす具体的な項目値とを求める。
【００５４】
例えば、1990年から1992年までのデータを１年毎に整理する旨の時間条件が指定されている場合には、この条件処理部６は具体的な時間として「1990」、「1991」、「1992」を求める。また、例えば項目として「購入量の分類」と「性別」とが項目値条件３で指定されている場合には、条件処理部６は、具体的な項目値として「購入量の分類」の項目値である「Ａランク」、「Ｂランク」を求め、さらに「性別」の項目値である「男」、「女」を求める。
【００５５】
組合せ生成部７は、項目内組合せ生成部７ａ及び項目間組合せ生成部７ｂとから構成される。
【００５６】
項目内組合せ生成部７ａは、条件処理部６で処理された項目値条件３に基づいて求められた具体的な項目値を、各項目内で組み合わせる。
【００５７】
この項目内組合せ生成部７ａは、例えば、項目「購入量の分類」に関する項目値「Ａ」、「Ｂ」を、「ＡランクでもＢランクでもない」、「Ａランク」、「Ｂランク」、「Ａランク又はＢランク」と組み合わせる。また、項目「性別」に関する項目値「男」、「女」を、「男でも女でもない場合（性別が指定されていない場合）」、「男」、「女」、「男又は女」と組み合わせる。
【００５８】
続いて、項目間組合せ生成部７ｂは、項目内組合せ生成部７ａで組み合わされた各項目毎の項目値の組合せをさらに各項目間で組み合わせる。
【００５９】
この項目間組合せ生成部７ｂにより、例えば「ＡランクでもＢランクでも男でも女でもない」、…、「Ｂランクであり男」、…、「Ａランクであり男又は女」、…、「Ａランク又はＢランクであり男又は女」というような、各項目の取りうる項目値の組合せが求められる。
【００６０】
多層入れ子テーブル生成部８は、データベース１に蓄積されたテーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３の名称を第１の視点とし、条件処理部６で処理をした時間条件３を満たす時間1990〜1992を第２の視点とし、組合せ処理部７で生成した項目値条件に基づく項目値の組合せを第３の視点とする多層入れ子テーブル５のスキーマを生成する。
【００６１】
抽出部９は、データベース１の内容を読み込み、多層入れ子テーブル５のデータを生成する際に必要となるレコードを抽出する。すなわち、この抽出部９は、３つの視点に該当するレコードをデータベース１内のテーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３の中から抽出する。
【００６２】
例えば、テーブルＴ１において1998年に「Ｂランクの男」に該当するデータベース１内の全てのレコードは、多層入れ子テーブル５において第１の視点が「テーブルＴ１」であり、第２の視点が「1998年」であり、第３の視点が「Ｂランクの男」となる位置用の集合データ１１として抽出される。
【００６３】
格納部１０は、抽出部９によって抽出されたレコードを、多層入れ子テーブル生成部８によって生成された多層入れ子テーブル５のスキーマにおける該当位置に配置、登録する。
【００６４】
このような構成を有するデータ生成装置４によって生成される多層入れ子テーブル５は、データ分析用のデータを蓄積するテーブルである。この多層入れ子テーブル５は、データベース１の持つテーブルの名称、時間、任意の項目の取り得る項目値の組合せからなる３つの視点による軸を持つ。そして、多層入れ子テーブル５の３つの軸からそれぞれ値を選択した時の交点位置には、所定の時間に該当し、所定のテーブルに保持されており、所定の分析観点に該当するレコードが抽出されたものである２次元のテーブルが存在する。
【００６５】
多層入れ子テーブル５は、条件に合致する全ての時間の観点、及び条件に合致する項目値の組合せの観点から、データベース内の全てのテーブルに対して再構成を実行したデータ集合である。
【００６６】
この多層入れ子テーブル５を利用することで、「テーブルの名称」、「時間」、「項目値の組合せ」からなる３つの視点の任意の組合せ（一つを選択し、他の２つの組合せを考えて得られる）によって、データをまとめたり、並べて比較することが可能であり、そのために多層入れ子テーブル５は複数の層をなしている。また、多層入れ子テーブル５の中にはさらに３つの視点に該当するレコードの集合テーブルが入れ子状態に格納されている。
【００６７】
上記のような構成を有するデータ生成装置４における動作について以下に説明する。
【００６８】
図２は、本実施の形態に係るデータ生成装置４の動作を示すフロー図である。
【００６９】
例えば事務処理や予約管理ソフトウェアや販売管理ソフトウェア等のようなアプリケーションソフトウェアによってデータベース１にデータが蓄積されているとする。
【００７０】
ユーザが時間条件２と項目値条件３とをデータ生成装置４に入力すると、条件処理部６によってデータベース１の内容が読み込まれ、入力された各条件３、４が認識され具体的なデータに変換・展開される（ｓ１）。
【００７１】
次に、この条件処理部６による項目値条件３の展開で得られたデータを用いて各項目毎の項目値の組合せが項目内組合せ生成部７ａによって生成される（ｓ２）。
【００７２】
次に、この項目内組合せ生成部７ａによって生成された項目毎の項目値の組合せが、項目間組合せ生成部７ｂによって各項目間でさらに組み合わされる（ｓ３）。
【００７３】
次に、多層入れ子テーブル生成部８によってデータベース１の内容が読み込まれ、読み込んだデータベース１内の各テーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３の名称を第１の視点とし、先の条件処理部６の処理によって得られた時間を第２の視点とし、先の項目間組合せ生成部７ａの処理によって得られた各項目間の項目値の組合せを第３の視点とする多層入れ子テーブル５のスキーマが生成される（ｓ４）。
【００７４】
次に、抽出部９によってデータベース１の内容が読み込まれ、多層入れ子テーブル５のデータ生成に必要となるレコードが抽出される（ｓ５）。
【００７５】
そして、抽出部９による処理で得られたレコードが、格納部１０によって多層入れ子テーブル５の該当位置に配置される（ｓ６）。
【００７６】
一般的に、事務処理や予約管理、販売管理等を行うアプリケーションソフトウェアによって蓄積されたデータを分析する際には、所定の時間毎のデータの変化・推移を観察する傾向があり、また様々な項目値を視点として分析を行う傾向がある。
【００７７】
このような実情を考慮し、本実施の形態に係るデータ生成装置４においては、時間、テーブル種類、分析視点となりうる項目値の組合せによりデータベース１内のデータを再構成し、多層入れ子テーブル５を生成する。
【００７８】
生成された多層入れ子テーブル５には、分析の視点となりうる項目値の組合せが列挙されているため、ユーザはこの多層入れ子テーブル５を用いてデータ分析（比較、相関関係、推測）のための視点とその視点に基づくテーブルの候補を取得することができる。
【００７９】
また、この多層入れ子テーブル５にレコードを格納することで、データ分析のための対象データの保管場所と取得方法を統一することができる。
【００８０】
また、この多層入れ子テーブル５にレコードを格納することで、事務処理システム等のデータベースにおけるデータ分析のための対象データのソース（源）を提供することができる。
【００８１】
また、データ分析のためのプログラム（データの検索、抽出、分類、数え上げ、集計等の計算）を予め作成していなくても、この多層入れ子テーブル５を利用することで容易にデータ分析を実行することができる。
【００８２】
また、データベース１内のデータの量や質に影響されず均質的な分析を実行することができる。
【００８３】
（第２の実施の形態）
本実施の形態においては、上記第１の実施の形態で説明したデータ生成装置４に関して、具体的な例を挙げてさらに詳細に説明する。
【００８４】
本実施の形態において述べるデータ生成装置は図１に示すデータ生成装置４と同様の装置であるため、図１と同一の要素には同一の符号を付して説明する。
【００８５】
まず、本実施の形態におけるデータベース１の状態について説明する。
【００８６】
図３は、本実施の形態においてデータベース１に蓄積されているテーブルとこの各テーブル間の関係を例示する概念図であり、各テーブルは施設の予約管理システムによって蓄積されるデータを保持する。ここで、テーブルＭ１〜Ｍ４はマスタテーブルであり、予約管理の基本となる情報を有する。一方、テーブルＴ１〜Ｔ３はトランザクションテーブルであり予約がなされる度に適宜設けられる。
【００８７】
利用者情報テーブルＭ１は、施設の使用を申し込む利用者に関する情報を保持するマスタテーブルであり、登録日付、利用者ＩＤ、利用者名、性別、ランク、連絡先を項目として有する利用者情報を記憶する。
【００８８】
スタッフ情報テーブルＭ２は、施設の管理スタッフに関する情報を保持するマスタテーブルであり、登録日付、スタッフＩＤ、スタッフ名、性別、職種、所属を項目として有するスタッフ情報を記憶する。
【００８９】
施設情報テーブルＭ３は、予約することが可能な施設に関する情報を保持するマスタテーブルであり、登録日付、施設ＩＤ、施設名、利用料金を項目として有する施設情報を記憶する。
【００９０】
備品情報テーブルＭ４は、利用申し込み可能な備品に関する情報を保持するマスタテーブルであり、登録日付、備品ＩＤ、備品名、利用料金を項目として有する備品情報を記憶する。
【００９１】
予約情報テーブルＴ１は、施設が予約された場合のこの予約の内容に関する情報を保持するトランザクションテーブルである。この予約情報テーブルＴ１は、登録日付、予約番号、予約開始日（利用開始日）、予約終了日（利用終了日）、予約種別、利用者ＩＤ、予約を受け付けたスタッフＩＤ、イベント情報、見積料金を項目として有する予約情報を記憶する。
【００９２】
予約施設情報テーブルＴ２は、施設が予約された場合の当該予約された施設に関する情報を保持するトランザクションテーブルであり、登録日付、予約番号、施設分類番号、予約日付（施設を利用する日付）、予約開始時間（施設の利用開始時間）、予約終了時間（施設の利用終了時間）、予約施設ＩＤ、料金を項目として有する予約施設情報を記憶する。
【００９３】
予約備品情報テーブルＴ３は、施設が予約された場合に共に予約された備品に関する情報を保持するトランザクションテーブルであり、登録日付、予約番号、備品分類番号、予約日付、予約開始時間、予約終了時間、予約備品ＩＤ、料金を項目として有する予約備品情報を記憶する。
【００９４】
この図３に示す各テーブル間の関係は、直線又は折れ線、端点「・」、端点「◇」によって表されている。
【００９５】
直線又は折れ線は、結合されているテーブル間で所定の関係がある旨を示している。
【００９６】
端点「・」は、テーブル間においてこの端点「・」側のテーブルの多重度が１以上である旨を示している。
【００９７】
例えば、利用者は複数の予約を行う場合があるため、利用者情報テーブルＭ１の１件の利用者情報は、予約情報テーブルＴ１の複数の予約情報に対応する場合がある。同様に、ある予約において複数の施設が予約される場合があるため、予約情報テーブルＴ１の１件の予約情報は、予約施設情報テーブルＴ２の複数の予約施設情報に対応する場合がある。端点「・」に関して他の場合も同様である。
【００９８】
端点「◇」は、テーブル間においてこの端点「◇」側のテーブルが他方の側のテーブルから参照される旨を示している。
【００９９】
例えば、予約情報の要素である利用者ＩＤをキーとして利用者情報テーブルＭ１の利用者情報を参照することで、施設を予約した利用者に関する利用者情報を特定することができ、これにより予約した利用者の性別やランク等を調べることができる。同様に、予約施設情報の要素である予約施設ＩＤをキーとして施設情報テーブルＭ３の施設情報を参照することで、予約された施設に関する施設情報を特定することができ、これにより予約された施設の利用料金や施設名を得ることができる。他の端点「◇」も同様である。
【０１００】
表１は、上記図３の利用者情報テーブルＭ１の記憶内容の例であり、マスタテーブルであるこの利用者情報テーブルＭ１には先に述べたように「登録日付」、「利用者ＩＤ」、「利用者名」、「性別」、「ランク」、「連絡先」の項目からなる利用者情報が集められている。
【０１０１】
【表１】
0004346158.tif 000002
【０１０２】
この利用者情報テーブルＭ１の各行は１件のレコードを示している。例えば１行目のレコードは、利用者名「鈴木太郎」の登録日付は「1998/12/25」であり、性別は「男」であり、ランクは「Ａ」であり、連絡先は「府中市」であり、登録時に予約管理システムのアプリケーションによって利用者ＩＤ「R001」が自動的に発番されて付されている。その他の利用者情報も同様である。
【０１０３】
表２は、上記図３のスタッフ情報テーブルＭ２の記憶内容の例であり、マスタテーブルであるこのスタッフ情報テーブルＭ２には先に述べたように「登録日付」、「スタッフＩＤ」、「スタッフ名」、「性別」、「職種」、「所属」の項目からなるスタッフ情報が集められている。
【０１０４】
【表２】
0004346158.tif 000003
【０１０５】
このスタッフ情報テーブルＭ２の各行は１件のレコードを示している。例えば１行目のレコードは、スタッフ名「山田一郎」の登録日付は「1998/12/25」であり、性別は「男」であり、職種は「スタッフ」であり、所属は「管理部」であり、登録時に予約管理システムのアプリケーションによってスタッフＩＤ「S001」が自動的に発番されて付されている。その他のスタッフ情報も同様である。
【０１０６】
表３は、上記図３の施設情報テーブルＭ３の記憶内容の例であり、マスタテーブルであるこの施設情報テーブルＭ３には先に述べたように「登録日付」、「施設ＩＤ」、「施設名」、「利用料金」の項目からなる施設情報が集められている。
【０１０７】
【表３】
0004346158.tif 000004
【０１０８】
この施設情報テーブルＭ３の各行は１件のレコードを示している。例えば１行目のレコードは、施設名「大会議室」の登録日付は「1998/12/01」であり、利用料金は「300000」であり、登録時に予約管理システムのアプリケーションによって施設ＩＤ「F0001」が自動的に発番されて付されている。その他の施設情報も同様である。
【０１０９】
表４は、上記図３の備品情報テーブルＭ４の記憶内容の例であり、マスタテーブルであるこの備品情報テーブルＭ４には先に述べたように「登録日付」、「備品ＩＤ」、「備品名」、「利用料金」の項目からなる備品情報が集められている。
【０１１０】
【表４】
0004346158.tif 000005
【０１１１】
この備品情報テーブルＭ４の各行は１件のレコードを示している。例えば１行目のレコードは、備品名「音響装置Ａ」の登録日付は「1998/12/01」であり、「利用料金」は「100000」であり、登録時に予約管理システムのアプリケーションによって備品ＩＤ「E0001」が自動的に発番されて付されている。その他の備品情報も同様である。
【０１１２】
表５は、上記図３の予約情報テーブルＴ１の記憶内容の例であり、トランザクションテーブルであるこの予約情報テーブルＴ１には先に述べたように「登録日付」、「予約番号」、「予約開始日」、「予約終了日」、「予約種別」、「利用者ＩＤ」、「スタッフＩＤ」、「イベント情報」、「見積料金」の項目からなる予約情報が集められている。
【０１１３】
【表５】
0004346158.tif 000006
【０１１４】
この予約情報テーブルＴ１の各行は、予約管理システムのアプリケーションによって管理される予約の内容を１件のレコードとして示している。例えば、１行目のレコードは、登録日付「1998/12/07」、予約開始日「1999/01/20」、予約終了日「1999/01/21」、予約種別「会議」、利用者ＩＤ「R001」、スタッフＩＤ「S001」、イベント情報「ソフトウェア工学国際会議」、見積料金「650000」であり、登録時に予約管理システムのアプリケーションによって予約ＩＤ「Y000001」が自動的に発番された予約情報を示している。他の予約情報も同様である。
【０１１５】
表６は、上記図３の予約施設情報テーブルＴ２の記憶内容の例であり、トランザクションテーブルであるこの予約施設情報テーブルＴ２には先に述べたように「登録日付」、「予約番号」、「施設分類番号」、「予約日付」、「予約開始時間」、「予約終了時間」、「予約施設ＩＤ」、「料金」の項目からなる予約施設情報が集められている。
【０１１６】
【表６】
0004346158.tif 000007
【０１１７】
この予約施設情報テーブルＴ２の各行は、予約された施設の内容を１件のレコードとして示している。例えば、１行目のレコードは、予約番号「Y000001」の予約において利用される施設には予約施設ＩＤ「F0001」の施設があり、登録日付「1998/12/07」、施設分類番号「１」、予約日付「1998/01/20」、予約開始時間「9:00」、予約終了時間「12:00」、料金「300000」である旨を示す予約施設情報である。その他の予約施設情報も同様であり、例えば２行目のレコードは予約番号「Y000001」の予約において利用される施設に予約施設ＩＤ「F0002」がある旨を示している。
【０１１８】
表７は、上記図３の予約備品情報テーブルＴ３の記憶内容の例であり、トランザクションテーブルであるこの予約備品情報テーブルＴ３には先に述べたように「登録日付」、「予約番号」、「備品分類番号」、「予約日付」、「予約開始時間」、「予約終了時間」、「予約備品ＩＤ」、「料金」の項目からなる予約備品情報が集められている。
【０１１９】
【表７】
0004346158.tif 000008
【０１２０】
この予約備品情報テーブルＴ３の各行は、予約された備品の内容を１件のレコードとして示している。例えば、１行目のレコードは、予約番号「Y000001」の予約において利用される備品には予約備品ＩＤ「E0001」の備品があり、登録日付「1998/12/07」、備品分類番号「１」、予約日付「1998/01/20」、予約開始時間「9:00」、予約終了時間「12:00」、料金「100000」である旨を示す予約備品情報である。その他の予約備品情報も同様であり、例えば２行目のレコードは予約番号「Y000001」の予約において利用される備品に予約備品ＩＤ「E0002」がある旨を示している。
【０１２１】
次に、本実施の形態における時間条件２について説明する。
【０１２２】
本実施の形態において時間条件２は、第１の時間条件１２と第２の時間条件１３とからなる。
【０１２３】
図４は、本実施の形態における第１の時間条件１２の記述形式を示す概念図である。
【０１２４】
この第１の時間条件１２は、各テーブルの名称（label）とこのテーブルにおいて日付を示す項目の全てのリスト（L）とによりサブリストを構成し、さらにこの各テーブル（label）毎のサブリストによりリストを構成した記述形式である。この記述形式により、データベース１内の各テーブルのデータ項目のうち、時間に関係するデータ項目が列挙されて記述される。
【０１２５】
図５は、この第１の時間条件１２の記述形式にしたがって記述された条件の具体例を示す概念図である。
【０１２６】
第１の時間条件１２の記述形式にしたがって記述されたこの条件１４は、各テーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３とこの各テーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３の日付を示す全ての項目のリストとを関係付けてサブリストを構成しており、さらにサブリスト全体でリストを構成した記述となっており、これによりテーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３における時間に関係するデータの項目を列挙している。
【０１２７】
図６は、本実施の形態における第２の時間条件１３の記述形式を示す概念図である。
【０１２８】
この第２の時間条件１３では、データベース１のデータ再構成を行う場合の時間軸の開始時点及び終了時点、さらにその開始時点から終了時点までの間をプロットする時間間隔を設定するために、開始、終了、粒度とが記述される。
【０１２９】
図７は、第２の時間条件１３の記述形式にしたがって記述された条件の具体例を示す概念図である。
【０１３０】
この条件１５では、1998年12月から1999年6月までの期間を、月毎に区切って時間軸を生成する旨が記述されている。
【０１３１】
次に、本実施の形態における項目値条件３について説明する。
【０１３２】
図８は、本実施の形態における項目値条件３を設定するための記述形式を示す概念図である。この項目値条件３は、３つのサブリストＬ１〜Ｌ３から構成されるリストＬにより記述することを厳密に定義している。
【０１３３】
第１のサブリストＬ１は、データベース１内のデータを再構成するために用いるテーブルの名称（label）とその項目とを関係付けて構成されるリストである。すなわち、この第１のサブリストＬ１はViewに相当するデータの項目を列挙したリストである。
【０１３４】
第２のサブリストＬ２は、第１のサブリストＬ１で記述されている各項目の順番にあわせて、各項目の取り得る項目値（Value）のリストか、あるいは項目値が予め定義されていない場合にどのように取り扱うかを識別するための文字列であるラベルを列挙したリストである。このラベルの例としては、アプリケーションにより自動的に付される各種のＩＤ番号等があり、この場合ラベルとして「自動発番」が記述される。
【０１３５】
なお、第１のサブリストＬ１で列挙した各項目の順番にあわせて、この各項目の取り得る項目値のリスト又はラベルが列挙される点に関しては、第２のサブリストＬ２の記述Ｌ２１で示されている。
【０１３６】
第３のサブリストＬ３は、第１のサブリストＬ１で記述されている各項目の順番にあわせて、各項目の取り得る項目値の組合せの生成方法を記述したリストである。
【０１３７】
組合せの生成方法は、それぞれC(1)〜C(k)で記述される。すなわち、この組合せの生成方法C(1)〜C(k)はViewに対するValueの組合せをどのように生成するか識別させるための記述である。
【０１３８】
例えばC(1)は、Viewが取り得るm個のValueのうち、1個をとる組合せ（m通り）を生成する旨を示す。すなわち、このC(1)は、その項目の取り得る項目値に関して２つ以上の要素からなる組合せを生成しない旨を示す。
【０１３９】
また、C(k)はViewが取り得るm個のValueのうち、重複を許さず0個以上m個をとる組合せを生成する旨を示す。すなわち、このC(k)はその項目の取り得る項目値に関する全ての組合せを生成する旨を示す。このC(1)〜C(k)の説明は、記述３１で述べている。
【０１４０】
その他にも、この組合せの生成方法として、その項目の取り得る項目値に関する任意の２つの要素による組合せのみを生成する方法を指定可能としてもよい。また、その項目の取り得る各項目値１つと、その項目の取り得る各項目値の全ての結合とを生成する方法を指定可能としてもよい。このように、組合せの生成方法には様々なものが利用できる。
【０１４１】
なお、第１のサブリストＬ１で列挙した各項目の順番にあわせて、第２のサブリストＬ２の要素である各項目の取り得る項目値のリスト又はラベルを列挙しており、さらに第１のサブリストＬ１で列挙した各項目の順番にあわせて、各項目に対応する組合せの生成方法を列挙する点に関しては、第３のサブリストＬ３の記述Ｌ３２で示されている。
【０１４２】
図９は、上記図８のような本実施の形態における項目値条件３の記述形式にしたがって記述された条件の具体例を示す概念図である。
【０１４３】
この条件１６では、第１のサブリストＬ１において、「テーブルＭ１の利用者ＩＤ」、「テーブルＭ１の性別」、「テーブルＭ１のランク」、「テーブルＴ１の予約番号」からなる項目によりデータの再構成を実行する旨が記述されている。
【０１４４】
また、第１のサブリストＬ１に記述した「テーブルＭ１の利用者ＩＤ」の項目値は利用者が追加される毎に発番する番号であり、データ分析時のデータベース１のレコードの登録状態から抽出可能なため、「自動発番」というラベルが第２のサブリストＬ２に記述されている。さらに、「テーブルＭ１の性別」の項目値は「男」または「女」であり、「テーブルＭ１のランク」の項目値は「Ａ」または「Ｂ」または「Ｃ」である旨が第２のサブリストＬ２に記述されている。さらに、「テーブルＴ１の予約番号」の項目値も予約情報が追加される毎に発番する番号であるため「自動発番」というラベルが第２のサブリストＬ２に記述されている。この項目値又はラベルの記述順序は第１のサブリストＬ１における項目の記述順序に対応している。
【０１４５】
さらに、第１のサブリストＬ１に記述した「テーブルＭ１の利用者ＩＤ」の「自動発番」の組合せ生成方法は「C(1)（項目値１個以下の組合せ）」であり、「テーブルＭ１の性別」の項目値「男、女」の組合せ生成方法は「C(k)（項目値０以上全ての組合せ）」であり、「テーブルＭ１のランク」の項目値「Ａ、Ｂ、Ｃ」の組合せ生成方法は「C(k)」であり、「テーブルＴ１の予約番号」の「自動発番」の組合せ生成方法は「C(1)」である旨が第３のサブリストＬ３に記述されている。この組合せ生成方法の記述順序は第１のサブリストＬ１における項目の記述順序に対応している。
【０１４６】
次に、本実施の形態に係るデータ生成装置４によって生成された多層入れ子テーブル５について説明する。
【０１４７】
図１０は、本実施の形態に係るデータ生成装置４によって生成された多層入れ子テーブル５の例を示す概念図である。
【０１４８】
ここでは、このデータ生成装置４に上記図５及び図７で示す第１及び第２の時間条件１４，１５が入力され、また項目値条件３として[[(Ｍ１，性別)]，[男，女]，[C(k)]]が入力され、さらに上記図３に示すデータベース１が読み込まれて生成された多層入れ子テーブル５を示している。
【０１４９】
また、ここでは、いずれかのテーブルが日付を示す項目を複数持つ場合に、日付を示す項目を列挙したリスト内で先頭に記述されている項目を用いてデータの再構成を実現する。しかしながら、これに限定されるものではなく、例えば日付を示す複数の項目の全てを用いてデータの再構成を実現するとしてもよい。
【０１５０】
この多層入れ子テーブルは、1998年12月を開始年月とし、1999年6月を終了年月とし、時間間隔を年月とした時間条件１５に基づいて、1998年12月分から1999年6月分までの７層の入れ子テーブル５１〜５７が生成される。
【０１５１】
ここで、時間軸が1998年12月の入れ子テーブル５１を見ると、この入れ子テーブル５１は、テーブルの名称Ｍ１〜Ｍ４、Ｔ１〜Ｔ３毎に列を形成している。また、この入れ子テーブル５１は、項目値条件３である[[(Ｍ１，性別)]，[男，女]，[C(k)]]に基づき、「男」、「女」、「男又は女」、「男でも女でもない（性別が指定されていない）」の４態様毎の行を形成している。
【０１５２】
この入れ子テーブル５１の行と列の交点もまたテーブルを表している。
例えば、入れ子テーブル５１のテーブルＭ１の列において項目値の組合せが「男」の位置には、テーブルＭ１−１が配置されている。このテーブルＭ１−１は、テーブルＭ１のレコードから性別が「男」に該当するレコードのみを抽出して構成されており、具体的には利用者名「鈴木太郎」及び「田中太郎」に関するレコードが抽出・配置されている。
【０１５３】
また、例えば入れ子テーブル５１のテーブルＭ１の列において項目値の組合せが「男又は女」の位置には、テーブルＭ１−３が配置されている。このテーブルＭ１−１は、テーブルＭ１のレコードのうち性別が「男又は女」に該当するレコードを抽出して構成されており、具体的にはテーブルＭ１と同一のテーブルが配置されることになる。
【０１５４】
次に、本実施の形態に係るデータ生成装置４によって実行される処理で扱われるデータについて説明する。なお、以下においては、データ生成装置４に上記図５及び図７で示す時間条件１４、１５が入力され、また項目値条件３として図９で示す条件１６が入力され、データベース１にはテーブルＭ１〜Ｍ４、Ｔ１〜Ｔ３が記憶されてる場合を具体例として説明する。
【０１５５】
まず、図１に示すデータ生成装置４の条件処理部６にデータベース１の内容と、時間条件１４、１５と、項目値条件１６とが入力されると、この条件処理部によって入力された時間条件と項目値条件が認識され、条件の変換、展開が行われる。
【０１５６】
図１１は、条件処理部６によって項目値条件が認識・変換・展開された状態を示す概念図であり、項目値条件で記述されているラベル「自動発番」が認識され、データベース１のレコードの登録状況から該当する具体的な番号が抽出されたリスト１７を示している。これにより、利用者ＩＤに対応するラベル「自動発番」が、利用者ＩＤの具体的な項目値のリストである[R001，R002，R003，R004]に展開される。また、予約番号に対応するラベル「自動発番」が、予約番号の具体的な項目値のリストである[Y000001，Y000002，Y000003，Y000004]に展開される。
【０１５７】
続いて、図１に示すデータ生成装置４の項目内組合せ生成部７ａによって、先の条件処理部６で展開されたリスト１７に基づく項目内の項目値の組合せが生成される。なお、項目内の項目値の組合せの生成手法として、１つのViewに対するValueを表すリスト（要素数n個とする）の要素の０個又は１個の組合せを生成する方法C(1)か、あるいは重複を許さず０個以上ｎ個以下の組合せを生成する方法C(k)がリスト１７において指定されている。
【０１５８】
図１１において第１のサブリストＬ１の要素１８〜２１は、それぞれ第２のサブリストＬ２の要素２２〜２５、第３のサブリストＬ３の要素２６〜２９の対応している。例えば（Ｍ１，利用者ＩＤ）は、項目値[R001，R002，R003，R004]を持ち、組合せ生成方法はC(1)である。
【０１５９】
図１２は、項目内組合せ生成部７ａによって生成される項目内の項目値の組合せを示すリストの概念図である。
【０１６０】
項目内組合せ生成部７ａによって生成されたリスト３０内のサブリスト３１は、利用者ＩＤの項目値リストである[R001，R002，R003，R004]を組合せ生成方法C(1)により組み合わせて生成された結果である。すなわち、このサブリスト３１は、利用者ＩＤの項目値リストの要素の中から、０個かまたは１個の要素を組合せて得られるリストである。
【０１６１】
サブリスト３２は、性別の項目リスト[男，女]の２要素を組合せ生成方法C(k)により組み合わせて生成される。すなわち、このサブリスト３２は、性別の項目値リストの要素の中から、０個以上２個以下の要素を組合せて得られるリストである。
【０１６２】
サブリスト３３は、ランクの項目リスト[Ａ，Ｂ，Ｃ]の３要素を組合せ生成方法C(k)により組み合わせて生成される。すなわち、このサブリスト３３は、ランクの項目値リストの要素の中から、０個以上３個以下の要素を組合せて得られるリストである。
【０１６３】
サブリスト３４は、予約番号の項目値リストである[Y000001，Y000002，Y000003，Y000004]を組合せ生成方法C(1)により組み合わせて生成される。すなわち、このサブリスト３４は、予約番号の項目値リストの要素の中から、０個かまたは１個の要素を組合せて得られるリストである。
【０１６４】
続いて、図１に示すデータ生成装置４の項目間組合せ生成部７ｂによって、先の項目内組合せ生成部７ａで生成された項目値の項目毎の組合せがさらに項目間で組み合わされる。この項目間での組合せは、項目毎に生成された項目値の組合せのリストからそれぞれ１個の要素が選択され組み合わさせて生成される。
【０１６５】
図１３は、項目間組合せ生成部７ｂによって生成される項目値の組合せの具体例を示す概念図であり、先の図１２に示す項目内の組合せリストに基づいて項目間組合せ生成部７ｂが生成する組合せリスト３５を示している。
【０１６６】
項目内の組合せを示す各サブリスト３１〜３４の要素数は、それぞれ５、４、８、５個である。項目間組合せ生成部７ｂでは、項目内の組合せを示す各サブリスト３１〜３４から１つずつの要素を選択して組合せるため、得られる項目間の組合せのリスト数は、５×４×８×５＝８００通りとなる。
【０１６７】
また、図１４は、この図１３における項目値の組合せの表記方法を説明するための概念図である。e(m,n)は、リスト３０内のm番目のサブリストのn番目の要素を表す。
【０１６８】
同様に、図１５は、e(m,n)と先の図１２に示す項目内の組合せリスト３０の各要素との関係を示す概念図である。
【０１６９】
先の図１２における項目内の組合せリスト３０には、４つのサブリスト３１〜３４があるため、mは1以上4以下となる。
【０１７０】
また、利用者ＩＤに関するサブリスト３１内には、５つの要素があるため、m=1のときにはnは1以上5以下である。同様に、性別に関するサブリスト３２には、４つの要素があるため、m=2のときにはnは1以上4以下である。また、ランクに関するサブリスト３３には、５つの要素があるため、m=3のときにはnは1以上5以下である。さらに、予約番号に関するサブリスト３４には、５つの要素があるため、m=4のときにはnは1以上5以下である。
【０１７１】
例えば、e(1,1)は、項目内の組合せリストにおける１番目のサブリストの１番目の要素であるため、[]（空リスト）を表している。e(1,2)は、１番目のサブリストの２番目の要素であるため、[R001]を表している。同様に、e(1,3)及びe(1,4)は、１番目のサブリストの３番目及び４番目の要素であるため、[R003]、[R004]を表している。
【０１７２】
このように、項目間組合せ生成部７ｂは、各項目毎に項目値の組合せを要素として持つデータを入力すると、各項目から任意の要素をそれぞれ１つ選択して組合せを行い、これにより項目値条件１６を満たすあらゆる項目値の組合せを生成する。
【０１７３】
続いて、図１に示すデータ生成装置４の多層入れ子テーブル生成部８によって、条件処理部６による時間条件１４、１５の処理結果、組合せ生成部７によって生成された項目値の組合せ、データベース１に蓄積されているテーブルの名称の観点で多層入れ子テーブル５のスキーマが生成される。
【０１７４】
多層入れ子テーブル５のスキーマとは、３つの軸の交点にテーブルを設定していない状態の多層入れ子テーブル５の枠を指す。
【０１７５】
なお、本実施の形態においては、テーブルＴ１に日付に関する項目が３つあるが、この日付に関する各項目を用いて再構成を行うために、登録日付により再構成するためのテーブルＴ１１、利用開始日により再構成するためのテーブルＴ１２、利用終了日により再構成するためのテーブルＴ１３とを用意し、テーブル名称の軸に設ける。
【０１７６】
同様に、テーブルＴ２にも、日付に関する項目が２つあるが、この各項目を用いて再構成するために、登録日付により再構成するためのテーブルＴ２１、予約日付により再構成するためのテーブルＴ２２を用意し、テーブル名称の軸に設ける。
【０１７７】
さらに、テーブルＴ３にも日付に関する項目が２つあるが、この各項目を用いて再構成するために、登録日付により再構成するためのテーブルＴ３１、予約日付により再構成するためのテーブルＴ３２を用意し、テーブル名称の軸に設ける。
【０１７８】
続いて、図１に示すデータ生成装置４の抽出部９によって、データベース１からデータが読み込まれ、多層入れ子テーブル生成部８で生成された多層入れ子テーブル５のスキーマに対する各交点のテーブルを生成するために必要なレコードが抽出される。データベース１からレコードを抽出する際には、３つの軸の値（時間、項目値の組合せ、テーブルの名称）に基づき、テーブルの名称で設定されたテーブルから時間の軸の値、項目値の組合せの値を検索キーとしてレコードの抽出が行われる。
【０１７９】
続いて、図１に示すデータ生成装置４の格納部１０によって、抽出部９で抽出されたデータが多層入れ子テーブル５の３つの軸の値（時間、項目値の組合せ、テーブルの名称）の該当場所に分配・登録される。
【０１８０】
図１６は、格納部１０によってデータの登録された多層入れ子テーブル５を示す概要図であり、1998年12月〜1999年6月までの入れ子テーブル３６〜４２が生成されている。ここでは1998年12月の入れ子テーブル３６を詳細に示しているが、他の子テーブル３７〜４２に関しても同様である。
【０１８１】
この1998年12月の入れ子テーブル３６における行の観点は、項目値の組合せ（区分とその区分値）であり、項目間組合せ生成部７ｂによって８００通りの組合せが生成されたため、項目値の組合せによる行数は８００行となる。
【０１８２】
一方、列の観点は、データベース１の持つテーブルの名称とこのテーブルにおける日付を示す項目との組合せで決定する。この日付を示す項目は、先に述べた第１の時間条件１４により記述されており、テーブルが時間に関する項目を複数持つ場合にどの項目を基準にして時間軸に配置しているかを示す。
【０１８３】
例えば、予約情報テーブルＴ１には時間に関するデータ項目として「登録日付」、「予約開始日」、「予約終了日」の３つの項目を備えている。なお、時間条件２において第１の時間条件を指定する理由は、それぞれのデータ項目の観点で、時間の変化に伴ったレコードの変化などを分析する旨の要求に備え、時間に関する全てのデータ項目に基づいて、レコードを抽出することが重要なためである。第１の時間条件の指定の方法は、先の図４及び図５に記載している。
【０１８４】
表８乃至表３１は、1998年12月の入れ子テーブル３６に登録されているテーブルの例を示す。
【０１８５】
表８は、テーブルの名称が「利用者情報テーブルＭ１」であって日付を示す項目が「登録日付」の場合の列と、項目値の組合せが全て空の要素からなる場合の行との交点位置に登録されているテーブルＭ１−１である。
【０１８６】
なお、本実施の形態に係るデータ生成装置４において、項目値の組合せが全て空の要素からなる場合には、テーブル名称の軸の示すテーブル内のレコードのうち時間軸の条件を満たす全てのレコードを入れ子テーブル３６に登録する。これは、何の項目値も指定されていない場合にはユーザが分析に利用する項目値を絞り切れていないとして取り扱うためである。しかしながら、このような取り扱いに限定されるものではなく、例えば項目値の組合せが全て空の要素からなる場合には該当するレコードがないとしてもよい。
【０１８７】
【表８】
0004346158.tif 000009
【０１８８】
同様に、表９から表１９も、テーブルの名称が「利用者情報テーブルＭ１」であって日付を示す項目が「登録日付」の場合の列に登録されているテーブルＭ１−２からテーブルＭ１−８００を表している。例えば、表１３に示すテーブルＭ１−６は、利用者情報テーブルＭ１内のレコードであって登録日付が1998年12月であり、項目「ランク」が項目値「Ａ」のレコードが登録されている。
【０１８９】
【表９】
0004346158.tif 000010
【０１９０】
【表１０】
0004346158.tif 000011
【０１９１】
【表１１】
0004346158.tif 000012
【０１９２】
【表１２】
0004346158.tif 000013
【０１９３】
【表１３】
0004346158.tif 000014
【０１９４】
【表１４】
0004346158.tif 000015
【０１９５】
【表１５】
0004346158.tif 000016
【０１９６】
【表１６】
0004346158.tif 000017
【０１９７】
【表１７】
0004346158.tif 000018
【０１９８】
【表１８】
0004346158.tif 000019
【０１９９】
【表１９】
0004346158.tif 000020
【０２００】
表２０は、テーブルの名称が「予約情報テーブルＴ１１」であって日付を示す項目が「登録日付」の場合の列と、項目値の組合せが全て空の要素からなる場合の行との交点位置に登録されているテーブルＴ１１−１である。
【０２０１】
なお、ここでも項目値の組合せが全て空の要素からなる場合に、テーブル名称の軸の示すテーブル内のレコードのうち時間軸の条件を満たす全てのレコードを入れ子テーブル３６に登録する。
【０２０２】
【表２０】
0004346158.tif 000021
【０２０３】
同様に、表２１から表３１も、テーブルの名称が「予約情報テーブルＴ１１」であって日付を示す項目が「登録日付」の場合の列に登録されているテーブルＴ１１−２からテーブルＴ１−８００を表している。例えば、表２５に示すテーブルＴ１１−６は、予約情報テーブルＴ１内のレコードであって登録日付が1998年12月であり、項目「ランク」が項目値「Ａ」のレコードが登録されている。なお、ここでは、予約情報テーブルＴ１における任意のレコードの項目「利用者ＩＤ」に基づいて利用者情報が参照され、この参照された利用者情報の項目「ランク」が「Ａ」であれば、この任意のレコードが入れ子テーブル３６のテーブル１１−６に登録される。
【０２０４】
【表２１】
0004346158.tif 000022
【０２０５】
【表２２】
0004346158.tif 000023
【０２０６】
【表２３】
0004346158.tif 000024
【０２０７】
【表２４】
0004346158.tif 000025
【０２０８】
【表２５】
0004346158.tif 000026
【０２０９】
【表２６】
0004346158.tif 000027
【０２１０】
【表２７】
0004346158.tif 000028
【０２１１】
【表２８】
0004346158.tif 000029
【０２１２】
【表２９】
0004346158.tif 000030
【０２１３】
【表３０】
0004346158.tif 000031
【０２１４】
【表３１】
0004346158.tif 000032
【０２１５】
表３２乃至表４３は、1999年1月の入れ子テーブル３７に登録されているテーブルの例を示す。
【０２１６】
表３２は、テーブルの名称が「予約情報テーブルＴ１２」であって日付を示す項目が「予約開始日」の場合の列と、項目値の組合せが全て空の要素からなる場合の行との交点位置に登録されているテーブルＴ１２−１である。
【０２１７】
なお、ここでも項目値の組合せが全て空の要素からなる場合に、テーブル名称の軸の示すテーブル内のレコードのうち時間軸の条件を満たす全てのレコードを入れ子テーブル３７に登録する。ここでは、予約情報テーブルＴ１のレコードのうち、項目「予約開始日」が「1999年1月」に該当するものは予約番号「Y000001」のみである。
【０２１８】
【表３２】
0004346158.tif 000033
【０２１９】
同様に、表３３から表４３も、テーブルの名称が「予約情報テーブルＴ１２」であって日付を示す項目が「予約開始日」の場合の列に登録されているテーブルＴ１２−２からテーブルＴ１２−８００を表している。例えば、表３８に示すテーブルＴ１１−６は、予約情報テーブルＴ１内のレコードであって予約開始日が1999年1月であり、項目「ランク」が項目値「Ａ」のレコードが登録されている。ここでは、予約情報テーブルＴ１における任意のレコードの項目「利用者ＩＤ」に基づいて利用者情報が参照され、この参照された利用者情報の項目「ランク」が「Ａ」であれば、この任意のレコードが入れ子テーブル３７のテーブル１２−６に登録される。
【０２２０】
【表３３】
0004346158.tif 000034
【０２２１】
【表３４】
0004346158.tif 000035
【０２２２】
【表３５】
0004346158.tif 000036
【０２２３】
【表３６】
0004346158.tif 000037
【０２２４】
【表３７】
0004346158.tif 000038
【０２２５】
【表３８】
0004346158.tif 000039
【０２２６】
【表３９】
0004346158.tif 000040
【０２２７】
【表４０】
0004346158.tif 000041
【０２２８】
【表４１】
0004346158.tif 000042
【０２２９】
【表４２】
0004346158.tif 000043
【０２３０】
【表４３】
0004346158.tif 000044
【０２３１】
以上説明したように、本実施の形態に係るデータ生成装置４を動作させることにより、データ分析のために「時間」、「データベースの持つテーブルの名称」、「項目値の組合せ」の３つの視点をユーザに提供することができる。
【０２３２】
この３つの視点のうち、「時間」は事務処理等に対する分析に有効な要素であり、「データベースの持つテーブルの名称」はどのテーブルが分析に有効であるかを調べるのに有効な要素である。そして、「項目値の組合せ」を全て生成して視点とすることで、ユーザにデータ分析のための具体的な視点を与えることができる。
【０２３３】
また、本実施の形態においては、データベース１に蓄積された２次元の表形式のデータを、「時間」、「データベースの持つテーブルの名称」、「項目値の組合せ」の３つの視点により再構成し、新たに一つの多層入れ子テーブル５にデータを蓄積して提供する。この多層入れ子テーブル５に蓄積されたデータは、入力となったデータベース１の持つ全データを含み、あらゆるデータ分析のソースとなる。したがって、ユーザは、この多層入れ子テーブル５に蓄積されたデータにより、データ分析のための視点とその視点に基づく全テーブルのデータの候補を取得することができる。
【０２３４】
さらに、本実施の形態においては、分析の観点とその観点毎のデータが多層入れ子テーブル５として１元管理されているため、データ分析のための手続が単純化され、ユーザは分析そのものに注力しやすい。
【０２３５】
さらに、本実施の形態で得られる多層入れ子テーブル５においては、分析のための視点や発想が多層化されて配置されるため、この多層化された視点や発想を組み合わせたり、絞り込んだりすることにより、ユーザは新たな分析の観点を発見することが容易となる。
【０２３６】
さらに、本実施の形態により得られる多層入れ子テーブルを提供すれば、データ分析のための対象データの構造と検索方法とを統一することができる。
【０２３７】
なお、上記各実施の形態に係るデータ生成装置４は、同様の作用・機能を実現可能であれば各構成要素の配置を変更させてもよく、また各構成要素を自由に組み合わせてもよい。
【０２３８】
また、上記第１及び第２の実施の形態に係るデータ生成装置４の各機能、各要素は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フロッピーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記憶媒体に書き込んで適用したり、通信媒体により伝送して計算機あるいは計算機システムに適用することも可能である。上記各機能を実現するコンピュータは、記憶媒体に記憶されたプログラムを読み込み、プログラムによって動作が制御されることにより、上述した処理を実行する。
【０２３９】
【発明の効果】
以上詳記したように本発明においては、所定単位の時間、データベース内のテーブルの識別情報、データベース内のテーブルにおける項目のうちの任意の項目の取り得る項目値の組合せの３要素のより、データベースの内容が再構成される。
【０２４０】
この再構成により得られる多層入れ子テーブルを用いることで、ユーザはデータ分析のための視点とその視点に基づく全テーブルのデータの候補を取得することができる。
【０２４１】
また、多層入れ子テーブルを生成することにより、データ分析のための対象データの保存場所と取得方法を統一することができる。
【０２４２】
また、多層入れ子テーブルを生成することにより、例えば事務処理システム等のようなデータ分析のための対象データとなるデータのソースを提供することができる。
【０２４３】
また、多層入れ子テーブルを生成することにより、データ分析（データの検索、抽出、分類、数え上げ、集計等）のためのプログラムをはじめから作成しなくても、適切にデータを管理することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るデータ生成装置の構成を示すブロック図。
【図２】同実施の形態に係るデータ生成装置の動作を示すフロー図。
【図３】本発明の第２の実施の形態においてデータベースに蓄積されているテーブル間の関係を例示する概念図。
【図４】同実施の形態における第１の時間条件の記述形式を示す概念図。
【図５】同実施の形態における第１の時間条件の記述形式にしたがって記述された条件の具体例を示す概念図。
【図６】同実施の形態における第２の時間条件の記述形式を示す概念図。
【図７】同実施の形態における第２の時間条件の記述形式にしたがって記述された条件の具体例を示す概念図。
【図８】同実施の形態における項目値条件を設定するための記述形式を示す概念図。
【図９】同実施の形態における項目値条件の記述形式にしたがって記述された条件の具体例を示す概念図。
【図１０】同実施の形態に係るデータ生成装置によって生成された多層入れ子テーブルの例を示す概念図。
【図１１】同実施の形態において条件処理部によって項目値条件が認識・変換・展開された状態を示す概念図。
【図１２】同実施の形態において項目内組合せ生成部によって生成される項目内の項目値の組合せを示すリストの概念図。
【図１３】同実施の形態において項目間組合せ生成部によって生成される項目値の組合せの具体例を示す概念図。
【図１４】項目値の組合せの表記方法を説明するための概念図。
【図１５】  e(m,n)と項目内の組合せリストの要素との関係を示す概念図。
【図１６】本実施の形態において格納部によってデータの登録された多層入れ子テーブルを示す概要図。
【符号の説明】
１…データベース
２…時間に関する条件
３…項目と項目値に関する条件
４…データ生成装置
５…多層入れ子テーブル
６…条件処理部
７…組合せ処理部
８…多層入れ子テーブル生成部
９…抽出部
１０…格納部
１１…集合データ
【図１】
0004346158.tif 000045
【図２】
0004346158.tif 000046
【図３】
0004346158.tif 000047
【図４】
0004346158.tif 000048
【図５】
0004346158.tif 000049
【図６】
0004346158.tif 000050
【図７】
0004346158.tif 000051
【図８】
0004346158.tif 000052
【図９】
0004346158.tif 000053
【図１０】
0004346158.tif 000054
【図１１】
0004346158.tif 000055
【図１２】
0004346158.tif 000056
【図１３】
0004346158.tif 000057
【図１４】
0004346158.tif 000058
【図１５】
0004346158.tif 000059
【図１６】
0004346158.tif 000060