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
Application number
JP10094828A
Other languages
English (en)
Other versions
JP4866495B2 (ja
Inventor
Murali M Krishna
エム クリシュナ ムラリー
Anurag Kashyap
カシャップ アヌーラグ
Robert Howard Gerber
ハワード ガーバー ロバート
Paul Sherwood Taylor
シャーウッド テイラー ポール
Scott Alan Shurts
アレン シャーツ スコット
Shengsong Ni
ニー シェンソン
Prakash Sundaresan
スンダレサン プラカシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Informix Software Inc
Original Assignee
Informix Software Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Informix Software Inc filed Critical Informix Software Inc
Publication of JPH10320423A publication Critical patent/JPH10320423A/ja
Application granted granted Critical
Publication of JP4866495B2 publication Critical patent/JP4866495B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query 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

(57)【要約】 【課題】 データベースシステムにおいて結合質問を実
行する方法及び装置を提供する。 【解決手段】 結合に対する応答を生成するコンピュー
タに実装された方法である。二つの表は、フラグメント
に分割される。結合フラグメントマップは、第1の表か
らの各対応フラグメントに対して、第1の表からの対応
フラグメントからの記録を伴う結合述語を満足させる記
録を含む第2の表からのフラグメントを識別する。マッ
プは、を削除するために用いられる。結合述語を満足さ
せることができないフラグメントを削除するために用い
られる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にデータベースシ
ステムに関し、特に、データベースシステムによって結
合述語を有している質問を処理する方法及び装置に関す
る。
【0002】
【従来の技術】データベースは、情報の集合である。リ
レーショナルデータベースは、一つ以上の二次元表とし
て一般に示される。各表は、行及び列に項目及び項目の
属性を配列している。各表の行は、項目(記録と称す
る)に対応し、かつ各表の列は、項目の属性(フィール
ドを称する)に対応する。リレーショナルデータベース
では、表の集合は、共通の属性または“キー”を介して
相互に関連付けることができる。共通キーは、一つの表
の情報を別の表の対応する情報に自動的に相互参照され
ることができる。複雑な検索は、“質問”によりデータ
ベースで実行されうる。質問は、データベースから検索
するためにデータベースシステムに対する情報を特定す
べき一つ以上の述語を含む。結合質問は、二つ以上の表
からの情報を要求する質問である。例えば、一つの表に
顧客情報を、別の表にクレジットカードトランザクショ
ンを記憶するデータベースでは、結合質問は、住居が存
在している州で顧客が買い物をしたようなトランザクシ
ョンを要求しうる。結合質問は、二つの表からの記録を
選択するために基準を特定すべく少なくとも一つの結合
述語を含まなければならない(例えば、顧客の住居の州
がトランザクションが発生する州と同じである)。結合
質問は、また、個々の表からの記録を選択すべく一つ以
上の単一表述語を含みうる。
【0003】結合質問を実行するために、通常のデータ
ベースシステムは、いずれかの記録が結合述語を満足さ
せるかどうかを決定すべく第1の表の各記録に対して第
2の表の全ての記録を検査する。そのような記録は、
“マッチ(match) ”したと言いうる。次いで、データベ
ースシステムは、マッチした記録からの質問表を構築す
る。多くの状況において、通常のデータベース動作は、
結合質問を実行するときには許容できない程にスローで
ありうる。結合質問を処理するために必要な時間を低減
するために複数の技術が開発されている。結合質問の性
能を改良するための一つの技術は、データベースシステ
ムによって検索するデータの量を低減することである。
特に、結合述語を満足させることができない記録は、質
問の両方の表から削除されるべきである。
【0004】そのようあん技術の一例は、以下の質問で
説明されうる: 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も満足させなければならないということ
を決定する。
【0005】Sの述語を演繹した後、データベースシス
テムは、結合の結果に寄与することができないかもしれ
ないSの走査からの記録を削除するために述語を適用し
うる。フラグメントテーションは、質問の処理スピード
を増すために用いる別の技術である。フラグメントテー
ションは、フラグメントと呼ばれる水平区分に表を分け
る。フラグメントテーションの後、表は、フラグメント
の集合から構成される。フラグメントは、一組の記録を
含む。フラグメントに記録を記憶するための基準は、ユ
ーザによって定義されかつ“フラグメントテーション・
スキーム”として知られている。いずれの記録も基準を
満足させないならばフラグメントは、空であることが可
能である。
【0006】
【発明が解決しようとする課題】“走査”は、表のフラ
グメントを読み出す処理である。フラグメントは、クラ
スタまたはネットワーク・アーキテクチャの個別のディ
スクまたは個別のノードに個々に記憶されうる。論理的
に、全てのフラグメントは、同時に走査されうるし、そ
れにより、完全な表を読み取ることができる全体の速度
を増大する。定義により、同時に二つ以上のフラグメン
トを読み取るために、データベースシステムは、多重走
査演算子を用いなければならない。“フラグメント削
除”は、データベースシステムが、質問の結果に参加す
ることができない表からのフラグメントを識別しかつ考
慮からそれらのフラグメントを除去することができるよ
うな処理である。フラグメント削除の例は、以下の質問
で説明されうる: SELECT * FROM R where R.month > “September ”[例2] 表Rが12フラグメントを有し−−一つが一年の各月−
−かつR.month (月)列が表Rの各記録のフラグメント
を識別するということを想定する。例えば、第1番目の
フラグメントは、そのR.month 値が“January(1月)”
である全ての記録を含み、第2番目のフラグメントは、
そのR.month 値が“February (2月)”である全ての記
録を含む、等である。
【0007】例2の質問及びフラグメントテーション・
スキームを用いて、データベースシステムは、そのR.mo
nth 値が“Octobe(10月)”、“November(11
月)”、または“December(12月)”である記録に対
応している3つのフラグメント、具体的にはfragments
#10 - #12 (第10番目のフラグメント〜第12番目の
フラグメント)以外の、全てを削除することができる。
削除された第1番目〜第9番目のフラグメントは、質問
を満足させている記録を戻すことができないかもしれな
いしかつ走査される必要もない。それゆえに、フラグメ
ント削除は、データベースシステムに12全ての代わり
に3つのフラグメントを走査させる。本発明は、結合へ
の応答を生成するためのコンピュータに実装された方法
を提供することを課題とする。
【0008】
【課題を解決するための手段】本発明の上記課題は、第
1の複数のフラグメントを有する第1の表と第2の複数
のフラグメントを有する第2の表との間に結合述語を有
している結合への応答を生成するためのコンピュータに
実装された方法であって、第1の表からの各対応フラグ
メントに対して、第1の表からの対応フラグメントから
の記録を伴う結合述語を満足させる記録を含む第2の表
からのフラグメントを識別する、結合フラグメントマッ
プを検索し;かつ結合述語を満足させることができない
フラグメントを削除するためにマップを用いる段階を具
備することを特徴とする方法によって達成される。ま
た、本発明の上記課題は、第1の複数のフラグメントを
有する第1の表と第2の複数のフラグメントを有する第
2の表との間の結合を処理するためのコンピュータに実
装された方法であって、第1の表からの各対応フラグメ
ントに対して、第1の表からの対応フラグメントからの
記録を伴う結合の結合述語を満足させる記録を含む第2
の表からのフラグメントを識別する、結合フラグメント
マップを検索し;マップを適用することによって結合述
語を満足させる記録を有することが可能なフラグメント
を識別し;かつ識別されたフラグメント上の結合を実行
する段階を具備する方法によって達成される。
【0009】本発明の方法では、結合の単一表述語を満
足させる第1の表からの第1のフラグメントのセットを
識別する段階を更に具備するように構成してもよい。本
発明の方法では、フラグメントを識別する段階は、フラ
グメントの第1のセットを伴う結合述語を満足させる第
2の表からの第2のフラグメントのセットを識別するた
めにマップを含むように構成してもよい。本発明の方法
では、質問を実行する段階は、第1のフラグメントのセ
ット及び第2のフラグメントのセット上で該質問を実行
することを含むように構成してもよい。本発明の方法で
は、フラグメントを識別する段階は、結合述語を満足さ
せうる第1の表からの第1のフラグメントのセットを識
別するためにマップを含むように構成してもよい。
【0010】本発明の方法では、フラグメントを識別す
る段階は、第1のフラグメントのセットを伴う結合述語
を満足させうる第2の表からの第2のフラグメントのセ
ットを識別するためにマップを用いることを更に含むよ
うに構成してもよい。本発明の方法では、フラグメント
を識別する段階は、第2のフラグメントのセットを伴う
結合述語を満足させうる第1のフラグメントのセットの
サブセットを識別するためにマップを用いることを更に
含むように構成してもよい。本発明の方法では、フラグ
メントを識別する段階は、第1のフラグメントのセット
を伴う結合述語を満足させうる第2のフラグメントのセ
ットのサブセットを識別するためにマップを用いること
を更に含むように構成してもよい。本発明の方法では、
サブセットを識別する段階は、更なるフラグメントが削
除されなくなるまで繰り返されるように構成してもよ
い。
【0011】本発明の上記課題は、データベース表の質
問を実行すべく動作しかつフラグメントへの表の分離を
支持するシステムにおいて、第1の表及び第2の表に結
合演算を適用するためのコンピュータに実装された方法
であって、第1の表フラグメントからの記録を伴う結合
述語を満足させる記録を含む第2の表のそれらのフラグ
メントを第1の表の各フラグメントに対して識別し;質
問の単一表述語を満足させる記録を有する第1の表から
の第1のフラグメントのセットを識別し;マップを適用
することによって第1のフラグメントのセットからの記
録を伴う結合述語を満足させる記録を含む第2の表から
の第2のフラグメントのセットを識別し;かつ第1のフ
ラグメントのセット及び第2のフラグメントのセット上
の質問を実行する段階を具備することを特徴とする方法
によって達成される。
【0012】また、本発明の上記課題は、第1の複数の
フラグメントを有する第1の表と第2の複数のフラグメ
ントを有する第2の表との間の結合を処理するためのコ
ンピュータに実装された方法であって、第1の表からの
各対応フラグメントに対して、第1の表からの対応フラ
グメントからの記録を伴う結合の結合述語を満足させる
記録を含む第2の表からのフラグメントを識別する、マ
ップを検索し;第1の表から記録を受け取り;受け取っ
た記録のフラグメントを伴う結合述語を満足させる第2
の表からのフラグメントのセットを識別するためにマッ
プを使用し;かつ受け取った記録を伴う結合述語を満足
させる記録に対して識別されたフラグメントのセットを
走査する段階を具備する方法によって達成される。本発
明の方法では、結合述語を満足させる記録を含むフラグ
メントを選択するためにマップを使用することを更に具
備し、かつ受け取り、使用及び走査段階は、選択したフ
ラグメントの全ての記録に適用されるように構成しても
よい。
【0013】更に本発明の上記課題は、データベース表
の質問を実行すべく動作しかつフラグメントへの表の分
離を支持するシステムにおいて、第1の表及び第2の表
に結合演算を適用するためのコンピュータに実装された
方法であって、第1の表フラグメントからの記録を伴う
結合述語を満足させる記録を含む第2の表のそれらのフ
ラグメントを第1の表の各フラグメントに対して識別し
かつマップに識別を記憶し;質問の単一表述語を満足さ
せる記録を有する第1の表からの第1のフラグメントの
セットを識別し;第1の表から記録を受け取り;マップ
を適用することによって受け取った記録を伴う結合述語
を満足させる記録を有する第2の表からのフラグメント
のセットを識別し;かつ受け取った記録を伴う結合述語
を満足させる記録に対する識別されたフラグメントのセ
ットを走査する段階を具備する方法によって達成され
る。
【0014】本発明の上記課題は、フラグメントへの表
の分離を支持するデータベースシステムにおいて、第1
の表及び第2の表に結合述語を有している結合を最適化
する方法であって、結合フラグメントマップを生成すべ
く結合述語を有している簡略化された質問を実行する段
階を具備し、結合フラグメントマップは、第1の表フラ
グメントからの記録を伴う結合述語を満足させる記録を
含む第2の表のフラグメントを第1の表の各フラグメン
トについて識別することを特徴とする方法によって達成
される。本発明の方法では、結合フラグメントマップ
は、第1の表フラグメントからの記録を伴う結合述語を
満足させる記録を含む第2の表のフラグメントを第1の
表の各フラグメントについてリストするように構成して
もよい。
【0015】本発明の方法では、結合フラグメントマッ
プは、第1の表及び第2の表からの各対のフラグメント
に対するビットを有しているビットマップでもよい。本
発明の方法では、ビットマップを圧縮することを更に含
むように構成してもよい。本発明の方法では、第1の表
から第1のフラグメントを選択し、第2の表から第2の
フラグメントを選択し、かつフラグメントのペアリング
が結合述語を満足させる記録を含むかどうかを決定すべ
く第1のフラグメントと第2のフラグメントのペアリン
グに対応するビットをチェックすることを更に含むよう
に構成してもよい。本発明の方法では、ビットマップの
生成は、当該ビットマップがいっぱいになったならば打
ち切られるようにしてもよい。
【0016】本発明の方法では、第1及び第2の表は、
ビットマップが十分にスパースであるかどうかを決定す
べくサンプルされるようにしてもよい。本発明の方法で
は、ビットマップの生成は、サーバが、オンにされたス
パースな数のビットを有するビットマップを探し出すた
めに異なる表の種々のカラムを結合するようなディスカ
バリ処理によってトリガされるようにしてもよい。本発
明の方法では、結合フラグメントマップは、揮発性メモ
リに記憶されるようにしてもよい。本発明の方法では、
結合フラグメントマップの生成は、明示的ユーザデータ
定義コマンドによってトリガされるようにしてもよい。
本発明の方法では、結合フラグメントマップの生成は、
二つの表の間の参照保全規約の定義によってトリガされ
るようにしてもよい。
【0017】本発明の方法では、簡略化された質問は、
質問からの単一表述語を含まないように構成してもよ
い。本発明の方法では、簡略化された質問は、単一簡略
結合述語を含むように構成してもよい。本発明の方法で
は、第1の表または第2の表からの記録が追加されるか
または変更されたならば結合フラグメントマップを更新
することを更に含むように構成してもよい。本発明の方
法では、最初の質問と同じ結合述語及び少なくとも一つ
の異なる述語を有している新しい質問に対して結合フラ
グメントマップを検索することを更に含むように構成し
てもよい。
【0018】本発明の方法では、最初の質問を適用する
第1の表のフラグメント及び第2の表のフラグメントを
選択するために結合フラグメントマップを使用すること
を更に具備するように構成してもよい。更に、本発明の
上記課題は、リレーショナルデータベース表の質問を実
行すべく動作しかつフラグメントへの表の分離を支持す
るシステムにおいて、第1の表及び第2の表で結合述語
を有している質問を最適化する方法であって、結合述語
を満足させることができる記録を有している第1の表の
フラグメントである第1のフラグメントのセットを識別
し;結合述語を満足させることができる記録を有してい
る第2の表のフラグメントである第2のフラグメントの
セットを識別し;かつ識別されたフラグメントの質問を
実行する段階を具備する方法によって達成される。
【0019】本発明の方法では、第1のフラグメントの
セットは、第1の表フラグメントからの記録を伴う結合
述語を満足させる記録を含む第2の表のフラグメントを
第1の表の各フラグメントに対して識別する結合フラグ
メントマップによって識別されるように構成してもよ
い。本発明の方法では、識別されたフラグメントの質問
を実行する段階は、第1のフラグメントのセットからの
選択したフラグメントからの記録を検索し;第2のフラ
グメントのセットからのフラグメントのサブセットを識
別し、サブセットは、選択したフラグメントを伴う結合
述語を満足させることができる記録を有している第2の
表のフラグメントであり;かつ結合述語を満足させてい
る記録に対してフラグメントのサブセットを走査する段
階を具備してもよい。
【0020】本発明の上記課題は、リレーショナルデー
タベース表の質問を実行すべく動作しかつフラグメント
への表の分離を支持するシステムにおける結合述語を処
理する方法であって、結合フラグメントマップを生成す
べく結合述語を有している簡略化された質問を実行し、
結合フラグメントマップは、第1の表フラグメントから
の記録を伴う結合述語を満足させる記録を含む第2の表
のフラグメントを第1の表の各フラグメントに対して識
別し;結合述語を満足させる記録を有している第1の表
のフラグメントである第1のフラグメントのセットを識
別すべく結合フラグメントマップを使用し;結合述語を
満足させる記録を有している第2の表のフラグメントで
ある第2のフラグメントのセットを識別すべく結合フラ
グメントマップを使用し;第1のフラグメントのセット
からの選択したフラグメントからの記録を検索し;第2
のフラグメントのセットからのフラグメントのサブセッ
トを識別し、サブセットは、選択したフラグメントを伴
う結合述語を満足させる記録を有している第2の表のフ
ラグメントであり;かつ結合述語を満足させる記録に対
してフラグメントのサブセットを走査する段階を具備す
ることを特徴とする方法によって達成される。
【0021】更に、本発明の上記課題は、コンピュータ
読取り可能媒体に存在する、コンピュータプログラムで
あって、第1の表からの各対応するフラグメントに対し
て、第1の表からの対応フラグメントからの記録を伴う
結合述語を満足させる記録を含む第2の表からのフラグ
メントを識別する、結合フラグメントマップを検索する
こと;及び結合述語を満足させることができないフラグ
メントを削除するためにマップを使用することをコンピ
ュータに動作させる命令を備えていることを特徴とする
コンピュータプログラムによって達成される。
【0022】
【作用】一つの形態において、本発明は、結合への応答
を生成するためのコンピュータに実装された方法に向け
られている。結合は、第1の複数のフラグメントを有し
ている第1の表と第2の複数のフラグメントを有してい
る第2の表との間に結合述語を有する。結合フラグメン
トマップは、検索される。結合フラグメントは、第1の
表からの各対応フラグメントに対して、第1の表からの
対応フラグメントからの記録を伴う結合述語を満足させ
る記録を含む第2の表からのフラグメントを識別する。
マップは、結合述語を満足させることができないフラグ
メントを削除するために用いられる。本発明の利点とし
ては以下のものがある。結合質問は、素早く実行されう
るし、かつ他の同様な結合質問の性能は、システムの全
てのユーザに対して改善されうる。
【0023】本発明の更なる利点は、以下の詳細な説明
に示されるであろうし、部分的には説明から自明であろ
うし、また、本発明を実施することによって修得しう
る。本発明の利点は、及び特許請求の範囲において特に
指摘された手段及び組合せにより認識されかつ得られう
る。
【0024】
【実施例】本発明は、データベースシステムが別の表か
らの情報を用いて一つの表からのフラグメントを削除す
ることによって結合の処理を最適化することができる、
“コ・フラグメント削除(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 の列のあらゆる関数であるようなより複雑な何かであ
りうる。
【0025】結合動作の結果は、ユーザに直接戻されう
るかまたはそれがユーザに戻される前に更に処理されう
る。また、結合出力のそのような後続処理は、データベ
ースにおける他のデータ記録を更新し、挿入しまたは削
除する目的のためにも用いられうる。本発明は、結合の
出力に基づいて全てのそのようなアクティビティに適用
される。図1を参照すると、汎用コンピュータシステム
10は、ユーザにデータベースのデータ上で質問を見さ
せかつ実行させるプログラムを走らせる。コンピュータ
システム10は、(パーソナルコンピュータまたはワー
クステーションのような)ディジタル・コンピュータ1
2、ディスプレイ14、(フロッピディスクドライブ、
ハードディスクドライブ、CD−ROMドライブ、また
は磁気光学ディスクドライブのような)マス記憶装置1
6、キーボード18、及びマウス20または(入力タブ
レットのような)他のポインタ装置を含む。コンピュー
タ12は、通常の構成のものでありかつメモリ22、プ
ロセッサ24、及び、メモリバス及び周辺バス(図示省
略)のような、他の慣例のコンポーネントを含む。ま
た、コンピュータ12は、コンピュータシステム10が
それによってコンピュータネットワークを形成すべく通
信リンク(図示省略)にわたり他のコンピュータ(図示
省略)に接続されるような通信ハードウェア及びプログ
ラム(図示省略)も含む。
【0026】コンピュータシステム10は、データを記
憶しかつ処理するためのデータベース30を含む。デー
タベース30は、単一コンピュータに集中化されうる
か、またはそれは、コンピュータネットワークにわたり
分散される。この説明では、データベース管理システム
は、コンピュータ12上で実行されるように示されるけ
れども、一般に、データベース30は、永続的または一
時的のいずれかで、データベースにリンクされたコンピ
ュータ上で実行されるデータベース管理システム38に
よって管理される。本発明は、クレジッドカード会社に
対する情報を記憶するように構成されたデータベースを
用いて説明される。データベース30は、顧客表(“表
R”)32及びトランザクション表(“表S”)34を
伴うリレーショナルデータベースである。更に、データ
ベース30は、結合フラグメントマップ36ビットマッ
プを含む(図5〜6を参照して以下に説明する)。ま
た、データベース30は、オブジェクト、インデックス
表と相互作用しかつ操作するための規律のような、他の
資源、及び質問要求(図示省略)を実行するためのイン
タプリタ(解釈プログラム)を含みうる。
【0027】図2Aを参照すると、顧客表32は、各顧
客に対する記録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のフラグメント
にフラグメントされる。
【0028】図1に戻り、ユーザ(人間またはプログラ
ム)は、データベース30からの情報を検索するために
結合質問を提出しうる。例えば、ユーザは、顧客州フィ
ールドR.state 及びトランザクション州フィールドS.st
ate が同じ値を有するような記録をリストすべくデータ
ベース30に質問しうる。ここで次の質問を考慮する: SELECT * FROM R, S [例3] WHERE R.month > "September" AND R.state = S. state 例2の質問を参照して説明したように、データベースシ
ステムは、既知の単一表技術を適用することによって表
Rから9つのフラグメントを削除することができる。
【0029】他のフラグメントを削除するために、デー
タベースシステムは、結合フラグメントマップ36を生
成またはアクセスする。結合フラグメントマップ36
は、二つの表からのどのフラグメントが結合述語を満足
させることができる記録を含まずかつ質問実行中に探索
される必要がないかを示す。それゆえに、結合フラグメ
ントマップは、データベースの内容及び結合述語の両方
に対して特定である。データベースの内容が変化したな
らば、結合フラグメントマップは、無効になりうる。結
合フラグメント表36は、ビットマップとして、多重フ
ィールド−フラグメントマップとして、または、どの対
のフラグメントが結合述語を満足させることができる記
録を含まないかを示す、フラグメント−フラグメントマ
ップまたは他のデータ構造として記憶されうる。結合フ
ラグメントマップは、質問における二つの表に対して二
つのフィールド−フラグメントマップ60及び70(図
3A及び3B参照)から構成されうる。結合フラグメン
トマップは、リレーショナル、階層構造、オブジェクト
指向型、または非リレーショナルデータベースを用いて
いるデータベースシステムで実行されうる。
【0030】図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のフラグメント番号を含みうる。
【0031】図3Aを参照して、データベースシステム
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)からの記録にマッチするということを決定しうる。
【0032】図4を参照すると、結合フラグメントマッ
プは、二つのフラグメントマップ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の最初の二つの行だけを組み合わせ
ることによって生成された。
【0033】図5を参照すると、フィールド−フラグメ
ントマップ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つのフラグメント以
外の全てを削除することができる。
【0034】コ・フラグメント削除の後、データベース
システムは、表Rの二つのフラグメントにおける各記録
に対して表Sの9つのフラグメントだけを探索しなけら
ばならない。対照的に、従来の技術では、表Sの全ての
52のフラグメントは、表Rの3つのフラグメントにお
ける各記録に対して探索される。一般的に用いられ結合
方法は、ハッシュ結合方法、ソフトマージ結合方法、及
びネステッド・ループ方法である。後者は、インデック
スでまたはインデックスなしで実行されうる。本発明
は、いずれの結合方法にも適用される。特許請求の範囲
の目的に対して、用語“サーチング”は、一つの特定の
結合方法の使用を意味しない。ビットマップ90は、可
逆的である。即ち、(単一表述語に基づいて)表Sから
削除されたフラグメントは、ビットマップ90で、表S
の削除されたフラグメントにだけ結合する表Rからのフ
ラグメントを削除するために用いることができる。
【0035】また、ビットマップ90は、フラグメント
を動的に削除するために質問の実行でも使用することが
できる。再び、例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番目のフラグメントだけが走
査される必要がある。
【0036】ビットマップの生成は、多くの方法でトリ
ガすることができる。質問最適化装置は、質問処理戦略
としてビットマップを生成すべく決定できる。ユーザ
は、インデックスの生成と同様な方法で所与のデータベ
ースに対してデータ定義言語を用いてビットマップを明
示的に生成できる。データベースシステムは、外部キー
関係が完全性拘束条件として特定されるときにビットマ
ップを潜在的に生成することができる。システムは、ス
パースビットマップをもたらす表間の結合に対して徹底
的に探索できる。これらの場合の全てにおいて、システ
ムは、合成ビットマップの期待スパース性を確認するた
めにサンプリングを用いることができる。スパース性
は、マッチングタプルを有する2つの表からのフラグメ
ントを示しているビットマップにおいてオンにされるビ
ットの割合である。
【0037】ビットマップ90を生成(または構築)す
るために、データベースシステムは、最初の質問に基づ
いて“簡略化された質問”を実行する。簡略化された質
問は、最初の質問と同じ結合述語を含むが、単一表述語
を全く含まない。例えば、例3の質問に対する簡略化さ
れた質問は: SELECT R.fragment#, S.fragment# FROM R, S [例4] WHERE R.state = S.state 簡略化された質問を実行することは、マッチング記録を
含む各表からの対応フラグメント番号を戻す。ビットマ
ップ90は、上述した中間結合マップ80を生成するこ
となく、直接的に生成されうる。簡略化された質問が実
行される速さを増大するために種々の技術を用いうる。
第1及び第2の表からの記録の必要なフィールドは、表
自信よりも表インデックスのリーブ(葉)から検索され
ることが好ましい。更に、それらが存在するならば、列
インデックスを用いることができる。別の例として、フ
ラグメンテーションスキームからの情報を用いうる。簡
略化された質問のある一定の実行の下で、一度マッチ
が、二つの表からのフラグメント間で行われたならば、
他の記録は、同じマッチに対して検索する必要がない。
【0038】ビットマップがあまりにも充填されている
ならば、ビットマップの生成は、取り止められうる、即
ち、非スパーズであり、第1の表のフラグメントからの
記録が、第2の表からのフラグメントの大きな割合で対
応マッチング記録を有するということを示している。サ
ンプリングは、ビットマップが十分にスパースであるか
否かの早期決定に到着すべくビットマップを構築する目
的に対して第1及び第2の表の両方で用いられる。ビッ
トマップは、データベースに対して不揮発性メタデータ
に記憶されるのとは反対に揮発性メモリにだけ記憶され
うる。ビット90を構築するために性能費用がある。特
に、簡略化された質問を実行しかつ結果のビットマップ
を記憶するための費用がある。従って、データベースシ
ステムは、ビットマップがビットマップを構築するため
の費用を保証するために性能において十分なゲインを供
給するかどうかを決定しなければならない。一般的に、
ビットマップは、それが、例えば、連続した質問におい
て、二度以上用いることができるならば最大の利益を供
給することができる。
【0039】ビットマップが生成されるときにはいつで
も、ビットマップがシステムしきい値と比較して十分に
スパースでないならば、システムは、ビットマップを再
生成する不必要な後続の試みを回避するためにデータベ
ースのメタデータ定義においていつまでもその事実を記
憶している。フラグメント結合マップは、ユーザがマッ
プを十分にスパースにするためにデータを明示的にフラ
グメントするときに用いられうる。また、それは二つの
表の間のデータが潜在的に“相関される”ならば、十分
なスパース・コ・フラグメンテーションマップを結果と
して生ずるように用いることもできる。データベースシ
ステムは、表、列、及び結合述語の各組合せに対して異
なるビットマップ90を必要とする。例えば、以下の二
つの質問に対して個別のビットマップを必要とするであ
ろう: SELECT * FROM R, S WHERE R.state = S.state [例5] SELECT * FROM R, S WHERE R.state < S.state [例6] しかしながら、質問が同じ結合述語を用いるが異なる単
一表述語を含むならば、同じビットマップを用いること
ができる。
【0040】質問が複数の結合述語を含むならば、フラ
グメント結合マップは、複数の結合マップにおける各サ
ンプル結合に対して生成されうる。例えば、もし質問が 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を適用することによって生成することが
できる。
【0041】一般に、データベースは、多重結合述語を
扱うことができる。例えば、質問が: であるならば、データベースシステムは、組み合わされ
た全ての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”に対するビットマッ
プである。
【0042】上述したように、ビットマップB1は、表R
及び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に
おいて新たに削除されたフラグメントを用いる。データ
ベースシステムは、いずれの表からもはやフラグメント
を削除することができなくなるまでこの手順を繰り返し
続ける。
【0043】その手順が記憶することができかつ後で用
いることができる(“簡略化されたビットマップ質問”
を用いてそれを明示的に構築することなしに)ビットマ
ップB3を発生することを結果として生ずるので、表Rと
Tの間の結合質問が共通であるならば、データベースシ
ステムは、前の手順を選ぶべきである。他方、データベ
ースシステムは、表RとTの間の結合質問が相対的に稀
でありビットマップB3を維持することのオーバーヘッド
を保証しないならば、後者の手順を選ぶべきである。結
合フラグメントマップが実際の結合質問の結果から生成
されるので、即ち、マップが表における実際のデータに
依存するので、その有用性は、基礎をなしている表が変
更される場合に消滅するかあるいは破壊される。
【0044】記録が一つのまたは両方の表から削除され
ても、ビットマップをまだ使用することができる。デー
タベースシステムがもはやマッチング記録を有していな
いフラグメントを探索するので、性能は理想よりも低く
なるであろう。記録が一つのまたは両方の表において追
加されたかまたは更新されたならば、ビットマップの完
全性は、破壊されうる。フラグメントを更新する前まで
は認可されなかったが、追加されたかまたは変更された
値がマッチング記録を含むものとしてフラグメントをこ
こで認めるならば、ビットマップの完全性が違反されて
しまう。それゆえに、データベースシステムは、システ
ムが変更されたかまたは新たな記録に対抗して述語をチ
ェックしない限り記録が追加または更新されたときには
いつでもビットマップの完全性が違反されると想定しな
けらばならない。
【0045】ビットマップを無効にする更新が生じた場
合、システムは、ビットマップの完全性を増加的に更新
しかつ維持することを決定できる。代替的に、システム
は、ビットマップを無効にしかつそれを再生成すること
を決定できる。そのようなビットマップの再生成は、ビ
ットマップが最適化装置によって必要と思われる次の瞬
間に、即にかまたはユーザによる特定の、手動によるコ
マンド(命令)の結果としてのいずれかにより達成する
ことができる。ビットマップの完全性が破壊されたとき
に、将来の質問で用いることができる前にそれは、復元
されなけらばならない。先に示したように、ビットマッ
プ90を変更するために費用がかかり、かつそれを廃棄
しかつ再生成することに費用がかかる。データベースシ
ステムは、二つの代替のより良い方を選択すべくビット
マップを変更または再生成するために必要な時間を推測
しうる。例えば、データベースシステムに対して小さな
増分変化が行われたならば、ビットマップは、変更され
るであろうし、データベースにおいてより多くの数の変
化が行われたならば、ビットマップは、再生成されるで
あろう。
【0046】図6を参照すると、データベースシステム
は、最適化装置110、ビットマップ発生装置170、
辞書管理装置190、及び実行装置200を含んでいる
複数のソフトウェアサブシステムを含む。サブシステム
は、ビットマップを生成しかつ使用すべく相互作用す
る。最適化装置110は、コ・フラグメント削除を実行
するためにビットマップに対する必要性を認識し、ビッ
トマップを構築させる事象をトリガし、かつフラグメン
トを削除するためにビットマップを用いる。ビットマッ
プ発生装置170は、ビットマップを生成するために質
問を形成し、簡略化された質問を実行し、結果からフラ
グメント番号を収集し、そして収集したフラグメント番
号からビットマップを生成する。辞書管理装置190
は、他の質問及びユーザにアクセスさせるべくビットマ
ップをグローバル的にアクセス可能な不揮発性記憶装置
に保存し、要求によりビットマップを最適化装置に供給
する。更に、辞書管理装置190は、先のビットマップ
を無効にする基礎をなしている表の一つまたは両方に対
してデータ変更が発生したならば、無効としてビットマ
ップに印を付ける。実行装置200は、結合述語の実行
中に動的コ・フラグメント削除を実行するためにビット
マップを用いる。
【0047】図7を参照すると、ユーザからの質問を処
理するためにデータベースシステムによって用いられる
方法100が示されている。まず、データベースシステ
ムは、最適化装置を参照して以下に説明するように、質
問を最適化する(ステップ102)。次に、データベー
スシステムは、表の一つのアクティブフラグメントを走
査する(ステップ104)。可能ならば、データベース
システムは、同時にフラグメントを走査すべきである。
結合述語は、走査中に受け取った各記録に対して実行さ
れる(ステップ106)。一度結合述語の実行が終了し
たならば、処理が完了する。図8を参照すると、最適化
装置は、例2を参照して先に説明したように、単一表質
問述語を用いて両方の表R及びS上で単一表フラグメン
ト削除を実行する(ステップ112)。
【0048】次いで、データベースシステムは、新しい
ビットマップが生成されるべきかかどうかを決定する
(ステップ114)。ユーザは、コマンドを挿入するこ
とによりまたはデフォルトを設定するこによってデータ
ベースシステムにビットマップを生成することを強制す
る。代替的に、ユーザは、データベースシステムにビッ
トマップが生成されるべきかどうかを決定させる。この
場合には、データベースシステムは、ビットマップを構
築する費用が利益の価値があるかどうかを決定する。特
に、通常の技術を用いて、コンピュータシステムは、簡
略化された質問を実行し、ビットマップを生成し、ビッ
トマップを記憶し、かつビットマップを用いて質問を実
行する時間の長さを推測し、かつビットマップなしで質
問を実行するために推測した時間の長さとその時間を比
較する。
【0049】ビットマップが必要であるならば、データ
ベース管理システムは、ビットマップが質問に対して利
用可能であるかどうかを決定する(ステップ115)。
ビットマップは、それが現行質問の結合述語に正確にマ
ッチする結合述語によって生成され、かつビットマップ
の完全性が違反されていないときにだけ利用可能である
と考えられうる。ビットマップが必要であるならば、最
適化装置は、ビットマップ発生装置を呼出す(ステップ
116)。ビットマップを生成するためにビットマップ
発生装置を呼び出した後、またはステップ115で決定
されたようにビットマップが既に利用可能であるなら
ば、最適化装置は、ビットマップを取り出し(ステップ
117)、かつ表Rのような、表の一つを最適化するた
めにサブルーチンを呼出す(ステップ118)。
【0050】図9を参照して、データベースシステム
は、表Rを最適化するための方法120を含む。データ
ベースシステムは、インアクティブとしてステップ11
2における単一表述語を用いて表Rから削除されたフラ
グメントに印を付け、かつアクティブとして残りのフラ
グメントに印を付けることによって始動する(ステップ
122)。次いで、表Rは、インアクティブとして印が
付けられる(ステップ124)。ビットマップは、次い
で、表Sのどのフラグメントが、もしあれば、表Rから
の各アクティブフラグメントに結合するかということを
決定するために用いられる。データベースシステムは、
表Rからの各アクティブフラグメントを検査するために
ループを入力する(ステップ128)。データベースシ
ステムは、表Rからのフラグメントが表Sのフラグメン
トからの記録を伴う結合述語を満足させる記録を含むか
どうかを決定するためにビットマップを用いる(ステッ
プ130)。マッチが存在しないならば、表Rからのフ
ラグメントは、インアクティブとして印が付けられる
(ステップ132)。他方、マッチが存在すれば、フラ
グメントは、アクティブのままであり表Rは、また、ア
クティブと印を付けられる(ステップ134)。一度、
表Rからの最後のアクティブフラグメントが検査された
ならば、データベースシステムは、表Sを最適化すべく
サブルーチンに進む(ステップ136)。
【0051】図10を参照すると、データベースシステ
ムは、表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)。一度、両方
の表におけるフラグメントがが検査され、いずれかの表
がインアクティブとして印を付けられたならば、質問
は、それがゼロの記録を戻すように、一時停止できる。
【0052】一度表Sからの最後のアクティブフラグメ
ントが検査されたならば、データベースプログラムは、
フラグをチェックする(ステップ164)。表Sからの
あるフラグがビットマップを用いて削除されているの
で、表Sからの新たに削除されたフラグメントは、表R
からのフラグメントのあるものを削除することを試みる
ために用いることができる。従って、フラグが“真”に
設定されるならば、データベースシステムは、表Rを最
適化するための方法120に戻る(ステップ166)。
一度サブルーチン120が終了したならば、表Rからの
新しく削除されたフラグメントは、表Sからの更なるフ
ラグメントを削除するために用いられる。それゆえに、
データベースシステムは、もはやフラグメントが削除で
きなくなるまでサブルーチン120と140の間を交互
にする。この時点ではフラグは、“フォールス”に設定
されかつデータベースシステムは、質問の実行を行うた
めに最適化装置に戻る(ステップ168)。
【0053】図9に戻り、サブルーチン120がサブル
ーチン140から呼び出されかつ追加フラグが表Rから
インアクティブとして印を付けられたならば、ステップ
136においてデータベースシステムは、表Sを最適化
するためにサブルーチン140に進むより最適化装置に
戻る。図11を参照すると、ビットマップ発生装置17
0は、それが構築されている間に破損されることからビ
ットマップを防ぐべく両方の表をロックすることによっ
て始動する(ステップ172)。次いで、簡略化された
質問が構築される(ステップ174)。簡略化された質
問は、ユーザによって与えられた質問と同じ結合述語を
含むが、全ての単一表述語は、除去される。簡略化され
た質問は、実行され、かつ両方の表からのフラグメント
番号は、二つのフィールド−フラグメント表(例えば、
フラグメント表60及び70)を供給するために質問結
果から収集される(ステップ176)。次いで、フィー
ルド−フラグメント表60及び70からのフラグメント
番号は、ビットマップ90を構築するために用いられる
(ステップ178)。最後に、辞書管理装置サブルーチ
ン190が呼び出され(ステップ180)、ロックが解
除れ、かつデータベースシステムは、最適化装置に戻る
(ステップ182)。
【0054】図12を参照すると、辞書管理装置190
は、先のビットマップが現行の質問の結合述語に対して
生成されたかどうかを決定することによって始動する
(ステップ192)。先のビットマップが存在するなら
ば、古いビットマップは、廃棄され(ステップ194)
かつ新しいビットマップが保存される(ステップ19
6)。この質問に対して古いビットマップが存在しない
ならば、先のビットマップを廃棄する段階は、省略され
る。最後に、データベースシステムは、ビットマップ発
生装置サブルーチンに戻る(ステップ198)。13を
参照することにより、実行装置200は、データベース
システムがステップ106において結合述語を実行する
ときに呼び出される(図7参照)。簡単に言うと、実行
装置は、表の一つのアクティブフラグメントからの記録
を受け取る。実行装置は、走査されるべき他の表からの
フラグメントを識別するためにフラグメント番号及びビ
ットマップを用いる。実行装置は、それらのフラグメン
トを走査し、フラグメントからのマッチング記録を収集
し、かつマッチング記録をユーザに戻す。実行装置は、
一つの表Rのアクティブフラグメントからの記録を受け
取ることによって始動する(ステップ202)。記録
は、表RとSが以下に説明する動作において切り替えう
るけれども、この例では表Rから受け取られる。次い
で、データベースシステムは、マッチング記録に対して
走査されるべき表Sのフラグメントを識別するために結
合フラグメントマップを用いる(ステップ204)。特
に、結合フラグメントマップがビットマップであるなら
ば、データベースシステムは、フラグメントのその対が
結合述語を満足させる記録を含むかどうかを決定すべく
表Rのフラグメント番号に等しい行及び表Sのフラグメ
ント番号に等しい列におけるビットをアクセスする。表
Sの識別されたフラグメントは、結合述語を満足させる
記録に対して走査される(ステップ206)。これらの
記録は、収集され(ステップ208)かつユーザに戻さ
れる(ステップ210)。最後に、完了メッセージがユ
ーザに送られ(ステップ212)かつ実行装置が終了す
る(ステップ214)。
【0055】線形処理として説明されたけれども、実行
装置200の方法は、表Sからの各アクティブフラグメ
ントが検査されるようなループされた処理で実行するこ
とができ、ビットマップは、フラグメントが走査される
べきかどうかを決定するために用いられ、フラグメント
は、走査され(それがマッチング記録を含んでいるもの
と想定する)かつ結合述語を満足させる記録は、ユーザ
に戻され、そして処理は、次のアクティブフラグメント
に進む。本発明は、ソフトウェア実装により説明された
が、本発明は、ソフトウェアまたはハードウェアまたは
ファームウェア、またはそれら3つの組合せで実現され
うる。本発明は、実施例により説明されたが、本発明
は、提示しかつ説明した実施例に限定されるものではな
い。それよりも、本発明の範疇は、特許請求の範囲によ
って画定される。
【0056】
【発明の効果】本発明の方法は、第1の複数のフラグメ
ントを有する第1の表と第2の複数のフラグメントを有
する第2の表との間に結合述語を有している結合への応
答を生成するためのコンピュータに実装された方法であ
って、第1の表からの各対応フラグメントに対して、第
1の表からの対応フラグメントからの記録を伴う結合述
語を満足させる記録を含む第2の表からのフラグメント
を識別する、結合フラグメントマップを検索し;かつ結
合述語を満足させることができないフラグメントを削除
するためにマップを用いる段階を具備するので、結合質
問が素早く実行されうるし、かつ他の同様な結合質問の
性能がシステムの全てのユーザに対して改善されうる。
【0057】本発明の方法は、第1の複数のフラグメン
トを有する第1の表と第2の複数のフラグメントを有す
る第2の表との間の結合を処理するためのコンピュータ
に実装された方法であって、第1の表からの各対応フラ
グメントに対して、第1の表からの対応フラグメントか
らの記録を伴う結合の結合述語を満足させる記録を含む
第2の表からのフラグメントを識別する、結合フラグメ
ントマップを検索し;マップを適用することによって結
合述語を満足させる記録を有することが可能なフラグメ
ントを識別し;かつ識別されたフラグメント上の結合を
実行する段階を具備ので、結合質問が素早く実行されう
るし、かつ他の同様な結合質問の性能がシステムの全て
のユーザに対して改善されうる。本発明の方法は、デー
タベース表の質問を実行すべく動作しかつフラグメント
への表の分離を支持するシステムにおいて、第1の表及
び第2の表に結合演算を適用するためのコンピュータに
実装された方法であって、第1の表フラグメントからの
記録を伴う結合述語を満足させる記録を含む第2の表の
それらのフラグメントを第1の表の各フラグメントに対
して識別し;質問の単一表述語を満足させる記録を有す
る第1の表からの第1のフラグメントのセットを識別
し;マップを適用することによって第1のフラグメント
のセットからの記録を伴う結合述語を満足させる記録を
含む第2の表からの第2のフラグメントのセットを識別
し;かつ第1のフラグメントのセット及び第2のフラグ
メントのセット上の質問を実行する段階を具備するの
で、結合質問が素早く実行されうるし、かつ他の同様な
結合質問の性能がシステムの全てのユーザに対して改善
されうる。
【0058】本発明の方法は、第1の複数のフラグメン
トを有する第1の表と第2の複数のフラグメントを有す
る第2の表との間の結合を処理するためのコンピュータ
に実装された方法であって、第1の表からの各対応フラ
グメントに対して、第1の表からの対応フラグメントか
らの記録を伴う結合の結合述語を満足させる記録を含む
第2の表からのフラグメントを識別する、マップを検索
し;第1の表から記録を受け取り;受け取った記録のフ
ラグメントを伴う結合述語を満足させる第2の表からの
フラグメントのセットを識別するためにマップを使用
し;かつ受け取った記録を伴う結合述語を満足させる記
録に対して識別されたフラグメントのセットを走査する
段階を具備するので、結合質問が素早く実行されうる
し、かつ他の同様な結合質問の性能がシステムの全ての
ユーザに対して改善されうる。
【0059】本発明の方法は、データベース表の質問を
実行すべく動作しかつフラグメントへの表の分離を支持
するシステムにおいて、第1の表及び第2の表に結合演
算を適用するためのコンピュータに実装された方法であ
って、第1の表フラグメントからの記録を伴う結合述語
を満足させる記録を含む第2の表のそれらのフラグメン
トを第1の表の各フラグメントに対して識別しかつマッ
プに識別を記憶し;質問の単一表述語を満足させる記録
を有する第1の表からの第1のフラグメントのセットを
識別し;第1の表から記録を受け取り;マップを適用す
ることによって受け取った記録を伴う結合述語を満足さ
せる記録を有する第2の表からのフラグメントのセット
を識別し;かつ受け取った記録を伴う結合述語を満足さ
せる記録に対する識別されたフラグメントのセットを走
査する段階を具備するので、結合質問が素早く実行され
うるし、かつ他の同様な結合質問の性能がシステムの全
てのユーザに対して改善されうる。
【0060】本発明の方法は、フラグメントへの表の分
離を支持するデータベースシステムにおいて、第1の表
及び第2の表に結合述語を有している結合を最適化する
方法であって、結合フラグメントマップを生成すべく結
合述語を有している簡略化された質問を実行する段階を
具備し、結合フラグメントマップは、第1の表フラグメ
ントからの記録を伴う結合述語を満足させる記録を含む
第2の表のフラグメントを第1の表の各フラグメントに
ついて識別するので、結合質問が素早く実行されうる
し、かつ他の同様な結合質問の性能がシステムの全ての
ユーザに対して改善されうる。本発明の方法は、リレー
ショナルデータベース表の質問を実行すべく動作しかつ
フラグメントへの表の分離を支持するシステムにおい
て、第1の表及び第2の表で結合述語を有している質問
を最適化する方法であって、結合述語を満足させること
ができる記録を有している第1の表のフラグメントであ
る第1のフラグメントのセットを識別し;結合述語を満
足させることができる記録を有している第2の表のフラ
グメントである第2のフラグメントのセットを識別し;
かつ識別されたフラグメントの質問を実行する段階を具
備するので、結合質問が素早く実行されうるし、かつ他
の同様な結合質問の性能がシステムの全てのユーザに対
して改善されうる。
【0061】本発明の方法は、リレーショナルデータベ
ース表の質問を実行すべく動作しかつフラグメントへの
表の分離を支持するシステムにおける結合述語を処理す
る方法であって、結合フラグメントマップを生成すべく
結合述語を有している簡略化された質問を実行し、結合
フラグメントマップは、第1の表フラグメントからの記
録を伴う結合述語を満足させる記録を含む第2の表のフ
ラグメントを第1の表の各フラグメントに対して識別
し;結合述語を満足させる記録を有している第1の表の
フラグメントである第1のフラグメントのセットを識別
すべく結合フラグメントマップを使用し;結合述語を満
足させる記録を有している第2の表のフラグメントであ
る第2のフラグメントのセットを識別すべく結合フラグ
メントマップを使用し;第1のフラグメントのセットか
らの選択したフラグメントからの記録を検索し;第2の
フラグメントのセットからのフラグメントのサブセット
を識別し、サブセットは、選択したフラグメントを伴う
結合述語を満足させる記録を有している第2の表のフラ
グメントであり;かつ結合述語を満足させる記録に対し
てフラグメントのサブセットを走査する段階を具備する
ので、結合質問が素早く実行されうるし、かつ他の同様
な結合質問の性能がシステムの全てのユーザに対して改
善されうる。
【0062】本発明のコンピュータプログラムは、コン
ピュータ読取り可能媒体に存在する、コンピュータプロ
グラムであって、第1の表からの各対応するフラグメン
トに対して、第1の表からの対応フラグメントからの記
録を伴う結合述語を満足させる記録を含む第2の表から
のフラグメントを識別する、結合フラグメントマップを
検索すること;及び結合述語を満足させることができな
いフラグメントを削除するためにマップを使用すること
をコンピュータに動作させる命令を備えているので、結
合質問が素早く実行されうるし、かつ他の同様な結合質
問の性能がシステムの全てのユーザに対して改善されう
る。
【図面の簡単な説明】
明細書に組み込まれかつ明細書の一部を構成する、添付
した図面は、本発明を概略的に示し、かつ上記した一般
的な説明及び以下に示した詳細な説明と共に、本発明の
原理を説明するために役立つ。
【図1】本発明によるプログラマブルでかつリレーショ
ナルデータベースを含んでいる汎用コンピュータシステ
ムを示す図である。
【図2A】図1のリレーショナルデータベースの表を示
す図である。
【図2B】図1のリレーショナルデータベースの表を示
す図である。
【図3A】図2Aの表のフラグメントマップを示す図で
ある。
【図3B】図2Bの表のフラグメントマップを示す図で
ある。
【図4】本発明による結合マップを示す図である。
【図5】図4の結合マップから導出されたビットマップ
を示す図である。
【図6】データベース管理システムのコンポーネントを
示す図である。
【図7】結合質問の処理のフロー図です。
【図8】本発明による結合質問を最適化する方法のフロ
ー図である。
【図9】本発明による結合質問を最適化する方法のフロ
ー図である。
【図10】本発明による結合質問を最適化する方法のフ
ロー図である。
【図11】本発明による結合ビットマップを生成する方
法のフロー図である。
【図12】本発明による結合ビットマップを生成する方
法のフロー図である。
【図13】本発明による質問を実行する方法のフロー図
である。
【符号の説明】
10 汎用コンピュータシステム 12 ディジタル・コンピュータ 14 ディスプレイ 16 マス記憶装置16 18 キーボード18 20 マウス 22 メモリ 24 プロセッサ 30 データベース 32 顧客表(“表R”) 34 トランザクション表(“表S”) 36 結合フラグメントマップ 38 データベース管理システム
フロントページの続き (72)発明者 アヌーラグ カシャップ アメリカ合衆国 カリフォルニア州 94555 フリーモント ユーカリプタス テラス 34340 (72)発明者 ロバート ハワード ガーバー アメリカ合衆国 オレゴン州 97229 ポ ートランド ノースウェスト デュマー レーン 12015 (72)発明者 ポール シャーウッド テイラー アメリカ合衆国 カリフォルニア州 94602 レッドウッド シティー アイリ ス ストリート 406 (72)発明者 スコット アレン シャーツ アメリカ合衆国 オレゴン州 97006 ア ロハサウスウェスト オルダーウッド ド ライヴ 18625 (72)発明者 シェンソン ニー アメリカ合衆国 オレゴン州 97223 タ イガード サウスウェスト サンデュー ドライヴ 15912 (72)発明者 プラカシュ スンダレサン アメリカ合衆国 オレゴン州 97225 ポ ートランド サウスウェスト エイティナ インス アベニュー 2920

