(57)【特許請求の範囲】
【請求項１】
複数のデータ群と、それぞれの前記データ群内のデータの最小値及び最大値を含む範囲情報と、前記データ群内のデータの合計値と前記データ群内のデータのデータ数を格納するデータベースを記憶する記憶装置と、
第１データ群内の第１データの削除の際に、前記第１データ群の合計値とデータ数を更新し、
前記第１データ群の最大値に、前記更新したデータ数から１を減じた数値を乗じた数値と、前記更新した合計値との差を、第１最小値として算出し、
前記第１データ群の最小値に、前記更新したデータ数から１を減じた数値を乗じた数値と、前記更新した合計値との差を、第１最大値として算出し、
前記算出した第１最小値が前記範囲情報の最小値を超えるか否か、または、前記算出した第１最大値が前記範囲情報の最大値未満であるか否かを判定し、前記判定に応じて前記範囲情報を更新する処理部を有する情報処理装置と、を有することを特徴とする
データベースシステム。
【請求項２】
請求項１において、
前記処理部は、前記算出した第１最小値が、前記範囲情報の最小値を超える場合に、前記範囲情報の最小値を前記算出した第１最小値に更新する、
データベースシステム。
【請求項３】
請求項１または２において、
前記処理部は、前記算出した第１最大値が、前記範囲情報の最大値未満である場合に、前記範囲情報の最大値を前記算出した第１最大値に更新する、
データベースシステム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記処理部は、前記範囲情報の最小値を前記削除後のデータ群内のデータの最小値以下の値に、または、前記範囲情報の最大値を前記削除後のデータ群内のデータの最大値以上の値に更新する、
データベースシステム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記処理部は、前記範囲情報の最小値を更新した場合に、前記削除後のデータ群の前記第１最大値の前記算出及び前記判定を省略し、前記範囲情報の最大値を更新した場合に、前記削除後のデータ群の前記第１最小値の前記算出及び前記判定を省略する、
データベースシステム。
【請求項６】
複数のデータ群と、それぞれの前記データ群内のデータの最小値及び最大値を含む範囲情報と、前記データ群内のデータの合計値と前記データ群内のデータのデータ数を格納するデータベースにアクセスする処理部と、
前記処理部が処理の実行に使用する記憶部と、を有し、
前記処理部は、第１データ群内の第１データの削除の際に、前記第１データ群の合計値とデータ数を更新し、
前記第１データ群の最大値に、前記更新したデータ数から１を減じた数値を乗じた数値と、前記更新した合計値との差を、第１最小値として算出し、
前記第１データ群の最小値に、前記更新したデータ数から１を減じた数値を乗じた数値と、前記更新した合計値との差を、第１最大値として算出し、
前記算出した第１最小値が前記範囲情報の最小値を超えるか否か、または、前記算出した第１最大値が前記範囲情報の最大値未満であるか否かを判定し、前記判定に応じて前記範囲情報を更新することを特徴とする
情報処理装置。
【請求項７】
複数のデータ群と、それぞれの前記データ群内のデータの最小値及び最大値を含む範囲情報と、前記データ群内のデータの合計値と前記データ群内のデータのデータ数を格納するデータベースの前記データ群のひとつである第１データ群内の第１データの削除の際に、前記第１データ群の合計値とデータ数を更新し、
前記第１データ群の最大値に、前記更新したデータ数から１を減じた数値を乗じた数値と、前記更新した合計値との差を、第１最小値として算出し、
前記第１データ群の最小値に、前記更新したデータ数から１を減じた数値を乗じた数値と、前記更新した合計値との差を、第１最大値として算出し、
前記算出した第１最小値が前記範囲情報の最小値を超えるか否か、または、前記算出した第１最大値が前記範囲情報の最大値未満であるか否かを判定し、
前記判定に応じて前記範囲情報を更新する、
処理をコンピュータに実行させるデータベースプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステム、情報処理装置、及び、データベースプログラムに関する。
【背景技術】
【０００２】
データベースのデータを複数のパーティションに分割し、データの検索を高速化するデータベースシステムがある。それぞれのパーティションは、レンジ情報（以下、範囲情報ともいう）を有する。レンジ情報は、パーティションが有する複数のデータの、所定の項目の値範囲を示す。
【０００３】
このようなデータベースにアクセスするプログラム（以下、アクセスプログラム）は、各パーティションのレンジ情報を利用して、データの検索処理を行う。具体的に、アクセスプログラムは、データの検索時に、レンジ情報に基づいて、各パーティションが検索条件に合致するデータを有するか否かを判定する。そして、アクセスプログラムは、検索条件に合致するデータを有するパーティションを対象としてデータの検索処理を行う。検索条件に合致するデータを有しないパーティションを検索の対象外とすることにより、検索処理が高速になる。
【０００４】
一方、アクセスプログラムは、データベースに対するデータの新規追加や更新、削除等の処理に応じて、レンジ情報を更新する。例えば、アクセスプログラムは、データの削除に応じて、削除後のパーティションが有する全てのデータをスキャンし、レンジ情報を更新する。
【０００５】
データベースを複数のパーティションに分割する技術については、特許文献１〜３に記載される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−８０４０３号公報
【特許文献２】特開２０００−３４７９１１号公報
【特許文献３】特開２００８−２１７７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、パーティションが多量のデータを有する場合、全てのデータのスキャン処理にかかる負荷は高い。したがって、レンジ情報の更新処理毎にスキャン処理が生じることによって、データベースシステムの負荷が高くなってしまう。これにより、データベースシステムで動作する他の処理や、データベースへの他のアクセス処理の性能に影響が生じてしまうことがある。
【０００８】
１つの側面は、本発明は、範囲情報を更新する際の負荷を抑えるデータベースシステム、情報処理装置、及び、データベースプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の側面によれば、複数のデータ群と、それぞれの前記データ群内のデータ内の所定項目の最小値及び最大値を含む範囲情報と、前記所定項目の合計値とデータ群内のデータ数を格納するデータベースを記憶する記憶装置と、前記データ群内の第１データの削除の際に、前記所定項目の合計値と前記データ数を更新し、前記データ数および前記範囲情報の前記最大値または前記最小値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、削除後のデータ群の最小値または最大値として算出し、前記算出した最小値が前記範囲情報の最小値を超えるか否か、または、前記算出した最大値が前記範囲情報の最大値未満であるか否かを判定し、前記判定に応じて前記範囲情報を更新する処理部を有する情報処理装置と、を有する。
【発明の効果】
【００１０】
第１の側面によれば、スキャン処理を行わずに範囲情報を更新する際の負荷を抑える。
【図面の簡単な説明】
【００１１】
【図１】データベースのパーティショニングの概要を説明する図である。
【図２】アクセスプログラムによる、データ削除に応じたレンジ情報ｒｇの更新処理を説明する図である。
【図３】本実施の形態のレンジ情報ｒｇの更新処理の概要を説明する図である。
【図４】図１、図２に示したデータベースを有するデータベースシステムのハードウェア構成図である。
【図５】図４に示した情報処理装置１００のアクセスプログラム２１１のソフトウェアブロックの構成図である。
【図６】図５に示したレンジ情報更新モジュール１２による、削除後のパーティション２０の所定の項目の最小値の算出処理を説明する図である。
【図７】図５に示したレンジ情報更新モジュール１２による、レンジ情報ｒｇの最小値の更新処理を説明する図である。
【図８】図５に示したレンジ情報更新モジュール１２による、削除後のパーティション２０の所定の項目の最大値の算出処理を説明する図である。
【図９】図５に示したレンジ情報更新モジュール１２による、レンジ情報ｒｇの最大値の更新処理を説明する図である。
【図１０】図５で説明したアクセスプログラム２１１による、レンジ情報ｒｇの更新処理（図６〜図９）の流れを説明するフローチャート図である。
【発明を実施するための形態】
【００１２】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１３】
［データベースのパーティショニング］
図１は、データベースのパーティショニングの概要を説明する図である。データベースのパーティショニングは、データベースが有するデータ群を複数に分割する技術である。図１の例では、データベースは、データ群を３つに区分した、３つのパーティション２０−１〜２０−３（パーティション２０とも呼ぶ）を有する。本実施例では、データは、所定の項目「Ｘ」を有する。データは複数の項目を有していてもよい。
【００１４】
データ群が複数のパーティション２０に区分されていることにより、各パーティション２０は、レンジ情報（範囲情報）ｒｇ−１〜ｒｇ−３（レンジ情報ｒｇとも呼ぶ）を有する。さらに各パーティション２０は、パーティション内の所定の項目「Ｘ」のデータの合計値「Ｓ」ｔｌ−１〜ｔｌ−３（合計値ｔｌともいう）とパーティション内のデータの数「Ｎ」ｃｎ−１〜ｃｎ−３（データ数ｃｎともいう）を有する。各パーティション２０内のデータが追加、削除、およびデータ内所定の項目「Ｘ」が更新されると、データの合計値「Ｓ」ｔｌ及びデータの数「Ｎ」ｃｎも更新される。追加、削除および更新される所定の項目「Ｘ」によって、データの合計値「Ｓ」ｔｌを更新できるため、データの合計値「Ｓ」とデータ数「Ｎ」の更新にあたって各パーティション２０内の全てのデータをスキャンする必要はない。
【００１５】
図１に示すデータベースにアクセスするプログラム（以下、アクセスプログラム）は、レンジ情報ｒｇ−１〜ｒｇ−３を参照して、アクセス対象のパーティション２０−１〜２０−３を判定する。レンジ情報ｒｇは、データベースの複数の項目（カラム）のうち、所定の項目「Ｘ」の、パーティション２０内のデータの最小値及び最大値を有する。
【００１６】
図１の例における、パーティション２０−１のレンジ情報ｒｇ−１は、値範囲「４≦Ｘ≦１０」である。即ち、レンジ情報ｒｇ−１は、パーティション２０−１が有するデータの所定の項目の最小値が値「４」であって、最大値が値「１０」であることを示す。例えば、データベースが商品の売上情報を有する場合、所定の項目「Ｘ」は、売り上げた商品の個数や金額等の数値を有する項目である。また、所定の項目は、例えば、日付、年月等であってもよい。データが所定の項目を複数持っていた場合、各パーティション２０内にその項目毎にレンジ情報、データの合計値ｔｌ及びデータ数ｃｎを記憶してもよい。
【００１７】
また、パーティション２０−２のレンジ情報ｒｇ−２は、値範囲「１≦Ｘ≦５」であって、パーティション２０−３のレンジ情報ｒｇ−３は、値範囲「２５≦Ｘ≦３０」である。即ち、レンジ情報ｒｇ−２は、パーティション２０−２のデータの所定の項目の最小値が値「１」であって、最大値が値「５」であることを示す。また、レンジ情報ｒｇ−３は、パーティション２０−３のデータの所定の項目の最小値が値「２５」であって、最大値が値「３０」であることを示す。
【００１８】
図１に示すデータベースにアクセスするプログラム（以下、アクセスプログラム）は、検索条件に基づいてレンジ情報ｒｇ−１〜ｒｇ−３を参照し、検索条件に合致するデータを有するパーティション２０−１〜２０−３を判定する。そして、アクセスプログラムは、検索条件に合致するパーティション２０を対象として、検索処理を行う。つまり、アクセスプログラムは、検索条件に合致するデータを有していないパーティション２０を検索処理の対象外にする。このように、アクセスプログラムは、レンジ情報ｒｇ−１〜ｒｇ−３に基づいて、検索対象のパーティション２０をフィルタリングし、検索処理を高速化する。
【００１９】
図１は、データベースから、検索条件「ｗｈｅｒｅ Ｘ＜３」にしたがって、所定の項目の値「Ｘ」が値「３」未満のデータを検索する場合を例示する。アクセスプログラムは、レンジ情報ｒｇ−１〜ｒｇ−３に基づいて、パーティション２０−１〜２０−３のうち、検索条件「ｗｈｅｒｅ Ｘ＜３」に合致するデータを有するパーティション２０を判定する。図１に示すレンジ情報ｒｇ−１〜ｒｇ−３によると、パーティション２０−２が検索条件に合致する。
【００２０】
したがって、アクセスプログラムは、パーティション２０−２を対象として検索処理を行う。また、アクセスプログラムは、パーティション２０−１、２０−３の検索処理をスキップ（省略）する。このように、パーティション２０−１、２０−３の検索処理が省略可能になることにより、検索対象のデータ総数が減少し、検索処理が高速になる。
【００２１】
なお、図１は、アクセスプログラムが、レンジ情報ｒｇ−１〜ｒｇ−３に基づいて、パーティション２０−１〜２０−３のうち、１つのパーティション２０−２を検索対象として判定する場合を例示した。ただし、この例に限定されるものではない。アクセスプログラムは、検索条件によっては、レンジ情報ｒｇに基づいて、複数のパーティション２０を検索対象として判定してもよい。
【００２２】
また、データの検索処理に加えて、データの更新処理（ＵＰＤＡＴＥ）や削除処理（ＤＥＬＥＴＥ）も、データの検索工程を含む。即ち、アクセスプログラムは、データの更新時に、更新対象のデータを検索し、検索したデータを更新する。したがって、アクセスプログラムは、レンジ情報ｒｇに基づいて、データの更新処理時や削除処理も、高速化できる。
【００２３】
また、データの更新処理や削除処理、追加処理（ＩＮＳＥＲＴ）に応じて、レンジ情報ｒｇが変化することがある。したがって、アクセスプログラムは、データの更新処理や削除処理、追加処理に応答して、必要に応じてレンジ情報ｒｇを更新する。次に、図２にしたがって、レンジ情報ｒｇの更新処理を例示する。図２は、データの削除処理に応じたレンジ情報ｒｇの更新処理を説明する。
【００２４】
［レンジ情報の更新］
図２は、アクセスプログラムによる、データ削除に応じたレンジ情報ｒｇの更新処理を説明する図である。図２において、図１で示したものと同一のものは、同一の記号で示す。
【００２５】
図２は、データベースから、所定の項目が値「Ｘ＝４」のデータを全て削除する場合を例示する。データの削除指示に応答して、アクセスプログラムは、レンジ情報ｒｇ−１〜ｒｇ−３（図１）を参照し、パーティション２０−１〜２０−３（図１）のうち、値「Ｘ＝４」のデータを有するパーティション２０−１を検出する。したがって、図２の（Ａ）〜（Ｃ）は、パーティション２０−１を例示する。
【００２６】
アクセスプログラムは、パーティション２０−１が有するデータｄｔ１〜ｄｔｎから、値「Ｘ＝４」のデータを１件ずつ削除する。図２の（Ａ）に示すように、まず、アクセスプログラムは、パーティション２０−１から、点線で示すデータｄｔ２を削除する。続いて、図２の（Ｂ）に示すように、アクセスプログラムは、パーティション２０−１から、点線で示すデータｄｔ１を削除する。これにより、アクセスプログラムは、パーティション２０−１から、値「Ｘ＝４」のデータ全てを削除する。
【００２７】
次に、削除したデータの値が、レンジ情報ｒｇの最小値または最大値に該当する場合、アクセスプログラムは、削除後の、対象のパーティション２０のデータ全てをスキャンし、レンジ情報ｒｇを更新する。値「Ｘ＝４」はレンジ情報ｒｇ−１の最小値に該当するため、アクセスプログラムは、レンジ情報ｒｇ−１を更新する。図２の（Ｃ）に示すように、アクセスプログラムは、削除後のパーティション２０−１が有するデータｄｔ３〜ｄｔｎの値「Ｘ」を１件ずつスキャン（確認）し、新たな最小値を取得する。図２の例において、値「Ｘ」の新たな最小値は、値「Ｘ＝７」である。したがって、図２の（Ｃ）に示すように、アクセスプログラムは、パーティション２０−１のレンジ情報ｒｇ−１を、値範囲「７≦Ｘ≦１０」に更新する。
【００２８】
図２で説明したとおり、アクセスプログラムは、レンジ情報ｒｇ−１の更新処理の際に、削除後のパーティション２０−１が有するデータを全てスキャンする。例えば、パーティション２０−１が、数万件や数十万件の多量のデータを有する場合、データのスキャン処理の負荷は高くなる。
【００２９】
データベースシステムでは、データの削除処理と並行して、同一のデータベースに対する他のアクセス処理や、同一のＣＰＵ（Central Processing Unit：ＣＰＵ）を使用する他の処理が動作する。したがって、レンジ情報ｒｇの更新処理に伴うデータのスキャン処理の負荷によって、同一のデータベースに対する他のアクセス処理や、同一のＣＰＵを使用する他の処理の性能に影響が生じてしまう。即ち、同一のデータベースに対する他のアクセス処理や、同一のＣＰＵを使用する他の処理が遅くなってしまうことがある。また、レンジ情報ｒｇの更新処理に伴うデータのスキャン処理によって、データベースに対するアクセス処理自体に時間がかかってしまう。
【００３０】
このように、レンジ情報ｒｇを更新する際の負荷は抑制されることが望ましい。したがって、本実施の形態におけるアクセスプログラムは、パーティション２０のデータ全てをスキャンすることなく、レンジ情報ｒｇを更新する。次に、図３にしたがって、本実施の形態における、レンジ情報ｒｇの更新処理の概要を説明する。
【００３１】
［本実施の形態の概要］
図３は、本実施の形態のレンジ情報ｒｇの更新処理の概要を説明する図である。図３は、図１に示した３つのパーティション２０−１〜２０−３のうち、１つのパーティション２０のレンジ情報ｒｇを例示する。
【００３２】
本実施の形態のアクセスプログラムは、パーティション２０のデータ全てをスキャンすることなく、計算処理にしたがって、レンジ情報ｒｇを、図３に示す値範囲「Ｘｍｉｎ≦Ｘ≦Ｘｍａｘ」に更新する。図３に示す値「Ｘｍｉｎ」は、パーティション２０の所定の項目のレンジ情報ｒｇの最小値を示し、値「Ｘｍａｘ」は、レンジ情報ｒｇの最大値を示す。また、図３に示す値「ｍｉｎ」は、パーティション２０の所定の項目の実際の最小値を示し、値「ｍａｘ」は、実際の最大値を示す。
【００３３】
図３に示すように、本実施の形態のアクセスプログラムは、レンジ情報ｒｇを、斜線で示す、実際の最小値「ｍｉｎ」及び実際の最大値「ｍａｘ」に基づく範囲を包含する値範囲に更新する。具体的に、図３に示す、レンジ情報ｒｇの最小値「Ｘｍｉｎ」は、実際の最小値「ｍｉｎ」以下の値であって、レンジ情報ｒｇの最大値「Ｘｍａｘ」は、実際の最大値「ｍａｘ」以上の値である。
【００３４】
レンジ情報ｒｇが実際の値範囲を包含していることにより、アクセスプログラムは、レンジ情報ｒｇに基づいて、検索漏れを生じさせることなく検索処理を行うことができる。つまり、アクセスプログラムは、図３に示すレンジ情報「Ｘｍｉｎ≦Ｘ≦Ｘｍａｘ」ｒｇに基づいて、正確に検索処理を行うことができる。このように、本実施の形態におけるレンジ情報「Ｘｍｉｎ≦Ｘ≦Ｘｍａｘ」ｒｇは、必ずしもパーティション２０の実際の値範囲「ｍｉｎ≦Ｘ≦ｍａｘ」と一致していなくてもよく、レンジ情報ｒｇが実際の値範囲を含んでいればよい。
【００３５】
一方、レンジ情報「Ｘｍｉｎ≦Ｘ≦Ｘｍａｘ」ｒｇの、実際の値範囲「ｍｉｎ≦Ｘ≦ｍａｘ」からの差が大きくなると、レンジ情報ｒｇに基づくパーティション２０のフィルタリングの精度が低下してしまう。即ち、レンジ情報ｒｇが、パーティション２０の実際の値範囲を含むものの、実際の値範囲との差異が大きくなると、検索処理を省略可能なパーティション２０を検索処理の対象外にできないケースが増加する。これにより、無用な検索処理が生じ、検索処理の性能を十分に向上できない場合がある。
【００３６】
したがって、本実施の形態のアクセスプログラムは、削除後のパーティション２０のデータのスキャン処理を行うことなく、レンジ情報ｒｇを、実際の値範囲を包含し実際の値範囲とかけ離れない値範囲に更新する。
【００３７】
具体的に、本実施の形態におけるアクセスプログラムは、パーティション内のデータの削除の際に、対象のパーティション２０のデータ数ｃｎ及び所定の項目の合計値ｔｌとを更新する。そして、アクセスプログラムは、更新したデータ数ｃｎおよびレンジ情報ｒｇの最大値「Ｘｍａｘ」または最小値「Ｘｍｉｎ」に基づく所定の項目の合計値と、更新した所定項目の合計値ｔｌとの差を、削除後のパーティション２０の最小値または最大値として算出する。そして、アクセスプログラムは、算出した最小値がレンジ情報ｒｇの最小値「Ｘｍｉｎ」を超えるか否か、または、算出した最大値がレンジ情報ｒｇの最大値「Ｘｍａｘ」未満であるか否かを判定し、判定に応じてレンジ情報ｒｇを更新する。
【００３８】
つまり、本実施の形態におけるアクセスプログラムは、既存のレンジ情報ｒｇと、削除後のパーティション２０のデータ数ｃｎ及び所定の項目の合計値ｔｌとに基づく計算処理によって、削除後のパーティション２０の最小値または最大値の推定値を算出する。そして、アクセスプログラムは、算出した最小値または最大値と、既存のレンジ情報ｒｇとの比較結果に応じて、レンジ情報ｒｇを更新する。処理の詳細については、図６〜図９にしたがって後述する。
【００３９】
これにより、本実施の形態におけるアクセスプログラムは、削除後のパーティション２０のデータ全てを逐一スキャンすることなく、簡易に、実際の値範囲を包含し実際の値範囲とかけ離れていない値範囲に、レンジ情報ｒｇを更新できる。したがって、アクセスプログラムは、レンジ情報ｒｇの更新の際の負荷を抑えながら、レンジ情報ｒｇに基づいて、検索漏れを回避し無用な検索処理の発生を抑制できる。
【００４０】
次に、図４、図５にしたがって、本実施の形態におけるデータベースシステムのハードウェア構成、及び、ソフトウェアブロック図を説明する。
【００４１】
［データベースシステムのハードウェア構成］
図４は、図１、図２に示したデータベースを有するデータベースシステム４００のハードウェア構成図である。図４において、図１、図２で示したものと同一のものは、同一の記号で示す。
【００４２】
図４に示すデータベースシステム４００は、例えば、ストレージ装置（記憶装置）３００と、情報処理装置１００とを有する。ストレージ装置３００は、データベース格納領域３０を有する。データベース格納領域３０のデータベース（以下、データベース３０と称する）は、図１、図２で説明したように、複数のパーティション２０−１〜２０−３を有する。パーティション２０−１〜２０−３のそれぞれは、複数のデータを有し、当該複数のデータの所定の項目の値のレンジ情報ｒｇ（図１、図２）を有する。また、パーティション２０−１〜２０−３のそれぞれは、データ数ｃｎ（図１、図２）、及び、データの合計値ｔｌ（図１、図２）の情報を有する。
【００４３】
なお、図１、図２では、各パーティション２０−１〜２０−３のそれぞれが１つの項目のレンジ情報ｒｇ−１〜ｒｇ−３を有する場合を例示した。ただし、各パーティション２０−１〜２０−３は、複数の項目についてそれぞれ、レンジ情報ｒｇ、データ数ｃｎおよび合計値ｔｌを有していてもよい。
【００４４】
図４に示す情報処理装置１００は、例えば、ＣＰＵ（Central Processing Unit：ＣＰＵ）１０１、ＲＡＭ（Random Access Memory：ＲＡＭ）２０１や不揮発性メモリ２０２等を備えるメモリ１０２、通信インタフェース部１０３を有する。各部は、バス１０４を介して相互に接続する。
【００４５】
ＣＰＵ１０１は、バス１０４を介してメモリ１０２等と接続するとともに、情報処理装置１００全体の制御を行う。通信インタフェース部１０３は、インターネット等を介して、他の装置（図示せず）と接続する。メモリ１０２のＲＡＭ２０１は、ＣＰＵ１０１が処理を行うデータ等を記憶する。
【００４６】
メモリ１０２の不揮発性メモリ２０２は、ＣＰＵ１０１が実行するＯＳ（Operating System：ＯＳ）のプログラムを格納する領域（図示せず）を備える。また、不揮発性メモリ２０２は、アプリケーションプログラム格納領域２１０と、アクセスプログラム格納領域２１１とを備える。不揮発性メモリ２０２は、例えば、ＨＤＤ（Hard disk drive：ＨＤＤ）、不揮発性半導体メモリ等を示す。
【００４７】
アプリケーションプログラム格納領域２１０のアプリケーションプログラム（以下、アプリケーションプログラム２１０と称する）は、ＣＰＵ１０１の実行によって、アプリケーションプログラムの処理を実現する。アクセスプログラム格納領域２１１のアクセスプログラム（以下、アクセスプログラム２１１と称する）は、ＣＰＵ１０１の実行によって、アクセスプログラムの処理を実現する。
【００４８】
アプリケーションプログラム２１０は、任意の処理に応じて、ストレージ装置３００が格納するデータベース３０に対するアクセス要求をアクセスプログラム２１１に発行する。アクセスプログラム２１１は、アプリケーションプログラム２１０からのアクセス要求に応答して、データベース３０へのアクセス処理を行う。アクセスプログラム２１１の処理の詳細については、図５にしたがって説明する。
【００４９】
［情報処理装置のソフトウェアブロック］
図５は、図４に示した情報処理装置１００のアクセスプログラム２１１のソフトウェアブロックの構成図である。図５において、図４で示したものと同一のものは、同一の記号で示す。図５に示すように、アクセスプログラム２１１は、例えば、アクセスモジュール１１、レンジ情報更新モジュール（データベースプログラム）１２を有する。
【００５０】
アクセスモジュール１１は、図４に示したアプリケーションプログラム２１０からのアクセス要求に応答して、データベース３０へのアクセス処理を行う。アクセスモジュール１１は、例えば、データベース３０へのデータの新規追加、更新、及び、データベース３０からのデータの検索、削除等の処理を行う。図１、図２で説明したとおり、アクセスモジュール１１は、レンジ情報ｒｇ−１〜ｒｇ−３を参照して、アクセス対象のパーティション２０−１〜２０−３を判定する。また、アクセスモジュール１１は、データベース３０に対するアクセス処理に応じて、レンジ情報更新モジュール１２を呼び出す。
【００５１】
レンジ情報更新モジュール１２は、アクセス処理に応じて、アクセス対象のパーティション２０−１〜２０−３のデータ数ｃｎ及び合計値ｔｌを更新する。そして、レンジ情報更新モジュール１２は、更新したデータ数ｃｎ及び合計値ｔｌに基づいて、アクセス対象のパーティション２０−１〜２０−３のレンジ情報ｒｇ−１〜ｒｇ−３の更新処理を行う。例えば、レンジ情報更新モジュール１２は、データの新規追加、更新処理に伴う、レンジ情報ｒｇが含んでいない値を有するデータの追加に応答して、当該値を含むようにレンジ情報ｒｇを更新する。また、レンジ情報更新モジュール１２は、データの削除、更新処理に伴うデータの削除に応答して、削除後のパーティション２０の最小値または最大値を算出し、算出した最小値または最大値と既存のレンジ情報ｒｇとの比較に応じてレンジ情報ｒｇを更新する。
【００５２】
以下、図４に示したハードウェア構成が処理する処理内容を、図５に示したソフトウェアのモジュール１１、１２を用いて、順次、説明する。まず、図６、図７にしたがって、削除後のパーティション２０の最小値を算出し、算出した最小値に応じてレンジ情報ｒｇを更新する処理を説明する。次に、図８、図９にしたがって、削除後のパーティション２０の最大値を算出し、算出した最大値に応じてレンジ情報ｒｇを更新する処理を説明する。
【００５３】
［最小値の算出］
図６は、図５に示したレンジ情報更新モジュール１２による、削除後のパーティション２０の所定の項目の最小値の算出処理を説明する図である。図６に示すパーティション２０は、削除条件にしたがって、データを削除した後のパーティション２０を示す。図６に示す削除後のパーティション２０は、４つのデータｄｔ１１〜ｄｔ１４を有する。なお、実際のパーティション２０は多量のデータを有するが、図６は説明のために簡易な例を示す。
【００５４】
レンジ情報更新モジュール１２は、データの削除を契機に、削除したパーティション２０のデータ数ｃｎ及び所定の項目の合計値ｔｌを、削除後の情報に更新する。そして、レンジ情報更新モジュール１２は、既存のレンジ情報ｒｇの最大値「Ｘｍａｘ」と、削除後のパーティション２０のデータ数ｃｎと、合計値ｔｌとに基づいて、最小値「Ｔｍｉｎ」を算出する。つまり、レンジ情報更新モジュール１２は、計算処理によって、削除後のパーティション２０の最小値の推定値「Ｔｍｉｎ」を算出する。
【００５５】
レンジ情報更新モジュール１２は、式１「Ｔｍｉｎ＝Ｓ−｛Ｘｍａｘ×（Ｎ−１）｝」にしたがって、最小値「Ｔｍｉｎ」を算出する。式１の値「Ｓ」は、削除後のパーティション２０の所定の項目の実際の合計値ｔｌを示す。また、式１の値の「Ｎ」は、削除後のパーティション２０の実際のデータ数ｃｎを示す。
【００５６】
式１の部分式「Ｘｍａｘ×（Ｎ−１）」は、削除後のパーティション２０のデータのうち１のデータ以外の他のデータの値を、レンジ情報ｒｇの最大値「Ｘｍａｘ」と仮定した場合の、当該他のデータの合計値を示す。したがって、当該他のデータの合計値と、削除後のパーティション２０のデータの合計値「Ｓ」ｔｌとの差「Ｓ−｛Ｘｍａｘ×（Ｎ−１）｝」は、他のデータが最大値「Ｘｍａｘ」をとる場合における、１のデータの値「Ｔｍｉｎ」を示す。他のデータが最大値をとることから、１のデータは最小値をとるデータといえる。
【００５７】
実際には、他のデータは、最大値「Ｘｍａｘ」か、最大値「Ｘｍａｘ」より小さい値をとる。したがって、算出した１のデータの値「Ｔｍｉｎ」は、削除後のパーティション２０の最小値がとり得る下限値であるといえる。図６に示す矢印ｐ１は、最小値をとる１のデータと、最大値「Ｘｍａｘ」をとる他のデータの値の合計値との境界を示す。即ち、１のデータの実際の値は、矢印ｐ１が示す値「Ｔｍｉｎ」以上の値となる。
【００５８】
図６のデータ例によると、削除後のパーティション２０のデータｄｔ１１〜ｄｔ１４の合計値「Ｓ」ｔｌは、値「３２（＝１０＋１０＋８＋４）」である。また、削除後のパーティション２０のデータｄｔ１１〜ｄｔ１４の数「Ｎ」ｃｎは、値「４」である。また、図６の例における、レンジ情報ｒｇの最大値「Ｘｍａｘ」は値「１０」である。したがって、式１によると、削除後のパーティション２０の最小値の下限値「Ｔｍｉｎ」は、値「２（＝３２−｛１０×３｝）」である。
【００５９】
このように、レンジ情報更新モジュール１２は、他のデータのレンジ情報ｒｇの最大値「Ｘｍａｘ」に基づく合計値と、削除後のパーティション２０の値の合計値「Ｓ」ｔｌとの差に基づいて、削除後のパーティション２０の最小値の下限値を簡易に算出できる。レンジ情報更新モジュール１２は、最小値の下限値「Ｔｍｉｎ」を、削除後のパーティション２０の最小値として推定する。そして、レンジ情報更新モジュール１２は、算出した最小値「Ｔｍｉｎ」が、既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ」を超える場合に、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を、算出した最小値「Ｔｍｉｎ」に更新する。更新処理の詳細については、図７にしたがって後述する。
【００６０】
なお、式１は、式２「Ｘａ＝Ｔｍｉｎ＋｛Ｘｍａｘ×（Ｎ−１）−Σｉ（ｉ≠ａ）Ｘｉ｝」に変換可能である。式２の値「Ｘａ」は、削除後のパーティション２０のデータの実際の最小値「ｍｉｎ」（図３）である。また、式２の値「Σｉ（ｉ≠ａ）Ｘｉ」は、削除後のパーティション２０のデータのうち、最小値を有する１のデータを除く他のデータの実際の合計値である。また、式２の値「Ｔｍｉｎ」、及び、値「Ｎ」ｃｎは、式１と同一である。
【００６１】
前述した式１によると、値「Ｔｍｉｎ」は、合計値「Ｓ」ｔｌと値「Ｘｍａｘ×（Ｎ−１）」の差分である。したがって、式２の、値「Ｔｍｉｎ」と値「Ｘｍａｘ×（Ｎ−１）」との加算式は、値「Ｓ」ｔｌに置き換え可能である。このため、式２の部分式「Ｔｍｉｎ＋｛Ｘｍａｘ×（Ｎ−１）−Σｉ（ｉ≠ａ）Ｘｉ｝」は、合計値「Ｓ」ｔｌと、最小値を有する１のデータを除く他のデータの実際の合計値と、の差分、即ち、削除後のパーティション２０のデータの実際の最小値「Ｘａ」を示す。したがって、式２は、式１を置き換えた式であるといえる。
【００６２】
式２に基づいて、値「Ｔｍｉｎ」が、実際の最小値「Ｘａ（＝ｍｉｎ）」の下限値であることを証明可能である。式２の部分式「｛Ｘｍａｘ×（Ｎ−１）−Σｉ（ｉ≠ａ）Ｘｉ｝」は、他のデータが仮にレンジ情報ｒｇの最大値「Ｘｍａｘ」をとる場合の合計値「Ｘｍａｘ×（Ｎ−１）」と、他のデータの実際の合計値「Σｉ（ｉ≠ａ）Ｘｉ」との差を示す。値「Ｘｍａｘ」は最大値であることから、値「Ｘｍａｘ×（Ｎ−１）」は、値「Σｉ（ｉ≠ａ）Ｘｉ」以上の値になる。したがって、部分式「｛Ｘｍａｘ×（Ｎ−１）−Σｉ（ｉ≠ａ）Ｘｉ｝」の結果値は、正の値を示す。即ち、式２は、式「Ｘａ＝Ｔｍｉｎ＋｛正の値｝」に置き換え可能である。
【００６３】
式「Ｘａ＝Ｔｍｉｎ＋｛正の値｝」は、実際の最小値「Ｘａ」が、値「Ｔｍｉｎ」に正の値を加算した値であることを示す。実際の最小値「Ｘａ」が値「Ｔｍｉｎ」に正の値を加算した値であることは、値「Ｘａ」が値「Ｔｍｉｎ」以上の値であることを示す。つまり、式「Ｘａ＝Ｔｍｉｎ＋｛正の値｝」は、値「Ｔｍｉｎ」が、実際の最小値「Ｘａ（＝ｍｉｎ）」の下限値であることを示す。
【００６４】
このように、式１を置き換えた式２に基づいて、値「Ｔｍｉｎ」が、実際の最小値「Ｘａ（＝ｍｉｎ）」の下限値であることを証明可能である。次に、図７にしたがって、別のデータ例に基づく、レンジ情報ｒｇの最小値「Ｘｍｉｎ」の更新処理の詳細を説明する。
【００６５】
［最小値の更新］
図７は、図５に示したレンジ情報更新モジュール１２による、レンジ情報ｒｇの最小値「Ｘｍｉｎ」の更新処理を説明する図である。図７は、図６とは異なるデータの例を示す。
【００６６】
図７に示す、削除前のパーティション２０は、５つのデータｄｔ２１〜ｄｔ２５を有する。具体的に、第１〜第３のデータｄｔ２１〜ｄｔ２３は値「９」を有し、第４のデータｄｔ２４は値「８」を有する。また、第５のデータｄｔ２５は値「３」を有する。また、図７の例における、削除前のパーティション２０のレンジ情報ｒｇは値範囲「３（Ｘｍｉｎ）≦Ｘ≦１０（Ｘｍａｘ）」である。一方、削除前のパーティション２０の実際の値範囲は、値範囲「３（ｍｉｎ）≦Ｘ≦９（ｍａｘ）」である。したがって、図７の例における、レンジ情報ｒｇの最大値「１０（Ｘｍａｘ）」は、実際の値範囲の最大値「９（ｍａｘ）」と一致していない。
【００６７】
なお、レンジ情報ｒｇの最大値「Ｘｍａｘ」が、実際の値範囲の最大値「ｍａｘ」と一致していない場合であっても、算出する最小値「Ｔｍｉｎ」は、実際の最小値「ｍｉｎ」より大きな値にはなり得ない。即ち、算出する最小値「Ｔｍｉｎ」は、実際の最小値「ｍｉｎ」の下限値になる。
【００６８】
前述したとおり、本実施の形態において、レンジ情報ｒｇは、実際の値範囲を包含する値範囲である。即ち、レンジ情報ｒｇの最大値「Ｘｍａｘ」は、実際の最大値「ｍａｘ」以上の値である。図６に示した式１に基づいて最小値「Ｔｍｉｎ」を算出する場合、レンジ情報ｒｇの最大値「Ｘｍａｘ」が実際の最大値「ｍａｘ」以上の値であることから、算出した最小値「Ｔｍｉｎ」は、実際の最小値「ｍｉｎ」以下の値になる。したがって、算出した最小値「Ｔｍｉｎ」は、実際の最小値「ｍｉｎ」の下限値となり得る。
【００６９】
図７は、点線で示す第５のデータｄｔ２５の削除に応答して、レンジ情報ｒｇを更新する場合を例示する。削除後の４つのデータｄｔ２１〜ｄｔ２４の所定の項目の合計値「Ｓ」ｔｌは、値「３５（＝９＋９＋９＋８）」である。また、削除後のデータｄｔ２１〜ｄｔ２４の数「Ｎ」ｃｎは、値「４」である。また、前述したとおり、レンジ情報ｒｇの最大値「Ｘｍａｘ」は、値「１０」である。
【００７０】
したがって、レンジ情報更新モジュール１２は、図６で説明した式１に基づいて、削除後のパーティション２０の最小値「Ｔｍｉｎ：５（＝３５−｛１０×３｝）」を算出する。次に、レンジ情報更新モジュール１２は、式３「Ｘｍｉｎ_ｎｅｗ＝ｍａｘ（Ｘｍｉｎ，Ｔｍｉｎ）」にしたがって、レンジ情報ｒｇを更新するか否かを判定する。式３は、既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ」と、式１に基づいて算出した最小値「Ｔｍｉｎ」のうち、より大きい値をレンジ情報ｒｇの新たな最小値「Ｘｍｉｎ_ｎｅｗ」に更新する式を示す。つまり、レンジ情報更新モジュール１２は、式３にしたがって、算出した最小値「Ｔｍｉｎ」が、既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ」を上回る値である場合に、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を更新する。
【００７１】
図６で説明したとおり、算出した最小値「Ｔｍｉｎ」は、最小値の下限値である。算出した最小値「Ｔｍｉｎ」が、既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ」より大きい場合、データの削除に応じて、最小値の下限値が既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ」を上回ったことを示す。したがって、算出した最小値「Ｔｍｉｎ」が、既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ」より大きい場合、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を更新する。これにより、レンジ情報更新モジュール１２は、更新後のレンジ情報ｒｇの最小値「Ｘｍｉｎ」を、実際の最小値「ｍｉｎ」と同一、または、最小値「ｍｉｎ」以下の近似値に更新できる。
【００７２】
図７の例によると、算出した最小値「Ｔｍｉｎ：５」は、既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ：３」より大きい。したがって、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を、値「５（Ｘｍｉｎ_ｎｅｗ）」に更新する。図７の例によると、第５のデータｄｔ２５の削除に応じて、パーティション２０の実際の最小値「ｍｉｎ」は、値「３」から値「８」に遷移する。これに対し、レンジ情報更新モジュール１２は、スキャン処理を行うことなく、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を、実際の最小値「８」以下の近似値「５」に更新できる。
【００７３】
このように、レンジ情報更新モジュール１２は、データの削除後の最小値の下限値がレンジ情報ｒｇの最小値「Ｘｍｉｎ」を上回る場合には、レンジ情報ｒｇを更新する。レンジ情報更新モジュール１２は、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を算出した最小値の下限値に更新することにより、レンジ情報ｒｇを、実際の値範囲を包含するとともに、実際の値範囲とかけ離れない値範囲に更新できる。
【００７４】
したがって、レンジ情報更新モジュール１２は、スキャン処理を行うことなく、レンジ情報ｒｇを、実際の値範囲を包含し実際の値範囲とかけ離れない値範囲に更新できる。つまり、レンジ情報更新モジュール１２は、レンジ情報ｒｇを更新する際の負荷を抑えながら、レンジ情報ｒｇを、検索漏れを回避し無用な検索処理の発生を抑制可能な値範囲に更新できる。これにより、レンジ情報更新モジュール１２は、レンジ情報ｒｇを更新する際の負荷を抑えながら、レンジ情報ｒｇに基づくデータベース３０の検索処理の効率化を実現可能にする。また、レンジ情報ｒｇの更新の際の負荷が抑えられることにより、データベースシステム４００で並列して動作する他の処理に、ＣＰＵ１０１（図４）の資源を、より多く割り当てることが可能になる。
【００７５】
また、パーティション２０のデータの値の分布に偏りがない場合、端の値を有するデータを削除（更新）したとしても、実際の値範囲は大きく変化しない。つまり、データの値の分布に偏りがないパーティション２０のデータを削除した場合、仮に、スキャン処理を行ってレンジ情報ｒｇを更新したとしても、レンジ情報ｒｇは大きく変化しない。したがって、値の分布に偏りがないパーティション２０のデータを削除する場合、スキャン処理を行わないことによる、レンジ情報ｒｇに対する影響は小さい。
【００７６】
一方、データベース３０へのアクセスが継続すると、パーティション２０のデータの値の分布に偏りが生じる場合がある。データの値の分布がいずれかの方向に偏っており、分布が少ない方の端値を有するデータを削除（更新）する場合、実際の値範囲が大きく変化し得る。レンジ情報更新モジュール１２は、算出した最小値「Ｔｍｉｎ」とレンジ情報ｒｇの最小値「Ｘｍｉｎ」とを比較してレンジ情報ｒｇが大きく変化したか否かを判定し、変化したと判定した場合にレンジ情報ｒｇを更新する。これにより、実際の値範囲が大きく変化する場合、レンジ情報更新モジュール１２は、実際の値範囲を包含し実際の値範囲とかけ離れない値範囲に、レンジ情報ｒｇを更新できる。
【００７７】
このように、レンジ情報更新モジュール１２は、データの削除に応じてレンジ情報ｒｇが大きく変化しない場合はレンジ情報ｒｇを更新せず、大きく変化する場合には、レンジ情報ｒｇを、簡易な計算処理にしたがって生成した値範囲に更新する。これにより、レンジ情報更新モジュール１２は、スキャン処理を行うことなく、レンジ情報ｒｇを所定の精度を有する値範囲に更新できる。
【００７８】
前述した図２の例によると、レンジ情報更新モジュール１２は、パーティション２０−１の各データをスキャンすることなく、レンジ情報ｒｇ−１を、実際の値範囲「７≦Ｘ≦１０」を含み当該値範囲と一致するか、かけ離れない値範囲に更新できる。
【００７９】
なお、スキャン処理による負荷は、パーティション２０が有するデータ数の増加に伴って、増大する。したがって、本実施の形態におけるレンジ情報更新モジュール１２の処理は、パーティション２０が有するデータ数が多い場合に、特に有効である。
【００８０】
また、本実施の形態のレンジ情報ｒｇの更新処理は、特に、更新処理や削除処理が連続的に発生する場合に有効である。更新処理や削除処理が連続的に発生する場合、レンジ情報ｒｇの更新の都度、スキャン処理が発生することにより、負荷が大幅に上昇する。これにより、データベースシステム４００で並行して動作する他の処理の性能に影響が生じてしまう。これに対し、本実施の形態のレンジ情報更新モジュール１２は、レンジ情報ｒｇの更新時にスキャン処理を行わないため、更新処理や削除処理が連続的に発生する場合であっても、負荷の上昇を抑えることができる。
【００８１】
［最大値の算出］
図８は、図５に示したレンジ情報更新モジュール１２による、削除後のパーティション２０の所定の項目の最大値の算出処理を説明する図である。図８に示す、削除後のパーティション２０の４つのデータｄｔ１１〜ｄｔ１４は、図６の例と同一である。
【００８２】
レンジ情報更新モジュール１２は、データの削除を契機に、削除したパーティション２０のデータ数ｃｎ及び所定の項目の合計値ｔｌを、削除後の情報に更新する。そして、レンジ情報更新モジュール１２は、既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ」と、削除後のパーティション２０のデータ数ｃｎと、合計値ｔｌとに基づいて、最大値「Ｔｍａｘ」を算出する。つまり、レンジ情報更新モジュール１２は、計算処理によって、削除後のパーティション２０の最大値の推定値「Ｔｍａｘ」を算出する。
【００８３】
レンジ情報更新モジュール１２は、式４「Ｔｍａｘ＝Ｓ−｛Ｘｍｉｎ×（Ｎ−１）｝」にしたがって、最大値「Ｔｍａｘ」を算出する。式４の値「Ｓ」ｔｌ、及び、値「Ｎ」ｃｎは、図６で説明した式１と同様である。
【００８４】
式４の部分式「Ｘｍｉｎ×（Ｎ−１）」は、削除後のパーティション２０のデータのうち１のデータ以外の他のデータの値を、レンジ情報ｒｇの最小値「Ｘｍｉｎ」と仮定した場合の、当該他のデータの合計値を示す。したがって、当該他のデータの合計値と、削除後のパーティション２０のデータの合計値「Ｓ」ｔｌとの差「Ｓ−｛Ｘｍｉｎ×（Ｎ−１）｝」は、他のデータが最小値「Ｘｍｉｎ」をとる場合における、１のデータの値「Ｔｍａｘ」を示す。他のデータが最小値をとることから、１のデータは最大値をとるデータといえる。
【００８５】
実際には、他のデータは、最小値「Ｘｍｉｎ」か、最小値「Ｘｍｉｎ」より大きい値をとる。したがって、算出した１のデータの値「Ｔｍａｘ」は、削除後のパーティション２０の最大値がとり得る上限値であるといえる。図８に示す矢印ｐ２は、最大値をとる１のデータと、最小値「Ｘｍｉｎ」をとる他のデータの値の合計値との境界を示す。即ち、１のデータの実際の値は、矢印ｐ２が示す値「Ｔｍａｘ」以下の値となる。
【００８６】
図６で説明したように、削除後のパーティション２０の各データｄｔ１１〜ｄｔ１４の合計値「Ｓ」ｔｌは、値「３２（＝１０＋１０＋８＋４）」であって、データ数を示す値「Ｎ」ｃｎは、値「４」である。また、図８の例における、レンジ情報ｒｇの最小値「Ｘｍｉｎ」は値「４」である。したがって、式４によると、削除後のパーティション２０の最大値の上限値「Ｔｍａｘ」は、値「２０（＝３２−｛４×３｝）」である。
【００８７】
このように、レンジ情報更新モジュール１２は、他のデータのレンジ情報ｒｇの最小値「Ｘｍｉｎ」に基づく合計値と、削除後のパーティション２０の値の合計値「Ｓ」ｔｌとの差に基づいて、削除後のパーティション２０の最大値の上限値を簡易に算出できる。レンジ情報更新モジュール１２は、最大値の上限値「Ｔｍａｘ」を、削除後のパーティション２０の最大値として推定する。そして、レンジ情報更新モジュール１２は、算出した最大値「Ｔｍａｘ」が、既存のレンジ情報ｒｇの最大値「Ｘｍａｘ」未満の場合に、レンジ情報ｒｇの最大値「Ｘｍａｘ」を、算出した最大値「Ｔｍａｘ」に更新する。
【００８８】
次に、図９にしたがって、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理の詳細を説明する。
【００８９】
［最大値の更新］
図９は、図５に示したレンジ情報更新モジュール１２による、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理を説明する図である。図９は、図８とは異なるデータの例を示す。
【００９０】
図９に示す、削除前のパーティション２０は、４つのデータｄｔ３１〜ｄｔ３４を有する。第１のデータｄｔ３１は値「９」を有し、第２のデータｄｔ３２は値「５」を有する。また、第３、第４のデータｄｔ３３、ｄｔ３４は値「３」を有する。また、図９の例における、削除前のパーティション２０のレンジ情報ｒｇは値範囲「３（Ｘｍｉｎ）≦Ｘ≦１０（Ｘｍａｘ）」である。一方、削除前のパーティション２０の実際の値範囲は、値範囲「３（ｍｉｎ）≦Ｘ≦９（ｍａｘ）」である。図７の例と同様にして、レンジ情報ｒｇの最大値「１０（Ｘｍａｘ）」は、実際の値範囲の最大値「９（ｍａｘ）」と一致していない。
【００９１】
図９は、点線で示す第１のデータｄｔ３１の削除に応答して、レンジ情報ｒｇを更新する場合を例示する。削除後の３つのデータｄｔ３２〜ｄｔ３４の所定の項目の合計値「Ｓ」ｔｌは、値「１１（＝５＋３＋３）」である。また、削除後のパーティション２０のデータｄｔ３２〜ｄｔ３４の数「Ｎ」ｃｎは、値「３」である。また、前述したとおり、レンジ情報ｒｇの最小値「Ｘｍｉｎ」は、値「３」である。
【００９２】
したがって、レンジ情報更新モジュール１２は、図８に示した式４に基づいて、削除後のパーティション２０の最小値「Ｔｍａｘ：５（＝１１−｛３×２｝）」を算出する。次に、レンジ情報更新モジュール１２は、式５「Ｘｍａｘ_ｎｅｗ＝ｍｉｎ（Ｘｍａｘ，Ｔｍａｘ）」にしたがって、レンジ情報ｒｇを更新するか否かを判定する。式５は、既存のレンジ情報ｒｇの最大値「Ｘｍａｘ」と、式４に基づいて算出した最大値「Ｔｍａｘ」のうち、より小さい値をレンジ情報ｒｇの新たな最大値「Ｘｍａｘ_ｎｅｗ」に更新する式を示す。つまり、レンジ情報更新モジュール１２は、式５にしたがって、算出した最大値「Ｔｍａｘ」が、既存のレンジ情報ｒｇの最大値「Ｘｍａｘ」を下回る値である場合に、レンジ情報ｒｇの最大値「Ｘｍａｘ」を更新する。
【００９３】
図８で説明したとおり、算出した最大値「Ｔｍａｘ」は、最大値の上限値である。算出した最大値「Ｔｍａｘ」が、既存のレンジ情報ｒｇの最大値「Ｘｍａｘ」より小さい場合、データの削除に応じて、最大値の上限値が既存のレンジ情報ｒｇの最大値「Ｘｍａｘ」を下回ったことを示す。したがって、算出した最大値「Ｔｍａｘ」が、既存のレンジ情報ｒｇの最大値「Ｘｍａｘ」より小さい場合、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最大値「Ｘｍａｘ」を更新する。これにより、レンジ情報更新モジュール１２は、更新後のレンジ情報ｒｇの最大値「Ｘｍａｘ」を、実際の最大値「ｍａｘ」と同一、または、最大値「ｍａｘ」以上の近似値に更新できる。
【００９４】
図９の例によると、算出した最大値「Ｔｍａｘ：５」は、既存のレンジ情報ｒｇの最大値「Ｘｍａｘ：１０」より小さい。したがって、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最大値「Ｘｍａｘ」を、値「５（Ｘｍａｘ_ｎｅｗ）」に更新する。図９の例によると、第１のデータｄｔ３１の削除に応じて、パーティション２０の実際の最大値「ｍａｘ」は、値「９」から値「５」に遷移する。これに対し、レンジ情報更新モジュール１２は、スキャン処理を行うことなく、レンジ情報ｒｇの最大値「Ｘｍａｘ」を、実際の最大値と同一の値に更新できる。
【００９５】
このように、レンジ情報更新モジュール１２は、データの削除後の最大値の上限値がレンジ情報ｒｇの最大値「Ｘｍａｘ」を下回る場合には、レンジ情報ｒｇを更新する。レンジ情報更新モジュール１２は、レンジ情報ｒｇの最大値「Ｘｍａｘ」を算出した最大値の上限値に更新することにより、レンジ情報ｒｇを、実際の値範囲を包含するとともに、実際の値範囲とかけ離れない値範囲に更新できる。
【００９６】
したがって、レンジ情報更新モジュール１２は、スキャン処理を行うことなく、レンジ情報ｒｇを、実際の値範囲を包含し実際の値範囲とかけ離れない値範囲に更新できる。つまり、レンジ情報更新モジュール１２は、レンジ情報ｒｇを更新する際の負荷を抑えながら、レンジ情報ｒｇを、検索漏れを回避し無用な検索処理の発生を抑制可能な値範囲に更新できる。図８、図９に示す、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理にかかる効果は、図６、図７で説明した、レンジ情報ｒｇの最小値「Ｘｍｉｎ」の更新処理にかかる効果と同様である。
【００９７】
なお、図６〜図９は、所定の項目の値「Ｘ」が値「３」〜値「９」をとる場合を例示した。ただし、パーティション２０のデータの値の分布は、値「Ｘ」がより大きい幅の値をとる場合に偏り易い。したがって、本実施の形態におけるレンジ情報更新モジュール１２によると、値「Ｘ」がより大きい幅の値をとる場合、図６〜図９に示すレンジ情報ｒｇの更新が生じ易い。
【００９８】
また、本実施の形態では、所定の項目の値「Ｘ」が数値をとる場合を例示した。ただし、本実施の形態のレンジ情報更新モジュール１２の処理は、所定の項目の値「Ｘ」が日付や年月である場合に対しても有効である。
【００９９】
所定の項目の値「Ｘ」が日付や年月の場合、レンジ情報更新モジュール１２は、日付や年月を数値に変換し、図６〜図９に示すレンジ情報ｒｇの更新処理を行う。これにより、レンジ情報更新モジュール１２は、レンジ情報ｒｇの値「Ｘ」が日付や年月である場合についても、スキャン処理を行うことなく、レンジ情報ｒｇを、実際の値範囲を含み実際の値範囲とかけ離れない値範囲に更新できる。
【０１００】
次に、図１０にしたがって、図６〜図９で説明したレンジ情報ｒｇの更新処理の流れを、フローチャート図にしたがって説明する。
【０１０１】
［レンジ情報の更新処理の流れ］
図１０は、図５で説明したアクセスプログラム２１１による、レンジ情報ｒｇの更新処理（図６〜図９）の流れを説明するフローチャート図である。
【０１０２】
Ｓ１１：アクセスプログラム２１１のアクセスモジュール１１は、図５に示したアプリケーションプログラム２１０によるデータベース３０へのアクセスリクエスト（要求）を待ち受ける。アクセスリクエストは、例えば、データベース３０へのデータの新規追加、更新、及び、データベース３０からのデータの検索、削除等のリクエストである。
【０１０３】
Ｓ１２：アクセスモジュール１１は、リクエストを受け付けると、工程Ｓ１３に遷移する。
【０１０４】
Ｓ１３：アクセスモジュール１１は、受け付けたリクエストがデータの削除リクエストであるか否かを判定する。
【０１０５】
Ｓ１４：受け付けたリクエストがデータの削除以外のリクエストである場合（Ｓ１３のｎｏ）、アクセスモジュール１１は、リクエストに応じた処理を行う。即ち、アクセスモジュール１１は、データベース３０へのデータの新規追加や更新、データベース３０からのデータの検索処理等を行う。
【０１０６】
図示していないが、レンジ情報更新モジュール１２は、データベース３０へのデータの新規追加リクエストや更新リクエストに応答して、レンジ情報ｒｇを必要に応じて更新する。具体的に、レンジ情報更新モジュール１２は、新規追加リクエストや更新リクエストに伴う追加データの値が、既存のレンジ情報ｒｇに包含されない値である場合、レンジ情報ｒｇを更新する。
【０１０７】
また、データの更新リクエストは、更新対象のデータの元データの削除を含む。したがって、レンジ情報更新モジュール１２は、データの更新リクエストに伴うデータの削除に対しても、工程Ｓ１６〜Ｓ２２に示す、レンジ情報ｒｇの更新処理を行う。具体的に、レンジ情報更新モジュール１２は、データの更新リクエストに伴う削除データの所定の項目の値「Ｘ」を取得し、工程Ｓ１６に遷移する。
【０１０８】
例えば、レンジ情報更新モジュール１２は、更新リクエストに伴う追加データに応じたレンジ情報ｒｇの更新処理後に、更新リクエストに伴う削除データに応じたレンジ情報ｒｇの更新処理を行う。ただし、レンジ情報更新モジュール１２は、削除データに応じたレンジ情報ｒｇの更新処理後に、追加データに応じたレンジ情報ｒｇの更新処理を行ってもよい。
【０１０９】
Ｓ１５：一方、受け付けたリクエストがデータの削除リクエストである場合（Ｓ１３のｙｅｓ）、アクセスモジュール１１は、レンジ情報ｒｇに基づいて判定した削除対象のパーティション２０からデータを削除し、レンジ情報更新モジュール１２を呼び出す。レンジ情報更新モジュール１２は、削除したデータの所定の項目の値「Ｘ」を取得する。
【０１１０】
Ｓ１６：レンジ情報更新モジュール１２は、削除前のパーティション２０のデータの合計値「Ｓ」ｔｌから値「Ｘ」を減算し、削除後のパーティション２０のデータの合計値「Ｓ」ｔｌを取得する。また、レンジ情報更新モジュール１２は、削除前のパーティション２０のデータ数「Ｎ」ｃｎをデクリメントし、削除後のパーティション２０のデータ数「Ｎ」ｃｎを取得する。
【０１１１】
Ｓ１７：レンジ情報更新モジュール１２は、削除後のパーティション２０の最小値「Ｔｍｉｎ」を算出する。レンジ情報更新モジュール１２は、図６に示した式１にしたがって、工程Ｓ１６で取得した合計数「Ｓ」ｔｌとデータ数「Ｎ」ｃｎ、及び、レンジ情報ｒｇの最大値「Ｘｍａｘ」に基づいて、削除後のパーティション２０の最小値「Ｔｍｉｎ」を算出する。
【０１１２】
Ｓ１８：レンジ情報更新モジュール１２は、図７で説明したように、工程Ｓ１７で算出した最小値「Ｔｍｉｎ」が、レンジ情報ｒｇの最小値「Ｘｍｉｎ」より大きいか否かを判定する。
【０１１３】
Ｓ１９：算出した最小値「Ｔｍｉｎ」が、レンジ情報ｒｇの最小値「Ｘｍｉｎ」より大きい場合（Ｓ１８のｙｅｓ）、削除に応じて、削除後のパーティション２０の最小値の下限値が、既存のレンジ情報ｒｇの最小値「Ｘｍｉｎ」を上回ったことを示す。したがって、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を、算出した最小値「Ｔｍｉｎ」に更新する。
【０１１４】
工程Ｓ１９の後、レンジ情報更新モジュール１２は、レンジ情報ｒｇの更新処理を終了し、工程Ｓ１１に遷移する。つまり、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を更新した場合（Ｓ１９）、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理（Ｆ２：Ｓ２０〜Ｓ２２）を省略する。
【０１１５】
Ｓ２０：一方、算出した最小値「Ｔｍｉｎ」が、レンジ情報ｒｇの最小値「Ｘｍｉｎ」以下である場合（Ｓ１８のｎｏ）、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理（Ｆ２）を行う。まず、レンジ情報更新モジュール１２は、削除後のパーティション２０の最大値「Ｔｍａｘ」を算出する。レンジ情報更新モジュール１２は、図８に示した式４にしたがって、工程Ｓ１６で取得した合計数「Ｓ」ｔｌとデータ数「Ｎ」ｃｎ、及び、レンジ情報ｒｇの最小値「Ｘｍｉｎ」に基づいて、削除後のパーティション２０の最大値「Ｔｍａｘ」を算出する。
【０１１６】
Ｓ２１：レンジ情報更新モジュール１２は、図９で説明したように、工程Ｓ２０で算出した最大値「Ｔｍａｘ」が、レンジ情報ｒｇの最大値「Ｘｍａｘ」未満であるか否かを判定する。
【０１１７】
Ｓ２２：算出した最大値「Ｔｍａｘ」が、レンジ情報ｒｇの最大値「Ｘｍａｘ」未満である場合（Ｓ２１のｙｅｓ）、削除に応じて、削除後のパーティション２０の最大値の上限値が、既存のレンジ情報ｒｇの最大値「Ｘｍａｘ」を下回ったことを示す。したがって、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最大値「Ｘｍａｘ」を、算出した最大値「Ｔｍａｘ」に更新する。工程Ｓ２２の後、レンジ情報更新モジュール１２は、レンジ情報ｒｇの更新処理を終了し、工程Ｓ１１に遷移する。
【０１１８】
また、算出した最大値「Ｔｍａｘ」が、レンジ情報ｒｇの最大値「Ｘｍａｘ」以上である場合（Ｓ２１のｎｏ）、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新（Ｓ２２）を行わずに、工程Ｓ１１に遷移する。
【０１１９】
なお、図１０のフローチャート図では、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最小値「Ｘｍｉｎ」の更新処理（Ｆ１）の後に、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理（Ｆ２）を行う。ただし、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理（Ｆ２）の後に、レンジ情報ｒｇの最小値「Ｘｍｉｎ」の更新処理（Ｆ１）を行ってもよい。
【０１２０】
また、前述したように、本実施の形態では、データの値の分布がいずれかの方向に偏っており、分布が少ない方の端値を有するデータを削除（更新）する場合に、レンジ情報ｒｇの更新が生じ易い。したがって、本実施の形態において、データの削除に応じてレンジ情報ｒｇの最小値「Ｘｍｉｎ」または最大値「Ｘｍａｘ」のいずれか一方の更新が生じた場合、他方の更新は生じ難い。具体的に、図７の例において、データｄｔ２５の削除に応じて、レンジ情報ｒｇの最小値「Ｘｍｉｎ」の更新が生じる場合、最大値「Ｘｍａｘ」の更新は生じ難い。
【０１２１】
したがって、図１０に示すように、レンジ情報更新モジュール１２は、レンジ情報ｒｇの最小値「Ｘｍｉｎ」を更新した場合（Ｓ１９）、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理（Ｆ２）を省略する。つまり、レンジ情報更新モジュール１２は、値「Ｔｍａｘ」の算出処理（Ｓ２０）、及び、値「Ｔｍａｘ」の判定処理（Ｓ２１）を省略する。これにより、レンジ情報更新モジュール１２は、レンジ情報ｒｇの更新処理を効率化し、負荷をより低減できる。
【０１２２】
また、レンジ情報ｒｇの最大値「Ｘｍａｘ」の更新処理（Ｆ２）の後に、レンジ情報ｒｇの最小値「Ｘｍｉｎ」の更新処理（Ｆ１）を行う場合も同様である。レンジ情報更新モジュール１２は、レンジ情報ｒｇの最大値「Ｘｍａｘ」を更新した場合、レンジ情報ｒｇの最小値「Ｘｍｉｎ」の更新処理（Ｆ１）を省略してもよい。同様にして、レンジ情報更新モジュール１２は、レンジ情報ｒｇの更新処理を効率化し負荷をより低減できる。
【０１２３】
［他の実施の形態］
なお、図１０のフローチャートでは、パーティション２０のそれぞれが、１つの所定の項目のレンジ情報ｒｇを有する場合の処理を説明した。ただし、図４で前述したとおり、パーティション２０は、複数の項目について、それぞれレンジ情報ｒｇを有していてもよい。複数のレンジ情報ｒｇがある場合、レンジ情報更新モジュール１２は、データの削除に応答して、図１０の工程Ｓ１６〜Ｓ２２を、レンジ情報ｒｇのそれぞれに対して繰り返すことにより、複数のレンジ情報ｒｇを更新する。
【０１２４】
また、図１０のフローチャートは、１件のデータを削除する場合の、レンジ情報ｒｇの更新処理を説明した。ただし、レンジ情報更新モジュール１２は、複数件のデータの削除に応答して、図１０に示すレンジ情報ｒｇの更新処理を、１回、行ってもよい。
【０１２５】
複数件のデータの削除に応答してレンジ情報ｒｇを更新する場合、レンジ情報更新モジュール１２は、工程Ｓ１６において、合計値「Ｓ」ｔｌから、複数件のデータ分の値「Ｘ」を減算し、削除後のパーティション２０のデータの合計値「Ｓ」ｔｌを取得する。また、レンジ情報更新モジュール１２は、工程Ｓ１６において、複数件分、値「Ｎ」ｃｎをデクリメントする。工程Ｓ１６の後続の工程は、図１０と同様である。
【０１２６】
これにより、それぞれのデータの削除毎に、工程Ｓ１６〜Ｓ２２の処理が生じないため、計算処理が減少し、レンジ情報ｒｇの更新処理の負荷をより低減させることが可能になる。これは、データの削除処理、及び、更新処理が連続的に発生する場合に、特に有効である。
【０１２７】
なお、本実施の形態におけるレンジ情報更新モジュール１２は、データの削除に応じて実際の値範囲が大きく変化する場合に、レンジ情報ｒｇを更新する。したがって、レンジ情報更新モジュール１２は、レンジ情報ｒｇを更新したことを契機に、スキャン処理にしたがってレンジ情報ｒｇを更新してもよい。
【０１２８】
これにより、レンジ情報更新モジュール１２は、実際の値範囲が大きく変化しない場合にはスキャン処理を省いて負荷を抑えながら、変化する場合にはスキャン処理にしたがってレンジ情報ｒｇを更新できる。これにより、負荷を抑制しながら、レンジ情報ｒｇの精度を向上させることが可能になる。
【０１２９】
なお、本実施の形態では、データベース３０が複数のパーティション２０に分割されている場合の各パーティション２０のレンジ情報ｒｇの更新処理を説明した。ただし、本実施の形態のレンジ情報更新モジュール１２の処理は、パーティション２０に分割されていないデータベース３０のレンジ情報ｒｇの更新処理に対しても有効である。データベース３０がパーティション２０に分割されていない場合であっても、アクセスモジュール１１は、レンジ情報ｒｇに基づいて、データベース３０自体の検索処理をフィルタリング可能である。
【０１３０】
分割されていないデータベース３０のレンジ情報ｒｇについても同様にして、レンジ情報更新モジュール１２は、図１０のフローチャート図にしたがって、レンジ情報ｒｇを更新する。これにより、レンジ情報更新モジュール１２は、スキャン処理を行わずに、レンジ情報ｒｇを更新する際の負荷を抑えることができる。
【０１３１】
以上の実施の形態をまとめると、次の付記のとおりである。
【０１３２】
（付記１）
複数のデータ群と、それぞれの前記データ群内のデータ内の所定項目の最小値及び最大値を含む範囲情報と、前記所定項目の合計値とデータ群内のデータ数を格納するデータベースを記憶する記憶装置と、
前記データ群内の第１データの削除の際に、前記所定項目の合計値と前記データ数を更新し、前記データ数および前記範囲情報の前記最大値または前記最小値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、削除後のデータ群の最小値または最大値として算出し、前記算出した最小値が前記範囲情報の最小値を超えるか否か、または、前記算出した最大値が前記範囲情報の最大値未満であるか否かを判定し、前記判定に応じて前記範囲情報を更新する処理部を有する情報処理装置と、を有することを特徴とする
データベースシステム。
【０１３３】
（付記２）
付記１において、
前記処理部は、前記範囲情報の最大値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、前記削除後のデータ群の前記最小値として算出し、前記算出した最小値が前記範囲情報の最小値を超える場合に、前記範囲情報の最小値を前記算出した最小値に更新する、
データベースシステム。
【０１３４】
（付記３）
付記１または２において、
前記処理部は、前記範囲情報の最小値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、前記削除後のデータ群の前記最大値として算出し、前記算出した最大値が前記範囲情報の最大値未満である場合に、前記範囲情報の最大値を前記算出した最大値に更新する、
データベースシステム。
【０１３５】
（付記４）
付記１乃至３のいずれかにおいて、
前記処理部は、前記範囲情報の最小値を前記削除後のデータ群の前記所定項目の最小値以下の値に、または、前記範囲情報の最大値を前記削除後のデータ群の前記所定項目の最大値以上の値に更新する、
データベースシステム。
【０１３６】
（付記５）
付記１乃至４のいずれかにおいて、
前記処理部は、前記範囲情報の最小値を更新した場合に、前記削除後のデータ群の最大値の前記算出及び前記判定を省略し、前記範囲情報の最大値を更新した場合に、前記削除後のデータ群の最小値の前記算出及び前記判定を省略する、
データベースシステム。
【０１３７】
（付記６）
付記１乃至５のいずれかにおいて、
前記処理部は、前記データ群内のデータの更新処理及び削除処理が含む前記データの削除に応答して、前記更新、前記算出及び前記判定を行う、
データベースシステム。
【０１３８】
（付記７）
付記１乃至６のいずれかにおいて、
前記記憶装置は、前記データベースが有する複数のデータを区分した前記複数のデータ群を記憶する、
データベースシステム。
【０１３９】
（付記８）
複数のデータ群と、それぞれの前記データ群内のデータ内の所定項目の最小値及び最大値を含む範囲情報と、前記所定項目の合計値とデータ群内のデータ数を格納するデータベースにアクセスする処理部と、
前記処理部が処理の実行に使用する記憶部と、を有し、
前記処理部は、前記データ群内の第１データの削除の際に、前記所定項目の合計値と前記データ数を更新し、前記データ数および前記範囲情報の前記最大値または前記最小値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、削除後のデータ群の最小値または最大値として算出し、前記算出した最小値が前記範囲情報の最小値を超えるか否か、または、前記算出した最大値が前記範囲情報の最大値未満であるか否かを判定し、前記判定に応じて前記範囲情報を更新することを特徴とする
情報処理装置。
【０１４０】
（付記９）
付記８において、
前記処理部は、前記範囲情報の最大値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、前記削除後のデータ群の前記最小値として算出し、前記算出した最小値が前記範囲情報の最小値を超える場合に、前記範囲情報の最小値を前記算出した最小値に更新する、
情報処理装置。
【０１４１】
（付記１０）
付記８または９において、
前記処理部は、前記範囲情報の最小値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、前記削除後のデータ群の前記最大値として算出し、前記算出した最大値が前記範囲情報の最大値未満である場合に、前記範囲情報の最大値を前記算出した最大値に更新する、
情報処理装置。
【０１４２】
（付記１１）
付記８乃至１０のいずれかにおいて、
前記処理部は、前記範囲情報の最小値を前記削除後のデータ群の前記所定項目の最小値以下の値に、または、前記範囲情報の最大値を前記削除後のデータ群の前記所定項目の最大値以上の値に更新する、
情報処理装置。
【０１４３】
（付記１２）
付記８乃至１１のいずれかにおいて、
前記処理部は、前記範囲情報の最小値を更新した場合に、前記削除後のデータ群の最大値の前記算出及び前記判定を省略し、前記範囲情報の最大値を更新した場合に、前記削除後のデータ群の最小値の前記算出及び前記判定を省略する、
情報処理装置。
【０１４４】
（付記１３）
付記８乃至１２のいずれかにおいて、
前記処理部は、前記データ群内のデータの更新処理及び削除処理が含む前記データの削除に応答して、前記更新、前記算出及び前記判定を行う、
情報処理装置。
【０１４５】
（付記１４）
複数のデータ群と、それぞれの前記データ群内のデータ内の所定項目の最小値及び最大値を含む範囲情報と、前記所定項目の合計値とデータ群内のデータ数を格納するデータベースの、前記データ群内の第１データの削除の際に、前記所定項目の合計値と前記データ数を更新し、
前記データ数および前記範囲情報の前記最大値または前記最小値に基づく前記所定項目の合計値を算出し、
前記範囲情報の前記最大値または前記最小値に基づく前記所定項目の合計値と、前記前記所定項目の合計値との差を、削除後のデータ群の最小値または最大値として算出し、
前記算出した最小値が前記範囲情報の最小値を超えるか否か、または、前記算出した最大値が前記範囲情報の最大値未満であるか否かを判定し、
前記判定に応じて前記範囲情報を更新する、
処理をコンピュータに実行させるデータベースプログラム。
【０１４６】
（付記１５）
付記１４において、
前記差の算出は、前記範囲情報の最大値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、前記削除後のデータ群の前記最小値として算出し、
前記更新は、前記算出した最小値が前記範囲情報の最小値を超える場合に、前記範囲情報の最小値を前記算出した最小値に更新する、
データベースプログラム。
【０１４７】
（付記１６）
付記１４または１５において、
前記差の算出は、前記範囲情報の最小値に基づく前記所定項目の合計値と、前記所定項目の合計値との差を、前記削除後のデータ群の前記最大値として算出し
前記更新は、前記算出した最大値が前記範囲情報の最大値未満である場合に、前記範囲情報の最大値を前記算出した最大値に更新する、
データベースプログラム。
【０１４８】
（付記１７）
付記１４乃至１６のいずれかにおいて、
前記更新は、前記範囲情報の最小値を前記削除後のデータ群の前記所定項目の最小値以下の値に、または、前記範囲情報の最大値を前記削除後のデータ群の前記所定項目の最大値以上の値に更新する、
データベースプログラム。
【０１４９】
（付記１８）
付記１４乃至１７のいずれかにおいて、
前記差の算出及び前記判定は、前記範囲情報の最小値を更新した場合に、前記削除後のデータ群の最大値の前記算出及び前記判定を省略し、前記範囲情報の最大値を更新した場合に、前記削除後のデータ群の最小値の前記算出及び前記判定を省略する、
データベースプログラム。
【０１５０】
（付記１９）
付記１４乃至１８のいずれかにおいて、
前記合計値と前記データ数の更新は、前記データ群内のデータの更新処理及び削除処理が含む前記データの削除に応答して、前記合計値と前記データ数とを更新する、
データベースプログラム。
【０１５１】
（付記２０）
付記１４乃至１９のいずれかにおいて、
前記合計値と前記データ数の更新は、前記データベースが有する複数のデータを区分した前記複数のデータ群を記憶するデータベースの、前記データ群内のデータの削除に応答して、前記合計値と前記データ数とを更新する、
データベースプログラム。
【符号の説明】
【０１５２】
１００：情報処理装置、４００：データベースシステム、３００：ストレージ装置、３０：データベース、２０−１〜２０−３（２０）：パーティション、ｒｇ−１〜ｒｇ−３（ｒｇ）：レンジ情報、ｔｌ−１〜ｔｌ〜３：合計値、ｃｎ−１〜ｃｎ−３：データ数、１０１：ＣＰＵ、１０２：メモリ、２０１：ＲＡＭ、２０２：不揮発性メモリ、１０３：通信インタフェース部、１０４：バス、２１０：アプリケーションプログラム、２１１：アクセスプログラム、１１：アクセスモジュール、１２：レンジ情報更新モジュール
【図１】
0006540110.tif 000002
【図２】
0006540110.tif 000003
【図３】
0006540110.tif 000004
【図４】
0006540110.tif 000005
【図５】
0006540110.tif 000006
【図６】
0006540110.tif 000007
【図７】
0006540110.tif 000008
【図８】
0006540110.tif 000009
【図９】
0006540110.tif 000010
【図１０】
0006540110.tif 000011