JPH10320423A - データベースシステムにおいて結合質問を実行する方法及び装置 - Google Patents
データベースシステムにおいて結合質問を実行する方法及び装置Info
- Publication number
- JPH10320423A JPH10320423A JP10094828A JP9482898A JPH10320423A JP H10320423 A JPH10320423 A JP H10320423A JP 10094828 A JP10094828 A JP 10094828A JP 9482898 A JP9482898 A JP 9482898A JP H10320423 A JPH10320423 A JP H10320423A
- Authority
- JP
- Japan
- Prior art keywords
- fragments
- fragment
- join
- records
- predicate
- 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
Links
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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- 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/99932—Access augmentation or optimizing
-
- 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
- Y10S707/99934—Query formulation, input preparation, or translation
-
- 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
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
行する方法及び装置を提供する。 【解決手段】 結合に対する応答を生成するコンピュー
タに実装された方法である。二つの表は、フラグメント
に分割される。結合フラグメントマップは、第1の表か
らの各対応フラグメントに対して、第1の表からの対応
フラグメントからの記録を伴う結合述語を満足させる記
録を含む第2の表からのフラグメントを識別する。マッ
プは、を削除するために用いられる。結合述語を満足さ
せることができないフラグメントを削除するために用い
られる。
Description
ステムに関し、特に、データベースシステムによって結
合述語を有している質問を処理する方法及び装置に関す
る。
レーショナルデータベースは、一つ以上の二次元表とし
て一般に示される。各表は、行及び列に項目及び項目の
属性を配列している。各表の行は、項目(記録と称す
る)に対応し、かつ各表の列は、項目の属性(フィール
ドを称する)に対応する。リレーショナルデータベース
では、表の集合は、共通の属性または“キー”を介して
相互に関連付けることができる。共通キーは、一つの表
の情報を別の表の対応する情報に自動的に相互参照され
ることができる。複雑な検索は、“質問”によりデータ
ベースで実行されうる。質問は、データベースから検索
するためにデータベースシステムに対する情報を特定す
べき一つ以上の述語を含む。結合質問は、二つ以上の表
からの情報を要求する質問である。例えば、一つの表に
顧客情報を、別の表にクレジットカードトランザクショ
ンを記憶するデータベースでは、結合質問は、住居が存
在している州で顧客が買い物をしたようなトランザクシ
ョンを要求しうる。結合質問は、二つの表からの記録を
選択するために基準を特定すべく少なくとも一つの結合
述語を含まなければならない(例えば、顧客の住居の州
がトランザクションが発生する州と同じである)。結合
質問は、また、個々の表からの記録を選択すべく一つ以
上の単一表述語を含みうる。
ベースシステムは、いずれかの記録が結合述語を満足さ
せるかどうかを決定すべく第1の表の各記録に対して第
2の表の全ての記録を検査する。そのような記録は、
“マッチ(match) ”したと言いうる。次いで、データベ
ースシステムは、マッチした記録からの質問表を構築す
る。多くの状況において、通常のデータベース動作は、
結合質問を実行するときには許容できない程にスローで
ありうる。結合質問を処理するために必要な時間を低減
するために複数の技術が開発されている。結合質問の性
能を改良するための一つの技術は、データベースシステ
ムによって検索するデータの量を低減することである。
特に、結合述語を満足させることができない記録は、質
問の両方の表から削除されるべきである。
説明されうる: SELECT * FROM R, S [例1] WHERE R.r = S.s and R.r < 10; この質問は、結合述語R.r = S.s を満足させる全ての記
録を見つけることを試みる。また、表Rからの記録は、
述語R.r < 10も満足させなければならないしかつR.r
は、S.s に等しくなければならないので、推移の代数律
(algegraic rule of transitivity)を適用することによ
って、データベースシステムは、表Sのマッチング記録
が条件S.s < 10も満足させなければならないということ
を決定する。
テムは、結合の結果に寄与することができないかもしれ
ないSの走査からの記録を削除するために述語を適用し
うる。フラグメントテーションは、質問の処理スピード
を増すために用いる別の技術である。フラグメントテー
ションは、フラグメントと呼ばれる水平区分に表を分け
る。フラグメントテーションの後、表は、フラグメント
の集合から構成される。フラグメントは、一組の記録を
含む。フラグメントに記録を記憶するための基準は、ユ
ーザによって定義されかつ“フラグメントテーション・
スキーム”として知られている。いずれの記録も基準を
満足させないならばフラグメントは、空であることが可
能である。
グメントを読み出す処理である。フラグメントは、クラ
スタまたはネットワーク・アーキテクチャの個別のディ
スクまたは個別のノードに個々に記憶されうる。論理的
に、全てのフラグメントは、同時に走査されうるし、そ
れにより、完全な表を読み取ることができる全体の速度
を増大する。定義により、同時に二つ以上のフラグメン
トを読み取るために、データベースシステムは、多重走
査演算子を用いなければならない。“フラグメント削
除”は、データベースシステムが、質問の結果に参加す
ることができない表からのフラグメントを識別しかつ考
慮からそれらのフラグメントを除去することができるよ
うな処理である。フラグメント削除の例は、以下の質問
で説明されうる: SELECT * FROM R where R.month > “September ”[例2] 表Rが12フラグメントを有し−−一つが一年の各月−
−かつR.month (月)列が表Rの各記録のフラグメント
を識別するということを想定する。例えば、第1番目の
フラグメントは、そのR.month 値が“January(1月)”
である全ての記録を含み、第2番目のフラグメントは、
そのR.month 値が“February (2月)”である全ての記
録を含む、等である。
スキームを用いて、データベースシステムは、そのR.mo
nth 値が“Octobe(10月)”、“November(11
月)”、または“December(12月)”である記録に対
応している3つのフラグメント、具体的にはfragments
#10 - #12 (第10番目のフラグメント〜第12番目の
フラグメント)以外の、全てを削除することができる。
削除された第1番目〜第9番目のフラグメントは、質問
を満足させている記録を戻すことができないかもしれな
いしかつ走査される必要もない。それゆえに、フラグメ
ント削除は、データベースシステムに12全ての代わり
に3つのフラグメントを走査させる。本発明は、結合へ
の応答を生成するためのコンピュータに実装された方法
を提供することを課題とする。
1の複数のフラグメントを有する第1の表と第2の複数
のフラグメントを有する第2の表との間に結合述語を有
している結合への応答を生成するためのコンピュータに
実装された方法であって、第1の表からの各対応フラグ
メントに対して、第1の表からの対応フラグメントから
の記録を伴う結合述語を満足させる記録を含む第2の表
からのフラグメントを識別する、結合フラグメントマッ
プを検索し;かつ結合述語を満足させることができない
フラグメントを削除するためにマップを用いる段階を具
備することを特徴とする方法によって達成される。ま
た、本発明の上記課題は、第1の複数のフラグメントを
有する第1の表と第2の複数のフラグメントを有する第
2の表との間の結合を処理するためのコンピュータに実
装された方法であって、第1の表からの各対応フラグメ
ントに対して、第1の表からの対応フラグメントからの
記録を伴う結合の結合述語を満足させる記録を含む第2
の表からのフラグメントを識別する、結合フラグメント
マップを検索し;マップを適用することによって結合述
語を満足させる記録を有することが可能なフラグメント
を識別し;かつ識別されたフラグメント上の結合を実行
する段階を具備する方法によって達成される。
足させる第1の表からの第1のフラグメントのセットを
識別する段階を更に具備するように構成してもよい。本
発明の方法では、フラグメントを識別する段階は、フラ
グメントの第1のセットを伴う結合述語を満足させる第
2の表からの第2のフラグメントのセットを識別するた
めにマップを含むように構成してもよい。本発明の方法
では、質問を実行する段階は、第1のフラグメントのセ
ット及び第2のフラグメントのセット上で該質問を実行
することを含むように構成してもよい。本発明の方法で
は、フラグメントを識別する段階は、結合述語を満足さ
せうる第1の表からの第1のフラグメントのセットを識
別するためにマップを含むように構成してもよい。
る段階は、第1のフラグメントのセットを伴う結合述語
を満足させうる第2の表からの第2のフラグメントのセ
ットを識別するためにマップを用いることを更に含むよ
うに構成してもよい。本発明の方法では、フラグメント
を識別する段階は、第2のフラグメントのセットを伴う
結合述語を満足させうる第1のフラグメントのセットの
サブセットを識別するためにマップを用いることを更に
含むように構成してもよい。本発明の方法では、フラグ
メントを識別する段階は、第1のフラグメントのセット
を伴う結合述語を満足させうる第2のフラグメントのセ
ットのサブセットを識別するためにマップを用いること
を更に含むように構成してもよい。本発明の方法では、
サブセットを識別する段階は、更なるフラグメントが削
除されなくなるまで繰り返されるように構成してもよ
い。
問を実行すべく動作しかつフラグメントへの表の分離を
支持するシステムにおいて、第1の表及び第2の表に結
合演算を適用するためのコンピュータに実装された方法
であって、第1の表フラグメントからの記録を伴う結合
述語を満足させる記録を含む第2の表のそれらのフラグ
メントを第1の表の各フラグメントに対して識別し;質
問の単一表述語を満足させる記録を有する第1の表から
の第1のフラグメントのセットを識別し;マップを適用
することによって第1のフラグメントのセットからの記
録を伴う結合述語を満足させる記録を含む第2の表から
の第2のフラグメントのセットを識別し;かつ第1のフ
ラグメントのセット及び第2のフラグメントのセット上
の質問を実行する段階を具備することを特徴とする方法
によって達成される。
フラグメントを有する第1の表と第2の複数のフラグメ
ントを有する第2の表との間の結合を処理するためのコ
ンピュータに実装された方法であって、第1の表からの
各対応フラグメントに対して、第1の表からの対応フラ
グメントからの記録を伴う結合の結合述語を満足させる
記録を含む第2の表からのフラグメントを識別する、マ
ップを検索し;第1の表から記録を受け取り;受け取っ
た記録のフラグメントを伴う結合述語を満足させる第2
の表からのフラグメントのセットを識別するためにマッ
プを使用し;かつ受け取った記録を伴う結合述語を満足
させる記録に対して識別されたフラグメントのセットを
走査する段階を具備する方法によって達成される。本発
明の方法では、結合述語を満足させる記録を含むフラグ
メントを選択するためにマップを使用することを更に具
備し、かつ受け取り、使用及び走査段階は、選択したフ
ラグメントの全ての記録に適用されるように構成しても
よい。
の質問を実行すべく動作しかつフラグメントへの表の分
離を支持するシステムにおいて、第1の表及び第2の表
に結合演算を適用するためのコンピュータに実装された
方法であって、第1の表フラグメントからの記録を伴う
結合述語を満足させる記録を含む第2の表のそれらのフ
ラグメントを第1の表の各フラグメントに対して識別し
かつマップに識別を記憶し;質問の単一表述語を満足さ
せる記録を有する第1の表からの第1のフラグメントの
セットを識別し;第1の表から記録を受け取り;マップ
を適用することによって受け取った記録を伴う結合述語
を満足させる記録を有する第2の表からのフラグメント
のセットを識別し;かつ受け取った記録を伴う結合述語
を満足させる記録に対する識別されたフラグメントのセ
ットを走査する段階を具備する方法によって達成され
る。
の分離を支持するデータベースシステムにおいて、第1
の表及び第2の表に結合述語を有している結合を最適化
する方法であって、結合フラグメントマップを生成すべ
く結合述語を有している簡略化された質問を実行する段
階を具備し、結合フラグメントマップは、第1の表フラ
グメントからの記録を伴う結合述語を満足させる記録を
含む第2の表のフラグメントを第1の表の各フラグメン
トについて識別することを特徴とする方法によって達成
される。本発明の方法では、結合フラグメントマップ
は、第1の表フラグメントからの記録を伴う結合述語を
満足させる記録を含む第2の表のフラグメントを第1の
表の各フラグメントについてリストするように構成して
もよい。
プは、第1の表及び第2の表からの各対のフラグメント
に対するビットを有しているビットマップでもよい。本
発明の方法では、ビットマップを圧縮することを更に含
むように構成してもよい。本発明の方法では、第1の表
から第1のフラグメントを選択し、第2の表から第2の
フラグメントを選択し、かつフラグメントのペアリング
が結合述語を満足させる記録を含むかどうかを決定すべ
く第1のフラグメントと第2のフラグメントのペアリン
グに対応するビットをチェックすることを更に含むよう
に構成してもよい。本発明の方法では、ビットマップの
生成は、当該ビットマップがいっぱいになったならば打
ち切られるようにしてもよい。
ビットマップが十分にスパースであるかどうかを決定す
べくサンプルされるようにしてもよい。本発明の方法で
は、ビットマップの生成は、サーバが、オンにされたス
パースな数のビットを有するビットマップを探し出すた
めに異なる表の種々のカラムを結合するようなディスカ
バリ処理によってトリガされるようにしてもよい。本発
明の方法では、結合フラグメントマップは、揮発性メモ
リに記憶されるようにしてもよい。本発明の方法では、
結合フラグメントマップの生成は、明示的ユーザデータ
定義コマンドによってトリガされるようにしてもよい。
本発明の方法では、結合フラグメントマップの生成は、
二つの表の間の参照保全規約の定義によってトリガされ
るようにしてもよい。
質問からの単一表述語を含まないように構成してもよ
い。本発明の方法では、簡略化された質問は、単一簡略
結合述語を含むように構成してもよい。本発明の方法で
は、第1の表または第2の表からの記録が追加されるか
または変更されたならば結合フラグメントマップを更新
することを更に含むように構成してもよい。本発明の方
法では、最初の質問と同じ結合述語及び少なくとも一つ
の異なる述語を有している新しい質問に対して結合フラ
グメントマップを検索することを更に含むように構成し
てもよい。
第1の表のフラグメント及び第2の表のフラグメントを
選択するために結合フラグメントマップを使用すること
を更に具備するように構成してもよい。更に、本発明の
上記課題は、リレーショナルデータベース表の質問を実
行すべく動作しかつフラグメントへの表の分離を支持す
るシステムにおいて、第1の表及び第2の表で結合述語
を有している質問を最適化する方法であって、結合述語
を満足させることができる記録を有している第1の表の
フラグメントである第1のフラグメントのセットを識別
し;結合述語を満足させることができる記録を有してい
る第2の表のフラグメントである第2のフラグメントの
セットを識別し;かつ識別されたフラグメントの質問を
実行する段階を具備する方法によって達成される。
セットは、第1の表フラグメントからの記録を伴う結合
述語を満足させる記録を含む第2の表のフラグメントを
第1の表の各フラグメントに対して識別する結合フラグ
メントマップによって識別されるように構成してもよ
い。本発明の方法では、識別されたフラグメントの質問
を実行する段階は、第1のフラグメントのセットからの
選択したフラグメントからの記録を検索し;第2のフラ
グメントのセットからのフラグメントのサブセットを識
別し、サブセットは、選択したフラグメントを伴う結合
述語を満足させることができる記録を有している第2の
表のフラグメントであり;かつ結合述語を満足させてい
る記録に対してフラグメントのサブセットを走査する段
階を具備してもよい。
タベース表の質問を実行すべく動作しかつフラグメント
への表の分離を支持するシステムにおける結合述語を処
理する方法であって、結合フラグメントマップを生成す
べく結合述語を有している簡略化された質問を実行し、
結合フラグメントマップは、第1の表フラグメントから
の記録を伴う結合述語を満足させる記録を含む第2の表
のフラグメントを第1の表の各フラグメントに対して識
別し;結合述語を満足させる記録を有している第1の表
のフラグメントである第1のフラグメントのセットを識
別すべく結合フラグメントマップを使用し;結合述語を
満足させる記録を有している第2の表のフラグメントで
ある第2のフラグメントのセットを識別すべく結合フラ
グメントマップを使用し;第1のフラグメントのセット
からの選択したフラグメントからの記録を検索し;第2
のフラグメントのセットからのフラグメントのサブセッ
トを識別し、サブセットは、選択したフラグメントを伴
う結合述語を満足させる記録を有している第2の表のフ
ラグメントであり;かつ結合述語を満足させる記録に対
してフラグメントのサブセットを走査する段階を具備す
ることを特徴とする方法によって達成される。
読取り可能媒体に存在する、コンピュータプログラムで
あって、第1の表からの各対応するフラグメントに対し
て、第1の表からの対応フラグメントからの記録を伴う
結合述語を満足させる記録を含む第2の表からのフラグ
メントを識別する、結合フラグメントマップを検索する
こと;及び結合述語を満足させることができないフラグ
メントを削除するためにマップを使用することをコンピ
ュータに動作させる命令を備えていることを特徴とする
コンピュータプログラムによって達成される。
を生成するためのコンピュータに実装された方法に向け
られている。結合は、第1の複数のフラグメントを有し
ている第1の表と第2の複数のフラグメントを有してい
る第2の表との間に結合述語を有する。結合フラグメン
トマップは、検索される。結合フラグメントは、第1の
表からの各対応フラグメントに対して、第1の表からの
対応フラグメントからの記録を伴う結合述語を満足させ
る記録を含む第2の表からのフラグメントを識別する。
マップは、結合述語を満足させることができないフラグ
メントを削除するために用いられる。本発明の利点とし
ては以下のものがある。結合質問は、素早く実行されう
るし、かつ他の同様な結合質問の性能は、システムの全
てのユーザに対して改善されうる。
に示されるであろうし、部分的には説明から自明であろ
うし、また、本発明を実施することによって修得しう
る。本発明の利点は、及び特許請求の範囲において特に
指摘された手段及び組合せにより認識されかつ得られう
る。
らの情報を用いて一つの表からのフラグメントを削除す
ることによって結合の処理を最適化することができる、
“コ・フラグメント削除(Co-Fragment Elimination) ”
と呼ばれるものを取り入れた方法及び装置を提供する。
明細書及び特許請求の範囲で用いたように、用語“表(t
able) ”は、あらゆる記録の集合を表すために用いる。
結合は、その最も一般的な形において、二つ以上の表か
らの情報を収集する動作である。これは、含まれる表の
記録からの情報を組み合わせる一つ以上の結合述語を特
定することによって行われる。例えば、二つの表R及び
Sの間の一般的な単一述語結合は、以下の質問によって
特定することができる: SELECT R.all, S.all FROM R,S WHERE f(r) relop g(s) ここでf(r)は、Rの記録rのフィールドから導出された
あらゆる関数を示し、g(s)は、Sの記録sのフィールド
から導出されたあらゆる関数を示し、relop は、(=, !
=, <, <=, >, >= のいずれか一つである。上記質問の
結合述語は、f(r) relop g(s) である。f(r)は、R.stat
e (R. 州)のように簡単でありうるかまたは一つ以上の
R の列のあらゆる関数であるようなより複雑な何かであ
りうる。
るかまたはそれがユーザに戻される前に更に処理されう
る。また、結合出力のそのような後続処理は、データベ
ースにおける他のデータ記録を更新し、挿入しまたは削
除する目的のためにも用いられうる。本発明は、結合の
出力に基づいて全てのそのようなアクティビティに適用
される。図1を参照すると、汎用コンピュータシステム
10は、ユーザにデータベースのデータ上で質問を見さ
せかつ実行させるプログラムを走らせる。コンピュータ
システム10は、(パーソナルコンピュータまたはワー
クステーションのような)ディジタル・コンピュータ1
2、ディスプレイ14、(フロッピディスクドライブ、
ハードディスクドライブ、CD−ROMドライブ、また
は磁気光学ディスクドライブのような)マス記憶装置1
6、キーボード18、及びマウス20または(入力タブ
レットのような)他のポインタ装置を含む。コンピュー
タ12は、通常の構成のものでありかつメモリ22、プ
ロセッサ24、及び、メモリバス及び周辺バス(図示省
略)のような、他の慣例のコンポーネントを含む。ま
た、コンピュータ12は、コンピュータシステム10が
それによってコンピュータネットワークを形成すべく通
信リンク(図示省略)にわたり他のコンピュータ(図示
省略)に接続されるような通信ハードウェア及びプログ
ラム(図示省略)も含む。
憶しかつ処理するためのデータベース30を含む。デー
タベース30は、単一コンピュータに集中化されうる
か、またはそれは、コンピュータネットワークにわたり
分散される。この説明では、データベース管理システム
は、コンピュータ12上で実行されるように示されるけ
れども、一般に、データベース30は、永続的または一
時的のいずれかで、データベースにリンクされたコンピ
ュータ上で実行されるデータベース管理システム38に
よって管理される。本発明は、クレジッドカード会社に
対する情報を記憶するように構成されたデータベースを
用いて説明される。データベース30は、顧客表(“表
R”)32及びトランザクション表(“表S”)34を
伴うリレーショナルデータベースである。更に、データ
ベース30は、結合フラグメントマップ36ビットマッ
プを含む(図5〜6を参照して以下に説明する)。ま
た、データベース30は、オブジェクト、インデックス
表と相互作用しかつ操作するための規律のような、他の
資源、及び質問要求(図示省略)を実行するためのイン
タプリタ(解釈プログラム)を含みうる。
客に対する記録40を含む。各記録40は、顧客番号フ
ィールド(R.番号(R.number))42、顧客名前フィー
ルド(R.名前(R.name))44、顧客州フィールド
(R.州(R.state) )46を含んでいる、一つ以上の顧
客住所フィールド、及びクレジットカード有効月フィー
ルド(R.月(R.month) )48を含む。顧客表32は、
各有効月に対して一つずつ、12のフラグメントに区分
される。各フラグメントは、その有効月だけの記録を含
む。図2Bを参照すると、トランザクション表34は、
各クレジットカードトランザクションに対する記録50
を含む。各記録50は、トランザクション番号フィール
ド(S.番号(S.number))52、販売者名前フィールド
(S.名前(S.name))54、販売者州フィールド(S.
州(S.state)56、トランザクション日付フィールド
(S.週(S.week))58、及び顧客番号フィールド
(S.r番号(S.rnumber) )59を含む。顧客番号フィ
ールド42及び59は、表Sを表Rにリンクするための
キーとして用いられうる。これらの説明のために、トラ
ンザクション表34は、各フラグメントが一年の52週
の一つにトランザクション日付を有しているトランザク
ションに対する記録を含んでいる、52のフラグメント
にフラグメントされる。
ム)は、データベース30からの情報を検索するために
結合質問を提出しうる。例えば、ユーザは、顧客州フィ
ールドR.state 及びトランザクション州フィールドS.st
ate が同じ値を有するような記録をリストすべくデータ
ベース30に質問しうる。ここで次の質問を考慮する: SELECT * FROM R, S [例3] WHERE R.month > "September" AND R.state = S. state 例2の質問を参照して説明したように、データベースシ
ステムは、既知の単一表技術を適用することによって表
Rから9つのフラグメントを削除することができる。
タベースシステムは、結合フラグメントマップ36を生
成またはアクセスする。結合フラグメントマップ36
は、二つの表からのどのフラグメントが結合述語を満足
させることができる記録を含まずかつ質問実行中に探索
される必要がないかを示す。それゆえに、結合フラグメ
ントマップは、データベースの内容及び結合述語の両方
に対して特定である。データベースの内容が変化したな
らば、結合フラグメントマップは、無効になりうる。結
合フラグメント表36は、ビットマップとして、多重フ
ィールド−フラグメントマップとして、または、どの対
のフラグメントが結合述語を満足させることができる記
録を含まないかを示す、フラグメント−フラグメントマ
ップまたは他のデータ構造として記憶されうる。結合フ
ラグメントマップは、質問における二つの表に対して二
つのフィールド−フラグメントマップ60及び70(図
3A及び3B参照)から構成されうる。結合フラグメン
トマップは、リレーショナル、階層構造、オブジェクト
指向型、または非リレーショナルデータベースを用いて
いるデータベースシステムで実行されうる。
ム30は、フィールド−フラグメントマップ70を生成
またはアクセスする。フィールド−フラグメントマップ
70は、表Sからのいずれのフラグメントがどの州から
の記録を含むかを示す。フィールド−フラグメントマッ
プ70は、各州に対するエントリ72を含みうる。各エ
ントリ72は、州がマッチする記録を含む表Sからのフ
ラグメントのリスト76に対して特定の州74をマッチ
する。例えば、フィールド−フラグメントマップ70
は、S.state = "CA"を伴う記録を含む表Sからのフラグ
メントのリスト、S.state = "AZ"を伴う記録を含むフラ
グメントのリスト、等を含む。50の州が存在するの
で、フィールド−フラグメントマップ70において、あ
るものは、空きでありうる、50エントリ72が存在し
うる。各リスト76は、表Sに52のフラグメントが存
在するので最大で52のフラグメント番号を含みうる。
30は、表Rに対して同様なフィールド−フラグメント
マップ60を生成またはアクセスする。また、フィール
ド−フラグメントマップ60も各州に対してエントリ6
2を含む。各エントリ62は、特定の州にマッチする記
録を含む表Rからのフラグメントのリスト66に対して
特定の州64をマッチする。あるものが空きでありう
る、50のエントリ62が存在すべきであるが、各リス
ト66は、表Rに12のフラグメントだけが存在するの
で、最大12のフラグメント番号を含みうる。図3A及
び3Bを参照すると、一緒にフィールド−フラグメント
マップ60及び70の最初の行を読み込むことによっ
て、データベースシステムは、表Rのあるフラグメント
番号(4、5、9及び12)からのある記録が、表Sの
あるフラグメント番号(2、4、7、27及び39)か
らのある記録にマッチするということを決定しうる。同
様に、各マップの第2の行を読み込むことによって、デ
ータベースシステムは、表Rのあるフラグメント番号
(1、2、7、9及び11)からの記録が、表Sのある
フラグメント番号(5、7、27、30、31及び4
5)からの記録にマッチするということを決定しうる。
プは、二つのフラグメントマップ60及び70を組み合
わせることによって形成された、単一フィールド−フラ
グメントマップ80から構成されうる。フィールド−フ
ラグメントマップは、二つのフィールド−フラグメント
マップから州列64及び74を削除することによって生
成されうる。フィールド−フラグメントマップ結合マッ
プ80は、12のエントリ82、即ち、表RNO各フラ
グメントに対して一つのエントリ、を含む。エントリ8
2は、表Rの関連付けられたフラグメント84からの記
録を伴う結合述語を満足させる記録を含む表Sからのフ
ラグメント番号のリスト86を含む。例えば、最初のエ
ントリは、表Rの第1番目のフラグメントからの一つ以
上の記録を伴う結合述語を満足させる記録を含む表Sか
らのフラグメント(5、7、27、30、31、45)
のリストを有する。この説明では、フィールド−フラグ
メントマップ80は、二つのフィールド−フラグメント
マップ60及び70の最初の二つの行だけを組み合わせ
ることによって生成された。
ントマップ80は、ビットマップ90に変形することが
できる。フラグメント番号のリストの代わりに、ビット
マップ90は、表Rの各フラグメントに対する行92及
び表Sの各フラグメントに対する列94を含む。ビット
マップ90では、“on(オン)”ビット(図において
シェードされた)は、表Sのフラグメントにおけるある
記録が表Rの対応フラグメントに結合しうることを示
す。ビットマップ90は、例えば、ラン−レングス符号
化または他の技術によって、圧縮されうる。ビットマッ
プ90は、この例及び例3の質問により記述されるよう
に、結合質問に含まれるいずれかの表からフラグメント
を削除するために用いることができる。単一表述語(R.m
onth > "September") を用いて、表9の第1番目〜第9
番目のフラグメントが削除される。ビットマップ90か
ら、第10番目のフラグメントのような、表Rのある一
定の残りのフラグメントは、それらが表Sのいずれかの
フラグメントからの記録を伴う結合述語を満足させる記
録を含まないので、削除できる。同様に、ビットマップ
90は、表Sのある一定のフラグメントが表Rの第10
番目〜第12番目のフラグメントの記録にマッチする記
録を含まないということを示す。例えば、表Sの第1番
目、第3番目、第6番目、第8番目〜第26番目、第2
8番目〜第29番目、第32番目〜第38番目、第40
番目〜第44番目及び第46番目〜第52番目のフラグ
メントは、結合述語を満足させるいかなる記録にも寄与
することができない。従って、ビットマップ90を用い
て、データベースシステムは、表Rからの2つのフラグ
メント以外の全て及び表Sからの9つのフラグメント以
外の全てを削除することができる。
システムは、表Rの二つのフラグメントにおける各記録
に対して表Sの9つのフラグメントだけを探索しなけら
ばならない。対照的に、従来の技術では、表Sの全ての
52のフラグメントは、表Rの3つのフラグメントにお
ける各記録に対して探索される。一般的に用いられ結合
方法は、ハッシュ結合方法、ソフトマージ結合方法、及
びネステッド・ループ方法である。後者は、インデック
スでまたはインデックスなしで実行されうる。本発明
は、いずれの結合方法にも適用される。特許請求の範囲
の目的に対して、用語“サーチング”は、一つの特定の
結合方法の使用を意味しない。ビットマップ90は、可
逆的である。即ち、(単一表述語に基づいて)表Sから
削除されたフラグメントは、ビットマップ90で、表S
の削除されたフラグメントにだけ結合する表Rからのフ
ラグメントを削除するために用いることができる。
を動的に削除するために質問の実行でも使用することが
できる。再び、例3の質問を参照すると、最適化の後、
データベースシステムは、表Rからの2つのフラグメン
ト以外及び表Sの9つのフラグメント以外の全てを削除
した。従来の技術では、結合演算子は、3つのフラグメ
ントから表Rの各記録を読み出しかつ結合述語を満足さ
せる記録に対して表Sの残りの9つのフラグメントのそ
れぞれを走査する。しかしながら、表Rの特定の記録に
対して、表Sの全ての9つのフラグメントを探索する必
要がない。ビットマップは、第11番目のフラグメント
から取り出された表Rからの記録が、表Sの9つの残っ
ているフラグメントの6つ、具体的には、第5番目、第
7番目、第27番目、第30番目及び第45番のフラグ
メントにだけマッチを見出すことができる、ということ
を示している。従って、表Rからのこの特定の記録に対
して、表Sの6つのフラグメントだけが走査される必要
がある。同様に、表Rから取り出された記録が第12番
目のフラグメントからであるならば、表Sから5つのフ
ラグメント、具体的には、第2番目、第4番目、第7番
目、第27番目及び第39番目のフラグメントだけが走
査される必要がある。
ガすることができる。質問最適化装置は、質問処理戦略
としてビットマップを生成すべく決定できる。ユーザ
は、インデックスの生成と同様な方法で所与のデータベ
ースに対してデータ定義言語を用いてビットマップを明
示的に生成できる。データベースシステムは、外部キー
関係が完全性拘束条件として特定されるときにビットマ
ップを潜在的に生成することができる。システムは、ス
パースビットマップをもたらす表間の結合に対して徹底
的に探索できる。これらの場合の全てにおいて、システ
ムは、合成ビットマップの期待スパース性を確認するた
めにサンプリングを用いることができる。スパース性
は、マッチングタプルを有する2つの表からのフラグメ
ントを示しているビットマップにおいてオンにされるビ
ットの割合である。
るために、データベースシステムは、最初の質問に基づ
いて“簡略化された質問”を実行する。簡略化された質
問は、最初の質問と同じ結合述語を含むが、単一表述語
を全く含まない。例えば、例3の質問に対する簡略化さ
れた質問は: SELECT R.fragment#, S.fragment# FROM R, S [例4] WHERE R.state = S.state 簡略化された質問を実行することは、マッチング記録を
含む各表からの対応フラグメント番号を戻す。ビットマ
ップ90は、上述した中間結合マップ80を生成するこ
となく、直接的に生成されうる。簡略化された質問が実
行される速さを増大するために種々の技術を用いうる。
第1及び第2の表からの記録の必要なフィールドは、表
自信よりも表インデックスのリーブ(葉)から検索され
ることが好ましい。更に、それらが存在するならば、列
インデックスを用いることができる。別の例として、フ
ラグメンテーションスキームからの情報を用いうる。簡
略化された質問のある一定の実行の下で、一度マッチ
が、二つの表からのフラグメント間で行われたならば、
他の記録は、同じマッチに対して検索する必要がない。
ならば、ビットマップの生成は、取り止められうる、即
ち、非スパーズであり、第1の表のフラグメントからの
記録が、第2の表からのフラグメントの大きな割合で対
応マッチング記録を有するということを示している。サ
ンプリングは、ビットマップが十分にスパースであるか
否かの早期決定に到着すべくビットマップを構築する目
的に対して第1及び第2の表の両方で用いられる。ビッ
トマップは、データベースに対して不揮発性メタデータ
に記憶されるのとは反対に揮発性メモリにだけ記憶され
うる。ビット90を構築するために性能費用がある。特
に、簡略化された質問を実行しかつ結果のビットマップ
を記憶するための費用がある。従って、データベースシ
ステムは、ビットマップがビットマップを構築するため
の費用を保証するために性能において十分なゲインを供
給するかどうかを決定しなければならない。一般的に、
ビットマップは、それが、例えば、連続した質問におい
て、二度以上用いることができるならば最大の利益を供
給することができる。
も、ビットマップがシステムしきい値と比較して十分に
スパースでないならば、システムは、ビットマップを再
生成する不必要な後続の試みを回避するためにデータベ
ースのメタデータ定義においていつまでもその事実を記
憶している。フラグメント結合マップは、ユーザがマッ
プを十分にスパースにするためにデータを明示的にフラ
グメントするときに用いられうる。また、それは二つの
表の間のデータが潜在的に“相関される”ならば、十分
なスパース・コ・フラグメンテーションマップを結果と
して生ずるように用いることもできる。データベースシ
ステムは、表、列、及び結合述語の各組合せに対して異
なるビットマップ90を必要とする。例えば、以下の二
つの質問に対して個別のビットマップを必要とするであ
ろう: SELECT * FROM R, S WHERE R.state = S.state [例5] SELECT * FROM R, S WHERE R.state < S.state [例6] しかしながら、質問が同じ結合述語を用いるが異なる単
一表述語を含むならば、同じビットマップを用いること
ができる。
グメント結合マップは、複数の結合マップにおける各サ
ンプル結合に対して生成されうる。例えば、もし質問が SELECT * FROM R, S [例7] WHERE R.state = S.state and R.name = S.name であれば、一つのフラグメント結合マップがR.state =
S.state を伴う簡単な質問を用いて生成されかつ別のフ
ラグメント結合マップがR.name = S.name を伴う簡単な
質問を用いて生成される。更に、簡単な結合述語のビッ
トマップは、多重結合質問に対するビットマップを生成
するために組み合わせることができる。この説明では述
語P1は、R.state= S.state であり述語P2は、R.name =
S.name である。質問 SELECT * FROM R, S WHERE P1 and P2 [例8] に対するビットマップは、 P1 及びP2に対するビットマ
ップに論理ANDを適用することによって生成すること
ができる。同様に、質問 SELECT * FROM R, S WHERE P1 or P2 [例9] に対するビットマップは、 P1 及びP2に対するビットマ
ップに論理ORを適用することによって生成することが
できる。
扱うことができる。例えば、質問が: であるならば、データベースシステムは、組み合わされ
た全てのn述語に対して一つのフラグメント結合マップ
を構築することができるか、または、それは、各結合述
語に対して一つの、nの個別のフラグメント結合マッ
プ、またはこれら二つの極端間のフラグメント結合マッ
プの中間組合せを構築することができる。しかしなが
ら、データベースシステムが二つ以上の述語に対応して
いるビットマップを構築するならば、そのビットマップ
は、同じ述語を含む質問に対してだけ用いることができ
る。質問がより少ない数の述語を有するならばそのビッ
トマップを用いることができない。それゆえに、最大効
用のために、各単一結合述語に対して一つのフラグメン
ト結合マップを構築することは利益がありうる。これら
の個々の結合フラグメントマップは、質問によって後述
されるようにANDまたはORにされうる。また、コ・
フラグメント削除は、質問 SELECT * FROM R,S,T WHERE R.a = S.a AND S.a = T.a と同じである SELECT * FROM R,S,T WHERE R.a = S.a = T.a [例10] のように、3つ以上の表の結合上で実行されうる。例1
0の例では、B1は、“ R.a = S.a”に対するビットマッ
プでありかつB2は、“ S.a = T.a”に対するビットマッ
プである。
及びSからのフラグメントを削除するために用いること
ができ、ビットマップB2は、表S及びTからのフラグメ
ントを削除するために用いることができる。表RとTの
間のフラグメントを低減するために二つの技術を用いう
る。第1の技術では、ビットマップB3は、ビットマップ
B1とB2を組み合わせることによって構築される。この技
術は、ビットマップを構築するために結合マップを組み
合わせることに類似する。次に、ビットマップB3は、R
及びTを低減するために用いることができる。第2の技
術では、(ビットマップB2により)表Sから削除された
フラグメントは、再び表Rからフラグメントを削除する
ために用いることができる。一般に、データベースシス
テムは、個々に表R、S及びTからのフラグメントを削
除するために単一表フラグメント削除を用いることによ
って始動されうる。そして、ビットマップB1は、表Sか
らのフラグメントを削除するために表Rに対抗して用い
られ、ビットマップB2は、表Tにおけるフラグメントを
削除するために表Sに対抗して用いることができる。次
いで、データベースシステムは、再び表Sを低減するた
めに表Tにおいて新たに削除されたフラグメントを用
い、そして、それは、再び表Rを低減するために表Sに
おいて新たに削除されたフラグメントを用いる。データ
ベースシステムは、いずれの表からもはやフラグメント
を削除することができなくなるまでこの手順を繰り返し
続ける。
いることができる(“簡略化されたビットマップ質問”
を用いてそれを明示的に構築することなしに)ビットマ
ップB3を発生することを結果として生ずるので、表Rと
Tの間の結合質問が共通であるならば、データベースシ
ステムは、前の手順を選ぶべきである。他方、データベ
ースシステムは、表RとTの間の結合質問が相対的に稀
でありビットマップB3を維持することのオーバーヘッド
を保証しないならば、後者の手順を選ぶべきである。結
合フラグメントマップが実際の結合質問の結果から生成
されるので、即ち、マップが表における実際のデータに
依存するので、その有用性は、基礎をなしている表が変
更される場合に消滅するかあるいは破壊される。
ても、ビットマップをまだ使用することができる。デー
タベースシステムがもはやマッチング記録を有していな
いフラグメントを探索するので、性能は理想よりも低く
なるであろう。記録が一つのまたは両方の表において追
加されたかまたは更新されたならば、ビットマップの完
全性は、破壊されうる。フラグメントを更新する前まで
は認可されなかったが、追加されたかまたは変更された
値がマッチング記録を含むものとしてフラグメントをこ
こで認めるならば、ビットマップの完全性が違反されて
しまう。それゆえに、データベースシステムは、システ
ムが変更されたかまたは新たな記録に対抗して述語をチ
ェックしない限り記録が追加または更新されたときには
いつでもビットマップの完全性が違反されると想定しな
けらばならない。
合、システムは、ビットマップの完全性を増加的に更新
しかつ維持することを決定できる。代替的に、システム
は、ビットマップを無効にしかつそれを再生成すること
を決定できる。そのようなビットマップの再生成は、ビ
ットマップが最適化装置によって必要と思われる次の瞬
間に、即にかまたはユーザによる特定の、手動によるコ
マンド(命令)の結果としてのいずれかにより達成する
ことができる。ビットマップの完全性が破壊されたとき
に、将来の質問で用いることができる前にそれは、復元
されなけらばならない。先に示したように、ビットマッ
プ90を変更するために費用がかかり、かつそれを廃棄
しかつ再生成することに費用がかかる。データベースシ
ステムは、二つの代替のより良い方を選択すべくビット
マップを変更または再生成するために必要な時間を推測
しうる。例えば、データベースシステムに対して小さな
増分変化が行われたならば、ビットマップは、変更され
るであろうし、データベースにおいてより多くの数の変
化が行われたならば、ビットマップは、再生成されるで
あろう。
は、最適化装置110、ビットマップ発生装置170、
辞書管理装置190、及び実行装置200を含んでいる
複数のソフトウェアサブシステムを含む。サブシステム
は、ビットマップを生成しかつ使用すべく相互作用す
る。最適化装置110は、コ・フラグメント削除を実行
するためにビットマップに対する必要性を認識し、ビッ
トマップを構築させる事象をトリガし、かつフラグメン
トを削除するためにビットマップを用いる。ビットマッ
プ発生装置170は、ビットマップを生成するために質
問を形成し、簡略化された質問を実行し、結果からフラ
グメント番号を収集し、そして収集したフラグメント番
号からビットマップを生成する。辞書管理装置190
は、他の質問及びユーザにアクセスさせるべくビットマ
ップをグローバル的にアクセス可能な不揮発性記憶装置
に保存し、要求によりビットマップを最適化装置に供給
する。更に、辞書管理装置190は、先のビットマップ
を無効にする基礎をなしている表の一つまたは両方に対
してデータ変更が発生したならば、無効としてビットマ
ップに印を付ける。実行装置200は、結合述語の実行
中に動的コ・フラグメント削除を実行するためにビット
マップを用いる。
理するためにデータベースシステムによって用いられる
方法100が示されている。まず、データベースシステ
ムは、最適化装置を参照して以下に説明するように、質
問を最適化する(ステップ102)。次に、データベー
スシステムは、表の一つのアクティブフラグメントを走
査する(ステップ104)。可能ならば、データベース
システムは、同時にフラグメントを走査すべきである。
結合述語は、走査中に受け取った各記録に対して実行さ
れる(ステップ106)。一度結合述語の実行が終了し
たならば、処理が完了する。図8を参照すると、最適化
装置は、例2を参照して先に説明したように、単一表質
問述語を用いて両方の表R及びS上で単一表フラグメン
ト削除を実行する(ステップ112)。
ビットマップが生成されるべきかかどうかを決定する
(ステップ114)。ユーザは、コマンドを挿入するこ
とによりまたはデフォルトを設定するこによってデータ
ベースシステムにビットマップを生成することを強制す
る。代替的に、ユーザは、データベースシステムにビッ
トマップが生成されるべきかどうかを決定させる。この
場合には、データベースシステムは、ビットマップを構
築する費用が利益の価値があるかどうかを決定する。特
に、通常の技術を用いて、コンピュータシステムは、簡
略化された質問を実行し、ビットマップを生成し、ビッ
トマップを記憶し、かつビットマップを用いて質問を実
行する時間の長さを推測し、かつビットマップなしで質
問を実行するために推測した時間の長さとその時間を比
較する。
ベース管理システムは、ビットマップが質問に対して利
用可能であるかどうかを決定する(ステップ115)。
ビットマップは、それが現行質問の結合述語に正確にマ
ッチする結合述語によって生成され、かつビットマップ
の完全性が違反されていないときにだけ利用可能である
と考えられうる。ビットマップが必要であるならば、最
適化装置は、ビットマップ発生装置を呼出す(ステップ
116)。ビットマップを生成するためにビットマップ
発生装置を呼び出した後、またはステップ115で決定
されたようにビットマップが既に利用可能であるなら
ば、最適化装置は、ビットマップを取り出し(ステップ
117)、かつ表Rのような、表の一つを最適化するた
めにサブルーチンを呼出す(ステップ118)。
は、表Rを最適化するための方法120を含む。データ
ベースシステムは、インアクティブとしてステップ11
2における単一表述語を用いて表Rから削除されたフラ
グメントに印を付け、かつアクティブとして残りのフラ
グメントに印を付けることによって始動する(ステップ
122)。次いで、表Rは、インアクティブとして印が
付けられる(ステップ124)。ビットマップは、次い
で、表Sのどのフラグメントが、もしあれば、表Rから
の各アクティブフラグメントに結合するかということを
決定するために用いられる。データベースシステムは、
表Rからの各アクティブフラグメントを検査するために
ループを入力する(ステップ128)。データベースシ
ステムは、表Rからのフラグメントが表Sのフラグメン
トからの記録を伴う結合述語を満足させる記録を含むか
どうかを決定するためにビットマップを用いる(ステッ
プ130)。マッチが存在しないならば、表Rからのフ
ラグメントは、インアクティブとして印が付けられる
(ステップ132)。他方、マッチが存在すれば、フラ
グメントは、アクティブのままであり表Rは、また、ア
クティブと印を付けられる(ステップ134)。一度、
表Rからの最後のアクティブフラグメントが検査された
ならば、データベースシステムは、表Sを最適化すべく
サブルーチンに進む(ステップ136)。
ムは、表Sを最適化するための方法140を含む。デー
タベースシステムは、インアクティブとしてステップ1
12において表Sから削除されたフラグメントに印を付
け、かつアクティブとして表Sの残りのフラグメントに
印を付けることによって始動する(ステップ142)。
コンピュータシステムは、フラグ(fragment _ elimina
ted _from_S)を“フォールス(false) ”に設定し(ス
テップ144)かつ、インアクティブとして表Sに印を
付ける(ステップ146)。ビットマップは、次いで、
表Rのどのフラグメントが、もしあれば、表Sからの各
アクティブフラグメントに結合するかということを決定
するために用いられる。データベースシステムは、表S
からの各アクティブフラグメントを検査するためにルー
プを入力する(ステップ148)。データベースシステ
ムは、表Sからのフラグメントが表Rのフラグメントか
らの記録を伴う結合述語を満足させる記録を含むかどう
かを決定するためにビットマップを用いる(ステップ1
52)。マッチが存在しないならば、表Rからのフラグ
メントは、インアクティブとして印が付けられ(ステッ
プ154)かつフラグは、“真(true)”として設定され
る(ステップ156)。他方、マッチが存在すれば、フ
ラグメントは、アクティブのままであり表Sは、アクテ
ィブと印を付けられる(ステップ158)。一度、両方
の表におけるフラグメントがが検査され、いずれかの表
がインアクティブとして印を付けられたならば、質問
は、それがゼロの記録を戻すように、一時停止できる。
ントが検査されたならば、データベースプログラムは、
フラグをチェックする(ステップ164)。表Sからの
あるフラグがビットマップを用いて削除されているの
で、表Sからの新たに削除されたフラグメントは、表R
からのフラグメントのあるものを削除することを試みる
ために用いることができる。従って、フラグが“真”に
設定されるならば、データベースシステムは、表Rを最
適化するための方法120に戻る(ステップ166)。
一度サブルーチン120が終了したならば、表Rからの
新しく削除されたフラグメントは、表Sからの更なるフ
ラグメントを削除するために用いられる。それゆえに、
データベースシステムは、もはやフラグメントが削除で
きなくなるまでサブルーチン120と140の間を交互
にする。この時点ではフラグは、“フォールス”に設定
されかつデータベースシステムは、質問の実行を行うた
めに最適化装置に戻る(ステップ168)。
ーチン140から呼び出されかつ追加フラグが表Rから
インアクティブとして印を付けられたならば、ステップ
136においてデータベースシステムは、表Sを最適化
するためにサブルーチン140に進むより最適化装置に
戻る。図11を参照すると、ビットマップ発生装置17
0は、それが構築されている間に破損されることからビ
ットマップを防ぐべく両方の表をロックすることによっ
て始動する(ステップ172)。次いで、簡略化された
質問が構築される(ステップ174)。簡略化された質
問は、ユーザによって与えられた質問と同じ結合述語を
含むが、全ての単一表述語は、除去される。簡略化され
た質問は、実行され、かつ両方の表からのフラグメント
番号は、二つのフィールド−フラグメント表(例えば、
フラグメント表60及び70)を供給するために質問結
果から収集される(ステップ176)。次いで、フィー
ルド−フラグメント表60及び70からのフラグメント
番号は、ビットマップ90を構築するために用いられる
(ステップ178)。最後に、辞書管理装置サブルーチ
ン190が呼び出され(ステップ180)、ロックが解
除れ、かつデータベースシステムは、最適化装置に戻る
(ステップ182)。
は、先のビットマップが現行の質問の結合述語に対して
生成されたかどうかを決定することによって始動する
(ステップ192)。先のビットマップが存在するなら
ば、古いビットマップは、廃棄され(ステップ194)
かつ新しいビットマップが保存される(ステップ19
6)。この質問に対して古いビットマップが存在しない
ならば、先のビットマップを廃棄する段階は、省略され
る。最後に、データベースシステムは、ビットマップ発
生装置サブルーチンに戻る(ステップ198)。13を
参照することにより、実行装置200は、データベース
システムがステップ106において結合述語を実行する
ときに呼び出される(図7参照)。簡単に言うと、実行
装置は、表の一つのアクティブフラグメントからの記録
を受け取る。実行装置は、走査されるべき他の表からの
フラグメントを識別するためにフラグメント番号及びビ
ットマップを用いる。実行装置は、それらのフラグメン
トを走査し、フラグメントからのマッチング記録を収集
し、かつマッチング記録をユーザに戻す。実行装置は、
一つの表Rのアクティブフラグメントからの記録を受け
取ることによって始動する(ステップ202)。記録
は、表RとSが以下に説明する動作において切り替えう
るけれども、この例では表Rから受け取られる。次い
で、データベースシステムは、マッチング記録に対して
走査されるべき表Sのフラグメントを識別するために結
合フラグメントマップを用いる(ステップ204)。特
に、結合フラグメントマップがビットマップであるなら
ば、データベースシステムは、フラグメントのその対が
結合述語を満足させる記録を含むかどうかを決定すべく
表Rのフラグメント番号に等しい行及び表Sのフラグメ
ント番号に等しい列におけるビットをアクセスする。表
Sの識別されたフラグメントは、結合述語を満足させる
記録に対して走査される(ステップ206)。これらの
記録は、収集され(ステップ208)かつユーザに戻さ
れる(ステップ210)。最後に、完了メッセージがユ
ーザに送られ(ステップ212)かつ実行装置が終了す
る(ステップ214)。
装置200の方法は、表Sからの各アクティブフラグメ
ントが検査されるようなループされた処理で実行するこ
とができ、ビットマップは、フラグメントが走査される
べきかどうかを決定するために用いられ、フラグメント
は、走査され(それがマッチング記録を含んでいるもの
と想定する)かつ結合述語を満足させる記録は、ユーザ
に戻され、そして処理は、次のアクティブフラグメント
に進む。本発明は、ソフトウェア実装により説明された
が、本発明は、ソフトウェアまたはハードウェアまたは
ファームウェア、またはそれら3つの組合せで実現され
うる。本発明は、実施例により説明されたが、本発明
は、提示しかつ説明した実施例に限定されるものではな
い。それよりも、本発明の範疇は、特許請求の範囲によ
って画定される。
ントを有する第1の表と第2の複数のフラグメントを有
する第2の表との間に結合述語を有している結合への応
答を生成するためのコンピュータに実装された方法であ
って、第1の表からの各対応フラグメントに対して、第
1の表からの対応フラグメントからの記録を伴う結合述
語を満足させる記録を含む第2の表からのフラグメント
を識別する、結合フラグメントマップを検索し;かつ結
合述語を満足させることができないフラグメントを削除
するためにマップを用いる段階を具備するので、結合質
問が素早く実行されうるし、かつ他の同様な結合質問の
性能がシステムの全てのユーザに対して改善されうる。
トを有する第1の表と第2の複数のフラグメントを有す
る第2の表との間の結合を処理するためのコンピュータ
に実装された方法であって、第1の表からの各対応フラ
グメントに対して、第1の表からの対応フラグメントか
らの記録を伴う結合の結合述語を満足させる記録を含む
第2の表からのフラグメントを識別する、結合フラグメ
ントマップを検索し;マップを適用することによって結
合述語を満足させる記録を有することが可能なフラグメ
ントを識別し;かつ識別されたフラグメント上の結合を
実行する段階を具備ので、結合質問が素早く実行されう
るし、かつ他の同様な結合質問の性能がシステムの全て
のユーザに対して改善されうる。本発明の方法は、デー
タベース表の質問を実行すべく動作しかつフラグメント
への表の分離を支持するシステムにおいて、第1の表及
び第2の表に結合演算を適用するためのコンピュータに
実装された方法であって、第1の表フラグメントからの
記録を伴う結合述語を満足させる記録を含む第2の表の
それらのフラグメントを第1の表の各フラグメントに対
して識別し;質問の単一表述語を満足させる記録を有す
る第1の表からの第1のフラグメントのセットを識別
し;マップを適用することによって第1のフラグメント
のセットからの記録を伴う結合述語を満足させる記録を
含む第2の表からの第2のフラグメントのセットを識別
し;かつ第1のフラグメントのセット及び第2のフラグ
メントのセット上の質問を実行する段階を具備するの
で、結合質問が素早く実行されうるし、かつ他の同様な
結合質問の性能がシステムの全てのユーザに対して改善
されうる。
トを有する第1の表と第2の複数のフラグメントを有す
る第2の表との間の結合を処理するためのコンピュータ
に実装された方法であって、第1の表からの各対応フラ
グメントに対して、第1の表からの対応フラグメントか
らの記録を伴う結合の結合述語を満足させる記録を含む
第2の表からのフラグメントを識別する、マップを検索
し;第1の表から記録を受け取り;受け取った記録のフ
ラグメントを伴う結合述語を満足させる第2の表からの
フラグメントのセットを識別するためにマップを使用
し;かつ受け取った記録を伴う結合述語を満足させる記
録に対して識別されたフラグメントのセットを走査する
段階を具備するので、結合質問が素早く実行されうる
し、かつ他の同様な結合質問の性能がシステムの全ての
ユーザに対して改善されうる。
実行すべく動作しかつフラグメントへの表の分離を支持
するシステムにおいて、第1の表及び第2の表に結合演
算を適用するためのコンピュータに実装された方法であ
って、第1の表フラグメントからの記録を伴う結合述語
を満足させる記録を含む第2の表のそれらのフラグメン
トを第1の表の各フラグメントに対して識別しかつマッ
プに識別を記憶し;質問の単一表述語を満足させる記録
を有する第1の表からの第1のフラグメントのセットを
識別し;第1の表から記録を受け取り;マップを適用す
ることによって受け取った記録を伴う結合述語を満足さ
せる記録を有する第2の表からのフラグメントのセット
を識別し;かつ受け取った記録を伴う結合述語を満足さ
せる記録に対する識別されたフラグメントのセットを走
査する段階を具備するので、結合質問が素早く実行され
うるし、かつ他の同様な結合質問の性能がシステムの全
てのユーザに対して改善されうる。
離を支持するデータベースシステムにおいて、第1の表
及び第2の表に結合述語を有している結合を最適化する
方法であって、結合フラグメントマップを生成すべく結
合述語を有している簡略化された質問を実行する段階を
具備し、結合フラグメントマップは、第1の表フラグメ
ントからの記録を伴う結合述語を満足させる記録を含む
第2の表のフラグメントを第1の表の各フラグメントに
ついて識別するので、結合質問が素早く実行されうる
し、かつ他の同様な結合質問の性能がシステムの全ての
ユーザに対して改善されうる。本発明の方法は、リレー
ショナルデータベース表の質問を実行すべく動作しかつ
フラグメントへの表の分離を支持するシステムにおい
て、第1の表及び第2の表で結合述語を有している質問
を最適化する方法であって、結合述語を満足させること
ができる記録を有している第1の表のフラグメントであ
る第1のフラグメントのセットを識別し;結合述語を満
足させることができる記録を有している第2の表のフラ
グメントである第2のフラグメントのセットを識別し;
かつ識別されたフラグメントの質問を実行する段階を具
備するので、結合質問が素早く実行されうるし、かつ他
の同様な結合質問の性能がシステムの全てのユーザに対
して改善されうる。
ース表の質問を実行すべく動作しかつフラグメントへの
表の分離を支持するシステムにおける結合述語を処理す
る方法であって、結合フラグメントマップを生成すべく
結合述語を有している簡略化された質問を実行し、結合
フラグメントマップは、第1の表フラグメントからの記
録を伴う結合述語を満足させる記録を含む第2の表のフ
ラグメントを第1の表の各フラグメントに対して識別
し;結合述語を満足させる記録を有している第1の表の
フラグメントである第1のフラグメントのセットを識別
すべく結合フラグメントマップを使用し;結合述語を満
足させる記録を有している第2の表のフラグメントであ
る第2のフラグメントのセットを識別すべく結合フラグ
メントマップを使用し;第1のフラグメントのセットか
らの選択したフラグメントからの記録を検索し;第2の
フラグメントのセットからのフラグメントのサブセット
を識別し、サブセットは、選択したフラグメントを伴う
結合述語を満足させる記録を有している第2の表のフラ
グメントであり;かつ結合述語を満足させる記録に対し
てフラグメントのサブセットを走査する段階を具備する
ので、結合質問が素早く実行されうるし、かつ他の同様
な結合質問の性能がシステムの全てのユーザに対して改
善されうる。
ピュータ読取り可能媒体に存在する、コンピュータプロ
グラムであって、第1の表からの各対応するフラグメン
トに対して、第1の表からの対応フラグメントからの記
録を伴う結合述語を満足させる記録を含む第2の表から
のフラグメントを識別する、結合フラグメントマップを
検索すること;及び結合述語を満足させることができな
いフラグメントを削除するためにマップを使用すること
をコンピュータに動作させる命令を備えているので、結
合質問が素早く実行されうるし、かつ他の同様な結合質
問の性能がシステムの全てのユーザに対して改善されう
る。
した図面は、本発明を概略的に示し、かつ上記した一般
的な説明及び以下に示した詳細な説明と共に、本発明の
原理を説明するために役立つ。
ナルデータベースを含んでいる汎用コンピュータシステ
ムを示す図である。
す図である。
す図である。
ある。
ある。
を示す図である。
示す図である。
ー図である。
ー図である。
ロー図である。
法のフロー図である。
法のフロー図である。
である。
Claims (35)
- 【請求項1】 第1の複数のフラグメントを有する第1
の表と第2の複数のフラグメントを有する第2の表との
間に結合述語を有している結合への応答を生成するため
のコンピュータに実装された方法であって、 前記第1の表からの各対応フラグメントに対して、前記
第1の表からの前記対応フラグメントからの記録を伴う
前記結合述語を満足させる記録を含む前記第2の表から
のフラグメントを識別する、結合フラグメントマップを
検索し;かつ前記結合述語を満足させることができない
フラグメントを削除するためにマップを用いる段階を具
備することを特徴とする方法。 - 【請求項2】 第1の複数のフラグメントを有する第1
の表と第2の複数のフラグメントを有する第2の表との
間の結合を処理するためのコンピュータに実装された方
法であって、 前記第1の表からの各対応フラグメントに対して、前記
第1の表からの前記対応フラグメントからの記録を伴う
前記結合の結合述語を満足させる記録を含む前記第2の
表からのフラグメントを識別する、結合フラグメントマ
ップを検索し;前記マップを適用することによって前記
結合述語を満足させる記録を有することが可能なフラグ
メントを識別し;かつ前記識別されたフラグメント上の
前記結合を実行する段階を具備することを特徴とする方
法。 - 【請求項3】 前記結合の単一表述語を満足させる前記
第1の表からの第1のフラグメントのセットを識別する
段階を更に具備することを特徴とする請求項2に記載の
方法。 - 【請求項4】 フラグメントを識別する段階は、前記フ
ラグメントの第1のセットを伴う前記結合述語を満足さ
せる前記第2の表からの第2のフラグメントのセットを
識別するために前記マップを含むことを特徴とする請求
項3に記載の方法。 - 【請求項5】 前記質問を実行する段階は、前記第1の
フラグメントのセット及び前記第2のフラグメントのセ
ット上で該質問を実行することを含むことを特徴とする
請求項4に記載の方法。 - 【請求項6】 フラグメントを識別する段階は、前記結
合述語を満足させうる前記第1の表からの第1のフラグ
メントのセットを識別するために前記マップを含むこと
を特徴とする請求項2に記載の方法。 - 【請求項7】 フラグメントを識別する段階は、前記第
1のフラグメントのセットを伴う前記結合述語を満足さ
せうる前記第2の表からの第2のフラグメントのセット
を識別するために前記マップを用いることを更に含むこ
とを特徴とする請求項6に記載の方法。 - 【請求項8】 フラグメントを識別する段階は、前記第
2のフラグメントのセットを伴う前記結合述語を満足さ
せうる前記第1のフラグメントのセットのサブセットを
識別するために前記マップを用いることを更に含むこと
を特徴とする請求項7に記載の方法。 - 【請求項9】 フラグメントを識別する段階は、前記第
1のフラグメントのセットを伴う前記結合述語を満足さ
せうる前記第2のフラグメントのセットのサブセットを
識別するために前記マップを用いることを更に含むこと
を特徴とする請求項8に記載の方法。 - 【請求項10】 前記サブセットを識別する段階は、更
なるフラグメントが削除されなくなるまで繰り返される
ことを特徴とする請求項9に記載の方法。 - 【請求項11】 データベース表の質問を実行すべく動
作しかつフラグメントへの表の分離を支持するシステム
において、第1の表及び第2の表に結合演算を適用する
ためのコンピュータに実装された方法であって、 前記第1の表フラグメントからの記録を伴う前記結合述
語を満足させる記録を含む前記第2の表のそれらのフラ
グメントを前記第1の表の各フラグメントに対して識別
し;前記質問の単一表述語を満足させる記録を有する前
記第1の表からの第1のフラグメントのセットを識別
し;前記マップを適用することによって前記第1のフラ
グメントのセットからの記録を伴う前記結合述語を満足
させる記録を含む第2の表からの第2のフラグメントの
セットを識別し;かつ前記第1のフラグメントのセット
及び前記第2のフラグメントのセット上の前記質問を実
行する段階を具備することを特徴とする方法。 - 【請求項12】 第1の複数のフラグメントを有する第
1の表と第2の複数のフラグメントを有する第2の表と
の間の結合を処理するためのコンピュータに実装された
方法であって、 前記第1の表からの各対応フラグメントに対して、前記
第1の表からの前記対応フラグメントからの記録を伴う
前記結合の結合述語を満足させる記録を含む前記第2の
表からのフラグメントを識別する、マップを検索し;前
記第1の表から記録を受け取り;前記受け取った記録の
前記フラグメントを伴う前記結合述語を満足させる前記
第2の表からのフラグメントのセットを識別するために
前記マップを使用し;かつ前記受け取った記録を伴う前
記結合述語を満足させる記録に対して前記識別されたフ
ラグメントのセットを走査する段階を具備することを特
徴とする方法。 - 【請求項13】 前記結合述語を満足させる記録を含む
フラグメントを選択するために前記マップを使用するこ
とを更に具備し、かつ前記受け取り、使用及び走査段階
は、前記選択したフラグメントの全ての記録に適用され
ることを特徴とする請求項12に記載の方法。 - 【請求項14】 データベース表の質問を実行すべく動
作しかつフラグメントへの表の分離を支持するシステム
において、第1の表及び第2の表に結合演算を適用する
ためのコンピュータに実装された方法であって、 前記第1の表フラグメントからの記録を伴う前記結合述
語を満足させる記録を含む前記第2の表のそれらのフラ
グメントを前記第1の表の各フラグメントに対して識別
しかつマップに前記識別を記憶し;前記質問の単一表述
語を満足させる記録を有する前記第1の表からの第1の
フラグメントのセットを識別し;前記第1の表から記録
を受け取り;前記マップを適用することによって前記受
け取った記録を伴う結合述語を満足させる記録を有する
前記第2の表からのフラグメントのセットを識別し;か
つ前記受け取った記録を伴う前記結合述語を満足させる
記録に対する前記識別されたフラグメントのセットを走
査する段階を具備することを特徴とする方法。 - 【請求項15】 フラグメントへの表の分離を支持する
データベースシステムにおいて、第1の表及び第2の表
に結合述語を有している結合を最適化する方法であっ
て、 結合フラグメントマップを生成すべく前記結合述語を有
している簡略化された質問を実行する段階を具備し、前
記結合フラグメントマップは、前記第1の表フラグメン
トからの記録を伴う前記結合述語を満足させる記録を含
む前記第2の表のフラグメントを前記第1の表の各フラ
グメントについて識別することを特徴とする方法。 - 【請求項16】 前記結合フラグメントマップは、前記
第1の表フラグメントからの記録を伴う前記結合述語を
満足させる記録を含む前記第2の表のフラグメントを前
記第1の表の各フラグメントについてリストすることを
特徴とする請求項15に記載の方法。 - 【請求項17】 前記結合フラグメントマップは、前記
第1の表及び前記第2の表からの各対のフラグメントに
対するビットを有しているビットマップであることを特
徴とする請求項15に記載の方法。 - 【請求項18】 前記ビットマップを圧縮することを更
に含むことを特徴とする請求項17に記載の方法。 - 【請求項19】 前記第1の表から第1のフラグメント
を選択し、前記第2の表から第2のフラグメントを選択
し、かつフラグメントのペアリングが前記結合述語を満
足させる記録を含むかどうかを決定すべく前記第1のフ
ラグメントと第2のフラグメントの前記ペアリングに対
応するビットをチェックすることを更に含むことを特徴
とする請求項17に記載の方法。 - 【請求項20】 前記ビットマップの生成は、当該ビッ
トマップがいっぱいになったならば打ち切られることを
特徴とする請求項17に記載の方法。 - 【請求項21】 前記第1及び第2の表は、前記ビット
マップが十分にスパースであるかどうかを決定すべくサ
ンプルされることを特徴とする請求項17に記載の方
法。 - 【請求項22】 前記ビットマップの生成は、サーバ
が、オンにされたスパースな数のビットを有するビット
マップを探し出すために異なる表の種々のカラムを結合
するようなディスカバリ処理によってトリガされること
を特徴とする請求項17に記載の方法。 - 【請求項23】 結合フラグメントマップは、揮発性メ
モリに記憶されることを特徴とする請求項15に記載の
方法。 - 【請求項24】 結合フラグメントマップの前記生成
は、明示的ユーザデータ定義コマンドによってトリガさ
れることを特徴とする請求項15に記載の方法。 - 【請求項25】 結合フラグメントマップの前記生成
は、二つの表の間の参照保全規約の定義によってトリガ
されることを特徴とする請求項15に記載の方法。 - 【請求項26】 前記簡略化された質問は、前記質問か
らの単一表述語を含まないことを特徴とする請求項15
に記載の方法。 - 【請求項27】 前記簡略化された質問は、単一簡略結
合述語を含むことを特徴とする請求項15に記載の方
法。 - 【請求項28】 前記第1の表または前記第2の表から
の記録が追加されるかまたは変更されたならば前記結合
フラグメントマップを更新することを更に含むことを特
徴とする請求項15に記載の方法。 - 【請求項29】 最初の質問と同じ結合述語及び少なく
とも一つの異なる述語を有している新しい質問に対して
前記結合フラグメントマップを検索することを更に含む
ことを特徴とする請求項15に記載の方法。 - 【請求項30】 前記最初の質問を適用する前記第1の
表のフラグメント及び前記第2の表のフラグメントを選
択するために前記結合フラグメントマップを使用するこ
とを更に具備することを特徴とする請求項15に記載の
方法。 - 【請求項31】 リレーショナルデータベース表の質問
を実行すべく動作しかつフラグメントへの表の分離を支
持するシステムにおいて、第1の表及び第2の表で結合
述語を有している質問を最適化する方法であって、 前記結合述語を満足させることができる記録を有してい
る前記第1の表のフラグメントである第1のフラグメン
トのセットを識別し;前記結合述語を満足させることが
できる記録を有している前記第2の表のフラグメントで
ある第2のフラグメントのセットを識別し;かつ前記識
別されたフラグメントの前記質問を実行する段階を具備
することを特徴とする方法。 - 【請求項32】 前記第1のフラグメントのセットは、
前記第1の表フラグメントからの記録を伴う前記結合述
語を満足させる記録を含む前記第2の表のフラグメント
を前記第1の表の各フラグメントに対して識別する結合
フラグメントマップによって識別されることを特徴とす
る請求項31に記載の方法。 - 【請求項33】 前記識別されたフラグメントの前記質
問を実行する段階は、 前記第1のフラグメントのセットからの選択したフラグ
メントからの記録を検索し;前記第2のフラグメントの
セットからのフラグメントのサブセットを識別し、 前記サブセットは、前記選択したフラグメントを伴う前
記結合述語を満足させることができる記録を有している
前記第2の表のフラグメントであり;かつ前記結合述語
を満足させている記録に対して前記フラグメントのサブ
セットを走査する段階を具備することを特徴とする請求
項31に記載の方法。 - 【請求項34】 リレーショナルデータベース表の質問
を実行すべく動作しかつフラグメントへの表の分離を支
持するシステムにおける結合述語を処理する方法であっ
て、 結合フラグメントマップを生成すべく結合述語を有して
いる簡略化された質問を実行し、前記結合フラグメント
マップは、前記第1の表フラグメントからの記録を伴う
前記結合述語を満足させる記録を含む前記第2の表のフ
ラグメントを前記第1の表の各フラグメントに対して識
別し;前記結合述語を満足させる記録を有している前記
第1の表のフラグメントである第1のフラグメントのセ
ットを識別すべく前記結合フラグメントマップを使用
し;前記結合述語を満足させる記録を有している前記第
2の表のフラグメントである第2のフラグメントのセッ
トを識別すべく前記結合フラグメントマップを使用し;
前記第1のフラグメントのセットからの選択したフラグ
メントからの記録を検索し;第2のフラグメントのセッ
トからのフラグメントのサブセットを識別し、 前記サブセットは、前記選択したフラグメントを伴う前
記結合述語を満足させる記録を有している前記第2の表
のフラグメントであり;かつ前記結合述語を満足させる
記録に対して前記フラグメントのサブセットを走査する
段階を具備することを特徴とする方法。 - 【請求項35】 コンピュータ読取り可能媒体に存在す
る、コンピュータプログラムであって、 第1の表からの各対応するフラグメントに対して、前記
第1の表からの前記対応フラグメントからの記録を伴う
結合述語を満足させる記録を含む前記第2の表からの前
記フラグメントを識別する、結合フラグメントマップを
検索すること;及び前記結合述語を満足させることがで
きないフラグメントを削除するために前記マップを使用
することをコンピュータに動作させる命令を備えている
ことを特徴とするコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/833,519 US5987453A (en) | 1997-04-07 | 1997-04-07 | Method and apparatus for performing a join query in a database system |
US08/833519 | 1997-04-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10320423A true JPH10320423A (ja) | 1998-12-04 |
JP4866495B2 JP4866495B2 (ja) | 2012-02-01 |
Family
ID=25264637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09482898A Expired - Lifetime JP4866495B2 (ja) | 1997-04-07 | 1998-04-07 | データベースシステムにおいて結合質問を実行する方法及び装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5987453A (ja) |
EP (1) | EP0877327B1 (ja) |
JP (1) | JP4866495B2 (ja) |
AU (1) | AU752283B2 (ja) |
BR (1) | BR9804282A (ja) |
CA (1) | CA2232938C (ja) |
DE (1) | DE69839747D1 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010509677A (ja) * | 2006-11-10 | 2010-03-25 | マイクロソフト コーポレーション | 分散型サーバーシステムにおいてバックアップマネージャを転送するメッセージ |
JP2010267289A (ja) * | 2003-09-15 | 2010-11-25 | Ab Initio Technology Llc | データプロファイリング |
US9323749B2 (en) | 2012-10-22 | 2016-04-26 | Ab Initio Technology Llc | Profiling data with location information |
US9449057B2 (en) | 2011-01-28 | 2016-09-20 | Ab Initio Technology Llc | Generating data pattern information |
US9892026B2 (en) | 2013-02-01 | 2018-02-13 | Ab Initio Technology Llc | Data records selection |
US9971798B2 (en) | 2014-03-07 | 2018-05-15 | Ab Initio Technology Llc | Managing data profiling operations related to data type |
US11068540B2 (en) | 2018-01-25 | 2021-07-20 | Ab Initio Technology Llc | Techniques for integrating validation results in data profiling and related systems and methods |
US11487732B2 (en) | 2014-01-16 | 2022-11-01 | Ab Initio Technology Llc | Database key identification |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112198A (en) * | 1997-06-30 | 2000-08-29 | International Business Machines Corporation | Optimization of data repartitioning during parallel query optimization |
JP3571201B2 (ja) * | 1997-12-12 | 2004-09-29 | 富士通株式会社 | データベース検索装置及びデータベース検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6167399A (en) * | 1998-05-05 | 2000-12-26 | Ncr Corporation | Join index for relational databases |
US6438542B1 (en) | 1999-08-30 | 2002-08-20 | International Business Machines Corporation | Method of optimally determining lossless joins |
JP3211956B2 (ja) * | 1999-08-31 | 2001-09-25 | 勲 清水 | データベースシステム |
US7765581B1 (en) | 1999-12-10 | 2010-07-27 | Oracle America, Inc. | System and method for enabling scalable security in a virtual private network |
US6970941B1 (en) * | 1999-12-10 | 2005-11-29 | Sun Microsystems, Inc. | System and method for separating addresses from the delivery scheme in a virtual private network |
US6977929B1 (en) | 1999-12-10 | 2005-12-20 | Sun Microsystems, Inc. | Method and system for facilitating relocation of devices on a network |
US6938169B1 (en) | 1999-12-10 | 2005-08-30 | Sun Microsystems, Inc. | Channel-specific file system views in a private network using a public-network infrastructure |
US7336790B1 (en) * | 1999-12-10 | 2008-02-26 | Sun Microsystems Inc. | Decoupling access control from key management in a network |
AUPQ585100A0 (en) * | 2000-02-25 | 2000-03-16 | Canon Kabushiki Kaisha | Customisable filter interface |
US6618729B1 (en) * | 2000-04-20 | 2003-09-09 | Ncr Corporation | Optimization of a star join operation using a bitmap index structure |
US6505189B1 (en) | 2000-06-15 | 2003-01-07 | Ncr Corporation | Aggregate join index for relational databases |
US6618720B1 (en) | 2000-06-15 | 2003-09-09 | Ncr Corporation | Common spool files for maintaining join indexes |
US6505188B1 (en) | 2000-06-15 | 2003-01-07 | Ncr Corporation | Virtual join index for relational databases |
US7552135B2 (en) * | 2001-11-15 | 2009-06-23 | Siebel Systems, Inc. | SQL adapter business service |
US6983275B2 (en) * | 2002-04-16 | 2006-01-03 | International Business Machines Corporation | Optimizing database query by generating, determining the type of derived predicate based on monotonicity of the column generating expression for each remaining inequality predicate in the list of unexamined predicates |
US7765211B2 (en) * | 2003-04-29 | 2010-07-27 | International Business Machines Corporation | System and method for space management of multidimensionally clustered tables |
US7111025B2 (en) * | 2003-04-30 | 2006-09-19 | International Business Machines Corporation | Information retrieval system and method using index ANDing for improving performance |
US7401069B2 (en) * | 2003-09-11 | 2008-07-15 | International Business Machines Corporation | Background index bitmapping for faster query performance |
US7240078B2 (en) * | 2003-11-25 | 2007-07-03 | International Business Machines Corporation | Method, system, and program for query optimization with algebraic rules |
US20050222980A1 (en) * | 2004-03-31 | 2005-10-06 | International Business Machines Corporation | Fragment elimination |
US7596546B2 (en) * | 2004-06-14 | 2009-09-29 | Matchett Douglas K | Method and apparatus for organizing, visualizing and using measured or modeled system statistics |
US8145642B2 (en) * | 2004-11-30 | 2012-03-27 | Oracle International Corporation | Method and apparatus to support bitmap filtering in a parallel system |
US7536379B2 (en) * | 2004-12-15 | 2009-05-19 | International Business Machines Corporation | Performing a multiple table join operating based on generated predicates from materialized results |
US20060235834A1 (en) * | 2005-04-14 | 2006-10-19 | Microsoft Corporation | Path expression in structured query language |
US7428524B2 (en) * | 2005-08-05 | 2008-09-23 | Google Inc. | Large scale data storage in sparse tables |
EP1785396A1 (en) * | 2005-11-09 | 2007-05-16 | Nederlandse Organisatie voor Toegepast-Natuuurwetenschappelijk Onderzoek TNO | Process for preparing a metal hydroxide |
US7660814B2 (en) * | 2005-12-21 | 2010-02-09 | Teradata Us, Inc. | Techniques for mapping a physical table to multiple virtual tables |
US7613734B2 (en) * | 2006-05-15 | 2009-11-03 | Xsprada Corporation | Systems and methods for providing data sets using a store of albegraic relations |
US7865503B2 (en) * | 2006-05-15 | 2011-01-04 | Algebraix Data Corporation | Systems and methods for data storage and retrieval using virtual data sets |
US7769754B2 (en) * | 2006-05-15 | 2010-08-03 | Algebraix Data Corporation | Systems and methods for data storage and retrieval using algebraic optimization |
US7877370B2 (en) * | 2006-05-15 | 2011-01-25 | Algebraix Data Corporation | Systems and methods for data storage and retrieval using algebraic relations composed from query language statements |
US7720806B2 (en) * | 2006-05-15 | 2010-05-18 | Algebraix Data Corporation | Systems and methods for data manipulation using multiple storage formats |
US7797319B2 (en) * | 2006-05-15 | 2010-09-14 | Algebraix Data Corporation | Systems and methods for data model mapping |
US7769843B2 (en) * | 2006-09-22 | 2010-08-03 | Hy Performix, Inc. | Apparatus and method for capacity planning for data center server consolidation and workload reassignment |
US8788986B2 (en) | 2010-11-22 | 2014-07-22 | Ca, Inc. | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources |
US7957948B2 (en) * | 2007-08-22 | 2011-06-07 | Hyperformit, Inc. | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources |
US8010547B2 (en) * | 2008-04-15 | 2011-08-30 | Yahoo! Inc. | Normalizing query words in web search |
US8073840B2 (en) * | 2008-06-17 | 2011-12-06 | Attivio, Inc. | Querying joined data within a search engine index |
US8868831B2 (en) | 2009-09-14 | 2014-10-21 | Oracle International Corporation | Caching data between a database server and a storage system |
EP2350875A1 (en) | 2008-09-19 | 2011-08-03 | Oracle International Corporation | Storage-side storage request management |
US8484351B1 (en) | 2008-10-08 | 2013-07-09 | Google Inc. | Associating application-specific methods with tables used for data storage |
US8438153B2 (en) * | 2010-10-11 | 2013-05-07 | Hewlett-Packard Development Company, L.P. | Performing database joins |
US9965500B2 (en) * | 2011-12-12 | 2018-05-08 | Sap Se | Mixed join of row and column database tables in native orientation |
CN103294525A (zh) | 2012-02-27 | 2013-09-11 | 国际商业机器公司 | 利用用户自定义函数进行数据库查询的方法和系统 |
US9747363B1 (en) | 2012-03-01 | 2017-08-29 | Attivio, Inc. | Efficient storage and retrieval of sparse arrays of identifier-value pairs |
US20150033032A1 (en) * | 2012-03-29 | 2015-01-29 | Nec Corporation | Encrypted database system, client terminal, database server, data linking method and program |
US8583687B1 (en) | 2012-05-15 | 2013-11-12 | Algebraix Data Corporation | Systems and methods for indirect algebraic partitioning |
US8862571B2 (en) * | 2012-06-29 | 2014-10-14 | International Business Machines Corporation | Predicate pushdown with late materialization in database query processing |
US9087209B2 (en) * | 2012-09-26 | 2015-07-21 | Protegrity Corporation | Database access control |
US20140236973A1 (en) * | 2013-02-21 | 2014-08-21 | Bank Of America Corporation | Data Communication and Analytics Platform |
US9275103B2 (en) * | 2013-02-28 | 2016-03-01 | International Business Machines Corporation | Optimization of JOIN queries for related data |
US10268639B2 (en) * | 2013-03-15 | 2019-04-23 | Inpixon | Joining large database tables |
US10642837B2 (en) | 2013-03-15 | 2020-05-05 | Oracle International Corporation | Relocating derived cache during data rebalance to maintain application performance |
US10528590B2 (en) | 2014-09-26 | 2020-01-07 | Oracle International Corporation | Optimizing a query with extrema function using in-memory data summaries on the storage server |
US9953054B2 (en) * | 2013-04-22 | 2018-04-24 | Salesforce.Com, Inc. | Systems and methods for implementing and maintaining sampled tables in a database system |
US9275155B1 (en) | 2015-01-23 | 2016-03-01 | Attivio Inc. | Querying across a composite join of multiple database tables using a search engine index |
US10437824B2 (en) | 2015-01-23 | 2019-10-08 | Attivio, Inc. | Querying across a composite join of multiple database tables using a search engine index |
US10977251B1 (en) * | 2015-12-30 | 2021-04-13 | Teradata Us, Inc. | Join index bitmap for non-equality query conditions |
EP3333794A1 (en) * | 2016-12-08 | 2018-06-13 | Mastercard International Incorporated | Multi-merchant portal for e-commerce |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US11157478B2 (en) | 2018-12-28 | 2021-10-26 | Oracle International Corporation | Technique of comprehensively support autonomous JSON document object (AJD) cloud service |
US11200234B2 (en) | 2019-06-14 | 2021-12-14 | Oracle International Corporation | Non-disruptive dynamic ad-hoc database catalog services |
US10990596B2 (en) | 2019-06-14 | 2021-04-27 | Oracle International Corporation | Non-disruptive referencing of special purpose operators for database management systems |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS583031A (ja) * | 1981-06-30 | 1983-01-08 | Fujitsu Ltd | リレ−シヨナル・モデルにおけるジヨイン演算処理方式 |
US5452238A (en) * | 1989-06-13 | 1995-09-19 | Schlumberger Technology Corporation | Method for solving geometric constraint systems |
US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
JPH077422B2 (ja) * | 1991-08-23 | 1995-01-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ処理データベース・システムにおけるジョインの実行方法及びシステム |
US5412804A (en) * | 1992-04-30 | 1995-05-02 | Oracle Corporation | Extending the semantics of the outer join operator for un-nesting queries to a data base |
AU4843693A (en) * | 1992-09-01 | 1994-03-29 | Bertram G Brehm | Information model based on a physical system |
CA2095311A1 (en) * | 1993-04-30 | 1994-10-31 | Richard E. Swagerman | Conversation management routine for co-operative processing applications |
-
1997
- 1997-04-07 US US08/833,519 patent/US5987453A/en not_active Expired - Lifetime
-
1998
- 1998-03-20 AU AU59437/98A patent/AU752283B2/en not_active Ceased
- 1998-03-24 CA CA002232938A patent/CA2232938C/en not_active Expired - Lifetime
- 1998-04-06 BR BR9804282-3A patent/BR9804282A/pt not_active IP Right Cessation
- 1998-04-07 JP JP09482898A patent/JP4866495B2/ja not_active Expired - Lifetime
- 1998-04-07 EP EP98302804A patent/EP0877327B1/en not_active Expired - Lifetime
- 1998-04-07 DE DE69839747T patent/DE69839747D1/de not_active Expired - Lifetime
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010267289A (ja) * | 2003-09-15 | 2010-11-25 | Ab Initio Technology Llc | データプロファイリング |
JP2010267288A (ja) * | 2003-09-15 | 2010-11-25 | Ab Initio Technology Llc | データプロファイリング |
US8868580B2 (en) | 2003-09-15 | 2014-10-21 | Ab Initio Technology Llc | Data profiling |
US9323802B2 (en) | 2003-09-15 | 2016-04-26 | Ab Initio Technology, Llc | Data profiling |
JP2010509677A (ja) * | 2006-11-10 | 2010-03-25 | マイクロソフト コーポレーション | 分散型サーバーシステムにおいてバックアップマネージャを転送するメッセージ |
US9449057B2 (en) | 2011-01-28 | 2016-09-20 | Ab Initio Technology Llc | Generating data pattern information |
US9652513B2 (en) | 2011-01-28 | 2017-05-16 | Ab Initio Technology, Llc | Generating data pattern information |
US9569434B2 (en) | 2012-10-22 | 2017-02-14 | Ab Initio Technology Llc | Profiling data with source tracking |
US9323748B2 (en) | 2012-10-22 | 2016-04-26 | Ab Initio Technology Llc | Profiling data with location information |
US9323749B2 (en) | 2012-10-22 | 2016-04-26 | Ab Initio Technology Llc | Profiling data with location information |
US9990362B2 (en) | 2012-10-22 | 2018-06-05 | Ab Initio Technology Llc | Profiling data with location information |
US10719511B2 (en) | 2012-10-22 | 2020-07-21 | Ab Initio Technology Llc | Profiling data with source tracking |
US9892026B2 (en) | 2013-02-01 | 2018-02-13 | Ab Initio Technology Llc | Data records selection |
US10241900B2 (en) | 2013-02-01 | 2019-03-26 | Ab Initio Technology Llc | Data records selection |
US11163670B2 (en) | 2013-02-01 | 2021-11-02 | Ab Initio Technology Llc | Data records selection |
US11487732B2 (en) | 2014-01-16 | 2022-11-01 | Ab Initio Technology Llc | Database key identification |
US9971798B2 (en) | 2014-03-07 | 2018-05-15 | Ab Initio Technology Llc | Managing data profiling operations related to data type |
US11068540B2 (en) | 2018-01-25 | 2021-07-20 | Ab Initio Technology Llc | Techniques for integrating validation results in data profiling and related systems and methods |
Also Published As
Publication number | Publication date |
---|---|
CA2232938C (en) | 2006-07-04 |
AU752283B2 (en) | 2002-09-12 |
US5987453A (en) | 1999-11-16 |
CA2232938A1 (en) | 1998-10-07 |
AU5943798A (en) | 1998-10-08 |
EP0877327B1 (en) | 2008-07-23 |
DE69839747D1 (de) | 2008-09-04 |
JP4866495B2 (ja) | 2012-02-01 |
BR9804282A (pt) | 1999-11-16 |
EP0877327A2 (en) | 1998-11-11 |
EP0877327A3 (en) | 2000-09-06 |
MX9802587A (es) | 1998-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH10320423A (ja) | データベースシステムにおいて結合質問を実行する方法及び装置 | |
US8140495B2 (en) | Asynchronous database index maintenance | |
US7240044B2 (en) | Query optimization by sub-plan memoization | |
US6678687B2 (en) | Method for creating an index and method for searching an index | |
US7418544B2 (en) | Method and system for log structured relational database objects | |
US6421662B1 (en) | Generating and implementing indexes based on criteria set forth in queries | |
JP4073033B1 (ja) | 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム | |
US6549895B1 (en) | Method and apparatus for analyzing data retrieval using index scanning | |
US6546394B1 (en) | Database system having logical row identifiers | |
JP3914662B2 (ja) | データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体 | |
US20040148293A1 (en) | Method, system, and program for managing database operations with respect to a database table | |
US6122644A (en) | System for halloween protection in a database system | |
JPH07129450A (ja) | 区分されたオブジェクトのデータベースの多層索引構造を生成する方法及びシステム | |
JP4071816B1 (ja) | 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム | |
Lin et al. | Frame-sliced signature files | |
US6513028B1 (en) | Method, system, and program for searching a list of entries when search criteria is provided for less than all of the fields in an entry | |
US20040054683A1 (en) | System and method for join operations of a star schema database | |
US6647386B2 (en) | Method, system, and program for reverse index scanning | |
US8214408B2 (en) | Method, database system and computer program for joining temporal database tables | |
US20060080282A1 (en) | Data management method and storage medium storing data management program | |
JP4109305B1 (ja) | マルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム | |
JP3653333B2 (ja) | データベース管理方法およびシステム | |
JPH08235033A (ja) | オブジェクト指向データベース管理システムにおける結合演算方式 | |
JP2001344553A (ja) | 特徴ベクトルのデータ空間のインデクシング方法 | |
CN115827653B (zh) | 一种用于htap和海量数据的纯列式更新方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040227 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080422 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080617 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080617 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20080617 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080617 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080930 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090115 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090115 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090220 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20090327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110921 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20111102 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20111102 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111114 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080617 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
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 |
|
EXPY | Cancellation because of completion of term |