JP2005157773A - データベース検索装置、データベース検索方法、プログラム及び記録媒体 - Google Patents

データベース検索装置、データベース検索方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2005157773A
JP2005157773A JP2003395888A JP2003395888A JP2005157773A JP 2005157773 A JP2005157773 A JP 2005157773A JP 2003395888 A JP2003395888 A JP 2003395888A JP 2003395888 A JP2003395888 A JP 2003395888A JP 2005157773 A JP2005157773 A JP 2005157773A
Authority
JP
Japan
Prior art keywords
search
database
schema
customer
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003395888A
Other languages
English (en)
Other versions
JP4084740B2 (ja
Inventor
Yoshiyuki Terakado
祥幸 寺門
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Marketing Japan Inc
Original Assignee
Canon Marketing Japan Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Marketing Japan Inc filed Critical Canon Marketing Japan Inc
Priority to JP2003395888A priority Critical patent/JP4084740B2/ja
Publication of JP2005157773A publication Critical patent/JP2005157773A/ja
Application granted granted Critical
Publication of JP4084740B2 publication Critical patent/JP4084740B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 スキーマの最適化を図る上で同一のデータテーブルを複数作成する必要がなくなり、記憶容量の使用量を抑えることを可能とする。
【解決手段】 データベース検索サーバ200は、クライアントPC100から受信した検索条件に応じて、異なる複数のデータテーブルから一又は複数のデータテーブルを選択し、選択したデータテーブルから成るスキーマを決定する。そして、データベース検索サーバ200は、決定したスキーマのデータベースを対象に、当該検索条件によるデータ検索を行う。
【選択図】 図1

Description

本発明は、複数のデータテーブルを有するデータベースに対する検索を行うデータベース検索に関し、特に、複数のスキーマを有するデータベースに対するデータ検索を行うためのデータベース検索装置、データベース検索方法、プログラム及び記録媒体に関する。
データウェアハウスとして用いられる、複数のデータテーブルから構成されるデータベースに対するデータベース検索システムにおいては、データベースの管理者等が定義するスキーマによりデータベースが構築されている。そして、ユーザがデータベースに対する検索を行う場合には、データベース自由検索ツールがユーザの入力する検索及び出力の条件からデータベースのスキーマに合わせたクエリを生成してデータベースへの検索を行ってデータ出力をするものである。
従来のデータベース検索システムにおいては、入力される検索に係わる条件の全てを満たすことが可能な画一的なスキーマを定義し、そのためのファクトテーブルを1つ用意しているために簡単な検索を行うだけでもクエリ実行時間の最適化を図ることができなかった。
そこで、例えば特許文献1においてはユーザ利用方法にスキーマが合わない課題を解決するために、ユーザ利用状況情報としてSQL(Structured Query Language)を保存し、ユーザのスキーマ利用パターンを導き出し、設定されているチューニング目標(スループット、記憶容量等)に合わせて最適なスキーマパターンを生成して用いるものである。
特開2000−259723号公報
しかしながら、特許文献1に記載のデータベースシステムにおいては、スキーマパターンを最適化して用いることは可能であるが、最適化の仕組みをデータベースのRDBMSの機能として持つためには非常に高価なデータベースの導入が必要となる。これらの高価なデータベースにおいてはキューブ等の名称で呼ばれるデータベースを構築しなくてはならないが、その場合同一のデータテーブルを複数作成する必要があり、無駄な記憶容量を必要とする。
また、更には、特許文献1ではスキーマは最適化することが可能となるが、クエリの生成は最適化されないので簡単な検索を最適化されたスキーマを用いて行う場合でも画一的なクエリ生成を行うので、クエリ生成において無駄な処理を行うという欠点もあった。
本発明は、上記問題点に鑑みてなされたものであり、データベース構成(スキーマ)の最適化を図る上で同一のデータテーブルを複数作成する必要がなくなり、記憶容量の使用量を抑えることを可能とするデータベース検索装置、データベース検索方法、プログラム及び記録媒体を提供することを目的とする。
また、本発明は、更にデータ検索要求情報(クエリ)の生成処理を最適化することが可能なデータベース検索装置、データベース検索方法、プログラム及び記録媒体を提供することを目的とする。
斯かる目的を達成するために、本発明のデータベース検索装置は、データの検索条件を入力する検索条件入力手段と、前記検索条件入力手段により入力された前記検索条件に応じて、異なる複数のデータテーブルから一又は複数のデータテーブルを選択し、選択した前記一又は複数のデータテーブルから成るデータベース構成を決定するデータベース構成決定手段と、前記データベース構成決定手段により決定された前記データベース構成を対象に、前記検索条件によるデータ検索を行うデータ検索手段とを有することを特徴とする。
本発明のデータベース検索方法は、データベース検索装置によるデータベース検索方法であって、データの検索条件を入力する検索条件入力ステップと、前記検索条件入力ステップにより入力された前記検索条件に応じて、異なる複数のデータテーブルから一又は複数のデータテーブルを選択し、選択した前記一又は複数のデータテーブルから成るデータベース構成を決定するデータベース構成決定ステップと、前記データベース構成決定ステップにより決定された前記データベース構成を対象に、前記検索条件によるデータ検索を行うデータ検索ステップとを含むことを特徴とする。
本発明のプログラムは、前記データベース検索方法をコンピュータに実行させることを特徴とする。また、本発明のコンピュータ読み取り可能な記録媒体は、前記プログラムを記録したことを特徴とする。
本発明によれば、検索条件に応じて、異なる複数のデータテーブルから一又は複数のデータテーブルを選択し、選択したデータテーブルから成るデータベース構成を決定するように構成したので、データベース構成の最適化を図る上で同一のデータテーブルを複数作成する必要がなくなり、記憶容量の使用量を抑えることが可能となる。
また、本発明によれば、最適化されたデータベース構成に応じたデータ検索要求情報を生成するように構成したので、最適化され、例えば、少ないデータテーブルで構成されるデータベース構成が検索対象となった場合、それに応じてデータ検索要求情報も余計な情報が省かれ、データ検索要求情報の生成処理も最適化することが可能となる。
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
図1は、本発明の一実施形態に係るデータベース検索システムの構成を模式的に示した図である。
100は、ユーザが操作するクライアントPCであり、Webブラウザを用いて後述のデータベース検索サーバ200から送信されるWebページを画面上で表示する。200は、自由検索アプリケーション21及び各種データを記録した自由検索DB(自由検索データベース)22を備えたデータベース検索サーバであり、自由検索アプリケーション21によりクライアントPC100の要求に応じたデータを自由検索DB22から検索し、その結果をWebページで各クライアントPC100に送信する。300は、システムDBサーバであり、自由検索DB22に格納すべきデータを逐次或いはバッチ処理によりデータベース検索サーバ200に対して送信する。
データベース検索サーバ200に接続される各クライアント100は、所望の出力データ項目を指定する出力条件及びその検索条件を画面上で入力し、その入力内容をデータベース検索サーバ200に対して送信する。当該入力内容を受けたデータベース検索サーバ200は、出力条件に挙げられたデータのうち検索条件に合致するデータを自由検索DB22から取得する。なお、出力条件もデータを検索するための条件であるので、出力条件の概念に含まれる。従って、以下の説明では、出力条件も含む意味で検索条件という用語を用いるものとする。
次に、データベース検索サーバ200は、取得したデータを例えばCSV(Comma Separated Value)データとしてクライアントPC100に返信し、当該クライアントPC100では検索結果を画面上で確認することが可能となる。
図2は、データベース検索サーバ200のハードウェア構成を示す図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、データベース検索サーバ200の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)205は、キーボード209や不図示のマウス等のポインティングデバイスからの入力を制御する。ビデオコントローラ(VC)206は、CRTディスプレイ(CRT)210等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものであり、本発明には直接関係があるものではない。メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウェア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(R)メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
クライアントPC100のハードウェア構成もデータベース検索サーバ200と同様であり、外部メモリ211に格納されているプログラム等が異なるものである。
次に、本実施形態において用いられるデータテーブルについて説明する。
本実施形態では、図3に示すように、2つのマスタテーブルと3つのトランザクションテーブルを夫々、検索対象となるデータベースの一構成として用いる。マスタテーブルには、得意先マスタテーブルと商品マスタテーブルがあり、トランザクションテーブルには、実績トランザクションテーブル、得意先集計トランザクションテーブル及び商品集計トランザクションテーブルがある。得意先集計トランザクション及び商品集計トランザクションテーブルは、得意先毎又は商品毎のデータ検索速度を向上させるために、夜間バッチ処理等でDBサーバ300内において実績トランザクションテーブルに基づいて作成されるデータテーブルであり、トランザクションテーブルの年月レコードを得意先、商品毎の上期、下期レコードに集計する。
得意先マスタテーブルは、得意先コードを記録した得意先CD項目及び得意先名を記録した得意先名項目によって構成される。商品マスタテーブルは、商品コードを記録した商品CD項目及び商品名を記録した商品名項目によって構成される。
実績トランザクションテーブルは、販売を行った年月を記録した年月項目、得意先コードを記録した得意先CD項目、商品コードを記録した商品CD項目、販売数を記録した販売数項目及び販売金額を記録した販売金額項目によって構成される。
得意先集計トランザクションテーブルは、得意先コードを記録した得意先CD項目、上期販売数を記録した上期販売数項目、上期販売金額を記録した上期販売金額項目、下期販売数を記録した下期販売数項目及び下期販売金額を記録した下期販売金額項目によって構成される。
商品集計トランザクションテーブルは、商品コードを記録した商品CD項目、上期販売数を記録した上期販売数項目、上期販売金額を記録した上期販売金額項目、下期販売数を記録した下期販売数項目及び下期販売金額を記録した下期販売金額項目によって構成される。
図4は、本実施形態において検索対象となる3つのスキーマ構造体のデータベースを示した図である。
図4に示すように、スキーマIDが"0"(以下、スキーマ0と略す。スキーマID"1"、"2"についても同様)のデータベースの構成は、スタースキーマ構造体である。スキーマ0は実績トランザクションテーブルをファクトテーブルとしており、得意先CD項目をキーにして、実績トランザクションテーブルと得意先マスタテーブル及び得意先集計トランザクションテーブルとが関連付けられ、商品CD項目をキーにして、実績トランザクションテーブルと商品マスタテーブル及び商品集計トランザクションテーブルとが関連付けられている。スキーマ0のデータベースは全てのデータテーブルを含む構成を有するため、全項目を検索の対象とすることができる。
スキーマ1のデータベースは、得意先マスタテーブル及び得意先集計トランザクションテーブルによって構成されており、本データベースを検索対象とした場合、得意先マスタテーブルと得意先集計トランザクションテーブルに含まれる項目のみを検索することができる。本データベース構造においては、得意先集計トランザクションテーブルをファクトテーブルとしており、得意先マスタテーブルと得意先集計トランザクションテーブルとは得意先CD項目をキーにして関連付けられている。
スキーマ2のデータベースは、商品マスタテーブル及び商品集計トランザクションテーブルによって構成されており、本データベースを検索対象とした場合、商品マスタテーブルと商品集計トランザクションテーブルに含まれる項目のみを検索することができる。本データベース構造においては、商品集計トランザクションテーブルをファクトテーブルとしており、商品マスタテーブルと商品集計トランザクションテーブルとは商品CD項目をキーにして関連付けられている。
図5(a)は、スキーマ構造体を定義したデータテーブル(以下、スキーマ定義テーブルと称す)を示している。
このスキーマ定義テーブルによってスキーマ0〜2のデータベース構成が定義されている。即ち、本スキーマ定義テーブルでは、スキーマ0については、ファクトテーブルである実績トランザクションテーブルに対して、4つのディメンジョンテーブル、得意先マスタテーブル、商品マスタテーブル、得意先集計トランザクションテーブル及び商品集計トランザクションテーブルが対応付けられており、スキーマ1については、ファクトテーブルである得意先集計トランザクションテーブルに対し、1つのディメンジョンテーブル、得意先マスタテーブルが対応付けられており、スキーマ2については、ファクトテーブルである商品集計トランザクションテーブルに対し、1つのディメンジョンテーブル、商品マスタテーブルが対応付けられている。
図5(b)は、ファクトテーブルを定義したデータテーブル(以下、ファクトテーブル定義テーブルと称す)を示している。
ファクトテーブル定義テーブルによってスキーマ0〜2のデータベース構造におけるファクトテーブルが定義される。即ち、本ファクトテーブル定義テーブルにおいては、スキーマ0の場合は実績トランザクションテーブル、スキーマ1の場合は得意先集計トランザクションテーブル、スキーマ2の場合は商品集計トランザクションテーブルが夫々ファクトテーブルとなることを示している。尚、得意先マスタテーブル及び商品マスタテーブルについてはスキーマIDが"null"が対応付けられているが、これはマスタテーブルがファクトテーブルには成り得ないためである。また、スキーマ定義テーブル及びファクトテーブル定義テーブルは、例えばRAM203内に記録される。
尚、図5(b)では、スキーマ0〜スキーマ2の3つのデータベース構成についてのみ例示した。上記5つ以外にもデータテーブルが増えた際には、データテーブルを組み合わせによる更に多様なデータベース構成を検索対象とすることができ、例えば、スキーマ3〜9のファクトテーブルについても(スキーマID=1〜9:機能限定スキーマのファクトテーブル)定義し、同時に図5(a)のスキーマ定義テーブルへの登録を行うことでバリエーションを増やすことが可能であることは言うまでもない。
次に、データベース検索サーバ200によるデータ検索動作について、図6−1及び図6−2を参照しながら説明する。図6−1及び図6−2は、本実施形態に係るデータベース検索サーバ200の動作を示すフローチャートである。
本データベース検索動作において、ユーザの検索条件指定としては、例えば本願出願人による特願2002−382470号に記載されるように複数のデータテーブルで構成されるデータベースに対し、1以上のデータテーブルで1以上の項目名を指定して検索指定条件を入力し、同様に1以上のデータテーブルで1以上の項目名を指定して表示指定条件(検索出力条件)として検索を行う仕組みを適用することが可能である。
−処理例1−
先ず、データベース検索サーバ200による処理例1を説明する。ここでは、検索条件として「得意先コード(得意先CD='1001')を指定して、得意先名を検索する」をクライアントPC100から受けた場合について説明する。
本処理例では、得意先コード及び得意先名を指定した検索条件をクライアントPC100から受けた場合を想定しているため、図7(a)に示すように、検索処理において利用される項目(以下、利用項目と称す)は、得意先コード項目及び得意先名項目となり、検索に利用されるテーブル(以下、利用テーブルと称す)は、得意先マスタテーブルとなる。ユーザは、クライアントPC100の画面上において表示される項目から所望の項目を選択する。選択された項目情報は検索条件としてクライアントPC100からデータベース検索サーバ200に対して送信され、データベース検索サーバ200は項目情報を含む検索条件を受信することによって利用項目とともに利用テーブルも同時に決定する。
CPU201は、クライアントPC100からの上記検索条件を受けて、ユーザの指定項目(得意先コード、得意先名)から利用テーブルを決定し(ステップS601)、得意先マスタテーブルを利用テーブル情報としてRAM203に記録する。利用テーブルの決定としては、どのテーブルの項目情報を指定したかが分かれば決定できるので、この場合は得意先マスタテーブルの項目を見ながら全ての条件を指定したケースが当てはまる。同様の項目を指定した場合でも他のテーブル、例えば得意先集計トランザクションテーブルの得意先CDを指定した場合には得意先集計トランザクションテーブルが利用テーブルに追加されることになる。同一のテーブルが複数回指定される場合には、重複しないように1つにしてしまう為に、利用テーブルの書き込み時同一テーブルは上書き等の処理を行う。ここでは得意先マスタテーブルのみが指定されたとして説明を続ける。
続いて、CPU201は、利用テーブル情報に含まれる全利用テーブルのRAM203からの読み込みが完了したか否かを判断する(ステップS602)。現時点では、未だ利用テーブルの読み込みが完了していないため、処理はステップS603に移行する。
続いて、CPU201は、RAM203から1件の利用テーブルを読み込み、当該利用テーブルのテーブルIDを図8に示す利用テーブルIDテーブルから参照し、テーブル変数[A]にセットする(ステップS603)。ここで読み込まれる利用テーブルは得意先マスタテーブルであるため、RAM203内においてテーブル変数[A]は"0"にセットされる。尚、利用テーブルIDテーブルは、例えばRAM203に記録されている。
続いて、CPU201は、テーブル変数[A]にセットされているテーブルID"0"のテーブル、即ち得意先マスタテーブルのスキーマIDをファクトテーブル定義テーブルから参照し、RAM203内においてそのスキーマIDをスキーマID変数[B]にセットする(ステップS604)。ここでは、ファクトテーブル定義テーブルにおいて、得意先マスタテーブルをファクトテーブルとした場合のスキーマIDは"null"と定義されているため、スキーマID変数[B]は"null"にセットされる。尚、ファクトテーブル定義テーブルは、例えばRAM203に記録されている。
続いて、CPU201は、セットされているスキーマID変数[B]は"0"であるか否かを判断する(ステップS605)。ここでは、スキーマID変数[B]は"null"にセットされているため、処理はステップS606に移行する。
続いて、CPU201は、セットされているスキーマID変数[B]は"null"であるか否かを判断する(ステップS606)。スキーマID変数[B]は"null"であるため、処理はステップS607に移行する。
続いて、CPU201は、利用テーブル定義変数[C]にテーブル変数[A]を追加設定する。いま、利用テーブル定義変数[C]には何も設定されていない状態であるので、RAM203内において利用テーブル定義変数[C]は"0"にセットされる。また、CPU201は、利用テーブル定義変数[C]をセットするとともに、スキーマ判断定義変数[D]とスキーマ判断定義変数[E]をセットする。即ち、RAM203内において、スキーマ判断定義変数[D]にはテーブル変数[A]"0"がセットされ、スキーマ判断定義変数[E]には"null"がセットされる(ステップS607)。
CPU201の処理はステップS602に戻り、再び全利用テーブルの読み込みが終了したか否かが判断される。いま、CPU201によって全利用テーブルがRAM203から読み出された状態にあるので、処理は図6−2のステップS611に移行する。
CPU201は、スキーマ判断定義変数[D]とスキーマ判断定義変数[E]をRAM203から読み込み(ステップS611)、スキーマ判断定義変数[E]にセットされている内容が"null"、"0"及び"1以上"の何れであるかを判断する(ステップS612)。いま、スキーマ判断定義変数[E]には"null"がセットされているので、処理はステップS613に移行する。
続いて、CPU201は、RAM203から利用テーブル情報を読み込み、当該利用テーブル情報に含まれる利用テーブルの数をカウント変数[F]にRAM203内でセットし(ステップS613)、セットしたカウント変数[F]の値が"1"であるか否かを判断する(ステップS614)。いま、カウント変数[F]の値は"1"にセットされているため、検索条件にて指定されるマスタテーブル、即ち得意先マスタテーブルのみを対象とした検索処理が決定される(ステップS615)。
一方、カウント変数[F]の値が"1"ではない場合、検索対象となるデータベース構造はスキーマ0と決定される。これは、カウント変数[F]の値が"1"ではない場合は、利用テーブルに複数のマスタテーブルが設定されている可能性があり、データ量の多いトランザクションテーブルをファクトテーブルとしたスキーマのデータベースでしか検索することができないので、検索処理時のスキーマを決定することに時間をかけるより、スキーマ0を決定して即検索処理に移行した方が効率的だからである。
続いて、CPU201は検索クエリを生成する。ここで、ステップS615において得意先マスタテーブルのみが検索対象と決定されているので、次のような検索クエリが生成される。尚、SELECT文では検索する項目名及びその項目が属するテーブル名が指定され、FROM文では検索先となるテーブル名が指定され、WHERE文には検索条件が指定される。
<検索クエリ>
SELECT 得意先M.得意先名
FROM 得意先M
WHERE 得意先M.得意先CD='1001'
−処理例2−
次に、データベース検索サーバ200による処理例2を説明する。ここでは、検索条件として「実績年月、得意先コード、商品コードを指定して、得意先名、商品名、販売数を検索する」をクライアントPC100から受けた場合について説明する。
本処理例では、実績年月、得意先コード、商品コード、得意先名、商品名及び販売数を指定した検索条件をクライアントPC100から受けた場合を想定しているため、図8に示すように、利用項目は、年月項目、得意先CD項目、商品CD項目、得意先名、商品名及び販売数となり、利用テーブルは、実績トランザクションテーブル、得意先マスタテーブル及び商品マスタテーブルとなる。
CPU201は、クライアントPCからの上記検索条件を受けて、ユーザの指定項目(実績年月、得意先コード、商品コード、得意先名、商品名及び販売数)から利用テーブルを決定し(ステップS601)、実績トランザクションテーブル、得意先マスタテーブル及び商品マスタテーブルを利用テーブル情報としてRAM203に記録する。
続いて、CPU201は、利用テーブル情報に含まれる全利用テーブルのRAM203からの読み込みが完了したか否かを判断する(ステップS602)。現時点では、未だ利用テーブルの読み込みが完了していないため、処理はステップS603に移行する。
続いて、CPU201は、RAM203から1件の利用テーブルを読み込み、当該利用テーブルのテーブルIDを図8に示す利用テーブルIDテーブルから参照し、テーブル変数[A]にセットする(ステップS603)。ここで読み込まれる利用テーブルは実績トランザクションテーブルであることを想定すると、RAM203内においてテーブル変数[A]を"2"にセットする。
続いて、CPU201は、変数[A]にセットされているテーブルID"2"のテーブル、即ち実績トランザクションテーブルのスキーマIDをファクトテーブル定義テーブルから参照し、RAM203内においてそのスキーマIDをスキーマID変数[B]にセットする(ステップS604)。ここでは、ファクトテーブル定義テーブルにおいて、実績トランザクションをファクトテーブルとした場合のスキーマIDは"0"と定義されているため、スキーマID変数[B]は"0"にセットされる。
続いて、CPU201は、セットされているスキーマID変数[B]は"0"であるか否かを判断する(ステップS605)。ここでは、スキーマID変数[B]は"0"にセットされているため、処理はステップS610に移行する。
続いて、CPU201は、スキーマ判断定義変数[D]とスキーマ判断定義変数[E]をセットする(ステップS610)。スキーマ判断定義変数[D]にはテーブル変数[A]、即ち実績トランザクションテーブルのテーブルID"2"がセットされ、スキーマ判断定義変数[E]には"0"がセットされる。
CPU201は、スキーマ判断定義変数[D]とスキーマ判断定義変数[E]をRAM203から読み込み(ステップS611)、スキーマ判断定義変数[E]にセットされている内容が"null"、"0"及び"1以上"の何れかであるかを判断する(ステップS612)。いま、スキーマ判断定義変数[E]には"0"がセットされているので、処理はステップS616に移行する。
続いて、CPU201は、検索対象となるデータベースの構成をスキーマ0と決定する(ステップS616)。次に、CPU201は検索クエリを生成する。ここで、ステップS616においてスキーマ0が検索対象として決定されているので、次のような検索クエリが生成される。
<検索クエリ>
SELECT 得意先M.得意先名,商品M.商品名,実績TRN.販売数
FROM 得意先M,商品M,実績TRN
WHERE 得意先M.得意先CD='1001' AND 商品M.商品CD='A001'
AND (得意先M.得意先CD=実績TRN.得意先CD)
AND (商品M.商品CD=実績TRN.商品CD)
−処理例3−
次に、データベース検索サーバ200による処理例3を説明する。ここでは、検索条件として「得意先コード(得意先CD='1001')を指定して、得意先名、得意先上期販売数を検索する」をクライアントPC100から受けた場合について説明する。
本処理例では、得意先コード、得意先名及び上期販売数を指定した検索条件をクライアントPC100から受けた場合を想定しているため、図7(c)に示すように、利用項目は得意先CD項目、得意先名項目及び上期販売数項目となり、利用テーブルは得意先マスタテーブル及び得意先集計トランザクションテーブルとなる。
CPU201は、クライアントPCからの上記検索条件を受けて、ユーザの指定項目(得意先CD、得意先名、上期販売数)から利用テーブルを決定し(ステップS601)、利用テーブルが得意先マスタテーブル及び得意先集計トランザクションテーブルであることを利用テーブル情報としてRAM203に記録する。
続いて、CPU201は、利用テーブル情報に含まれる全利用テーブルのRAM203からの読み込みが完了したか否かを判断する(ステップS602)。現時点では、未だ利用テーブル情報の読み込みが完了していないため、処理はステップS603に移行する。
続いて、CPU201は、RAM203から1件の利用テーブルを読み込み、当該利用テーブルのテーブルIDを図8に示す利用テーブルIDテーブルから参照し、テーブル変数[A]にセットする(ステップS603)。ここで読み込まれる利用テーブルは得意先マスタテーブルであることを想定すると、RAM203内においてテーブル変数[A]は"0"にセットされる。
続いて、CPU201は、テーブル変数[A]にセットされているテーブルID"0"のテーブル、即ち得意先マスタテーブルのスキーマIDをファクト定義テーブルから参照し、RAM203内においてそのスキーマIDをスキーマID変数[B]にセットする(ステップS604)。ここでは、ファクトテーブル定義テーブルにおいて、得意先マスタテーブルをファクトテーブルとした場合のスキーマIDは"null"と定義されているため、スキーマID変数[B]は"null"にセットされる。
続いて、CPU201は、セットされているスキーマID変数[B]は"0"であるか否かを判断する(ステップS605)。ここでは、スキーマID変数[B]は"null"にセットされているため、処理はステップS606に移行する。
続いて、CPU201は、セットされているスキーマID変数[B]は"null"であるか否かを判断する(ステップS606)。スキーマID変数[B]は"null"であるため、処理はステップS607に移行する。
続いて、CPU201は、利用テーブル定義変数[C]にテーブル変数[A]を追加設定する。いま、利用テーブル定義変数[C]には何も設定されていない状態であるので、RAM203内において利用テーブル定義変数[C]は"0"にセットされる。また、CPU201は、利用テーブル定義変数[C]をセットするとともに、スキーマ判断定義変数[D]とスキーマ判断定義変数[E]をセットする。即ち、RAM203内において、スキーマ判断定義変数[D]にはテーブル変数[A]"0"がセットされ、スキーマ判断定義変数[E]には"null"がセットされる(ステップS607)。
CPU201の処理はステップS602に戻り、再び全利用テーブルの読み込みが終了したか否かが判断される。未だ、RAM203には得意先集計トランザクションテーブルが利用テーブルとして残されているので、処理はステップS603に移行する。
続いて、CPU201は、RAM203から1件の利用テーブル(得意先集計トランザクションテーブル)を読み込み、当該利用テーブルのテーブルIDを図8に示す利用テーブルIDテーブルから参照し、テーブル変数[A]を更新する(ステップS603)。ここで読み込まれる利用テーブルは得意先集計トランザクションテーブルであるため、RAM203内においてテーブル変数[A]は"3"に更新される。
続いて、CPU201は、変数[A]にセットされているテーブルID"3"のテーブル、即ち得意先集計トランザクションテーブルのスキーマIDをファクトテーブル定義テーブルから参照し、RAM203内においてスキーマID変数[B]をそのスキーマIDに更新する(ステップS604)。得意先集計トランザクションテーブルをファクトテーブルとした場合のスキーマIDは、ファクトテーブル定義テーブルにおいて"1"と定義されているため、スキーマID変数[B]は"1"に更新される。
続いて、CPU201は、セットされているスキーマID変数[B]は"0"であるか否かを判断する(ステップS605)。ここでは、スキーマID変数[B]は"1"にセットされているため、処理はステップS606に移行する。
続いて、CPU201は、セットされているスキーマID変数[B]は"null"であるか否かを判断する(ステップS606)。スキーマID変数[B]は"1"にセットされているため、処理はステップS608に移行する。
続いて、CPU201は、変数[E]がスキーマID変数[B]より大きい値をとるか、或いは変数[E]には"null"がセットされているかを判断する(ステップS608)。いま、変数[E]には"null"がセットされているため、処理はステップS609に移行する。ここで、本実施形態では、スキーマIDの値が0から9に向かってより容易なスキーマ構造となるように定義付けられている。これを受けて、スキーマID変数[B]が既にセットされている変数[E]の値より小さい値であれば、ステップS609に移行し、当該スキーマID変数[B]の値で変数[E]の値に更新しており、小さい値のスキーマID、即ち複雑なスキーマの指定が変数[E]に残るようにされている。
続いて、CPU201は、利用テーブル定義変数[C]、スキーマ判断定義変数[D]及びスキーマ判断定義変数[E]をセットする(ステップS609)。利用テーブル定義変数[C]は、現在のテーブル変数[A]が追加設定され、"0,3"と更新される。スキーマ判断定義変数[D]は現在のテーブル変数[A]"3"に更新され、スキーマ判断定義変数[E]はスキーマID変数[B]"1"に更新される。
続いて、CPU201の処理はステップS602に戻り、再び利用テーブル情報に含まれる全利用テーブルのRAM203からの読み込みが完了したか否かが判断される。いま、CPU201によって全利用テーブルがRAM203から読み出された状態にあるので、処理は図6−2のステップS611に移行する。
CPU201は、スキーマ判断定義変数[D]とスキーマ判断定義変数[E]をRAM203から読み込み(ステップS611)、スキーマ判断定義変数[E]にセットされている内容が"null"、"0"及び"1以上"の何れであるかを判断する(ステップS612)。いま、スキーマ判断定義変数[E]には"1"がセットされているので、処理はステップS617に移行する。
続いて、CPU201は、利用テーブル定義変数[C]にセットされているテーブルIDの1つをRAM203から読み込み、RAM203内においてテーブル変数[G]にセットする(ステップS617)。ここでは、テーブル変数[G]に得意先マスタテーブルのテーブルID"0"がセットされたものとする。
続いて、CPU201は、RAM203から利用テーブル定義変数[C]にセットされている全テーブルIDを読み込んだか否かを判断する(ステップS618)。現時点では、得意先集計トランザクションテーブルのテーブルID"3"が未だ読み込まれていないため、処理はステップS619に移行する。
続いて、CPU201は、スキーマ判断定義変数[D]にセットされている得意先集計トランザクションテーブルのテーブルID"3"、テーブル変数[G]にセットされている得意先マスタテーブルのテーブルID"0"をキーにして、ファクトテーブル項目に「得意先集計トランザクションテーブル」、ディメンジョンテーブル項目に「得意先マスタテーブル」が登録されているレコードを図5(a)のスキーマ定義テーブルから検索する。
続いて、CPU201は、ステップS619の検索処理の結果、該当するレコードがスキーマ定義テーブルから検索されたか否かを判断する(ステップS620)。図5(a)のスキーマ定義テーブルには該当するレコードが存在するので、処理はステップS617に移行する。
CPU201は、再び利用テーブル変数[C]にセットされているテーブルIDの1つをRAM203から読み込み、RAM203内においてテーブル変数[G]にセットする(ステップS617)。ここでは、テーブル変数[G]が得意先集計トランザクションテーブルのテーブルID"3"に更新される。
続いて、CPU201は、RAM203から利用テーブル定義変数[C]にセットされている全テーブルIDを読み込んだか否かを判断する(ステップS618)。いま、得意先集計トランザクションテーブルのテーブルIDが読み込まれたことで全テーブルIDの読み込みが終了したので、処理はステップS621に移行する。
続いて、CPU201は、スキーマ判断定義変数[D]にセットされている内容に基づいて、検索対象とするデータベースのスキーマを決定する(ステップS621)。いま、スキーマ判断定義変数[D]には得意先集計トランザクションテーブルのテーブルID"3"がセットされているため、CPU201は、得意先集計トランザクションテーブルをファクトテーブルとした場合のスキーマID"1"をファクトテーブル定義テーブルから参照し、検索対象とするデータベースのスキーマとして決定する。
尚、ステップS620の判断において、該当するレコードがスキーマ定義テーブルに存在しないと判断された場合、検索対象とするデータベース構造はスキーマ0と決定される。本実施形態では、検索条件から利用テーブルを決定すると各利用テーブルを繋ぐ最も簡単に検索できそうなスキーマは何であるかを調べるが、スキーマ定義テーブルにおいて定義されたスキーマが直ぐに見つからず、この処理に長時間を要する虞がある場合には、スキーマ0のデータベース構造を検索対象として決定して即検索処理に移り、検索処理全体の最適化を図っている。
次に、CPU201は検索クエリを生成する。ここで、ステップS621においてスキーマ1が検索対象として決定されているので、次のような検索クエリが生成される。そして、CPU201は、当該検索クエリに基づいてデータ検索を実行する。
<検索クエリ>
SELECT 得意先M.得意先名,得意先集計TRN.上期販売数
FROM 得意先M,得意先集計TRN
WHERE 得意先M.得意先CD='1001'
AND (得意先M.得意先CD=得意先集計TRN.得意先CD)
本実施形態では、上記のように、検索条件に応じて検索対象となるデータベースのスキーマを決定することにより、検索クエリの生成や実行処理に要する時間の短縮化を図っているが、本実施形態のようにスキーマの決定を行わない場合、画一的なスキーマのデータベースが検索の対象となるので生成される検索クエリは次のように複雑なものとなり、検索クエリの処理を最適化することができない。
<検索クエリ>
SELECT 得意先M.得意先名,得意先集計TRN.上期販売数
FROM 得意先M,得意先集計TRN,実績TRN
WHERE 得意先M.得意先CD='1001'
AND (得意先.得意先CD = 実績TRN.得意先CD)
AND (実績TRN.得意先CD = 得意先集計TRN.得意先CD)
以上のように、本実施形態によれば、検索条件に応じて、異なる複数のデータテーブル(得意先マスタテーブル、商品マスタテーブル、実績トランザクションテーブル、得意先集計トランザクションテーブル及び商品集計トランザクションテーブル)からデータテーブルを選択し、選択したデータテーブルから成るスキーマパターンを決定している。従って、従来のようにスキーマパターンの最適化を図る上で同一のデータテーブルを複数作成する必要がなくなり、記憶容量の使用量を抑えることが可能となる。
また、本発明によれば、最適化されたスキーマパターンに応じた検索クエリを生成して実行しているので、スキーマパターンが最適化され、その結果、少ないデータテーブルで構成されるスキーマパターンのデータベースが検索対象となった場合、それに応じて検索クエリも余計な情報が省かれ、検索クエリの生成処理や実行処理も最適化することが可能となる。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明の一実施形態に係るデータベース検索システムの構成を模式的に示した図である。 データベース検索サーバのハードウェア構成を示した図である。 検索対象となるデータベースの一構成であるデータテーブルを示した図である。 検索対象となる3つのスキーマ構成体のデータベースを示した図である。 スキーマ定義テーブル及びファクト定義テーブルの構成を示した図である。 データベース検索サーバによるデータ検索動作を示すフローチャートである。 データベース検索サーバによるデータ検索動作を示すフローチャートである。 検索処理における利用項目と利用テーブルを説明するための図である。 利用テーブルIDテーブルの構成を示した図である。
符号の説明
100 クライアントPC
200 データベース検索サーバ
300 DBサーバ
21 自由検索アプリケーション
22 自由検索DB
201 CPU
202 ROM
203 RAM
204 システムバス
205 入力コントローラ
206 ビデオコントローラ
207 メモリコントローラ
208 通信I/Fコントローラ
209 キーボード
210 CRTディスプレイ
211 外部メモリ

