JP2013149277A - 圧縮データの構造を問い合わせる方法 - Google Patents

圧縮データの構造を問い合わせる方法 Download PDF

Info

Publication number
JP2013149277A
JP2013149277A JP2013086596A JP2013086596A JP2013149277A JP 2013149277 A JP2013149277 A JP 2013149277A JP 2013086596 A JP2013086596 A JP 2013086596A JP 2013086596 A JP2013086596 A JP 2013086596A JP 2013149277 A JP2013149277 A JP 2013149277A
Authority
JP
Japan
Prior art keywords
binary tree
data
node
data value
records
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.)
Abandoned
Application number
JP2013086596A
Other languages
English (en)
Inventor
Thomas Benjamin Longshaw
トーマス ベンジャミン ロングショー
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.)
RAINSTOLE Ltd
Original Assignee
RAINSTOLE Ltd
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 RAINSTOLE Ltd filed Critical RAINSTOLE Ltd
Publication of JP2013149277A publication Critical patent/JP2013149277A/ja
Abandoned legal-status Critical Current

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】少なくとも一つのサーチ基準を用いて電子データベースをサーチするための代替方法を提供する。
【解決手段】2値の森として記憶されたレコードを備えている圧縮データの構造を問い合わせする方法は、2分木を識別するメモリのアドレスの入力を与えることにより、2分木を有する特定のデータ値を検索させる命令セットを生成する段階を含む。命令セットを利用する更なる問い合わせ機能は、一つ以上の特定のデータ値、またはデータ値の範囲に基づくレコードの選択、レコードの統計的分析及びレコードのフィールド内の共通データ値に基づくレコードのグループ化を許容する。
【選択図】図2

Description

