JP2001527241A - オブジェクト指向データ依存性に対応するデータベース内の記憶済み手続をロードするための方法及び装置 - Google Patents

オブジェクト指向データ依存性に対応するデータベース内の記憶済み手続をロードするための方法及び装置

Info

Publication number
JP2001527241A
JP2001527241A JP2000525834A JP2000525834A JP2001527241A JP 2001527241 A JP2001527241 A JP 2001527241A JP 2000525834 A JP2000525834 A JP 2000525834A JP 2000525834 A JP2000525834 A JP 2000525834A JP 2001527241 A JP2001527241 A JP 2001527241A
Authority
JP
Japan
Prior art keywords
loading
stored
procedure
database
class
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
JP2000525834A
Other languages
English (en)
Inventor
トニー チャン タン エヌジー
Original Assignee
トニー チャン タン エヌジー
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
Priority claimed from US09/106,190 external-priority patent/US6243709B1/en
Application filed by トニー チャン タン エヌジー filed Critical トニー チャン タン エヌジー
Publication of JP2001527241A publication Critical patent/JP2001527241A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4493Object persistence
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases

Landscapes

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

Abstract

(57)【要約】 【目的】オフ゛シ゛ェクト・テ゛ータヘ゛ース・マッヒ゜ンク゛ツールにオフ゛シ゛ェクト指向のテ゛ータヘ゛ース従属性に対応する記憶済み手続をロート゛させることが可能な方法及び装置を提供すること。 【解決手段】テ゛ータヘ゛ース及びオフ゛シ゛ェクト指向アフ゜リケーションに関連付けられる記憶済み手続のシーケンスを記憶するオフ゛シ゛ェクト・テ゛ータヘ゛ース・マッヒ゜ンク゛ツールを提供する。ツールは、オフ゛シ゛ェクト指向アフ゜リケーションに対応する複数のクラスに関連付けられる複数の記憶済み手続にアクセスした後、クラス間の関係に基づいて記憶済み手続のシーケンスを決定し、そのシーケンスに基づいて記憶済み手続をロート゛する。又は、ツールは、種々の工程を経て記憶済み手続のシーケンスを決め、オフ゛シ゛ェクト指向アフ゜リケーションに対応するクラスに基づいて記憶済み手続を分類する。その後、ツールは、他のクラスと関係を有するクラスに対応する記憶済み手続をロート゛し、次いで、スーハ゜ークラスとして分類されたクラスに対応する記憶済み手続をロート゛し、更に、サフ゛クラスとして分類されたクラスに対応する記憶済み手続をロート゛する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、コンピュータ用のデータベースシステムに関し、更に詳しくは、オ
ブジェクト指向データ依存性に対応するデータベース内の記憶済み手続をロード
するための装置及び方法に関する。
【0002】
【従来の技術】
関連出願 以下に示した米国特許出願は、その全ての記載事項が本特許出願の記載事項に
ついての参照となり且つ本特許出願の内容の一部をなすものといえる。 1997年12月22日出願の米国特許仮出願No.60/068,415、発明の名称「オブジェ クトとデータベースとの間のマッピングシステム及びその方法」。 同日出願の米国特許出願No.09/106,186、発明の名称「ビュー処理用のオブジ ェクト・リレーショナル・マッピングツール」(代理人整理番号no.06502.0136-
00000)。 同日出願の米国特許出願No.09/106,189、発明の名称「ソースコード・マージ ングによるオブジェクト・リレーショナル・マッピングの展開」(代理人整理番
号no.06502.0137-00000)。 同日出願の米国特許出願No.09/105,957、発明の名称「オブジェクト・リレー ショナル・マッピングツールによるオブジェクトモデルに対する修正とデータベ
ースのソースコードに対する修正との統合」(代理人整理番号no.06502.0138-00
000)。 同日出願の米国特許出願No.09/106,210、発明の名称「オブジェクト・リレー ショナル・マッピング・ストラテジーへの規則的なアプローチ」(代理人整理番
号no.06502.0139-00000)。 同日出願の米国特許出願No.09/106,212、発明の名称「ロックグループを指定 するためのユーザインタフェース」(代理人整理番号no.06502.0142-00000)。 同日出願の米国特許出願No.09/106,119、「ロックグループを用いたオプティ ミスティック・コンカレンシー・コントロール用のファイン・グレインド・コン
システンシーメカニズム」(代理人整理番号no.06502.0143-00000)。 同日出願の米国特許出願No.09/106,188、発明の名称「オブジェクト指向アプ リケーション内のクラスに対応するリレーショナル・データベース内にインデッ
クスを生成する方法及び装置」(代理人整理番号no.06502.0145-00000)。 同日出願の米国特許出願No.09/106,046、発明の名称「オブジェクトのデータ ベースへの及びデータベースのオブジェクトへのマッピング用の方法及び装置の
統合グラフィックユーザインタフェース」(代理人整理番号no.06502.0147-0000
0)。 同日出願の米国特許出願No.09/105,955、発明の名称「オブジェクト・リレー ショナル・マッピングにおけるクライアントサーバ間の問合せ実行を効率的に分
割する方法及び装置」(代理人整理番号no.06502.0148-00000)。
【0003】 関連技術の説明 従来のオブジェクト・データベース・マッピングツールは、オブジェクト指向
アプリケーションからクラス定義を受信すると、自動的にコード(通常はデータ
ベーススキーマに記憶されたコード)を生成し、これによって、データベース用
のテーブル及び他の構造体を生成する。そのデータベース内のテーブル及び構造
体は、オブジェクト指向アプリケーション内のオブジェクトに対応するデータの
保持に使用される。オブジェクト指向アプリケーションとデータベースとの違い
は、これらのオブジェクト・データベース・マッピングツールの開発を困難なも
のにする。
【0004】 オブジェクト指向アプリケーションにおいてオブジェクトのスケルトンは、ク
ラスである。クラスは、多くのフィールドを有し、そのフィールドは、クラスの
オブジェクトインスタンスによって通常使用される値又はパラメータを記憶する
のに使用される。そのクラスは、特定メソッドを含み、そのメソッドは、各クラ
スからインスタンス化されたオブジェクトがどのように互いに対話するのかを定
義するとともに、どのように対応フィールドの各々の確かな情報を保持するのか
を定義する。階層クラス構造体は、オブジェクト及びその関係を生成するための
規則的な枠組みを提供する。
【0005】 データベースは、通常、複数の行列を有する一又は複数のテーブルを用いてデ
ータを統合化する。データの関係は、データがテーブルの種々の行列に記憶され
るその手法によって定義される。単一又は複数のテーブルは、データの各列又は
各レコードを保持するのに使用することができる。プライマリキーは、テーブル
内に一又は複数の行を有し、データの各列を固有のものとして定義する。複数の
テーブルがデータを記憶するのに使用されるとすれば、外部キーは、ある一つの
テーブルのデータ列を他のテーブルに関連付ける。記憶済み手続は、データベー
ス内でデータのテーブルを処理するのに使用される。これらの記憶済み手続は、
データベース言語(例えば、SQL言語)で記述されたスモールサイズのコンパイ ル済みプログラムであり、データベース内に記憶されている。
【0006】
【発明が解決しようとする課題】
データベース開発者は、記憶済み手続を生成して、ルーチンデータベース関数
の実行時間を短縮する。一つの記憶済み手続に他の記憶済み手続をコールさせる
ことによって複雑なオペレーションを実行するために、記憶済み手続は結合され
得る。一般的には、データベース開発者は、記憶済み手続に関連したデータベー
ス依存性について理解しているが、その理由は、データベース開発者がカスタマ
イズ化コードを開発しているからである。特に、第1番目の記憶済み手続が第2
番目の記憶済み手続をコールするとすれば、その第2番目の記憶済み手続は、第
1番目の記憶済み手続がそれをコール又は起動させる前に宣言又は定義されてい
なければならない。従って、開発者は、記憶済み手続が他の記憶済み手続によっ
てコールされる前に、全ての記憶済み手続がデータベースの記憶済み手続エリア
内で定義されるようにする。これに失敗すると、コンパイルエラー又はランタイ
ムエラーのいずれかを生じる結果となるが、これは、データベースが関係を解明
できず、コールしている記憶済み手続がコールされた記憶済み手続を配置できな
いからである。
【0007】 正確な順番での記憶済み手続のロードは、記憶済み手続がオブジェクト指向ア
プリケーション内のオブジェクトに対応するデータベース内のデータを処理する
のに使用される場合においては、更に困難となる。ロードの順番(オーダー)は
、オブジェクトと、階層クラス構造と、記憶済み手続がコールされた順番(オー
ダー)との関係に依存する。例えば、サブクラスオブジェクトの削除は、データ
ベース内に記憶されたスーパークラスオブジェクト用の対応エントリの削除を要
求する。ディスクドライブオブジェクトがパートオブジェクトスーパークラスの
サブクラスであると仮定する。ディスクドライブオブジェクトを削除するには、
対応する関係は、パートオブジェクトスーパークラスから削除しなければならな
い。データベースにおいては、記憶済み手続は、テーブル内のディスクドライブ
エントリを削除し、且つ、データベースのパートテーブル内の対応する関係を削
除するために他の記憶済み手続をコールする。後者の記憶済み手続は、前者の記
憶済み手続がコールし、それを参照する前に、データベース内にロードされなけ
ればならない。
【0008】 記憶済み手続の使用に伴う複雑さを回避するには、従来のオブジェクト・デー
タベース・マッピングツールは、SQL言語を使用するが、記憶済み手続の使用上 の複雑さを改善しようとするものではない。SQLとは異なり、記憶済み手続は、 一般的には、移植性に乏しいため、各々の異なるタイプのデータベース用に開発
され、コンパイルされ、ロードされなければならない。これらの従来のオブジェ
クト・データベース・マッピングツールは、記憶済み手続がより高速で且つパワ
フルなプログラミング構造を有しているときでさえ、記憶済み手続よりもむしろ
SQLを優先する。
【0009】 その結果、ユーザは、記憶済み手続を手動でデータベース内で開発し、コンパ
イルし及びロードしなければならなくなる。オブジェクト指向のユーザ又はプロ
グラマは、記憶済み手続を開発し及び使用するにはオブジェクト指向コンセプト
及びデータベースコンセプトの両者について深く理解していなければならない。
ユーザは、異なるデータベース用の記憶済み手続をコンパイルし且つロードする
ための技術にも習熟していなければならない。そのため、ユーザは、データベー
ス上で記憶済み手続を使用することにより提供される更に高いパフォーマンスを
使用できないのである。
【0010】 上述した従来のデータベース及びオブジェクト指向システムにおいて見られる
制限をなくし、オブジェクト・データベース・マッピングツールにオブジェクト
指向のデータベース従属性に対応する記憶済み手続をロードさせることが望まれ
ている。 本発明の目的は、オブジェクト・データベース・マッピングツールにオブジェ
クト指向のデータベース従属性に対応する記憶済み手続をロードさせることが可
能な方法及び装置を提供することである。
【0011】
【課題を解決するための手段】
上記課題を解決するために、本発明に係る方法及びシステムは、データベース
及びオブジェクト指向アプリケーションに関連付けられる一連の記憶済み手続を
記憶するオブジェクト・データベース・マッピングツールを提供する。ツールは
、オブジェクト指向アプリケーションに対応する複数のクラスに関連付けられる
複数の記憶済み手続にアクセスする。その後、ツールは、クラス間の関係に基づ
いて記憶済み手続のシーケンスを決定する。ツールはそのシーケンスに基づいて
記憶済み手続をロードする。本発明の他の要旨においては、ツールは、ツールは
、種々の工程を経て記憶済み手続のシーケンスを決める。ツールは、オブジェク
ト指向アプリケーション内で対応するクラスに基づいて記憶済み手続を分類する
。その後、ツールは、他のクラスと関係を有するクラスに対応する記憶済み手続
をロードする。次に、ツールは、スーパークラスとして分類されたクラスに対応
する記憶済み手続をロードする。その後、ツールは、サブクラスとして分類され
たクラスに対応する記憶済み手続をロードする。
【0012】
【発明の実施の形態】概略 以下、添付図面を参照して本発明の詳細について説明する。以下の説明におい
て、同一又は略同一の部材を参照する場合には全図を通して同一の符号を使用し
ている。
【0013】 本発明の趣旨に沿って設計された方法及びシステムは、データ従属性に基づい
てデータベース内の記憶済み手続をロードする方法及びシステムを提供する。デ
ータベース内の記憶済み手続は、オブジェクト指向アプリケーション内で使用さ
れるメソッドに対応する。オブジェクト指向アプリケーションは、オブジェクト
指向アプリケーション内のオブジェクトに対応するデータベーステーブル内のデ
ータにアクセスする。
【0014】 本発明に係る方法及びシステムは、データベース内の記憶済み手続のロードを
容易にする。オブジェクト・データベース・マッピングツールは、通常、オブジ
ェクト指向アプリケーションからデータベース内に適当な記憶済み手続、テーブ
ル及び他のデータ構造体を生成するのに使用される。一実施形態においては、ツ
ールは、データベース内に記憶済み手続をロードする。従って、ユーザは、デー
タベース内の記憶済み手続をロードすることよりも、オブジェクト指向にのっと
った開発に集中することができるため、ソフトウエア開発をより効率的に行うこ
とができる。
【0015】企業内システム 本発明に係るシステム及び方法は、クライアントがTCP/IPなどの共有ネ
ットワークプロトコル上でサーバと通信を行うクライアントサーバ環境を利用す
る。これらのシステム及び方法は、リレーショナル・データベース・マネージメ
ント・システム(DBMS)をネットワーク形態で利用しており、クライアントサー
バ分散処理技術を容易化したものである。このようなリレーショナル・データベ
ース・マネージメント・システムは、例えば、遠隔コンピュータからリクエスト
を受信すると、その結果をネットワークを介して配信する。リレーショナル・デ
ータベース・マネージメント・システムは、更に、SQL言語などの標準ソフトウ エア開発インタフェースを記憶済み手続として有するほか、種々の並列制御メカ
ニズムを有する。データは、行列を有する一連のテーブル内のリレーショナル・
データベース・マネージメント・システムに記憶される。テーブルは、一又は複
数の行の関係に基づき互いにリンクされる。ここで使用されるデータベース又は
リレーショナル・データベースの用語については、リレーショナル・データベー
ス・マネージメント・システム又は本発明の要旨に係る他のデータベース・マネ
ージメント・システムを参照されたい。
【0016】 SQL言語は、リレーショナル・データベースへのアクセス用の標準データベー ス言語である。米国国家規格X3H2は、SQL言語標準を維持管理するための標 準を定めたものである。データベースシステムのベンダは、通常、SQL言語標準 に対する拡張性及び付加機能を備えたものを有する。
【0017】 記憶済み手続によって、ユーザは、データベース内のテーブルとデータとを処
理するソフトウエアルーチンを開発することができる。通常、記憶済み手続は、
データベースが生成される際に、コンパイルされた後データベース内に記憶され
る。ユーザは、オブジェクトの追加・削除・操作によって間接的にオブジェクト
指向アプリケーション内の記憶済み手続を起動させることができる。記憶済み手
続は、オブジェクト上で実行されたオペレーションに対応するデータベース内の
データテーブルにアクセスし、これを修正するために使用される。
【0018】 データベース内の並列メカニズムは、ロック及び他の手動排他技術を備え、各
ユーザに対してデータベースの一貫したビューを提供する。これらのロック及び
他の並列メカニズムによって、複数のユーザ又はプログラムが、同時に同一のデ
ータベース及び情報を共有することができる。オブジェクト指向アプリケーショ
ンは、データベース内に記憶されたオブジェクトに対応するデータにアクセスす
る際に、間接的に、これらのロックを使用する。そのロックは、データベースが
、複数のアプリケーションが同一オブジェクト又は関連オブジェクトにアクセス
する際になされたオペレーション及び修正に従ったものであることを保証する。
【0019】 図1は、オブジェクト指向アプリケーションとデータベースとを統合する企業
内システム100のブロック図である。企業内システム100は、データベース
102,104,106、オブジェクトデータベースサーバ112に連結された
ネットワーク110、データベースサーバ108及びクライアント114を備え
る。ネットワーク110は、ネットワークの組合せであってもよく、例えば、イ
ンターネット、企業内イントラネット、その他のTCP/IPなどのネットワー
クプロトコルと互換性のあるネットワークの組合せでもよい。データベースサー
バ108における記憶済み手続116は、本発明に係るシステム及び方法に従っ
て生成される。
【0020】 データベース102,104及び106は、オブジェクト指向アプリケーショ
ンで使用されるクラスに対応するデータベーステーブルを有する。データベース
に関連付けられるクラスは、「永続可能」なクラスと考えられる。これらの永続
可能なクラスを表すオブジェクトは、それらがどのようにインスタンス化された
かによって永続オブジェクト又は遷移オブジェクトのいずれにもなり得る。仮に
オブジェクトが永続可能クラスの永続インスタンスであれば、そのオブジェクト
は、データベースに記憶され、多くの異なるアプリケーションでアクセス可能と
なる。オブジェクトが永続可能クラスの遷移インスタンスであれば、そのオブジ
ェクトは、当該オブジェクトをインスタンス化したアプリケーションの実行中に
おいてのみ存在することになる。
【0021】 オブジェクトデータベースサーバ112は、データベースサーバ108に接続
されたリレーショナル・データベースとオブジェクト指向アプリケーション(例
えば、クライアント114上のオブジェクト指向アプリケーション115)との
間にコンジットを形成する。一般的には、永続オブジェクトにアクセスするオブ
ジェクト指向アプリケーションは、オブジェクトデータベースサーバ112に対
してネットワーク110を介してオブジェクト指向言語で記述されたリクエスト
を送信する。オブジェクトデータベースサーバ112は、オブジェクト指向リク
エストを適当なデータベース命令に変換し、その命令を更なるデータベース処理
のためにネットワーク110を介してデータベースサーバ108へ送信する。オ
ブジェクトデータベースサーバ112は、更に、データベースオペレーションの
最中に結果が生成された場合には、オブジェクト指向アプリケーションに対して
返信レスポンスを配信することもできる。データベースサーバ108は、データ
ベースサービスをオブジェクトデータベースサーバ112とクライアント114
とに配信する。データベースサーバ108は、オブジェクトデータベースサーバ
112からのデータベース命令に応答してデータベース102,104及び10
6に記憶されたデータにアクセスする。変形例として、オブジェクトデータベー
スサーバ112及びデータベースサーバ108は、同一のコンピュータシステム
上に存在させてもよいし、上述したエリア以外のネットワークの別部分に存在さ
せてもよい。
【0022】 図2は、オブジェクトデータベースサーバ112に関連付けられるサブシステ
ムのブロック図である。オブジェクトデータベースサーバ112は、プロセッサ
210、ネットワークインタフェース212、入出力サブシステム(I/O)21 4及びメモリ215を備える。プロセッサ210は、メモリ215に保持された
アプリケーションに関連付けられる命令を実行するとともに、情報を内部接続を
介してオブジェクトデータベースサーバ112内の他のサブシステムへ転送する
。入出力サブシステム214は、インタフェースであり、オブジェクトデータベ
ースサーバ112と周辺デバイス(例えば、キーボード、マウス、ディスプレイ
及びオブジェクトデータベースサーバ112を操作し管理するのに有用なその他
の入出力デバイス)とを一体化させるのに使用される。
【0023】 メモリ215は、アプリケーションサーバ204、オブジェクト指向データベ
ース・ランタイムモジュール206、ランタイム環境209及びデータベース連
結モジュール(DBC)208を備える。メモリ215に記憶されたアプリケーシ ョンサーバ204は、データベース102,104及び106上に記憶されたオ
ブジェクトにアクセスするためのリクエストを受信する。サーバ112は、これ
らのデータベース・リクエストをオブジェクト指向アプリケーション115を実
行するクライアント114からネットワーク110を介して受信する。これらの
リクエストは、通常、データベースサーバ108に関連付けられる一又は複数の
データベースに記憶された情報テーブルの処理を含む。オブジェクト指向データ
ベース・ランタイムモジュール206は、そのオブジェクト指向リクエストをデ
ータベースコマンドに変換する。
【0024】 オブジェクト指向データベース・ランタイムモジュール206は、オブジェク
ト指向命令(例えば、JavaTMプログラミング言語と互換性のあるバイトコード)
を受信し、データベース内に記憶されたデータにアクセスする。ランタイム環境
209は、プロセッサ210上での実行用のオブジェクト指向命令を処理する。
ランタイム環境209は、仮想マシン(VM)と、これに対応するオブジェクト指向
クラスライブラリを備えた開発者キット(DK)を備えるとよい。いくつかの命令
は、仮想マシンVMによって解釈され、プロセッサ210上で実行される。仮想マ
シンVMは、プロセッサをシミュレートし、多くの異なったハードウエアプラット
フォーム上で実行可能である。ある実施形態におけるランタイム環境209は、
JavaTM仮想マシン(JVM)と、開発者キット(DK)としてのJavaTMファウンデー ションクラス(JFC)とを備えたJavaランタイム環境である。JavaTM仮想マシン (JVM)は、JavaTMプログラミング言語を用いたプラットフォーム独立のコンピ ューティングを促進する仮想マシンの一種である。
【0025】 他のデータベース関連命令は、データベース連結モジュール208を使用する
ことができ、これによって、オブジェクト指向データベース・ランタイムモジュ
ール206とデータベース情報とを連結することができる。データベース連結モ
ジュール208は、プログラマに対してデータベースへのアクセス用にアプリケ
ーションプログラミングインタフェース(API)を提供する。例えば、JDBCTMデ ータベース連結モジュールは、データベース連結モジュール208の一種であり
、JavaTMアプリケーションとデータベースとの間のインタフェースを提供する。
JDBCTMデータベース連結モジュールは、SQL言語のステートメントを実行するた めのJavaTMアプリケーションプログラムインタフェース(API)である。これは 、JavaTMプログラミング言語で作成された一組のクラスとインタフェースとから
なる。それは、ツール/データベースの開発者へ標準APIを提供し、これによっ て、純正JavaTMAPIを用いてデータベース・アプリケーションを作成することが 可能になる。JDBCTMについては、アジソン・ウェズレイ(1997年)発行、ハミル
トン、キャッテル及びフィッシャー共著「JavaTMを用いたデータベース・アクセ
ス」にその内容がより詳細に記載されている。例えば、データベース連結モジュ
ール208は、データベースと論理的接続を確立してデータベースにSQL言語ス テートメントを送信し、データベースから配信される結果を処理するのに使用可
能である。(尚、Sun, Sun Microsystems, The Sun logo, JavaTM, JDBCTM及びJ
avaTMに基づく商標は、サンマイクロシステムズ インコーポレーテッドの米国 及び外国における商標又は登録商標である。)
【0026】 図3は、データベースサーバ108に関連付けられるサブシステムを説明する
ためのブロック図である。データベースサーバ108は、プロセッサ310、ネ
ットワークインタフェース312、入出力314及びメモリ316を備える。プ
ロセッサ310は、メモリ316に保持されたアプリケーションに関連付けられ
る命令を実行し、高速内部接続又はバスを介してデータベースサーバ108内の
他のサブシステムへ結果を転送する。入出力314は、インタフェースであり、
データベースサーバ108と周辺デバイス(例えば、キーボード、マウス、ディ
スプレイ及びデータベースサーバ108を操作し管理するのに有用な他の入出力
デバイス)とを一体化させるのに使用される。
【0027】 メモリ316は、アプリケーションサーバ304、データベース・ランタイム
モジュール306及び記憶済み手続116を備える。メモリ316に記憶された
アプリケーションサーバ304は、データベース102,104及び106への
データベースアクセス用のリクエストを実行する。データベースリクエストは、
データベース言語(例えば、SQL)でオブジェクトデータベースサーバ112か らネットワーク110を介して受信される。データベース・ランタイムモジュー
ル306は、データベースリクエストを処理し、データベース102,104及
び106内のデータにアクセスする。
【0028】 図4は、クライアント114に関連付けられるサブシステムを説明するための
ブロック図であり、データベースに記憶されたオブジェクトにアクセスするのに
使用されるサブシステムを示したものである。クライアント114は、プロセッ
サ402、ネットワーク110に接続されたネットワークインタフェース404
、入出力インタフェース406、ディスプレイ408及び多くの異なるソフトウ
エアサブシステムを備えたメモリ407を備える。これらの構成要素は上述した
同様な名称を備えた構成要素と同様に動作する。ディスプレイ408は、データ
ベース102,104及び106内に記憶されたオブジェクトを処理するための
リクエストを出すユーザに対して視覚的なフィードバックを返す。また、ユーザ
は、ディスプレイ408を用いて本発明に係るグラフィックユーザインタフェー
ス・オブジェクト・マッピングツールを表示して、これと対話型で処理をすすめ
ることができる。
【0029】 メモリ407は、アプレット412,アプリケーション414、一又は複数の
永続可能なオブジェクト416及びランタイム環境420を備える。ランタイム
環境420は、仮想マシン(VM)と、クラスライブラリを有する開発者キット(
DK)とを備えてもよい。本発明に係る一実施形態によれば、アプレット412は
、データベース内のテーブルにアクセスするオブジェクト指向コードを備える。
アプリケーション414は、オブジェクト指向コードを用いてデータベース内の
テーブルにアクセスすることもできる。アプレット412又はアプリケーション
414のいずれかが、永続可能オブジェクト416を生成する。アプレット41
2及びアプリケーション414は、JavaTMプログラミング言語を用いて開発する
ことができ、JavaTM仮想マシン(JVM)とJavaTMファウンデイションクラス(JFC
)のクラスとを有するJavaTMランタイム環境(JRE)内で処理可能である。
【0030】 図5は、本発明に係るシステム及び方法が実装されるオブジェクト指向データ
ベースシステム500の典型例を示したブロック図である。システム500は、
オブジェクトに関連付けられるデータを記憶するテーブルを有するデータベース
502と、オブジェクト指向アプリケーション504と、オブジェクトをインス
タンス化するための一又は複数のライブラリ506と、オブジェクト・データベ
ース・マッピングツール508と、データベーススキーマ512と、記憶済み手
続514と、インデックス515と、オブジェクト・データベース・マッピング
ツール508を用いて生成された多くの新たなクラス510とを備える。
【0031】 本発明に係る一実施形態においては、オブジェクト・データベース・マッピン
グツール508は、データベース502内に保持されたテーブルをクラスへマッ
ピングする。ユーザは、データベース502のテーブルに記憶されたデータを用
いてツール508を提供する。ツール508は、テーブルを多くの対応する新た
なクラス510へ変換する。本発明に係る一実施形態においては、これらの新た
なクラス510は、既存のクラスライブラリ506へ統合される。
【0032】 ツール508は、クラスライブラリ506内のクラスをデータベース502内
で使用されているテーブルへマッピングすることもできる。ユーザは、データベ
ース502へのマッピング用にクラスライブラリ506内の互換性のある永続可
能クラスをツール508へ提供する。オブジェクト・マッピングツール508は
、クラスライブラリ506内の各永続可能クラスをどのようにデータベース50
2内のテーブルにマッピングするのかを決定する。クラスからデータベースへの
マッピングの間、記憶済み手続514及びデータベースインデックス515は、
データベース502内で生成され記憶される。データベースインデックス515
は、オブジェクトに関連付けられるデータベース502に記憶されたデータにア
クセスするのに関連付けられるアクセス時間を短縮するのに使用される。クラス
からデータベースへのマッピング処理は、データベーステーブルを生成するコー
ド及び命令を保持するデータベーススキーマ512を生成する。
【0033】クラスからテーブルへのマッピング 図6は、本発明に係るフローチャートであり、オブジェクト指向アプリケーシ
ョン内のクラスをデータベース内のテーブルエントリに変換するのに使用される
フローチャートを示したものである。ユーザが、ツール508にオブジェクト指
向アプリケーション内のオブジェクトに対応する一又は複数のクラスを提供する
ところからスタートする(ステート602)。これらのクラスは、オブジェクト指 向言語に関連づけられるフィールド、メソッド及び他のオペレータを有する。コ
ンテキスト内のフィールドは、違うタイプのデータ又は変数を記憶するのに使用
され、メソッドは、対応クラスから取出したオブジェクトを処理するのに使用さ
れる。
【0034】 クラス階層構造は、オブジェクト指向アプリケーション内で定義された種々の
クラス内でも構成されている。クラス階層構造は、どのクラスがスーパークラス
で、どのクラスが互いのサブクラスなのかを示す。スーパークラスからのメソッ
ド、フィールド及び他のオブジェクト指向特性は、サブクラスによって承継され
る。これらの関係は、データベーステーブル及び他のデータベース構造へマッピ
ングするのに使用される。
【0035】 ツール508は、一又は複数のクラスに対応する行列を有するデータベース内
でテーブルを生成する。テーブルは、クラスとテーブルとの間の所定のマッピン
グ(クラスからデータベースへの)に基づいて生成される。本発明に係る一実施
形態においては、マッピング(クラスからデータベースへの)によって、オブジ
ェクト指向アプリケーション内の一つのクラスがデータベース内の一つのテーブ
ルへマッピングされる(ステート604)。一対一のマッピング技術(クラスから データベースへの)を使用することにより、複数フィールドエントリを有するク
ラスは、単一テーブル(各行が複数フィールドの各々に対応)にマッピングされ
る。付加的な列は、データベース内に記憶されたクラスの各クラスのオブジェク
ト・インスタンス用のテーブルに付加される。より複雑なマッピング(クラスか
らデータベースへの)を使用して、クラスをテーブルへマッピングすることもで
きる(例えば、単一クラスの複数テーブルへのマッピングや、複数クラスの単一
テーブルへのマッピングなど)。
【0036】 ツール508は、スキーマを生成して、データベース内のテーブルを生成する
(ステート606)。スキーマは、データベース内のテーブルの記述とそれらの種 々の属性とを備える。ユーザは、スキーマを用いてデータベースを生成する。複
数スキーマがカタログ内の別々のエントリに従って構成される。カタログによっ
て、各スキーマは、固有ラベルが付され他のスキーマと区別される。
【0037】 検索スピードとパフォーマンスとを向上させるべく、ツール508によって、
ユーザは、高速アクセスのためにオブジェクト内のどのフィールドがデータベー
ス内でインデックスが付されるのかを指定することができる。ユーザによって指
定されたフィールドは、インデックスグループ内のツール508によって論理的
に構成される。ツール508は、ユーザによって指定されたインデックスグルー
プの各フィールドを分析して、選択されたフィールドに対応するデータベース内
のテーブルにインデックスを生成する(ステート608)。インデックスは、デー タ構造であり、これによって、テーブルの列が列内の一又は複数のエントリの値
に基づいて高速に素早く探索され得る。データベースは、複数インデックスがテ
ーブル上で定義された時に最良のインデックスを選択して問合せを改善する。
【0038】 本発明に係る一実施形態において、ツール508によって、ユーザは、インデ
ックスグループを固有とすべきか又は非固有とすべきかを指定できる。固有イン
デックスグループが指定されると、ツール508は、ユーザのために一又は複数
の固有インデックスを生成する。固有インデックスは、テーブル内の各列が指定
された行に固有値を保持することを要求する。固有インデックスは、通常、高速
であるが、これは、テーブル内の唯一つの列のみが検索に合致するためである。
【0039】 これに対し、ユーザによって選択された非固有インデックスグループは、デー
タベース内の一又は複数の非固有インデックスに対応するものでもよい。非固有
インデックスグループを選択することにより、ツール508は、必要であればデ
ータベース内に非固有インデックスを生成することができる。固有インデックス
に対し、非固有インデックスは、二重の値のエントリを対応する行に保持するこ
とができる。通常、非固有インデックスは、データベースが共有の行のエントリ
を持つ二以上の列の間で区別する必要がある時に更に低速となる。
【0040】 ツール508は、オブジェクト指向アプリケーション内のオブジェクト上で通
常は実行されるオペレーションに対応する一又は複数の記憶済み手続514をも
生成する(ステート610)。ツール508は、自動的に、記憶済み手続514を 生成して、データベース内に記憶されたデータを取り出すのに利用できる基本的
なオペレーションを提供する。例えば、記憶済み手続を生成することによって、
データベース内のオブジェクト(例えば、付加・削除・修正・取得などのデータ
エントリ)上でルーチンオペレーションを実行することができる。
【0041】 記憶済み手続514は、所定の依存性オーダーに従ってデータベース内に入り
込む。第1番目の記憶済み手続が第2番目の記憶済み手続をコールする場合には
、第2番目の記憶済み手続はデータベース内で最初に定義されなければならない
。依存性オーダーは、記憶済み手続がアプリケーション又は他の記憶済み手続に
よってコールされる前にデータベース内で定義されていることを保証する。本発
明に係る一実施形態においては、記憶済み手続がデータベース内に記憶されるオ
ーダーは、クラス階層と、記憶済み手続同士の関係とに基づく(ステート612) 。
【0042】 図7は、オブジェクト関係がどのようにしてデータベース内のテーブル関係に
マッピングされるのかを示したブロック図である。スーパークラス・サブクラス
のオブジェクト関係704は、対応するスーパークラス・サブクラスのテーブル
関係702に従って外部キーとプライマリキーとを用いたデータベース内でモデ
ル化される。この例においては、オブジェクト指向アプリケーションがパートク
ラス、メモリクラス及びディスククラスを保持する一組のクラスを有するものと
仮定する。メモリクラス及びディスククラスは、スーパークラス・サブクラスの
オブジェクト関係704に示したように、パートクラスのサブクラスである。そ
の理由は、メモリクラス及びディスククラスは、それらが継承するパートクラス
のメソッド、フィールド及びインタフェースのサブクラスだからである。メモリ
クラス及びディスククラスは、パートクラスに拡張してメモリクラス及びディス
ククラスの特定の固有アスペクトをも定義することができる。
【0043】 スーパークラス・サブクラスのクラス関係704を表現するために、データベ
ースは、スーパークラス・サブクラスのテーブル関係702を使用する。本質的
には、第1番目のテーブルは、第2番目のテーブルのサブクラスであり、このこ
とは、第1番目のテーブルのプライマリキーが第2番目のテーブルのプライマリ
キーを参照する外部キーでもあることを明らかにすることによりいえる。この場
合、第1番目のテーブルは、ディスククラスの各インスタンスを記憶し、パート
テーブル内のプライマリキーに対しては外部キーともなるプライマリキーを有す
る行を保持する。同様にして、メモリクラスの各インスタンスを記憶するのに使
用されるテーブルは、パートテーブル内のプライマリキーに対しては外部キーと
もなるプライマリキーを有する行を保持する。これらのテーブルは、オブジェク
トが追加又は削除された際でもデータベース内で無破壊で参照可能である。例え
ば、パートオブジェクトが削除されている場合には、スーパークラス・サブクラ
スのテーブル関係702は、メモリテーブル及びディスクテーブル内のエントリ
が同様に削除されることを要求する。
【0044】 クラス階層構造を残しておくために、外部キー及びプライマリキーは、クラス
間の一対多関係を表現するのに使用される。図8は、一対多のクラス関係808
及び一対多のテーブル関係806を説明したものである。例えば、一対多のクラ
ス関係808により、カスタマーオブジェクトは、多くのオーダーオブジェクト
を有することができるが、各オーダーオブジェクトは、一つのカスタマーオブジ
ェクトにのみ関連付けられる。一対多のクラス関係808内のカスタマークラス
は、クラス内にフィールドを有し、そのフィールドは、複数のオーダーオブジェ
クトを参照する。各オーダーオブジェクトは、フィールドを有し、そのフィール
ドは、特定のカスタマーオブジェクトに対し単一の参照を保持する。
【0045】 対応する一対多のテーブル関係806は、カスタマー識別(CUSTID)プライマ
リキーの行エントリと、セパレートカスタマー識別外部キーの行とを有する。カ
スタマーテーブルは、カスタマー識別プライマリキーを有し、このカスタマー識
別プライマリキーは、システム内の各カスタマーに対して固有である。
【0046】 図9は、多対多のクラス関係912及び多対多のテーブル関係910を表すた
めに、どのように外部キー及びプライマリキーが使用されるのかを説明したもの
である。カスタマーオブジェクトが複数のオーダーオブジェクトを参照すること
ができ、且つ、オーダーが複数のカスタマーからなされ得ると仮定する。多対多
のクラス関係912は、多対多のテーブル関係910に示されたように結合テー
ブルを用いてデータベース内で表現される。結合テーブルは、中間テーブルであ
り、この中間テーブルは、二つのテーブル内のエンティティー間の関係を形成す
るために使用される。結合テーブルは、通常2組の行を有する。一組の行は、一
つのテーブル内のプライマリキーに対する外部キー参照を形成する。他組の行は
、他のテーブル内のプライマリキーに対する外部キー参照を形成する。この例に
よれば、カスタマーオーダー結合テーブルは、カスタマーテーブル内のカスタマ
ー識別プライマリキーにマッピングされたカスタマー識別外部キーと、オーダー
テーブル内のオーダー識別プライマリキーにマッピングされたオーダー識別外部
キーとを備える。
【0047】テーブルからクラスへのマッピング ツール508は、テーブルからクラスへのマッピングメソッドをも備えており
、データベース内のテーブルをオブジェクト指向言語内の一又は複数のクラスへ
変換する。図10は、データベース内のテーブル及び他の情報をオブジェクト指
向アプリケーション内のクラスへ変換するのに使用されるフローチャートである
。まず初めに、ユーザは、ツール508に対し、データベース及び他の有用情報
(例えば、データベースに関連のある記憶済み手続、インデックス及びSQLルー チン)を配信する(ステート1002)。ツール508は、マッピングプロセスを使
用して、データベース内のテーブルから永続可能クラスを生成する(ステート10
04)。一実施形態においては、データベース内のテーブルは、オブジェクトを参
照するアプリケーションが実行を完了した後のオブジェクトを記憶することがで
きる永続可能クラスに対応する。
【0048】 ツール508は、データベース内の各テーブルに対応するクラス定義を生成す
る(ステート1006)。ツール508は、テーブル間の関係を分析して、テーブル
間にスーパークラス・サブクラスの関係があるかどうか、テーブル間に一対多の
関係があるかどうか、又は、テーブル間に多対多の関係があるかどうかを決定す
る。図7から図9は、データベーステーブルの関係の概略及びそれらがどのよう
にしてオブジェクト指向アプリケーション内の対応するクラス関係に変換するの
かの概略を示す。
【0049】 テーブルからクラスへ変換するのに使用されるマッピング(テーブルからクラ
スへの)技術は、上述したマッピング技術(クラスからテーブルへの)とは逆の
プロセスである。ツール508は、外部キー及びプライマリキーがテーブル内で
どのように使用されているかに基づいて、クラスを適当なスーパークラス及びサ
ブクラスに配列させる(ステート1008)。本質的には、サブクラスは、サブクラ
ステーブル用のプライマリキーと、スーパークラステーブルに対する外部キーと
を備えた行を保持するテーブルから生成される。例えば、図7においては、スー
パークラス・サブクラスのテーブル関係702は、行エントリを有するディスク
テーブルを有し、その行エントリは、外部キーがパートテーブルに対するのと同
様にディスクテーブルの行内のプライマリキーとなる。
【0050】 インデックスについては、ツール508は、オリジナルデータベース内に存在
するインデックスを使用するが、テーブルからクラスへのマッピングにおいては
、ユーザが意図的に更に多くのインデックスを生成する旨のリクエストを出さな
い限りインデックスを生成しない。
【0051】 ツール508は、更に、特定のクラスから生成されるオブジェクトに使用させ
るためのオブジェクト問合せ言語(OQL)ルーチンを生成する(ステート1010) 。OQLルーチンによって、ユーザは、オブジェクト指向プログラミング言語イン タフェースを用いてオブジェクトに問合せをすることができる。OQLルーチンは 、クラス間の関係を理解し、且つ、ユーザに対して明らかなデータベース操作を
要求することなく参照ナビゲーションをなし得る。例えば、特定クラス上の問合
せは、問合せ基準に適合させるオブジェクトの連結に従って、そのクラス内の全
オブジェクトを返す。その後、ユーザは、オブジェクトのコレクションを通じて
個々のオブジェクト上でオペレーションを繰り返し行うことができる。OQL以外 の他のメソッドを用いてデータベース内のオブジェクトにアクセスすることもで
きる。
【0052】 ツール508は、更に、デフォルトメソッドを生成して、クラス内の各フィー
ルド上でオペレーションを行う(ステート1012)。メソッド"取得"が生成される
と、データベースのテーブル内の永続オブジェクト内に記憶されたフィールド値
が取得される。同様に、メソッド"設定"を使用して、データベース内に記憶され
た永続オブジェクトの各フィールド内の値が設定される。これらのメソッドによ
り、ユーザは、オブジェクト指向プログラミング言語を利用して、永続オブジェ
クト内のフィールド値を処理することができる。異なったデフォルトメソッドを
備えた実施形態を、特定の用途又は開発中のアプリケーションに適用することも
もちろん可能である。
【0053】 ツール508は、データベース内に配置された他の記憶済み手続に対応するオ
ブジェクト指向メソッドを生成することもできる(ステート1014)。これらのオ
ブジェクト指向メソッドにより、オブジェクト指向アプリケーションは、データ
ベースに記憶された予めコンパイルされた記憶済み手続にアクセスすることがで
きる。
【0054】従属性に基づく記憶済み手続の生成 図11は、オブジェクト指向データ従属性に対応するデータベース内の記憶済
み手続のロードに関連付けられる工程を示したフローチャートである。本発明の
一実施形態は、オブジェクト間のクラス階層と関係とを使用して記憶済み手続が
データベース内にどのようなオーダーでロードされるのかを決定する。この技術
は、記憶済み手続が他の記憶済み手続によりコールされる前にデータベース内に
ロードされるため、コンパイルエラーが起こらない。
【0055】 本発明に係るシステム及び方法においては、ツール508は、ユーザがオブジ
ェクト指向アプリケーション内のクラスをデータベース内のテーブルにマッピン
グする際に記憶済み手続をロードするためのシーケンスを生成する。ツール50
8は、通常、データベース内に記憶されたデータを処理するのに有用且つ各クラ
スに関連づけられる記憶済み手続をも生成する。これらの記憶済み手続は、例え
ば、付加・削除・データベース内に記憶されたデータへのアクセスのための手続
を含む。
【0056】 図11において、ツール508は、オブジェクト指向アプリケーション内の一
又は複数のクラスに関連付けられた記憶済み手続を生成する。これらの記憶済み
手続は、ファイルシステム内の一組のファイル内に記憶される。ツール508は
、クラスに関連付けられる記憶済み手続のファイルをオープンする(ステート11
02)。永続可能クラスからのオブジェクトインスタンスは、データベース内に記
憶可能であるため、ツール508は、通常、永続可能クラスを処理する。
【0057】 ツール508は、オブジェクト指向アプリケーション内で関連付けられるクラ
スに基づいて記憶済み手続のシーケンスを決定する(ステート1104)。図7から
図9において説明したように、クラスは、スーパークラス・サブクラスの関係7
04、一対多のクラス関係808又は多対多のクラス関係912において関連付
けられる。
【0058】 シーケンス内の第1番目の記憶済み手続は、クラス間の関係に対応する(ステ
ート1106)。2つのクラス間の関係は、クラス間の外部キーを用いて確立される
。例えば、記憶済み手続は、外部キーがカスタマーと特定のオーダーとを関連付
けるカスタマー・オーダーの関係の削除用として存在するものでもよい。一般的
に、関係削除用のみの記憶済み手続は、他の記憶済み手続に依存するものではな
い。関係削除用の記憶済み手続がオブジェクトをも削除するという他の一例にお
いては、関係削除用の記憶済み手続は、オブジェクト削除用の記憶済み手続の後
にデータベース内にロードされる。
【0059】 その後、ツール508は、スーパークラスとして分類されたクラスに関連付け
られる記憶済み手続を次のシーケンスとする(ステート1108)。これらの記憶済
み手続は、次のシーケンスとなるが、一又は複数のサブクラスによって参照可能
とするためである。このことは、サブクラスのオブジェクトが削除される場合に
は重要であるが、その理由は、サブクラスオブジェクトに対応するデータを削除
するのに使用される記憶済み手続は、一又は複数の記憶済み手続をコールするこ
とにより、対応するスーパークラスに関連付けられるデータを記憶するテーブル
を更新するからである。従って、データベース内に記憶されたオブジェクトの参
照は、オブジェクトを破壊することなく可能になる。
【0060】 スーパークラスの後に、ツール508は、シーケンス内にサブクラスとして分
類されたクラスに関連付けられる記憶済み手続をおく(ステート1110)。いわゆ
る当業者にとっては、クラス階層に従い、クラスがあるクラスに対してスーパー
クラスになるし、他のクラスに対してサブクラスになることは自明である。
【0061】 一旦記憶済み手続が適正なシーケンス内におかれると、ツールは、データベー
スに関連付けられ且つ記憶済み手続を保持可能な最終記憶済み手続を生成する(
ステート1112)。この記憶済み手続は、データベースにアクセスするオブジェク
ト指向アプリケーションによりアクセス可能であり、且つ、ネットワークに接続
された遠隔サーバ上に配置されたエリア内に置くこともできる。ツール508は
、最終記憶済み手続エリアを用いてデータベース内の記憶済み手続をロードする
【0062】 図12及び図13は、本発明に係る手法でデータベース内にロードされた一連
の記憶済み手続の一例を示したものである。図12は、従来のオブジェクト・マ
ッピングツールによって生成された一連の記憶済み手続を示したブロック図であ
る。通常、記憶済み手続は、1クラス単位で生成されデータベース内へロードさ
れる正確なシーケンスでは生成されない。
【0063】 例えば、ツール508は、ディスクの削除1202、コンピュータの削除12
04、パートの削除1206及びコンピュータパート関係の削除1208を含む
記憶済み手続の初期化シーケンスを生成することができる。矢印は、記憶済み手
続の関係を示す。ディスクの削除1202はパートの削除1206をコールし、
コンピュータの削除1204はコンピュータ関係の削除1208をコールし、パ
ートの削除1206はコンピュータの削除1204をコールし、パートの削除1
206は更にコンピュータパートの関係1208をコールする。この例によれば
、ディスクはパートのサブクラスであり、パートとコンピュータとの間には一対
多の関係がある。従って、コンピュータパート関係の削除1208は、パートと
コンピュータとの間の関係を反映する。これらの記憶済み手続がこの初期化シー
ケンス内でロードされるとすれば、数多くの参照エラーが発生し、記憶済み手続
は正確に動作しなくなる。
【0064】 本発明に係るシステム及び方法は、クラス関係とクラス階層とに基づいて正確
なシーケンスで記憶済み手続をロードする。図13は、本発明に係る手法に従っ
て生成された一連の記憶済み手続を示したブロック図である。ツール508は、
シーケンス内にコンピュータパート関係の削除1208を最初におくが、その理
由は、それが他の記憶済み手続をコールしないからである。次に、ツール508
は、シーケンス内にコンピュータの削除1204をおくが、その理由は、それが
他のクラスと一対多の関係をもって動作するのに関連するからである。パートの
削除1206は、シーケンス内ではその次の記憶済み手続であるが、その理由は
、それがスーパークラス上で動作することに関連するからであり、ディスクの削
除1202は、シーケンス内ではその次の記憶済み手続であるが、その理由は、
クラスのサブクラス上で動作することに関連するからである。このシーケンス内
の記憶済み手続をロードすることは、各記憶済み手続のコンパイルを簡単に成功
させるが、その理由は、記憶済み手続は、それらが他の記憶済み手続により参照
される前に定義されるからである。
【0065】 以上本発明の一実施形態について説明したが、これは、説明のためになされた
ものであり、本発明の要旨及び範囲を逸脱しない範囲において種々の変形例が可
能である。いわゆる当業者にとっては、本発明が広範囲に亘る種々のソフトウエ
アプラットフォームで実装され得ることは周知であり、JavaTMオブジェクト指向
プログラミング言語及びその開発環境に限定されないことは周知である。更に、
本発明の要旨は、メモリ及び他の記憶媒体に記憶されているものとして説明した
が、いわゆる当業者にとっては、これらの要旨を他のコンピュータ読取可能媒体
(例えば、ハードディスク、フロッピーディスク又はCD-ROM等の補助記憶デバイ
ス;インターネット等のネットワークからのキャリア波;又はランダムアクセス
メモリ又はリードオンリメモリ等の他の形態)に記憶し、又は、これらから読み
出してもよいことは周知である。本質的には、本発明に係る同様の実施形態は、
種々のソフトウエア及びハードウエアシステムが単一コンピュータ内に保持され
且つ上述したネットワーク上に分散されていない場合以外において生成され得る
ものである。従って、本発明は上述した実施形態に何ら限定されるものではない
が、技術的範囲に属する範囲は、特許請求の範囲によって定義される。
【0066】
【発明の効果】
本発明に係るインデックス生成方法、インデックス生成システム及びコンピュ
ータ読出可能な記憶媒体によれば、記憶済み手続は、当該記憶済み手続が他の記
憶済み手続により参照される前に定義されるものであるから、オブジェクト・デ
ータベース・マッピングツールにオブジェクト指向のデータベース従属性に対応
する記憶済み手続をロードさせることができる。従って、記憶済み手続のロード
が容易になる。
【図面の簡単な説明】
【図1】 オブジェクト指向アプリケーションとデータベースとを統合する
企業内システムのブロック図である。
【図2】 オブジェクト・データベースサーバに関連付けられるサブシステ
ムのブロック図である。
【図3】 データベースサーバに関連付けられるサブシステムを説明するた
めのブロック図である。
【図4】 データベースに記憶させたオブジェクトにアクセスするのに使用
されるクライアントに関連付けられるサブシステムを説明するためのブロック図
である。
【図5】 本発明に係るシステム及び方法が実装されるオブジェクト指向デ
ータベースシステムの典型例を示したブロック図である。
【図6】 オブジェクト指向アプリケーション内のクラスをデータベース内
のテーブルエントリに変換するのに使用される本発明に係る方法のフローチャー
トである。
【図7】 一対一テーブルと一対一オブジェクトとの関係を示したブロック
図である。
【図8】 一対多テーブルと一対多オブジェクトとの関係を示したブロック
図である。
【図9】 多対多テーブルと多対多オブジェクトとの関係を示したブロック
図である。
【図10】 データベース内のテーブルと他の情報とをオブジェクト指向ア
プリケーション内のクラスに変換するのに使用される本発明に係る方法のフロー
チャートである。
【図11】 オブジェクト指向アプリケーションによるアクセス用のデータ
ベース内の一連の記憶済み手続をロードする本発明に係る方法のフローチャート
である。
【図12】 初期化シーケンスの一連の記憶済み手続のブロック図である。
【図13】 本発明に係る一実施形態を用いた完全シーケンス内に置かれた
一連の記憶済み手続のブロック図である。
【符号の説明】
100…企業内システム、102,104,106,502…データベース、1
08…データベースサーバ、110…ネットワーク、112…オブジェクトデー
タベースサーバ、114…クライアント、115,504…オブジェクト指向ア
プリケーション、116,514…記憶済み手続、204,304,414…ア
プリケーションサーバ、206…オブジェクト指向データベースランタイムモジ
ュール、208…データベース連結モジュール、209…ランタイムモジュール
、210,310,402…プロセッサ、212,312,404…ネットワー
クインタフェース、214,314,406…入出力サブシステム、215,3
16,407…メモリ、306…データベースランタイムモジュール、408…
ディスプレイ、412…アプレット、416…永続可能オブジェクト、420…
ランタイム環境、506…クラスライブラリ、508…オブジェクトデータベー
スマッピングツール、510…新たなクラス、512…データベーススキーマ、
515…データベースインデックス
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,UZ,VN,YU,ZW Fターム(参考) 5B075 NR12 PP02 PP03 PQ02 QT03 5B076 BA00 5B082 GA07

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサに実行させるためのロード方法であってデータベ
    ースに関連付けられる記憶済み手続のロード方法において、 オブジェクト指向アプリケーションに対応する複数のクラスに関連付けられる
    記憶済み手続にアクセスするアクセス工程と、 前記クラス間の関係に基づいて前記記憶済み手続のシーケンスを決定するシー
    ケンス決定工程と、 前記シーケンスに基づいて前記記憶積み手続をロードするロード工程とを有す
    ることを特徴とする記憶済み手続のロード方法。
  2. 【請求項2】 前記ロード工程は、更に、 前記記憶済み手続のシーケンスを保持可能且つ前記オブジェクト指向アプリケ
    ーションによりアクセス可能な前記データベース内の最終記憶済み手続エリアを
    割り付ける割付工程と、 前記最終記憶済み手続エリア内に前記記憶済み手続をロードするロード工程と
    を有することを特徴とする請求項1に記載の記憶済み手続のロード方法。
  3. 【請求項3】 前記決定工程は、更に、前記オブジェクト指向アプリケーシ
    ョン内で前記記憶済み手続が対応するクラスに基づいて当該記憶済み手続を分類
    する分類工程を有することを特徴とする請求項1に記載の記憶済み手続のロード
    方法。
  4. 【請求項4】 前記ロード工程は、更に、他のクラスと関係を有するクラス
    に対応する前記記憶済み手続をロードするロード工程を有することを特徴とする
    請求項1に記載の記憶済み手続のロード方法。
  5. 【請求項5】 前記ロード工程は、更に、スーパークラスとして分類された
    クラスに対応する前記記憶済み手続をロードするロード工程を有することを特徴
    とする請求項1に記載の記憶済み手続のロード方法。
  6. 【請求項6】 前記ロード工程は、更に、サブクラスとして分類されたクラ
    スに対応する前記記憶済み手続をロードするロード工程を有することを特徴とす
    る請求項1に記載の記憶済み手続のロード方法。
  7. 【請求項7】 複数の記憶済み手続を有するデータベースと、 プロセッサとを備え、 前記プロセッサは、オブジェクト指向アプリケーションに対応する複数のクラ
    スに関連付けられる複数の記憶済み手続にアクセスし、前記クラス間の関係に基
    づいて前記記憶済み手続のシーケンスを決定し、前記シーケンスに基づいて前記
    記憶積み手続をロードするように構成されていることを特徴とする記憶済み手続
    のロードシステム。
  8. 【請求項8】 前記プロセッサは、前記記憶済み手続をロードするものであ
    り、更に、前記記憶済み手続のシーケンスを保持可能且つ前記オブジェクト指向
    アプリケーションによりアクセス可能な前記データベース内の最終記憶済み手続
    エリアを生成し、前記最終記憶済み手続エリア内に前記記憶済み手続をロードす
    るように構成されていることを特徴とする請求項7に記載の記憶済み手続のロー
    ドシステム。
  9. 【請求項9】 前記プロセッサは、前記記憶済み手続のシーケンスを決定し
    、更に、前記オブジェクト指向アプリケーション内で前記記憶済み手続が対応す
    るクラスに基づいて当該記憶済み手続を分類するように構成されていることを特
    徴とする請求項7に記載の記憶済み手続のロードシステム。
  10. 【請求項10】 前記プロセッサは、前記記憶済み手続をロードし、更に、
    他のクラスと関係を有するクラスに対応する前記記憶済み手続をロードするよう
    に構成されていることを特徴とする請求項7に記載の記憶済み手続のロードシス
    テム。
  11. 【請求項11】 前記プロセッサは、前記記憶済み手続をロードし、更に、
    スーパークラスとして分類されたクラスに対応する前記記憶済み手続をロードす
    るように構成されていることを特徴とする請求項7に記載の記憶済み手続のロー
    ドシステム。
  12. 【請求項12】 前記プロセッサは、前記記憶済み手続をロードし、更に、
    サブクラスとして分類されたクラスに対応する前記記憶済み手続をロードするよ
    うに構成されていることを特徴とする請求項7に記載の記憶済み手続のロードシ
    ステム。
  13. 【請求項13】 データベースに関連付けられる記憶済み手続のロード装置
    において、 オブジェクト指向アプリケーションに対応する複数のクラスに関連付けられる
    複数の記憶済み手続にアクセスするアクセス手段と、 前記クラス間の関係に基づいて前記記憶済み手続のシーケンスを決定するシー
    ケンス決定手段と、 前記シーケンスに基づいて前記記憶積み手続をロードするロード手段とを有す
    ることを特徴とする記憶済み手続のロード装置。
  14. 【請求項14】 前記ロード手段は、更に、 前記記憶済み手続のシーケンスを保持可能且つ前記オブジェクト指向アプリケ
    ーションによりアクセス可能な前記データベース内の最終記憶済み手続エリアを
    生成する生成手段と、 前記最終記憶済み手続エリア内に前記記憶済み手続をロードするロード手段と
    を有することを特徴とする請求項13に記載の記憶済み手続のロード装置。
  15. 【請求項15】 前記決定手段は、更に、前記オブジェクト指向アプリケー
    ション内で前記記憶済み手続が対応するクラスに基づいて当該記憶済み手続を分
    類する分類手段を有することを特徴とする請求項13に記載の記憶済み手続のロ
    ード装置。
  16. 【請求項16】 前記ロード手段は、更に、 他のクラスと関係を有するクラスに対応する前記記憶済み手続をロードするロ
    ード手段を有することを特徴とする請求項13に記載の記憶済み手続のロード装
    置。
  17. 【請求項17】 前記ロード手段は、更に、 スーパークラスとして分類されたクラスに対応する前記記憶済み手続をロード
    するロード手段を有することを特徴とする請求項13に記載の記憶済み手続のロ
    ード装置。
  18. 【請求項18】 前記ロード手段は、更に、 サブクラスとして分類されたクラスに対応する前記記憶済み手続をロードする
    ロード手段を有することを特徴とする請求項13に記載の記憶済み手続のロード
    装置。
  19. 【請求項19】 データベースに関連付けられる記憶済み手続をロードする
    ようにデータプロセッサを構成することができるプログラムコードを記録したコ
    ンピュータ読出可能な記憶媒体において、当該プログラムコードが、 オブジェクト指向アプリケーションに対応する複数のクラスに関連付けられる
    複数の記憶済み手続にアクセスするアクセス手順と、 前記クラス間の関係に基づいて前記記憶済み手続のシーケンスを決定するシー
    ケンス決定手順と、 前記シーケンスに基づいて前記記憶積み手続をロードするロード手順とを有す
    ることを特徴とするコンピュータ読出可能な記憶媒体。
  20. 【請求項20】 前記ロード手順は、更に、 前記記憶済み手続のシーケンスを保持可能且つ前記オブジェクト指向アプリケ
    ーションによりアクセス可能な前記データベース内の最終記憶済み手続エリアを
    生成する生成手順と、 前記最終記憶済み手続エリア内に前記記憶済み手続をロードするロード手順と
    を有することを特徴とする請求項19に記載のコンピュータ読出可能な記録媒体
  21. 【請求項21】 前記決定手順は、更に、前記オブジェクト指向アプリケー
    ション内で前記記憶済み手続が対応するクラスに基づいて当該記憶済み手続を分
    類する分類手順を有することを特徴とする請求項19に記載のコンピュータ読出
    可能な記録媒体。
  22. 【請求項22】 前記決定手順は、更に、他のクラスと関係を有するクラス
    に対応する前記記憶済み手続をロードするロード手順を有することを特徴とする
    請求項19に記載のコンピュータ読出可能な記録媒体。
  23. 【請求項23】 前記ロード手順は、更に、スーパークラスとして分類され
    たクラスに対応する前記記憶済み手続をロードするロード手順を有することを特
    徴とする請求項19に記載のコンピュータ読出可能な記録媒体。
  24. 【請求項24】 前記ロード手順は、更に、サブクラスとして分類されたク
    ラスに対応する前記記憶済み手続をロードするロード手順を有することを特徴と
    する請求項19に記載のコンピュータ読出可能な記録媒体。
