JP3959027B2 - 情報システムのためのデータ構造 - Google Patents

情報システムのためのデータ構造 Download PDF

Info

Publication number
JP3959027B2
JP3959027B2 JP2002561715A JP2002561715A JP3959027B2 JP 3959027 B2 JP3959027 B2 JP 3959027B2 JP 2002561715 A JP2002561715 A JP 2002561715A JP 2002561715 A JP2002561715 A JP 2002561715A JP 3959027 B2 JP3959027 B2 JP 3959027B2
Authority
JP
Japan
Prior art keywords
data
type
infotype
tree structure
elements
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.)
Expired - Lifetime
Application number
JP2002561715A
Other languages
English (en)
Other versions
JP2004518225A (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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of JP2004518225A publication Critical patent/JP2004518225A/ja
Application granted granted Critical
Publication of JP3959027B2 publication Critical patent/JP3959027B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Circuits Of Receivers In General (AREA)
  • Hardware Redundancy (AREA)

Description

【0001】
本発明は、データシステムなど情報記憶システムのためのデータ構造に関する。コンピュータをベースとするデータ記憶システムの場合、メモリやハードディスクドライブなど何らかの媒体にデータが記憶され、そこからデータが取り出される。公知のシステムの場合、データはたとえばリレーショナルモデルをベースとした構造をもつようなデータ構造に格納される。公知のデータ記憶システムを使用して格納されているデータは、記憶させて探索し取り出すことができるけれども、取り出しに要する時間がかなりかかる可能性があり、複合的なクエリの倍には殊に相当な時間がかかる可能性がある。さらに効率的なデータモデルを構成するのは手間がかかり、したがってコストが嵩む。データベースレイアウトまたはデータモデルが定義されてしまうと、あとから改変するのは実装が困難であり、それによってたいていはパフォーマンスの損失が引き起こされてしまう。
【0002】
データベースに対するクエリにかかるレスポンスタイムをスピードアップするためにクエリオプティマイザが使用されることが多く、これはたとえばルールベースのオプティマイザであるかまたはコストベースのオプティマイザである。ルールベースのオプティマイザはまえもって定義されたルールセットを使用する。コストベースのオプティマイザはクエリを構成するデータに関する統計的な情報を使用し、これは各クエリコンポーネントのセレクティビティ(selectivity)を推定し、最もセレクティブなコンポーネントに沿ったサーチパスを最初に導くことによって行われる。公知のオプティマイザを使用すると平均レスポンスタイムを短くすることができるけれども、どのような特定のクエリでも最適化するオプティマイザに対するニーズが存在する。
【0003】
本発明の1つの課題は、セットアップならびにメンテナンスの簡単なデータ記憶システムを提供することにある。本発明の別の課題は、データの高速な検索を可能にするデータ記憶システムを提供することにある。さらに本発明の別の課題は、クエリを決定論的に最適化できるデータ記憶システムを提供することにある。
【0004】
これらの課題は、請求項1記載のデータベースシステムを提供することによって解決される。
【0005】
請求項に記載されている構造を利用すればデータベースを簡単に構築することができる一方、変更が簡単に実施される。
【0006】
さらに本発明によれば請求項6記載のクエリオプティマイザが提供される。1つのクエリセクション内で見つけられた目下のデータ要素の決定により、特定のクエリに対する目下のクエリパスの決定論的分析を行うことができる。したがって各クエリのための最良のパスを決定することができ、その結果、各クエリのためのクエリタイムが最適化される。
【0007】
その他の特徴ならびに利点は、本発明の実施形態に関する以下の説明を通して明らかにさせるつもりである。従属請求項には有利な実施形態が示されている。
【0008】
図面の簡単な説明
図1は、本発明によるシステムの階層構造を概略的に示す図である。
【0009】
図2は、本発明によるデータ形式を示す図である。
【0010】
図3は、アンカおよびインフォセルInfoCellをもつインフォタイプInfoType構造を示す図である。
【0011】
図4は、本発明による2つのInfoCellを示す図である。
【0012】
図5は、バイナリツリーコンフィグレーションにおける3つのInfoTypeを備えたインフォクラスタInfoClusterを示す図である。
【0013】
図6は、InfoType識別番号により記憶されたバイナリツリーとしてInfoCourseを示す図である。
【0014】
図7は、4次元でリンクされたInfoCell要素のサブ構造を表された内容のテーブルとともに示す図である。
【0015】
図8は、ダブルリンクセルフリングdouble link Self Ringをリングの要素カウンタの番号とともに示す図である。
【0016】
図9は、多次元構造の要素カウンタに対する番号を示す図である。
【0017】
図10は、テーブルを6次元構造として示す図である。
【0018】
図11は、インフォブリッジInfoBridgeをカスケードした様子を示す図である。
【0019】
図12は、8つのフラグをもつインフォブリッジInfoBridgeを示す図である。
【0020】
図13は、ツリー構造の一例を示す図である。
【0021】
図14は、図13を簡単にした図である。
【0022】
図15は、第1の例を示す図である。
【0023】
図16は、第2の例を示す図である。
【0024】
図17は、第3の例を示す図である。
【0025】
図18は、図17による例を示す図である。
【0026】
図19は、図17による例を示す図である。
【0027】
図20は、図17による例を示す図である。
【0028】
図21は、第4の例を示す図である。
【0029】
図22は、第5の例を示す図である。
【0030】
図23は、第6の例を示す図である。
【0031】
詳細な説明
次に、本発明によるデータ記憶システムの実施形態の一例について説明する。本発明による実施形態の以下の説明はリレーショナルデータベースモデルに従いインプリメントされているが、本発明によるシステムは公知のリレーショナルデータベースアーキテクチャの枠内での利用に制限されるものではない。とはいうものの本発明は、主としてリレーショナルデータベースのルールに従ってインプリメントされる可能性がある。本発明の要素を公知のリレーショナルデータベース理論の用語に大雑把に当てはめると、以下のとおりとなる(本発明による定義を左側に示す)。
【0032】
インフォシステム InfoSystem ← マネージメントシステム
インフォエリア InfoArea ← データベース
インフォクラスタ InfoCluster ← テーブル
インフォタイプ InfoType ← 属性
インフォコース InfoCourse ← データレコード
インフォセル InfoCell ← フィールド
インフォブリッジ ← 利用不可能
なお、本発明によるインフォブリッジInfoBridge(これについてはあとで説明する)に該当する用語は、リレーショナルデータベースフィールド中には存在しない。
【0033】
図1には、本発明によるデータベースシステムのスタティックな階層が示されている。このデータベースシステムの最上位レベルはインフォシステムInfoSystemのレベルである。この最上位レベルにから下に降りると、1つまたは複数のインフォエリアがインフォシステムInfoSystemにリンクされている。InfoSystemによりシステムに対し、そのオペレーティングに必要とされるアルゴリズムがランタイムに提供される。InfoSystemはリンク要素を介して何らかの個数のInfoAreaとリンクされており、このリンク要素を以下ではアンカanchorと称する。これらのInfoAreaはたとえばInfoSystemの論理ユニットを参照することができる。
【0034】
各InfoAreaはリンク要素(これも以下ではアンカと称する)を介してインフォクラスタInfoClusterとリンクされている。他方、各InfoClusterはアンカのような個々のリンク要素を介して、少なくとも1つのインフォコースInfoCourseおよび少なくとも1つのインフォタイプInfoTypeとリンクされている。InfoTypeをテーブルの属性とみなすことができる。InfoCourseは常にInfoClusterにおいてスタートする。InfoCouserが、アドレッシングされたそのインフォセルInfoCell要素(これはテーブルのフィールドに相応する)とともにInfoCluster内でとどまっているならば、これはテーブルのレコードと同様である。
【0035】
InfoCourseとInfoTypeの下にはInfoCellが示されている。これはこの階層構造において最下位レベルの要素である。InfoTypeのインスタンスに生成に応じてアンカが生成され、これはInfoCellタイプのインスタンスでもある。このアンカは後続のInfoCell要素の構造を表す機能をもっている(図2参照)。アンカはInfoCell情報キャリアとして7つのポインタを有しており、これについてはあとで説明する。
【0036】
InfoAreaよりも下位のレベルすなわちInfoCluster, InfoCourse, InfoType, InfoCellをインプリメントするために、図2に示されている本発明のデータ要素が用いられる。データ要素は概略的にアンカとして示されており、これには複数のポインタが設けられている。この例ではデータ要素は3つのポインタペアと1つの単独のポインタを有している。図2に示されている初期状態ではすべてのポインタはアンカを指している。この初期状態は考えられる得るリング構造のうち最も単純なものである。この構造中のすべてのポインタは有効なアドレスをもっており、未定義のポインタ(ヌルポインタ)が生じる状況が回避される。
【0037】
第1のポインタペアには参照符号LVRとRVR(それぞれLeft Vertical Ring, Right Vertical Ring)が付されており、第2のポインタペアには参照符号LHR, RHR(それぞれLeft Horizontal Ring, Right Horizontal Ring)が、第3のポインタペアには参照符号LSR, RSR(それぞれLeft Self Ring, Right Self Ring)が、さらに単独のポインタにはIF(InFormation bridge)が付されている。ポインタLSR, RSR, IFは基本的にオプションである。
【0038】
図7にはテーブルAが示されており、このテーブルには名前と年齢と体重に関するデータが含まれている。このテーブルに対しInfoClusterが生成される。さらに3つのInfoTypeが生成され、これらはそれぞれ名前と年齢と体重を表す。
【0039】
図3には、InfoTypeのインプリメントのために使用されるデータ要素が示されている。Infotypeのセマンティックな情報はデータ型(この例では"INTEGER")、指標(この例では「年齢」)等から成る。InfoTypeはInfoTypeに対応づけられたアンカである。このアンカはそのRVRポインタによって、目下の情報キャリアすなわちInfoCellを指している。InfoCellは上述のようにデータシステム内で最下位レベルのエンティティである。InfoCellは図3に示されているような情報を保持しており、この例では「年齢」を30としてINTEGER型で保持している。
【0040】
InfoCellには上述のようにLVR/RVRポインタペアが設けられている。図3に示されているようにInfoCellのRVRポインタはアンカを指しており、LVRポインタもアンカを指している。したがってアンカのリングコンフィギュレーションが維持されている。
【0041】
図4には、別のInfoCellをデータ構造に加える様子が示されている。ここでは(値「25」をもつ)InfoCellが最初のInfoCellの後ろでLVRリング中に挿入される。InfoCellのLVRとRVRポインタは、閉じたリングが維持されるようアンカを参照している。
【0042】
InfoCellの編成順序はそれらの値に左右される。値が小さければそのInfoCellはLVR側におかれ、さもなければRVR側におかれる。このやり方は従来技術においてバイナリツリーの構築として知られている。有利にはバイナリツリーは、周知のバランスツリーまたはAVLツリーの手法として組織される。この種のツリーによりツリー構造内のレベル数が最小化され、アクセスタイムが最短になる。有利にはデータシステム内のすべてのツリー構造は使用中ダイナミックにバランスがとられ、それにより最適なアクセスタイムが保証される。
【0043】
図5には、テーブルAのすべてのInfoTypeがデータ構造に入れられた場合に得られる構造が示されている。全体として、年齢と名前と体重という3つのInfoTypeが存在している。なお、個々のツリーにおける最後の要素各々の最終ポインタは示されていない。InfoTypeのアンカ各々の下にはInfoCellがバイナリツリーとして組織されている。InfoClusterはアンカを指しており、このアンカ自体は最初のInfoTypeを指している。さらにこのInfoTypeは他の2つのInfoTypeを指している。各InfoTypeはアンカを指している。アンカはマーカの付加的な機能を有しており、これをブレークサインまたはリターンサインとしてアクセスやクエリのプロセスにより用いることができる。
【0044】
テーブルのインプリメンテーションを完成させるためには、各InfoType間の関係を作成しなければならない。この目的でInfoCourseが導入される。図6にはInfoCourseが示されており、これにはテーブルにおける4番目の行に関するデータが含まれている。ここではLHRポインタとRHRポインタが用いられる。最終ポインタは再びInfoCourseのアンカに戻り、これによってリング構造が維持される。なお、InfoCourseは、InfoTypeのID番号によりソートされたバイナリツリーも形成する。InfoTypeのID番号はユニークであり、整数値が用いられる。
【0045】
図7には、テーブルAに関してInfoCourseのパスがすべて示されている(たとえばポインタを使用してインプリメントされる)。この場合、すべてのInfoCellはトップセクションにおかれ、これには個々のInfoTypeが設けられ、それによってLHR/RHRポインタを介したInfoCourseのバイナリツリーコンフィギュレーションが組織される。
【0046】
1つのInfoTypeのためのツリー構築中、InfoCellのインスタンスが複数のオカレンス(occurrence)をもつときには以下のメカニズムが使用されて、ツリー構造中に同様のインスタンスが2つ以上出現するのが回避される。図9には、名前Bobが3つのオカレンスをもち名前Alexが2つのオカレンスをもつ事例が示されている。LSR/RSRのポインタペアを用いて後続の複数のエントリがリング状に加えられ、これはリングがデータ構造の要素レベル内にとどまることからここではセルフリングself ringと呼ばれる。最後に加えられた要素はリングのマスタ要素となる。この場合、マスタ要素はツリー構造の一部分である。各要素の下方のセクションに示されているように、リング内における目下の全体要素数はマスタ要素内に格納される。他のもっと古い要素はヒストリックな値(すなわちもっと少ない値)をもつ。なぜならばこれらの値はリングの新しい要素の挿入によっても更新されないからである。このことは実際的見地からみて利点をもち、それによれば数字によってその要素がリング内で古い方なのか新しい方なのかが表される。このことが役立つのは、殊に実践においてリング中をナビゲートするときにいっそう新しいデータがいっそう頻繁にアクセスされるときである。ある要素がその周囲にセルフリングが形成されないことを表すリング値0をもつときは、図8も参照されたい。この情報はサーチクエリの高速化に利用できる。
【0047】
他の特徴は、InfoCell各々に属性として要素カウンタが与えられていることである。要素カウンタは図9中、要素の隣りに示されたボックス内で表されている。要素カウンタは、ポインタLVR/RVRおよびLSR/RSRを介して到達可能な要素の総数として定義されており、これはセルフリング内の要素数+(もしあれば)個々の要素の下のツリー中の要素数である。セルフリング内の要素数はマスタ要素自体において既知であり、ツリー下方の要素は単純に、LVRポインタとRVRポインタにより指示された要素の要素カウンタから得られる。基本的に、関連する要素の個数を求めるためにツリー全体を実際に通り抜ける必要がない。要素カウンタとセルフリングカウンタは最初にデータ構造のマウント中に求められ、要素が追加または削除されたときにも求められる。この種の要素カウンタは、その要素について可能性のあるサーチが行われるときにサーチされるべき潜在的な要素数あるいはそのようなサーチに必要とされるリソースを表している。基本的に片方向のポインタセルフリングだけを使用すれば十分であるけれども、双方向のポインタリングを使用すると付加的な利点が得られる。
【0048】
図10にはテーブルBが6次元構造として示されている。すべてのカウンタおよび識別番号が各ノードごとに示されている。ここではアンカ要素やアンカに対応づけられたポインタ(たとえば閉ループ構造を成すポインタ)は示されていない。
【0049】
InfoTypeの構造はまえもって定義されたセットの機能をもつことができるので、いかなるInfoCourseにも含まれていないInfoTypeツリー中に要素が現れる可能性がある。1つのInfoType中の1つの要素が2つ以上のInfoCourseにより必要とされているならば、各InfoCourseごとに付加的なInfoTypeを生成して構造が有限にとどまるようにするのが有利である。本発明によるデータ要素のポインタIFを、どのようなオブジェクトタイプのインスタンス各々のためにも使うことができる。ポインタIFはどのようなタイプのインスタンスでも指すことができる。それが指し示すインスタンスのタイプはコンテキストまたは指標によって決定できる。これはたとえば(図12に示されているような)フラグのリストであってもよいし、(理論から知られているような)各ノードごとの条件グラフであってもよい。ポインタはあまり多くのビットを要求しないのでいっそう効率的であるのに対し、条件グラフの利点はデータ構造向上のためのセマンティックな情報を含めることができる点にある。
【0050】
IFポインタを利用してどのようなインスタンスに対してもリンクを確立することができる。これはたとえばInfoBridgeを介して行うことができる。本発明によるInfoBridgeは、Yアダプタのように見えるリンク要素であり、これはカスケードすることができる(図11)。オプションとしてInfoBridgeを双方向にすることができ、それにより基本構造を介してどのようなネットワークでも表現することができる。
【0051】
ポインタIFはさらに別の用途をもつ。データ構造内のオペレーションによって非常に多くのデータ要素に対し同時に変更が行われる。しかしミクロレベルでは、すべての変更はシーケンシャルに行われる。たとえばオペレーションはコミット作業またはロールバックによって実行される(これらのオペレーションはSAP R/3 systemによって知られている)。つまりこの場合、トランザクションが完全に完了してしまうまでは(変更されていない)元の値と目的となる(変更された)値の双方が一時的に記憶装置内に保持されていなければならない。InfoBridgeは双方の値を互いに結びつけるために用いられる。図12にはその例が示されている。上方のInfoBridgeは2つのInfoCellを相互にリンクしている。1つのInfoBridgeを加えたときにすべての機能が維持され、図12に破線で示されているようにカスケードにより増やすことができる。ここではYコンフィギュレーションをもつ1つのコネクタだけしか示されていないが他のコンフィギュレーションを使用してもよく、たとえば3つよりも多くのコネクションをもつコンフィギュレーションを使用してもよい。
【0052】
また、図示されている例によればInfoCourseはテーブルに表されているデータレコード定義に係わるものであるが、InfoCourseの使用がこれに限定されるわけではない。InfoCourseはたとえば、様々なInfoClusterそれどころかInfoAreaにおける制約のないInfoTypeにわたって拡張することができる。このようにして参照一貫性を保証することもできる。たとえばテストテーブルの値をアプリケーションテーブルにコピーする必要がない(これは公知のデータベースにとっては一般的である)。その代わりに個々のInfoCellに対し、テストテーブルとして使用されるInfoClusterのInfoCellへのポインタが値として与えられることになる。
【0053】
最短推定ランタイムをもつクエリルートを求めるためにクエリオプティマイザが使用される。
【0054】
上述のシステムのインプリメンテーションは、公知のどのような適切な方式やプログラミング言語を使用しても行える。ここで有用であるのは、インプリメンテーションの言語がポインタをサポートすることである。プログラミング言語がオブジェクト指向であればさらに役に立つけれども、それは本質的なことではない。たいていのインプリメンテーションでは一時的な要素をもつ付加コントロール構造が必要とされるが、そのようなインプリメンテーションの詳細は知られており、当業者の能力範囲の及ぶところである。本発明の実験的なインプリメンテーションはC++でプログラミングしたが、この言語はポインタおよびオブジェクトならびにオブジェクトクラスを使えるという付加的な利点をもっている。
【0055】
本発明をたとえばランダムアクセスメモリ(RAM)にインプリメントすることができ、そこではアドレスをランダムにアクセスできる。ランダムアクセスメモリの使用により得られる利点はさらに、データ構造に対する変更によってもどのようなかたちにせよ効率に作用が及ぼされないことでもある。本発明は有利にはランダムアクセスメモリにインプリメントされるけれども、インプリメンテーションがこの形態に限定されるわけではなく、記憶装置における別のインプリメンテーションも可能である。
【0056】

以下の例では、InfoCellに対しどのようなアクセスが行われるかが示されている。例示のためだけに、1つのInfotypeに属するInfoCellwが使用される。図13には、もっと大きいデータセットのうちの一部分を成す構造が示されている。
【0057】
この構造中のデータ要素をアクセスするためにリングポインタ構造が使用され、これにはリング(LVR/RVR)に戻るポインタとセルフリングとが含まれている。図13ではポインタは小さいアンカシンボルによって表されている。図14には、図13の構造がその基礎を成すバイナリツリー構造の関係によって示されており、これは複数の同一の要素がないとした事例である。以下ではサーチクエリのいくつかの例について示すことにする。
【0058】
例1:クエリ(key = 54)
目的はキー54をもつデータ要素を見つけることである。サーチはポジション1からスタートし(図15に矢印1で示す)、そこは図13に示されているアンカのすぐ後である。その後はバイナリツリーにおけるサーチと同様であり、InfoCellを順々に巡り、つまりツリーを下に降りていく。ここでは連続するInfoCellが矢印1〜5で表されている。矢印5によって個々の要素が見つけられる。
【0059】
InfoCellには他のInfoCellと同様、ポインタペアLHR, RHRが設けられている。InfoCellに隣接するセマンティック情報からInfoCourseを得ることができる。InfoCourseポインタもリングツリーとして組織されているので、InfoCourseの開始アンカに必ず到達できる。この開始アンカからInfoCourse構造内のすべての要素に到達できる。パフォーマンスをさらに高めるため、このInfoCourseアンカをダイレクトに指示する付加的なポインタを各InfoCellに加えることができる。このポインタを用いれば、このアンカに到達するためにInfoCourseツリーをくまなく通って降りていく必要がない。
【0060】
ある値(たとえば図15の矢印6のところに示す53)を挿入する目的で、ポイント6に到達するために上述のものと同じ方法が用いられ、このポイント6のところに新たなInfoCellが加えられる。InfoCellの付加後、必要であればバイナリツリーのバランスをとるためにソートしなおすことができる。このようなリソート手法は従来技術でよく知られている。
【0061】
例2:クエリ(key < 20)
この例ではクエリは、ツリーのうちハッチングされた部分集合をみつけるということであり(図16)、その部分集合は条件キー<20を満たすものである。やはりサーチはポジション1から始められ、(前述のとおり公知の技術を使用して)ポジション3の末端までツリーが下に向かって辿られる。なお、ここではツリーの構造上、ツリーのこの末端より下のすべての要素は上述の条件を満たすものである。ツリーにおけるこのセクションの要素数は(ツリーの下位のセクションを通ってサーチする必要なく)既知である。それというのもInfoCell 10には要素カウンタ(x1)指標が設けられているからであり、これによっていくつの要素がツリーのこのセクションに続くかが精確に伝えられる。
【0062】
例3:クエリ(key < 28)
この例(図17)では、データベース構造のサーチのためどのようにしてヒット数を求めることができるかを示す。ツリーにおけるサーチはポジション1からスタートし、クエリ規準を満たすポジション2へ向かう。しかし要素カウンタx1をそのまま使うことはできない。それというのもそこには規準を満たさないセルも含まれているからである(つまり30と35)。パスはポジション2からポジション3へと続き(図18)、このポジションで要素カウンタy1がみつけられる。このポジションからパスはさらにポジション4へと続き、そこにおいて要素カウンタx2がみつけられる(図19)。ここでサーチは完了し、みつかった要素カウンタx1, y1, x2をそれぞれ加算および減算することにより、クエリキー(<28)に対する正確なヒット数を計算することができる。これによってセルのターゲットグループを表すハッチングエリア内のセル数が得られる。このようにかなり僅かな回数のステップでツリー構造を1つのパスを降りていきながら、クエリにより生じるヒット数が決定論的に求められ、これによりセルの精確な個数が得られる。
【0063】
与えられたクエリに対するヒット数の情報をベースとして、サーチオプティマイザは実状に基づきサーチプランをたてることができる。
【0064】
例4:クエリ(key > 10)
図21には例3で行ったのと同じ論理分析が別の例に関して示されており、ここではクエリはキー>10である。ポジション1からサーチがスタートし、このポジションでただちにハッチングエリアとして示す第1の結果が生じる。ついでサーチはポジション2に進み、ここでは第2のハッチングエリアが求められる。その後、サーチはポジション3で終わる。ここでは右側のパス中のすべてのセルを(ポジション3自体のセル10を除いて)考慮に入れる必要がある。クエリキーが>=であったならば、このセルも考慮されたはずである。前述の例と同じやり方でヒット数が計算され、つまり考慮すべきか否かに応じて要素カウンタを加算および減算することによって計算が行われる。
【0065】
例5:クエリ(key between 24 and 54)
図22に示されているクエリによれば、ヒット数を求めるためツリー構造を通り抜けて2つのサーチが必要とされる。ツリーは40で始まるので、左右の分岐両方をサーチしなければならず、つまり詳しくいうと、24という小さい方の値をもつ左側の分岐と、54という大きい方の値をもつ右側の分岐の両方である。その結果、クエリの規準を満たすセルから成る円で囲まれた集合が識別される。択一的にクエリを2つの基本クエリ(key >= 24 and key <= 54)に分けてもよいが、結果は同じである。
【0066】
例6:アクセスパスの最適化
この例ではいっそう複雑なサーチが示されており、さらにここではある特定のクエリに対するヒット数を求める上述の方法を利用した最適化方法も示す。
【0067】
この例では、
key_1 < 28 and key_2 >= value_2 and key_3 < value_3
という複合クエリ規準を使う。このような複合ステートメントを実行するため本発明によるオプティマイザは、クエリの各セクションにおいてどれだけ多くのヒットが得られるかを求める。このヒット数に基づきオプティマイザは、最小ヒット数のクエリセクションをまずはじめに処理するようにし、それよりも多いヒット数のクエリセクションはそのあとで処理しようとする。
【0068】
クエリの各セクションごとのヒット数を求めるため、上述の例で示したようにセクションごとに1回ツリーをサーチする必要がある。
【0069】
代案として、すでにみつけられたツリー中のノードの開始アドレスを記憶することができる。(要素カウンタのような)それらの開始アドレスのもつ情報に基づき、クエリのサブセクションのためにツリーの一部分をサーチする必要がない。なぜならばすでに記憶されている情報からそれを導き出せるからである。
【0070】
クエリの最初のセクションは図17に示されている例にマッチする。この例ではポジション2に到達すると、ガイド型のオブジェクトの一時的なインスタンスが生成され、これによりポジション2のアドレスが記憶される。さらに反復値Itが生成され(これは図23と同様)、これはサブツリー内の目下の有効なセルの個数を記憶する。この値Itを、サブツリーを辿るアルゴリズムに対する最終基準としてあとで用いることができる。これはセルの値に対しサーチ規準を比較する役割を果たす。それというのもこのツリーセクション内のすべての有効なセルを辿った後、この最終基準に達するからである。Itは整数型であるので、ロングキャラクタチェーンとなるであろうセルの目下の値の比較よりも高速である。
【0071】
図19によればポジション4(25)において明確であるのは、規準(key_1 < 28)がオプティマイザにより最初の規準としてあとで使われるのであれば、まだ辿らなければならないさらに別のツリーが存在することである。この目的でさらに別のガイドが導入され、これによりセル25の開始アドレスと反復値Itが記憶され、この事例ではこの値はx2と同様である。
【0072】
非常に大規模なツリー構造を用いて、有効なヒットを含む多くのサブツリーを1回辿る間に識別することができる。この種のサブツリーのトップ要素各々について、開始アドレスと要素のIt値を含むガイドが生成される。すべてのガイドはリンクされた1つの線形リストを成しており、これが個々の規準に加えられる。
【0073】
ANDチェーンのすべてのパートがそれらヒット数(M)についてサーチされ、オプティマイザが最小ヒット数の選択基準部分を選んだ後、オプティマイザは有効なセルをもつツリーをダイレクトにアクセスするためにガイドの線形リストを使うことができる。規準の他の部分に対する線形リストは廃棄されるが、それによっても処理時間が増すわけではない。
【0074】
本発明のオプティマイザによれば、サーチ規準の個々の部分によって得られるヒット数の正確な決定に基づきサーチパスが求められる。このようにサーチパスを求めることで最も最適な選択が常に得られる。
【図面の簡単な説明】
【図1】 本発明によるシステムの階層構造を概略的に示す図である。
【図2】 本発明によるデータ形式を示す図である。
【図3】 アンカおよびインフォセルInfoCellをもつインフォタイプInfoType構造を示す図である。
【図4】 本発明による2つのInfoCellを示す図である。
【図5】 バイナリツリーコンフィグレーションにおける3つのInfoTypeを備えたインフォクラスタInfoClusterを示す図である。
【図6】 InfoType識別番号により記憶されたバイナリツリーとしてInfoCourseを示す図である。
【図7】 4次元でリンクされたInfoCell要素のサブ構造を表された内容のテーブルとともに示す図である。
【図8】 ダブルリンクセルフリングdouble link Self Ringをリングの要素カウンタの番号とともに示す図である。
【図9】 多次元構造の要素カウンタに対する番号を示す図である。
【図10】 テーブルを6次元構造として示す図である。
【図11】 インフォブリッジInfoBridgeをカスケードした様子を示す図である。
【図12】 8つのフラグをもつインフォブリッジInfoBridgeを示す図である。
【図13】 ツリー構造の一例を示す図である。
【図14】 図13を簡単にした図である。
【図15】 第1の例を示す図である。
【図16】 第2の例を示す図である。
【図17】 第3の例を示す図である。
【図18】 図17による例を示す図である。
【図19】 図17による例を示す図である。
【図20】 図17による例を示す図である。
【図21】 第4の例を示す図である。
【図22】 第5の例を示す図である。
【図23】 第6の例を示す図である。

Claims (8)

  1. データの記憶およびアクセスのためにデータベースインデックスツリー構造を形成するコンピュータシステムにおいて、
    第1のタイプ(InfoCluster)の少なくとも1つのデータ要素が設けられており、
    該データ要素には、データベースの属性エントリを表す第2のタイプ(InfoType)のデータ要素 InfoCell と、該第2のタイプ(InfoType)のデータ要素に対応づけられておりデータレコードを表す第3のタイプ(InfoCourse)のデータ要素が対応づけられており、
    前記第2のタイプ(InfoType)のデータ要素は、複数の属性ツリー構造内に配置されており、各属性ツリー構造には、前記第2のタイプ( InfoType )である1つのデータベース属性のデータ要素がソートされた順序で含まれており、各属性ツリー構造には、前記第2のタイプ( InfoType )のデータ要素をリンクするポインタのセット( LVR, RVR, LSR, RSR, IF )が含まれており、
    前記第3のタイプ(InfoCourse)のデータ要素は1つのデータレコードツリー構造内に配置されており、
    前記第3のタイプ( InfoCourse )のデータ要素ごとに、該第3のタイプ( InfoCourse )の対応するデータ要素により表されるデータレコードに属する前記第2のタイプ( InfoType )のデータ要素( InfoCell )が、該第2のタイプ( InfoType )のデータ要素の識別番号( ID )によりソートされて前記1つのデータレコードツリー構造内に配置されており、
    1つの属性ツリー構造内に存在する前記第2のタイプ( InfoType )のすべてのデータ要素は同一の識別番号( ID )を有しており、
    前記データレコードツリー構造は、別のポインタセット(LHR,RHR)を有しており、該別のポインタセットにより、前記第3のタイプ( InfoCourse )の対応するデータ要素により表されるデータレコードに属する第2のタイプ( InfoType )のデータ要素がリンクされることを特徴とする、
    データの記憶およびアクセスのためにデータベースインデックスツリー構造を形成するコンピュータシステム。
  2. ツリー構造の終端データ要素はリンク要素を介して少なくとも個々のツリー構造の始端データ要素とリンクされている、請求項1記載のコンピュータシステム
  3. 前記第2のタイプ(InfoType)の同様のデータ要素が複数出現した場合該データ要素は、リンク要素を介して相互にリンクされたデータ要素の集合をもつ1つのセルフリング内に配置されており、該集合における1つのデータ要素はそのまま個々のツリー構造の一部分である、請求項1または2記載のコンピュータシステム
  4. 1つのツリーのデータ要素には、ツリー構造中で個々の要素の下に配置されたデータ要素数を表す数が設けられている、請求項1から3のいずれか1項記載のコンピュータシステム
  5. 第1のタイプのデータ要素と第2のタイプのデータ要素との間のノードは第3のタイプ(InfoCourse)の要素により形成される、請求項1から4のいずれか1項記載のコンピュータシステム
  6. 1のポインタペア(LSR, RSR)と第2のポインタペア(LHR, RHR)と第3のポインタペア(LVR, RVR)が設けられており、
    前記第1のポインタペア( LSR, RSR )は、同様の要素を1つのリング構造に含めるために用いられ、
    前記第2のポインタペア( LHR, RHR )は、ある要素を隣接ツリーとリンクするために用いられ、
    前記第3のポインタペア( LVR, RVR )は、同じタイプの要素を包含する1つのツリー構造内で各要素をリンクするために用いられる、
    請求項1から5のいずれか1項記載のコンピュータシステム
  7. IFポインタ(IF)が設けられており、該IFポインタ(IF)はツリー構造内の他の何らかのインスタンスとリンクするために用いられる、請求項6記載のコンピュータシステム
  8. コンピュータシステムを用いてデータベースクエリを最適化する方法において、
    前記コンピュータシステムにより、1つのサーチ規準を複数のクエリセクションに分解するステップが設けられており、
    1つのクエリセクションは、属性を表すデータタイプ(InfoType)のデータ要素(InfoCell)の集合を表し、
    該データ要素(InfoCell)は、前記データタイプ(InfoType)のデータ要素が配置されている属性ツリー構造内でポインタを介してリンクされており、
    別のデータタイプ(InfoCourse)のデータ要素は、前記データタイプ(InfoType)のデータ要素と対応づけられたデータレコードを表し、
    該別のデータタイプ(InfoCourse)のデータ要素は別のデータレコードツリー構造内に配置されており、
    該別のデータタイプ(InfoCourse)のデータ要素ごとに、前記別のデータタイプ(InfoCourse)の対応するデータ要素により表されるデータレコードに属する前記属性を表すデータタイプ(InfoType)のデータ要素(InfoCell)は、前記属性を表すデータタイプ(InfoType)のデータ要素の識別番号(ID)によりソートされて前記別のデータレコードツリー構造内に配置されており、
    1つの属性ツリー構造におけるデータタイプ(InfoType)のすべてのデータ要素は同じ識別番号(ID)を有しており、
    前記別のデータレコードツリー構造は別のポインタセット(LHR, RHR)を有しており、該別のポインタセット(LHR, RHR)により、前記別のデータタイプ(InfoCourse)の対応するデータ要素により表されるデータレコードに属する前記属性を表す前記タイプ(InfoType)のデータ要素(InfoCell)がリンクされ、
    前記コンピュータシステムの計算手段により、分解された各クエリセクションごとに目下のデータベース構造において前記サーチ規準を満たす要素数を表すヒット数を求めるステップと、
    該コンピュータシステムの計算手段により、各クエリセクションごとに求められた前記ヒット数に従い、最短ランタイムをもつサーチパスを選択するステップとを有することを特徴とする、
    データベースクエリの最適化方法。
JP2002561715A 2001-02-01 2002-02-01 情報システムのためのデータ構造 Expired - Lifetime JP3959027B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10104831A DE10104831A1 (de) 2001-02-01 2001-02-01 Datenstruktur für Informationssysteme
PCT/EP2002/001026 WO2002061612A2 (en) 2001-02-01 2002-02-01 Data structure for information systems

Publications (2)

Publication Number Publication Date
JP2004518225A JP2004518225A (ja) 2004-06-17
JP3959027B2 true JP3959027B2 (ja) 2007-08-15

Family

ID=7672701

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002561715A Expired - Lifetime JP3959027B2 (ja) 2001-02-01 2002-02-01 情報システムのためのデータ構造
JP2002561716A Pending JP2004518226A (ja) 2001-02-01 2002-02-01 データベースシステムおよびクエリオプティマイザ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2002561716A Pending JP2004518226A (ja) 2001-02-01 2002-02-01 データベースシステムおよびクエリオプティマイザ

Country Status (8)

Country Link
US (3) US20040093329A1 (ja)
EP (2) EP1360616B1 (ja)
JP (2) JP3959027B2 (ja)
AT (2) ATE487186T1 (ja)
AU (2) AU2002229734B2 (ja)
CA (1) CA2434081C (ja)
DE (3) DE10104831A1 (ja)
WO (2) WO2002061612A2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785668B1 (en) * 2000-11-28 2004-08-31 Sas Institute Inc. System and method for data flow analysis of complex data filters
DE10104831A1 (de) 2001-02-01 2002-08-08 Sap Ag Datenstruktur für Informationssysteme
MXPA04012978A (es) 2002-07-01 2005-09-12 Arkion Life Sciences Llc D B A Proceso y material para la produccion de glucosamina y n-acetilglucosamina.
WO2004092951A2 (en) 2003-04-18 2004-10-28 Sap Ag Managing a computer system with blades
US7590683B2 (en) 2003-04-18 2009-09-15 Sap Ag Restarting processes in distributed applications on blade servers
EP1496449B1 (en) * 2003-07-08 2010-01-13 Sap Ag Method and computer system for query processing
DE60334371D1 (de) * 2003-07-17 2010-11-11 Sap Ag Verfahren und Computersystem zum Speichern von mehrfachen Attributwerten
ATE522873T1 (de) * 2003-07-18 2011-09-15 Sap Ag Verfahren und computersystem für zusammengestellte informationen
US7337295B2 (en) 2003-07-24 2008-02-26 Sap Aktiengesellschaft Memory management frame handler
US7310719B2 (en) 2003-07-24 2007-12-18 Sap Aktiengesellschaft Memory management tile optimization
EP1503297A1 (en) * 2003-07-30 2005-02-02 Sap Ag Computer implemented methods of retrieving hit count data from a data base system and according computer program product
EP1510932A1 (en) * 2003-08-27 2005-03-02 Sap Ag Computer implemented method and according computer program product for storing data sets in and retrieving data sets from a data storage system
ATE368901T1 (de) 2003-08-27 2007-08-15 Sap Ag Weiterleiten von änderungen in einer datenbank
US8706686B2 (en) * 2003-12-24 2014-04-22 Split-Vision Kennis B.V. Method, computer system, computer program and computer program product for storage and retrieval of data files in a data storage means
US7418445B1 (en) * 2004-11-08 2008-08-26 Unisys Corporation Method for reducing the scope of the K node construction lock
GB2431742A (en) * 2005-10-27 2007-05-02 Hewlett Packard Development Co A method of retrieving data from a data repository
US20070118510A1 (en) * 2005-11-18 2007-05-24 Microsoft Corporation Optimization of leaf-level multi-dimensional calculation using scripts
US8738639B1 (en) * 2006-02-23 2014-05-27 Verizon Data Services Llc Methods and systems for an information directory providing audiovisual content
US9367553B2 (en) * 2006-12-30 2016-06-14 Sap Se Computer file system traversal
US7752229B2 (en) 2007-01-26 2010-07-06 International Business Machines Corporation Real-time identification of sub-assemblies containing nested parts
US8806324B2 (en) * 2007-08-03 2014-08-12 Sap Ag Annotation data filtering of computer files
JP4834054B2 (ja) * 2008-11-19 2011-12-07 新日鉄ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム
US10564944B2 (en) * 2010-01-07 2020-02-18 Microsoft Technology Licensing, Llc Efficient immutable syntax representation with incremental change
US9009137B2 (en) 2010-03-12 2015-04-14 Microsoft Technology Licensing, Llc Query model over information as a networked service
DE102011087843B4 (de) 2011-12-06 2013-07-11 Continental Automotive Gmbh Verfahren und System zur Auswahl mindestens eines Datensatzes aus einer relationalen Datenbank
US9781075B1 (en) * 2013-07-23 2017-10-03 Avi Networks Increased port address space
US9870417B2 (en) 2014-04-22 2018-01-16 Business Objects Software Ltd. Merging business object hierarchies
US9838303B2 (en) * 2015-03-20 2017-12-05 Juniper Networks, Inc. PIM source discovery by last hop router
EP3091449B1 (en) * 2015-05-04 2018-07-25 Deloitte Consulting GmbH Operating a database system
US9998292B2 (en) 2015-09-30 2018-06-12 Juniper Networks, Inc. PIM source discovery by last hop router on shared tree
US10387443B2 (en) 2016-05-09 2019-08-20 Sap Se Exporting and importing database containers
US10674438B2 (en) 2017-06-29 2020-06-02 Sap Se Restricting access to external schemas from within a database level container by whitelisting allowed schemas
US11093443B2 (en) 2017-06-29 2021-08-17 Sap Se Database-level container group management
US10776330B2 (en) 2017-06-29 2020-09-15 Sap Se Optimized re-deployment of database artifacts
US10984021B2 (en) 2017-06-29 2021-04-20 Sap Se Deployment of independent database artifact groups
US10657114B2 (en) 2017-11-28 2020-05-19 Sap Se Reserving key specifications
US11030164B2 (en) 2018-01-18 2021-06-08 Sap Se Artifact deployment for application managed service instances

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829427A (en) * 1984-05-25 1989-05-09 Data General Corporation Database query code generation and optimization based on the cost of alternate access methods
US4849905A (en) 1987-10-28 1989-07-18 International Business Machines Corporation Method for optimized RETE pattern matching in pattern-directed, rule-based artificial intelligence production systems
US4956774A (en) * 1988-09-02 1990-09-11 International Business Machines Corporation Data base optimizer using most frequency values statistics
US5257365A (en) * 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
JPH04299459A (ja) * 1991-03-27 1992-10-22 Nec Corp データベースアクセスシステム
US5355473A (en) * 1991-06-20 1994-10-11 Lawrence Au Indexed record locating and counting mechanism
FR2696853B1 (fr) * 1992-10-12 1994-12-23 Bull Sa Procédé d'aide à l'optimisation d'une requête d'un système de gestion, de base de données relationnel et procédé d'analyse syntaxique en résultant.
JP3526585B2 (ja) * 1992-03-12 2004-05-17 株式会社リコー 分散データベースの質問処理最適化方式
US5737732A (en) * 1992-07-06 1998-04-07 1St Desk Systems, Inc. Enhanced metatree data structure for storage indexing and retrieval of information
US5548770A (en) * 1993-02-25 1996-08-20 Data Parallel Systems, Inc. Method and apparatus for improving retrieval of data from a database
US5560007A (en) * 1993-06-30 1996-09-24 Borland International, Inc. B-tree key-range bit map index optimization of database queries
US5657437A (en) * 1993-12-10 1997-08-12 Lucent Technologies Inc. Data processing apparatus and method including proportional updating of data
US5557786A (en) * 1994-01-24 1996-09-17 Advanced Computer Applications, Inc. Threaded, height-balanced binary tree data structure
US5742806A (en) 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
CA2124094C (en) * 1994-05-20 1999-07-20 K. Bernhard Schiefer Method and apparatus for optimizing data retrieval using index scanning
DE19515020A1 (de) * 1994-07-01 1996-01-04 Hewlett Packard Co Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren
US5664172A (en) * 1994-07-19 1997-09-02 Oracle Corporation Range-based query optimizer
US5659728A (en) * 1994-12-30 1997-08-19 International Business Machines Corporation System and method for generating uniqueness information for optimizing an SQL query
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6175835B1 (en) * 1996-07-26 2001-01-16 Ori Software Development, Ltd. Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks
US5822747A (en) * 1996-08-23 1998-10-13 Tandem Computers, Inc. System and method for optimizing database queries
US5819255A (en) * 1996-08-23 1998-10-06 Tandem Computers, Inc. System and method for database query optimization
US6021405A (en) * 1996-08-23 2000-02-01 Tandem Computers, Inc. System and method for optimizing database queries with improved performance enhancements
GB2330221B (en) * 1997-10-09 2002-07-03 Ibm Optimisation of relational database queries
WO1999028505A1 (en) * 1997-12-03 1999-06-10 Curagen Corporation Methods and devices for measuring differential gene expression
US6675173B1 (en) * 1998-01-22 2004-01-06 Ori Software Development Ltd. Database apparatus
US7016910B2 (en) * 1999-12-30 2006-03-21 Decode Genetics Ehf. Indexing, rewriting and efficient querying of relations referencing semistructured data
DE10104831A1 (de) 2001-02-01 2002-08-08 Sap Ag Datenstruktur für Informationssysteme

Also Published As

Publication number Publication date
WO2002061612A3 (en) 2003-11-27
DE60208778T2 (de) 2006-09-07
WO2002061612A2 (en) 2002-08-08
US20040093329A1 (en) 2004-05-13
US20040139046A1 (en) 2004-07-15
EP1360616B1 (en) 2010-11-03
US20040088307A1 (en) 2004-05-06
AU2002229734B2 (en) 2005-05-05
AU2002249161B2 (en) 2005-05-19
CA2434081A1 (en) 2002-08-08
WO2002061613A2 (en) 2002-08-08
ATE487186T1 (de) 2010-11-15
WO2002061613A3 (en) 2003-09-04
DE60238179D1 (de) 2010-12-16
DE60208778D1 (de) 2006-04-06
EP1393206A2 (en) 2004-03-03
JP2004518226A (ja) 2004-06-17
CA2434081C (en) 2009-06-16
US7257599B2 (en) 2007-08-14
DE10104831A1 (de) 2002-08-08
JP2004518225A (ja) 2004-06-17
ATE316266T1 (de) 2006-02-15
EP1360616A2 (en) 2003-11-12
EP1393206B1 (en) 2006-01-18

Similar Documents

Publication Publication Date Title
JP3959027B2 (ja) 情報システムのためのデータ構造
AU2002249161A1 (en) Data structure for information systems
US9063982B2 (en) Dynamically associating different query execution strategies with selective portions of a database table
KR100896528B1 (ko) 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템
Armstrong et al. Database organization strategies for spatial decision support systems
US6618727B1 (en) System and method for performing similarity searching
JP3771271B2 (ja) コンパクト0完全木における順序付けられたキーの集まりの記憶と検索のための装置及び方法
EP1496449B1 (en) Method and computer system for query processing
US6931418B1 (en) Method and system for partial-order analysis of multi-dimensional data
US20070027860A1 (en) Method and apparatus for eliminating partitions of a database table from a join query using implicit limitations on a partition key value
US7743052B2 (en) Method and apparatus for projecting the effect of maintaining an auxiliary database structure for use in executing database queries
AU2002229734A1 (en) Database system and query optimiser
JPH0682331B2 (ja) トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システム
Srivastava et al. TBSAM: An access method for efficient processing of statistical queries
US7752181B2 (en) System and method for performing a data uniqueness check in a sorted data set
Park et al. A new query processing technique for XML based on signature
RU2433467C1 (ru) Способ формирования структуры агрегированных данных и способ поиска данных посредством структуры агрегированных данных в системе управления базами данных
Li et al. A single-scan algorithm for mining sequential patterns from data streams
US20050228772A1 (en) Apparatus and method for using values from a frequent values list to bridge additional keys in a database index
Zhao et al. Graph indexing for spatial data traversal in road map databases
Griswold Core algorithms for autonomous monitoring of distributed systems
Omiecinski et al. Analysis of a deferred and incremental update strategy for secondary indexes
Hassan Native Graph Support in Relational Data Systems
Jea et al. A difference-based version model for OODBMS
Fu Heuristics and multi-dimensional physical database design

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061023

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070313

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070511

R150 Certificate of patent or registration of utility model

Ref document number: 3959027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

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

EXPY Cancellation because of completion of term