1.(技術フィールド)
本発明は、圧縮データの構造、特には、排他的ではないが、圧縮データベースに関し、かつ圧縮データベースを問い合わせる方法及びコンピュータ・ソフトウェアに関する。
2.(背景技術)
電子データベースを形成するためにコンピュータ・システムにレコードを記憶することは、よく知られた技法である。市販されているデータベース・ソフトウェアは、レコードをコンピュータ・システムのメモリ内に記憶させかつ一つ以上のサーチ基準を満たしている記憶したレコードを回復かつ表示させる。
しばしば、データベースは、多数のレコードを記憶することを要求される。例えば、人間または乗り物の詳細を保持しているデータベースは、ほぼ107の大きさのレコード数を記憶することを要求されうる。そのような多数のレコードを記憶するために必要なメモリの量を低減するために、従って 利用可能なメモリのより効率的使用を供給するために、記憶されるべきレコードを備えている入力データの圧縮をアレンジすることが一般的に望ましい。データ圧縮は、特定のデータのシングル・インスタンスだけを記憶することによって、即ち、入力データから冗長データを取り除くことによって典型的に達成される。
入力データ内のデータの固有のインスタンスは、入力データの完全な復元を供給するメモリ内の圧縮データ構造として記憶される。圧縮データの構造を記憶するシステムの一例は、米国特許第5,245,337号公報及び米国特許第5,592,667号公報に開示されている。システムは、各々が関連メモリを有する一連のプロセッサを含む。デジタル入力データの本体は、先に発生していない入力データのデータ要素のペアを検出しかつ第1の関連メモリにデータ要素のペアを記憶する一連の第1のプロセッサに逐次に印加される。第1のプロセッサからの出力信号は、第1の関連メモリにおける各データ・ペアの記憶位置を識別する。後続のプロセッサは、実際のデータではなくメモリにおける記憶位置を表している信号で動作する。各プロセッサは、それに入力された一対の入力データ要素に対応しているメモリにおける一つの位置を生成し、かつその位置にその一対のデータ要素を記憶する。また、各プロセッサは、データ要素の各入力対が発生した回数を求めかつその対に関連付けられたメモリにおける位置にその数を記憶する。各プロセッサによって生成されかつその関連メモリに記憶されたハッシング・テーブルは、先に記憶されたデータ要素のペアの識別を簡略化するためにデータ要素の記憶されたペアをグループに纏めるために用いられる。データ要素の各ペアのメモリ位置に記憶されたアドレス・ポインタは、データ要素の入力ペアが発生の確率によりグループ内に記憶されうるように入力データにおける発生頻度の順序でグループ内の隣接するペアをリンクする。データ要素のペア及びそれらの間の関連を記憶することによってデータを圧縮するための別のシステムは、公開国際出願PCT/NZ94/00146(国際公開WO95/17783号公報)に開示されている。
これらのシステムは、圧縮データ構造からの入力データ・ストリームを正確に復元することができるが、それらは、データベースにおいて要求されるような、一つ以上のサーチ基準に基づくデータ要素のグループを選択する手段をまったく提供しない。
本発明の目的は、少なくとも一つのサーチ基準を用いて電子データベースをサーチするための代替方法を提供することにある。
(発明の開示)
本発明は、各レコードが2分木として複数のノード構造を備えている;複数のレコードを備えているデータ構造を問い合わせる方法であって、
(a)ノードが属する2分木内の葉ノードの位置アドレスを求める段階;
(b)前記葉ノードのラテラル位置インデックスを設定する段階;及び
(c)前記ノードのラテラル位置インデックスに依存する命令を命令セットに入力する段階
によって前記2分木の葉ノードに記憶されたデータ値にアクセスするための命令セットを生成する動作を備えている方法を提供する。
本発明は、圧縮データの構造が先に可能であったよりも更に迅速に問い合わせされうるという効果を提供する。
好適には、本発明の方法は、命令セット及び2分木の根ノード位置アドレスを用いて2分木の葉ノードに記憶されたデータ値を検索する段階を更に具備する。命令セットの対応しているデータ値は、それゆえに検索されうるし、データベースのより複雑な探索に対するベースを提供する。
本発明の方法は、(a)2分木を特定する段階;
(b)命令セットを特定する段階;
(c)前記命令セットに対応しているノード位置アドレスの前記2分木内に記憶されたデータ値を読み出す段階;
(d)それが2分木内で先に見出されていない場合には1のカウントだけメモリのリストに前記データ値を追加するかまたは該データ値が2分木内で先に見出されている場合には1だけそのデータ値に関連付けられたリストのカウント変数を代りに進める段階;及び (e)前記データ構造の残りの2分木に対して段階(a)〜段階(d)を繰り返す段階、
を更に具備する。
これは、特定のフィールドの全ての可能な値のセット及びそれらの値がデータベースに現われる頻度を求める。
本発明の方法は、(a)前記リストの各データに対してメモリにテーブルを生成する段階;
(b)2分木の、前記特定した命令セットに対応しているデータ値を読出す段階;
(c)前記特定した命令セットに対応している前記データ値によりテーブルに2分木の根ノード・アドレスを割り当てる段階;
(d)前記データ構造の残りの2分木に対して段階(b)及び段階(c)を繰り返す段階、
を更に具備する。
これは、根ノード・アドレスを根ノード・アドレスに対応しているレコード内の特定のフィールドのデータ値によってグループ化させることを可能にする。
本発明の方法は、(a)前記リストの前記データ値に対する順序を特定する段階;及び (b)前記データ値の前記順序に対応している順序に前記テーブルを配列する段階、
を更に具備する。
これは、データベースの全てのレコードを、各グループが特定のフィールドが特定のデータ値を含む全てのレコードで構成されている、一連のグループで出力させることを可能にする。
データベースを形成するレコードのテーブルを示す図である。 2分木の森として図1のレコードを表す図である。 図2の森の特定の2分木をより詳細に示す図である。 図1のデータベースで動作するアルゴリズムを問い合わせることの実行における段を示しているフローチャートである。 図1のデータベースで動作するアルゴリズムを問い合わせることの実行における段を示しているフローチャートである。 図1のデータベースで動作するアルゴリズムを問い合わせることの実行における段を示しているフローチャートである。 図1のデータベースで動作するアルゴリズムを問い合わせることの実行における段を示しているフローチャートである。 図1のデータベースで動作するアルゴリズムを問い合わせることの実行における段を示しているフローチャートである。 図1のデータベースで動作するアルゴリズムを問い合わせることの実行における段を示しているフローチャートである。 セットフォー関数を実行するためのアルゴリズムのフローチャートが示されている。 選択関数を実現するアルゴリズムの実行を示しているフローチャートが示されている。 各々のグループが特定されたフィールド種類がそのフィールドの全ての可能なデータ値の一つを有する全てのレコードで構成されている、一組のグループにデータベースの全てのレコードを区分するアルゴリズムを示しているフローチャートが示されている。 分類関数の実行を示すフローチャートが示されている。
本発明をより完全に理解するために、その実施形態を、添付した図面を参照して、ほんの例として以下に説明する。
(発明を実施するための最良の形態)
図1を参照すると、自動車保険会社によって維持されるデータベースに入力されうる例示データを備えているテーブル10が示されている。テーブルは、保険が掛けられた車両の詳細を特定する3つのレコードを備えている。各レコードは、4つのフィールド、具体的には、車両のメーカーに対応しているデータ値を記憶するためのメーカー・フィールド、車両の製造年度に対応しているデータ値を記憶するための年度フィールド、車両の使用に対応しているデータ値を記憶するための使用フィールド、及び車両の保険の掛け金に対応しているデータ値を記憶するための掛け金フィールドを備えている。各レコードは、そのレコードを固有に識別するレコード・インデックスを有する。レコードのレコード・インデックスをテーブル10の左側の最初の欄に示す。
ここで図2を参照すると、図1のテーブル10に示した3つのレコードからのデータは、各々が図1のテーブル10におけるレコードを表す2分木22、24、26の森20として構成されて示されている。森20は、レコードが、データベースが保持されるコンピュータのメモリ内にどのように記憶されるかを図式的に示す。2分木は、メモリ内の特定のレコードの表現でありかつ一つの根ノード、中間ノード及び葉ノードを備えている。例えば、2分木22は、根ノード30、中間ノード32、33及び葉ノード34、35、36、37を備えている。34、35、36、37のような葉ノードは、特定のメモリ・アドレスにおけるテーブル10の個々のレコードのフィールドからのデータのシングル・インスタンスを記憶する。32のような中間ノードは、メモリ・アドレスにおける二つの葉ノードのメモリ・アドレスを記憶し、かつ30のような根ノードは、メモリ・アドレスにおける二つの中間ノードのアドレスを記憶する。また、各根ノードは、それから導出されるレコードのレコード・インデックスも記憶する。2分木の森20は、以下のように図1のテーブル10に示されたレコードの個々のフィールド内のデータから生成される。(インデックス番号0を有している)第1のレコードのフィールドからのデータは、一連の4つの葉ノード34、35、36、37としてメモリに表される。即ち、“フォード”TM、“フリート”、及び“£400”に対応しているデータは、個別のメモリ・アドレスにおけるメモリ内に記憶される。中間ノード32は、データ“フォード”TM及び“1994”をそれぞれ表す、葉ノード34、35のアドレスを記憶する。同様に、中間ノード33は、データ“フリート”及び“£400”をそれぞれ表す葉ノード36、37のアドレスを記憶する。根ノード30は、二つの中間ノード32及び33のアドレスを記憶する。所与の根ノードに対応しているレコードのレコード・インデックスは、その根ノードのアドレスから導出されうる。
図1のテーブル10における(インデックス番号1を有する)第2のレコードのフィールドからのデータは、次いで森20に入力される。葉ノードとして先に記憶されていない第2のレコードの各フィールドからのデータは、新しい葉ノードとして森20に記憶される。従って、新しい葉ノード38、39、40は、“1996”、“プライベート”及び“£300”に対応しているデータ要素を記憶するために生成される。中間ノード41は、葉ノード34及び38のメモリ・アドレスを記憶するために生成される。データ“フォード”TMを記憶している新しい葉ノードは、そのような葉ノードが森20への第1のレコードの入力中に既に生成されているときには、生成されない。中間ノード42は、葉ノード39及び40のメモリ・アドレスを記憶するために生成される。根ノード45は、中間にノード41、42のアドレスを記憶するために生成される。
(インデックス番号2を有する)図1のテーブル10の第3のレコードは、次いで森20に入力される。一つの葉ノード43は、メモリで生成されかつデータ“アウディ”TMを記憶する。データ“1996”、“フリート”及び“£400”を記憶している葉ノードが既に生成されているのでその他の新しい葉ノードは生成されない。葉ノード43及び38のアドレスを含んで新しい中間ノード44が生成される。中間ノード44及び33のアドレスを含む新しい根ノード46が生成される。それゆえに、図1のテーブル10の第3のレコードからのデータが森20に追加されるときには、たった一つだけの新しい葉ノード43と一つの新しい中間ノード44が生成される。
更なるレコードからのデータは、森20に追加されうる。新しいレコードが森20に入力される毎に新しい根ノードが生成される。特定のメーカー/年度ペアが森20へのデータの入力中に先に発生した場合には、中間ノードは、そのペアに関して既に存在しかつ新しい根ノードは、その中間ノードのアドレスを含む。同様に、特定のフラグ/掛け金ペアが森20に先に入力された場合には、中間ノードは、そのペアに関して既に存在しかつ新しい根ノードがその中間ノードのアドレスを含む。メーカー及び年度の少なくとも一つが固有な場合、及び/またはフラグ及び掛け金の一つが固有な場合には新しい中間ノードが生成される。新しい葉ノードは、レコードのフィールドからのデータが森20に先に入力されていないときにだけ、生成される。レコードが森20に先に入力されたレコードのものと同じフィールドを有する場合には、新しい根ノードは、重複レコードの存在を示すために構造に追加される。そのような場合には、新しい根ノードは、既に存在する二つの中間ノードのアドレスを含む。
森20に入力されたレコードの合計数が増加すると、記憶されたデータの量が成長する速度は、それが最小成長速度に収束するまで減少する。これが発生するときは、森に記憶されたデータの量は、データベースのレコードの数と根ノードを記憶するために必要なメモリの量とを掛け算したものである。森20は、冗長データを記憶しないことによって入力データの圧縮を供給する。
2分木の各ノードは、それが属する2分木におけるノードの位置を特定するノード位置アドレスが割り当てられる。ノード位置アドレスは、形式(n,m)を有し、ここでnは、ノードが葉ノード、中間ノードまたは根ノードかどうかを示しているレベル・インデックスであり、かつmは、ノードのラテラル位置を示しているラテラル位置インデックスである。図3をここで参照すると、図2の2分木22が単独で示されている。データ“フォード”、“1994”、“フリート”及び“£400”をそれぞれ記憶している葉ノード34、35、36、37は、ノード位置アドレス(0,0)、(0,1)、(0,2)及び(0,3)をそれぞれ有する。中間ノード32、33は、ノード位置アドレス(1,0)、(1,1)をそれぞれ有しかつ根ノード30は、ノード位置アドレス(2,0)を有する。
図4から図7は、データベースが問い合わせされるときに図2の森20が実現されるようにメモリ内にデータがどのように記憶されるかを示す。図4は、根ノードに対応しているデータを記憶するメモリ・ブロック47の一部を示す。図5は、 根ノードの左側にある中間ノードに対応しているデータを記憶するメモリ・ブロック48Aの一部を示しかつ図6は、根ノードの右側にある中間ノードに対応しているデータを記憶するメモリ・ブロック48Bの一部を示す。図7は、葉ノードに対応しているデータを記憶するメモリ・ブロック49の一部を示す。
図4を参照すると、アドレス位置100420、100424は、図2に示した森20の2分木22の根ノード30に対応する。アドレス位置100428、100432は、2分木24の根ノード45に対応しかつアドレス位置100436、100440は、2分木26の根ノード46に対応する。
どのように2分木に対応しているデータがメモリ内に記憶されるかの例として、図2の2分木24を考える。2分木24の根ノード45は、その一部分が図4に示される、メモリ・ブロック47のアドレス位置100428及び100432によって表される。アドレス位置100428は、値144212を記憶し、かつアドレス位置100432は、値156968を記憶する。値144212は、その一部分が図5に示される、メモリ・ブロック48A内の一対のアドレス位置144212及び144216をポイントし、かつ値156968は、その一部分が図6に示される、メモリ・ブロック48B内の一対のアドレス位置156968及び156972をポイントする。値144212及び156968が、それぞれアドレス位置144212及び156968に加えて、アドレス位置144216及び156972をそれぞれポイントすることは、以下に詳述するデータベースに問い合わせるために用いるアルゴリズムを問い合わせすることによって実現される。
図5を参照すると、メモリ・ブロック48A内のアドレス位置144212、144216は、2分木24の中間ノード41、即ち、根ノード45の左側にある中間ノードに対応している。図6を参照すると、メモリ・ブロック48B内のアドレス位置156968、156972は、2分木24の中間ノード42、即ち、根ノード45の右側にある中間ノードに対応している。
メモリ・ブロック48A内のアドレス位置144212、144216は、値242552及び242572をそれぞれ記憶する。これらの値は、葉ノード43及び38に対応しているデータをそれぞれ記憶する図7のメモリ・ブロック49内のアドレス位置の第1の連続のペアである。同様に、メモリ・ブロック48B内のアドレス位置156968、156972は、値242584及び242596をそれぞれ記憶し、これらの値は、葉ノード39及40に対応しているデータをそれぞれ記憶する図7のメモリ・ブロック49内のアドレス位置の第1の連続のペアである。メモリ・ブロック48A、48Bのいずれかの特定のアドレス位置に記憶される値が図7のメモリ・ブロック49の二つの連続のアドレス位置をポイントするということは、以下に詳述するデータベースを問い合わせるために用いられるアルゴリズムに問い合わせをすることによって実現される。
本発明の本実施形態は、データベースのコンテンツに問い合わせされることができるようにする効用関数を更に備えている。“経路”関数と呼ばれる、一つのそのような効用関数は、経路と呼ばれるデータ構造を戻す。経路は、2分木をその根ノードから2分木の特定の葉ノードまでナビゲートさせる。経路は、各々が根ノードから開始して特定の葉ノードに到達するために特定の中間ノードにおいて左または右フォークが取られるべきであることを特定する、一組の命令である。再び図3を参照すると、根ノード30からの葉ノード36への経路は、(右、左)である。ここで図8を参照すると、所与の葉ノードへの経路を求めるためのアルゴリズムが示されている。アルゴリズムは、以下のように動作する。空の経路、即ち、命令をまったく含んでいない経路が生成される(50)。次いで、現在考慮中のノードが根ノードを表すレベル・インデックスを有するかどうかが設定される(51)。現在考慮中のノードが根ノードである場合には、アルゴリズムを終了し、根ノードでない場合には、ノードのラテラル・インデックスが確かめられる(52)。ラテラル・インデックスが奇数である場合には、命令“右”が経路の最後の命令として入力される(55)。ラテラル・インデックスが偶数である場合には、命令“左”が経路の最後の命令として入力される(53)。次いで、ちょうど考慮したノードのアドレスを記憶するノードのノード位置アドレスは、同様な方法で経路の最後から2番目の命令を設定するために用いられる。処理は、根ノードに到達するまで続ける(56)。
ここで図9を参照すると、どのようにその葉ノードへの経路を用いて2分木が木の根ノードから葉ノードまでナビゲートされるかを示しているフロー図が示されている。アドレス変数は、根ノードのアドレスに設定される(60)。次いで、葉ノードの経路が空であるかどうか確かめられる(61)。経路が空である場合には、アドレス変数は、葉ノードのものと同じであり(62)かつアルゴリズムが終了する(67)。経路が空ではない場合には、経路における第1の命令が“左”であるか否かが設定される(63)。第1の命令が左である場合には、アドレス変数は、レベルl−1のノードのアドレスに設定される。ここでlは、根ノードのレベルであり、かつ根ノードの左側にある(64)。経路の第1の命令が“右”である場合には、アドレス変数は、レベルl−1にあるノードのアドレスに設定される。ここでlは、根ノードのレベルであり、かつ根ノードの右側にある(66)。次いで、経路の第1の命令が削除され(65)かつ経路が空になるまでアルゴリズムが繰り返される。経路によって特定された葉ノードのアドレスは、次いでアドレス変数として記憶される。
本実施形態の別の効用関数は、“セットフォー”である。セットフォー関数は、フィールドの一組の全ての可能な値及びそれらのフィールドがデータベースに現われる頻度を求めるために用いられる。例えば、図2に示した2分木の森20として記憶される図1のテーブル10を参照すると、どのくらいの数の自動車がフォードTMによって製造されかつどのくらいの数がアウディTMによって製造されたかを決定することを必要としうる。ここで図10を参照すると、セットフォー関数を実行するためのアルゴリズムのフローチャートが示されている。レコード・インデックス変数は、森における第1の木を特定するためにゼロに設定されかつ要求された種類のデータを記憶する葉ノードを識別している経路が特定される(70)。例えば、図2に示す森20では、メーカー・データを記憶している葉ノードは、各々ノード位置アドレス(0,0)及び経路(左、左)を有する。経路及びレコード・インデックス変数によって特定された葉ノードに記憶されたデータ値が読み出される(71)。データ値は、1のカウントでデータ値のリストに追加される(76)。更なるレコードが森に存在しない場合には(74)、アルゴリズムが終了し(75)さもなければレコード・インデックス値が1つだけ進められ(77)かつ進められたレコード・インデックス変数及び特定された経路に対応している葉ノードが読み出される。データ値がリストに先に入力されている場合には、リスト内のそのデータ値に対するカウントは、1つだけ進められるか(73)、さもなければデータ値は、1のカウントでリストに追加される(76)。レコード・インデックス変数が現在のレコードが森における最後であるということを示す場合には、アルゴリズムは、終了し(75)、さもなければレコード・インデックス変数は、1だけ進められかつ別の葉ノードが読み出される。図6に示したアルゴリズムの完了の後、リストは、どのくらいの数のレコードが各データ値を含むかのカウントと一緒に経路によって特定された種類の全てのデータ値を含む。一度問い合わせがなされたならば、その結果は、更なる計算を節約するためにキャッシュされる。また、図10のアルゴリズムは、特定のフィールドに関連付けられた固有のデータ値の数を求めさせることができる。この数は、リストにおけるエントリの数に等しい。また、セットフォー関数は、数値データ値を記憶しているフィールドの合計を計算するために用いうる。例えば、図1及び図2に示したデータベースにおいて、データベースにおける掛け金の合計値を計算することが要求されうる。掛け金のリストは、上述したように生成されうるし、かつ合計掛け金は、一組の固有の掛け金及び各掛け金がデータベースで発生する頻度を用いて計算される。
また、本発明の本実施形態は、特定されたフィールド内の特定されたデータ値を有している全てのレコードを出力する、“選択”と呼ばれる関数を備えている。ここで図11を参照すると、選択関数を実現するアルゴリズムの実行を示しているフローチャートが示される。空リストは、根ノード・アドレスのリストを記憶するためのメモリでまず生成される(80)。特定の種類のデータに対応している経路及びその種類に対応している特定のデータ値が特定される(81)。次いで経路が森内の2分木に適用される(82)。経路によって特定されたその2分木の葉が特定されたデータ値を記憶する場合には(84)、その2分木の根ノード・アドレスは、リストに追加され、かつ森の次の木が同様な方法で問い合わせられる。森の全ての木が問い合わせされたときには、リストの全ての根ノード・アドレスに対応しているレコードが出力され(87)次いでアルゴリズムが終了する(88)。選択関数は、特定されたフィールドが特定された組のデータ値に属するデータ値を記憶するレコードを戻すために変更されうる。例えば、図1及び図2に示したデータベースにおいて、£200以上の保険の掛け金が存在する全てのレコードを見出すことが要求されうる。これを実現するために、二つ以上のデータ値が図11に示したアルゴリズムの81で特定されうる。
ちょうど説明したものよりも複雑なレコードの選択を行うことを必要としうる。例えば、図1及び2に示したデータベースの場合には、製造者フィールドがデータ値“フォード”TMを有しかつ年度フィールドが1995またはそれ以上のデータ値を記憶する全てのレコードを出力することを必要としうる。この機能性を達成するために、第1の経路は、第1のフィールドが第1のデータ値を有する一組のレコードを生成するために用いられる。
次いで、一組のレコードは、第2の経路が第2のフィールドが第2のデータ値を有するか、または一連の第2のデータ値のいずれか一つを有するレコードのサブセットを識別するために用いられるサブルーチンに入力される。それゆえに二つの基準を満たしているレコードが識別されうる。
ここで図12を参照すると、各々のグループが特定されたフィールド種類がそのフィールドの全ての可能なデータ値の一つを有する全てのレコードで構成されている、一組のグループにデータベースの全てのレコードを区分するアルゴリズムを示しているフローチャートが示されている。例えば、図1及び図2に示したデータベースは、二つの可能な製造者データ値、“フォード”TM及び“アウディ”TMに対応している二つのグループに区分されうる。区分フィールド、即ち、データベースが分解されるレコードの一つ以上のグループを画定する一組の可能なデータ値のフィールド種類が最初に選択され(90)、そして対応する経路が特定される。次いで一組の関数がそのフィールド種類に関して実行される(91)。区分の数は、セット・フォー関数によって生成されたリストにおけるエントリの数に等しい。最初が空のテーブルの対応する数は、メモリで生成される(92)。リストのエントリ・カウントがそのパーティションによって占められたメモリ空間の量を決定する。次いで、根ノードが読み出され(93)かつ特定された経路が対応している葉ノードに記憶されたデータ値を見出すために用いられる。次いでそのデータ値は、根ルートをパーティションの一つに割り当てるために用いられ、かつ対応しているレコードのフィールドは、パーティションのエントリに書き込まれる。残りの根ノード及びレコードは、データベースの全てのレコードが分析されるまで同様な方法で処理される。
また、本実施形態は、分類済みリストとしてデータベースの全てのレコードを出力する分類関数と呼ばれる問合せ関数も含む。分類済みリストは、選択フィールド種類が一定のデータ値を有する一連のレコードのグループを備えている。例えば、図1のテーブル10によって表されるデータベース及び図2の森20は、製造者フィールドがデータ値“フォード”TMを有する全てのレコードをまずリストし次いで製造者フィールドがデータ値“アウディ”TMを有する全てのレコードをリストするレコードのリストとして出力されうる。
ここで図13を参照すると、分類関数の実行を示すフローチャートが示されている。データベースのレコードを分類するためのフィールド種類が選択され(100)かつそのフィールド種類に関して存在する全ての可能なデータ値のメモリをリストに生成するために一組の関数が実行され(101)、かつ各々のそのようなデータ値に対して、選択フィールド種類を有しているレコードの数をそのデータ値に設定する。選択フィールドに対する一組の全ての可能なデータ値に対する所望の順序が特定される(102);これは、レコードのグループが分類関数によって生成された出力に現われる順序を決める。次いで、データベースのレコードを102で特定されたデータ値の所望の順序により順序付けされる(104)グループに区分するために区分関数が実行される(103)。次いで、順序付けされた、または分類されたレコードは、出力され(105)かつアルゴリズムが終了する(106)。
通常のデータベース・システムでは、nのレコードを分類するために要する時間は、nlog2nに比例する。しかしながら、図13に示したフローチャートによって示された分類関数を用いることにより、データベースを分類するために必要な時間は、mlog2m+2nに比例し、ここにnは、レコードの数でありかつmは、選択フィールドに対する可能なデータ値の合計数である。ほとんどのデータにおいてmは、nと比較して小さく、本発明によりデータベースを分類するために必要な時間は、通常のデータベースの場合における線形以上と比較して、nがmよりも遥かに大きいときにレコードの数により線形的に大きくなるだけである。
上記説明は、各々が4つのフィールドを有する、3つのレコードを備えている非常に簡単なデータベースに関する。しかしながら本発明の問い合わせ方法は、2分木のより複雑な森の形式で記憶されたデータに適用されうる。例えば、森の所与の2分木は、各々が葉ノードのアドレス以外の一つ以上の中間ノードのアドレスを記憶する中間ノードを備えうる。
本発明の実施形態は、C及びJavaTM(登録商標)のような一般に用いられる言語の汎用コンピュータで実行されるコンピュータ・プログラムによって実現されうる。
図8から図13に示した探索関数は、プログラム・コードを書き込むことを必要とせずに視覚的表示装置に図式的に問い合わせをユーザに構築させるグラフィカル・ユーザ・インタフェース(GUI)を含んでいる手段によって実現されうる。これは、コンピュータの技術分野で“ビジュアル・プログラミング”と称される:ユーザは、必要なプログラミング関数を形成するためにGUI上の図形要素(アイコン)を操作しかつ連結することによってコンピュータ・プログラムを画定する。例えば、図1及び図2に示したデータベースで選択関数を実行するときには、ユーザは、例えば掛け金が£300よりも大きいレコードのサブセットを選択するためにGUIによって供給されたメニューによりフィールド種類(例えば、‘掛け金’)、オペレータ(例えば、“≧”)及びデータ値(例えば、“£300”)を特定しうる。次いで、そのフィールド種類、オペレータ及びデータ値に対応しているレコードのサブセットは、GUIによって表示されうる。また、サブセットの更なる処理は、サブセットのデータで動作する関数に対応する図形要素を用いることにより実行されうる。例えば、サブセットにおける掛け金の値を合計しかつサブセットに対する平均掛け金を計算することを必要としうる。そのような計算は、合計化及び平均化関数に対応する視覚表示装置の図形要素を操作し、そのような関数を実行するためにプログラム・コードを書き込むことの必要性を回避することによって行われる。