JP2000525834A 1997-12-22 1998-12-21 オブジェクト指向データ依存性に対応するデータベース内の記憶済み手続をロードするための方法及び装置 Pending JP2001527241A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US6841597P 1997-12-22 1997-12-22
US09/106,190 US6243709B1 (en) 1998-06-29 1998-06-29 Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies
US60/068,415 1998-06-29
US09/106,190 1998-06-29
PCT/US1998/027239 WO1999032998A1 (en) 1997-12-22 1998-12-21 Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies

Publications (1)

Publication Number Publication Date
JP2001527241A true JP2001527241A (ja) 2001-12-25

Family

ID=26748957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000525834A Pending JP2001527241A (ja) 1997-12-22 1998-12-21 オブジェクト指向データ依存性に対応するデータベース内の記憶済み手続をロードするための方法及び装置

Country Status (5)

Country Link
EP (1) EP1040432B1 (ja)
JP (1) JP2001527241A (ja)
AU (1) AU1938699A (ja)
DE (1) DE69808797T2 (ja)
WO (1) WO1999032998A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007288804A (ja) * 2001-12-26 2007-11-01 Autodesk Inc 移動デバイスロケータシステム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039860B1 (en) 1999-10-01 2006-05-02 Netspinner Solutions As Creating web pages category list prior to the list being served to a browser
AU2001226401A1 (en) 2000-01-14 2001-07-24 Saba Software, Inc. Method and apparatus for a business applications server
AU2001283513A1 (en) * 2000-07-31 2002-02-13 Compoze Software, Inc. Reusable software component with flexible persistence mechanism
US6931630B1 (en) 2000-09-27 2005-08-16 International Business Machines Corporation Method of, system for, and computer program product for providing automatic identification of a computer program code candidate for web deployment or a stored procedure
EP1195676A3 (en) * 2000-10-03 2007-03-28 Microsoft Corporation Architecture for customizable applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007288804A (ja) * 2001-12-26 2007-11-01 Autodesk Inc 移動デバイスロケータシステム

