(57)【要約】【課題】ＢＲＩＮを利用した検索性能の低下を抑止すること。【解決手段】バックエンド部１２は、オリジナルテーブル１１へのレコードの挿入及びオリジナルテーブル１１のレコードの更新を行う際に、ＷＯＳ１３にＴＩＤを追加する。そして、変換部１４は、ＷＯＳ−ＲＯＳ変換を行う際に、ＢＲＩＮが作成されるカラムに関して特定の条件を満たすレコードだけを用いてエクステントを作成し、特定の条件を満たさないレコードはＷＯＳ１３に残す。【選択図】図３
2018180739.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
追記型の列形式のデータベースを更新するレコードに関する情報を、行型の書き込みバッファに蓄積し、
前記書き込みバッファに情報が蓄積されたレコードより、特定の条件に適合するレコードを、列形式に変換して前記データベースに追加する
処理を実行させる更新反映プログラム。
【請求項２】
前記特定の条件に適合するレコードは、前記データベースへ挿入される挿入レコードである請求項１に記載の更新反映プログラム。
【請求項３】
前記特定の条件は、前記データベースの特定の列に対するインデックスに関する条件である請求項１に記載の更新反映プログラム。
【請求項４】
空行を回収する際に、前記特定の条件に適合しないレコードを列形式に変換して前記データベースに追加する処理を前記コンピュータにさらに実行させる請求項１、２又は３に記載の更新反映プログラム。
【請求項５】
前記書き込みバッファにレコードに関する情報を蓄積する際に、前記挿入レコードであることを示す付加情報を該レコードに関する情報に付加する処理を前記コンピュータにさらに実行させ、
前記特定の条件に適合するレコードを列形式に変換して前記データベースに追加する処理は、前記付加情報を用いて前記特定の条件に適合するか否かを判定する請求項２に記載の更新反映プログラム。
【請求項６】
コンピュータが、
追記型の列形式のデータベースを更新するレコードに関する情報を、行型の書き込みバッファに蓄積し、
前記書き込みバッファに情報が蓄積されたレコードより、特定の条件に適合するレコードを、列形式に変換して前記データベースに追加する
処理を実行する更新反映方法。
【請求項７】
追記型の列形式のデータベースを更新するレコードに関する情報を、行型の書き込みバッファに蓄積する蓄積部と、
前記蓄積部により前記書き込みバッファに情報が蓄積されたレコードより、特定の条件に適合するレコードを、列形式に変換して前記データベースに追加する変換部と
を有する更新反映装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新反映プログラム、更新反映方法及び更新反映装置に関する。
【背景技術】
【０００２】
リレーショナルデータベース管理システム（Relational  Database  Management  System：ＲＤＢＭＳ）では、ＯＬＴＰ（Online  Transaction  Processing）とＯＬＡＰ（Online  Analytical  Processing）の２つの処理が行われる。ＯＬＴＰは、レコードの挿入、更新及び削除を行う処理であり、ＯＬＡＰは、すでに蓄積されたレコードに統計処理等を行う処理である。
【０００３】
図９は、ＯＬＴＰとＯＬＡＰの特徴を示す図である。図９において、行型とは、１つの行（レコード）に含まれるデータをまとめて記憶する行型のデータベースを示し、列型（カラムナ）とは、１つの列に含まれるデータをまとめて記憶する列型のデータベースを示す。
【０００４】
図９に示すように、ＯＬＴＰでは、データベースに対する更新処理が発生するが、ＯＬＡＰと比較して少数のデータに対する検索が行われる。したがって、ＯＬＴＰでは、行型を用いる方が列型を用いるより処理が速い。一方、ＯＬＡＰでは、特定の列に関する集計等で大量データの集計が行われる。したがって、ＯＬＡＰでは、列型を用いる方が行型を用いるより処理が速い。このため、レコードの挿入、更新及び削除の操作は行型のデータベースに対して行われ、日毎、週毎等非同期に行型のデータベースのデータを列型のデータベースに移す処理が行われる。
【０００５】
近年、直近の集計データをビジネスに生かすことが求められている。例えば、午前の売り上げ状況に基づいて、午後の配送計画を策定することが行われる。このため、行型のデータベースと列型のデータベースの両方の利点を備えたデータベース管理システムに対するニーズが高まっている。
【０００６】
図１０及び図１１は、行型のデータベースと列型のデータベースの両方の利点を備えたデータベース管理システムのアーキテクチャの概要を説明するための図である。図１０は、更新ＳＱＬに対する処理を説明するための図であり、図１１は、検索ＳＱＬに対する処理を説明するための図である。ここで、更新ＳＱＬは、レコードの挿入、更新又は削除を行うことによりデータベースを更新するＳＱＬであり、検索ＳＱＬはデータベースを検索するＳＱＬである。
【０００７】
図１０及び図１１に示すように、行型のデータベースと列型のデータベースの両方の利点を備えたデータベース管理システムは、ＤＢバッファ１ａを有する。ＤＢバッファ１ａは、メインメモリ上の領域であり、行型の書き込みバッファであるＷＯＳ（Write  Optimized  Store）１３と、列型のデータ構造のグローバルＲＯＳ（Read  Optimized  Store）１５を有する。
【０００８】
図１０に示すように、更新ＳＱＬに対する処理では、行型のデータベースであるオリジナルテーブル１１とＷＯＳ１３が更新ＳＱＬと同期的に更新される。そして、更新ＳＱＬとは非同期にＷＯＳ１３のデータをグローバルＲＯＳ１５に反映するＷＯＳ−ＲＯＳ変換が行われる。
【０００９】
また、検索ＳＱＬに対する処理では、図１１に示すように、ＷＯＳ１３が記憶する直近のデータが列型のローカルＲＯＳ１７ａに変換され、ローカルＲＯＳ１７ａとグローバルＲＯＳ１５に対して検索が行われる。なお、以下では、グローバルＲＯＳ１５を単にＲＯＳ１５として表す。
【００１０】
また、ＯＬＡＰでは、検索の高速化のためにＢＲＩＮ（Block-Range  Index）が用いられる。図１２は、ＢＲＩＮを説明するための図である。図１２は、カラム（column1）が１つのテーブル（tbl1）で、ブロックサイズが４である場合のＢＲＩＮを示す。
【００１１】
図１２に示すように、ブロック＃１について値の範囲は「０〜５」であり、ブロック＃２について値の範囲は「１３〜１８」であり、ブロック＃３について値の範囲は「５３〜６０」である。ＢＲＩＮでは、各ブロックに値の範囲がインデックスとして付加される。このため、例えば、「SELECT  *  FROM  tbl1  WHERE  column1  >  50;」といった検索では、検索エンジンは、インデックスを用いてブロック＃１とブロック＃２を読み飛ばすことができ、検索を高速に行うことができる。
【００１２】
ＢＲＩＮは、典型的には、カラムのデータが時系列データである場合に有効であるが、近い値が近い位置にくるようなカラムについて有効である。
【００１３】
なお、表形式のデータを列形式に分割して各レコードに含まれる要素の値に従って並び替える処理を行う複数のデータ処理部のいずれかに要素の値に応じて各レコードを分配し、各データ処理部による処理結果を結合して記憶する技術がある。この技術によれば、更新性能を向上することができる。
【００１４】
また、管理部が、更新要求に応答して、行形式で記憶される情報を更新し、列指向性データ処理部に更新要求を通知し、列指向性データ処理部は、列形式で情報を記憶し、クエリ要求に応答して、列形式で記憶される情報に基づいてクエリ応答を生成する技術がある。この技術によれば、ＯＬＴＰとＯＬＡＰの２分を解消することができる。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１５−１８５１０４号公報
【特許文献２】特表２０１０−５３９６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
図１０及び図１１に示した列型のデータベースにおいて図１２に示したＢＲＩＮを用いると、ＢＲＩＮが有効でなくなる場合がある。図１３は、ＢＲＩＮが有効な例と有効でない例を示す図である。図１３では、列型のデータベースは、取引日と商品コードを記憶する。
【００１７】
図１３（ａ）に示すように、列型のデータベースにレコードの挿入だけが行われた場合には、近い位置には近い取引日がまとまっている。このため、２０１５年の取引を集計する場合には、検索エンジンは、２０１６年の取引を読み飛ばすことができる。
【００１８】
一方、図１３（ｂ）に示すように、列型で追加型のデータベースでレコードの更新が行われた場合、更新レコードは追加されるので、近い位置に遠い取引日の行が来てしまう。図１３（ｂ）では、１行目の商品コードが更新され、新たな行が追加される。このため、２０１６年の取引に２０１５年の取引が追加され、２０１６年の取引が２０１５年〜２０１６年の取引に変更される。したがって、２０１５年の取引を集計する場合に、検索エンジンは、２０１５年〜２０１６年の取引を読み飛ばすことができない。
【００１９】
図１４Ａ及び図１４Ｂは、ＷＯＳ−ＲＯＳ変換によってＢＲＩＮが有効でなくなる例を示す図である。図１４Ａに示すように、取引日が「２０１５／１／１」〜「２０１５／１２／１５」である３つのレコードがＷＯＳ１３にあり、ＷＯＳ−ＲＯＳ変換が行われると、取引日の範囲が「２０１５／１／１〜２０１５／１２／１５」であるエクステント＃１が作成される。ここで、エクステントは、ＷＯＳ−ＲＯＳ変換の単位である。
【００２０】
その後、取引日が「２０１６／５／１５」、「２０１６／１２／１０」である２つのレコードが挿入され、取引日が「２０１５／１／１」であるレコードが更新されると、図１４Ｂに示すように、ＷＯＳ１３に３つのレコードが記憶される。そして、このＷＯＳ１３に対してＷＯＳ−ＲＯＳ変換が行われると、取引日の範囲が「２０１５／１／１〜２０１６／１２／１０」であるエクステント＃２が作成される。
【００２１】
すなわち、取引日が「２０１５／１／１」であるレコードが更新されたため、取引日の範囲が広いエクステントが作成される。このように、ＷＯＳ−ＲＯＳ変換には、ＢＲＩＮが有効でないエクステントを作成することでＢＲＩＮを利用した検索性能が低下するという問題がある。
【００２２】
本発明は、１つの側面では、ＢＲＩＮを利用した検索性能の低下を抑止することを目的とする。
【課題を解決するための手段】
【００２３】
１つの態様では、更新反映プログラムは、コンピュータに、追記型の列形式のデータベースを更新するレコードに関する情報を、行型の書き込みバッファに蓄積する処理を実行させる。そして、更新反映プログラムは、コンピュータに、書き込みバッファに情報が蓄積されたレコードより、特定の条件に適合するレコードを、列形式に変換してデータベースに追加する処理を実行させる。
【発明の効果】
【００２４】
１つの側面では、本発明は、ＢＲＩＮを利用した検索性能の低下を抑止することができる。
【図面の簡単な説明】
【００２５】
【図１】図１は、実施例に係るＲＤＢＭＳによるＷＯＳ−ＲＯＳ変換を説明するための図である。
【図２Ａ】図２Ａは、空行回収におけるＷＯＳ残存レコードの回収を説明するための第１の図である。
【図２Ｂ】図２Ｂは、空行回収におけるＷＯＳ残存レコードの回収を説明するための第２の図である。
【図３】図３は、実施例に係るＲＤＢＭＳの機能構成を示す図である。
【図４】図４は、オリジナルテーブルとＷＯＳのデータ構造を示す図である。
【図５】図５は、ＷＯＳ−ＲＯＳ変換処理のフローを示すフローチャートである。
【図６】図６は、空行回収処理のフローを示すフローチャートである。
【図７】図７は、ＷＯＳにＴＩＤを追加する際にフラグを付加する処理のフローを示すフローチャートである。
【図８】図８は、ＲＤＢＭＳを実行するコンピュータのハードウェア構成を示す図である。
【図９】図９は、ＯＬＴＰとＯＬＡＰの特徴を示す図である。
【図１０】図１０は、更新ＳＱＬに対する処理を説明するための図である。
【図１１】図１１は、検索ＳＱＬに対する処理を説明するための図である。
【図１２】図１２は、ＢＲＩＮを説明するための図である。
【図１３】図１３は、ＢＲＩＮが有効な例と有効でない例を示す図である。
【図１４Ａ】図１４Ａは、ＷＯＳ−ＲＯＳ変換によってＢＲＩＮが有効でなくなる例を示す第１の図である。
【図１４Ｂ】図１４Ｂは、ＷＯＳ−ＲＯＳ変換によってＢＲＩＮが有効でなくなる例を示す第２の図である。
【発明を実施するための形態】
【００２６】
以下に、本願の開示する更新反映プログラム、更新反映方法及び更新反映装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００２７】
まず、実施例に係るＲＤＢＭＳ（Relational  Database  Management  System：リレーショナルデータベース管理システム）によるＷＯＳ−ＲＯＳ変換について説明する。なお、実施例に係るＲＤＢＭＳは、追加型の関係データベースである。図１は、実施例に係るＲＤＢＭＳによるＷＯＳ−ＲＯＳ変換を説明するための図である。図１に示すように、ＷＯＳ１３には、２０１５年の取引データと２０１６年の取引データが含まれる。
【００２８】
ただし、実施例に係るＲＤＢＭＳは、ＷＯＳ１３に含まれる全取引データをＷＯＳ−ＲＯＳ変換してエクステントを作成するのではなく、２０１６年の取引データだけをＷＯＳ−ＲＯＳ変換してエクステントを作成し、２０１５年の取引データをＷＯＳ１３に残す。すなわち、実施例に係るＲＤＢＭＳは、特定のカラムの値が所定の条件を満たすレコードだけを用いてエクステントを作成する。ここで、特定のカラムとは、ＢＲＩＮの作成に用いられるカラムである。
【００２９】
図１において、２０１５年の取引データは、挿入レコードではなく更新レコードである。したがって、実施例に係るＲＤＢＭＳは、挿入レコードだけを用いてエクステントを作成することによって、２０１５年の取引データをＷＯＳ１３に残すことができる。
【００３０】
このように、実施例に係るＲＤＢＭＳは、特定のカラムの値が所定の条件を満たすレコードだけを用いてエクステントを作成することによって、特定のカラムの値が近接するレコードのみでエクステントを作成することができる。したがって、実施例に係るＲＤＢＭＳは、エクステントをブロックとして特定のカラムの値が所定の条件を満たすレコードを用いてＢＲＩＮを作成することによって、ＢＲＩＮが有効でなくなることを防ぐことができる。
【００３１】
また、実施例に係るＲＤＢＭＳは、ＷＯＳ−ＲＯＳ変換時にＷＯＳ１３に残されたレコードを空行回収時に回収する。図２Ａ及び図２Ｂは、空行回収におけるＷＯＳ残存レコードの回収を説明するための図である。図２Ａは、エクステントの空行を回収するステップ＃１を示し、図２Ｂは、エクステントの後部にＷＯＳ１３内の近接レコードを追加するステップ＃２を示す。ここで、近接レコードとは、ＢＲＩＮが作成されるカラムに関してレコードの値がエクステントのＢＲＩＮの範囲内のレコードである。
【００３２】
図２Ａに示すエクステントにおいて、網掛けが行われた行は、無効行である。図２Ａに示すように、実施例に係るＲＤＢＭＳは、ステップ＃１では、無効行を削除して詰めることによって、エクステント後部に空き領域を作成する。図２Ａでは、４つの無効行が削除され、４行分の空き領域が作成される。
【００３３】
そして、実施例に係るＲＤＢＭＳは、図２Ｂに示すように、ステップ＃２において、空き領域にＷＯＳ１３内の近接レコードを追加する。図２Ｂでは、エクステントの取引データは２０１５年の取引データであり、ＷＯＳ１３内には２０１５年の取引データが２つあるので、２０１５年の２つの取引データがエクステントの空き領域に追加され、２０１６年の取引データはＷＯＳ１３に残される。
【００３４】
このように、実施例に係るＲＤＢＭＳは、空行回収時にＷＯＳ残存レコードを回収することで、ＷＯＳ−ＲＯＳ変換時にＷＯＳ１３に残されたレコードをＲＯＳ１５に反映させることができる。
【００３５】
次に、実施例に係るＲＤＢＭＳの機能構成について説明する。図３は、実施例に係るＲＤＢＭＳの機能構成を示す図である。図３に示すように、実施例に係るＲＤＢＭＳ１は、オリジナルテーブル１１と、バックエンド部１２と、ＷＯＳ１３と、変換部１４と、ＲＯＳ１５と、空行回収部１６と、ＳＱＬプロセッサ１７とを有する。
【００３６】
オリジナルテーブル１１は、行型のデータベースである。
【００３７】
バックエンド部１２は、オリジナルテーブル１１へのレコードの挿入、オリジナルテーブル１１のレコードの更新及び削除を行う。また、バックエンド部１２は、オリジナルテーブル１１の操作と同期してＷＯＳ１３を更新する。
【００３８】
バックエンド部１２は、ＷＯＳ１３に挿入レコードを追加する際に、挿入レコードであることを示すフラグを挿入レコードに付加する。また、バックエンド部１２は、ＷＯＳ１３に更新レコードを追加する際に、更新レコードであることを示すフラグを更新レコードに付加する。このフラグは、ＷＯＳ−ＲＯＳ変換で挿入レコードだけを変換するために用いられる。バックエンド部１２は、蓄積部の一例である。
【００３９】
ＷＯＳ１３は、行型の書き込みバッファであり、オリジナルテーブル１１とＲＯＳ１５との差分をＴＩＤ（Tuple-ID）を用いて記憶する。図４は、オリジナルテーブル１１とＷＯＳ１３のデータ構造を示す図である。図４に示すように、オリジナルテーブル１１では、各行にＴＩＤが付加されている。
【００４０】
これまでは、説明の便宜上、ＷＯＳ１３がレコードを記憶することとしたが、実際には、ＷＯＳ１３はＴＩＤを記憶する。また、ＴＩＤには、レコードが挿入レコードであるか更新レコードであるかを示すフラグが付加される。
【００４１】
変換部１４は、ＷＯＳ−ＲＯＳ変換を行い、エクステントを作成する。ただし、変換部１４は、ＷＯＳ１３に含まれる全レコードをＷＯＳ−ＲＯＳ変換してエクステントを作成するのではなく、挿入レコードだけをＷＯＳ−ＲＯＳ変換してエクステントを作成し、更新レコードをＷＯＳ１３に残す。変換部１４は、ＴＩＤに付加されたフラグを用いてＷＯＳ１３内のレコードが挿入レコードであるか更新レコードであるかを判定する。
【００４２】
ＲＯＳ１５は、オリジナルテーブル１１のレコードが列型に変換されたデータベースである。ＲＯＳ１５は、エクステントの集合である。列の集計処理等は、ＲＯＳ１５を用いて行われる。
【００４３】
空行回収部１６は、エクステントから空行を回収する。空行回収部１６は、エクステント内の無効行を削除して詰めることによってエクステント後部に空き領域を作成する。そして、空行回収部１６は、ＷＯＳ１３内の近接レコードを空き領域に追加する。
【００４４】
ＳＱＬプロセッサ１７は、検索ＳＱＬを処理してデータベースの検索を行う。ＳＱＬプロセッサ１７は、検索ＳＱＬを受け取ると、ＷＯＳ１３を変換してローカルＲＯＳ１７ａを作成する。そして、ＳＱＬプロセッサ１７は、ＲＯＳ１５とローカルＲＯＳ１７ａを用いて検索を行う。
【００４５】
次に、ＷＯＳ−ＲＯＳ変換処理のフローについて説明する。図５は、ＷＯＳ−ＲＯＳ変換処理のフローを示すフローチャートである。図５に示すように、変換部１４は、１エクステント分の行が溜まった又はＷＯＳ１３内の全行を処理したか否かを判定し（ステップＳ１）、１エクステント分の行が溜まった又はＷＯＳ１３内の全行を処理した場合には処理を終了する。
【００４６】
一方、１エクステント分の行が溜まってなくＷＯＳ１３内に未処理の行がある場合は、変換部１４は、ＷＯＳ１３から１行取り出し（ステップＳ２）、取り出した行のフラグが挿入を示すか否かを判定する（ステップＳ３）。
【００４７】
そして、変換部１４は、取り出した行のフラグが挿入を示さない場合には、ステップＳ１に戻り、挿入を示す場合には、取り出した行を、エクステントに追加し、ＷＯＳ１３から削除する（ステップＳ４）。そして、変換部１４は、ステップＳ１に戻る。
【００４８】
このように、変換部１４は、挿入された行だけをエクステントに追加することで、ＢＲＩＮが作成されるカラムの値が近いレコードだけを含むエクステントを作成することができる。なお、変換部１４は、挿入された行だけをエクステントに追加する代わりに、ＢＲＩＮが作成されるカラムの値が過去に作成したエクステントに含まれる行を除いてエクステントを作成することもできる。
【００４９】
次に、空行回収処理のフローについて説明する。図６は、空行回収処理のフローを示すフローチャートである。図６に示すように、空行回収部１６は、削除行を詰めて新しいエクステントを作成する（ステップＳ１１）。そして、空行回収部１６は、ＢＲＩＮが作成されるカラムに関して、新しいエクステント上で最大値及び最小値を計算する（ステップＳ１２）。
【００５０】
そして、空行回収部１６は、新しいエクステントの行数が上限に達したか又はＷＯＳ１３内の全行を処理したか否かを判定し（ステップＳ１３）、新しいエクステントの行数が上限に達したか又はＷＯＳ１３内の全行を処理した場合には処理を終了する。
【００５１】
一方、新しいエクステントの行数が上限に達しなくＷＯＳ１３内に未処理の行がある場合は、空行回収部１６は、ＷＯＳ１３から１行取り出し（ステップＳ１４）、取り出した行のフラグが更新を示すか否かを判定する（ステップＳ１５）。
【００５２】
そして、空行回収部１６は、取り出した行のフラグが更新を示さない場合には、ステップＳ１３に戻り、更新を示す場合には、ＢＲＩＮが作成されるカラムに関して、値は新しいエクステントの最小値以上最大値以下であるか否かを判定する（ステップＳ１６）。
【００５３】
そして、値が新しいエクステントの最小値以上最大値以下でない場合には、空行回収部１６は、ステップＳ１３に戻る。一方、値が新しいエクステントの最小値以上最大値以下である場合には、空行回収部１６は、取り出した行を、エクステントに追加し、ＷＯＳ１３から削除する（ステップＳ１７）。そして、空行回収部１６は、ステップＳ１３に戻る。
【００５４】
このように、空行回収部１６は、ＷＯＳ１３から取り出した行の値が新しいエクステントの最小値以上最大値以下である場合に、取り出した行をエクステントに追加することで、ＷＯＳ−ＲＯＳ変換でＷＯＳ１３に残された更新レコードをＲＯＳ１５に反映できる。
【００５５】
次に、ＷＯＳ１３にＴＩＤを追加する際にフラグを付加する処理のフローについて説明する。図７は、ＷＯＳ１３にＴＩＤを追加する際にフラグを付加する処理のフローを示すフローチャートである。
【００５６】
図７に示すように、バックエンド部１２は、ＷＯＳ１３へ追加するＴＩＤの通知を受け取り（ステップＳ２１）、オリジナルテーブル１１への挿入による追加であるか否かを判定する（ステップＳ２２）。
【００５７】
そして、バックエンド部１２は、挿入による追加である場合には、挿入を示すフラグと共にＷＯＳ１３へＴＩＤを追加し（ステップＳ２３）、挿入による追加でない場合には、更新を示すフラグと共にＷＯＳ１３へＴＩＤを追加する（ステップＳ２４）。
【００５８】
このように、バックエンド部１２が挿入か更新かを示すフラグと共にＷＯＳ１３へＴＩＤを追加することで、変換部１４は、ＷＯＳ−ＲＯＳ変換で挿入レコードだけを用いてエクステントを作成することができる。
【００５９】
次に、ＲＤＢＭＳ１を実行するコンピュータについて説明する。図８は、ＲＤＢＭＳ１を実行するコンピュータのハードウェア構成を示す図である。図８に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【００６０】
メインメモリ５１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【００６１】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【００６２】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【００６３】
そして、コンピュータ５０において実行されるＲＤＢＭＳ１は、ＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読出されてコンピュータ５０にインストールされる。あるいは、ＲＤＢＭＳ１は、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読出されてコンピュータ５０にインストールされる。そして、インストールされたＲＤＢＭＳ１は、ＨＤＤ５４に記憶され、メインメモリ５１に読出されてＣＰＵ５２によって実行される。
【００６４】
上述してきたように、実施例では、バックエンド部１２は、オリジナルテーブル１１へのレコードの挿入及びオリジナルテーブル１１のレコードの更新を行う際に、ＷＯＳ１３にＴＩＤを追加する。そして、変換部１４は、ＷＯＳ−ＲＯＳ変換を行う際に、ＢＲＩＮが作成されるカラムに関して特定の条件を満たすレコードだけを用いてエクステントを作成する。したがって、ＲＤＢＭＳ１は、ＢＲＩＮが作成されるカラムに関して値が近接するエクステントを作成することができ、ＢＲＩＮを利用した検索性能の低下を抑止することができる。
【００６５】
また、実施例では、変換部１４は、特定の条件を満たすレコードとして挿入レコードだけを用いてエクステントを作成する。したがって、変換部１４は、ＢＲＩＮが作成されるカラムが時系列データである場合に、ＢＲＩＮが作成されるカラムの値が過去に作成されたエクステントに含まれたレコードを除いてエクステントを作成することができる。
【００６６】
また、実施例では、変換部１４は、特定の条件を満たすか否かをＢＲＩＮが作成されるカラムの値に基づいて判定する。したがって、変換部１４は、ＢＲＩＮが作成されるカラムが時系列データである場合に、ＢＲＩＮが作成されるカラムの値が過去に作成されたエクステントに含まれたレコードを除いてエクステントを作成することができる。
【００６７】
また、実施例では、空行回収部１６は、エクステントから無効行を削除した場合に、当該エクステントのＢＲＩＮを満たすレコードをＷＯＳ１３から取り出して当該エクステントに追加する。したがって、ＲＤＢＭＳ１は、変換部１４によりＷＯＳ１３に残されたレコードをＲＯＳ１５に反映することができる。
【００６８】
また、実施例では、バックエンド部１２はＷＯＳ１３にＴＩＤを追加する際に挿入又は更新であることを示すフラグを追加し、変換部１４は当該フラグを用いて挿入レコードであるか更新レコードであるかを判定する。したがって、変換部１４は、挿入レコードであるか更新レコードであるかを簡単に判定することができる。
【符号の説明】
【００６９】
１    ＲＤＢＭＳ
１ａ    ＤＢバッファ
１１    オリジナルテーブル
１２    バックエンド部
１３    ＷＯＳ
１４    変換部
１５    ＲＯＳ（グローバルＲＯＳ）
１６    空行回収部
１７    ＳＱＬプロセッサ
１７ａ    ローカルＲＯＳ
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１】
2018180739.tif 000003
【図２Ａ】
2018180739.tif 000004
【図２Ｂ】
2018180739.tif 000005
【図３】
2018180739.tif 000006
【図４】
2018180739.tif 000007
【図５】
2018180739.tif 000008
【図６】
2018180739.tif 000009
【図７】
2018180739.tif 000010
【図８】
2018180739.tif 000011
【図９】
2018180739.tif 000012
【図１０】
2018180739.tif 000013
【図１１】
2018180739.tif 000014
【図１２】
2018180739.tif 000015
【図１３】
2018180739.tif 000016
【図１４Ａ】
2018180739.tif 000017
【図１４Ｂ】
2018180739.tif 000018