(57)【特許請求の範囲】
【請求項１】
複数の索引項目と数値データ項目からなる集約元データテーブルと、該集約元データテーブルの複数の索引項目のうち少なくとも一つ以上の索引項目を有し、該集約元データテーブルと集約度の異なる集約先データテーブルとを記憶するデータベース記憶部と、
前記データベース記憶部に記憶された複数のデータテーブルと索引項目の関係を記憶するデータベース定義情報記憶部と、
前記索引項目をキーにした前記数値データ項目の検索要求に対して、前記データベース定義情報記憶部に基づいて、前記データベース記憶部に記憶されているデータテーブルの検索ルートのうち最適なものを求める検索ルート決定手段と
前記検索ルート決定手段で指定された検索ルート情報に基づいて、データテーブルを検索する検索手段とを備えたことを特徴とするデータベースシステム。
【請求項２】
前記データベース定義情報記憶部は、前記複数の索引項目間の関係を記憶し、該情報に基づいて、前記検索ルート決定手段が検索ルートを決定することを特徴とする請求項１記載のデータベースシステム。
【請求項３】
入力装置からの前記集約元データとその索引項目の指定に基づいて、前記集約先データテーブルを生成し、この生成する集約先データテーブルの構成情報を前記データベース定義記憶部に登録する集約データ生成手段を備えたことを特徴とする請求項１乃至２記載のデータベースシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データベースシステムにおいて、複数の索引項目と数値項目を有するデータテーブルから指定された索引項目に対する数値項目の集計値（例えば総和）を求める処理に関するものである。
【０００２】
【従来の技術】
前記のような、複数の索引項目と数値項目を有するデータテーブルからデータの集計値を求める場合、頻繁に行う集計処理であっても、一つのデータテーブルから同じ検索を再度実行していた。
【０００３】
【発明が解決しようとしている課題】
どの項目が頻繁に集計処理に使用されるか、予め操作者にはわかっていることから、頻繁に使用される項目の集計処理を高速に行うようにすることが望まれている。
【０００４】
【課題を解決するための手段】
上記の課題は、複数の索引項目と数値データ項目からなる集約元データテーブルに対して、該データテーブルの複数の索引項目のうち任意の索引項目を用いて集約度の異なる集約先データテーブルを記憶するデータベース記憶部と、前記複数のデータテーブルにおける索引項目の関係を記憶するデータベース定義情報記憶部と、前記索引項目をキーにした前記数値データ項目の検索要求に対して、前記データベース定義情報記憶部に基づいて、前記データベース記憶部に記憶されているデータテーブルの検索ルートを求める検索ルート決定手段と前記検索ルート決定手段で指定された検索ルート情報に基づいて、前記データテーブルを検索する検索手段により解決される。
【０００５】
【作用】
よく使用される索引項目をキーにした集約度の異なるデータテーブルを予め作成しておき、その集約度の異なる複数個のテーブルとその定義情報をテーブル（ファイル）として記憶しておき、検索ルート決定手段が、この定義情報に基づいて、最適な検索ルートを求めて、データベースの検索を行うようするした。
【０００６】
【実施例】
第１図は本発明の一実施例の構成図を示す図である。１は処理装置、３は入力装置、４は表示装置である。２はデータベース等を記憶した外部記憶装置であり、この中には、組織マスタテーブル２００、売上データ１テーブル２１１、売上データ２テーブル２１２、売上データテーブル２１３、データベース定義情報ファイル２２０が格納されている。組織マスタテーブル２００には、組織の定義情報が格納されている。売上データ１テーブル２１１は、組織情報の索引項目と数値項目からなるデータテーブルであり、売上データ２テーブル２１２および売上データ３テーブル２１３は売上データ１テーブル２１１を元に作成された集約度の異なるデータテーブルである。データベース定義情報ファイル２２０には、各索引項目との関係と各売上データテーブルとの関係が格納されている。
【０００７】
また、１１は前記データベース定義情報ファイルを作成／更新する手段であり、１２は外部記憶装置２内に集約度の異なるテーブルを生成する集約データ生成手段であり、１３はデータベース定義情報ファイル２２０に記憶されている情報に基づいて、最適な検索ルートを求める検索ルート決定手段であり、１４は前記検索ルート決定手段１３で指定された検索ルート情報に基づいて、データベース（売上データテーブル等）を検索する検索手段である。また、５は外部記憶装置２内のデータベースをアクセスするアプリケーションプログラムであり、データベースへのアクセスは、必要となるデータ項目の項目名を用いて検索の依頼をするものである。本実施例のデータベー  スシステムは、アプリケーションから項目名をキーにした集計の要求を受けテ、その項目名から、データベースのアクセスにおいて処理対象となるデータテーブルおよび処理動作を求めて、該当するＳＱＬコマンドを生成し、そのＳＱＬコマンドを用いて、データベースにアクセスする。そして、集計を依頼したアプリケーションプログラムにその結果を通知する。
【０００８】
図２は、組織マスタ／売上データテーブルのデータ形式を説明する図である。２１１は図２の集約元の売上データである売上データ１テーブルであり、担当毎の売上データが格納されており、各担当と売上データ以外に担当の所属する課、支店、支社の識別情報が売上データの同一レコード内に格納されている。担当、課、支店、支社の関係は組織マスタテーブル２００に格納されているとおり、支社、支店、課、担当は階層的な関係になっている。すなわち、支社「１０１」には支店「２００１」、「２００２」があり、支店「２００１」には課「３０１」、「３０２」があり、課「３０１」には担当「４０１」、「４０２」、「４０３」がいることを示している。
【０００９】
また、２１２および２１３は売上データ１テーブル２１１を集約した売上データ２テーブルと売上データ３テーブルである。売上データ２テーブル２１２は支社毎および課毎に、集約元の売上データ１テーブル２１１を集約したものである。また、集約先データテーブル２１３は支店毎および課毎に集約したものである。
【００１０】
図３は、本発明の一実施例における動作フローを示している。すなわち、最初に集約前のデータテーブル（売上データ１テーブル２１１）からどの索引項目を用いて集約データテーブルを使用するかを、操作者に入力させ、そして、操作者が入力した情報をデータベース定義情報ファイル２２０に格納する（Ｓ４１）。この場合、操作者はよく使用する索引項目を選択する。
【００１１】
次に作成されたこのデータベース定義情報ファイル２２０に基づいて、集約データテーブルを作成する（Ｓ４２）。また、集約前のデータテーブルの構造に変更が発生した時も、Ｓ４１と同様に、データベース定義情報ファイルを更新し、再度集約データテーブルを作成しなおす。
次に、アプリケーションプログラムや、キーボード等からのデータベースの検索指示を受信する。データベースの検索指示は集約前データテーブルのどの索引項目名に対応するどの数値項目が欲しいかが指定される（Ｓ４３）。指定された索引項目名をキーにして、データベース定義情報ファイルを参照し、可能性のある検索ルートのうち、最も早く検索できるルートを決定する（Ｓ４４）。そして、Ｓ４４で決定した検索ルートでデータベースを検索する（Ｓ４５）。
【００１２】
図６は、図２中の組織マスタテーブル２００とデータテーブル（売上データ１データテーブル２１１、売上データ２データテーブル２１２、売上データ３データテーブル２１３）との関係を記憶したデータベース定義情報ファイル２２０のデータ形式である。
図６の左から１番目の欄はテーブルを名称の格納している。２番目の欄は各テーブル（組織マスタテーブル以外）の行数を記憶しており、集約前データテーブル２１１は７５００行（レコード）あり、集約後データテーブル２１２および２１３は２５０行あることを示している。この欄は、データ創成時又は、データ更新時に自動的に更新されるものである。
【００１３】
３番目以降の欄は、各テーブル内の項目毎の情報であり、３番目は項目名、４番目は組織マスタテーブルの項目のうち、下位情報を有するものか否かを示す。５番目の「カラム」は各テーブルにおける各項目の位置を示している。
６番目の「経由先」の欄はその項目が組織マスタテーブルのどの項目から間接的に求めることができるかを示しており、例えば支社のデータは支店情報（「Ｃ２」）から求められることが示されている。
【００１４】
７番目の「リンク先」の欄はその項目のデータ（売上データ）を抽出する時に使用可能なテーブル名およびカラム名が格納されており、例えば、第１行目は、支社毎の売上データが集約前データテーブルのカラムＣ１に基づいて、抽出できることが示されている。この欄の情報は、売上データの項目名と組織マスタテーブルの項目名と比較をしていき、同一のものがあった時に対応するテーブル名とカラム名を格納する処理により作成されるものである。また、このように自動的に設定せずに、操作者が自ら設定しても良い。
【００１５】
８番目の「タイプ」の欄は各データ項目のデータタイプを示しているおり、「Ｘ」は文字項目であることを示し、「９」は数値項目であることを示している。９番目の欄は各データ項目の桁数が格納されており、例えば、第１行目の支社情報は３桁のデータであることを示す。
集約後データテーブルの定義については、操作者が、図７にある画面を用いて、どの索引項目について集約先のデータテーブルを作成するかの定義をした際に、格納される。
【００１６】
図７は、どの索引項目を用いて集約データテーブルを作成するかを操作者に指定させる処理における、その指定画面を示している。図６に示したデータベース定義情報ファイル２２０内に格納されている集約元のデータテーブルに対応して、指定可能な項目が表示され、すでに定義されている集約データテーブルがあれば、指定した項目に「○」が付されて表示される。
【００１７】
図中の横のカラムは集約データテーブルの識別番号を示しており、「０１」は集約元のデータテーブルである売上データ１テーブル２１１を示しており、「０２」、「０３」はそれぞれ、は集約先のデータテーブルである売上データ２テーブル２１２、と売上データ３テーブル２１３を示している。例えば、「０２」では「支社」、「課」の項目で「売上金額」の集約データを作成することを示している。ここで指定された内容は図６のデータベース定義情報ファイル２２０に格納される。
【００１８】
操作者の指定により、作成または更新されたデータベース定義情報ファイル２２０に基づいて、データテーブル作成の処理（図３のＳ４２）を、図４のデータテーブル作成処理のフローチャートを用いて説明する。作成また更新されたデータテーブルの定義情報（データベース定義情報ファイル２２０内）があるかを判定しあれば次の処理を行う。作成またさ更新されたデータテーブルの定義情報を取り出し、すなわち、どの項目で集計すべきかの情報を取り出す。そして、取り出した項目で集約元のデータテーブル（売上データ１テーブル２１１）内のレコードをソートし、ソートしたレコードを順に読み出し、同じ項目で同じデータを有するレコードの売上データの合計をしていくことで、新たなデータテーブル（集約先のデータテーブル）のレコードを作成していく。
【００１９】
次に、図３におけるＳ４３以降の処理を説明する。支店毎の売上データを求める場合について説明する。支店毎の売上データの要求を受けると、図６で詳細を示したデータベース定義情報ファイル２２０を参照して、探索可能なルートを算出する。
まず、データベース定義情報ファイル２２０の中において、組織マスタテーブルに関係するレコードで、支店を定義したレコードを求める。
【００２０】
そして、このレコード中の「リンク先テーブル名／カラム名」の欄から２つの検索ルート（「売上データ１／Ｃ２」と「売上データ３／Ｃ１」）を求める。これから、図８の（ａ）  と（ｂ）  のＳＱＬコマンドが求められる。
つぎには、「経由先」の欄から間接的に求めることができる項目名を求める。「経由先」には「Ｃ３」とあることから「課」の項目が選択され、この選択した項目の「リンク先テーブル名／カラム名」の欄から３つの検索ルート（「売上データ１／Ｃ３」と「売上データ２／Ｃ２」と「売上データ３／Ｃ２」）を求める。これから、図８の（ｃ）  、（ｄ）  、（ｅ）  のＳＱＬコマンドが求められる。
【００２１】
さらに、「課」の「経由先」の欄から間接的に求めることができる項目名を求める。「経由先」には「Ｃ４」とあることから「担当」の項目が選択され、この選択した項目の「リンク先テーブル名／カラム名」の欄から１つの検索ルート（「売上データ１」）を求める。これから、図８の（ｆ）  のＳＱＬコマンドが求めれる。
【００２２】
更に、組織マスタテーブルに関係するレコードで支店を定義したレコードの『リンク先テーブル名／カラム名』の欄に記述されたテーブル名とカラム名に一致するものをデータベース定義情報ファイル２２０の中から探すと、双方の項目名が一致する。すなわち、一致する場合には、組織マスタを用いる必要がないため、売上データテーブルからのみ集計データの抽出が可能と
なる。この例では、図８の（ａ）  および（ｂ）  より、図８の（ｇ）  および（ｈ）  が求まる。
【００２３】
この求められた検索ルートのうち、以下の基準で最適なルートを決定する。
以下は基準の優先順位が高い順に並べてある。（但し、優先順位はデータベースの構造、データ量、コードの特性等により変更可能であり、データ  ベースの特性を生かせる様になっている）
（１）直接検索である。
【００２４】
（２）テーブル間のリンク数が少ない
（３）テーブルのカラム数が少ない
（４）行数が少ないテーブル
（５）行長の短いテーブル
（６）テーブルの容量が少ない
（７）テーブル上のキー項目が少ないテーブルを使用している
（８）使用するマスタ項目の中で最下位に位置するマスタ項目より下位の    キー項目の数が少ないテーブルを使用している。
以下に各基準について説明する。
（１）直接検索である
直接検索とは組織マスタを使用せずにデータテーブルのみで検索可能かという意味である。この図５の例では（ｇ）  と（ｈ）  が該当する。
（２）テーブル間のリンクの数が少ない
例えば、図８の（ａ）  の『組織マスタ・支店→売上データ１・支店』の『→』がリンクに該当し、図５の（ａ）  、（ｂ）  は１個であり、（ｃ）  、（ｄ）  、（ｅ）  は２個、（ｆ）  は３個、（ｇ）  、（ｈ）  は０となる、（１）で選択された（ｇ）  と（ｈ）  ではリンク数では１つに絞りこむことができない。
（３）テーブルのカラム数が少ない
データベース定義情報ファイル２２０の項目名の欄を参照し、各テーブルで項目が幾つあるかにより求めることができる。この例では、（ｇ）  のカラムは５で（ｈ）  は３であるため、（ｈ）  が検索ルートとして選択される。
（４）行数が少ないテーブル
この基準についても、データベース定義情報ファイル２２０の行数の欄を参照し、各テーブルが何行のレコードより構成されるかを見る。売上データ１テーブル２１１の場合は、７５００行であり、売上データ２テーブル２１２の場合は２５０行である。
（５）行長の短いテーブル
データベース定義情報ファイル２２０の桁数の欄を参照し、各テーブルで各項目の桁数の総和を算出する。
（６）テーブルの容量が少ない
（４）および（５）の結果を掛け算することより、テーブルの容量を求める。
（７）テーブル上のキー項目が少ないテーブルを使用している
また、図５の例ではキー項目（索引項目）は複数あるが数値項目が１個しかない例であるが、数値項目が複数個ある場合を考慮したものであり、（３）は全体の項目数であるのに対し、これは、キー項目の数である。
（８）使用するマスタ項目の中で最下位に位置するマスタ項目より下位のキ    ー項目の数が少ないテーブルを使用している。
複数の集約テーブルが、検索対象と成り得る事が判明したとき、使用するマスタ項目（この例では支店）より下位のキー項目数が少ない方が集約度が高い（テーブル上のレコード件数が少ない）可能性が多分にある為、その  テーブルを使用して検索を行う様にするものである。
【００２５】
【発明の効果】
以上説明したように、データべース構造を定義したファイルの修正のみで、従来のアプリケーションプログラムの修正を行う必要がなく、最適な検索ルートでデータ抽出を行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施例の構成図
【図２】組織マスタ／売上データテーブルのテータ形式
【図３】本発明の一実施例における動作フロー
【図４】データテーブル作成処理のフローチャート
【図５】検索ルート決定処理のフローチャート
【図６】データベース定義情報ファイルのデータ形式
【図７】集約テーブルの指定画面の例
【図８】生成されるＳＱＬコマンドを説明する図
【符号の説明】
１    処理装置
２    外部記憶装置
３    入力装置
４    表示装置
５    アプリケーションプログラム
１１    データベース定義手段
１２    集約データ作成手段
１３    検索ルート決定手段
１４    検索手段
２００    組織マスタテーブル
２１１    売上データ１テーブル
２１２    売上データ２テーブル
２１３    売上データ３テーブル
２２０    データベース定義情報ファイル
【図１】
0003552339.tif 000002
【図２】
0003552339.tif 000003
【図３】
0003552339.tif 000004
【図４】
0003552339.tif 000005
【図５】
0003552339.tif 000006
【図６】
0003552339.tif 000007
【図７】
0003552339.tif 000008
【図８】
0003552339.tif 000009