特許第6598101号(P6598101)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アーミク カンパニー,リミテッドの特許一覧

特許6598101インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置
<>
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000002
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000003
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000004
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000005
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000006
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000007
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000008
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000009
  • 特許6598101-インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6598101
(24)【登録日】2019年10月11日
(45)【発行日】2019年10月30日
(54)【発明の名称】インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置
(51)【国際特許分類】
   G06F 16/174 20190101AFI20191021BHJP
   G06F 16/13 20190101ALI20191021BHJP
【FI】
   G06F16/174
   G06F16/13
【請求項の数】18
【全頁数】26
(21)【出願番号】特願2018-543238(P2018-543238)
(86)(22)【出願日】2016年10月13日
(65)【公表番号】特表2019-512124(P2019-512124A)
(43)【公表日】2019年5月9日
(86)【国際出願番号】KR2016011465
(87)【国際公開番号】WO2017146338
(87)【国際公開日】20170831
【審査請求日】2018年8月23日
(31)【優先権主張番号】10-2016-0023403
(32)【優先日】2016年2月26日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】518286596
【氏名又は名称】アーミク カンパニー,リミテッド
(74)【代理人】
【識別番号】100091683
【弁理士】
【氏名又は名称】▲吉▼川 俊雄
(74)【代理人】
【識別番号】100179316
【弁理士】
【氏名又は名称】市川 寛奈
(72)【発明者】
【氏名】キム,オクス
【審査官】 甲斐 哲雄
(56)【参考文献】
【文献】 特表2014−524090(JP,A)
【文献】 特開2015−191585(JP,A)
【文献】 特開2012−141830(JP,A)
【文献】 特開2000−235551(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
データのアーカイビングをする原本テーブルにおいて、フィールド(field)値に関する情報に基づいて複数のレコード(record)を含む少なくとも一つのレコードグループを選別する段階と、
前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー(stored key)値を圧縮テーブルに格納する段階と、
前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納する段階と、
前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除する段階と、
を含むことを特徴とするインデックス情報を生成するデータベースのアーカイビング方法。
【請求項2】
前記少なくとも一つのレコードグループを選別する段階が前記原本テーブルにおいて時間に関する情報にさらに基づいて前記少なくとも一つのレコードグループを選別する時、
前記少なくとも一つのレコードグループのそれぞれについて対応する前記時間に関する情報及び前記格納キー値を期間インデックステーブルに格納する段階、
をさらに含むことを特徴とする請求項1に記載のインデックス情報を生成するデータベースのアーカイビング方法。
【請求項3】
前記原本テーブルに含まれた各レコードについてプライマリキー(primary key)の値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報をキーインデックステーブルに格納する段階、
をさらに含むことを特徴とする請求項1に記載のインデックス情報を生成するデータベースのアーカイビング方法。
【請求項4】
前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、
前記第2グループ圧縮データに含まれた複数のレコードの中で前記原本テーブルに含まれたレコードと前記プライマリキーの値が同一のレコードを検索する段階と、
前記検索されたレコードについて前記第2グループ圧縮データ内における位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーの値が同一のレコードにさらに格納する段階と、
を含むことを特徴とする請求項3に記載のインデックス情報を生成するデータベースのアーカイビング方法。
【請求項5】
データのアーカイビングをする原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別するデータ選別部と、
前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮してグループ圧縮データを生成するデータ圧縮部と、
前記グループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー値を圧縮テーブルに格納し、前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納し、前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除するDB管理部と、
を含むことを特徴とするインデックス情報を生成するデータベースのアーカイビング装置。
【請求項6】
前記データ選別部が前記原本テーブルにおいて時間に関する情報にさらに基づいて前記少なくとも一つのレコードグループを選別する時、
前記DB管理部は、
前記少なくとも一つのレコードグループのそれぞれに対応する前記時間に関する情報及び前記格納キー値を期間インデックステーブルにさらに格納することを特徴とする請求項5に記載のインデックス情報を生成するデータベースのアーカイビング装置。
【請求項7】
前記DB管理部は、
前記原本テーブルに含まれた各レコードについてプライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報をキーインデックステーブルにさらに格納することを特徴とする請求項5に記載のインデックス情報を生成するデータベースのアーカイビング装置。
【請求項8】
前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、
前記DB管理部は、
前記第2グループ圧縮データに含まれた複数のレコードの中で前記原本テーブルに含まれたレコードと前記プライマリキーの値が同一のレコードをさらに検索し、
前記検索されたレコードについて前記第2グループ圧縮データ内における位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーの値が同一のレコードにさらに格納することを特徴とする請求項7に記載のインデックス情報を生成するデータベースのアーカイビング装置。
【請求項9】
フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望の前記フィールド値に対する所定条件のレコードを検索するための検索条件を受信する段階と、
前記フィールド値に関する情報及び前記フィールド値に関する情報に対応する前記格納キー値が格納されたグループインデックステーブルにおいて、前記検索条件を満たす格納キー値を検索する段階と、
検索が行われるコンピュータの性能及び前記検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数のうち少なくともいずれか一つに基づいて、前記レコードの検索を並列に処理するためのDB検索過程の個数を決定する段階と、
前記決定されたDB検索過程の個数に基づいて前記検索条件を満たすレコードの検索を並列に行う段階と、
を含むことを特徴とするインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項10】
時間に関する情報にさらに基づいて生成された前記グループ圧縮データが前記圧縮テーブルに含まれ、前記時間に対する所定条件が前記受信された検索条件にさらに含まれる時、
前記時間に関する情報及び前記時間に関する情報に対応する前記格納キー値が格納された期間インデックステーブルにおいて、前記検索条件を満たす格納キー値を検索する段階、
をさらに含むことを特徴とする請求項9に記載のインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項11】
プライマリキー値に対する検索条件が前記検索条件にさらに含まれる時、
前記圧縮テーブルでアーカイビングした原本テーブルの各レコード別の前記プライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報が格納されたキーインデックステーブルにおいて、前記検索条件を満たすレコードの前記格納キー値及び前記キーインデックス情報を検索する段階、
をさらに含み、
前記レコードの検索を並列に行う段階は、
前記格納キー値及び前記キーインデックス情報にさらに基づいて検索を行うことを特徴とする請求項9に記載のインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項12】
前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、
前記格納キー値及び前記キーインデックス情報を検索する段階は、
各レコード別の前記第2グループ圧縮データ内における位置であるサブインデックス情報を含む前記キーインデックステーブルにおいて、前記検索条件を満たすレコードの前記サブインデックス情報をさらに検索し、
前記レコードの検索を並列に行う段階は、
前記サブインデックス情報及び前記第2グループ圧縮データにさらに基づいて検索を行うことを特徴とする請求項11に記載のインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項13】
前記並列に処理するためのDB検索過程の個数を決定する段階は、
前記コンピュータに含まれたCPUの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集する段階と、
前記圧縮テーブルに格納された前記グループ圧縮データの中で前記受信された検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数を決定する段階と、
前記収集されたコンピュータ性能情報及び前記決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいて前記レコードの検索を並列に処理するためのDB検索過程の個数を決定する段階と、
を含むことを特徴とする請求項9に記載のインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項14】
フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望の前記フィールド値に対する所定条件のレコードを検索するための検索条件を受信する受信部と、
前記フィールド値に関する情報及び前記フィールド値に関する情報に対応する前記格納キー値が格納されたグループインデックステーブルにおいて、前記検索条件を満たす格納キー値を検索するインデックス検索部と、
検索が行われるコンピュータの性能及び前記検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数のうち少なくともいずれか一つに基づいて、前記レコードの検索を並列に処理するためのDB検索過程の個数を決定する検索準備部と、
前記決定されたDB検索過程の個数に基づいて前記検索条件を満たすレコードの検索を並列に行う並列検索部と、
を含むことを特徴とするインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【請求項15】
時間に関する情報にさらに基づいて生成された前記グループ圧縮データが前記圧縮テーブルに含まれ、前記時間に対する所定条件が前記受信された検索条件にさらに含まれる時、
前記インデックス検索部は、
前記時間に関する情報及び前記時間に関する情報に対応する前記格納キー値が格納された期間インデックステーブルにおいて、前記検索条件を満たす格納キー値をさらに検索することを特徴とする請求項14に記載のインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【請求項16】
前記検索条件にプライマリキー値に対する検索条件が含まれる時、
前記インデックス検索部は、
前記圧縮テーブルでアーカイビングした原本テーブルの各レコード別の前記プライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報が格納されたキーインデックステーブルにおいて、前記検索条件を満たすレコードの前記格納キー値及び前記キーインデックス情報をさらに検索し、
前記並列検索部は、
前記格納キー値及び前記キーインデックス情報にさらに基づいて検索を行うことを特徴とする請求項14に記載のインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【請求項17】
前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、
前記インデックス検索部は、
各レコード別の前記第2グループ圧縮データ内における位置であるサブインデックス情報を含む前記キーインデックステーブルにおいて、前記検索条件を満たすレコードの前記サブインデックス情報をさらに検索し、
前記並列検索部は、
前記サブインデックス情報及び前記第2グループ圧縮データにさらに基づいて検索を行うことを特徴とする請求項16に記載のインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【請求項18】
前記検索準備部は、
前記コンピュータに含まれたCPUの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集し、
前記圧縮テーブルに格納された前記グループ圧縮データの中で前記受信された検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数を決定し、
前記収集されたコンピュータ性能情報及び前記決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいて前記レコードの検索を並列に処理するためのDB検索過程の個数を決定することを特徴とする請求項14に記載のインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベースのアーカイビング方法及びその装置と、アーカイビングされたデータベースの検索方法及びその装置に関し、さらに具体的には、データの圧縮技術及びインデックスの生成技術を利用したデータベースのアーカイビング方法及びその装置と圧縮してアーカイビングされたデータベースをインデックス情報を利用して検索する方法及びその装置に関する。
【背景技術】
【0002】
インターネットの普及の拡大、データ通信技術の発展などと共に、PC、ラップトップ及びスマートフォンのようなデータ生産及び消費手段が広く普及するにつれて、近日生産されて消費されるデータの量は、幾何級数的に増えている状況である。
【0003】
このようなデータを効果的に分類して活用するために、データベースを利用してデータを管理する方法が各種の企業、団体及び学校などで広く利用されている。しかし、増えるデータの量が幾何級数的なだけに、データベースの容量も直ぐ限界に達し、データベースの容量を拡張し続けることも費用及び管理の側面で制約があるというのが現実である。
【0004】
従って、データベースを効率的にアーカイビングして容量を節約することができる技術に対する関心が増加している。特に、データの圧縮技術及びインデックスの生成技術を利用したデータベースのアーカイビング方法及びその装置と圧縮してアーカイビングされたデータベースをインデックス情報を利用して検索する方法及びその装置に対する関心が台頭している。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、データベースのレコードを所定の基準によって分類し、分類されたレコード別に圧縮してアーカイビングすることでデータベースの容量を節約することができるデータベースのアーカイビング方法及びその装置を提供する。
【0006】
また、本発明は、データベースのアーカイビングの際にインデックス情報をさらに生成することにより、生成されたインデックス情報を利用して、データベースをより効率的に検索するデータベースの検索方法及びその装置を提供する。
【0007】
また、本発明は、上記のような方法でアーカイビングされたデータベースを並列に検索するより効率的なデータベースの検索方法及びその装置を提供する。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明で提供するインデックス情報を生成するデータベースのアーカイビング方法は、データのアーカイビングをする原本テーブルにおいて、フィールド(field)値に関する情報に基づいて複数のレコード(record)を含む少なくとも一つのレコードグループを選別する段階と、前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー(stored key)値を圧縮テーブルに格納する段階と、前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納する段階と、前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除する段階とを含む。
【0009】
好ましくは、前記少なくとも一つのレコードグループを選別する段階が前記原本テーブルにおいて時間に関する情報にさらに基づいて前記少なくとも一つのレコードグループを選別する時、前記少なくとも一つのレコードグループのそれぞれについて対応する前記時間に関する情報及び前記格納キー値を期間インデックステーブルに格納する段階をさらに含むことができる。
【0010】
好ましくは、前記原本テーブルに含まれた各レコードについてプライマリキー(primary key)の値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報をキーインデックステーブルに格納する段階をさらに含むことができる。
【0011】
好ましくは、前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、前記第2グループ圧縮データに含まれた複数のレコードの中で前記原本テーブルに含まれたレコードと前記プライマリキーの値が同一のレコードを検索する段階と、前記検索されたレコードについて前記第2グループ圧縮データ内における位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーの値が同一のレコードにさらに格納する段階とを含むことができる。
【0012】
また、上記目的を達成するために、本発明で提供するインデックス情報を生成するデータベースのアーカイビング装置は、データのアーカイビングをする原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別するデータ選別部と、前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮してグループ圧縮データを生成するデータ圧縮部と、前記グループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー値を圧縮テーブルに格納し、前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納し、前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除するDB管理部とを含む。
【0013】
好ましくは、前記データ選別部が前記原本テーブルにおいて時間に関する情報にさらに基づいて前記少なくとも一つのレコードグループを選別する時、前記DB管理部は、前記少なくとも一つのレコードグループのそれぞれに対応する前記時間に関する情報及び前記格納キー値を期間インデックステーブルにさらに格納することができる。
【0014】
好ましくは、前記DB管理部は、前記原本テーブルに含まれた各レコードについてプライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報をキーインデックステーブルにさらに格納することができる。
【0015】
好ましくは、前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、前記DB管理部は、前記第2グループ圧縮データに含まれた複数のレコードの中で前記原本テーブルに含まれたレコードと前記プライマリキーの値が同一のレコードをさらに検索し、前記検索されたレコードについて前記第2グループ圧縮データ内における位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーの値が同一のレコードにさらに格納することができる。
【0016】
また、上記目的を達成するために、本発明で提供するインデックス情報を利用するアーカイビングされたデータベースの検索方法は、フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望の前記フィールド値に対する所定条件のレコードを検索するための検索条件を受信する段階と、前記フィールド値に関する情報及び前記フィールド値に関する情報に対応する前記格納キー値が格納されたグループインデックステーブルにおいて、前記検索条件を満たす格納キー値を検索する段階と、検索が行われるコンピュータの性能及び前記検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数のうち少なくともいずれか一つに基づいて、前記レコードの検索を並列に処理するためのDB検索過程の個数を決定する段階と、前記決定されたDB検索過程の個数に基づいて前記検索条件を満たすレコードの検索を並列に行う段階とを含む。
【0017】
好ましくは、時間に関する情報にさらに基づいて生成された前記グループ圧縮データが前記圧縮テーブルに含まれ、前記時間に対する所定条件が前記受信された検索条件にさらに含まれる時、前記時間に関する情報及び前記時間に関する情報に対応する前記格納キー値が格納された期間インデックステーブルにおいて、前記検索条件を満たす格納キー値を検索する段階をさらに含むことができる。
【0018】
好ましくは、プライマリキー値に対する検索条件が前記検索条件にさらに含まれる時、前記圧縮テーブルでアーカイビングした原本テーブルの各レコード別の前記プライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報が格納されたキーインデックステーブルにおいて、前記検索条件を満たすレコードの前記格納キー値及び前記キーインデックス情報を検索する段階をさらに含み、前記レコードの検索を並列に行う段階は、前記格納キー値及び前記キーインデックス情報にさらに基づいて検索を行うことができる。
【0019】
好ましくは、前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、前記格納キー値及び前記キーインデックス情報を検索する段階は、各レコード別の前記第2グループ圧縮データ内における位置であるサブインデックス情報を含む前記キーインデックステーブルにおいて、前記検索条件を満たすレコードの前記サブインデックス情報をさらに検索し、前記レコードの検索を並列に行う段階は、前記サブインデックス情報及び前記第2グループ圧縮データにさらに基づいて検索を行うことができる。
【0020】
好ましくは、前記並列に処理するためのDB検索過程の個数を決定する段階は、前記コンピュータに含まれたCPUの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集する段階と、前記圧縮テーブルに格納された前記グループ圧縮データの中で前記受信された検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数を決定する段階と、前記収集されたコンピュータ性能情報及び前記決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいて前記レコードの検索を並列に処理するためのDB検索過程の個数を決定する段階とを含むことができる。
【0021】
また、上記目的を達成するために、本発明で提供するインデックス情報を利用するアーカイビングされたデータベースの検索装置は、フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望の前記フィールド値に対する所定条件のレコードを検索するための検索条件を受信する受信部と、前記フィールド値に関する情報及び前記フィールド値に関する情報に対応する前記格納キー値が格納されたグループインデックステーブルにおいて、前記検索条件を満たす格納キー値を検索するインデックス検索部と、検索が行われるコンピュータの性能及び前記検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数のうち少なくともいずれか一つに基づいて、前記レコードの検索を並列に処理するためのDB検索過程の個数を決定する検索準備部と、前記決定されたDB検索過程の個数に基づいて前記検索条件を満たすレコードの検索を並列に行う並列検索部とを含む。
【0022】
好ましくは、時間に関する情報にさらに基づいて生成された前記グループ圧縮データが前記圧縮テーブルに含まれ、前記時間に対する所定条件が前記受信された検索条件にさらに含まれる時、前記インデックス検索部は、前記時間に関する情報及び前記時間に関する情報に対応する前記格納キー値が格納された期間インデックステーブルにおいて、前記検索条件を満たす格納キー値をさらに検索することができる。
【0023】
好ましくは、前記検索条件にプライマリキー値に対する検索条件が含まれる時、前記インデックス検索部は、前記圧縮テーブルでアーカイビングした原本テーブルの各レコード別の前記プライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報が格納されたキーインデックステーブルにおいて、前記検索条件を満たすレコードの前記格納キー値及び前記キーインデックス情報をさらに検索し、前記並列検索部は、前記格納キー値及び前記キーインデックス情報にさらに基づいて検索を行うことができる。
【0024】
好ましくは、前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、前記インデックス検索部は、各レコード別の前記第2グループ圧縮データ内における位置であるサブインデックス情報を含む前記キーインデックステーブルにおいて、前記検索条件を満たすレコードの前記サブインデックス情報をさらに検索し、前記並列検索部は、前記サブインデックス情報及び前記第2グループ圧縮データにさらに基づいて検索を行うことができる。
【0025】
好ましくは、前記検索準備部は、前記コンピュータに含まれたCPUの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集し、前記圧縮テーブルに格納された前記グループ圧縮データの中で前記受信された検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数を決定し、前記収集されたコンピュータ性能情報及び前記決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいて前記レコードの検索を並列に処理するためのDB検索過程の個数を決定することができる。
【発明の効果】
【0026】
本発明は、データベースに格納されたデータを検索頻度、重要度などによって分類し、分類結果別に圧縮してアーカイビングすることで、データベースの使用容量を画期的に減らすことができるという効果がある。
【0027】
また、本発明は、アーカイビングの過程でインデックス情報を生成することで、アーカイビングされたデータベースを検索する時に効率性を極大化することができるという効果がある。
【図面の簡単な説明】
【0028】
図1】本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング方法を説明するために示したフローチャートである。
図2】本発明の他の実施例によるインデックス情報を生成するデータベースのアーカイビング方法を説明するために示したフローチャートである。
図3】本発明の一実施例によるインデックス情報を利用するアーカイビングされたデータベースの検索方法を説明するために示したフローチャートである。
図4】本発明の一実施例によるDB検索過程の個数を決定する方法を説明するために示したフローチャートである。
図5】本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング装置を説明するために示した図面である。
図6】本発明の一実施例によるインデックス情報を利用するアーカイビングされたデータベースの検索装置を説明するために示した図面である。
図7】本発明の一実施例による圧縮テーブルの構造を説明するために示した図面である。
図8】本発明の一実施例によるグループインデックステーブル及び期間インデックステーブルの構造を説明するために示した図面である。
図9】本発明の一実施例によるキーインデックステーブルの構造を説明するために示した図面である。
【発明を実施するための形態】
【0029】
本発明は、多様な変更を加えることができ、様々な実施例を有することができるため、特定の実施例を図面に例示し、詳細な説明に詳しく説明する。しかし、これは、本発明を特定した実施形態について限定するものではなく、本発明の思想及び技術範囲に含まれる全ての変更、均等物または代替物を含むと理解されるべきである。各図面を説明しながら類似な参照符号を類似した構成要素に対して使用した。
【0030】
第1、第2、A、Bなどの用語は、多様な構成要素を説明するのに使用することができるが、上記構成要素は、上記用語によって限定されてはならない。上記用語は、一つの構成要素を他の構成要素から区別する目的だけで使用される。例えば、本発明の権利範囲から逸脱せず、第1構成要素は第2構成要素と命名されることができ、同様に、第2構成要素も第1構成要素と命名されることができる。「及び/又は」という用語は、複数の関連記載の項目の組み合わせまたは複数の関連記載の項目のいずれかの項目を含む。
【0031】
ある構成要素が他の構成要素に「連結されて」いるか「接続されて」いると言及された時は、その他の構成要素に直接的に連結されるかまたは接続されることもできるが、その間に他の構成要素が存在することもできると理解されるべきである。反面、ある構成要素が他の構成要素に「直接連結されて」いるか「直接接続されて」いると言及された時は、中間に他の構成要素が存在しないと理解されるべきである。
【0032】
本出願で使用した用語は、単に特定の実施例を説明するために使用されたもので、本発明を限定しようとする意図ではない。単数の表現は、文脈上明らかに異なる意味ではない限り、複数の表現を含む。本出願において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定するためであり、一つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものの存在または付加可能性を予め排除しないと理解されるべきである。
【0033】
異なって定義しない限り、技術的であるか科学的な用語を含み、ここで使用される全ての用語は、本発明が属する技術分野で通常の知識を持った者によって一般的に理解されるものと同じ意味を有する。一般的に使用される辞書に定義されるような用語は、関連技術の文脈上で持つ意味と一致する意味を持つと解釈されるべきであり、本出願で明らかに定義しない限り、理想的であるか過度に形式的な意味で解釈されない。
【0034】
以下で、本発明による好ましい実施例を添付の図面を参照して詳しく説明する。
【0035】
図1は、本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング方法を説明するために示したフローチャートである。
【0036】
段階S110では、データベースのアーカイビング装置がデータのアーカイビングをする原本テーブルにおいて、フィールド(field)値に関する情報に基づいて複数のレコード(record)を含む少なくとも一つのレコードグループを選別する。
【0037】
テーブルは、データベースでデータを格納する基本構造をなす単位であり、原本テーブルは、データベースに含まれた複数のテーブルの中で容量を節約するためにアーカイビングをするテーブルであることができる。
【0038】
例えば、データベースのアーカイビング装置が原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別する時、フィールド値が所定の範囲内である複数のレコードだけでレコードグループを選別することができる。
【0039】
一方、レコードグループの選別に利用されるフィールド値は、原本テーブルにおいて、最も検索が頻繁に発生するフィールドのフィールド値で決定されることができる。該アーカイビングされたデータベースを後で検索する時、生成されたインデックス情報を利用して検索の効率性を極大化することができるからである。
【0040】
レコードグループは、原本テーブルに含まれた全体レコードの中から選別された複数のレコードの集合で構成されたグループである。レコードグループは、少なくとも一つ以上生成されることができ、必要に応じて、原本テーブルの全体ではなく、一部のレコードだけを対象として限定してレコードグループを生成することができる。例えば、原本テーブルにおいて、2015年以後のレコードは除外し、2015年以前のレコードだけを対象としてアーカイビングするためにレコードグループを生成することができる。
【0041】
一方、一つのレコードグループに含まれるレコードの個数は、原本テーブルに含まれた全体レコードの個数、データベースを検索するコンピュータの性能及びデータベースの頻度が高い検索条件などを総合的に分析及び検討して決定することができる。
【0042】
他の実施例では、データベースのアーカイビング装置がその選別された少なくとも一つのレコードグループの中でレコードの個数が閾値を超える超過レコードグループが存在すると、その超過レコードグループをレコードの個数が閾値以下である複数のレコードグループに分離することができる。
【0043】
例えば、一つのレコードグループが含むことができるレコードの個数である閾値が10万個で設定されることができる。しかし、もし、選別されたレコードグループにその閾値を超えるレコードの個数を含む超過レコードグループが存在すると、これは、コンピュータの過負荷及び非効率をもたらす可能性があり、問題の素地になり得る。
【0044】
従って、一つのレコードグループが10万個を超えるレコードを有する場合、これを10万個単位に分離して、複数のレコードグループを生成することができる。例えば、一つのレコードグループが25万個のレコードの個数を有する場合、データベースのアーカイビング装置が該超過レコードグループを10万個ずつのレコードの個数を有する2個のレコードグループと、5万個のレコードの個数を有するレコードグループとの計3個のレコードグループに分離することができる。
【0045】
一方、上記のように分離された複数のレコードグループは、互いに同一のフィールド値による分類基準によって分類されたため、その複数のレコードグループを互いに区別する方法がない可能性がある。従って、その分離された複数のレコードグループのそれぞれに一連番号(例、1、2、3、4,…)を付与し、圧縮テーブルの一連番号フィールドにさらに格納することができる。この場合、アーカイビングされたデータベースを検索する際にも、レコードグループのそれぞれを区別して検索を行うことができる。
【0046】
段階S120では、データベースのアーカイビング装置が選別された少なくとも一つのレコードグループのそれぞれについて、レコードグループ別に圧縮して生成されたグループ圧縮データ及びそのグループ圧縮データ別に固有に付与された格納キー(stored key)値を圧縮テーブルに格納する。
【0047】
圧縮テーブルは、原本テーブルをレコードグループ単位で圧縮してアーカイビングしたデータが格納されるテーブルを意味する。また、圧縮テーブルは、レコードグループ別に圧縮して生成されたグループ圧縮データを格納するためのフィールドと、そのグループ圧縮データに対応するように固有に付与された格納キー値を格納するための少なくとも一つのフィールドとを含むことができる。
【0048】
格納キー値は、グループ圧縮データ別に固有に付与されたキー値で、格納キーに該当するフィールドに各グループ圧縮データ別に固有の格納キー値が格納されることができる。また、その格納キーに該当するフィールドは、一つ以上になってもよく、その一つ以上のフィールドに分散格納された格納キー値が結合した時、各グループ圧縮データ別に固有の格納キー値を有することができる。
【0049】
グループ圧縮データは、分類されたレコードグループのそれぞれを圧縮して生成したバイナリデータであることができ、グループ圧縮データを生成し、圧縮テーブルに格納する具体的な過程は、以下の通りである。
【0050】
段階S122では、データベースのアーカイビング装置がレコードグループに含まれた複数のレコードのデータをバッファに格納する。
【0051】
複数のレコードのデータが格納されるバッファの大きさは、原本テーブルのテーブル構造(フィールドの個数、種類及び大きさ)及びレコードグループに含まれるレコードの閾値に基づいて決定されることができる。
【0052】
例えば、原本テーブルがDATE(文字8字)、NAME(文字30字)及びAGE(整数4バイト)の計3個のフィールドを含み、レコードグループのレコードの個数に対する閾値が10万個とすれば、文字1字を2バイトで計算すると、バッファの大きさは、少なくとも10万*(8*2+30*2+4)=800万バイト(約8メガバイト)になることができる。
【0053】
そして、データベースのアーカイビング装置がレコードグループに含まれたレコード及びそのレコードのフィールド値を順次に全て読み、バッファに順に格納することができる。
【0054】
段階S124では、データベースのアーカイビング装置がそのバッファに格納されたデータを圧縮してグループ圧縮データを生成する。
【0055】
グループ圧縮データは、バッファに格納されたレコードグループのデータを圧縮して生成されたバイナリ形態の結果物であることができる。この時、圧縮による損失が発生しないようにするために、無損失の圧縮アルゴリズムであるZIP、CTW、LZ77またはLZWなどが使用されることができる。
【0056】
段階S126では、データベースのアーカイビング装置がその生成されたグループ圧縮データ別に固有に付与された格納キー値を生成する。
【0057】
例えば、データベースのアーカイビング装置が時間に所定のフィールド値に基づいてレコードグループを分類し、そのレコードグループに対応するグループ圧縮データを生成した時、その生成されたグループ圧縮データのそれぞれに対して固有の格納キー値を与えることができる。
【0058】
最後に、段階S128では、データベースのアーカイビング装置が生成されたグループ圧縮データを付与された格納キー値と共に圧縮テーブル上の同一のレコードに格納する。
【0059】
圧縮テーブルは、バイナリ形態であるグループ圧縮データを格納するためのフィールドと格納キー値を格納するための少なくとも一つのフィールドとを含むことができる。つまり、生成されたグループ圧縮データは、圧縮されたバイナリデータを格納するためのフィールドに格納され、そのグループ圧縮データに対応する格納キー値は、その少なくとも一つのフィールドに分散して格納することができる。
【0060】
一方、図7は、圧縮テーブルの構造を説明するために示した図面であり、圧縮テーブルの構造を説明すると、以下の通りである。
【0061】
原本テーブル710は、時間に関するDateフィールド714及び特定属性に関するCol1フィールド716を含んでいる。この時、データベースのアーカイビング装置が原本テーブル710を時間に関する情報であるDateフィールド714のフィールド値及び特定属性に対するCol1フィールド716値に基づいて分類した後、各分類結果別にグループ圧縮データ724及びそのグループ圧縮データに対応する固有に付与された格納キー値722を圧縮テーブル720に格納することができる。
【0062】
例えば、原本テーブル710において、Dateフィールド714のフィールド値が2002.01であり、Col1フィールド716のフィールド値が1000であるレコードグループを分類して、150001の格納キー値722を付与し、Dateフィールド714のフィールド値が2002.01であり、Col1フィールド716のフィールド値が2000であるレコードグループを分類して、150002の格納キー値722を付与することができる。この時、Dateフィールド714のフィールド値が2002.01であり、Col1フィールド716のフィールド値がそれぞれ1000及び2000であるレコードの個数がそれぞれ5万個及び4万個であることを圧縮テーブル720のグループ圧縮データ724のレコードの個数に関する情報から分かる。
【0063】
段階S130では、データベースのアーカイビング装置が少なくとも一つのレコードグループのそれぞれに対応するフィールド値及び格納キー値をグループインデックステーブルに格納する。
【0064】
グループインデックステーブルは、所定のフィールド値に関する情報を格納するためのフィールドと、その所定のフィールド値に関する情報に対応するグループ圧縮データに固有に付与された格納キーを格納するための少なくとも一つのフィールドとを含むことができる。
【0065】
該フィールド値及び格納キー値を含むグループインデックステーブルは、所定のフィールド値に関する情報から対応する格納キー値を獲得するのに用いられ、圧縮テーブルは、その格納キー値に対応するグループ圧縮データを獲得するのに用られることができる。
【0066】
最後に、段階S140では、データベースのアーカイビング装置が選別された少なくとも一つのレコードグループに含まれた複数のレコードを原本テーブルから削除する。
【0067】
データベースを圧縮してアーカイビングする目的は、データベースの格納スペースを節約するためであるので、アーカイビングされたレコードグループに含まれる複数のレコードを原本テーブルから削除することで、データベースの格納スペースを節約することができる。
【0068】
他の実施例では、データベースのアーカイビング装置が原本テーブルにおいて、時間に関する情報にさらに基づいて少なくとも一つのレコードグループを選別する時、少なくとも一つのレコードグループのそれぞれについて対応する時間に関する情報及び格納キー値を期間インデックステーブルに格納することができる。
【0069】
期間インデックステーブルは、所定の時間に関する情報を格納するためのフィールドと、その所定の時間に関する情報に対応するグループ圧縮データに固有に付与された格納キーを格納するための少なくとも一つのフィールドとを含むことができる。
【0070】
該所定の時間に関する情報及び格納キー値を含む期間インデックステーブルは、所定の時間に関する情報から対応する格納キー値を獲得するのに用いられ、圧縮テーブルは、その格納キー値に対応するグループ圧縮データを獲得するのに用られることができる。一方、期間インデックステーブルは、時間または期間に対する検索頻度などに基づいて選択的に生成されて用いられることができる。
【0071】
例えば、データベースのアーカイビング装置が所定のフィールド値及び時間に関する情報に基づいて原本テーブルからレコードグループを選別し、その選別されたレコードグループ別に生成されたグループ圧縮データと、その生成されたグループ圧縮データに固有に付与された格納キー値を圧縮テーブルに格納することができる。
【0072】
そして、その選別されたレコードグループ別に含まれた複数のレコードに共通するフィールド値に関する情報(例、Col1フィールド値が1000)とグループ圧縮データに対応する格納キー値をグループインデックステーブルに格納することができる。また、その選別されたレコードグループ別に含まれた複数のレコードに共通する時間に関する情報(例、Dateフィールド値が2002.01)とグループ圧縮データに対応する格納キー値を期間インデックステーブルに格納することができる。
【0073】
一方、図8は、グループインデックステーブル及び期間インデックステーブルの構造を説明するために示した図面であり、グループインデックステーブル及び期間インデックステーブルの構造を説明すると、以下の通りである。
【0074】
図7を参照すると、圧縮テーブル720には、グループ圧縮データ724及びそのグループ圧縮データに対応する固有に付与された格納キー値722が格納されている。データベースのアーカイビング装置が圧縮テーブル720に格納されたそれぞれのグループ圧縮データ724について、対応する格納キー値722及び原本テーブル710のCol1フィールド716値に基づいて、図8に含まれたグループインデックステーブル820に格納キー値722及びフィールド値に関する情報822を格納することができる。また、データベースのアーカイビング装置が圧縮テーブル720に格納されたそれぞれのグループ圧縮データ724について、対応する格納キー値722及び原本テーブル710のDateフィールド714値に基づいて、図8に含まれた期間インデックステーブル810に格納キー値722及び時間に関する情報812を格納することができる。
【0075】
このように、本発明の一実施例によるデータベースのアーカイビング方法は、圧縮する手続きを経てデータベースをアーカイビングすることで、データベースの容量を画期的に節約するという効果がある。また、データベースに含まれた原本テーブル及び連結テーブルからグループインデックステーブル及び期間インデックステーブルを生成することで、追って該アーカイビングされたデータを検索する上で検索の効率性を極大化することができるという効果がある。
【0076】
図2は、本発明の他の実施例によるインデックス情報を生成するデータベースのアーカイビング方法を説明するために示したフローチャートである。
【0077】
段階S210では、データベースのアーカイビング装置がデータのアーカイビングをする原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別する。
【0078】
段階S220では、データベースのアーカイビング装置が選別された少なくとも一つのレコードグループのそれぞれについて、レコードグループ別に圧縮して生成されたグループ圧縮データ及びそのグループ圧縮データ別に固有に付与された格納キー値を圧縮テーブルに格納する。
【0079】
段階S230では、データベースのアーカイビング装置が少なくとも一つのレコードグループのそれぞれに対応するフィールド値及び格納キー値をグループインデックステーブルに格納する。
【0080】
段階S240では、データベースのアーカイビング装置が原本テーブルに含まれた各レコードについてプライマリキー(primary key)の値、グループ圧縮データ内における位置であるキーインデックス情報及びグループ圧縮データに対応する格納キー値に関する情報をキーインデックステーブルに格納する。
【0081】
プライマリキーは、データベースでレコード別に固有に識別される値を有するフィールドを意味し、基本キー、主キーまたはユニークキーとも呼ばれる。また、一つのテーブルには一つ以上のプライマリキーが存在することができる。
【0082】
また、キーインデックス情報は、特定のプライマリキー値を有するレコードがグループ圧縮データの中でどの位置に格納されているかに対する情報である。例えば、グループ圧縮データが含む10万個のレコードに関する情報の中で1000番目に格納されたレコードという格納順序に関する情報がキーインデックス情報として格納することができる。
【0083】
一方、キーインデックステーブルでプライマリキーの値を格納する理由は、検索対象となるテーブルを他のフィールド値及び時間に関する情報だけでなく、そのプライマリキー値によって直接検索できるようにするためである。つまり、使用者が特定のプライマリキー値を入力しながら、そのプライマリキー値を有するレコードをテーブルで検索する時、キーインデックステーブルが使用されることができる。
【0084】
さらに具体的には、データベースの検索装置がその特定したプライマリキー値を有するレコードをキーインデックステーブルで検索することができる。そして、その検索されたレコードに含まれたキーインデックス情報及び格納キー値に基づいて、圧縮テーブルでその格納キー値に対応するグループ圧縮データを獲得し、そのキーインデックス情報を利用してそのグループ圧縮データで使用者が検索を所望のレコードを検索することができる。これに対するより具体的な説明は、図3に対する説明で後述する。
【0085】
他の実施例では、データベースのアーカイビング装置が、少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、その第2グループ圧縮データに含まれた複数のレコードの中で原本テーブルに含まれたレコードとプライマリキーの値が同一のレコードを検索し、その検索されたレコードについて第2グループ圧縮データ内における位置であるサブインデックス情報をキーインデックステーブル上のプライマリキーの値が同一のレコードにさらに格納することができる。
【0086】
連結テーブルは、プライマリキーに通じて原本テーブルと連結するテーブルである。即ち、そのプライマリキーは、原本テーブルと連結テーブルに全て存在することができる。
【0087】
第2グループ圧縮データは、プライマリキーに通じて原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、その少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成されたデータである。この時、第2グループ圧縮データは、図1に関する説明で上述したグループ圧縮データと同一の方式で生成されることができ、グループ圧縮データと同様に、固有の格納キー値と共に圧縮テーブルに格納することができる。
【0088】
サブインデックス情報は、特定のプライマリキー値を有するレコードがある第2グループ圧縮データの中でどの位置に格納されているかに対する情報である。例えば、第2グループ圧縮データに含まれた10万個のレコードに関する情報の中で1000番目に格納されたレコードという格納順序に関する情報がサブインデックス情報として格納することができる。
【0089】
例えば、データベースに原本テーブルとプライマリキーに通じて連結される1個の連結テーブルが存在することができる。もし、原本テーブルには存在しないが、連結テーブルには存在するフィールドについて、使用者がそのフィールドのフィールド値情報を必要とすれば、データベースのアーカイビング装置が追ってその連結テーブルまで検索可能にキーインデックステーブル上の同一のプライマリキー値を有するレコードにサブインデックス情報をさらに格納することができる。
【0090】
また他の実施例では、データベースのアーカイビング装置が少なくとも一つの連結テーブルに対するサブインデックス情報を取り集めて圧縮した後、キーインデックステーブルに新しいサブインデックス情報として格納することができる。
【0091】
例えば、データベースのアーカイビング装置が少なくとも一つの連結テーブルで同一のプライマリキー値を有するレコードについて、少なくとも一つの第2グループ圧縮データ内における位置に対するサブインデックス情報を全て取り集めることができる。そして、その取り集められた値を圧縮して、キーインデックステーブル上の同一のプライマリキーの値を含むレコードに新しいサブインデックス情報として格納することができる。
【0092】
一方、図9は、キーインデックステーブルの構造を説明するために示した図面であり、キーインデックステーブルの構造を説明すると、以下の通りである。
【0093】
図7を参照すると、原本テーブル710に含まれた各レコードについてプライマリキーのDoc.No.フィールド712値、そのレコードが格納されたグループ圧縮データ724に対応する格納キー値722及びそのレコードのキーインデックス情報912がキーインデックステーブル910に格納されることができる。また、原本テーブル710とプライマリキー712を通じて連結される連結テーブル(図示せず)に基づいて生成された第2グループ圧縮データについて、原本テーブル710のレコードと同一のプライマリキー値712を有する連結テーブルのレコードのサブインデックス情報914がキーインデックステーブル910にさらに格納することができる。
【0094】
段階S250では、データベースのアーカイビング装置が選別された少なくとも一つのレコードグループに含まれた複数のレコードを原本テーブルから削除する。
【0095】
このように、本発明の一実施例によるデータベースのアーカイビング方法は、圧縮する手続きを経てデータベースをアーカイビングすることで、データベースの容量を画期的に節約するという効果がある。また、データベースに含まれた原本テーブル及び連結テーブルからキーインデックステーブルを生成することで、追ってプライマリキー値を利用してそのアーカイビングされたデータを検索する上で検索の効率性を極大化することができるという効果がある。
【0096】
図3は、本発明の一実施例によるインデックス情報を利用するアーカイビングされたデータベースの検索方法を説明するために示したフローチャートである。
【0097】
段階S310では、データベースの検索装置が圧縮テーブルで使用者が所望のそのフィールド値に対する所定条件のレコードを検索するための検索条件を受信する。
【0098】
圧縮テーブルは、データベースの検索装置がフィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及びそのグループ圧縮データに対応する固有の格納キー値に関する情報を含むテーブルである。
【0099】
受信された検索条件は、SQL(structured query language)文の形態の検索条件であることができる。つまり、データベースの検索装置がグループ圧縮データとそのグループ圧縮データに対応する格納キー値が格納された圧縮テーブルで使用者が所望のフィールド値に対する条件を含むレコードを検索するための検索条件をSQL文の形式で受信することができる。
【0100】
段階S320では、データベースの検索装置がグループインデックステーブルでその検索条件を満たす格納キー値を検索する。
【0101】
グループインデックステーブルは、フィールド値に関する情報及びそのフィールド値に関する情報に対応する格納キー値に関する情報を含むテーブルである。
【0102】
データベースの検索装置がグループインデックステーブルで使用者のそのフィールド値に対する条件を含む検索条件を満たすレコードを検索する。そして、その検索されたレコードに含まれた格納キー値に関する情報を収集することができる。
【0103】
他の実施例では、データベースの検索装置が、時間に関する情報にさらに基づいて生成されたグループ圧縮データが圧縮テーブルに含まれ、時間に対する所定条件がその受信された検索条件にさらに含まれる時、期間インデックステーブルでその検索条件を満たす格納キー値を検索することができる。
【0104】
期間インデックステーブルは、時間に関する情報及びその時間に関する情報に対応する格納キー値に関する情報を含むテーブルである。
【0105】
圧縮テーブルに含まれたグループ圧縮データがフィールド値に関する情報だけでなく、時間に関する情報にさらに基づいて生成された時、データベースの検索装置が時間に対する検索条件をさらに利用して圧縮テーブルのレコードを検索することができる。
【0106】
さらに具体的には、データベースの検索装置が時間に対する検索条件を満たすレコードを期間のインデックステーブルに検索することができる。そして、その検索されたレコードに含まれた格納キー値に関する情報を収集することができる。
【0107】
一方、受信された検索条件がフィールド値及び時間に関する情報を全て含んでいる時、データベースの検索装置は、グループインデックステーブルと期間インデックステーブルとの両方で格納キー値に関する情報を収集することができる。そして、その収集された格納キー値に関する情報の中で、グループインデックステーブルと期間インデックステーブルで共通して収集された格納キー値に関する情報が最終的にレコードの検索のために必要な格納キー値になることができる。
【0108】
段階S330では、データベースの検索装置が検索が行われるコンピュータの性能及び検索条件を満たす格納キー値に対応するグループ圧縮データの個数のうち少なくともいずれか一つに基づいて、レコードの検索を並列に処理するためのDB検索過程の個数を決定する。
【0109】
DB検索過程は、アーカイビングされたデータベースでレコードの検索を行う単一過程を意味する。従って、もしレコードの検索が並列に処理される場合は、DB検索過程が複数個存在し、同時に進行すると理解されることができる。
【0110】
一方、DB検索過程の個数がコンピュータの性能に基づいて決定されることは、各DB検索過程が圧縮されたグループ圧縮データからレコードを検索する過程がコンピュータに多くの負荷を与える可能性があるからである。また、DB検索過程の個数が検索条件を満たす格納キー値に対応するグループ圧縮データの個数に基づいて決定されることは、そのグループ圧縮データの個数が、結局、検索の量または範囲と関連する可能性があるからである。
【0111】
一方、レコードの検索を並列に処理するためのDB検索過程の個数を決定する具体的な過程については、図4に対する説明で具体的に後述する。
【0112】
段階S340では、データベースの検索装置が決定されたDB検索過程の個数に基づいて検索条件を満たすレコードの検索を並列に行う。
【0113】
例えば、データベースの検索装置が先に決定された個数だけのDB検索過程を準備し、各DB検索過程別に検索範囲を分担してレコードの検索を並列に行うことができる。
【0114】
他の実施例では、データベースの検索装置がプライマリキー値に対する検索条件が検索条件にさらに含まれる時、キーインデックステーブルでそのプライマリキー値に対する検索条件を満たすレコードの格納キー値及びキーインデックス情報をさらに検索することができる。そして、データベースの検索装置がその検索された格納キー値及びキーインデックス情報にさらに基づいてレコードの並列検索を行うことができる。
【0115】
キーインデックステーブルは、圧縮テーブルでアーカイビングした原本テーブルの各レコード別のプライマリキーの値、グループ圧縮データ内における位置であるキーインデックス情報及びグループ圧縮データに対応する格納キー値に関する情報を含むテーブルである。
【0116】
例えば、使用者から受信された検索条件にフィールド値及び時間に関する情報だけでなく、プライマリキー値に関する情報が含まれることができる。この場合、データベースの検索装置がキーインデックステーブルでそのプライマリキーの値を有するレコードを検索し、その検索されたレコードの格納キー値及びキーインデックス情報をさらに利用して使用者の検索条件を満たすレコードを検索することができる。
【0117】
また他の実施例では、データベースの検索装置が、少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、格納キー値及びキーインデックス情報を検索する時、キーインデックステーブルで使用者の検索条件を満たすレコードのサブインデックス情報をさらに検索することができる。そして、データベースの検索装置がレコードの検索を並列に行う時、検索されたサブインデックス情報及びそのサブインデックス情報に対応する第2グループ圧縮データにさらに基づいて検索を行うことができる。
【0118】
連結テーブルは、プライマリキーに通じて原本テーブルと連結するテーブルであり、そのプライマリキーは、原本テーブルと連結テーブルに全て存在することができる。一方、キーインデックステーブルには、連結テーブルの各レコード別の第2グループ圧縮データ内における位置であるサブインデックス情報がさらに含まれることができる。
【0119】
第2グループ圧縮データは、プライマリキーに通じて原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、その少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成されたデータである。この時、第2グループ圧縮データは、図1に対する説明で上述したグループ圧縮データと同一の方式で生成されることができ、グループ圧縮データと同様に、固有の格納キー値と共に圧縮テーブルに格納することができる。
【0120】
例えば、使用者から受信された検索条件に連結テーブルだけに存在するフィールド値に対する条件がさらに含まれる場合、データベースの検索装置がキーインデックステーブルでその検索条件を満たすプライマリキー値に対応するサブインデックス情報をさらに検索し、そのサブインデックス情報を利用して第2グループ圧縮データに含まれたそのフィールド値に関する情報をさらに検索することができる。
【0121】
また他の実施例では、データベースの検索装置がDB検索過程のそれぞれについて少なくとも一つのグループ圧縮データを割り当て、それに基づいてレコードの検索を並列に行うことができる。
【0122】
例えば、検索条件を満たす格納キー値に対応するグループ圧縮データの個数が6個であり、決定されたDB検索過程の個数が4個とすれば、データベースの検索装置がDB検索過程4個のうち2個には2個ずつのグループ圧縮データを割り当て、残りのDB検索過程の2個には1個ずつのグループ圧縮データが割り当てられる。そして、その4個のDB検索過程が割り当てられた1個または2個のグループ圧縮データに対するレコードの検索を並列に行うことができる。
【0123】
この時、各DB検索過程は、割り当てられたグループ圧縮データの圧縮を解除してバッファに格納し、そのバッファに格納されたデータから検索条件を満たすレコードを検索する過程を通じて検索を行うことができる。
【0124】
また他の実施例では、データベースの検索装置が圧縮テーブルでアーカイビングされた原本テーブルに含まれたフィールドの種類、大きさ、順序及び名称に対する情報であるテーブル構造情報にさらに基づいて検索条件を満たすレコードの検索を行うことができる。
【0125】
グループ圧縮データの圧縮を解除してバッファに格納し、そのバッファに格納されたデータから検索条件を満たすレコードを検索する場合に、データベースの検索装置が原本テーブルに含まれた各フィールドの種類、大きさ、順序及び名称に対する情報であるテーブル構造情報が分かっていれば、そのテーブル構造の情報に基づいて検索をより容易に行うことができる。
【0126】
また他の実施例では、DB検索過程は、それぞれのDB検索過程別に割り当てられたプロセス(process)またはスレッド(thread)を利用して検索を行うことができる。
【0127】
各DB検索過程は、並列的にレコードの検索を行わなければならないため、このような並列的な特性を満たすために、子プロセス(child process)またはスレッドが各DB検索過程別に一つずつ割り当てられて検索を行うことができる。この時、各DB検索過程別に子プロセスが割り当てられるか或いはスレッドが割り当てられるかは、検索が行われるコンピュータのCPUの種類及びOSの種類などによる支援の有無によって決定されることができる。
【0128】
例えば、DB検索過程の個数が6個に決定された場合に、6個の子プロセスが各DB検索過程別に割り当てられ、6個の子プロセスのそれぞれがDB検索過程に割り当てられたグループ圧縮データに対するレコードの検索を並列に行うことができる。
【0129】
このように、本発明の一実施例によるアーカイビングされたデータベースの検索方法は、コンピュータの性能及びデータベース検索の範囲によって決定されたDB検索過程の個数に基づいてレコードの検索を並列に行うことができるという効果がある。
【0130】
図4は、本発明の一実施例によるDB検索過程の個数を決定する方法を説明するために示したフローチャートである。
【0131】
段階S410では、データベースの検索装置がコンピュータに含まれたCPUの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集する。
【0132】
コンピュータの性能は、レコードの検索が行われるコンピュータに含まれたCPU、メモリー及び格納装置の性能によって決定されることができる。特に、CPUの場合、そのコンピュータに組み込まれたCPUの個数、クロック周波数、キャッシュのサイズ及びCPU別コアの個数などによって性能が決定されることができる。また、メモリーは、容量及び動作周波数などによって性能が決定されることができる。また、格納装置は、入出力速度によって性能が決定されることができる。
【0133】
従って、データベースの検索装置がレコードの検索が行われるコンピュータのCPU、メモリー及び格納装置のうち少なくとも一つに対する情報を含むコンピュータ性能情報を収集することができる。
【0134】
段階S420では、データベースの検索装置が圧縮テーブルに格納されたグループ圧縮データの中で受信された検索条件を満たす格納キー値に対応するグループ圧縮データの個数を決定する。
【0135】
例えば、圧縮テーブルに格納された格納キー値及びその格納キー値に対応するグループ圧縮データについて、使用者が2015年1月から2015年10月までの検索条件を生成した場合に、この検索条件を満たす格納キー値を期間インデックステーブルで見つければ、その格納キー値に対応するグループ圧縮データの個数が決定されることができる。
【0136】
最後に、段階S430では、データベースの検索装置がその収集されたコンピュータ性能情報及びその決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいてレコードの検索を並列に処理するためのDB検索過程の個数を決定する。
【0137】
例えば、データベースの検索装置は、収集されたコンピュータ性能情報とグループ圧縮データの個数を総合的に分析して、レコードの検索を並列に処理するためのDB検索過程の個数を決定することができる。
【0138】
さらに具体的には、収集されたコンピュータ性能情報が優れなくとも決定されたグループ圧縮データの個数が多くない場合、DB検索過程の個数は、グループ圧縮データの個数に合わせて少ない数で決定されることができ、逆に収集されたコンピュータ性能情報が非常に優れた場合に決定されたグループ圧縮データの個数が多くても、DB検索過程の個数は、コンピュータ性能情報に合わせても少ない数で決定されることができる。
【0139】
このように、本発明の一実施例によるDB検索過程の個数を決定する方法は、検索が行われるコンピュータの性能に対する情報及び検索条件を満たす格納キー値に対応するグループ圧縮データの個数によってDB検索過程の個数を決定することで、より効率的にレコードの検索を並列に行うという効果がある。
【0140】
図5は、本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング装置を説明するために示した図面である。
【0141】
図5をみると、インデックス情報を生成するデータベースのアーカイビング装置500は、データ選別部510、データ圧縮部520及びDB管理部530を含む。この時、インデックス情報を生成するデータベースのアーカイビング装置500は、データベースが組み込まれたコンピュータに共に組み込まれるか、データベースとネットワークで連結されたコンピュータに組み込まれることができる。
【0142】
データ選別部510は、データのアーカイビングをする原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別する。
【0143】
データ圧縮部520は、選別された少なくとも一つのレコードグループのそれぞれについて、レコードグループ別に圧縮してグループ圧縮データを生成する。
【0144】
DB管理部530は、グループ圧縮データ及びそのグループ圧縮データ別に固有に付与された格納キー値を圧縮テーブルに格納し、少なくとも一つのレコードグループのそれぞれに対応するフィールド値及び格納キー値をグループインデックステーブルに格納し、少なくとも一つのレコードグループに含まれた複数のレコードを原本テーブルから削除する。
【0145】
他の実施例では、データ選別部510が原本テーブルにおいて時間に関する情報にさらに基づいて、少なくとも一つのレコードグループを選別する時、DB管理部530は、その少なくとも一つのレコードグループのそれぞれに対応する時間に関する情報及び格納キー値を期間インデックステーブルにさらに格納することができる。
【0146】
また他の実施例では、DB管理部530は、原本テーブルに含まれた各レコードについてプライマリキーの値、グループ圧縮データ内における位置であるキーインデックス情報及びグループ圧縮データに対応する格納キー値に関する情報をキーインデックステーブルにさらに格納することができる。
【0147】
また他の実施例では、プライマリキーに通じて原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、その少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、DB管理部530は、その第2グループ圧縮データに含まれた複数のレコードの中で原本テーブルに含まれたレコードとプライマリキーの値が同一のレコードをさらに検索し、その検索されたレコードについて第2グループ圧縮データ内における位置であるサブインデックス情報をキーインデックステーブル上のプライマリキーの値が同一のレコードにさらに格納することができる。
【0148】
図6は、本発明の一実施例によるインデックス情報を利用するアーカイビングされたデータベースの検索装置を説明するために示した図面である。
【0149】
図6をみると、アーカイビングされたデータベースの検索装置600は、受信部610、インデックス検索部620、検索準備部630及び並列検索部640を含む。この時、アーカイビングされたデータベースの検索装置600は、データベースが組み込まれたコンピュータに共に組み込まれるか、データベースとネットワークで連結されたコンピュータに組み込まれることができる。
【0150】
受信部610は、フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及びそのグループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望のそのフィールド値に対する所定条件のレコードを検索するための検索条件を受信する。
【0151】
インデックス検索部620は、フィールド値に関する情報及びそのフィールド値に関する情報に対応する格納キー値が格納されたグループインデックステーブルで受信された検索条件を満たす格納キー値を検索する。
【0152】
検索準備部630は、検索が行われるコンピュータの性能及び検索条件を満たす格納キー値に対応するグループ圧縮データの個数のうち少なくともいずれか一つに基づいて、レコードの検索を並列に処理するためのDB検索過程の個数を決定する。
【0153】
並列検索部640は、その決定されたDB検索過程の個数に基づいて検索条件を満たすレコードの検索を並列に行う。
【0154】
他の実施例では、時間に関する情報にさらに基づいて生成されたグループ圧縮データが圧縮テーブルに含まれ、その時間に対する所定条件が受信された検索条件にさらに含まれる時、インデックス検索部620は、時間に関する情報及びその時間に関する情報に対応する格納キー値が格納された期間インデックステーブルで受信された検索条件を満たす格納キー値をさらに検索することができる。
【0155】
また他の実施例では、受信された検索条件にプライマリキー値に対する検索条件が含まれる時、インデックス検索部620は、圧縮テーブルでアーカイビングした原本テーブルの各レコード別のプライマリキーの値、グループ圧縮データ内における位置であるキーインデックス情報及びグループ圧縮データに対応する格納キー値に関する情報が格納されたキーインデックステーブルにおいて、受信された検索条件を満たすレコードの格納キー値及びキーインデックス情報をさらに検索し、並列検索部640は、格納キー値及びキーインデックス情報にさらに基づいて検索を行うことができる。
【0156】
また他の実施例では、プライマリキーに通じて原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、その少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第2グループ圧縮データについて、インデックス検索部620は、各レコード別の第2グループ圧縮データ内における位置であるサブインデックス情報を含むキーインデックステーブルで検索条件を満たすレコードのサブインデックス情報をさらに検索し、並列検索部640は、サブインデックス情報及び第2グループ圧縮データにさらに基づいて検索を行うことができる。
【0157】
また他の実施例では、検索準備部620は、コンピュータに含まれたCPUの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集し、圧縮テーブルに格納されたグループ圧縮データの中で受信された検索条件を満たす格納キー値に対応するグループ圧縮データの個数を決定し、その収集されたコンピュータ性能情報及びその決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいてレコードの検索を並列に処理するためのDB検索過程の個数を決定することができる。
【0158】
一方、上述した本発明の実施例は、コンピュータで実行することができるプログラムで作成可能であり、コンピュータで読み取れる記録媒体を利用して上記プログラムを動作させる汎用のデジタルコンピュータで実現することができる。
【0159】
上記コンピュータで読み取れる記録媒体は、マグネチック格納媒体(例えば、ロム、フロッピーディスク、ハードディスクなど)、光学的読取媒体(例えば、シーディーロム、ディーブイディーなど)を含む。
【0160】
これまで本発明についてその好ましい実施例を中心として説明した。本発明が属する技術分野で通常の知識を持った者は、本発明が本発明の本質的な特性から逸脱しない範囲で変形された形態で実現可能なことが理解できるであろう。従って、開示された実施例は限定的な観点ではなく、説明的な観点で考慮されるべきである。本発明の範囲は、前述した説明ではなく、特許請求の範囲に示されており、それと同等の範囲内にある全ての差異点は、本発明に含まれると解釈されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9