Claims (10)

  1. 各レコードが2分木として複数のノード構造を備えている;複数のレコードを備えているデータ構造を問い合わせる方法であって、
    (a)ノードが属する2分木内の葉ノードの位置アドレスを求める段階;
    (b)前記葉ノードのラテラル位置インデックスを設定する段階;及び
    (c)前記ノードのラテラル位置インデックスに依存する命令を命令セットに入力する段階、
    によって前記2分木の葉ノードに記憶されたデータ値にアクセスするための命令セットを生成する動作を備えていることを特徴とする方法。
  2. 命令セット及び2分木の根ノード位置アドレスを用いて2分木の葉ノードに記憶されたデータ値を検索する段階を更に具備することを特徴とする請求項1に記載の方法。
  3. (a)2分木を特定する段階;
    (b)命令セットを特定する段階;
    (c)前記命令セットに対応しているノード位置アドレスの前記2分木内に記憶されたデータ値を読み出す段階;
    (d)それが2分木内で先に見出されていない場合には1のカウントだけメモリのリストに前記データ値を追加するかまたは該データ値が2分木内で先に見出されている場合には1だけそのデータ値に関連付けられたリストのカウント変数を代りに進める段階;及び (e)前記データ構造の残りの2分木に対して段階(a)〜段階(d)を繰り返す段階、
    を更に具備することを特徴とする請求項2に記載の方法。
  4. (a)前記リストの各データに対してメモリにテーブルを生成する段階;
    (b)2分木の、前記特定した命令セットに対応しているデータ値を読出す段階;
    (c)前記特定した命令セットに対応している前記データ値によりテーブルに2分木の根ノード・アドレスを割り当てる段階;
    (d)前記データ構造の残りの2分木に対して段階(b)及び段階(c)を繰り返す段階、
    を更に具備することを特徴とする請求項3に記載の方法。
  5. (a)前記リストの前記データ値に対する順序を特定する段階;及び
    (b)前記データ値の前記順序に対応している順序に前記テーブルを配列する段階、
    を更に具備することを特徴とする請求項4に記載の方法。
  6. (a)データ値を特定する段階;
    (b)前記命令セットに対応している2分木内の前記データ値を求める段階;
    (c)前記段階(b)で求めた前記データ値が前記特定したデータ値に等しいかどうかを設定し、かつ前記データ値が前記特定したデータ値に等しいならばメモリのリストに前記2分木に対応しているレコードを追加する段階;
    (d)残りの2分木に対して段階(a)〜段階(c)を繰り返す段階、
    を更に具備することを特徴とする請求項2に記載の方法。
  7. 前記方法の前記段階は、グラフィカル・ユーザ・インタフェースの図形要素をアレンジすることによって実現されることを特徴とする請求項1から請求項6のいずれか一項に記載の方法。
  8. 請求項1から請求項7に記載の前記方法の一つ以上を実行するためのコンピュータ・プログラム。
  9. 請求項1から請求項7に記載の前記方法の一つ以上を実行するためのプログラムを記憶するコンピュータ・プログラム製品。
  10. 請求項1から請求項7に記載の前記方法の一つ以上を実行するように構成されたコンピュータ・システム。
