Nothing Special   »   [go: up one dir, main page]

JP2010027058A - コンピュータによって実現される方法、コンピュータ読取可能媒体およびデータベースから情報を抽出するための装置 - Google Patents

コンピュータによって実現される方法、コンピュータ読取可能媒体およびデータベースから情報を抽出するための装置 Download PDF

Info

Publication number
JP2010027058A
JP2010027058A JP2009168570A JP2009168570A JP2010027058A JP 2010027058 A JP2010027058 A JP 2010027058A JP 2009168570 A JP2009168570 A JP 2009168570A JP 2009168570 A JP2009168570 A JP 2009168570A JP 2010027058 A JP2010027058 A JP 2010027058A
Authority
JP
Japan
Prior art keywords
result
identifier value
selection
data structure
function
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.)
Granted
Application number
JP2009168570A
Other languages
English (en)
Other versions
JP5288129B2 (ja
Inventor
Haakan Wolge
ハカン・ウォルゲ
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.)
Qliktech International AB
Original Assignee
Qliktech International AB
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
Priority claimed from SE0801708A external-priority patent/SE0801708L/xx
Application filed by Qliktech International AB filed Critical Qliktech International AB
Publication of JP2010027058A publication Critical patent/JP2010027058A/ja
Application granted granted Critical
Publication of JP5288129B2 publication Critical patent/JP5288129B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • 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
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】連続した一連の主計算を伴った、データベースから情報を抽出する処理を高速化する。
【解決手段】第1の主計算は、データベースを表わすデータセットに関して第1の選択アイテムを演算して第1の結果を生成し、第2の主計算は、第1の結果に関して第2の選択アイテムを演算して第2の結果を生成する。第1および第2の結果は、コンピュータメモリにおいてキャッシュする。キャッシュするステップは、少なくとも第1の選択アイテムの関数として第1の選択識別子値と、少なくとも第2の選択アイテムおよび第1の結果の関数として第2の選択識別子値とを計算するステップと、第1の選択識別子値および第1の結果ならびに第2の選択識別子値および第2の結果をそれぞれ関連するオブジェクトとしてデータ構造に格納するステップとを含む。識別子値の各々はハッシュ関数によって統計的に固有のデジタル指紋として生成される。
【選択図】図2

Description

