JPH1125096A - データベースをサーチする方法およびコンピュータシステム - Google Patents

データベースをサーチする方法およびコンピュータシステム

Info

Publication number
JPH1125096A
JPH1125096A JP8168445A JP16844596A JPH1125096A JP H1125096 A JPH1125096 A JP H1125096A JP 8168445 A JP8168445 A JP 8168445A JP 16844596 A JP16844596 A JP 16844596A JP H1125096 A JPH1125096 A JP H1125096A
Authority
JP
Japan
Prior art keywords
value
predicate
values
computer
search
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.)
Pending
Application number
JP8168445A
Other languages
English (en)
Inventor
Harry A Leslie
ハリー・エイ・レスリー
David W Birdsall
デビッド・ダブリュ・バーズオール
Rohit N Jain
ロヒト・エヌ・ジェイン
Hedieh Yaghmai
ヘディー・ヤグマイ
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers 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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPH1125096A publication Critical patent/JPH1125096A/ja
Pending 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24547Optimisations to support specific applications; Extensibility of optimisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/2452Query translation
    • G06F16/24526Internal representations for queries
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 簡単且つ効率的にデータベースをサーチでき
るようにする。 【解決手段】 各サーチキーは、データベース管理シス
テムのコンパイラでサーチ質問に基づいて作成される一
般表現文から構築される。各キーコラムは他の次元を示
し、レンジおよびINリストは、サーチ質問により指定
可能であり、マルチコラム述語値として使用可能であ
る。前記質問で指定されない述語は、関連キーコラムの
最小値および最大値の指定として解釈される。コンパイ
ラは、サーチキーを作成するために前記システムのエク
スキュータによって使用される一般表現を生成する。コ
ンパイラは、述語を、前記質問表現における各論理和に
割当てられたクラスタと論理和数に関連づけることによ
って、サーチ質問を評価する。エクスキュータは、コン
パイラからの一般表現を使用し、同じコラム述語間の矛
盾を除去し、述語値および論理和の冗長性を除去し、ア
クセスすべきレコード数を必要最少限に減じる。サーチ
キーは、サーチが属する索引と同順序で生成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、リレーショナル
データベース管理システムに関し、改良された索引付き
アクセスによるリレーショナルデータベース管理システ
ムに関する。
【0002】
【従来の技術】ほとんどの従来のリレーショナルデータ
ベース管理システム(DBMS)においては、ユーザが
SQL(structured query language:構造化質問言
語)コマンドのような適当なコマンドを使用して大きな
データベースまたはテーブルに関する質問を行えるよう
にするB−木(B-tree)を使用している。B−木は、デ
ータベースメモリに格納され、1つまたは複数のコラム
を有する索引であり、各前記コラムは、該索引における
他の次元を示すものである。前記B−木は、適当な質問
コマンドを介してユーザによって指定される1つまたは
複数のキーを使用して、データベース内のレコードをサ
ーチすることを可能にする。前記キーは全レコードテー
ブルの部分集合を定義するので、索引付きサーチは、ユ
ーザの質問に関するレコードのより小さい部分集合を読
み出すために前記全レコードテーブルをサーチする必要
を無くする。
【0003】理想的には、索引付きアクセスは、ほとん
どの質問に関して、関係するレコードが最小のトランザ
クションコスト(該コストは、前記質問を完了するため
に必要な補助記憶アクセスの等価数のような適当なパラ
メータによって測定される)でアクセスされることを可
能にする。
【0004】
【発明が解決しようとする課題】しかし、ユーザがB−
木の索引構造を使用してDBMSに対して行う多くの質
問は、索引付きアクセス技術を使用して処理できない。
このような場合、全レコードテーブルをサーチしなけれ
ばならないので、時間がかかり、比較的効率が悪い。さ
らに、あるレンジまたは特定の値リスト(INリストと
言う)内の値を指定する場合、1つの索引におけるただ
1つのキーコラムのみが使用可能であるという制約によ
って、サーチすべき合計レコード数を減少できる程度が
相当制限される。
【0005】例えば、コラムa,b,c,d,e,f,
gを有するテーブルT、および、コラムa,b,c,d
を有する対応する索引Iを仮定する。 where a = 10 and b = between 20 and 30 and c = 40 and d = 50 という述語に関するすべてのレコードを選択するよう要
求するユーザの質問は、 begin key : a = 10, b ≧ 20 end key : a = 10, b ≦ 30 という形態のビギン−エンドキーとになる。前記述語は
c = 40,d = 50と指定しているが、キーコラムcおよび
dに関するこれら2つの等号述語は、bについてのレン
ジにより、サーチキーには含まれない。その結果、前記
索引における前記述語に一致するレコードのサーチは、
最も近い(a,b)対を捜すことができることになる
が、精確に所望の(a,b,c,d)値に達することが
できない。言い換えると、前記索引におけるすべてのc
およびdの値が調べられ、所望のcおよびdの値と比較
されなければならない。前記cコラムおよびdコラムに
おけるレコード数によるが、前記索引サーチを行うため
に必要な時間の長さ(従ってコスト)は、よくても、最
適値より長い。
【0006】既存のB−木索引構造のその他の問題点
は、キーコラム述語が不明(未指定)の場合に課される
制約である。例えば、 where a = 10 and c = 40 and d = 50 という述語を仮定する。従来のキー構築方法によって構
成されるビギン−エンドキーは、 begin key : a = 10 end key : a = 10 のようになる。この場合、コラムbに関する述語が無い
ことによって、コラムcおよびdに関する述語の使用が
阻止される。その結果、索引テーブルがすべての値
(b,c,d)についてサーチされなければならない。
キー述語が指定されていないコラムが分割キーの1番目
のコラムがである場合、特別な情況が発生する。
【0007】例えば、 where a = 30 and c = 40 and d = 50 という述語を仮定する。分割キーの1番目のコラムaに
関する述語が指定されていないので、従来のキー構築方
法は、これらの述語からサーチキーを構築することがで
きない。その結果、前記DBMSによって構成される質
問実行案は、全面的なテーブルスキャンを行わなければ
ならない。
【0008】前記サーチ質問にIN述語が介在している
場合、前記B−木索引構造にその他の問題点が発生す
る。例えば、 where a = 10 and b in (20,30) and c = 40 and d = 50 という述語を仮定する。コラムbに関する前記IN述語
は、1組の値との同等比較を指定する。
【0009】従来のキー構築方法は、1組の複数の値で
はなくまさに1つの値に関する同等比較を行うことがで
きる。従って、前記IN述語はキーに使用できない。そ
の結果、サーチキーはコラムaのみを含み、 begin key : a = 10 end key : a = 10 となる。コラムbに関する使用可能なキー述語が無いこ
とによって、コラムcおよびdに関する述語の使用が阻
止される。その結果、コラムb,c,dの完全なサーチ
を行わなければならない。
【0010】質問コマンドの述語に関して論理和正規形
を強制的に使用することによって、B−木索引に基づく
DBMSにその他の問題点が発生する。より詳しくは、
例えば、
【数1】 SELECT * FROM T WHERE (a = 5 and ( (b=1 and c IN (2,4,9)) OR (b=8 and c=7)) OR (a between 4 and 6 and ( (b between 8 and 10 and c between 6 and 9) OR (b=9 and c=11) という質問コマンドを仮定する。
【0011】この表現の論理和は、
【数2】 (a=5 and b=1 and c IN (2,4,9) OR (a=5 and b=8 and c=7) OR (a≧4 and a≦6 and b≧8 and b≦10 and c≧6 and c≦9) OR (a≧4 and a≦6 and b=9 and c=11) 典型的な従来のDBMSにおいて、質問コマンドに関係
するすべてのレコードのサーチは、1番目の論理和から
始まる。すべてのこのようなレコードが見つけられる
と、2番目の論理和に関係するすべてのレコードのサー
チが行われ、その後、3番目の論理和に関係するすべて
のレコードのサーチが行われ、4番目の論理和に関係す
るすべてのレコードのサーチで終わる。3番目の論理和
に関係するレコードのサーチ時に2番目の論理和に関係
する1つのレコードが再度アクセスされるという事実に
より、この技術は効率的ではない。上記の例はただ1回
だけ同一レコードの反復読出しを必要とするが、実際に
は、比較的大きなデータベースのレコードにアクセスす
る場合、比較的多数の反復読出しが日常的に発生する。
【0012】この反復レコードの問題をさらに大きくす
るのは、当該システムによって課される意味的な制約の
ために、アクセス中に1つのレコードがユーザに対して
2度戻され得ないという事実である。従って、ほとんど
のDBMSは、アクセス中に読み出されたレコードのテ
ーブルを作成しなければならず、これは、サーチ質問に
よって指定されたレコード数に応じて、相当量のメモリ
スペースを必要とする可能性がある。反復レコードアク
セスの問題は、質問コマンドにおける相反する述語の出
現によって大きくなることがある。ユーザが相反する述
語を有する質問コマンドを提起することはほとんどない
が、隠された述語を有するビューが使用される場合、ま
たは、ホスト変数が固定値と組合わせて使用される場
合、または、ソフトウエアによって質問が発生される場
合、上記問題点は頻繁に発生する可能性がある。
【0013】例えば、 Create view VT as SELECT * from where b IN (3,9,1
6,25,36) というビューVTが存在すると仮定する。また、ユーザ質
問が、 SELECT * FROM VT WHERE b between 20 and 30 AND c IN (40,100,150) AND d=50 であると仮定する。
【0014】この例において、20〜30のレンジのビ
ューには1つのb値しか存在していない場合でも、ユー
ザは、意識することなく、20〜30のレンジにあるビ
ューにおけるbのすべての値をサーチするよう前記DB
MSに対して要求している。その結果、20〜30のレ
ンジのすべてのb値がアクセスされ、30個のレコード
が不必要になる(10個の不必要なb値×3個のc
値)。この発明は、上述の点に鑑みてなされたもので、
効率的且つ簡単に、データベースをサーチする方法およ
びシステムを提供しようとするものである。
【0015】
【課題を解決するための手段】上記課題を達成するため
に、この発明は、サーチキーコラムの値に対応する述語
の値を指定するサーチ質問に従って構築された個々のマ
ルチコラムサーチキーを使用して、データベースをサー
チする方法であって、(a)前記サーチ質問によって指
定された述語の値を評価するステップと、(b)1つの
レンジの値として指定された各述語の値ごとに、これに
対応するキーコラムに同等レンジの値を割当てるステッ
プと、(c)INリストの値として指定された各述語の
値ごとに、これに対応するキーコラムに同等レンジの値
を割当てるステップと、(d)指定されていない各述語
の値ごとに、これに対応するキーコラムに或るレンジの
値を割当てるステップと、(e)前記割当てるステップ
(b)〜(d)の前記値を使用して、個々のサーチキー
を構築するステップとからなるものである。
【0016】サーチ質問が複数の論理和(disjunct)を含
み、前記評価するステップ(a)が、各前記論理和に対
して特有の論理和数 (disjunct number)を割当てるステ
ップを含むとよい。また、この論理和数を割当てるステ
ップが、INリスト述語に対して特有の論理和数を割当
てるステップを含んでいてよい。また、前記ステップ
(b)で割当てられた前記同等レンジの値が、対応する
キーコラムの最小値および最大値として指定されるよう
にするとよい。
【0017】また、前記評価するステップ(a)が、述
語をクラスタに関連付け、クラスタを論理和数に関連づ
けるステップを含んでいてよい。また、前記使用するス
テップ(e)が、同一のコラムからの相反する述語の値
を除去することによって、該コラムに関する潜在的なサ
ーチキーの値の数を減じるステップを含んでいてよい。
また、前記使用するステップ(e)が、前記論理和によ
って指定される冗長な値を除去することによって、前記
サーチ質問を実行するために必要なサーチキーの数を最
少化するステップを含んでいてよい。
【0018】さらに、この発明は、データベースオブジ
ェクトを格納し、ユーザが格納された該データベースオ
ブジェクトにおけるデータにアクセスできるようにする
コンピュータシステムであって、前記データベースオブ
ジェクトを格納するメモリと、ユーザによるデータベー
ス質問がユーザワークステーションから前記コンピュー
タシステムに中継されるようにし、前記コンピュータシ
ステムからの質問結果が前記ユーザワークステーション
によって利用されるようにするための通信インターフェ
イスと、ユーザワークステーションから受信したサーチ
質問に応じて、前記メモリと前記通信インターフェイス
との間のインタラクションを制御し、サーチキーコラム
値に対応する述語値を指定するプロセッサと、前記プロ
セッサがサーチキーコラム値に対応する述語値を指定す
るサーチキーに従って個々のマルチコラムサーチキーを
構築するようにするコンピュータプログラムであって、
前記サーチ質問によって指定された前記述語値を評価す
る第1の手続きを含むものと、前記サーチ質問によって
指定される各述語値ごとに、同等レンジの値を、あるレ
ンジの値として、対応するキーコラムに割り当てる第2
の手続きと、前記サーチ質問によって指定された各述語
値ごとに、同等の値を、INリストの値として、対応す
るキーコラムに割り当てる第3の手続きと、各指定され
ていない述語値ごとに、或るレンジの値を対応するキー
コラムに割り当てる第4の手続きと、前記第1の手続き
〜第4の手続きによって割り当てられた値から、個々の
サーチキーを構築する第5の手続きとを具備したもので
ある。
【0019】さらに、この発明は、データベースをサー
チするために使用する個々のマルチコラムサーチキーを
構築するための、コンピュータによって読取り可能なコ
ードを格納したコンピュータが使用可能な媒体を備え、
前記サーチキーがサーチキーコラム値に対応する述語値
を指定するサーチ質問に従って構築されているコンピュ
ータプログラム製品であって、前記サーチ質問によって
指定される前記述語値を評価するようコンピュータを動
作させる、第1のコンピュータによって読み取り可能な
プログラムコード装置と、あるレンジの値として指定さ
れる各述語値ごとに前記対応する述語値に対して同等レ
ンジの値を割当てるようコンピュータを動作させる、第
2のコンピュータによって読み取り可能なプログラムコ
ード装置と、INリストの値として指定される各述語値
ごとに前記対応する述語値に対して同等の値を割当てる
ようコンピュータを動作させる、第3のコンピュータに
よって読み取り可能なプログラムコード装置と、各指定
されていない述語値ごとに前記対応する述語値に対して
或るレンジの値を割当てるようコンピュータを動作させ
る、第4のコンピュータによって読み取り可能なプログ
ラムコード装置と、前記同等の値を使用して個々のサー
チキーを構築するようコンピュータを動作させる、第5
のコンピュータによって読み取り可能なプログラムコー
ド装置とを具備したものである。
【0020】この発明は、リレーショナルデータベース
管理システムにおいて、ある特定のサーチにおいてアク
セスされるレコードの合計数を実質的に減らすことがで
き、サーチキーの多数のコラムに関する複数のレンジお
よびINリストを可能にし、1つまたは複数のコラム値
が無い場合でも使用可能なサーチキーを構築でき、且
つ、前記サーチキーの個々のコラムを該キーが属するテ
ーブルと同様に配列することが可能な、改良された索引
付きコードアクセスを実現する方法およびシステムを提
供する。
【0021】この発明は、オプティマイザおよびDBM
Sエクスキュータと称するDBMSコンパイラの一部分
によって実行される。前記オプティマイザは、先ずサー
チ質問を評価し、前記DBMSエクスキュータのための
キー表現を生成する。該キー表現は、個々のコラムのレ
ンジおよびINリスト述語を含むマルチコラムキーを記
述するものである。前記オプティマイザは、一般的なO
R最適化を実行し、質問文の述語をクラスタおよび論理
和に関連づける。前記オプティマイザにおける論理和の
使用によって、この発明は、前記述語および論理和のた
めのメモリスペース使用量を最少化することができる。
というのは、述語が繰り返される代りに、各述語が現れ
る論理和のリストが作成されるからである。述語は共通
した1組の論理和を共有してよい。INリストは、論理
和の数を最少化できるよう、単一の論理和として処理さ
れる。なお、クラスタは、同じコラムにおける同等の述
語の集まりである。
【0022】前記DBMSエクスキュータは、データベ
ーステーブル、ビューまたはカタログに対してコンパイ
ルされた質問文を実行するDBMSシステムライブラリ
における1組の手続きから構成される。前記DBMSエ
クスキュータは、GEM−木と称されるデータ構造を作
成するために、前記DBMSコンパイラのオプティマイ
ザ部分によって供給されるキー表現を評価する。各GE
M−木は、レンジおよび真値を記述するキーコラムに関
する情報、各コラムについて定義された述語、比較演算
子およびその他の情報を含んでいる。前記DBMSエク
スキュータで実行されるGEM−木構築処理は、各コラ
ムにおける順序(すなわち、昇順または降大順)を維持
しながら、レンジを組合わせ、キーコラムにおける重複
を除去することを含むものである。前記DBMSエクス
キュータによってGEM−木が構築されると、必要なテ
ーブルからデータを読み出すための実際のキーを構築す
るために、前記木から値が取り出される。
【0023】前記GEM−木を構築する処理において、
前記DBMSエクスキュータは、個々のレコードがただ
一度読み出されるよう、異なる論理和からの値を分類
し、1つのコラムに畳込む。これにより、すべての重複
した値が除去されるので、サーチ案を実行するためのコ
ストをかなり節約できる。さらに、多数の論理和が存在
している場合でも、各索引からのデータが索引順に読み
出されるよう複数のキーが構築される。これは、個々の
レコードのアクセスを容易にする。
【0024】前記DBMSエクスキュータにおいて各コ
ラムごとに論理和を使用することによって、同じレコー
ドが決して二度読みされることのないような、多数のコ
ラム論理和の組み立てが実現される。これは、前記DB
MSエクスキュータによる値の分類および畳込みを容易
にする。また、前記DBMSエクスキュータは、1つの
論理和におけるそのコラムに関するすべての述語から、
1つの論理和に関するすべての述語の極小組を捜し出
す。これは、単一のコラムに相反する述語が多数存在す
る場合に行われる。前記すべての述語の極小組は、述語
の組合わせに必要な値の極小組を求めることによって決
定される。この技術が前記異なる論理和からの値を分類
し1つのコラムに畳込む処理と共に行われることによっ
て、最少量のデータのみを読み出せばよいことになる。
【0025】前記GEM−木を構築する処理において、
前記DBMSエクスキュータは、指定されていないキ
ー、および、前記DBMSコンパイラのオプティマイザ
部分によって供給される一般化されたキー表現における
レンジおよびINリストの指定を認識する。これは、索
引の多次元のビューを可能にし、効率的なアクセスを可
能にする。
【0026】
【発明の実施の形態】以下、添付図面を参照してこの発
明の一実施の形態を詳細に説明する。図1には、格納さ
れたデータベースにデータを格納し、該データにユーザ
がアクセスできるようにするコンピュータシステム10
0が示されている。該システム100は、ローカルエリ
アネットワーク媒体および広域ネットワーク媒体108
によって相互接続された多数のコンピュータ102、1
04、106を有する分散型コンピュータシステムであ
る。前記システム100は、少なくとも1つのデータベ
ースサーバ102と、多数のユーザワークステーション
コンピュータまたは端末装置104、106を備えてい
る。
【0027】システムに極めて大きなデータベースが格
納される場合、該データベースのテーブルは分割され、
該データベースの異なる分割部分は、しばしば、異なる
CPUによって制御される異なる物理的なディスクに格
納されることになる。しかし、ユーザワークステーショ
ンコンピュータ104、106から見ると、前記データ
ベースサーバ102は単一の構成要素のように見える。
データベースの分割は当業者に周知の技術である。
【0028】図1に示すように、データベースサーバ1
02は、CPU110と、主メモリ112と、前記ユー
ザワークステーションコンピュータ104、106およ
びこの発明とは関係のない他のシステム資源との通信を
行うための通信インターフェース114とを備えてい
る。該データベースサーバ102における補助メモリ
(典型的には、磁気ディスク記憶装置)116は、デー
タベーステーブル120、データベース索引122、ユ
ーザおよびオペレータが前記データベーステーブルにア
クセスできるようにするデータベース管理システム(D
BMS)123と、前記データベーステーブル120に
関するスキーマ情報、および、前記データベーステーブ
ル120にアクセスするために使用されるプログラムの
ためのディレクトリ情報を格納する1つまたは複数のカ
タログ126を格納している。前記DBMS123は、
SQL(structured query language)エクスキュータ
124と、SQLカタログマネージャー125およびS
QLコマンドインタプリタのようなその他のデータベー
ス管理サブシステムとを含んでいる。さらに、前記DB
MS123は、ソースコードデータベース質問プログラ
ム130をコンパイル済み実行案132にコンパイルす
るSQLコンパイラ128を含んでいる。該SQLコン
パイラ128は、指定されたSQL文をコンパイルして
実行案を生成するためにも使用可能である。
【0029】エンドユーザワークステーションコンピュ
ータ104、106は、典型的には、CPU140と、
主メモリ142と、前記データベースインターフェース
102およびその他のシステム資源との通信を行うため
の通信インターフェース144と、補助メモリ146
と、ユーザインターフェース148とを備えている。該
ユーザインターフェース148は、典型的にはキーボー
ドと表示装置とを備え、多くのものは、位置決め装置や
プリンタのような付加的な資源を備えている。前記補助
メモリ146は、データベースサーバ102にアクセス
するために使用される通信ソフトウエアなどのコンピュ
ータプログラムを格納するために使用される。いくつか
のエンドユーザワークステーションコンピュータ106
は、補助メモリ146を備えていない“無言”端末装置
であってよく、データベースサーバ102またはファイ
ルサーバ(図示せず)などのサーバコンピュータから主
メモリ142にダウンロードされたソフトウエアのみを
実行する。
【0030】用語解説 この明細書で使用される用語を説明すると次のようであ
る。 SQL:“構造化質問言語”を意味する。ほとんどの商
用的なデータベースは、SQLを使用している。ここ
で、SQLを使用するデータベースのデータにアクセス
するプログラムを、“SQLプログラム”と言う。ま
た、データベースのデータにアクセスするSQLプログ
ラムにおける各文を、“SQL文”と言う。1つのSQ
Lプログラムは、1つまたは複数のSQL文を含むもの
である。 実行案:データベースのデータに効率的にアクセスする
手法を指定する中間形態にコンパイルされたSQL文。 実行特徴:その意味(すなわち、操作性)に影響を与え
ない実行案の特徴。一例として、案の性能およびその資
源消費がある。
【0031】オブジェクト:オブジェクトとは、単一の
構造としてプログラムによってアクセスされるファイ
ル、データベーステーブルまたはその他のカプセル化さ
れたコンピュータ資源のことである。好ましい実施の形
態において、オブジェクトはデータベーステーブルであ
る。この発明の他の実施の形態において、オブジェクト
は、有効性が確認された指定された方法(すなわち、プ
ログラム)を介してエンドユーザがアクセスするその他
のカプセル化されたコンピュータ資源であってもよい。 DDL文:data definition language statementすなわ
ちデータ定義言語文。該DDL文は、データベースオブ
ジェクト(例えば、テーブルおよび索引)を作成するた
め、および、データベースオブジェクトを変形するため
に使用される。 定義名:実行案によってアクセスされるべきオブジェク
トを示すオブジェクトハンドルまたはリンク。SQL文
は、直接的にオブジェクトを参照する代りに、定義名に
よってオブジェクトを参照することができる。こうし
て、前記プログラムを変更する必要なしに、オペレータ
は、単に、プログラムを実行する前に新たなオブジェク
トを指示するよう定義名を変更するだけで、前記プログ
ラムがコンパイル時オブジェクトとは異なるオブジェク
ト組にアクセスさせることができる。
【0032】ソースコードプログラム/文:各実行案ご
とに、これに対応するソースコードSQL文が存在す
る。ソースコードプログラムは、ここではまとめて“コ
ンパイル済みプログラム”と言う1組の実行案に対応す
る1組のSQL文である。 SQLコンパイル:SQL文プログラムすなわちSQL
プログラムをコンパイルする動作。そのコンパイルは、
当該プログラムのSQL文に関する新たな実行案を生成
するために、例えばTandemの“SQLCOMP(登録商標)”
のようなSQLコンパイラを実行することによって行わ
れる“静的”コンパイルであってよい。SQLコンパイ
ルは、また、プログラムが無効であると記すことによっ
て、または、SQL文と該文によって参照されるオブジ
ェクトとの時刻印(タイムスタンプ)不一致によって開
始される、自動的な再コンパイルのような動的コンパイ
ルであってもよい。
【0033】エンドユーザ:ワークステーションを使用
して、データベースサーバにおけるデータベースにアク
セスする人。典型的には、エンドユーザは、データベー
ステーブルの構造を変形する権限を有さない。 オペレータ:データベーステーブルの構造を変形し、S
QLソースコードプログラムのコンパイルを手操作で開
始する権限およびアクセス権を有する人。 ビュー:物理的な存在を伴わない関係に関する論理的な
定義、すなわち、仮想リレーション。ビューによって示
されるデータは、ベーステーブルから得られる。 GEM:genral expression method(一般的表現法)の
頭文字語であって、この発明のいくつかの特徴を示すた
めに使用される。 MDAM:multiーdimensional access method(多次元
アクセス法)の頭文字語であって、この発明を示す代替
語。
【0034】データベースサーバ 図2は、前記データベースサーバ102に格納されたデ
ータ構造とプログラムとの間の相互関係のいくつかを示
すものである。ソースコードプログラム130―1は、
SQLソースコード文160のシーケンス、および、そ
の他の非SQLソースコード文(例えば、割当て、およ
び、プログラムフロー文)を含んでいる。SQLコンパ
イラ128は、SQLソースコード文を、ここでは実行
案と言うコンパイルされた文162のシーケンスを有す
るコンパイル済みプログラム132―1にコンパイルす
る。各前記ソースコード文160は、対応する実行案1
62を有する。前記コンパイル済みプログラム132
は、後述するように、SQLエクスキュータ124によ
って使用される1組の実行時(ランタイム)特性を格納
する“ファイルラベル”164(すなわち、プログラム
におけるデータ構造)を含んでいる。さらに、各実行案
162は、コンパイルされた質問に加えて、該実行案に
よってアクセスされるべき各データベースオブジェクト
ごとに時刻印166および1組のスキーマ情報170を
含んでいる。
【0035】各データベーステーブルまたはデータベー
スオブジェクト120は、ここでは“オブジェクトヘッ
ダ”と言うディスクラベル180と、オブジェクト本体
182を含んでいる。前記オブジェクトヘッダ180
は、データベースオブジェクト120の構造、識別およ
びその他の特徴についての情報を格納しており、一方、
オブジェクト本体182は、該データベースオブジェク
トのデータ内容を格納している。前記オブジェクトヘッ
ダ180は、オブジェクト名フィールド184と、該デ
ータベースオブジェクト120におけるデータの構造お
よびその他の特徴を定義するオブジェクトスキーマ18
6とを含んでいる。前記データベースオブジェクトの
“ディスクラベル”180に格納されたオブジェクトス
キーマ186は、該データベーステーブルに関してSQ
Lカタログ126に格納されたカタログ情報の圧縮され
た表現であり、従って、データ属性定義188、時刻印
190およびその他のオブジェクトパラメータ192を
含んでいる。
【0036】前記カタログ126自体は、前記データベ
ースサーバに格納されたデータベースオブジェクト(例
えば、テーブルおよび索引)についての情報、および、
前記データベースサーバに格納されたプログラムについ
ての情報を格納する1組のテーブルを有するデータベー
スである。このカタログ126の構造については、図3
〜図11を参照して後で詳述する。上述したように、前
記コンパイラ128は、SQLプログラム130を、1
組の実行案162を有するコンパイル済みSQLプログ
ラム132にコンパイルするものである。該コンパイラ
128の動作は、手操作によって入力されるコンパイラ
コマンド194、または、無効または動作不能な実行案
を実行する場合に前記SQLエクスキュータ124によ
って生成される再コンパイルコマンド196によって開
始される。手操作によって開始されるコンパイルは、ユ
ーザまたはオペレータによって入力されるコマンド19
4、または、より普通には、データ定義およびコンパイ
ラコマンドのシーケンスを含むユーザまたはオペレータ
によって開始されるスクリプトによって制御される。
【0037】前記SQLエクスキュータ124は、エン
ドユーザおよびオペレータの実行時コマンド198に応
答する。このような実行時コマンド198は、例えばデ
ータベーステーブルからデータを読出し、データベース
テーブルにデータを付加するために、エンドユーザによ
って開始される標準的なコマンドを含む。また、前記実
行時コマンド198は、データベーステーブルを作成
し、既存のデータベーステーブルの構造を変形するため
のDDL(data definition language)文を含んでい
る。しかし、これらの実行時コマンド198を使用する
権限は、通常、ここではオペレータと呼ばれる人に制限
されている。図1のシステム動作をより詳しく理解する
ために、1988年7月発行の“TANDEM SYSTEMS REVIE
W”第4巻、No.2を参照されたし。
【0038】カタログおよびディスクラベルのデータ構
造 図3において、好ましい実施の形態におけるカタログ1
26は、1つデータベースサーバまたは1組のデータベ
ースサーバにおけるデータベーステーブルおよびプログ
ラムを示す1組のテーブル200〜220で構成されて
いる。図4において、“TABLES”テーブル200は、前
記データベースサーバにおける各データベーステーブル
ごとに、1つのレコード222を含んでいる。各レコー
ド222は、次のようなフィールドを有する:前記デー
タベーステーブルの名前を示すTableNameフィールド2
24;参照されたデータベーステーブルが真のデータベ
ーステーブルか、または、SQL文によってデータベー
ステーブルと同様に参照される1つまたは複数のデータ
ベーステーブルの部分集合である“ビュー”であるかを
TableTypeフィールド225;
【0039】当該テーブル(またはビュー)における異
なるコラムの数を示すColumCountフィールド226;当
該テーブル(またはビュー)が最初に作成された時を示
す時刻印値であるCreateTimeフィールド227;前記テ
ーブル(またはビュー)が最後に変更された時を示す時
刻印値であるRedeTimeフィールド228;当該テーブル
についての類似チェックが許可される場合に“イネーブ
ル”を示し、そうでない場合に“ディスエーブル”を示
すフラグであるSimilarityCheckフィールド229;そ
の他のパラメータ230はここでは関係ない。図5にお
いて、“BASETABLES”テーブル202は、前記データベ
ースサーバにおける各データベーステーブルごとに1つ
のレコード232を含んでいる。各前記レコード232
は、次のようなフィールドを有する:
【0040】前記データベーステーブルの名前を示すTa
bleNameフィールド234;参照されたデータベーステ
ーブルが格納されているディスクファイルの名前を示す
FileNameフィールド235;当該テーブルにおけるロー
の数を示すRowCountフィールド236;各ローの最大サ
イズ(バイトまたはワード単位)を示すRowSizeフィー
ルド237;前記ファイルが有効な定義、正しいファイ
ルラベルおよびカタログエントリを有するか否かを示す
フラグ値(イエスまたはノー)であるValidDefフィール
ド238;当該テーブルにおけるデータがこのテーブル
の索引に一致し、該テーブルに関する制限を満たすか否
かを示すフラグ値(イエスまたはノー)であるValidDat
aフィールド239;
【0041】当該テーブルが定義された制限を有するか
否かを示すフラグ値(イエスまたはノー)であるConstr
aintsフィールド240;その他のパラメータ241は
ここでは関係ない。図6において、“COLUMNS”テーブ
ル204は、前記データベースサーバにおける各データ
ベーステーブルごとに1つのレコード252を含んでい
る。各前記レコード252は、1つのデータベーステー
ブルコラムの特徴を示すもので、次のようなフィールド
を有する:このレコード252に対応するコラムが含ま
れているデータベーステーブルの名前を示すTableName
フィールド254;当該テーブルの各ローにおけるコラ
ムの位置を示す数であって、1番目のコラムはコラムナ
ンバ0を有するColumnNumberフィールド255;
【0042】当該コラムのSQL識別子とも言うコラム
名を示すColumnNameフィールド256;当該コラムにお
けるデータのサイズ(バイトまたはワード単位)を示す
ColumnSizeフィールド257;当該テーブルまたはテー
ブル部分に関する前記コラムの特有のデータエントリの
数を示すUniqueEntryCountフィールド258;当該デー
タベーステーブルのコラムから抽出されたデータを印刷
する場合に、デフォルトコラムヘッディングとして使用
されるテキスト列であるHeadingTextフィールド25
9;その他のパラメータ260はここでは関係ない。
【0043】図7において、“INDEXES”テーブル21
0は、前記データベースサーバにおける各データベース
索引ごとに1つのレコード262を含んでいる。各前記
レコード262は、次のようなフィールドを有する:デ
ータベーステーブルの名前を示すTableNameフィールド
263;当該索引の名前を示すIndexNameフィールド2
64;当該索引に使用される主要キーコラムを含むコラ
ムの数を示すColCountフィールド265;当該データベ
ーステーブルに関する主要キー索引である場合、キータ
ッグを指定するKeytagフィールド266;当該索引の定
義が有効であるか否かを示すフラグ値(イエスまたはノ
ー)であるValidDefフィールド267;当該索引が有効
データを有するか否かを示すフラグ値(イエスまたはノ
ー)であるValidDataフィールド268;前記索引にお
けるすべてのエントリがユニークなものか否かを示すフ
ラグ値(イエスまたはノー)であるUniqueValueフィー
ルド269;当該索引における索引レベルの数を示すIn
dexLevelsフィールド270;各索引レコードのサイズ
を示すRowSize271;当該索引を含んだファイルを示
すFileName272;ここでは、その他のパラメータ27
3は関係ない。
【0044】図8において、“KEYS”テーブル212
は、主要キーの各コラムごとに1つのレコード282を
有すると共に、前記データベースサーバにおける各デー
タベーステーブルごとに1つの索引を有する。各前記レ
コード282は、1つのキーまたは索引に関するテーブ
ルコラムを示し、次のようなフィールドを有する:当該
索引の名前を示すIndexNameフィールド283;当該索
引ローにおけるコラムの位置を示すKeySequenceNumber
フィールド284;各テーブルローにおけるコラムの位
置を示すTableColumnNumberフィールド285;当該コ
ラムが昇順または降順のコラムかを示すOrderingフィー
ルド286。
【0045】図9において、“FILES”テーブル206
は、前記データベースサーバにおける各データベーステ
ーブルおよび索引ごとに1つのレコード292を有す
る。各前記レコード292は、1つのデータベースファ
イルの特徴を示し、次のようなフィールドを有する:デ
ータベースファイルの名前を示し、ベーステーブルレコ
ード232のFileNameエントリ235または索引レコー
ド262のエントリ272に対応するFileNameフィール
ド294;当該ファイル内におけるデータがどのように
して連続しているか(例えば、エントリ連続、キー連続
など)を示すFileTypeフィールド295;当該ファイル
が格納されている補助メモリブロックのサイズ(例え
ば、512,1024,2048または4096バイ
ト)を示すBlockSizeフィールド296;
【0046】当該ファイルが分割されているか否かを示
すフラグ値(イエスまたはノー)であるPartitionedフ
ィールド297;当該ファイルにおけるレコードの最大
長さを示すRecordSizeフィールド298;当該ファイル
のデータページおよび索引ページのデータが圧縮されて
いるか否かを示すフラグ値(イエスまたはノー)である
CompressionInfoフィールド299;当該ファイルにお
ける主要レンジおよび補助レンジのサイズ、ならびに、
該ファイルにおけるレンジの最大数を示すExtensionInf
oフィールド299;ここでは、その他のパラメータ3
01は関係ない。ファイルが分割される場合、分割テー
ブル214は、該ファイルの各分割部分ごとに、分割部
分名およびカタログエントリを示す1つのレコード、お
よび、該ファイルの主要キーにおける各コラムのスター
ト値を含むことになる。
【0047】図10において、“PROGRAMS”テーブル2
08は、前記データベースサーバにおける各登録された
プログラムごとに1つのレコード312を有する。各前
記レコード312は、1つのプログラムの特徴を示し、
次のようなフィールドを含んでいる。該プログラムの名
前を示すProgramNameフィールド314;該プログラム
の所有者を示すOwnerIDフィールド315;該プログラ
ムが最初にSQLコンパイルされた時を示す時刻印値で
あるCreateTimeフィールド316;該プログラムが最後
にコンパイルされた時を示す時刻印値であるRecompileT
imeフィールド317;
【0048】該プログラムが有効か否かを示すフラグ値
(イエスまたはノー)であるValidフィールド318;
必要な場合、当該プログラムの自動的な再コンパイルが
実行時に可能か否かを示すフラグ値(イエスまたはノ
ー)であるAutoCompileフィールド319;後で詳述す
るように、“All”または“OnDemand”に設定され、(A
utoCompileパラメータおよびCheckModeパラメータと共
に)該プログラム内のプログラムおよび文が再コンパイ
ルされる時を制御するモード値であるRecompileModeフ
ィールド320;“InvalidProgram”,“InvalidPlan
s”または“InoperableProgram”に設定され、(AutoCo
mpileパラメータおよびRecompileModeパラメータと共
に)該プログラム内のプログラムおよび文が再コンパイ
ルされる時を制御するモード値であるCheckModeフィー
ルド321;
【0049】コンパイル済みプログラムが該プログラム
のコンパイルされた文ごとに類似情報を有するか否かを
示すフラグ値(イエスまたはノー)であるSimilarityIn
fo322;ここでは、各文ごとの類似情報は、その文に
よってアクセスされるデータベーステーブルに関するス
キーマの部分集合からなる。その他のパラメータ323
はここでは関係ない。
【0050】さらに、図11において、“USAGES”テー
ブル220は、1つのオブジェクトの他のオブジェクト
による使用ごとに1つのレコード330を含んでいる。
各前記レコード330は、データベーステーブルを使用
する各プログラムごとにその関係を示し、次のようなフ
ィールドを有する:“使用される方の”オブジェクトの
名前を示し、この明細書では、データベーステーブルの
テーブル名であるUsedObjectNameフィールド332;前
記使用される方のオブジェクトの種類を示し、この場合
“テーブル”であるUsedObjectTypeフィールド334;
使用される方のオブジェクトに関する他の定義された種
類は“ビュー”および“索引”である。使用する方のオ
ブジェクトが前記使用される方のオブジェクトに依存し
ている場合にイネーブル状態にされるフラグであるRela
tionshipTypeフィールド336;
【0051】前記使用する方のオブジェクトの名前を示
し、この明細書では、プログラムの名前であるUsingObj
ectNameフィールド337;前記使用する方のオブジェ
クトの種類を示し、この明細書では、プログラムである
UsingObjectTypeフィールド338;前記使用する方の
オブジェクトに関する他の定義された種類は“ビュー”
および“索引”である。その他のパラメータ339はこ
こでは関係ない。
【0052】この発明を実施するために使用される図1
のシステムの主要な構成要素は、オプティマイザおよび
SQLエクスキュータ124と称するSQLコンパイラ
128の一部分である。前記オプティマイザは、前記S
QLコンパイラ128において、最初にサーチ質問を評
価し、SQLエクスキュータ124のためのキー表現を
生成する処理要素である。前記キー表現は、個々のコラ
ムに関するレンジおよびINリスト述語を含む、マルチ
コラムキーを記述する。前記オプティマイザは、一般的
な論理和(OR)最適化を実行し、述語をクラスタおよ
び論理和数に関連づける。なお、該オプティマイザが述
語をクラスタおよび論理和数に関連づける方法が本発明
の理解に必要になる場合には、本出願人であるTANDEM C
omputers, Inc.の“General Expression Method (GE
M) Internal Design Specification Addendum”,Versi
on:1.1(1995年著作、以下、参照文献Aという)を提出
する用意がある。
【0053】前記オプティマイザにおける論理和数の使
用によって、この発明は、前記述語および論理和のため
のメモリスペース使用量を最少化する。より詳しくは、
従来のコンパイラにおいては、サーチ質問を論理和正規
形に変換する処理では、述語が、該述語が現れるすべて
の論理和について繰り返されることを必要とする。しか
し、この発明においては、述語が繰り返される代りに、
各述語が現れる論理和のリストが、前記参照文献Aに記
載された方法で作成される。
【0054】さらに、多くの述語は、1組の共通の論理
和数を共用する。この発明の他の利点は、論理和の数を
最少化するために、INリストを単一の論理和として処
理することに在る。INリストは、まとめて論理和処理
される同一のコラムの単一の述語のリストを指定する簡
潔な方法である。このまとめて論理和処理される同一の
コラムの述語のリストは、単一の論理和として処理され
る。
【0055】前記SQLエクスキュータ124は、デー
タベーステーブル、ビューまたはデータベースカタログ
に対して、コンパイル済みのSQL文を実行する、シス
テムライブラリにおける1組の処理からなる。前記SQ
Lエクスキュータ124は、GEM−木と称するデータ
構造を作成するために、前記SQLコンパイラ128の
オプティマイザデータベースによって供給されるキー表
現を評価する。各GEM−木は、レンジおよび真値を記
述するキーコラムに関する情報、各コラムについて定義
された述語、比較演算子およびその他の情報を含んでい
る。前記SQLエクスキュータ124において実行され
るGEM−木の構築処理は、各コラムの順序(すなわ
ち、昇順または降順)を保持しながら、レンジを組合わ
せ、キーコラムにおける重複を除去することを含む。前
記SQLエクスキュータ124によってGEM−木が構
築された後、必要なテーブルからデータを読み出すため
の実際のキーを構築するために、前記木から値が読み出
される。
【0056】このように、GEM−木を構築し、テーブ
ルからデータを読み出すための実際のキーを構築する前
記SQLエクスキュータ124によるGEM木構築方法
は、本出願人であるTANDEM Computers, Inc.の“Genera
l Expression Method (GEM) Internal Design Specif
ication”,バージョン:1.1(1995年著作、以下、参照文
献Bという)に記載されている。この発明の理解に必要
であるとされた場合、本出願人は、この参照文献Bを提
出する用意がある。前記GEM木を構築する方法におい
て、前記SQLエクスキュータ124は、個々のレコー
ドが1度だけ読み出されるよう、異なる論理和からの値
を分類し、1つのコラムに畳込む。すべての重複した値
が除去されるので、これは、サーチ案を実行する上でか
なりのコスト節約になる。さらに、多数の論理和が存在
している場合でも、各索引のデータが索引順に読み出さ
れるよう前記キーが構築され、これは、個々のレコード
のアクセスを容易にする。
【0057】前記SQLエクスキュータ124において
各コラムごとに論理和数を使用することによって、同一
のレコードが二度読み出しされる必要ないよう、多数の
コラム論理和の畳み込みが可能になる。これは、前記S
QLエクスキュータ124による値の分類および畳込み
を容易にする。また、前記SQLエクスキュータ124
は、1つの論理和に関するすべての述語の極小組を、1
つの論理和におけるそのコラムに関するすべてのから求
める。これは、単一のコラムについて相反する多数の述
語が存在している場合に生じる。前記SQLエクスキュ
ータ124は、述語の組合わせに必要な値の極小組を見
つけることによって、すべての述語の極小組を求める。
これは、データの不必要な読み出しを防止する。異なる
論理和からの値を分類し畳込むことによって、必要最少
量のデータが読み出されることを可能にする。
【0058】GEM木を構築する処理において、前記S
QLエクスキュータ124は、前記SQLコンパイラ1
28のオプティマイザ部によって供給される一般化され
たキー表現における、指定されていないキー、レンジお
よびINリストの指定を認識する。これは、索引の多次
元のビューを可能にし、且つ、ユーザが純粋に分割目的
で索引の始めのコラムを定義した場合でも効率的なアク
セスを可能にする。上記特徴の一例は次のようである。
【0059】介在するレンジ WHERE a=10 AND b between 20 and 30 AND c=40 AND d=50 という述語を含むユーザサーチ質問を仮定する。従来の
システムにおいて、コラムcおよびdにおける述語は、
bに関する介在するレンジ述語により、キーとして使用
できない。この発明は、次のようにして、4つのキーコ
ラムのすべての使用を可能にする。
【0060】レンジ述語は、該レンジのコラムのすべて
の値を実行することによって、前記SQLエクスキュー
タ124において処理される。20〜30のbの値が
(20、23、25、30)であると仮定する。前記S
QLエクスキュータ124は、先ず、 a=10、b=20、c=40、d=50 についてキーによるアクセスを実行する。前記SQLエ
クスキュータ124がこれらのキーコラムに関するすべ
てのレコードを受け取ると、該エクスキュータ124
は、ファイルシステムに対して、23であるbの次の値
をリクエストする。次に、a=10、b=23; c=40、d=50のよ
うに、この値23はbのキー値として代入される。これ
らのレコードが読み出されると、bの次の値(すなわ
ち、25)が選択される。
【0061】指定されていないキー述語 WHERE b between 20 and 30 AND c=40 AND d=50 という述語を含むユーザサーチ質問を仮定する。この場
合、キーコラムaは指定されていないので、従来のシス
テムは、この索引をキーによるアクセスに使用できな
い。しかし、この発明によると、コラムaの指定されて
いない述語は、MIN_VALUEからMAX_VALUEまでの暗黙のレ
ンジ(ゼロを含む)として処理される。前記SQLエク
スキュータ124は、先ず、前記ファイルシステムに対
してコラムaの1番目の値を要求し、該値をビギンキー
値に代入する。
【0062】ここで、コラムaの値が1から100まで
のすべての値を含むものと仮定する。前記SQLエクス
キュータ124は、先ず、 a=1、b=20、c=40、d=50 の値を使用してキーによるアクセスを行う。この1組の
値に関するレコードを読み出した後、前記SQLエクス
キュータ124は、次のようにコラムbを残りの3つの
値に変える。 a=1、b=23、c=40、d=50 a=1、b=25、c=40、d=50 a=1、b=30、c=40、d=50 その後、前記SQLエクスキュータ124は、前記ファ
イルシステムからコラムaの次の値を得て、コラムbの
上記値を繰り返す。 a=2、b=20、c=40、d=50 a=2、b=23、c=40、d=50 等々である。その結果、合計400回のアクセスとな
る。
【0063】INリスト WHERE b between 20 and 30 AND c IN(40、100、150) AND d=50 という述語を含むユーザサーチ質問を仮定する。この場
合、コラムaおよびコラムbは、上述した指定されてい
ないキー述語と同様に処理される。さらに、コラムcの
値が含まれている。前記SQLエクスキュータ124
は、コラムa、b、cについて与えられたすべての値を
実行する。しかし、コラムcの3つの値が前記INリス
トによって指定されているので、前記SQLエクスキュ
ータ124は、これらの値を直接に使用できる(そし
て、前記ファイルシステムに対してこれらの値を要求す
る必要がない)。
【0064】相反する述語の除去 SELECT * from T WHERE b IN(3,9,16,25,36)のよう
に、ビューVTを作成する。 SELECT * from VT WHERE b between 20 and 30 AND c IN(40、100、150) AND d=50 というユーザ質問を仮定する。この質問におけるコラム
bに関する唯一の有効な値は25である。前記SQLエ
クスキュータ124は、コラムbに関するすべての述語
の和を求め、25という値のみが両組に存在することを
認識し、その結果、コラムbに関する該値のみがレコー
ド読み出しのために使用されることになる。
【0065】一般的論理和最適化 上記のように、述語を論理和正規形における異なる述語
に関連づけることによって(1ユニットとして処理され
るINリストを除いて)、一般的論理和最適化が実現さ
れる。外部レベルに論理和のみが存在する場合、述語は
論理和正規形である。例えば、
【数3】 SELECT* FROM T WHERE (a = 5 and ( (b=1 and c IN (2,4,9)) OR (b=8 and c=7)) OR (a between 4 and 6 and ( (b between 8 and 10 and c between 6 and 9) OR (b=9 and c=11) という質問コマンドを仮定する。この表現の論理和は、 (a=5 and b=1 and c IN (2,4,9) OR (a=5 and b=8 and c=7) OR (a≧4 and a≦6 and b≧8 and b≦10 and c≧6 and c≦9) OR (a≧4 and a≦6 and b=9 and c=11)
【0066】前記SQLエクスキュータ124は、各論
理和内のすべての相反する述語を除去し、しかる後、極
小組のレコードのみが索引順に読み出されるよう、前記
論理和間の重複を結合する。この例に関して、次のよう
な検索がなされる。 a=4、 b=8 and c≧6 and c≦9 a=4、 b=9 and c≧6 and c≦9 a=4、 b=9、 c=11 a=4、 b=10 and c≧6 and c≦9 a=5、 b=1、 c=2 a=5、 b=1、 c=4 a=5、 b=9、 c=11 a=5、 b=8 and c≧6 and c≦9 a=5、 b=9 and c≧6 and c≦9 a=5、 b=9、 c=11 a=5、 b=10 and c≧6 and c≦9 a=6、 b=8 and c≧6 and c≦9 a=6、 b=9 and c≧6 and c≦9 a=6、 b=9、 c=11 a=6、 b=10 and c≧6 and c≦9
【0067】上記から明らかなように、この発明は、従
来のB−木索引によるアクセス技術に対していくつかの
利点をもたらす。第1に、述語をクラスタに間連づけ、
クラスタを論理和数に関連づけることによって、この発
明は、大変複雑なユーザサーチ質問の使用を可能にし、
従って、述語が既に論理和正規形で表されている質問に
制限されない。さらに、これらの関連づけ技術の使用
は、同一の述語の数個のコピーを格納する必要を無くす
ることによって、メモリスペースの実質的な節約を可能
にする。また、ユーザは、多くののキーコラムのレンジ
およびINリストを指定できる、これらのレンジおよび
INリストは、キーを構築する際に観察されることにな
る。同様に、指定されなかったキー述語は、故意にまた
は不注意から省かれたのかに関わらず、使用可能なキー
索引の構築を阻止しない。さらに、異なる論理和からの
値を分類して畳込み、1つの論理和のすべての述語の極
小組を求めることによって、サーチキーから同一のレコ
ードが反復的に読み出されることが防止され(これは、
既に読み出されたレコードのテーブルを構築する必要を
除去する)、最少量のデータのみが適当な順序で読み出
されることになる。この発明をSQLを使用したDBM
Sに関して説明してきたが、その他の質問言語が使用さ
れてもよい。
【0068】
【発明の効果】以上のように、この発明は、効率的に複
雑なユーザサーチ質問の使用を可能にし、メモリスペー
スの実質的な節約を可能にし、且つ、データ読出し必要
量を最少化できるので、効率的且つ簡単にデータベース
をサーチできる、という優れた効果を奏する。
【図面の簡単な説明】
【図1】データベースにデータを格納し、該データにユ
ーザがアクセスできるようにするコンピュータシステム
のブロック図。
【図2】データベース管理システムに格納されたデータ
構造のブロック図。
【図3】データベーステーブルおよびプログラムを示す
図2のカタログデータ構造のブロック図。
【図4】図3のカタログデータ構造に含まれるテーブル
の一部分を示すブロック図。
【図5】図3のカタログデータ構造に含まれるテーブル
のその他の部分を示すブロック図。
【図6】図3のカタログデータ構造に含まれるテーブル
のさらにその他の部分を示すブロック図。
【図7】図3のカタログデータ構造に含まれるテーブル
のさらにその他の部分を示すブロック図。
【図8】図3のカタログデータ構造に含まれるテーブル
のさらにその他の部分を示すブロック図。
【図9】図3のカタログデータ構造に含まれるテーブル
のさらにその他の部分を示すブロック図。
【図10】図3のカタログデータ構造に含まれるテーブ
ルのさらにその他の部分を示すブロック図。
【図11】図3のカタログデータ構造に含まれるテーブ
ルのさらにその他の部分を示すブロック図。
【符号の説明】
102 コンピュータ 104 ユーザワークステーションコンピュータ 110 CPU 112 RAM 114 通信インターフェース 120 データベーステーブル 122 データベース索引 123 DBMS
フロントページの続き (72)発明者 デビッド・ダブリュ・バーズオール アメリカ合衆国 カリフォルニア 95051, サンタ・クララ, ベントン・ストリー ト 3708 (72)発明者 ロヒト・エヌ・ジェイン アメリカ合衆国 ミシガン 48309, ロ チェスター・ヒルズ, ワージントン・コ ート 3658 (72)発明者 ヘディー・ヤグマイ アメリカ合衆国 カリフォルニア 95129, サンノゼ, クラレンドン・ストリート 7202

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 サーチキーコラムの値に対応する述語の
    値を指定するサーチ質問に従って構築された個々のマル
    チコラムサーチキーを使用して、データベースをサーチ
    する方法であって、 (a)前記サーチ質問によって指定された述語の値を評
    価するステップと、 (b)1つのレンジの値として指定された各述語の値ご
    とに、これに対応するキーコラムに同等レンジの値を割
    当てるステップと、 (c)INリストの値として指定された各述語の値ごと
    に、これに対応するキーコラムに同等レンジの値を割当
    てるステップと、 (d)指定されていない各述語の値ごとに、これに対応
    するキーコラムに或るレンジの値を割当てるステップ
    と、 (e)前記割当てるステップ(b)〜(d)の前記値を
    使用して、個々のサーチキーを構築するステップとから
    なる方法。
  2. 【請求項2】 サーチ質問が複数の論理和を含み、前記
    評価するステップ(a)が、各前記論理和に対して特有
    の論理和数を割当てるステップを含む請求項1に記載の
    方法。
  3. 【請求項3】 前記論理和数を割当てるステップが、I
    Nリスト述語に対して特有の論理和数を割当てるステッ
    プを含む請求項2に記載の方法。
  4. 【請求項4】 前記ステップ(b)で割当てられた前記
    同等レンジの値が、対応するキーコラムの最小値および
    最大値として指定される請求項1に記載の方法。
  5. 【請求項5】 前記評価するステップ(a)が、述語を
    クラスタに関連付け、クラスタを論理和数に関連づける
    ステップを含む請求項1又は2に記載の方法。
  6. 【請求項6】 前記使用するステップ(e)が、同一の
    コラムからの相反する述語の値を除去することによっ
    て、該コラムに関する潜在的なサーチキーの値の数を減
    じるステップを含む請求項1に記載の方法。
  7. 【請求項7】 前記使用するステップ(e)が、前記論
    理和によって指定される冗長な値を除去することによっ
    て、前記サーチ質問を実行するために必要なサーチキー
    の数を最少化するステップを含む請求項1に記載の方
    法。
  8. 【請求項8】 データベースオブジェクトを格納し、ユ
    ーザが格納された該データベースオブジェクトにおける
    データにアクセスできるようにするコンピュータシステ
    ムであって、 前記データベースオブジェクトを格納するメモリと、 ユーザによるデータベース質問がユーザワークステーシ
    ョンから前記コンピュータシステムに中継されるように
    し、前記コンピュータシステムからの質問結果が前記ユ
    ーザワークステーションによって利用されるようにする
    ための通信インターフェイスと、 ユーザワークステーションから受信したサーチ質問に応
    じて、前記メモリと前記通信インターフェイスとの間の
    インタラクションを制御し、サーチキーコラム値に対応
    する述語値を指定するプロセッサと、 前記プロセッサがサーチキーコラム値に対応する述語値
    を指定するサーチキーに従って個々のマルチコラムサー
    チキーを構築するようにするコンピュータプログラムで
    あって、前記サーチ質問によって指定された前記述語値
    を評価する第1の手続きを含むものと、 前記サーチ質問によって指定される各述語値ごとに、同
    等レンジの値を、あるレンジの値として、対応するキー
    コラムに割り当てる第2の手続きと、 前記サーチ質問によって指定された各述語値ごとに、同
    等の値を、INリストの値として、対応するキーコラム
    に割り当てる第3の手続きと、 各指定されていない述語値ごとに、或るレンジの値を対
    応するキーコラムに割り当てる第4の手続きと、 前記第1の手続き〜第4の手続きによって割り当てられ
    た値から、個々のサーチキーを構築する第5の手続きと
    を具備したコンピュータシステム。
  9. 【請求項9】 サーチ質問が複数の論理和を含み、前記
    第1の手続きが、前記サーチ質問における各前記論理和
    に対して特有の論理和数を割り当てるよう前記プロセッ
    サを動作させる請求項8に記載のコンピュータシステ
    ム。
  10. 【請求項10】 前記第1の手続きが、INリスト述語
    に対して特有の論理和数を割り当てるよう前記プロセッ
    サを動作させる請求項8又は9に記載のコンピュータシ
    ステム。
  11. 【請求項11】 前記第2の手続きに応じて前記プロセ
    ッサによって割り当てられる同等レンジの値が、対応す
    るキーコラムの最小値および最大値として指定される請
    求項8に記載のコンピュータシステム。
  12. 【請求項12】 前記第1の手続きが、述語をクラスタ
    に関連づけ、クラスタを論理和数に関連づけるよう前記
    プロセッサを動作させる請求項8又は9に記載のコンピ
    ュータシステム。
  13. 【請求項13】 前記第5の手続きが、同一のコラムか
    らの相反する述語値を削除し、該コラムに関する潜在的
    なサーチキー値の数を減じるよう前記プロセッサを動作
    させる請求項8に記載のコンピュータシステム。
  14. 【請求項14】 前記第5の手続きが、前記論理和によ
    って指定される冗長な値を除去することによって、前記
    サーチ質問を実行するために必要なサーチキーの数を最
    少化するよう前記プロセッサを動作させる請求項8に記
    載のコンピュータシステム。
  15. 【請求項15】 データベースをサーチするために使用
    する個々のマルチコラムサーチキーを構築するための、
    コンピュータによって読取り可能なコードを格納したコ
    ンピュータが使用可能な媒体を備え、前記サーチキーが
    サーチキーコラム値に対応する述語値を指定するサーチ
    質問に従って構築されているコンピュータプログラム製
    品であって、 前記サーチ質問によって指定される前記述語値を評価す
    るようコンピュータを動作させる、第1のコンピュータ
    によって読み取り可能なプログラムコード装置と、 あるレンジの値として指定される各述語値ごとに前記対
    応する述語値に対して同等レンジの値を割当てるようコ
    ンピュータを動作させる、第2のコンピュータによって
    読み取り可能なプログラムコード装置と、 INリストの値として指定される各述語値ごとに前記対
    応する述語値に対して同等の値を割当てるようコンピュ
    ータを動作させる、第3のコンピュータによって読み取
    り可能なプログラムコード装置と、 各指定されていない述語値ごとに前記対応する述語値に
    対して或るレンジの値を割当てるようコンピュータを動
    作させる、第4のコンピュータによって読み取り可能な
    プログラムコード装置と、 前記同等の値を使用して個々のサーチキーを構築するよ
    うコンピュータを動作させる、第5のコンピュータによ
    って読み取り可能なプログラムコード装置とを具備した
    コンピュータプログラム製品。
  16. 【請求項16】 サーチ質問が複数の論理和を含み、前
    記第1のコンピュータによって読み取り可能なプログラ
    ムコード装置が、各前記論理和に対して特有の論理和数
    を割当てるようコンピュータを動作させるものである請
    求項15に記載のコンピュータプログラム製品。
  17. 【請求項17】 前記コンピュータが、INリスト述語
    に対して特有の論理和数を割当てるよう動作される請求
    項16に記載のコンピュータプログラム製品。
  18. 【請求項18】 前記第2のコンピュータによって読み
    取り可能なプログラムコード装置に応答して前記コンピ
    ュータによって割当てられた前記値が、対応するキーコ
    ラムの最小値および最大値として指定される請求項15
    に記載のコンピュータプログラム製品。
  19. 【請求項19】 前記第1のコンピュータによって読み
    取り可能なプログラムコード装置が、述語をクラスタに
    関連づけ、クラスタを論理和数に関連づけるよう前記コ
    ンピュータを動作させる請求項16に記載のコンピュー
    タプログラム製品。
  20. 【請求項20】 前記第5のコンピュータによって読み
    取り可能なプログラムコード装置が、さらに、同一のコ
    ラムからの相反する述語の値を除去することによって、
    該コラムに関する潜在的なサーチキーの値の数を減じる
    よう前記コンピュータを動作させる請求項15に記載の
    コンピュータプログラム製品。
  21. 【請求項21】 前記第5のコンピュータによって読み
    取り可能なプログラムコード装置が、さらに、前記論理
    和によって指定される冗長な値を除去することによっ
    て、前記サーチ質問を実行するために必要なサーチキー
    の数を最少化するよう前記コンピュータを動作させる請
    求項15に記載のコンピュータプログラム製品。
JP8168445A 1995-06-07 1996-06-07 データベースをサーチする方法およびコンピュータシステム Pending JPH1125096A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/481649 1995-06-07
US08/481,649 US5778354A (en) 1995-06-07 1995-06-07 Database management system with improved indexed accessing

Publications (1)

Publication Number Publication Date
JPH1125096A true JPH1125096A (ja) 1999-01-29

Family

ID=23912827

Family Applications (2)

Application Number Title Priority Date Filing Date
JP8168445A Pending JPH1125096A (ja) 1995-06-07 1996-06-07 データベースをサーチする方法およびコンピュータシステム
JP8182656A Pending JPH09171478A (ja) 1995-06-07 1996-06-07 改良された索引によるアクセスを使用するデータベース管理システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP8182656A Pending JPH09171478A (ja) 1995-06-07 1996-06-07 改良された索引によるアクセスを使用するデータベース管理システム

Country Status (4)

Country Link
US (1) US5778354A (ja)
EP (1) EP0747839A1 (ja)
JP (2) JPH1125096A (ja)
CA (1) CA2178264A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357063A (ja) * 2000-04-28 2001-12-26 Internatl Business Mach Corp <Ibm> フィルタリングを含むデータベース・クエリの実行

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916607A (ja) * 1995-06-26 1997-01-17 Hitachi Ltd データベース管理システムにおけるインデクス管理方法
US5790861A (en) * 1995-07-07 1998-08-04 Sun Microsystems, Inc. Method and apparatus for generating executable code from object-oriented C++ source code
US6147773A (en) * 1995-09-05 2000-11-14 Hewlett-Packard Company System and method for a communication system
US5913208A (en) * 1996-07-09 1999-06-15 International Business Machines Corporation Identifying duplicate documents from search results without comparing document content
GB9706400D0 (en) * 1997-03-27 1997-05-14 British Telecomm Distributed computing
US6073134A (en) * 1997-05-29 2000-06-06 Oracle Corporation Method article of manufacture, and apparatus for generating a multi-dimensional record management index
US6108657A (en) * 1997-05-29 2000-08-22 Oracle Corporation Method, article of manufacture, and apparatus for generating a multi-dimensional record layout mapping
US5937408A (en) * 1997-05-29 1999-08-10 Oracle Corporation Method, article of manufacture, and apparatus for generating a multi-dimensional record structure foundation
US5970493A (en) * 1997-05-29 1999-10-19 Oracle Corporation Method, article of manufacture, and apparatus for generating a multi-dimensional record display
US5940818A (en) * 1997-06-30 1999-08-17 International Business Machines Corporation Attribute-based access for multi-dimensional databases
US6285996B1 (en) * 1997-07-10 2001-09-04 International Business Machines Corp. Run-time support for user-defined index ranges and index filters
US6243703B1 (en) * 1997-10-14 2001-06-05 International Business Machines Corporation Method of accessing and displaying subsystem parameters including graphical plan table data
US6195653B1 (en) * 1997-10-14 2001-02-27 International Business Machines Corporation System and method for selectively preparing customized reports of query explain data
US6185552B1 (en) * 1998-03-19 2001-02-06 3Com Corporation Method and apparatus using a binary search engine for searching and maintaining a distributed data structure
US6154746A (en) * 1998-04-22 2000-11-28 At&T Corp. High-dimensional index structure
US6466942B1 (en) 1998-11-30 2002-10-15 Fmr Corp. Using indexes to retrieve stored information
US6587856B1 (en) * 1998-12-07 2003-07-01 Oracle International Corporation Method and system for representing and accessing object-oriented data in a relational database system
US7801913B2 (en) 1998-12-07 2010-09-21 Oracle International Corporation System and method for querying data for implicit hierarchies
US6615207B1 (en) 1998-12-10 2003-09-02 International Business Machines Corporation Method of formulating and presenting search queries to a tabular database through a user-interactive computer display interface
US6356286B1 (en) 1998-12-10 2002-03-12 International Business Machines Corporation User-interactive computer display interface with a tree having a plurality of user selectable nodes representing a plurality of search queries to a tabular database
US6922708B1 (en) * 1999-02-18 2005-07-26 Oracle International Corporation File system that supports transactions
US6513028B1 (en) 1999-06-25 2003-01-28 International Business Machines Corporation 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
CA2279222C (en) * 1999-07-30 2002-07-16 Ibm Canada Limited-Ibm Canada Limitee Direct call threaded code
US7418435B1 (en) * 1999-08-05 2008-08-26 Oracle International Corporation Multi-model access to data
US7546304B1 (en) * 1999-10-29 2009-06-09 Computer Sciences Corporation Configuring keys for use in processing business data
US7693844B1 (en) 1999-10-29 2010-04-06 Computer Sciences Corporation Configuring processing relationships among entities of an organization
US6353821B1 (en) * 1999-12-23 2002-03-05 Bull Hn Information Systems Inc. Method and data processing system for detecting patterns in SQL to allow optimized use of multi-column indexes
US6915289B1 (en) 2000-05-04 2005-07-05 International Business Machines Corporation Using an index to access a subject multi-dimensional database
US7269786B1 (en) 2000-05-04 2007-09-11 International Business Machines Corporation Navigating an index to access a subject multi-dimensional database
US6728721B1 (en) * 2000-06-23 2004-04-27 Microsoft Corporation System and method for maintaining a user's state within a database table
US6892205B1 (en) * 2001-02-28 2005-05-10 Oracle International Corporation System and method for pre-compiling a source cursor into a target library cache
US6668258B2 (en) * 2001-09-26 2003-12-23 Alain De Cheveigne Method for the scaling of the indexing data of a multimedia document
US20030110153A1 (en) * 2001-12-11 2003-06-12 Sprint Communications Company L.P. Database performance monitoring method and tool
US7472127B2 (en) * 2002-12-18 2008-12-30 International Business Machines Corporation Methods to identify related data in a multidimensional database
US7243098B2 (en) * 2002-12-19 2007-07-10 International Business Machines Corporation Method, system, and program for optimizing aggregate processing
US7124137B2 (en) * 2002-12-19 2006-10-17 International Business Machines Corporation Method, system, and program for optimizing processing of nested functions
US8239343B2 (en) * 2003-05-23 2012-08-07 Bmc Software, Inc. Database reorganization technique
US7835953B2 (en) * 2003-09-29 2010-11-16 International Business Machines Corporation Method and structure for monitoring moving objects
US8972380B2 (en) * 2003-09-29 2015-03-03 International Business Machines Corporaton System and method for monitoring events against continual range queries
US7376638B2 (en) * 2003-12-24 2008-05-20 International Business Machines Corporation System and method for addressing inefficient query processing
US7120864B2 (en) 2004-01-27 2006-10-10 International Business Machines Corporation Eliminating superfluous namespace declarations and undeclaring default namespaces in XML serialization processing
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US7624119B2 (en) * 2004-02-11 2009-11-24 International Business Machines Corporation Low-overhead built-in timestamp column for relational database systems
US7406477B2 (en) * 2004-03-12 2008-07-29 Sybase, Inc. Database system with methodology for automated determination and selection of optimal indexes
US20050210023A1 (en) * 2004-03-18 2005-09-22 Renato Barrera Query optimizer using implied predicates
US7620632B2 (en) * 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7627591B2 (en) 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US7921076B2 (en) 2004-12-15 2011-04-05 Oracle International Corporation Performing an action in response to a file system event
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US7580922B2 (en) * 2005-01-04 2009-08-25 International Business Machines Corporation Methods for relating data in healthcare databases
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US8356040B2 (en) 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
US8949455B2 (en) * 2005-11-21 2015-02-03 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US20070192215A1 (en) * 2006-02-10 2007-08-16 Taylor Thomas B Computer-implemented registration for providing inventory fulfillment services to merchants
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
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
US7797319B2 (en) * 2006-05-15 2010-09-14 Algebraix Data Corporation Systems and methods for data model mapping
US7769754B2 (en) * 2006-05-15 2010-08-03 Algebraix Data Corporation Systems and methods for data storage and retrieval using algebraic optimization
US7720806B2 (en) * 2006-05-15 2010-05-18 Algebraix Data Corporation Systems and methods for data manipulation using multiple storage formats
US8024235B2 (en) * 2006-06-21 2011-09-20 Microsoft Corporation Automatic search functionality within business applications
US7831620B2 (en) * 2006-08-31 2010-11-09 International Business Machines Corporation Managing execution of a query against a partitioned database
US7840590B2 (en) * 2006-12-18 2010-11-23 Oracle International Corporation Querying and fragment extraction within resources in a hierarchical repository
US7853480B2 (en) * 2007-05-21 2010-12-14 Amazon Technologies, Inc. System and method for providing export services to merchants
US7725448B2 (en) * 2007-08-31 2010-05-25 International Business Machines Corporation Method and system for disjunctive single index access
US8135738B2 (en) * 2008-08-20 2012-03-13 International Business Machines Corporation Efficient predicate evaluation via in-list
US20110082855A1 (en) * 2009-10-01 2011-04-07 Al-Omari Awny K Multi-dimensional access to data
US8200660B2 (en) * 2009-10-22 2012-06-12 Hewlett-Packard Development Company, L.P. System and method for executing queries
US8359316B2 (en) * 2010-03-01 2013-01-22 International Business Machines Corporation Database table look-up
JP5460486B2 (ja) * 2010-06-23 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データをソートする装置及び方法
US8738673B2 (en) 2010-09-03 2014-05-27 International Business Machines Corporation Index partition maintenance over monotonically addressed document sequences
US10346375B2 (en) * 2012-04-26 2019-07-09 Entit Software Llc In-database parallel analytics
US8583687B1 (en) 2012-05-15 2013-11-12 Algebraix Data Corporation Systems and methods for indirect algebraic partitioning
US8849871B2 (en) 2012-10-04 2014-09-30 Oracle International Corporation Efficient pushdown of joins in a heterogeneous database system involving a large-scale low-power cluster
US10204140B2 (en) 2013-03-14 2019-02-12 Oracle International Corporation Massively parallel and in-memory execution of grouping and aggregation in a heterogeneous system
US9135301B2 (en) * 2013-03-14 2015-09-15 Oracle International Corporation Pushdown of sorting and set operations (union, intersection, minus) to a large number of low-power cores in a heterogeneous system
JP6285718B2 (ja) * 2013-08-29 2018-02-28 株式会社日立システムズ 広域管理システム、広域管理装置、建物管理装置、および広域管理方法
US9519662B2 (en) * 2013-09-10 2016-12-13 International Business Machines Corporation Boolean term conversion for null-tolerant disjunctive predicates
KR101679011B1 (ko) * 2014-06-26 2016-11-24 주식회사 알티베이스 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치
US10382056B2 (en) 2015-11-10 2019-08-13 International Business Machines Corporation Fast evaluation of predicates against compressed data
US11093500B2 (en) * 2019-10-28 2021-08-17 Ocient Holdings LLC Enforcement of minimum query cost rules required for access to a database system

Family Cites Families (9)

* 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 リレ−シヨナル・モデルにおけるジヨイン演算処理方式
US4506326A (en) * 1983-02-28 1985-03-19 International Business Machines Corporation Apparatus and method for synthesizing a query for accessing a relational data base
US4967341A (en) * 1986-02-14 1990-10-30 Hitachi, Ltd. Method and apparatus for processing data base
US5043872A (en) * 1988-07-15 1991-08-27 International Business Machines Corporation Access path optimization using degrees of clustering
US5560006A (en) * 1991-05-15 1996-09-24 Automated Technology Associates, Inc. Entity-relation database
JPH077422B2 (ja) * 1991-08-23 1995-01-30 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ処理データベース・システムにおけるジョインの実行方法及びシステム
US5559948A (en) * 1992-12-23 1996-09-24 International Business Machines Corporation Apparatus and method for manipulating an object in a computer system graphical user interface
US5560007A (en) * 1993-06-30 1996-09-24 Borland International, Inc. B-tree key-range bit map index optimization of database queries
US5519859A (en) * 1993-11-15 1996-05-21 Grace; John A. Method and apparatus for automatic table selection and generation of structured query language instructions

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357063A (ja) * 2000-04-28 2001-12-26 Internatl Business Mach Corp <Ibm> フィルタリングを含むデータベース・クエリの実行
US6879977B2 (en) 2000-04-28 2005-04-12 International Business Machines Corporation Execution of database queries including filtering
US8825616B2 (en) 2000-04-28 2014-09-02 International Business Machines Corporation Execution of database queries including filtering

Also Published As

Publication number Publication date
US5778354A (en) 1998-07-07
EP0747839A1 (en) 1996-12-11
JPH09171478A (ja) 1997-06-30
CA2178264A1 (en) 1996-12-08

Similar Documents

Publication Publication Date Title
JPH1125096A (ja) データベースをサーチする方法およびコンピュータシステム
US7080062B1 (en) Optimizing database queries using query execution plans derived from automatic summary table determining cost based queries
EP0723239B1 (en) Relational database system and method with high availability compilation of SQL programs
US5761657A (en) Global optimization of correlated subqueries and exists predicates
US6338056B1 (en) Relational database extender that supports user-defined index types and user-defined search
US6466931B1 (en) Method and system for transparently caching and reusing query execution plans efficiently
US6505189B1 (en) Aggregate join index for relational databases
US6789071B1 (en) Method for efficient query execution using dynamic queries in database environments
US6108651A (en) Heuristic co-identification of objects across heterogeneous information sources
US6339769B1 (en) Query optimization by transparently altering properties of relational tables using materialized views
US6278994B1 (en) Fully integrated architecture for user-defined search
US6625593B1 (en) Parallel query optimization strategies for replicated and partitioned tables
US7275056B2 (en) System and method for transforming queries using window aggregation
US6289334B1 (en) Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US6505188B1 (en) Virtual join index for relational databases
US7373341B2 (en) Computer readable medium, method and apparatus for preserving filtering conditions to query multilingual data sources at various locales when regenerating a report
US20040220896A1 (en) System and method for optimizing queries on views defined by conditional expressions having mutually exclusive conditions
US6167399A (en) Join index for relational databases
US7783625B2 (en) Using data in materialized query tables as a source for query optimization statistics
US7542962B2 (en) Information retrieval method for optimizing queries having maximum or minimum function aggregation predicates
JPH0527149B2 (ja)
US6385603B1 (en) Joined table expression optimization by query transformation
US6697794B1 (en) Providing database system native operations for user defined data types
US6748377B1 (en) Facilitating query pushdown in a multi-tiered database environment
US20020049747A1 (en) Method for integrating and accessing of heterogeneous data sources