JP3361783B2 - オブジェクト指向照会を実行する方法および装置 - Google Patents

オブジェクト指向照会を実行する方法および装置

Info

Publication number
JP3361783B2
JP3361783B2 JP28616799A JP28616799A JP3361783B2 JP 3361783 B2 JP3361783 B2 JP 3361783B2 JP 28616799 A JP28616799 A JP 28616799A JP 28616799 A JP28616799 A JP 28616799A JP 3361783 B2 JP3361783 B2 JP 3361783B2
Authority
JP
Japan
Prior art keywords
query
database
data
cache
object cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP28616799A
Other languages
English (en)
Other versions
JP2000163448A (ja
Inventor
マイケル・ジェームズ・ケアリー
ジェラルド・ジョージ・キアナン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000163448A publication Critical patent/JP2000163448A/ja
Application granted granted Critical
Publication of JP3361783B2 publication Critical patent/JP3361783B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/24539Query rewriting; Transformation using cached or materialised query results
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed 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/953Organization of data
    • Y10S707/955Object-oriented
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、全般的にはコンピ
ュータ実施されるデータベース・システムに関し、具体
的には、遅延更新(deferred update)と自律的ソース
を用いる照会最適化に関する。
【0002】
【従来の技術】データベースとは、コンピュータ化され
た情報記憶検索システムである。関係データベース管理
システム(RDBMS)は、データの記憶と検索に関係
技法を使用するデータベース管理システム(DBMS)
である。関係データベースは、データの行と列からなる
表に編成される。行は、形式上はタプルまたはレコード
と呼ばれる。データベースは、通常は多数の表を有し、
各表は、通常は複数のタプルと複数の列を有する。表
は、通常は、半永久的な記憶のために磁気ディスク駆動
装置または光ディスク駆動装置などの直接アクセス記憶
装置(DASD)に格納される。
【0003】オブジェクト技法とデータベース・システ
ムの統合が、最近10年間の活発な研究領域になってき
た。これら2つの技術の統合の重要な態様の1つが、オ
ブジェクト・データにアクセスし、操作するための効率
的な宣言型照会インターフェースの提供である。オブジ
ェクト指向言語(たとえばC++やSmalltal
k)への永続性の統合などのオブジェクト指向データベ
ース(OODB)技術の他の態様と比較して、照会は、
OODB研究の初期段階ではほとんど注目されなかっ
た。これについては、<1> Mike Stonebraker, "Third-G
eneration Data Base System Manifesto", Computer St
andards & Interfaces, December 1991 にさらに記載さ
れている。<2> Won Kim, "Object-Oriented Database S
ystems: Promise, Reality, and Future", Proc. 19th
International Conference on VeryLarge Data Bases,
Dublin, August 1993 では、市販OODBシステムがこ
れに関して弱いことが指摘されている。
【0004】しかし、OODB照会言語に関する多数の
提案が、データベースの文献にある。代表的な文献を以
下にリストする。 <3> M ike Carey et al., "A Data Model and Query Lan
guage for EXODUS", Proc. ACM-SIGMOD International
Conference on Management of Data, Chicago, June 19
88; <4> W on Kim, "A Model of Queries For Object-Orient
ed Databases", Proc. 15th International Conference
on Very Large Data Bases, Amsterdam, August1989; <5> F rancois Bancilhon et al., "Query Language for
the O Object-Oriented Database System", edited
by Richard Hull et al., Proc. 2nd International Wo
rkshop on Database Programming Languages, Gleneden
Beach, Morgan-Kaufmann Publishers, Inc., June 198
9(以下「バンシルホン他」と呼称); <6> J ack Orenstein et al., "Query Processing in th
e ObjectStore DatabaseSystem", Proc. ACM-SIGMOD In
ternational Conference on Management of Data, San
Diego, June 1992(以下「オレンシュタイン他」と
称); <7> S. D ar et al., "CQL++: A SQL for a C++ Based O
bject-Oriented DBMS",Proc. International Conferenc
e on Extending Data Base Technology, Advances in D
atabase Technology - EDBT '92, Lecture Notes in Co
mputer Science, Vienna, Springer-Verlag, 1992; <8> M ichael Kifer et al., "Querying Object-Oriente
d Databases", Proc. ACM-SIGMOD International Confe
rence on Management of Data, San Diego, June 1992; <9> T om Atwood et al. "Object Query Language", edi
ted by R.G.G. Cattell,Object Database Standards: O
DMG-93 Release 1.1 Morgan- Kaufmann Publishers, In
c., 1993(以下「アトウッド他」と呼称); <10> J ose Blakeley et al. "Experiences Building Th
e Open OODB Query Optimizer", Proc. ACM-SIGMOD Int
ernational Conference on Management of Data,Washin
gton D.C., May 1993. 提案の数は実際の実現数を上回るが、これらの言語設計
のうちのつかは、多数の市販OODB製品の照会イン
ターフェースとして実際に実されており、これについ
てはバシルホン他とオレンシュタイン他に記載がある。
【0005】一般的にいオブジェクト照会機能を有す
るとみなされている市販OODBシステムであるO2
(バンシルホン他に記載)とObjectStore
(オレンシュタイン他に記載)は、それぞれ独自のオブ
ジェクト照会言語を備えている。ObjectStor
eの照会言語は、C++の式の構文に対する拡張であ
る。O2の照会言語は、全般的にはよりSQLに近く、
アトウッド他に記載されているように、OODBシステ
ム・ベンダの協会によって提案されたOODB照会言語
標準規格(ODMG−93提案)に採用されたが、多く
の点でSQLと異なり、これについては、<11> Won Ki
m, "Observations on the ODMG-93 Proposal",ACM SIGM
OD Record, 213(1), March 1994 に記載されている。
【0006】照会書直し変換は、関係DBMS用に開発
された。これについては、以下の文献を参照されたい。 <12> H amid Pirahesh et al., "Extensible/Rule Based
Query Rewrite Optimization in Starburst", Proc. A
CM-SIGMOD International Conference on Management o
f Data, San Diego, June 1992; <13> I nderpal Singh Mumich et al., "Magic is Relev
ant", Proc. ACM-SIGMODInternational Conference on
Management of Data, pp. 247-258, Atlantic City, Ma
y 1990; <14> I nderpal Singh Mumick et al., "The Magic of D
uplicates and Aggregates", Proc. 16th Internationa
l Conference on Very Large Data Bases, Brisbane, A
ugust 1990.
【0007】これらの変換の多くが、オブジェクト照会
システムにも適用される。しかし <15> S ophie Cluet et al., "A General Framework for
the Optimization of Object-Oriented Queries", Pro
c. ACM-SIGMOD International Conference on Manageme
nt of Data, San Diego, June 1992 に記載されている
ように、特にオブジェクト照会システムに適用される新
しい照会書直し変換を開発する必要がある。照会書直し
変換である述部プッシュダウンは、照会を受け取り、ス
キーマの階層を介して照会のどの部分をデータが常駐す
るデータベースに移行することができるかを判定すると
いう概念である。その目的は、データーベース照会機能
の威力を使用してデータ・フィルタリングを行うことに
より、データベース・サーバからクライアントに転送し
なければならないデータの量を制限することである。
【0008】述部プッシュダウンには、照会の結果を定
義する述部のすべてを含めることができ、この場合に
は、結果セットを制限するという作業は、完全に、デー
タが常駐するデータベースによって実行される。述部プ
ッシュダウンには、照会の結果を定義する述部を部分的
に含めることができ、この場合には、述部の一部(たと
えば、照会の結果を定義する合接(conjuncts)のサブ
セット)が、データが常駐するデータベースに渡され、
これによって、これらのデータベースによって返される
結果が制限される。プッシュ・ダウンすることができな
かった残りの述部は、照会エバリュエータによってオブ
ジェクト空間内で適用される。最後に、もし、述部プッ
シュダウンを適用できなければ、照会の結果を定義する
述部は、その照会で参照されるデータの完全なセットを
検索した後に、オブジェクト空間内で適用されなければ
ならない。
【0009】分散照会処理のための半結合(semi-joi
n)技法が、<16> Clement T. Yu et al. "Distributed
Query Processing", ACM Computing Surveys, 16(4):39
9-433, December 1984(以下「ユー他」と呼称)で提
示された。同様に、照会を結合するために、半結合照会
は、複数の表を用い、1つの照会にかかわる表の間の関
係を確立する述部を有する。しかし、半結合照会の射影
句(projection clause)では、表のサブセットだけが
参照される。
【0010】次の最適化が、ユー他に提示されている。
ある結合に加わる2つの遠隔表TおよびTがあるも
のとすると、各表が異なる遠隔DBMSによって管理さ
れる場合、表Tに対応する結果が最初に検索される。
表T、j≠iに対応する結果は、その後、表Tから
検索された結果の結合列値のリストにTの結合列値が
含まれる結果を選択することによって検索される。この
手順は、まず最初の結果を制限するために使用すること
のできるTだけを用いる1つ以上の追加の述部がある
場合に、特に興味深い。
【0011】クライアント・キャッシュを使用する照会
評価が、<17> Michael J. Franklinet al., "Semantic
Data Caching and Replacement", Proc. 22nd Internat
ional Conference on Very Large Data Bases, Mumbai,
August 1996(以下「ダール他」と呼称)に提示され
ている。ダール他は、照会をクライアント・キャッシュ
だけから解決できるか、部分的な照会結果をクライアン
ト・キャッシュから得ることができ、残りの結果はデー
タベース・サーバから引き出されるかの判定に焦点を合
わせている。照会評価に使用される技法は、クライアン
ト・キャッシュ内容の意味論的記述の維持に基づく。所
与の表に対して、意味論的記述は、新しいキャッシュ項
目を含めるために動的に変更される制約である。たとえ
ば、ある照会で当初は50,000と100,000の
間の給料を有する全従業員が検索されるならば、従業員
表に関するキャッシュ内容を記述する制約は、sal≧
50000 and sal≦100000である。
し、後続の照会が、60,000と80,000の間の
給料を有する従業員を要求すれば、その照会結果は、キ
ャッシュだけから引き出すことができる。述部ベース・
キャッシングと称する類似アプローチが、<18> Arthur
M. Keller et al., "A Predicate-Based Caching Schem
e for Client-Server Database Architectures", The V
LDB Journal, 5:35-47, 1996 に記載されている。
【0012】照会シッピング対データ・シッピングの性
能トレードオフが、<19> Michael J. Franklin et al.,
"Performance Tradeoffs for Client-Server Query Pr
ocessing", Proc. ACM-SIGMOD International Conferen
ce on Management of Data,Montreal, June 1996 に記
載されている。照会シッピングは、照会がクライアント
からサーバに渡され、照会評価の作業がサーバ側で行わ
れる関係DBMSクライアント・サーバ環境として説明
される。オブジェクト指向DBMSクライアント・サー
バ環境は、新造のデータ・シッピングである。というの
は、データ・ページまたはオブジェクトが、サーバから
クライアントに転送され、クライアント側で処理のほと
んど(たとえばナビゲーショナル・データ・アクセ
ス)が行われるからである。照会シッピングとデータ・
シッピングの両方の長所を組み合わせるために、ハイブ
リッド・シッピングが提案されている。
【0013】
【発明が解決しようとする課題】したがって、当技術分
野には、データベースに接続されたオブジェクト・キャ
ッシュを有するミドルウェア・システムで以前のシステ
ムを拡張する、という要請がある。さらに、当技術分野
には、遅延更新と自律的ソースを用いる照会最適化のた
めの改良された技法の要請がある。
【0014】
【課題を解決するための手段】前述の従来技術の制限を
克服し、本明細書を読み、理解した後に明白になる他の
制限を克服するために、本発明は、遅延更新と自律的ソ
ースを用いる照会最適化のためのコンピュータ実施され
る技法のための方法および置を開示する。
【0015】本発明によれば、オブジェクト指向照会が
実行されて、データベースからデータが検索される。デ
ータベースは、コンピュータに接続されたデータ記憶装
置に格納される。オブジェクト指向照会は、副照会(su
bqueries)に変換され、少なくとも1つの副照会が、デ
ータベースに向けられ、少なくとも1つの副照会が、オ
ブジェクト・キャッシュに向けられる。データベースに
向けられる副照会のそれぞれが実行されて、データベー
スからオブジェクト・キャッシュにデータが取り出され
る。オブジェクト・キャッシュに向けられた副照会のそ
れぞれが実行されて、照会のためのデータが取り出さ
れ、このデータに、オブジェクト・キャッシュの更新と
データベースの更新が組み込まれる。
【0016】本発明の目的は、関係データベースを含む
ことができる異種データベースのオブジェクト視点(vi
ew)のためのオブジェクト照会アクセスを提供すること
である。本発明のの目的は、オブジェクト・キャッシ
ュ内のデータとデータベース内のデータの間の相違を考
慮に入れながら、オブジェクト指向照会に応答してデー
タを検索することである。
【0017】
【発明の実施の形態】以下の好ましい実施例の説明で
は、本明細書の一部を形成する添付図面を参照するが、
これらの図面は、本発明を実できる具体的な例を示す
ためのものである。本発明の範囲から逸脱せずに構造的
変更を行うことができるので、他の実施態様を使用でき
ることを理解されたい。
【0018】 A.遅延更新と自律的ソースを用いる照会最適化 本発明のDECAFシステムは、基礎となるデータベー
スに対する遅延更新をサポートするオブジェクト・キャ
ッシュを有するオブジェクト照会システムのための照会
最適化技法を提供する。DECAF最適化は、オブジェ
クト・キャッシュを通過しない、基礎となるデータベー
スに対する更新(すなわち、他のトランザクションによ
ってデータベースに対して直接に実行される更新)の存
在下で正しく動作するように設計されている。DECA
F最適化照会結果は、そのようなトランザクションによ
って実行される更新との一貫性を有する。DECAF最
適化照会結果は、オブジェクト・キャッシュ内に存在す
遅延更新との一貫性も有する。DECAF最適化は、
基礎となるDBMSへ照会述部をプッシュ・ダウンする
ことを試みて、これらのシステムの照会処理能力を利用
し、これらのシステムからオブジェクト・キャッシュへ
転送されるデータの量を減らす。
【0019】DECAF最適化は、関係データベースを
含むことのできる異種データベースのオブジェクト視点
に関するオブジェクト照会アクセスを提供する。視点オ
ブジェクトのオブジェクト・キャッシュは、既存DBM
Sによってバッキングされたレガシー・データへのアク
セスを必要とするアプリケーションに、オブジェクト指
向DBMS(OODBMS)のルック・アンド・フィー
ルを与える。オブジェクト照会言語は、<20> Jerry Kie
rnan et al., "Extending SQL-92 for QQDB Access: De
sign and Implementation Experience", Proc. Confere
nce on Object-Oriented Programming Systems, Langua
ges, and Applications, Austin, October 1995(以
「キールナン他」と呼称)に記載のオブジェクト拡
張を有するSQL−92である。
【0020】ObjectStore、O2およびOD
MG−93の照会インターフェースとは異なり、DEC
AF最適化の目標は、<21> ISO_ANSI, Database Langua
ge SQL ISO/IEC 9075:1992, 1991 に記載のSQL−9
2に対する上位互換拡張を提供するOODB照会インタ
ーフェースをサポートすることである。この照会言語の
アプローチの動機は、2つの面を有する。まず、これに
よって、SQLに精通したプログラマが、完全に新しい
言語を学ぶことなくOODB照会を記述できるようにな
る。このようなプログラマは、照会言語のオブジェクト
拡張について習得するだけでよい。第2に、これによっ
て、関係システムのために作成された多数のツールが、
<22> Microsoft, "Programmer's Reference, Microsoft
Open Database Connectivity Software Development K
it", 1992 に記載のODBCなどのインターフェースを
介してOODBデータにアクセスできるようになる。
【0021】DECAF最適化は、分散照会処理用のユ
ー他に提示された最適化とは異なる。具体的に言うと、
分散照会処理技法では、複数の遠隔データベースにまた
がって区分されたデータを処理する。分散照会処理技法
とは異なって、DECAF最適化では、1つ以上の遠隔
データベースから検索されたデータの部分的でおそらく
は一貫性のない複製を含むオブジェクト・キャッシュを
使用して照会を処理する。
【0022】DECAF最適化とは異なって、ダール他
に記載されたものなどの現在の意味論的キャッシュ管理
技法は、単純な照会だけに適し、基礎となるDBMSに
対して他のトランザクションによって行われる更新の認
識という問題に対処していない。
【0023】1. DECAFシステムの概要 DECAF最適化は、遅延更新を用いるオブジェクト・
キャッシュを使用して、オブジェクト視点に対する照会
に対して一貫性のある回答を供給するための、照会最適
化技法を提示する。
【0024】RDBMSは、照会と(行の形の)照会結
果がクライアント・アプリケーションとデータベース・
サーバの間のプロトコルの主要な要素になるクライアン
ト・サーバ実行時モデルを利用する。結果がアプリケー
ションに返される間に、キャッシング(バッファリン
)がサーバ側で実行され、新しい結果がサーバ側で計
算され、クライアント・アプリケーションが受け取った
ことがある以前の結果が無視される。オブジェクト指向
DBMS(OODBMS)も、クライアント・サーバ実
行時モデルを使用する。RDBMSと異なって、OOD
BMSは、照会評価を含むこの作業を、一般にクライア
ント・キャッシュ上で実行する。一部のOODBMSで
は、サーバは、クライアント・キャッシュからのページ
要求に応答する単なるページ・サーバである。それ以外
のOODBMSでは、サーバはオブジェクト・サーバで
あり、個々のオブジェクトまたはオブジェクトの論理グ
ループをクライアントに送る。
【0025】DECAF最適化は、RDBMSを含む
とのできるDBMSによって管理されるデータのオブジ
ェクト指向視点を提示する照会機能を有する。このオブ
ジェクト指向視点は、DBMSから検索されたデータの
オブジェクト・キャッシュを用いて維持される。オブジ
ェクト・キャッシュには、DBMSデータのサブセット
が含まれ、このサブセットは、クライアント・アプリケ
ーションによって操作されつつあるデータに対応する。
オブジェクト・キャッシュには、必ずしもその目標DB
MSに即座に伝播する必要がない更新も含まれる。たと
えば、効率上の理由から、オブジェクト・キャッシュか
ら目標DBMSへの更新は、クライアントがトランザク
ション・コミットを発行するまで実行されないことがあ
る。オブジェクト照会は、オブジェクト・キャッシュに
よって維持されるオブジェクト視点に対して表現され
る。照会書直し最適化は、オブジェクト・モデルに対し
て表現された照会を、目標データベースに対して表現さ
れた同等の照会に変換し、これによって、それらのシス
テムの照会機能を利用し、データベース・サーバとオブ
ジェクト・キャッシュの間で転送されるデータの量を制
限するために使用される。しかし、クライアント照会結
果は、目標データベースと一貫性を有する必要があり、
オブジェクト・キャッシュ内に存在する遅延更新との一
貫性を有する必要がある。
【0026】関係DBMSの視点を解決するのに使用さ
れる技法が、オブジェクト視点に拡張され、適合されて
きた。照会書直し技法は、多値視点列、インスタンス視
点列および視点列を横断する経路式を有することができ
る視点に対してオブジェクト照会を解決するのに使用さ
れる。多くのOODBMSおよびオブジェクト指向シス
テム(OOS)に見られるクラスと集合の区別を保持す
るために、視点型という概念が導入された。単一の視点
型を、複数の視点、多値視点列またはインスタンス視点
列に使用することができ、これについてはキールナン他
にさらに記載がある。具体的に言うと、集合は、オブジ
ェクトの集合を指す。オブジェクトは、クラスからイン
スタンス化される。
【0027】オブジェクト指向DBMSは、アプリケー
ションの型とデータベースの型のシームレスな統合を提
供する。関係データベースに対する照会では、表の行の
属性に対応する値が返されるが、これに対して、オブジ
ェクト指向データベースに対する照会では、照会結果と
してアプリケーション・オブジェクトへのハンドルを返
すことができる。アプリケーション・オブジェクトへの
ハンドルを返すことが、視点に対する照会の問題にな
る。視点は、照会エンジンによって理解されるが、通常
は、アプリケーション型としての表現を有しない。視点
と視点型からアプリケーション・オブジェクトを作成す
る問題を、オブジェクト構築(object building)と称
する。オブジェクト構築は、米国特許出願第08/85
3976号にさらに記載されている。オブジェクト構築
は、照会評価中に照会エンジンの制御の下で実行され
る。オブジェクト構築によって影響を受ける照会には、
1)照会結果として視点型を返す照会と、2)視点型に
対するメソッドを呼び出す照会の2種類がある。
【0028】オブジェクト・キャッシュは、同一の内部
識別子を有する場合に2つのオブジェクトが同一である
ことを表す、同一性(identity)というオブジェクト指
向の概念を維持するために使用される。たとえば、C+
+では、メモリ位置によって同一性が決定される(すな
わち、オブジェクトは、メモリ内の位置によって一意に
識別される)。つかのOODB(たとえば、<23> O.
Deux et al., "The Story of O ", IEEE Transactions
on Knowledge and Data Engineering, 2(1),May 1990
に記載のO2)では、オブジェクト識別子(OID)を
使用して、オブジェクトへの一意の参照を維持する。O
IDは、記憶位置から独立の論理識別子またはある記憶
区域を指す物理的識別子のいずれかとすることができ
る。
【0029】DECAF最適化の場合、オブジェクト
は、基礎となるデータベースから検索され、オブジェク
ト・キャッシュに追加される。キーを使用して、オブジ
ェクトがオブジェクト・キャッシュにすでに常駐してい
るかどうかを判定する。キーは、ある型の1つ以上のメ
ンバから導出される。もし、オブジェクトがオブジェク
ト・キャッシュ内で見つかれば、そのオブジェクトのキ
ャッシュされたコピーが使用される。一方、オブジェク
トがオブジェクト・キャッシュ内で見つからなければ
キャッシュされたコピーを作成し、キャッシュに追加す
る。その後、クライアント・アプリケーションが、オブ
ジェクトの内部識別子(たとえばキャッシュ・アドレ
ス)を使用して、そのオブジェクトを参照できるように
なる。
【0030】2. DECAF環境 この節では、本発明のDECAF最適化を使用すること
のできる環境の概要を手短に示す。DECAF最適化の
焦点は、関係表または他のデータベース構造に基づく視
点型のオブジェクトに向けられているので、この節で
は、オブジェクト視点と視点型についても再検討する。
【0031】2.1 実行時キャッシュ記憶環境 図1は、好ましい実施例に従って本発明のために使用す
ることのできる、3階層実行時環境を示す図である。3
階層環境は、より一般的な2階層環境またはクライアン
ト・サーバ環境から生じた。図1では、3つの階層10
2、104および106を、ネットワークによって接続
された別々のシステムとすることができる。代替案で
は、3つの階層102、104および106が、1つの
システムに常駐することができる。同様に、このシステ
ムは、第1の階層と第2の階層が組み合わされる2階層
環境にも同様に適合させることができる。
【0032】3階層環境では、2階層環境で「クライア
ント」と呼ばれていたものが、基本的に2つの階層
なわち、階層1102に含まれるクライアント・ア
プリケーション108と、階層2104の、複数の
クライアント・アプリケーションに共通するビジネス論
理を含むビジネス・オブジェクト・サーバ110に分割
される。階層3(106)には、たとえばRDBMSな
どのバックエンド・データベース・サーバであるデータ
ベース116が含まれる。
【0033】階層2の焦点は、階層3に含まれるデータ
を、アプリケーションの要請に最も適したビジネス・オ
ブジェクトとして提示し、これによって、そうでなけれ
ばクライアント・アプリケーションにまたがって複製さ
れるはずのビジネス論理の比率を減らすことである。ビ
ジネス・オブジェクト・サーバ110には、クライアン
ト・アプリケーション108からの照会を処理するため
の照会サービス112と、RDBMS116から検索さ
れた部分のデータを記憶するためのオブジェクト・キャ
ッシュ114が含まれる。オブジェクト・キャッシュ1
14のデータは、オブジェクト・キャッシュ114内
で直接に変更することができる。
【0034】具体的に言うと、階層1のクライアント・
アプリケーション108は、照会エバリュエータ(Q
E)のハンドルを取得し、このハンドルは、階層2に
るビジネス・オブジェクト・サーバ110への照会の発
行と、それからの照会結果の取り出しに使用することが
できる。オブジェクトへの参照である照会結果は、階層
2のオブジェクト・キャッシュ114によって管理され
る。クライアント・アプリケーション108は、オブジ
ェクトへのハンドルを取得し、そのオブジェクトを操作
する(たとえばC++のメソッドを用いて)か、オブ
ジェクトの値(たとえば従業員オブジェクトで維持さ
れる従業員の名前)を得ることができる。
【0035】以下の説明では、2つのトランザクション
環境すなわち、直列化可能反復可能読取環境(Serial
izable Repeatable Read environment)と、読取コミッ
トを用いる最適ロッキング環境(Optimistic Locking w
ith Read-Committed environment)に焦点を合わせる。
【0036】直列化可能反復可能読取環境では、あるト
ランザクションがRDBMS116からのデータをオブ
ジェクト・キャッシュ114に取り出すことを必要と
る時に、そのトランザクション、トランザクションの
持続時間の間、取り出されるデータに関してRDBMS
116上にロックを維持する。すなわち、他のトランザ
クションは、そのトランザクションがコミットするま
で、RDBMS116によって使用されるデータにアク
セスできなくなる。したがって、階層1のクライアント
・トランザクションが、階層2のオブジェクト・キャッ
シュ114内に私有キャッシュを有し、その私有キャッ
シュに、それの代わりに階層3のデータベース116か
ら取り出されたオブジェクトが含まれる時には、トラン
ザクションの開始以降に取り出された階層2のキャッシ
ュされたオブジェクトは、トランザクションの持続期間
の間は階層3のデータベース116との一貫性を有す
る。
【0037】階層2によって管理されるクライアント・
トランザクションと、階層3によって管理される対応す
るデータベース・トランザクションの間には、1対1の
対応関係がある。階層2のオブジェクト・キャッシュ1
14は、トランザクションの終りまで、階層3のRDB
MS116への更新を遅延することができる。さらに、
階層2のオブジェクト・キャッシュ114の内容は、ト
ランザクションの終りを超えて保存してもしなくてもよ
い。
【0038】読取コミットを用いる最適ロッキング環境
では、トランザクションは、RDBMS116にデータ
を書き戻している間に、RDBMS116上にロックを
保持しない。したがって、トランザクションの持続期間
中にRDBMS116に対して行われる可能な更新は、
RDBMS116を更新する前に判定される。さらに、
RDBMS116から取り出された元のデータが維持さ
れ、元のデータは、トランザクションがRDBMS11
6に更新を書き込む準備ができた時にRDBMS116
のデータと比較される。この形で、トランザクションの
持続期間中にRDBMS116に対して行われた変更の
すべてが識別される。
【0039】階層2のオブジェクト・キャッシュ114
は、ビジネス・オブジェクト・サーバ110を使用して
いるN個のクライアント・アプリケーションの間で共用
される。階層2のビジネス・オブジェクト・サーバ11
0は、そのクライアント・トランザクションの間の直列
化可能反復可能読取に基づいて、あるレベルの分離を維
持する。
【0040】階層2のビジネス・オブジェクト・サーバ
110と階層3のデータベース116の間で保たれる分
離のレベルは、読取コミットである。すなわち、コミッ
トされた更新だけが、階層3からオブジェクト・キャッ
シュ114へ取り出される。しかし、階層3からのオブ
ジェクトの検索は、直列化可能反復可能読取より低い一
貫性レベルで行うことができ、階層3のロックは、その
クライアント・トランザクションの持続期間中は維持さ
れない。オブジェクト・キャッシュ114に対して行わ
れる更新は、クライアント・トランザクションが終わる
まで遅延され、クライアント・トランザクションの終り
に更新を適用するために、別の階層3のRDBMSトラ
ンザクションが作成される。この更新トランザクション
が打ち切られるのは、キャッシュ内の更新されたオブジ
ェクトが、階層2のオブジェクト・キャッシュ114か
ら最後に読み取られた後に階層3のデータベース116
内で変更されている場合である。たとえば、従業員Eの
給料が、オブジェクト・キャッシュ114読み取られ
た時には10,000であったが、遅延更新トランザク
ションが実行される時に12,000であることがわか
ったならば、トランザクションが打ち切られ、更新は行
われない。
【0041】クライアント・トランザクションが開始さ
れた後に階層3からオブジェクト・キャッシュ114に
取り出されたオブジェクトは、そのクライアント・トラ
ンザクションが終了するまで最新化(refresh)されな
い。すなわち、もし、同一のオブジェクトが、クライア
ント・アプリケーションの途中で2回、異なる値を有す
る状態で取り出されるならば、最初の値が維持される。
オブジェクト・キャッシュ114は共用されるので、オ
ブジェクト・キャッシュ114は、クライアント・トラ
ンザクションの終了時にフラッシュされない。したがっ
て、クライアント・アプリケーションが、たとえば照会
処理中に遭遇する、キャッシュされたオブジェクトは、
キャッシュされたオブジェクトのコピーがクライアント
・トランザクションの開始時より古い場合に、階層3の
検索を介して取得された値によって最新化されなければ
ならない。
【0042】照会サービス112を、ここで手短に説明
し、節2.2で詳細に説明する。照会サービス112
は、オブジェクトの集合に対する照会を受け入れる。こ
れらの集合は、階層3で管理されるデータベースに含ま
れる表から導出された視点型とすることができる。オブ
ジェクトに対するハンドルを返す照会またはオブジェク
トに対するメソッドを呼び出す照会は、照会の評価中に
「オブジェクト構築」と称する処理を必要とする。すな
わち、照会エバリュエータは、必要なデータに関するキ
ャッシング機能を呼び出して、メモリ内のオブジェクト
のキャッシュされたコピーを活性化または作成(構築)
する。発見または作成されたオブジェクトは、その後の
処理のために照会エバリュエータに返される。もし、
のオブジェクトが照会の結果の一部であれば、そのオブ
ジェクトは、階層1のクライアント・アプリケーション
108にも返される。もし、オブジェクト・キャッシュ
114に遅延更新が含まれるならば、照会評価では、照
会の結果を計算する際に、これらの更新も考慮する必要
がある。
【0043】3階層環境では、とりわけ、各階層に、固
定ディスク駆動装置、ハード・ディスク装置、フロッピ
・ディスク駆動装置、CD−ROM駆動装置、テープ駆
動装置または他の駆動装置などの1つ以上のデータ記憶
装置に結合された1つ以上のプロセッサが含まれること
がある。
【0044】3階層環境100の操作員は、IMS/D
B/C(商標)、CICS(商標)、TSO(商標)、
OS/390(商標)、ODBC(商標)などの標準操
作員インターフェースまたは他の同様のインターフェー
スを使用して、照会と称する、データベース116に対
するさまざまな探索および取り出し機能を実行するため
のコマンドを表す電気信号を、クライアント・アプリケ
ーション108との間で送受することができる。本発明
では、これらの照会が、構造化照会言語(SQL)規格
に準拠し、関係データベース管理システム(RDBM
S)ソフトウェアであるデータベース116によって実
行される機能を呼び出す。
【0045】SQLは、RDBMSソフトウェアの標準
言語になり、米国規格協会(ANSI)および国際標準
化機構(ISO)の両方でRDBMSソフトウェアの標
準言語として採用された。SQLを用いると、ユーザ
が、対話式、バッチファイル内、または、CやCOBO
Lなどのホスト言語に埋め込まれた形のいずれかで、表
に対する関係操作を定式化できるようになる。SQLを
用いると、ユーザがデータを操作できるようになる。し
かし、当業者は、本発明が、SQLを使用するものであ
れそうでないものであれ、すべてのデータベース・ソフ
トウェアに適用可能であることを理解するであろう。
【0046】一般に、クライアント・アプリケーショ
ン、ビジネス・オブジェクト・サーバ、RDBMSソフ
トウェアおよびそこから導出された命令は、すべてが、
たとえば1つ以上のデータ記憶装置などのコンピュータ
記憶媒体内で具体的に実施される。さらに、クライアン
ト・アプリケーション、ビジネス・オブジェクト・サー
バ、RDBMSソフトウェアおよびそこから導出された
命令のすべてが、命令からなり、これらの命令は、3階
層環境100によって読み取られ、実行される時に、3
階層環境に、本発明を実施または使用するのに必要なス
テップを実行させる。1つ以上のオペレーティング・シ
ステムの制御下で、クライアント・アプリケーション、
ビジネス・オブジェクト・サーバ、RDBMSソフトウ
ェアおよびそこから導出された命令を、データ記憶装置
からコンピュータ・システムのメモリにロードして、実
際の動作中に使用することができる。
【0047】したがって、本発明は、ソフトウェア、フ
ァームウェア、ハードウェアまたはそれらの組み合わせ
を作るための標準プログラミング技法または標準エンジ
ニアリング技法を使用する方法または置として実施す
ることができる。
【0048】当業者は、図1に示された環境が、本発
明を制限する目的のものでないことを理解するであろ
う。実際、当業者は、本発明の範囲から逸脱せずに、他
の代替ハードウェア環境を使用することができることを
理解するであろう。
【0049】2.2 オブジェクト照会サーバ 図2は、本発明の好ましい実施例に従って使用すること
のできるオブジェクト指向SQL(OO−SQL)照会
エンジン200を示す図である。OO−SQL照会エン
ジンは、Starburst関係DBMSの設計に基づ
く。このStarburst関係DBMSは、<24> L.
M. Haas et al., "Starburst Mid-Flight: As the Dust
Clears", IEEE Transactions on Knowledge and Data
Engineering, pp. 143-160, March 1990 に記載されて
いる。オブジェクト指向DBMSまたは、照会エンジン
がその上で走行するオブジェクト指向システムは、デー
タベース・マネージャ202として働く。
【0050】可搬性にかかわる構成要素は、オブジェク
ト指向呼出しレベル・インターフェース(OOCLI)
204、スキーマ・アクセス構成要素206および集合
アクセス構成要素208である。OOCLI204は、
照会を受け入れ、タプルまたはオブジェクトの集合の形
で結果を返すアプリケーション・プログラマ・インター
フェース(API)である。
【0051】スキーマ・アクセス構成要素206は、照
会コンパイル中に、照会で参照される集合に含まれるオ
ブジェクトのスキーマを記述するために呼び出される。
経路式で参照される中間ノードの型のスキーマも、この
インターフェースを介して取得される。視点である集合
は、照会コンパイル中に、それを実する視点定義を抽
出するために問い合わされる。これらの定義は、解析さ
れ、照会の照会グラフ(内部表現)に含まれる。スキー
マのテキスト表現によって、視点のスキーマ情報の管理
が簡単になる。照会リファインメント(query refineme
nt)中に、経路式を横断して、データの検索に使用され
るデータ・アクセス・メソッドを確立する。たとえば、
オフセット使用されるのであれば、経路式ノードに、
それが表すデータ・メンバの検索に必要なオフセットが
割り当てられる。もし、メソッドが使用されるのであれ
、経路式のメソッド・ノードのそれぞれについてメソ
ッド・ハンドル取得される。メタ・データ・インター
フェースでは、ローカル・メンバと継承されるメンバ
(すなわち、ローカル・メンバと継承されるメンバの両
方を含む所与の型について検索されるスキーマ情報)が
記述される。
【0052】照会最適化中の集合アクセス構成要素20
8の役割は、索引の使用可能性を文書化することであ
る。その主な仕事は、後に、照会実行中に、照会評価サ
ブシステム(QES)210の制御下で実行される。一
時的結果または中間結果を格納した集合が、照会評価中
に作成され、消去される。オブジェクトの集合を走査す
る反復子(またはカーソル)を作成し、オープンするこ
とによって、順次走査が実行される。使用可能な場合に
は、下限と上限を設定することによって、索引付きの走
査が実行される。
【0053】行の型の集合を、関係表から形成すること
ができる。これらの集合と型は、視点と視点型の定義に
含めることができ、これによって、関係データベース表
のオブジェクト視点が作成される。スキーマ・アクセス
構成要素206は、集合のそれぞれの支援記憶装置の型
を示す。この情報は、オプティマイザ212によって、
照会プラン生成のために照会最適化中に使用される。
し、表が照会に含まれるならば、オプティマイザ212
は、1つ以上の関係照会によって照会を解決できるかど
うかを判断する。もし、照会を1つ以上の関係照会によ
って解決できるならば、オプティマイザ212は、これ
らの関係照会をオブジェクト照会プランの一部として生
成する。その後、このような照会は、照会評価中に関係
DBMS214に発行される。
【0054】通常、アプリケーション216は、オブジ
ェクト指向SQL照会を発行して、関係DBMS214
からデータを検索する。OOCLI204は、照会を受
け入れる。SQLパーサ218は、照会を解析する。解
析中に、SQLパーサ218は、スキーマ・アクセス構
成要素206に集合または型の名前の情報を供給し、ス
キーマ・アクセス構成要素206から型のテキスト記述
を取得する。SQLパーサ218は、解析された照会を
表す構造体であるオブジェクト照会グラフ・モデル(O
QGM)を生成し、転送する。照会書直し構成要素22
0は、OQGMを受け取り、変更し、変更されたOQG
Mをオプティマイザ212に転送する。オプティマイザ
212は、照会を最適化し、プランを生成する。オプテ
ィマイザ212は、集合アクセス構成要素208と共に
働いて、プランを生成する時に索引使用可能性を判定
する。オプティマイザ212は、プランを照会リファイ
ンメント構成要素222に転送する。照会リファインメ
ント構成要素222は、スキーマ・アクセス構成要素2
06と共に働いて、プランのリファインに使用されるメ
ソッドのオフセットを計算し、そのメソッド・ハンドル
を取得する。その後、照会リファインメント構成要素2
22は、プランをリファインし、そのプランをQES2
10に転送する。QES210は、関係DBMS214
からデータを検索する集合アクセス構成要素208への
SQL照会の送出を含む処理を実行する。検索されたデ
ータは、その後、アプリケーション216に、たとえば
タプルの集合の形で返される。
【0055】DECAF最適化は、オブジェクト指向S
QL(OO−SQL)照会エンジン200の1つ以上
構成要素に常駐することができる。好ましい実施例で
は、たとえば、DECAF最適化は、オプティマイザ2
12の一部として、および、照会書直し構成要素220
の一部として常駐することができる。
【0056】キールナン他に、このシステムのすべての
照会処理構成要素の詳細な説明が記載されている。
【0057】2.3 オブジェクト視点の概要 この節では、行の型、オブジェクト視点の型およびオブ
ジェクト視点を手短に説明する。
【0058】2.3.1 関係行の型 DECAF最適化の1つの目的は、関係表を含む異種デ
ータのオブジェクト視点を提供することである。これを
達成するために、型と要素型の集合とを区別する必要が
ある。もし、OODB視点型へのパラメータとして表が
使用されるのであれば、各表の要素は、システム内の他
の集合に類似した関連型を有しなければならない。関係
表のそのような行型の例を下に示す。 row type db2depttable(dno integer, dname varchar, dfloor integer, budget integer primary key (dno)) row type db2emptable(eno integer, ename varchar, esal double precision, eage integer, edid integer not null, gender varchar, address varchar, primary key (eno), foreign key (edid) references db2depttable (dno))
【0059】上の最初の例では、「db2depttable」とい
う名前の行型が、4つの列と1つの基本キーを有するも
のとして定義されている。4つの列は、部署番号を表す
整数である「dno」、部署名を表す可変長文字列である
「dname」、部署の階を表す整数である「dfloor」、お
よび、部署の予算を表す整数である「budget」である。
基本キーは「dno」である。
【0060】上の第2の例では、「db2emptable」とい
う名前の行型が、7つの列、1つの基本キー、1つの外
部キーを有するものとして定義されている。7つの列
は、従業員番号を表す整数である「eno」、従業員の氏
名を表す可変長文字列である「ename」、従業員の給料
を表す倍精度数である「esal」、従業員の年齢を表す整
数である「eage」、従業員の部署識別子を表す整数であ
る「edid」、従業員の性別を表す可変長文字列である
「gender」、および、従業員の住所を表す可変長文字列
である「address」である。さらに、基本キーは「eno」
であり、外部キー「edid」は、行型「db2depttable」の
「eno」列に対応する。
【0061】一旦、行型が定義されると、その行型を別
名定義で参照することができる。別名定義によって、集
合の名前とその基礎になる要素型(行型)が、名前付き
関係表と関連付けられる。したがって、別名によって、
関係表の組が定義され、別名は、OO−SQL照会また
は視点型の定義に使用することができる。下に、関係
表の別名の例を示す。 alias db2dept for db2depttable (dbl.kiernan.dept) alias db2emp for db2emptable (dbl.kiernan.emp)
【0062】別名「db2dept」は、行型「db2depttabl
e」の表「dbl.kiernan.dept」のもう1つの名前であ
る。別名「db2emp」は、行型「db2empttable」の表「db
l.kiernan.emp」のもう1つの名前である。
【0063】2.3.2 視点型 説明のために、上で示した行型と同一のスキーマを有す
る視点型を下で定義する。実際の応用例では、これらの
視点によって、参照、入れ子になったセット(キールナ
ン他に記載されている)および式(たとえばsalary *
1.1)である属性が定義される。しかし、これらの特徴
は、DECAF最適化の例示に必要ではないので、この
例には現れない。
【0064】OO−SQL視点型は、列を有する表形式
の行ではなく、属性とおそらくはメソッドを有するオブ
ジェクト型を表す。視点型は、視点型が導出される元の
集合の型を識別するパラメータを受け入れる。パラメー
タ化されていることを除けば、視点型は、市販の関係シ
ステムに見られる視点に類似している。DECAF最適
化では、これらの型は、たとえば、C++などのプログ
ラミング言語で定義されたアプリケーション言語型にも
対応する。C++は、<25> Bjarne Stroustrup, "The C
++ Programming Language", Addison-Wesley Publishin
g Co., 1987 に記載されている。以下に、行型に対する
視点型の例を示す。 type VTEmp (this db2emptable): (no integer, name character, salary integer, age integer, did integer, primary key (no)) as ( select e.eno, e.ename, e.esal, e.eage, e.edid from this e ) type VTDept (this db2depttable): (no integer, name character, floor integer, primary key (no)) as ( select d.dno, d.dname, d.dfloor from this d )
【0065】視点型「VTemp」は、上で定義した行型「d
b2emptable」に基づく。視点型「VTemp」は、パラメー
タとして行型「db2emptable」を受け入れる。さらに、
視点型「VTemp」は、5つの属性と1つの基本キーを有
する。5つの属性は、行型「db2emptable」の列に対応
する「no」、「name」、「salary」、「age」および「d
id」である。基本キーは「no」である。「select」ステ
ートメントによって、型「db2emptable」の集合から列
が選択される。
【0066】視点型「VTDept」は、上で定義した行型
「db2depttable」に基づく。視点型「VTDept」は、パラ
メータとして行型「db2depttable」を受け入れる。視点
型「VTDept」は、は、3つの属性と1つの基本キーを有
する。3つの属性は、行型「db2depttable」の列に対応
する「no」、「name」および「floor」であり、基本キ
ーは、行型「db2depttable」の基本キーに対応する「n
o」である。「select」ステートメントによって、型「d
b2depttable」の集合から列が選択される。
【0067】視点型に基づく集合を定義することができ
る。下の例は、関係表に対する視点集合(表のオブジ
ェクト表現)である。 collection VEmp on VTEmp (db2emp) collection VDept on VTDept (db2dept)
【0068】たとえば、集合「VEmp」は、視点型「VTEm
p」であり、これは、行型db2emptableに基づく集合から
導出される。集合「VEmp」では、関係表である別名「db
2emp」が使用される。同様に、集合「VDept」は、視点
型「VTDept」であり、行型db2depttableに基づく集合か
ら導出される。集合「VDept」では、関係表である別名
「db2dept」が使用される。この集合は、関係表のオブ
ジェクト指向視点を表す。
【0069】上で説明した視点型に対応するアプリケー
ション型(たとえばC++のクラス)を生成すること
ができる。アプリケーション型は、その実と共に、O
O−SQL視点型の相当物との対応を保証するツールに
よって自動生成することができる。下の例は、従業員
部署データ・オブジェクトのC++版である。 class VTEmp { private: db2emptable *e; public: VTEmp (db2emptable *eparm) {e = eparm;} int get_no () {return (e->atts[0]);} char *get_name () {return (e->atts[1]);} int get_sal () {return (e->atts[2]);} int get_age () {return (e->atts[3]);} int get_did () {return (e->atts[4]);} } class VTDept { private: db2depttable *d; public: VTDept (db2depttable *dparm) {d = dparm;} int get_no () {return (d->atts[0]);} char *get_name () {return (d->atts[1]);} int get_floor () {return (d->atts[2]);}
【0070】クラス「VTEmp」には、表「e」のデータを
操作するC++メソッドが含まれる。定義済みのC++
メソッドは、get_no()、get_name()、get_sal()、get_a
ge()およびget_did()である。
【0071】クラス「VTDept」には、表「d」のデータ
を操作するC++メソッドが含まれる。定義済みのC+
+メソッドは、get_no()、get_name()およびget_floo
r()である。
【0072】視点型のオブジェクトは、アプリケーショ
ン・オブジェクトのインスタンスとして検索できる(た
とえば、C++で定義されたクラスに基づいてオブジェ
クトをインスタンス化することができる)。たとえば、
次の照会では、視点集合「VEmp」に含まれ、給料(sa
l)が10を超える視点型「VTEmp」のインスタンスが返
される。 select e from VEmp e where e.sal > 10
【0073】たとえばC++で定義されたアプリケー
ション型は、視点型「VTEmp」に対応する。オブジェク
ト構築が必要な上の照会を評価する際に、「VTEmp」の
型コンストラクタが、相関変数「e」によって識別され
る表の行へのハンドルを引数として呼び出される。基礎
となる行オブジェクトのスキーマは、別名によって与え
られる。上の例では、「e」の行オブジェクトは、列「n
o」、「name」、「salary」、「age」および「did」を
有する。
【0074】3. 遅延更新と自律的ソースを用いる照会最適化 DECAF最適化は、基礎となるデータベースに対する
遅延更新をサポートするオブジェクト・キャッシュを有
するオブジェクト照会システムのための照会最適化技法
である。DECAF最適化を用いると、オブジェクト・
キャッシュ内のデータが変更されつつある間に(すなわ
ち、所与の時点でオブジェクト・キャッシュを使用して
いるトランザクション以外のトランザクションによって
実行される更新)、データベースを更新できるようにな
る。データ保全性のために、クライアント・アプリケー
ションに返される照会結果には、他のトランザクション
によって行われたコミット済みの更新が含まれなければ
ならない。照会結果は、オブジェクト・キャッシュ内の
みに存在する遅延更新との一貫性も有する必要がある。
【0075】DECAF最適化は、3ステップに編成さ
れる。DECAF最適化の第1ステップでは、照会を書
き直し、その結果、照会の結果を判定する際にキャッシ
ュ内の遅延更新が考慮されるようにする。DECAF最
適化の第2ステップでは、データベース内で削除された
か、データベース更新に起因してもはや照会結果になら
ないが、あるトランザクション境界を超えてキャッシュ
内に保存されているオブジェクトを検出する。第2ステ
ップは、トランザクション境界を超えてオブジェクト・
キャッシュが維持される環境(すなわち、オブジェクト
・キャッシュの内容が、オブジェクト・キャッシュを使
用するアプリケーションがコミットした後に保存される
場合)だけで使用される。さらに、DECAF最適化の
第2ステップでは、オブジェクト視点を有する照会を、
RDBMSが理解する照会に変換する。DECAF最適
化の第3ステップでは、基礎となる表に対してプッシュ
ダウン照会をSQLに変換し、同一のソース表に向けら
れた複数のSQL照会のグループを単一の照会に書き直
す。
【0076】DECAF最適化では、照会プッシュダウ
ンを使用して、基礎となるシステムの照会処理能力を利
用し、データ転送を減らす。まず、DECAF最適化の
挙動を強調するために1組の例を示す。次に、DECA
F最適化の全般的な技法を示す。
【0077】3.1 単純な述部を有する照会 キールナン他に記載の、多くとも1つの表を使用するO
O−SQL照会を、単純な述部を有する照会と称する。
これには、スカラ比較、範囲検査、空白検査および同様
の検査を有する照会が含まれる。たとえば、下の単純
な照会では、50,000を超える給料を有する従業員
の従業員番号が検索される。 select e.no from VEmp e where e.salary > 50000
【0078】オブジェクト・キャッシュに、VEmp集合に
属する、更新された給料を有する従業員が含まれること
があるので、この照会は、基礎となるデータベースだけ
を単純に照会することによって解決することはできな
い。DECAF最適化では、下に示す形でこの照会が
処理される。
【0079】 1. DECAF最適化によって、下の形で照会が書
き直される。 cache VEmp as select e from VEmp e where e.salary > 50000 select e'.no from cache (VEmp) e' where e'.salary > 50000
【0080】したがって、DECAF最適化によって、
照会が2つの副照会に変換される。第1の副照会では、
VEmp集合のデータベース内容を参照する。第1の副照会
では、データ(結果)を、「cache VEmp as」句によっ
て示されるオブジェクト・キャッシュに取り出す。「se
lect e from Vemp e」ステートメントによって、RDB
MSからオブジェクト・キャッシュに取り出されるデー
タが識別される。結果は、集合VEmpのオブジェクト・キ
ャッシュ内容に追加される。DECAF最適化では、相
関「e」によって参照される型VTEmpのオブジェクトがオ
ブジェクト・キャッシュに取り出されるので、「select
e」ステートメントが使用される。
【0081】第2の副照会では、上の結果の集合VEmpの
オブジェクト・キャッシュ内容を参照する。DECAF
最適化では、第2の副照会の「from cache」句でキャッ
シュ機能を使用して、集合のオブジェクト・キャッシュ
内容を示す。
【0082】第1の副照会は、データベースに対して実
行されるが、第2の副照会は、下のステップ2および
ステップ3で述べるように、オブジェクト・キャッシュ
に対して実行される。
【0083】2. DECAF最適化によって、オブジ
ェクト視点を有する照会が、RDBMSが理解する照会
に変更される。DECAF最適化では、基礎となるデー
タベースに対して下記のSQL照会を発行し、結果をフ
ィルタリングして、データベース内の50,000を超
える給料を有する従業員を含める。この照会は、上のス
テップ1の第1の副照会に適用された照会書き直し変換
からもたらされる。 select e.no, e.name, e.esal, e.eage, e.edid from db2emp e where e.esal > 50000
【0084】給料が以前には60,000であったが、
まだデータベースに伝播されていない更新によって4
0,000に減らされた、更新された従業員uが存在
することがある。逆に、給料が以前には40,000で
あったが、まだデータベースに伝播されていない別の更
新によって60,000に増やされた、の更新された
従業員uが存在することがある。従業員uは、デー
タベースに対する照会によって選択され、従業員u
選択されていない。したがって、この照会自体は、従業
員uおよびuに対する伝播されていない更新に関し
て、ユーザの照会の誤った解釈を提示する。データベー
スに対する照会によって選択されてはいないが、従業員
は、オブジェクト・キャッシュ内に存在し、u
表すオブジェクトは、更新された給料の値を有する。従
業員uは、ステップ2で照会によって選択されるが、
は、照会の時点でオブジェクト・キャッシュ内にも
存在するので、オブジェクト・キャッシュのコピーが保
存され、データベースの値が上書きされ、これによっ
て、キャッシュされた更新済みの給料の値が保存され
る。
【0085】 3. DECAF最適化によって、上のステップ1から
の第2の副照会「select e'.no from cache VEmp e' wh
ere e'.salary > 50000」が、VEmp集合のキャッシュ内
容(すなわち、オブジェクト・キャッシュ内のオブジェ
クトの集合)に対して実行される。この時点で、オブジ
ェクト・キャッシュには、所望の結果セットのスーパー
セットが含まれる。第2の副照会では、u(ならびに
結果に含まれない他のキャッシュされた従業員)がフィ
ルタリングされ、uが結果に含まれ、照会が発行され
た時点でのデータベースおよびアプリケーション更新と
の一貫性を有する。挿入または削除された従業員は、同
様に処理される。
【0086】3.2 結合照会 キールナン他に記載の、単純な述部を有し、1つ以上
表を用いるOO−SQL照会を、結合述部を有する照会
と称する。表の間の関係は、結合式である述部を用いて
確立される。これには、スカラ比較、範囲検査、空白検
査および同様の検査を有する照会が含まれる。たとえ
ば、下の結合照会では、4階にある部署で働いている
40歳を超える従業員が選択される。 select e.no from VEmp e, VDept d where e.age > 40 and e.did = d.no and d.floor = 4
【0087】上の照会は、「d」の要素が射影リストに
現れないので、実際には半結合である。挿入と削除を除
いて、3種類すなわち、従業員の年齢が更新された
か、従業員の部署が変更されたか、部署が別の階に移動
された場合の遅延更新が、この照会結果に影響すること
がある。DECAF最適化では、以下の形で照会を変換
し、正しく解決する。
【0088】 1. DECAF最適化によって、照会が下のように
書き直される。 cache VEmp as select e from VEmp e where e.age > 40 cache VDept as select d from VDept d where d.floor = 4 and d.no in (select e'.did from cache (VEmp) e') select e'.no from cache (VEmp) e', cache (VDept) d' where e'.age > 40 and e'.did = d'.no and d'.floor = 4
【0089】DECAF最適化によって、照会が3つの
副照会に変換される。第1の副照会は、データベースか
らオブジェクト・キャッシュに従業員データを取り出す
のに使用される。第2の副照会は、データベースからオ
ブジェクト・キャッシュに部署データを取り出すのに使
用される。第3の副照会は、元の照会に対する応答を得
るために、オブジェクト・キャッシュに対して実行され
る。
【0090】 2. DECAF最適化によって、下の2つの別々の
SQL照会がRDBMSに対して発行される。下の2
つのSQL照会は、ステップ1からの第1の副照会と第
2の副照会に対応する。 select e.* from db2emp e where e.age > 40 select d.* from db2dept d where d.dfloor = 4 and d.no in (V1, V2, ..., V n)
【0091】(V1, V2, ..., Vn)句は、e'.didの結果的
なキャッシュ内の出現に対応する。ステップ1の第2の
副照会の「select e'.did from cache (VEmp) e'」句
は、述部d.no in (V1, V2, ..., Vn)の導入に対応する
最適化であり、実際にキャッシュ内の従業員と結合され
る、4階にある部署だけを含むように第2の副照会の結
果を制限するために適用される。一般に、この最適化
は、結合限定作用素(joining quantifier)に対する
の単純な述部が存在する場合に限ってDECAF最適化
によって実行され、この例では、e.age > 40がそのよう
な述部である。
【0092】DECAF最適化では、単一の限定作用素
を用いる述部を利用して、関係データベースから抽出さ
れる結果の数を制限する。
【0093】 3. DECAF最適化によって、上のステップ1から
の第3の副照会が、オブジェクト・キャッシュに対して
評価される。 select e'.no from cache (VEmp) e', cache (VDept) d' where e'.age > 40 and e'.did = d'.no and d'.floor = 4
【0094】部署が変更された従業員を反映する遅延
新は、新しい「age」の値を有する従業員がキャッシュ
内に存在するので、最終的なキャッシュ内結合によって
考慮される。照会のキャッシュ内評価によって、これら
の新しい値が考慮される。部署の階に対する遅延更新
は、キャッシュ内に存在し、同様に処理される。挿入と
削除も同様に処理される。
【0095】3.3 副照会を有する照会 グループ化と集約を無視すると、OO−SQL照会内で
は、副照会は、projections要素、基本述部である副照
会(すなわち、値のセットではなく単一の値を返す副照
会)、exists副照会、IN副照会、ANY副照会およびALL副
照会として現れることがある。たとえば、下の照会で
は、同一部署内に同一の名前で30歳未満の従業員がい
ない40歳を超える従業員の従業員番号が検索される。 select e1.no from VEmp e1 where e1.age > 40 and not exists (select e2.no from VEmp e2 where e1.did = e2.did and e1.name = e2.name and e2.age < 30)
【0096】 1. DECAF最適化によって、上の照会が下の一
連の照会に書き直される。 cache VEmp as select e1 from VEmp e1 where e1.age > 40 cache VEmp as select e2 from VEmp e2 where e2.did in (select e1'.did from cache (VEmp) e1') and e2.name in (select e1'.name from cache (VEmp) e1') and e2.age <30 select e1'.no from cache (VEmp) e1' where e1'.age > 40 and not exists (select e2'.no from cache (VEmp) e2' where e1'.did = e2'.did and e1'.name = e2'.name and e2'.age < 30)
【0097】DECAF最適化によって、元の照会が3
つの副照会に変換される。第1の副照会は、データベー
スの表「e1」からオブジェクト・キャッシュに従業員デ
ータを取り出すのに使用される。第2の副照会は、デー
タベースの表「e2」からオブジェクト・キャッシュに追
加の従業員データを取り出すのに使用される。
【0098】第2の副照会は、2つの副照会を有し、第
1の「e2.did in」副照会では、オブジェクト・キャッ
シュ内の従業員と同一の部署で働く従業員が選択され、
第2の「e2.name in」副照会では、オブジェクト・キャ
ッシュ内の従業員と同一の名前を有する従業員が選択さ
れる。しかし、元の照会の述部では、それらの従業員
が、同一の部署で働き、同一の名前を有しなければなら
ないと記述されている。したがって、2つの「in」副照
会によって、必要なものより多数の結果がオブジェクト
・キャッシュに取り出される。これは、実際には、現在
の形態で「in」副照会でタプル式を使用することを許容
しないSQLの制限に起因する。つかのシステムで
は、その形(たとえば、tuple (e2did, e2.name) in (s
elect tuple(e1'.did, e1'.name) from cache (VEmp) e
1'))の単一の副照会を使用することができる。
【0099】 2. 下の2つの変換されたSQL照会を実行して、
照会がオブジェクト・キャッシュに対して実行された時
に述部を満足することのできる従業員のセットを抽出す
る。 照会1: select e.* from db2emp e where e.eage > 40 照会2: select e.* from db2emp e where e.eage < 30 and e.did in (V1, V2, ..., Vn) and e.name in (W1, W2, ..., Wn)
【0100】照会2は、照会1に依存する(すなわち、
V1, V2, ..., VnとW1, W2, ..., Wnの結果は照会1から
計算される)ので、この2つの照会を組み合わせること
はできない。
【0101】 3. 前の結果をデータベースからオブジェクト・キャ
ッシュに抽出し、オブジェクト・キャッシュ内で対応す
る従業員を検索したので、下の照会をオブジェクト・
キャッシュだけに対して実行する。 select e1'.no from cache (VEmp) e1' where e1'.age > 40 not exists (select e2'.no from cache (VEmp) e2' where e1'.did = e2'.did and e1'.name = e2'.name and e2'.age < 30)
【0102】多くの点で、副照会を有する照会は、上で
説明した結合を有する照会に類似した形で処理される。
【0103】3.4 グループ化または集約を有する照
グループ化または集約を有する照会は、単純な述部を有
する照会や結合照会に類似した意味を有する「where」
句で指定された述部を有することもできる。したがっ
て、それらの節で説明した最適化も、ここで適用可能で
ある。たとえば、下の照会では、4階にある部署のう
ちで、10人を超える従業員を有する部署で働く40歳
を越える従業員の平均年齢が選択される。select d.no,
avg (e.age) from VEmp e, VDept d where e.age > 40 and d.floor = 4 and e.did = d.no group by d.no having count (*) > 10
【0104】合接「e.age > 40」、「d.floor = 4」お
よび「e.did = d.no」は、節3.1および節3.2で提
示した照会と同様に処理される。まず、DECAF最適
化の照会プロセッサは、照会の「from」句および「wher
e」句を処理し、「VEmp」と「VDept」のクロス乗積(cr
oss product)のサブセットであって「where」句の述部
を満足する結果を作成する。グループ化をこの結果に適
用し、「having」句の述部によって、結果に加わるグル
ープを判定する。これらの結果グループについて平均年
齢を計算し、照会の結果として提示する。
【0105】この照会では、部署番号「no」がグループ
化属性として指定された(すなわち、結果は、d.noの等
しい値に従ってグループ化される)。したがって、「n
o」属性に対する更新によって、1つ以上のグループの
内容が変更されることがある。しかし、「no」属性はキ
ーなので、「no」属性が更新されないと仮定することが
できる。それでも、部署が挿入されるか削除されること
があり、従業員がある部署から別の部署に移ることがあ
り、新規採用や退職することがある。このような遅延
新のすべてが、グループの形成に影響し、したがって、
照会の結果を変化させることがある。もし、グループ化
と集約が照会に存在すれば、その照会は、グループ化と
集約がオブジェクト・キャッシュ内で実行されるように
変換される。
【0106】もし、group by句が与えられなければ
「from」句と「where」句の結果は、集約計算が適用さ
れる単一のグループを形成する。単純な場合には、キャ
ッシュ内更新を反映するようにソース・データベースに
対する照会の結果を調節することによって、そのような
照会を最適化することが可能である。たとえば、照会
「select agg (ai) from col」(aggは、sum、min、ma
x、count、avgなどの集約演算であり、「ai」は列(ま
たはメンバ)、「col」は集合である)は、述部がな
く、集合のすべての要素に適用される集約計算に等しい
単一の値を返す。そのような照会の場合、sumなどの集
約のための演算は、結果から列「ai」の初期値を減算
し、列「ai」の更新された値を加算することによって、
オブジェクト・キャッシュ内で集合「col」の更新され
たオブジェクトごとに調節することができる。同様の方
式を、他の集約計算について導出することができる。し
かし、この種の最適化は、単純な集約照会に制限され
る。
【0107】3.5 合併照会 合併照会は、N個のselectステートメントとN−1個の
union句からなる。各union句は、2つの「select」ステ
ートメントの間に現れる。union句では、「all」オプシ
ョンを指定して、照会に含まれる2つの結果の間で重複
排除を行うかどうかを指定することができる。sがse
lectステートメント、uがunion句であるものとし
て、s,…,un−1の形の合
併照会は、(((s)u,…,u
n−1)と解釈される。括弧は、sの結
果rが最初に計算され、rの結果rが次
に計算され、以下同様であることを示す。もし、最後の
合併un−1が、「union all」ではなく「union」であ
れば、前のuで「all」が指定されたかどうかに無関
係に、結果には個別の行だけが含まれることに留意され
たい。たとえば、単一の集合「VEmp」ではなく、2つの
集合「VEmp1」および「VEmp2」があると仮定する。
の照会では、「VEmp1」に含まれる40歳を超える従業
員と、「VEmp2」に含まれる30歳未満の従業員が選択
される。 select e1.no from VEmp1 e1 where e1.age > 40 union select e2.no from VEmp2 e2 where e2.age < 30
【0108】この例の場合、現在は「VEmp1」だけがそ
れに関連する遅延更新を有すると仮定する。この照会
は、下の形に書き直され、解決される。 cache VEmp1 as select e1 from VEmp1 e1 where e1.age > 40 select e1'.no from cache (VEmp1) e1' where e1'.age > 40 union select e2.no from VEmp2 e2 where e2.age >30
【0109】上の照会では、「select」ステートメント
がRDBMSにプッシュ・ダウンされる。「selec
t」ステートメントsは、上で説明した単純な述部を
有する照会と同様に処理される。結果の合併は、オブジ
ェクト・キャッシュ内で実行される。もし、すべての
「select」ステートメントs,…,sが、RDBM
Sが遅延更新なしで格納する集合を参照すれば、合併演
算u ,…,u i−1 は、RDBMSにプッシュ・ダウ
ンすることができる。もし、が、遅延更新を有する
集合を参照すれば、合併演算uj−1,…,u
n−1は、オブジェクト・キャッシュを使用してメモリ
内で実行される。
【0110】この全般的な戦略は、すべての場合(すな
わち、合併uが、重複排除を有する合併である場合と
重複排除を有しない(union all)場合)に適用でき
る。たとえば、照会の結果に重複がない(すなわち、合
併un−1が重複排除合併である)のであれば遅延
新を含まない集合を参照するすべてのsの合併を、全
体としてプッシュダウンすることができる。
【0111】3.6 DECAFシステム DECAF最適化は、3つのステップに編成される。
なわち、第1ステップでは、DECAF最適化によっ
て、照会が書き直され、その結果、照会の結果を判定す
る際にキャッシュ内の遅延更新が考慮されるようにな
る。第2ステップでは、DECAF最適化によって、デ
ータベース内で削除されたか、データベース更新に起因
してもはや照会結果にならないが、トランザクション境
界を超えてキャッシュ内に保存されているオブジェクト
が検出される。第2ステップは、オブジェクト・キャッ
シュがトランザクション境界を超えて維持される(すな
わち、オブジェクト・キャッシュを使用するアプリケー
ションがコミットした後に、オブジェクト・キャッシュ
の内容が保存される)環境だけで使用される。さらに、
第2ステップでは、DECAF最適化によって、オブジ
ェクト視点を有する照会が、RDBMSが理解する照会
に変換される。第3ステップでは、DECAF最適化に
よって、プッシュダウン照会が、基礎となる表に対する
SQLに変換され、同一のソース表に向けられた複数の
SQL照会のグループが、単一の照会に書き直される。
【0112】DECAF最適化では、照会の書き直し中
に第1ステップが適用される。もし、トランザクション
環境が、読取コミットを用いる最適ロッキング環境に基
づくのであれば、照会Qに対して、DECAF最適化に
よって下の書き直しが必ず適用される。しかし、
し、トランザクション環境が直列化可能反復可能読取に
基づくのであれば、照会Qに対して、限定作用素q
いずれかが、遅延更新を含む視点集合Cに束縛される
場合に、DECAF最適化によって下の書き直しが適
用される。すなわち、後者の場合には、遅延更新が存在
しない場合に、オブジェクト・キャッシュ内容が、ソー
ス・データベースの状態と一貫性を有するので、照会の
最適化の際にオブジェクト・キャッシュ内容を無視する
ことができる。
【0113】(a)当初は空の副照会Qを作成する。
ここで、Qは、キャッシュに対して実行される照会を
表す。q∈Qのそれぞれについて、集合Cのキャッ
シュ内容に束縛される限定作用素q'を生成し、q'
をQに追加する。
【0114】(b)限定作用素q∈Qのそれぞれにつ
いて、当初は空の副照会QPiを生成し、qをQPi
に移動する。ここで、Qは、基礎となるデータベース
に対して実行されるプッシュダウン照会を表す。したが
って、限定作用素qは、集合Cのデータベース・コ
ピーを範囲とするように設定される。
【0115】(c)単純な合接A∈Q(すなわち、q
∈Qだけを含む述部)のすべてを複製し、qではな
くq'を参照するように複製を変更する。これらの
製をQに追加する。
【0116】(d)単純な合接A∈Q(すなわち、q
∈Qだけを含む述部)のそれぞれについて、AをQ
Piに移動する。
【0117】(e)もし、∈Qが、q=q
の形(cは、qの結合列、cは、qの結合
列)の同等結合であれば、QPiにq・c
{V,…,V}の形の述部を追加する。ここで、V
,…,Vは、データベースからqに対応するオブ
ジェクトを取り出した後にオブジェクト・キャッシュか
ら得られるq'・cの値のリストである。この同等
結合の書き直しは、qを含む同等結合述部の他にq
に対する単純述部が存在する場合に限って使用される。
というのは、同等結合の書き直しの目的が、データベー
スに対する初期照会からもたらされる取り出しの後に、
実際にオブジェクト・キャッシュ内容と一致する要素だ
けを選択することによって照会からデータベースに返さ
れる結果の数を制限することにあるからである。
【0118】(f)残りの合接A∈Qのすべてについ
て、q∈Qの代わりにq'∈Qを参照するように
のそれぞれを書き直し、AをQに移動する。
【0119】ステップ1の書き直しを、以下の照会を使
用して示す。 書き直しの前: select e.name, d.name from VEmp e, VDept d where e.did = d.no and e.age > 40 and d.floor = 4 書き直しの後: 照会QP1: cache VEmp as select e from VEmp e where e.age > 40 照会QP2: cache VDept as select d from VDept d where d.floor = 4 and d.no in (select e'. did from cache (VEmp) e') 照会Q: select e'.name, d'.name from cache (VEmp) e', cache (VDept) d' where e'.did = d'.no and e'.age > 40 and d'.floor = 4
【0120】この例では、「VEmp」と「VDept」 が視点
集合(すなわち、表「Emp」および「Dept」のオブジェ
クト表現)である。オブジェクト・キャッシュ表示があ
るので、オブジェクト・キャッシュ内の集合「VEmp」の
要素に対して「e'」が反復される。限定作用素「d'」
は、同様に処理される。合接「d.no in select e'.didf
rom cache VEmp e'」は、「VDept d」について検索され
る結果を制限するのに使用された同等結合に対応する。
副照会は、d.no in (V1, V2, ..., Vn)を作る値のリス
トによって置換される。(V1, V2, ..., Vn)は、「e」に
対応するオブジェクトがデータベースから取り出された
後の「e'.did」のオブジェクト・キャッシュ内の出現に
対応する。
【0121】DECAF最適化によって、第2ステップ
が適用されて、ソース・データベースで削除または更新
されたが、まだオブジェクト・キャッシュ内に存在する
オブジェクトが検出される。この問題は、オブジェクト
・キャッシュがトランザクション境界を超えて保存され
ことがあるので導入された。もし、オブジェクト・キ
ャッシュがトランザクション境界で除去されるのであれ
、第2ステップは省略される。
【0122】上のステップ1の(a)で説明した限定作
用素q'∈Qのそれぞれについて、TS(q')>
TS(T)の形の合接をQに追加する。ここで、T
Sは、オブジェクト・キャッシュによってオブジェクト
に関連付けられるタイムスタンプを返す関数である。T
S(q')は、q'によって参照されるオブジェクト
が、オブジェクト・キャッシュ内で最後に最新化された
(すなわち、ソース・データベースから読み取られた)
時のタイムスタンプを返し、TS(T)は、現在のト
ランザクションTの開始タイムスタンプを返す。この
述部によって、照会述部を満足するが、照会によって最
新化されていないキャッシュ内の集合からの結果がすべ
て排除される。これらの結果は、もはやデータベース内
に存在しないか、もはや照会の結果に含まれない(すな
わち、オブジェクト・キャッシュを通らなかったソース
・データベースの更新に起因する)のいずれかのオブジ
ェクト・キャッシュ内のオブジェクトに対応する。一旦
検出されると、削除されたオブジェクトは、オブジェク
ト・キャッシュから除去される。遅延更新を有するオブ
ジェクト・キャッシュ内のオブジェクトに関連するタイ
ムスタンプは、更新の時刻に基づき、したがって、更新
されたオブジェクトは、照会結果から排除されないこと
に留意されたい。この書き直しを、ステップ1で示した
例を使用して示す。 書き直しの前: select e'.name, d'.name from cache (VEmp) e', cache (VDept) d' where e'.did = d'.no and e'.age > 40 and d'.floor = 4 書き直しの後: select e'.name, d'.name from cache (VEmp) e', cache (VDept) d' where e'.did = d'.no and e'.age > 40 and d'.floor = 4 and TS (e') > TS (Tj) and TS (d') > TS (Tj)
【0123】合接TS (e') > TS (Tj) and TS (d') > TS
(Tj)によって、「e'」と「d'」によって参照されるオブ
ジェクトに対応するタイムスタンプが、現在のトランザ
クションTjに関連するタイムスタンプより新しいことが
保証される。たとえば、TS (e') > TS (Tj)によって、
オブジェクト・キャッシュ「e'」内のオブジェクトのタ
イムスタンプがトランザクションのタイムスタンプより
大きいかどうかが検査される。キャッシュされたオブジ
ェクトのタイムスタンプが、トランザクションのタイム
スタンプより大きい場合には、キャッシュされたオブジ
ェクトは、トランザクションが開始された後に更新また
は最新化されている。キャッシュされたオブジェクトの
タイムスタンプが、トランザクションのタイムスタンプ
より小さい場合には、キャッシュされたオブジェクト
は、トランザクションが開始された後に更新も最新化も
されていない。
【0124】DECAF最適化では、データベースから
のデータの取り出しを最適化するために第3ステップが
適用される。関係表R∈QPiのそれぞれについて、
下の形でSQLプッシュダウン照会が生成される。
【0125】(a)もし、「R」の範囲に渡る単一の
限定作用素qが存在すれば、「q」を含む合接を適用す
る、Rに関するSQL照会を生成する。たとえば、
下の照会の一部では、表db2empを用いる述部が適用され
る。 ... from db2emp q where q.age > 40
【0126】(b)もし、すべてがRを範囲とする複
数の限定作用素q∈Q,q∈Q,…,q∈Q
存在すれば以下の述部を有するRに関する別個
のSQL照会を生成する。限定作用素Cのそれぞれにつ
いて、「q」を含む述部のすべてを含む離接(disjun
ct)を作成する。生成される最終的なSQL照会には、
「R」に関する1つの限定作用素だけが含まれる。た
とえば、下の照会断片でこの変換を示す。 ... from db2emp q1 where q1.eage > 40 ... ... from db2emp q2 where q2.esal < 50000 ... は、下のSQL照会に変換される。 ... from db2emp q where q.eage > 40 or q.esal < 50000 ...
【0127】この変換によって、照会がオブジェクト・
キャッシュに対して評価される時に、両方の述部を満足
する従業員がオブジェクト・キャッシュ内に存在するこ
とが保証される。結合述部は、オブジェクト・キャッシ
ュ内で評価される(すなわち、プッシュ・ダウンされな
い)ので、このような述部の組み合わせは、発生する可
能性が高い。この変換によって、複数のSQL照会が、
ソース・データベースにプッシュ・ダウンされる単一の
SQL照会に置換される。
【0128】図3は、DECAF最適化によって実行さ
れる基本ステップを示す流れ図である。ブロック300
で、DECAF最適化によって、オブジェクト指向照会
が副照会に変換される。少なくとも1つの副照会が、デ
ータベースに向けられ、1つの副照会が、オブジェクト
・キャッシュに向けられる。ブロック302で、DEC
AF最適化によって、データベースに向けられた副照会
のそれぞれが実行されて、データベースからオブジェク
ト・キャッシュにデータが取り出される。ブロック30
4で、DECAF最適化によって、オブジェクト・キャ
ッシュに向けられた副照会が実行されて、照会のデータ
が取り出される。取り出されるデータには、オブジェク
ト・キャッシュに対する更新とデータベースに対する更
新が組み込まれる。
【0129】B.結論 これで本発明の好ましい実施例の説明を終わる。以下で
は、本発明を達成するための代替実施例を説明する。た
とえば、メインフレーム、ミニコンピュータまたはパー
ソナル・コンピュータなどのあらゆる種類のコンピュー
タ、または、タイムシェアリング・メインフレーム、ロ
ーカル・エリア・ネットワークまたは独立のパーソナル
・コンピュータなどのコンピュータ構成を、本発明と共
に使用することができる。DECAF最適化を、視点定
義言語に関して提示したが、この開示で提示される発明
は、類似の遅延更新を有するキャッシュをサポートする
あらゆるデータ・モデルに対する同様の視点に適用可能
である。
【0130】要約すると、本発明は、コンピュータ実施
されるDECAF最適化のための方法および置を開示
する。この開示で提示された発明は、遅延キャッシュ更
新と(独立に更新可能な)自律的ソースを用いるオブジ
ェクト・キャッシュを使用するオブジェクト照会のため
の照会最適化を実行する。
【図面の簡単な説明】
【図1】好ましい実施例による、本発明のために使用す
ることのできる3階層実行時環境を示す図である。
【図2】本発明の好ましい実施例に従って使用すること
のできる、オブジェクト指向SQL(OO−SQL)照
会エンジン200を示す図である。
【図3】DECAF最適化によって実行される基本ステ
ップを示す流れ図である。
【符号の説明】
100 3階層環境 102 階層1 104 階層2 106 階層3 108 クライアント・アプリケーション 110 ビジネス・オブジェクト・サーバ 112 照会サービス 114 オブジェクト・キャッシュ 116 RDBMS 200 オブジェクト指向SQL(OO−SQL)照会
エンジン 202 データベース・マネージャ 204 オブジェクト指向呼出しレベル・インターフェ
ース(OOCLI) 206 スキーマ・アクセス構成要素 208 集合アクセス構成要素 210 照会評価サブシステム(QES) 212 オプティマイザ 214 関係DBMS 216 アプリケーション 218 SQLパーサ 220 照会書直し構成要素 222 照会リファインメント構成要素
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェラルド・ジョージ・キアナン アメリカ合衆国95120 カリフォルニア 州サンノゼ ウォーレス・ドライブ1074 (56)参考文献 特開 平10−111821(JP,A) 米国特許5706506(US,A) 米国特許6285997(US,A) (58)調査した分野(Int.Cl.7,DB名) G06F 17/30 G06F 9/44 G06F 12/00

Claims (22)

    (57)【特許請求の範囲】
  1. 【請求項1】コンピュータに接続されたデータ記憶装置
    に格納済みのデータベースからデータを取り出すために
    オブジェクト指向照会を実行する方法であって、 オブジェクト指向副照会である 少なくとも1つの副照会
    前記データベースに向けられ、少なくとも1つの副照
    会がオブジェクト・キャッシュに向けられるように、前
    記オブジェクト指向照会を複数の副照会に変換するステ
    ップと、前記オブジェクト指向副照会をデータベース副照会に変
    換するステップと、 前記データベースから前記オブジェクト・キャッシュへ
    データを取り出すために、前記データベースに向けられ
    た副照会のそれぞれを実行するステップと、 前記オブジェクト・キャッシュに対する更新と前記デー
    タベースに対する更新とを組み込まれた、前記照会のた
    めのデータを取り出すために、前記オブジェクト・キャ
    ッシュに向けられた前記副照会を実行するステップと 前記オブジェクト・キャッシュに対する更新と前記デー
    タベースに対する更新とを包含するように、前記オブジ
    ェクト・キャッシュ内のデータを更新するステップと
    含む、方法。
  2. 【請求項2】前記オブジェクト指向照会が、読取コミッ
    トを用いる最適ロッキング環境で実行される、請求項1
    に記載の方法。
  3. 【請求項3】前記オブジェクト指向照会が、直列化可能
    反復可能読取環境で実行される、請求項1に記載の方
    法。
  4. 【請求項4】らに、前記更新されたデータの前記デー
    タベースへの送出を遅延するステップを含む、請求項1
    に記載の方法。
  5. 【請求項5】さらに、前記オブジェクト・キャッシュが
    変更されつつある間に前記データベースを更新するステ
    ップを含む、請求項1に記載の方法。
  6. 【請求項6】さらに、前記データベース内で削除された
    が前記オブジェクト・キャッシュ内に残っているオブジ
    ェクトを検出するステップを含む、請求項1に記載の方
    法。
  7. 【請求項7】前記データベースが共用される、請求項1
    に記載の方法。
  8. 【請求項8】前記オブジェクト・キャッシュが共用され
    る、請求項1に記載の方法。
  9. 【請求項9】前記データベースに向けられた副照会のそ
    れぞれを実行する前記ステップが、さらに、データを、
    前記データのタイムスタンプに基づいて取り出すステッ
    プを含む、請求項1に記載の方法。
  10. 【請求項10】さらに、前記データの前記タイムスタン
    プに基づいて、取り出しの対象にならないデータを識別
    するステップを含む、請求項に記載の方法。
  11. 【請求項11】さらに、前記データの前記タイムスタン
    プに基づいて、前記データベース内で削除されたが前記
    オブジェクト・キャッシュ内にあるオブジェクトを識別
    するステップを含む、請求項に記載の方法。
  12. 【請求項12】オブジェクト指向照会を実行するための
    装置であって、 データベースを記憶するデータ記憶装置を接続されたコ
    ンピュータと、オブジェクト指向副照会である 少なくとも1つの副照会
    がデータベースに向けられ、少なくとも1つの副照会が
    オブジェクト・キャッシュに向けられるように、前記オ
    ブジェクト指向照会を複数の副照会に変換し、前記オブ
    ジェクト指向副照会をデータベース副照会に変換し、
    記データベースから前記オブジェクト・キャッシュへデ
    ータを取り出すために、前記データベースに向けられた
    副照会のそれぞれを実行し、前記照会のためのデータを
    取り出すために、前記オブジェクト・キャッシュに向け
    られた前記副照会を実行し、前記オブジェクト・キャッ
    シュに対する更新と前記データベースに対する更新とを
    包含するように、前記オブジェクト・キャッシュ内のデ
    ータを更新するための、前記コンピュータによって実行
    される1つまたは複数のコンピュータ・プログラムとを
    含む、装置。
  13. 【請求項13】前記オブジェクト指向照会が、読取コミ
    ットを用いる最適ロッキング環境で実行される、請求項
    12に記載の装置。
  14. 【請求項14】前記オブジェクト指向照会が、直列化可
    能反復可能読取環境で実行される、請求項12に記載の
    装置。
  15. 【請求項15】らに、前記更新されたデータの前記デ
    ータベースへの送出を遅延するための手段を含む、請求
    12に記載の装置。
  16. 【請求項16】さらに、前記オブジェクト・キャッシュ
    が変更されつつある間に前記データベースを更新するた
    めの手段を含む、請求項12に記載の装置。
  17. 【請求項17】さらに、前記データベース内で削除され
    たが前記オブジェクト・キャッシュ内に残っているオブ
    ジェクトを検出するための手段を含む、請求項12に記
    載の装置。
  18. 【請求項18】前記データベースが共用される、請求項
    12に記載の装置。
  19. 【請求項19】前記オブジェクト・キャッシュが共用さ
    れる、請求項12に記載の装置。
  20. 【請求項20】前記データベースに向けられた副照会の
    それぞれを実行するための前記手段が、さらに、データ
    を、前記データのタイムスタンプに基づいて取り出すた
    めの手段を含む、請求項12に記載の装置。
  21. 【請求項21】さらに、前記データの前記タイムスタン
    プに基づいて、取り出しの対象にならないデータを識別
    するための手段を含む、請求項20に記載の装置。
  22. 【請求項22】さらに、前記データの前記タイムスタン
    プに基づいて、前記データベース内で削除されたが前記
    オブジェクト・キャッシュ内にあるオブジェクトを識別
    するための手段を含む、請求項20に記載の装置。
JP28616799A 1998-11-16 1999-10-07 オブジェクト指向照会を実行する方法および装置 Expired - Fee Related JP3361783B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/192817 1998-11-16
US09/192,817 US6285997B1 (en) 1998-11-16 1998-11-16 Query optimization with deferred update and autonomous sources

Publications (2)

Publication Number Publication Date
JP2000163448A JP2000163448A (ja) 2000-06-16
JP3361783B2 true JP3361783B2 (ja) 2003-01-07

Family

ID=22711147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28616799A Expired - Fee Related JP3361783B2 (ja) 1998-11-16 1999-10-07 オブジェクト指向照会を実行する方法および装置

Country Status (5)

Country Link
US (2) US6285997B1 (ja)
JP (1) JP3361783B2 (ja)
KR (1) KR20000035031A (ja)
GB (1) GB2346231B (ja)
TW (1) TW449704B (ja)

Families Citing this family (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6604096B1 (en) * 1997-10-14 2003-08-05 International Business Machines Corporation Apparatus and method for locally caching query explain data
US6618718B1 (en) * 1997-10-14 2003-09-09 International Business Machines Corporation Apparatus and method for dynamically generating query explain data
US6285997B1 (en) * 1998-11-16 2001-09-04 International Business Machines Corporation Query optimization with deferred update and autonomous sources
US6745177B2 (en) * 1999-04-09 2004-06-01 Metro One Telecommunications, Inc. Method and system for retrieving data from multiple data sources using a search routing database
US6374257B1 (en) * 1999-06-16 2002-04-16 Oracle Corporation Method and system for removing ambiguities in a shared database command
US6374235B1 (en) * 1999-06-25 2002-04-16 International Business Machines Corporation Method, system, and program for a join operation on a multi-column table and satellite tables including duplicate values
US6446063B1 (en) * 1999-06-25 2002-09-03 International Business Machines Corporation Method, system, and program for performing a join operation on a multi column table and satellite tables
US6397204B1 (en) * 1999-06-25 2002-05-28 International Business Machines Corporation Method, system, and program for determining the join ordering of tables in a join query
US6405191B1 (en) * 1999-07-21 2002-06-11 Oracle Corporation Content based publish-and-subscribe system integrated in a relational database system
US6587858B1 (en) * 1999-09-30 2003-07-01 Steven Paul Strazza Systems and methods for the control of dynamic data and request criteria in a data repository
US6615203B1 (en) * 1999-12-17 2003-09-02 International Business Machines Corporation Method, computer program product, and system for pushdown analysis during query plan generation
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
US7231433B1 (en) * 2000-01-19 2007-06-12 Reynolds And Reynolds Holdings, Inc. Enterlink for providing a federated business to business system that interconnects applications of multiple companies
US6434555B1 (en) * 2000-01-24 2002-08-13 Hewlett Packard Company Method for transaction recovery in three-tier applications
US6957214B2 (en) * 2000-06-23 2005-10-18 The Johns Hopkins University Architecture for distributed database information access
US7043457B1 (en) 2000-06-28 2006-05-09 Probuild, Inc. System and method for managing and evaluating network commodities purchasing
US6442552B1 (en) * 2000-06-30 2002-08-27 Hewlett-Packard Company Method and apparatus for implementing three tier client asynchronous transparency
US7200666B1 (en) * 2000-07-07 2007-04-03 International Business Machines Corporation Live connection enhancement for data source interface
JP3983961B2 (ja) * 2000-07-18 2007-09-26 株式会社東芝 ディレクトリ情報管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US6735587B2 (en) * 2000-07-28 2004-05-11 International Business Machines Corporation Maintaining pre-computed aggregate views incrementally in the presence of non-minimal changes
US6633862B2 (en) * 2000-12-29 2003-10-14 Intel Corporation System and method for database cache synchronization across multiple interpreted code engines
US7945551B1 (en) * 2001-06-14 2011-05-17 Oracle International Corporation Redirection of misses in queryable caches
CA2355418A1 (en) * 2001-08-16 2003-02-16 Ibm Canada Limited-Ibm Canada Limitee A schema for sql statements
WO2003087974A2 (en) * 2002-04-09 2003-10-23 Matan Arazi Computerized trading system and method useful therefor
US8868544B2 (en) * 2002-04-26 2014-10-21 Oracle International Corporation Using relational structures to create and support a cube within a relational database system
US7127467B2 (en) * 2002-05-10 2006-10-24 Oracle International Corporation Managing expressions in a database system
US7499910B2 (en) * 2002-06-27 2009-03-03 Siebel Systems, Inc. Detecting and processing cache hits for queries with aggregates
CN1221898C (zh) * 2002-08-13 2005-10-05 国际商业机器公司 刷新网络代理高速缓存服务器对象的系统和方法
US7412481B2 (en) 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US7272660B1 (en) 2002-09-06 2007-09-18 Oracle International Corporation Architecture for general purpose near real-time business intelligence system and methods therefor
US7454423B2 (en) * 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7941542B2 (en) 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7243124B1 (en) 2002-09-06 2007-07-10 Oracle International Corporation Architecture for general purpose near real-time business intelligence system with client devices and methods therefor
US8255454B2 (en) 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US8165993B2 (en) 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7912899B2 (en) 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7668917B2 (en) * 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
US7426059B2 (en) 2002-09-16 2008-09-16 Oracle International Corporation Data presentation methods and apparatus to facilitate printing and reviewing
US7401158B2 (en) 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7904823B2 (en) * 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
US7269581B2 (en) * 2003-03-28 2007-09-11 Microsoft Corporation Systems and methods for proactive caching utilizing OLAP variants
CA2425046C (en) 2003-04-08 2009-10-06 Ibm Canada Limited - Ibm Canada Limitee Method and system for caching database query statements
US7113964B1 (en) 2003-06-05 2006-09-26 Iteration Software, Inc. Method and apparatus for archiving data in a relational database system
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
WO2005024669A1 (en) * 2003-09-04 2005-03-17 Oracle International Corporation Self-managing database architecture
US7426522B2 (en) * 2003-09-23 2008-09-16 International Business Machines Corporation Object oriented query path expression to relational outer join translator method, system, article of manufacture, and computer program product
US7222117B1 (en) 2003-11-14 2007-05-22 Advent Software, Inc. Segmented global area database
KR100541531B1 (ko) * 2003-12-24 2006-01-10 한국전자통신연구원 객체 지향 디비엠에스에서 경로식의 부질의 변환을 통한 질의 처리 방법
US7925665B2 (en) * 2004-03-08 2011-04-12 Siebel Systems, Inc. Using query persistence for efficient subquery evaluation in federated databases
US7739262B2 (en) * 2004-03-19 2010-06-15 Microsoft Corporation Enforcing currency and consistency constraints in database query processing
US20050222996A1 (en) * 2004-03-30 2005-10-06 Oracle International Corporation Managing event-condition-action rules in a database system
US7818392B1 (en) 2004-04-07 2010-10-19 Cisco Technology, Inc. Hierarchical posting systems and methods with social network filtering
US7856449B1 (en) * 2004-05-12 2010-12-21 Cisco Technology, Inc. Methods and apparatus for determining social relevance in near constant time
US7644050B2 (en) * 2004-12-02 2010-01-05 International Business Machines Corporation Method and apparatus for annotation-based behavior extensions
US7792851B2 (en) * 2004-12-02 2010-09-07 International Business Machines Corporation Mechanism for defining queries in terms of data objects
US7769747B2 (en) * 2004-12-02 2010-08-03 International Business Machines Corporation Method and apparatus for generating a service data object based service pattern for an enterprise Java beans model
US7562342B2 (en) * 2004-12-02 2009-07-14 International Business Machines Corporation Method and apparatus for incrementally processing program annotations
US7536380B2 (en) * 2005-03-24 2009-05-19 International Business Machines Corporation Dynamic look ahead predicate generation
US7677441B2 (en) * 2005-04-01 2010-03-16 Microsoft Corporation Relaxed currency constraints
US7793260B2 (en) * 2005-04-25 2010-09-07 Microsoft Corporation System for defining and activating pluggable user interface components for a deployed application
US8341259B2 (en) * 2005-06-06 2012-12-25 Adobe Systems Incorporated ASP for web analytics including a real-time segmentation workbench
US8239535B2 (en) * 2005-06-06 2012-08-07 Adobe Systems Incorporated Network architecture with load balancing, fault tolerance and distributed querying
US7376646B2 (en) * 2005-06-17 2008-05-20 International Business Machines Corporation Cost-based subquery correlation and decorrelation
US20060294366A1 (en) * 2005-06-23 2006-12-28 International Business Machines Corp. Method and system for establishing a secure connection based on an attribute certificate having user credentials
US7730079B2 (en) * 2005-08-30 2010-06-01 Microsoft Corporation Query comprehensions
US20070050348A1 (en) * 2005-08-30 2007-03-01 Microsoft Corporation Programmatic query assistance
US8073841B2 (en) 2005-10-07 2011-12-06 Oracle International Corporation Optimizing correlated XML extracts
KR100758404B1 (ko) * 2005-10-10 2007-09-14 한국정보통신대학교 산학협력단 온톨로지 기반의 상황정보 관리방법
US20070113031A1 (en) * 2005-11-16 2007-05-17 International Business Machines Corporation Memory management system and method for storing and retrieving messages
US7630967B1 (en) * 2005-11-22 2009-12-08 At&T Intellectual Property Ii, L.P. Join paths across multiple databases
US7853590B2 (en) * 2005-12-02 2010-12-14 Microsoft Corporation Remote read-write access to disparate data stores
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
US7602521B2 (en) * 2006-01-31 2009-10-13 Pitney Bowes Inc. Document format and print stream modification for fabricating mailpieces
JP4947407B2 (ja) * 2006-03-29 2012-06-06 日本電気株式会社 高効率キャッシュシステム、高効率キャッシュ格納方法、及び高効率キャッシュ操作プログラム
US7797312B2 (en) * 2006-04-06 2010-09-14 International Business Machines Corporation Database query processing method and system
US7680787B2 (en) * 2006-04-06 2010-03-16 International Business Machines Corporation Database query generation method and system
US8176022B1 (en) * 2006-08-26 2012-05-08 Radames Garcia Locking protocol using dynamic locks and dynamic shared memory
US7672740B1 (en) * 2006-09-28 2010-03-02 Rockwell Automation Technologies, Inc. Conditional download of data from embedded historians
US7711440B1 (en) * 2006-09-28 2010-05-04 Rockwell Automation Technologies, Inc. Browser based embedded historian
US7742833B1 (en) 2006-09-28 2010-06-22 Rockwell Automation Technologies, Inc. Auto discovery of embedded historians in network
US8181157B2 (en) * 2006-09-29 2012-05-15 Rockwell Automation Technologies, Inc. Custom language support for project documentation and editing
US7913228B2 (en) * 2006-09-29 2011-03-22 Rockwell Automation Technologies, Inc. Translation viewer for project documentation and editing
US8112425B2 (en) 2006-10-05 2012-02-07 Splunk Inc. Time series search engine
US7933666B2 (en) * 2006-11-10 2011-04-26 Rockwell Automation Technologies, Inc. Adjustable data collection rate for embedded historians
US20080114474A1 (en) * 2006-11-10 2008-05-15 Rockwell Automation Technologies, Inc. Event triggered data capture via embedded historians
JP4632056B2 (ja) * 2007-01-15 2011-02-16 日本電気株式会社 マッピングシステム、マッピング方法及びプログラム
US8209674B2 (en) * 2007-02-12 2012-06-26 Microsoft Corporation Tier splitting support for distributed execution environments
US7974937B2 (en) * 2007-05-17 2011-07-05 Rockwell Automation Technologies, Inc. Adaptive embedded historians with aggregator component
US7877397B2 (en) * 2007-07-30 2011-01-25 Microsoft Corporation Extensible command execution for entity data model platform
US7822729B2 (en) * 2007-08-15 2010-10-26 International Business Machines Corporation Swapping multiple object aliases in a database system
US7930639B2 (en) * 2007-09-26 2011-04-19 Rockwell Automation Technologies, Inc. Contextualization for historians in industrial systems
US7930261B2 (en) * 2007-09-26 2011-04-19 Rockwell Automation Technologies, Inc. Historians embedded in industrial units
US7917857B2 (en) * 2007-09-26 2011-03-29 Rockwell Automation Technologies, Inc. Direct subscription to intelligent I/O module
US7809656B2 (en) * 2007-09-27 2010-10-05 Rockwell Automation Technologies, Inc. Microhistorians as proxies for data transfer
US7882218B2 (en) * 2007-09-27 2011-02-01 Rockwell Automation Technologies, Inc. Platform independent historian
US7962440B2 (en) * 2007-09-27 2011-06-14 Rockwell Automation Technologies, Inc. Adaptive industrial systems via embedded historian data
US20090089671A1 (en) * 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Programmable controller programming with embedded macro capability
US8156134B2 (en) * 2007-11-15 2012-04-10 International Business Machines Corporation Using different groups of query graph transform modules to generate execution plans for queries for different database types
US7953722B2 (en) * 2007-12-21 2011-05-31 Sap Ag Query response service for business objects
US9418094B2 (en) * 2008-02-13 2016-08-16 Oracle International Corporation Method and apparatus for performing multi-stage table updates
US7917547B2 (en) * 2008-06-10 2011-03-29 Microsoft Corporation Virtualizing objects within queries
US8364751B2 (en) * 2008-06-25 2013-01-29 Microsoft Corporation Automated client/server operation partitioning
EP2146292B8 (en) 2008-07-18 2019-03-20 QlikTech International AB Method and apparatus for extracting information from a database
US20100030727A1 (en) * 2008-07-29 2010-02-04 Sivasankaran Chandrasekar Technique For Using Occurrence Constraints To Optimize XML Index Access
US8073843B2 (en) * 2008-07-29 2011-12-06 Oracle International Corporation Mechanism for deferred rewrite of multiple XPath evaluations over binary XML
US7958112B2 (en) 2008-08-08 2011-06-07 Oracle International Corporation Interleaving query transformations for XML indexes
US8799409B2 (en) * 2009-01-15 2014-08-05 Ebay Inc. Server side data cache system
US8881121B2 (en) * 2009-02-18 2014-11-04 International Business Machines Corporation Processing an object-oriented query to retrieve data from a data source
US8458217B1 (en) 2009-08-24 2013-06-04 Advent Software, Inc. Instantly built information space (IBIS)
US8347402B2 (en) * 2010-01-15 2013-01-01 Apollo Enterprise Solutions, Inc. Software development and distribution workflow employing meta-object time stamping
US9009137B2 (en) 2010-03-12 2015-04-14 Microsoft Technology Licensing, Llc Query model over information as a networked service
US8447754B2 (en) 2010-04-19 2013-05-21 Salesforce.Com, Inc. Methods and systems for optimizing queries in a multi-tenant store
US10162851B2 (en) 2010-04-19 2018-12-25 Salesforce.Com, Inc. Methods and systems for performing cross store joins in a multi-tenant store
US8898146B2 (en) * 2010-09-22 2014-11-25 Hewlett-Packard Development Company, L.P. System and method for comparing database query plans
US8868618B2 (en) 2010-12-14 2014-10-21 Microsoft Corporation Usage-optimized tables
US8635206B2 (en) 2011-06-30 2014-01-21 International Business Machines Corporation Database query optimization
JP5509164B2 (ja) * 2011-08-18 2014-06-04 株式会社日立製作所 計算機、管理方法及びプログラム
US8769350B1 (en) 2011-09-20 2014-07-01 Advent Software, Inc. Multi-writer in-memory non-copying database (MIND) system and method
US8732159B2 (en) * 2011-12-22 2014-05-20 Sap Ag Generic outer join across database borders
US8332349B1 (en) 2012-01-06 2012-12-11 Advent Software, Inc. Asynchronous acid event-driven data processing using audit trail tools for transaction systems
US8886671B1 (en) 2013-08-14 2014-11-11 Advent Software, Inc. Multi-tenant in-memory database (MUTED) system and method
US10664479B2 (en) * 2014-06-27 2020-05-26 Sap Se Accommodating concurrent changes in underlying data during reporting
CN105447021A (zh) * 2014-08-22 2016-03-30 国际商业机器公司 用于数据库查询的方法和系统
US10296621B2 (en) 2014-09-30 2019-05-21 Hewlett Packard Enterprise Development Lp Database and data stream query
US9779180B2 (en) * 2014-10-27 2017-10-03 Successfactors, Inc. Detection of the N-queries via unit test
US10102269B2 (en) 2015-02-27 2018-10-16 Microsoft Technology Licensing, Llc Object query model for analytics data access
CN107077512B (zh) * 2015-03-28 2020-10-16 华为技术有限公司 优化视图上的查询的系统和方法
US10204135B2 (en) 2015-07-29 2019-02-12 Oracle International Corporation Materializing expressions within in-memory virtual column units to accelerate analytic queries
US10372706B2 (en) 2015-07-29 2019-08-06 Oracle International Corporation Tracking and maintaining expression statistics across database queries
US9798762B2 (en) * 2015-11-30 2017-10-24 International Business Machines Corporation Real time big data master data management
US10558656B2 (en) * 2016-05-27 2020-02-11 Intuit Inc. Optimizing write operations in object schema-based application programming interfaces (APIS)
US10929400B2 (en) 2016-10-26 2021-02-23 International Business Machines Corporation Self-optimizing value range synopsis in analytical databases
CN110019287B (zh) * 2017-07-20 2021-09-14 华为技术有限公司 执行结构化查询语言sql指令的方法和装置
US11334568B2 (en) 2018-03-20 2022-05-17 Locus Robotics Corp. Deep caching in the data access layer of an enterprise portal application
US10970306B2 (en) 2018-03-20 2021-04-06 Locus Robotics Corp. Change management system for data synchronization within an enterprise portal application
US11138230B2 (en) * 2018-03-26 2021-10-05 Mcafee, Llc Methods, apparatus, and systems to aggregate partitioned computer database data
US11226955B2 (en) 2018-06-28 2022-01-18 Oracle International Corporation Techniques for enabling and integrating in-memory semi-structured data and text document searches with in-memory columnar query processing
US11423025B2 (en) * 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records
WO2022132362A1 (en) * 2020-12-18 2022-06-23 Microsoft Technology Licensing, Llc Operation fragmentation with metadata serialization in query processing pushdowns

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2253500A (en) 1990-08-23 1992-09-09 Data General Corp Object oriented-data bases
US5353410A (en) 1992-03-18 1994-10-04 International Business Machines Corporation Method and system for deferred read in lazy-write disk cache systems
US5241669A (en) 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for sidefile status polling in a time zero backup copy process
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
WO1995004960A2 (en) * 1993-08-02 1995-02-16 Persistence Software, Inc. Method and apparatus for managing relational data in an object cache
US6012085A (en) * 1995-11-30 2000-01-04 Stampede Technolgies, Inc. Apparatus and method for increased data access in a network file object oriented caching system
US5778355A (en) * 1996-06-11 1998-07-07 International Business Machines Corp. Database method and apparatus for interactively retrieving data members and related members from a collection of data
JPH10111821A (ja) * 1996-10-04 1998-04-28 Railway Technical Res Inst クライアント・サーバー・システム
US6006214A (en) * 1996-12-04 1999-12-21 International Business Machines Corporation Database management system, method, and program for providing query rewrite transformations for nested set elimination in database views
US5905982A (en) * 1997-04-04 1999-05-18 International Business Machines Corporation Handling null values in SQL queries over object-oriented data
US6134540A (en) * 1997-05-09 2000-10-17 International Business Machines Corporation System, method, and program for applying query rewrite technology to object building
US6122627A (en) * 1997-05-09 2000-09-19 International Business Machines Corporation System, method, and program for object building in queries over object views
US5897634A (en) * 1997-05-09 1999-04-27 International Business Machines Corporation Optimized caching of SQL data in an object server system
US6078926A (en) * 1997-12-18 2000-06-20 Persistence Software, Inc. Method and apparatus for performing multi-class object fetch in a database management system
JP2001527244A (ja) * 1997-12-22 2001-12-25 リンダ ジー デミシェル オブジェクト・リレーショナル・マッピングにおけるクエリー実行をクライアントとサーバーとで効率的に分割する方法及び装置
US6285997B1 (en) * 1998-11-16 2001-09-04 International Business Machines Corporation Query optimization with deferred update and autonomous sources

Also Published As

Publication number Publication date
US6285997B1 (en) 2001-09-04
TW449704B (en) 2001-08-11
KR20000035031A (ko) 2000-06-26
GB9925401D0 (en) 1999-12-29
US20010049685A1 (en) 2001-12-06
GB2346231B (en) 2003-03-05
JP2000163448A (ja) 2000-06-16
GB2346231A (en) 2000-08-02
US6574639B2 (en) 2003-06-03

Similar Documents

Publication Publication Date Title
JP3361783B2 (ja) オブジェクト指向照会を実行する方法および装置
US6457020B1 (en) Query optimization using a multi-layered object cache
US11880371B2 (en) Unified table query processing
US5797136A (en) Optional quantifiers in relational and object-oriented views of database systems
US10853351B2 (en) Logless atomic data movement
US6477527B2 (en) System, method, and program for object building in queries over object views
US6374263B1 (en) System for maintaining precomputed views
US6134540A (en) System, method, and program for applying query rewrite technology to object building
US5905982A (en) Handling null values in SQL queries over object-oriented data
US6122627A (en) System, method, and program for object building in queries over object views
US6581205B1 (en) Intelligent compilation of materialized view maintenance for query processing systems
US6278994B1 (en) Fully integrated architecture for user-defined search
US6529896B1 (en) Method of optimizing a query having an existi subquery and a not-exists subquery
US6574623B1 (en) Query transformation and simplification for group by queries with rollup/grouping sets in relational database management systems
US9465829B2 (en) Partial merge
US10162766B2 (en) Deleting records in a multi-level storage architecture without record locks
Benjelloun et al. An introduction to ULDBs and the Trio system
US7702627B2 (en) Efficient interaction among cost-based transformations
EP0877328A2 (en) Database query system and method
Xu et al. Computing closest common subexpressions for view selection problems
Pledereder et al. DB Integrator: Open middleware for data access
LIM et al. Source-Aware multidatabase query processing
Kiernan et al. Middleware object query processing with deferred updates and autonomous sources
Qin-jian et al. A CORBA-based multidatabase system—Panorama project

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees