JPH07141236A - 外部関数を有するリレーショナル・データベース・システムにおける照会最適化方法及び装置 - Google Patents

外部関数を有するリレーショナル・データベース・システムにおける照会最適化方法及び装置

Info

Publication number
JPH07141236A
JPH07141236A JP6131601A JP13160194A JPH07141236A JP H07141236 A JPH07141236 A JP H07141236A JP 6131601 A JP6131601 A JP 6131601A JP 13160194 A JP13160194 A JP 13160194A JP H07141236 A JPH07141236 A JP H07141236A
Authority
JP
Japan
Prior art keywords
query
queries
rule
inquiry
optimization
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
JP6131601A
Other languages
English (en)
Inventor
Surajit Chaudhuri
スラジト・チャウドフリ
Kyuseok Shim
キュセオク・シン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH07141236A publication Critical patent/JPH07141236A/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/24542Plan optimisation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (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
6)を呼び出すか、データベースにないデータにアクセス
する必要がある。本発明はここで示した外部関数(16)に
おける関係照会(10)をコストに基づいた最適化を行う包
括的アプローチを提供する。この最適化はそのような意
味を表現するための宣言型規則言語(例えばSQL)を使
った外部関数について考慮されている。書き換え規則を
適用する手順と同等照会の実行空間を生成する手順が記
述される。この拡張された実行空間から最適プランを得
る手順についても記述される。さらに、外部関数につい
て必要とされるコストモデル拡張の必要性についても記
述される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、リレーショナル・デー
タベース・システムに関するものであり、とりわけ、外
部関数を備えたリレーショナル・データベース・システ
ムに関する照会最適化技法に関するものである。
【0002】
【従来の技術】リレーショナル・データベース・システ
ムはそのデータベースに記憶されたデータの照会を便利
よく行えるようにする。しかし、多くの応用プログラム
では、データベースにとって外部のデータ及び操作(外
部関数と呼ばれる)を統合する必要がある。例えば、関
係照会の一部として、数学関数及びUNIXライブラリ関数
を呼び出すのは便利である。さらに多くの問題領域に関
して、高度に調整された応用プログラムが存在する。こ
の応用プログラムを一から開発することはけた外れに高
くつくので、こうした既存のプログラムを活用する能力
は重要である。また、多くの応用プログラムでは、デー
タベースには必要なデータの一部だけしか記憶すること
ができない。それ以上のデータについては外部に常駐さ
せることが可能である。外部データに対するアクセスは
1組のインターフェイス・ルーチンによって可能にな
る。
【0003】一例として、今日では地理データを記憶
し、これにアクセスすることを可能にする多くの特殊な
地理情報システム(GIS)が利用可能である。一方、属性
(例えば、都市の人口)に関する情報はリレーショナル
・データベースに記憶されるのが普通である。従って、
GIS業務プログラムにとって関係照会言語を利用するこ
とのできる能力は、GISパッケージによって提供された
関数を呼び出すことのできる能力と同じぐらい重要であ
る。一般に、関係照会において外部関数を呼び出すこと
のできる能力は応用プログラムの開発において重要であ
る。
【0004】外部関数によって導入される最適化につい
ての重要なチャレンジを明らかにするため、1992年にフ
ロリダ州マイアミで行われたProceedings of the 3rd I
nternational Symposium on Large Spatial Databases
におけるKolovson他によるInteroperability of spatia
l and attribute data managers:A case studyに解説さ
れた初期の応用プログラムから取り上げた2つの例につ
いて考察することにする。この既知の応用プログラムは
Papyrusプロジェクトにおいて作成されたものである
が、これについては、1991年にフロリダ州マイアミで行
われたProceedings of the First International Confe
rence on Parallel and Distributed SystemsにおけるC
onnors他によるThe papyrus integrated data server参
照のこと。該応用プログラムは北カリフォルニアのベイ
エリアにおける事業及びその所在地に関する情報にアク
セスすることを可能にする。該応用プログラムは、ETAK
MapEngine及び関係記憶マネージャ上に作成された。カ
リフォルニア州メンロ・パークのETAK Inc.は車両用ナ
ビゲーション装置を設計し、デジタル・マップ・データ
ベースを作成する会社である。
【0005】MapEngineは地理の記憶及び照会を可能に
する地理データ・マネージャである。MapEngineはファ
イルMapにベイエリアにおける事業所の所在地を記憶し
ている。リレーショナル・データベースはテーブルBusi
nessに事業に関する属性情報(例えば事業のタイプ)を
記憶するために利用される。このテーブルの各論理レコ
ードには、MapEngineに関するキーとしての働きをする
追加属性も記憶される。MapEngineはこのキーを利用し
て事業所在地を検索する。同様に、MapEngineにおける
各レコードはリレーショナル・データベースのテーブル
Business内の対応する事業所に関する属性情報が含まれ
る論理レコードを指している。従って、照会範囲はMapE
ngine内だけでなく関係システムへと広げられる事にな
る。
【0006】例1:この例の目的は最適化にとっての外
部関数に関連した意味情報の重要性を強調することにあ
る。MapEngineは地図における全てのポイント(さまざ
まな表現が可能であるが、ポイントまたはウインドウは
単一引数として表現される)にアクセスするための関数
(Map)、及び所与のポイントがウインドウ内にあるか否
かをテストするためのブール関数(Inside)を提供する。
関数Insideは算術関数である。MapEngineはウインドウ
が与えられると、そのウインドウ内にある地図の全ポイ
ントを戻す関数Mapclipも提供する。ウインドウが与え
られると、そのウインドウ内にある地図の全ポイントを
見つける照会について考察することにする。この照会に
対する応答は関数Mapを呼び出し、各検索位置がウイン
ドウ内にあるかテストする(関数Insideを用いて)こと
によって可能になる。しかし、関数Mapclipを利用する
と照会の評価コストを大幅に減少させることができるの
で、関数Mapclipを呼び出すことによって照会に応答す
ることができるという事実を利用することが重要であ
る。
【0007】例2:この例の目的は意味最適化によって
所与の照会に修正を加える決定は照会のためのコストを
考慮する必要があるという点を強調することにある。パ
ロアルトのダウンタウンにある全レストランを見つける
問題について考察してみることにする。この照会に対す
る応答はテーブルBusinessから全てのレストランを選択
し、次に関数Mapclipを実施することによって可能にな
る。しかし、MapEngineはレストランである全事業所か
ら成るファイルMap_Restaurantも有している。従ってこ
の意味情報を用いて該照会に応答することができる。フ
ァイルMap_Restaurantを使用してベイエリアの全レスト
ランを求め、次に関数Insideを呼び出してパロアルトの
ダウンタウンにあるレストランを選択することが可能で
ある。この2つの照会は同等であるが、パロアルトのダ
ウンタウンに所在地を限定する索引付け効果が事業をレ
ストランに限定することに基づく索引付けよりも有効で
あるか否かによって、たとえ程度問題であるにしろ、該
照会の一方に関する最適プランのほうがもう一方の照会
に関する最適プラン比べて優れている可能性がある。例
1は、外部関数が存在する場合、同じ照会に応答するの
に多くの方法が存在する可能性があり、こうした意味情
報は照会の最適化にとって極めて貴重になるので十分理
解する必要があるということを表している。例2は、照
会最適化に関するこうした応用プログラムの意味情報は
照会コストを考慮する必要があることを表している。
【0008】関係照会に対する応答能力は評価オプショ
ンのレパートリ、及びこれらのオプションを選択するオ
プティマイザによって効果的に反映される。従って、関
係照会によって外部関数を呼び出すことができる場合、
データベース・システムはオプティマイザに十分な評価
オプションと必要な拡張性とを提供して外部関数を伴う
照会を有効に最適化できるようにする必要がある。しか
し、既存のオプティマイザはこの要求を満たすことはで
きない。もちろん外部関数を呼び出す問題については他
にも重要な点があるが(例えば、フォーマット変換、複
雑なオブジェクトの支援)本発明では最適化と関連する
問題だけに焦点を合わせている。
【0009】近年、拡張可能度の異なるいくつかの拡張
可能システムが提案されている。例えば、1990年12月の
ACM-SIGMOD RecordにおけるCarey他によるExtensible d
atabase management systems、1987年5月のカリフォル
ニア州サンフランシスコで行われたProceedings of the
1987 ACM-SIGMOD Conference on the Management ofDa
taの160-172ページにおけるGreafe他によるThe exodus
optimizer、1989年6月にオレゴン州ポートランドで行わ
れたProceedings of the 1989 ACM-SIGMOD Conference
on the Management of Dataの377-388ページにおけるHa
ss他によるExtensible query processing in starburs
t、1990年5月にニュージャージー州アトランティック・
シティで行われたProceedings of the 1990 ACM-SIGMOD
Conference on the Management of Dataの281-290ペー
ジにおけるStonebraker他によるOn rules,procedures,c
aching and views in database systems参照のこと。拡
張可能システムにおける最適化のための書き換え言語も
既知のところである。1992年5月に、カリフォルニア州
サン・ディエゴで行われたProceedings of the1992 ACM
-SIGMOD Conference on the Management of Dataの39-4
8ページにおけるPirahesh他によるExtensible/rule bas
ed query optimization in starburst、1988年6月にイ
リノイ州シカゴで行われたProceedings of the 1988 AC
M-SIGMOD Conference on the Management of Dataの18-
27ページにおけるLohmanによるGrammer-like functiona
l rules for representing query optimization altern
atives、Greafe他による上記論文参照のこと。Pirahes
h、Lohman、及びGreafe他による参考文献の内容はここ
で参照することによって本明細書に組み込まれている。
【0010】これら既知の書き換え言語の主たる欠点
は、照会に現れる外部関数を扱う能力に欠けるというこ
とである。もう1つの欠点は、既存の書き換え言語が作
業が厄介で複雑な中級プログラミング言語(例えば、
C)に似ているということである。既存の書き換え言語
のさらにもう1つの欠点は、最適化技法が書き換え規則
によって左右されるので最適化が複雑になるということ
である。
【0011】外部関数がある場合の照会最適化について
は、1989年8月にアムステルダムで行われたProceedings
of the 15th International VLDB Conferenceの195-20
3ページにおけるChimenti他によるTowards an open arc
hitecture for LDLにおいて考察されており、この内容
はここで参照することによって本明細書に組み込まれて
いる。この参考文献においてLDLプログラムは外部テー
ブルを使用可能とし、外部テーブルに関するコスト記述
子を定義するように拡張されている。LDLシステムは外
部関数に関する意味情報を含む書き換え規則を利用して
いない。
【0012】従って、外部関数を呼び出す照会を最適化
しようとする従来の試みでは、書き換え規則に高級言語
を利用して外部関数の意味関係を表そうとはしていな
い。また、従来の試みでは外部関数に関して書き換え規
則及びコスト・モデルを利用して最適プランが得られる
ことを保証することもできなかった。従って、こうした
外部関数が存在する場合における関係照会の照会コスト
に基づく最適化に関する問題は、これまで満足のゆく取
り組みがなされていなかった。
【0013】
【発明が解決しようとする課題】本発明の課題は外部関
数が存在する場合の関係照会に対する照会コストに基づ
く最適化に改良を施すことにある。
【0014】
【課題を解決するための手段】一般的に言えば、本発明
は外部関数に関する意味情報を考慮した最適化アプロー
チである。
【0015】より詳しくは、本発明は外部関数が存在す
る場合の照会最適化に関する包括的なアプローチであ
る。書き換え規則を利用して外部関数の意味が表現され
る。書き換え規則は照会言語に対する拡張オプションを
利用して指定される。書き換え規則はオプティマイザに
対して他の同等な照会についての空間を示す。本発明に
よれば、さらに最適プラン(書き換え規則によって生成
された代替照会についてのプランだけでなく、もとの照
会についてのプランからの)が得られることが保証され
る。
【0016】本発明には他に多くの態様があるが、これ
らについては実施例において完全な解説を行うことにす
る。例えば、本発明では書き換え規則の適用に関して、
規則から独立した手順を利用して同等の照会を生成し、
代替照会を最適化する場合に照会間における共通点を活
用する。
【0017】関係照会において外部関数を呼び出せるこ
とは、データベースにとって外部の既存のコード及びデ
ータを活用する機会をもたらすので、多くの応用プログ
ラムにおいて重要である。本発明によれば、外部関数を
呼び出す照会が効率よく有効に最適化できるようにな
る。
【0018】
【実施例】本発明は、同じ参照番号が同じ構成要素を示
す図を用いた以下の詳細な説明により容易に理解され
る。
【0019】以下では、図1〜4を参照しながら本発明
の実施例について解説する。ただし、当該技術の熟練者
には明らかなように、これらの図に関し、ここで示され
る詳細な記述は説明を目的としたもので、本発明がこれ
らの実施例の範囲に限られるものではない。
【0020】本発明は外部関数を呼び出す照会を最適化
するための方法及び装置を具備したリレーショナル・デ
ータベース管理システムに関するものである。意味情報
は、外部関数の意味を表現する書き換え規則を利用し
て、宣言として(SQLに対する単純な拡張オプションを
利用した方法)指定される。意味情報を組み込むことに
よってオプティマイザに利用可能な選択の幅が暗黙のう
ちに拡張される。
【0021】意味情報に含まれた全ての代替照会表現が
考慮され、コストに対する考え方を基に最適プランが選
択される。さらに、最適化アプローチには発見的方法を
組み込むことが可能である。
【0022】図1は、本発明によるリレーショナル・デ
ータベース・システム2を例示したブロック図である。
リレーショナル・データベース・システム2は、最適化
すべき照会10を受け付ける。この照会は書き換え規則12
及びコスト情報13に従って照会10を最適化するオプティ
マイザ11に供給される。特に、オプティマイザ11は処理
すべき照会を受け付け、書き換え規則12を用いて代替照
会を生成し、さらに受け付けた照会及び代替照会を含む
照会グループから「最適」なプランを選択する。リレー
ショナル・データベース・システム2には、リレーショ
ナル・データベース・テーブル15及び外部関数16にアク
セス可能なリレーショナル実行エンジン14も含まれてい
る。書き換え規則12は外部関数16、またはリレーショナ
ル・データベース・テーブル15に関連している。書き換
え規則12の指定子によって書き換え規則の右辺及び左辺
における照会が、全データベースにわたって同等である
ことが保証される。外部関数16は、データベースにとっ
て外部のデータ及び操作を表示している(例えば、外部
条件、外部テーブル、または外部関数)。
【0023】図2は、本発明の態様を例示した基本フロ
ーチャートである。図2に示すように、本発明には3つ
の態様がある。第1の態様は外部関数に関する書き換え
規則の適用20に関するものである。第2の態様は書き換
え規則を用いた代替照会の生成22に関するものである。
第3の態様はコストを考慮したアプローチを用いた最適
プランの選択24に関するものである。これらの態様のそ
れぞれについて以下で詳述することにする。
【0024】発明の第1の態様 本発明の第1の態様は、リレーショナル・データベース
・システム2における外部関数16に関する書き換え規則
12の適用20に関するものである。書き換え規則は外部関
数(例えば、テーブル)を含む照会を、フォーマットが
異なるが、やはり外部関数(例えば、テーブル)を含む
同等の照会として書き換えるために用いられる。その書
き替えられた照会はより効率よく実行することができ
る。従って、外部関数に関する書き換え規則は外部関数
に関する意味情報を考慮することによって、照会オプテ
ィマイザの最適化潜在能力を高めることになる。
【0025】本発明の焦点は論理積照会に向けられてい
る。論理積照会は下記の形式をとるSQLの部分集合に対
応する: SELECT columnlist FROM tablelist WHERE cond1 AND ... AND condn WHERE節は、条件cond1...condnの論理積である点に注意
されたい。論理積照会はどれも単純化された選択・射影
・結合(SPJ)照会である。SQLのこの部分集合が最も広く
用いられている。以下で述べる本発明の実施例は論理積
照会に集中しているが、本発明は一般に全てのSQL照会
に適用可能である。
【0026】表記の便宜上、論理積照会は非再帰型Data
logで行う場合のように領域論理式で表現することがで
きる。例えば、1989年のComputer Sience Pressから刊
行されたUllmanによるPrincipals of Database and Kno
wledge-Bases Systems参照のこと。領域論理式の場合、
論理積照会は被演算項(文字定数)の集合として表現さ
れる。各被演算項は引数を備えたテーブル名である。こ
うした領域論理式には明示的な等式で表される節はな
い。代わりに、等式は式における変数の一致として、暗
黙的に表される。SQLと同様、こうした領域論理式の結
果は論理レコードの集合である。このアプローチは意味
の集合がこうした表記と連関している演繹データベース
に用いられるアプローチとは異なっている。
【0027】外部関数を参照するためには、領域論理表
記における特殊な構文は必要ない。領域論理表記におけ
る外部関数に対する参照は単にもう1つの被演算項とし
て示される。従って、外部関数は外部テーブルとしてモ
デル化される(外部関数及び外部テーブルという用語は
交換可能である)。参照はSQL照会の場合、条件、テー
ブル、または関数として発生する可能性があるが、下記
の例では、領域論理の表現において、照会の外部関数に
対する参照がいかにして一様に被演算項として表現され
るかが示される。
【0028】例3:例1において簡単に述べた照会をわ
ずかに修正したバージョンについて考察してみることに
する。テーブルBUSINESSが5つの属性:NAME、TYPE、EARN
ING、SIZE、及びETAKIDを持っているものと仮定する。Map
Engineにおける地図は、属性ETAKID及びLOCATIONから構
成される外部テーブルMAPとしてモデル化される。両方
のテーブルにおける属性ETAKIDは、MapEngineにあるキ
ーを参照する。例1から、関数Insideが、ポイントがウ
インドウ内にあるか否かをチェックする働きをするとい
う点を想起されたい。従って、それは照会のWHERE節に
おける条件として表現することができる。最後に、外部
関数EXPECTED-REVENUEは入力引数としてレストランのサ
イズを選択し、レストランの平均期待収益を推定する。
下記の照会は、ウインドウw内の地図の中にある全レス
トランを見つけ出し、どこが期待値を超える利益を得て
いるかを突き止める。
【0029】SELECT BUSINESS.NAME,MAP.LOCATION FROM BUSINESS,MAP WHERE BUSINESS.TYPE=‘Restaurant' AND BUSINESS.ETAKID=MAP.ETAKID AND INSIDE(w,MAP.LOCATION) AND BUSINESS.EARNING>EXPECTED-REVENUE(BUSINESS.SIZE) 同じ照会に関する領域論理表現は: Query(name): -Business(name,“Restaurant",earn,size,eid), Map(eid,location), Insidebb(w,location), Exp_Revbf(size,exp), earn>exp である。
【0030】外部関数がテーブル(MAP)として発生する
か、あるいは関数(EXPECTED-REVENUE)として発生するか
によって領域論理表記におけるその表現が変動すること
になる。すなわち、テーブルとして発生する外部関数は
テーブルの属性のそれぞれについて引数を有している
が、関数としての外部関数は全ての入力引数位置に対し
て1つの引数位置を有し、全ての出力引数位置に1つの
引数位置を有している。上付き文字は外部関数に関する
安全制約条件を示すために用いられている。n項の被演
算項の場合、上付き文字は各引数位置毎に1つのn項の
リストである。上付き文字b(制約)は、外部関数を呼
び出す前に、引数に値を受け渡さなければならないか否
かを指示する。そうでなければ、上付き文字はf(フリ
ー)である。例えば、被演算項Insideは両方の引数が制
約されることを必要とする。簡略化のため、以下では全
ての引数がフリーである場合、あるいは制約情報が関連
していない場合には、上付き文字は省略される。
【0031】領域論理表現の場合、外部テーブルであ
れ、あるいは内部(すなわち、内部記憶された)テーブ
ルであれ、全てのテーブルが照会において同様に示され
る。そうではあっても、外部テーブルとデータベース・
テーブルとの区別は照会の実行並びに照会の最適化にと
って重要である。
【0032】書き換え規則の目的は、外部テーブルに関
連した意味情報、及びデータベース・テーブルとの関係
を獲得することにある。書き換え規則の表現は、宣言型
である。書き換え規則が宣言型のため、公式の意味を提
供することができるだけでなく、所与の照会に対する規
則の適用及び代替案の生成22に関して、規則から独立し
たアルゴリズムが促進されることにもなる。
【0033】書き換え規則の表現は照会言語SQLに対す
る単純な拡張だけしか必要としない。概して言えば、書
き換え規則はフォーマットREWRITE QUERY1 AS QUERY2を
有しており、ここでQUERY1及びQUERY2は関係照会であ
る。必要なのは照会の結果が、同じ内容(すなわち、列
数)を備えていることである。重要なポイントは、こう
した規則を適用すると、省略時解釈によってオプティマ
イザ11が所与の照会10に対する代替照会として新しい照
会を生成するということである(新しい照会だけを考慮
するように指定することもできるが)。いずれにせよ、
所与の照会10及び書き換え規則によって生成された代替
照会22からの最終的な照会の選択24はコストを考慮した
最適化に基づいて行われる。
【0034】下記の表記は書き換え規則に利用される。 El(x,y)⇒Er(x,z) 式El(x,y)及びEr(x,z)は、論理積式であり、それぞれ
規則の左辺(lhs)及び右辺(rhs)と呼ばれる。変数x,y
及びzは順序づけられた変数の集合である。書き換え規
則の両側で発生する変数xの集合は普遍変数と呼ばれ
る。さらに詳細に後述するように、書き換え規則によれ
ば、普遍変数はそのままで、規則の左辺が規則の右辺に
よって置換され得る。さらに表記⇔を用いて2つの規則
が同時に指示される(すなわち、双方向規則)。
【0035】書き換え規則の第1の例として、例1で非
公式に用いられている規則について考察することにす
る。この書き換え規則は領域論理表記として次のように
表現することができる: Map(eid,loc), Inside(window,loc) ⇒ Mapclip(eid,loc,window) Mapclipに関する安全制約条件が(ffb)である点に留意さ
れたい。この書き換え規則において、変数eid、loc、及び
windowは全て普遍変数である。
【0036】書き換え規則の第2の例として、例2では
下記の規則が非公式に用いられた。 Business(name,“Restaurant",earn,size,eid), Map(eid,loc) ⇔ Map_Restaurant(eid,loc) この規則によれば、全レストランの所在地を得るために
はBusinessとMapの連結を選択することもできるし、あ
るいはETAKファイルMap_Restaurantを利用することも可
能である。ここでは、eid及びlocは普遍変数である。
【0037】書き換え規則の第3の例として、MapEngin
eの下記規則によれば、あるポイントが2つの所与のウ
インドウに属しているか否かを別個にチェックする代わ
りに、そのポイントがウインドウの共通部分に属するか
否かをチェックすることが可能である。
【0038】Inside(w1,point),Inside(w2,point) ⇒ Inside(w,point),Intersect(w1,w2,w) この書き換え規則を利用することによって、複数のウイ
ンドウにおける全事業を見つけ出す問題が、ウインドウ
の共通部分における全事業を見つける問題へと軽減され
る。
【0039】書き換え規則の第4の例として、下記の書
き換え規則は照会最適化を促進する。適用時に、使用可
能な索引が存在することをオプティマイザに示すことは
有益なことが多い。例えば、所与のeidに関してMapに索
引があるものと仮定する。この仮定に基づく書き換え規
則は次のようになる: Map(eid,loc) ⇔ Mapwithidbf(eid,loc) Mapwithidに関する安全制約条件は、呼び出す前にeidの
指定を必要とする、(bf)である。従来の最適化と全く同
様に、索引の利用はコストの考慮に基づくものであり、
従って所与の照会と上述の規則を用いることによって得
られた照会の中から選択することが必要である。
【0040】概して言えば、書き換え規則を利用し、左
から右の規則を適用して所与の照会に対する代替照会が
生成される。書き換え規則に関連した形式的意味論は2
つの構成要素、すなわち同等性と方向性を有している。
2つの照会は任意のデータベースに関して同じ論理レコ
ードの集合を結果としてもたらす場合、同等と言える。
【0041】まず、書き換え規則は下記の同等性を仮定
する。書き換え規則がEl(x,y) ⇒Er(x,z)の場合、任
意のデータベースに関して下記に明示するように、照会
及びQによって同じ論理レコードの集合が得られ
る: Ql(x):−El(x,y) Qr(x):−Er(x,z) 以上の同等性のため、書き換え規則を利用し、照会に部
分式を「代入」することによって同等照会を導き出すこ
とが可能になる。普遍変数だけが、Qr及びQlの射影変
数として生じるという点に注目されたい。
【0042】次に、書き換え規則は矢印(⇒)で示すよ
うに、方向性も指定する。矢印は、規則の左辺のみが対
応する同等の照会を生成するための右辺によって「置換
され」(この逆はない)ることを指示するために用いら
れる。
【0043】上述の書き換え規則の第1の例について考
察してみることにする。意味論では任意のデータベース
に関して、照会Ql及びQrによる結果として同じ論理レ
コードの集合が得られなければならないことを暗示して
いる。
【0044】Ql(eid,loc,window): -Map(eid,loc), Inside(window,loc) Qr(eid,loc,window): -Mapclip(eid,loc,window) この書き換え規則は、以下で示す照会Qにおいて生じ
る。規則の左辺がQの第2及び第3の被演算項に一致す
る。該被演算項の代わりに規則の右辺から対応する代入
を行うと、照会Q’が得られる。
【0045】Q(name,loc): -Business(name,“Restaurant",earn,eid), Map(eid,loc), Inside(w,loc), Intersect(w1,w2,w) Q'(name,loc): -Business(name,“Restaurant",earn,eid), Mapclip(eid,loc,w), Intersect(w1,w2,w) 意味論上の方向性は、書き換え規則の第3の例における
規則が適用されると同等の照会が得られるが、照会Qに
は適用できないことを暗示している。
【0046】本発明の第1の態様に関する望ましい実施
例において、書き換え規則は照会言語SQLの拡張のよう
な高水準の言語を用いてリレーショナル・データベース
・システム2に提供する(20)。従って、上記においては
論考を単純化するために領域論理表記が用いられている
が、書き換え規則は実際にはSQLの拡張記述の中で示さ
れる。例えば、上述の書き換え規則の第1の例は下記の
ように示すことができる: REWRITE SELECT eid,loc FROM MAP WHERE INSIDE(window,loc) AS SELECT eid,loc FROM MAPCILP WHERE MAPCLIP.WINDOW=WINDOW発明の第2の態様 本発明の第2の態様は、書き換え規則16を用いて代替照
会の生成(22)のために利用されるアプローチに関するも
のである。このセクションでは、単純化のため照会に不
等式が含まれていないものと仮定する。
【0047】書き換え規則の左辺に対して同等な部分式
は新しい照会を導き出すために書き換え規則の右辺に置
き換え可能であることに注意をすることが重要である。
置換ステップは、簡単であるが、部分式が書き換え規則
の左辺と同等であるか否かの判定は、もっと難しい。従
って、2つの論理積照会の同等性をチェックする新規の
手順について以下に述べることにする。
【0048】従来の知識では、変数名称に変更が行われ
ており、照会における文字定数が1対1に対応付けされ
ている場合、及びこの場合に限って2つの論理積照会が
同等であると信じられていた。換言すれば、2つの照会
は同形の場合、及びこの場合に限って同等になる。しか
し、書き換え規則の右辺を書き換え規則の左辺と同等で
あることが分かった部分式に置き換えるだけでは十分で
はない。下記の例には、こうした単純な代入では、同等
性を保証するのに不十分であることが示されている。
【0049】例4:下記書き換え規則の左辺は照会Q1
に一致する。 Business(name,“Restaurant",earn,size,eid), Map(eid,loc) ⇔ Map_Restaurant(eid,loc) ここで、書き換え規則を利用して、Q1から代替照会
1’を生成することができる。 Q1(loc): -Business(bizname,“Restaurant",earn,size,eid), Map(eid,loc), Owner(bizname,“bob") Q1’(loc): -Map_Restaurant(eid,loc), Owner(bizname,“bob") Q1’はQ1に対する単純な代入アプローチを利用した結
果である点に留意されたい。bobはモーテルだけしか所
有していないものと仮定する。照会Q1は空集合を戻す
が、Q1’は戻す必要がない。
【0050】単純な代入に関する問題のポイントは、書
き換え規則の意味論が普遍変数に対してだけ規則の両辺
の同等性を保証するということにある。従って、対応付
けが、1対1の対応付け条件を満たすだけでは不十分で
ある。該対応付けは追加的な制約条件を満たさなければ
ならない。従って2つの論理積照会の同等性をチェック
するための新規の手順は、1対1の対応付けと同様に追
加的制限も満たさなければならない。この新規の手順は
対応付け代入と呼ばれる。
【0051】対応付け代入は下記のように定義される。
1⇒rが書き換え規則でQが照会であるとする。1の変
数からQの変数への対応付けは、下記の場合規則から照
会への対応付け代入と呼ばれる: (a)対応付けが1の中の文字定数からQの中の文字定数
に1対1で行われる; (b)1の普遍変数だけがQの中の定数(もしあれば)に
対応付けされる; (c)非普遍変数のイメージがQの射影変数の中にない; (d)1の非普遍変数のイメージが1のイメージにないQ
の文字として現れない;及び (e)1の定数がそれ自体だけにしか対応付けられない。
【0052】この定義において、対応付けに関する変数
(または文字定数)の「イメージ」という用語は前者の
対応付けが施される変数(または文字定数)を表してい
る。同様に、対応付けに関する照会のイメージは照会に
対応付けを施すことによって得られる文字定数を参照す
る。
【0053】上記定義と例4において実施された対応付
けを比較すると、この場合biznameが非普遍変数のイメ
ージであるため、実施された単純な対応付けは条件(d)
に背くことが判る。例4の照会の変形について考察して
みると、文字定数OwnerはQにおいてHistoric(loc)に置
き換えられる。こうした場合、条件(d)は満たされ、そ
の対応付け代入が行われる。
【0054】代替照会を生成するため、2つの基本的ス
テップを利用して書き換え規則が照会に適用される。ま
ず、規則から照会への対応付け代入が必要な部分式が存
在するか否かの識別を行う。次に、部分式を規則の右辺
に置き換える(変数について名称変更をした後)。
【0055】規則を照会に適用することによって得られ
る全ての同等の論理積照会を生成する手順は以下の通り
である。1対1の対応付け条件を満たすことができる全
ての対応付けが決定され、さらにその手順によって、該
対応付けが対応付け代入の追加的制約条件を満たすか否
かが判定される。単一テーブルへの照会の場合、規則の
適用は、照会と書き替え規則のサイズ(n)における時間
O(n log n)で実施することが可能である。実際にはほ
とんどの照会がこのカテゴリに含まれるので、規則の適
用をしても大部分の照会についてはオーバヘッドがほと
んど生じない。
【0056】書き換え規則を導入する目的は、外部テー
ブルの意味によって生じる代替照会をオプティマイザ11
に提供することである。代替照会は規則を適用すること
によって生成される(22)。生成された照会はそれぞれ所
与の照会と同等である。
【0057】照会の閉包は、書き換え規則の適用によっ
て生成可能な全ての代替照会の集合を表している。すな
わち、書き換え規則の集合Rに関する照会Qの閉包は照
会の集合である: 閉包(R,Q)={Q’|Q⇒* RQ’} 記号Q⇒* RQ’は、Q’が、書き換え規則(集合Rから
取り出される)を有限シーケンスで適用することによっ
て、Qから得られたことを表すために用いられる。 書
き換え規則は下記の例に示すようなシーケンスでも利用
される。例5 :下記の照会について考察する。 Q(loc): -Map(eid,loc), Inside(w1,loc), Inside(w2,loc) 書き換え規則の第3の例における規則を適用すると下記
の照会Q’が生成される: Q’(loc): -Map(eid,loc), Inside(w,loc), Intersect(w1},w2},w) 次に、書き換え規則の第1の例を適用すると下記の照会
Q”が生成される: Q”(loc): -Mapclip(eid,loc,w), Intersect(w1},w2},w) 従来、最適化は照会に関する最適プランの選択に関する
ものであった。しかし、書き換え規則が存在する場合、
本発明では同等照会の集合(閉包)が生成される。従っ
て、最適化の問題は所与の照会の閉包における最適プラ
ンのうちから最も安価なプランを選択することにある。
本発明の最適化アプローチは、最初に、同等照会の集合
を生成(22)し(ステップ1)、次に得られた各照会の最
適プランの中から最も安価なプランを選択(24)すること
である(ステップ2)。ステップ1については、詳細に
後述し、ステップ2については、本発明の第3の態様に
おいて説明する。
【0058】照会と書き換え規則の集合が与えられる
と、閉包手順によって書き換え規則の集合に関する照会
の閉包が計算される。閉包手順については図3に示され
ている。
【0059】図3は本発明の第2の態様による閉包手順
の実施例に関するフローチャートである。閉包は入力照
会と書き換え規則によって生成される同等照会の集合で
ある。該手順は新しい照会が処理に利用可能か否かを判
断(31)することによって開始される。最初のループ時に
その新しい照会が入力照会10になり、利用可能になる。
後続のループ時にはその新しい照会は、手順の他の部分
によって生成された代替照会になる。
【0060】いずれにせよ、利用可能な照会がなければ
手順は完了する。一方、1つ以上の新しい照会が利用可
能であると判定されると(31)次の新しい照会が得られる
(33)。次に、少なくとも1つの書き換え規則が適用する
ために利用可能か否かに基づいて判定が行われる(34)。
この判定34は少なくとも、例えば外部関数の呼び出しに
少なくとも1つの書き換え規則が関連しているか否かを
判定する。照会に用いるのに利用可能な書き換え規則が
なければ、手順は判定31に戻り、次の照会の処理を行
う。
【0061】一方、少なくとも1つの書き換え規則が存
在すると判定されると(34)、次の書き換え規則が得られ
る(35)。次の書き換え規則は、その照会に用いるために
利用可能な書き換え規則の1つである。次の書き換え規
則は、書き換え規則から照会への対応付け代入が実施可
能であるか否かを判定する判定36において用いられる。
対応付け代入の要件については上記において詳細に解説
済みである。対応付け代入が失敗した場合は処理は判定
34に戻り、別の書き換え規則が利用可能か否かが判定さ
れる。対応付け代入がうまくゆけば、新しい照会が書き
換え規則(使用中の)及び照会(使用中の)によって生
成される。その後、書き換え規則が使用中の照会(新た
に生成された照会ではなく)に関して1つ以上の対応付
け代入を有している場合、処理はループし判定36に戻
る。
【0062】特定の閉包アルゴリズム(gen_closure)に
関するプログラミング・コードの一例が表1に含まれて
いる。
【0063】
【表1】
【0064】このアルゴリズムは、やはり表1に含まれ
ている関数rewriteを繰り返し呼び出す。書き換え規則
r及び照会Qが与えられると、関数rewrite(r,Q)は、Q
にrを1回適用することによって得られる全ての照会を
導き出す。表1において、「sound application」という
句は対応付け代入処理の成功を表している。アルゴリズ
ムgen_closureは繰り返し可能で、各繰り返し毎にrewri
teを呼び出すことによって追加照会を生成する基となる
働きをする照会の集合(新)が生じる。以前には生成さ
れなかったこうして導き出された照会だけが、次の繰り
返し処理の基となる働きをする。アルゴリズムgen_clos
ureは、閉包を得るのに有効で、完全な手順である。
【0065】関連する規則に有効にアクセスするには、
規則の左辺に示される非演算項に索引付けされた規則テ
ーブル(図4参照)に規則を保持することが望ましい。
規則をクラス単位に分割することを可能にする、規則ク
ラスを使うこともまた有効である。そして、指定された
クラスの全規則は他のクラスのどの規則よりも早く適用
される。
【0066】概して言えば、図3に示す閉包手順の場
合、終了は書き換え規則の集合に関する照会の閉包が有
限か否かによって決まる。従って、該閉包が有限の場
合、及びこの場合に限って該手順は終了する。しかし、
書き換え規則の集合に関する照会の閉包が無限集合とな
るような照会、及び書き換え規則が存在しうる。結果と
して、閉包を促進するためいくつかの条件が識別され
る。
【0067】書き換え規則の集合が、そのいずれかを満
たせば閉包が保証される2つの条件について解説する。
第1の条件は、長さ非増加特性条件である。この条件
は、全ての規則の右辺の長さが、その左辺の長さ以下で
なければならないということである。例えば、領域論理
式の長さは式における非演算項の数と定義することがで
きる。従って、書き換え規則の右辺がその左辺以下の長
さであれば、その書き換え規則は長さ非増加条件を満た
すことになる。例えば、下記の書き換え規則は長さ非増
加条件を満たすことができない。
【0068】Map_Restaurant(eid,loc) ⇒ Business(name,"Restaurant",earn,eid),Map(eid,lo
c) 第2の条件は、非空白特性条件である。長さ非増加特性
条件は、たとえ長さ非増加特性条件の部分的な違反があ
っても、書き換えられた照会の長さを所定の限界を超え
て増やすことができないという状況を正確に把握できな
い(すなわち、あまりに包括的すぎる)。非空白特性条
件はこれらの状況を把握する。書き換え規則Rの集合の
終了に関するこのテストには、2つのステップがある。
まず、不等式の集合Ineq(R)が書き換え規則の集合Rか
ら導き出される。不等式の集合Ineq(R)は次のように構
成される: −整数変数を全てのテーブル名に関連させる。 −全ての文字をテーブル名に対応する変数に置き換え、
論理積を加算に置き換えることによって全ての領域論理
式に関する代数演算式を得る。
【0069】書式lhs⇒rhsの書き換え規則毎に算術不等
式left_Expright_Expが形成されるが、ここで、left_
Exp及びright_Expは、それぞれlhs及びrhsに関する代数
演算式である。さらに、全ての変数はゼロ以上である。
書き換え規則の集合Rに対応する算術不等式の集合はIn
eq(R)で表示される。Ineq(R)の変数がいずれも空文字
(ヌル)でなければ、書き換え規則の集合Rは照会毎に
有限閉包を有している。Ineq(R)に対する解毎にゼロを
割り当てなければならない場合、Ineq(R)の変数は、空
文字(ヌル)であると言われる。線形計画技法に基づく
効率の良いアルゴリズムが既知のところであり、線形不
等式の集合における変数が全ての解においてゼロである
か否かをチェックするために利用可能である。
【0070】非空白特性条件は、下記の例によって明ら
かにされる。長さ非増加特性を満たすことのできない、
書き換え規則の第2の例におけるMap_Restaurantを含
む、繰り返し適用される書き換え規則の集合について考
察してみることにする。対応する不等式は(mはMap、
rはRestaurant、dはMap_Restaurantとすると): {m0,d0,r0,dm+r,m+rd} 明らかに空文字(ヌル)の変数はなく、従って有限閉包
である。
【0071】上記条件以外に、どちらの終了条件も満た
されない場合(例えば、長さ非増加特性及び非空白特
性)、閉包手順の終了を保証するために発見的方法を利
用することも可能である。こうした場合、閉包手順は閉
包の有限部分集合だけしか列挙しない。こうした部分集
合を指定する技法については後述する。さらに、もし望
むなら、発見的方法を利用して最適化手順のステップ2
における考慮事項からステップ1で生成されたいくつか
の照会を排除することも可能である。
【0072】照会の閉包は、典型的に少数の照会に限定
される。それにもかかわらず、発見的技法は最適化の第
2段階において、最適化のために考慮される同等の照会
の候補数を制限するのに有効である。これら発見的技法
は、2つのタイプが可能である。まず、閉包の部分集合
だけを列挙することが可能である。次に、最適化プロセ
スのステップ2における考慮事項から生成された代替照
会のいくつかを排除することができる。
【0073】閉包の選択的列挙においては、予算を使っ
て列挙で費やされる最長時間を決めることができる。閉
包手順は、この修正を組み込むために簡単に拡張するこ
とが可能である。もう1つの代替案は書き換え規則を修
正することである。この代替アプローチについては下記
の例によって説明する。
【0074】例6: Business(name,“Restaurant",earn,size,eid), Mapclip(eid,loc,window) ⇒ Business(name,“Restaurant",earn,size,eid), Mapclip(eid,loc,small_win), Intersect(window,w,small_win) といった書き換え規則は下記のように修正することが可
能である: Business(name,“Restaurant",earn,size,eid), Mapclip(eid,loc,window) ⇒ Business(name,“Restaurant",earn,size,eid), SpecialMapclip(eid,loc,window) 修正された書き換え規則には、新しいテーブル名Specia
lMapclipが含まれている。SpecialMapclipが左辺に生じ
る書き換え規則はないので、もとの(無修正の)規則と
は異なり、修正された書き換え規則は繰り返し利用する
ことはできない。しかし、閉包を生成した後、「 SpecialMapclip(eid,loc,window)」 の代わりに、式「 Mapclip(eid,loc,small_win), Intersect(window,w,small_win)」 が用いられることになる。
【0075】従って、例に示すように部分式は単一の文
字として扱うことができるので、有効閉包のサイズが縮
小される。部分式の選択を利用して列挙のために選択さ
れる閉包の部分集合が決定される。この戦略を利用する
ことにより、任意の書き換え規則の集合が長さ非増加特
性条件を満たすことを保証し、その結果終了を保証する
ことができる。
【0076】発見的方法のもう1つの適用は最適化を必
要としない同等の照会を識別することである。これは、
大まかなコスト推定によって、あるいは下記アプローチ
を利用することによって判定される。書き換え規則の中
には「always improving」のマーキングが施されるものも
ある(例えば、書き換え規則の第3の例)。こうした規
則によって照会Qから照会Q’が導き出される場合、
Q’によって常により良い最適プランが得られるものと
仮定されるので、照会Qはもはや最適化の必要がない。
【0077】発明の第3の態様 書き換え規則及び外部テーブルが存在する場合、照会の
最適化は従来の最適化問題に対して新たな特徴を必要と
する。まず、外部テーブルが存在するため、外部テーブ
ルに関する評価を行うコスト・モデルの導入と新たな連
結方法の導入が必要になる。このセクションでは、コス
ト・モデルが実行空間における所与のプランに実数を割
り当て、動的計画法を利用する全ての関係オプティマイ
ザにおいて暗黙の最適化の原理(1990年にMIT Pressか
ら刊行されたCormen他によるIntroduction to Algorith
ms参照のこと)を満たすものと仮定する。さらに、外部
テーブルは安全制約条件を有するので、従来の連結・列
挙段階は安全制約条件を満たす連結の再配列だけしか考
慮されないことを保証する必要がある。換言すれば、外
部関数に受け渡される結合によって制約条件が満たされ
ることを保証する必要がある。これは、十分に研究され
た問題である。例えば、検討に備えて1989年にComputer
Science Pressから刊行されたUllmanによるPrincipals
of Databaseand Knowledge-Base Systemsを参照された
い。最後に、該タスクは、複数で同等の照会を含む、拡
充された集合から最適のプランを選択する(24)ことであ
る。
【0078】もちろん、最適性に関する検討は使用可能
な集合に関して行わなければならない。従来より、照会
の実行は、構文的には内部ノードが連結操作で、各葉ノ
ードがベース・テーブルである、注釈付き連結ツリー
(1986年8月に日本の京都で開催されたProceedings of
International Conference on Very Large Data Bases
の128-137ページにおけるKrishnamurthy他によるOptimi
zation of nonrecursivequeries参照のこと)として表
現される。本発明によれば、葉ノードも外部テーブルと
することが可能である。オプティマイザは左に深層をな
す全注釈付きツリーを考慮するので、連結の線形配列が
強制される。従って、実行空間は最適化プロセスのステ
ップ1によって得られた各同等照会毎に、左に深層をな
す全連結ツリーの空間であると定義される。次に、最適
化プロセスのステップ2では実行空間から最小コストの
プランを選択する。
【0079】図4は、本発明による最適化プロセスの実
施例に関するブロック図である。図4には図1に示され
たオプティマイザ11に関連した機能単位が示されてい
る。すなわち、最適化プロセスでは規則テーブル42に記
憶された書き換え規則12を用いる同等照会ジェネレータ
40を利用して、同等照会を生成する。最適化プロセスで
は、また、再配列可能単位ジェネレータ44及び照会オプ
ティマイザ46も利用する。照会オプティマイザ46は局所
オプティマイザ47及びプラン・テーブル48との対話によ
って有効に機能することが可能である。本発明による最
適化プロセスについては、さらに詳細に後述する。
【0080】最適化プロセスのステップ2は、コスト最
適化アルゴリズムを利用して実行空間から最適プランの
判定または選択を行う照会オプティマイザ46によって実
施される。以下では、コスト最適化アルゴリズムに関す
る2つの異なるアプローチについて解説する。
【0081】コスト最適化アルゴリズムに関する第1の
アプローチは従来の動的計画法最適化アルゴリズムの直
接拡張である。実行空間は同等照会の実行空間の結合体
であるので、閉包における各照会毎に最適プランを求
め、次にそれらの中から最小コストのプランを選択する
ことが可能である。例えば、Q1及びQ2が閉包内に2つ
だけしかない照会の場合、それぞれQ1及びQ2に関して
最適なプランP1及びP2を判定し、次にP1及びP2のう
ちより安価なプランを選択することが可能である。従っ
て、下記のコスト最適化アルゴリズムは従来の動的計画
法アルゴリズムの直接拡張であり、次のステップが含ま
れる: (i)従来の動的計画法アルゴリズムを利用して各照会を
最適化し、その照会について最良のプランを求めるステ
ップ。 (ii)ステップ(i)において得られた最良のプランの中か
ら最も安価なプランを選択するステップ。
【0082】ステップ(i)は、連結の順序を考慮してい
る間に安全性をチェックするための直接的な拡張を用い
て、従来の関係オプティマイザによって実行されること
が可能である点に注目されたい(例えば1979年6月にボ
ストンで開催されたProceedingsof the ACM SIGMOD Int
ernational Symposium on Management of Dataの23−
34ページにおけるSelinger他によるAccess p
ath selection in a relational database management
of Data参照のこと)。このアルゴリズムに必要な実行
空間は各同等照会の最適化に必要な実行空間の最大値で
ある。しかし、該アルゴリズムは閉包の照会間に共通点
があるにもかかわらず、この事実を利用することができ
ないので時間計算量に乏しい。
【0083】コスト最適化アルゴリズムに関する第2の
アプローチは直接拡張よりもはるかに速く機能するので
望ましい。このアプローチのキーとなるのはコスト最適
化アルゴリズムが最適化時に複数の同等照会全体にわた
る照会間の共通点を活用するということである。従来の
動的計画法に基づくアルゴリズムは一つの照会内におけ
る部分照会間の共通点を活用して最適化の時間計算量を
軽減するが、最適化時に複数の同等照会全体にわたる部
分照会間の共通点を活用することはない。
【0084】改良型コスト最適化アルゴリズムの解説を
行う前に2つ以上の同等照会によって共用されている部
分照会を識別する方法について解説する。この識別プロ
セスは閉包内の同等照会が規則を適用することによって
生成される22、最適化手順のステップ1において実施さ
れる。下記の例にはこの識別プロセスが示されている。
【0085】例7:結果として照会Q’が得られる照会
Qに対する書き込み規則の第2の例の適用について考察
してみることにする。MapEngineのファイルHistoricに
は全ての史跡が含まれており、外部テーブルpricebf(lo
c,amount)によって不動産的評価が得られる。以下の照
会では史跡であってレストランのある場所に関する不動
産的価格が求められる。
【0086】Q(amount): -Historic(loc), Business(bizname,“Restaurant",earn,eid), Map(eid,loc), Price(loc,amount) Q’(amount): -Historic(loc), Map_Restaurant(eid,loc), Price(loc,amount) 部分式「Historic(loc),Price(loc,amount)」が、両方の
照会において共通している点に注目されたい。この共通
点は、書き換え規則の適用時に、その適用によっても変
わらずに残っている最初と最後の文字定数を監視するこ
とによって検出することが可能である。照会Qの最適化
の一部として共通部分照会Historic(loc),Price(loc,am
ount)に関する最適プランを決定しなければならないの
で、照会Q’に関する最適プランの決定時にそれを再利
用することができる。
【0087】改良型コスト最適化アルゴリズムによれ
ば、各照会は1度に1つずつ最適化されるが、別の同等
照会と共用される副照会の場合(該副照会に限って)、
その最適プランはプラン・テーブル48に記憶されるの
で、その最適プランを再度導き出す必要はない。従っ
て、最適プランを構成する場合にはプラン・テーブル48
を調べて、そのプランが既に存在するか否かのチェック
を行うことになる。
【0088】改良型コスト最適化アルゴリズムに関する
プログラミング・コードの例が、表1に示されている
(すなわち、手順Optplan)。従来のアルゴリズムとは
異なり、改良型アルゴリズムはトップ・ダウン・アプロ
ーチに従う。照会に非演算項が1つだけ、または2つだ
けしかないというOptplanの基本ケースは省略されてい
る。改良型アルゴリズムは局所オプティマイザを呼び出
して、Si及びqiからQiを生成する(表1参照のこ
と)。局所オプティマイザ47はコスト・モデルに関する
情報を利用する。改良型コスト最適化アルゴリズムに従
って、最適プランはボトム・アップで構築される。すな
わち、ある照会の候補となる最適プランはすぐ下の副照
会の最適プランから構成される。従来のオプティマイザ
のように、オプティマイザ11は組み込みブール条件(sa
rgable述語)である、非演算項(例えば、salary>50k)
を特別に取り扱う。それらは再配列されないが、その代
わりその効果は局所オプティマイザにおけるアクセス経
路の決定に関して考慮されると共に、選択要素に関して
も考慮されることになる。最後に、改良型アルゴリズム
では安全制約条件(表1には示されていない)を満たさ
ない連結配列を廃棄する。
【0089】プラン・テーブル48にアクセスする場合、
照会の最適プランの追求が効率良く行われることを保証
するのが有益である。効率の良いアプローチの1つは、
プラン・テーブルをハッシュ・テーブルとして保持する
ことであり、そこには各照会が整数の分類済みリストと
して表現されている。全ての整数が照会の文字が記憶さ
れている汎用文字・テーブルの項目索引に対応する。従
って、2つの照会の比較は2つのストリングが等しいか
否かをチェックすることになり、従って、極めて効率よ
く実施することができる。下記の例には、文字の表現、
並びにこの表現において照会間の共通点がいかに把握さ
れるかが示される。
【0090】例8:この例では、例7の照会Q及びQ’
が利用されている。照会Qの文字定数に対応する汎用文
字・テーブルは、左から右に1、2、3、及び4であると仮定
する。従って、Qはストリング(1234)で表すことができ
る。しかし、書き換え規則が適用されると、新しい文字
定数Map_Restaurant(eid,loc)が生成され、索引5と共に
汎用文字・テーブルに入力される。Q’の表現は(145)
になる。照会Qの最適化によって(14)に関する最適プラ
ンが生成され、プラン・テーブルに記憶される。照会
Q’の最適化時には、最初にプラン・テーブルが調べら
れ、(145)に関するプランが既に存在するか否かの確認
が行われる。存在しなければ、各副プランに関する最適
プランが再帰的に構成される。すなわち、(14)に関する
最適プランの構成前にプラン・テーブルが調べられ、(1
4)の最適プランが最適化のために再利用される。
【0091】改良型コスト最適化アルゴリズムは副照会
がなければ、副プランが再度導き出されるという望まし
い特徴を有している。さらに、共用副照会に関するプラ
ンだけがプラン・テーブルに保持される。
【0092】周知のように、動的計画法に基づくアルゴ
リズムはトップ・ダウン及びボトム・アップのいずれか
で示すことが可能である(上記のCormen他による文献参
照のこと)。従って、コスト最適化アルゴリズムの変
形、すなわちボトム・アップ・アプローチによる変形が
生成可能である。実際、ボトム・アップ・アプローチの
場合、2つの可能性のある変形を生成することができ
る。可能性の1つは、全ての同等照会をまとめて最適化
することである。従って、サイズnの全ての副照会に関
する最適プランを構成してから、サイズ(n+1)の任意の
副照会に関する最適プランが構成される。このアプロー
チにはサイズ(n+1)の任意の副照会を構成するのにサイ
ズnのプランだけしか必要とせず、従って、空間の再利
用が可能であるため、必要な空間がトップ・ダウン・ア
プローチよりも小さいという利点がある。あいにく、全
ての同等照会に関する副照会がまとめて構成されるの
で、任意の同等照会に関する最適プランを完成するため
の時間はトップ・ダウン・アプローチに比べて長くな
る。ボトム・アップ・アプローチのもう1つの変形では
1度に1つずつ照会の最適化が行われるが、共用副照会
の最適プランは保管される。これによって前述のアプロ
ーチに関する欠点は修正されるが、下記の例で示すよう
に最大共通副照会を共用できないという問題が生じる。
【0093】例9:閉包には(1234)及び(1235)と表現さ
れる2つの照会が含まれるものと仮定する。該照会は副
照会(123)を共用している。(1234)にとって、従って(12
3)にとって最適のプランが既に構成されているものと仮
定する。(1235)に関する最適プランを構築する作業につ
いて考察してみることにする。オプティマイザはボトム
・アップ・アプローチを利用する場合、より小さいプラ
ンが全て構成されるまでキャッシュメモリに納められた
プラン(123)の存在を認識することができず、従ってプ
ラン・テーブルへの不必要なアクセスが行われることに
なる。
【0094】従って、最適化アルゴリズムのボトム・ア
ップまたはトップ・ダウン・バージョンの利用には賛否
両論がある。分岐限定戦略で拡張されたトップ・ダウン
の変形を利用するほうが望ましい場合もある。従って、
ある部分プランが、それまで発見した最適プランのコス
トを超えたことが分かれば、最適状態に及ばないことが
保証されるので、その部分プランを完成する必要はな
い。
【0095】発見的技法を最適化プロセスに組み込むこ
とも可能である。例えば、発見的方法を利用して照会が
最適化される順序を決めることも可能である。また、所
与の照会に関して最適プランをかなり上回る改善が得ら
れた後では、最適プランの検索を止める(全空間を検索
する代わりに)ほうが有益な場合もある。
【0096】安価で密接に関連した述語は、やはり最適
化において重要な役割を果たすことが可能である。従来
の関係オプティマイザにおいて選択条件は、他のデータ
ベース関係と同様、再配列されなかった。それどころ
か、選択条件はできるだけ早めに評価される。実際、再
配列連結のコストは再配列される文字数の指数関数であ
る。従って、不必要な再配列はオプティマイザにオーバ
ヘッドをもたらすことになる。ポイントlocがウインド
ウw内にあるか否かのチェックを行うInside(w,loc)のよ
うな外部テーブルについて考察する。こうしたテーブル
の呼び出しは安価である。従って、最適化コストはいく
つかの外部テーブルを安価なテーブルとして指定するこ
とによって減少させることが可能である。安価なテーブ
ルに対応する照会の文字は再配列されないが、残りの文
字は再配列される。安価なテーブルに対応する文字は、
再配列可能な文字の安全な配列で、できるだけ早めに評
価される。安価な非演算項が存在すると、図4の再配列
可能単位ジェネレータ44によって再配列可能な単位を生
成するステップが導入される。関係オプティマイザにお
けるsargable述語は記憶システム層にプッシュ・ダウン
可能な特性を有している。上述のSelinger他による文献
参照のこと。同様にどの安価なテーブルが再配列可能な
テーブルに関連しているかを示す機能を与えることも可
能である。最適化時には、この情報を活用することが可
能である。
【0097】次に、オプティマイザ46によって用いられ
る外部関数に関する照会処理技法について解説する。特
に、焦点は連結操作のための照会処理技法に合わせられ
ている。コスト・モデルに関する後続の解説では、外部
テーブルが左に深層をなすツリーにおける連結ノードの
右の子として生じるものと仮定する。従って、左に深層
をなす連結ツリーにおいて、外部テーブルは左テーブル
として参照される他のテーブル(中間または基本)と連
結されるものと仮定する。
【0098】キー・ポイントは、外部テーブルに対する
アクセスは安全制約条件を守らなければならないという
ことである。従って、外部テーブルから論理レコードを
得ることが可能になる前に安全制約条件のために必要に
なる設定値を受け渡さなければならない。多くのシステ
ムでは、各設定毎に外部関数に対する呼び出しが行われ
る。こうした技法は呼び出しコストが高く、出力として
多くの論理レコードを戻す外部関数の呼び出しには非効
率的である。従って、本発明によれば、外部関数に関す
る照会処理は呼び出し段階と連結の残りを処理する段階
の2つの段階を持つ外部テーブルとの連結を見ることか
ら成っている。呼び出し段階は左テーブルから外部テー
ブルの設定引数に関する値を受け渡すことから構成され
る。この呼び出しを可能にする方法がいくつか存在す
る:単純呼び出し :この案の場合、左テーブルの各論理レコ
ード毎に安全制約条件の指定に従って対応する設定引数
に対する呼び出しが行われる。グループ呼び出し :この案の場合、左の関係から設定引
数のそれぞれ別個の値毎に設定引数に対する単一呼び出
しが行われる。
【0099】グループ呼び出し技法の場合、設定引数に
関する別個の値の集合を識別するオーバヘッドが付加さ
れる。しかし、該技法には呼び出しが少なくて済むとい
う利点があり、これは各呼び出しが高くつく(例えば、
ある地点と他の全ての地点との平均距離を計算する)外
部テーブルにとって重要である。さらに、左テーブル
が、既に、連結前に、設定引数に基づいて分類されてい
る場合には、グループ呼び出しのほうがよい。
【0100】呼び出しによって論理レコードの集合が生
成されるので、連結の残りを処理するステップは従来の
連結と同様であり、任意の連結方法を利用することが可
能である。また、外部テーブルの1つ以上のフリーな
(f)引数に当てはまる選択条件はこの段階で評価され
る。連結の残りを処理する段階にとって最も単純な選択
は、各呼び出し毎の論理レコードの生成が内部テーブル
との結合として扱われる入れ子走査法である。唯一の相
違は内部テーブルが各呼び出し毎に変化する(潜在的
に)ことである。この連結の残りを処理する方法は、呼
び出しに関する2つの技法と組み合わせることが可能で
ある。
【0101】単純な呼び出しと入れ子走査結合技法の選
択を組み合わせることによって従来の入れ子走査結合と
同様の連結アルゴリズムが得られ、外部入れ子走査結合
(FNL)と呼ばれる。グループ呼び出しと入れ子走査結合
の選択を組み合わせることによって分類併合結合法と同
様のアルゴリズムが得られ、外部分類併合結合(FSM)と
呼ばれる。FSMアルゴリズムに関するプログラミング・
コードの一例が表2に示されている(すなわち、外部分
類併合結合アルゴリズム)。
【0102】
【表2】
【0103】FSMアルゴリズムは外部テーブルの呼び出
しが高価な場合に望ましい。最後に、呼び出し数を減少
させるため、呼び出し結果の把握がPostgresの文脈中に
暗示されているのでこうした代替案を照会処理に対する
当方のアプローチとともに利用することが可能である。
例えば上述のStonebraker他による文献参照のこと。
【0104】コスト・モデルは所与のどのようなプラン
のコストでも計算できなければならない。従来の関係オ
プティマイザの場合、テーブルの記述子には各引数位置
(すなわち、各列)における異なる値の数、及びテーブ
ルにおける予想論理レコード数といったテーブルに関す
る統計的情報が含まれている。コスト・モデルは、記述
子を利用して、操作(例えば、連結)のコストを計算す
る。また、コスト・モデルによって操作後に得られる中
間テーブルの統計的情報を含む新たな記述子も生成され
る。
【0105】コスト・モデルに対する本発明のアプロー
チはデータベース及び中間テーブルに関する関係記述子
を保存することであるが、本発明は2つの拡張を必要と
する。まず、外部テーブルに関する記述子が与えられな
ければならない。次に、こうした記述子を利用して、あ
る操作のコストを求めることができるようにする方法、
及び外部テーブルとの「連結」後に中間テーブルに関す
る関係記述子を導き出すことができるようにする方法に
関する説明が与えられなければならない。
【0106】各外部テーブル毎に下記の情報を登録する
ことができる:安全制約条件 :この情報は、コスト・モデルによって直
接用いられるのではなく、オプティマイザによって用い
られる。コスト :外部テーブルを1回呼び出すコスト。ファン・アウト :各呼び出し毎に予想される「出力論理
レコード」の数。 各属性毎に:領域サイズ :各領域要素の表現サイズ。領域の制約(カ
ーディナリティ)。カーディナリティに対して許容可能
な割り当ては無限である。異なる値の数 :各呼び出し毎に属性が備える異なる値の
数の期待値。このパラメータが明示的に与えられない場
合、この係数を近似するためファン・アウトが利用され
る。全ての領域が有限の場合、一様分布が仮定され、こ
の係数が同様に計算される。
【0107】安全性に関するものを除いて、記述子の他
の全ての特性がこのコスト・モデルに関係している点に
注目すべきである。該コスト・モデルは、1989年8月に
アムステルダムで開催されたProceedings of the 15th
International VLDB Conferenceの195-203ページにおけ
る、Chimenti他によるTowards an open architecturefo
r LDLに提案されているモデルの拡張である。また、記
述子のパラメータは、必ずしも定数である必要はなく、
コンパイル時に照会の中に現れる定数に依存することも
可能であるという点に注目すべきである。下記には、外
部テーブルに関する記述子の一例が示される。
【0108】例10: 外部テーブルIntersectbbf(window1,window2,window3) に関する記述子は、コストが0.012ms、ファン・アウトが
1、異なる値の数の係数が1であることを特徴とする。
各領域要素のサイズは実数に対応するサイズであり、領
域サイズ(無限大を最大値とする)を有している。ファ
ン・アウト及び異なる値の数が1である点に注目された
い。
【0109】記述子の計算には拡張が必要になる。簡略
化のため、外部テーブルが左に深層をなす連結ツリーの
右の子として生じる状況の解説だけしか行わない。外部
テーブルは右の葉ノードとして生じるものと仮定される
ので、左関係として参照される中間関係に関する記述子
の存在を仮定することも可能である。オプティマイザ46
の場合、結果を導き出す記述子の計算を行うため、カス
タマイズされた関数を登録することが可能である。こう
した関数は、引数として左関係の記述子を選択すること
が可能である。以下では中間テーブルに関する記述子を
計算するための省略時の方法について解説する。
【0110】該記述子を導き出す公式について解説する
前に、左の独自性係数について説明するのが有効であ
る。左の独自性係数は左の関係に関する所与の記述子に
ついての外部テーブルの別個の呼び出し期待数を推定す
る。左の独自性係数の近似方法がいくつか存在する。方
法の1つは、以下で解説のように左の独自性係数に関す
る単純な公式を利用することである。
【0111】外部テーブルの場合、1つ以上の引数位置
を設定することが必要になる。従って外部テーブルの設
定引数に関して値を提供する左の関係の属性Aに対応す
る集合が存在する。Pが左の関係における属性Aの集合
に関する異なる値の数であると仮定する。左の関係の記
述子はPの計算に用いられる。明らかに、個別の呼び出
し数はPを超えることができない。しかし、個別の呼び
出し数は左の関係における論理レコード数であるNを超
えることもない。従って、min(P,N)は左の独自性係数と
して利用することが可能である。我々の公式が左の独自
性係数の上限を提供するという点に注目されたい。該公
式の適用の一例を示すことにする。
【0112】例11:バス経路に関するターミナルの位
置を提供する下記の照会について考察する。 Query(route,loc): -Terminal(route,eid),Map(eid,loc) Terminalに関する記述子は、100の論理レコードを有し
ているが、第2の引数における異なる値の数は10になる
と期待されるものと仮定する。こうした場合、左の独自
性係数は10であると推定される。
【0113】以下の説明では、左のテーブルと外部テー
ブルの設定引数との間における一致以外に選択条件はな
いものと仮定する。出力選択条件の効果並びに記述子の
外部テーブルに対する射影の影響は(連結ツリーの内部
ノードと同様)左の関係と外部テーブルとの連結結果を
中間テーブルとして取り扱うことによって計算される。
従って、下記に示すコスト公式は呼び出し段階に限られ
る。
【0114】論理レコード数:連結の結果発生する推定
論理レコード数は、N'=F*Nであり、ここで、Fは外部テ
ーブルのファン・アウト、Nは左の関係における論理レ
コード数である。異なる値の数 :外部テーブルのi番目の引数に対応する
異なる値の推定数はUVFi*UIであり、ここで、UVFiはi
番目の属性に関する異なる値係数である。パラメータUI
は前述の左の独自性係数である。コスト :外部入れ子走査法及び外部分類併合結合のコス
トが得られる。Nは左の関係の論理レコード数、Cは外
部テーブルを呼び出すコスト、UIは独自性係数と仮定す
る。下記のコストは呼び出し段階だけのものである。
【0115】− 外部入れ子走査法:C*N − 外部分類併合結合:Costsort(N)+UI*C 本発明の多くの特徴及び利点については以上の説明から
明らかであり、従って、特許請求の範囲は本発明のこう
した特徴及び利点の全てを網羅することを意図したもの
である。さらに、当該技術の熟練者であれば、容易に多
くの修正及び変更が思い浮かぶことになるので、例示
し、解説したそのままの構成及び働きに本発明を限定す
るのは望ましくない。従って、適合する修正及び均等物
は、全て本発明の範囲に含まれるものとして考えること
が可能である。
【0116】以下に本発明の実施態様を列挙する。
【0117】1.複数の論理レコードを有するリレーシ
ョナル・データベースと、関連する宣言型書き換え規則
を有する少なくとも1つの外部関数と、コスト情報を利
用して、前記リレーショナル・データベース及び前記少
なくとも1つの外部関数にアクセスする照会を最適化す
るためのオプティマイザから構成される、リレーショナ
ル・データベース・システム。
【0118】2.前記書き換え規則が、最適プランが選
択される同等の照会を生成するために用いられることを
特徴とする、前項1記載のリレーショナル・データベー
ス・システム。
【0119】3.前記外部関数のそれぞれに関連した前
記書き換え規則が高級宣言型言語で表現されることを特
徴とする、前項1または2に記載のリレーショナル・デ
ータベース・システム。
【0120】4.前記書き換え規則に用いられる高級宣
言型言語がREWRITE Query 1 AS Query2の書式を有するS
QLの拡張であることと、書き換え規則が、書き換え規則
の左辺に現れる被演算項に索引付けが施された規則テー
ブルに記憶されていることを特徴とする、前項1、2、
または、3に記載のリレーショナル・データベース・シ
ステム。 5.前記オプティマイザが、複数の照会全体にわたって
照会間における共通点を活用することと、前記リレーシ
ョナル・データベース・システムには、さらに共通点を
活用するために、副照会に関して既に決定されている最
適プランを記憶するプラン・テーブルが含まれることを
特徴とする、前項1、2、3、または、4に記載のリレ
ーショナル・データベース・システム。
【0121】6.コスト情報が、外部関数に関するコス
ト情報からなることを特徴とする、前項1、2、3、
4、または、5に記載のリレーショナル・データベース
・システム。
【0122】7.(a)外部関数に関する書き換え規則を
提供するステップと、(b)実行すべき入力照会を受けと
るステップと、(c)入力照会及び書き換え規則から代替
照会を生成するステップと、(d)最適プランを生成する
ステップから構成される、リレーショナル・データベー
ス・テーブル及び外部関数を呼び出す照会の最適化方
法。
【0123】8.前記生成ステップ(c)が、対応付け代
入を利用して、書き換え規則の少なくとも1つの左辺が
照会の少なくとも一部と同等であるか否かを判定するこ
とからなることを特徴とする、前項7に記載の最適化方
法。
【0124】9.前記生成ステップ(d)が、(d1)入力照
会、及び代替照会の少なくとも1つに関して最適なプラ
ンを生成するステップと、(d2)最適プランの1つを選択
するステップからなることを特徴とする、前項6または
7に記載の最適化方法。
【0125】10.前記生成ステップ(d1)では、複数の
照会全体にわたって照会間の共通点を活用するというこ
とを特徴とする、前項9に記載の最適化方法。
【0126】
【発明の効果】本発明により、前記宣言型言語で表現さ
れる書き換え規則を簡単に記述することができ、外部関
数を呼び出す照会について、コストを考慮した最適化が
効率よく、かつ有効に実施される。
【図面の簡単な説明】
【図1】本発明によるリレーショナル・データベース・
システムのブロック図である。
【図2】本発明の態様を示す基本フローチャートであ
る。
【図3】同等照会を生成する、本発明の第2の態様によ
る閉包手順を示すフローチャートである。
【図4】本発明による最適化手順の実施例に関するブロ
ック図である。
【符号の説明】
2 リレーショナル・データベース・システム 10 照会 11 オプティマイザ 12 書き換え規則 13 コスト情報 14 リレーショナル実行エンジン 15 リレーショナル・データベース・テーブル 16 外部関数 40 同等照会ジェネレータ 42 規則テーブル 44 再配列可能単位ジェネレータ 46 単一照会オプティマイザ 47 局所オプティマイザ 48 プラン・テーブル

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数の論理レコードを有するリレーショナ
    ル・データベースと、関連する宣言型書き換え規則を有
    する少なくとも1つの外部関数と、 コスト情報を利用して、前記リレーショナル・データベ
    ース及び前記少なくとも1つの外部関数にアクセスする
    照会を最適化するためのオプティマイザから構成され
    る、 リレーショナル・データベース・システム。
JP6131601A 1993-06-14 1994-06-14 外部関数を有するリレーショナル・データベース・システムにおける照会最適化方法及び装置 Pending JPH07141236A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US077227 1993-06-14
US08/077,227 US5544355A (en) 1993-06-14 1993-06-14 Method and apparatus for query optimization in a relational database system having foreign functions

Publications (1)

Publication Number Publication Date
JPH07141236A true JPH07141236A (ja) 1995-06-02

Family

ID=22136817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6131601A Pending JPH07141236A (ja) 1993-06-14 1994-06-14 外部関数を有するリレーショナル・データベース・システムにおける照会最適化方法及び装置

Country Status (4)

Country Link
US (1) US5544355A (ja)
JP (1) JPH07141236A (ja)
DE (1) DE4416332A1 (ja)
GB (1) GB2279165A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925462B2 (en) 2001-02-22 2005-08-02 Hitachi, Ltd. Database management system, and query method and query execution program in the database management system

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671403A (en) * 1994-12-30 1997-09-23 International Business Machines Corporation Iterative dynamic programming system for query optimization with bounded complexity
CA2146171C (en) * 1995-04-03 2000-01-11 Bernhard Schiefer Method for estimating cardinalities for query processing in a relational database management system
DE19621788A1 (de) * 1995-08-30 1997-03-06 Bayerisches Forschungszentrum Datenbanksystem zur Verwaltung von Arrays
US6272501B1 (en) 1995-08-30 2001-08-07 Peter Baumann Database system for management of arrays
US5742810A (en) * 1995-08-31 1998-04-21 International Business Machines Corporation System, method and computer program product for passing host variables to a database management system
USRE37965E1 (en) * 1995-09-27 2003-01-07 International Business Machines Corporation Method for localizing execution or subqueries and determining collocation of execution of subqueries in a parallel database
US5745746A (en) * 1996-06-24 1998-04-28 International Business Machines Corporation Method for localizing execution of subqueries and determining collocation of execution of subqueries in a parallel database
US5787411A (en) * 1996-03-20 1998-07-28 Microsoft Corporation Method and apparatus for database filter generation by display selection
US6026390A (en) * 1996-05-29 2000-02-15 At&T Corp Cost-based maintenance of materialized views
US5768589A (en) * 1996-07-12 1998-06-16 Oracle Corporation Method and apparatus for executing stored procedures in a foreign database management system
US5899991A (en) * 1997-05-12 1999-05-04 Teleran Technologies, L.P. Modeling technique for system access control and management
US5864840A (en) * 1997-06-30 1999-01-26 International Business Machines Corporation Evaluation of existential and universal subquery in a relational database management system for increased efficiency
US5960423A (en) * 1997-08-15 1999-09-28 Microsoft Corporation Database system index selection using candidate index selection for a workload
US5913206A (en) * 1997-08-15 1999-06-15 Microsoft Corporation Database system multi-column index selection for a workload
US5950186A (en) * 1997-08-15 1999-09-07 Microsoft Corporation Database system index selection using cost evaluation of a workload for multiple candidate index configurations
US5926813A (en) * 1997-08-15 1999-07-20 Microsoft Corporation Database system index selection using cost evaluation of a workload for multiple candidate index configurations
US5895465A (en) * 1997-09-09 1999-04-20 Netscape Communications Corp. Heuristic co-identification of objects across heterogeneous information sources
US5943666A (en) * 1997-09-15 1999-08-24 International Business Machines Corporation Method and apparatus for optimizing queries across heterogeneous databases
US6243703B1 (en) * 1997-10-14 2001-06-05 International Business Machines Corporation Method of accessing and displaying subsystem parameters including graphical plan table data
US6493700B2 (en) * 1997-10-14 2002-12-10 International Business Machines Corporation System and method for specifying custom qualifiers for explain tables
US6571243B2 (en) 1997-11-21 2003-05-27 Amazon.Com, Inc. Method and apparatus for creating extractors, field information objects and inheritance hierarchies in a framework for retrieving semistructured information
US6448981B1 (en) 1997-12-09 2002-09-10 International Business Machines Corporation Intermediate user-interface definition method and system
WO2000010097A1 (en) * 1998-08-14 2000-02-24 Song Oliver Yuh Shen Universal business management system and method
US6223171B1 (en) 1998-08-25 2001-04-24 Microsoft Corporation What-if index analysis utility for database systems
US6584459B1 (en) 1998-10-08 2003-06-24 International Business Machines Corporation Database extender for storing, querying, and retrieving structured documents
US6338055B1 (en) * 1998-12-07 2002-01-08 Vitria Technology, Inc. Real-time query optimization in a decision support system
US6763353B2 (en) * 1998-12-07 2004-07-13 Vitria Technology, Inc. Real time business process analysis method and apparatus
US6581205B1 (en) 1998-12-17 2003-06-17 International Business Machines Corporation Intelligent compilation of materialized view maintenance for query processing systems
US6351742B1 (en) 1999-03-18 2002-02-26 Oracle Corporation Method and mechanism for database statement optimization
US6401083B1 (en) 1999-03-18 2002-06-04 Oracle Corporation Method and mechanism for associating properties with objects and instances
WO2000055755A2 (en) * 1999-03-18 2000-09-21 Oracle Corporation Method for extending native optimization in a database system
US6370522B1 (en) 1999-03-18 2002-04-09 Oracle Corporation Method and mechanism for extending native optimization in a database system
DK173451B1 (da) * 1999-04-16 2000-11-20 Targit As Fremgangsmåde, apparat og databærer til behandling af forespørgsler til en database
US7167853B2 (en) * 1999-05-20 2007-01-23 International Business Machines Corporation Matching and compensation tests for optimizing correlated subqueries within query using automatic summary tables
US6442537B1 (en) * 1999-06-24 2002-08-27 Teleran Technologies, Inc. System of generating and implementing rules
CA2279028C (en) * 1999-07-29 2002-09-10 Ibm Canada Limited-Ibm Canada Limitee Dropped database table recovery
US6353819B1 (en) * 1999-09-29 2002-03-05 Bull Hn Information Systems Inc. Method and system for using dynamically generated code to perform record management layer functions in a relational database manager
US6353820B1 (en) * 1999-09-29 2002-03-05 Bull Hn Information Systems Inc. Method and system for using dynamically generated code to perform index record retrieval in certain circumstances in a relational database manager
US6526403B1 (en) * 1999-12-17 2003-02-25 International Business Machines Corporation Method, computer program product, and system for rewriting database queries in a heterogenous environment
US6496828B1 (en) 1999-12-17 2002-12-17 International Business Machines Corporation Support for summary tables in a heterogeneous database environment
US6532470B1 (en) 1999-12-17 2003-03-11 International Business Machines Corporation Support for summary tables in a database system that does not otherwise support summary tables
US7136834B1 (en) 2000-10-19 2006-11-14 Liquidnet, Inc. Electronic securities marketplace having integration with order management systems
DE10065323C2 (de) * 2000-12-31 2003-10-30 Siemens Ag Verfahren zur Steuerung der Anordnung von graphischen Elementen
WO2002071260A1 (en) * 2001-03-01 2002-09-12 Aalborg Universitet Adaptable query optimization and evaluation in temporal middleware
WO2002073530A1 (en) * 2001-03-07 2002-09-19 Rockwell Scientific Company, Llc Data mining apparatus and method with user interface based ground-truth tool and user algorithms
US20020129342A1 (en) * 2001-03-07 2002-09-12 David Kil Data mining apparatus and method with user interface based ground-truth tool and user algorithms
US6850933B2 (en) * 2001-11-15 2005-02-01 Microsoft Corporation System and method for optimizing queries using materialized views and fast view matching
US7974906B2 (en) * 2002-06-12 2011-07-05 Itg Software Solutions, Inc. System and method for estimating and optimizing transaction costs
US8229834B2 (en) * 2002-06-12 2012-07-24 Itg Software Solutions, Inc. System, method and program for agency cost estimation
US20050177557A1 (en) * 2003-09-06 2005-08-11 Oracle International Corporation Automatic prevention of run-away query execution
US8543566B2 (en) * 2003-09-23 2013-09-24 Salesforce.Com, Inc. System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
US7529728B2 (en) 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US7260563B1 (en) * 2003-10-08 2007-08-21 Ncr Corp. Efficient costing for inclusion merge join
US7240078B2 (en) * 2003-11-25 2007-07-03 International Business Machines Corporation Method, system, and program for query optimization with algebraic rules
US7606792B2 (en) * 2004-03-19 2009-10-20 Microsoft Corporation System and method for efficient evaluation of a query that invokes a table valued function
US8185518B2 (en) 2004-11-12 2012-05-22 International Business Machines Corporation Method, system and program product for rewriting structured query language (SQL) statements
US7536380B2 (en) * 2005-03-24 2009-05-19 International Business Machines Corporation Dynamic look ahead predicate generation
US8086615B2 (en) * 2005-03-28 2011-12-27 Oracle International Corporation Security data redaction
US20060218118A1 (en) * 2005-03-28 2006-09-28 Bea Systems, Inc. Using query plans for building and performance tuning services
US7778998B2 (en) * 2005-03-28 2010-08-17 Bea Systems, Inc. Liquid data services
US20060224628A1 (en) * 2005-03-29 2006-10-05 Bea Systems, Inc. Modeling for data services
US20060218149A1 (en) * 2005-03-28 2006-09-28 Bea Systems, Inc. Data redaction policies
US20060224556A1 (en) * 2005-03-29 2006-10-05 Bea Systems, Inc. SQL interface for services
US20060224557A1 (en) * 2005-03-29 2006-10-05 Bea Systems, Inc. Smart services
US7599925B2 (en) * 2005-03-31 2009-10-06 Microsoft Corporation Using query expression signatures in view matching
CN101131695B (zh) * 2006-08-25 2010-05-26 北京书生国际信息技术有限公司 一种文档库系统及其实现方法
US20070143246A1 (en) * 2005-12-15 2007-06-21 International Business Machines Corporation Method and apparatus for analyzing the effect of different execution parameters on the performance of a database query
US7464084B2 (en) * 2006-01-30 2008-12-09 International Business Machines Corporation Method for performing an inexact query transformation in a heterogeneous environment
US7685145B2 (en) * 2006-03-28 2010-03-23 Microsoft Corporation Database physical design refinement using a merge-reduce approach
US8095531B2 (en) * 2006-10-03 2012-01-10 Salesforce.Com, Inc. Methods and systems for controlling access to custom objects in a database
US20080195578A1 (en) * 2007-02-09 2008-08-14 Fabian Hueske Automatically determining optimization frequencies of queries with parameter markers
US8117105B2 (en) 2007-04-18 2012-02-14 Pulse Trading, Inc. Systems and methods for facilitating electronic securities transactions
US8521627B2 (en) * 2007-04-18 2013-08-27 Blockross Holdings, LLC Systems and methods for facilitating electronic securities transactions
US9002827B2 (en) 2007-07-11 2015-04-07 Teradata Us, Inc. Database query table substitution
US8396862B2 (en) * 2007-07-30 2013-03-12 Teradata Us, Inc. Product join dynamic partition elimination for multilevel partitioning
US20090144229A1 (en) * 2007-11-30 2009-06-04 Microsoft Corporation Static query optimization for linq
US8095540B2 (en) * 2008-04-16 2012-01-10 Yahoo! Inc. Identifying superphrases of text strings
US8402016B2 (en) * 2009-05-27 2013-03-19 Hewlett-Packard Development Company, L.P. Fetching optimization in multi-way pipelined database joins
US8332388B2 (en) * 2010-06-18 2012-12-11 Microsoft Corporation Transformation rule profiling for a query optimizer
US20110314001A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Performing query expansion based upon statistical analysis of structured data
US8326825B2 (en) 2010-11-05 2012-12-04 Microsoft Corporation Automated partitioning in parallel database systems
US9043248B2 (en) * 2012-03-29 2015-05-26 International Business Machines Corporation Learning rewrite rules for search database systems using query logs
US9405821B1 (en) * 2012-08-03 2016-08-02 tinyclues SAS Systems and methods for data mining automation
US9348895B2 (en) 2013-05-01 2016-05-24 International Business Machines Corporation Automatic suggestion for query-rewrite rules
US9633075B2 (en) * 2014-06-23 2017-04-25 Sap Se Framework for re-writing database queries
US9477724B2 (en) 2014-06-23 2016-10-25 Sap Se Framework for visualizing re-written queries to database
US10740331B2 (en) * 2014-08-07 2020-08-11 Coupang Corp. Query execution apparatus, method, and system for processing data, query containing a composite primitive
US10108712B2 (en) 2014-11-19 2018-10-23 Ebay Inc. Systems and methods for generating search query rewrites
US9901301B2 (en) 2014-12-12 2018-02-27 Ebay Inc. Coordinating relationship wearables
US9626430B2 (en) * 2014-12-22 2017-04-18 Ebay Inc. Systems and methods for data mining and automated generation of search query rewrites
US10452658B2 (en) * 2014-12-23 2019-10-22 Teradata Us, Inc. Caching methods and a system for entropy-based cardinality estimation
US9946749B2 (en) 2016-09-08 2018-04-17 Semmle Limited Rewriting inequality queries
US10346418B2 (en) * 2016-12-16 2019-07-09 Sap Se Optimizing data access based on data aging
US10592509B2 (en) * 2017-03-01 2020-03-17 Sap Se Declarative rules for optimized access to data
US11709891B2 (en) * 2020-12-31 2023-07-25 Teradata Us, Inc. Runtime metric estimations for functions
US11921878B2 (en) * 2021-01-21 2024-03-05 Servicenow, Inc. Database security through obfuscation
CN116701429B (zh) * 2023-05-19 2023-12-29 杭州云之重器科技有限公司 一种基于批量历史任务模糊化的公共查询方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829427A (en) * 1984-05-25 1989-05-09 Data General Corporation Database query code generation and optimization based on the cost of alternate access methods
JP2760794B2 (ja) * 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置
US5379419A (en) * 1990-12-07 1995-01-03 Digital Equipment Corporation Methods and apparatus for accesssing non-relational data files using relational queries

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925462B2 (en) 2001-02-22 2005-08-02 Hitachi, Ltd. Database management system, and query method and query execution program in the database management system

Also Published As

Publication number Publication date
US5544355A (en) 1996-08-06
GB9411286D0 (en) 1994-07-27
DE4416332A1 (de) 1994-12-15
GB2279165A (en) 1994-12-21

Similar Documents

Publication Publication Date Title
JPH07141236A (ja) 外部関数を有するリレーショナル・データベース・システムにおける照会最適化方法及び装置
EP1193618B1 (en) Cost based materialized view selection for query optimization
US7080062B1 (en) Optimizing database queries using query execution plans derived from automatic summary table determining cost based queries
US7136873B2 (en) Dynamic filtering in a database system
Hellerstein Optimization techniques for queries with expensive methods
US7162469B2 (en) Querying an object for properties
US7412436B2 (en) System and interface for manipulating a database
US5864840A (en) Evaluation of existential and universal subquery in a relational database management system for increased efficiency
US7672960B2 (en) Performing operations on a set of objects in a database system
US7149733B2 (en) Translation of object queries involving inheritence
US7082433B2 (en) Translation of object queries involving inheritence
US6338056B1 (en) Relational database extender that supports user-defined index types and user-defined search
US7359912B2 (en) Result set formatting and processing
US6529896B1 (en) Method of optimizing a query having an existi subquery and a not-exists subquery
US20040220896A1 (en) System and method for optimizing queries on views defined by conditional expressions having mutually exclusive conditions
US6826562B1 (en) Method of simplifying and optimizing scalar subqueries and derived tables that return exactly or at most one tuple
CA2327167C (en) Method and system for composing a query for a database and traversing the database
JPH09171478A (ja) 改良された索引によるアクセスを使用するデータベース管理システム
US20040220908A1 (en) Information retrieval system and method for optimizing queries having maximum or minimum function aggregation predicates
US9594783B2 (en) Index selection for XML database systems
Yerneni Mediated query processing over autonomous data sources
Dinn et al. The implementation of a deductive query language over an OODB
JPH03154941A (ja) データベース操作処理方式