関連出願との相互参照
本願は、2008年7月18日付提出のスウェーデン特許出願番号第0801708−9号および2008年7月18日付提出の米国仮出願番号第61/081,761号の権利を主張し、そのすべてをここに引用によって援用する。
技術分野
本発明は、データベースから情報を抽出するための技術に関し、特にデータベースを表わすデータセットに関して第1の選択アイテムを演算して第1の結果を生成する第1の主計算と、第1の結果に関して第2の選択アイテムを演算して第2の結果を生成する第2の主計算とを含む連続した一連の主計算を伴う技術に関する。
背景技術
データベースから特定の情報を抽出すること、具体的には、データベース中の大量のデータを集約し、集約されたデータをユーザにわかりやすいやり方で提示することが望まれる場合がよくある。このようなデータ処理は通常はコンピュータによって実行され、有効なメモリ能力およびコンピュータの処理能力を必要とし得る。データ処理は、多次元キューブ(multidimensional cube)として一般に知られる大きなデータ構造を作成することを意図し得る。たとえば、選択されたデータをピボットテーブルでまたは図式的に二次元チャートおよび三次元チャートで視覚化することによって、ユーザは多次元キューブにアクセスし、データベース中のデータを探索することができる。このような多次元キューブを作成するための効率的なアルゴリズムの一例が米国特許番号第7058621号から公知であり、ここに引用によって援用する。
この先行技術のアルゴリズムは、データベース中のデータについて演算する他の多くのアルゴリズムのように連続した一連の主計算を伴い、1回の主計算の結果が次の主計算によって入力データとして使用される。たとえば、米国特許第7058621号においては、データベース中のデータ記録が一次メモリに読込まれ、ユーザは1つ以上の変数と、任意にそのような各変数の値または値の範囲とを選択し、それによってデータベース中のデータ記録の対応するサブセットをアルゴリズムに抽出させ得る。抽出されたサブセットは中間結果を構成する。多次元キューブは、抽出されたサブセットについて選択された数学的関数を評価することによって計算される。数学的関数の評価は、選択された1組の計算変数に基づいて行なわれ、キューブの寸法は、選択された1組の分類変数によって与えられる。
米国特許番号第7058621号
先行技術のアルゴリズムは効率的ではあるが、大量のデータを分析しなければならない場合は特に、多次元キューブを作成するのに多数の演算を実行する必要があり得る。このような状況では、アルゴリズムは望ましくない高い要件を処理ハードウェアに課し、および/または望ましくない長い計算時間を引き起こし得る。
概要
本発明の目的は、上に記載された先行技術の限定のうち1つ以上を少なくとも部分的に克服することである。
以下の記載から明らかとなるであろうこの目的および他の目的は、独立クレームに記載の方法、コンピュータ読取り可能媒体および装置によって少なくとも部分的に達成されるものであり、それら方法、コンピュータ読取り可能媒体および装置の実施例は、従属クレームによって規定されている。
この発明の第1の局面は、データベースから情報を抽出するための、コンピュータによって実現される方法である。当該方法は、データベースを表わすデータセットに関して第1の選択アイテムを演算して第1の結果を生成する第1の主計算と、第1の結果に関して第2の選択アイテムを演算して第2の結果を生成する第2の主計算とを含む連続した一連の主計算を含む。当該方法はさらに、少なくとも第1の選択アイテムの関数として第1の選択識別子値と、少なくとも第2の選択アイテムおよび第1の結果の関数として第2の選択識別子値とを計算し、第1の選択識別子値および第1の結果ならびに第2の選択識別子値および第2の結果をそれぞれ関連するオブジェクトとしてデータ構造に格納することにより、第1および第2の結果をキャッシュするステップを含む。
こうして、第1の局面に従った方法においては、第1および第2の結果は、コンピュータメモリにおいてキャッシュされ、当該方法の次の繰返しの際に再利用できるよう利用可能にされ、これにより、情報を抽出するために第1および/または第2の主計算を実行する必要性を低減させる。再利用する際には、後続の繰返しの間に第1および/または第2の選択識別子値を計算し、データ構造にアクセスして、場合によっては第1および/または第2の結果を検索するステップが含まれ得る。
一実施例においては、当該方法はさらに、第1の選択アイテムおよび第2の選択アイテムに基づき第2の結果を見出すために、データ構造を用いるステップを含み、当該用いるステップは、(a)第1の選択識別子値を少なくとも第1の選択アイテムの関数として計算するサブステップと、(b)第1の結果を位置付けるために、第1の選択識別子値に基づいてデータ構造のオブジェクトを探索するサブステップと、(c)サブステップ(b)において第1の結果が見出された場合、第1の結果および第2の選択アイテムの関数として第2の選択識別子値を計算し、第2の結果を位置付けるために、第2の選択識別子値に基づいてデータ構造のオブジェクトを探索するサブステップと、(d)サブステップ(b)において第1の結果が見出されない場合、第1の主計算を実行して第1の結果を生成し、第1の結果および第2の選択アイテムの関数として第2の選択識別子値を計算し、第2の結果を位置付けるために、第2の選択識別子値に基づいてデータ構造のオブジェクトを探索するサブステップと、(e)サブステップ(c)または(d)において第2の結果が見出されない場合、第2の主計算を実行して第2の結果を生成するサブステップとを含む。
一実施例においては、当該方法は、第1の結果識別子値を第1の結果の関数として計算するステップをさらに含み、格納するステップは、第1の選択識別子値および第1の結果識別子値を関連するオブジェクトとしてデータ構造に格納するステップと、第1の結果識別子値および第1の結果を関連するオブジェクトとしてデータ構造に格納するステップとをさらに含む。
一実施例においては、当該方法は、第1の選択アイテムおよび第2の選択アイテムに基
づき第2の結果を見出すために、データ構造を用いるステップをさらに含み、当該用いるステップは、(a)少なくとも第1の選択アイテムの関数として第1の選択識別子値を計算するサブステップと、(b)第1の結果識別子値を位置付けるために、第1の選択識別子値に基づいてデータ構造のオブジェクトを探索し、第1の結果を位置付けるために、第1の結果識別子値に基づいてデータ構造のオブジェクトを探索するサブステップと、(c)サブステップ(b)において第1の結果が見出された場合、第1の結果および第2の選択アイテムの関数として第2の選択識別子値を計算し、第2の結果を位置付けるために、第2の選択識別子値に基づきデータ構造のオブジェクトを探索するサブステップと、(d)サブステップ(b)において第1の結果識別子値または第1の結果が見出されない場合、第1の主計算を実行して第1の結果を生成し、第1の結果および第2の選択アイテムの関数として第2の選択識別子値を計算し、第2の結果を位置付けるために第2の選択識別子値に基づきデータ構造のオブジェクトを探索するサブステップと、(e)サブステップ(c)または(d)において第2の結果が見出されない場合、第2の主計算を実行して第2の結果を生成するサブステップとを含む。
一実施例においては、第1の結果は、第2の選択識別子値の計算において、第1の結果識別子値によって表わされる。
一実施例においては、当該方法は、第1の選択アイテムおよび第2の選択アイテムに基づき第2の結果を見出すために、データ構造を用いるステップをさらに含み、当該用いるステップは、(a)少なくとも第1の選択アイテムの関数として第1の選択識別子値を計算するサブステップと、(b)第1の結果識別子値を位置付けるために、第1の選択識別子値に基づきデータ構造のオブジェクトを探索するサブステップと、(c)サブステップ(b)において第1の結果識別子値が見出された場合、第1の結果識別子値および第2の選択アイテムの関数として第2の選択識別子値を計算し、第2の結果を位置付けるために、第2の選択識別子値に基づいてデータ構造のオブジェクトを探索するサブステップと、(d)サブステップ(b)において第1の結果識別子値が見出されない場合、第1の主計算を実行して第1の結果を生成し、第1の結果の関数として第1の結果識別子値を計算し、第1の結果識別子値および第2の選択アイテムの関数として第2の選択識別子値を計算し、第2の結果を位置付けるために、第2の選択識別子値に基づいてデータ構造のオブジェクトを探索するサブステップと、(e)サブステップ(c)において第2の結果が見出されない場合、第1の結果を位置付けるために、第1の結果識別子値に基づいてデータ構造のオブジェクトを探索し、第2の主計算を実行して第2の結果を生成するサブステップと、(f)サブステップ(e)において第1の結果が見出されない場合、第1の主計算を実行して第1の結果を生成し、第2の主計算を実行して第2の結果を生成するサブステップと、(g)サブステップ(d)において第2の結果が見出されない場合、第2の主計算を実行して第2の結果を生成するサブステップとを含む。
一実施例においては、当該方法は、第2の結果の関数として第2の結果識別子値を計算するステップをさらに含み、格納するステップは、第2の選択識別子値および第2の結果識別子値を関連するオブジェクトとしてデータ構造に格納するステップと、第2の結果識別子値および第2の結果を関連するオブジェクトとしてデータ構造に格納するステップとをさらに含む。
一実施例においては、識別子値の各々は統計的に固有である。
一実施例においては、識別子値の各々は、ハッシュ関数によって生成されるデジタル指紋である。たとえば、デジタル指紋は少なくとも256ビットを含み得る。
一実施例においては、当該方法はさらに、データ構造に関連するオブジェクトを含むデータ記録を、少なくともデータ記録のサイズに基づいて選択的に削除するステップを含む
。選択的に削除するステップは、当該第1の結果を含むデータ記録の削除を促進するよう構成され得る。このような一実施例においては、当該方法は、各々のデータ記録についての使用頻度パラメータ、各々のデータ記録についての計算時間パラメータ、および、各々のデータ記録についてのサイズパラメータの関数として計算される重み値と各々のデータ記録を関連付けるステップを含む。重み値は、W=U*T/Mによって与えられる重み関数を評価することによって計算され得る。Uは使用頻度パラメータであり、Tは計算時間パラメータであり、Mはサイズパラメータである。使用頻度パラメータの値は、データ記録がアクセスされるたびに増分され得る一方で、時間の関数として指数関数的に低減され得る。選択的に削除するステップは、データ構造におけるデータ記録の重み値に基づき得る。さらに、選択的に削除するステップは、データ構造の現在のサイズとしきい値との比較に基づいてトリガされ得る。
一実施例においては、データベースは動的データベースであり、第1の選択識別子値は、少なくとも第1の選択アイテムおよびデータセットの関数として計算される。
一実施例においては、第1の選択アイテムは、データセットにおける一組のフィールドと、各フィールドについての条件とを規定し、第1の結果はデータセットのサブセットを表わし、第2の選択アイテムは、数学的関数と、第1の結果に含まれる1つ以上の計算変数と、第1の結果に含まれる1つ以上の分類変数とを規定し、第2の結果は、各々の分類変数のすべての固有値についての当該1つ以上の計算変数に関して数学的関数を演算した結果を含む多次元キューブデータ構造である。
この発明の第2の局面は、コンピュータプログラムが格納されたコンピュータ読取可能媒体であって、当該コンピュータプログラムは、コンピュータによって実行されると、第1の局面に記載の方法を実行するよう適合される。
この発明の第3の局面は、データベースから情報を抽出するための装置であって、当該装置は、データベースを表わすデータセットに関して第1の選択アイテムを演算して第1の結果を生成する第1の主計算と、第1の結果に関して第2の選択アイテムを演算して第2の結果を生成する第2の主計算とを含む連続した一連の主計算を実行するための手段を含み、当該装置はさらに、少なくとも第1の選択アイテムの関数として第1の選択識別子値と、少なくとも第2の選択アイテムおよび第1の結果の関数として第2の選択識別子値とを計算し、第1の選択識別子値および第1の結果ならびに第2の選択識別子値および第2の結果をそれぞれ関連するオブジェクトとしてデータ構造に格納することにより、第1および第2の結果をキャッシュするための手段を含む。
第3の局面の装置は、第1の局面の方法の利点を共有し、第1の局面に関連付けて上述された実施例のうちのいずれかに対応するさらに他の特徴を含み得る。
この発明のさらに他の目的、特徴、局面および利点は、以下の詳細な説明、添付の特許請求の範囲および図面から明らかになるだろう。
本発明の実施形態を、添付の概略図を参照してより詳細に説明する。同じ参照符号は、対応する要素を識別するのに用いられる。
データベースから情報を抽出するための一連の計算を含むプロセスを示し、識別子および結果が選択的にコンピュータメモリに格納され、かつコンピュータメモリから取出される図である。 図1のプロセスの一実施形態を示す図である。 図1のプロセスの別の実施形態を示す図である。 図1のプロセスのさらに別の実施形態を示す図である。 図1のプロセスのさらに別の実施形態を示す図である。 図5のプロセスについての例示的なフローチャートである。 具体的な内容で実現化された図5のプロセスの全体図である。 本発明の実施形態を実現化するためのコンピュータベース環境のブロック図である。
例示的な実施形態の詳細な説明
本発明は、データベースから情報を抽出するための技術に関する。理解を容易にするため、いくつかの基本的な原理を一般化した例に関してまず説明する。その後、さまざまな局面、特徴および利点を具体的な実現例に関して説明する。
概論
図1は、データベースDBから情報を抽出するための、コンピュータによって実現化されるプロセスの一例を示す。データベースDBは、当該プロセスを実現化するコンピュータの外部に格納されていても、格納されていなくてもよい。抽出プロセスは、たとえば最初のデータセットR0をコンピュータの一次メモリ(たとえばRAM)に読込むことによって、データベースDBから最初のデータセットまたは範囲R0を抽出することを含む。最初のデータセットR0は、データベースDBの全内容またはそのサブセットを含み得る。
図1のプロセスは、最初のデータセットR0に基づいて最終結果R2を生成するように演算する連続した主計算手順P1およびP2を含む。具体的には、第1の手順P1は最初のデータセットR0に関して演算し、中間結果R1を生成する。第2の手順P2は中間結果に関して演算し、最終結果R2を生成する。
第1の手順P1は第1の選択アイテムS1によって制御される。第1の選択アイテムS1はユーザ入力に起因してもしなくてもよい。同様に、第2の手順P2は第2の選択アイテムS2によって制御される。第2の選択アイテムS2はユーザ入力に起因してもしなくてもよい。各選択アイテムS1およびS2は、それぞれの手順への入力データ、すなわちデータセットR0および中間結果R1それぞれの細分を定義する変数および/または数学的関数のどのような組合せであってもよい。
図1は、第1の手順P1および第2の手順P2がコンピュータメモリ10(典型的にはRAMまたはキャッシュメモリ)にデータアイテムを格納しかつコンピュータメモリ10からデータアイテムを取出すように動作することによって、抽出プロセスがコンピュータメモリ10と対話することも示す。図示の例において、第1の手順P1は、一般にIDと表記される識別子および中間結果R1を格納しかつ取出すように動作し、第2の手順P2は、一般にIDと表記される識別子、中間結果R1および最終結果R2を格納しかつ取出すように動作する。以下では、識別子および結果をコンピュータメモリ10に格納する手順を「キャッシュ」とも称する。
1つ以上の処理パラメータ、たとえば他の識別子および/または選択アイテムS1、S2および/または結果R1、R2の関数として、異なる識別子が手順P1およびP2によって典型的に生成される。異なる識別子を生成するには、異なる関数を使用してもしなくてもよい。識別子を生成するための関数は、関連するプロセスパラメータのデジタル指紋を生成するハッシングアルゴリズムであり得る。関数は、パラメータ値の各固有の組合せが、プロセスにおいてすべての異なる識別子について生成されるすべての識別子値の中で
固有な識別子値となるように適切に構成される。この場合、「固有の」とは理論的に固有の識別子値だけでなく、統計的に固有の識別子値も含む。限定はしないが、このような関数の一例は、少なくとも256ビットのデジタル指紋を生成するハッシングアルゴリズムである。
さらに図2に示す一実施形態においては、第1の手順P1は、第1の選択アイテムS1の関数すなわちID1=f(S1)として第1の選択識別子値ID1を計算するように構成される。第2の手順P2は、第2の選択アイテムS2および中間結果R1の関数すなわちID3=f(S2,R1)として第2の選択識別子値ID3を計算するように構成される。第1の手順P1は、ID1および中間結果R1を関連付けられたオブジェクトとしてコンピュータメモリのデータ構造12に格納するようにも構成される。第2の手順P2は、ID3およびR2を関連付けられたオブジェクトとしてデータ構造12に格納するように構成される。したがって、コンピュータメモリ10のデータ構造12は、異種のオブジェクトの組、すなわち異なる種類のオブジェクトを格納するように構成される。
本実施形態は、中間結果R1および最終結果R2をそれぞれ計算するための主計算手順P1およびP2を実行する必要性を低下させることによって、抽出プロセスの応答時間の短縮、および/または抽出プロセスを実現化するコンピュータの処理要件の低減を可能にする。たとえば、抽出プロセスは、可能な限りデータ構造12を使用して、第1の選択アイテムS1と第2の選択アイテムS2とに基づいて最終結果R2を求めるように構成され得る。したがってプロセスは、S1およびS2に基づいて最終結果R2を計算する必要性を認めるとID1=f(S1)を生成し、ID1に基づいてデータ構造12にアクセスし得る。同一の第1の選択アイテムS1が以前に第1の手順P1で使用されたことがあれば、生成されたID1の値がデータ構造12において発見され、対応する中間結果R1に関連付けられやすい。したがって、中間結果R1は、手順P1によって計算される代わりにデータ構造12から取出され得る。中間結果R1がデータ構造12において発見されなければ、プロセスは第1の手順P1に中間結果R1を計算させ得る。さらに、中間結果R1の取得後、プロセスはID3=f(R1,S2)を生成し、ID3に基づいてデータ構造12にアクセスし得る。同じ演算が手順P2によって以前に実行されたことがあれば、生成されたID3の値がデータ構造12において発見され、対応する最終結果R2に関連付けられやすい。これにより、最終結果R2は、手順P2によって計算される代わりにデータ構造12から取出され得る。
さらに図3に示す一実施形態において、第1の手順P1は、第1の結果識別子値ID2を中間結果R1の関数として計算するようにさらに構成される。第1の手順P1は、ID1およびID2を関連付けられたオブジェクトとしてデータ構造12に格納し、ID2および中間結果R1を関連付けられたオブジェクトとしてデータ構造12に格納するようにも構成される。
本実施形態によれば、2つ以上の第1の選択アイテムS1が同一の中間結果R1をもたらすとしても、各中間結果R1はデータ構造12に一度格納されるだけであるため、プロセスが必要とするコンピュータメモリのサイズを縮小することが可能となる。本実施形態は中間結果R1が大きい場合に特に関連し、これはデータベースからの情報を処理する場合によくあるケースである。
第1の結果識別子値ID2の計算によって、図4に示すさらに他の実施形態も可能となる。中間結果R1は、第2の選択識別子値ID3の計算すなわちID3=f(ID2,S2)において、第1の結果識別子値ID2によって表わされる。
本実施形態によれば、中間結果R1ではなく、ID2に基づいて生成されるID3に基
づいてデータ構造12から最終結果R2を取出すことができるため、中間結果R1をデータ構造12に格納する必要性が低下する。これにより、中間結果R1がデータ構造12からパージされていても、最終結果R2の効率的な計算が可能となる。たとえば、プロセスは、可能な限りデータ構造12を使用して、第1の選択アイテムS1および第2の選択アイテムS2に基づいて最終結果R2を発見するように構成され得る。したがってプロセスは、S1およびS2に基づいて最終結果R2を計算する必要性を認めるとID1=f(S1)を生成し、同一の第1の選択アイテムS1が以前に第1の手順P1で使用されたことがあれば、ID1に基づいてデータ構造12にアクセスして、それに関連付けられたID2を取出し得る。次にプロセスはID3=f(ID2,S2)を生成し、第2の手順P2が以前に同一の中間結果R1および同一の第2の選択アイテムS2に関して演算したことがあれば、ID3に基づいてデータ構造12にアクセスして、それに関連付けられた最終結果R2を取出し得る。したがってこの例では、中間結果R1が削除されていても、データ構造12から最終結果R2を取出すことができる。
図5に示す一実施形態においては、第1の手順P1は、第2の結果識別子値ID4を最終結果R2の関数として計算するようにさらに構成される。第2の手順P2は、ID3およびID4を関連付けられたオブジェクトとしてデータ構造12に格納し、ID4および最終結果R2を関連付けられたオブジェクトとしてデータ構造12に格納するようにも構成される。
本実施形態は、2つ以上の第2の選択アイテムS2が同一の最終結果R2をもたらすとしても各最終結果R2はデータ構造12に一度格納されるだけであるため、プロセスが必要とするコンピュータメモリのサイズを縮小することが可能となる。本実施形態は、最終結果R2が大きい場合に特に関連する。
これまで、データベースDBおよびしたがってデータセットR0を静的なものと見なしてきた。データベースが動的ならば、第1の選択識別子ID1を第1の選択アイテムS1およびデータセットR0の関数すなわちID1=f(S1,R0)として生成するのが適切な場合があり得る。このような変形例によれば、図1から図5に関して説明したすべての実施形態は、動的なデータベースすなわちいつでも変化し得るデータベースに等しく適用可能である。
図6は、動的なデータベースに関して機能するように適合化された図5の実施形態の例示的な一実現例を示すフローチャートである。プロセスは、データセットR0(ステップ600)の入力、第1の選択アイテムS1(ステップ602)の入力、および第2の選択アイテムS2(604)の入力によって開始する。次に、第1の選択識別子ID1の値がS1およびR0の関数として生成される(ステップ606)。ID1に基づいてデータ構造において参照が行なわれる(ステップ608)。ID1の値がデータ構造において発見されれば、すなわち前回キャッシュされていれば、プロセスはそれに関連付けられた第1の結果識別子ID2の値を取出し(ステップS610)、ステップ612に進む。
ステップ608でID1の値がデータ構造において発見されなければ、プロセスは、R0に関してS1を演算することによって第1の手順P1にR1を計算させる(ステップ614)。次に、ID2の値がR1の関数として生成され(ステップ616)、ID1、ID2およびR1の値が、関連付けられたID1:ID2およびID2:R1の対でデータ構造に格納される(ステップ618)。次にプロセスはステップ612に進む。
ステップ612において、第2の選択識別子ID3の値がS2およびID2の関数として生成される。次に、ID3に基づいてデータ構造において参照が行なわれる(ステップ620)。ID3の値がデータ構造において発見されれば、すなわち前回キャッシュされ
ていれば、プロセスはそれに関連付けられた第2の結果識別子ID4の値を取出す(ステップ622)。ID4に基づいてデータ構造においてさらに他の参照が行なわれる(ステップ624)。ID4の値がデータ構造において発見されれば、すなわち前回キャッシュされていれば、プロセスはそれに関連付けられた最終結果R2を取出す(ステップ626)。
ステップ620でID3の値がデータ構造において発見されなければ、ステップ610またはステップ616で決定されたID2の値に基づいてさらに他の照合がデータ構造において行なわれる(ステップ628)。ID2の値がデータ構造において発見されれば、すなわち前回キャッシュされていれば、プロセスはそれに関連付けられた第1の結果R1を取出す(ステップ630)。プロセスは次に、R1に関してS2を演算することによって、第2の手順P2にR2を計算させる(ステップ632)。データ構造を更新するために、プロセスはID4の値をR2の関数として生成し(ステップ634)、ID3、ID4およびR2の値を、関連付けられたID3:ID4およびID4:R2の対でデータ構造に格納する(ステップ636)。
ステップ628でID2の値がデータ構造において発見されなければ、プロセスはR0に関してS1を演算することによって、第1の手順P1にR1を計算させ(ステップ638)、ID2およびR1の値を、関連付けられたID2:R1の対でデータ構造に格納する(ステップ640)。次にプロセスはステップ632に進む。しかし、中間結果R1が既にステップ614で計算された場合は、ステップ628、630、638および640を実行することは不要であると認識すべきである。このような場合、ステップ620でID3が発見されなければプロセスは直接ステップ632に進み、R1に関してS2を演算することによって、第2の手順P2にR2を計算させる。
ステップ622でID4の値がデータ構造において発見されなければ、プロセスはR1に関してS2を演算することによって、第2の手順P2にR2を計算させる(ステップ642)。データ構造を更新するためには、プロセスはID4の値をR2の関数として生成し(ステップ644)、ID4およびR2の値を関連付けられたID4:R2の対でデータ構造に格納する(ステップ646)。
異なる組合せの識別子を使用していても、図2から図4の実施形態が対応する格納および取出しプロセスをもたらすことを当業者は容易に理解する。表示を簡潔にするため、これらのプロセスはフローチャートには図示せず、上記の概要部分において単に例示的な実施形態として示す。
識別子および結果を格納するために、線形または非線形のいずれのデータ構造12を使用してもよいと理解される。しかし、処理速度の理由から、たとえばソートされたリストなどの効率的な索引システム、ハッシュテーブル、または、たとえば、AVLツリーなどの二値ツリーとともにデータ構造12を使用することが好ましい場合がある。
特定の実施形態、実現例および実施例
以下において、本発明の実施形態をさらに詳細に説明し例示する。
本発明の実施形態では、新たなデータおよび新たな計算に関する連続したリクエストの処理において、前回の計算および結果が使用される。このため、抽出プロセスは、データリクエストの処理中に結果をキャッシュするように設計される。次のリクエストが処理される際、抽出プロセスは、適切な前回の結果が既に生成されかつキャッシュされているかどうかを判断する。そうであれば、前回の結果が次のリクエストの処理に使用される。前回の計算を再度生成する必要がないため、次のリクエストの処理時間が大幅に短縮され得
る。
本発明の実施形態では、キャッシュされた情報を識別するのにデジタル識別子(デジタル指紋)が使用され、前回の計算とは異なる方法で得られたときにも、キャッシュされた結果は、この方法で再利用され得る。
本発明の実施形態では、デジタル識別子自体がキャッシュに格納される。具体的には、計算手順への入力の識別子が、計算手順の出力のデジタル識別子とともに格納される。したがって、必要とされる複合的な中間結果がキャッシュからパージされているときにも、多段階演算の最終結果を得ることができる。中間結果のデジタル識別子のみが必要とされる。
本発明の実施形態では、キャッシュは、テーブル、データサブセット、アレイおよびデジタル識別子などの異種のオブジェクトを格納することができるデータ構造によって実現化される。
したがって本発明の実施形態は、同じまたは別のユーザによって最近実行されたクエリを用いてデータの格納を問合せるユーザに対する応答時間を最小化または少なくとも短縮するように機能し得る。
本発明の実施形態は、2つのクエリまたは計算が同じ結果をもたらす場合、同じキャッシュエントリをいくつかの異なるクエリまたは計算に再利用することによって、キャッシュによるメモリ使用頻度を最小化または少なくとも減少させるようにも機能し得る。
本発明の実施形態は、関係型データベース、事後関係型データベース、オブジェクト指向データベース、階層型データベースなどのいずれの種類の公知のデータベースからいずれの種類の情報を抽出するのにも適用可能である。インターネットも、本発明の文脈におけるデータベースと考えられ得る。
図7は本発明の特定の実施形態を開示しており、クエリ結果に基づく次のチャート計算にデータベースクエリを関与させる抽出プロセスまたは情報探索である。チャート結果と表記されるチャート計算の結果は、典型的には、背景技術で説明した多次元キューブの形態などの一次元、二次元もしくは多次元に集計された、ソートされた、またはグループ分けされたデータである。
第1のステップにおいて、情報探索の範囲が定義される。データベースクエリの場合、範囲は、SELECT文(または同等物)に含まれるテーブルと、これらのテーブルがどのように結合されているかとによって定義される。インターネット探索の場合、範囲は、発見されたウェブページの索引であり得、通常は1つ以上のテーブルとしても編成される。したがって、第1のステップの出力はデータセットである(図1から図6のR0参照)。
第2のステップにおいて、ユーザはデータセットにおいて選択を行ない、データセットについて多数のフィルタを推論エンジンに評価させる。推論エンジンは、たとえばデータベースエンジン、クエリツールまたはビジネス知能ツールであり得る。これはたとえば、注文を出されたデータを保持するデータベースについてのクエリにおいて、発注年が「2007」であることおよび製品グループが「乳製品」であることを要求することであり得る。したがって選択は、含まれるフィールドのリストと、各フィールドについて、選択された値のリストすなわちより一般的には状態とによって固有に定義され得る。
選択(図1から図6のS1参照)に基づいて、推論エンジンは計算手順(図1から図6のP1参照)を実行し、範囲の一部(図1から図6のR0参照)を表わすデータサブセット(図1から図6のR1参照)を生成する。したがってデータサブセットは、当該範囲からの1組の関連データ記録、またはこれらの関連データ記録への参照リスト(たとえば索引、ポインタまたは二値数)を含み得る。上記の例では、関連データ記録は、年度「2007」と製品グループ「乳製品」とに属するデータ記録のみである。
以前に選択が行なわれていない場合は、図7の推論エンジンは、データサブセットを計算するように作動される。しかし、以前に計算が行われたことがあれば、推論エンジンは、特定のデータ構造「キャッシュ」にアクセスすることによって前回の結果を再利用するように作動される。
次のステップは、データサブセットに基づいて何らかのさらに他の計算、たとえば集計および/またはソートおよび/またはグループ分けを行なうことである場合が多い。図7の例では、これらの次の計算は、データサブセットおよび選択された1組のチャート特性(図1から図6のS2参照)に基づいてチャート結果を計算するチャートエンジンによって行なわれる。したがってチャートエンジンは、チャート計算手順(図1から図6のP2)を実行して、チャート結果(図1から図6のR2参照)を生成する。これらの計算が以前に行なわれたことがなければ、図7のチャートエンジンはチャート結果を生成するように作動される。しかし、これらの計算が以前に行われたことがあれば、チャートエンジンは、上記のキャッシュにアクセスすることによって前回の結果を再利用するように作動される。チャート結果は、ピボットテーブルで、または図式的に二次元チャートおよび三次元チャートでユーザに対して視覚化され得る。
図7はキャッシュを使用するプロセスも示し、fはデジタル識別子を生成するように演算されるハッシングアルゴリズムを表わし、ID1からID4はそのようにして生成されたデジタル識別子を表わし、実線の矢印は識別子ID1からID4を生成するためのデータの流れを表わす。さらに図7において、破線の矢印はキャッシュの参照を表わす。
図7において、ユーザが新たな選択を行なうと、推論エンジンはデータサブセットを計算する。また、範囲とともに選択するための識別子ID1が当該選択および当該範囲におけるフィルタに基づいて生成される。その後、データサブセットの識別子ID2が、データサブセット定義、典型的にはデータサブセットの内容を定義するビットシーケンスに基づいて生成される。最後に、ID1を参照識別子として用いて、ID2がキャッシュに入力される。同様に、ID2を参照識別子として用いて、データサブセット定義がキャッシュに入力される。
図7において、チャート計算が同様に行なわれる。ここでは、2つの情報セット、データサブセットおよび関連のチャート特性が存在する。後者は、限定はしないが、典型的には計算変数および分類変数(次元)を加えた数学的関数である。これらの情報セットの両方を用いてチャート結果が計算され、これらの情報セットの両方を用いてチャート計算に入力するための識別子ID3も生成する。ID2は先のステップで既に生成されたものであり、ID3はチャート計算手順の第1のステップとして生成される。
識別子ID3は、ID2および関連のチャート特性から構成される。ID3は、特定のチャート生成インスタンスの識別子と考えることができ、特定のチャート結果を計算するのに必要なすべての情報を含む。また、チャート結果識別子ID4は、チャート結果定義、典型的にはチャート結果を定義するビットシーケンスから作成される。最後に、ID3を参照識別子として用いて、ID4がキャッシュに入力される。同様に、ID4を参照識別子として用いて、チャート結果定義がキャッシュに入力される。
この特定の例では、推論手順およびチャート計算手順の両方において結果の二段階キャッシュが実行される。推論手順では、ID1およびID2は、異なる事柄、選択およびデータサブセット定義をそれぞれ表わす。2つの異なる選択が同じデータサブセットをもたらす可能性が充分にあるが、その場合は二段階キャッシュ(ID1:ID2;ID2:データサブセット)によってデータサブセットが1回だけキャッシュされる。これは以下でオブジェクトフォールディングと表記される。すなわち、キャッシュ内のいくつかのデータオブジェクトが同じキャッシュエントリを共有する。同様に、チャート計算手順では、ID3およびID4は異なる事柄、チャート生成インスタンスおよびチャート結果定義をそれぞれ表わす。2つの異なるチャート生成インスタンスが同じチャート結果を生じさせる可能性が充分にあるが、その場合は二段階キャッシュ(ID3:ID4;ID4:チャート結果)によってチャート結果が1回だけキャッシュされる。
さらに、ID3をキャッシュすることによって、データサブセット定義がキャッシュからパージされている場合にもチャート結果を再作成することができる。これは、キャッシュパージ機構が実装されている場合、データサブセット定義が極めて大きい可能性があり、したがってキャッシュからパージされやすいため、有意義な利点である。このような機構の非限定的な例を以下にさらに説明する。
抽出プロセス中に、選択、関連のチャート特性などから識別子が計算され、図7の破線の矢印によって示されるように、潜在的にキャッシュされた計算結果を参照するのに使用される。識別子が発見されれば、対応するキャッシュされた結果が再利用される。発見されなければ、抽出プロセスは新たな識別子を生成し、識別子をそれぞれの結果とともにキャッシュする。
抽出プロセスをさらに例示するために、発注年「2007」および製品グループ「乳製品」という上記の選択について考慮する。第1のステップは、デジタル識別子ID1をこの選択の関数として生成することである。たとえば(16進法表記では)
'31dca7ad013964891df428095ad9b78ad7a69eaaa1ca3886bcf05d8f8184e84a'
簡潔にするため、以下の例では、各識別子を最初の4文字で表わす。したがってID1は「31dc」となる。さらに、明確にするために、以下の表はデジタル識別子の前に、たとえば「ID1:」という識別子ラベルを含む。これは実際の解においては必要ではない。
次の抽出プロセスは以下のとおりである。ID1が生成されているときには、キャッシュ内で探索される。選択が初めて行なわれたときには、この識別子はキャッシュ内では発見されない。したがって、結果として得られるデータサブセットは通常の方法で計算しなければならない。計算が行なわれると、データサブセットからID2を生成することができ、たとえば「d2b8」となる。次にID1がキャッシュされ、ID2を指し、ID2がキャッシュされ、結果として得られるデータサブセットを定義するビットシーケンスを指す。このビットシーケンスは相当な大きさのサイズであり得る。キャッシュの内容を以下の表1に示す。
Figure 2010027058
次に同じ選択が行なわれるときには、プロセスは異なったものとなる。ID1がキャッシュ内で発見され、「ID2:d2b8」を指すと第2の参照に使用され、時間のかかる計算の代わりに、結果として得られるデータサブセットのビットシーケンスが発見され、取出され、かつ使用される。
異なる選択が行なわれるが同じデータサブセットがもたらされる場合を考える。たとえば、明白に「乳製品」と要望することなく「乳製品」を購入した顧客をユーザが選択し、顧客が乳製品だけを購入したという場合に起こり得る。ID1は、ここではたとえば「f142」として生成され、キャッシュ内では発見されない。したがって、結果として得られるデータサブセットは通常の方法で計算しなければならない。計算が行なわれると、ID2をデータサブセットから生成することができ、「d2b8」であると判明する。これは既にキャッシュに格納されている。したがって、アルゴリズムは、「ID1:f142」が「ID2:d2b8」を指す1つのエントリをキャッシュに追加するだけでよい。キャッシュの内容を以下の表2に示す。
Figure 2010027058
今回は計算時間は短縮されないが、キャッシュエントリを再利用して、キャッシュが不要に増大するのを防ぐ。ここでは、「ID1:f142」および「ID1:31dc」の両方が、同じデータサブセットを含むキャッシュエントリ「ID2:d2b8」を指し、両方とも後の参照に使用することができる。これが上記の「オブジェクトフォールディング」の一例である。
デジタル識別子をキャッシュするさらに他の利点は、次のチャート計算が行なわれると明確になる。そこで、上記の選択が行なわれ、次のチャート計算が行なわれたと想定する。ID3およびID4は、それぞれ「e40A」および「7505」として生成されており、キャッシュに格納されている。キャッシュの内容を以下の表3に示す。
Figure 2010027058
表3の5つのエントリのうち、潜在的に大きなデータサブセットを定義するビットシーケンス全体を含む「ID2:d2b8」は、他のすべてのエントリよりも相当に大きいと考えられる。そのサイズによって、以下でさらに説明するように、キャッシュが維持される場合にパージされる候補となる。したがって、しばらくするとキャッシュの内容は以下の表4のようになり得る。
Figure 2010027058
しかしながら、デジタル識別子がキャッシュされるので、依然として、中間のデータサブセットを再計算する必要なしにチャート結果を得ることができる。代わりに、選択を行う際にID1が計算される。次に、キャッシュにおいてID1の参照が行われ、結果としてID2が検索される。次いで、ID3が、関連するチャート特性とID2との組合せから生成される。キャッシュにおけるID3の参照が行われ、ID4が検索される。最後に、キャッシュにおけるID4の参照が行われ、チャート結果が回復される。こうして、チャート結果は、計算を多く行わなくても、高速で処理効率の高い演算によって生成され得るデジタル識別子のみに基づいて見出される。
上述から、キャッシュにおける各識別子の意味が明白になるようにデジタル識別子が固有のものでなければならないことが理解される。一実施例においては、デジタル識別子はハッシングアルゴリズムまたは関数を用いて生成される。ハッシングアルゴリズムで行われる変換では、任意のサイズの入力(メッセージ)が取得され、ハッシュ値(メッセージダイジェスト)と称される一定サイズのストリングが戻される。当該アルゴリズムにより、典型的には、そのデジタル指紋を作成するための入力が細断および混合され、例えば、代用されるかまたは置換えられる。最も単純で最古のハッシングアルゴリズムは、素数演算による単純なモジュロである。ハッシングアルゴリズムは、暗号法を含む様々な計算上
の目的のために用いられる。一般的に言えば、ハッシングアルゴリズムは、実際に決定論的である一方で、等しい「確率」で実現可能な如何なる固定サイズのストリングをも生成することにより、可能な限りランダム関数のように作用するはずである。
上述のデジタル識別子を生成するのに用いられ得る、周知であり頻繁に用いられるいくつかのハッシングアルゴリズムが存在する。異なるハッシングアルゴリズムは異なる目的のために最適化されるものであり、ハッシュ値を効率的かつ高速で計算するのに最適化されるものがあるのに対して、暗号の安全性を高めるよう設計されているものもある。高い暗号安全性を備えたアルゴリズムは、適度な時間内に所与のハッシュ値と適合するメッセージを計算し、第1の所与のメッセージと同じハッシュ値を生成する第2のメッセージを見出すことを困難にするよう設計されている。このようなハッシングアルゴリズムは、SHA(Secure Hash Algorithm(セキュア・ハッシュ・アルゴリズム))およびMD5(Message-Digest algorithm(メッセージ・ダイジェスト・アルゴリズム)5)を含む。処理効率の良いハッシングアルゴリズムでは、典型的には、暗号の安全性がより低くなってしまう。このようなハッシングアルゴリズムにはFNVアルゴリズム(Fowler/Noll/Vo)が含まれ、概して非常に低い衝突率を維持しつつも高速となるよう設計されている。FNVアルゴリズムは、典型的にはオフセットベースで始まるものであり、原則的には、任意のランダムな値の列であり得るが、典型的には、慣習的に常に、元のFNV−0アルゴリズムに通される16進コードにおける発明者の署名である。256ビットのFNVハッシュ値を生成するために、通常、以下のオフセットベースが用いられる:
′0xdd268dbcaac550362d98c384c4e576ccc8b1536847b6bbb31023b4c8caee0535′
ハッシングアルゴリズムへの入力における各バイトについて、まずオフセットに大きな素数を掛け、次に、当該オフセットが入力からのバイトと比較され、最後に、次のループのためのハッシュ値を形成するために、ビット単位の対称差(XOR)が計算される。開示された文献中に適切な素数が見出される。如何なる大きな素数でも作用するであろうが、中には衝突耐性がより優れたものもある。
デジタル識別子は、適度に衝突耐性のあるいずれかのハッシングアルゴリズムを用いて生成されてもよい。一実施例においては、識別子は、衝突耐性が高く、暗号安全性が低い高速のハッシングアルゴリズムを用いて生成される。
特定の一実施例においては、256ビットの識別子は、各々が異なる素数の乗数を用いて生成された4つの64ビットのFNVハッシュを連結することによって生成されてもよい。4つのより短いハッシュを用い、これらを連結することにより、識別子はより高速で生成することができる。識別子の生成をさらに加速させるために、アルゴリズムは、ループ毎に入力のうち1バイトだけではなく4バイトを用いるよう変更されてもよい。これにより結果として、衝突耐性がほぼ同じままとなる一方で、暗号の安全性が損なわれる可能性がある。
少なくとも256ビットの長さをもつ識別子は有利な衝突耐性をもたらし得る。256ビットのハッシュ値は、およそ1E+77の実現可能な識別子値が存在することを意味する。この数は、1E+80と推定された母集団における原子の数と比較され得る。これは、衝突のリスク、すなわち、2つの異なる選択/データサブセット/チャート特性/チャート結果が同じ識別子をもたらすというリスク、が非常に小さいだけでなく、無視できるほどのものであることを意味している。したがって、衝突のリスクが許容可能なほど小さくなると言っても差し支えないだろう。これは、ハッシングアルゴリズムが理論的には固有の識別子を生成しないものの、統計的には固有の識別子を生成することを意味している。しかしながら、64または128ビットなどのより短いビット長をもつ識別子が特定の用途のために十分に統計的に固有であり得ることが理解されるはずである。
上述のように、パージ機構は、古いエントリまたは未使用のエントリのキャッシュをパージするよう実現されてもよい。キャッシュにおける使用頻度の最も低いエントリをなくすことが戦略の1つであり得る。しかしながら、より高度なパージ機構は、プロセッサ使用頻度およびメモリ使用頻度の両方の最適化をサポートするよう実現されてもよい。このような高度なパージ機構の一実施例は3つのパラメータ、すなわち、使用頻度、計算時間およびメモリ必要性、に関して機能する。
使用頻度パラメータは、エントリが「頻繁にではないが、最近」アクセスされていたかどうかと、エントリが「最近ではないが、頻繁に」アクセスされていたかどうかとを考慮に入れ得る数値である。これは、各エントリを使用頻度パラメータUに関連付けることによって実現されてもよい。使用頻度パラメータUは、例えばエントリがアクセスされるたびに一単位ずつ増やされるが、その値を時間が経つにつれて指数関数的に、もしくは他のいずれかの関数分だけ減らすものである。一実現例においては、キャッシュにおけるUの値がすべて、一定量ずつ定期的に減じられる。こうして、使用頻度パラメータは、放射性崩壊と同様に半減期を有する。Uの値は、ここで、エントリがどれほど多くアクセスされたかと、どれほど最近にアクセスされたかとを反映することとなる。
エントリを計算するのに必要とされるプロセッサ時間が多大であれば、エントリはキャッシュにおいてより長く維持されなければならない。逆に、計算に必要とされるプロセッサ時間が少ない場合、再計算のコストが小さくなり、キャッシュにエントリを維持する利点も小さくなる。こうして、各々のエントリが、推定される計算時間を表わす時間パラメータTに関連付けられる。
エントリを格納するのに必要とされるメモリ空間は、多大であれば、それを維持するのに多くのキャッシュリソースを要し、メモリ空間をさほど必要としないエントリよりも早くキャッシュからパージされなければならない。逆に、メモリ空間をほとんど必要としないエントリはキャッシュにおいてより長く維持することができる。こうして、各々のエントリは、推定されるメモリ必要性を表わすメモリパラメータMに関連付けられる。
キャッシュにおける各エントリについては、U、TおよびMパラメータの値は、W=U*T/Mによって与えられる重み関数Wによって評価される。
エントリについてのWの大きな値は、キャッシュにこのエントリを維持する十分な理由が存在することを示している。こうして、大きなW値を有するエントリはキャッシュにおいて維持されなければならず、小さなW値を有するエントリはパージされなければならない。
効率的なパージ機構は、Wの値に従ってキャッシュをソートし、一方端からのソートされたキャッシュ、すなわち、最小のW値を有するエントリ、をパージすることを必要とし得る。ソートされたキャッシュを維持するための実現可能な、但し必ずしも必要ではない一方法は、識別子、結果ならびにU、T、MおよびWの値をAVL(Adelson-Velsky(アデルソンヴェルスキ)およびLandis(ランディス))ツリー、すなわち、自動平衡二分探索木、として格納することであるだろう。
パージ機構は、予め定められたしきい値を下回るW値を有するすべてのエントリを断続的にパージし得る。
代替的には、パージ機構は、コンピュータ上の利用可能なメモリの量によって、または利用可能なメモリと全メモリとの比率によって制御されてもよい。こうして、キャッシュメモリのサイズがメモリしきい値に達するたびに、パージ機構は、それぞれのW値に基づ
いてキャッシュエントリからエントリを除去する。メモリしきい値を設定することにより、例えば、メモリのための処理能力をトレードするために局所的なハードウェア条件にキャッシュサイズを適合させることができる。たとえば、一次メモリをさらにコンピュータに追加し、メモリしきい値を増加させることにより、コンピュータにおけるより低速のプロセッサを補償することができる。これにより、キャッシュにより多くの結果が保持され、処理のための必要性が減じられることとなる。
本発明の実施例はまた、上述のアルゴリズム、方法、プロセスおよび手順のうちのいずれかを実行するための装置に関する。この装置は、所要の目的で特別に構築され得るか、または、コンピュータに格納されたコンピュータプログラムによって選択的に作動させられるかまたは再構成される汎用コンピュータを含み得る。
図8は、本発明の実施例のいずれかを実現するためのコンピュータベースの環境を示すブロック図である。ユーザ1はプロセッサ3を含むデータ処理システム2と対話する。プロセッサ3は、オペレーティングシステムソフトウェアと、本発明の実施例を実現する1つ以上のアプリケーションプログラムとを実行する。ユーザは、マウス、キーボード、タッチパッドなどの1つ以上の周知の入力装置4を用いることにより、データ処理システム2に情報を入力する。代替的には、カード読取り装置、光学式読取装置または別のコンピュータシステムなどの別のタイプの入力装置によって、ユーザの介入の有無にかかわらず、情報が入力され得る。視角フィードバックは、ディスプレイ5上で、文字、図記号、ウィンドウ、ボタンなどを示すことによってユーザに与えられてもよい。データ処理システムはさらに上述のメモリ10を含む。プロセッサ3によって実行されるソフトウェアは、その演算に関する情報をメモリ10に格納し、適切な情報をメモリ10から検索する。メモリ10は、典型的には、(RAM、キャッシュメモリなどの)一次メモリおよび(ハードディスク、フラッシュメモリ、取外し可能媒体などの)不揮発性の二次メモリを含む。データベースは、データ処理システムのメモリ10に格納されてもよく、または、データ処理システム2における通信インターフェース6を介して外部の記憶装置上でアクセスされてもよい。
本発明を、主にいくつかの実施例に関連付けて上に記載してきた。しかしながら、当業者に容易に認識されるように、上に開示される以外の実施例が、添付の特許請求の範囲によってのみ規定および限定される発明の範囲および精神内で等しく実現可能である。
たとえば、本発明は、多次元キューブを計算するのに適用可能であるだけでなく、一連の計算を用いて情報がデータベースから抽出される如何なる状況にも有用であり得る。
さらに、発明上の抽出プロセスは、3つ以上の連続した計算を含む一連の計算に適用され得る。たとえば、一連の計算における2つ以上の中間結果は各々、上述に記載される中間結果と同様にキャッシュされ、次いで検索されてもよい。
さらに、発明上の抽出プロセスは、最終結果をキャッシュして検索する必要はないが、一連の計算における1つ以上の中間結果をキャッシュして検索するためにだけ機能し得る。
さらに、データベースから最初のデータセットまたは範囲を抽出する最初のステップを省略してもよく、代わりに抽出プロセスがデータベース上で直接行われてもよいことが理解されるべきである。
DB データベース、P1 第1の手順、P2 第2の手順、R0 最初のデータセッ
ト、R2 最終結果、S1 第1の選択アイテム、S2 第2の選択アイテム。