Claims (7)

  1. データの検索条件を入力する検索条件入力手段と、
    前記検索条件入力手段により入力された前記検索条件に応じて、異なる複数のデータテーブルから一又は複数のデータテーブルを選択し、選択した前記一又は複数のデータテーブルから成るデータベース構成を決定するデータベース構成決定手段と、
    前記データベース構成決定手段により決定された前記データベース構成を対象に、前記検索条件によるデータ検索を行うデータ検索手段とを有することを特徴とするデータベース検索装置。
  2. 前記データベース構成に応じたデータ検索要求情報を生成するデータ検索要求情報生成手段を更に有し、
    前記データ検索手段は、前記データ検索要求情報生成手段により生成された前記データ検索要求情報に基づき、前記検索条件によるデータ検索を行うことを特徴とする請求項1に記載のデータベース検索装置。
  3. 複数のデータベース構成を定義したデータベース定義テーブルを更に有し、
    前記データベース構成決定手段は、前記データベース定義テーブルにおいて定義されるデータベース構成から前記検索条件に応じた前記データベース構成を決定することを特徴とする請求項1又は2に記載のデータベース検索装置。
  4. 前記一又は複数のデータテーブルは、前記検索条件で指定される項目を含むデータテーブルであることを特徴とする請求項1乃至3の何れか1項に記載のデータベース検索装置。
  5. データベース検索装置によるデータベース検索方法であって、
    データの検索条件を入力する検索条件入力ステップと、
    前記検索条件入力ステップにより入力された前記検索条件に応じて、異なる複数のデータテーブルから一又は複数のデータテーブルを選択し、選択した前記一又は複数のデータテーブルから成るデータベース構成を決定するデータベース構成決定ステップと、
    前記データベース構成決定ステップにより決定された前記データベース構成を対象に、前記検索条件によるデータ検索を行うデータ検索ステップとを含むことを特徴とするデータベース検索方法。
  6. 請求項5に記載のデータベース検索方法をコンピュータに実行させるためのプログラム。
  7. 請求項6に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2003395888A 2003-11-26 2003-11-26 データベース検索装置、データベース検索方法及びプログラム Expired - Fee Related JP4084740B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003395888A JP4084740B2 (ja) 2003-11-26 2003-11-26 データベース検索装置、データベース検索方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003395888A JP4084740B2 (ja) 2003-11-26 2003-11-26 データベース検索装置、データベース検索方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2005157773A true JP2005157773A (ja) 2005-06-16
