JPH0792778B2 - オブジエクト指向データベース管理システム - Google Patents

オブジエクト指向データベース管理システム

Info

Publication number
JPH0792778B2
JPH0792778B2 JP2230751A JP23075190A JPH0792778B2 JP H0792778 B2 JPH0792778 B2 JP H0792778B2 JP 2230751 A JP2230751 A JP 2230751A JP 23075190 A JP23075190 A JP 23075190A JP H0792778 B2 JPH0792778 B2 JP H0792778B2
Authority
JP
Japan
Prior art keywords
stream
persistent
database
data
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.)
Expired - Lifetime
Application number
JP2230751A
Other languages
English (en)
Other versions
JPH03138734A (ja
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
Application filed by インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH03138734A publication Critical patent/JPH03138734A/ja
Publication of JPH0792778B2 publication Critical patent/JPH0792778B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明はオブジエクト指向データベース管理システム、
より詳細に言えば、オブジエクト指向データベース管理
システムにおいて、長い処理時間を必要とせず且つ再使
用可能な問い合せを取り扱う処理方法及びその装置に関
する。
B.従来の技術 オブジエクト指向プログラミング・システム及びその処
理方法は、データ処理の分野の現状において多くの調査
対象となり、大きな関心が向けられている。オブジエク
ト指向プログラミングは、再使用可能で、且つ容易に拡
張可能なプログラムを与えるコンピユータ・プログラム
のパツケージ技術である。新しい機能的な要求や、新し
いタイプのデータに対して容易に適用することが出来な
い従来の機能的なプログラミング技術とは対照的に、オ
ブジエクト指向プログラムは、新しい要求が生じた時、
再使用可能で、拡張可能である。コンピユータ・ベース
のシステムが非常に複雑化してきたので、オブジエクト
指向プログラミングは多くの関心と調査の対象になつて
いる。
オブジエクト指向プログラミング・システムにおいて、
主な関心は機能ではなく、データに向けられている。オ
ブジエクト指向プログラミング・システムは多数の「オ
ブジエクト」で構成されている。1つのオブジエクトは
1つのデータ・ストラクチヤと、そのデータ・ストラク
チヤをアクセスすることの出来る1組の動作(オペレー
シヨン)、即ち、1組の機能(フアンクシヨン)を含ん
でいる。データ・ストラクチヤは「フレーム」として表
わすことが出来る。フレームは多くの「スロツト」を有
し、各スロツトはスロツト中のデータの「属性」を含ん
でいる。データの属性は、原始的なもの(プリミテイ
ブ)(即ち、完全体、またはストリング)または、他の
オブジエクトのインスタンス(instance)(以下に説明
する)のポインタである「オブジエクト・リフアレン
ス」(Object Reference)である。データ・ストラクチ
ヤをアクセスすることの出来る各動作(機能)は「メソ
ツド」(method)と呼ばれる。
第1図はフレームがそのメソツドに取り囲まれているオ
ブジエクトの模式的な表示図形を示している。第2図は
オブジエクトの1例を示しており、この例におけるデー
タ・ストラクチヤは従業員のデータと、このデータ・ス
トラクチヤを取り囲む複数個のメソツドとに関してい
る。例えば、1つのメソツドは従業員の年齢を取り出す
ものである。通常、定義された各オブジエクトは幾つか
の「インスタンス」(instance)中に表示されている。
各インスタンスはオブジエクトの特定の例に対して特定
のデータ・ストラクチヤを含んでいる。例えば個人であ
る従業員の氏名、ジヨイス・スミス(Joyce Smith)は
「従業員」オブジエクトのインスタンスである。
オブジエクト指向プログラミング・システムは、柔軟性
を有し、且つ再使用可能なプログラムが作成出来る2つ
の主要な特性を与える。これらの特性は「取り囲み」
(encapsulation)及び「継承」(inheritance)と呼ば
れる。第1図から判るように、フレームはそのメソツド
(機能)によつて取り囲まれている。コードの壁はデー
タの各部分を取り囲んで位置付けられている。すべての
フレームのアクセスは、取り囲んでいるメソツドによつ
て処理される。オブジエクトのデータ・ストラクチヤや
そのメソツドによつてのみアクセスされるので、データ
は独立して与えられる。関連したメソツドだけが内部の
データ・ストラクチヤを知つている。このことはデータ
の一慣性(integurity)を保証する。
オブジエクト指向プログラミング・システムの「継承」
の特徴は、オブジエクトの新しいスーパークラス(上位
クラス)及びサブクラス(下位クラス)を作成するため
に前に書かれたプログラムを拡張することが出来ること
である。新しいオブジエクトが事前に存在するオブジエ
クトに対してどのように相異しているかに応じて、新し
いオブジエクトが記載されるおで、新しいタイプのデー
タ、または新しい機能を処理するために、新しいプログ
ラム全体を書く必要はない。
第3図は継承の特性を示している。図を容易に理解する
ために、オブジエクトは、円ではなく、矩形の上部にオ
ブジエクト名を持つ矩形として示されており、フレーム
はオブジエクト名の下にあり、そしてメソツドはフレー
ムの下にある。第3図を参照すると、3つのオブジエク
ト・クラスは「セールスマン」、「従業員」及び「人
間」について記載されており、この中で、セールスマン
は従業員の「範疇」(kind of)であり、従業員は人間
の「範疇」であるとして示されている。換言すれば、セ
ールスマンは従業員のサブクラスであり、従業員はセー
ルスマンのスーパークラスであるということである。同
様に、従業員は人間のサブクラスであり、人間は従業員
のスーパークラスである。図示された各クラスは3つの
インスタンスを含んである。B.ソーター、W.チツプ及び
B.G.ブルーはセールスマンである。B.アブラハム、K.イ
エーツ及びR.ムーアは従業員である。J.マツケンロー、
R.ナダー及びR.リーガンは人間である。換言すれば、イ
ンスタンスは「××である」関係によつてそのクラスに
関連付けられていると言うことである。
各サブクラスはフレーム及びそのスーパークラスのメソ
ツドを「継承」する。従つて、例えばセールスマンのフ
レームは年齢及び採用年月日オブジエクトと、従業員サ
ブクラスからの昇進のメソツドとを継承する。また、セ
ールスマンはそれ独自のコータ(quota)の属性と、奨
励金支払のメソツドとを含んでいる。各インスタンスは
そのスーパークラスのすべてのメソツド及びフレームを
アクセスすることが出来るので、例えばB.G.ブルーを昇
進することが出来る。
オブジエクト指向システムにおいて、高いレベルのルー
チンは、オブジエクトに何をするかを知らせる「メツセ
ージ」をオブジエクトに送ることによつて、そのオブジ
エクトのメソツドの1つを遂行するためにオブジエクト
に対して要求を行う。受取つたオブジエクトは、メツセ
ージ名により指定されたメソツドを選び、そして、その
メソツドを実行することによつてメツセージに応答し、
その後、メソツドを実行した結果と共に、呼出した高い
レベルのルーチンに制御を戻す。
オブジエクト指向プログラミング・システムは、大きな
データベースに動作する能力を持ち、しかも拡張可能
で、再使用可能なデータベース管理システムとして使用
することが出来る。オブジエクト指向データベース管理
システムにおいて、オブジエクトのインスタンスがデー
タベース中のデータであるように、データベース中のデ
ータは、オブジエクトの項目内に組織化され取り囲まれ
る。同様に、1方のオブジエクトから他方のオブジエク
トへメツセージを送ることによつて、データベースの管
理動作が遂行されるように、データベース・マネージヤ
は、1組のオブジエクトとして組織化される。目標のオ
ブジエクトはそのメソツドを用いたオブジエクトの属性
に要求されたアクシヨンを遂行する。
オブジエクト指向データベース管理システムにおいて、
データベースの問い合せは「ストリーム」と呼ばれるオ
ブジエクトを発生する。ストリームの属性は、問い合せ
を満足するオブジエクトのクラス中のすべてのオブジエ
クトの名前(または、他の識別子)のリストを含んでい
る。換言すれば、ストリームの属性はサーチ・クライテ
リア(search criteria)(検索の基準)を満足するク
ラスのサブセツトのリストを含んでいると言うことであ
る。また、関連した記述的な情報は属性中に含ませるこ
とが出来る。
この道の専門家には明らかなように、非常に大きなデー
タベースの問い合せは長い時間を費す可能性が高い。例
えば、1つの問い合せは、サーチ・クライテリアを満足
させる20個のインスタンスを見出すために、百万個のイ
ンスタンスを持つオブジエクト・クラスをサーチする必
要のある場合がある。データベース・システムは、長時
間を必要とする問合せが遂行されている時に、他の問い
合せのためには使用することが出来ないから、不幸にし
て、そのような長時間を要する問い合せは、データベー
ス・システムの利用可能性を制限することになる。
また、この道の専門家には明らかなように、多くのデー
タベースの問い合せの結果は将来の使用のために維持さ
れねばならない。若し、問い合せの結果が度々使用され
るならば、同じ結果を得るために繰り返して何遍も問い
合せ動作を行うことは望ましくない。問い合せを遂行し
ている動作中、データベースを使用不能にするような長
時間を必要とする問い合せの場合に、特にこのことが当
て嵌まる。
C.発明が解決しようとする課題 従つて、本発明の目的は、オブジエクト指向データベー
ス管理システムにおいて、問い合せを遂行するための方
法及び装置を提供することにある。
本発明の他の目的は、オブジエクト指向データベース管
理システムにおいて、長時間を要する問い合せ動作を回
避する方法及び装置を提供することにある。
本発明の他の目的は、オブジエクト指向データベース管
理システムにおいて、再使用可能な問い合せを遂行する
方法及び装置を提供することにある。
D.課題を解決するための手段 「持続性ストリーム」(persistent stream)と呼ばれ
る新規なオブジエクト・クラスによつて本発明の目的が
達成される。持続性ストリーム・クラスはストリーム・
クラスのサブクラスなので、従つて、それはストリーム
・クラスのすべての属性及びメソツドを継承する。然し
ながら、持続性ストリーム・クラスはストリーム・クラ
ス中には含まれていないメソツドを含んでいる。持続性
ストリームのメソツドは継承する能力を与える。持続性
ストリームは、データベースの問い合せの結果を保存す
るための「保存」(save)メソツドを含んでいる。
本発明の持続性ストリームは、問い合せの結果を保存す
る能力を有しており、しかも、通常のストリームについ
て定義されているメツセージを送つた時、すべての点か
ら言つて通常のストリームと同じである。その結果、持
続性ストリームは、結果として、ストリームを受け取る
よう期待されたすべてのメツセージによつて変数として
使用することが出来る。然しながら、問い合せが、持続
性ストリームをそのオブジエクトとして指名した時、そ
の問い合せは、背景モード、またはバツチ・モードにお
いて遂行され、そして、それらの結果は、結果が必要と
されるまで、保存される。従つて、長時間を必要とする
問い合せは開始した後、背景モードにおいて遂行し、そ
して結果を保存する。持続性ストリームが後でアクセス
される場合、問い合せが直ちに遂行されたとしても、ま
たは、問い合せが前に遂行され保存されたとしても、持
続性ストリームは、メツセージをアクセスすることに対
して透明である。持続性ストリームは、問い合せの結果
を再使用する必要がある場合にも利用することが出来
る。この場合にも、メツセージは、持続性ストリームを
アクセスすることが出来、そして、問い合せが直ちに遂
行されたとしても、または、問い合せが前に遂行され、
保存されていたとしても、持続性ストリームはメソツド
をアクセスすることに対して透明である。
本発明に従つたオブジエクト指向データベース・マネー
ジヤはストリーム・クラス及び持続性ストリーム・クラ
スを含んでいる。ストリーム・クラスはストリームの属
性及びストリームのメソツドとを有するオブジエクト・
クラスであり、ストリームの属性は予め決められている
問い合せクライテリアを満足させるデータベース・オブ
ジエクトのリストであり、ストリームのメソツドは、ス
トリームのインスタンスを作成し、オープン(開始)
し、取り出し、終了し及び削除するメソツドを含んでい
る。持続性ストリーム・クラスはストリーム・クラスの
サブクラスであるから、それはストリームの属性及びス
トリームのメソツドを継承する。更に、持続性ストリー
ム・クラスの属性は、サーチ・クライテリアと、サーチ
の結果が保存されたか否かを表示するフラグと、サーチ
結果の位置を示す標識とを含んでいる。持続性ストリー
ム・クラスはデータベースの動作結果を保存するための
「保存」メソツドを含んでいる。
動作において、このデータベース・マネージヤは、デー
タ・オブジエクトのデータベースに対して遂行されるべ
き問い合せを受け取り、そして、問い合せの結果が保存
されるべきか否かに関して決定が行われる。この決定が
オブジエクト指向データベース・マネージヤの一部とし
てか、またはそれに関連して実行するアプリケーシヨン
・プログラムによつて行われることは、この道の専門家
には自明であろう。若し、問い合せが直ちに遂行される
べきであり、その結果が再使用のために保存される必要
がなければ、問い合せのメツセージはストリーム・クラ
スに送られる。他方、若し、問い合せが直ちに遂行され
るべきでなく、或は若し、結果が再使用のために保存さ
れる必要があるならば、データベース・マネージヤは持
続性ストリーム・クラスに問い合せメツセージを送る。
問い合せの結果が背景モードにおいて遂行され、且つ、
例えば非揮発性ストレージ装置中のシーケンシヤル・デ
ータ・セツトのような形式で、保存される場合を除い
て、持続性ストリーム・クラスは、ストリーム・クラス
と全く同じに問い合せを遂行する。
従つて、問い合せ機能は、持続性ストリームでも、また
は非持続性ストリームの何れでも任意に作成することが
出来る。充分な量のシステム・リソースが利用可能であ
る場合には、持続性ストリームは背景モードにおいて作
成することが出来るから、ユーザは自由に他の仕事をす
ることが出来る。仕事を行うプロセスは、通常のストリ
ームでも、あるいは持続性ストリームの何れにでも与え
ることが出来る。持続性ストリームはオープン・メソツ
ド、取り出しメソツド、終了メソツド及び削除メソツド
に対して非持続性ストリームと同じに応答するので、ス
トリームのタイプはオブジエクト指向データベース管理
システムのユーザに対して全体として透明である。
E.実施例 本発明の実施例を示す添付図面を参照して、本発明を以
下に詳細に説明する。然しながら、本発明は図示の実施
例にのみ限定して解釈されるべきではない。添付図面中
において、同様な素子には同じ参照数字を使用して説明
の冗長を避けている。
オブジエクト指向データベース管理システム オブジエクト指向コンピユータ・システムにおいて、仕
事は、データを含む(取り囲む)(encapsulate)オブ
ジエクトに対してアクシヨンを要求するメツセージを送
ることによつて達成される。オブジエクトは、データに
対して要求されたアクシヨンを、予め定義されているメ
ソツドに従つて遂行する。アクシヨンのリクエスター
(raquester)は、実際のデータがどのような形式であ
るかとか、オブジエクトがデータをどのように処理する
かを知る必要がない。
オブジエクト・クラスは、データのタイプ及びデータの
意味と、オブジエクトが受けるアクシヨン要求(メツセ
ージ)とを定義する。データを含む個々のオブジエクト
は、インスタンス・クラスと呼ばれる。通常、インスタ
ンス・クラスは実務上の事柄に関連している。以下の例
において、インスタンス・クラスとして「部分品」の例
を用いる。1つの部分品のデータのエレメント(スロツ
ト)は部品番号、部品の状態及び部品のタイプである。
このインスタンス・クラスは個々の部分品を表わし、夫
々のインスタンスはそれ自身の部品番号、部品の状態及
び部品のタイプについての情報を表わしている。要求さ
れたアクシヨンを遂行するプログラムはメソツド・クラ
スと呼ばれる。
オブジエクト・クラスは他のクラスのサブクラスである
ように定義することが出来る。サブクラスは親のクラス
のすべてのデータの特性及びメソツドを継承する。サブ
クラスは付加的なデータ及びメソツドを加えることが出
来、そして、それらは親のクラスの任意のエレメント、
またはメソツドを超越する(再定義する)ことが出来
る。殆どのメツセージはオブジエクトのインスタンスに
送られるけれども、新規のインスタンスを作成すること
を要求したメツセージは、他のオブジエクト・クラスに
送られる。そしてオブジエクト・クラスは、新規のイン
スタンスを作成し、そして、そのオブジエクトを認知す
るためのオブジエクト識別子を返還する。
アクシヨンを要求したセンター(sender)は、メツセー
ジを送るためのオブジエクトの正確なクラスを知る必要
はない。目標のオブジエクトがメツセージを処理するた
めのメソツドを定義するか、または、目標のオブジエク
トがそのようなメソツドを定義する親クラスを持つてい
るかの何れかである限り、メツセージは、そのクラス、
またはその親クラス中のオブジエクトのインスタンス及
びメソツド中のデータを使用して処理される。メツセー
ジは、そのメツセージの直接の親である必要はなく、親
の親、親の親の親、等々であつてよい。メソツドのセン
ダーは受取つたオブジエクト識別子を持つだけでよい。
オブジエクト指向プログラミングのこの特長は「継承」
(inheritance)と呼ばれる。継承の特長は本発明に使
用される。
第4図を参照すると、オブジエクト指向データベース管
理システム10が示されている。管理システム10はメーン
・フレーム・コンピユータ、または、ミニコンピユー
タ、即ちパーソナル・コンピユータであるデータ・プロ
セツサ11を含んでいる。複数のユーザを有する大型のデ
ータベースの場合には、通常、メーン・フレーム・コン
ピユータが用いられる。この道の専門家には明らかであ
るように、データ・プロセツサ11はアクテイブ・データ
及び中間的な結果のための実行用の記憶装置を与えるた
めに、通常、ランダム・アクセス・メモリ(RAM)であ
る揮発性のデータ・ストレージ装置13を含んでいる。デ
ータ・プロセツサ11の電源がオフにされた時とか、また
は、新しいユーザのセツシヨンがオープンされた時に
は、RAM13中のデータは消失する。また、システム10は
オブジエクトを永久的に記憶するための非揮発性データ
・ストレージ装置14を含んでいる。装置14は直接アクセ
ス・ストレージ装置(DASD、即ちデイスク・フアイ
ル)、磁気テープ装置、消去可能な光デイスク、または
公知の他の同様な装置である。本明細書において、非揮
発性データ・ストレージ装置14は「データベース」と同
じ意味として扱うことが出来る。また、揮発性データ・
ストレージ装置13は「メモリ」と呼ばれる。陰極線管デ
イスプレー、または他のデイスプレー、そしてキーボー
ドを含むデイスプレー装置15も示されている。
オブジエクト指向データベース・マネージヤの形式のオ
ブジエクト指向プログラム12はデータ・プロセツサ11中
に含まれている。オブジエクト指向データベース・マネ
ージヤは、例えば「C」言語、または「スモールトー
ク」(smalltalk)ランゲージ、またはそのバリエーシ
ヨン、またはフオートラン、またはコボルなどの通常の
プログラム・ランゲージなどのオブジエクト指向ランゲ
ージでプログラムすることが出来る。オブジエクト指向
データベース・マネージヤのデザインは、オブジエクト
指向プログラミング・システムの分野の専門家には公知
であり、以下に簡単に述べる。
第5図を参照すると、オブジエクト指向プログラム(第
4図の12)の主コンポーネントを以下に説明する。オブ
ジエクト指向プログラムのデザイン及び動作のより詳細
な説明は1988年にプレンテイス・ホール(Prentice Hal
l)で刊行されたメーヤー(B.Meyer)の「オブジエクト
指向ソフトウエアの構造」(Object Oriented Software
Construction)と題する刊行物に記載されている。
第5図を参照すると、オブジエクト指向プログラム12は
3つの主要な構成要素、メツセンジヤ51、オブジエクト
管理テーブル52及びロードされたクラスのテーブル(以
下、ローデツト・クラスのテーブルと言う)53とを含ん
でいる。メツセンジヤ51は呼び出したメツセージ及び呼
び出されたメツセージと、オブジエクト管理テーブル52
と、ローデツド・クラスのテーブル53との間のコミユニ
ケーシヨンを制御する。オブジエクト管理テーブル52は
すべてのアクテイブなオブジエクト・インスタンスに対
するポインタのリストを含んでいる。ローデツド・クラ
スのテーブル53はアクテイブなオブジエクト・クラスの
すべてのメソツドに対するポインタのリストを含んでい
る。
オブジエクトのメソツドA(ブロツク54)がオブジエク
トのメソツドB(ブロツク55)へメツセージを送る第5
図に示された例を参照して、オブジエクト指向プログラ
ム12の動作を説明する。メソツドAはメツセンジヤ51を
呼び出すことによつて、メソツドBにメツセージを送
る。このメツセージは、(1)メツセージを受け取るた
めのオブジエクト・リフアレンスのインスタンスと、
(2)要求されたオブジエクト・インスタンスの取り囲
みを行うデータに対して動作するためのメソツドと、
(3)受け取つたメソツドによつて必要とされるすべて
のパラメータを含んでいる。メツセンジヤ51は、オブジ
エクト・インスタンスのオブジエクト管理テーブル52を
サーチすることによつて、メソツドAにより特定される
オブジエクト・インスタンスのデータ・フレーム56に対
するポインタを取り出す。若し、特定されたオブジエク
トのインスタンスを見出すことが出来なかつたならば、
オブジエクト管理テーブル52はテーブルにそのオブジエ
クト・インスタンスを加え、そして、データベースから
そのデータをマテリアライズ(materialize)するため
にインスタンスを呼び出す。インスタンスのテーブルに
加えられた後は、オブジエクト管理テーブル52はマテリ
アライズされたオブジエクト・インスタンスにポインタ
を戻す。
次に、メツセンジヤ51はローデツド・クラスのテーブル
53からメソツドBのアドレスを取り出す。若し、インス
タンス・クラスがロードされていなければ、ローデツド
・クラスのテーブル53は、そのデータをマテリアライズ
するために、この時点でそれをロードする。ローデツド
・クラスのテーブル53は特定されたメソツド(メソツド
B)のためのサーチを行い、そしてメツセンジヤ51にそ
のメソツドのアドレスを戻す。
その後、メツセンジヤ51はメソツドBを呼び出して、ポ
インタと、メソツドAにより行われた呼び出しのパラメ
ータとをシステム・データの領域に送る。メソツドB
は、ポインタを使用してデータ・フレーム56をアクセス
する。その後、メソツドBはメツセンジヤ51に制御を戻
し、これはメソツドAに制御を戻す。
オブジエクトは持続性のものか、または非持続性のもの
である。持続性オブジエクトは非揮発性のデータ・スト
レージ装置14中にストアされているデータを構成し、そ
のデータは、持続性オブジエクトの識別子によつて参照
された時に、プロセツサのストレージ(RAM13)に導入
される。すべてのオブジエクト・データが持続性状態に
あることを、任意のメソツドが決定した時に、揮発性デ
ータ・ストレージ装置13中のデータは、非揮発性データ
・ストレージ装置14に書き戻される。これは「コミツテ
イング」(commiting)データと呼ばれる。例えばIBMの
DB2のような通常のデータベース・システムにおいて、
すべてのデータの変更はこれを同時に反映されるのを保
証するためにコミツト機能を含んでいる。非持続性オブ
ジエクトは、データを永久に保存する必要がないデータ
であり、従つてDASD14にはストアされない。
ストリーム 本発明は「ストリーム」と呼ばれるオブジエクト・クラ
スに関している。ストリームは、オブジエクトの任意の
与えられたクラス中のすべてのオブジエクトの識別子の
リストであり、更に加えて、オブジエクト・クラスの各
メンバについての或る種の関連した記述的な情報を含ん
でいる。通常、この記述的な情報は下位のオブジエクト
の少数の属性だけを表わしており、プリントされるリポ
ートとか、またはターミナル15の対話パネル上に表示さ
れるリストとかに使用される。第6図は「部品番号」の
ストリームの例を示している。ストリーム中のオブジエ
クト識別子(OID)はストリームのサーチ・クライテリ
アに適合する実際のオブジエクトの夫々のオブジエクト
識別子である。
ストリームはデータベース(例えば、リレーシヨナル・
データベース)への問い合せによつて作成される。通常
の問い合せは、ストリームがサーチ・クライテリアを満
足させるクラスのサブセツトのリストであるようなサー
チ・クライテリアを含んでいる。クラスのサブセツトの
作成は、クラスの数が非常に多い場合、または、サーチ
・クライテリアが非常に複雑な場合には、非常に長い処
理時間を必要とする。
従来のストリームは非持続性オブジエクトであつた。非
持続性オブジエクトは持続性オブジエクトの或る種のク
ラスのデータの要約を表示しており、従つて、持続性オ
ブジエクトの或る種のクラスのデータはデータベースの
下位にある。従つて、ストリーム中のデータは選択クラ
イテリアに合致する次のレコードのためのデータベース
に対する要求を繰り返すことによつて形成される。下位
のデータベース・システムによつて与えられるストリー
ムの長さ制限を除いて、ストリームの寸法には制限はな
い。代表的なストリームは下記のようなメソツドを含ん
でいる。
作成(create)メソツド ストリーム・オブジエク
トの骨組みを作成し、そして、リクエスター(requeste
r)にストリームの識別子を戻す。それは問い合せられ
たオブジエクト・クラスのサブセツトを作成するのに用
いられるすべてのサーチ・クライテリアを変数として受
け取る。ストリームの構造を要求するための代表的なメ
ツセージは、 mystream.CREATKE(criterial,criteria2,……,return_
code) であり、この場合の各値は以下の通りである。
mysteram この例の場合について任意に「mystream」と
名付けられた変数であり、これは、例えば mystream:type is part_number_stream; (mystream:タイプは部品、番号、ストリームであ
る。) によつて必要とされるストリーム・クラスの変数である
と宣言される。
criterial、など ストリームの特定のタイプのために
定義されたサーチ・クライテリアである。
return_code 除外(exception)が生じたか否かを表
示するための変数である。
「作成」メソツドが遂行される時に、サーチ・クライテ
リアをストア(記憶)し、任意の他にストリームの状態
情報を保存するための揮発性ストレージ(RAM)のよう
なストリーム・オブジエクトのリソースが割当てられ
る。
オープン(open)メソツド ストリームは現在使用され
るであろうことを表示し、そして、所望のデータ・レコ
ードをアクセスするのに必要とされる何らかの活動をス
トリームに遂行させる。ストリームをオープンするため
の代表的なメツセージは、 mystream.OPEN(return_code) であり、この場合の各値は以下の通りである。
mystream「作成」によつて返還されたストリームのオブ
ジエクト識別子。
return_code 何らかの除外が発生したか否かを表示す
る変数。
「オープン」メソツドが呼び出された時、データベース
のこの部分についての他のユーザを締め出して、データ
ベースのリソースがこのストリームに割当てられる。
取り出し(get)メソツド ストリームの次のレコード
をリクエスターに戻す。レコードを取出す代表的なメツ
セージは、 mystream.GET(stream_element,retun_code) であり、この場合の各値は以下の通りである。
mystream 「作成」によつて戻されたストリームのオブ
ジエクト識別子。
stream_element 第6図に示されたストリームの1つの
行のように、特定のタイプのストリームの1つの行を表
わすタイプを定義する変数。
return_code 何らかの除外が発生したか否かを表示す
る変数。ストリームの終り(エンド・オブ・ストリー
ム)はそのような除外の1つである。
「取り出し」メソツドが呼び出された時、非揮発性スト
レージ装置14(第4図)中の実際のデータベースがサー
チされ、そしてメモリ(RAM13)に導入される。
終了(close)メソツド データベースを解放し、そし
て、ストリームからストリーム位置(現在のレコード番
号)のコンセプトを除去する。その結果、若し、終了さ
れたストリームが後で再オープンされるならば、それは
「次の」レコードではなく、最初からオープンされる。
ストリームを終了するための代表的なメツセージは以下
の通りである。
mystream.CLOSE(return_code) であり、この場合の各値は以下の通りである。
mystream 「作成」によつて戻されたストリームのオブ
ジエクト識別子。
return_code 何らの除外が発生したか否かを表示する
変数。
「終了」メソツドが呼び出された時、データベースのリ
ソースは自由にされる。
削除(delete)メソツド ストリームによつてオープン
されたすべてのリソースを解放する。ストリームを削除
する代表的なメツセージは以下の通りである。
mystream.DELETE(return_code) であり、この場合の各値は以下の通りである。
mystream 「作成」によつて戻されたストリームのオブ
ジエクト識別子。
return_code 何らの除外が発生したか否かを表示する
変数。
「削除」メソッドが呼び出された時、RAM中のオブジエ
クトのリソースは自由にされ、そして、ストリームのオ
ブジエクト識別子はその後は有効でない。
第1の例−−持続性ストリームを持たないデータベース
の問い合せ 本発明の持続性ストリームを使用しないデータベースの
問い合せが以下に説明される。「作成」動作は問い合せ
をオープン(開始)する。通常、「作成」動作は、対話
の仕事のような仕事を一括する機能(work-gathering f
unction)によつて要求される。従つて、結果のストリ
ームはストリームを処理する機能(リストのパネルを作
成する、リポートをプリントする、照合する、等々)に
通される。ストリームを処理する代表的な1つの例は、
第7図に示されたようなデイスプレー・ターミナル15の
1対の対話用のパネルを含んでいる。
第7図において、第1の対話パネルがターミナルのユー
ザに対してサーチ・クライテリアの選択を要求している
ことが示されている。この例において、ユーザは「部品
番号」及び「部品の状態」の情報を入力しなかつたけれ
ども、サーチの対象として、「部品のタイプ」の項目に
「プラスチツク」を入力したものと仮定する。ユーザの
この入力は、プラスチツクのすべてのタイプの部分品の
サーチを要求したことになる。第1の対話パネルはスト
リームを作成し、以下サーチ・クライテリアを通す。
mystream.CREATEK(***,***,*Plastic*,myrcode) アスタリスクは最初の2つのサーチ・クライテリアの値
のすべてが要求されていることを表示するための万能の
切札的の記号(wildcard character)として使用され
る。この時点で、ストリームは、ストリームのオブジエ
クトに割当てられたストレージ(RAM)中にサーチ・ク
ライテリアを記憶する。第1の対話パネルは第2の対話
パネルを呼び出して、第2の対話パネルに、以下のよう
なストリームのオブジエクト識別子を通す。
pane12.CREATE(mystream) 第7図を再度参照して説明を続けると、第2の対話パネ
ルは、ストリームを「オープン」し、そして、特定のア
プリケーシヨンに従つて、ユーザが操作するオブジエク
ト(編集、削除、プロモート、プリント、等々)のリス
トを作成するための「取り出し」機能を使用する。「オ
ープン」メソツドはデータベースに結合し、そして、サ
ーチされるべきデータと、サーチに使用されるクライテ
リアとを識別する。
mystream.OPEN(myrcode) 下記の「取り出し」メソツドは、データベース中のレコ
ードを検索する。
mystream.GET(mybuffer,myrcode) この「取り出し」メソツドは、若し、サーチ・クライテ
リアを満足させる比較的少ないレコードを取り出すため
に、データベースの膨大なレコードをサーチする必要が
あるならば、大きな時間を費す可能性がある。
「取り出し」メソツドがデータベース中のレコードを検
索した後に、ユーザは、第2の対話パネルに表示された
仕事を遂行することが出来る。ユーザはオブジエクトの
リストをスクロールすることが出来るので、例えばスト
リームに、より多くの「取り出し」要求を発生させるこ
とが出来る。ユーザがパネル上にリストされたオブジエ
クトにコマンドを送つた時、下位のオブジエクトのオブ
ジエクト識別子は、下位のオブジエクトにアクシヨン要
求を送るために使用される。下位のオブジエクトを位置
付けるだけにしか使用しないユーザに対しては、これら
のオブジエクト識別子が理解出来るように意図されてい
ないから、通常、これらのオブジエクト識別子はユーザ
に表示されない。下記のように、ユーザが第2のパネル
を使わないことを選択した時、第2の対話はデータベー
スのリソースを解放するためにストリームを「終了」す
る。
mystream.CLOSE(myrcode) 次に、第2の対話パネルは、第1の対話パネルにあるイ
ンボーカー(invoker)に戻る。
第1の対話パネルがストリームを作成したので、以下の
ように第1の対話パネルは、オブジエクトのリソースを
自由にするためにストリームを「削除」しなければなら
ない。
mystream,DELETE(myrcode) ユーザは、同じ問い合せ、または異なつた問い合せによ
つて上述した処理を繰り返すことが出来るし、または、
ユーザは、この対話パネルをインボーカーに戻すため
に、パネルの使用を終了することが出来る。
持続性ストリーム 本発明の持続性ストリーム・クラスを以下に説明する。
持続性ストリーム・クラスは、問い合せの結果を保存す
能力を持つストリームと同じオブジエクト・クラスであ
り、更に通常のストリームの仕様に定義されているアク
シヨン要求を送つた時、通常のストリームと同じように
現われる。持続性ストリーム・クラスはストリームのす
べての特性を持つており、持続性オブジエクトとして保
存することも出来る。オブジエクト指向と言う言葉の意
味の範囲内で、持続性ストリームはストリームのサブク
ラスであり、それはストリームのすべての属性と、スト
リームのメソツドを継承し、更にその上に、付加的な機
能、即ち持続する能力が与えられている。
本発明の持続性ストリームは、通常のストリームを受取
ることが出来るアプリケーシヨンによつて使用すること
が出来るが、併し、長時間を必要とするデータベースの
問い合せは背景(バツチ)モードの環境において遂行さ
れる。また、持続性ストリームは対話的(前景の)モー
ドの環境において遂行される問い合せのために使用され
るが、但し、問い合せの結果は将来において再使用され
るよう保存されねばならない。
持続性ストリームは通常のストリームと同じメソツド
と、「保存」(save)と呼ばれる新しいメソツドとを含
む。持続性ストリームのためのメソツドは次のように定
義される。
作成メソツド 持続性ストリームは通常のストリームと
同じように「作成」メツセージに応答する。
mystream.CREATE(criterial,criteria2,……,ruturn_c
ode) 但し、可変の「mystream」が下記のような要求持続性ス
トリーム・クラスとして宣言された場合を除く。
mystream:type is part_number_persestent_stream;(m
ystream:タイプは部品_番号_持続性_ストリームであ
る。) 「作成」メソツドは持続性オブジエクトを作成し、そし
てデータベース中にそのオブジエクトをストアする。こ
の持続性オブジエクトは、サーチ・クライテリアを保存
することと、「保存」の処理が行われたか否かというこ
とと、問い合せの結果が保存された位置を記憶すること
とのために用いられる。問い合せの結果は、例えばシー
ケンシヤル・データのストレージ装置14(第4図)のよ
うなシーケンシヤル・データの任意の非揮発性のストレ
ージ媒体中に蓄積することが出来る。第8図は、たつた
今、作成された持続性ストリームを示しており、そのオ
ブジエクト識別子は「mystream」中にある。持続性スト
リームのオブジエクトは後で見付けることが出来るよう
に識別子が割当てられ記憶される。サーチ・クライテリ
アはストアされ、そしてフラグは「保存」が行われない
ことと、シーケンシヤル・データ・セツトはないことと
を表示する。
保存メソツド すべての問い合せを遂行し、そしてシー
ケンシヤル・データ・セツト中に結果を保存する。この
メソツドは持続性ストリームのための新規なメソツドで
ある。ストリームを保存する代表的なメツセージは、 mystream.SAVE(return_code) であり、その各値は以下の通りである。
mystream 「作成」によつて戻されたストリームのオブ
ジエクト識別子。
return_code 除外が発生したか否かを表示するための
変数。
「保存」動作の前に、持続性ストリームは第8図に示し
たように現われる。「保存」メソツドは、シーケンシヤ
ル・データ・セツトを割当て、そして、持続性ストリー
ムのオブジエクト中にその名前(または他の識別子)を
置く。次に、「保存」メソツドは通常のストリームの
「オープン」メソツドと同じ動作を遂行し、問い合せの
データベースに結合する。次に、それは、次の問い合せ
レコードを取り出すために、データベースからの繰り返
えされた「取り出し」メソツドを遂行し、そして、その
レコードをシーケンシヤル・データ・セツトに書き込
む。繰り返えされた「取り出し」メソツドは、最後の問
い合せレコードが取り出されたことをデータベースが表
示するまで遂行される。「保存」メソツドはシーケンシ
ヤル・データを終了させ、そして、「保存」動作が終了
したことを表示するために、持続性ストリームのオブジ
エクトに識別子をセツトする。持続性ストリーム及びシ
ーケンシヤル・データ・セツトは第9図に示したように
現われる。
「オープン」(開始)メソツド 持続性ストリームは通
常のストリームと同じように「オープン」メツセージに
応答する。
mystream.OPEN(return_code) 若し、「保存」動作がこの持続性ストリームのインスタ
ンスに対して遂行されたならば、「オープン」メソツド
は、データベースの代りにシーケンシヤル・データ・セ
ツトに結合し、従つて、あらゆるデータベースのリソー
スに結び付かず、他のユーザを締め出すことはない。若
し、「保存」動作がこの持続性ストリームに対して遂行
されたならば、「オープン」メソツドは、通常のストリ
ームの場合と同様に動作して、データベースに結合す
る。
「取り出し」メソツド 持続性ストリームは通常のスト
リームと同じように「取り出し」メツセージに応答す
る。
mystream.GET(return_code) 若し、「保存」動作がこの持続性ストリームのインスタ
ンスに対して遂行されたならば、「取り出し」メソツド
は、データベースの代りにシーケンシヤル・データ・セ
ツトから読取られる。通常、これはデータベースの取出
しよりも費される合計時間が遥かに少ない。若し、「保
存」動作がこの持続性ストリームに遂行されなかつたな
らば、「取り出し」メソツドは、通常のストリームの場
合と同様に動作して、データベースから取出される。
「終了」メソツド 持続性ストリームは通常のストリー
ムを同じように「終了」メツセージに応答する。
mystream.CLOSE(return_code) 若し、「保存」動作がこの持続性ストリームのインスタ
ンスに対して遂行されたならば、「終了」メソツドはこ
の持続性ストリームのインスタンスをデータベースから
切り離すのではなくシーケンシヤル・データ・セツトか
ら切り離す。若し、「保存」動作がこの持続性ストリー
ムに遂行されなかつたならば、「終了」メソツドは、通
常のストリームの場合と同様に動作して、データベース
のリソースを切り離す。
削除メソツド 持続性ストリームは通常のストリームと
同じように「削除」メツセージに応答する。
mystream.DELETE(return_code) 若し、「保存」動作がこの持続性ストリームのインスタ
ンスに対して遂行されたならば、「削除」メソツドはシ
ーケンシヤル・データ・セツトを削除し、次に持続性ス
トリームのオブジエクトのリソースがそれ自身を削除す
る。若し、「保存」動作がこの持続性ストリームに遂行
されなかつたならば、「削除」メソツドは、通常ストリ
ームの場合と同様に動作して、持続性ストリームのオブ
ジエクトのリソースを削除する。この時点で、オブジエ
クトのリソースは自由に解放され、そしてストリームの
オブジエクト識別子は、その後、有効ではなくなる。
第2の例−−持続性ストリームを有するデータベースの
問い合せ 本発明が従来のストリームを越えた利点を有しているこ
とを説明するために、持続性ストリームを使用した第7
図のデータベースの問い合せの動作を以下に説明する。
第7図に示されているように、第1の対話パネルは、タ
ーミナル・ユーザから、選択クライテリアを要求し、そ
して、ストリームを「作成」し、同じサーチ・クライテ
リアを通す。
mystream.CREATEK(*******Plastic*,myrcode) 然しながら、今度は、「mystream」は持続性ストリーム
であると宣言されており、そして「作成」メツセージ
は、実行するために持続性ストリーム・クラスに通され
る。既に述べたように、アスタリスクは万能の切札的の
記号として使われている、データベースのレコードは、
持続性ストリームのこの新しいインスタンスのために挿
入され、第8図に示されたように、そのオブジエクト識
別子と、3つのサーチ・クライテリアと、「保存=いい
え」フラグと、シーケンシヤル・データ・セツトが無い
ことを示すポインタとがその新しいレコードに書き込ま
れる。
次に、第1の対話パネルは持続性ストリームの問い合せ
を実行させる。この問い合せは、持続性ストリームが使
用されたという理由によつて第1の例とは異なつて実行
されることは注意を払う必要がある。例えば、若し、問
い合せの結果が1回よりも多く使用される予定ならば、
持続性ストリームの問い合せは、対話的に実行される。
ユーザは、問い合せの結果が1回よりも多く使用された
か否かを表示ように求められる。その代りに、若し、問
い合せ動作が実行するのに長時間を必要とするならば、
バツチ・モード(背景モード)の仕事は、忙しいピーク
の時間でない(off-peak hours)間に、問合せを行うた
めに作成される。ユーザは、その問い合せが長時間を要
する問い合せか否かを表示するように求められる。他の
選択としては、問い合せが審査され、そして予測実行時
間が計算され、予め決められた時間と比較される。若
し、予測された実行時間が予め決められた時間を越えて
いるならば、バツチ問い合せは自動的に遂行される。
問い合せが実行される時は、持続性ストリームは、その
「保存」メソツドを実行させる下記のメツセージが送ら
れる。
mystream.SAVE(myrcode) 上述したように、「保存」メソツドはシーケンシヤル・
データ・セツトを割当て、データベースの中にその名前
を置き、問い合せを実行し、そしてフラグ「保存=は
い」に変更する。「保存」メソツドを実行するための1
つの技術は、親のオブジエクト・クラス(通常のストリ
ーム)の「オープン」メソツド、「取り出し」メソツド
及び「終了」メソツドを使用することであり、これによ
り、これらのプログラムを2度書かせるのを回避する。
次に、第7図に示したような第2の対話パネルが呼び出
される。若し、問い合せが第1の対話パネルによつて対
話的に実行されたならば、第2の対話パネルが第1の例
と同様に呼び出される。若し背景の仕事が問い合せを実
行したとすれば、「行われるべき仕事」の対話は第2の
対話パネルを呼び出す。いずれの場合でも、第2の対話
パネルは、通常のストリームを使用した例と同じ下記の
メツセージによつて呼び出される。
pane12.CREATE(mystream) 本発明に従つて、第2の対話パネルは、それが通常のス
トリームではなく持続性ストリームを受け取つているこ
とは気が付かない。第1の例の「オープン」の場合と同
様に、第2の対話パネルはストリームを「オープン」
し、そして、ユーザが操作するためのオブジエクトのリ
ストを作成するために「取り出し」機能を使用する。
mystream.OPEN(myrcode) 持続性ストリームに対して、「オープン」メソツドはデ
ータベース中のそのレコードの「保存された」というフ
ラグを質問する。保存が行われているから、データベー
スに中に識別子を持つサーチ・クライテリアはシーケン
シヤルのデータベースに結合する。「取り出し」動作は
問い合せのレコードを検索する。
mystream.GET(mubuffer,myrcode) 持続性ストリームが保存されているので、問い合せの結
果はシーケンシヤル・データ・セツトから読取られる。
問い合せを満足させるレコードだけがこのデータ・セツ
ト中にあるから、「ストリームの使用」時間において必
要とするこのデータ処理の量は、データベースから結果
を誘導する問い合せのデータ処理の量よりも遥かに少な
い量である。
若し、「保存」メソツドが持続性ストリームに対して実
行されなければ、問い合せはその時に行われる。これを
行うために、種々の技術が用いられる。例えば問い合せ
のレコードは持続性ストリームの一部として与えられて
もよい。その代りに、問い合せ要求は、親の(通常のス
トリームの)「オープン」メソツド、「取り出し」メソ
ツド及び「終了」メソツドに再度循環されてもよい。他
の代案として、「保存」メソツドは持続ストリームの
「オープン」メソツドの実行の一部といて暗黙中に実行
されてもよい。
ユーザは第2の対話パネルを使用して、任意の仕事を遂
行することが出来る。例えば、ユーザはリストをスクロ
ールし、ストリームに対してより多くの「取り出し」要
求を適用させ、そしてシーケンシヤル・データ・セツト
から、より多くの結果を読取らせる。ユーザが第2のパ
ネルにリストされているオブジエクトにコマンドを送つ
た時には、その下位オブジエクトにアクシヨン要求を送
るために、下位のオブジエクトのオブジエクト識別子が
使用される。
ユーザが第2の対話パネルの使用の終了を選択した時
は、下記のように、第2の対話パネルはストリームを
「終了」する。
mystream.CKOSE(myrcode) この「終了」メソツドは「保存された」持続性ストリー
ムをシーケンシヤル・データ・セツトから切り離す。次
に、第2の対話パネルはそのインボーカーに戻る。持続
性ストリームは持続性を持つているから、インボーカー
はこの時点において、ストリームを削除することを常に
望むとは限らない。然しながら、アプリケーシヨン、ま
たはユーザが、その持続性ストリームを最早必要としな
いことを決定した時は、下記の「削除」メツセージがス
トリームに送られる。
mystream.DELETE(myrcode) これにより、シーケンシヤル・データ・セツトは、それ
自身削除され、データベースのレコードは削除され、そ
して他のすべてのリソースは自由にされる。
上述したように、本発明の持続性ストリーム・クラス
は、問い合せ結果の持続性、または非持続性が問い合せ
の結果を使用する最終的な仕事遂行プログラムに対して
透明であるような態様で問い合せ結果を保存する能力を
与える。システムのリソースが、より潤沢である時、持
続性ストリームは背景中に保存されて、前景の対話的な
ユーザは他の仕事を自由に行うことが出来る。仕事遂行
プロセスは通常のストリームにも、または持続性ストリ
ームにも送ることが出来る。どのタイプのストリームが
受け取られるかに拘らず、仕事遂行プロセスは、ストリ
ームに同じメツセージを送る。持続性ストリームは「オ
ープン」、「取り出し」、「終了」及び「削除」メツセ
ージに対して通常のストリームと同様に応答するから、
ストリームのタイプはストリームのユーザに対して全体
として透明であり、その結果、異なつたタイプのデータ
・リソースに対してもプログラム・コードを2度書く必
要がない。
F.発明の効果 本発明はオブジエクト指向データベース管理システムに
おいて再使用可能な問合せを遂行するための方法及び装
置を与える。
【図面の簡単な説明】
第1図はオブジエクトの模式的表示を示す図、第2図は
オブジエクトの例の模式的表示を示す図、第3図はオブ
ジエクトの継承の特長を説明するための図、第4図は本
発明に従つてオブジエクト指向コンピユータ・システム
の模式的なブロツク図、第5図は本発明に従つた目的指
向のプログラムの模式的なブロツク図、第6図は本発明
に従つたストリームの例を説明するための図、第7図は
ストリームを使用したデータベースの問い合せを遂行す
るための第1及び第2の対話パネルを示す図、第8図は
本発明に従つた持続性ストリームを示す図、第9図は本
発明に従つた持続性ストリーム及びシーケンシヤル・デ
ータ・セツトを示す図である。 10……オブジエクト指向データ管理システム、11……デ
ータ・プロセツサ、12……オブジエクト指向プログラ
ム、13……揮発性のデータ・ストレージ装置、14……非
揮発性のデータ・ストレージ装置、15……デイスプレー
・ターミナル、51……メツセンジヤ、52……オブジエク
ト管理テーブル、53……ロードされたクラスのテーブ
ル、54……オブジエクトのメソツドA、55……オブジエ
クトのメソツドB、56……インスタンスのオブジエクト
のデータ・フレーム。
フロントページの続き (56)参考文献 情報処理学会第34回(昭和62年前期)全 国大会講演論文集P.493−494 ACM Transactions o n Office Informatio n Systems vol.2 No. 3(1984)“An Architectu re for Object Manag ement in OIS" Proc. of OOPSLA’86 P.472−482

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】データ・ストレージ装置と、 上記データ・ストレージ装置中に蓄積されたデータ・オ
    ブジェクトのデータベースと、 上記データ・ストレージ装置に接続されたデータ・プロ
    セッサとからなり、 上記データ・プロセッサは、上記データベースへの問合
    せを遂行するために動作するオブジェクト指向データベ
    ース・マネージャを有し、該データベース・マネージャ
    はオブジェクトのストリーム・クラス及び持続性ストリ
    ーム・クラスとを含み、 上記ストリーム・クラスは、上記データベース・マネー
    ジャによって遂行される問合せの結果のデータ・オブジ
    ェクトに関するリストを含むストリーム・クラス属性
    と、ストリーム・クラス・メソッドを含み、 上記持続性ストリーム・クラスは持続性ストリーム・ク
    ラス属性と持続ストリーム・クラス・メソッドを含み、
    該持続性ストリーム・クラスは上記ストリーム・クラス
    のサブクラスとして組織されることにより上記ストリー
    ム・クラスのストリーム・クラス属性及び少なくとも1
    つのストリーム・クラス・メソッドを継承し、かつ上記
    持続性ストリーム・クラス・メソッドには上記データベ
    ース・マネージャによって遂行される問合せの結果のデ
    ータ・オブジェクトに関するリストを上記データ・スト
    レージ装置に保存するための保存メソッドを含むことを
    特徴とするオブジェクト指向データベース管理システ
    ム。
  2. 【請求項2】上記問合せの結果のデータ・オブジェクト
    のリストを保存するために、上記データ・ストレージ装
    置中の位置を割当てる手段と、 上記リストを取り出す手段と、 割当てられた位置中に上記リストを保存する手段と、 上記リストが取り出され且つ保存されたことを表示する
    手段と を含む請求項1記載のオブジェクト指向データベース管
    理システム。
JP2230751A 1989-10-23 1990-09-03 オブジエクト指向データベース管理システム Expired - Lifetime JPH0792778B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US425747 1989-10-23
US07/425,747 US5161225A (en) 1989-10-23 1989-10-23 Persistent stream for processing time consuming and reusable queries in an object oriented database management system

Publications (2)

Publication Number Publication Date
JPH03138734A JPH03138734A (ja) 1991-06-13
JPH0792778B2 true JPH0792778B2 (ja) 1995-10-09

Family

ID=23687851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2230751A Expired - Lifetime JPH0792778B2 (ja) 1989-10-23 1990-09-03 オブジエクト指向データベース管理システム

Country Status (4)

Country Link
US (1) US5161225A (ja)
EP (1) EP0425412B1 (ja)
JP (1) JPH0792778B2 (ja)
DE (1) DE69030551T2 (ja)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH047640A (ja) * 1990-04-25 1992-01-13 Hitachi Ltd クラス継承解決処理方法
US5412774A (en) * 1990-08-29 1995-05-02 At&T Corp. Apparatus for and method of displaying a data item of a database using the display function of a selected data item
US5291593A (en) 1990-10-24 1994-03-01 International Business Machines Corp. System for persistent and delayed allocation object reference in an object oriented environment
US5295256A (en) * 1990-12-14 1994-03-15 Racal-Datacom, Inc. Automatic storage of persistent objects in a relational schema
US5291583A (en) * 1990-12-14 1994-03-01 Racal-Datacom, Inc. Automatic storage of persistent ASN.1 objects in a relational schema
US5822590A (en) * 1991-10-31 1998-10-13 Texas Instruments Incorporated dbX: a persistent programming language model
US5805885A (en) 1992-12-24 1998-09-08 Microsoft Corporation Method and system for aggregating objects
JPH06214865A (ja) * 1993-01-12 1994-08-05 Fujitsu Ltd オブジェクト・ベース・データ処理装置
US5437025A (en) * 1993-01-26 1995-07-25 International Business Machines Corporation System and method for run time configuration of objects in an object oriented computing environment
US5497491A (en) * 1993-01-26 1996-03-05 International Business Machines Corporation System and method for importing and exporting data between an object oriented computing environment and an external computing environment
US5613099A (en) * 1993-02-17 1997-03-18 International Business Machines Corporation Persistent object storage system with modifiable group skeletal formats
US5446903A (en) * 1993-05-04 1995-08-29 International Business Machines Corporation Method and apparatus for controlling access to data elements in a data processing system based on status of an industrial process by mapping user's security categories and industrial process steps
US5911138A (en) * 1993-06-04 1999-06-08 International Business Machines Corporation Database search facility having improved user interface
US5608899A (en) * 1993-06-04 1997-03-04 International Business Machines Corporation Method and apparatus for searching a database by interactively modifying a database query
US5797007A (en) * 1993-06-14 1998-08-18 International Business Machines Corporation Persistent object storage system with default object encoder/decoder
US6567838B1 (en) * 1993-07-13 2003-05-20 International Business Machines Corporation Method, system and program for executing a predicted operation in a computer system after a predetermined period elapses since a user activity
JP2986051B2 (ja) * 1993-08-04 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクト指向コンピュータ・システム及びオブジェクト実行方法
US5473741A (en) * 1993-08-30 1995-12-05 Graphic Systems Technology, Inc. Method for determining the time to perform raster image processing
US5463769A (en) * 1993-12-15 1995-10-31 International Business Machines Corporation Method and apparatus using dictionary of methods and states for high performance context switching between build and run modes in a computer application builder program
US5623657A (en) * 1993-12-30 1997-04-22 International Business Machines Corporation System for processing application programs including a language independent context management technique
EP0667586A3 (en) * 1994-02-14 1996-08-28 Digital Equipment Corp Database creation system.
US5467472A (en) * 1994-04-15 1995-11-14 Microsoft Corporation Method and system for generating and maintaining property sets with unique format identifiers
US6301581B1 (en) * 1994-08-01 2001-10-09 Texas Instruments Incorporated Method and system for managing access to a plurality of data objects
US5592600A (en) * 1994-09-27 1997-01-07 International Business Machines Corporation Animated display showing execution of object-oriented programs
US5542078A (en) * 1994-09-29 1996-07-30 Ontos, Inc. Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities
US5680615A (en) * 1994-11-04 1997-10-21 International Business Machines Corporation Desktop management of host applications
EP0823092A1 (en) 1995-04-24 1998-02-11 Aspect Development, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US5710917A (en) * 1995-06-07 1998-01-20 International Business Machines Corporation Method for deriving data mappings and data aliases
US5732263A (en) * 1995-10-03 1998-03-24 International Business Machines Corporation Systems, methods and computer program products for generating and validating user defined object classes in an object oriented programming environment after build time
US5822587A (en) * 1995-10-20 1998-10-13 Design Intelligence, Inc. Method and system for implementing software objects
US5809506A (en) * 1996-01-22 1998-09-15 International Business Machines Corporation Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto
US6269407B1 (en) 1996-03-14 2001-07-31 International Business Machines Corporation Method and system for data filtering within an object-oriented data
US5715413A (en) * 1996-06-25 1998-02-03 International Business Machines Corporation Dragging and dropping with an instantiation object
US6275871B1 (en) 1996-07-03 2001-08-14 Siemens Aktiengesellschaft Asynchronous transport optimizing observer-pattern-like system supporting several modes for an interface definition language-less communication subsystem
US6012081A (en) * 1996-07-03 2000-01-04 Siemens Aktiengesellschaft Service and event synchronous/asynchronous manager
US5813014A (en) * 1996-07-10 1998-09-22 Survivors Of The Shoah Visual History Foundation Method and apparatus for management of multimedia assets
US6434567B1 (en) * 1996-07-30 2002-08-13 Carlos De La Huerga Method for specifying enterprise-wide database address formats
US5897632A (en) * 1996-08-27 1999-04-27 At&T Corp Method and system for using materialized views to evaluate queries involving aggregation
US5765162A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for managing queryable datastore persistent objects and queryable datastore collections in an object-oriented environment
US5765163A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for using queryable persistent identifiers to locate data for datastore persistent objects in non-object-oriented datastores
US5809509A (en) * 1996-10-25 1998-09-15 International Business Machines Corporation Method for using a non-object-oriented datastore as a generic persistent datastore for persistent objects
US5781907A (en) * 1996-10-25 1998-07-14 International Business Machines Corporation Method for the incremental presentation of non-object-oriented datastores using an object-oriented queryable datastore collection
US5794247A (en) 1996-10-25 1998-08-11 International Business Machines Corporation Method for representing data from non-relational, non-object-oriented datastores as queryable datastore persistent objects
US5778358A (en) * 1996-10-25 1998-07-07 International Business Machines Corporation Query parser for accessing non-relational, non-object-oriented datastores
US5799313A (en) * 1996-10-25 1998-08-25 International Business Machines Corporation Framework for object-oriented access to non-object-oriented datastores
US5809508A (en) * 1996-10-25 1998-09-15 International Business Machines Corporation Method for capturing and cataloging datastore characteristics to define datastore persistent objects
US5778379A (en) * 1996-10-25 1998-07-07 International Business Machines Corporation Query syntax for accessing non-relational, non-object-oriented datastores
US5761671A (en) * 1996-10-25 1998-06-02 International Business Machines Corporation Method for interfacing queryable datestore persistent objects to non-relational, non-object-oriented datastores
US5737598A (en) * 1996-10-25 1998-04-07 International Business Machines Corporation Method for capturing and cataloging specifications for datastore persistent classes
US5787436A (en) * 1996-10-25 1998-07-28 International Business Machines Corporation Method for using a datastore cursor for the incremental presentation of query results when traversing implied collections in non-object-oriented datastores
US5764979A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for capturing and cataloging program characteristics for the usage of datastore persistent classes
US5737597A (en) * 1996-10-25 1998-04-07 International Business Machines Corporation Method for cataloging datastore characteristics and defining and generating datastore persistent objects
US5794248A (en) * 1996-10-25 1998-08-11 International Business Machines Corporation Method for representing non-object-oriented datastores using a collection of collections data model
US5765161A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for encapsulating data from non-object-oriented datastores as datastore persistent objects
US5937402A (en) * 1997-06-19 1999-08-10 Ontos, Inc. System for enabling access to a relational database from an object oriented program
US6076092A (en) * 1997-08-19 2000-06-13 Sun Microsystems, Inc. System and process for providing improved database interfacing using query objects
US6728699B1 (en) * 1997-09-23 2004-04-27 Unisys Corporation Method and apparatus for using prior results when processing successive database requests
US6128622A (en) * 1997-11-26 2000-10-03 International Business Machines Corporation IMS web studio taskguide
US6202069B1 (en) 1998-04-30 2001-03-13 International Business Machines Corporation Execution paradigm for accessing hierarchical data using an object framework
US6360229B2 (en) 1998-04-30 2002-03-19 International Business Machines Corporation Generic execution model for isolating applications from underlying databases
US6128611A (en) * 1998-04-30 2000-10-03 International Business Machines Corporation Internet-enabled generic application program for accessing hierarchical data
US6529914B1 (en) 1998-04-30 2003-03-04 International Business Machines Corporation Object-oriented programming model for accessing hierarchical databases
US6128619A (en) * 1998-04-30 2000-10-03 International Business Machines Corporation Generating an internet application for accessing a hierarchical database
US6430571B1 (en) 1998-07-16 2002-08-06 International Business Machines Corporation Multi-frame output form that facilitates internet search and update in a hierarchical database
US6141660A (en) * 1998-07-16 2000-10-31 International Business Machines Corporation Command line interface for creating business objects for accessing a hierarchical database
US6769124B1 (en) * 1998-07-22 2004-07-27 Cisco Technology, Inc. Persistent storage of information objects
US6505211B1 (en) 1999-01-26 2003-01-07 International Business Machines Corporation Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US6584464B1 (en) 1999-03-19 2003-06-24 Ask Jeeves, Inc. Grammar template query system
US6466931B1 (en) 1999-07-30 2002-10-15 International Business Machines Corporation Method and system for transparently caching and reusing query execution plans efficiently
US7562027B1 (en) * 1999-11-01 2009-07-14 Ita Software, Inc. Availability processing in a travel planning system
EP1234268A2 (en) * 1999-11-01 2002-08-28 ITA Software, Inc. Method and apparatus for providing availability of airline seats
AU3560000A (en) * 2000-03-20 2001-10-03 Net Magic T:Mi Method and system for data management in an object-oriented system
US7216085B1 (en) * 2000-07-13 2007-05-08 Ita Software, Inc. Competitive availability tools
EP1199645A1 (en) * 2000-10-16 2002-04-24 Helde Enterprises Limited A value based information system
US6912541B1 (en) * 2000-12-01 2005-06-28 Unisys Corporation Method and apparatus for implementing persistent data in object oriented programs
US6901409B2 (en) 2001-01-17 2005-05-31 International Business Machines Corporation Mapping data from multiple data sources into a single software component
US6633889B2 (en) 2001-01-17 2003-10-14 International Business Machines Corporation Mapping persistent data in multiple data sources into a single object-oriented component
US7412457B2 (en) 2001-01-17 2008-08-12 International Business Machines Corporation Mapping data from multiple data sources into a single or multiple reusable software components
US7293014B2 (en) * 2001-06-18 2007-11-06 Siebel Systems, Inc. System and method to enable searching across multiple databases and files using a single search
US7233937B2 (en) 2001-06-18 2007-06-19 Siebel Systems, Inc. Method, apparatus, and system for searching based on filter search specification
US7213013B1 (en) * 2001-06-18 2007-05-01 Siebel Systems, Inc. Method, apparatus, and system for remote client search indexing
US7464072B1 (en) * 2001-06-18 2008-12-09 Siebel Systems, Inc. Method, apparatus, and system for searching based on search visibility rules
US7546287B2 (en) * 2001-06-18 2009-06-09 Siebel Systems, Inc. System and method to search a database for records matching user-selected search criteria and to maintain persistency of the matched records
US20060184554A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation System and method for extensible metadata architecture for digital images using in-place editing
US7979457B1 (en) * 2005-03-02 2011-07-12 Kayak Software Corporation Efficient search of supplier servers based on stored search results
US20080091733A1 (en) * 2006-10-16 2008-04-17 Scott Shelton Reusable data query language statements
US20090083238A1 (en) * 2007-09-21 2009-03-26 Microsoft Corporation Stop-and-restart style execution for long running decision support queries
US20090100091A1 (en) * 2007-10-15 2009-04-16 Srikanth Chandru Method and system for providing a process object framework for processing a request-type process
US8069172B2 (en) * 2008-11-05 2011-11-29 Oracle International Corporation Re-executing query objects without affecting transaction data in an application development framework not providing for creation of multiple instances of the same query object
US20110219037A1 (en) * 2010-03-04 2011-09-08 Src, Inc. High-Performance Persistence Framework
CN102455902B (zh) * 2010-10-29 2015-09-16 国际商业机器公司 用于对象持久化的方法以及计算机系统
US20140222885A1 (en) * 2013-02-04 2014-08-07 Uni-B Solutions Llc System for real-time data processing
DE102015117668B4 (de) * 2015-10-16 2017-10-26 Frank Sax Verfahren zur Ablage von Daten und zur Abfrage derselben

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509119A (en) * 1982-06-24 1985-04-02 International Business Machines Corporation Method for managing a buffer pool referenced by batch and interactive processes
US4506326A (en) * 1983-02-28 1985-03-19 International Business Machines Corporation Apparatus and method for synthesizing a query for accessing a relational data base
US4631664A (en) * 1983-07-19 1986-12-23 Bachman Information Systems, Inc. Partnership data base management system and method
US4604686A (en) * 1984-01-27 1986-08-05 Martin Marietta Corporation Associative data access method (ADAM) and its means of implementation
US4642762A (en) * 1984-05-25 1987-02-10 American Chemical Society Storage and retrieval of generic chemical structure representations
US4791550A (en) * 1985-02-13 1988-12-13 Rational Higher order language-directed computer
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US4747072A (en) * 1985-08-13 1988-05-24 Fairchild Camera And Instrument Corporation Pattern addressable memory
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4841433A (en) * 1986-11-26 1989-06-20 American Telephone And Telegraph Company, At&T Bell Laboratories Method and apparatus for accessing data from data attribute tables
US4811199A (en) * 1987-05-08 1989-03-07 Kuechler William L System for storing and manipulating information in an information base
US4866634A (en) * 1987-08-10 1989-09-12 Syntelligence Data-driven, functional expert system shell
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US4949251A (en) * 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ACMTransactionsonOfficeInformationSystemsvol.2No.3(1984)"AnArchitectureforObjectManagementinOIS"
Proc.ofOOPSLA’86P.472−482
情報処理学会第34回(昭和62年前期)全国大会講演論文集P.493−494

Also Published As

Publication number Publication date
EP0425412B1 (en) 1997-04-23
EP0425412A2 (en) 1991-05-02
EP0425412A3 (en) 1993-04-21
DE69030551D1 (de) 1997-05-28
DE69030551T2 (de) 1997-11-13
JPH03138734A (ja) 1991-06-13
US5161225A (en) 1992-11-03

Similar Documents

Publication Publication Date Title
JPH0792778B2 (ja) オブジエクト指向データベース管理システム
US5893912A (en) Thread context manager for relational databases, method and computer program product for implementing thread context management for relational databases
EP0425415B1 (en) Process and apparatus for preserving data integrity of a database
US6601023B1 (en) Method for impact analysis of a model
US5557793A (en) In an object oriented repository, a method for treating a group of objects as a single object during execution of an operation
US5937415A (en) Data base development system with methods facilitating copying of data from one data source to another
JP2531846B2 (ja) オブジェクト指向デ―タベ―ス管理システム及び方法
US5644764A (en) Method for supporting object modeling in a repository
US8341120B2 (en) Apparatus and methods for transferring database objects into and out of database systems
US7860890B2 (en) System and method for providing access to an application through a common interface for application extensions
US5717925A (en) Information catalog system with object-dependent functionality
US6076090A (en) Default schema mapping
JPH0833862B2 (ja) オブジエクト指向コンピユータ・システム
US5832268A (en) System and method for supporting complex objects in an object oriented computing environment
US5809506A (en) Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto
JPH0997204A (ja) 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置
JP2001527243A (ja) オブジェクト指向アプリケーション内のクラスに対応するリレーショナル・データベース内のインデックスを生成するための方法及び装置
US7451434B1 (en) Programming with shared objects in a shared memory
JPH06259472A (ja) マルチメディア情報システム
WO2021061438A1 (en) Version-based table locking
US5991766A (en) Method and system for managing redundant objects in a distributed object system
US6859919B1 (en) Object modeling tool with meta model semantic registry (rules) a meta data manager for object(s) properties an object/property interface for instance(s) of objects/properties received via object/property interface of the object factory registry
EP0899669A2 (en) Language manager interface
US20140173551A1 (en) Model augmentation in a model-driven application development environment
EP0603095A2 (en) Method and apparatus for managing a windowing environment in an object oriented programming system

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071009

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081009

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081009

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091009

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091009

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101009

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101009

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101009

Year of fee payment: 15

EXPY Cancellation because of completion of term