Claims (22)

  1. データベースから情報を抽出するための、コンピュータによって実現される方法であって、
    前記方法は、データベースを表わすデータセット(R0)に関して第1の選択アイテム(S1)を演算して第1の結果(R1)を生成する第1の主計算(P1)と、前記第1の結果(R1)に関して第2の選択アイテム(S2)を演算して第2の結果(R2)を生成する第2の主計算(P2)とを含む連続した一連の主計算を含み、前記方法はさらに、
    少なくとも前記第1の選択アイテム(S1)の関数として第1の選択識別子値(ID1)と、少なくとも前記第2の選択アイテム(S2)および前記第1の結果(R1)の関数として第2の選択識別子値(ID3)とを計算し、
    前記第1の選択識別子値(ID1)および前記第1の結果(R1)ならびに前記第2の選択識別子値(ID3)および前記第2の結果(R2)をそれぞれ関連するオブジェクトとしてデータ構造に格納することにより、前記第1および第2の結果(R1,R2)をキャッシュするステップを含む、方法。
  2. 前記第1の選択アイテム(S1)および前記第2の選択アイテム(S2)に基づき前記第2の結果(R2)を見出すために、前記データ構造を用いるステップをさらに含み、
    前記用いるステップは、
    (a)前記第1の選択識別子値(ID1)を少なくとも前記第1の選択アイテム(S1)の関数として計算するサブステップと、
    (b)前記第1の結果(R1)を位置付けるために、前記第1の選択識別子値(ID1)に基づいて前記データ構造のオブジェクトを探索するサブステップと、
    (c)サブステップ(b)において前記第1の結果(R1)が見出された場合、前記第1の結果(R1)および前記第2の選択アイテム(S2)の関数として前記第2の選択識別子値(ID3)を計算し、前記第2の結果(R2)を位置付けるために、前記第2の選択識別子値(ID3)に基づいて前記データ構造のオブジェクトを探索するサブステップと、
    (d)サブステップ(b)において前記第1の結果(R1)が見出されない場合、前記第1の主計算(P1)を実行して前記第1の結果(R1)を生成し、前記第1の結果(R1)および前記第2の選択アイテム(S2)の関数として前記第2の選択識別子値(ID3)を計算し、前記第2の結果(R2)を位置付けるために、前記第2の選択識別子値(ID3)に基づいて前記データ構造のオブジェクトを探索するサブステップと、
    (e)サブステップ(c)または(d)において前記第2の結果(R2)が見出されない場合、前記第2の主計算(P2)を実行して前記第2の結果(R2)を生成するサブステップとを含む、請求項1に記載の方法。
  3. 第1の結果識別子値(ID2)を前記第1の結果(R1)の関数として計算するステップをさらに含み、前記格納するステップは、前記第1の選択識別子値(ID1)および前記第1の結果識別子値(ID2)を関連するオブジェクトとして前記データ構造に格納するステップと、前記第1の結果識別子値(ID2)および前記第1の結果(R1)を関連するオブジェクトとして前記データ構造に格納するステップとをさらに含む、請求項1に記載の方法。
  4. 前記第1の選択アイテム(S1)および前記第2の選択アイテム(S2)に基づき前記第2の結果(R2)を見出すために、前記データ構造を用いるステップをさらに含み、前記用いるステップは、
    (a)少なくとも前記第1の選択アイテム(S1)の関数として前記第1の選択識別子値(ID1)を計算するサブステップと、
    (b)前記第1の結果識別子値(ID2)を位置付けるために、前記第1の選択識別子
    値(ID1)に基づいて前記データ構造のオブジェクトを探索し、前記第1の結果(R1)を位置付けるために、前記第1の結果識別子値(ID2)に基づいて前記データ構造のオブジェクトを探索するサブステップと、
    (c)サブステップ(b)において前記第1の結果(R1)が見出された場合、前記第1の結果(R1)および前記第2の選択アイテム(S2)の関数として前記第2の選択識別子値(ID3)を計算し、前記第2の結果(R2)を位置付けるために、前記第2の選択識別子値(ID3)に基づき前記データ構造のオブジェクトを探索するサブステップと、
    (d)サブステップ(b)において前記第1の結果識別子値(ID2)または前記第1の結果(R1)が見出されない場合、前記第1の主計算(P1)を実行して前記第1の結果(R1)を生成し、前記第1の結果(R1)および前記第2の選択アイテム(S2)の関数として前記第2の選択識別子値(ID3)を計算し、前記第2の結果(R2)を位置付けるために前記第2の選択識別子値(ID3)に基づき前記データ構造のオブジェクトを探索するサブステップと、
    (e)サブステップ(c)または(d)において前記第2の結果(R2)が見出されない場合、前記第2の主計算(P2)を実行して前記第2の結果(R2)を生成するサブステップとを含む、請求項3に記載の方法。
  5. 前記第1の結果(R1)は、前記第2の選択識別子値(ID3)の計算において、前記第1の結果識別子値(ID2)によって表わされる、請求項3に記載の方法。
  6. 前記第1の選択アイテム(S1)および前記第2の選択アイテム(S2)に基づき前記第2の結果(R2)を見出すために、前記データ構造を用いるステップをさらに含み、前記用いるステップは、
    (a)少なくとも前記第1の選択アイテム(S1)の関数として前記第1の選択識別子値(ID1)を計算するサブステップと、
    (b)前記第1の結果識別子値(ID2)を位置付けるために、前記第1の選択識別子値(ID1)に基づき前記データ構造のオブジェクトを探索するサブステップと、
    (c)サブステップ(b)において前記第1の結果識別子値(ID2)が見出された場合、前記第1の結果識別子値(ID2)および前記第2の選択アイテム(S2)の関数として前記第2の選択識別子値(ID3)を計算し、前記第2の結果(R2)を位置付けるために、前記第2の選択識別子値(ID3)に基づいて前記データ構造のオブジェクトを探索するサブステップと、
    (d)サブステップ(b)において前記第1の結果識別子値(ID2)が見出されない場合、前記第1の主計算(P1)を実行して前記第1の結果(R1)を生成し、前記第1の結果(R1)の関数として前記第1の結果識別子値(ID2)を計算し、前記第1の結果識別子値(ID2)および前記第2の選択アイテム(S2)の関数として前記第2の選択識別子値(ID3)を計算し、前記第2の結果(R2)を位置付けるために、前記第2の選択識別子値(ID3)に基づいて前記データ構造のオブジェクトを探索するサブステップと、
    (e)サブステップ(c)において前記第2の結果(R2)が見出されない場合、前記第1の結果(R1)を位置付けるために、前記第1の結果識別子値(ID2)に基づいて前記データ構造のオブジェクトを探索し、前記第2の主計算(P2)を実行して前記第2の結果(R2)を生成するサブステップと、
    (f)サブステップ(e)において前記第1の結果(R1)が見出されない場合、前記第1の主計算(P1)を実行して前記第1の結果(R1)を生成し、前記第2の主計算(P2)を実行して前記第2の結果(R2)を生成するサブステップと、
    (g)サブステップ(d)において前記第2の結果(R2)が見出されない場合、前記第2の主計算(P2)を実行して前記第2の結果(R2)を生成するサブステップとを含む、請求項5に記載の方法。
  7. 前記第2の結果(R2)の関数として第2の結果識別子値(ID4)を計算するステップをさらに含み、前記格納するステップは、前記第2の選択識別子値(ID3)および前記第2の結果識別子値(ID4)を関連するオブジェクトとして前記データ構造に格納するステップと、前記第2の結果識別子値(ID4)および前記第2の結果(R2)を関連するオブジェクトとして前記データ構造に格納するステップとをさらに含む、請求項1、3または5に記載の方法。
  8. 前記識別子値の各々は統計的に固有である、請求項1から7のいずれかに記載の方法。
  9. 前記識別子値の各々は、ハッシュ関数によって生成されるデジタル指紋である、請求項1から8のいずれかに記載の方法。
  10. 前記デジタル指紋は少なくとも256ビットを含む、請求項9に記載の方法。
  11. 前記データ構造に前記関連するオブジェクトを含むデータ記録を、少なくとも前記データ記録のサイズに基づいて選択的に削除するステップをさらに含む、請求項1から10のいずれかに記載の方法。
  12. 前記選択的に削除するステップは、前記第1の結果(R1)を含むデータ記録の削除を促進するよう構成される、請求項11に記載の方法。
  13. 各々のデータ記録についての使用頻度パラメータ、各々のデータ記録についての計算時間パラメータ、および、各々のデータ記録についてのサイズパラメータの関数として計算される重み値と各々のデータ記録を関連付けるステップをさらに含む、請求項11または12に記載の方法。
  14. 前記重み値は、W=U*T/Mによって与えられる重み関数を評価することによって計算され、Uは使用頻度パラメータであり、Tは計算時間パラメータであり、Mはサイズパラメータである、請求項13に記載の方法。
  15. 前記使用頻度パラメータの値は、データ記録がアクセスされるたびに増分される一方で、時間の関数として指数関数的に低減される、請求項13または14に記載の方法。
  16. 前記選択的に削除するステップは、前記データ構造における前記データ記録の重み値に基づいている、請求項13から15のいずれかに記載の方法。
  17. 前記選択的に削除するステップは、前記データ構造の現在のサイズとしきい値との比較に基づいてトリガされる、請求項11から16のいずれかに記載の方法。
  18. 前記データベースは動的データベースであり、前記第1の選択識別子値(ID1)は、少なくとも前記第1の選択アイテム(S1)および前記データセット(R0)の関数として計算される、請求項1から17のいずれかに記載の方法。
  19. 前記情報は、前記データベースにおけるデータのグループ分け、ソートまたは集合を含む、請求項1から18のいずれかに記載の方法。
  20. 前記第1の選択アイテム(S1)は、前記データセット(R0)における一組のフィールドと、各フィールドについての条件とを規定し、前記第1の結果(R1)は前記データセット(R0)のサブセットを表わし、前記第2の選択アイテム(S2)は数学的関数と
    、前記第1の結果(R1)に含まれる1つ以上の計算変数と、前記第1の結果(R1)に含まれる1つ以上の分類変数とを規定し、前記第2の結果(R2)は、各々の分類変数のすべての固有値についての前記1つ以上の計算変数に関して数学的関数を演算した結果を含む多次元キューブデータ構造である、請求項1から19のいずれかに記載の方法。
  21. コンピュータプログラムが格納されたコンピュータ読取可能媒体であって、前記コンピュータプログラムは、コンピュータによって実行されると、請求項1から20のいずれかに記載の方法を実行するよう適合されている、コンピュータ読取可能媒体。
  22. データベースから情報を抽出するための装置であって、前記装置は、前記データベースを表わすデータセット(R0)に関して第1の選択アイテム(S1)を演算して第1の結果(R1)を生成する第1の主計算(P1)と、前記第1の結果(R1)に関して第2の選択アイテム(S2)を演算して第2の結果(R2)を生成する第2の主計算(P2)とを含む連続した一連の主計算を実行するための手段を含み、前記装置はさらに、
    少なくとも前記第1の選択アイテム(S1)の関数として第1の選択識別子値(ID1)と、少なくとも前記第2の選択アイテム(S2)および前記第1の結果(R1)の関数として第2の選択識別子値(ID3)とを計算し、
    前記第1の選択識別子値(ID1)および前記第1の結果(R1)ならびに前記第2の選択識別子値(ID3)および前記第2の結果(R2)をそれぞれ関連するオブジェクトとしてデータ構造に格納することにより、前記第1および第2の結果(R1,R2)をキャッシュするための手段を含む、装置。