JP2013086596A 2001-01-06 2013-04-17 圧縮データの構造を問い合わせる方法 Abandoned JP2013149277A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0100331.8 2001-01-06
GBGB0100331.8A GB0100331D0 (en) 2001-01-06 2001-01-06 Method of querying a structure of compressed data

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009183230A Division JP5342958B2 (ja) 2001-01-06 2009-08-06 圧縮データの構造を問い合わせる方法

Publications (1)

Publication Number Publication Date
JP2013149277A true JP2013149277A (ja) 2013-08-01

Family

ID=9906348

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2002563373A Pending JP2004519039A (ja) 2001-01-06 2001-12-18 圧縮データの構造を問い合わせる方法
JP2009183230A Expired - Lifetime JP5342958B2 (ja) 2001-01-06 2009-08-06 圧縮データの構造を問い合わせる方法
JP2013086596A Abandoned JP2013149277A (ja) 2001-01-06 2013-04-17 圧縮データの構造を問い合わせる方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2002563373A Pending JP2004519039A (ja) 2001-01-06 2001-12-18 圧縮データの構造を問い合わせる方法
JP2009183230A Expired - Lifetime JP5342958B2 (ja) 2001-01-06 2009-08-06 圧縮データの構造を問い合わせる方法

Country Status (7)

