JP2011510379A - 多次元データベースアーキテクチャ - Google Patents

多次元データベースアーキテクチャ Download PDF

Info

Publication number
JP2011510379A
JP2011510379A JP2010542303A JP2010542303A JP2011510379A JP 2011510379 A JP2011510379 A JP 2011510379A JP 2010542303 A JP2010542303 A JP 2010542303A JP 2010542303 A JP2010542303 A JP 2010542303A JP 2011510379 A JP2011510379 A JP 2011510379A
Authority
JP
Japan
Prior art keywords
data
row
database
attribute
cluster
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
JP2010542303A
Other languages
English (en)
Other versions
JP5271359B2 (ja
JP2011510379A5 (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of JP2011510379A publication Critical patent/JP2011510379A/ja
Publication of JP2011510379A5 publication Critical patent/JP2011510379A5/ja
Application granted granted Critical
Publication of JP5271359B2 publication Critical patent/JP5271359B2/ja
Expired - Fee Related 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • 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
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Abstract

情報処理システム、特に、データベースにおけるデータの格納及びデータベースからのデータ検索を容易にするコンピュータに実施されるデータベース及びデータベース管理システム(DBMS)を提供する。データベース管理システムは、異なるフォーマットの独立したコピーとして複数の論理テーブルからのデータを格納する。1つの特定の例では、システムは、テーブルをテーブル群に組織し、各テーブル群内のテーブルを非正規化する。それはまた、1つの属性に関する全てのデータを格納する垂直縦列容器を含む第2のフォーマットでデータを組織し、各テーブル及びそのテーブル内の各属性に対して縦列容器が1つある。コピーの受け取りにより、システムは、容器の組のいずれか又は両方と対話することができる問い合わせ計画を作成する。
【選択図】図6

Description

本発明は、一般的に、情報処理システムに関し、より具体的には、データベースにおけるデータの格納及びデータベースからのデータ検索を容易にするコンピュータに実施されるデータベース及びデータベース管理システム(DBMS)に関する。
初期の簡単なデータベース構造では、複数の横列又はタプル、及び縦列から成る単一のファイル又はテーブルが含まれていた。このフォーマットは、各横列が固有であり、すなわち、データが冗長でなかった時に特に役に立つものであった。しかし、データベースは、たちまち複雑化したものとなった。各横列は、固有ではない情報を含み始めた。例えば、著者及び著者が書く本に関する情報を含むデータベース考える。著者が複数の本を書いた場合、簡単なデータベーススキーマ内の各横列は、著者の名前及び1冊の本の識別を含むであろう。従って、著者が「n」冊の本を書いた場合、テーブルには「n」個の横列が含まれ、著者の名前が、「n」個の横列の各々に表示されると考えられる。
複数の横列における著者の名前のような同じ値のこの繰返しは、「冗長性」として特徴付けられる。冗長性は、ある一定の問題を招く。例えば、冗長なデータを格納すると不要にメモリが消費され、その時代は、メモリは制限されたものであり、かつ高価であった。この問題は、時の経過と共に最小にされた。しかし、最小にされていない問題には、データを変更するデータ更新及び一貫したデータを維持する必要性が関わっている。データベースに著者達及び彼らのアドレス、及び1人の著者のアドレス変更が含まれている場合、その著者が書いた各々の本に関する記録におけるそのアドレスを変更することが必要である。データ更新処理が何らかの理由で中断された場合、その著者のアドレスは、変更される場合もあれば変更されない場合がある。得られるデータは、一貫性がないものとなろう。データの一貫性を維持することは、現在のデータベースに関して必要とされるものである。
次に、関係データベース管理システム(RDBMS又は「関係モデル」)が開発された。これらのシステムは、依然として従来技術のデータベース管理システム(DBMS)の基盤の役割を果たしている。1970年代に導入された関係モデルにより、形式的な代数と「構造化問い合わせ言語(SQL)として公知である関連の宣言型問い合わせ言語とによりサポートされるデータ独立性が開拓された。この言語では、「SQL問い合わせ」又は「問い合わせ」は、様々なテーブル中のデータと対話する1次ツールである。
一般的に、RDBMSシステムは、テーブル中の関係記憶スキーマに従ってデータを格納する。各テーブルは、ディスク、メインメモリ、及び他のメモリのようなデータ記憶機器内で横列の連続した組として格納される。多くのシステムは、特定の横列又は横列への高速ランダムアクセスを可能にするために更に別のデータ構造としてインデックスを実施する。インデックスにより、いくつかのキー値に基づく横列へのナビゲーションを容易にするように縦列又はいくつかの縦列(インデックスのキー)が符号化される。各インデックスには、データが変わった場合には、インデックスデータ構造を構築及び維持する追加コストが伴う。しかし、ユーザには、テーブルとしてデータの非冗長なビューが示され、ユーザは、一般的に、この及び他の潜在的な冗長性には気付かない。
2つの他の概念、すなわち、「正規化」及び「関係」も、この開発中に生まれた。「正規化」では、複数のテーブルにデータを分割することによって冗長性が最小にされる。上述の例では、単一の冗長な著者と本のテーブルを正規化すると、個々の著者テーブルと本テーブルが生成される。著者テーブルには、1回に1人の著者に関する情報が含まれ、本テーブルには、1回に1つの本に関する情報が含まれている。
図1は、論理形式で、各著者及び本に関する情報、及び複数の顧客の各々と、注文と、各々の注文に関連の本とに関する情報を記録する簡単な正規化されたデータベース30を開示する。この情報のまとめには、個々のテーブルで「正規化された」データベースを定めるためにデータ情報の分析を含む。1つ又はそれよりも多くの個々のテーブルを関連付けることができる。例えばかつ説明上、データベース設計者が図1のこのデータを分析して、著者群31、顧客群32、及び州群33のような関連付けられたテーブルの3つの群を任意に定めると仮定する。著者群31は、著者及び本に関する全ての情報を含むと共に、著者テーブル34及び本テーブル35を含む。顧客群32は、顧客及び注文に関すると共に、顧客テーブル36、注文テーブル37、及び品目テーブル40を含む。州の群33は、州情報に関し、州テーブル41を含む。明らかなように、州群は、複数のテーブルを含むことができ、かつ品目テーブル40は、著者群31の構成群とすることができる。
図1は、これらの個々のテーブルの関係を示すが、これらの関係は、明示的に定められているわけではない。むしろ、基本キー及び外部キーにより、関係を定めることができる情報が得られる。特に基本キー及び外部キーの命名に関しては、多くのフィールド命名規約がある。ここで説明する内容では、接頭辞「fk」は、別の関連のテーブルにおいて外部キー名を形成するために1つのテーブルの基本キー名に追加されると仮定する。この特定の例においては、著者テーブル34は、AUTHORID基本キーフィールドを含む。本テーブル35は、fkAUTHORID外部キーフィールドを含む。このような関係は、一般的に、1つ対多くの関係として説明され、その理由は、本テーブル35の複数の横列の同じ外部キーが、各著者に関連付けられるからである。すなわち、単一の、すなわち、「1人」の著者は、1つ又はそれよりも多くの、例えば、「多くの」本と結合される。図1のリンク42は、論理レベルで、AUTHORIDフィールド及びfkAUTHORIDフィールドが定める関係を表している。
図1の顧客群32は、リンク43及びリンク46によって定められた類似の1つ対多くの関係を含む。2つのリンク44及び45は、異なる群におけるテーブル同士の関係を定める。リンク44は、著者群31内のテーブルを顧客群テーブル32と結びつける。具体的には、品目テーブル40は、fkORDERID及びfkBOOKIDの外部キーを有する。fkORDERID外部キーは、1つの注文を1つの品目と結びつける。fkBOOKID外部キーは、1冊の本を1つの品目と結びつける。リンク45は、顧客テーブル36と州テーブル41の関係を定め、顧客テーブル36中のfkSTATEIDフィールドは、州テーブル41中のスタットEIDフィールドとリンクしている。
図1は、「属性」とも呼ばれる一部の代表的フィールドを備えた各テーブルを示すが、図2は、データシート図で、横列、縦列、及び代表的データを備えたテーブルを示している。各テーブルは、基本キーを有し、一部は、外部キーを有する。より具体的には、著者テーブル34は、著者の姓、名、生年月日、及び任意的な契約情報に関してAUTHORID基本キープラス属性を含む。本テーブル35は、タイトル、表示価格(リスト)、刊行日及び内容説明に関するBOOKID基本キー、fkAUTHORID外部キー、及び属性を含む。ここで説明する目的上、各本は、1人の著者だけにより書かれていると仮定する。残りのテーブル及び属性の構成は、当業者には明らかであろう。
SQL問い合わせは、情報をデータベースに要求して、要請された情報の「resultset」を作成する。「resultset」は、メモリ内のデータのコピーを保持して、かつデータソースから切断されるオブジェクトである。最も一般的なSQL問い合わせ又は指令は、データを検索して、FROM、WHERE、「GROUP BY」、HAVING、及び「ORDER BY」クローズを含む宣言型SELECTキーワード及びいくつかの任意的なキーワード及びクローズで実行される。あらゆる問い合わせに対する応答は、異なるファイル位置から個々に各々の識別されたテーブルを検索しなければならず、次に、関係に従って異なるテーブルから対応する横列を適合させる。
WHEREクローズのコンテンツは、明示的に、要求に関連する各々の関係を定めて、「結合」演算の基盤の役目をする「非正規化」情報を提供する。WHEREクローズは、関係をもたらすフィールド又は属性を具体的に定める。例えば、著者テーブル34と本テーブル35の関係を定義する必要があるWHEREクローズは、著者テーブル34及びAUTHORID基本キー及び本テーブル35及びfkAUTHORID外部キーを識別する。すなわち、そのWHEREクローズの実行により、各横列が著者の情報及び1つの本識別を含むオリジナルデータを再生するために、AUTHORID基本キー及びfkAUTHORID外部キーを使用して2つのテーブルが結合される。問い合わせ応答は、解決する必要がある各々の関係に対して1つの結合演算を処理する必要がある。
効率的に結合演算を実行することは困難である。図1及び図2に示すそのような非効率性は、比較的小さいデータベースにおいて許容可能なものである。しかし、実際のデータベースは、益々複雑化している。顧客エンティティは、注文、品目、アドレス、電話、トランザクション履歴、及び他の家人とのリンクを含む情報の多くのレベルを含むことができる。正規化により、各レベルの情報が専用テーブルに置かれる。データベースが複雑な関係で多くのテーブルを有する時に存在する関係により、結合回数が増大する。図1及び図2に示すようなデータベースを超える大規模なサイズ及び複雑性のデータベースにおける結合演算非効率性の蓄積効果は、許容することができないものである。
通常、データベースは、個々に又は組み合わせてディスク、メインメモリ、キャッシュ、及び他のメモリを含むデータ記憶機器内に格納及び処理される。各メモリは、待ち時間特性を有する。一般的に、「待ち時間」は、データ要求と実際のデータ転送開始の間に経過する時間である。ディスク遅延は、例えば、3つの成分、すなわち、シーク時間、回転待ち時間、及び転送速度を有する。シーク時間は、ディスクヘッドがアクセス中のディスクシリンダに移動するのに必要とされる時間の尺度である。回転待ち時間は、特定のディスクブロックがディスクヘッド下で到達するのに必要とされる時間の尺度であり、転送速度(帯域幅)は、データがディスクヘッド下で通過する速度の尺度である。連続したアクセスに対して、シーク時間及び回転時間の判断を行う必要があるのは、第1のデータブロックに関してのみである。
時の経過と共に、読取、書込の両演算に対して、ディスク及びメモリ帯域改良により非常に効率的な順次アクセスが可能となっている。しかし、ディスク及び記憶待ち時間は、対応して改善してはおらず、ランダムアクセスは、非常に非効率なものとなっている。待ち時間と比較した帯域内の大きな改善とは、順次アクセスがランダムアクセスより非常に「廉価」になっていることを意味する。更に、ランダムアクセスに勝る順次アクセスの性能上の利点は、時の経過と共に指数関数的に増大している。個々のテーブルへのアクセスでは、特に結合演算中、広範囲なランダムディスク及びメモリアクセスが必要である場合がある。各々が異なるテーブル中の別々の横列内に常駐する顧客エンティティの全ての部分にアクセスするには、多くのランダムアクセスが必要である。それによって結合演算、並びに他の問い合わせ演算を効率的に実行する際の困難度が更に増大する。
SQL問い合わせは、データベース対話アプリケーションの2つの群、すなわち、OLTP(オンライントランザクション処理)とDSS(意志決定支援システム)アプリケーションと最初に呼ばれていたOLAP(オンライン分析処理)とにおいて使用される。OLTPアプリケーションは、オンライントランザクションを処理する。このようなトランザクションに関連の情報は、従来の記憶スキーマを使用して、効率的に図1に示すうちのいずれか1つのような単一のテーブルに追加するか、又は単一のテーブルから検索することができる。しかし、エンティティが益々多くのテーブルに及ぶ時に、結合演算及びランダムアクセスの追加されたコストにより、このような問い合わせは、益々非効率なものになる。
簡単な関係を備えた小さいデータベースに対して、OLAPアプリケーションによる情報要求は、適切な効率で処理することができる。複雑なデータベースでは、OLAPアプリケーションは、多くの横列を含むテーブル中の僅かに少しの縦列のみからのデータを検索、取り出し、及び集約する。各テーブルは、索引を付されないあらゆる次元に対して、又は予め計算されていないあらゆる集約に対して漏れなく走査する必要がある。従って、比較的複雑な関係データベースへのあらゆる解析的問い合わせにより、適切な時間に結果データセットを生成されることはありそうもない。
例えば、図3Aは、特定の顧客に注文される各々の本に関してタイトル及び販売価格をリスト化しようとするOLTP問い合わせ50を示している。SELECTクローズ51は、各品目に関する1つの横列において、顧客テーブル36から選択された顧客の姓名に関する最終結果データセット、本テーブル35から本タイトル、及び品目テーブル40から販売価格を定める。
FROMクローズ52は、SQL問い合わせ50の実行中にアクセスすべき各テーブルを識別する。この特定の例においては、テーブルは、それぞれ、顧客テーブル36、注文テーブル37、品目テーブル40、及び本テーブル35である。
WHEREクローズ53は、各テーブルから検索すべき横列を識別して結合を確立する。この例においては、第1の条件54では、顧客テーブル36中のCUSTOMERID値は、注文テーブル37中のfkCUSTOMERIDフィールド内の値に等しいことが必要である。条件55及び56は、注文テーブル37中のORDERIDフィールドと品目テーブル40中のfkORDERIDフィールド内の値との間、及び本テーブル35中のBOOKID値と品目テーブル40中のfkBOOKIDフィールドとの間に類似の関係を確立して結合される。最終条件57は、顧客テーブル36中のCUSTOMERIDフィールドが「20」に等しいという基準を確立する。
公知でありかつ図4で論理的に示すように、データ処理システム58は、SQL問い合わせ50の受信に応答して、SQL問い合わせを構文解析、最適化、及び実行することによって最終resultsetを生成する。問い合わせ構文解析プログラム59は、データ辞書60内の情報を使用して各SQL問い合わせを一連のSQLクラスに変換する。問い合わせ最適化プログラム61は、SQL問い合わせ及び問い合わせ構文解析プログラム59から情報及びデータ辞書60に応答して問い合わせ計画を生成する。実行ユニット62は、問い合わせ計画及びデータ辞書60及びデータストア63からの情報を処理してresultsetを生成する。
一般的に、データ辞書は、データの要素の定義及び表現を有するメタデータを含む。DBMSの関連では、データ辞書は、1組のテーブル及びビューであり、データの要素の定義、ユーザ名、横列及び特権、スキーマオブジェクト、一体性に関する制約事項、蓄積手順及びトリガ、一般的データベース構造に関する情報、及び空間割り当て情報を保持する。この実施形態では、図4のデータ辞書60は、1組64のテーブルエントリを含む。組64内の各テーブルエントリは、1組65の属性又はフィールド定義を含む。組65内の各定義は、各属性又はフィールドに関する1組66の特性の組を含む。
変更ログ67は、全てのデータ挿入、削除、及び更新処理の耐久性を容易にするものである。公知のように、変更ログ67のような変更ログは、ディスク又は光ドライブのようなあらゆるクラスの不揮発性記憶装置内のあらゆる変化を記録する。
データベースシステムは、あらゆる処理システム内で作動してあらゆる数のコンピュータ、処理、スレッドなどを使用することができる。各アプリケーションは、性能又は他の考慮事項を満たすために、複数回再現又はインスタンス化することができる。更に、異なるシステムは、異なる方法で処理SQL問い合わせを処理することができる。図3Bは、図3AのSQL問い合わせ50に関する1つのこのような問い合わせ計画70を示し、図3C及び図3Dは、実行ユニット62が問い合わせ計画70を処理した時に生成される中間及び最終の結果の組を示している。図3B及び図3Cを合わせて参照すると、最初に、段階71は、CUSTOMERID値が「20」である顧客テーブル36中の記録を含む第1の中間resultset71Aを定める。この第1のresultsetは、この特定の例においては、顧客テーブル36からの記録を1つだけ含む。明らかなように、このような選択は、CUSTOMERID値を取得するように名前情報、この例においては顧客「Adam Apple」に応答して行うことができる。
段階72は、CUSTOMERID=20に対応するあらゆる注文を識別するためにテーブル37を走査する第1の結合演算を表している。従って、段階72は、顧客データと共に、「Adam Apple」に関連する注文テーブル37からの各記録を含む第2の中間resultset72Aを生成する。
第2の結合演算73では、中間resultset72A内のORDERID基本キー値及び品目テーブル40中のfkORDERID値を使用して、「Adam Apple」が注文した品目を識別する。第3のresultset73Aが生成される。第3の結合演算74では、それらの横列を結合し、段階73で、本テーブル35からの対応する本により、段階73Aのresultset内のfkBOOKID外部キー値及び本テーブル35中のBOOKID基本キー値を通じてresultsetを生成し、第4のresultset74Aを生成する。射影演算75では、SQL問い合わせ50によって定められたように、この第4のresultset74Aを「Adam Apple」が購入した各本に関する顧客の姓名及び販売価格及びタイトルを含む最終resultset75Aに変換する。
図3AのSQL問い合わせ50に関する望ましい結果は比較的簡単であるが、このシステムは、4つの異なるテーブルにアクセスして顧客エンティティを再組み立てして対応する本タイトルを抽出するように3つの結合演算を処理する必要がある。更に、顧客エンティティの各部分は、異なるテーブル中に常駐し、従って、そのあらゆる注文及びあらゆる品目に非効率なランダムアクセスによって個々にアクセスする必要がある。
より解析的な問い合わせの一例として、図5Aは、本価格及び品目価格が異なると仮定して州別に本に対する平均現金値引きを取得するSQL問い合わせ80を示している。SQL問い合わせ80は、2つの要素を識別するSELECT文81、すなわち、州コード及び計算現金値引き値を含む。値引き値は、図2の本テーブル35のリスト属性により記録されたリスト本価格と品目テーブル40中のSALE属性により中で記録された実際の販売価格との現金差額として確立される。この特定のSQL問い合わせにおいては、FROM文82は、顧客テーブル36、注文テーブル37、本テーブル35、及び州テーブル41を識別する。WHERE文83は、図3Aに関して上述したものと同じ方法で適切な関係を確立するために4つの条件を確立する。GROUPBY文84は、グループ分けすべき複数の縦列に処理を誘導する。それによって1つの指令で複数の縦列に集約機能を実行することができる。最終resultsetにより、二段組報告書が生成される。一方の縦列は、州名を含み、他方の縦列は、その州の顧客に対する全ての販売に関する平均現金値引きを含む。
図5Bは、図5A内のSQL問い合わせ80を処理する図3Bに示すものに類似した処理を示している。この例においては、WHEREクローズは、望ましい結果を生成するのに必要である4つの結合を定める。より具体的には、問い合わせ計画90は、最初に顧客テーブル36を識別する。第1の結合演算91では、図5AのWHEREクローズ83の第1の要素に応答してCustomerID値で顧客テーブル36及び注文テーブル37を結合する。第2の結合演算92では、品目テーブル40で演算91によって生成されたデータセットを結合する。第3の結合演算93では、次に、結合演算92の結果及び本テーブル35からの対応する値に基づいてresultsetを生成する。最終結合演算94では、結合演算93で生成されたresultset及び州テーブル41中のデータを結合する。射影演算95では、州コード、本価格、及び品目価格に関する値を生成する。集約演算96では、州コードに基づいて、値引き価格の平均値を生成して97でresultsetを生成する。明らかなように、問い合わせ計画90が構築されると、実行ユニット62は、問い合わせ計画90を処理して指定のresultsetを生成する。
図5AのSQL問い合わせ80に関する望ましい結果は、3つの縦列だけで作動して比較的簡単なように見えるが、システムは、必要なデータが5つの個々のテーブル中に常駐するので4つの結合演算を処理する必要がある。結合演算の比較的効率的な実施例でさえも、かなりのシステムリソースが必要である可能性がある。テーブルのサイズが増大する時に、結合実施にも問題が発生する。多くの結合演算を処理する必要がある時、処理遅延は、時々許容不能レベルまで増大する。これらの問題にも関わらず、殆どのデータベースは、連続した横列及び属性縦列から成る複数の関連のテーブルとして、関係論理的データモデルに密接に追随する正規化されたテーブル中のデータを格納し続ける。テーブル間の論理関係は、一般的に、データが実際にテーブル中に格納される方法に影響を与えるものではない。データベースシステムは、全てのテーブルに対して関係を確立するために結合を実行し、関連の部分を適合させるために多くのランダムアクセスを必要とするものでなければならない。
図1及び図2に示すような様々なテーブル中にデータを格納する別の手法では、上述の問題を認識して、テーブルの全ての縦列を縦方向に位置決めすることによってデータベーステーブルを格納することを提案する。それによってLAPアプリケーションを処理する時に検索のためのデータが最適化される。例えば、Frenchに付与された米国特許第5、794、229号(1998年)では、このような記憶スキーマが開示されている。システムは、図1に示すような従来の論理的関係データベース管理システムテーブルを使用する。従来の横列構造でデータを格納するよりもむしろ、この明細書の図2に示すように、システムは、属性名別に縦列内にデータを格納するだけである。各縦列は、連続してデータページ上に配置されている複数のセル(すなわち、特定の記録の縦列値)を含む。この明細書の図1の関連では、テーブル37、テーブル40、及びテーブル41の各々は、縦列構成で格納される。
問い合わせに応答して、そのシステムは、関連のデータであるデータの縦列だけを分析して、最適化プログラムを使用してテーブルの結合順序を選択する。システムは、問い合わせに対して主としてこのようなものではない情報から成る横列ベースのデータページは検索しない。検索された縦列ベースのページは、完全にではないにしても、殆どそのような情報を含む。それによってブロックI/O転送分の大型化、従って、OLAP形式の問い合わせの実行の高速化が可能である。各結合演算の実行は、検索及び結合する必要があるのは基本キー及び外部キーの縦列内のデータだけであるので改善することができる。しかし、全ての縦列を結合する必要がある。従って、結合演算の回数は、テーブルの数よりはむしろ属性の数に従って増加する。縦列ベースのシステムでは、良好に機能するのは、射影性が低くかつ選択度が低い問い合わせの場合のみである。別の言い方をすれば、これらのシステムは、射影処理対象の属性が数個のみであり、かつ使用されるデータが横列の殆どからのものである問い合わせに対して適合される。テーブル当たりに多くの属性にアクセスする問い合わせを実行すれば、同じテーブル中の全ての属性に対して多くの結合を実行することが必要になるので非常に非効率になる。従って、どのように簡単なOLTP問い合わせでも、その処理は、非常に非効率なものになる。例えば、図1及び図2内の顧客テーブル36から横列1つだけを検索するには、各々が異なる縦列内に位置する7つの属性値をフェッチすることが必要である。
Sah他に付与された米国特許第7、024、414号(2006年)では、縦列データの格納も開示されている。このシステムは、テーブルデータを値の縦列に構文解析する。各縦列は、データの連続的ストリップとして記憶装置への転送に向けてデータストリームにフォーマット設定される。単一縦列での蓄積構造及び複数縦列での蓄積構造の両方が開示されている。各縦列は、記憶装置のページサイズに関係なく圧縮データの連続的ストリップとしてデータストリームとして格納される。
これらの手法には、多くの横列のいくつかの完全な縦列にアクセスするOLAPアプリケーションのような使用量パターンに関する問い合わせ処理に向けてストレージを最適化することにより、様々な利点がある。しかし、OLTP問い合わせ処理は非効率的である。そのうえ、単一の完全なエンティティをアセンブルするために、各属性は、ランダムアクセスを手段として別々のバイナリテーブルから検索する必要がある。従って、水平方向記憶スキーマを使用するシステムは、OLAP問い合わせ処理が非効率的であり、一方、垂直方向記憶スキーマを使用するシステムは、OLTP問い合わせ処理が非効率的である。
「キャッシュ性能に関するウィービング関係」(Ailamaki他、講演論文集、第27回LDB会議、ローマ、2001年)という名称の論文では、更に別の代替データ記憶スキーマが説明されている。従来のN値記憶モデル(NSM)においては、データテーブルの横列は、メモリ内のページにわたって広げられている。説明されている「Partition Attributes Across(PAX)」システムは、各ページ内のデータを垂直パーティションに変換して、キャッシュ利用及び性能を改善する。しかし、横列フォーマット式データは失われ、データのコピーは1つしかない。横列を再形成するためには、横列を含むページ内の垂直パーティション間に「ミニ結合」を実行する必要がある。ミニ結合により、発生するコストは最小のものになるが、その理由は、表示範囲が1ページを超えなくて済むからである。問い合わせ応答では、システムは、各ページを走査して、問い合わせが定める各属性に対して垂直パーティションをフェッチ又は検索する必要がある。条件を満たす横列又は記録が識別及び再構成される。この論文では、この変化による性能強化が説明されているが、あらゆるこのようなシステムは、依然として、NSMスキーマに従って格納されたデータベースで処理される全ての結合を処理する必要がある。更に、単一の属性を処理するには、依然としてデータテーブルの横列が存在する完全な1組のページをフェッチ及び処理することが必要である。
結合演算のコストを低減する1つの提案されている手法は、ベーステーブルを使用するよりはむしろ以前に定義済みの達成されたビューを使用することによって問い合わせに答えるということである。達成されたビューは、結果が具体的なテーブルとして格納されている予め計算された問い合わせを表し、かつ元のベーステーブルから随時更新することができる。Galindo−Legaria他に付与された米国特許第6、510、422号(2003年)、Larson他に付与された米国特許第6、850、933号(2005年)、及びColby他に付与された米国特許第6、199、063号(2001年)では、「ビュー利用」に関する問題としても公知である問い合わせに答える達成されたビューの使用への類似の手法が開示されている。すなわち、この手法は、結合されたフォーマットで格納された実体化されたビューを処理することによって特定の問い合わせに答えるための必要な結合演算の回数を低減するということである。Lohman他に付与された米国特許第6、356、889号(2002年)及びTaoに付与された米国特許第7、191、169号(2007年)では、関連の「ビュー選択」に関する問題に対するいくつかの手法が示されており、実体化すべき1組のビューは、特定の1組の問い合わせを評価するコストが最小にされるように、かつビューが所定のストレージスペース制約条件内にあるように選択される。実体化されたビューに関する手法は、実体化されるこれらの結合演算の数を低減することができる。しかし、これは、その1組のビューを判断、維持、及び格納するという多大なコストになり、それによってその用途が最もリソース消費型である問い合わせだけに限定される。更に、実体化されたビューは、正規化された形態から非常に外れた形態でデータを格納するために、大量のストレージスペースを消費する傾向があり、問題が更に深刻化する。
「亀裂ミラーの事例」(Ramamurthy他、講演論文集、第28回VLDB会議、香港、2002年)という名称の別の論文では、データがNSMモデル及び「分解ストレージモデル(DSM)」に従って格納されるデータベースミラーリング格納スキーマに対して説明されている。2枚のディスクが、ミラーリングされる。1つの手法では、第1のディスクは、NSMフォーマットで1次データのコピーを格納し、第2のディスクは、DSMフォーマットに従ってデータの1次コピーを格納する。別の手法では、データの小部分が、2つのコピー間の負荷平衡の改善をもたらすように2つの物理ミラーにわたって格納される。例えば、システムがNSM及びDSMモデルとして格納されたデータを含む場合、第1のミラーリングディスクは、NSMモデルからの第1の小部分NSM0及びDSMモデルからの第2の小部分DSM1を格納することができる。逆に、第2のミラーリングディスクは、DSMモデルからの第1の小部分DSM0及びNSMモデルからの第2の小部分NSMlを格納する。このシステムは、各ストレージ小部分の複製コピーを行うが、その主な目標は、他のRAIDミラーリングスキーマを置換し、かつ異なるスキーマが異なる目的に使用される場合に(OLAP形式のロードに対しては一方のスキーマ、OLTPロードに対しては他方のスキーマ)ミラーリングスキーマを組み込むことである。このシステムは、NSMスキーマに従って格納されたデータベースで処理されると思われる全ての結合も処理する必要がある。
必要とされるものは、複雑なデータベースに対して高収量をもたらし、かつOLTP及びOLAPの問い合わせに対する応答を最適化すると共に、情報要求の複雑化、データモデルの複雑化、及びデータの多量化に対処することができるデータベース管理システムである。更に必要とされるものは、結合の処理を最小にして、順次アクセスを最大に利用し、メモリ、特にディスクメモリ内のランダムアクセス演算を最小にすると同時にデータの2つの完全なコピーを維持するデータベース管理システムである。
米国特許第5、794、229号 米国特許第7、024、414号 米国特許第6、510、422号 米国特許第6、850、933号 米国特許第6、199、063号 米国特許第6、356、889号 米国特許第7、191、169号
「キャッシュ性能に関するウィービング関係」(Ailamaki他、講演論文集、第27回LDB会議、ローマ、2001年) 「亀裂ミラーの事例」(Ramamurthy他、講演論文集、第28回VLDB会議、香港、2002年)
従って、本発明の目的は、高収量をもたらすデータベース管理システム及び方法を提供することである。
本発明の別の目的は、性能及び収量を最適化するために2次元又は記憶スキーマでテーブルデータを格納するデータベース管理システム及び方法を提供することである。
本発明の更に別の目的は、テーブルデータが2つの次元に沿って組織されたデータ構造に格納されるデータベース管理システム及び方法を提供することである。
本発明の更に別の目的は、各々が異なる方法で組織され、それによって特定の使用量パターンに向けて順次アクセスを可能にする2つのデータセットにテーブルデータが格納されるデータベース管理システム及び方法を提供することである。
本発明の更に別の目的は、第1のデータのコピーが修正横列フォーマットで格納され、データの別のコピーが縦列フォーマットで格納されるデータベース管理システム及び方法を提供することである。
本発明の更に別の目的は、従来の問い合わせが、修正横列フォーマットのデータのコピー又は縦列フォーマットのデータのコピーにアクセスすべきか否かを判断する問い合わせ計画に変換されるデータベース管理システム及び方法を提供することである。
本発明の更に別の目的は、データのコピーが結合情報を埋める修正横列フォーマットで格納されるデータベース管理システム及び方法を提供することである。
本発明を実施するための最良のモード
本発明の第1の態様により、データベース管理システムは、各テーブル群が、1つのルートテーブル及び関連の少なくとも1つの他のテーブルを含み、各論理テーブルが、属性の縦列及びデータの横列を有するように特徴付けられる少なくとも1つのテーブル群を含む論理データベースモデルのデータに関するデータベースストレージを含む。データベースストレージは、第1及び第2のデータストアを含む。第1のデータストアは、第1の次元でデータベース内の複数のメモリ位置内に全てのデータを位置決めし、複数メモリ位置の各々は、ルートテーブルの1つの横列からの全てのデータと、群関連データが1つのルートテーブル横列である他のテーブルからの全ての関連のデータとを含む。この記憶スキーマは、そのルートテーブル横列及び他の関連のテーブル中の関連の横列内の全てのデータへの順次アクセスを可能にする。第2のデータストアは、第2の次元で複数のメモリ位置内にデータベース内の全てのデータを位置決めし、各メモリ位置は、従って、各属性内のデータへの順次アクセスを可能にするためにデータベース内の属性の1つからの全てのデータと全ての対応する値とを含む。
本発明の別の態様により、異なる関係にあるテーブル及びデータ辞書を有する論理データベース内に含まれたデータのデータ構造が生成される。テーブル群は、データ辞書内のデータに基づいて、各テーブル群に対して、ルートテーブル及びそれに関連するテーブルを含む論理データベース内のテーブルから形成される。第1のデータストアユニットは、データベースのデータが第1の次元で格納される全てのテーブル群に対して作成され、複数のメモリ位置の各々は、従って、そのルートテーブル横列及び関連のテーブル横列内の全てのデータへの順次アクセスを可能にするために、ルートテーブルの1つの横列からの全てのデータと、関連のテーブルからの関連のデータとを含む。第2の次元で複数のメモリ位置でデータベース内にデータを格納する第2のデータストアユニットが作成され、各メモリ位置は、従って、各属性メモリ位置内のデータへの順次アクセスを可能にするために、データベース内の属性からの全てのデータと全ての対応する値とを含む。
本発明の更に別の態様により、異なる関係であるルートテーブルと、関連のテーブル及び各テーブル及びデータベース内のそのテーブルのテーブル群を識別するデータ辞書とを有する論理データベースに問い合わせを提供し、テーブルの各々は、縦列内の属性及び横列内のデータを含む。第1のデータストアユニットは、第1の次元でデータベース内にデータを格納し、複数のメモリ位置の各々は、ルートテーブルの1つの横列からの全てのデータと、関連のテーブルからの関連のデータとを含む。第2のデータストアユニットは、第2の次元でデータベース内の複数のメモリ位置に全てのデータを格納し、各メモリ位置は、データベース内の属性の1つからの全てのデータと、全ての対応する値とを含む。問い合わせに応答して、テーブル群及び問い合わせ内のテーブルが識別される。問い合わせを構文解析する段階では、識別された問い合わせテーブルにデータ辞書によって供給されたテーブル群内のテーブルを比較する。データベース及び問い合わせに共通であるテーブル内に含まれる問い合わせ内の属性のリストが抽出される。この情報により、複数の処理オプションのうちの1つの識別が可能である。選択されたオプションでの処理中に、テーブル群に関連するものであった問い合わせの部分を満たす中間resultsetを取得する。中間resultsetを結合することによって最終resultsetを取得する。
添付の特許請求の範囲は、本発明の主題を特に指摘し、かつ明確に主張している。同様の参照番号が同様の部分を指す添付図面に関連して以下の詳細説明を読むと、本発明の様々な目的、利点、及び新しい特徴は、より完全に明らかであろう。
著者テーブル、本テーブル、顧客テーブル、注文テーブル、品目テーブル、及び州テーブルを含むサンプルデータベースに関する従来技術の一般的な関係図である。 何らかの代表的データを付した図1のテーブルの各々に関する従来技術のデータシート図である。 図1及び図2に表したシステムから関連のデータを検索する特定のSQL問い合わせを示す図である。 従来技術のシステムがその指令を解釈する問い合わせ計画を示す図である。 図3Bの問い合わせ計画の実行中に生成された中間resultsetを集合的に示す図である。 図3Bの問い合わせ計画の実行中に生成された最終resultsetを集合的に示す図である。 従来技術のデータベースを実行するシステムユニットの一般的な配置を開示する機能ブロック図である。 図1及び図2内に表したシステムから関連のデータを検索する別の特定のSQL問い合わせを示す図である。 図5AのSQL問い合わせに関する従来技術の問い合わせ計画を示す図である。 本発明を実行するシステムユニットの一実施形態を開示する機能ブロック図である。 本発明による第1の次元でのデータベースの記憶スキーマの論理的表現を示す図である。 本発明による第2の次元でのデータベースの記憶スキーマの論理的表現を示す図である。 本発明の使用中に生成されるデータ辞書を開示する機能ブロック図である。 図7の記憶スキーマを生成する処理の流れ図である。 図8の記憶スキーマを生成する処理の流れ図である。 図10A及び図10Bの処理を理解する際に有用な状態図である。 図10A及び図10Bの処理を理解する際に有用な状態図である。 図10A及び図10Bの処理を理解する際に有用な状態図である。 図10A及び図10Bの処理を理解する際に有用な状態図である。 図10A及び図10Bの処理を理解する際に有用な状態図である。 図2に示すデータを伴った図7内の記憶スキーマの実施例を集合的に開示する図である。 図2に示すデータを伴った図8の記憶スキーマの実施例を開示する図である。 本発明のデータベース管理プログラムにおいて有用である問い合わせ計画を開発及び実行する処理を示す図である。 本発明のデータベース管理プログラムにおいて有用である問い合わせ計画を開発及び実行する処理を示す図である。 本発明のデータベース管理プログラムにおいて有用である問い合わせ計画を開発及び実行する処理を示す図である。 本発明のデータベース管理プログラムにおいて有用である問い合わせ計画を開発及び実行する処理を示す図である。 図3Aの問い合わせに関して図14の方法により開発された問い合わせ計画を示す図である。 図3Aの問い合わせの実行中に生成される様々なresultsetを示す図である。 図5Aの問い合わせに関して図14の方法により開発される問い合わせ計画を示す図である。 データベース更新に関する流れ図である。 本発明の記憶スキーマを生成する代案を表すXML文書の図である。 図18内の情報に従って組織される図2のデータベースからの実際のデータを表すXML文書の図である。
従来技術のデータベース管理システムの組織及び運用は、本発明及びその利点の理解を容易にするものである。本発明は、まず基本的アーキテクチャ及び記憶スキーマの論理的表現を説明し、次に、特定のデータベースのスキーマ及び問い合わせが処理される処理を説明することによって最も良好に理解することができる。より具体的には、図6〜図11Eは、論理レベルでこのようなシステムを示している。図12A〜図13は、図2のデータを組み込む第1及び第2の記憶スキーマの特定の実施例を示している。図14〜図16は、システムが図3Aに示すSQL問い合わせを問い合わせ計画に変換する処理を示している。データベース内の情報を更新する処理の説明及び代替XML実施例の説明を次に図17〜図19で行う。
基本アーキテクチャ
図6は、本発明を組み込むデータベース管理システム100の一実施例の機能ブロック図である。この基本レベルでは、システム100は、図4のシステムと類似のものであり、構成要素として、問い合わせ構文解析プログラム101、データ辞書102、問い合わせプロセッサ103、及び変更ログ105を含む。明らかなように、これらのシステム構成要素の各々のこの特定的な実施例は、本発明の特定的な実施例により変化する。図4のシステムと異なり、この実施形態では、問い合わせプロセッサ103は、問い合わせプロセッサ103が開発する問い合わせ計画に従って第1次元データストアユニット106、第2次元データストアユニット107、又はその両方と対話する。第1及び第2次元データストアユニット106及び107の各々は、全てのデータを格納するが、異なる記憶スキーマによるものである。その結果として、本発明は、異なる記憶スキーマに従ってであるが、データの2つのコピーを維持することによってデータ冗長度をもたらす。
第1次元データストアユニット106
第1次元データストアユニット106は、データが簡単にアクセスされるように「水平」スキーマでデータを格納する。図7に示すように、第1又は「水平」ストレージ容器内のデータは、「クラスター」及び「クラスター横列」を通じて最も粗いとしての「容器」から最も細かいとしての「属性」まで順位付けられるデータの塊により特徴付けられる。これらの用語及び表現の各々は、図1及び図2に示す論理データベースの何らかの部分との一致を有する。「クラスター横列」は、論理テーブル中の1つの横列に対応しており、その横列内の全てのデータを含む。「クラスター」は、関連のクラスター横列を含む。「容器」は、特定のテーブル群に関する全てのクラスターを含む。
図1内の論理的表現に適用されるように、図7は、図2内の著者テーブル群31に対応する「著者クラスター」の第1の容器110を示している。第2の容器111は、顧客テーブル36、注文テーブル37、及び品目テーブル40を含むテーブル群32からのデータを含む「顧客クラスター」を格納する。第3の容器112は、州テーブル41を含むテーブル群33からのデータを含む「州クラスター」を格納する。
容器110においては、クラスター113は、1つ又はそれよりも多くの関連のクラスター横列115の組114を含む。単一のクラスター横列は、対応するテーブル内の1つの横列に対応する全ての属性及び値を含む。各クラスターにおいては、第1のクラスター横列は、本発明を理解することを目的として、データが他のテーブル内のデータとは独立しているテーブルである「ルートテーブル」から取られる。図1の論理データベースの実施例では、著者テーブル34、顧客テーブル36、及び州テーブル41は、「ルートテーブル」である。
各クラスター横列は、直接アクセス物理データストアのような順次メモリの連続的又は隣接するストレージ位置に格納されている。好ましくはかつ後で明らかになる理由から、各クラスターは、1つの順次読取演算において互いに隣接して位置するいくつかの結果の点数を取得することによって性能を最大に利用するために隣接して格納すべきでもある。状況に基づいて、容器内の隣接するストレージ位置に全てのクラスターを格納することが有益であることになる。しかし、クラスター横列、クラスター、又は容器は、そのように格納する必要はないが、性能の付随する劣化が問題のないことを条件とする。
尚も図7を参照すると、ラスタ横列115のような各クラスター横列は、ヘッダ116及び本体117を含む。各ヘッダは、以下の本体のコンテンツを説明する情報を含む。この特定的な実施例では、各ヘッダは、クラスター「横列識別子(RID)」フィールド12O7、「クラスター識別子(CID)」フィールド121、「横列形式」フィールド122、「属性ビットマップ」フィールド123、及び「属性値位置ベクトル」フィールド124を含む。
組合せで、すなわち、連結によってなどで、「横列形式」フィールド122と共にクラスター「横列識別子(RID)」フィールド120は、テーブル群に対して指定の容器内の横列を固有に識別する。「クラスター識別子(CID)」121フィールドは、容器内のクラスターを固有に識別する。具体的には、「横列形式」フィールド122は、特定のテーブルを識別し、RID値の順序は、そのテーブル内の横列の順序に対応する。一般的に、あらゆるテーブルのRID値は、テーブル横列番号である。自動増分単一属性基本キーがテーブル内にある時、RIDフィールド120は、その特定の横列に対してその基本キー値を格納することができる。他の基本キー実施例に対して、RIDフィールド120は、テーブルに追加された疑似縦列として独立したカウンタによって実施することができる。
図1のデータベースに対して、テーブルの各々は、RIDとして使用されて自動増分基本キーを有すると仮定している。CIDフィールド121は、一般的に、ルートテーブル内の対応する横列に対してRIDフィールド120内の値に対応する。従って、クラスター内の第1の横列は、RIDフィールド120及びCIDフィールド121において同一値を有する。しかし、あらゆる任意値システムは、RIDフィールド120及びCIDフィールド121の両方に対して固有の識別子を供給することができる。
「横列形式」フィールド122は、本体117のデータソースの性質を定める。すなわち、クラスター横列のデータがテーブルからのものである場合、「横列形式」フィールド122は、その目的が対応する特定のテーブルを識別する。他の「横列形式」値は、XML文書化ノード、画像、DNAセグメント、「小塊」又は他の横列形式を識別することができる。
「属性ビットマップ」フィールド123は、クラスター横列内の各属性がデータ又はヌル値を含むか否かを示している。
「属性値位置ベクトル」フィールド124内のデータは、属性値A125、属性値B126、及び属性値C127のような本体117内の属性値を指摘する。クラスター横列内のデータが順番に格納される場合、ベクトルは、アドレス又は基準アドレスからのオフセットによって定めることができる。
第1次元データストア106内のデータのこの構造は、大きな利点となっている。具体的には、テーブル群内の全ての記録は、冗長性がない関係で格納され、システムは、特定のテーブル群からデータを取得する結合演算を実行する必要がない。例えば、著者クラスターは、著者の姓名、生年月日、及び連絡先情報があるクラスター横列を含む。RID及びCIDフィールド120及び121は、対応する著者の基本キーを含む。次のクラスター横列は、CIDフィールド121内に同じ値、ただし、RIDフィールド120内には新しい値を有し、その著者により書かれた1冊の本のfkAuthorID値、タイトル、表示価格、刊行日、及び説明を格納する。クラスターは、著者が書いた各々の付加的な本に対して付加的なクラスター横列を含む。各々の付加的なクラスター横列は、CIDフィールド121内に同じ値、ただし、RIDフィールド120内には固有の値を含む。これらのRID及びCIDフィールド120及び121によってこそ、データを図1に示す暗黙の関係に従って格納することができ、かつ著者及び著作に関する全ての情報への容易なアクセスが可能であり、結合演算を実行しなくて済む。
明らかなように、図1のテーブルが「自動増分」形式の基本キーを有する場合、基本キー値もテーブル横列を識別する。その結果として、RID値129は、基本キー値に直接に対応しており、すなわち、RID属性120は、基本キー属性に相当する。従って、あらゆるクラスター横列115の本体117内に基本キー値を格納することは必要ではない。基本キー及びRID値が同じではなく、例えば、基本キーが電子メールアドレスであり、かつRIDとして使用されない場合、基本キー属性は、本体117内に格納される。
第2次元データストアユニット107
図8をここで参照すると、第2次元データストアユニット107も容器を含む。この特定的な実施例では、これらは、「縦列容器」である。各テーブル−属性組合せに対して、図8の記憶スキーマに従って格納された1つの縦列容器がある。
各縦列容器130は、縦列名前フィールド132、縦列形式フィールド133、データタイプフィールド134、及び付加的なインデックスフィールド135を有するヘッダ131を含む。縦列名前フィールド132は、縦列容器を固有に識別する。1つの識別方法は、テーブル名及び属性の連結を含む。例えば、縦列名前フィールド132内のAUTHOR:LASTNAMEは、同じフィールド名、すなわち、CUSTOMER:LASTNAME縦列容器でさえも、別の属性に対して別の縦列と区別する。図6内のデータ辞書102は、この情報を含む。
縦列形式フィールド133は、そのフィールドに対してデータの構造を表示する。様々な構成の例には、固定長又は可変長フィールド及び固定長コードテーブルがある。図6内のデータ辞書102は、この情報を含む。尚も図8を参照すると、データタイプフィールド134は、データ辞書情報も使用してデータの性質を識別し、このデータは、そのフィールドのためのストレージの性質を識別する。通常、縦列内の全ての値は、非常に有効な圧縮を可能にする同じデータタイプである。sting及び倍長整数は、データ形式の例である。付加的なインデックスフィールド135は、どのインデックスがその属性に対して存在するかに対して識別し、属性は、インデックスを有していない場合もあれば、1つのインデックス又はいくつかのインデックスを有する場合もある。例えば、日付データフィールドは、日付の範囲を検索するように最適化された1つのインデックス及び特定の日付を見つけるように最適化された別のインデックスを有することができる。
値の範囲が比較的小さい「性別」の属性などを有する縦列に対して、コードテーブル137は、各コード及びその意味を表示する。性別コードテーブルにおいては、例えば、「0」は男性、「1」は女性を表示することができる。属性ストライド位置ベクトル140は、通常、可変長データタイプと共に使用される。ベクトル内の各位置は、実際データに対する直接的又は間接的なポインタである。縦列データフィールド141は、ヘッダ131内で定められるフォーマットに従ってデータを含む。
縦列容器の大きな特徴は、縦列として各属性の1組の値を隣接して格納することによって順次アクセスに向けて最適化することができるという点である。すなわち、列データは、1つの構成で格納することができ、一方、コードデータは、アクセスを改善する別の構成で格納することができる。縦列容器の別の利点は、高圧縮フォーマットで縦列容器内にデータを格納することができる点である。具体的には、縦列形式フィールド133は、各々が縦列内のデータの特定のデータ形式、並びに特定の特性を収容するように設計されているデータの異なる構造を定める。例えば、固定長データのまばらな縦列は、どの横列が非ヌル値を含むかに対して識別するためのビットマップ、並びにこれらの横列に対して非ヌル値だけを格納する縦列データフィールド141を含む構成を定める縦列形式フィールド133を利用することができる。
集合的に、第2次元データストアユニット107内の縦列容器は、第1次元データストアユニット106内のコピーとは独立したデータベースのコピーを提供する。すなわち、従来技術内のインデックスのような特定の基準に基づいて特定の横列を検索するのではなく、縦列は、効率的に問い合わせのresultsetの一部として処理することができるオリジナルテーブルの垂直方向の部分を検索するように設計される。
上述のように、テーブルのRIDフィールドは、そのテーブル内の横列を識別する。縦列構造では、RIDが常に対応する縦列位置を識別することが必要である。すなわち、顧客−注文−品目群内のルートテーブルのRIDが「20」である場合、顧客テーブルに関連の各縦列容器内の第20の横列は、顧客テーブルの第20の横列内のデータに対応する必要がある。その結果として、RID属性120が基本キー属性と同等である場合、基本キーに対して容器を作成することは必要ではない。基本キー及びRID値が同じではない場合、基本キー属性は、対応する縦列容器内に格納される。図1のデータベースに対して、第2次元データストアユニット107は、28個の縦列ではなく22個の縦列を含み、その理由は、図2内の各テーブルは、RIDとして使用される自動増分基本キーを有するからである。
データベースの形成
上述のように、SQLは、データベース管理システムのフロントエンドとの良く知られたインタフェースをデータベース設計者に供給する公知の一般的な規格である。データ及び処理問い合わせを格納するバックエンドのあらゆる実施は、データベース設計者に透明でなければならない。本発明は、このような透明性をもたらし、それによってデータベース設計者は、従来のSQL問い合わせでデータベース管理システムと対話することができ、一方、フロントエンド及びバックエンドは、以下に明らかにするように、より良好な収量及び応答をもたらすために、図7及び図8に示すスキーマに従ってデータベースを定義及びポピュレートする。
従来技術と同様に、データベース設計者は、テーブル及び属性を定めることによって本発明を組み込むデータベース管理システムと対話する。外部キー及び基本キーは、図1の論理図に示すように、テーブル間の関係を定める。図1内のデータベースのような論理データベースが定義又は更新される時、当業技術で公知の処理では、データ辞書を構築又は更新してテーブル内のデータを更新する。本発明の一実施例により、図9内のデータ辞書102のようなデータ辞書は、図4に示すものと同じ基本的メタデータを受信する。著者テーブル34に関連の辞書メタデータ部分34dに示すようなテーブル及び属性が識別される。
本発明では、「テーブル群」を識別する付加的な情報、各テーブル群に対する「ルートテーブル」及びそのテーブル群内のテーブル間の関係も必要である。この情報は、図6の第1及び第2次元データストアユニット106及び107のそれぞれのスキーマによる図1に示すような論理データベースの物理記憶を容易にするものである。図9、図10A、図10B、及び図11A〜図11Eは、これらの別種の記憶スキーマに図1の論理テーブルを変形する処理を示している。
まず図10Aを見ると、処理151は、関係モデル内のテーブル、関係、又は属性が作成、削除、又は更新される時にいつでも、すなわち、「更新イベント」時に段階152で始まる。サブルーチン153は、図10Bに示す段階に従ってデータ辞書102内の情報に応答してテーブル群を定める。より詳細にサブルーチン153を示す図10Bをここで参照すると、段階154で図9内の辞書102から関係データモデルを検索した後、段階155では、公知の方法及び基本キー及び外部キーに関連の関係を含む図9のデータ辞書内の情報を使用して、図11Aに示すような有向グラフを構築する。
このグラフにおいては、「テーブル」は「ノード」と、「リンク」は「有向エッジ」と同等に考えられる。図11A〜図11Eのノードは、「N」接尾辞で図1の対応するテーブルに関する参照番号により、有向エッジは、「E」接尾辞で図1の対応するリンクに関する参照番号により識別される。例えば、図1内の著者テーブル34は、著者ノード34Nになり、一方、リンク42は、有向エッジ42Eになる。ノードを識別した後に、有向エッジは、基本キーから外部キーまで延びるように定められる。図11Aに示す例においては、有向エッジ42Eは、本テーブル35がfkAUTHORID外部キーを含むのでAUTHORID属性を有する著者ノード34Nから本ノード35Nまで延びている。
次の段階156では、ここで図11Bでの破線として示す有向エッジ45Eのようなあらゆる検索エッジを削除する。ルックアップエッジは、州テーブル41のようなルックアップテーブルと顧客テーブル36のような非ルックアップテーブルとの間の高平均濃度により特徴付けられる。ルックアップテーブルは、他のデータとリンクさせることができ、かつ頻繁には変化しないキー属性値を含む参照テーブルである。
次に、段階156では、「ルートノード」を定める。「ルートノード」は、あらゆる先行ルックアップエッジが削除された後にそれらに方向付けられたエッジを有していないノードとして定められる。この例においては、段階156では、3つのルートノード、すなわち、著者ノード34N、顧客ノード36N、及び州ノード41Nを定める。
段階157では、「重要性」によりルートノードを順序付ける。一般的に、「重要性」は、各テーブル群に関する予想又は測定データ更新アクセス頻度に依存する。図11Bのグラフに示す構造においては、ここで説明する目的上、顧客ノード36Nは、活動が最多であり、著者ノード34Nは、活動が次のレベルであり、州ノード4インチは、活動が最少であると仮定している。段階160では、最も重要なルートノードを選択し、段階160は、各ルートノード及び他の関連のノード及び有向エッジを終了する段階161〜段階164を含むループへの入口である。
段階161は、全ての関係のあるノードに至る有向エッジに追従してテーブル群定義及び「定義関係」を作成する。「定義関係」は、各群の形成中に追随した有向エッジに対応する。後で明らかなように、各定義関係は、図10Aに従って処理した時にテーブル群の構築によって付加的な処理から排除される結合に対応する。
第1の反復中に、段階161は、顧客ノード36Nで始まり、注文ノード37Nに至る有向エッジ43E及び品目ノード40Nに至る有向エッジ46Eに追従する。段階161は、次に終了するが、その理由は、品目ノード40Nに関連の唯一の有向エッジ、すなわち、有向エッジ43Eが品目ノード4ONの方向を指しているからである。識別されたノードは、対応するテーブルに対して、グループ分け又は「テーブル群」を定める。この事例では、顧客ノード36N、注文ノード37N、及び品目ノード40Nは、それぞれ、対応する顧客、注文、及び品目テーブル36、37、及び40を含む。有向エッジ43E及び46Eは、2つの定義関係を確立する顧客テーブル群165を定める。すなわち、
(1)図9の注文テーブル37Dの特性内に格納されたfkCUSTOMERID=CUSTOMER:CUSTOMERID、及び
(2)品目テーブル4OD内に格納されたfkORDERID=OREDER.ORDERID。
このテーブル群に関連のノード及び有向エッジは、次に、図11C内の破線により表されるようにグラフから除去される。従って、段階162が第1の反復中に完了された後、著者、本、及び州テーブルノード34N、35N、及び41Nのみがグラフ内に残る。
付加的なルートノードが存在する時、段階163は、段階164における重要性の順で次のルートノード、すなわち、著者ルートノード34Nを選択するように段階164に制御を移す。第2の反復中、段階161は、著者ルートノード34Nで始まり、この例においては本ノード35Nに対する有向エッジ42Eに追従する。有向エッジ43Eは、他のいかなるノードも指示しておらず、品目テーブル4ONは、第1の又は顧客群165形成中にグラフから除外されてしまっている。従って、この反復が完了する時、有向グラフが、図11Dに示すように表示される。著者ノード34N及び本ノード35Nは、ここで、11Dに示すように、fkAUTHORID=AUTHOR.AUTHORID定義関係で著者テーブル34及び本テーブル35を収容する第2の又は著者群166を定める。州ルートノード41Nだけが残っている。
第3の反復中、段階164は、州ノード41Nを選択する。州ノード41Nが単独である時、段階161では、図11Eに示すように、州ノード41Nによって定められるように州テーブル41だけを含む第3のテーブル又は州群167を作成する。残りの有向エッジがないので、定義関係はない。図10Bの段階163は、次に、段階165に転じ、段階165では、図11Eに示す情報、具体的には、顧客群の定義、著者群、及び州群に示す情報を図10A内の手順の残りに渡す。
図10Bの段階157における重要性の判断の順序に変更があった場合、テーブル群定義は変わる。例えば、段階157が、著者テーブルが最も重要なルートノードであったように判断することであった場合、図10B内のループの第1の反復は、著者ノード34N、有向エッジ42E、本ノード35N、有向エッジ44E、及び品目ノード40Nを有する著者群を生成する。対応する定義関係が生成されるであろう。次の反復では、顧客ノード36N、有向エッジ43E、及び注文ノード27N、及び単一の定義関係で顧客テーブル群を定める。ルートノードの順序の判断は、あまり重要なものではない。重要な順序が最適でないことが判明した場合、この順序は、蓄積された統計情報に応答して手動で又は自動的に調節することができる。
次に、制御は、図10Aに戻り、この時点で、一連のネスト化ループを形成する段階170〜段階174では、系統的にサブルーチン153によって得られた情報を処理する。複数の反復中に、ネスト化ループは、図7及び図8のデータ構造を実行する図6の第1及び第2次元データストアユニット106及び107の各々に対して容器を生成する。図1の特定の例に対して、容器は、ユニット106内では各テーブル群に対して、ユニット107内では、各テーブル及びそのテーブル内の属性に対して形成される。具体的には、段階170では、それ以上テーブル群を処理する必要があるか否かを判断する。最初に、全てのテーブル群を処理していなければならず、従って、1つが選択される。その順序は、重要ではない。
段階171では、「長さ」のような属性及び定義済みの関係で格納された情報を含む対応するメタデータを使用してその群に対して新しい水平容器データ構造を作成する。すなわち、段階171では、図7に示す著者容器110、顧客容器111、及び州容器112のデータ構造のようなデータ構造を生成する。
次に、システムは、テーブル及び属性を処理する。段階172では、処理を必要とするテーブルが群内にそれ以上あるか否かを判断する。ない場合、制御は、段階170に戻る。テーブルがある場合、段階173では、処理する必要がある属性がそのタブレット以内にそれ以上あるか否かを判断する。ない場合、制御は、段階172に戻る。ある場合、段階174では、そのテーブル内の各属性に対して新しい縦列容器データ構造を作成し、各容器は、図8に示すようなデータ構造を有する。上述のように、図1に示す論理データベースに対して、システムは、著者テーブル34に対して4つの縦列容器を、本テーブル及び顧客テーブル35及び36の各々に対しては5つの縦列容器を、注文テーブル37及び品目テーブル40に対して3つの縦列容器を、州テーブル41に対しては2つの縦列容器を作成する。
図10A及び図10Bの以上の説明は、特に、データベースの作成に関するものである。当業者に明らかなように、処理151は、全体的又は部分的に関わらず、あらゆる関係の変化、又はテーブルの追加、削除又は修正、及び属性の追加、削除又は修正を処理に適応させることができる。
ここで、本発明により図1及び図2のデータベースに対して図6の第1次元データストア106のための容器内での記憶スキーマの特定の実行を説明することが役立つと考えられる。図12は、格納済み容器110、111、及び112が、上述のように、連続的反復の後に図10Aの段階171によりを生成されたデータストアユニット106の全体的な論理構成を示している。著者容器110は、各著者に対して1つのクラスターを含む。図2のデータに関する特定の実行においては、クラスター180は、著者「Sam Jones」に関する情報を格納し、クラスター181は、「Barbara Smith」に関する情報を格納する。
各クラスターは、1つ又はそれよりも多くのクラスター横列を有する。この例においては、各クラスターは、著者クラスター横列及び2つの本クラスター横列を含む。特定の用途においては、かつ図11Eのグラフに従って著者クラスター180は、著者クラスター横列182、本クラスター横列183、及び第2の本クラスター横列184を含み、データベース内には、その特定の著者により各々の本に対して1つの本クラスター横列がある。「Barbara Smith」に関するクラスター181も、著者クラスター横列185及び2つの本クラスター横列186及び187を含む。
図12A及び図12Bは、両方のクラスターの詳細を示すが、以下の説明は、図12Aのクラスター180が中心となっている。著者クラスター横列182は、全て、図7に示すように、RIDフィールド、CIDフィールド、クラスター横列形式、属性ビットマップ、クラスター横列に存在すると記載された属性に対するポインタを含む。各クラスター横列の上部のテキストは、説明を目的としたものに過ぎない。下部のデータだけが格納される。このクラスター横列182においては、RID値及びCID値は、同じであり、図2のルート著者テーブル34内の1つの横列に対応するルートクラスター横列を指定するものである。この著者に対して、クラスター横列は、縦列容器内の対応する縦列の第200の横列内にある。この例においては、全ての属性は、値を有するので、全ての属性ビットマップは、「1」という値を有する。ポインタ(PTR)フィールドは、直接、間接に関わらず、属性ビットマップが識別する4つの属性の各々に関する値を示している。上述のように、基本キー属性は、クラスター横列の本体内には存在しないが、その理由は、RID値として使用され、かつクラスター横列形式フィールドと共に、固有のテーブル及び横列を定めるからである。
クラスター横列182及び183の各々は、本テーブル35又は著者テーブル群165内の本の固有の値に対応する異なるRID値を有する。CIDフィールドは、著者クラスター横列182内のCIDフィールドの場合と同じ値を含む。それによって本は、著者に関連のものとして確立される。PTRフィールドは、属性ビットマップが識別する5つの属性の各々に関する値を示している。
図12B内のクラスター181に関するクラスター横列185、186、及び187の各々は、図12Aの対応するクラスター横列182、183、及び184と類似の構造を有する。本発明の別の特徴を強調表示する1つの相違点がある。図2内のデータによれば、「Adam Apple」は、連絡先情報を示しており、「Barbara Smith」は、示していない。従来技術であれぱ、「Barbara Smith」の連絡先属性は、「ヌルフィールド」内に格納される。図示のように、クラスター182内の属性ビットマップ190内の「連絡先」エントリは、「1」を含み、「連絡先」属性191は、データを含む。クラスター横列185においては、属性ビットマップ内の連絡先エントリ192は、「0」を含み、メモリ空間は、193で破線により表されるような連絡先属性に対しては割り当てられていない。この特徴により、連絡先属性193に対してヌル値を格納及び処理しなくて済む。明らかなように、この特徴は、ストレージスペースの低減に寄与し、かつSQL問い合わせのデータ設計者の構造を簡素化するものである。
図12C、図12D、及び図12Eは、図1及び図2の顧客テーブル、注文テーブル、及び品目テーブル36、37、及び40からのデータを含む容器111内の顧客テーブル群165に関するストレージ実施を示している。図12に示すように、顧客容器111は、各顧客に対して1つのクラスターを含む。図2のデータに関する特定の実施においては、クラスター194は、「Adam Apple」に関する情報を格納し、クラスター195は、「Bonnie Bird」に関する情報を格納する。
代表例としての図12C及び図12Dを見ると、クラスター194は、顧客クラスター横列200及び「Adam Apple」による2つの注文に対応する2つの注文クラスター横列201及び202を含む。注文クラスターの各々の次には、品目クラスター横列がある。具体的には、注文クラスター横列201の次には2つの品目クラスター横列203及び204があり、一方、注文クラスター横列202の次には、単一の品目クラスター横列205がある。「Bonnie Bird」に関するクラスター195のストレージは、この構成に追従する。「Bonnie Bird」が1冊の本に対して1つの注文を行っているので、クラスター195は、顧客クラスター横列206、順序クラスター207、及び品目クラスター208を含む。
容器167内の州テーブル群は、テーブルが1つのみであるので、ストレージは、図7に示すように表示され、容器167は、各州に対して「1」の州クラスターを格納し、2つの州クラスター210及び211が示されている。図11Eが含む州テーブル群内のノードは1つのみであるので、各クラスターは、単一のクラスター横列によって形成される。
上述のように、図6の第2次元データストア107は、図1の論理データベースから導出された各テーブル−属性組合せに対して1つの容器を格納する。RIDフィールドが基本キー値を含む場合、基本キー属性に対して縦列を格納する必要はない。
各容器は、ヘッダ及びデータを格納する。以下で説明する内容においては、「ヘッダ」及び「データ」は、ヘッダフィールドのよう特定のフィールド、又は状況的に認められる時にはそのフィールド内に含まれる情報を定めるために使用される。図13は、図8のような全体的な構造を有する図1及び図2のデータベースに関する縦列容器の3つのインスタンス生成を示している。尚も図13を参照すると、容器の各々は、「ヘッダ」及び「データ」区画を含む。すなわち、容器220は、「ヘッダ」223及び「データ」224を含み、容器221は、図8に示すベクトル140のような属性ストライド位置ベクトル226を有するヘッダ225及びデータ227を含み、容器222は、コードテーブル231を有するヘッダ230及びデータ232を含む。
各縦列容器内のヘッダは、データの特性に関する固有の識別及び情報を含む。これらのインスタンス生成においては、固有の識別は、テーブル名及びそのテーブル内の属性の名前の連結を含む。例えば、縦列容器220の識別は、BOOK_LISTである。従って、縦列220は、本テーブル35内の全ての本に関する表示価格を含む。容器221及び222の各々は、顧客テーブル36内のLastName及び性属性を表し、かつCUST_LASTNAME及びCUST−性により固有に識別される。
データ特性を定めている各ヘッダの部分では、データ設計者が行う初期選択に基づいて図9内のデータ辞書から情報を使用する。容器220は、固定長の倍長整数データを定め、容器221は、可変長列データを定め、容器222は、列データを有する固定長のコードテーブルを定める。
この実施例では、テーブルの基本キーは、カウンタ値が連続してそのテーブル内の各横列を識別するように、自動増分カウンタであると仮定する。例えば、容器220のデータ224内の値「17.00」は、そのテーブル内の横列番号「1」を指す。この実施形態では、そのテーブルには、特定の横列を識別する各テーブルに関連のカウンタが本質的に存在する。
いずれの実施でも、あらゆる縦列容器内のデータの順序が同じテーブルの他の縦列容器と同じ順番であることが必要であることは、必要不可欠なものである。同じテーブルの属性に関する縦列容器内の各横列においては、その横列内のデータのポインタとして基本キーを使用する。この形式の識別の使用は、容器内のデータとは独立したものである。例えば、容器221は、「Jones」のような共通の名前を有する複数の横列を含むことができる。名前の各例は、固有の識別子、すなわち、顧客テーブル36の基本キー値を有する。
問い合わせ処理
問い合わせに応答する問い合わせプロセッサ103、図6内の第1及び第2のデータストアユニット106及び107、及び図9内のデータ辞書102の間の対話に対して、問い合わせ計画を構築する図14の繰返しルーチン240を参照してここで説明する。問い合わせプロセッサ103は、最初に、段階241で問い合わせに関わる全てのテーブル群を識別する。次に、段階及びサブルーチン242〜245を含む繰返し処理では、242で識別済みのテーブル群を選択する。問い合わせ構文解析プログラム101は、最初に問い合わせ及びデータベースから情報を使用して、そのテーブル群内のどのテーブルが分析に関連するかを識別する。次に、最適化する段階では、サブルーチン244において、選択されたテーブル群に関してデータベースのどれだけがアクセスされ、そのテーブル群に対して問い合わせ基準を満たす全てのデータを有する中間結果組を取得するよう処理されるかを判断する。段階245で全ての関連のテーブル群が分析されたように判断した時、結合/処理段階246では個々の中間結果組を結合して、問い合わせが要請した情報を含む正式な結果組にする。
図14Bは、構文解析するステージ101で関連のテーブルを判断する段階を開示する。
具体的には、段階250では、ルートノードを使用し、従って、顧客ノード36N、注文ノード37N及び品目ノード40N、及び対応する有向エッジ43E及び46Eを含む図11C内の顧客テーブル群165のグラフのように、グラフをもたらすためにデータ辞書から関係エッジを定めて、選択されたテーブル群の第1のグラフを作成する。
段階251では、下表1及び下表2に示すような問い合わせ内の情報に基づいて対応する第2のグラフを作成する。顧客テーブル群の場合、段階251では、顧客テーブルTl、注文テーブルT2、及び品目テーブルT3、及び問い合わせ内の結合述語54及び55を使用する。
更に詳しく説明すると、図3Aの問い合わせは、テーブル「Ti」及び属性「Aj」を含み、「i」及び「j」は、Ti及びAjがテーブル及び各テーブル内の属性を示すような数を示すと仮定して、段階251では、以下のように問い合わせを形成するテーブル及び属性を識別することができる。
(表1)
Figure 2011510379
属性A1〜A4は、図3Aの「Select」文51から取られ、テーブルT1〜T4は、「From」文52から取られ、属性A5〜A10は、述語を定める「Where」文53の線54〜57から取られる。「Where」文内の53線57は、「選択度」述語である。線54〜56の結合述語は、以下のように表される。
(表2)
Figure 2011510379
段階252は、次に、グラフを分析してどのテーブル及び関係が両方のグラフに共通であるかを判断する。別の言い方をすれば、段階252は、問い合わせに関わり、かつデータ辞書102内の定義関係で結合されるテーブル群内のテーブルを識別する。この例における顧客テーブル群165の分析により、検索対象である顧客テーブル群内のテーブルのうちの3つの全てが識別される。テーブル群内のこの組のテーブルのデータは予め結合されたクラスターを有する対応するクラスター容器から検索することができるので、顧客テーブル群内の個々のテーブルに関して関係を定めるテーブル中群結合演算は不要である。一部のテーブルは重なり、又はテーブル群内の別のテーブルに接続しない可能性があり、その場合、接続したテーブルは、独立して処理されるサブ群を成す。
図14Bでは、段階253は、問い合わせによりアクセスされ、重なり合ったテーブル(OT)のうちの1つの中に含まれ、かつ容器内の特定のクラスターに対してRIDの役割もする基本キーではない全ての属性(OT_ATT)のリストを抽出する。概念的には、属性の抽出されたリストは、第2次元データストアユニット107を使用してこのテーブル群に対して結果組を生成するためにアクセスする必要がある1組の縦列を表している。顧客テーブル群の場合、列挙された属性(OT_ATT)の数により、顧客テーブル36、注文テーブル37、及び品目テーブル40内の全てのアクセスされる属性が識別される。表1を参照すると、リストは、属性A1〜A4、並びにA6、A8及びA10の各々を含む。属性A5及びA7は、各々がRIDとして使用される基本キーであるので含まれない。属性A9は、別のテーブル群に属するので含まれない。
テーブル群に関する処理方法の選択は、段階253の働きが選択度及びアクセスされることになるテーブル群内のデータの百分率の推定で完了した後に始まる。図14Bをここで参照すると、段階254で、システムは、段階253の抽出されたリスト内の属性を含む非結合述語に対して選択度を推定する。1つの手法では、システムは、非結合述語内の属性又は属性群に対して指定された縦列容器又は容器群を検証する。次に、縦列容器内の横列の総数に合わせて選択されると予測される横列数により判断される百分率を推定する。複数の非結合述語がある時、結果を統計学的に結合して総合選択度推定値を取得する。簡単な手法は、単に、1つのテーブル内のフィルタリング後の属性の各々に対して推定選択度を増大させることである。選択度は、高選択度の場合の「0」から低選択度の場合の「1」まで変動する可能性があり、これは、属性に関連の全ての横列を含むことになることを示している。全体的な選択度は、アクセスされるルートテーブル横列又はクラスターの数を示す傾向がある。換言すると、全体的な選択度値は、現在のテーブル群内でアクセスする必要があるクラスターの総数の百分率を示している。
総合選択度が段階254で判断された時、段階255では、総合情報百分率(PIR)を計算する。PIR値は、アクセスする必要があるテーブル群の容器内のデータの総量から百分率を示す傾向がある。それは、以下のように計算される。
PIR.(ESTIMATED_SELECTIVITY)*OT_ATT.TOTAL_ATTRIBUTES_IN_OT
図3Aの問い合わせの場合にかつ上表Iを参照すると、OT ATT=7及びOT=22である。選択度がない場合、PIR=0.58である。選択度が増加する時に、PIRは減少し、図3Aの場合のようにゼロに近づき、1つの顧客のみが、非結合述語57により選択される。
段階258は、PIR値を閾値と比較する。閾値は、当業技術で公知のいくつかのファクタ及び処理に従って設定される。考慮すべきファクタの例には、テーブル群サイズ、ディスク待ち時間及び帯域幅、メモリ待ち時間及び帯域幅がある。結合演算コストの推定は、処理の一例である。一般的に、これらの処理は、統計学的に一定期間にわたってシステム演算を分析し、かつ定期的に段階253〜255の分析を実行する。例えば、閾値は、1つのランダム演算中に順番に読み取ることができるテーブル群からのデータの百分率として計算することができる。帯域幅が1つのランダム読取を実行するために掛かる同じ時間に選択されたテーブル群に対して容器内のクラスターの読取値30%を可能にする場合、テーブル群の閾値は、70%に設定することができる。この値は、次に、利用可能な統計値に基づいて手動で及び/又は自動的に調節することができる。
最適化する段階244では、いくつかのオプションのうちの1つを選択する初期基準として抽出されたリスト内の属性の数及びPIR値を使用する。この実施形態では、5つのオプションがある。単一の属性のみが抽出されたリスト内にある場合、段階256は、第1のオプションを処理する段階257に転送する。属性が1つのみであるので、単一の垂直容器のみを走査する必要がある。段階257では、次に、そのテーブル群に対して中間結果組を生成する。1つよりも多い属性がある場合、段階258では、PIR値を検証する。PIR値が予め設定された閾値よりも大きい場合、段階258は、第2のオプションを表す段階259に制御を転送する。具体的には、この判断は、図7の対応する容器110内のクラスターの高い百分率が、resultsetを取得するために走査する必要があり、かつテーブル群容器内の全てのクラスターの走査により最良の結果が得られることを示している。段階259では、容器内のクラスター横列を順番に走査することによってそのタスクを実行して、そのテーブル群内の情報に基づいてresultsetを取得する。段階259の出力は、従って、特定の問い合わせのその部分を満たすテーブル群に関するデータの横列を有する中間resultsetである。
選択度が増加するか又は属性OT_ATT/OTの比率が減少する時に、PIR値は、閾値よりも小さい。段階258は、段階260に転じ、段階260では、従って、対応する垂直縦列をフィルタリングするために問い合わせ内のあらゆる関連の非結合述語を実行する。各々の関連テーブル内でアクセスする必要がある横列を表すビットマップとして中間resultsetを戻す。
段階261では、段階260の結果を分析して、いくつかの代案のコストを統計学的に分析し、このような3つの代案は、図14Bに示されており、第3〜第5のオプションを表している。本発明の関連での「コスト」は、演算を完了するのに必要とされる時間の推定値である。メモリ内のクラスター又は垂直縦列の順次走査の推定値は、そのデータを読み取る時間にある。クラスター又は垂直縦列がディスク上だけにある場合、時間は、第1の位置に到達する時間プラスその属性に対して順次値の各々を処理する時間に依存する。オプション4に関連するようなランダム演算に対しては、属性への毎回のアクセスの時間を含むことになる。
具体的には、オプション3では、テーブル群に対して水平容器110内の全てのデータを順番に走査するコストを計算する。オプション4では、段階253で得られた属性の抽出されたリストに対応する各垂直縦列容器内のデータを順番に走査するコストを計算して、これらの縦列に結合する。オプション5では、水平容器110からのクラスターのランダム取り出しのコストを計算する。
段階262では、3つのオプションを含む段階261によって得られた全てのオプションのコストが最低であるオプションを選択する。他のオプションを考慮することができる。
この実施形態では、段階263は、直ちに中間resultsetを定めることを始める。これは、特に、多重処理システムにおいて有利であり、その理由は、段階262からの情報は、演算を直ちに始めることができるからであり、複数のテーブル群がある場合、段階263の機能は、平行処理のための異なる処理システムに関するものとすることができる。他の代案を用いることができる。例えば、段階262からのデータは、問い合わせ計画内の段階に対応する。これらの段階は、バッファに入れることができる。次に、システムは、問い合わせ計画で開示しているように、各テーブル群に対して順番に情報を処理することができる。
それによって図14内の段階242で選択されるテーブル群の分析が終了する。図3Aの特定の問い合わせにおいては、図14内の段階245は、第2のテーブル群、例えば、著者テーブル34、本テーブル35、及びリンク42を含む著者テーブル群を選択する段階242に制御を戻す。図14Aの段階252では、これらのグラフに重ね合わせる時に本テーブルのみが残り、このような唯一の属性は、TITLE属性である。このテーブル群に対しては非結合述語がないので、段階254ではフィルタリングを行わない。従って、255において計算されたPIR値は、予め設定された閾値を下回り、OT_ATT=1であり、従って、制御は、段階258から段階260まで再び移る。
垂直縦列に関連の非結合述語がないので、その結果により、本テーブル内の各タイトルが識別される。この場合、段階261での分析により、オプション3が選択され、Book:Title垂直縦列が走査される。実行された状態で、この走査からのresultsetは、全ての本タイトルを含み、従って、このresultsetにより全ての本の中間resultsetが生成される。
全てのテーブル群が処理された時、段階245は、サブルーチン246に制御を移し、サブルーチン246では、結合/処理手順246により、最終resultsetが得られ、収集データを分析して問い合わせ計画を完了する。
図14Cを参照すると、段階264では、1つよりも多いresultsetが図14Bの手順によって生成された組内に残されているか否かに判断する。2つ又はそれよりも多いresultsetが残されている場合、段階264は、段階265に移り、段階265では、最小の残りのresultset、すなわち、横列数が最少であるresultsetを選択する。段階267では、結合述語を有する対象である次のより小さいresultsetとの結合を実行する。組み合わされたresultsetは、結合されたresultsetと入れ替わる。resultsetが1つだけが残っている時、最終処理演算、例えば、選別、集約を実行しては問い合わせを完了する。
特に図3Aの問い合わせに関しては、最小resultsetは、顧客テーブル群に関するresultsetであり、その理由は、問い合わせが、特定の顧客を識別するからである。この情報を処理することは、図15Aの段階271及び272に同等である。中間resultsetにより、各品目に関する1つの横列、及びfkBOOKID外部キーを含む顧客テーブル36、注文テーブル37、及び品目テーブル40からの全ての属性に関する縦列を有するresultset272Aによって示すように、特定の顧客、その顧客が行った各注文、及び各注文に対して購入された品目又は品目群が識別される。resultset272Aを段階273からの本タイトルresultset273Aで結合することから生じる次のresultsetは、resultset274Aを生成する結合演算274である。段階275では、SELECTクローズ内の全ての属性を含む射影275Aを生成する。結果は、段階276により表示される。
このシステムの利点は、図3B及び図15Aの問い合わせ計画を比較することによって認識することができる。本発明に対して、初期段階271には、顧客容器内の全てのクラスターを含む。オプション4による272段階でのCustomerID=20を有する値の選択により、第1の中間resultset272Aが得られる。結合演算は発生しておらず、一方、図3Bでは、類似のresultsetを生成するためには2つの結合が必要である。結合274を図3Bの段階74での対応する結合の場合と同様に実行して、本テーブル全体ではなく必要なTITLE縦列のみが処理される点を除き、第2の中間resultset274Aを生成する。上述のように、本テーブルのRID値は、基本キーBOOKIDに相当する。従って、縦列容器内のBook:Titleの順序は、RID値に対応するので、2縦列テーブルと論理的に考えることができ、第1の縦列は、BOOKID属性であり、第2の縦列はTITLE属性である。第1の中間resultset272A内の各横列内のfkBOOKID値は、本テーブル内の基本キーに対応するので、システムは、本テーブル内のBOOKID基本キーを有する各品目内のfkBOOKIDフィールド間のリンク機構に基づいて従来の結合を実行する。より具体的には、結合演算274では、第1の中間resultset272A内の各横列からfkBOOKIDを取得すると、対応するTITLEが得られるようにそのBOOKID値に関する本データ273Aにアクセスする。
しかし、段階274での結合演算では、図3Bの段階74の場合と同様に、5つの他の属性の全てを含む本テーブル全体35からTITLE属性を抽出する必要があるのではなく、本テーブルからTITLE属性縦列273のみを処理する。すなわち、データ量の1/5のみが処理され、従って、データ転送時間、並びにランダムアクセスを低減することによってコストが低減され、従って、演算高速化が可能である。図3C及び図15Bを比較した後に明らかなように、本発明は、resultset数を5から3に低減しており、その理由は、図3Bにおいて問い合わせ計画により必要とされる3つの結合は、図15Aの問い合わせ計画においては、1つの結合演算に低減されるからである。
図5Aの問い合わせは、図14に関する類似の経路に追従する。段階241では、問い合わせに関連する3つのテーブル群の全て、すなわち、顧客−注文−品目のテーブル群、著者−本のテーブル群、及び州テーブル群を識別する。段階242は、最初に顧客−群−品目テーブル群を選択すると仮定すると、段階250及び251のグラフは、同一のものになり、従って、重ね合わせるべき顧客テーブル、注文テーブル、及び品目テーブルが識別される。図14Bを参照すると、問い合わせ内で選択された属性は、顧客ID及びfkSTATEIDフィールドである。非結合述語がないので、フィルタリングは行われない。従って、第1の反復においては、段階253は、7つの属性、すなわち、以下のリストを抽出する。
(1)tbllTEM.SALE、
(2)tblCUSTOMER.CUSTOMERID、
(3)tblORDER.fkCUSTOMERID
(4)tbllTEM.fkBOOKID
(5)tblORDER.ORDERID
(6)tbllTEM.fkORDERID
(7)tblCUSTOMER.fkSTATEId
従って、(2)及び(5)は、RID値として使用される属性であり、テーブル群内には、RIDとして使用されない属性のうちの5つがあり、従って、PIR=1*5/11であり、PIR値は、一般的に閾値よりも大きいことになる。段階258は、段階259に転じ、段階259では、顧客水平容器の順次走査を使用して顧客−注文−品目のテーブル群resultsetを生成する第2のオプションを選択する。
次の反復においては、段階242は、著者本テーブル群を選択し、本テーブルを唯一の関連のテーブルとして再び定める。次に、段階253は、tIbBOOK.BOOKID及びtblBOOK.LISTを含むリストを抽出し、従って、RIDとして使用されない非基本キー属性が1つだけあり、従って、PIR=1*1/9である。
第3の反復で、段階242は、州コードを選択する。段階253は、2つの属性、すなわち、tblSTATE.STATECODE属性及びtblSTATE.STATEID属性のリストを抽出する。この場合、PIR=1*1/2である。
選択度なしの場合、分析の各々のPIR値は、州テーブル群分析に対しては0.5、顧客テーブル群に対しては0.11、及び著者テーブル群に対しては0.45である。閾値が約0.4に設定されると仮定すると、顧客−注文−品目群の分析により、CUSTOMERID属性、fkCUSTOMERID属性、ORDERID属性、fkBOOKID属性、及びfkSTATEID属性の値を有するresultsetが生成される。このresultsetは、品目テーブル内の品目総数に等しい横列数を有する。
著者テーブル群のPIR値は、その閾値を下回り、段階260は、本テーブルに関連する非結合述語がないので何の影響も与えず、従って、段階261は、各々が本テーブル内の全ての本を再び識別するLIST価格属性に対して垂直縦列容器の走査を識別することにより、オプション3を選択する。同様に、州コードresultsetは、STATECODE属性に対して垂直縦列容器から計算され、STATECODE属性は、STATEID及びSTATECODEの値を論理的に含み、かつ各州に対して1つの横列を含む。
図16は、本発明により開発された図5Aの問い合わせに関する問い合わせ計画280を示している。段階281では、tblSTATE.STATECODE垂直容器から結果組を生成する。段階282は、顧客テーブルからのfkSTATEID属性、品目テーブルからのfkBOOKID属性、及び品目テーブルからのSALE属性を含むresultset283を生成する顧客−注文−品目容器内の全てのクラスターの走査を表している。結合演算284では、段階283の射影の各横列が州コードを含むresultsetを生成する。
次に、システムは、段階285で、その暗黙のBOOKID属性でtblBOOK.LIST垂直容器を検索する。段階286は、段階284の中間resultsetの品目テーブルのfkBOOKID属性と結合する。段階287は、resultsetを州コード、価格、及び販売の属性を含むresultsetに変換する。段階288は、図5Bの段階88と同様に、州コードに基づいて集約を供給し、段階289の結果を生成する。
比較として、図5Bの従来技術方法を使用して図5Aに示す問い合わせを処理するには、4回の結合演算が必要である。本発明によりかつ図16に示すように、この数は、フェッチされるデータ容量及びランダムアクセスの回数を最小にするために、適切な場合には、縦列容器を用いて更に改善される2回の結合演算に低減される。
これらの例により、複数のデータストアユニットを使用する際の利点の理解が可能である。従来技術の方法は、テーブル構造の横列を検索するか、又は述語を使用して縦列をフィルタリングする。しかし、結合演算は依然として実行する必要がある。索引を付されない縦列をフィルタリングするためには、テーブル全体を走査する必要がある。本発明を含むシステムは、データの複数のコピーを格納する。この特定の例においては、水平データストアユニット内の1つのコピーは、共にクラスター化された関連の横列を格納し、従って、テーブル間の群結合コスト及び異なる横列へのランダムアクセスが排除される。第2のデータストアユニット内に順番に縦列を格納することができ、特定の縦列の検索が非常に効率的なものになる。これらの手法では、問い合わせ処理を最適化する問い合わせによるあらゆるアクションに向けて、クラスターのようなできるだけ多くの関連データをユニット内で組み合わせる。データのサイズ、データモデルの複雑性、及び問い合わせの複雑性が増加する時に、この設計における固有の利点により、実行の漸進的な効率化が可能である。
データベース更新
本発明は、更新イベントに応答してデータベースを更新する直接的方法を用いる。図17に示すように、ルーチン290は、各更新イベントを処理する。最初に、図6内の変更ログ105内に各データ更新問い合わせに関連のデータを格納する。段階291は、データ変化を必要とし、かつ「データ変更x」と指定される変更ログエントリを検索する。段階292では、その有効性を検査する。段階293では、その変更が有効であるか否かを判断する。有効ではない場合、制御は、あらゆる付加的な更新を終了するロールバックルーチン284に移る。
データ変化が有効である場合、段階293は、段階295に移って、第1次元データストアユニット106又は第2次元データストアユニット107を選択する。段階296では、選択されたデータストアユニットへのデータ変更を適用する。処理は、段階296が選択されたデータストアにより変わる点を除き、従来技術のものと類似である。すなわち、第1次元データストア106が選択され、これが新しい顧客のような新しいデータを表す場合、段階296は、顧客注文品目及びあらゆる品目エントリを含むその顧客に関するクラスターを形成する必要がある。
変化の適用が成功しなかった場合、段階300は、制御をロールバックルーチン294に移す。成功した場合、段階301は、いずれかの付加的なデータストアユニットを更新する必要があるか否かを判断する。従って、これが段階295〜301を含むループの第1の反復の終了である場合、制御は、段階295に戻って、第2次元データストアユニット107を選択する。この場合、データは、各々の適切な縦列容器の終了に追加されることによって適用される。ここでもまた、第2次元データストアユニット107の変更が成功であった場合、段階300は、段階301に戻る。
これが第2の反復である場合、段階301は、制御を段階302に移し、いずれかの付加的な変化がデータ変更ログ105内に残っているか否かを判断する。全てのデータ変更が問題なく完了した場合、段階303は、変更を行って処理290を終了させる。
XMLシステム
本発明を組み込むデータベースシステムは、XMLデータの記憶及び取り出しに対して、特に、「XMLスキーマ」又はXSDとしても知られる公知のXMLデータモデルに基づくXMLデータに対して容易に適応される。図18は、図9の顧客−注文−品目テーブル群165に関するこのようなXMLスキーマを開示する。以下に明らかになるように、XMLスキーマは、属性、注文、及び品目を含む顧客に関連の全ての情報を定め、図9内のデータ辞書102から直接に抽出することができ、マッピングが不要である。
図7内の容器110に対応する「顧客容器」要素310の次に来るのは、それぞれの属性と共にそれぞれ図9内の顧客テーブル36D、注文テーブル37D、及び品目テーブル40Dに対応する顧客要素313、順序要素315、及び品目要素317である。XMLスキーマ内の要素の順序は、ルートテーブル及び定義関係で図9内のデータ辞書102内に形成された順序に従う。より具体的には、システムは、313での顧客テーブルに参照を含むことによって構造を識別及び確立する。これに続いて、図1内の顧客テーブル36に関する属性を定める一連の要素名称演算314及び319が来る。次に、システムは、315で注文テーブルを識別し、図1内の注文テーブル37に関する属性に対応する様々な要素316を確立する。それに続く文章317は、品目テーブル及び属性318を定めるものである。当業者に明らかなように、図18のXMLスキーマは、全体的又は部分的に関わらず、あらゆる関係の変化、又はテーブルの追加、削除、又は修正、及び属性の追加、削除、又は修正を処理するように容易に適応される。
図19は、図18のXMLスキーマによる顧客−注文−品目テーブル群に関する図2のデータのサンプルを示している。具体的には、図19は、図12C及び図12Dに詳細に示すように、図12の「ADAM APPLE」194に関する水平クラスターに対応するようなXMLデータ194Aを開示するものである。ブロック200Aは、顧客データを含むクラスター194内のクラスター横列200に対応しており、この場合、顧客は、「Adam Apple」である。その後にあるのは、クラスター横列201に対応する注文を識別する別のブロック201Aである。ブロック203A及び204Aは、201Aの注文に属する2つの品目を識別する。
この場合にかつ図12に示すように、「Adam Apple」は、2つの注文を有する。従って、ブロック202Aは、第2の注文を識別し、ブロック205Aは、この第2の注文に関連する単一の品目を識別する。クラスター195に対応する顧客クラスター「Bonnie Bird」195AのXMLデータが次にあり、参考としてのみ示されている。従って、図19のXMLデータは、全ての顧客クラスターを含む容器110内のデータに相当する。同様に、他のテーブル群は、データ辞書150内の情報及び水平容器内のデータから導出されたXMLスキーマ及びXMLデータ文書で表される。
逆に、XMLスキーマがあれば、データストアユニットに関する対応するデータモデル150及びデータ構造を構築することができる。このような場合、図10Aの段階153は、グループ分け階層がXMLスキーマの一部として予め定められているので冗長になる。従って、図11A〜図11Eにおいて追跡される図1OB内のアルゴリズムは、不要になる。XMLスキーマは、クラスター内で直接定めることができる構造を定める。従って、XMLデータは、同等の構造を含むのでクラスターに直接取り込むことができる。実行時に、システムに示されるXML問い合わせは、SQL問い合わせに向けて開発された方法でかつ両方のデータストアユニットで内部的に処理され、結果は、XMLデータとして戻される。
要約すると、本発明により構築されたデータベース管理システムは、属性を定める縦列と、値、関連の基本キーと外部キー間のリンク、及び問い合わせ、一般的に例えば図1に示すようなSQL問い合わせを格納する横列とで組織化された従来の論理テーブル図に適合するものである。データベース管理システムは、例えば、図6に示すような異なるデータストアから及びそこへデータを転送するために各問い合わせを処理する。第1のデータストアは、第1のスキーマに従って、第2のデータストアは第2のスキーマに従って完全なデータベースを格納する。すなわち、本発明の目的により、データベースは、異なるスキーマに従ってではあるが、データベースの冗長なコピーを有する。
第1のデータストアでデータを転送することは、モデル内の論理テーブルを図1に示す図のようにテーブル群に変換することを含む。各テーブル群は、例えば、図10B及び図11A〜図11Eに示すように、ルートテーブル、及びルートテーブルと直接、間接に関わらず結合された他の論理テーブルのアレイを含む。第1のデータストアは、例えば、図7に示すように、容器内の1つの使用量パターンに従ってデータを格納する。各容器は、対応するルートテーブル内の各横列、及びそのテーブル群に関してルートテーブルに直接、間接に関わらず結合されているテーブルのアレイの全ての横列に対する少なくとも1つの識別されたクラスターを含む。各クラスター内のデータは、ルート論理テーブルの横列からのデータ、及びルートテーブル横列内のデータと結合されているテーブル群内の他の論理テーブルからの全てのデータを含む。第2のデータストアは、例えば、図8に示すように、複数の縦列容器内の第2の使用量パターンに従ってデータを格納する。テーブルと属性の1つとの各組合せに対して1つの縦列容器がある。
各クラスター横列内のデータは、第1のデータストア内に順番に格納され、論理テーブル中の対応する縦列に関する各縦列容器内の属性値が順番に格納される。本明細書で開示されているようなスキーマに従ってデータを順番に格納することにより、2つの利点が得られる。第1のデータストア内のデータは、特に、アクセスがルートテーブル内の単一の横列又は限られた数の横列に制限される場合に、OLTP問い合わせにより表される第1の使用量パターンに基づいてデータを転送するように最適化される。第2のデータストア内のデータは、いくつかの縦列のみを通常選択するOLAP問い合わせとの関連に従って、第2の使用量パターンに基づいてデータを転送するように最適化される。ランダムではなく、順番にデータを選択することによって収量が改善するが、その理由は、選択されたデータを順番に検索することができるからである。
データベース管理システムは、例えば、図14〜図14Cに示すようにresultsetを検索する複数の手順を含む。制御装置は、各テーブル群及びアクセスされることになる推定されたテーブル群の部分に関する要請された情報に基づいて、resultsetの受信を最大に利用する複数の手順のうちの1つを選択する。それによって最終resultsetを取得するために問い合わせを終了するのに必要とされる時間を最小にすることによって収量が改善する。論理データベース内の表された全ての結合演算のうちの各テーブル群に関するresultset間の結合のみが必要とされる。それによって結合演算の回数が大幅に低減され、更に、応答時間及び収量が改善する。
本発明の他の特徴により、付加的な収量に関する利点が得られる。例えば、問い合わせ計画に表されると考えられる正確なシーケンスは、問い合わせ処理中に動的に判断される。図14Bに示すように、resultsetを取得するための処理は、各テーブル群に関する分析終了後に直ちに始まる。図14Cに示すように、戻された中間resultsetは、サイズ別に順序付けられている。それによって異なるテーブル群との関係を確立する結合の実行が最適化される。
データベース管理システムはまた、非常に複雑な論理データベース表現を処理するようになっており、かつSQL問い合わせのような標準問い合わせ言語とのインタフェースを有するようになっている。更にかつ図18及び図19に示すように、システムはまた、データ構造及びデータ変更を定めるためにXMLとのインタフェースを有する。
本発明をある一定の実施形態に関して開示した。本発明から逸脱することなく多くの修正を開示した装置に行うことができることが明らかであろう。例えば、本発明の開示は、2つの特定のストレージユニットに関するデータ構造を説明したものである。本発明は、他のデータ構造に等しく適用可能である。当業者に明らかなように、ストレージユニットの各々又は両方に対してデータの変化を要求するイベントに対する応答は修正することができる。SQL問い合わせに対する応答の本発明の開示は、個々の問い合わせが処理されるシーケンスにおいて、かつ1つ又はそれよりも多くのオプションの追加、削除、又は修正による検索オプションの修正において異なる内部処理及び修正を提供するために修正することができる。
100 データベース管理システム
101 問い合わせ構文解析プログラム
102 データ辞書
103 問い合わせプロセッサ
105 変更ログ

Claims (22)

  1. 少なくとも1つのテーブル群を含む論理データベースモデルのデータを格納するためのデータベースストレージ手段を含むデータベース管理システムであって、
    各テーブル群が、1つのルートテーブル及びそれに関連する少なくとも1つの他のテーブルを含み、各論理テーブルが、属性の縦列及びデータの横列を有するように特徴付けられており、
    データベースストレージ手段が、
    A)メモリ位置の各々が、ルートテーブルの1つの横列からの全てデータと、そのテーブル群内の他のテーブルからの全ての関連データとを含み、その1つのルートテーブル横列の関連データが、それによってそのルートテーブル横列及び他の関連テーブル内のその関連の横列における全てのデータへの順次アクセスを可能にする第1の次元の複数のメモリ位置で、全てのデータをデータベースに格納するための第1のデータストア手段、及び
    B)各メモリ位置が、前記データベース内の前記属性の1つからの全てのデータと全ての対応する値とを含み、それによって各属性内の該データへの順次アクセスを可能にする第2の次元の複数のメモリ位置で、全てのデータを該データベースに格納するための第2のデータストア手段、
    を含む、
    ことを特徴とするシステム。
  2. 前記第1及び第2のデータストア手段における前記メモリ位置の各々が、隣接するメモリ位置を含むことを特徴とする請求項1に記載のシステム。
  3. 前記テーブル群の異なるものにおけるテーブル間の関係を識別する論理データベースモデル辞書からの情報でポピュレートされたデータ辞書を更に含み、
    前記第1のデータストア手段における前記メモリ位置は、前記関係における前記ルートテーブル及び他のテーブルの1つの横列に関連するデータを格納し、それによってそのデータ構造が、該関係に従ってテーブルを固有にリンクさせ、それによってそのような関係がアクセスされる度に結合演算を処理する必要性を排除する、
    ことを特徴とする請求項1に記載のシステム。
  4. 各テーブル群に対する前記データは、クラスター及びクラスター横列を含む容器に格納され、
    i)クラスター横列が、前記テーブル群の前記テーブルにおける各横列に対してクラスター横列識別を有するヘッダとデータに対する本体とを含み、
    ii)クラスターが、前記ルートテーブルにおける1つの横列に対するクラスター横列と、前記テーブル群の各関連テーブルにおける対応する横列とを含み、かつ
    iii)容器が、前記テーブル群に対する全ての前記クラスターを含む、
    ことを特徴とする請求項1に記載のシステム。
  5. 前記クラスター横列識別は、前記テーブル群における前記クラスターと対応するテーブルとに対する識別子を含むことを特徴とする請求項4に記載のシステム。
  6. 各テーブルが、そこにある各横列に対する固有の識別子を含み、各前記クラスター識別子は、前記ルートテーブルに対する該固有の識別子の値を含み、各クラスター横列識別子が、該テーブルにおける該横列に対する該固有の識別子を含むことを特徴とする請求項5に記載のシステム。
  7. 各ヘッダが、クラスター横列に関連する前記論理データベース内のテーブルを更に識別することを特徴とする請求項5に記載のシステム。
  8. 各ヘッダが、クラスター横列における各属性及びそのクラスター横列に該属性が存在するか否かを識別するための属性識別子を更に含むことを特徴とする請求項5に記載のシステム。
  9. 各ヘッダが、前記クラスター横列の前記本体における属性値に対するポインタを更に含むことを特徴とする請求項5に記載のシステム。
  10. 各クラスター横列内の前記情報は、隣接メモリ位置に格納されることを特徴とする請求項5に記載のシステム。
  11. 各クラスター内の前記情報は、隣接メモリ位置に格納されることを特徴とする請求項10に記載のシステム。
  12. 各容器内の前記情報は、隣接メモリ位置に格納されることを特徴とする請求項11に記載のシステム。
  13. 前記第2のデータストア手段は、テーブル及び属性の各組合せに対する縦列容器を含み、各縦列容器が、ヘッダ及び縦列データを含むことを特徴とする請求項2に記載のシステム。
  14. 各ヘッダが、論理テーブル及びそこにある1つの属性の識別を含むことを特徴とする請求項13に記載のシステム。
  15. 前記容器の識別が、テーブル名と前記属性の名称との連結によって構成されることを特徴とする請求項14に記載のシステム。
  16. 各ヘッダが、その属性に対するデータの構造を識別する縦列タイプ値を更に含むことを特徴とする請求項14に記載のシステム。
  17. 前記縦列タイプ値は、コードテーブルを識別し、前記ヘッダは、各コードに対して前記値を識別するコードテーブルフィールドを更に含むことを特徴とする請求項16に記載のシステム。
  18. 各前記縦列タイプ値は、可変長を有する値を識別し、前記ヘッダは、前記縦列データの位置に対するポインタを有する属性ストライド位置ベクトルを更に含むことを特徴とする請求項に記載のシステム。
  19. 各ヘッダが、前記縦列容器におけるデータ値の性質を示すデータタイプフィールドを更に含むことを特徴とする請求項14に記載のシステム。
  20. 各ヘッダが、前記縦列データ内のある一定の位置に指す属性ストライド位置ベクトルを更に含むことを特徴とする請求項14に記載のシステム。
  21. 異なる関係にあるテーブルとデータ辞書とを有する論理データベースに収容されたデータのためのデータ構造を発生させる方法であって、
    A)各テーブル群に対してルートテーブルとそれに関連するテーブルとを含むデータ辞書内のデータに基づいて論理データベース内のテーブルからテーブル群を形成する段階、
    B)複数のメモリ位置の各々が、前記ルートテーブルの1つの横列からの全てのデータと、その関連テーブルからの関連データとを含み、それによってそのルートテーブル横列及び関連のテーブル横列における全ての該データへの順次アクセスを可能にする第1の次元で、各テーブル群に対してデータベースに対するデータを格納するためのデータストアユニットを作成する段階、及び
    C)各メモリ位置が、前記データベース内の属性からの全ての前記データと全ての対応する値とを含み、それによって各属性メモリ位置における該データへの順次アクセスを可能にする第2の次元の複数のメモリ位置で、前記テーブル群における各テーブル及び属性に対して、該データベースを格納するための別のデータストアユニットを作成する段階、
    を含むことを特徴とする方法。
  22. テーブルの各々が縦列内の属性及び横列内のデータを含み、かつ異なる関係にあるルートテーブル及び関連テーブルと、第1の次元でデータストアユニットに格納されたデータベースにおける各テーブル及びそのテーブルに対するテーブル群を識別するデータ辞書とを有する論理データベースへの問い合わせに応答する方法であって、
    複数のメモリ位置の各々が、ルートテーブルの1つの横列からの全てのデータと、その関連テーブルからの関連データとを含み、かつ第2の次元の複数のメモリ位置の別のデータストアユニットに格納され、
    各メモリ位置が、データベース内の属性の1つからの全てのデータと全ての対応する値とを含み、
    問い合わせへの応答が、各テーブル群に対して、
    A)前記問い合わせにおけるテーブル群及び前記テーブルを識別する段階、
    B)データ辞書によって提供された前記テーブル群内の前記テーブルを前記識別された問い合わせテーブルに対して比較することにより、前記問い合わせを構文解析する段階、
    C)前記データベースと前記問い合わせとに共通のテーブルに収容された該問い合わせ内の属性のリストを抽出する段階、
    D)属性の前記抽出されたリストに応答して複数の処理オプションの1つを識別する段階、
    E)前記テーブル群に関連した前記問い合わせの部分を満足する中間resultset内のデータを前記データベースから取得するために前記選択されたオプションを処理する段階、及び
    F)前記問い合わせを満足する最終resultsetを取得するために前記中間resultsetを組み合わせる段階、
    を含む、
    ことを特徴とする方法。
