(57)【要約】【課題】ユーザが個々に要求する各種の演算処理を含む検索を効率的に行うことが可能なデータベース検索装置及びデータベース検索方法を提供することを目的とする。【解決手段】データベース検索装置１は、検索条件記憶手段１２に入力された演算処理を含む検索条件を、検索条件分割手段２２により部分検索条件とに分割する。これらの複数の部分検索条件の処理手順を演算処理の対象データを限定できるように処理順序決定手段２４により処理順序を決定し、演算処理の対象データを限定して検索処理を行うように第１処理手順決定手段２５及び第２処理手順決定手段２６により処理手順により決定する。決定された処理手順に従って、演算関数記憶手段１１に記憶される演算関数情報を用いて検索処理を検索処理実行手段実行２７する。【選択図】図２
2007193394.tif 000002
【特許請求の範囲】
【請求項１】
テーブル形式のデータまたはテーブルに付随する任意形式のデータを記憶するデータベースの検索を行うデータベース検索装置であって、
前記データベースに記憶するデータを対象とした演算処理を行うための演算関数情報を記憶する演算関数記憶手段と、
前記演算処理を含む入力された検索条件を記憶する検索条件記憶手段と、
前記検索条件を、当該検索条件における一部の条件である部分検索条件であって前記演算処理を含む１つまたは複数の前記部分検索条件と、前記演算処理を含まない１つまたは複数の前記部分検索条件とに分割する検索条件分割手段と、
前記検索条件を満たす検索結果を得るための複数の前記部分検索条件の処理手順を決定する処理手順最適化手段と、
前記各部分検索条件の処理結果をテーブル形式のデータとして記憶する一時データ記憶手段と、
前記処理手順最適化手段により決定される処理手順に従って、前記演算関数情報を一部に用いて前記検索条件の処理を実行する検索処理実行手段と、
を備えているデータベース検索装置であって、
前記処理手順最適化手段は、
前記演算処理の対象データを限定することが可能な前記部分検索条件が存在する場合は、当該部分検索条件を処理した後、当該演算処理を行うように、前記複数の部分検索条件を処理する順序を決定する処理順序決定手段と、
前記演算処理の対象データを限定することが可能な処理済の前記部分検索条件が存在する場合は、前記一時データ記憶手段に記憶される当該部分検索条件の処理結果に基づいて当該演算処理の対象データを限定するように処理手順を決定する第１処理手順決定手段と、
前記演算処理の対象データを限定する前記部分検索条件の処理結果を限定することが可能な処理済の他の部分検索条件が存在する場合は、前記一時データ記憶手段に記憶される当該他の部分検索条件の処理結果に基づいて当該部分検索条件の処理結果を限定した後に、限定された処理結果に基づいて当該演算処理の対象データを限定するように処理手順を決定する第２処理手順決定手段とを備えることを特徴とするデータベース検索装置。
【請求項２】
前記部分検索条件の処理において、前記検索条件に対する最終出力項目と他の前記部分検索条件の処理に必要な項目とに限り処理結果として一時データ記憶手段に記憶させる限定記録手段を更に備えることを特徴とする請求項１に記載のデータベース検索装置。
【請求項３】
前記演算処理の対象データを限定する前記部分検索条件が、当該演算処理を含む前記部分検索条件以外の他の部分検索条件の処理の対象データを限定しない場合は、当該演算処理を行った後に、当該演算処理の対象データを限定する当該部分検索条件の処理結果のうち前記検索条件に対する最終出力項目以外の処理結果を前記一時データ記憶手段から削除する一時データ削除手段を更に備えることを特徴とする請求項１または請求項２に記載のデータベース検索装置。
【請求項４】
前記演算処理の少なくとも一部の計算が、既に行われた計算と同じ計算である場合は、当該同じ計算を行わず、当該既に行われた計算の結果を当該計算の結果とする重複処理防止手段を更に備えることを特徴とする請求項１乃至請求項３のいずれか1項に記載のデータベース検索装置。
【請求項５】
テーブル形式のデータまたはテーブルに付随する任意形式のデータを記憶するデータベースの検索をコンピュータの処理により行うデータベース検索方法であって、
前記データベースに記憶するデータを対象とした演算処理を行うための演算関数情報を記憶する演算関数記憶ステップと、
前記演算処理を含む入力された検索条件を記憶する検索条件記憶ステップと、
前記検索条件を、当該検索条件における一部の条件である部分検索条件であって前記演算処理を含む１つまたは複数の前記部分検索条件と、前記演算処理を含まない１つまたは複数の前記部分検索条件とに分割する検索条件分割ステップと、
前記検索条件を満たす検索結果を得るための複数の前記部分検索条件の処理手順を決定する処理手順最適化ステップと、
前記各部分検索条件の処理結果をテーブル形式のデータとして記憶する一時データ記憶ステップと、
前記処理手順最適化ステップにより決定される処理手順に従って、前記演算関数情報を一部に用いて前記検索条件の処理を実行する検索処理実行ステップと、
を備えているデータベース検索方法であって、
前記処理手順最適化ステップは、
前記演算処理の対象データを限定することが可能な前記部分検索条件が存在する場合は、当該部分検索条件を処理した後、当該演算処理を行うように、前記複数の部分検索条件を処理する順序を決定する処理順序決定ステップと、
前記演算処理の対象データを限定することが可能な処理済の前記部分検索条件が存在する場合は、前記一時データ記憶ステップにて記憶される当該部分検索条件の処理結果に基づいて当該演算処理の対象データを限定するように処理手順を決定する第１処理手順決定ステップと、
前記演算処理の対象データを限定する前記部分検索条件の処理結果を限定することが可能な処理済の他の部分検索条件が存在する場合は、前記一時データ記憶ステップにて記憶される当該他の部分検索条件の処理結果に基づいて当該部分検索条件の処理結果を限定した後に、限定された処理結果に基づいて当該演算処理の対象データを限定するように処理手順を決定する第２処理手順決定ステップとを備えることを特徴とするデータベース検索方法。
【請求項６】
前記部分検索条件の処理において、前記検索条件に対する最終出力項目と他の前記部分検索条件の処理に必要な項目とに限り処理結果として一時データ記憶ステップにて記憶させる限定記録ステップを更に備えることを特徴とする請求項５に記載のデータベース検索方法。
【請求項７】
前記演算処理の対象データを限定する前記部分検索条件が、当該演算処理を含む前記部分検索条件以外の他の部分検索条件の処理の対象データを限定しない場合は、当該演算処理を行った後に、当該演算処理の対象データを限定する当該部分検索条件の処理結果のうち前記検索条件に対する最終出力項目以外の処理結果を前記一時データ記憶ステップにて記憶される処理結果から削除する一時データ削除ステップを更に備えることを特徴とする請求項５または請求項６に記載のデータベース検索方法。
【請求項８】
前記演算処理の少なくとも一部の計算が、既に行われた計算と同じ計算である場合は、当該同じ計算を行わず、当該既に行われた計算の結果を当該計算の結果とする重複処理防止ステップを更に備えることを特徴とする請求項５乃至請求項７のいずれか1項に記載のデータベース検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが所望の検索条件を指定して、条件に合致するデータをデータベースから検索するためのデータベース検索装置及びデータベース検索方法に関する。
【背景技術】
【０００２】
従来から数値や文字などのデータを管理・利用するためのデータベースとしてリレーショナルデータベースなどの、データの集合をテーブル形式で管理する方式のデータベースが用いられている。このようなデータベースにおいては、ＳＱＬなどのデータベース操作用言語を使用してデータベースの検索を行うことが可能である。しかしながら、ユーザから要求される種々の検索条件による検索を実行する場合、検索を実行する手順が適切でないと、重複した無駄なディスクアクセスや大量の中間テーブル作成を招いたり、データベースが互いにネットワークで接続されているような分散型データベースの場合はネットワークを介した大量のトラフィックを発生させたりするなど、検索が非効率となり検索に長時間を要することもある。このような問題を解決するため、ユーザからの問い合わせの内容を解析し、問い合わせ条件に対して複数の候補が存在する検索手順のうち、最も効率のよい手順を決定する最適化手法を用いたデータベース検索方式が知られている。例えば、特許文献１に示すように、ユーザからの問い合わせの内容に関する複数のテーブルが、コードとその内容を対応させたものであるか否かを区別することで最適にアクセススケジュールを決定する方式がある。また、データベースを複数のリモートサイトに分散配置した分散型データベースのデータ検索においては、特許文献２に示すように、ユーザからの統計的データの問い合わせを、各リモートサイトに分解して送ることにより統計的データを算出する際のユーザの負担を低減する検索方式などがある。また、特許文献３に示すように、特定のデータに対する検索装置として、画像内のデータを特定領域の色によって検索を行うことができる画像検索装置などがある。
【０００３】
【特許文献１】特開平３−２７１８４０
【特許文献２】特開平３−１０３７３
【特許文献３】特開平３−１７４６５７
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、製鉄所のような工場の各工程において発生するデータには上述したような通常のデータベースで扱われる数値や文字など以外に、計測値の時系列データや画像データなどが含まれる。例えば、圧延工程においては処理されたコイルの番号・品種・厚さ・幅などといった数値や文字データの他に、そのコイルが圧延機を通過する間に板厚計や幅計などから出力信号として得られる時系列データや、疵検査の際に得られた画像データなどが発生する。これらの各工程で発生するデータを含んだデータベースを用いて、製品の品質異常の原因究明などを行う場合には、信号や画像の中に特定の特徴を有するものを探したいといったニーズが発生するため、検索処理の中にそのような信号や画像を解析するための演算処理が必要となってくる。
【０００５】
特許文献３に記載の画像検索装置は、画像内のデータを検索する手段であり、画像内の特定領域の色による検索を行うことができるが、特定の検索条件や演算処理を行うものであり、品質情報解析で必要とされるような、その時々の状況に応じて変化する検索条件や演算処理に対応できるものではない。
また、従来の操業では、データベースの検索機能にそのような複雑な演算処理を組み込む仕組みがないためにユーザはデータベースの検索機能と別途コンピュータプログラムとして用意した演算処理とを人手で交互に駆使しながら検索を行うか、その都度に専用プログラムを作成して検索を行うしかなく、大変な労力を要していた。また、複雑な演算処理はその他の検索処理に比べ長時間を要し、結果として全体の検索結果を得るまでに長時間を要していた。
【０００６】
このように、時系列データや画像データなどの付随データを含むデータベースに対して、ユーザがその時々に要求する各種の演算処理を含むような検索を効率的に行うことは困難であった。
【０００７】
本発明は、上記実情に鑑みることにより、ユーザが個々に要求する各種の演算処理を含む検索を効率的に行うことが可能なデータベース検索装置及びデータベース検索方法を提供することを目的とする。
【課題を解決するための手段及び効果】
【０００８】
本発明に係るデータベース検索装置及びデータベース検索方法は、上記目的を達成するために以下のようないくつかの特徴を有している。
【０００９】
上記目的を達成するための本発明に係るデータベース検索装置における第１の特徴は、テーブル形式のデータまたはテーブルに付随する任意形式のデータを記憶するデータベースの検索を行うデータベース検索装置であって、前記データベースに記憶するデータを対象とした演算処理を行うための演算関数情報を記憶する演算関数記憶手段と、前記演算処理を含む入力された検索条件を記憶する検索条件記憶手段と、前記検索条件を、当該検索条件における一部の条件である部分検索条件であって前記演算処理を含む１つまたは複数の前記部分検索条件と、前記演算処理を含まない１つまたは複数の前記部分検索条件とに分割する検索条件分割手段と、前記検索条件を満たす検索結果を得るための複数の前記部分検索条件の処理手順を決定する処理手順最適化手段と、前記各部分検索条件の処理結果をテーブル形式のデータとして記憶する一時データ記憶手段と、前記処理手順最適化手段により決定される処理手順に従って、前記演算関数情報を一部に用いて前記検索条件の処理を実行する検索処理実行手段と、を備えているデータベース検索装置であって、前記処理手順最適化手段は、前記演算処理の対象データを限定することが可能な前記部分検索条件が存在する場合は、当該部分検索条件を処理した後、当該演算処理を行うように、前記複数の部分検索条件を処理する順序を決定する処理順序決定手段と、前記演算処理の対象データを限定することが可能な処理済の前記部分検索条件が存在する場合は、前記一時データ記憶手段に記憶される当該部分検索条件の処理結果に基づいて当該演算処理の対象データを限定するように処理手順を決定する第１処理手順決定手段と、前記演算処理の対象データを限定する前記部分検索条件の処理結果を限定することが可能な処理済の他の部分検索条件が存在する場合は、前記一時データ記憶手段に記憶される当該他の部分検索条件の処理結果に基づいて当該部分検索条件の処理結果を限定した後に、限定された処理結果に基づいて当該演算処理の対象データを限定するように処理手順を決定する第２処理手順決定手段とを備えることである。
【００１０】
また、上記目的を達成するための本発明に係るデータベース検索方法における第１の特徴は、テーブル形式のデータまたはテーブルに付随する任意形式のデータを記憶するデータベースの検索をコンピュータの処理により行うデータベース検索方法であって、前記データベースに記憶するデータを対象とした演算処理を行うための演算関数情報を記憶する演算関数記憶ステップと、前記演算処理を含む入力された検索条件を記憶する検索条件記憶ステップと、前記検索条件を、当該検索条件における一部の条件である部分検索条件であって前記演算処理を含む１つまたは複数の前記部分検索条件と、前記演算処理を含まない１つまたは複数の前記部分検索条件とに分割する検索条件分割ステップと、前記検索条件を満たす検索結果を得るための複数の前記部分検索条件の処理手順を決定する処理手順最適化ステップと、前記各部分検索条件の処理結果をテーブル形式のデータとして記憶する一時データ記憶ステップと、前記処理手順最適化ステップにより決定される処理手順に従って、前記演算関数情報を一部に用いて前記検索条件の処理を実行する検索処理実行ステップと、を備えているデータベース検索方法であって、前記処理手順最適化ステップは、前記演算処理の対象データを限定することが可能な前記部分検索条件が存在する場合は、当該部分検索条件を処理した後、当該演算処理を行うように、前記複数の部分検索条件を処理する順序を決定する処理順序決定ステップと、前記演算処理の対象データを限定することが可能な処理済の前記部分検索条件が存在する場合は、前記一時データ記憶ステップにて記憶される当該部分検索条件の処理結果に基づいて当該演算処理の対象データを限定するように処理手順を決定する第１処理手順決定ステップと、前記演算処理の対象データを限定する前記部分検索条件の処理結果を限定することが可能な処理済の他の部分検索条件が存在する場合は、前記一時データ記憶ステップにて記憶される当該他の部分検索条件の処理結果に基づいて当該部分検索条件の処理結果を限定した後に、限定された処理結果に基づいて当該演算処理の対象データを限定するように処理手順を決定する第２処理手順決定ステップとを備えることである。
【００１１】
これらのデータベース検索装置及びデータベース検索方法の構成によると、演算処理を行うための演算関数情報を検索に用いることにより、テーブル形式のデータまたはテーブルに付随する任意形式のデータを記憶するデータベースに対して、演算処理を含んだ検索を行うことが可能である。また、検索条件は、演算処理を含む１つまたは複数の部分検索条件と、演算処理を含まない１つまたは複数の部分検索条件とに分割され、処理手順最適化手段により決定される処理手順により処理される。その際、演算処理の対象データを他の部分検索条件の処理結果に基づいて限定した後に演算処理が行われるため、演算処理を行う回数が減少する。また、当該他の部分検索条件の処理結果は、既に処理済の部分検索条件の処理結果に基づいて限定され、演算処理の対象データは当該限定された処理結果に基づいて限定されるようになっているため、更に演算処理の対象データを少なくすることができる。したがって、検索条件の処理において演算処理に要する処理時間を短縮することができ、効率的に演算処理を含む検索を行うことが可能である。
【００１２】
また、本発明に係るデータベース検索装置における第２の特徴は、第１の特徴を有するデータベース検索装置であって、前記部分検索条件の処理において、前記検索条件に対する最終出力項目と他の前記部分検索条件の処理に必要な項目とに限り処理結果として一時データ記憶手段に記憶させる限定記録手段を更に備えることである。
【００１３】
また、本発明に係るデータベース検索方法における第２の特徴は、第１の特徴を有するデータベース検索方法であって、前記部分検索条件の処理において、前記検索条件に対する最終出力項目と他の前記部分検索条件の処理に必要な項目とに限り処理結果として一時データ記憶ステップにて記憶させる限定記録ステップを更に備えることである。
【００１４】
これらのデータベース検索装置及びデータベース検索方法の構成によると、部分検索条件の処理により記憶されるデータ量が減少するため、データを記憶させる処理の効率が向上し、検索を効率的に行うことが可能となる。また、処理結果の記憶に必要な記憶容量を小さくすることができる。
【００１５】
また、本発明に係るデータベース検索装置における第３の特徴は、第１の特徴または第２の特徴を有するデータベース検索装置であって、前記演算処理の対象データを限定する前記部分検索条件が、当該演算処理を含む前記部分検索条件以外の他の部分検索条件の処理の対象データを限定しない場合は、当該演算処理を行った後に、当該演算処理の対象データを限定する当該部分検索条件の処理結果のうち前記検索条件に対する最終出力項目以外の処理結果を前記一時データ記憶手段から削除する一時データ削除手段を更に備えることである。
【００１６】
また、本発明に係るデータベース検索方法における第３の特徴は、第１の特徴または第２の特徴を有するデータベース検索方法であって、前記演算処理の対象データを限定する前記部分検索条件が、当該演算処理を含む前記部分検索条件以外の他の部分検索条件の処理の対象データを限定しない場合は、当該演算処理を行った後に、当該演算処理の対象データを限定する当該部分検索条件の処理結果のうち前記検索条件に対する最終出力項目以外の処理結果を前記一時データ記憶ステップにて記憶される処理結果から削除する一時データ削除ステップを更に備えることである。
【００１７】
これらのデータベース検索装置及びデータベース検索方法の構成によると、部分検索条件の処理結果の一部が削除されることにより、検索処理において記憶される部分検索条件の処理結果のデータ量が減少するため、処理結果の記憶に必要な記憶容量を小さくすることができる。
【００１８】
また、本発明に係るデータベース検索装置における第４の特徴は、第１の特徴乃至第３の特徴のいずれか一つの特徴を有するデータベース検索装置であって、前記演算処理の少なくとも一部の計算が、既に行われた計算と同じ計算である場合は、当該同じ計算を行わず、当該既に行われた計算の結果を当該計算の結果とする重複処理防止手段を更に備えることである。
【００１９】
また、本発明に係るデータベース検索方法における第４の特徴は、第１の特徴乃至第３の特徴のいずれか一つの特徴を有するデータベース検索方法であって、前記演算処理の少なくとも一部の計算が、既に行われた計算と同じ計算である場合は、当該同じ計算を行わず、当該既に行われた計算の結果を当該計算の結果とする重複処理防止ステップを更に備えることである。
【００２０】
これらのデータベース検索装置及びデータベース検索方法の構成によると、演算処理において重複した計算がなくなるため、演算処理で行う計算回数を減少することができ、演算処理を含む検索を効率的に行うことが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を実施するための最良の形態について図面を参照しつつ説明する。まず、本実施形態において検索対象となる、製鉄所の品質情報を管理するデータベースについて説明する。
【００２２】
図１は、製鉄所において溶鋼を作る転炉、溶鋼を連続的に鋳造する連鋳機、所望の厚さの鋼板に加工する圧延の３工程での操業により発生するデータを管理するデータベースの構造を示す。転炉工程では転炉の１回分の処理に対応するチャージという単位で管理されており、連鋳工程では溶鋼が鋳固められ切断されてできる鋼片をスラブという単位で扱い、また、圧延工程では加工された鋼板として巻き取られた状態のコイルが製品の単位となる。そのため、各テーブルにはチャージ番号、スラブ番号、コイル番号が項目（テーブルの列）として存在し、各レコード（テーブルの行）毎にユニークな値を持つキーとなっている。連鋳スラブのテーブルには各スラブがどのチャージから製造されたかが分かるようにチャージ番号が項目としてあり、同じように圧延コイルテーブルにもコイルの元のスラブ番号が項目として含まれている。これらのキーにより、製造の工程に沿って製品の履歴がトレースでき、テーブル間のデータを関連付けることができる。例えば、コイル番号ＣＯ００２のコイル（厚さ２５、幅２０８０）は、スラブ番号ＳＬ００２のスラブ（厚さ１８０、幅１６００）から圧延されたもので、チャージ番号ＣＨ００１に示す温度、成分等（出鋼温度１５４０、Ｃ成分１０７）で処理されたものであることがわかる。
【００２３】
このデータベースでは、テーブル形式で管理できるデータ以外に、各工程での操業中の計測信号などの時系列データが管理されている。このようなデータは、製品に品質上の問題が発生した場合に、その原因を究明するための貴重な情報となる。図１では、チャージ、スラブ、コイルに付随する時系列データを示すポインタをテーブル内の項目としているが、簡単な方法としては個々の計測データはファイルとして保管し、そのファイル名をテーブル内に記録しておく方法などがある。また、時系列データのファイルにチャージ番号、スラブ番号、コイル番号のファイル名をつけて、テーブル内の項目として持たないものでもよい。
【００２４】
このようなデータベースに対し、ユーザからなされる問い合わせとして、次に示すように、問い合わせ例（Ｑ１）、問い合わせ例（Ｑ２）のようなものがある。
【００２５】
問い合わせ例（Ｑ１）「転炉でのＣ（炭素）成分が１１０より大きい製品１と、それよりＣ成分が大きくて連鋳での湯面変動が注意すべき状態であった製品２との組み合わせで、製品２の方が圧延での平坦度が悪かった製品１と製品２との組み合わせを全て探し、そのチャージ番号とコイル番号を提示してほしい。」
【００２６】
問い合わせ例（Ｑ２）「転炉での溶鋼のＣ（炭素）成分が１１０より大きい製品で、Ｃ成分が１１０より小さい他の製品より圧延での平坦度が半分以下であったものを探し、そのスラブ番号とコイル番号を提示してほしい。」
【００２７】
このような問い合わせは、転炉での炭素成分や連鋳機での湯面変動が、圧延工程での板の平坦度にどのような影響を与えるかを検討する際に、ユーザから出される可能性がある。
【００２８】
第1実施形態では、本発明のデータベース検索装置の構成と、問い合わせ例（Ｑ１）に対して本発明のデータベース検索装置が行う具体的な検索処理及び、本発明のデータベース検索方法について説明する。
【００２９】
（第1実施形態）
図２は、本発明のデータベース検索装置１及びデータベースシステムの構成を示す図である。図２において、データベース検索装置１とその検索元となるデータベースシステム２とは別構成となっているが、データベース検索装置１にデータベースシステム２を含む構成とすることも可能である。
【００３０】
まず、本発明のデータベース検索装置１による検索対象となるデータベースシステム２について説明する。データベースシステム２には上述したような製鉄所で発生するデータがデータベース５０として記憶されている。データベースシステム２はデータ構造定義部５４、データ登録部５５、テーブルデータ記憶部５２及び任意データ記憶部５３から構成され、データベース構造となるテーブル構造の定義及び実際のデータの記録、管理を行う。尚、本発明のデータベース検索装置の検索対象となるデータベースは、本実施形態で説明するデータベース構造のものに限らず、さまざまな構造のデータベースに対する検索が可能である。
【００３１】
テーブル構造定義部５４では、図１で示したような各テーブルがどのような項目から形成されているかの情報を入力する部分である。その情報はデータベース５０のスキーマ情報（構造情報）としてテーブルデータ記憶部５２に記憶される。例えば、図１のようなテーブル構造に関しては、図３のような情報が記憶される。図３では、作成する３個のテーブル「転炉チャージ」、「連鋳スラブ」、「圧延コイル」にそれぞれどのようなデータ項目が記録されるかが管理されている。例えば、転炉チャージテーブルの最初の列は「チャージ番号」という項目であり、その型はＡＳＣＩＩ（文字）で５桁のデータで、さらに本項目はテーブル内でユニークな値を持つＫＥＹ（キー）であることが表されている。同様に、２列目の項目は「出鋼温度」という項目で、４桁のＩＮＴ（整数）型である。また、連鋳スラブテーブルにある「チャージ番号」、圧延コイルテーブルにある「スラブ番号」は他のテーブルのキー項目に対応することが示されている。したがって、この項目を使って他のテーブルと関連付けることができる。各テーブルの最後の項目である「温度計測データ」、「湯面計測データ」、「板厚計測データ」は、通常データベースで扱われる単純な数値、文字等のデータとは異なり、対象の時間的変動を継続的に計測して得られた結果を示す時系列データである。実際のデータはファイルとして任意データ記憶部５３に別途保管されており、ＦＩＬＥ名が３２桁でテーブルに記録されることが示されている。このように定義されたデータベース構造に基づきデータ登録部５５はテーブル内のレコード（テーブルの列）の追加、修正、削除などを行い、図１のような実際のデータがテーブルデータ記憶部５２及び任意データ記憶部５３に記憶され、データベース５０となる。このようなデータベース５０の構造定義やデータ管理は上述した方法で行う場合に限られず、リレーショナルデータベースなどのデータベース管理システムにおいて通常準備されている機能を使うこともできる。
【００３２】
次に、本発明のデータベース検索装置１について説明する。本実施形態に係るデータベース検索装置１の作動により、本発明に係るデータベース検索方法が実施される。本発明のデータベース検索装置１は、記憶装置１０と、中央処理装置２０とから構成され、入力装置３により外部から問い合わせのためのデータを入力し、出力装置５によって外部へ検索結果のデータを出力することが可能である。また、検索対象となるデータベースシステム２とのデータ通信が可能であり、データベース構造定義部５４で定義されたテーブル構造に基づいて検索が可能である。記憶装置１０は、演算関数情報を記憶する演算関数記憶部１１（演算関数記憶手段）と、検索条件を記憶する検索条件記憶部１２（検索条件記憶手段）と、検索処理において発生する一時データを記憶する一時データ記憶部１３（一時データ記憶手段）とからなる。また、中央処理装置２０は、次に示す処理を行う複数の部分からなる。検索条件分割部２２（検索条件分割手段）は入力された検索条件を複数に分割する処理を行う。処理順序決定部２４（処理順序決定手段）と、第１処理手順決定部２５（第１処理手順決定手段）と、第２処理手順決定部２６（第２処理手順決定手段）とからなる処理手順最適化部２３（処理手順最適化手段）は分割した検索条件を処理する手順を決定し、検索処理実行部２７（検索処理実行手段）によりその処理手順に従って検索処理が実行される。限定記録部２９（限定記録手段）と、一時データ削除部３０（一時データ削除手段）と、重複処理防止部３１（重複処理防止手段）とは、検索処理実行部２７による検索処理を効率的に行うために、一時データ記憶部１３に記憶させるデータの限定、不要な一時データの削除、重複した演算を防止する処理をそれぞれ行う。
【００３３】
次に、演算関数記憶部１１により行われる演算関数記憶ステップを説明する。以下、同様にしてデータベース検索装置１の各部により行われる本発明のデータベース検索方法の各ステップを説明する。
【００３４】
＜演算関数記憶ステップ＞
演算関数記憶部１１には、データベース５０に管理しているデータに対して実施する演算処理を行うための演算関数情報が記憶される。ユーザは検索条件の処理に必要な演算処理を行うための関数をプログラムとして作成する。第１実施形態においては上述した問い合わせ例（Ｑ１）の検索処理に必要な、連鋳での湯面計測データを解析して湯面変動が要注意かどうかを出力する「湯面変動（）」という関数と、板厚計測データを解析してコイルの平坦度を評価した値を出力する「平坦度（）」という関数をプログラムとして作成する。そして、それらの情報を入力装置３を用いて入力し、演算関数記憶部１１に記憶させることができる。尚、使用頻度の高い演算処理等は予め演算関数記憶部１１に記憶させておき、ユーザが入力することなくそのプログラムを使用することも可能である。
【００３５】
演算関数記憶部１１には、図４のような形式で演算関数情報が記憶される。図４には、「湯面変動」という名称で登録された演算は、データベース５０における「連鋳スラブテーブル」の「湯面計測データ」というデータ項目に対して施される処理であることが示されている。また、その出力結果は１桁のＩＮＴ（整数）型であり、例えば結果が０の時は正常なデータで、１の時は要注意な信号だという評価を出力する。さらに、その演算の実体がコンピュータ内では「analisys()」という関数で用意されていることも分かる。演算処理「平坦度（）」に関しても同様である。第１実施形態では、演算処理に用いる関数が引数を持たない例を示したが、演算を実行する際のパラメータを引数で与えるような関数を用意し、演算関数記憶部１１の中に引数の定義も記憶するようにしてもよい。また、データベース検索装置１にデータベースシステム２を含める場合は、データベースシステム２として、データに対する関数も同時に管理するタイプのオブジェクト指向型データベースシステムを使用し、データベースシステム２で演算関数情報を管理することも可能である。
【００３６】
次に、上述した問い合わせ例（Ｑ１）に対して、本発明のデータベース検索装置１が行う具体的な検索処理について説明する。
【００３７】
＜検索条件記憶ステップ＞
問い合わせ例（Ｑ１）のような問い合わせを行う場合、ユーザは、リレーショナルデータベースで用いられる問い合わせ言語「ＳＱＬ」に似た形の式で、下記の数1で示すような問い合わせ式（Ｑ１）（検索条件）を入力し、検索条件記憶部１２に検索条件を記憶させることにより、所望の条件のデータを検索することができる。
【００３８】
[数１]
SELECT ch1.チャージ番号,co1.コイル番号, ch2.チャージ番号,co2.コイル番号,
FROM 転炉チャージ ch1 ch2,連鋳スラブs1 s2,圧延コイルco1 co2
WHERE co1.スラブ番号=s1.スラブ番号  AND  s1.チャージ番号=ch1.チャージ番号
AND  co2.スラブ番号=s2.スラブ番号  AND  s2.チャージ番号=ch2.チャージ番号
AND  ch1.Ｃ成分>110  AND  ch1.Ｃ成分< ch2.Ｃ成分
AND  s2.湯面変動（）=1  AND  co1.平坦度（）>co2.平坦度（）
【００３９】
数１において「ＦＲＯＭ」から始まる部分はユーザが検索条件の中で使う変数を定義しており、変数であるｃｈ１、ｃｈ２は転炉チャージテーブルの中の１レコード（テーブルの１行）を表し、同様にｓ１、ｓ２及びｃｏ１、ｃｏ２は、それぞれ、連鋳スラブテーブルと圧延コイルテーブル中の１レコードを表す。「ＷＨＥＲＥ」以降にＡＮＤ演算子によってつながる部分は、取出したいデータが満たす条件を示している。「ＷＨＥＲＥ」以降の１行目はｃｈ１、ｓ１、ｃｏ１が同じ製品であること、即ちコイルｃｏ１は、チャージｃｈ１、スラブｓ１を経て製造された製品であることを示す。同様に、２行目はコイルｃｏ２はチャージｃｈ２、スラブｓ２を経て製造された製品であることを示す。３行目は、コイルｃｏ１のＣ成分が１１０より大きく、コイルｃｏ２がコイルｃｏ１より大きなＣ成分であるという条件を示している。最後の行は、板厚計測信号からの平坦度評価の結果が、コイルｃｏ１よりｃｏ２のほうが悪かったと評価され、かつｃｏ２の連鋳での湯面変動が１（要注意）であるという条件を示している。
【００４０】
また、「ＳＥＬＥＣＴ」以降の部分は検索条件に合致したレコードのうち、最終結果としてユーザが出力してほしい項目（最終出力項目）であるテーブルの列を選択しており、ここでは、条件を満たす組み合わせである製品１と製品２のチャージ番号とコイル番号を最終出力項目として出力することをデータベース検索装置１に要求している。
【００４１】
図５は、数１に示す問い合わせ式が検索条件記憶部１２に記憶された後の検索処理手順について説明したフローチャートである。問い合わせ式が外部の入力装置３からの入力により検索条件記憶部１２に記憶されると、検索条件分割部２２において、問い合わせ式が複数の部分検索条件式（部分検索条件）に分割される（ステップＳ１、以下Ｓ１と記す。その他のステップについても同様）。処理手順最適化部２３は処理順序決定部２４（処理順序決定手段）により、分割された複数の部分検索条件式の処理順序を決定し（Ｓ２）、決定された順序で検索処理実行部２７により部分検索条件式の処理が実行される（Ｓ３〜Ｓ８）。その際、第１処理手順決定部２５（第１処理手順決定手段）と、第２処理手順決定部２６（第２処理手順決定手段）により演算処理を含む部分検索条件式の処理手順が別途決定され、決定された手順に従って検索処理実行部２７により処理される。また、限定記録部２９、一時データ削除部３０、重複処理防止部３１により検索処理方法が適宜変更され検索処理をより効率よく実行することが可能となる。第1実施形態の検索処理で行われる分割後の問い合わせ式を数２に示す。また、最終的な問い合わせ式の検索処理手順を数３に示す。数２及び数３の内容については該当する箇所で説明する。
【００４２】
[数２]
Ａ= SELECT ch1,s1,co1-1,ch2,s2-1,co2-1,
FROM転炉チャージ ch1 ch2,連鋳スラブs1 s2-1,圧延コイルco1-1 co2-1
WHERE co1-1.スラブ番号=s1.スラブ番号 AND s1.チャージ番号=ch1.チャージ番号
AND co2-1.スラブ番号=s2-1.スラブ番号 AND s2-1.チャージ番号=ch2.チャージ番号AND ch1.Ｃ成分>110 AND ch1.Ｃ成分< ch2.Ｃ成分
Ｂ= SELECT s2-2.スラブ番号,f3.出力
FROM連鋳スラブs2-2,湯面変動 f3
WHERE s2-2.湯面変動（）→f3
AND f3.出力=1
Ｃ= SELECT co1-2.コイル番号,f1.出力
FROM圧延コイルco1-2,平坦度 f1
WHERE co1-2.平坦度（）→f1
Ｄ= SELECT co2-2.コイル番号,f2.出力
FROM圧延コイルco2-2,平坦度 f2
WHERE co2-2.平坦度（）→f2
結果= 
SELECT ra.ch1.チャージ番号,ra.co1-1.コイル番号,
ra.ch2.チャージ番号,ra.co2-1.コイル番号
FROM Ａ ra, Ｂ rb, Ｃ rc, Ｄ rd
WHERE ra.s1-1.スラブ番号=rb.s1-2.スラブ番号 
AND ra.co1-1.コイル番号= rc.co1-2.コイル番号
AND ra.co2-1.コイル番号= rd.co2-2.コイル番号
AND rc.f1.出力> rd.f2.出力
【００４３】
[数３]
Ａ’ = SELECT ch1.チャージ番号,co1-1.コイル番号,
ch2.チャージ番号,co2-1.コイル番号,s2-1.スラブ番号
FROM 転炉チャージ ch1 ch2,連鋳スラブs1 s2-1,圧延コイルco1-1 co2-1
WHERE co1-1.スラブ番号=s1.スラブ番号 AND s1.チャージ番号=ch1.チャージ番号
AND co2-1.スラブ番号=s2-1.スラブ番号 AND s2-1.チャージ番号=ch2.チャージ番号AND ch1.Ｃ成分>110 AND ch1.Ｃ成分< ch2.Ｃ成分
Ｂ’ = SELECT s2-2.スラブ番号,f3.出力
FROM連鋳スラブ∩（Ａ’.s2-1.スラブ番号）s2-2,湯面変動 f3
WHERE s2-2.湯面変動（）⇒f3
AND f3.出力=1
Ａ”= SELECT ta.ch1.チャージ番号,ta.co1-1.コイル番号,
ta.ch2.チャージ番号,taco2-1.コイル番号
FROM Ａ’ ta,Ｂ’ tb
WHERE ta.s2-1.スラブ番号=tb.s2-2.スラブ番号
DELETE Ａ’
DELETE Ｂ’
Ｃ’= SELECT co1-2.コイル番号,f1.出力
FROM圧延コイル∩（Ａ”.ta.co1-1.コイル番号）co1-2,平坦度 f1
WHERE co1-2.平坦度（）⇒f1
Ｄ’= SELECT co2-2.コイル番号,f2.出力
FROM圧延コイル∩（Ａ”.ta.co2-1.コイル番号）co2-2,平坦度 f2
WHERE co2-2.平坦度（）⇒f2
結果= 
SELECT ra.ch1.チャージ番号,ra.co1-1.コイル番号,
ra.ch2.チャージ番号,ra.co2-1.コイル番号
FROM Ａ” ra, Ｃ’ rc, Ｄ’ rd
WHERE ra.ta.co1-1.コイル番号= rc.co1-2.コイル番号
AND ra.ta.co2-1.コイル番号= rd.co2-2.コイル番号
AND rc.f1.出力> rd.f2.出力
【００４４】
図６に、数１に示す問い合わせ式をグラフ形式で表現したグラフ化条件式を示す。以下で説明するように、グラフ化条件式には問い合わせ式に含まれている全ての条件が含まれており、数１に示す問い合わせ式と等価である。したがって、グラフ化条件式を満たす製品１と製品２の組み合わせが検索結果となる。
【００４５】
グラフ化条件式の実線矩形で示す部分はテーブルを表す。Ｒ１、Ｒ２は図１で示した転炉チャージテーブルであり、実際にデータベース５０に記憶されているテーブルは一つであるが、仮想的に同一の転炉チャージテーブルが２個あり、それぞれ変数ｃｈ１、ｃｈ２に対応して存在するように示してある。同様に、Ｒ３、Ｒ４は連鋳スラブテーブル、Ｒ５、Ｒ６は圧延コイルテーブルを示している。ここで、圧延コイルテーブルのデータに対して演算処理を施して得られる処理結果もＲ７、Ｒ８として仮想的にテーブルとして扱っている。
【００４６】
これらのテーブルからでる実線は、検索されるデータが満たすべき条件があることを示しており、対応する条件が実線に付随する破線の円の中に記入されている。実線が２個のテーブルをつないでいる場合には、両テーブルのデータ間で満たすべき条件となる。
一方、二重線の矢印は両端のテーブルが演算処理の入力と出力の関係にあることを示し、矢印の始端側のテーブルが入力で、矢印の終端側のテーブルが出力となる。また、破線の矢印から出ている破線の矩形は、最終結果としてユーザが出力してほしい項目である。
【００４７】
＜検索条件分割ステップ（Ｓ１）＞
まず、検索条件分割部２２により行われる、前述した検索条件入力ステップにて入力された問い合わせ式を部分検索条件式に分割する手順（図５におけるＳ１）を説明する。図７に、問い合わせ式を部分検索条件式に分割する手順を説明したフローチャートを示す。また、図８に、図７に示すフローチャートに従って問い合わせ式を部分検索条件式に分割した後のグラフ化条件式を示す。
【００４８】
まず、演算処理の入力となっているテーブルを全て仮想的に同一の２個のテーブルに分ける（Ｓ１０１）。図８に示すように、演算処理の入力となるＲ４、Ｒ５、Ｒ６の３テーブルがそれぞれ２個のテーブルに分けられ、その結果、Ｒ４はＲ４−１とＲ４−２とに、Ｒ５はＲ５−１とＲ５−２とに、Ｒ６はＲ６−１とＲ６−２とに分けられる。
【００４９】
次に、各演算処理を含む単一の条件式を１個の部分検索条件式とする（Ｓ１０２）。ここで、部分検索条件式が複数の演算処理を含む場合は各演算処理をそれぞれ一つの部分検索条件式として取り扱う。これより、問い合わせ式内の単一の条件式である「ｓ２．湯面変動（）＝１」と「ｃｏ１．平坦度（）＞ｃｏ２．平坦度（）」に対応する部分が部分検索条件式に分割される。そして、「ｃｏ１．平坦度（）＞ｃｏ２．平坦度（）」の部分検索条件式は２つの演算処理を含む条件式であるため、それぞれの演算処理が一つの部分検索条件式として取り扱われる。これより、図８においてＢ、Ｃ、Ｄで示す部分検索条件式が分割して形成される。本実施形態においては、各演算処理をそれぞれ一つの部分検索条件式としているが、複数の演算処理を含む単一の条件式を１個の部分検索条件式とすることも可能である。
【００５０】
次に、演算処理を含む部分検索条件式を除いた条件式において、グラフ化条件式の中でテーブルが実線で連結されている範囲を個々に部分検索条件式とする（Ｓ１０３）。これは、問い合わせ式において、演算処理を含まない各条件式のうち、条件式の処理対象となるテーブルの少なくとも１個が他の条件式と同じである条件式の集合を１個の部分検索条件式とすることと同じである。したがって、図８においてＡで示す部分が１個の部分検索条件式となる。
【００５１】
最後に、Ｓ１０１において仮想的に分けたテーブル同士（Ｒ４−１とＲ４−２等）は各テーブルのキー項目が等しくなければならないという条件が付け加えられる（Ｓ１０４）。この条件を加えることにより、分割された２つの部分検索条件式に示す条件を両方とも満たすデータのみが最終的に出力されるため、図６と図８とに示すグラフ化条件式は互いに等価であり、両方から同じ検索結果を得られるものとなる。
【００５２】
以上により、数１に示す問い合わせ式は問い合わせ式の一部の条件である部分検索条件式であって、演算処理を含む部分検索条件式Ｂ、Ｃ、Ｄと、演算処理を含まない部分検索条件式Ａとに分割される。分割された問い合わせ式は数２のようになる。ここで、数２で「→」で表されるのは、演算処理の処理結果が一時データ記憶部１３に記憶されることを表す。また、「結果＝」以降にあるｒａ、ｒｂ、ｒｃ、ｒｄはそれぞれ部分検索条件式ＡＢ、Ｃ、Ｄの処理結果であることを示している。
【００５３】
＜処理順序決定ステップ（Ｓ２）＞
次に、処理順序決定部２４により行われる、分割した複数の部分検索条件式の処理順序を決定する手順（図５におけるＳ２）を説明する。この処理順序決定ステップ（Ｓ２）は処理手順最適化ステップの一つである。図９に部分検索条件式の処理順序を決定する手順を説明したフローチャートを示す。
【００５４】
まず、図９のフローチャートに示す最初のループである（Ｓ２０１〜Ｓ２０３）の部分では、演算処理を含む部分検索条件式のうち、演算処理の入力側テーブルが他の部分検索条件式と結合関係にないものに関しては、先に演算処理を行うように処理手順を決定する。ここで、結合関係とは、ある部分検索条件式に含まれるテーブルと他の部分検索条件式に含まれるテーブルとの間で満たすべき条件（結合条件）があることをいう。また、結合するとは、この結合条件によって部分検索条件式の処理結果を絞り込むことを言う。このように処理手順を決定するのは、演算処理の入力側テーブルと結合関係にある他の部分検索条件式がない場合は、演算処理の対象となる入力側テーブルのデータを絞り込むことができず、入力側テーブルのデータ全てに対して演算処理を実行せざるを得ないためである。図８に示すグラフ化条件式に示すように、本実施形態における問い合わせの場合は、そのような演算処理は存在しないため、Ｓ２０３において処理手順が決定される部分検索条件式はない。
【００５５】
次に、図９のフローチャートに示すＳ２０４〜Ｓ２０９の部分では、処理手順が未決定で演算処理を含まない部分検索条件式の中から、演算処理の入力側テーブルと結合関係にある部分検索条件式を探し、該当する部分検索条件式は、演算処理を含む部分検索条件式よりも先に処理するように処理手順を決定する。このような処理手順で部分検索条件式の処理がされることにより、演算処理を行う際に、先に行われた部分検索条件式の処理結果が一時データ記憶部１３に記憶されているため、この処理結果によって演算処理の対象データを限定することが可能となる。第１実施形態においては、図８に示すように、部分検索条件式Ｂ、Ｃ、Ｄに含まれる演算処理の入力側テーブルは全て部分検索条件式Ａと結合関係にあるため部分検索条件式Ａを最初に処理し、それ以降にＢ、Ｃ，Ｄを処理するように処理順序が決定される。このようにして、演算処理を含む部分検索条件式の処理順序が全て決定される。
【００５６】
最後に、図９のフローチャートに示すＳ２１０のステップで、処理手順が未決定である部分検索条件式の処理を全て最後の結合処理の際に一括して行うように決定される。検索条件式に含まれる演算処理が全て完了した後は、演算処理結果の出力テーブルが一時データ記憶部１３に記憶されるため、それらの出力テーブルを用いることで演算処理のない通常のデータベースの検索処理と同様の処理を行うことができ、検索処理の効率が悪くなることはないからである。以上により、全ての部分検索条件式の処理順序が決定する。
【００５７】
次に、処理順序が決定した部分検索条件式の処理（図５におけるＳ３〜Ｓ７）について説明する。ここでは、処理順序決定部２４によって決定された順序で検索処理実行部２７によって各部分検索条件式の処理が行われる。その際、限定記録部２９及び一時データ削除部３０により各部分検索条件式の処理における出力項目が決定される（Ｓ４）。その後、第１処理手順決定部２５及び第２処理手順決定部２６により各部分検索条件式に対してそれぞれ行う処理手順が決定され、決定された処理手順に従って検索処理実行部２７により検索処理が実行される（Ｓ５：検索処理実行ステップ）。このとき、部分検索条件式の処理結果は一時データ記憶部１３に記憶される（一時データ記憶ステップ）。以上の処理を全ての部分検索条件式に行う（Ｓ６、Ｓ７）。ここでは処理対象の部分検索条件式を部分検索条件式Ｘとして説明する。
【００５８】
＜限定記録ステップ（Ｓ４（Ｓ４０１、Ｓ４０２））＞
まず、限定記録部２９及び一時データ削除部３０により、部分検索条件式Ｘの処理において一時データ記憶部に記憶させる出力項目を決定する手順（図５におけるＳ４）を説明する。図１０に、部分検索条件式の処理による出力項目を決定する手順を説明したフローチャートを示す。
【００５９】
図１０のフローチャートに示すＳ４０１、Ｓ４０２の部分では、限定記録部２９により部分検索条件式Ｘの処理による出力項目は、他の部分検索条件式と結合するために必要な項目とユーザが要求する最終出力項目とに限定される。これにより、検索処理実行部２７は限定された出力項目のみ一時データ記憶部１３に記憶させるように検索処理を行う。このように、出力項目を限定することで、検索処理実行部２７の検索処理により一時データ記憶部１３に記憶されるデータ量が減少する。その結果、データを記憶させる処理の効率が向上し、検索を効率的に行うことが可能となる。また、一時データ記憶部で記憶しなければならないデータ量を小さくすることができるため、一時データ記憶部に必要な記憶容量を小さくすることができる。
【００６０】
第１実施形態では、図８に示すように、部分検索条件式Ａが部分検索条件式Ｂ、Ｃ、Ｄとそれぞれ結合するために必要な項目としては、「ｓ２−１．スラブ番号」と「ｃｏ１−１．コイル番号」と「ｃｏ２−１．コイル番号」とがあり、また、最終出力項目としては、「ｃｈ１．チャージ番号」と「ｃｈ２．チャージ番号」と「ｃｏ１−１．コイル番号」と「ｃｏ２−１．コイル番号」とがある。結果として、最終的な処理手順である数３に示すように、部分検索条件式Ａの出力項目（式Ａ’のＳＥＬＥＣＴ以下）は、「ｓ２−１．スラブ番号」と「ｃｏ１−１．コイル番号」と「ｃｏ２−１．コイル番号」と「ｃｈ１．チャージ番号」と「ｃｈ２．チャージ番号」とになる。
【００６１】
＜一時データ削除ステップ（Ｓ４（Ｓ４０３〜Ｓ４０７））＞
次に、フローチャートに示すＳ４０３〜Ｓ４０７の部分では、部分検索条件式Ｘに演算処理が含まれる場合に更に追加する出力項目を決定する。このステップは、検索処理実行（図５におけるＳ５）の際に行われる一時データの削除を可能とするために一時データ削除部３０により行われるものである。検索処理実行部２７は限定記憶部２９によって決定された出力項目に加えて、このステップにて一時データ削除部３０により決定された出力項目も一時データ記憶部１３に記憶させるように検索処理を行う。具体的には、処理対象となっている部分検索条件式Ｘに演算処理が含まれ、かつ含まれる演算処理の入力側テーブルと結合関係にある処理済の他の部分検索条件式Ｙが存在する場合において（Ｓ４０３、Ｓ４０４）、部分検索条件式Ｙが他の部分検索条件式と結合関係にない場合は（Ｓ４０６）、部分検索条件式Ｙの処理結果のうち最終出力項目となるものを部分検索条件式Ｘの出力項目に追加する（Ｓ４０７）。このように出力項目を決定することにより、一時データ記憶部１３に記憶されている部分検索条件式Ｙの処理結果を全て削除しても、その最終出力項目だけは部分検索条件式Ｘの処理における出力として一時データ記憶部１３に残すことが可能となる。つまり、結果として最終出力項目以外の部分検索条件式Ｙの処理結果を一時データ記憶部１３から削除することが可能となる。
【００６２】
第１実施形態では、演算処理を含む部分検索条件式Ｂ、Ｃ、Ｄの処理を行う際に、演算処理の入力側テーブルと結合関係にある処理済の部分検索条件式Ａは、結合関係にある他の部分検索条件式を有するため、上述したような最終出力項目を追加する処理は行われない。
【００６３】
＜検索処理実行ステップ（Ｓ５）＞
次に、検索処理実行部２７により行われる、部分検索条件式Ｘの処理を実行する手順について説明する（図５におけるＳ５）。図１１に部分検索条件式の検索処理を実行する手順を説明したフローチャートを示す。検索処理実行部２７は、処理順序決定ステップにて処理順序決定部２４によって決定された部分検索条件式の処理順序に従って、検索処理を行う。このとき、演算処理を含む部分検索条件式の処理においては、以下に示すＳ５０３〜Ｓ５０６にて第１処理手順決定部２５及び第２処理手順決定部２６により決定される手順に従って、演算関数記憶部１１に記憶された演算関数情報を用いて検索処理を実行する。
【００６４】
部分検索条件式Ｘに演算処理が含まれない場合は、処理の対象となるテーブル内の全てのデータに対する検索処理を実行し（Ｓ５０１、Ｓ５０２）、限定記憶部２９により決定した出力項目のみが一時データ記憶部１３に記憶される。
【００６５】
第１実施形態では、まず、演算処理を含まない部分検索条件式である部分検索条件式Ａが処理され、「ｓ２−１．スラブ番号」と「ｃｏ１−１．コイル番号」と「ｃｏ２−１．コイル番号」と「ｃｈ１．チャージ番号」と「ｃｈ２．チャージ番号」とが処理結果として出力され、一時データ記憶部１３に記憶される。
【００６６】
次に、図１１のフローチャートに示すＳ５０３〜Ｓ５０７の部分では演算処理を含む部分検索条件式の処理が行われる。
【００６７】
＜第１処理手順決定ステップ及び第２処理手順決定ステップ（Ｓ５０３〜Ｓ５０６）＞
この第１処理手順決定ステップ及び第２処理手順決定ステップはそれぞれ処理手順最適化ステップの一つである。まず、第1処理手順決定部２５は、部分検索条件式Ｘに含まれる演算処理の入力側テーブルと結合関係にある処理済みの部分検索条件式Ｙの有無を確認する（Ｓ５０３：第１処理手順決定ステップ）。部分検索条件式Ｘと結合関係にある部分検索条件式Ｙが存在しない場合は、部分検索条件式Ｘに含まれる演算処理の入力側テーブルに含まれる全てのデータに対して演算処理を行うように処理手順を決定する（Ｓ５０６：第１処理手順決定ステップ）。一方、部分検索条件式Ｙが存在する場合は、部分検索条件式Ｙの処理結果に基づいて絞り込んだ対象データに対して演算処理を行うように処理手順を決定する（Ｓ５０４：第１処理手順決定ステップ）。ここで、処理結果に基づいて絞り込むとは、部分検索条件式Ｘの入力側テーブル内のデータのうち、部分検索条件式Ｙが示す条件を満たすものを抽出することである。この場合、部分検索条件式Ｘに含まれる演算処理の入力側テーブル内のレコードのうち、部分検索条件式Ｙの処理結果と結合条件を満たすもののみが演算処理の対象データとされる。
【００６８】
ただし、部分検索条件式Ｙが存在する場合においては、第２処理手順決定部２６により、部分検索条件式Ｙと結合関係にある処理済みの部分検索条件式Ｚの有無が更に確認され（Ｓ５０５：第２処理手順決定ステップ）、部分検索条件式Ｚが存在する場合は上述した第１処理手順決定部による処理手順の決定はなされない。第２処理手順決定手段は、部分検索条件式Ｙと結合関係にある他の処理済みの部分検索条件式Ｚが存在すれば、それらの処理結果を全て部分検索条件式Ｙの処理結果に結合して、結合した処理結果を一時データ記憶部１３に出力し、その後、出力された処理結果に基づいて絞り込まれた対象データに対して、演算処理を行うように処理手順を決定する。その際、一時データ削除部３０により結合前の処理結果は一時データ記憶部１３から削除する。
【００６９】
このように処理手順を決定することで、部分検索条件式Ｙの処理結果により演算処理の対象データを絞りこむだけでなく、部分検索条件式Ｚの処理結果を用いて更に対象データを減少させることができるため、Ｓ５０７における演算処理に要する処理時間を短縮することができる。
【００７０】
検索処理実行部２７は演算関数記憶部１１に記憶された演算関数情報を用いて、第１処理手順決定部２５及び第２処理手順決定部２６により決定された処理手順で演算処理を含む部分検索条件式Ｘの処理を実行する。
【００７１】
＜一時データ削除ステップ（Ｓ５０８〜Ｓ５１０）＞
図１１のフローチャートに示すＳ５０８〜Ｓ５１０のステップでは、演算処理の対象となったデータで不要なものを一時データ記憶部１３から削除する。まず、一時データ削除部３０は、演算処理の対象となったデータが処理結果である一時データかどうかを確認し、一時データでない場合はデータの削除は行わない（Ｓ５０８）。演算対象データが一時データであり、部分検索条件式Ｘに含まれる演算処理の入力側テーブルと結合関係にある部分検索条件式Ｙが他の部分検索条件式と結合関係にない場合は、演算処理を行った後に、一時データ記憶部１３から演算処理の対象となった処理結果を削除する（Ｓ５０９、Ｓ５１０）。このとき、削除する処理結果に最終出力項目が含まれている場合でも、演算処理の結果としてこの最終出力項目を出力するようにＳ４０７（図１０）において決定しているため、最終出力項目が一時データ記憶部１３からなくなることはない。したがって、結果として最終出力項目以外の部分検索条件式Ｙの処理結果が一時データ記憶部１３から削除されることになる。これより、一時データ記憶部１３で同時に記憶しなければならないデータ量を小さくすることができ、一時データ記憶部に必要な記憶容量を小さくすることができる。
【００７２】
第１実施形態において、第１処理手順決定部２５により決定された処理手順では、演算処理を含まない部分検索条件式Ａを処理した後、演算処理を含む部分検索条件式Ｂ、Ｃ、Ｄの処理は部分検索条件式Ａの処理結果により絞り込まれたデータに対して行われることになり、演算処理内の計算回数は減少する。最終的な処理手順を示す数３において、式Ｂ’のＦＲＯＭ以降が「連鋳スラブ∩（Ａ’.s2-1.スラブ番号）s2-2」となっているのは、連鋳スラブテーブル内のデータのうち部分検索条件式Ａの処理結果である「s2-1.スラブ番号」の項目にキーが存在するレコードのみを選んで、連鋳スラブテーブルの部分集合となる対象に演算処理することを表している。
【００７３】
更に、部分検索条件式の処理がＢ、Ｃ、Ｄの順序で行われる場合は、第２処理手順決定部２６により決定された処理手順に従って、Ｂの処理結果に基づいてＡの処理結果を絞り込んだ後に、絞り込んだ結果に基づいてＣ及びＤの演算処理の対象となるデータを絞り込むことになる。これより、Ａの処理結果のみにより絞り込まれたデータに対してＣ及びＤの演算処理を行う場合よりも、演算対象となるデータは少なくなる。具体的には、部分検索条件式Ａの処理結果と部分検索条件式Ｂの処理結果との結合を行うことで、部分検索条件式Ａの処理結果が、部分検索条件式Ｂが示す条件を満たすデータである「製品２の中の湯面変動が要注意であったデータ」のみに限定され、限定された結果に基づいてＣ、Ｄの演算対象が限定される。したがって、部分検索条件式Ｃ、Ｄの演算対象となるデータを減少することができ、検索処理の効率を向上させることが可能となる。
【００７４】
最終的な処理手順を示す数３において、Ａ”で示される部分検索処理が追加されており、これは、部分検索条件式Ａの処理結果と部分検索条件式Ｂの処理結果との結合を先に行うことを表している。そして、式Ｃ’のＦＲＯＭ以降が「圧延コイル∩（Ａ”.ta.co1-1.コイル番号）co1-2」となっているのは、先に行われた式Ａ’の処理結果と式Ｂ’の処理結果との結合により限定された処理結果の「co1-1.コイル番号」の項目にキーが存在するレコードのみを対象に演算処理をすることを表している。また、数３におけるＤＥＬＥＴＥの部分は、一時データ削除部３０により、結合前の部分検索条件式Ａ、Ｂの処理結果が一時データ記憶部１３から削除されることを示している。
【００７５】
＜重複処理防止ステップ（Ｓ５０７）＞
ここで、図１１のフローチャートに示すＳ５０７の部分での演算処理においては、演算対象の入力テーブルに含まれる個々のデータに対して重複する計算をなくすために、重複処理防止部３１により、図１２に示すフローチャートに従って処理が行われる。ここでは、演算対象となる入力テーブルｙに含まれる１レコードに対する計算を行う際に、既に一時データ記憶部１３に記憶されている出力テーブルに同じレコードに対して計算されたデータがあるかを確認する（Ｓ５１１、Ｓ５１２）。具体的には、出力テーブル内に同じキーで既に記憶されているデータがあるかを確認する。同じキーで記憶されているデータがある場合はそのレコードに対して計算は行わず、次のレコードの計算に進む。これにより、部分検索条件式Ｘに含まれる１つの演算処理内において重複した計算をすることがなくなる。また、同じキーで記憶されているデータがない場合は、演算処理以外の他の演算処理で既に実行済みの計算であるかどうかを確認する（Ｓ５１３）。他の演算処理で既に実行済みの計算である場合は、実行済みの計算結果を用いて、演算処理の出力テーブルに結果を記憶させる（Ｓ５１５）。重複する計算が実行済みでない場合は通常の計算を行う（Ｓ５１４）。このように演算処理を行うことにより、重複した計算がなくなるため、演算処理で行う計算回数を減少することができ、演算処理を含む検索を効率的に行うことが可能となる。
【００７６】
第１実施形態においては、部分検索条件式Ｃと部分検索条件式Ｄに含まれる演算処理は同じ圧延コイルテーブルに対する「平坦度（）」の計算である。部分検索条件式Ｃの処理の後に部分検索条件式Ｄを処理する場合においては、部分検索条件式Ｄに含まれる演算処理内の計算の一部は、既に行われた部分検索条件式Ｃに含まれる演算処理内の計算と同じ計算となる。したがって、部分検索条件式Ｄの処理における計算の一部については、既に行われた計算の結果が用いられる。また、部分検索条件式Ｃ、部分検索条件式Ｄそれぞれの演算処理内においても重複した計算は抑制されることになる。最終的な処理手順を示す数３において式Ｃ”、Ｄ”の平坦度（）の演算部分の「⇒」は重複処理防止部によって重複する計算をすることなく演算処理を行うことを示している。
【００７７】
＜検索処理実行ステップ（Ｓ８）＞
以上、全ての部分検索条件式の処理が完了した後、検索処理実行部２７は、一時データ記憶部１３に記憶されている部分検索条件式の処理結果を結合し、問い合わせに対する検索結果である最終出力項目を出力装置５に出力する（図５におけるＳ８）。第１実施形態においては、問い合わせ例（Ｑ１）で指定された条件を満たす製品１のチャージ番号、コイル番号と製品２のチャージ番号、コイル番号との組み合わせが出力される。
【００７８】
この処理手順により行われる検索を、図１３に示す簡略化したグラフ化条件式により説明する。図１３に示すＡ〜Ｄは図８に示す部分検索条件式Ａ〜Ｄに対応する（ただし、Ａ’、Ｂ’は処理後であることを示す）。また、点線の矩形は処理結果には最終出力項目を含むことを示している。検索処理は（ａ）、（ｂ）、（ｃ）、（ｄ）の順で進行する。図１４に、図１３に示す検索処理の過程において一時データ記憶部１３に記憶される一時データを示す。また、比較として、図１５に部分検索条件式をそれぞれ独立して処理した後に結合させた場合の一時データを示す。
【００７９】
図１３（ａ）は、部分検索条件式Ａ及び部分検索条件式Ｂの処理が行われた後の状態であり、部分検索条件式Ａ、Ｂの処理結果をそれぞれＡ’、Ｂ’として記載している。このときＢの処理はＡの処理結果により限定されたデータに対して行われており、ＡとＢを独立に処理する場合に比べＢにおける演算処理における計算の回数が減少する。このとき図１４（ａ）に示すように、一時データ記憶部１３にはＡ’、Ｂ’が記憶される。図１３（ｂ）は、ＡとＢの処理結果を結合した状態を示す。Ａ”は結合による処理結果を表し、Ａの処理結果をＢの処理結果によって更に絞り込んだ処理結果となっている。このとき、図１４（ｂ）に示すように、一時データ削除部３０により、一時データ記憶部１３からＡ’、Ｂ’は削除され、Ａ”が記憶される。図１３（ｃ）は、Ｃ、Ｄの処理後の状態を表しており、Ｃ、ＤはＡ”を対象に演算処理を行っているため、Ａの処理結果であるＡ’を対象に演算処理を行う場合よりも更に演算処理における計算の回数が減少する。このとき、図１４（ｃ）に示すように、一時データ記憶部には更にＣ”、Ｄ”が追加して記憶される。その後、各処理結果の結合を行った状態が図１３（ｄ）となり、図１４（ｄ）に示す検索結果が出力される。
【００８０】
部分検索条件式をそれぞれ独立して処理した場合は、図１５（ａ）に示すように、Ａ〜Ｄの処理結果を全て一時データ記憶部に記憶した後、処理結果を結合して、図１５（ｂ）に示す検索結果を出力する必要がある。また、それぞれの部分検索条件式の処理において処理対象を限定していない場合は処理結果のデータ量も多くなるため一時データ記憶部１３の記憶容量を大きくする必要がある。これに対して本実施形態においては、図１４に示すように、同時に記憶する一時データが限定されるため一時データの記憶容量を低減できるとともに、大容量データの記憶処理による非効率化を抑制することが可能となる。
【００８１】
（第２実施形態）
本発明に係るデータベース検索装置の第２実施形態では、上述した問い合わせ例（Ｑ２）に対して行う具体的な検索処理及び本発明のデータベース検索方法について説明する。データベース検索装置の構造及び検索対象のデータベースは第１実施形態と同様であるため、重複する部分の詳細は省略して説明する。尚、第１実施形態においては、一時データ削除ステップ（図５におけるＳ４）において、最終出力項目の追加処理は行われなかったが、第２実施形態では、その処理を行う部分で第１実施形態と異なる。
【００８２】
第２実施形態の検索処理において入力される問い合わせ式を数４に、分割後の問い合わせ式を数５に示す。また、最終的な問い合わせ式の検索処理手順を数６に示す。数４〜６の内容については該当する箇所で説明する。
【００８３】
[数４]
SELECT s1.スラブ番号,co1.コイル番号
FROM 転炉チャージ ch1 ch2, 連鋳スラブs1 s2, 圧延コイルco1 co2
WHERE co1.スラブ番号=s1.スラブ番号  AND  s1.チャージ番号=ch1.チャージ番号
AND  co2.スラブ番号=s2.スラブ番号  AND  s2.チャージ番号=ch2.チャージ番号
AND  ch1.Ｃ成分>110  AND  ch2.Ｃ成分<110
AND  co1.平坦度（）* 2<co2.平坦度（）
【００８４】
[数５]
Ｅ= SELECT ch1,s1,co1-1
FROM転炉チャージ ch1,連鋳スラブs1,圧延コイルco1-1
WHERE co1-1.スラブ番号=s1.スラブ番号 AND s1.チャージ番号=ch1.チャージ番号
AND ch1.Ｃ成分>110
Ｆ= SELECT ch2,s2,co2-1
FROM転炉チャージ ch2,連鋳スラブs2,圧延コイルco2-1
WHERE co2-1.スラブ番号=s2.スラブ番号 AND s2.チャージ番号=ch2.チャージ番号
AND ch2.Ｃ成分<110
Ｇ= SELECT co1-2.コイル番号,f1.出力
FROM圧延コイルco1-2,平坦度 f1
WHERE co1-2.平坦度（）→f1
Ｈ= SELECT co2-2.コイル番号,f2.出力
FROM圧延コイルco2-2,平坦度 f2
WHERE co2-2.平坦度（）→f2
結果= 
SELECT re.s1.スラブ番号,re.co1-1.コイル番号,
FROM Ｅ re, Ｆ rf, Ｇ rg, Ｈ rh
WHERE re.co1-1.コイル番号= rg.co1-2.コイル番号
AND rf.co2-1.コイル番号= rh.co2-2.コイル番号
AND rg.f1.出力 * 2> rh.f2.出力
【００８５】
[数６]
Ｅ’ = SELECT s1.スラブ番号,co1-1.コイル番号
FROM転炉チャージ ch1,連鋳スラブs1,圧延コイルco1-1
WHERE co1-1.スラブ番号=s1.スラブ番号 AND s1.チャージ番号=ch1.チャージ番号
AND ch1.Ｃ成分>110
Ｆ’ = SELECT co2-1.コイル番号
FROM転炉チャージ ch2,連鋳スラブs2,圧延コイルco2-1
WHERE co2-1.スラブ番号=s2.スラブ番号 AND s2.チャージ番号=ch2.チャージ番号
AND ch2.Ｃ成分<110
Ｇ’= SELECT co1-2.コイル番号,f1.出力,re.s1.スラブ番号
FROM圧延コイル∩（Ｅ’.co1-1.コイル番号）co1-2,平坦度 f1,Ｅ’ re
WHERE co1-2.平坦度（）⇒f1
DELETE Ｅ’
Ｈ’= SELECT co2-2.コイル番号,f2.出力
FROM圧延コイル∩（Ｆ’.co2-1.コイル番号）co2-2,平坦度 f2
WHERE co2-2.平坦度（）⇒f2
DELETE Ｆ’
結果= 
SELECT rg.re.s1.スラブ番号,rg.co1-2.コイル番号
FROM Ｇ” rg, Ｈ’ rh
WHERE rg.f1.出力 * 2> rh.f2.出力
【００８６】
＜演算関数記憶ステップ＞
第１実施形態と同様に、問い合わせ例（Ｑ２）に必要な演算関数である「平坦度（）」を入力装置３により演算関数記憶部１１に記憶させる。
【００８７】
＜検索条件記憶ステップ＞
問い合わせ例（Ｑ２）を、数４に示す問い合わせ式として入力装置３により検索条件記憶部１２に記憶させる。
【００８８】
数４に示す問い合わせ式について、図５に示すフローチャートに従って検索処理が行われる。
【００８９】
＜検索条件分割ステップ（Ｓ１）＞
図１６に、数４に示す問い合わせ式をグラフ形式で表現したグラフ化条件式を示す。この、グラフ化条件式をもとに図７のフローチャートに従って分割したグラフ化条件式を図１７に示す。
【００９０】
グラフ化条件式（図１７参照）に示すように、検索条件分割部２２により、演算処理の入力となるＲ５、Ｒ６の２テーブルがそれぞれ２個のテーブルに分けられ、グラフ化条件式はＥ〜Ｈの部分検索条件式に分割される。これより分割後の問い合わせ式は数５に示すようになる。
【００９１】
＜処理順序決定ステップ（Ｓ２）＞
次に、処理順序決定部２４により、分割した複数の部分検索条件式の処理順序を決定する。図９のフローチャートに従って処理順序を決定することで、演算処理を含む部分検索条件式Ｇよりも先に演算処理を含まない部分検索条件式Ｅの処理を行い、また、演算処理を含む部分条件検索式Ｈより先に演算処理を含まない部分検索条件式Ｆを処理するように処理順序が決定される。
【００９２】
次に、処理順序決定部２４によって決定された順序で検索処理実行部２７によって各部分検索条件式の処理が行われる（図５におけるＳ３〜Ｓ７）。
【００９３】
＜限定記録ステップ（Ｓ４（Ｓ４０１、Ｓ４０２））＞
次に、限定記録部２９により、部分検索条件式の処理による出力項目を、他の部分検索条件式と結合するために必要な項目とユーザが要求する最終出力項目とに限定する（図５におけるＳ４）。図１０のフローチャートにおけるＳ４０１、Ｓ４０２の部分により、Ｅの処理による出力項目は、「ｓ１．スラブ番号」と「ｃｏ１−１．コイル番号」とになる（数６における式Ｅ’のＳＥＬＥＣＴ以降参照）。また、Ｆの処理による出力項目は「ｃｏ２−１．コイル番号」となる（数６における式Ｆ’のＳＥＬＥＣＴ以降参照）。
【００９４】
＜一時データ削除ステップ（Ｓ４（Ｓ４０３〜Ｓ４０７））＞
次に、一時データ削除部３０により、部分検索条件式Ｘに演算処理が含まれる場合に更に追加する出力項目を決定する。この決定は、検索処理実行（図５におけるＳ５）の際に行われる一時データの削除を可能とするために行われるものである。図１０のフローチャートにおけるＳ４０３〜Ｓ４０７の部分に従って、追加する出力項目を決定する。
【００９５】
演算処理を含む部分検索条件式Ｇの処理においては、演算処理の入力側テーブルと結合関係にある処理済の部分検索条件式Ｅが存在し、部分検索条件式Ｅは他の部分検索条件式と結合関係にない。また、部分検索条件式Ｅの処理結果には最終出力項目であるｓ１．スラブ番号（製品１のスラブ番号）の項目がある。これより、部分検索条件式Ｇの処理の出力項目に、部分検索条件式Ｅの処理結果であるｓ１．スラブ番号の項目を追加することになる（数６における式Ｇ’のＳＥＬＥＣＴ以降参照）。この処理により、部分検索条件式Ｇの処理を行った後に、部分検索条件式Ｅの処理結果を全て削除しても、部分検索条件式Ｅの処理結果に含まれる最終出力項目は、部分検索条件式Ｇの処理結果として一時データ記憶部に残すことができる。
【００９６】
演算処理を含む部分検索条件式Ｈの処理においては、演算処理の入力側テーブルと結合関係にある処理済の部分検索条件式Ｆが存在し、部分検索条件式Ｆは他の部分検索条件式と結合関係にないため、部分検索条件式Ｈの処理が完了した後、部分検索条件式Ｆの処理結果を全て削除することができる。このとき、部分検索条件式Ｆの処理結果には最終出力項目は含まれていないため、部分検索条件式Ｈの出力項目を追加する必要はない。
【００９７】
＜検索処理実行ステップ（Ｓ５）＞
次に、検索処理実行部２７により、部分検索条件式Ｘの処理を実行する（図５におけるＳ５）。図１１のフローチャートに従って検索処理を実行する。
【００９８】
演算処理を含まない部分検索条件式Ｅ及びＦの処理においては、図１１のフローチャートに示すＳ５０１、Ｓ５０２の部分に従って通常のテーブルに対する検索処理が実行される。このときの出力項目は、先に限定記録部２９により決定している項目となり、Ｅの処理によっては、「ｓ１．スラブ番号」と「ｃｏ１−１．コイル番号」とが、また、Ｆの処理によっては「ｃｏ２−１．コイル番号」が出力され、一時データ記憶部１３に記憶される。
【００９９】
＜第１処理手順決定ステップ及び第２処理手順決定ステップ（Ｓ５０３〜Ｓ５０６）＞
続いて、演算処理を含む部分検索条件式Ｇ及びＨの処理においては、図１１のフローチャートに示すＳ５０３〜Ｓ５０６の部分に従って第１処理手順決定部２５及び第２処理手順決定部２６により決定された処理手順で検索処理が実行される（第１処理手順決定ステップ及び第２処理手順決定ステップ）。第２実施形態においては、演算処理を含む部分検索条件式Ｇの処理は、演算処理を含まない部分検索条件式Ｅを処理した後、部分検索条件式Ｅの処理結果により絞り込まれたデータに対して行われる。同様に、演算処理を含む部分検索条件式Ｈの処理は、部分検索条件式Ｆの処理結果により絞り込まれたデータに対して行われる。これより、Ｇ，Ｈにおける演算処理内の計算回数は減少する。
【０１００】
＜重複処理防止ステップ（Ｓ５０７）＞
ここで、図１１のフローチャートに示すＳ５０７の演算処理においては、図１２に示すフローチャートに従って、重複処理防止部３１により、部分検索条件式Ｇ及びＨに含まれる演算処理は重複した計算をすることなく行われる。
【０１０１】
＜一時データ削除ステップ（Ｓ５０８〜Ｓ５１０）＞
図１１のフローチャートに示すＳ５０８〜Ｓ５１０のステップでは、一時データ削除部３０により演算処理の対象となったデータで不要なものを一時データ記憶部１３から削除する。これより、部分検索条件式Ｇの処理後、Ｅの処理結果が削除される。また、部分検索条件式Ｈの処理後、Ｆの処理結果が削除される。上述したように、Ｅの処理結果には最終出力項目が含まれるが、削除される最終出力項目はＧの処理結果に追加されるため、結果として最終出力項目以外のＥの処理結果を削除することができる（数６におけるＤＥＬＥＴＥ  Ｅ’）。
【０１０２】
＜検索処理実行ステップ（Ｓ８）＞
以上、全ての部分検索条件式の処理が完了した後、検索処理実行部２７は、一時データ記憶部１３に記憶されている部分検索条件式の処理結果を結合し、問い合わせに対する検索結果である最終出力項目を出力装置５に出力する。第２実施形態においては、問い合わせ例（Ｑ２）で指定された条件を満たす製品１のスラブ番号、コイル番号が出力される。
【０１０３】
この処理手順により行われる検索を、図１８に示す簡略化したグラフ化条件式により説明する。図１９に、グラフ化条件式に示す検索処理の過程において一時データ記憶部１３に記憶される一時データを示す。また、比較として、部分検索条件式をそれぞれ独立して処理した後に結合させた場合の一時データを図２０に示す。
【０１０４】
図１８（ａ）に示すグラフ化条件式は、分割直後の状態である。図１８（ｂ）は、ＥとＦの処理後の状態を示す。このとき、図１９（ａ）に示すように一時データ記憶部１３にはＥの処理結果であるＥ’と、Ｆの処理結果であるＦ’とが記憶される。図１８（ｃ）は、Ｇ、Ｈの処理後の状態を表している。Ｇ、Ｈはそれぞれ、Ｅ、Ｆの処理によって限定されたデータに対して行われているため、演算処理における計算回数が減少する。また、Ｇ、Ｈの処理後にＥ，Ｆの処理結果は削除されている。このとき、図１９（ｂ）に示すように、Ｇの処理結果にはＥの処理結果のうち最終出力項目である製品１のスラブ番号が含まれている。これは、一時データ削除ステップ（図５におけるＳ４）にて最終出力項目を追加したことにより、出力されたものである（数６における式Ｇ’のＳＥＬＥＣＴ以降参照）。したがって、Ｅの処理結果のうち最終出力項目以外の項目が一時データ記憶部から削除されたことになる。その後、各処理結果の結合を行った状態が図１８（ｄ）であり、図１９（ｃ）に示す検索結果が出力される。
【０１０５】
部分検索条件式をそれぞれ独立して処理した場合は、図２０（ａ）に示すように、Ｅ〜Ｈの処理結果を全て一時データ記憶部に記憶した後、処理結果を結合して、図２０（ｂ）に示す検索結果を出力する必要がある。これに対して本実施形態においては、図１９に示すように、同時に記憶する一時データが限定されるため一時データの記憶容量を低減できるとともに、大容量データの記憶処理による非効率化を抑制することが可能となる。
【０１０６】
以上、本発明の実施形態について説明したが、本発明は上述の実施の形態に限られるものではなく、特許請求の範囲に記載した限りにおいて様々に変更して実施することができるものである。
【図面の簡単な説明】
【０１０７】
【図１】製鉄所において発生するデータを管理するデータベースの構造を示す図である。
【図２】本発明の実施形態に係るデータベース検索装置のブロック図である。
【図３】図１に示すのデータベースで管理するデータのテーブル構造を示す図である。
【図４】演算関数記憶部に記憶される演算関数情報を示す図である。
【図５】検索処理手順について説明したフローチャートである。
【図６】第１実施形態のグラフ化条件式を示す図である。
【図７】問い合わせ式を部分検索条件式に分割する手順を説明したフローチャートである。
【図８】第１実施形態の分割後のグラフ化条件式を示す図である。
【図９】部分検索条件式の処理順序を決定する手順を説明したフローチャートである。
【図１０】部分検索条件式の処理による出力項目を決定する手順を説明したフローチャートである
【図１１】部分検索条件式の検索処理を実行する手順を説明したフローチャートである。
【図１２】重複処理なく演算処理を行う手順を説明したフローチャートである。
【図１３】第１実施形態の検索処理の過程における簡略化したグラフ化条件式を示す図である。
【図１４】第１実施形態の検索処理の過程における一時データ記憶部に記憶される一時データを示す図である。
【図１５】第１実施形態において部分検索条件式を独立して処理した場合の一時データを示す図である。
【図１６】第２実施形態のグラフ化条件式を示す図である。
【図１７】第２実施形態の分割後のグラフ化条件式を示す図である。
【図１８】第２実施形態の検索処理の過程における簡略化したグラフ化条件式を示す図である。
【図１９】第２実施形態の検索処理の過程における一時データ記憶部に記憶される一時データを示す図である。
【図２０】第２実施形態において部分検索条件式を独立して処理した場合の一時データを示す図である。
【符号の説明】
【０１０８】
１    データベース検索装置
２    データベースシステム
１０  記憶装置
１１  演算関数記憶部（演算関数記憶手段）
１２  検索条件記憶部（検索条件記憶手段）
１３  一時データ記憶部（一時データ記憶手段）
２０  中央処理装置
２２  検索条件分割部（検索条件分割手段）
２３  処理手順最適化部（処理手順最適化手段）
２４  処理順序決定部（処理順序決定手段）
２５  第１処理手順決定部（第1処理手順決定手段）
２６  第２処理手順決定部（第２処理手順決定手段）
２７  検索処理実行部（検索処理実行手段）
２９  限定記録部（限定記録手段）
３０  一時データ削除部（一時データ削除手段）
３１  重複処理防止部（重複処理防止手段）
Ｓ１  検索条件分割ステップ
Ｓ２  処理順序決定ステップ
Ｓ４  限定記録ステップ、一時データ削除ステップ
Ｓ５〜Ｓ８  検索処理実行ステップ
Ｓ１０１〜Ｓ１０４  検索条件分割ステップ
Ｓ２０１〜Ｓ２１０  処理順序決定ステップ
Ｓ４０１〜Ｓ４０７  限定記録ステップ、一時データ削除ステップ
Ｓ５０３〜Ｓ５０６  第１処理手順決定ステップ、第２処理手順決定ステップ、
Ｓ５０７  検索処理実行ステップ、重複処理防止ステップ
Ｓ５０８〜Ｓ５１０  一時データ削除ステップ
Ｓ５１１〜Ｓ５１７  重複処理防止ステップ
【図１】
2007193394.tif 000003
【図２】
2007193394.tif 000004
【図３】
2007193394.tif 000005
【図４】
2007193394.tif 000006
【図５】
2007193394.tif 000007
【図６】
2007193394.tif 000008
【図７】
2007193394.tif 000009
【図８】
2007193394.tif 000010
【図９】
2007193394.tif 000011
【図１０】
2007193394.tif 000012
【図１１】
2007193394.tif 000013
【図１２】
2007193394.tif 000014
【図１３】
2007193394.tif 000015
【図１４】
2007193394.tif 000016
【図１５】
2007193394.tif 000017
【図１６】
2007193394.tif 000018
【図１７】
2007193394.tif 000019
【図１８】
2007193394.tif 000020
【図１９】
2007193394.tif 000021
【図２０】
2007193394.tif 000022