Country Link
US (1) US7194456B2 (ja)
EP (1) EP1352339B1 (ja)
JP (3) JP2004519039A (ja)
AT (1) ATE323907T1 (ja)
DE (1) DE60118973T2 (ja)
GB (1) GB0100331D0 (ja)
WO (1) WO2002063498A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961733B2 (en) * 2003-03-10 2005-11-01 Unisys Corporation System and method for storing and accessing data in an interlocking trees datastore
EP1606723A4 (en) * 2003-03-10 2006-12-20 Unisys Corp SYSTEM AND METHOD FOR STORING AND ACCESSING DATA IN A MEMORY OF DATA COMPRISING INTERLOCKING TREES
US20060106832A1 (en) 2004-10-04 2006-05-18 Ben-Dyke Andy D Method and system for implementing an enhanced database
US7213041B2 (en) 2004-10-05 2007-05-01 Unisys Corporation Saving and restoring an interlocking trees datastore
US7716241B1 (en) 2004-10-27 2010-05-11 Unisys Corporation Storing the repository origin of data inputs within a knowledge store
US7908240B1 (en) 2004-10-28 2011-03-15 Unisys Corporation Facilitated use of column and field data for field record universe in a knowledge store
US7676477B1 (en) 2005-10-24 2010-03-09 Unisys Corporation Utilities for deriving values and information from within an interlocking trees data store
US9183106B2 (en) * 2006-01-13 2015-11-10 Dell Products L.P. System and method for the automated generation of events within a server environment
US7734571B2 (en) 2006-03-20 2010-06-08 Unisys Corporation Method for processing sensor data within a particle stream by a KStore
US7689571B1 (en) 2006-03-24 2010-03-30 Unisys Corporation Optimizing the size of an interlocking tree datastore structure for KStore
US8271452B2 (en) * 2006-06-12 2012-09-18 Rainstor Limited Method, system, and database archive for enhancing database archiving
US7987161B2 (en) * 2007-08-23 2011-07-26 Thomson Reuters (Markets) Llc System and method for data compression using compression hardware
US8312050B2 (en) * 2008-01-16 2012-11-13 International Business Machines Corporation Avoiding database related joins with specialized index structures
US20110029478A1 (en) * 2009-05-20 2011-02-03 Broeker Stephen A Stream Star Schema and Nested Binary Tree for Data Stream Analysis
US8078642B1 (en) * 2009-07-24 2011-12-13 Yahoo! Inc. Concurrent traversal of multiple binary trees
US9002859B1 (en) 2010-12-17 2015-04-07 Moonshadow Mobile, Inc. Systems and methods for high-speed searching and filtering of large datasets
CA2823839A1 (en) * 2011-01-10 2012-07-19 Roy W. Ward Systems and methods for high-speed searching and filtering of large datasets
US9171054B1 (en) 2012-01-04 2015-10-27 Moonshadow Mobile, Inc. Systems and methods for high-speed searching and filtering of large datasets
US8990204B1 (en) 2012-01-17 2015-03-24 Roy W. Ward Processing and storage of spatial data
GB2500863A (en) 2012-01-20 2013-10-09 Data Re Ltd A method of indexing a database
GB2498556A (en) 2012-01-20 2013-07-24 Data Re Ltd A method of querying a data structure
US8805811B2 (en) 2012-04-30 2014-08-12 Hewlett-Packard Development Company, L.P. Executing user-defined function on a plurality of database tuples
CN103902591B (zh) * 2012-12-27 2019-04-23 中国科学院深圳先进技术研究院 构建决策树分类器的方法及装置
US10521411B2 (en) 2016-08-10 2019-12-31 Moonshadow Mobile, Inc. Systems, methods, and data structures for high-speed searching or filtering of large datasets

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US527365A (en) * 1894-10-09 Bandage-machine
EP0079465A3 (en) * 1981-11-13 1985-01-23 International Business Machines Corporation Method for storing and accessing a relational data base
JPS60247732A (ja) * 1984-05-23 1985-12-07 Nec Corp デ−タ記憶装置
JPS63298626A (ja) * 1987-05-29 1988-12-06 Matsushita Electric Ind Co Ltd デ−タベ−ス管理方法
US5592667A (en) * 1991-05-29 1997-01-07 Triada, Ltd. Method of storing compressed data for accelerated interrogation
US5245337A (en) * 1991-05-29 1993-09-14 Triada, Ltd. Data compression with pipeline processors having separate memories
EP0737383A1 (en) 1993-12-20 1996-10-16 Rodney John Smith Data compression system
US5546575A (en) * 1994-05-23 1996-08-13 Basil E. Potter & Associates, Inc. Encoding method for compressing a tabular database by selecting effective compression routines for each field and structure of partitions of equal sized records
US6006232A (en) * 1997-10-21 1999-12-21 At&T Corp. System and method for multirecord compression in a relational database
DE19810843B4 (de) * 1998-03-12 2004-11-25 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Zugriffseinrichtung zum Bestimmen der Speicheradresse eines Datenwerts in einer Speichereinrichtung
CA2340008C (en) * 1998-08-11 2008-09-23 Shinji Furusho Method and apparatus for retrieving, accumulating, and sorting table-formatted data
US6559871B1 (en) * 1999-09-29 2003-05-06 International Business Machines Corporation Asynchronous tree navigator graphical user interface and associated methods