JP2010542303A 2008-01-07 2009-01-06 多次元データベースアーキテクチャ Expired - Fee Related JP5271359B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/970,251 US8150850B2 (en) 2008-01-07 2008-01-07 Multiple dimensioned database architecture
US11/970,251 2008-01-07
PCT/US2009/030169 WO2009089190A2 (en) 2008-01-07 2009-01-06 Multiple dimensioned database architecture

Publications (3)

Publication Number Publication Date
JP2011510379A true JP2011510379A (ja) 2011-03-31
JP2011510379A5 JP2011510379A5 (ja) 2013-02-07
JP5271359B2 JP5271359B2 (ja) 2013-08-21

Family

ID=40853734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010542303A Expired - Fee Related JP5271359B2 (ja) 2008-01-07 2009-01-06 多次元データベースアーキテクチャ

Country Status (6)

Country Link
US (5) US8150850B2 (ja)
EP (1) EP2250584A4 (ja)
JP (1) JP5271359B2 (ja)
CN (1) CN101960454A (ja)
AU (1) AU2009204319B2 (ja)
WO (1) WO2009089190A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097389A (ja) * 2011-10-27 2013-05-20 Toshiba Corp データベース装置およびデータベース装置の制御方法
JP2016081526A (ja) * 2014-10-10 2016-05-16 富士通株式会社 テーブル再構成装置と方法

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208186B2 (en) * 2008-03-26 2015-12-08 Teradata Us, Inc. Indexing technique to deal with data skew
US20090327036A1 (en) * 2008-06-26 2009-12-31 Bank Of America Decision support systems using multi-scale customer and transaction clustering and visualization
US8078638B2 (en) * 2008-07-09 2011-12-13 Yahoo! Inc. Operations of multi-level nested data structure
US8078645B2 (en) * 2008-07-09 2011-12-13 Yahoo! Inc. Operations on multi-level nested data structure
US8285710B2 (en) 2008-10-09 2012-10-09 International Business Machines Corporation Automated query path reporting in distributed databases
US8301583B2 (en) * 2008-10-09 2012-10-30 International Business Machines Corporation Automated data conversion and route tracking in distributed databases
US8458166B2 (en) * 2008-10-09 2013-06-04 International Business Machines Corporation Dynamic context definitions in distributed databases
US8458208B2 (en) * 2008-10-09 2013-06-04 International Business Machines Corporation Automated data source assurance in distributed databases
US8145652B2 (en) * 2008-10-09 2012-03-27 International Business Machines Corporation Automated propagation of non-conflicting queries in distributed databases
US9183260B2 (en) 2008-10-09 2015-11-10 International Business Machines Corporation Node-level sub-queries in distributed databases
US8122066B2 (en) * 2008-10-14 2012-02-21 Hewlett-Packard Development Company, L.P. Database query profiler
US10152504B2 (en) 2009-03-11 2018-12-11 Actian Netherlands B.V. Column-store database architecture utilizing positional delta tree update system and methods
US8122038B2 (en) * 2009-06-15 2012-02-21 Microsoft Corporation Period to date functions for time intelligence functionality
US8706727B2 (en) * 2009-06-19 2014-04-22 Sybase, Inc. Data compression for reducing storage requirements in a database system
US8364722B2 (en) * 2010-01-19 2013-01-29 Microsoft Corporation Hosting multiple logical databases contained in physical database
US9195657B2 (en) 2010-03-08 2015-11-24 Microsoft Technology Licensing, Llc Columnar storage of a database index
US8954418B2 (en) * 2010-05-14 2015-02-10 Sap Se Performing complex operations in a database using a semantic layer
US9959325B2 (en) 2010-06-18 2018-05-01 Nokia Technologies Oy Method and apparatus for supporting distributed deductive closures using multidimensional result cursors
US8909796B2 (en) 2010-07-06 2014-12-09 International Business Machines Corporation Storage procedures for application server session persistence
WO2012035754A1 (ja) * 2010-09-13 2012-03-22 日本電気株式会社 データ統合処理装置、システム、方法及びプログラム
US9069830B2 (en) * 2011-03-29 2015-06-30 International Business Machines Corporation Retrieving data objects
US9009138B2 (en) * 2011-06-17 2015-04-14 International Business Machines Corporation Transparent analytical query accelerator
US9116968B2 (en) * 2011-06-30 2015-08-25 Bmc Software, Inc. Methods and apparatus related to graph transformation and synchronization
US9239871B2 (en) 2011-07-06 2016-01-19 Ca, Inc. System and method for analyzing sequential data access efficiency
US8856085B2 (en) 2011-07-19 2014-10-07 International Business Machines Corporation Automatic consistent sampling for data analysis
US9064000B1 (en) * 2011-07-19 2015-06-23 Foundationdb, Llc Operations over nested relationships using operators
TWI464695B (zh) * 2011-09-22 2014-12-11 Hon Hai Prec Ind Co Ltd 基於臉部表情播放文檔的電子裝置及方法
US10331664B2 (en) * 2011-09-23 2019-06-25 Hartford Fire Insurance Company System and method of insurance database optimization using social networking
US8583678B2 (en) * 2011-11-21 2013-11-12 Sap Portals Israel Ltd Graphical exploration of a database
US8768927B2 (en) * 2011-12-22 2014-07-01 Sap Ag Hybrid database table stored as both row and column store
US20130185280A1 (en) * 2012-01-12 2013-07-18 Ding Ma Multi-join database query
WO2013116308A1 (en) * 2012-01-31 2013-08-08 Kent State University Systems, methods, and software for unified analytics environments
CN103294678B (zh) * 2012-02-24 2016-03-16 深圳市腾讯计算机系统有限公司 基于长度内容格式的数据存储及访问方法和系统
US9336246B2 (en) 2012-02-28 2016-05-10 International Business Machines Corporation Generating composite key relationships between database objects based on sampling
US8676788B2 (en) * 2012-03-13 2014-03-18 International Business Machines Corporation Structured large object (LOB) data
US9922090B1 (en) * 2012-03-27 2018-03-20 Actian Netherlands, B.V. System and method for automatic vertical decomposition of a table for improving input/output and memory utilization in a database
CN103365883A (zh) * 2012-03-30 2013-10-23 华为技术有限公司 数据的索引查询方法、装置及系统
US20130262400A1 (en) * 2012-03-30 2013-10-03 Huawei Technologies Co., Ltd. Data index query method, apparatus and system
US9230008B2 (en) * 2012-04-12 2016-01-05 Ca, Inc. System and method for automated online reorganization of sequential access databases
US9165010B2 (en) * 2012-04-30 2015-10-20 Sap Se Logless atomic data movement
US9785890B2 (en) * 2012-08-10 2017-10-10 Fair Isaac Corporation Data-driven product grouping
US9600522B2 (en) 2012-08-20 2017-03-21 Oracle International Corporation Hardware implementation of the aggregation/group by operation: filter method
US9563658B2 (en) 2012-08-20 2017-02-07 Oracle International Corporation Hardware implementation of the aggregation/group by operation: hash-table method
US9727606B2 (en) * 2012-08-20 2017-08-08 Oracle International Corporation Hardware implementation of the filter/project operations
US9031932B2 (en) * 2012-09-06 2015-05-12 Oracle International Corporation Automatic denormalization for analytic query processing in large-scale clusters
US9177026B2 (en) * 2012-09-27 2015-11-03 LogicBlox, Inc. Leapfrog tree-join
US9430550B2 (en) 2012-09-28 2016-08-30 Oracle International Corporation Clustering a table in a relational database management system
US9507825B2 (en) 2012-09-28 2016-11-29 Oracle International Corporation Techniques for partition pruning based on aggregated zone map information
US8996544B2 (en) 2012-09-28 2015-03-31 Oracle International Corporation Pruning disk blocks of a clustered table in a relational database management system
US8849871B2 (en) * 2012-10-04 2014-09-30 Oracle International Corporation Efficient pushdown of joins in a heterogeneous database system involving a large-scale low-power cluster
US9824127B2 (en) * 2012-10-22 2017-11-21 Workday, Inc. Systems and methods for interest-driven data visualization systems utilized in interest-driven business intelligence systems
US9361324B2 (en) * 2012-11-06 2016-06-07 SageTea Inc. System and method to transform a complex database into a simple, faster, and equivalent database
US10754877B2 (en) * 2013-01-15 2020-08-25 Datorama Technologies, Ltd. System and method for providing big data analytics on dynamically-changing data models
GB2510429A (en) 2013-02-05 2014-08-06 Ibm Assessing response routes in a network
US10204140B2 (en) 2013-03-14 2019-02-12 Oracle International Corporation Massively parallel and in-memory execution of grouping and aggregation in a heterogeneous system
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
CN103336792B (zh) * 2013-06-07 2016-11-23 华为技术有限公司 数据分区方法和装置
US20150006466A1 (en) * 2013-06-27 2015-01-01 Andreas Tonder Multiversion concurrency control for columnar database and mixed OLTP/OLAP workload
US9323825B2 (en) * 2013-08-14 2016-04-26 International Business Machines Corporation Method and apparatus for storing sparse graph data as multi-dimensional cluster
CN104376025B (zh) * 2013-08-16 2017-10-10 华为技术有限公司 分布式数据库的数据存储方法和装置
US9703825B2 (en) * 2013-10-17 2017-07-11 Sybase, Inc. Maintenance of a pre-computed result set
US10339133B2 (en) 2013-11-11 2019-07-02 International Business Machines Corporation Amorphous data preparation for efficient query formulation
US9569497B2 (en) * 2013-11-26 2017-02-14 Sap Se Lock-free generation of columns with minimal dictionaries after parallel aggregation
KR20150089544A (ko) * 2014-01-28 2015-08-05 한국전자통신연구원 혼용 워크로드 지원을 위한 데이터 관리 장치 및 데이터 관리 방법
CN103853818B (zh) * 2014-02-12 2017-04-12 博易智软(北京)技术股份有限公司 多维数据的处理方法和装置
CN103823850B (zh) * 2014-02-13 2017-02-22 南京梅山冶金发展有限公司 一种多层结构关系数据库的存储方法
US9411838B2 (en) 2014-02-14 2016-08-09 International Business Machines Corporation Table organization using one or more queries
US9665633B2 (en) 2014-02-19 2017-05-30 Snowflake Computing, Inc. Data management systems and methods
CN104166666B (zh) * 2014-05-15 2017-03-08 杭州斯凯网络科技有限公司 PostgreSQL高并发流式大数据多维度准实时统计的方法
US9846567B2 (en) 2014-06-16 2017-12-19 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines
US9633058B2 (en) 2014-06-16 2017-04-25 International Business Machines Corporation Predictive placement of columns during creation of a large database
CN104090954B (zh) * 2014-07-04 2019-02-05 用友网络科技股份有限公司 只读表的连接方法和只读表的连接系统
WO2016060693A1 (en) * 2014-10-17 2016-04-21 Halliburton Energy Services, Inc. Thermally-stable, non-precipitating, high-density wellbore fluids
US10223360B2 (en) 2014-12-02 2019-03-05 Ricoh Company, Ltd. Print job archives that are optimized for server hardware
CN104572941B (zh) * 2014-12-30 2017-12-05 杭州华为数字技术有限公司 数据存储方法、装置和设备
US10459913B2 (en) * 2015-02-26 2019-10-29 Red Hat, Inc. Database query processing
US20160259825A1 (en) * 2015-03-06 2016-09-08 Dell Products L.P. Discovery of potential problematic execution plans in a bind-sensitive query statement
US9952808B2 (en) 2015-03-26 2018-04-24 International Business Machines Corporation File system block-level tiering and co-allocation
CN105404638A (zh) * 2015-09-28 2016-03-16 高新兴科技集团股份有限公司 一种解决分布式跨库分片表关联查询的方法
CN108369588B (zh) * 2015-10-15 2023-01-20 甲骨文国际公司 数据库级别自动存储管理
US11520760B2 (en) * 2015-10-23 2022-12-06 Oracle International Corporation System and method for providing bottom-up aggregation in a multidimensional database environment
US9465832B1 (en) * 2016-02-04 2016-10-11 International Business Machines Corporation Efficiently committing large transactions in a graph database
US11379416B1 (en) * 2016-03-17 2022-07-05 Jpmorgan Chase Bank, N.A. Systems and methods for common data ingestion
CN106056758B (zh) * 2016-06-08 2019-01-25 广州广电运通金融电子股份有限公司 有价文件信息编解码方法、装置、处理系统及金融自助设备
US10394805B2 (en) * 2016-06-28 2019-08-27 Sap Se Database management for mobile devices
CN109791543B (zh) * 2016-09-30 2021-02-12 华为技术有限公司 执行多表连接操作的控制方法及对应装置
US11074235B2 (en) * 2017-08-10 2021-07-27 Io-Tahoe Llc Inclusion dependency determination in a large database for establishing primary key-foreign key relationships
US11216451B2 (en) * 2017-09-29 2022-01-04 Oracle International Corporation Dynamic dashboard with guided discovery
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
CN107766494B (zh) * 2017-10-19 2021-11-30 北京科技大学 材料基因工程数据的存储方法及系统
US11182369B2 (en) 2018-04-24 2021-11-23 International Business Machines Corporation Accessing data in a multi-level display for large data sets
CN108920519A (zh) * 2018-06-04 2018-11-30 贵州数据宝网络科技有限公司 一对多数据供应系统及方法
WO2020018718A1 (en) 2018-07-17 2020-01-23 Snowflake Inc. Incremental clustering of database tables
CN112740199A (zh) * 2018-09-21 2021-04-30 华为技术有限公司 用于数据库查询优化的物化视图
US11144518B2 (en) 2018-11-28 2021-10-12 International Business Machines Corporation Detecting data mapping relationship within database system and optimizing data operation
US11163756B2 (en) 2019-04-16 2021-11-02 Snowflake Inc. Querying over external tables in database systems
US10423662B1 (en) * 2019-05-24 2019-09-24 Hydrolix Inc. Efficient and scalable time-series data storage and retrieval over a network
US20190325292A1 (en) * 2019-06-28 2019-10-24 Intel Corporation Methods, apparatus, systems and articles of manufacture for providing query selection systems
CN111427885B (zh) * 2020-03-03 2023-06-09 中科驭数(北京)科技有限公司 基于查找表的数据库管理方法和装置
US11232084B2 (en) * 2020-06-26 2022-01-25 Microsoft Technology Licensing, Llc Schema agnostic migration of delineated data between relational databases
CN113297207A (zh) * 2020-08-24 2021-08-24 阿里巴巴集团控股有限公司 数据处理方法、装置及设备
US11321285B2 (en) 2020-10-01 2022-05-03 Bank Of America Corporation Automatic database script generation for copying data between relational databases
CN113641669B (zh) * 2021-06-30 2023-08-01 北京邮电大学 一种基于混合引擎的多维数据查询方法及装置
US11880365B2 (en) 2022-03-23 2024-01-23 Bank Of America Corporation Multimodal and distributed database system structured for dynamic latency reduction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122636A (en) * 1997-06-30 2000-09-19 International Business Machines Corporation Relational emulation of a multi-dimensional database index
US6182060B1 (en) * 1997-04-15 2001-01-30 Robert Hedgcock Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets
US6484179B1 (en) * 1999-10-25 2002-11-19 Oracle Corporation Storing multidimensional data in a relational database management system
US7080081B2 (en) * 2002-04-15 2006-07-18 International Business Machines Corporation Multidimensional data clustering scheme for query processing and maintenance in relational databases

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303367A (en) * 1990-12-04 1994-04-12 Applied Technical Systems, Inc. Computer driven systems and methods for managing data which use two generic data elements and a single ordered file
US5918225A (en) * 1993-04-16 1999-06-29 Sybase, Inc. SQL-based database system with improved indexing methodology
US5794229A (en) * 1993-04-16 1998-08-11 Sybase, Inc. Database system with methodology for storing a database table by vertically partitioning all columns of the table
US5504887A (en) * 1993-09-10 1996-04-02 International Business Machines Corporation Storage clustering and packing of objects on the basis of query workload ranking
US5594898A (en) * 1994-03-25 1997-01-14 Microsoft Corporation Method and system for joining database tables using compact row mapping structures
US6078925A (en) * 1995-05-01 2000-06-20 International Business Machines Corporation Computer program product for database relational extenders
US5864842A (en) * 1995-10-23 1999-01-26 Ncr Corporation Optimization of SQL queries using hash star join operations
US5778350A (en) * 1995-11-30 1998-07-07 Electronic Data Systems Corporation Data collection, processing, and reporting system
US5819251A (en) * 1996-02-06 1998-10-06 Oracle Corporation System and apparatus for storage retrieval and analysis of relational and non-relational data
US5983215A (en) * 1997-05-08 1999-11-09 The Trustees Of Columbia University In The City Of New York System and method for performing joins and self-joins in a database system
US6115705A (en) * 1997-05-19 2000-09-05 Microsoft Corporation Relational database system and method for query processing using early aggregation
GB2329044B (en) * 1997-09-05 2002-10-09 Ibm Data retrieval system
US5974407A (en) * 1997-09-29 1999-10-26 Sacks; Jerome E. Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
US6199063B1 (en) * 1998-03-27 2001-03-06 Red Brick Systems, Inc. System and method for rewriting relational database queries
US6513041B2 (en) * 1998-07-08 2003-01-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
CA2249096C (en) * 1998-09-30 2001-12-04 Ibm Canada Limited-Ibm Canada Limitee Method for determining optimal database materializations using a query optimizer
US6772139B1 (en) * 1998-10-05 2004-08-03 Smith, Iii Julius O. Method and apparatus for facilitating use of hypertext links on the world wide web
US6415283B1 (en) * 1998-10-13 2002-07-02 Orack Corporation Methods and apparatus for determining focal points of clusters in a tree structure
US6662237B1 (en) * 1999-06-24 2003-12-09 Contivo, Inc. System for documenting application interfaces and their mapping relationship
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6785673B1 (en) * 2000-02-09 2004-08-31 At&T Corp. Method for converting relational data into XML
US6604100B1 (en) * 2000-02-09 2003-08-05 At&T Corp. Method for converting relational data into a structured document
US6611837B2 (en) * 2000-06-05 2003-08-26 International Business Machines Corporation System and method for managing hierarchical objects
US6977751B1 (en) * 2000-06-30 2005-12-20 Silverbrook Research Pty Ltd Print engine/controller to work in multiples and a printhead driven by multiple print engine/controllers
US6567802B1 (en) * 2000-09-06 2003-05-20 The Trustees Of The University Of Pennsylvania Systematic approach to query optimization
US6801921B2 (en) * 2000-09-08 2004-10-05 Hitachi, Ltd. Method and system for managing multiple database storage units
US6510422B1 (en) * 2000-09-27 2003-01-21 Microsoft Corporation Cost based materialized view selection for query optimization
US7885981B2 (en) * 2000-10-31 2011-02-08 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US6732095B1 (en) * 2001-04-13 2004-05-04 Siebel Systems, Inc. Method and apparatus for mapping between XML and relational representations
US6763350B2 (en) * 2001-06-01 2004-07-13 International Business Machines Corporation System and method for generating horizontal view for SQL queries to vertical database
US6868528B2 (en) * 2001-06-15 2005-03-15 Microsoft Corporation Systems and methods for creating and displaying a user interface for displaying hierarchical data
US7107255B2 (en) * 2001-06-21 2006-09-12 International Business Machines Corporation Self join elimination through union
US7024414B2 (en) * 2001-08-06 2006-04-04 Sensage, Inc. Storage of row-column data
US6757677B2 (en) * 2001-09-28 2004-06-29 Ncr Corporation Providing a join plan using group-by operator
US20030065650A1 (en) * 2001-10-03 2003-04-03 Annand Ritchie I. Method and query application tool for searching hierarchical databases
US6850933B2 (en) * 2001-11-15 2005-02-01 Microsoft Corporation System and method for optimizing queries using materialized views and fast view matching
US7693917B2 (en) * 2001-11-30 2010-04-06 Intelligent Medical Objects, Inc. Method for adaptive data management
EP1349082A1 (en) * 2002-03-28 2003-10-01 LION Bioscience AG Method and apparatus for querying relational databases
US6944627B2 (en) * 2002-04-23 2005-09-13 International Business Machines Corporation Content management system and methodology employing a tree-based table hierarchy featuring arbitrary information retrieval from different locations in the hierarchy
US7103608B1 (en) * 2002-05-10 2006-09-05 Oracle International Corporation Method and mechanism for storing and accessing data
US7191169B1 (en) * 2002-05-21 2007-03-13 Oracle International Corporation System and method for selection of materialized views
US7287022B2 (en) * 2002-07-19 2007-10-23 Microsoft Corporation System and method for analytically modeling data organized according to related attributes
JP3861044B2 (ja) * 2002-10-24 2006-12-20 株式会社ターボデータラボラトリー 連鎖したジョインテーブルのツリー構造への変換方法、および、変換プログラム
US7231379B2 (en) * 2002-11-19 2007-06-12 Noema, Inc. Navigation in a hierarchical structured transaction processing system
EP1452993A1 (en) * 2002-12-23 2004-09-01 STMicroelectronics S.r.l. Method of analysis of a table of data relating to expressions of genes and relative identification system of co-expressed and co-regulated groups of genes
US6990632B2 (en) * 2003-02-28 2006-01-24 Microsoft Corporation Method and system for inferring a schema from a hierarchical data structure for use in a spreadsheet
US7054877B2 (en) * 2003-03-31 2006-05-30 International Business Machines Corporation Dealing with composite data through data model entities
US7103588B2 (en) * 2003-05-05 2006-09-05 International Business Machines Corporation Range-clustered tables in a database management system
US7530012B2 (en) * 2003-05-22 2009-05-05 International Business Machines Corporation Incorporation of spreadsheet formulas of multi-dimensional cube data into a multi-dimensional cube
US7330848B2 (en) * 2003-05-23 2008-02-12 Microsoft Corporation Method and apparatus for generating statistics on query expressions for optimization
WO2005018136A1 (ja) * 2003-07-11 2005-02-24 Canon Kabushiki Kaisha 鍵情報処理方法及びその装置、並びにプログラム
US7734581B2 (en) * 2004-05-18 2010-06-08 Oracle International Corporation Vector reads for array updates
US20060041584A1 (en) * 2004-06-07 2006-02-23 Dirk Debertin System and method for communicating with a structured query language statement generator
US7302447B2 (en) * 2005-01-14 2007-11-27 International Business Machines Corporation Virtual columns
US8112459B2 (en) * 2004-12-17 2012-02-07 International Business Machines Corporation Creating a logical table from multiple differently formatted physical tables having different access methods
US7343370B2 (en) * 2005-03-07 2008-03-11 Hewlett-Packard Development Company, L.P. Plan generation in database query optimizers through specification of plan patterns
US8201106B2 (en) * 2005-07-01 2012-06-12 Alcatel Lucent Method for transforming a tree structure into a more human-comprehensible document
US7505991B2 (en) * 2005-08-04 2009-03-17 Microsoft Corporation Semantic model development and deployment
US7428524B2 (en) * 2005-08-05 2008-09-23 Google Inc. Large scale data storage in sparse tables
US7567973B1 (en) * 2005-08-05 2009-07-28 Google Inc. Storing a sparse table using locality groups
US10007686B2 (en) * 2006-08-02 2018-06-26 Entit Software Llc Automatic vertical-database design
US8386464B2 (en) * 2006-08-18 2013-02-26 National Instruments Corporation Configuration of optimized custom properties in a data finder tool
US20080052644A1 (en) * 2006-08-25 2008-02-28 Netfortis, Inc. String matching engine for arbitrary length strings
US20080059492A1 (en) * 2006-08-31 2008-03-06 Tarin Stephen A Systems, methods, and storage structures for cached databases
US7552130B2 (en) * 2006-10-17 2009-06-23 International Business Machines Corporation Optimal data storage and access for clustered data in a relational database
US8239778B2 (en) * 2007-02-08 2012-08-07 Kgmp Trust Graphical database interaction system and method
US8069188B2 (en) * 2007-05-07 2011-11-29 Applied Technical Systems, Inc. Database system storing a data structure that includes data nodes connected by context nodes and related method
US20100017009A1 (en) * 2008-06-30 2010-01-21 International Business Machines Corporation System for monitoring multi-orderable measurement data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182060B1 (en) * 1997-04-15 2001-01-30 Robert Hedgcock Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets
US6122636A (en) * 1997-06-30 2000-09-19 International Business Machines Corporation Relational emulation of a multi-dimensional database index
US6484179B1 (en) * 1999-10-25 2002-11-19 Oracle Corporation Storing multidimensional data in a relational database management system
US7080081B2 (en) * 2002-04-15 2006-07-18 International Business Machines Corporation Multidimensional data clustering scheme for query processing and maintenance in relational databases

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097389A (ja) * 2011-10-27 2013-05-20 Toshiba Corp データベース装置およびデータベース装置の制御方法
JP2016081526A (ja) * 2014-10-10 2016-05-16 富士通株式会社 テーブル再構成装置と方法

