JP5959592B2 - データベース管理方法、プログラム及び該管理システム、並びにデータベースのツリー構造 - Google Patents

データベース管理方法、プログラム及び該管理システム、並びにデータベースのツリー構造 Download PDF

Info

Publication number
JP5959592B2
JP5959592B2 JP2014209249A JP2014209249A JP5959592B2 JP 5959592 B2 JP5959592 B2 JP 5959592B2 JP 2014209249 A JP2014209249 A JP 2014209249A JP 2014209249 A JP2014209249 A JP 2014209249A JP 5959592 B2 JP5959592 B2 JP 5959592B2
Authority
JP
Japan
Prior art keywords
record
page
index
ufk
lfk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014209249A
Other languages
English (en)
Other versions
JP2015079508A (ja
Inventor
敬 植 徐
敬 植 徐
甲 榮 金
甲 榮 金
基 烈 李
基 烈 李
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Naver Corp
Original Assignee
Naver Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Naver Corp filed Critical Naver Corp
Publication of JP2015079508A publication Critical patent/JP2015079508A/ja
Application granted granted Critical
Publication of JP5959592B2 publication Critical patent/JP5959592B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/438Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データベース管理方法及び該管理システム、並びにデータベースのツリー構造に係り、詳細には、インデックス圧縮技法(index compression method)を利用したデータベース管理方法及び該管理システム、並びにデータベースのツリー構造に関する。
データベース管理システム(DBMS:database management system)は、膨大な量のデータが保存されているデータベースを管理するためのシステムであり、大量の情報が途切れなく生成されている現時代において、なくてはならない重要な要素として認識されている。
このようなデータベース管理システムにおいては、全てのデータをテーブル(table)形態でデータベースに保存するが、ここで、テーブルとは、データベースにおいて、データを保存する基本構造をいい、1つのテーブルは、一つ以上のレコード(record)から構成される。ここで、レコードとは、テーブルの1行(row)を意味する。また、各レコードは、一つ以上のカラムから構成されるが、カラムとは、テーブルを構成する実際のテーブル項目を表現する名称を有したドメイン(domain)を意味するものであり、アトリビュート(attribute)またはフィールド(field)ともいう。
このようなデータベース管理システムは、外部から特定質疑(query)が入力される場合、入力された質疑によって、データベースに対して、データを選択、挿入、更新、削除などの機能を実行する。ここで、質疑とは、データベースのテーブルに保存されているデータに係わるいかなる要求、すなわち、データに対するいかなる操作の実行を所望するかということを記述したものであって、SQL(structured query language)のような言語を利用して表現する。
一方、データの量がさらに膨大するにつれ、データベース管理システムは、一般的にインデックス(index)を具備する。ここで、インデックスとは、データベース分野において、テーブルに対する探索速度を高める資料構造を意味し、このようなインデックスは、データレコード(チュープル(tuple))に早くアクセスするために、{キー値、ポインタ}組で構成されるデータ構造を有する。
前述の背景技術は、発明者が本発明の導出のために保有していたり、あるいは本発明の導出過程で習得した技術情報であり、必ずしも本発明の出願前に一般公衆に公開された公知技術というものではない。
なお、関連先行技術文献としては、特許文献1がある。
韓国公開特許第2013−0087250号公報
本発明の一実施形態は、データベースのインデックス構成において、1ページに含まれる複数個のレコードのキー値の下限値及び上限値を区分子として保存し、それを利用して、複数個のレコードにおいて、キーの重複部分を削除することにより、インデックスページが保存される保存空間を節約し、それにより、データベースの性能が向上するデータベース管理方法及び該管理システム、並びにデータベースのツリー構造を提供することを目的とする。
また、本発明の一実施形態は、圧縮するか否かをリアルタイムで設定することを可能にし、特定領域において、挿入/削除(insert/delete)負荷が高くなれば、圧縮を行わないように調整することにより、データベース運用効率が向上したデータベース管理方法及び該管理システム、並びにデータベースのツリー構造を提供することを目的とする。
また、本発明の一実施形態は、副次的な圧縮方式及びその範囲に係わるメタデータを追加して記録する必要がないようにし、ページに保存されるレコードの個数が多くなるほど、圧縮されるレコードにメタ情報を含む既存の方法に比べ、圧縮効率が極大化されるデータベース管理方法及び該管理システム、並びにデータベースのツリー構造を提供することを目的とする。
また、本発明の一実施形態は、インデックスのツリー構造を巡回(traverse)するたびに、各ページのLFK(lower fence key)及びUFK(upper fence key)を利用して、リーフノードの有効性検査(validity check)を行うことにより、インデックス構造のエラーを手軽にチェックすることができるデータベース管理方法及び該管理システム、並びにデータベースのツリー構造を提供することを目的とする。
本発明の一実施形態は、各ページに含まれる複数個のレコードのキー値の下限値がLFK(lower fence key)として保存されるか、あるいはレコードのキー値の上限値がUFK(upper fence key)として保存される段階と、前記ページをなす複数個のレコードのキー値のうち共通領域がプレフィックス(prefix)として抽出される段階と、前記複数個のレコードのキー値から、前記プレフィックスに該当する部分を除外した残りの部分が保存される段階と、を含むデータベース管理方法を開示する。
本実施形態において、前記プレフィックスは、LFKまたはUFKに保存される。
本実施形態において、前記各レコードのうち、LFKまたはUFKが保存されるレコード以外のレコードには、各レコードの原本キー値のうち前記プレフィックスを除いたキー値が保存される。
本実施形態において、前記レコードは、複数個のキー値を含むマルチカラム(multi column)形態のレコードでもある。
本実施形態において、前記複数個のキー値のうち、1枚のページをなすレコードが同一値を有するキー値が、前記プレフィックスとして抽出されもする。
本実施形態において、前記各ページは、Bツリー構造またはB+ツリー構造のリーフノードでもある。
本実施形態において、前記データベース管理方法は、前記ページに含まれたレコードの原本キー値が復元される段階をさらに含み、前記原本キー値が復元される段階は、当該ページに、前記LFKとUFKとが存在するか否かということが確認される段階と、当該ページに、前記LFKとUFKとが存在する場合、前記LFKとUFKとを比較演算し、そこに共通するプレフィックスが抽出される段階と、前記抽出されたプレフィックスと、当該レコードのキー値とが結合して原本キー値が復元される段階と、を含んでもよい。
本実施形態において、当該ページに、前記LFKとUFKとが存在しない場合、各レコードに保存されたキー値が原本キー値でもある。
本実施形態において、前記データベース管理方法は、前記ページに新たなレコードが追加されるか、あるいは既存のレコードが変更される段階をさらに含み、前記レコードが追加されるか、あるいは変更される段階は、当該ページに、前記LFKとUFKとが存在するか否かということが確認される段階と、当該ページに、前記LFKとUFKとが存在する場合、前記LFKとUFKとを比較演算し、そこに共通するプレフィックスが抽出される段階と、追加されたり、あるいは変更されたりするレコードから、前記プレフィックスが除外された残りのキー値がレコードに追加されたり、あるいはそこで変更されたりする段階と、を含んでもよい。
本実施形態において、当該ページに、前記LFKとUFKとが存在しない場合、前記プレフィックスが抽出されず、当該ページにレコードが追加されたり、あるいはそこで変更されたりもする。
本発明の他の実施形態は、Bツリー構造またはB+ツリー構造のデータベース管理方法において、Bツリー構造またはB+ツリー構造のインデックスが生成される段階と、前記インデックスで所定のレコードが復元される段階と、前記インデックスに所定のレコードが追加されたり、あるいはそこで変更されたりする段階と、を含み、前記インデックスが生成される段階は、一つ以上のリーフノードの少なくとも一端部に、当該リーフノードに属するキー値の下限値がLFKとして保存されるか、あるいは当該リーフノードに属するキー値の上限値がUFKとして保存される段階を含むデータベース管理方法を開示する。
本発明の他の実施形態は、特定テーブルに含まれたレコードの引出し要請、及び前記レコードに含まれた少なくとも1つのカラムに対する更新要請が共に定義された質疑文を受信して分析する質疑文分析部と、前記分析された質疑文を実行するための実行計画を生成する実行計画生成部と、前記実行計画により、前記レコードの引き出し、及び前記少なくとも1つのカラムに対する更新を行うことにより、前記実行計画を実行する実行計画実行部と、特定テーブルに係わるインデックスを生成し、前記インデックスの各ページに属する複数の個レコードのキー値の下限値をLFKとして保存するか、あるいはレコードのキー値の上限値をUFKとして保存するインデックス生成部を含むインデックス管理部と、を含むデータベース管理システムを開示する。
本実施形態において、前記インデックス生成部は、前記各ページをなす複数個のレコードのキー値のうち共通領域をプレフィックスとして抽出することができる。
本実施形態において、前記インデックス生成部は、前記各ページをなす複数個のレコードのキー値から、共通領域である前記プレフィックスに該当する部分を除いた残りの部分をインデックスに保存することができる。
本実施形態において、前記プレフィックスは、LFKまたはUFKにのみ保存される。
本実施形態において、前記各レコードのうち、LFKまたはUFKが保存されるレコード以外のレコードには、各レコードの原本キー値のうち、前記プレフィックスを除いたキー値だけが保存される。
本実施形態において、前記インデックス管理部は、前記インデックスの各ページに含まれたレコードから原本キー値を復元するレコード復元部をさらに含んでもよい。
本実施形態において、前記レコード復元部は、当該ページに、前記LFKとUFKとが存在するか否かということを確認し、当該ページに、前記LFKとUFKとが存在する場合、LFKとUFKとを比較演算して前記プレフィックスを抽出し、抽出された前記プレフィックスと当該レコードの値とを結合して原本キー値を復元することができる。
本実施形態において、前記インデックス管理部は、前記インデックスの各ページに新たなレコードを追加するか、あるいは既存のレコードを変更するレコードアップデート部をさらに含んでもよい。
本実施形態において、前記レコードアップデート部は、当該ページに、前記LFKとUFKとが存在するか否かということを確認し、当該ページに、前記LFKとUFKとが存在する場合、LFKとUFKとを比較演算して前記プレフィックスを抽出し、追加されたり、あるいは変更されたりするレコードから、前記プレフィックスが除外された残りのデータを当該ページにレコードとして追加されたり、あるいは変更されたりする。
本発明の他の実施形態は、Bツリー構造またはB+ツリー構造のデータベースのツリー構造において、ツリー構造の最上部に位置し、一つ以上の区分キー値を保存するルートノード;及び少なくとも一端部に当該リーフノードに属するキー値の下限値がLFKとして保存されるか、あるいは当該リーフノードに属するキー値の上限値がUFKとして保存される一つ以上のリーフノード;を含むデータベースのツリー構造を開示する。
本実施形態において、前記リーフノードにおいて、LFKとUFKとの間に存在するレコードは、前記レコードのキー値から共通領域を除外した残りのキー値のみを保存することができる。
本実施形態において、前記ルートノードに保存された区分キー値は、互いに隣合うリーフノードのいずれか一側のLFK及び他の一側のUFKにもなる。
本実施形態において、複数個の前記リーフノードのうち最も左側に位置したリーフノードには、前記LFKが保存されず、複数個の前記リーフノードのうち最も右側に位置したリーフノードには、前記UFKが保存されない。
本発明によれば、インデックスページが保存される保存空間を節約することができ、それによって、データベースの性能が向上するという効果を得ることができる。
また、本発明の一実施形態は、圧縮するか否かをリアルタイムで設定することを可能にし、特定領域において、挿入/削除(insert/delete)負荷が高くなれば、圧縮を行わないように調整することにより、データベース運用効率性が向上するという効果を得ることができる。
また、本発明の一実施形態は、副次的な圧縮方式及びその範囲に係わるメタデータを追加して記録する必要がないようにし、ページに保存されるレコードの個数が多くなるほど、圧縮効率が極大化されるという効果を得ることができる。
また、本発明の一実施形態は、インデックスのツリー構造を巡回(traverse)するたびに、各ページのLFK及びUFKを利用して、リーフノードの有効性検査(validity check)を行うことにより、インデックス構造のエラーを手軽にチェックするという効果を得ることができる。
本発明の一実施形態によるデータベース管理システムの概略的なブロック図である。 本発明の一実施形態によるデータベース管理方法のインデックス生成段階を示すフローチャートである。 本発明の一実施形態によるデータベース管理方法のレコード復元段階を示すフローチャートである。 本発明の一実施形態によるデータベース管理方法のレコード追加/変更段階を示すフローチャートである。 本発明のデータベース管理方法及び該管理システムが適用されるBツリーインデックスの構造を例示的に図示した図面である。 一般的なBツリーページのキー値の配列を示す図面である。 本発明のデータベース管理方法及び該管理システムによるBツリーページのキー値の配列を示す図面である。 本発明のデータベース管理方法及び該管理システムが適用されるBツリーインデックスでページが分割される過程を示す図面である。 本発明のデータベース管理方法及び該管理システムが適用されるBツリーインデックスでページが分割される過程を示す図面である。
以下で説明する本発明に係わる詳細な説明は、本発明が実施される特定実施形態の例示として添付図面を参照する。このような実施形態は、当業者が、本発明を実施するのに十分なほどに詳細に説明する。本発明の多様な実施形態は、互いに異なるにしても、相互排他的である必要はないということを理解しなければならない。例えば、本明細書に記載されている特定形状、構造及び特性は、本発明の精神及び範囲を外れずに、一実施形態から他の実施形態に変更されて具現化されもする。また、それぞれの実施形態内の個別構成要素の位置または配置も、本発明の精神及び範囲を外れずに変更されるということが理解されなければならない。従って、以下で行われる詳細な説明は、限定的な意味として行われるのではなく、本発明の範囲は、特許請求の範囲の請求項が請求する範囲、及びそれと均等な全ての範囲を包括するものであると受け止めなければならない。図面で類似した参照符号は、多くの側面にわたって、同一であるか、あるいは類似した構成要素を示している。
以下、本発明が属する技術分野で当業者が本発明を容易に実施することができるように、本発明のさまざまな実施形態について、添付図面を参照しつつ詳細に説明する。
図1は、本発明の一実施形態によるデータベース管理システム(DBMS:database management system)の概略的なブロック図である。図1を参照すれば、本発明の一実施形態によるデータベース管理システム100は、次のように構成される。
まず、データベース110には、多様なデータがテーブル形式で保存され、前述のように、各テーブルは、一つ以上のレコードで構成され、各レコードは、一つ以上のカラムで構成される。例えば、所定掲示板に係わる掲示物が保存されたデータベースである場合、該テーブルは、掲示物の集合を意味し、該レコードは、各掲示物を意味し、該カラムとは、掲示物識別子、掲示物の作成者、掲示物のヒット数などが保存される領域を意味する。図面には、データベース110が複数個具備されるように図示されているが、本発明は、それに制限されるものではなく、データベース管理システム100の構成、保存されるデータ分量、用途などによって、データベース110の個数及び構成は、多様に変更可能である。
データベース管理システム100は、データベース110に接続され、データベース110に記録されたデータを更新または削除するか、あるいはデータベース110にデータを追加するなど、データベース110を統合的に管理する機能を実行するものであり、大きく見て、質疑文分析部120、実行計画生成部130、実行計画実行部140を含む。また、データベース管理システム100は、エントリー管理部150及びインデックス管理部160をさらに含んでもよい。
質疑文分析部120は、データベース管理システム100と連動する多様な外部サーバ(図示せず)または管理者端末機(図示せず)から、データベース110に保存されているデータ処理のための質疑文を受信し、受信した質疑文を分析する。このような質疑文分析部120は、質疑文受信部及びパーザ(parser)を含み、有効性検証部をさらに含んでもよい。
実行計画生成部130は、質疑文分析部120の有効性検証部によって、有効であると判断されたパースツリーを基に、要請されたレコードの引き出し、及びレコードに含まれたカラム更新のための実行計画を生成し、後述するメモリ170に保存する。ここで、実行計画とは、特定テーブルからレコードを引き出す方法、結果レコードリスト、更新要請されたカラムに対する増加演算いかんなどを含む資料構造を意味する。
一実施形態において、実行計画生成部130は、要請されたレコードを特定テーブルから引き出す方法として、順次スキャン方法及びインデックススキャン方法のうちいずれか一つを選択することができる。ここで、順次スキャン方法とは、特定テーブルに含まれたレコードを順次にスキャンして行き、当該レコードの識別子を有したレコードを引き出す方法を意味し、インデックススキャン方法とは、各レコードの識別子別にインデックスが生成されており、このようなインデックスのみをスキャンすることにより、当該レコードを引き出す方法を意味する。このようなデータベース管理システムのインデックスについては、追って詳細に説明する。
実行計画実行部140は、実行計画生成部130によって生成された実行計画によって、特定テーブルから当該レコードを引き出し、更新要請されたカラムの物理的位置に相応するレコード上のカラムに記録されたカラム値に、増加演算を行うことにより、当該カラム値を更新する。具体的には、実行計画実行部140は、実行計画生成部130によって生成された実行計画を実行するためのトランザクションを生成することにより、生成された実行計画を当該トランザクションの間に処理する。ここで、トランザクションとは、1つの論理的作業単位を構成するものであり、一つ以上のSQL文を利用して定義される。このようなトランザクションの使用によって、データの一致性とデータの同時発生とを保証することができる。
データベース管理システム100は、レコードの識別子、及び更新要請されるカラムの識別子で構成されるエントリーを生成または削除し、生成されたエントリーを、エントリーに含まれたカラム識別子に相応するカラム値とマッチングさせてメモリ170に保存するエントリー管理部150をさらに含んでもよく、メモリ170には、更新要請されたカラムのカラム値が、エントリー管理部150に生成されたエントリーとマッチングされて保存される。
一方、データベース管理システム100は、インデックスを生成または削除し、生成されたインデックスをメモリ170に保存するインデックス管理部160をさらに含んでもよい。このようなインデックス管理部160は、インデックス生成部161、レコード復元部163、レコードアップデート部165を含んでもよい。
インデックス生成部161は、特定データベース110に係わるインデックスを生成し、このとき、インデックスの各ページに属するキー値の下限値をLFK(lower fence key)として保存し、キー値の上限値をUFK(upper fence key)として保存する役割を担う。また、インデックス生成部161は、各ページをなす複数個のレコードのキー値のうち、共通領域をプレフィックス(prefix)として抽出する役割を担う。また、インデックス生成部161は、各ページをなす数数個のレコードのキー値からプレフィックスに該当する部分を削除した後、インデックスに保存する役割を担う。
レコード復元部163は、インデックスの各ページに含まれたレコードから原本キー値を復元する役割を行う。詳細には、レコード復元部163は、当該ページにLFKとUFKとが存在するか否かということを確認し、当該ページにLFKとUFKとが存在する場合、LFKとUFKとを比較演算してプレフィックスを抽出し、抽出されたプレフィックスと当該レコードの値とを結合して原本キー値を復元する役割を担う。
レコードアップデート部165は、インデックスの各ページに新たなレコードを追加するか、あるいは既存のレコードを変更する役割を担う。詳細には、レコードアップデート部165は、当該ページにLFKとUFKとが存在するか否かということを確認し、当該ページにLFKとUFKとが存在する場合、LFKとUFKとを比較演算してプレフィックスを抽出し、追加されたり、あるいは変更されたりするレコードからプレフィックスが除外された残りのデータを、当該ページにレコードとして追加または変更する役割を担う。
このようなインデックス生成部161のインデックス生成過程、レコード復元部163のレコード復元過程、レコードアップデート部165のレコードアップデート過程については、図2A以下で詳細に説明する。
以下、このように、区分子基盤のインデックス圧縮技法(serperator-based index compression method)を利用したデータベース管理方法について、さらに詳細に説明する。
図2A、図2B及び図2Cは、本発明の一実施形態によるデータベース管理方法を示すフローチャートである。一方、図3は、本発明のデータベース管理方法及び該管理システムが適用されるBツリーインデックスの構造を例示的に図示した図面であり、図4は、一般的なBツリーページのキー値の配列を示す図面であり、図5は、本発明のデータベース管理方法及び該管理システムによるBツリーページのキー値の配列を示す図面である。
図2Aないし図5を参照すれば、本発明の一実施形態によるデータベース管理方法は、インデックスを生成する段階(S100段階)、インデックスでレコードを復元する段階(S200段階)、及びインデックスでレコードを追加/変更する段階(S300段階)を含む。
それらについてさらに詳細に説明すれば、次の通りである。
インデックスは、データベース分野において、テーブルに対する動作の速度を速める資料構造をいう。インデックスは、テーブル内の1個のカラム(single column index)、あるいはいくつかのカラム(multi column index)を利用して生成されることができ、高速の検索動作だけではなく、レコードアクセスと係わり、効率的な手順付け動作に係わる基礎を提供する。インデックスを保存するのに必要なディスク空間は、普通テーブルを保存するのに必要なディスク空間より小さい。なぜならば、普通インデックスは、キーフィールドのみ有しており、テーブルの他の詳細項目は、有していないからである。
Bツリー(あるいは、B+ツリー)は、このようなインデックスを構成するために、データベース及びファイルシステムで広く使用されるツリー資料構造の一種であり、特定値(key)を有しているレコードを早く照会するための関連写像資料構造である。Bツリー(あるいは、B+ツリー)は、アクセスが遅い大容量ディスクにデータが記録されている特性のために、I/O回数を減らすために、ページ単位のツリー構造になっている。1ページ内には、キーと、該キーをアトリビュート(attribute)として含んでいる実際レコードの位置(Object IDあるいはRecord ID)がキーの順に記録されている。すなわち、{Key−OID}が結合し、それぞれのインデックスレコード(以下では、それをレコードとも称する)を構成するのである。
前述のような特性により、1ページ内のレコードのキー値は、隣接している値同士相当な類似性を有することができる。例えば、一会社のメールシステムにおいて、各メールを区分するためのインデックスキーとして、社員番号、メールフォルダ番号、メール一連番号を指定した場合(すなわち、マルチカラムインデックス)、ある社員が、全体メールは10万件であり、1つのメールフォルダに、1万件のメールを保管しているならば、インデックスにおいて1万件は、社員番号とメールフォルダ番号とが同一値であり、10万件は、社員番号が同一値である。もし一般的なBツリーの1ページに、既存の方式通り、1千件ずつ入れば、10件ほどのページでは、社員番号とメールフォルダ番号とが重複して毎回保存されるであろう。従って、同一値が何回か重複保存されることにより、不要なメモリの浪費が発生するという問題点が存在した。
このような問題点を解決するために、本発明の区分子基盤のインデックス圧縮技法(separator-based index compression method)を利用したデータベース管理方法及び該管理システムは、1ページのキー値のうち重複保存されるプレフィックス(prefix)を、ページ区分子であるLFK及びUFKに保存し、メモリ空間を節約することを一特徴とする。
さて、図2Aを参照すれば、本発明の一実施形態によるデータベース管理方法において、インデックスを生成する段階(S100段階)は、1枚のページに属するキー値の下限値がLFKとして保存されるか、あるいは1枚のページに属するキー値の上限値がUFKとして保存される段階(S110段階)、1枚のページをなす複数個のレコードのキー値のうち共通領域がプレフィックスとして抽出される段階(S120段階)、及び1枚のページをなす複数個のレコードのキー値で共通領域であるプレフィックスが削除された後で保存される段階(S130段階)を含む。それについて理解しやすく説明すれば、次の通りである。
本発明が適用されたBツリーインデックスの構造を図示した図3を参照すれば、データベースにおいて、レコードデータを早く検索するために使用されるインデックスにおいて、本発明で使用するBツリーインデックスの構成は、実際レコードデータを示すリーフノード(leaf node)と、その上位の中間ノードとからなる。ルートノードは、中間ノードのうち最上位に存在する1つのノードである。図3には、4つのリーフノードと、1つの中間ノードとが存在し、その1つの中間ノードが、すなわち、ルートノードになる。このとき、それぞれのリーフノードは、すなわち、それぞれのページを構成する。すなわち、図3に図示された4つのリーフノードは、4枚のページを構成する。
ここで、図3に図示されたBツリーインデックスのルートノードは、3つの区分キー値P1,P2,P3を有する。第1区分キー値P1は、ページ1とページ2とを区分する区分子になり、第2区分キー値P2は、ページ2とページ3とを区分する区分子になり、第3区分キー値P3は、ページ3とページ4とを区分する区分子になる。
このように、本発明の一実施形態によるデータベース管理方法は、それぞれのページに属するキー値の下限値をLFKとして保存し、またそれぞれのページに属するキー値の上限値をUFKとして保存することを特徴とする。このとき、LFKは、図面で見たとき、各ページの左端部に保存され、当該ページの下限値を定義し、UFKは、図面で見たとき、各ページの右端部に保存され、当該ページの上限値を定義する。
そして、本発明の一実施形態によるデータベース管理方法は、各ページにおいて、LFKとUFKとの間に存在する複数個のレコードのキー値のうち共通領域をプレフィックスとして抽出し、LFKとUFKとを除いた残りのレコードでは、キー値からプレフィックスを削除した後、残りキー値のみを保存することにより、データの重複保存を防止してメモリ空間を節約する。
すなわち、第1区分キー値P1は、ページ1のUFKであるUFK1になるとともに、ページ2のLFKであるLFK2になる。同様に、第2区分キー値P2は、ページ2のUFKであるUFK2になるとともに、ページ3のLFKであるLFK3になる。同様に、第3区分キー値P3は、ページ3のUFKであるUFK3になるとともに、ページ4のLFKであるLFK4になる。このとき、複数個のリーフノードのうち最も左側に位置する極左側リーフノード(ページ1)には、LFKを設定することができず、従って、当該ページでは、プレフィックス抽出も可能ではない。同様に、最も右側に位置した極右側リーフノード(ページ4)には、UFKを設定することができず、従って、当該ページでは、プレフィックス抽出も可能ではない。
これについてさらに詳細に説明するために、一般的なBツリーページのキー値の配列を示す図4と、本発明のデータベース管理方法及び該管理システムによるBツリーページのキー値の配列を示す図5とを比較する。図4及び図5では、説明のために、10個のレコードだけがある場合を想定した。
図4を参照すれば、1枚のページを構成する10個のレコードで、社員番号(KR10000)とメールフォルダ番号(FD0001)とが同一値として重複し、10回保存される。それに対し、図5を参照すれば、本発明のデータベース管理方法による場合、1枚のページのキー値のうち重複保存される社員番号(KR10000)とメールフォルダ番号(FD0001)は、当該ページの下限値を設定するLFK、及び当該ページの上限値を設定するUFKにのみ保存され、LFKとUFKとの間の一般レコードには、プレフィックスが削除された状態のキー値だけが保存される。すなわち、図5のように、10個のレコードに共通するキー値である社員番号(KR10000)とメールフォルダ番号(FD0001)は、いずれも削除され、ユニークなキー値であるメール一連番号だけが各レコードに保存される。
以下では、本発明の一実施形態によるデータベース管理方法において、レコードを復元する段階について説明する。さて、図2B及び図5を参照すれば、本発明の一実施形態によるデータベース管理方法において、レコードを復元する段階(S200段階)は、当該ページに、LFKとUFKとが存在するか否かということを確認する段階(S210段階)、当該ページに、LFKとUFKとが存在する場合、LFKとUFKとを比較演算してプレフィックスを抽出する段階(S220段階)、及びプレフィックスと当該レコードの値とが結合して原本キー値が復元される段階(S230段階)を含む。それについてさらに詳細に説明すれば、次の通りである。
まず、復元するキー値が属したページが、いずれのページであるかということを、バイナリ探索によって求めた後、当該ページに、LFKとUFKとが存在するか否かということを確認する。当該ページに、LFK及びUFK二つのうちいずれか一つでも存在しない場合、当該ページは、圧縮(すなわち、プレフィックスを利用した重複データ削除)が行われていないので、それぞれのレコードに保存されているキー値が、まさに原本キー値である(S240段階)。一方、当該ページに、LFKとUFKとがいずれも存在する場合、当該ページは、プレフィックスを利用したデータ圧縮が行われたページであるので、所定の復元ルーチンを実行する。すなわち、ページの下限値であるLFKと、ページの上限値であるUFKとを比較し、LFK及びUFKの共通領域、すなわち、プレフィックスを抽出する。図5の例においては、LFK及びUFKの共通領域であるKR10000:FD0001がプレフィックスとして抽出される。このように抽出されたプレフィックスと、各レコードに保存されているキー値とを結合して原本キー値が復元される。すなわち、SN10001を復元した原本キー値は、KR10000:FD0001:SN10001になる。
以下では、本発明の一実施形態によるデータベース管理方法において、レコードを追加または変更する段階について説明する。ここで、図2C及び図5を参照すれば、本発明の一実施形態によるデータベース管理方法において、レコードを追加または変更する段階(S300段階)は、当該ページに、LFKとUFKとが存在するか否かということを確認する段階(S310段階)、当該ページに、LFKとUFKとが存在する場合、LFKとUFKとを比較演算してプレフィックスを抽出する段階(S320段階)、及び追加されたり、あるいは変更されたりするレコードからプレフィックスが除外された残りのデータが、当該ページにレコードとして追加されたり、あるいはそこで変更されたりする段階(S330段階)を含む。それについてさらに詳細に説明すれば、次の通りである。
まず、追加または変更するキー値が属するページが、いずれのページであるかということを、バイナリ探索によって求めた後、当該ページに、LFKとUFKとが存在するか否かということを確認する。当該ページに、LFK及びUFK二つのうちいずれか一つでも存在しない場合、当該ページは、圧縮(すなわち、プレフィックスを利用した重複データ削除)が行われていないので、当該レコードの値を、別途の処理なしにそのまま追加したり、あるいは変更したりすればよい(S340段階)。一方、当該ページに、LFKとUFKとがいずれも存在する場合、当該ページは、プレフィックスを利用したデータ圧縮が行われたページであるので、所定の分解ルーチンを実行する。すなわち、ページの下限値であるLFKと、ページの上限値であるUFKとを比較し、LFK及びUFKの共通領域、すなわち、プレフィックスを抽出する。図5の例においては、LFK及びUFKの共通領域であるKR10000:FD0001がプレフィックスとして抽出される。次に、追加または変更するレコードのキー値からプレフィックスを除外した残りのキー値だけが、ページの当該位置に追加されたり、あるいはそこで変更されたりする。例えば、追加されるキー値が、KR10000:FD0001:SN13000であるならば、プレフィックスは、KR10000:FD0001になり、従って、当該ページには、キー値からプレフィックスを除外したSN13000のみが追加される。
以下では、本発明の一実施形態によるデータベース管理方法において、ページが分割または併合される過程について説明する。
図6A及び図6Bは、本発明のデータベース管理方法及び該管理システムが適用されるBツリーインデックスにおいて、ページが分割される過程を示す図面である。
図6Aに図示されたBツリーインデックスのルートノードは、初めには、2つの区分キー値P1,P2を有する。第1区分キー値P1は、ページ1とページ2とを区分する区分子になり、第2区分キー値P2は、ページ2とページ3とを区分する区分子になる。そして、第1区分キー値P1は、ページ1のUFKであるUFK1になるとともに、ページ2のLFKであるLFK2になる。同様に、第2区分キー値P2は、ページ2のUFKであるUFK2になるとともに、ページ3のLFKであるLFK3になる。
この状態で、ページ2にそれ以上保存空間がなくなり、第1区分キー値P1と、第2区分キー値P2との間の任意の値であるSを基準に、ページ2を分割しなければならないと仮定する。
その場合、ページ2では、図6Bに図示されているように復元されたSを、新たなUFKであるUFK2として保存する。そして、既に存在していたLFKであるLFK2と、新たに生成されたUFKであるUFK2とを利用して、さらにデータを圧縮する。すなわち、LFK2とUFK2とを比較演算してプレフィックスを抽出した後、LFK2とUFK2とを除いた残りのレコードでは、キー値からプレフィックスを削除した後、残りのキー値のみを保存する。
一方、新たに生成された図6Bのページ3では、Sを新たなLFKであるLFK3として保存する。そして、図6Aのページ2のUFKであるUFK2が、図6Bのページ3のUFKであるUFK3として保存される。そして、LFK3とUFK3とを利用して、さらにデータを圧縮する。すなわち、LFK3とUFK3とを比較演算してプレフィックスを抽出した後、LFK3とUFK3とを除いた残りのレコードでは、キー値からプレフィックスを削除した後、残りのキー値のみを保存する。
最後に、図6Bのページ3では、Sを新たな区分キー値として、親ノード(ここでは、ルートノード)の第1区分キー値P1と第2区分キー値P2との間に挿入する。
一方、図示されていないが、圧縮されていないページ(すなわち、プレフィックスを利用した重複データ削除が行われていないページ)であるならば、新たな区分キー値Sを基準にしてページを分割するとき、既存のページには、新たな区分キー値SがUFKとして設定され、既に存在していたLFKと、新たに生成されたUFKとを利用して、新たにデータを圧縮することができる。一方、新たに生成されたページには、新たな区分キー値SがLFKとして設定されるが、UFKが設定されていないので、データ圧縮が行われない。
また、図示されていないが、互いに隣合う2枚のページが併合可能な(mergeable)大きさであるとき(すなわち、2枚のページに保存されたレコード個数の和が、1枚のページに保存されるレコード個数の最大値以下である場合)には、2枚のページを併合することも可能である。そのとき、2枚のページがいずれも圧縮されたページ(すなわち、プレフィックスを利用して、重複データが削除されたページ)であるならば、2枚のページの併合後に新たに圧縮を行う。一方、2枚のページのうちいずれか一つでも圧縮されたページではない場合には、併合を行わない。
下記表1は、一般的なデータベース管理方法及び該管理システムを適用した場合の全インデックスページの枚数(total page count)と、本発明の一実施形態によるデータベース管理方法及び該管理システムを適用した場合の全インデックスページの枚数とを比較した表である。そして、表2は、一般的なデータベース管理方法及び該管理システムを適用した場合の平均キー値の長さ(average key length)と、本発明の一実施形態によるデータベース管理方法及び該管理システムを適用した場合の平均キー値の長さとを比較した表である。


表1及び表2に示されているように、従来のデータベース管理方法及び該管理システムを適用した場合に比べ、本発明の一実施形態によるデータベース管理方法及び該管理システムを適用した場合、全インデックスページ数は、19%ほど減少し、平均キー値長は、31%ほど縮小された。すなわち、本発明により、保存空間を節約することができ、それにより、データベースの性能が向上するという効果を得る可能性があることが分かる。
このような本発明の一実施形態によるデータベース管理方法は、Bツリーの1ページ内で、当該ページの区分子として使用されたキー値を、{仮想のキー−OID}レコードにし、当該ページの両端にフェンスキー(LFK及びUFK)としてそれぞれ追加することにより、LFK及びUFKからの原本キー値の組み合わせ作業、及び原本キー値からプレフィックスを削除したりする分解作業を迅速に行うことができる。
一方、当該ページに、LFKまたはUFKが存在しなければ、既存の方式でレコードを保存することができ、従って、圧縮されたページ(すなわち、プレフィックスが各レコードから削除されたページ)と、圧縮されていないページ(すなわち、プレフィックスが各レコードから削除されていないページ)とが混在して維持されもする。また、LFK及びUFKが存在するページ内でも、圧縮されたレコードと、圧縮されていないレコードとが混在して維持されもする。従って、Bツリーの現在状態と係わりなく、圧縮するか否かをリアルタイムで設定することが可能になるという効果を得ることができる。そして、このような特徴を利用して、特定領域において、挿入/削除負荷が高くなれば、圧縮を行わないように調整し、データベース運用効率を向上させることができる。
一方、プレフィックスを利用した圧縮をするか否かを、LFK及びUFKを使用して決定するために、副次的な圧縮方式及びその範囲に係わるメタデータを追加して記録する必要がない。従って、ページに保存されるレコードの個数が多くなるほど、圧縮されるレコードにメタ情報を含む既存の方法に比べ、圧縮効率が極大化されるという長所がある。
このような本発明により、既存に比べ、プレフィックスを除いたキー値のみを保存するために、Bツリーの1ページに、さらに多くのレコードを保存することができる。それにより、保存空間を節約することができ、かように縮小された空間であるほど、主メモリのバッファキャッシュに含まれる可能性が大きくなり、データベースの性能が向上するという効果を得ることができる。さらに、本発明の一実施形態によるデータベース管理方法は、既存の他の圧縮方式に比べ、分割及び復元が簡単であり、保存構造の変更がなく、下位互換性側面で有利であり、LFK及びUFKを示すフラグ一つだけ追加されるのみ、追加して記録されるメタデータもなく、構造的に単純であるという長所を有する。
さらに、本発明のデータベース管理方法を利用すれば、インデックスのツリー構造を巡回するたびに、各ページのLFK及びUFKを利用して、リーフノードの有効性検査を行うことができ、インデックス構造のエラーを手軽にチェックできるという効果を得ることができる。また、LFK及びUFKにより、リーフノードの接続関係を把握することができるので、リーフノードからリンクを除去することができ、従って、SMO(structure modification operation)時の性能及び効率を向上させるという効果を得ることができる。
前述のデータベース管理方法は、多様なコンピュータ手段を利用して実行されるプログラム形態でも具現されるが、そのとき、データベース管理方法を実行するためのプログラムは、ハードディスク、CD(compact disc)−ROM(read-only memory)、DVD(digital versatile disc)、ROM、RAM(random-access memory)またはフラッシュメモリのようなコンピュータで読み取り可能な記録媒体に保存される。
本明細書では、本発明について、限定された実施形態を中心に説明したが、本発明の範囲内で、多様な実施形態が可能である。また、説明されていないにしても、均等な手段も、本発明にそのまま結合されるものとすることができる。従って、本発明の真の保護範囲は、特許請求の範囲によって決まらなければならないのである。
本発明のデータベース管理方法及び該管理システム、並びにデータベースのツリー構造は、例えば、情報処理関連の技術分野に効果的に適用可能である。
100 データベース管理システム
110 データベース
120 質疑文分析部
130 実行計画生成部
140 実行計画実行部
150 エントリー管理部
160 インデックス管理部
161 インデックス生成部
163 レコード復元部
165 レコードアップデート部
170 メモリ

Claims (17)

  1. インデックス管理部、各ページむことができる複数個のレコードの原本キー値の下限値である第1区分キー値をLFK(lower fence key)として保存前記複数個のレコードの原本キー値の上限値である第2区分キー値をUFK(upper fence key)として保存し、
    前記インデックス管理部、前記ページをなす前記複数個のレコードの原本キー値のうち共通領域をプレフィックスとして抽出し、
    前記インデックス管理部、前記複数個のレコードの原本キー値から、前記プレフィックスに該当する部分を除外した残りの部分を保存することを含むデータベース管理方法。
  2. 前記各レコードは、複数個のキー値を含むマルチカラム形態のレコードであることを特徴とする請求項1に記載のデータベース管理方法。
  3. 前記複数個の原本キー値のうち、1枚のページをなすレコードが同一値を有するキー値が、前記プレフィックスとして抽出されることを特徴とする請求項に記載のデータベース管理方法。
  4. 前記各ページは、Bツリー構造またはB+ツリー構造のリーフノードであることを特徴とする請求項1ないしのいずれか1項に記載のデータベース管理方法。
  5. 前記データベース管理方法は、
    前記インデックス管理部により、前記ページに含まれたレコードの前記原本キー値を復元することをさらに含み、
    前記原本キー値を復元することは、
    前記ページに、前記LFKと前記UFKとが存在するか否かということを確認し、
    前記ページに、前記LFKと前記UFKとが存在する場合、前記LFKと前記UFKとを比較演算し、そこに共通するプレフィックスを抽出し、
    前記抽出されたプレフィックスと、前記レコードのキー値とを結合して前記原本キー値を復元することを含むことを特徴とする請求項1に記載のデータベース管理方法。
  6. 当該ページに、前記LFKと前記UFKのいずれかが存在しない場合、
    各レコードに保存されたキー値が前記原本キー値であることを特徴とする請求項に記載のデータベース管理方法。
  7. 前記データベース管理方法は、
    前記インデックス管理部により、前記ページに新たなレコードを追加するか、あるいは既存のレコードを変更することをさらに含み、
    前記新たなレコードを追加するか、あるいは前記既存のレコードを変更することは、
    前記ページに、前記LFKと前記UFKとが存在するか否かということを確認し、
    前記ページに、前記LFKと前記UFKとが存在する場合、前記LFKと前記UFKとを比較演算し、そこに共通するプレフィックスを抽出し、
    追加されたり、あるいは変更されたりするレコードから、前記プレフィックスが除外された残りのキー値をレコードとして追加したり、あるいはそこで変更したりすることを含むことを特徴とする請求項1ないしのいずれか1項に記載のデータベース管理方法。
  8. 前記ページに、前記LFKと前記UFKのいずれかが存在しない場合、
    前記プレフィックスが抽出されず、前記ページにレコードが追加されたり、あるいはそこで変更されたりすることを特徴とする請求項に記載のデータベース管理方法。
  9. Bツリー構造またはB+ツリー構造のデータベース管理方法において、
    Bツリー構造またはB+ツリー構造のインデックスが生成され、
    前記インデックスで、所定のレコードが復元され、
    前記インデックスに所定のレコードが追加されたり、あるいはそこで変更されたりすることを含み、
    前記インデックスが生成されることは、
    一つ以上のリーフノードの少なくとも一端部に、前記リーフノードに属し得る原本キー値の下限値である第1区分キー値がLFK(lower fence key)として保存されるか、あるいは当該リーフノードに属し得る原本キー値の上限値である第2区分キー値がUFK(upper fence key)として保存され、前記リーフノードに属する原本キー値のうち共通領域をプレフィックスとして抽出され、前記リーフノードに属する原本キー値から、共通領域である前記プレフィックスに該当する部分を除いた残りのキー値が前記リーフノードに保存されることを含むデータベース管理方法。
  10. インデックス管理部により、各ページむことができる複数個のレコードの原本キー値の下限値である第1区分キー値をLFK(lower fence key)として保存前記複数個のレコードの原本キー値の上限値である第2区分キー値をUFK(upper fence key)として保存し、
    前記インデックス管理部により、前記ページをなす前記複数個のレコードの原本キー値のうち共通領域をプレフィックスとして抽出し、
    前記インデックス管理部により、前記複数個のレコードの原本キー値から、前記プレフィックスに該当する部分を除外した残りの部分を保存することを実行するプログラム。
  11. Bツリー構造またはB+ツリー構造のインデックスが生成され、
    前記インデックスで所定のレコードが復元され、
    前記インデックスに所定のレコードが追加され、あるいはそこで変更されたりすることを実行するプログラムであり、
    前記インデックスが生成されることは、
    一つ以上のリーフノードの少なくとも一端部に、前記リーフノードに属し得る原本キー値の下限値である第1区分キー値がLFK(lower fence key)として保存されるか、あるいは前記リーフノードに属し得る原本キー値の上限値である第2区分キー値がUFK(upper fence key)として保存され、前記リーフノードに属する原本キー値のうち共通領域がプレフィックスとして抽出され、前記リーフノードに属する原本キー値から、共通領域である前記プレフィックスに該当する部分を除いた残りのキー値が前記リーフノードに保存されることを含むプログラム。
  12. 特定テーブルに含まれたレコードの引出し要請、及び前記レコードに含まれた少なくとも1つのカラムに対する更新要請が共に定義された質疑文を受信して分析する質疑文分析部と、
    前記分析された質疑文を実行するための実行計画を生成する実行計画生成部と、
    前記実行計画により、前記レコードの引き出し、及び前記少なくとも1つのカラムに係わる更新を行うことにより、前記実行計画を実行する実行計画実行部と、
    特定テーブルに係わるインデックスを生成し、前記インデックスの各ページに属し得る複数個の前記レコードの原本キー値の下限値である第1区分キー値をLFK(lower fence key)として保存するか、
    あるいは前記レコードの原本キー値の上限値である第2区分キー値をUFK(upper fence key)として保存するインデックス生成部を含むインデックス管理部と、を含み、
    前記インデックス生成部は、前記各ページをなす前記複数個のレコードの原本キー値のうち共通領域をプレフィックスとして抽出し、前記各ページをなす前記複数個のレコードの原本キー値から、共通領域である前記プレフィックスに該当する部分を除いた残りのキー値を前記インデックスに保存することを特徴とするデータベース管理システム。
  13. 前記各レコードのうち、前記LFKまたは前記UFKが保存されるレコード以外のレコードには、各レコードの原本キー値のうち、前記プレフィックスを除いたキー値だけが保存されることを特徴とする請求項12に記載のデータベース管理システム。
  14. 前記インデックス管理部は、
    前記インデックスの各ページに含まれたレコードから前記原本キー値を復元するレコード復元部をさらに含むことを特徴とする請求項12に記載のデータベース管理システム。
  15. 前記レコード復元部は、
    前記ページに、前記LFKと前記UFKとが存在するか否かということを確認し、前記ページに、前記LFKと前記UFKとが存在する場合、前記LFKと前記UFKとを比較演算して前記プレフィックスを抽出し、抽出された前記プレフィックスと前記レコードの値とを結合して前記原本キー値を復元することを特徴とする請求項14に記載のデータベース管理システム。
  16. 前記インデックス管理部は、
    前記インデックスの各ページに新たなレコードを追加するか、あるいは既存のレコードを変更するレコードアップデート部をさらに含むことを特徴とする請求項12ないし15のいずれか1項に記載のデータベース管理システム。
  17. 前記レコードアップデート部は、
    前記ページに、前記LFKと前記UFKとが存在するか否かということを確認し、前記ページに、前記LFKと前記UFKとが存在する場合、前記LFKと前記UFKとを比較演算して前記プレフィックスを抽出し、追加されたり、あるいは変更されたりするレコードから、前記プレフィックスが除外された残りのデータを、前記ページにレコードとして追加または変更することを特徴とする請求項16に記載のデータベース管理システム。
JP2014209249A 2013-10-15 2014-10-10 データベース管理方法、プログラム及び該管理システム、並びにデータベースのツリー構造 Active JP5959592B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130122951A KR101549220B1 (ko) 2013-10-15 2013-10-15 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조
KR10-2013-0122951 2013-10-15

Publications (2)

Publication Number Publication Date
JP2015079508A JP2015079508A (ja) 2015-04-23
JP5959592B2 true JP5959592B2 (ja) 2016-08-02

Family

ID=52810565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014209249A Active JP5959592B2 (ja) 2013-10-15 2014-10-10 データベース管理方法、プログラム及び該管理システム、並びにデータベースのツリー構造

Country Status (4)

Country Link
US (1) US10664459B2 (ja)
JP (1) JP5959592B2 (ja)
KR (1) KR101549220B1 (ja)
TW (1) TWI549009B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156197A (zh) * 2015-04-22 2016-11-23 中兴通讯股份有限公司 一种数据库的查询方法和装置
JP7237782B2 (ja) 2019-09-13 2023-03-13 キオクシア株式会社 ストレージシステム及びその制御方法
CN110716933B (zh) * 2019-09-29 2022-03-15 浙江大学 一种面向新型城轨列车大数据的高伸缩分布式索引方法
CN111008195A (zh) * 2019-10-31 2020-04-14 苏州浪潮智能科技有限公司 一种数据库空闲空间管理方法、系统、终端及存储介质
CN111367915A (zh) * 2020-03-04 2020-07-03 深圳前海微众银行股份有限公司 一种区块链数据的操作方法及装置
KR102127785B1 (ko) * 2020-03-11 2020-06-29 주식회사 티맥스티베로 효율적인 인덱싱을 제공하기 위한 방법, 장치 및 컴퓨터-판독가능 매체에 포함된 컴퓨터 프로그램
US12118107B2 (en) * 2021-05-27 2024-10-15 Intuit Inc. Detecting sensitive information in records using context and decoys
KR20230120347A (ko) * 2022-02-09 2023-08-17 주식회사 티맥스티베로 데이터를 인덱스하기 위한 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812996A (en) * 1994-07-12 1998-09-22 Sybase, Inc. Database system with methods for optimizing query performance with a buffer manager
JPH09167111A (ja) * 1995-12-19 1997-06-24 Hitachi Ltd データベースのデータ格納方法
US6584459B1 (en) * 1998-10-08 2003-06-24 International Business Machines Corporation Database extender for storing, querying, and retrieving structured documents
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US6694323B2 (en) * 2002-04-25 2004-02-17 Sybase, Inc. System and methodology for providing compact B-Tree
JP2004062475A (ja) * 2002-07-29 2004-02-26 Hitachi Ltd インデクス格納方法
US7693824B1 (en) * 2003-10-20 2010-04-06 Google Inc. Number-range search system and method
US8364711B2 (en) * 2006-05-09 2013-01-29 John Wilkins Contact management system and method
KR100834760B1 (ko) 2006-11-23 2008-06-05 삼성전자주식회사 최적화된 인덱스 검색 방법 및 장치
KR100921158B1 (ko) 2007-12-21 2009-10-12 엔에이치엔(주) 데이터베이스 관리 방법 및 시스템
KR101160388B1 (ko) 2008-02-05 2012-06-26 엔에이치엔비즈니스플랫폼 주식회사 데이터베이스 관리 방법 및 시스템
US8255398B2 (en) * 2008-09-30 2012-08-28 International Business Machines Corporation Compression of sorted value indexes using common prefixes
US8055675B2 (en) 2008-12-05 2011-11-08 Yahoo! Inc. System and method for context based query augmentation
US8180763B2 (en) * 2009-05-29 2012-05-15 Microsoft Corporation Cache-friendly B-tree accelerator
TWI445349B (zh) * 2010-12-31 2014-07-11 Aten Int Co Ltd 遠端管理系統及其運作方法
US8832050B2 (en) 2012-03-09 2014-09-09 Hewlett-Packard Development Company, L.P. Validation of distributed balanced trees

Also Published As

Publication number Publication date
JP2015079508A (ja) 2015-04-23
US20150106380A1 (en) 2015-04-16
TW201514734A (zh) 2015-04-16
KR101549220B1 (ko) 2015-09-03
US10664459B2 (en) 2020-05-26
KR20150043929A (ko) 2015-04-23
TWI549009B (zh) 2016-09-11

Similar Documents

Publication Publication Date Title
JP5959592B2 (ja) データベース管理方法、プログラム及び該管理システム、並びにデータベースのツリー構造
US11169978B2 (en) Distributed pipeline optimization for data preparation
CN106126543B (zh) 一种关系型数据库到MongoDB的模型转换和数据迁移方法
JP5847578B2 (ja) 個別にアクセス可能なデータユニットの記憶の取り扱い方法
US11461304B2 (en) Signature-based cache optimization for data preparation
De Vries et al. Robust record linkage blocking using suffix arrays and bloom filters
EP3867772B1 (en) Distributed join index for shared-nothing and log-structured databases
US20170109389A1 (en) Step editor for data preparation
US20220222233A1 (en) Clustering of structured and semi-structured data
KR101238381B1 (ko) 다중범위 스캔에서의 n 정렬 질의를 최적으로 처리하기 위한 방법 및 장치
JPWO2010084754A1 (ja) データベースシステム、データベース管理方法、及びデータベース構造
US20080033909A1 (en) Indexing
US10740316B2 (en) Cache optimization for data preparation
KR101640733B1 (ko) 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법
US20180075074A1 (en) Apparatus and method to correct index tree data added to existing index tree data
JP6459669B2 (ja) カラムストア型データベース管理システム
KR101358793B1 (ko) 인덱스 파일 생성방법, 사전 인덱스 파일을 이용한 데이터 검색 방법 및 데이터 관리 시스템, 기록매체
US20200278980A1 (en) Database processing apparatus, group map file generating method, and recording medium
KR102013839B1 (ko) 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조
US20210056090A1 (en) Cache optimization for data preparation
CN114443625A (zh) 数据库的处理方法、装置
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
CN114238241B (zh) 财务数据的元数据处理方法和计算机系统
Raigoza et al. Temporal join processing with hilbert curve space mapping
CN107145601A (zh) 一种高效的引用关系发现算法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160621

R150 Certificate of patent or registration of utility model

Ref document number: 5959592

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250