Claims (35)

    【特許請求の範囲】
  1. 【請求項1】 第1の複数のフラグメントを有する第1
    の表と第2の複数のフラグメントを有する第2の表との
    間に結合述語を有している結合への応答を生成するため
    のコンピュータに実装された方法であって、 前記第1の表からの各対応フラグメントに対して、前記
    第1の表からの前記対応フラグメントからの記録を伴う
    前記結合述語を満足させる記録を含む前記第2の表から
    のフラグメントを識別する、結合フラグメントマップを
    検索し;かつ前記結合述語を満足させることができない
    フラグメントを削除するためにマップを用いる段階を具
    備することを特徴とする方法。
  2. 【請求項2】 第1の複数のフラグメントを有する第1
    の表と第2の複数のフラグメントを有する第2の表との
    間の結合を処理するためのコンピュータに実装された方
    法であって、 前記第1の表からの各対応フラグメントに対して、前記
    第1の表からの前記対応フラグメントからの記録を伴う
    前記結合の結合述語を満足させる記録を含む前記第2の
    表からのフラグメントを識別する、結合フラグメントマ
    ップを検索し;前記マップを適用することによって前記
    結合述語を満足させる記録を有することが可能なフラグ
    メントを識別し;かつ前記識別されたフラグメント上の
    前記結合を実行する段階を具備することを特徴とする方
    法。
  3. 【請求項3】 前記結合の単一表述語を満足させる前記
    第1の表からの第1のフラグメントのセットを識別する
    段階を更に具備することを特徴とする請求項2に記載の
    方法。
  4. 【請求項4】 フラグメントを識別する段階は、前記フ
    ラグメントの第1のセットを伴う前記結合述語を満足さ
    せる前記第2の表からの第2のフラグメントのセットを
    識別するために前記マップを含むことを特徴とする請求
    項3に記載の方法。
  5. 【請求項5】 前記質問を実行する段階は、前記第1の
    フラグメントのセット及び前記第2のフラグメントのセ
    ット上で該質問を実行することを含むことを特徴とする
    請求項4に記載の方法。
  6. 【請求項6】 フラグメントを識別する段階は、前記結
    合述語を満足させうる前記第1の表からの第1のフラグ
    メントのセットを識別するために前記マップを含むこと
    を特徴とする請求項2に記載の方法。
  7. 【請求項7】 フラグメントを識別する段階は、前記第
    1のフラグメントのセットを伴う前記結合述語を満足さ
    せうる前記第2の表からの第2のフラグメントのセット
    を識別するために前記マップを用いることを更に含むこ
    とを特徴とする請求項6に記載の方法。
  8. 【請求項8】 フラグメントを識別する段階は、前記第
    2のフラグメントのセットを伴う前記結合述語を満足さ
    せうる前記第1のフラグメントのセットのサブセットを
    識別するために前記マップを用いることを更に含むこと
    を特徴とする請求項7に記載の方法。
  9. 【請求項9】 フラグメントを識別する段階は、前記第
    1のフラグメントのセットを伴う前記結合述語を満足さ
    せうる前記第2のフラグメントのセットのサブセットを
    識別するために前記マップを用いることを更に含むこと
    を特徴とする請求項8に記載の方法。
  10. 【請求項10】 前記サブセットを識別する段階は、更
    なるフラグメントが削除されなくなるまで繰り返される
    ことを特徴とする請求項9に記載の方法。
  11. 【請求項11】 データベース表の質問を実行すべく動
    作しかつフラグメントへの表の分離を支持するシステム
    において、第1の表及び第2の表に結合演算を適用する
    ためのコンピュータに実装された方法であって、 前記第1の表フラグメントからの記録を伴う前記結合述
    語を満足させる記録を含む前記第2の表のそれらのフラ
    グメントを前記第1の表の各フラグメントに対して識別
    し;前記質問の単一表述語を満足させる記録を有する前
    記第1の表からの第1のフラグメントのセットを識別
    し;前記マップを適用することによって前記第1のフラ
    グメントのセットからの記録を伴う前記結合述語を満足
    させる記録を含む第2の表からの第2のフラグメントの
    セットを識別し;かつ前記第1のフラグメントのセット
    及び前記第2のフラグメントのセット上の前記質問を実
    行する段階を具備することを特徴とする方法。
  12. 【請求項12】 第1の複数のフラグメントを有する第
    1の表と第2の複数のフラグメントを有する第2の表と
    の間の結合を処理するためのコンピュータに実装された
    方法であって、 前記第1の表からの各対応フラグメントに対して、前記
    第1の表からの前記対応フラグメントからの記録を伴う
    前記結合の結合述語を満足させる記録を含む前記第2の
    表からのフラグメントを識別する、マップを検索し;前
    記第1の表から記録を受け取り;前記受け取った記録の
    前記フラグメントを伴う前記結合述語を満足させる前記
    第2の表からのフラグメントのセットを識別するために
    前記マップを使用し;かつ前記受け取った記録を伴う前
    記結合述語を満足させる記録に対して前記識別されたフ
    ラグメントのセットを走査する段階を具備することを特
    徴とする方法。
  13. 【請求項13】 前記結合述語を満足させる記録を含む
    フラグメントを選択するために前記マップを使用するこ
    とを更に具備し、かつ前記受け取り、使用及び走査段階
    は、前記選択したフラグメントの全ての記録に適用され
    ることを特徴とする請求項12に記載の方法。
  14. 【請求項14】 データベース表の質問を実行すべく動
    作しかつフラグメントへの表の分離を支持するシステム
    において、第1の表及び第2の表に結合演算を適用する
    ためのコンピュータに実装された方法であって、 前記第1の表フラグメントからの記録を伴う前記結合述
    語を満足させる記録を含む前記第2の表のそれらのフラ
    グメントを前記第1の表の各フラグメントに対して識別
    しかつマップに前記識別を記憶し;前記質問の単一表述
    語を満足させる記録を有する前記第1の表からの第1の
    フラグメントのセットを識別し;前記第1の表から記録
    を受け取り;前記マップを適用することによって前記受
    け取った記録を伴う結合述語を満足させる記録を有する
    前記第2の表からのフラグメントのセットを識別し;か
    つ前記受け取った記録を伴う前記結合述語を満足させる
    記録に対する前記識別されたフラグメントのセットを走
    査する段階を具備することを特徴とする方法。
  15. 【請求項15】 フラグメントへの表の分離を支持する
    データベースシステムにおいて、第1の表及び第2の表
    に結合述語を有している結合を最適化する方法であっ
    て、 結合フラグメントマップを生成すべく前記結合述語を有
    している簡略化された質問を実行する段階を具備し、前
    記結合フラグメントマップは、前記第1の表フラグメン
    トからの記録を伴う前記結合述語を満足させる記録を含
    む前記第2の表のフラグメントを前記第1の表の各フラ
    グメントについて識別することを特徴とする方法。
  16. 【請求項16】 前記結合フラグメントマップは、前記
    第1の表フラグメントからの記録を伴う前記結合述語を
    満足させる記録を含む前記第2の表のフラグメントを前
    記第1の表の各フラグメントについてリストすることを
    特徴とする請求項15に記載の方法。
  17. 【請求項17】 前記結合フラグメントマップは、前記
    第1の表及び前記第2の表からの各対のフラグメントに
    対するビットを有しているビットマップであることを特
    徴とする請求項15に記載の方法。
  18. 【請求項18】 前記ビットマップを圧縮することを更
    に含むことを特徴とする請求項17に記載の方法。
  19. 【請求項19】 前記第1の表から第1のフラグメント
    を選択し、前記第2の表から第2のフラグメントを選択
    し、かつフラグメントのペアリングが前記結合述語を満
    足させる記録を含むかどうかを決定すべく前記第1のフ
    ラグメントと第2のフラグメントの前記ペアリングに対
    応するビットをチェックすることを更に含むことを特徴
    とする請求項17に記載の方法。
  20. 【請求項20】 前記ビットマップの生成は、当該ビッ
    トマップがいっぱいになったならば打ち切られることを
    特徴とする請求項17に記載の方法。
  21. 【請求項21】 前記第1及び第2の表は、前記ビット
    マップが十分にスパースであるかどうかを決定すべくサ
    ンプルされることを特徴とする請求項17に記載の方
    法。
  22. 【請求項22】 前記ビットマップの生成は、サーバ
    が、オンにされたスパースな数のビットを有するビット
    マップを探し出すために異なる表の種々のカラムを結合
    するようなディスカバリ処理によってトリガされること
    を特徴とする請求項17に記載の方法。
  23. 【請求項23】 結合フラグメントマップは、揮発性メ
    モリに記憶されることを特徴とする請求項15に記載の
    方法。
  24. 【請求項24】 結合フラグメントマップの前記生成
    は、明示的ユーザデータ定義コマンドによってトリガさ
    れることを特徴とする請求項15に記載の方法。
  25. 【請求項25】 結合フラグメントマップの前記生成
    は、二つの表の間の参照保全規約の定義によってトリガ
    されることを特徴とする請求項15に記載の方法。
  26. 【請求項26】 前記簡略化された質問は、前記質問か
    らの単一表述語を含まないことを特徴とする請求項15
    に記載の方法。
  27. 【請求項27】 前記簡略化された質問は、単一簡略結
    合述語を含むことを特徴とする請求項15に記載の方
    法。
  28. 【請求項28】 前記第1の表または前記第2の表から
    の記録が追加されるかまたは変更されたならば前記結合
    フラグメントマップを更新することを更に含むことを特
    徴とする請求項15に記載の方法。
  29. 【請求項29】 最初の質問と同じ結合述語及び少なく
    とも一つの異なる述語を有している新しい質問に対して
    前記結合フラグメントマップを検索することを更に含む
    ことを特徴とする請求項15に記載の方法。
  30. 【請求項30】 前記最初の質問を適用する前記第1の
    表のフラグメント及び前記第2の表のフラグメントを選
    択するために前記結合フラグメントマップを使用するこ
    とを更に具備することを特徴とする請求項15に記載の
    方法。
  31. 【請求項31】 リレーショナルデータベース表の質問
    を実行すべく動作しかつフラグメントへの表の分離を支
    持するシステムにおいて、第1の表及び第2の表で結合
    述語を有している質問を最適化する方法であって、 前記結合述語を満足させることができる記録を有してい
    る前記第1の表のフラグメントである第1のフラグメン
    トのセットを識別し;前記結合述語を満足させることが
    できる記録を有している前記第2の表のフラグメントで
    ある第2のフラグメントのセットを識別し;かつ前記識
    別されたフラグメントの前記質問を実行する段階を具備
    することを特徴とする方法。
  32. 【請求項32】 前記第1のフラグメントのセットは、
    前記第1の表フラグメントからの記録を伴う前記結合述
    語を満足させる記録を含む前記第2の表のフラグメント
    を前記第1の表の各フラグメントに対して識別する結合
    フラグメントマップによって識別されることを特徴とす
    る請求項31に記載の方法。
  33. 【請求項33】 前記識別されたフラグメントの前記質
    問を実行する段階は、 前記第1のフラグメントのセットからの選択したフラグ
    メントからの記録を検索し;前記第2のフラグメントの
    セットからのフラグメントのサブセットを識別し、 前記サブセットは、前記選択したフラグメントを伴う前
    記結合述語を満足させることができる記録を有している
    前記第2の表のフラグメントであり;かつ前記結合述語
    を満足させている記録に対して前記フラグメントのサブ
    セットを走査する段階を具備することを特徴とする請求
    項31に記載の方法。
  34. 【請求項34】 リレーショナルデータベース表の質問
    を実行すべく動作しかつフラグメントへの表の分離を支
    持するシステムにおける結合述語を処理する方法であっ
    て、 結合フラグメントマップを生成すべく結合述語を有して
    いる簡略化された質問を実行し、前記結合フラグメント
    マップは、前記第1の表フラグメントからの記録を伴う
    前記結合述語を満足させる記録を含む前記第2の表のフ
    ラグメントを前記第1の表の各フラグメントに対して識
    別し;前記結合述語を満足させる記録を有している前記
    第1の表のフラグメントである第1のフラグメントのセ
    ットを識別すべく前記結合フラグメントマップを使用
    し;前記結合述語を満足させる記録を有している前記第
    2の表のフラグメントである第2のフラグメントのセッ
    トを識別すべく前記結合フラグメントマップを使用し;
    前記第1のフラグメントのセットからの選択したフラグ
    メントからの記録を検索し;第2のフラグメントのセッ
    トからのフラグメントのサブセットを識別し、 前記サブセットは、前記選択したフラグメントを伴う前
    記結合述語を満足させる記録を有している前記第2の表
    のフラグメントであり;かつ前記結合述語を満足させる
    記録に対して前記フラグメントのサブセットを走査する
    段階を具備することを特徴とする方法。
  35. 【請求項35】 コンピュータ読取り可能媒体に存在す
    る、コンピュータプログラムであって、 第1の表からの各対応するフラグメントに対して、前記
    第1の表からの前記対応フラグメントからの記録を伴う
    結合述語を満足させる記録を含む前記第2の表からの前
    記フラグメントを識別する、結合フラグメントマップを
    検索すること;及び前記結合述語を満足させることがで
    きないフラグメントを削除するために前記マップを使用
    することをコンピュータに動作させる命令を備えている
    ことを特徴とするコンピュータプログラム。
JP09482898A 1997-04-07 1998-04-07 データベースシステムにおいて結合質問を実行する方法及び装置 Expired - Lifetime JP4866495B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (18)

* Cited by examiner, † Cited by third party
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