Also Published As

Publication number Publication date
EP2250584A4 (en) 2012-08-29
AU2009204319A1 (en) 2009-07-16
AU2009204319B2 (en) 2012-07-26
US20130031084A1 (en) 2013-01-31
WO2009089190A2 (en) 2009-07-16
US20120030245A1 (en) 2012-02-02
US8204885B2 (en) 2012-06-19
JP5271359B2 (ja) 2013-08-21
WO2009089190A3 (en) 2009-08-27
EP2250584A2 (en) 2010-11-17
US20120036167A1 (en) 2012-02-09
US9311349B2 (en) 2016-04-12
US20090193006A1 (en) 2009-07-30
CN101960454A (zh) 2011-01-26
US8150850B2 (en) 2012-04-03
US8312020B2 (en) 2012-11-13
US20120030246A1 (en) 2012-02-02

Similar Documents

Publication Publication Date Title
JP5271359B2 (ja) 多次元データベースアーキテクチャ
JP6275395B2 (ja) マルチレベルストレージアーキテクチャ内の記録の削除
Mamoulis et al. Efficient top-k aggregation of ranked inputs
JP5976595B2 (ja) 統合テーブルクエリ処理
JP6109634B2 (ja) ログ無し極小データ移動
JP5968828B2 (ja) レコードロックなしでのマルチレベルストレージアーキテクチャ内の記録の削除
US7895151B2 (en) Fast bulk loading and incremental loading of data into a database
US6931390B1 (en) Method and mechanism for database partitioning
US8732163B2 (en) Query optimization with memory I/O awareness
US6564204B1 (en) Generating join queries using tensor representations
Plattner Sanssoucidb: An in-memory database for processing enterprise workloads
US20120254252A1 (en) Input/output efficiency for online analysis processing in a relational database
Pirzadeh et al. A performance study of big data analytics platforms
JP2014016983A (ja) 部分的マージ
Yang et al. F1 Lightning: HTAP as a Service
JP4071816B1 (ja) 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
US6745173B1 (en) Generating in and exists queries using tensor representations
Chavan et al. DEX: query execution in a delta-based storage system
Feldman et al. A knowledge-based approach for index selection in relational databases
Rupley Jr Introduction to query processing and optimization
Pedersen et al. Cost modeling and estimation for OLAP-XML federations
Hayamizu et al. Benchmarking and performance analysis of event sequence queries on relational database
Shetty et al. Query Dictionary for frequent non-indexed queries in HTAP databases
Schmidt et al. Basic Building Blocks for Column-Stores
Xu New capabilities for large-scale exploratory data analysis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121214

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130312

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130329

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130510

R150 Certificate of patent or registration of utility model

Ref document number: 5271359

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

LAPS Cancellation because of no payment of annual fees