Also Published As

Publication number Publication date
AU1938699A (en) 1999-07-12
WO1999032998A1 (en) 1999-07-01
DE69808797T2 (de) 2003-06-12
EP1040432A1 (en) 2000-10-04
EP1040432B1 (en) 2002-10-16
DE69808797D1 (de) 2002-11-21

Similar Documents

Publication Publication Date Title
US6243709B1 (en) Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies
US6374256B1 (en) Method and apparatus for creating indexes in a relational database corresponding to classes in an object-oriented application
US6279008B1 (en) Integrated graphical user interface method and apparatus for mapping between objects and databases
EP1042721B1 (en) Integrating both modifications to an object model and modifications to a database into source code by an object-relational mapping tool
US6101502A (en) Object model mapping and runtime engine for employing relational database with object oriented software
US7325007B2 (en) System and method for supporting non-native data types in a database API
US6163776A (en) System and method for exchanging data and commands between an object oriented system and relational system
US6341289B1 (en) Object identity and partitioning for user defined extents
US7769770B2 (en) Secondary index and indexed view maintenance for updates to complex types
JPH0644128A (ja) オブジェクト指向プログラミングを支援するデータベース管理システム及び方法
US7801882B2 (en) Optimized constraint and index maintenance for non updating updates
EP1121639A1 (en) Impact analysis of a model
US7548901B2 (en) System and method for delayed fetching of designated members of a user defined type
US20060218174A1 (en) Method for coordinating schema and data access objects
EP1040432B1 (en) Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies
US20060136373A1 (en) Systems and methods for plain old java object (POJO) retrieval
EP1000403A1 (en) An integrated graphical user interface method and apparatus for mapping between objects and databases
US7225201B1 (en) Extensible data type
Lin Object-oriented database systems: A survey
Java Introducing JDBC
Parsian Introducing JDBC
Kopecký et al. Towards the object persistence via relational databases
US20040230606A1 (en) Mechanism for enabling persistence of abstract and versioned dependent value objects
Munch et al. The EPOSDB Software Engineering Database
Wang Designing role-based view for object-relational databases