(57)【要約】【課題】検索操作時におけるユーザの利便性を更に向上させることを可能とする。【解決手段】サーバ２は、自由検索データベース２２に存在する複数のデータテーブルから自由に検索条件と出力条件を設定する手段を有し、ユーザが設定した設定条件に基づいて検索クエリ−を生成してデータベース検索を行うとともに、出力条件に対する表示条件を設定する手段と、前記表示条件に合わせた検索結果の表示検索結果提供手段と、前記結果の提供を受けた上で出力条件に合わせた検索結果を提供する出力検索結果提供手段とを更に備えたことを特徴とした。【選択図】  図１
2004213347.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータテーブルからなるリレーショナルデータベースに対するデータベース検索クエリー生成方法であって、
外部からの条件指定を受け付ける工程と、
前記外部からの条件指定に基づいて前記複数のデータテーブルから検索条件を設定する検索条件設定工程と、
前記外部からの条件指定に基づいて前記複数のデータテーブルから出力条件を設定する出力条件設定工程と、
前記検索条件設定工程及び前記出力条件設定工程における設定条件に基づいて検索クエリー生成を行う検索クエリー生成工程とを含むことを特徴とするデータベース検索クエリー生成方法。
【請求項２】
更に、前記検索クエリー生成工程おいては、テーブルリレーション情報を参照すること検索クエリーを決定する工程を含むことを特徴とする請求項１に記載のデータベース検索クエリー生成方法。
【請求項３】
更に、前記検索クエリー生成工程おいては、テーブルリレーション情報を参照することで検索時に使用するデータテーブルを決定する工程を含むことを特徴とする請求項２に記載のデータベース検索クエリー生成方法。
【請求項４】
更に、前記検索クエリー生成工程おいては、テーブルリレーション情報を参照することで外部から指定されていない検索条件を生成する工程を含むことを特徴とする請求項１〜３の何れか１項に記載のデータベース検索のクエリー生成方法。
【請求項５】
外部からの設定条件に基づいてクエリーを生成実行することでリレーショナルデータベースの検索を行うデータベース検索方法であって、
検索条件設定画面を提供する第１の工程と、
出力条件設定画面を提供する第２の工程と、
表示条件設定画面を提供する第３の工程と、
各前記第１の工程、前記第２の工程及び前記第３の工程において、各々の工程で外部からの設定を受け付けることで各々の設定条件を確定する複数の設定条件確定工程と、
前記第３の工程の際に検索指示があった場合には前記設定条件確定工程における検索条件及び表示条件の設定条件に基づく検索結果を提供する第４の工程と、前記第４の工程の際に検索指示があった場合には検索条件及び出力条件の設定条件に基づく検索結果を提供する第５の工程とを含むことを特徴とするデータベース検索方法。
【請求項６】
複数のデータテーブルからなるリレーショナルデータベースに対するデータベース検索装置であって、
外部からの条件指定を受け付ける条件指定受付手段と、
前記外部からの条件指定に基づいて前記複数のデータテーブルから検索条件を設定する検索条件設定手段と、
前記外部からの条件指定に基づいて前記複数のデータテーブルから出力条件を設定する出力条件設定手段と、
前記検索条件設定手段及び前記出力条件設定手段において設定された設定条件に基づいて検索クエリー生成を行う検索クエリー生成手段と、
前記検索クエリー生成手段により生成された検索クエリーを用いてデータベース検索の実行依頼を行う検索依頼手段とを有することを特徴とするデータベース検索装置。
【請求項７】
請求項１に記載のデータベース検索クエリー生成方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のデータテーブルによって構成される、例えばスタースキーマ型データベースに対するデータ検索処理を行うための技術に関するものである。
【０００２】
【従来の技術】
従来のデータベース検索システムにおいては、クエリー（問い合せ）実行のためのスキーマ生成をプログラム毎或いは、スキーマに合わせたクエリー実行のためのプログラム生成をデータベース毎に行っていた。クエリー生成の際にはデータベースの知識を必ず必要とし、知識のない一般ユーザは用意されたクエリーを実行するために、予め設定された条件パラメータを入力し、データベースの検索を行い、検索結果を得ていた。
【０００３】
しかし、これでは、クエリー実行のためのスキーマ生成やデータベースに合わせたクエリー実行のプログラム生成に費やすソフト開発者の労力が大きく、検索条件や検索結果の自由度が少ない。そこで、特開２００２−１１７０４１号公報にはそれらの問題点を解決するための技術が開示されされている。
【０００４】
特開２００２−１１７０４１号公報では、ユーザによって表示／入力装置１１から照会対象の表名称が指定されると、指定された表の列情報をファイル装置１２からデータベース管理部１２０を介して読み込み、照会条件設定処理部１１２は読み込んだ列情報に基づき照会条件であるクエリーを設定し、照会処理部１１３は設定されたクエリーからＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文を組み立ててデータベース管理部１２０に引き渡し、またデータベースのアクセス結果をデータベース管理部１２０から受けると編集して表示／入力装置１１に表示するデータベース照会システムである。
【０００５】
【特許文献１】
特開２００２−１１７０４１号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、特開２００２−１１７０４１号公報に開示されるデータ照会システムにおいては、データベース毎に照会ソフトを作成する必要はなく、データベースの構造（スキーマ）を理解していないユーザが容易に照会条件を設定可能であり、設定させた照会条件ことでクエリーを生成してＳＱＬの組み立てることができるものの、複数のデータテーブルから自由に検索条件や出力条件をユーザに指定させ、その指定に基づいてクエリーを生成し、検索及び検索結果の出力を得ることは考慮されていない。例えば、各データテーブルが特定のキーで連結されている構成をとる場合に検索条件とデータ出力条件が別々のデータテーブルから選択したい場合などには対応できない。
【０００７】
また、特開２００２−１１７０４１号公報では、ＳＱＬの組み立て方が単純であり、絞り込み検索を行いつつ最終的に欲しいデータを得るために段階的にクエリーの生成を行い必要なＳＱＬを随時形成することは意識されていない。例えば、本従来技術開の照会条件の生成においては、ユーザが取得希望するデータを特定するための情報を予め全て持っていれば良いが、漠然とした特定情報しか持たない場合には関係のないデータが多数得られてしまい。その中から再度欲しいデータだけを得るには、特開２００２−１１７０４１号公報の図９に示されるように、ステップＳ１１の表示結果を見た後で再度、ステップＳ６に戻り抽出条件を追加・変更することになり、操作が煩わしい。
【０００８】
また、ステップＳ５で設定される表示項目は最終的に表示出力のために選択されており、データを絞り込むために必要な情報だけではなく沢山の情報を表示してしまい見づらい画面になるだけでなく、データベースが格納されるファイル装置１２から大量のデータの受信を行うことで、ファイル装置１２へデータ抽出のための多大な負荷を与えるだけでなく、ファイル装置１２との間の通信負荷にも影響を与えてしまうことがある。また、逆に最終的な出力データを絞り込みたいために、まずは絞りこみのために最低限の項目を表示するのであれば、再度表示項目の選択を行うためにステップＳ５から本検索を始める必要があり操作性が悪い。特に、ＤＷＨ（Ｄａｔａ  ＷａｒｅＨｏｕｓｅ）のように様々なデータベースから検索を行い、データを抽出して行く場合などに絞込みを行うことが困難である。
【０００９】
本発明は、上記課題を解決することを目的とし、複数の表形式のデータテーブルを有する複雑なスキーマのデータベースに対してもデータベースの知識のないユーザが容易に、自由度の高い検索条件を設定する事が可能で、情報を絞り込むための操作性に富むデータベース検索クエリー生成方法、データベース検索装置、プログラム及び記録媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
斯かる目的を達成するために、本発明のデータベース検索クエリー生成方法は、複数のデータテーブルからなるリレーショナルデータベースに対するデータベース検索クエリー生成方法であって、外部からの条件指定を受け付ける工程と、前記外部からの条件指定に基づいて前記複数のデータテーブルから検索条件を設定する検索条件設定工程と、前記外部からの条件指定に基づいて前記複数のデータテーブルから出力条件を設定する出力条件設定工程と、前記検索条件設定工程及び前記出力条件設定工程における設定条件に基づいて検索クエリー生成を行う検索クエリー生成工程とを含むことを特徴とする。
【００１１】
また、本発明のデータベース検索方法は、外部からの設定条件に基づいてクエリーを生成実行することでリレーショナルデータベースの検索を行うデータベース検索方法であって、検索条件設定画面を提供する第１の工程と、出力条件設定画面を提供する第２の工程と、表示条件設定画面を提供する第３の工程と、各前記第１の工程、前記第２の工程及び前記第３の工程において、各々の工程で外部からの設定を受け付けることで各々の設定条件を確定する複数の設定条件確定工程と、前記第３の工程の際に検索指示があった場合には前記設定条件確定工程における検索条件及び表示条件の設定条件に基づく検索結果を提供する第４の工程と、前記第４の工程の際に検索指示があった場合には検索条件及び出力条件の設定条件に基づく検索結果を提供する第５の工程とを含むことを特徴とする。
【００１２】
また、本発明のデータベース検索装置は、複数のデータテーブルからなるリレーショナルデータベースに対するデータベース検索装置であって、外部からの条件指定を受け付ける条件指定受付手段と、前記外部からの条件指定に基づいて前記複数のデータテーブルから検索条件を設定する検索条件設定手段と、前記外部からの条件指定に基づいて前記複数のデータテーブルから出力条件を設定する出力条件設定手段と、前記検索条件設定手段及び前記出力条件設定手段において設定された設定条件に基づいて検索クエリー生成を行う検索クエリー生成手段と、前記検索クエリー生成手段により生成された検索クエリーを用いてデータベース検索の実行依頼を行う検索依頼手段とを有することを特徴とする。
【００１３】
また、本発明のプログラムは、前記データベース検索クエリー生成方法をコンピュータに実行させることを特徴とする。さらに、本発明のコンピュータ読み取り可能な記録媒体は、前記プログラムを記録したことを特徴とする。
【００１４】
【発明の実施の形態】
以下、本発明の好適な実施形態を、添付図面を参照しながら詳細に説明する。
＜データベース検索システムの構成＞
図１は、本発明の一実施形態に係るデータベース検索システムの構成を模式的に示した図である。
１は、ユーザが操作するクライアントＰＣであり、Ｗｅｂブラウザを用いてサーバから送信されるＷｅｂページを画面上で表示することが可能である。２は、各種データを記録した自由検索ＤＢ２２（自由検索データベース）を備えたサーバであり、自由検索／自由帳票アプリケーション２１（以下、単にアプリケーションと称す）によりクライアントＰＣ１の要求に応じたデータを検索し、その結果をＷｅｂページで各クライアントＰＣ１に送信することが可能である。３は、システムＤＢサーバであり、自由検索ＤＢ２２に格納すべきデータを逐次或いはバッチ処理によりサーバ２に対して送信することが可能である。
【００１５】
サーバ２に接続される各クライアント１は、画面上で所望の検索条件及び出力データ項目を入力し、その入力内容をサーバ２に対して送信する。当該入力内容を受けたサーバ２は、出力データ項目に挙げられたデータのうち検索条件に合致するデータを自由検索ＤＢ２２から取得する。次に、サーバ２は、取得したデータを例えばＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅ）データとしてクライアントＰＣ１に返信し、当該クライアントＰＣ１では検索結果を画面上で確認することが可能となる。
【００１６】
また、本実施形態では、上記のように検索したデータを帳票として取得することも可能である。この場合、クライアントＰＣ１上においてユーザは帳票の出力形式を指定することが可能である。クライアントＰＣ１上において出力形式が指定されると、その指定情報はクライアントＰＣ１からサーバ２に対して送信される。サーバ２では、指定された帳票に必要なデータをアプリケーション２１の機能により上記検索条件に照らして検索し、帳票データを生成してクライアントＰＣ１に対して送信する。これにより、ユーザは、所望の検索条件及び出力形式で帳票データを参照することが可能となる。
【００１７】
＜データベース検索システムの主要動作＞
次に、本実施形態に係るデータベース検索システムの動作を図２及び図３を用いて詳細に説明する。図２及び図３は、本実施形態に係るデータベース検索システムの主要動作を示したフローチャートである。
ユーザは、クライアントＰＣ１を操作することにより、自らのユーザＩＤ及びパスワードをクライアントＰＣ１からサーバ２に送信する。サーバ２では、クライアントＰＣ１から受信したユーザＩＤ及びパスワードに基づいて当該ユーザの認証処理を行い（ステップＳ２０１）、認証が得られた場合は、当該ユーザの本データベース検索システムへのログインを許可する。
【００１８】
続いて、サーバ２は、図４の検索条件画面を生成し、クライアントＰＣ１に対して送信する（ステップＳ２０２）。クライアントＰＣ１は、サーバ２から受信した検索条件画面を表示する（ステップＳ１０２）。次に、ユーザは検索画面上で検索条件を入力する。ユーザは、検索条件の入力時において、例えば、画面左欄の“データ分類”から“商品”（図４中の４１）を選択し、続いてデータ分類“商品”に属するデータ項目“商品名”（図４中の４２）を選択する。すると、画面上に小ウィンドウ４３が表示され、ユーザはこの小ウィンドウ４３内で検索内容（ここでは、Ｍ−４  小鉢  ）を選択入力する。条件指定Ｎｏ．１についても同様の入力手法により検索条件（データ分類“期間”、データ項目“年月日”、検索内容“１９９６／１２／０９から１９９６／１２／１１まで”）を選択入力する。上述の“商品”或いは“期間”はそれぞれ図２１及び図２２に示されるデータテーブルを意味し、“商品名”或いは“年月日”はそれぞれのデータテーブル内のカラム名であり、小ウィンドウ４３を用いて選択入力した“Ｍ−４  小鉢  “等は各カラムに対するデータである。つまり、図４において“データ分類”は選択したデータテーブルであり、“データ項目”はカラムであり、“検索内容”がカラム内で検索するべき内容（データ内容）である。サーバ２はユーザがデータテーブルを指定する際に、テーブル情報を参照し、テーブルに存在するカラム名を表示画面データとして作成し提供する。また、カラム名が選択された場合には小ウィンドウ４３で示したようにカラム内のデータを表示画面用のデータとして生成し、提供するものである。
【００１９】
条件指定Ｎｏ．１、条件指定Ｎｏ．２の欄それぞれにつき検索条件が確定する度に、その入力内容はクライアントＰＣ１からサーバ２に送信され（ステップＳ１０４）、サーバ２では、受信した入力内容をその都度保存し（ステップＳ２０４）、当該入力内容を反映させた新たな検索条件画面を生成し、クライアントＰＣ２に対して送信する（ステップＳ２０２）。
【００２０】
続いて、図４の画面上において、ユーザが“データ出力”ボタン（図４中の４４）を押下した場合（ステップＳ１０７）、クライアントＰＣ１上においてデータ出力処理が指定された旨の情報がクライアントＰＣ１からサーバ２に対して送信される（ステップＳ１０８）。サーバ２では、ステップＳ２０５の判断分岐により処理をステップＳ２０６に移行させる。一方、クライアントＰＣ１では処理をステップＳ１０８に移行させる。
【００２１】
サーバ２側では、ステップＳ２０６において、図５の出力項目選択画面を生成し、クライアントＰＣ１に対して送信する。クライアントＰＣ１では、出力項目選択画面をサーバ２から受信し、表示する（ステップＳ１０９）。ユーザは、この出力項目選択画面上で出力させたい所望の項目を選択する（ステップＳ１１０）。選択要領は、図４の検索条件の入力時と同様である。図５の例では、ユーザが選択した出力項目は、データ分類“期間”のデータ項目“年月日”、データ分類“商品”のデータ項目“商品名”、データ分類“商品”のデータ項目“標準売価”、データ分類“商品”のデータ項目“標準原価”、及び、データ分類“商品”のデータ項目“取扱開始日”である。
【００２２】
ここでも、各出力項目が確定される度に、その入力内容がクライアントＰＣ１からサーバ２に送信され（ステップＳ１１１）、サーバ２では、受信した入力内容をその都度保存し（ステップＳ２０８）、当該入力内容を反映させた新たな検索条件画面を生成し、クライアントＰＣ１に対して送信する（ステップＳ２０６）。
【００２３】
このように図４、及び図５を用いて説明したように、各データテーブルに相当する“期間”、“店舗”、“商品”、“商品管理”からそれぞれのデータテーブル内のカラムを検索条件、及び出力項目として自由に選択することが可能である。但し、ここでは説明を簡略化するために検索条件と出力項目で用いているデータテーブルは“期間”と“商品”で統一している。
【００２４】
ユーザは、所望の入力項目を全て確定させると、出力項目選択画面の“次へ”ボタン（図５中の５１）を押下する（ステップＳ１１２）。クライアントＰＣ１は、ユーザの操作により“次へ”ボタンが押下されると、その旨をサーバ２に対して通知する（ステップＳ１１３）。当該通知を受けたサーバ２は、表示指定画面を生成し、クライアントＰＣ１に対して送信する（ステップＳ２１０）。表示指定画面の一例を図６に示す。
【００２５】
続いて、ユーザは、表示指定画面上において、各出力項目につき表示方法を指定する（ステップＳ１１５）。図６の例では、各出力項目につきデータを一覧表示するか否か（図６中の６１）、データのソート順（昇順、降順；図６中の６２）、及び、ソート処理の優先順位を指定（図６中の６３）することが可能である。ここでも、例えば、各項目の表示指定内容が確定される度に、その入力内容がクライアントＰＣ１からサーバ２に送信され（ステップＳ１１６）、サーバ２では、受信した入力内容をその都度保存し（ステップＳ２１２）、当該入力内容を反映させた新たな検索条件画面を生成し、クライアントＰＣ１に対して送信する（ステップＳ２１０）。
【００２６】
続いて、図６の画面上において、ユーザが“検索”ボタン（図６中の６４）を押下した場合（ステップＳ１１７）、ユーザから検索指定の指示入力があった旨の情報がクライアントＰＣ１からサーバ２に対して送信される（ステップＳ１１８）。サーバ２では、ステップＳ２１３の判断分岐を経てステップＳ２１４の処理の後、処理をステップＳ２１４に移行させる。一方、クライアントＰＣ１では処理をステップＳ１１９に移行させる。
【００２７】
尚、ステップＳ２１４のクエリー生成処理等については後述する。但し、ステップＳ２１３の判断分岐でユーザが“検索“ボタンを押下した情報を検出した場合、ここまでに表示指定データがあるか否かを検出し、Ｓ２１２で保存したデータが存在していない状態であり、ユーザが表示項目の設定を行っていない場合にはステップＳ２１０に戻り、表示指定画面を送信するように制御することも可能である。
【００２８】
これにより、ユーザが意図しない大量の表示データを自由検索ＤＢ２２から取得してしまうような状態を回避でき、検索システムの無駄を省くことが可能である。逆に、ユーザが全ての出力項目を意図的に表示項目として選んでいる場合には同様に大量の検索結果データを取得してしまうことが想定できるが、ユーザはデータ量が予測できていると思われるのでステップＳ２１４を実行するものである。
【００２９】
続いて、アプリケーション２１は、自由検索ＤＢ２２から検索結果を受信することにより、サーバ２は、クライアントＰＣ１に対して検索結果の一覧画面を送信する（ステップＳ２１５）。クライアントＰＣ１では、検索結果一覧画面をサーバ２から受信し、表示する（ステップＳ１１９）。検索結果一覧画面の一例を図７に示す。図６の一覧表示指定チェックボックスにおいて、出力項目のうち“年月日”、“商品名”、“取扱開始日”の項目がチェックされているので表示結果にはこの３つの項目が表示されている。
【００３０】
図７の検索結果一覧画面上においては、さらに出力データの絞込検索を行うことができる。ユーザの操作入力により、図７の検索結果一覧画面上において出力データが選択（図７中の７１）されると（ステップＳ１２０）、その入力内容がクライアントＰＣ１からサーバ２に送信される（ステップＳ１２１）。サーバ２では、受信した入力内容をその都度保存し（ステップＳ２１７）、当該入力内容を反映させた新たな検索結果一覧画面を生成し、クライアントＰＣ１に対して送信する（ステップＳ２１５）。
【００３１】
続いて、図７の画面上において、ユーザが“データ出力”ボタン（図７中の７２）を押下した場合（ステップＳ１２２）、ユーザからデータ出力指示があったことがクライアントＰＣ１からサーバ２に対して送信される（ステップＳ１２３）。サーバ２では、ステップＳ２１８の判断分岐を経て、アプリケーション２１は保存した出力データ選択情報に基づくクエリーを生成し、自由検索ＤＢ２２に対して送信する（ステップＳ２１９）。
【００３２】
続いて、アプリケーション２１が上記クエリーに応じて自由検索ＤＢ２２から返信された検索結果を受信することにより、サーバ２は、検索ヒット件数情報をクライアントＰＣ１に対して送信する（ステップＳ２２０）。クライアントＰＣ１は、サーバ２から受信した検索ヒット件数情報を画面上で表示する（ステップＳ１２５）。検索ヒット件数表示画面の一例を図８に示す。ユーザは、クライアントＰＣ１の画面上に表示された検索ヒット件数を確認した後、検索されたデータをＣＳＶファイルとして受け取りたい場合には、図８の画面上において“実行”ボタン（図８中の８１）を押下する（ステップＳ１２６）。
【００３３】
この“実行”ボタンが押下されると、クライアントＰＣ１からその旨の情報がサーバ２に対して送信され（ステップＳ１２７）、サーバ２は、ＣＳＶファイルを要求する旨の情報を受信すると、クライアントＰＣ１に対してＣＳＶファイルを返信する（ステップＳ２２２）。これにより、ユーザは、絞込検索による検索結果をＣＳＶファイルで閲覧することができる。
【００３４】
一方で、図７の検索結果一覧画面上において、“帳票出力”ボタン（図７中の７３）が押下されると（ステップＳ１２４）、ユーザにより帳票出力の指定があったことがクライアントＰＣ１からサーバ２に対して送信され、サーバ２では、ステップＳ２１８の判断分岐により処理をステップＳ２２３に移行させる。
【００３５】
続いて、サーバ２は、例えば図９に示す帳票一覧画面をクライアントＰＣ１に対して送信する（ステップＳ２２３）。クライアントＰＣ１は、サーバ２から帳票一覧画面を受信し、表示する（ステップＳ１３０）。ユーザは、クライアントＰＣ１上に表示された帳票一覧画面を参照し、所望の形式の帳票を選択する。次に、クライアントＰＣ１は、帳票選択情報をサーバ２に対して送信する（ステップＳ１３１）。
【００３６】
続いて、サーバ２がクライアントＰＣ１から帳票選択情報を受信すると（ステップＳ２２４）、アプリケーション２１はその帳票選択情報に応じたクエリーを生成し、自由検索ＤＢ２２に対して送信する（ステップＳ２２５）。本クエリ−生成に関しては後述する。次に、アプリケーション２１が自由検索ＤＢ２２から返信された検索結果を受信すると、サーバ２は、検索ヒット件数をカウントして検索ヒット件数情報としてクライアントＰＣ１に対して送信する（ステップＳ２２６）。
【００３７】
クライアントＰＣ１では、サーバ２から受信した検索ヒット件数情報を表示する（ステップＳ１３２）。検索ヒット件数情報の表示例を図１０に示す。ユーザは、帳票を出力させたい場合、クライアントＰＣ上で表示される検索ヒット件数情報を確認した後、図１０の画面上の“実行”ボタン（図１０中の１０１）を押下する（ステップＳ１３３）。この“実行”ボタンが押下されると、クライアントＰＣ１からサーバ２に対して帳票出力実行の指定があったことが通知される（ステップＳ１３４）。
【００３８】
帳票出力実行の指定を受けたサーバ２は、内部で検索結果を帳票作成プログラムに送信し（ステップＳ２２７）、帳票作成プログラムから帳票のＰＤＦデータを受信する（ステップＳ２２８）。そして、サーバ２は、帳票のＰＤＦデータと自由検索ＤＢ２２から取得した検索結果データを合成した帳票画面をクライアントＰＣ１に対して送信する（ステップＳ２２９）。この合成は、予め各帳票のＰＤＦデータに対して、図２０に示す帳票データ格納テーブルの各カラムデータの合成位置を決めてテキストデータなどで貼り付け、図１９に示す帳票情報格納テーブルにあるＫＥＹ＿ＣＬＭ＿ＩＤ毎に一枚の帳票として合成するものである。クライアントＰＣ１では、サーバ２から受信した図１１の帳票画面を表示する（ステップＳ１３５）。図１１では、図９の帳票一覧画面上において“商品別店舗売上表”が選択された場合を例示しており、図７の検索結果一覧画面上における絞込検索が反映されている。即ち、図７上では、年月日“１９９６／１２／１０”、商品名“Ｍ−４  小鉢”の項目と、年月日“１９９６／１２／１１”、商品名“Ｍ−４  小鉢  ”とが選択されているため、図１１の帳票画面上では、それらに該当する情報が掲載されている。
【００３９】
＜検索クエリー生成（初回検索時）＞
次に、本発明の一実施形態に係る検索クエリー生成方法について説明する。図１２は、本発明の一実施形態に係る検索クエリー生成方法の流れを示したフローチャートであり、図２のステップＳ２１４で実行される検索クエリー生成について示したものである。尚、図１２、図１３及び図１４に示す、検索条件格納部１２１、表示項目指定格納部１２２、リレーション情報格納テーブル１２３、帳票指定格納部１３１、検索結果格納部１３２、帳票情報格納テーブル１３３、帳票データ格納テーブル１３４、リレーション情報格納テーブル１３５、検索結果格納部１４１、出力項目指定格納部１４２及びリレーション情報格納テーブル１４３は、サーバ２内の例えばＲＡＭ等の内部記録媒体内において格納される。
【００４０】
先ず、サーバ２は、図２のステップＳ２０４において保存した検索条件を検索条件格納部１２１から取得する（ステップＳ３０１）。ここで、取得された検索条件は、後述する検索クエリーのＷＨＥＲＥ句の生成に用いられる。検索条件格納部１２１には、図４の画面上において指定された、データ分類に対応するテーブルＩＤ、データ項目に対応するカラムＩＤ及び検索内容が格納されている。
【００４１】
図４の例では、条件指定Ｎｏ．１において、データ分類“期間”、データ項目“年月日”、検索内容“１９９６／１２／０９から１９９６／１２／１１まで”が指定されている。ここで、図１５に示すテーブル情報格納テーブルを参照すると、データ分類“期間”に対応するテーブルＩＤは“ｔｅｒｍ”である。また、図１６に示すカラム情報格納テーブルを参照すると、データ項目“年月日”に対応するカラムＩＤは“年月日”である。従って、条件指定Ｎｏ．１については、検索条件格納部１２１にはテーブルＩＤ“ｔｅｒｍ”、カラムＩＤ“年月日”、検索内容“１９９６／１２／０９から１９９６／１２／１１（ＢＥＴＷＥＥＮ  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−０９  ００：００：００．００００００｀ＡＮＤ  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１１  ２３：５９：５９．９９９９９９｀）”が格納される。同様に、条件指定Ｎｏ．２については、テーブルＩＤ“ｇｏｏｄｓ”、カラムＩＤ“商品名”、検索内容“Ｍ−４  小鉢  ”が検索条件格納部１２１に格納される。
【００４２】
次に、サーバ２は、表示項目指定格納部１２１から表示項目指定情報を取得する（ステップＳ３０２）。表示項目指定格納部１２２には、図５の画面上で入力された出力項目データと、図６の画面上で入力されてＳ２１２で保存された表示指定データが格納されている。図５の例では、出力項目データとして、データ分類“期間”のデータ項目“年月日”、データ分類“商品”のデータ項目“商品名”、データ分類“商品”のデータ項目“標準売価”、データ分類“商品”のデータ項目“標準原価”、及び、データ分類“商品”のデータ項目“取引開始日”が選択されている。
【００４３】
図６の例では、データ分類“商品”のデータ項目“商品名”につきソート優先順位“１”、ソート順が“昇順”と指定され、データ分類“商品”のデータ項目“取引開始日”につきソート優先順位“２”、ソート順が“昇順”と指定されている。
【００４４】
従って、表示項目指定格納部１２２には、テーブルＩＤ“ｔｅｒｍ”及びカラムＩＤ“年月日”、テーブルＩＤ“ｇｏｏｄｓ”、カラムＩＤ“商品名”、ソート優先順“１”及びソート順“昇順（ＡＳＣ）”、テーブルＩＤ“ｇｏｏｄｓ”、カラムＩＤ“取引開始日”、ソート優先順“２”及びソート順“昇順（ＡＳＣ）”が夫々対応付けて格納される。サーバ２は、これらの表示項目指定情報を表示項目指定格納部１２２から取得する。
【００４５】
続いて、サーバ２は、リレーション情報格納テーブル１２３からリレーション情報を取得する（ステップＳ３０３）。リレーション情報格納テーブル１２３には、図１７に示されるように、本実施形態におけるスタースキーマのデータベースにおけるディメンションテーブルである“ｔｅｒｍ”、“ｓｔｏｒｅ”、“ｇｏｏｄｓ”と、メインテーブルである“ｓｌｓ＿ｄｓｇｏｏｄｓ”とのリレーション情報を格納している。
本実施形態に適用されるスタースキーマ型リレーショナルデータベースのリレーション関係を図１８に示す。
【００４６】
また、本実施形態に適用可能なテーブル“ｇｏｏｄｓ”、“ｔｅｒｍ”、“ｓｔｏｒｅｓ”、“ｓｌｓ＿ｄｓｇｏｏｄｓ”を、それぞれ図２１、図２２、図２３、図２４に示す。図２１に示すテーブル“ｇｏｏｄｓ”は、カラム“対象日”、“店コード”、“商品コード”、“売上コード”等を含む。テーブル“ｔｅｒｍ”は、カラム“年月日”、“年”、“月”、“日”等を含む。テーブル“ｓｔｏｒｅｓ”は、カラム“店舗コード”、“店舗名”、“規模コード”等を含む。テーブル“ｓｌｓ＿ｄｓｇｏｏｄｓ”は、カラム“対象日”、“店コード”、“商品コード”、“売上点数”等を含む。
【００４７】
ここでは、図４や図５の画面上においてテーブル“ｔｅｒｍ”、“ｇｏｏｄｓ”から検索項目や出力項目が選択されている。従って、サーバ２は、リレーション情報格納テーブル１２３からテーブル“ｔｅｒｍ”、“ｇｏｏｄｓ”に係るリレーション情報を取得する。即ち、ここで取得されるリレーション情報は、テーブル“ｔｅｒｍ”のカラム“年月日”とテーブル“ｓｌｓ＿ｄｓｇｏｏｄｓ”のカラム“対象日”とを対応付けたリレーション情報、及び、テーブル“ｇｏｏｄｓ”のカラム“商品コード”とテーブル“ｓｌｓ＿ｄｓｇｏｏｄｓ”のカラム“商品コード”とを対応付けたリレーション情報である。
【００４８】
続いて、サーバ２は、ステップＳ３０４において、ステップＳ３０３にて取得したリレーション情報に基づいて、クエリーのＷＨＥＲＥ句においてテーブル間の紐つけを定義するテーブルリレーション部を生成する。
具体的には、「ｔｅｒｍ．年月日  ＝  ｓｌｓ＿ｄｓｇｏｏｄｓ．対象日  ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ｓｌｓ＿ｄｓｇｏｏｄｓ．商品コード」がテーブルリレーション部として生成される。この検索条件は、ユーザが検索条件として明示的に指示ものではないが、検索条件としてデータを特定するために生成されるものである。
【００４９】
続いて、サーバ２は、ステップＳ３０１において取得した検索条件と、ステップＳ３０４において生成したテーブルリレーション部とに基づいて、クエリーのＷＨＥＲＥ句（検索条件）を生成する。
【００５０】
続いて、サーバは、ステップＳ３０２において取得した表示項目情報に基づいてクエリーのＳＥＬＥＣＴ句を生成する。ここでは、カラム“年月日”、“商品名”、“標準売価”、“標準原価”、“取引開始日”に属するデータのうち検索条件に合致するデータをテーブル“ｔｅｒｍ”、“ｇｏｏｄｓ”、“ｓｌｓ＿ｄｓｇｏｏｄｓ”から読み出すことがこのＳＥＬＥＣＴ句により要求されるとともに、表示項目として選択されたテーブル“ｔｅｒｍ”、“ｇｏｏｄｓ”の連結キーであるカラム“年月日”、“商品コード”をそれぞれ“Ｃｌｍ＿０”、“Ｃｌｍ＿１”と読み替えて送り返すことが同ＳＥＬＥＤＴ句によって要求される。
【００５１】
続いて、サーバ２は、ステップＳ３０２において取得した表示項目情報内のソート優先順、ソート順に基づいて、クエリーのＯＲＤＥＲ句を生成する。即ち、テーブル“ｇｏｏｄｓ”のカラム“商品名”のデータを最優先に昇順でソートし、テーブル“ｇｏｏｄｓ”のカラム“取引開始日”のデータを次に優先して昇順でソートすることがここで規定される。
【００５２】
上記のようにクエリーが生成されることによって次のようなＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文が生成される。
「ＳＥＬＥＣＴ  ＤＩＳＴＩＮＣＴ  ｔｅｒｍ．年月日，ｇｏｏｄｓ．商品名，ｇｏｏｄｓ．取引開始日，ｔｅｒｍ．年月日  ａｓ  ｃｎｇＣｌｍ＿０，  ｇｏｏｄｓ．商品コード  ａｓ  ｃｎｇＣｌｍ＿１
ＦＲＯＭ  ｔｅｒｍ，ｇｏｏｄｓ，ｓｌｓ＿ｄｓｇｏｏｄｓ
ＷＨＥＲＥ（ｔｅｒｍ．年月日＝ｓｌｓ＿ｄｓｇｏｏｄｓ．対象日  ＡＮＤ  ｇｏｏｄｓ．商品コード＝ｓｌｓ＿ｄｓｇｏｏｄｓ．商品コード）
ＡＮＤ（（ｔｅｒｍ．年月日  ＢＥＴＷＥＥＮ  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−０９  ００：００：００．００００００｀ＡＮＤ  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１１  ２３：５９：５９．００００００｀）
ＡＮＤ（ｇｏｏｄｓ．商品名  ＬＩＫＥ  ｀％Ｍ−４小鉢％｀））
ＯＲＤＥＲ  ＢＹ  ｇｏｏｄｓ．商品名  ＡＳＣ，ｇｏｏｄｓ．取引開始日  ＡＳＣ」
つまり、最終的に必要な出力項目よりも少ない情報を一度表示しておくことで、無駄に大量のデータを自由ＤＢから取得することがなく、データを絞る際に最低限必要な情報だけを一度閲覧した後で、次の本検索として最終的に必要な出力項目をカバーしながら不必要なデータを除いた絞込み検索を行うことが可能である。
【００５３】
＜検索クエリー生成（絞込検索帳票出力時）＞
次に、図３のステップＳ２２５における帳票モードのクエリー生成方法について説明する。図１３は、本実施形態に係る帳票モードのクエリー生成方法の流れを示したフローチャートである。
先ず、サーバ２は、ステップＳ２２４にて受信し、そして、帳票指定格納部１３１において格納した商品別店舗売上表に相当する帳票ＩＤを取得する（ステップＳ４０１）。続いて、サーバ２は、検索結果格納部１３２からキーカラム検索結果を取得する（ステップＳ４０２）。このキーカラム検索結果とは、ステップＳ２１５において“Ｃｌｍ＿０”、“Ｃｌｍ＿１”としてＤＢから送り返された連結キーのデータであり、Ｓ２１７で保存したキーカラム検索結果のうち図７において選択されている２つのデータに関係するキーカラム情報を取得する。例えば、「ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ’１９９６−１２−１０  ２３：５９：５９．９９９９９９’」や「ｇｏｏｄｓ．商品コード  ＝  ’４９７３３０７４０４５１１’」等がこれに相当する。
【００５４】
次に、サーバ２は、帳票情報格納テーブル１３３から帳票データ情報を取得する（ステップＳ４０３）。帳票情報格納テーブルは、図１９に示すように、帳票ＩＤ“ＲＥＰＯＲＴ＿ＩＤ”、メインテーブルＩＤ“ＭＡＩＮ＿ＴＢＬ＿ＩＤ”、キーカラムＩＤ“ＫＥＹ＿ＣＬＭ＿ＩＤ”、オーバーレイフォーム名“ＦＯＲＭ＿ＮＭ”などを対応付けて格納している。サーバ２は、ステップＳ４０１において取得した帳票ＩＤに該当する帳票データ情報を帳票情報格納テーブルから取得する。即ち、ステップＳ４０１において取得される帳票ＩＤは“８０３”であるため、図１９の例では、帳票ＩＤ“８０３”、メインテーブルＩＤ“ｇｏｏｄｓ”、キーカラムＩＤ“商品コード”、オーバーレイフォーム名“ｒｓ＿ｓＵＲＩＡＧＥ３．ｆｃｐ”などが帳票データ情報として取得される。
【００５５】
次に、サーバ２は、帳票データ格納テーブルから帳票構成項目情報を取得する（ステップＳ４０４）。帳票データ格納テーブルは、図２０に示すように、帳票ＩＤ“ＲＥＰＯＲＴ＿ＩＤ”、テーブルＩＤ“ＴＢＬ＿ＩＤ”、カラムＩＤ“ＣＬＭ＿ＩＤ”、データ生成順“ＳＯＲＴ＿ＯＲＤＥＲ”などを対応付けて格納している。サーバ２は、ステップＳ４０１において取得した帳票ＩＤに該当する帳票構成項目情報を帳票データ格納テーブルから取得する。即ち、ステップＳ４０１において取得された帳票ＩＤは“８０３”であり、図２０に示す帳票データ格納テーブルの全てのレコードが読み出される。
【００５６】
続いて、サーバ２は、図１７のリレーション情報格納テーブルからリレーション情報を取得する（ステップＳ４０５）。ここで取得されるリレーション情報は、図２０に示すように、帳票として出力されるべき出力項目のテーブルとして“ｇｏｏｄｓ”、“ｓｔｏｒｅ”、“ｔｅｒｍ”が含まれるため、リレーション情報格納テーブルから３つのリレーション情報が取得される。即ち、第１のリレーション情報として、テーブルＩＤ（ＴＢＬ＿ＩＤ）“ｔｅｒｍ”、カラムＩＤ（ＣＬＭ＿ＩＤ）“年月日”、リレーションテーブルＩＤ（ＣＮＧ＿ＩＤ）“ｓｌｓ＿ｄｓｇｏｏｄｓ”、リレーションカラムＩＤ（ＣＮＧＣＬＭ＿ＩＤ）“対象日”が取得される。第２のリレーション情報として、テーブルＩＤ（ＴＢＬ＿ＩＤ）“ｓｔｏｒｅ”、カラムＩＤ（ＣＬＭ＿ＩＤ）“店舗コード”、リレーションテーブルＩＤ（ＣＮＧ＿ＩＤ）“ｓｌｓ＿ｄｓｇｏｏｄｓ”、リレーションカラムＩＤ（ＣＮＧＣＬＭ＿ＩＤ）“店コード”が取得される。また、第３のリレーション情報として、テーブルＩＤ（ＴＢＬ＿ＩＤ）“ｇｏｏｄｓ”、カラムＩＤ（ＣＬＭ＿ＩＤ）“商品コード”、リレーションテーブルＩＤ（ＣＮＧ＿ＩＤ）“ｓｌｓ＿ｄｓｇｏｏｄｓ”、リレーションカラムＩＤ（ＣＮＧＣＬＭ＿ＩＤ）“商品コード”が取得される。
ここでは、繰り返しを避けるためにフローチャートには記載しないが、図１２のステップＳ３０１で行った検索条件取得をステップＳ４０６の実行前に実行する。
【００５７】
続いて、サーバ２は、ステップＳ４０５において取得したリレーション情報からテーブルリレーション部を生成する（ステップＳ４０６）。ここでは、テーブル“ｇｏｏｄｓ”、“ｓｔｏｒｅ”、“ｔｅｒｍ”がそれぞれの連結キーによりテーブル“ｓｌｓ＿ｄｓｇｏｏｄｓ”に紐つけされていることを示すものとして、“ｔｅｒｍ．年月日＝ｓｌｓ＿ｄｓｇｏｏｄｓ．対象日  ＡＮＤ  ｇｏｏｄｓ．商品コード＝ｓｌｓ＿ｄｓｇｏｏｄｓ．商品コード  ＡＮＤ  ｓｔｏｒｅ．店舗コード＝ｓｌｓ＿ｄｓｇｏｏｄｓ．店コード”がテーブルリレーション部として生成される。
【００５８】
続いて、サーバ２は、検索条件を示すＷＨＥＲＥ句を生成する（ステップＳ４０７）。ここでは、図２のステップＳ２０４において検索条件格納部に格納した検索条件、及び、ステップＳ４０６において生成したテーブルリレーション部のほか、ステップＳ４０２において検索結果格納部から取得した検索結果キー情報（連結キー）、ここでは、ステップＳ１２０において選択された第１の出力項目“年月日：１９９６／１２／１０、商品名：Ｍ−４小鉢  ”に対する“ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１０  ２３：５９：５９．９９９９９９｀”及び“４９７３３０７４０４５１１”のデータ、並びに、同じくステップＳ１２０において選択された第２の出力項目“年月日：１９９６／１２／１１、商品名：Ｍ−４小鉢  ”に対する“ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１１  ２３：５９：５９．９９９９９９｀”、“４９７３３０７４０４５１１”のデータに基づいてＷＨＥＲＥ句を生成する。
【００５９】
続いて、サーバ２は、表示項目を示すＳＥＬＥＣＴ句を生成する。ここでは、ステップＳ４０４において帳票データ格納テーブル１３４から取得した帳票構成項目情報に基づいて、カラム“商品コード”、“商品名”、“規模名”、“店舗コード”、“店舗名”、“年月日”、“標準売価”、“標準原価”、“売上点数”、“売上売価金額”を表示項目としてテーブル“ｔｅｒｍ”、“ｇｏｏｄｓ”、“ｓｔｏｒｅ”、“ｓｌｓ＿ｄｓｇｏｏｄｓ”から取得して表示する旨をＳＥＬＥＣＴ句で規定している。
【００６０】
続いて、サーバ２は、ソート順を示すＯＲＤＥＲ句を生成する。ここでは、ステップＳ４０４において取得した帳票構成項目情報の“ＳＯＲＴ＿ＯＲＤＥＲ”及び“ＡＤ＿ＣＬＡＳＳ”に基づいて、テーブル“ｇｏｏｄｓ”のカラム“商品コード”、テーブル“ｓｔｏｒｅ”のカラム“店舗コード”の優先順位でそれぞれを昇順でソートする旨が規定される。
【００６１】
このようにして生成されるクエリーは以下のようになる。
「ＳＥＬＥＣＴ  ＤＩＳＴＩＮＣＴ  ｇｏｏｄｓ．商品コード，ｇｏｏｄｓ．商品名，ｓｔｏｒｅ．規模名，ｓｔｏｒｅ．店舗コード，ｓｔｏｒｅ．店舗名，ｔｅｒｍ．年月日，ｇｏｏｄｓ．標準売価，ｇｏｏｄｓ．標準原価，ｓｌｓ＿ｄｓｇｏｏｄｓ．売上点数，ｓｌｓ＿ｄｓｇｏｏｄｓ．売上売価金額
ＦＲＯＭ  ｔｅｒｍ，ｇｏｏｄｓ，ｓｔｏｒｅ，ｓｌｓ＿ｄｓｇｏｏｄｓ
ＷＨＥＲＥ  （（ｔｅｒｍ．年月日  ＢＥＴＷＥＥＮ  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−０９  ００：００：００．００００００｀
ＡＮＤ  （ｇｏｏｄｓ．商品名  ＬＩＫＥ  ｀％Ｍ−４小鉢  ％｀））
ＡＮＤ  （（ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１０  ２３：５９：５９．９９９９９９｀ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ｀４９７３３０７４０４５１１｀）
ＯＲ  （ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１１  ２３：５９：５９．９９９９９９｀）
ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ｀４９７３３０７４０４５１１｀））
ＡＮＤ  （ｔｅｒｍ．年月日  ＝  ｓｌｓ．ｄｓ＿ｇｏｏｄｓ．商品コード
ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ｓｌｓ＿ｄｓｇｏｏｄｓ．商品コード
ＡＮＤ  ｓｔｏｒｅ．店舗コード  ＝  ｓｌｓ＿ｄｓｇｏｏｄｓ．店コード
ＯＲＤＥＲ  ＢＹ  ｇｏｏｄｓ．商品コード  ＡＳＣ、ｓｔｏｒｅ．店舗コード  ＡＳＣ」
【００６２】
上記のように、絞込検索によって生成されるクエリーには、前回の出力項目を含むテーブルの連結キーに対する検索結果が新たな検索条件として反映されている（ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１０  ２３：５９：５９．９９９９９９｀ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ｀４９７３３０７４０４５１１｀）  ＯＲ  （ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１１  ２３：５９：５９．９９９９９９｀）。例えば、前回（一回目）の検索の際に“商品コード”は出力項目或いは表示項目としては指定されていないにも係わらず自由検索ＤＢ２２に対してのデータ出力条件としてＳＥＬＥＣＴ句に入れ、さらにこれを保存していることにより可能とするものである。つまり、ステップＳ２１５において“Ｃｌｍ＿０”、“Ｃｌｍ＿１”としてデータの出力項目や表示項目とは別に連結キーを自由ＤＢ２２より情報取得して保存することで、後の検索クエリー生成に備えるものである。
【００６３】
さらには、図１２を用いて詳述したステップ２０４のクエリ−生成においては、
「ＳＥＬＥＣＴ  ＤＩＳＴＩＮＣＴ  ｔｅｒｍ．年月日，ｇｏｏｄｓ．商品名，ｇｏｏｄｓ．標準売価，ｇｏｏｄｓ．標準原価，ｇｏｏｄｓ．取引開始日ＦＲＯＭ  ｔｅｒｍ，ｇｏｏｄｓ，ｓｌｓ＿ｄｓｇｏｏｄｓ
ＷＨＥＲＥ（ｔｅｒｍ．年月日＝ｓｌｓ＿ｄｓｇｏｏｄｓ．対象日  ＡＮＤ  ｇｏｏｄｓ．商品コード＝ｓｌｓ＿ｄｓｇｏｏｄｓ．商品コード）
ＡＮＤ（（ｔｅｒｍ．年月日  ＢＥＴＷＥＥＮ  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−０９  ００：００：００．００００００｀ＡＮＤ  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１１  ２３：５９：５９．００００００｀）
ＡＮＤ（ｇｏｏｄｓ．商品名  ＬＩＫＥ  ｀％Ｍ−４小鉢  ％｀））
ＯＲＤＥＲ  ＢＹ  ｇｏｏｄｓ．商品名  ＡＳＣ，ｇｏｏｄｓ．取引開始日  ＡＳＣ」
としても図７に示す検索結果の表示を作成することは可能である。また従来の技術によれば、このようにＳＱＬ文を生成するものである。しかし、本発明は複雑に連結キーで連結されるスキーマを有するデータベースに対して更なる絞り込み検索を行い、検索結果をさまざまな出力項目を有する各種の帳票へのデータ合成を可能とするために上述のようなクエリ−生成を行うものである。
【００６４】
これにより、絞込検索の際に前回の出力項目をみて、再度検索条件に反映させて再検索を行うる手間が省け、新たな絞込条件のみの入力により絞込検索を実行することが可能となり、ユーザにとって検索操作が容易になる。同じく、当該連結キーに対する検索結果が新たな検索条件に反映されることによって、前回の出力項目を含むテーブル内における出力項目の変更を前回の出力項目を反映させることなく容易に行うことが可能となる。また、複数の表形式のデータテーブルを有する複雑なスキーマのデータベースに対してデータベースの知識のないユーザが容易に、自由度の高い検索を行うも可能となる。つまり、複雑なスキーマを有するデータベースの検索においても、図７において「データ出力」の選択だけでなく、「帳票出力」の選択と言ったデータの出力項目が変化した場合でも対応できる自由度をユーザに与えることができ、出力形態を検索実行前に指定したものだけ或いは予め決められたものだけしか出来ない従来のものとはその自由度は比べ物にならない。
【００６５】
なお、２回目の検索におけるクエリー生成時に図７のデータ出力選択（ステップＳ１２１）においてすべてのデータが選択されたか否かをステップＳ２１６及びステップＳ２１７で判断する。そしてすべてのデータが出力対象の場合には、クエリー生成及び自由検索ＤＢ２２でのクエリー解釈に時間が掛かるために、すべてのデータに対して、個別に（ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１０  ２３：５９：５９．９９９９９９｀ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ｀４９７３３０７４０４５１１｀）  ＯＲ  （ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ｀１９９６−１２−１１  ２３：５９：５９．９９９９９９｀）の条件を作成せずにステップＳ４０７における処理ではステップＳ２１７で保存した出力データ選択条件を無視して、クエリーを生成する。
【００６６】
＜検索クエリー生成（絞込検索データ出力時）＞
次に、図３のステップＳ２１９におけるデータ出力モードの指定（ＣＳＶファイル取得用）時のクエリー生成方法について説明する。図１４は、本実施形態に係るデータ出力モードのクエリー生成方法の流れを示したフローチャートである。
先ず、サーバ２は、検索結果格納部１４１からキーカラム検索結果を取得する（ステップＳ５０１）。これは、図１３におけるステップＳ４０２と同じ処理なので詳述は省く。
【００６７】
また、ステップＳ５０２では、出力項目を取得する。これは、図２のＳ２０８において保存していた出力項目入力データの内容である。必要なテーブルＩＤとカラムＩＤとカラムソート順を取得する。出力項目指定格納部１４２には、テーブルＩＤ“ｔｅｒｍ”及びカラムＩＤ“年月日”、テーブルＩＤ“ｇｏｏｄｓ”及びカラムＩＤ“商品名”、テーブルＩＤ“ｇｏｏｄｓ”及びカラムＩＤ“標準売価”、テーブルＩＤ“ｇｏｏｄｓ”及びカラムＩＤ“標準原価”、テーブルＩＤ“ｇｏｏｄｓ”及びカラムＩＤ“取引開始日”が夫々対応付けて格納されており、サーバ２はこれらを取得する。カラムソート順は、ステップＳ１１５で外部入力により表示項目を指定した際に表示項目に対して指定されたソート順序である。これらの出力項目入力データは後述するＳＥＬＥＣＴ句の生成及びＯＲＤＥＲ句の生成に用いられる。
【００６８】
次に、ステップＳ５０３では、サーバ２は、リレーション情報格納テーブル１４３からリレーション情報を取得する。これは、図１２のステップＳ３０３及び図１３のステップＳ４０５と同様なので詳述は省く。但し、ここでは図４及び図５の画面上でテーブル“ｔｅｒｍ”及び“ｇｏｏｄｓ”から検索項目と出力項目が指定されているので特に図１２のステップＳ３０３と同一の動作となる。
ここでも、繰り返しを避けるためにフローチャートには記載しないが、図１２のステップＳ３０１で行った検索条件取得をステップＳ５０４の実行前に実行している。
【００６９】
続いて、サーバ２はステップＳ５０４においてテーブルリレーション部を生成する。これは、図１２のＳ３０４と同一であり、クエリーのＷＨＥＲＥ句で用いる「ｔｅｒｍ．年月日  ＝  ｓｌｓ＿ｄｓｇｏｏｄｓ．対象日  ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ｓｌｓ＿ｄｓｇｏｏｄｓ．商品コード」がテーブルリレーション部として生成される。上述したように、この条件は検索条件として用いられるがユーザが明示的に指定した条件には存在しないがスキーマの性質上生成が必須となるものである。そして、ステップＳ５０５において、検索条件と、テーブルリレーション部と、検索結果キー情報とからＷＨＥＲＥ句を生成する。
【００７０】
続いて、サーバ２はステップＳ５０３で取得した出力項目条件によりＳＥＬＥＣＴ句を生成する（ステップＳ５０６）。ここでは、カラム“年月日”、“商品名”、“標準売価”、“標準原価”、“取扱開始日”を出力項目としてテーブル“ｔｅｒｍ”、“ｇｏｏｄｓ”、から情報を取得する。そしてＷＨＥＲＥ句で用いられたデータリレーション部の条件を検索可能にするために“ｓｌｓ＿ｄｓｇｏｏｄｓ”からも検索対象のテーブルに追加され、これらのテーブルからデータを取得して表示する旨をＳＥＬＥＣＴ句で規定している。そして、サーバ２は、ステップＳ５０７では、ステップＳ５０２で取得した表示項目に対するソート順に合わせてステップＳ３０７同様に生成される。
【００７１】
このようにして生成されるクエリーは以下のようになる。
「ＳＥＬＥＣＴ  ＤＩＳＴＩＮＣＴ  ｔｅｒｍ．年月日，  ｇｏｏｄｓ．商品名，  ｇｏｏｄｓ．標準売価，ｇｏｏｄｓ．標準原価，  ｇｏｏｄｓ．取扱開始日ＦＲＯＭ  ｔｅｒｍ，ｇｏｏｄｓ，ｓｌｓ＿ｄｓｇｏｏｄｓ
ＷＨＥＲＥ  （（ｔｅｒｍ．年月日  ＢＥＴＷＥＥＮ  ｔｉｍｅｓｔａｍｐ’１９９６−１２−０９  ００：００：００．００００００’ＡＮＤ  ｔｉｍｅｓｔａｍｐ’１９９６−１２−１１  ２３：５９：５９．９９９９９９’）
ＡＮＤ    （  ｇｏｏｄｓ．商品名  ＬＩＫＥ  ‘％Ｍー４小鉢％’））
ＡＮＤ  （（ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ’１９９６−１２−１０  ２３：５９：５９．９９９９９９’ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ‘４９７３３０７４０４５１１’）
ＯＲ  （ｔｅｒｍ．年月日  ＝  ｔｉｍｅｓｔａｍｐ’１９９６−１２−１１  ２３：５９：５９．９９９９９９’ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ‘４９７３３０７４０４５１１’））
ＡＮＤ  （  ｔｅｒｍ．年月日  ＝  ｓｌｓ＿ｄｓｇｏｏｄｓ．対象日ＡＮＤ  ｇｏｏｄｓ．商品コード  ＝  ｓｌｓ＿ｄｓｇｏｏｄｓ．商品コード  ）
ＯＲＤＥＲ  ＢＹ  ｇｏｏｄｓ．商品名  ＡＳＣ，ｇｏｏｄｓ．取引開始日  ＡＳＣ」
【００７２】
このように、検索クエリー生成（初回検索時）でデータ出力される対象を絞った後に、検索クエリー生成（絞込検索データ出力時）を行い最終的な出力を得られるために大量のデータを取得してしまい検索効率が下がることや、画面上などで所望のデータが選びにくくなること、或いは一度結果を見た後に検索条件（項目及び“小鉢”等の選択内容）や出力条件（項目）を設定し直すなどの煩わしさを防ぐことが出来る。また、テーブルリレーション情報を参照することで複数のテーブルデータから自由に検索条件や出力条件を設定できるので検索の自由度が増す。検索の自由度が増すことで予期せぬ不要のデータを得ることもありえるが、上述の表示用検索を少ない項目で行った後で最終的なデータ出力のための検索を行えるので利便性が高い。
【００７３】
図２５は、本実施形態におけるサーバ２のハードウェア構成を示した図である。
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。また、ＲＯＭ２０３或いは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステムプログラム（以下、ＯＳと称す）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００７４】
キーボードコントローラ（ＫＢＣ）２０５は、キーボード２０９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０の表示を制御する。これらは必要に応じて管理者が使用するものである。本発明には直接関係あるものではない。
【００７５】
外部メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウェア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、データベースマネージメントシステム（ＤＢＭＳ）、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（Ｒ）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００７６】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器と接続するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。なお、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。上述の動作フローチャートで説明した各処理に係わるプログラムや自由検索ＤＢ２２は外部メモリ２１１に記憶され、各種プログラムは必要に応じてＲＡＭ２０２に読み出されてＣＰＵ２０１が実行するものである。
【００７７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００７８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７９】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００８０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８２】
【発明の効果】
本発明によれば、複数のデータテーブルからなるデータベースに対して検索条件や出力条件を設定できるのでユーザは自由度の高い検索を行うことが可能である。また、表示用検索を行った後にデータ出力用の検索を行えるので不要なデータ出力を未然に防ぐことも可能となりユーザの利便性を高めることが可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るデータベース検索システムの構成を模式的に示した図である。
【図２】本発明の一実施形態に係るデータベース検索システムの主要動作を示したフローチャートである。
【図３】本発明の一実施形態に係るデータベース検索システムの主要動作を示したフローチャートである。
【図４】検索条件画面の一例を示した図である。
【図５】出力項目選択画面の一例を示した図である。
【図６】表示指定画面の一例を示した図である。
【図７】検索結果一覧画面の一例を示した図である。
【図８】検索ヒット件数表示画面の一例を示した図である。
【図９】帳票一覧画面の一例を示した図である。
【図１０】検索ヒット件数表示画面の一例を示した図である。
【図１１】帳票画面の一例を示した図である。
【図１２】本発明の一実施形態に係る検索クエリー生成方法の流れを示したフローチャートである。
【図１３】本発明の一実施形態に係る検索クエリー生成方法の流れを示したフローチャートである。
【図１４】本発明の一実施形態に係わる検索クエリー生成方法の流れを示したフローチャートである。
【図１５】テーブル情報格納テーブルの一構成例を示した図である。
【図１６】カラム情報格納テーブルの一構成例を示した図である。
【図１７】リレーション情報格納テーブルの一構成例を示した図である。
【図１８】本発明の一実施形態に適用されるスタースキーマ型リレーショナルデータベースのリレーション関係を示した図である。
【図１９】帳票情報格納テーブルの一構成例を示した図である。
【図２０】帳票データ格納テーブルの一構成例を示した図である。
【図２１】テーブル“ｇｏｏｄｓ”の一構成例を示した図である。
【図２２】テーブル“ｔｅｒｍ”の一構成例を示した図である。
【図２３】テーブル“ｓｔｏｒｅｓ”の一構成例を示した図である。
【図２４】テーブル“ｓｌｓ＿ｄｓｇｏｏｄｓ”の一構成例を示した図である。
【図２５】本発明の一実施形態におけるサーバのハードウェア構成を示した図である。
【符号の説明】
１：クライアントＰＣ
２：サーバ
３：システムＤＢサーバ
２１：自由検索／自由帳票アプリケーション
２２：自由検索ＤＢ
１２１：検索条件格納部
１２２：表示項目指定格納部
１２３：リレーション情報格納テーブル
１３１：帳票指定格納部
１３２：検索結果格納部
１３３：帳票情報格納テーブル
１３４：帳票データ格納テーブル
１３５：リレーション情報格納テーブル
【図１】
2004213347.tif 000003
【図２】
2004213347.tif 000004
【図３】
2004213347.tif 000005
【図４】
2004213347.tif 000006
【図５】
2004213347.tif 000007
【図６】
2004213347.tif 000008
【図７】
2004213347.tif 000009
【図８】
2004213347.tif 000010
【図９】
2004213347.tif 000011
【図１０】
2004213347.tif 000012
【図１１】
2004213347.tif 000013
【図１２】
2004213347.tif 000014
【図１３】
2004213347.tif 000015
【図１４】
2004213347.tif 000016
【図１５】
2004213347.tif 000017
【図１６】
2004213347.tif 000018
【図１７】
2004213347.tif 000019
【図１８】
2004213347.tif 000020
【図１９】
2004213347.tif 000021
【図２０】
2004213347.tif 000022
【図２１】
2004213347.tif 000023
【図２２】
2004213347.tif 000024
【図２３】
2004213347.tif 000025
【図２４】
2004213347.tif 000026
【図２５】
2004213347.tif 000027