JP4084740B2 JP4084740B2 (ja) 2008-04-30

Family

ID=34721531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003395888A Expired - Fee Related JP4084740B2 (ja) 2003-11-26 2003-11-26 データベース検索装置、データベース検索方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4084740B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009512947A (ja) * 2005-10-18 2009-03-26 ザ・マクレガー・グループ・インコーポレーテッド シンクライアント上にデータを表示するためのシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009512947A (ja) * 2005-10-18 2009-03-26 ザ・マクレガー・グループ・インコーポレーテッド シンクライアント上にデータを表示するためのシステムおよび方法

Also Published As

Publication number Publication date
JP4084740B2 (ja) 2008-04-30

Similar Documents

Publication Publication Date Title
CA2490212C (en) Searchable archive
RU2398273C2 (ru) Объединение многомерных выражений и расширений глубинного анализа данных для извлечения информации из кубов olap
CN1705945B (zh) 提供查询的属性的方法和系统
EP3519986B1 (en) Direct table association in in-memory databases
KR101213798B1 (ko) 복합 데이터 액세스
JP2001357062A (ja) データベース検索方法及びデータベース検索システム並びにデータベース検索プログラムを記録した記録媒体
JP2001075969A (ja) 画像管理検索装置、画像管理検索方法及び記憶媒体
US7386793B2 (en) Apparatus, method and program for supporting a review
US7788273B2 (en) User interface for faceted exploration
JP2008217534A (ja) アプリケーション画面作成システム、方法及びアプリケーションプログラム
US7447682B2 (en) Framework for retrieval and display of large result sets
JP4084740B2 (ja) データベース検索装置、データベース検索方法及びプログラム
US20080033949A1 (en) Electronic apparatus and method therefor
JP4947407B2 (ja) 高効率キャッシュシステム、高効率キャッシュ格納方法、及び高効率キャッシュ操作プログラム
JP2009134511A (ja) サイジング装置、サイジング方法、サイジング用プログラム及び記録媒体
US8626746B2 (en) Tracking modifications to values of various fields in a database serve
JP2015162137A (ja) 情報処理システムとその処理方法及びプログラム
JP2004341770A (ja) データ管理システム及びデータ管理方法
JP2017107268A (ja) 情報処理装置、処理方法、およびプログラム
JP2004213348A (ja) データベース検索装置、データベース検索方法、プログラム及び記録媒体
JP2004070791A (ja) 多次元データベースの定義情報作成方法およびそのプログラム
JP2022026169A (ja) 書類ナビゲーション装置、書類ナビゲーション方法、および、書類ナビゲーションプログラム
JP4111508B2 (ja) データ属性管理方法
JP2004110589A (ja) 情報検索方法および情報検索システム
JP2012123559A (ja) ファイル管理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140222

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees