JP3959027B2 - 情報システムのためのデータ構造 - Google Patents
情報システムのためのデータ構造 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating 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
本発明は、データシステムなど情報記憶システムのためのデータ構造に関する。コンピュータをベースとするデータ記憶システムの場合、メモリやハードディスクドライブなど何らかの媒体にデータが記憶され、そこからデータが取り出される。公知のシステムの場合、データはたとえばリレーショナルモデルをベースとした構造をもつようなデータ構造に格納される。公知のデータ記憶システムを使用して格納されているデータは、記憶させて探索し取り出すことができるけれども、取り出しに要する時間がかなりかかる可能性があり、複合的なクエリの倍には殊に相当な時間がかかる可能性がある。さらに効率的なデータモデルを構成するのは手間がかかり、したがってコストが嵩む。データベースレイアウトまたはデータモデルが定義されてしまうと、あとから改変するのは実装が困難であり、それによってたいていはパフォーマンスの損失が引き起こされてしまう。
【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のタイプ(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 )のデータ要素がリンクされることを特徴とする、
データの記憶およびアクセスのためにデータベースインデックスツリー構造を形成するコンピュータシステム。 - ツリー構造の終端データ要素はリンク要素を介して少なくとも個々のツリー構造の始端データ要素とリンクされている、請求項1記載のコンピュータシステム。
- 前記第2のタイプ(InfoType)の同様のデータ要素が複数出現した場合、該データ要素は、リンク要素を介して相互にリンクされたデータ要素の集合をもつ1つのセルフリング内に配置されており、該集合における1つのデータ要素はそのまま個々のツリー構造の一部分である、請求項1または2記載のコンピュータシステム。
- 1つのツリーのデータ要素には、ツリー構造中で個々の要素の下に配置されたデータ要素数を表す数が設けられている、請求項1から3のいずれか1項記載のコンピュータシステム。
- 第1のタイプのデータ要素と第2のタイプのデータ要素との間のノードは第3のタイプ(InfoCourse)の要素により形成される、請求項1から4のいずれか1項記載のコンピュータシステム。
- 第1のポインタペア(LSR, RSR)と第2のポインタペア(LHR, RHR)と第3のポインタペア(LVR, RVR)が設けられており、
前記第1のポインタペア( LSR, RSR )は、同様の要素を1つのリング構造に含めるために用いられ、
前記第2のポインタペア( LHR, RHR )は、ある要素を隣接ツリーとリンクするために用いられ、
前記第3のポインタペア( LVR, RVR )は、同じタイプの要素を包含する1つのツリー構造内で各要素をリンクするために用いられる、
請求項1から5のいずれか1項記載のコンピュータシステム。 - IFポインタ(IF)が設けられており、該IFポインタ(IF)はツリー構造内の他の何らかのインスタンスとリンクするために用いられる、請求項6記載のコンピュータシステム。
- コンピュータシステムを用いてデータベースクエリを最適化する方法において、
前記コンピュータシステムにより、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)がリンクされ、
前記コンピュータシステムの計算手段により、分解された各クエリセクションごとに目下のデータベース構造において前記サーチ規準を満たす要素数を表すヒット数を求めるステップと、
該コンピュータシステムの計算手段により、各クエリセクションごとに求められた前記ヒット数に従い、最短ランタイムをもつサーチパスを選択するステップとを有することを特徴とする、
データベースクエリの最適化方法。
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)
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)
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 |
-
2001
- 2001-02-01 DE DE10104831A patent/DE10104831A1/de not_active Withdrawn
-
2002
- 2002-02-01 JP JP2002561715A patent/JP3959027B2/ja not_active Expired - Lifetime
- 2002-02-01 US US10/470,716 patent/US20040093329A1/en not_active Abandoned
- 2002-02-01 JP JP2002561716A patent/JP2004518226A/ja active Pending
- 2002-02-01 WO PCT/EP2002/001026 patent/WO2002061612A2/en active IP Right Grant
- 2002-02-01 AT AT02710826T patent/ATE487186T1/de not_active IP Right Cessation
- 2002-02-01 CA CA002434081A patent/CA2434081C/en not_active Expired - Lifetime
- 2002-02-01 AT AT02718074T patent/ATE316266T1/de not_active IP Right Cessation
- 2002-02-01 EP EP02710826A patent/EP1360616B1/en not_active Expired - Lifetime
- 2002-02-01 WO PCT/EP2002/001027 patent/WO2002061613A2/en active IP Right Grant
- 2002-02-01 AU AU2002229734A patent/AU2002229734B2/en not_active Expired
- 2002-02-01 AU AU2002249161A patent/AU2002249161B2/en not_active Expired
- 2002-02-01 US US10/470,720 patent/US20040088307A1/en not_active Abandoned
- 2002-02-01 EP EP02718074A patent/EP1393206B1/en not_active Expired - Lifetime
- 2002-02-01 DE DE60208778T patent/DE60208778T2/de not_active Expired - Lifetime
- 2002-02-01 DE DE60238179T patent/DE60238179D1/de not_active Expired - Lifetime
-
2003
- 2003-08-08 US US10/637,004 patent/US7257599B2/en not_active Expired - Lifetime
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 |