JP2009168570A 2008-07-18 2009-07-17 コンピュータによって実現される方法、コンピュータ読取可能媒体およびデータベースから情報を抽出するための装置 Active JP5288129B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US8176108P 2008-07-18 2008-07-18
SE0801708-9 2008-07-18
SE0801708A SE0801708L (sv) 2008-07-18 2008-07-18 Förfarande och apparat för extrahering av information från en databas
US61/081,761 2008-07-18

Publications (2)

Publication Number Publication Date
JP2010027058A true JP2010027058A (ja) 2010-02-04
JP5288129B2 JP5288129B2 (ja) 2013-09-11

Family

ID=41137494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009168570A Active JP5288129B2 (ja) 2008-07-18 2009-07-17 コンピュータによって実現される方法、コンピュータ読取可能媒体およびデータベースから情報を抽出するための装置

Country Status (4)

Country Link
US (1) US8244741B2 (ja)
EP (1) EP2146292B8 (ja)
JP (1) JP5288129B2 (ja)
CA (1) CA2671650C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013520738A (ja) * 2010-02-26 2013-06-06 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース・アプリケーションのためのセキュアなキャッシング方法、システム、および、プログラム
JP2017037532A (ja) * 2015-08-11 2017-02-16 日本電信電話株式会社 データキャッシュ方法、ノード装置及びプログラム
US11461304B2 (en) 2015-10-14 2022-10-04 DataRobot, Inc. Signature-based cache optimization for data preparation

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819026B2 (en) 2010-08-27 2014-08-26 SCR Technologies, Inc. Sequential chain registry
US8689200B1 (en) * 2011-01-12 2014-04-01 Google Inc. Method and system for optimizing an executable program by generating special operations for identical program entities
US8683455B1 (en) 2011-01-12 2014-03-25 Google Inc. Method and system for optimizing an executable program by selectively merging identical program entities
US10366066B2 (en) 2011-11-11 2019-07-30 Qliktech International Ab Collaborative data mining and analysis
US9361464B2 (en) * 2012-04-24 2016-06-07 Jianqing Wu Versatile log system
US20140019454A1 (en) * 2012-07-10 2014-01-16 Jason A. Carter Systems and Methods for Caching Data Object Identifiers
CN104268136A (zh) * 2013-07-30 2015-01-07 深圳市华傲数据技术有限公司 一种记录分组方法和装置
US10810178B2 (en) 2013-09-24 2020-10-20 QIikTech International AB Methods and systems for data management and analysis
US11144184B2 (en) 2014-01-23 2021-10-12 Mineset, Inc. Selection thresholds in a visualization interface
US10038733B1 (en) 2014-09-17 2018-07-31 EMC IP Holding Company LLC Generating a large, non-compressible data stream
US10114850B1 (en) * 2014-09-17 2018-10-30 EMC IP Holding Company LLC Data stream generation using prime numbers
US10114832B1 (en) 2014-09-17 2018-10-30 EMC IP Holding Company LLC Generating a data stream with a predictable change rate
US20160085738A1 (en) * 2014-09-24 2016-03-24 Microsoft Technology Licensing, Llc Cloud-Based Parallel Computation Using Actor Modules
US10114867B2 (en) * 2015-05-29 2018-10-30 Looker Data Sciences, Inc. Methods and systems for selectively retrieving data to provide a limited dataset for incorporation into a pivot table
US10740316B2 (en) 2015-10-14 2020-08-11 Dr Holdco 2, Inc. Cache optimization for data preparation
US11169978B2 (en) 2015-10-14 2021-11-09 Dr Holdco 2, Inc. Distributed pipeline optimization for data preparation
US11681704B2 (en) 2016-02-01 2023-06-20 Qliktech International Ab Methods and systems for distributed data analysis
EP3232342B1 (en) 2016-04-14 2019-11-27 QlikTech International AB Methods and systems for bidirectional indexing summary
EP3869357A1 (en) 2016-04-29 2021-08-25 QlikTech International AB System and method for interactive discovery of inter-data set relationships
EP3239862B1 (en) 2016-04-29 2020-06-03 QlikTech International AB Selection query language methods and systems
US10261911B2 (en) * 2016-09-08 2019-04-16 The Johns Hopkins University Apparatus and method for computational workflow management
EP3364314B1 (en) 2017-02-15 2022-10-19 QlikTech International AB Methods and systems for indexing using indexlets
EP3483738A1 (en) 2017-05-12 2019-05-15 QlikTech International AB Index machine
EP3401809A1 (en) 2017-05-12 2018-11-14 QlikTech International AB Method for querying indexed, partitioned dimension tables
EP3842904A1 (en) 2017-05-12 2021-06-30 QlikTech International AB Interactive data exploration
EP3483739A1 (en) 2017-05-12 2019-05-15 QlikTech International AB Cognitive rule engine
US20200073876A1 (en) 2018-08-30 2020-03-05 Qliktech International Ab Scalable indexing architecture
EP3627344A1 (en) * 2018-09-18 2020-03-25 QlikTech International AB Conversational analytics
EP3678032B1 (en) 2019-01-07 2024-09-11 QlikTech International AB Computer implemented methods and systems for improved data retrieval
EP3678033A1 (en) 2019-01-07 2020-07-08 QlikTech International AB A computer implemented method for indexlet based aggregation
FR3092920B1 (fr) * 2019-02-14 2022-04-01 Amadeus Traitement d’interrogations de base de données complexes
CN112131288B (zh) * 2019-06-25 2024-04-05 北京沃东天骏信息技术有限公司 数据源接入处理方法和装置
WO2024009140A1 (en) 2022-07-03 2024-01-11 Qliktech International Ab Closed-loop generation of insights from source data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539563A (ja) * 1999-03-12 2002-11-19 クリクテック、インターナショナル、アクチボラグ データベースから情報を抽出するための方法
JP2003085032A (ja) * 2001-09-10 2003-03-20 Kanazawa Inst Of Technology 自己組織化キャッシュ方法およびその方法を利用可能なキャッシュサーバ
JP2007074353A (ja) * 2005-09-07 2007-03-22 Seiko Epson Corp 画像処理装置、画像処理方法及び画像処理プログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1058621A (en) * 1912-04-02 1913-04-08 George E Neice Door-hanger.
JPH0675265B2 (ja) * 1989-09-20 1994-09-21 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 情報検索方法及びシステム
US5666526A (en) * 1993-09-02 1997-09-09 Microsoft Corp. Method and system for supporting scrollable, updatable database queries
SE505844C2 (sv) * 1994-09-21 1997-10-13 Qliktech International Ab Metod för extrahering av information från en databas
US6728699B1 (en) * 1997-09-23 2004-04-27 Unisys Corporation Method and apparatus for using prior results when processing successive database requests
US6037938A (en) 1997-12-01 2000-03-14 Qliktech International Ab Method and a device for displaying information about a large number of independent data elements
US6341281B1 (en) 1998-04-14 2002-01-22 Sybase, Inc. Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree
US6115703A (en) 1998-05-11 2000-09-05 International Business Machines Corporation Two-level caching system for prepared SQL statements in a relational database management system
US6347312B1 (en) * 1998-11-05 2002-02-12 International Business Machines Corporation Lightweight directory access protocol (LDAP) directory server cache mechanism and method
US6285997B1 (en) 1998-11-16 2001-09-04 International Business Machines Corporation Query optimization with deferred update and autonomous sources
US6453321B1 (en) 1999-02-11 2002-09-17 Ibm Corporation Structured cache for persistent objects
US6678681B1 (en) * 1999-03-10 2004-01-13 Google Inc. Information extraction from a database
US6275819B1 (en) * 1999-03-16 2001-08-14 Novell, Inc. Method and apparatus for characterizing and retrieving query results
US20020029207A1 (en) 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US20030115188A1 (en) * 2001-12-19 2003-06-19 Narayan Srinivasa Method and apparatus for electronically extracting application specific multidimensional information from a library of searchable documents and for providing the application specific information to a user application
GB0206810D0 (en) * 2002-03-22 2002-05-01 Isocra Ltd Database system
US7035846B2 (en) * 2002-09-23 2006-04-25 International Business Machines Corporation Methods, computer programs and apparatus for caching directory queries
US8140499B2 (en) * 2005-04-08 2012-03-20 International Business Machines Corporation Context based cache infrastructure to enable subset query over a cached object
US20060294088A1 (en) * 2005-06-27 2006-12-28 International Business Machines Corporation Method, system, and computer program product for caching dynamically generated queries
US7743053B2 (en) * 2006-10-17 2010-06-22 Hewlett-Packard Development Company, L.P. Hybrid database query caching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539563A (ja) * 1999-03-12 2002-11-19 クリクテック、インターナショナル、アクチボラグ データベースから情報を抽出するための方法
JP2003085032A (ja) * 2001-09-10 2003-03-20 Kanazawa Inst Of Technology 自己組織化キャッシュ方法およびその方法を利用可能なキャッシュサーバ
JP2007074353A (ja) * 2005-09-07 2007-03-22 Seiko Epson Corp 画像処理装置、画像処理方法及び画像処理プログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200501389002; 小畠 功士 外3名: 'P2Pシステム上でのリザルトキャッシングを用いた条件付検索手法' 電子情報通信学会技術研究報告 Vol.104 No.513, 20041209, pp.7-12, 社団法人電子情報通信学会 *
CSNG200600773003; 田頭 茂明 外2名: '分散ハッシュテーブル型P2Pシステムにおけるブルームフィルタを用いた高速連言検索手法の評価' 情報処理学会研究報告 Vol.2006 No.89, 20060801, pp.15-22, 社団法人情報処理学会 *
JPN6012050142; 小畠 功士 外3名: 'P2Pシステム上でのリザルトキャッシングを用いた条件付検索手法' 電子情報通信学会技術研究報告 Vol.104 No.513, 20041209, pp.7-12, 社団法人電子情報通信学会 *
JPN6012050143; 田頭 茂明 外2名: '分散ハッシュテーブル型P2Pシステムにおけるブルームフィルタを用いた高速連言検索手法の評価' 情報処理学会研究報告 Vol.2006 No.89, 20060801, pp.15-22, 社団法人情報処理学会 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013520738A (ja) * 2010-02-26 2013-06-06 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース・アプリケーションのためのセキュアなキャッシング方法、システム、および、プログラム
US8886673B2 (en) 2010-02-26 2014-11-11 International Business Machines Corporation Optimizing data cache when applying user-based security
JP2017037532A (ja) * 2015-08-11 2017-02-16 日本電信電話株式会社 データキャッシュ方法、ノード装置及びプログラム
US11461304B2 (en) 2015-10-14 2022-10-04 DataRobot, Inc. Signature-based cache optimization for data preparation

