図面 (/)

技術 検索結果集合処理方法

出願人 株式会社日立製作所
発明者 山下信之根岸和義鳥居俊一
出願日 1996年6月12日 (23年3ヶ月経過) 出願番号 1996-150748
公開日 1997年12月22日 (21年9ヶ月経過) 公開番号 1997-330334
状態 未査定
技術分野 検索装置
主要キーワード 集合部分 処理分岐 部分更新 汎用機 検索処理結果 更新処理後 ユーザアプリケーションプログラム 更新ログ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(1997年12月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (3)

課題

検索結果集合作成後に表に対し更新が行われた場合に、更新処理前に作成した検索結果集合を利用して、更新処理後の表を基に作成される検索結果集合と同等の検索結果集合を作成する検索結果集合処理方法を提供する。

解決手段

検索結果集合作成処理時にその時点の表の情報を記憶しておき、更新処理時には表の情報を書き換えるようにして、検索結果集合再作成処理時に、検索結果集合作成時に記憶していた情報とその時点の表の情報と比較して、更新処理の有無を判断できるようにする。また更新処理時には検索結果集合を再作成するのに必要な更新情報を作成しておき、検索結果集合再作成処理時には表にアクセスすることなく更新情報から検索結果集合を再作成できるようにする。

概要

背景

データベースシステムにおいて、ユーザがある検索条件Aでデータベース検索し、さらに条件を付加した検索条件A’で検索を行うことは一般的によく行われる。この場合、検索条件Aの検索結果を保持しておき、それを利用して検索条件A’で検索を行えば、より高速検索処理を行うことが期待できる。この場合に、すべての検索条件および検索結果を保持しておくと、容量の問題や過去に同様な検索条件を指定して検索を行ったかどうかを調べるためのオーバーヘッドがかかることから、通常いずれの検索条件および検索結果を残しておくかユーザが指定する。

例えば、日立製作汎用機VOS3用「データマネージメントシステムDM/RD」では、ユーザが名称を指定するリストと呼ばれるものに検索結果集合を格納する機能を提供している。同システムにおいて操作系SQLであるASSIGN文で、一つの表あるいは同じ構造を持つ複数の表に対し検索条件を指定してリストを作成し、同じくASSIGN文でそれぞれ同じ構造を持つ表に対し作成した2つのリスト間の集合和あるいは集合積あるいは集合差をとったリストを作成し、SELECT文でリストを使用して行のデータを取り出すことができる。

概要

検索結果集合作成後に表に対し更新が行われた場合に、更新処理前に作成した検索結果集合を利用して、更新処理後の表を基に作成される検索結果集合と同等の検索結果集合を作成する検索結果集合処理方法を提供する。

検索結果集合作成処理時にその時点の表の情報を記憶しておき、更新処理時には表の情報を書き換えるようにして、検索結果集合再作成処理時に、検索結果集合作成時に記憶していた情報とその時点の表の情報と比較して、更新処理の有無を判断できるようにする。また更新処理時には検索結果集合を再作成するのに必要な更新情報を作成しておき、検索結果集合再作成処理時には表にアクセスすることなく更新情報から検索結果集合を再作成できるようにする。

目的

本発明の目的は、検索結果集合作成後に、検索結果集合を利用する場合に、検索結果集合に最新の情報を反映することにある。さらに検索結果集合作成後に表に対し更新処理が行われているどうかを判断し、更新が行われている場合には表にアクセスするためのオーバーヘッドをなくすために表にはアクセスせずに更新処理において作成された情報を基に検索結果集合に表に対する更新を反映する方法を提供する。

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

行の集合である表と、検索条件合致する行の識別子の集合である検索結果集合と、表から検索条件に合致するレコードの識別子の集合を作成する検索結果集合作成処理を行う検索結果集合作成処理部と、表の行を更新する更新処理を行う更新処理部と、検索結果集合を利用して検索結果集合再作成処理を行う検索結果集合再作成処理部を含む構成をなし、検索結果集合作成処理後に、少なくとも1回の更新処理を行った後、検索結果集合再作成処理において更新処理後の表を基に作成した検索結果集合と同等のものを作成することを特徴とする検索結果集合処理方法

請求項2

請求項1記載の検索結果集合処理方法において、検索結果集合作成処理で記憶した情報と、更新処理で書き換えられる情報をもとに、検索結果集合再作成処理において検索結果集合作成処理以降に更新処理が行われたかどうかを判断し、更新処理が行われていない場合には検索結果集合を継続して使用する機能を有することを特徴とする検索結果集合処理方法。

請求項3

請求項1記載の検索結果集合処理方法において、検索結果集合再作成処理において、更新処理前の表を基に作成した検索結果集合と更新処理で作成した行の更新に関する情報より、更新処理後の表をアクセスせずに、更新処理後の表を基に作成される検索結果集合と同等の検索結果集合を作成することを特徴とする検索結果集合処理方法。

技術分野

0001

本発明は更新および検索が行われるデータを記憶するデータベース管理システムにおける、検索結果集合を作成する処理に関する。

背景技術

0002

データベースシステムにおいて、ユーザがある検索条件Aでデータベースを検索し、さらに条件を付加した検索条件A’で検索を行うことは一般的によく行われる。この場合、検索条件Aの検索結果を保持しておき、それを利用して検索条件A’で検索を行えば、より高速検索処理を行うことが期待できる。この場合に、すべての検索条件および検索結果を保持しておくと、容量の問題や過去に同様な検索条件を指定して検索を行ったかどうかを調べるためのオーバーヘッドがかかることから、通常いずれの検索条件および検索結果を残しておくかユーザが指定する。

0003

例えば、日立製作汎用機VOS3用「データマネージメントシステムDM/RD」では、ユーザが名称を指定するリストと呼ばれるものに検索結果集合を格納する機能を提供している。同システムにおいて操作系SQLであるASSIGN文で、一つの表あるいは同じ構造を持つ複数の表に対し検索条件を指定してリストを作成し、同じくASSIGN文でそれぞれ同じ構造を持つ表に対し作成した2つのリスト間の集合和あるいは集合積あるいは集合差をとったリストを作成し、SELECT文でリストを使用して行のデータを取り出すことができる。

発明が解決しようとする課題

0004

リストを使用して取り出すデータの内容が保証されるのはトランザクション終了までである。トランザクション終了後もリストはシステムとの接続を解除するまで保持されるが、リストを作成する基になった表に対し更新がなされた場合、リストの内容は保証されない。例えば、リスト作成後に検索条件に合致する行を表に挿入した場合は、リストを使用して検索を行ってもその行は取り出されない。また検索条件に合致していたデータを変更したために検索条件に合致しなくなってしまっても、リストを使用して検索するとその行も取り出されてしまう。リスト作成後のペース表に対する更新を反映したデータが欲しい場合には再び検索を行いリストを作成し直す必要がある。

0005

上記技術は、同システムのマニュアル「VOS3 XDME2系プログラム作成手引−第2分冊−(XDM/RD)」,日立製作所(昭和63年12月)にASSIGN文とSELECT文の文法詳細およびリストを使用した検索が記載されている。

0006

本発明の目的は、検索結果集合作成後に、検索結果集合を利用する場合に、検索結果集合に最新の情報を反映することにある。さらに検索結果集合作成後に表に対し更新処理が行われているどうかを判断し、更新が行われている場合には表にアクセスするためのオーバーヘッドをなくすために表にはアクセスせずに更新処理において作成された情報を基に検索結果集合に表に対する更新を反映する方法を提供する。

課題を解決するための手段

0007

上記目的を達成するために、表に対する更新を反映する検索結果集合再作成処理を設け、検索結果集合作成後に表に対し更新処理が行われている可能性がある場合には、前記検索結果集合再作成処理を要求する方法を提供する。

0008

そして検索結果集合作成処理時にその時点の表の情報を記憶しておき、更新処理時には表の情報を書き換えるようにして、検索結果集合再作成処理時に、検索結果集合作成時に記憶していた情報とその時点の表の情報と比較して、更新処理の有無を判断できるようにする。

0009

加えて更新処理時には検索結果集合を再作成するのに必要な更新情報を作成しておき、検索結果集合再作成処理時には表にアクセスすることなく更新情報から検索結果集合を再作成できるようにする。

発明を実施するための最良の形態

0010

以下、本発明の核である、必要に応じ検索結果集合に最新の情報を反映させる一実施例を図1および図2を用いて具体的に示す。

0011

図1はシステムの構成およびデータの流れを示す。本システムはユーザアプリケーションプログラム(以下、UAPと略す)10、UAP10からの要求を処理するデータベース処理部20、データ部30で構成される。

0012

データ部30はデータベースの基本要素である表32およびその管理情報である表管理情報31、検索処理結果の集合を格納する検索結果集合36およびその管理情報である検索結果集合管理情報35、更新処理に関する更新履歴情報であるログ38で構成される。

0013

表は行と呼ばれるデータの集合{33a,33b,…,33c}で、各行のデータそのものである行データと行IDが組で表に格納される。行IDはそれぞれの行を一意に決める値であり、その値をもとに行データの格納位置を求めて、行データを取り出すことができる。表管理情報31には表32を管理する情報として、表32に対して行われた最後の更新処理のログのオフセットである最終更新ログオフセット、表を作成してから現時点まで当該表に対して行われた更新処理数である総更新数、および表の行数が含まれる。

0014

検索結果集合35は検索条件に合致した行の行IDの集合{37a,37b,…,37c}が格納される。検索結果集合を指定すれば検索条件に合致した行すべての行データを取り出すことが可能である。検索結果集合管理情報にはログオフセット、表総更新数、検索条件が含まれる。

0015

ログ38は更新処理が行われる度に追加されていく情報で、表の更新が行われた場合、当該表の表更新ログ39が作成されてログに追加される。表更新ログには更新処理種別、更新行ID、更新後の行の像である更新後イメージ、当該表に対する直前の更新に対する表更新ログのオフセットである直前更新ログオフセットを含む。

0016

UAP10では三種類の要求をデータ処理部20に対し発行する。第一は、将来、同様の検索を行うと期待される場合に、検索結果集合を作成するために検索条件を指定して発行する検索結果集合作成要求11である。第二に適宜、表に対する更新処理を行うために発行する更新要求12である。更新処理種別は、新しく行を表に挿入するINSERT、既存の行を変更するUPDATE、既存の行を表から削除するDELETEの三種類ある。尚、ここでは一回のUPDATEあるいはDELETEにつき、一行の更新あるいは一行の削除が行われることを前提に説明をするが、複数行の更新あるいは削除要求に対しても容易に拡張可能である。

0017

そして、第三に検索結果集合作成要求を発行したときと同じ検索条件で検索を行う場合に、検索結果集合に最新の情報を反映させるために検索結果集合再作成要求13を発行する。ただし検索結果集合再作成要求が有効なのは検索条件が行データのみで条件に合致しているかどうかが判断できる場合に限られる。

0018

データ処理部20は、UAP10からの検索結果集合作成要求11を受けて指定された検索条件をもとに検索結果集合36を作成する検索結果集合作成処理部21、UAP10からの更新要求12を受けて表32を更新する更新処理部22、UAP10からの検索結果集合再作成要求13を受けて、検索結果集合36に最新の情報を反映させる処理を行う検索結果集合再作成処理部23から構成される。

0019

検索結果集合作成処理部21では、2つの処理、検索結果集合管理情報作成211と検索結果集合作成212を行う。

0020

検索結果集合管理情報作成211では検索結果集合を作成する対象の表の表管理情報31をもとに検索結果集合管理情報35を作成する。つまり当該表の表管理情報31の最終更新ログオフセット、総更新数をそれぞれ検索結果集合管理情報35のログオフセット、表総更新数に記憶する。またUAP10で指定した検索条件を検索結果集合管理情報35の検索条件に記憶する。

0021

検索結果集合作成212では、当該表32を検索して検索条件に合致する行の行IDの集合、検索結果集合36を作成する。

0022

更新処理部22では、表更新ログ作成221、表管理情報更新222および表の行更新223を行う。

0023

表更新ログ作成221では、表更新ログ39を割り当てて、表更新ログの更新行IDに更新する行の行IDをセットする。そして更新処理種別がINSERTあるいはUPDATEの場合には表更新ログの更新後イメージをセットする。更新処理種別がDELETEの場合は更新後イメージは存在しないのでこの処理は行わない。

0024

表管理情報更新222では、表の更新よる変更を表管理情報31に反映させる。つまり、表管理情報31の最終更新ログオフセットに表更新ログ作成221で割り当てた表更新ログのログオフセットを記憶し、総更新数を1増やして、更新処理種別がINSERTの場合は行数を1増やし、DELETEの場合は行数を1減らす。UPDATEの場合は行数は変わらないので増減はしない。

0025

表の行更新223では、更新処理種別がINSERTの場合を表に行を挿入、UPDATEの場合は表中の指定された行を更新、DELETEの場合は指定された行を表から削除する。

0026

検索結果集合再作成処理部23では、管理情報取得231、その結果により処理を分岐する232および233、検索結果集合作成234、検索結果集合集合部分更新40の処理を行う。

0027

管理情報取得231では232および233での処理分岐の判定に必要な情報として表管理情報31と検索結果集合管理情報35を得る。

0028

232では検索結果集合作成以後、表に対して施された更新の数を計算する。更新数は(更新数 = 表管理情報31の総更新数 − 検索結果集合管理情報35の表総更新数)で計算できる。更新数が0の場合、検索結果集合作成以後、表に対して更新処理はなされていないと判断でき、処理を終了する。

0029

更新数が1以上の場合、表に更新処理が行われているので検索結果集合に反映させるために、検索結果集合部分更新40あるいは検索結果集合作成234の処理を行う。いずれの処理を行うかは233で判断し、計算量が小さいと推定される処理に分岐する。この判断方法の簡単な一例として更新数と表管理情報31の行数との比較がある。つまり、検索結果集合部分更新40の計算量は更新数におおよそ比例し、検索結果集合作成234の計算量は表の行数におおよそ比例するので、(更新数/表管理情報の行数)がある値以上であれば検索結果集合部分更新40の計算量が検索結果集合作成234の計算量より大きいと判断し、234へ分岐する。

0030

検索結果集合作成234では既に作成されている検索結果集合を削除して最新の表より検索結果集合を作成し直す。検索結果集合作成方法は検索結果集合処理部における処理と同様であるのでここでは割愛する。

0031

検索結果集合部分更新40ではログ中の表更新ログを利用して検索結果集合36に最新の情報を反映させる。以下、この処理について図2を用いて説明する。

0032

まず初期化処理としてカレントログオフセットに検索結果集合管理情報35にあるログオフセットを設定し(ステップ401)、表更新ログカウンタを0にする(ステップ402)。次にカレントログオフセットで位置づけられるログを見てそれが表更新ログでなければ、ステップ411へ分岐する。表更新ログであった場合(表更新ログ39として以下説明)は引き続いて、ステップ404において表更新ログ39の更新行IDが検索結果集合に含まれていればステップ405に、含まれていなければステップ407に分岐する。ここで、更新処理種別がINSERTであれば検索結果集合には含まれていないので検索結果集合に含まれているかどうか調べることを省略してステップ407に分岐する。更新行IDが検索結果集合が含まれている場合、ステップ405において当該行IDが削除(つまり表更新ログ39の更新処理種別がDELETE)あるいは表更新ログ39の更新後イメージが検索結果集合管理情報35の検索条件に合致していなくなっていれば検索結果集合から当該更新行IDを削除する(ステップ406)。また更新行IDが検索結果集合に含まれていない場合、ステップ407で更新後イメージが検索条件に合致するようになっていれば、当該行IDを検索結果集合に追加する。これらの処理が終わったら表更新ログカウンタを1増やし(ステップ409)、更新数に達していれば処理を終了する(ステップ410)。表更新ログカウンタが更新数に達していない場合、カレントログオフセットを一つ進めてステップ403から処理を繰り返す。

0033

以上の処理により検索結果集合部分更新40では、検索結果集合36の基となる表32をアクセスすることなく、更新処理前に作成した検索結果集合36と表更新ログ39より更新処理後の表を基に作成される検索結果集合と同等の検索結果集合を作成することができる。

発明の効果

0034

以上説明したように、検索結果集合作成後に表に対する更新がある可能性があるときに最新の情報を得たい場合には検索結果集合再作成要求を発行することにより、その時点の表を基に作成される検索結果集合と同等の検索結果集合を作成することができる。

0035

検索結果集合再作成処理において表管理情報と検索結果集合管理情報と見るだけで検索結果集合作成後に更新処理の有無を調べて、更新処理がなかった場合には検索結果集合を作成あるいは部分更新をしないようにしているため処理が重くならずにすむ。

0036

さらに検索結果集合部分更新処理では表をアクセスせずに、表更新ログにある情報をもとに検索結果集合を修正しているため、表の大きさに比してログが小さい場合、つまり表の大きさに比して検索結果集合作成後の更新量が小さい場合に本発明の方法が検索結果集合を作り直すことと比較して有利になる。

図面の簡単な説明

0037

図1本発明を実施するためのシステム構成およびデータの流れを示す。
図2図1における検索結果集合部分更新40の処理フローを示す。

--

0038

10…ユーザアプリケーションプログラム、11…検索結果集合作成要求、12…更新要求、 13…検索結果集合再作成要求、20…データベース処理部、 21…検索結果集合作成処理部、22…更新処理部、23…検索結果集合再作成処理部、30…データ部、31…表管理情報、32…表、 35…検索結果集合管理情報、36…検索結果集合、 38…ログ、 39…表更新ログ。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 三菱電機株式会社の「 情報処理装置および情報処理方法」が 公開されました。( 2019/08/08)

    【課題・解決手段】情報処理装置(10)は、時系列データである入力データを取得するデータ取得部(101)と、時系列データである学習データから抽出した部分列である複数の学習部分列の中で類似する学習部分列を... 詳細

  • オムロン株式会社の「 センシングデバイス管理装置」が 公開されました。( 2019/08/08)

    【課題・解決手段】センサ側メタデータに相当するデータカタログの生成が簡単且つ適正に行えるセンシングデバイス管理装置を提供する。デバイス情報取得機能部11dが、測定対象をセンシングするセンシングデバイス... 詳細

  • オムロン株式会社の「 マッチング処理装置」が 公開されました。( 2019/08/08)

    【課題・解決手段】利活用対象のセンシングデータによる容易なセンサマッチングを行うマッチング処理部50が提供される。マッチング処理部50は、提供側端末11により入力された提供側センシングデータを取得する... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