(57)【要約】インデックス情報を生成するデータベースのアーカイビング方法を提供する。本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング方法は、データのアーカイビングをする原本テーブルにおいて、フィールド（ｆｉｅｌｄ）値に関する情報に基づいて複数のレコード（ｒｅｃｏｒｄ）を含む少なくとも一つのレコードグループを選別する段階と、前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー（ｓｔｏｒｅｄ  ｋｅｙ）値を圧縮テーブルに格納する段階と、前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納する段階と、前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除する段階とを含む。【選択図】図１
2019512124.tif 000002
【特許請求の範囲】
【請求項１】
データのアーカイビングをする原本テーブルにおいて、フィールド（ｆｉｅｌｄ）値に関する情報に基づいて複数のレコード（ｒｅｃｏｒｄ）を含む少なくとも一つのレコードグループを選別する段階と、
前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー（ｓｔｏｒｅｄ  ｋｅｙ）値を圧縮テーブルに格納する段階と、
前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納する段階と、
前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除する段階と、
を含むことを特徴とするインデックス情報を生成するデータベースのアーカイビング方法。
【請求項２】
前記少なくとも一つのレコードグループを選別する段階が前記原本テーブルにおいて時間に関する情報にさらに基づいて前記少なくとも一つのレコードグループを選別する時、
前記少なくとも一つのレコードグループのそれぞれについて対応する前記時間に関する情報及び前記格納キー値を期間インデックステーブルに格納する段階、
をさらに含むことを特徴とする請求項１に記載のインデックス情報を生成するデータベースのアーカイビング方法。
【請求項３】
前記原本テーブルに含まれた各レコードについてプライマリキー（ｐｒｉｍａｒｙ  ｋｅｙ）の値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報をキーインデックステーブルに格納する段階、
をさらに含むことを特徴とする請求項１に記載のインデックス情報を生成するデータベースのアーカイビング方法。
【請求項４】
前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、
前記第２グループ圧縮データに含まれた複数のレコードの中で前記原本テーブルに含まれたレコードと前記プライマリキーの値が同一のレコードを検索する段階と、
前記検索されたレコードについて前記第２グループ圧縮データ内における位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーの値が同一のレコードにさらに格納する段階と、
を含むことを特徴とする請求項３に記載のインデックス情報を生成するデータベースのアーカイビング方法。
【請求項５】
データのアーカイビングをする原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別するデータ選別部と、
前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮してグループ圧縮データを生成するデータ圧縮部と、
前記グループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー値を圧縮テーブルに格納し、前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納し、前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除するＤＢ管理部と、
を含むことを特徴とするインデックス情報を生成するデータベースのアーカイビング装置。
【請求項６】
前記データ選別部が前記原本テーブルにおいて時間に関する情報にさらに基づいて前記少なくとも一つのレコードグループを選別する時、
前記ＤＢ管理部は、
前記少なくとも一つのレコードグループのそれぞれに対応する前記時間に関する情報及び前記格納キー値を期間インデックステーブルにさらに格納することを特徴とする請求項５に記載のインデックス情報を生成するデータベースのアーカイビング装置。
【請求項７】
前記ＤＢ管理部は、
前記原本テーブルに含まれた各レコードについてプライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報をキーインデックステーブルにさらに格納することを特徴とする請求項５に記載のインデックス情報を生成するデータベースのアーカイビング装置。
【請求項８】
前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、
前記ＤＢ管理部は、
前記第２グループ圧縮データに含まれた複数のレコードの中で前記原本テーブルに含まれたレコードと前記プライマリキーの値が同一のレコードをさらに検索し、
前記検索されたレコードについて前記第２グループ圧縮データ内における位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーの値が同一のレコードにさらに格納することを特徴とする請求項７に記載のインデックス情報を生成するデータベースのアーカイビング装置。
【請求項９】
フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望の前記フィールド値に対する所定条件のレコードを検索するための検索条件を受信する段階と、
前記フィールド値に関する情報及び前記フィールド値に関する情報に対応する前記格納キー値が格納されたグループインデックステーブルにおいて、前記検索条件を満たす格納キー値を検索する段階と、
検索が行われるコンピュータの性能及び前記検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数のうち少なくともいずれか一つに基づいて、前記レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する段階と、
前記決定されたＤＢ検索過程の個数に基づいて前記検索条件を満たすレコードの検索を並列に行う段階と、
を含むことを特徴とするインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項１０】
時間に関する情報にさらに基づいて生成された前記グループ圧縮データが前記圧縮テーブルに含まれ、前記時間に対する所定条件が前記受信された検索条件にさらに含まれる時、
前記時間に関する情報及び前記時間に関する情報に対応する前記格納キー値が格納された期間インデックステーブルにおいて、前記検索条件を満たす格納キー値を検索する段階、
をさらに含むことを特徴とする請求項９に記載のインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項１１】
プライマリキー値に対する検索条件が前記検索条件にさらに含まれる時、
前記圧縮テーブルでアーカイビングした原本テーブルの各レコード別の前記プライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報が格納されたキーインデックステーブルにおいて、前記検索条件を満たすレコードの前記格納キー値及び前記キーインデックス情報を検索する段階、
をさらに含み、
前記レコードの検索を並列に行う段階は、
前記格納キー値及び前記キーインデックス情報にさらに基づいて検索を行うことを特徴とする請求項９に記載のインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項１２】
前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、
前記格納キー値及び前記キーインデックス情報を検索する段階は、
各レコード別の前記第２グループ圧縮データ内における位置であるサブインデックス情報を含む前記キーインデックステーブルにおいて、前記検索条件を満たすレコードの前記サブインデックス情報をさらに検索し、
前記レコードの検索を並列に行う段階は、
前記サブインデックス情報及び前記第２グループ圧縮データにさらに基づいて検索を行うことを特徴とする請求項１１に記載のインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項１３】
前記並列に処理するためのＤＢ検索過程の個数を決定する段階は、
前記コンピュータに含まれたＣＰＵの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集する段階と、
前記圧縮テーブルに格納された前記グループ圧縮データの中で前記受信された検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数を決定する段階と、
前記収集されたコンピュータ性能情報及び前記決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいて前記レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する段階と、
を含むことを特徴とする請求項９に記載のインデックス情報を利用するアーカイビングされたデータベースの検索方法。
【請求項１４】
フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望の前記フィールド値に対する所定条件のレコードを検索するための検索条件を受信する受信部と、
前記フィールド値に関する情報及び前記フィールド値に関する情報に対応する前記格納キー値が格納されたグループインデックステーブルにおいて、前記検索条件を満たす格納キー値を検索するインデックス検索部と、
検索が行われるコンピュータの性能及び前記検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数のうち少なくともいずれか一つに基づいて、前記レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する検索準備部と、
前記決定されたＤＢ検索過程の個数に基づいて前記検索条件を満たすレコードの検索を並列に行う並列検索部と、
を含むことを特徴とするインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【請求項１５】
時間に関する情報にさらに基づいて生成された前記グループ圧縮データが前記圧縮テーブルに含まれ、前記時間に対する所定条件が前記受信された検索条件にさらに含まれる時、
前記インデックス検索部は、
前記時間に関する情報及び前記時間に関する情報に対応する前記格納キー値が格納された期間インデックステーブルにおいて、前記検索条件を満たす格納キー値をさらに検索することを特徴とする請求項１４に記載のインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【請求項１６】
前記検索条件にプライマリキー値に対する検索条件が含まれる時、
前記インデックス検索部は、
前記圧縮テーブルでアーカイビングした原本テーブルの各レコード別の前記プライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報が格納されたキーインデックステーブルにおいて、前記検索条件を満たすレコードの前記格納キー値及び前記キーインデックス情報をさらに検索し、
前記並列検索部は、
前記格納キー値及び前記キーインデックス情報にさらに基づいて検索を行うことを特徴とする請求項１４に記載のインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【請求項１７】
前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、
前記インデックス検索部は、
各レコード別の前記第２グループ圧縮データ内における位置であるサブインデックス情報を含む前記キーインデックステーブルにおいて、前記検索条件を満たすレコードの前記サブインデックス情報をさらに検索し、
前記並列検索部は、
前記サブインデックス情報及び前記第２グループ圧縮データにさらに基づいて検索を行うことを特徴とする請求項１６に記載のインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【請求項１８】
前記検索準備部は、
前記コンピュータに含まれたＣＰＵの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集し、
前記圧縮テーブルに格納された前記グループ圧縮データの中で前記受信された検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数を決定し、
前記収集されたコンピュータ性能情報及び前記決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいて前記レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定することを特徴とする請求項１４に記載のインデックス情報を利用するアーカイビングされたデータベースの検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースのアーカイビング方法及びその装置と、アーカイビングされたデータベースの検索方法及びその装置に関し、さらに具体的には、データの圧縮技術及びインデックスの生成技術を利用したデータベースのアーカイビング方法及びその装置と圧縮してアーカイビングされたデータベースをインデックス情報を利用して検索する方法及びその装置に関する。
【背景技術】
【０００２】
インターネットの普及の拡大、データ通信技術の発展などと共に、ＰＣ、ラップトップ及びスマートフォンのようなデータ生産及び消費手段が広く普及するにつれて、近日生産されて消費されるデータの量は、幾何級数的に増えている状況である。
【０００３】
このようなデータを効果的に分類して活用するために、データベースを利用してデータを管理する方法が各種の企業、団体及び学校などで広く利用されている。しかし、増えるデータの量が幾何級数的なだけに、データベースの容量も直ぐ限界に達し、データベースの容量を拡張し続けることも費用及び管理の側面で制約があるというのが現実である。
【０００４】
従って、データベースを効率的にアーカイビングして容量を節約することができる技術に対する関心が増加している。特に、データの圧縮技術及びインデックスの生成技術を利用したデータベースのアーカイビング方法及びその装置と圧縮してアーカイビングされたデータベースをインデックス情報を利用して検索する方法及びその装置に対する関心が台頭している。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、データベースのレコードを所定の基準によって分類し、分類されたレコード別に圧縮してアーカイビングすることでデータベースの容量を節約することができるデータベースのアーカイビング方法及びその装置を提供する。
【０００６】
また、本発明は、データベースのアーカイビングの際にインデックス情報をさらに生成することにより、生成されたインデックス情報を利用して、データベースをより効率的に検索するデータベースの検索方法及びその装置を提供する。
【０００７】
また、本発明は、上記のような方法でアーカイビングされたデータベースを並列に検索するより効率的なデータベースの検索方法及びその装置を提供する。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明で提供するインデックス情報を生成するデータベースのアーカイビング方法は、データのアーカイビングをする原本テーブルにおいて、フィールド（ｆｉｅｌｄ）値に関する情報に基づいて複数のレコード（ｒｅｃｏｒｄ）を含む少なくとも一つのレコードグループを選別する段階と、前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー（ｓｔｏｒｅｄ  ｋｅｙ）値を圧縮テーブルに格納する段階と、前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納する段階と、前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除する段階とを含む。
【０００９】
好ましくは、前記少なくとも一つのレコードグループを選別する段階が前記原本テーブルにおいて時間に関する情報にさらに基づいて前記少なくとも一つのレコードグループを選別する時、前記少なくとも一つのレコードグループのそれぞれについて対応する前記時間に関する情報及び前記格納キー値を期間インデックステーブルに格納する段階をさらに含むことができる。
【００１０】
好ましくは、前記原本テーブルに含まれた各レコードについてプライマリキー（ｐｒｉｍａｒｙ  ｋｅｙ）の値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報をキーインデックステーブルに格納する段階をさらに含むことができる。
【００１１】
好ましくは、前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、前記第２グループ圧縮データに含まれた複数のレコードの中で前記原本テーブルに含まれたレコードと前記プライマリキーの値が同一のレコードを検索する段階と、前記検索されたレコードについて前記第２グループ圧縮データ内における位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーの値が同一のレコードにさらに格納する段階とを含むことができる。
【００１２】
また、上記目的を達成するために、本発明で提供するインデックス情報を生成するデータベースのアーカイビング装置は、データのアーカイビングをする原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別するデータ選別部と、前記少なくとも一つのレコードグループのそれぞれについて前記レコードグループ別に圧縮してグループ圧縮データを生成するデータ圧縮部と、前記グループ圧縮データ及び前記グループ圧縮データ別に固有に付与された格納キー値を圧縮テーブルに格納し、前記少なくとも一つのレコードグループのそれぞれに対応する前記フィールド値及び前記格納キー値をグループインデックステーブルに格納し、前記選別された少なくとも一つのレコードグループに含まれた複数のレコードを前記原本テーブルから削除するＤＢ管理部とを含む。
【００１３】
好ましくは、前記データ選別部が前記原本テーブルにおいて時間に関する情報にさらに基づいて前記少なくとも一つのレコードグループを選別する時、前記ＤＢ管理部は、前記少なくとも一つのレコードグループのそれぞれに対応する前記時間に関する情報及び前記格納キー値を期間インデックステーブルにさらに格納することができる。
【００１４】
好ましくは、前記ＤＢ管理部は、前記原本テーブルに含まれた各レコードについてプライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報をキーインデックステーブルにさらに格納することができる。
【００１５】
好ましくは、前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、前記ＤＢ管理部は、前記第２グループ圧縮データに含まれた複数のレコードの中で前記原本テーブルに含まれたレコードと前記プライマリキーの値が同一のレコードをさらに検索し、前記検索されたレコードについて前記第２グループ圧縮データ内における位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーの値が同一のレコードにさらに格納することができる。
【００１６】
また、上記目的を達成するために、本発明で提供するインデックス情報を利用するアーカイビングされたデータベースの検索方法は、フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望の前記フィールド値に対する所定条件のレコードを検索するための検索条件を受信する段階と、前記フィールド値に関する情報及び前記フィールド値に関する情報に対応する前記格納キー値が格納されたグループインデックステーブルにおいて、前記検索条件を満たす格納キー値を検索する段階と、検索が行われるコンピュータの性能及び前記検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数のうち少なくともいずれか一つに基づいて、前記レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する段階と、前記決定されたＤＢ検索過程の個数に基づいて前記検索条件を満たすレコードの検索を並列に行う段階とを含む。
【００１７】
好ましくは、時間に関する情報にさらに基づいて生成された前記グループ圧縮データが前記圧縮テーブルに含まれ、前記時間に対する所定条件が前記受信された検索条件にさらに含まれる時、前記時間に関する情報及び前記時間に関する情報に対応する前記格納キー値が格納された期間インデックステーブルにおいて、前記検索条件を満たす格納キー値を検索する段階をさらに含むことができる。
【００１８】
好ましくは、プライマリキー値に対する検索条件が前記検索条件にさらに含まれる時、前記圧縮テーブルでアーカイビングした原本テーブルの各レコード別の前記プライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報が格納されたキーインデックステーブルにおいて、前記検索条件を満たすレコードの前記格納キー値及び前記キーインデックス情報を検索する段階をさらに含み、前記レコードの検索を並列に行う段階は、前記格納キー値及び前記キーインデックス情報にさらに基づいて検索を行うことができる。
【００１９】
好ましくは、前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、前記格納キー値及び前記キーインデックス情報を検索する段階は、各レコード別の前記第２グループ圧縮データ内における位置であるサブインデックス情報を含む前記キーインデックステーブルにおいて、前記検索条件を満たすレコードの前記サブインデックス情報をさらに検索し、前記レコードの検索を並列に行う段階は、前記サブインデックス情報及び前記第２グループ圧縮データにさらに基づいて検索を行うことができる。
【００２０】
好ましくは、前記並列に処理するためのＤＢ検索過程の個数を決定する段階は、前記コンピュータに含まれたＣＰＵの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集する段階と、前記圧縮テーブルに格納された前記グループ圧縮データの中で前記受信された検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数を決定する段階と、前記収集されたコンピュータ性能情報及び前記決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいて前記レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する段階とを含むことができる。
【００２１】
また、上記目的を達成するために、本発明で提供するインデックス情報を利用するアーカイビングされたデータベースの検索装置は、フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及び前記グループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望の前記フィールド値に対する所定条件のレコードを検索するための検索条件を受信する受信部と、前記フィールド値に関する情報及び前記フィールド値に関する情報に対応する前記格納キー値が格納されたグループインデックステーブルにおいて、前記検索条件を満たす格納キー値を検索するインデックス検索部と、検索が行われるコンピュータの性能及び前記検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数のうち少なくともいずれか一つに基づいて、前記レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する検索準備部と、前記決定されたＤＢ検索過程の個数に基づいて前記検索条件を満たすレコードの検索を並列に行う並列検索部とを含む。
【００２２】
好ましくは、時間に関する情報にさらに基づいて生成された前記グループ圧縮データが前記圧縮テーブルに含まれ、前記時間に対する所定条件が前記受信された検索条件にさらに含まれる時、前記インデックス検索部は、前記時間に関する情報及び前記時間に関する情報に対応する前記格納キー値が格納された期間インデックステーブルにおいて、前記検索条件を満たす格納キー値をさらに検索することができる。
【００２３】
好ましくは、前記検索条件にプライマリキー値に対する検索条件が含まれる時、前記インデックス検索部は、前記圧縮テーブルでアーカイビングした原本テーブルの各レコード別の前記プライマリキーの値、前記グループ圧縮データ内における位置であるキーインデックス情報及び前記グループ圧縮データに対応する前記格納キー値に関する情報が格納されたキーインデックステーブルにおいて、前記検索条件を満たすレコードの前記格納キー値及び前記キーインデックス情報をさらに検索し、前記並列検索部は、前記格納キー値及び前記キーインデックス情報にさらに基づいて検索を行うことができる。
【００２４】
好ましくは、前記プライマリキーを通じて前記原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、前記少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、前記インデックス検索部は、各レコード別の前記第２グループ圧縮データ内における位置であるサブインデックス情報を含む前記キーインデックステーブルにおいて、前記検索条件を満たすレコードの前記サブインデックス情報をさらに検索し、前記並列検索部は、前記サブインデックス情報及び前記第２グループ圧縮データにさらに基づいて検索を行うことができる。
【００２５】
好ましくは、前記検索準備部は、前記コンピュータに含まれたＣＰＵの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集し、前記圧縮テーブルに格納された前記グループ圧縮データの中で前記受信された検索条件を満たす前記格納キー値に対応する前記グループ圧縮データの個数を決定し、前記収集されたコンピュータ性能情報及び前記決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいて前記レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定することができる。
【発明の効果】
【００２６】
本発明は、データベースに格納されたデータを検索頻度、重要度などによって分類し、分類結果別に圧縮してアーカイビングすることで、データベースの使用容量を画期的に減らすことができるという効果がある。
【００２７】
また、本発明は、アーカイビングの過程でインデックス情報を生成することで、アーカイビングされたデータベースを検索する時に効率性を極大化することができるという効果がある。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング方法を説明するために示したフローチャートである。
【図２】本発明の他の実施例によるインデックス情報を生成するデータベースのアーカイビング方法を説明するために示したフローチャートである。
【図３】本発明の一実施例によるインデックス情報を利用するアーカイビングされたデータベースの検索方法を説明するために示したフローチャートである。
【図４】本発明の一実施例によるＤＢ検索過程の個数を決定する方法を説明するために示したフローチャートである。
【図５】本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング装置を説明するために示した図面である。
【図６】本発明の一実施例によるインデックス情報を利用するアーカイビングされたデータベースの検索装置を説明するために示した図面である。
【図７】本発明の一実施例による圧縮テーブルの構造を説明するために示した図面である。
【図８】本発明の一実施例によるグループインデックステーブル及び期間インデックステーブルの構造を説明するために示した図面である。
【図９】本発明の一実施例によるキーインデックステーブルの構造を説明するために示した図面である。
【発明を実施するための形態】
【００２９】
本発明は、多様な変更を加えることができ、様々な実施例を有することができるため、特定の実施例を図面に例示し、詳細な説明に詳しく説明する。しかし、これは、本発明を特定した実施形態について限定するものではなく、本発明の思想及び技術範囲に含まれる全ての変更、均等物または代替物を含むと理解されるべきである。各図面を説明しながら類似な参照符号を類似した構成要素に対して使用した。
【００３０】
第１、第２、Ａ、Ｂなどの用語は、多様な構成要素を説明するのに使用することができるが、上記構成要素は、上記用語によって限定されてはならない。上記用語は、一つの構成要素を他の構成要素から区別する目的だけで使用される。例えば、本発明の権利範囲から逸脱せず、第１構成要素は第２構成要素と命名されることができ、同様に、第２構成要素も第１構成要素と命名されることができる。「及び／又は」という用語は、複数の関連記載の項目の組み合わせまたは複数の関連記載の項目のいずれかの項目を含む。
【００３１】
ある構成要素が他の構成要素に「連結されて」いるか「接続されて」いると言及された時は、その他の構成要素に直接的に連結されるかまたは接続されることもできるが、その間に他の構成要素が存在することもできると理解されるべきである。反面、ある構成要素が他の構成要素に「直接連結されて」いるか「直接接続されて」いると言及された時は、中間に他の構成要素が存在しないと理解されるべきである。
【００３２】
本出願で使用した用語は、単に特定の実施例を説明するために使用されたもので、本発明を限定しようとする意図ではない。単数の表現は、文脈上明らかに異なる意味ではない限り、複数の表現を含む。本出願において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定するためであり、一つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものの存在または付加可能性を予め排除しないと理解されるべきである。
【００３３】
異なって定義しない限り、技術的であるか科学的な用語を含み、ここで使用される全ての用語は、本発明が属する技術分野で通常の知識を持った者によって一般的に理解されるものと同じ意味を有する。一般的に使用される辞書に定義されるような用語は、関連技術の文脈上で持つ意味と一致する意味を持つと解釈されるべきであり、本出願で明らかに定義しない限り、理想的であるか過度に形式的な意味で解釈されない。
【００３４】
以下で、本発明による好ましい実施例を添付の図面を参照して詳しく説明する。
【００３５】
図１は、本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング方法を説明するために示したフローチャートである。
【００３６】
段階Ｓ１１０では、データベースのアーカイビング装置がデータのアーカイビングをする原本テーブルにおいて、フィールド（ｆｉｅｌｄ）値に関する情報に基づいて複数のレコード（ｒｅｃｏｒｄ）を含む少なくとも一つのレコードグループを選別する。
【００３７】
テーブルは、データベースでデータを格納する基本構造をなす単位であり、原本テーブルは、データベースに含まれた複数のテーブルの中で容量を節約するためにアーカイビングをするテーブルであることができる。
【００３８】
例えば、データベースのアーカイビング装置が原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別する時、フィールド値が所定の範囲内である複数のレコードだけでレコードグループを選別することができる。
【００３９】
一方、レコードグループの選別に利用されるフィールド値は、原本テーブルにおいて、最も検索が頻繁に発生するフィールドのフィールド値で決定されることができる。該アーカイビングされたデータベースを後で検索する時、生成されたインデックス情報を利用して検索の効率性を極大化することができるからである。
【００４０】
レコードグループは、原本テーブルに含まれた全体レコードの中から選別された複数のレコードの集合で構成されたグループである。レコードグループは、少なくとも一つ以上生成されることができ、必要に応じて、原本テーブルの全体ではなく、一部のレコードだけを対象として限定してレコードグループを生成することができる。例えば、原本テーブルにおいて、２０１５年以後のレコードは除外し、２０１５年以前のレコードだけを対象としてアーカイビングするためにレコードグループを生成することができる。
【００４１】
一方、一つのレコードグループに含まれるレコードの個数は、原本テーブルに含まれた全体レコードの個数、データベースを検索するコンピュータの性能及びデータベースの頻度が高い検索条件などを総合的に分析及び検討して決定することができる。
【００４２】
他の実施例では、データベースのアーカイビング装置がその選別された少なくとも一つのレコードグループの中でレコードの個数が閾値を超える超過レコードグループが存在すると、その超過レコードグループをレコードの個数が閾値以下である複数のレコードグループに分離することができる。
【００４３】
例えば、一つのレコードグループが含むことができるレコードの個数である閾値が１０万個で設定されることができる。しかし、もし、選別されたレコードグループにその閾値を超えるレコードの個数を含む超過レコードグループが存在すると、これは、コンピュータの過負荷及び非効率をもたらす可能性があり、問題の素地になり得る。
【００４４】
従って、一つのレコードグループが１０万個を超えるレコードを有する場合、これを１０万個単位に分離して、複数のレコードグループを生成することができる。例えば、一つのレコードグループが２５万個のレコードの個数を有する場合、データベースのアーカイビング装置が該超過レコードグループを１０万個ずつのレコードの個数を有する２個のレコードグループと、５万個のレコードの個数を有するレコードグループとの計３個のレコードグループに分離することができる。
【００４５】
一方、上記のように分離された複数のレコードグループは、互いに同一のフィールド値による分類基準によって分類されたため、その複数のレコードグループを互いに区別する方法がない可能性がある。従って、その分離された複数のレコードグループのそれぞれに一連番号（例、１、２、３、４，…）を付与し、圧縮テーブルの一連番号フィールドにさらに格納することができる。この場合、アーカイビングされたデータベースを検索する際にも、レコードグループのそれぞれを区別して検索を行うことができる。
【００４６】
段階Ｓ１２０では、データベースのアーカイビング装置が選別された少なくとも一つのレコードグループのそれぞれについて、レコードグループ別に圧縮して生成されたグループ圧縮データ及びそのグループ圧縮データ別に固有に付与された格納キー（ｓｔｏｒｅｄ  ｋｅｙ）値を圧縮テーブルに格納する。
【００４７】
圧縮テーブルは、原本テーブルをレコードグループ単位で圧縮してアーカイビングしたデータが格納されるテーブルを意味する。また、圧縮テーブルは、レコードグループ別に圧縮して生成されたグループ圧縮データを格納するためのフィールドと、そのグループ圧縮データに対応するように固有に付与された格納キー値を格納するための少なくとも一つのフィールドとを含むことができる。
【００４８】
格納キー値は、グループ圧縮データ別に固有に付与されたキー値で、格納キーに該当するフィールドに各グループ圧縮データ別に固有の格納キー値が格納されることができる。また、その格納キーに該当するフィールドは、一つ以上になってもよく、その一つ以上のフィールドに分散格納された格納キー値が結合した時、各グループ圧縮データ別に固有の格納キー値を有することができる。
【００４９】
グループ圧縮データは、分類されたレコードグループのそれぞれを圧縮して生成したバイナリデータであることができ、グループ圧縮データを生成し、圧縮テーブルに格納する具体的な過程は、以下の通りである。
【００５０】
段階Ｓ１２２では、データベースのアーカイビング装置がレコードグループに含まれた複数のレコードのデータをバッファに格納する。
【００５１】
複数のレコードのデータが格納されるバッファの大きさは、原本テーブルのテーブル構造（フィールドの個数、種類及び大きさ）及びレコードグループに含まれるレコードの閾値に基づいて決定されることができる。
【００５２】
例えば、原本テーブルがＤＡＴＥ（文字８字）、ＮＡＭＥ（文字３０字）及びＡＧＥ（整数４バイト）の計３個のフィールドを含み、レコードグループのレコードの個数に対する閾値が１０万個とすれば、文字１字を２バイトで計算すると、バッファの大きさは、少なくとも１０万＊（８＊２＋３０＊２＋４）＝８００万バイト（約８メガバイト）になることができる。
【００５３】
そして、データベースのアーカイビング装置がレコードグループに含まれたレコード及びそのレコードのフィールド値を順次に全て読み、バッファに順に格納することができる。
【００５４】
段階Ｓ１２４では、データベースのアーカイビング装置がそのバッファに格納されたデータを圧縮してグループ圧縮データを生成する。
【００５５】
グループ圧縮データは、バッファに格納されたレコードグループのデータを圧縮して生成されたバイナリ形態の結果物であることができる。この時、圧縮による損失が発生しないようにするために、無損失の圧縮アルゴリズムであるＺＩＰ、ＣＴＷ、ＬＺ７７またはＬＺＷなどが使用されることができる。
【００５６】
段階Ｓ１２６では、データベースのアーカイビング装置がその生成されたグループ圧縮データ別に固有に付与された格納キー値を生成する。
【００５７】
例えば、データベースのアーカイビング装置が時間に所定のフィールド値に基づいてレコードグループを分類し、そのレコードグループに対応するグループ圧縮データを生成した時、その生成されたグループ圧縮データのそれぞれに対して固有の格納キー値を与えることができる。
【００５８】
最後に、段階Ｓ１２８では、データベースのアーカイビング装置が生成されたグループ圧縮データを付与された格納キー値と共に圧縮テーブル上の同一のレコードに格納する。
【００５９】
圧縮テーブルは、バイナリ形態であるグループ圧縮データを格納するためのフィールドと格納キー値を格納するための少なくとも一つのフィールドとを含むことができる。つまり、生成されたグループ圧縮データは、圧縮されたバイナリデータを格納するためのフィールドに格納され、そのグループ圧縮データに対応する格納キー値は、その少なくとも一つのフィールドに分散して格納することができる。
【００６０】
一方、図７は、圧縮テーブルの構造を説明するために示した図面であり、圧縮テーブルの構造を説明すると、以下の通りである。
【００６１】
原本テーブル７１０は、時間に関するＤａｔｅフィールド７１４及び特定属性に関するＣｏｌ１フィールド７１６を含んでいる。この時、データベースのアーカイビング装置が原本テーブル７１０を時間に関する情報であるＤａｔｅフィールド７１４のフィールド値及び特定属性に対するＣｏｌ１フィールド７１６値に基づいて分類した後、各分類結果別にグループ圧縮データ７２４及びそのグループ圧縮データに対応する固有に付与された格納キー値７２２を圧縮テーブル７２０に格納することができる。
【００６２】
例えば、原本テーブル７１０において、Ｄａｔｅフィールド７１４のフィールド値が２００２．０１であり、Ｃｏｌ１フィールド７１６のフィールド値が１０００であるレコードグループを分類して、１５０００１の格納キー値７２２を付与し、Ｄａｔｅフィールド７１４のフィールド値が２００２．０１であり、Ｃｏｌ１フィールド７１６のフィールド値が２０００であるレコードグループを分類して、１５０００２の格納キー値７２２を付与することができる。この時、Ｄａｔｅフィールド７１４のフィールド値が２００２．０１であり、Ｃｏｌ１フィールド７１６のフィールド値がそれぞれ１０００及び２０００であるレコードの個数がそれぞれ５万個及び４万個であることを圧縮テーブル７２０のグループ圧縮データ７２４のレコードの個数に関する情報から分かる。
【００６３】
段階Ｓ１３０では、データベースのアーカイビング装置が少なくとも一つのレコードグループのそれぞれに対応するフィールド値及び格納キー値をグループインデックステーブルに格納する。
【００６４】
グループインデックステーブルは、所定のフィールド値に関する情報を格納するためのフィールドと、その所定のフィールド値に関する情報に対応するグループ圧縮データに固有に付与された格納キーを格納するための少なくとも一つのフィールドとを含むことができる。
【００６５】
該フィールド値及び格納キー値を含むグループインデックステーブルは、所定のフィールド値に関する情報から対応する格納キー値を獲得するのに用いられ、圧縮テーブルは、その格納キー値に対応するグループ圧縮データを獲得するのに用られることができる。
【００６６】
最後に、段階Ｓ１４０では、データベースのアーカイビング装置が選別された少なくとも一つのレコードグループに含まれた複数のレコードを原本テーブルから削除する。
【００６７】
データベースを圧縮してアーカイビングする目的は、データベースの格納スペースを節約するためであるので、アーカイビングされたレコードグループに含まれる複数のレコードを原本テーブルから削除することで、データベースの格納スペースを節約することができる。
【００６８】
他の実施例では、データベースのアーカイビング装置が原本テーブルにおいて、時間に関する情報にさらに基づいて少なくとも一つのレコードグループを選別する時、少なくとも一つのレコードグループのそれぞれについて対応する時間に関する情報及び格納キー値を期間インデックステーブルに格納することができる。
【００６９】
期間インデックステーブルは、所定の時間に関する情報を格納するためのフィールドと、その所定の時間に関する情報に対応するグループ圧縮データに固有に付与された格納キーを格納するための少なくとも一つのフィールドとを含むことができる。
【００７０】
該所定の時間に関する情報及び格納キー値を含む期間インデックステーブルは、所定の時間に関する情報から対応する格納キー値を獲得するのに用いられ、圧縮テーブルは、その格納キー値に対応するグループ圧縮データを獲得するのに用られることができる。一方、期間インデックステーブルは、時間または期間に対する検索頻度などに基づいて選択的に生成されて用いられることができる。
【００７１】
例えば、データベースのアーカイビング装置が所定のフィールド値及び時間に関する情報に基づいて原本テーブルからレコードグループを選別し、その選別されたレコードグループ別に生成されたグループ圧縮データと、その生成されたグループ圧縮データに固有に付与された格納キー値を圧縮テーブルに格納することができる。
【００７２】
そして、その選別されたレコードグループ別に含まれた複数のレコードに共通するフィールド値に関する情報（例、Ｃｏｌ１フィールド値が１０００）とグループ圧縮データに対応する格納キー値をグループインデックステーブルに格納することができる。また、その選別されたレコードグループ別に含まれた複数のレコードに共通する時間に関する情報（例、Ｄａｔｅフィールド値が２００２．０１）とグループ圧縮データに対応する格納キー値を期間インデックステーブルに格納することができる。
【００７３】
一方、図８は、グループインデックステーブル及び期間インデックステーブルの構造を説明するために示した図面であり、グループインデックステーブル及び期間インデックステーブルの構造を説明すると、以下の通りである。
【００７４】
図７を参照すると、圧縮テーブル７２０には、グループ圧縮データ７２４及びそのグループ圧縮データに対応する固有に付与された格納キー値７２２が格納されている。データベースのアーカイビング装置が圧縮テーブル７２０に格納されたそれぞれのグループ圧縮データ７２４について、対応する格納キー値７２２及び原本テーブル７１０のＣｏｌ１フィールド７１６値に基づいて、図８に含まれたグループインデックステーブル８２０に格納キー値７２２及びフィールド値に関する情報８２２を格納することができる。また、データベースのアーカイビング装置が圧縮テーブル７２０に格納されたそれぞれのグループ圧縮データ７２４について、対応する格納キー値７２２及び原本テーブル７１０のＤａｔｅフィールド７１４値に基づいて、図８に含まれた期間インデックステーブル８１０に格納キー値７２２及び時間に関する情報８１２を格納することができる。
【００７５】
このように、本発明の一実施例によるデータベースのアーカイビング方法は、圧縮する手続きを経てデータベースをアーカイビングすることで、データベースの容量を画期的に節約するという効果がある。また、データベースに含まれた原本テーブル及び連結テーブルからグループインデックステーブル及び期間インデックステーブルを生成することで、追って該アーカイビングされたデータを検索する上で検索の効率性を極大化することができるという効果がある。
【００７６】
図２は、本発明の他の実施例によるインデックス情報を生成するデータベースのアーカイビング方法を説明するために示したフローチャートである。
【００７７】
段階Ｓ２１０では、データベースのアーカイビング装置がデータのアーカイビングをする原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別する。
【００７８】
段階Ｓ２２０では、データベースのアーカイビング装置が選別された少なくとも一つのレコードグループのそれぞれについて、レコードグループ別に圧縮して生成されたグループ圧縮データ及びそのグループ圧縮データ別に固有に付与された格納キー値を圧縮テーブルに格納する。
【００７９】
段階Ｓ２３０では、データベースのアーカイビング装置が少なくとも一つのレコードグループのそれぞれに対応するフィールド値及び格納キー値をグループインデックステーブルに格納する。
【００８０】
段階Ｓ２４０では、データベースのアーカイビング装置が原本テーブルに含まれた各レコードについてプライマリキー（ｐｒｉｍａｒｙ  ｋｅｙ）の値、グループ圧縮データ内における位置であるキーインデックス情報及びグループ圧縮データに対応する格納キー値に関する情報をキーインデックステーブルに格納する。
【００８１】
プライマリキーは、データベースでレコード別に固有に識別される値を有するフィールドを意味し、基本キー、主キーまたはユニークキーとも呼ばれる。また、一つのテーブルには一つ以上のプライマリキーが存在することができる。
【００８２】
また、キーインデックス情報は、特定のプライマリキー値を有するレコードがグループ圧縮データの中でどの位置に格納されているかに対する情報である。例えば、グループ圧縮データが含む１０万個のレコードに関する情報の中で１０００番目に格納されたレコードという格納順序に関する情報がキーインデックス情報として格納することができる。
【００８３】
一方、キーインデックステーブルでプライマリキーの値を格納する理由は、検索対象となるテーブルを他のフィールド値及び時間に関する情報だけでなく、そのプライマリキー値によって直接検索できるようにするためである。つまり、使用者が特定のプライマリキー値を入力しながら、そのプライマリキー値を有するレコードをテーブルで検索する時、キーインデックステーブルが使用されることができる。
【００８４】
さらに具体的には、データベースの検索装置がその特定したプライマリキー値を有するレコードをキーインデックステーブルで検索することができる。そして、その検索されたレコードに含まれたキーインデックス情報及び格納キー値に基づいて、圧縮テーブルでその格納キー値に対応するグループ圧縮データを獲得し、そのキーインデックス情報を利用してそのグループ圧縮データで使用者が検索を所望のレコードを検索することができる。これに対するより具体的な説明は、図３に対する説明で後述する。
【００８５】
他の実施例では、データベースのアーカイビング装置が、少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、その第２グループ圧縮データに含まれた複数のレコードの中で原本テーブルに含まれたレコードとプライマリキーの値が同一のレコードを検索し、その検索されたレコードについて第２グループ圧縮データ内における位置であるサブインデックス情報をキーインデックステーブル上のプライマリキーの値が同一のレコードにさらに格納することができる。
【００８６】
連結テーブルは、プライマリキーに通じて原本テーブルと連結するテーブルである。即ち、そのプライマリキーは、原本テーブルと連結テーブルに全て存在することができる。
【００８７】
第２グループ圧縮データは、プライマリキーに通じて原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、その少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成されたデータである。この時、第２グループ圧縮データは、図１に関する説明で上述したグループ圧縮データと同一の方式で生成されることができ、グループ圧縮データと同様に、固有の格納キー値と共に圧縮テーブルに格納することができる。
【００８８】
サブインデックス情報は、特定のプライマリキー値を有するレコードがある第２グループ圧縮データの中でどの位置に格納されているかに対する情報である。例えば、第２グループ圧縮データに含まれた１０万個のレコードに関する情報の中で１０００番目に格納されたレコードという格納順序に関する情報がサブインデックス情報として格納することができる。
【００８９】
例えば、データベースに原本テーブルとプライマリキーに通じて連結される１個の連結テーブルが存在することができる。もし、原本テーブルには存在しないが、連結テーブルには存在するフィールドについて、使用者がそのフィールドのフィールド値情報を必要とすれば、データベースのアーカイビング装置が追ってその連結テーブルまで検索可能にキーインデックステーブル上の同一のプライマリキー値を有するレコードにサブインデックス情報をさらに格納することができる。
【００９０】
また他の実施例では、データベースのアーカイビング装置が少なくとも一つの連結テーブルに対するサブインデックス情報を取り集めて圧縮した後、キーインデックステーブルに新しいサブインデックス情報として格納することができる。
【００９１】
例えば、データベースのアーカイビング装置が少なくとも一つの連結テーブルで同一のプライマリキー値を有するレコードについて、少なくとも一つの第２グループ圧縮データ内における位置に対するサブインデックス情報を全て取り集めることができる。そして、その取り集められた値を圧縮して、キーインデックステーブル上の同一のプライマリキーの値を含むレコードに新しいサブインデックス情報として格納することができる。
【００９２】
一方、図９は、キーインデックステーブルの構造を説明するために示した図面であり、キーインデックステーブルの構造を説明すると、以下の通りである。
【００９３】
図７を参照すると、原本テーブル７１０に含まれた各レコードについてプライマリキーのＤｏｃ．Ｎｏ．フィールド７１２値、そのレコードが格納されたグループ圧縮データ７２４に対応する格納キー値７２２及びそのレコードのキーインデックス情報９１２がキーインデックステーブル９１０に格納されることができる。また、原本テーブル７１０とプライマリキー７１２を通じて連結される連結テーブル（図示せず）に基づいて生成された第２グループ圧縮データについて、原本テーブル７１０のレコードと同一のプライマリキー値７１２を有する連結テーブルのレコードのサブインデックス情報９１４がキーインデックステーブル９１０にさらに格納することができる。
【００９４】
段階Ｓ２５０では、データベースのアーカイビング装置が選別された少なくとも一つのレコードグループに含まれた複数のレコードを原本テーブルから削除する。
【００９５】
このように、本発明の一実施例によるデータベースのアーカイビング方法は、圧縮する手続きを経てデータベースをアーカイビングすることで、データベースの容量を画期的に節約するという効果がある。また、データベースに含まれた原本テーブル及び連結テーブルからキーインデックステーブルを生成することで、追ってプライマリキー値を利用してそのアーカイビングされたデータを検索する上で検索の効率性を極大化することができるという効果がある。
【００９６】
図３は、本発明の一実施例によるインデックス情報を利用するアーカイビングされたデータベースの検索方法を説明するために示したフローチャートである。
【００９７】
段階Ｓ３１０では、データベースの検索装置が圧縮テーブルで使用者が所望のそのフィールド値に対する所定条件のレコードを検索するための検索条件を受信する。
【００９８】
圧縮テーブルは、データベースの検索装置がフィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及びそのグループ圧縮データに対応する固有の格納キー値に関する情報を含むテーブルである。
【００９９】
受信された検索条件は、ＳＱＬ（ｓｔｒｕｃｔｕｒｅｄ  ｑｕｅｒｙ  ｌａｎｇｕａｇｅ）文の形態の検索条件であることができる。つまり、データベースの検索装置がグループ圧縮データとそのグループ圧縮データに対応する格納キー値が格納された圧縮テーブルで使用者が所望のフィールド値に対する条件を含むレコードを検索するための検索条件をＳＱＬ文の形式で受信することができる。
【０１００】
段階Ｓ３２０では、データベースの検索装置がグループインデックステーブルでその検索条件を満たす格納キー値を検索する。
【０１０１】
グループインデックステーブルは、フィールド値に関する情報及びそのフィールド値に関する情報に対応する格納キー値に関する情報を含むテーブルである。
【０１０２】
データベースの検索装置がグループインデックステーブルで使用者のそのフィールド値に対する条件を含む検索条件を満たすレコードを検索する。そして、その検索されたレコードに含まれた格納キー値に関する情報を収集することができる。
【０１０３】
他の実施例では、データベースの検索装置が、時間に関する情報にさらに基づいて生成されたグループ圧縮データが圧縮テーブルに含まれ、時間に対する所定条件がその受信された検索条件にさらに含まれる時、期間インデックステーブルでその検索条件を満たす格納キー値を検索することができる。
【０１０４】
期間インデックステーブルは、時間に関する情報及びその時間に関する情報に対応する格納キー値に関する情報を含むテーブルである。
【０１０５】
圧縮テーブルに含まれたグループ圧縮データがフィールド値に関する情報だけでなく、時間に関する情報にさらに基づいて生成された時、データベースの検索装置が時間に対する検索条件をさらに利用して圧縮テーブルのレコードを検索することができる。
【０１０６】
さらに具体的には、データベースの検索装置が時間に対する検索条件を満たすレコードを期間のインデックステーブルに検索することができる。そして、その検索されたレコードに含まれた格納キー値に関する情報を収集することができる。
【０１０７】
一方、受信された検索条件がフィールド値及び時間に関する情報を全て含んでいる時、データベースの検索装置は、グループインデックステーブルと期間インデックステーブルとの両方で格納キー値に関する情報を収集することができる。そして、その収集された格納キー値に関する情報の中で、グループインデックステーブルと期間インデックステーブルで共通して収集された格納キー値に関する情報が最終的にレコードの検索のために必要な格納キー値になることができる。
【０１０８】
段階Ｓ３３０では、データベースの検索装置が検索が行われるコンピュータの性能及び検索条件を満たす格納キー値に対応するグループ圧縮データの個数のうち少なくともいずれか一つに基づいて、レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する。
【０１０９】
ＤＢ検索過程は、アーカイビングされたデータベースでレコードの検索を行う単一過程を意味する。従って、もしレコードの検索が並列に処理される場合は、ＤＢ検索過程が複数個存在し、同時に進行すると理解されることができる。
【０１１０】
一方、ＤＢ検索過程の個数がコンピュータの性能に基づいて決定されることは、各ＤＢ検索過程が圧縮されたグループ圧縮データからレコードを検索する過程がコンピュータに多くの負荷を与える可能性があるからである。また、ＤＢ検索過程の個数が検索条件を満たす格納キー値に対応するグループ圧縮データの個数に基づいて決定されることは、そのグループ圧縮データの個数が、結局、検索の量または範囲と関連する可能性があるからである。
【０１１１】
一方、レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する具体的な過程については、図４に対する説明で具体的に後述する。
【０１１２】
段階Ｓ３４０では、データベースの検索装置が決定されたＤＢ検索過程の個数に基づいて検索条件を満たすレコードの検索を並列に行う。
【０１１３】
例えば、データベースの検索装置が先に決定された個数だけのＤＢ検索過程を準備し、各ＤＢ検索過程別に検索範囲を分担してレコードの検索を並列に行うことができる。
【０１１４】
他の実施例では、データベースの検索装置がプライマリキー値に対する検索条件が検索条件にさらに含まれる時、キーインデックステーブルでそのプライマリキー値に対する検索条件を満たすレコードの格納キー値及びキーインデックス情報をさらに検索することができる。そして、データベースの検索装置がその検索された格納キー値及びキーインデックス情報にさらに基づいてレコードの並列検索を行うことができる。
【０１１５】
キーインデックステーブルは、圧縮テーブルでアーカイビングした原本テーブルの各レコード別のプライマリキーの値、グループ圧縮データ内における位置であるキーインデックス情報及びグループ圧縮データに対応する格納キー値に関する情報を含むテーブルである。
【０１１６】
例えば、使用者から受信された検索条件にフィールド値及び時間に関する情報だけでなく、プライマリキー値に関する情報が含まれることができる。この場合、データベースの検索装置がキーインデックステーブルでそのプライマリキーの値を有するレコードを検索し、その検索されたレコードの格納キー値及びキーインデックス情報をさらに利用して使用者の検索条件を満たすレコードを検索することができる。
【０１１７】
また他の実施例では、データベースの検索装置が、少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、格納キー値及びキーインデックス情報を検索する時、キーインデックステーブルで使用者の検索条件を満たすレコードのサブインデックス情報をさらに検索することができる。そして、データベースの検索装置がレコードの検索を並列に行う時、検索されたサブインデックス情報及びそのサブインデックス情報に対応する第２グループ圧縮データにさらに基づいて検索を行うことができる。
【０１１８】
連結テーブルは、プライマリキーに通じて原本テーブルと連結するテーブルであり、そのプライマリキーは、原本テーブルと連結テーブルに全て存在することができる。一方、キーインデックステーブルには、連結テーブルの各レコード別の第２グループ圧縮データ内における位置であるサブインデックス情報がさらに含まれることができる。
【０１１９】
第２グループ圧縮データは、プライマリキーに通じて原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、その少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成されたデータである。この時、第２グループ圧縮データは、図１に対する説明で上述したグループ圧縮データと同一の方式で生成されることができ、グループ圧縮データと同様に、固有の格納キー値と共に圧縮テーブルに格納することができる。
【０１２０】
例えば、使用者から受信された検索条件に連結テーブルだけに存在するフィールド値に対する条件がさらに含まれる場合、データベースの検索装置がキーインデックステーブルでその検索条件を満たすプライマリキー値に対応するサブインデックス情報をさらに検索し、そのサブインデックス情報を利用して第２グループ圧縮データに含まれたそのフィールド値に関する情報をさらに検索することができる。
【０１２１】
また他の実施例では、データベースの検索装置がＤＢ検索過程のそれぞれについて少なくとも一つのグループ圧縮データを割り当て、それに基づいてレコードの検索を並列に行うことができる。
【０１２２】
例えば、検索条件を満たす格納キー値に対応するグループ圧縮データの個数が６個であり、決定されたＤＢ検索過程の個数が４個とすれば、データベースの検索装置がＤＢ検索過程４個のうち２個には２個ずつのグループ圧縮データを割り当て、残りのＤＢ検索過程の２個には１個ずつのグループ圧縮データが割り当てられる。そして、その４個のＤＢ検索過程が割り当てられた１個または２個のグループ圧縮データに対するレコードの検索を並列に行うことができる。
【０１２３】
この時、各ＤＢ検索過程は、割り当てられたグループ圧縮データの圧縮を解除してバッファに格納し、そのバッファに格納されたデータから検索条件を満たすレコードを検索する過程を通じて検索を行うことができる。
【０１２４】
また他の実施例では、データベースの検索装置が圧縮テーブルでアーカイビングされた原本テーブルに含まれたフィールドの種類、大きさ、順序及び名称に対する情報であるテーブル構造情報にさらに基づいて検索条件を満たすレコードの検索を行うことができる。
【０１２５】
グループ圧縮データの圧縮を解除してバッファに格納し、そのバッファに格納されたデータから検索条件を満たすレコードを検索する場合に、データベースの検索装置が原本テーブルに含まれた各フィールドの種類、大きさ、順序及び名称に対する情報であるテーブル構造情報が分かっていれば、そのテーブル構造の情報に基づいて検索をより容易に行うことができる。
【０１２６】
また他の実施例では、ＤＢ検索過程は、それぞれのＤＢ検索過程別に割り当てられたプロセス（ｐｒｏｃｅｓｓ）またはスレッド（ｔｈｒｅａｄ）を利用して検索を行うことができる。
【０１２７】
各ＤＢ検索過程は、並列的にレコードの検索を行わなければならないため、このような並列的な特性を満たすために、子プロセス（ｃｈｉｌｄ  ｐｒｏｃｅｓｓ）またはスレッドが各ＤＢ検索過程別に一つずつ割り当てられて検索を行うことができる。この時、各ＤＢ検索過程別に子プロセスが割り当てられるか或いはスレッドが割り当てられるかは、検索が行われるコンピュータのＣＰＵの種類及びＯＳの種類などによる支援の有無によって決定されることができる。
【０１２８】
例えば、ＤＢ検索過程の個数が６個に決定された場合に、６個の子プロセスが各ＤＢ検索過程別に割り当てられ、６個の子プロセスのそれぞれがＤＢ検索過程に割り当てられたグループ圧縮データに対するレコードの検索を並列に行うことができる。
【０１２９】
このように、本発明の一実施例によるアーカイビングされたデータベースの検索方法は、コンピュータの性能及びデータベース検索の範囲によって決定されたＤＢ検索過程の個数に基づいてレコードの検索を並列に行うことができるという効果がある。
【０１３０】
図４は、本発明の一実施例によるＤＢ検索過程の個数を決定する方法を説明するために示したフローチャートである。
【０１３１】
段階Ｓ４１０では、データベースの検索装置がコンピュータに含まれたＣＰＵの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集する。
【０１３２】
コンピュータの性能は、レコードの検索が行われるコンピュータに含まれたＣＰＵ、メモリー及び格納装置の性能によって決定されることができる。特に、ＣＰＵの場合、そのコンピュータに組み込まれたＣＰＵの個数、クロック周波数、キャッシュのサイズ及びＣＰＵ別コアの個数などによって性能が決定されることができる。また、メモリーは、容量及び動作周波数などによって性能が決定されることができる。また、格納装置は、入出力速度によって性能が決定されることができる。
【０１３３】
従って、データベースの検索装置がレコードの検索が行われるコンピュータのＣＰＵ、メモリー及び格納装置のうち少なくとも一つに対する情報を含むコンピュータ性能情報を収集することができる。
【０１３４】
段階Ｓ４２０では、データベースの検索装置が圧縮テーブルに格納されたグループ圧縮データの中で受信された検索条件を満たす格納キー値に対応するグループ圧縮データの個数を決定する。
【０１３５】
例えば、圧縮テーブルに格納された格納キー値及びその格納キー値に対応するグループ圧縮データについて、使用者が２０１５年１月から２０１５年１０月までの検索条件を生成した場合に、この検索条件を満たす格納キー値を期間インデックステーブルで見つければ、その格納キー値に対応するグループ圧縮データの個数が決定されることができる。
【０１３６】
最後に、段階Ｓ４３０では、データベースの検索装置がその収集されたコンピュータ性能情報及びその決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいてレコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する。
【０１３７】
例えば、データベースの検索装置は、収集されたコンピュータ性能情報とグループ圧縮データの個数を総合的に分析して、レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定することができる。
【０１３８】
さらに具体的には、収集されたコンピュータ性能情報が優れなくとも決定されたグループ圧縮データの個数が多くない場合、ＤＢ検索過程の個数は、グループ圧縮データの個数に合わせて少ない数で決定されることができ、逆に収集されたコンピュータ性能情報が非常に優れた場合に決定されたグループ圧縮データの個数が多くても、ＤＢ検索過程の個数は、コンピュータ性能情報に合わせても少ない数で決定されることができる。
【０１３９】
このように、本発明の一実施例によるＤＢ検索過程の個数を決定する方法は、検索が行われるコンピュータの性能に対する情報及び検索条件を満たす格納キー値に対応するグループ圧縮データの個数によってＤＢ検索過程の個数を決定することで、より効率的にレコードの検索を並列に行うという効果がある。
【０１４０】
図５は、本発明の一実施例によるインデックス情報を生成するデータベースのアーカイビング装置を説明するために示した図面である。
【０１４１】
図５をみると、インデックス情報を生成するデータベースのアーカイビング装置５００は、データ選別部５１０、データ圧縮部５２０及びＤＢ管理部５３０を含む。この時、インデックス情報を生成するデータベースのアーカイビング装置５００は、データベースが組み込まれたコンピュータに共に組み込まれるか、データベースとネットワークで連結されたコンピュータに組み込まれることができる。
【０１４２】
データ選別部５１０は、データのアーカイビングをする原本テーブルにおいて、フィールド値に関する情報に基づいて複数のレコードを含む少なくとも一つのレコードグループを選別する。
【０１４３】
データ圧縮部５２０は、選別された少なくとも一つのレコードグループのそれぞれについて、レコードグループ別に圧縮してグループ圧縮データを生成する。
【０１４４】
ＤＢ管理部５３０は、グループ圧縮データ及びそのグループ圧縮データ別に固有に付与された格納キー値を圧縮テーブルに格納し、少なくとも一つのレコードグループのそれぞれに対応するフィールド値及び格納キー値をグループインデックステーブルに格納し、少なくとも一つのレコードグループに含まれた複数のレコードを原本テーブルから削除する。
【０１４５】
他の実施例では、データ選別部５１０が原本テーブルにおいて時間に関する情報にさらに基づいて、少なくとも一つのレコードグループを選別する時、ＤＢ管理部５３０は、その少なくとも一つのレコードグループのそれぞれに対応する時間に関する情報及び格納キー値を期間インデックステーブルにさらに格納することができる。
【０１４６】
また他の実施例では、ＤＢ管理部５３０は、原本テーブルに含まれた各レコードについてプライマリキーの値、グループ圧縮データ内における位置であるキーインデックス情報及びグループ圧縮データに対応する格納キー値に関する情報をキーインデックステーブルにさらに格納することができる。
【０１４７】
また他の実施例では、プライマリキーに通じて原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、その少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、ＤＢ管理部５３０は、その第２グループ圧縮データに含まれた複数のレコードの中で原本テーブルに含まれたレコードとプライマリキーの値が同一のレコードをさらに検索し、その検索されたレコードについて第２グループ圧縮データ内における位置であるサブインデックス情報をキーインデックステーブル上のプライマリキーの値が同一のレコードにさらに格納することができる。
【０１４８】
図６は、本発明の一実施例によるインデックス情報を利用するアーカイビングされたデータベースの検索装置を説明するために示した図面である。
【０１４９】
図６をみると、アーカイビングされたデータベースの検索装置６００は、受信部６１０、インデックス検索部６２０、検索準備部６３０及び並列検索部６４０を含む。この時、アーカイビングされたデータベースの検索装置６００は、データベースが組み込まれたコンピュータに共に組み込まれるか、データベースとネットワークで連結されたコンピュータに組み込まれることができる。
【０１５０】
受信部６１０は、フィールド値に関する情報に対応する複数のレコードを圧縮して生成されたグループ圧縮データ及びそのグループ圧縮データに対応する固有の格納キー値を含む圧縮テーブルで使用者が所望のそのフィールド値に対する所定条件のレコードを検索するための検索条件を受信する。
【０１５１】
インデックス検索部６２０は、フィールド値に関する情報及びそのフィールド値に関する情報に対応する格納キー値が格納されたグループインデックステーブルで受信された検索条件を満たす格納キー値を検索する。
【０１５２】
検索準備部６３０は、検索が行われるコンピュータの性能及び検索条件を満たす格納キー値に対応するグループ圧縮データの個数のうち少なくともいずれか一つに基づいて、レコードの検索を並列に処理するためのＤＢ検索過程の個数を決定する。
【０１５３】
並列検索部６４０は、その決定されたＤＢ検索過程の個数に基づいて検索条件を満たすレコードの検索を並列に行う。
【０１５４】
他の実施例では、時間に関する情報にさらに基づいて生成されたグループ圧縮データが圧縮テーブルに含まれ、その時間に対する所定条件が受信された検索条件にさらに含まれる時、インデックス検索部６２０は、時間に関する情報及びその時間に関する情報に対応する格納キー値が格納された期間インデックステーブルで受信された検索条件を満たす格納キー値をさらに検索することができる。
【０１５５】
また他の実施例では、受信された検索条件にプライマリキー値に対する検索条件が含まれる時、インデックス検索部６２０は、圧縮テーブルでアーカイビングした原本テーブルの各レコード別のプライマリキーの値、グループ圧縮データ内における位置であるキーインデックス情報及びグループ圧縮データに対応する格納キー値に関する情報が格納されたキーインデックステーブルにおいて、受信された検索条件を満たすレコードの格納キー値及びキーインデックス情報をさらに検索し、並列検索部６４０は、格納キー値及びキーインデックス情報にさらに基づいて検索を行うことができる。
【０１５６】
また他の実施例では、プライマリキーに通じて原本テーブルと連結する少なくとも一つの連結テーブルが存在する時、その少なくとも一つの連結テーブルのそれぞれで複数のレコードを圧縮して生成された第２グループ圧縮データについて、インデックス検索部６２０は、各レコード別の第２グループ圧縮データ内における位置であるサブインデックス情報を含むキーインデックステーブルで検索条件を満たすレコードのサブインデックス情報をさらに検索し、並列検索部６４０は、サブインデックス情報及び第２グループ圧縮データにさらに基づいて検索を行うことができる。
【０１５７】
また他の実施例では、検索準備部６２０は、コンピュータに含まれたＣＰＵの個数、メモリーの容量及び格納装置の入出力速度のうち少なくともいずれか一つに対するコンピュータ性能情報を収集し、圧縮テーブルに格納されたグループ圧縮データの中で受信された検索条件を満たす格納キー値に対応するグループ圧縮データの個数を決定し、その収集されたコンピュータ性能情報及びその決定されたグループ圧縮データの個数のうち少なくともいずれか一つに基づいてレコードの検索を並列に処理するためのＤＢ検索過程の個数を決定することができる。
【０１５８】
一方、上述した本発明の実施例は、コンピュータで実行することができるプログラムで作成可能であり、コンピュータで読み取れる記録媒体を利用して上記プログラムを動作させる汎用のデジタルコンピュータで実現することができる。
【０１５９】
上記コンピュータで読み取れる記録媒体は、マグネチック格納媒体（例えば、ロム、フロッピーディスク、ハードディスクなど）、光学的読取媒体（例えば、シーディーロム、ディーブイディーなど）を含む。
【０１６０】
これまで本発明についてその好ましい実施例を中心として説明した。本発明が属する技術分野で通常の知識を持った者は、本発明が本発明の本質的な特性から逸脱しない範囲で変形された形態で実現可能なことが理解できるであろう。従って、開示された実施例は限定的な観点ではなく、説明的な観点で考慮されるべきである。本発明の範囲は、前述した説明ではなく、特許請求の範囲に示されており、それと同等の範囲内にある全ての差異点は、本発明に含まれると解釈されるべきである。
【図１】
2019512124.tif 000003
【図２】
2019512124.tif 000004
【図３】
2019512124.tif 000005
【図４】
2019512124.tif 000006
【図５】
2019512124.tif 000007
【図６】
2019512124.tif 000008
【図７】
2019512124.tif 000009
【図８】
2019512124.tif 000010
【図９】
2019512124.tif 000011
【国際調査報告】
2019512124.tif 000012
2019512124.tif 000013
2019512124.tif 000014
2019512124.tif 000015
2019512124.tif 000016
2019512124.tif 000017
2019512124.tif 000018
2019512124.tif 000019