Also Published As

Publication number Publication date
EP2146292B1 (en) 2019-01-23
CA2671650C (en) 2016-01-12
US8244741B2 (en) 2012-08-14
US20100017436A1 (en) 2010-01-21
CA2671650A1 (en) 2010-01-18
EP2146292A1 (en) 2010-01-20
EP2146292B8 (en) 2019-03-20
JP5288129B2 (ja) 2013-09-11

Similar Documents

Publication Publication Date Title
JP5288129B2 (ja) コンピュータによって実現される方法、コンピュータ読取可能媒体およびデータベースから情報を抽出するための装置
JP6427592B2 (ja) データ型に関連するデータプロファイリング操作の管理
JP6088506B2 (ja) 範囲に基づく検索のためのデータ格納の管理
AU2018211280B2 (en) Managing memory and storage space for a data operation
CN101635001B (zh) 从数据库提取信息的方法和设备
CN110532284B (zh) 海量数据存储和检索方法、装置、计算机设备及存储介质
Zhu et al. Incremental discovery of order dependencies on tuple insertions
Naeem et al. Optimised X-HYBRIDJOIN for near-real-time data warehousing
CN115292737A (zh) 一种多关键词模糊搜索加密方法、系统及电子设备
Mullangi et al. SCISSOR: scalable and efficient reachability query processing in time-evolving hierarchies
WO2020223901A1 (zh) 查询数据的方法和服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121221

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130225

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: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130521

R150 Certificate of patent or registration of utility model

Ref document number: 5288129

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

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