Also Published As

Publication number Publication date
DE60118973T2 (de) 2006-12-14
US7194456B2 (en) 2007-03-20
JP2009259284A (ja) 2009-11-05
EP1352339B1 (en) 2006-04-19
WO2002063498A1 (en) 2002-08-15
JP5342958B2 (ja) 2013-11-13
EP1352339A1 (en) 2003-10-15
US20040107184A1 (en) 2004-06-03
ATE323907T1 (de) 2006-05-15
DE60118973D1 (de) 2006-05-24
GB0100331D0 (en) 2001-02-14
JP2004519039A (ja) 2004-06-24

Similar Documents

Publication Publication Date Title
JP5342958B2 (ja) 圧縮データの構造を問い合わせる方法
US6662189B2 (en) Method of performing data mining tasks for generating decision tree and apparatus therefor
US7058621B1 (en) Method for extracting information from a database
US8219564B1 (en) Two-dimensional indexes for quick multiple attribute search in a catalog system
US10698916B1 (en) Data preparation context navigation
US20040133581A1 (en) Database management system, data structure generating method for database management system, and storage medium therefor
US8326869B2 (en) Analysis of object structures such as benefits and provider contracts
CN104199816B (zh) 单独可访问数据单元的管理存储
EP1211610A1 (en) Methods of organising data and processing queries in a database system
US20020093522A1 (en) Methods of encoding and combining integer lists in a computer system, and computer software product for implementing such methods
JP2009543224A (ja) 可変圧縮による適応索引
EP2663939A2 (en) Systems and methods for high-speed searching and filtering of large datasets
KR20090048624A (ko) 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체
EP3289484A1 (en) Method and database computer system for performing a database query using a bitmap index
JP2001043290A (ja) 表形式データの提示方法、挿入方法、削除方法、更新方法およびこれら方法を利用したトランザクション処理方法、並列処理方法、並びに、上記方法を実現するプログラムを記憶した記憶媒体
JP2008269643A (ja) データベース・システムでデータを編成し、問合せを処理する方法、およびそのような方法を実施するためのデータベース・システムおよびソフトウェア製品
CN111666302A (zh) 用户排名的查询方法、装置、设备及存储介质
CN104537016B (zh) 一种确定文件所在分区的方法及装置
JPH11327879A (ja) 変数検索装置及び方法並びに変数検索プログラムを記録したコンピュータ読取り可能な記録媒体
CN111309704B (zh) 数据库操作方法和数据库操作系统
CN114185934A (zh) 一种基于天盾数据库列存储的索引及查询方法及系统
KR20220099745A (ko) 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치
Abel et al. Caching strategies for spatial joins
US7996366B1 (en) Method and system for identifying stale directories
CN110825747A (zh) 一种信息存取方法、装置和介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130517

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20130819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130930