JP3475429B2 - オブジェクト指向データベースおよび検索方法 - Google Patents

オブジェクト指向データベースおよび検索方法

Info

Publication number
JP3475429B2
JP3475429B2 JP02698692A JP2698692A JP3475429B2 JP 3475429 B2 JP3475429 B2 JP 3475429B2 JP 02698692 A JP02698692 A JP 02698692A JP 2698692 A JP2698692 A JP 2698692A JP 3475429 B2 JP3475429 B2 JP 3475429B2
Authority
JP
Japan
Prior art keywords
persistent
persistent object
database
address
identifier
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
JP02698692A
Other languages
English (en)
Other versions
JPH05225034A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP02698692A priority Critical patent/JP3475429B2/ja
Publication of JPH05225034A publication Critical patent/JPH05225034A/ja
Application granted granted Critical
Publication of JP3475429B2 publication Critical patent/JP3475429B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、オブジェクト指向デ
ータベースおよびオブジェクト指向データベースで実行
される検索方法に関する。
【0002】
【従来の技術】近年、オブジェクト指向データベースシ
ステム(Object Oriented Database=OODB)が注目
を集め、各種の研究が行われている。
【0003】オブジェクト指向データベースの基礎概念
としては、(1)「“オブジェクト指向データベースの
基礎概念”(田中克己著 情報処理Vol.32 No.5 pp500
〜513 May 1991)」(以下、文献1という)、(2)
「“オブジェクト指向データベース管理システムのアー
キテクチャ”(牧之内顕文著 情報処理 Vol.32 No5 p
p514〜522 May 1991 )」(以下、文献2という)に開
示されたものが知られている。
【0004】上記文献2の516ページに開示されてい
るように、 (a)オブジェクト指向データベースにおいては、オブ
ジェクト識別子(OID)が永続オブジェクト(オブジ
ェクト指向データベースのデータで、プロセスの境界を
越えて存在するオブジェクト)の識別に重要な役割を果
たしている。永続オブジェクトは2次記憶上で管理され
主記憶上で操作されるため、OIDと、2次記憶上の永
続オブジェクトの位置(Disk Address=ディスクアドレ
ス)と、主記憶上の永続オブジェクトの位置(Memoty A
ddress=メモリアドレス)の3つの値の管理や変換が必
要となる。 (b)永続オブジェクトは2次記憶上で管理され主記憶
上で操作されるため、操作のためには2次記憶上の永続
オブジェクトを一度主記憶上に読み込む必要がある。ま
た一度主記憶上に読み込んだ後は、出切るだけ主記憶上
のアドレスを利用して、永続オブジェクトにアクセスす
ることが永続オブジェクトの参照を効率良くする。
【0005】また文献2の520ページに開示されてい
る内容においては、 (c)主記憶上の永続オブジェクトをバッファとしてア
クセスするためには、OIDのハッシュテーブルが必要
であることを指摘している。 (d)永続オブジェクトは2次記憶上ではディスク形式
で表現され、主記憶上ではメモリ形式で表現されること
を指摘している。この表現形式の変換の際に、OIDは
変換され、主記憶上の永続オブジェクトへの参照を容易
に辿ることができるようになる。
【0006】このような文献2に開始された内容のもの
を実現することにより、オブジェクト指向データベース
システムや永続的プログラミング(Persistent Program
mingLanguage )において、データベース中のオブジェ
クトに対するアクセスを高速化することができる。この
ことは、アプリケーションプログラムの実行速度を向上
させることができるということである。
【0007】そこで、文献2に開始された内容のものを
実現するようにした技術としては、永続オブジェクトの
OID、ディスクアドレス、メモリアドレスの3つの値
のテーブル(オブジェクトテーブル)を2次記憶上で記
憶し管理するようにし、そのテーブルを参照することに
より、永続オブジェクトをアクセスするようにした手法
のものがある。
【0008】しかしながら、このような従来技術におい
ては、オブジェクトテーブルのサイズの肥大化に伴う記
憶領域(2次記憶領域)の無駄と、テーブル参照のため
のI(input )/O(output)の増加の可能性があり、
このため記憶領域を有効に利用することができず、また
処理効率の向上も望めない。
【0009】また、上述した様なオブジェクト指向デー
タベースシステムの実現技術としては、(3)「“オブ
ジェクト指向データベースシステムにおける並行処理制
御”(西尾章治朗著 情報処理 Vol.32 No5 pp540〜54
9 May 1991 )」(以下、文献3という)に開示された
ものが知られている。
【0010】上記文献3の540ページに開示されてい
るように、データベース管理システムにおける並行処理
制御はの機能は、複数のユーザからデータをアクセスす
るためには必須である。その代表的な実現方ほとして2
相施錠方式がある。この2相施錠方式では、トランザク
ションがデータにロックを掛けることで、操作の実行系
列をスケジュールする。あるトランザクションでデータ
をフクセスするときは必ずロックを掛け、そのトランザ
クションが終了するときは、そのトランザクション内で
掛けた全てのロックを外すようにしている。従って、主
記憶上にキャッシュされた永続オブジェクトが、トラン
ザクションを跨がって有効であれば、永続オブジェクト
を主記憶上に重複して読む手間がかからない。
【0011】しかしながら、上記文献3に開示されたも
のにおいては、複数のユーザがデータを更新する場合
は、いつ主記憶上にキャッシュが無効になるか分からな
い。このため、既にキャッシュされているキャッシュデ
ータは信用性が無いとみなし、必要なキャッシュデータ
が更新されておらずそのまま使用できるにも関わらず、
そのキャッシュデータを使用せず、再度必要なデータを
キャッシュしなければならない。すなわち、ロックに基
づくトランザクションによる並行制御を考慮した効率の
良いキャッシュの管理を行うことができず、処理効率が
悪い。
【0012】なおオブジェクト指向データベースシステ
ムを実現したシステムとしては、特開平3−13773
0に開示されたものがある
【0013】
【発明が解決しようとする課題】このように上記従来の
オブジェクト指向データベースシステムにおいては、オ
ブジェクトテーブルのサイズの肥大化に伴う2次記憶領
域の無駄と、テーブル参照のためのI/Oの増加の可能
性があり、このため記憶領域を有効に利用することがで
きず、また処理効率の向上も望めない。
【0014】また上記文献3に開示されたものにおいて
は、あるユーザが、あるトランザクションでキャッシュ
したデータ(オブジェクト)を他のトランザクョンでア
クセスするような場合には、キャッシュされているデー
タ(オブジェクト)が有効であるにもかかわらず、その
キャッシュデータを使用せず、再度必要なデータをキャ
ッシュしなければならない。何故ならば、2次記憶領域
に存在するデータは複数のユーザによって更新されるこ
とを前提としているため、既にキャッシュされているキ
ャッシュデータは信用性が無いとみなすので、ロックを
掛ける毎にデータをキャッシュし直さなければならな
い。よって、ロックに基づくトランザクションによる並
行制御を考慮した効率の良いキャッシュの管理を行うこ
とができないので、処理効率が悪くなってしまう。
【0015】ところで、永続オブジェクトの主記憶領域
上での表現形式であるメモリ形式においては、ディスク
形式で表現されている永続オブジェクトの状態を変換し
た情報のみでなく、主記憶領域上の他のデータのキャッ
シュや自分自身の状態を示すフラグなどの様々な値を持
つべきである。それらの値により主記憶領域上の永続オ
ブジェクトへの参照を効率良く実現できる。またメモリ
形式の永続オブジェクトは、ホスト言語であるオブジェ
クト言語の結合規則と同じものをサポートするべきであ
る。そうすることにより、永続オブジェクトの操作モデ
ルをホスト言語であるオブジェクト指向言語の操作モデ
ルと一体化することができる。
【0016】しかしながら上記各文献にはそれらを実現
するための手段は開示されていないので、従来において
は、永続オブジェクトを主記憶領域上で効率良く表現す
ることはできなかった。
【0017】この発明の目的は、記憶領域の有効利用を
図ることのできるオブジェクト指向データベースおよび
検索方法を提供することにある。
【0018】
【0019】
【0020】
【課題を解決するための手段】上記目的を達成するた
め、請求項1の発明は、複数のデータベースファイルに
基づいて永続オブジェクトを検索するオブジェクト指向
データベースにおいて、第1のデータベースファイルで
管理される永続オブジェクトの論理アドレスと該永続オ
ブジェクトの識別子とを組にして管理するオブジェクト
テーブルを保持するオブジェクトテーブル保持手段と、
前記第1のデータベースファイルで管理される永続オブ
ジェクトが参照する第2のデータベースファイルで管理
される永続オブジェクトの識別子と該第2のデータベー
スファイルの論理アドレスとを組にして管理する外部オ
ブジェクトテーブルを保持する外部オブジェクトテーブ
ル保持手段と、永続オブジェクトの識別子で前記第1の
データベースファイルを検索する際に、前記オブジェク
トテーブルを検索し、該オブジェクトテーブルで検索が
出来なかった場合に前記外部オブジェクトテーブルを検
索する検索手段とを備えることを特徴とする。
【0021】また、請求項2の発明は、請求項1の発明
において、前記検索手段は、前記外部オブジェクトテー
ブルで識別子が検索できた場合、該検索された識別子に
対応する前記第2のデータベースから該識別子に対応す
る永続オブジェクトを取得することを特徴とする。
【0022】また、請求項3の発明は、複数のデータベ
ースファイルに基づいて永続オブジェクトを検索するオ
ブジェクト指向データベースが実行する検索方法におい
て、第1のデータベースファイルで管理される永続オブ
ジェクトの論理アドレスと該永続オブジェクトの識別子
とを組にして管理するオブジェクトテーブルと、前記第
1のデータベースファイルで管理される永続オブジェク
トが参照する第2のデータベースファイルで管理される
永続オブジェクトの識別子と該第2のデータベースファ
イルの論理アドレスとを組にして管理する外部オブジェ
クトテーブルとを保持するステップと、永続オブジェク
トの識別子で前記第1のデータベースファイルを検索す
る際に、前記オブジェクトテーブルを検索し、該オブジ
ェクトテーブルで検索が出来なかった場合に前記外部オ
ブジェクトテーブルを検索するステップとを備えること
を特徴とする。
【0023】また、請求項4の発明は、請求項3の発明
において、前記検索を実行するステップは、前記外部オ
ブジェクトテーブルで識別子が検索できた場合、該検索
された識別子に対応する前記第2のデータベースから該
識別子に対応する永続オブジェクトを取得することを特
徴とする。
【0024】
【0025】
【0026】
【0027】
【作用】請求項1の発明または請求項3の発明によれ
ば、第1のデータベースファイルで管理される永続オブ
ジェクトの論理アドレスと識別子とを組にしてオブジェ
クトテーブルで管理するとともに、第1のデータベース
ファイルで管理される永続オブジェクトが参照する第2
のデータベースファイルで管理される永続オブジェクト
の識別子と該第2のデータベースファイルの論理アドレ
スとを組にして外部オブジェクトテーブルで管理し、永
続オブジェクトの識別子で第1のデータベースファイル
を検索する際に、オブジェクトテーブルを検索し、オブ
ジェクトテーブルで検索が出来なかった場合に外部オブ
ジェクトテーブルを検索する。このため、第2のデータ
ベースが管理する永続オブジェクトに対しては、第2の
データベースの論理アドレスのみを管理すればよく、記
憶領域を有効に利用することができる。
【0028】また、請求項2または請求項4の発明によ
れば、外部オブジェクトテーブルで識別子が検索できた
場合に、検索された識別子に対応する第2のデータベー
スから該識別子に対応する永続オブジェクトを取得する
ため、第2のデータベースに対して不要なアクセスを行
う必要が無く、これにより、処理効率を向上させること
ができる。
【0029】
【0030】
【0031】
【0032】
【実施例】以下、この発明に係るオブジェクト指向デー
タベースおよび検索方法の第1の実施例を図1乃至図9
の添付図面を参照して説明する。
【0033】図1は、この発明を適用したオブジェクト
指向データベースシステムの第1の実施例を示す機能ブ
ロック図である。
【0034】同図において、オブジェクト指向データベ
ースシステムは、オブジェクト指向データベース管理シ
ステム(Object Oriented DataBase Management System
=OODBMS)10、2次記憶手段20、主記憶手段
30から構成されている。
【0035】2次記憶手段20には、永続的なオブジェ
クトつまり永続オブジェクト(persistent Object )の
オブジェクト識別子(Object identity =OID)21
Aと永続オブジェクトの2次記憶手段20上の位置情報
(Disk Address=ディスクアドレス)21Bとが対応つ
けられて登録されるオブジェクトテーブル21と、永続
オブジェクト群22とが格納されている。
【0036】主記憶手段30には、ロードされた永続オ
ブジェクトのOID31A及び永続オブジェクトの2次
記憶手段上の位置情報(ディスクアドレス)31Bとロ
ードされた永続オブジェクトの主記憶手段30上の位置
情報(Memory Address=メモリアドレス)31Cとが対
応つけられて登録されるオブジェクトテーブル31と、
ロードされた永続オブジェクト32とが記憶されてい
る。
【0037】オブジェクト指向データベース管理システ
ム10は、オブジェクトテーブル管理モジュール11、
永続オブジェクト管理モジュール12から構成されてい
る。オブジェクトテーブル管理モジュール11はオブジ
ェクトテーブルをハッシュテーブルとして持ち、該ハッ
シュテーブルを2次記憶手段20で保管し管理し、必要
に応じて必要な部分を主記憶手段30に読み込み、デー
タであるOIDやディスクアドレス、メモリアドレスの
セット、取り出し、削除の操作を行う。
【0038】オブジェクトテーブル(ハッシュテーブ
ル)の管理は以下の様に行う。 ◆オブジェクトテーブルが2次記憶手段20上に存在す
る場合 この場合は、オブジェクトテーブルに、永続オブジェク
ト毎のOIDと2次記憶記憶手段20上の永続オブジェ
クトの位置情報(ディスクアドレス)のみを保持する。 ◆オブジェクトテーブルが主記憶手段30上に存在する
場合 この場合は、オブジェクトテーブルに、永続オブジェク
ト毎のOIDとディスクアドレスと、主記憶手段30に
存在する永続オブジェクトの主記憶手段30上の位置情
報(メモリアドレス)を保持する。
【0039】オブジェクトテーブル管理モジュール11
は、永続オブジェクト管理モジュール12からのアドレ
ス情報(メモリアドレス、ディスクアドレス)の問合わ
せ要求や書き込み要求に応じて、所定の処理を行う。な
おアドレス情報の問合わせ要求のときは操作の対象とな
っている永続オブジェクトのOIDが、アドレス情報の
書き込み要求のときは操作の対象となっている永続オブ
ジェクトのOID及びその永続オブジェクトのアドレス
情報が、永続オブジェクト管理モジュール12からオブ
ジェクトテーブル管理モジュール11に通知される。
【0040】[アドレス情報の問合わせ要求があった場
合]この場合は、アドレス情報の問合わせ要求の内容
(メモリアドレスの問合わせか、ディスクアドレスの問
合わせかの内容)に応じて、2次記憶手段20あるいは
主記憶手段30のオブジェクトテーブルをアクセスし、
このアクセスにより得られた結果(通知されたOIDを
含んでいるエントリ内のメモリアドレスあるいはディス
クアドレスアドレス、又はアドレスが存在しない旨)を
問合わせ結果として、永続オブジェクト管理モジュール
12に返す。
【0041】[アドレス情報の書き込み要求があった場
合]この場合は、アドレス情報の書き込み要求の内容
(メモリアドレスの書き込みか、ディスクアドレスの書
き込みかの内容)に応じて、2次記憶手段20あるいは
主記憶手段30のオブジェクトテーブルをアクセスし、
該当するテーブルの通知されたOIDを含んでいるエン
トリに通知されたアドレス情報を書き込む。
【0042】一方、永続オブジェクト管理モジュール1
2は、永続オブジェクトを2次記憶手段20で保管し管
理し、必要に応じて主記憶手段30に読み込み、永続オ
ブジェクトの操作を行うと共に、永続オブジェクトの生
成や削除により、主記憶手段30や2次記憶手段20の
データ内容を更新する。またオブジェクトテーブル管理
モジュール11に対して、アドレス情報(メモリアドレ
ス、ディスクアドレス)の問合わせ要求や書き込み要求
を行う。
【0043】この要求に応答したオブジェクトテーブル
管理モジュール11では、指定されたOIDで、主記憶
手段30内のオブジェクトテーブルのバリューを得て、
これを永続オブジェクト管理モジュール12に返すこと
となる。
【0044】永続オブジェクト管理モジュール12で
は、メモリアドレスとディスクアドレスの組みであるバ
リューに応じて以下のような処理を行う。
【0045】[指定されたOIDからメモリアドレスが
得られた場合]返されたメモリアドレスで永続オブジェ
クトをアクセスする。 [指定されたOIDからメモリアドレスが得られない場
合] (a)返されたディスクアドレスから求めた永続オブジ
ェクトを主記憶手段30上に読み込む割り付ける。 (b)オブジェクトテーブル管理モジュール11に対し
て、割り付けた永続オブジェクトのメモリアドレスのオ
ブジェクトテーブルへの登録を依頼する。 (c)そのメモリアドレスで永続オブジェクトをアクセ
スする。 [指定されたOIDからディスクアドレスが求められな
い場合]そのOIDを持つ永続オブジェクトは存在しな
いと判断する。
【0046】この実施例では、オブジェクト指向データ
ベース管理システム10は、上述した機能を実現するた
めのプログラム(ソフトウェア)を、プロセッサや中処
理装置等の制御手段が実行することにより実現されてい
る。勿論、ハードウェアやファームウェアで実現するこ
ともできる。
【0047】図2は、図1に示した実施例のオブジェク
ト指向データベースシステムを実現するためのハードウ
ェア構成を示す構成図である。同図において、主記憶装
置210は先に述べた主記憶手段30の機能を果たすも
のであり、2次記憶装置220は先に述べた2次記憶手
段20の機能を果たすものである。データプロセッサ2
30は、プログラムであるオブジェクト指向データベー
ス管理システム10を実行して所定のデー処理を行う。
ディスプレイ装置240は、データプロセッサ230に
よるデータ処理の結果を表示する。
【0048】次に、オブジェクト指向データベース管理
システム10で管理するデータの論理的な構成を図3に
示す。
【0049】この図に示す例では、データベースファイ
ル310は論理的な1つのオブジェクトテーブル320
を持っており、このテーブルにはOIDと永続オブジェ
クトの論理アドレスとが対応して登録されている。オブ
ジェクトテーブル320は実体である永続オブジェクト
群330を各永続オブジェクトのOIDで管理する。各
永続オブジェクトはシステムにより一意に決定されるO
IDを持っている。同様に、データベースファイル34
0もオブジェクトテーブル350を持っており、このテ
ーブルによって永続オブジェクト群360が管理され
る。このような論理的構造のデータはメモリ空間にマッ
ピング(mapping )され操作される。
【0050】次に2次記憶装置上でのオブジェクトテー
ブルの構造の一例を図4に示す。
【0051】この実施例においてはオブジェクトテーブ
ルはハッシュテーブルとして実現され、キーとしてOI
D、バリューとしてディスクアドレスを持っている。図
4に示す例では、2次記憶装置上の10000番地にオ
ブジェクトテーブルが格納され、OIDが“100”の
永続オブジェクトは2次記憶装置上の12345番地に
存在し、OIDが“101”の永続オブジェクトは2次
記憶装置上の67890番地に存在していることを表し
ている。
【0052】続いて主記憶装置上でのオブジェクトテー
ブルの構造を図5に示す。
【0053】この実施例においてはオブジェクトテーブ
ルはハッシュテーブルとして実現され、キーとしてOI
D、バリューとしてディスクアドレスとメモリアドレス
の組みを持っている。図5に示す例では、主記憶装置上
の100番地にオブジェクトテーブルが存在し、OID
が“100”の永続オブジェクトは主記憶装置上の12
3番地に存在し、OIDが“101”のオブジェクトは
主記憶装置に存在していないことを表している。この場
合は、OIDが“100”と“102”のエントリのプ
ローブ(要素の参照)があったので、それらのエントリ
のみが存在している。
【0054】次に、オブジェクト指向データベース管理
システム10による、永続オブジェクトのOIDからメ
モリアドレスを求める処理について、図6に示すフロー
チャートを参照して説明する。
【0055】アプリケーションプログラム(ユーザ)か
らオブジェクト指向データベース管理システム10にO
IDが与えられると、永続オブジェクト管理モジュール
12は、オブジェクトテーブル管理モジュール11に対
して、アプリケーションプログラムからのOIDを指定
してアドレス情報の問合わせを行う。
【0056】オブジェクトテーブル管理モジュール11
では、与えられたOIDに基づいて、オブジェクトテー
ブルのキーとしてOIDを与え、ディスクアドレスとメ
モリアドレスの組みであるバリューを得て(ステップ6
01)、これを問合わせ結果として永続オブジェクト管
理モジュール12に返す。
【0057】永続オブジェクト管理モジュール12で
は、問合わせ結果であるバリューの値が「0」であるか
否かを判断する(ステップ602)。ここでバリューが
「0」の場合(この場合は、与えられたOIDが登録さ
れているエントリが存在しないことを意味する)は、指
定されたOIDを持つ永続オブジェクトは存在しないと
判断し(ステップ603)、その後、処理を終了する。
【0058】ステップ602でバリューが「0」でない
場合(この場合は、与えられたOIDが登録されている
エントリが存在し、更に、少なくともそのエントリにデ
ィスクアドレスが登録されていることを意味する)は、
バリューのメモリアドレスが「0」であか否かを判断す
る(ステップ604)。
【0059】ここで、メモリアドレス値が「0」でない
場合は、永続オブジェクトは主記憶装置にバッファされ
ていることになるので、そのメモリアドレスを要求元の
アプリケーションプログラムに返す(ステップ60
5)。
【0060】ステップ604でメモリアドレスが「0」
の場合は、永続オブジェクトは主記憶装置上にバッファ
されていないことを意味するので、永続オブジェクト管
理モジュール12は、バリューのディスクアドレスの番
地に基づいて、2次記憶装置上での永続オブジェクトを
主記憶装置上に読み込んでバッフアし(ステップ60
6)、その読み込んだ永続オブジェクトを主記憶装置に
割り付けて、ここに書き込む(ステップ607)。その
後、今割り付けた永続オブジェクトのメモリアドレスを
オブジェクトテーブル管理モジュール11に渡して、ア
ドレス情報の書き込みを依頼する。
【0061】オブジェクトテーブル管理モジュール11
では、その割り付けた主記憶装置上の番地(メモリアド
レス)をオブジェクトテーブルのバリューのメモリアド
レスに登録する(ステップ608)。
【0062】ステップ608が終了した場合、永続オブ
ジェクト管理モジュール12は、割り付けた主記憶装置
上の番地(メモリアドレス)を、アプリケーションプロ
グラムに返す(ステップ609)。
【0063】上述した例では、1つのデータファイル内
に存在するオブジェクトのアクセスについて説明した
が、データベースファイル間を跨がるオブジェクト間の
参照も起こり得るので、次にその場合のデータの論理的
構造を説明する。その論理的構造を図7に示す。
【0064】この図に示す例においては、図3に示した
2つのデータベースファイル間に跨がってオブジェクト
間で参照が行われていることを示している。すなわち、
データベースファイル340内のOIDが“710”の
永続オブジェクト720が、他のデータベースファイル
310内のOIDが“730”の永続オブジェクト74
0を参照している。
【0065】このようにデータベースファイル間を跨が
るオブジェクト間の参照を実現するために、この実施例
においては、データベースファイルに、1つのオブジェ
クトテーブルに加えて、更に1つの外部オブジェクトテ
ーブルを持たせている。その外部オブジェクトテーブル
は、自己のテーブルが属しているデータベースファイル
内の永続オブジェクトが参照している他のデータベース
ファイルの永続オブジェクトのOIDをキーとして、ま
た他のデータベースファイルをバリューとして持つハッ
シュテーブルである。例えば外部オブジェクトテーブル
にはOIDとデータベースファイルの論理アドレスとが
対応付けされて登録される。
【0066】係るデータ構造のデータをアクセスするに
あたって、オブジェクト指向データベース管理システム
10は、OIDが与えられると、最初にオブジェクトテ
ーブルをアクセスする。ここで、与えられたOIDに対
応する永続オブジェクトが見付からなかった場合は、次
に外部オブジェクトテーブルをアクセスする。このテー
ブルでも該当する永続オブジェクトが見付からなかった
場合は、与えられたOIDに対応する永続オブジェクト
は存在しないことになる。
【0067】ここで、図7に示した例におけるオブジェ
クト間の参照を実現するためのデータ構造を図8に示
す。同図においては、データベースファイル310には
外部オブジェクトテーブル810が存在し、またデータ
ベースファイル340には外部オブジェクトテーブル8
20が存在している。外部オブジェクトテーブル820
には、永続オブジェクト720が参照している永続オブ
ジェクト740のOIDつまり“730”に対応して、
永続オブジェクト740が属するデータベースファイル
310を示す情報つまり論理アドレスが登録されてい
る。このような論理的構造のデータはメモリ空間にマッ
ピング(mapping )され操作される。
【0068】今、OIDとして“730”が与えられた
とすると、オブジェクト指向データベース管理システム
10は、そのOIDでオブジェクトテーブル350のバ
リュー(永続オブジェクト)を得ることになる。しか
し、そのテーブルには該当する永続オブジェクトは登録
されていないので、次に、そのOIDで外部オブジェク
トテーブル820のバリュー(データベースファイル)
を得ることになる。そのテーブルには“730”のOI
Dに対応してデータベースファイル310を示す情報
(ディスクアドレス)が登録されているので、オブジェ
クト指向データベース管理システム10は、そのディス
クアドレスに基づいてデータベースファイル310をア
クセスし、“730”のOIDでオブジェクトテーブル
320のバリュー(永続オブジェクト)を得ることにな
る。このテーブルには“730”のOIDに対応して永
続オブジェクト740のディスクアドレスが登録されて
いるので、そのディスクアドレスに基づいて永続オブジ
ェクト740を参照することができる。
【0069】次に、データベースファイルを跨がるオブ
ジェクトの参照が発生する可能性がある場合において、
オブジェクト指向データベース管理システム10による
永続オブジェクトの参照の参照処理について図9を用い
て説明する。
【0070】図9は、永続オブジェクト管理モジュール
12でオブジェクトテーブルと外部オブジェクトテーブ
ルを利用して、永続オブジェクトのOIDからメモリア
ドレスを求める処理手順のフローチャートである。
【0071】アプリケーションプログラム(ユーザ)か
らオブジェクト指向データベース管理システム10にO
IDが与えられると、永続オブジェクト管理モジュール
12は、オブジェクトテーブル管理モジュール11に対
して、アプリケーションプログラムからのOIDを指定
してアドレス情報(オブジェクトテーブル)の問合わせ
を行う。
【0072】オブジェクトテーブル管理モジュール11
は、与えられたOIDに基づいて、オブジェクトテーブ
ルのキーとしてOIDを与え、ディスクアドレスとメモ
リアドレスの組みであるバリューを得て(ステップ90
1)、これを問合わせ結果として永続オブジェクト管理
モジュール12に返す。永続オブジェクト管理モジュー
ル12は、問合わせ結果であるバリューが「0」である
か否かを判断する(ステップ902)。ここで、バリュ
ーが0でない場合は、図6に示す処理手順のステップ6
04〜609と同様の処理が行われる(ステップ903
〜908)。
【0073】ステップ902でバリューが「0」の場合
は、永続オブジェクト管理モジュール12は、オブジェ
クトテーブル管理モジュール11に対して、アプリケー
ションプログラムからのOIDを指定してアドレス情報
(外部オブジェクトテーブル)の問合わせを行う。
【0074】オブジェクトテーブル管理モジュール11
では、与えられたOIDに基づいて、外部オブジェクト
テーブルのキーとしてOIDを与え、データベースファ
イルのバリューを得て(ステップ909)、これを問合
わせ結果として永続オブジェクト管理モジュール12に
返す。
【0075】永続オブジェクト管理モジュール12で
は、問合わせ結果であるバリューのデータベースファイ
ルが「0」であるか否かを判断する(ステップ91
0)。
【0076】ステップ910において、得られたバリュ
ーが「0」の場合は、指定されたOIDを持つ永続オブ
ジェクトは存在しないと判断し(ステップ911)、そ
の後、処理を終了し、これに対し、得られたバリューが
「0」でない場合は、永続オブジェクト管理モジュール
12に対して、オブジェクトテーブルのアドレス情報の
問合わせ要求を行う。
【0077】永続オブジェクト管理モジュール12で
は、そのOIDが表すデータベースファイルのオブジェ
クトテーブルにおいて、指定されたOIDからディスク
アドレスとメモリアドレスの組みであるバリューを求め
(ステップ911)、これを問合わせ結果として返す。
【0078】オブジェクトテーブル管理モジュール11
では、結果であるバリューが「0」であるか否かを判断
し(ステップ912)、バリューが0の場合はステップ
911に進み、バリューが「0」でない場合はステップ
903に戻る。
【0079】以上説明したようにこの実施例では、ハッ
シュテーブルでオブジェクトテーブルを実現することに
より、オブジェクトの本来の意図である永続オブジェク
トのOIDとディスアドレスとメモリアドレスの3つの
値が管理でき、更に以下の作用効果がある。
【0080】(1)オブジェクトテーブルは、主記憶上
ではODIとディスクアドレス、更に主記憶上に存在す
る永続オブジェクトのメモリアドレスのみを保持するよ
うにしているので、オブジェクトテーブルを主記憶上の
永続オブジェクトの管理のバッファとして利用できる。
【0081】(2)オブジェクトテーブルを利用し、組
のバリューが存在するか否かの判定によって、あるOI
Dを持つ永続オブジェクトの存在が判定できる。組のバ
リューが存在しないときは永続オブジェクトが存在しな
いと判定することができる。
【0082】(3)オブジェクトテーブルは2次記憶上
ではODIとディスクアドレスの対応のみを保持してい
るので、オブジェクトテーブルが肥大化しても、2次記
憶上の記憶領域は無駄になら無い。またオブジェクトテ
ーブルは、主記憶上では、全てのデータが必要でなくプ
ローブ(要素の参照)のあったエントリのデータのみを
保持しているので、主記憶上の記憶領域も、必要なもの
のみ存在するので圧迫されない。
【0083】次に、この発明に係るオブジェクト指向デ
ータベースおよび検索方法の第2の実施例を図10乃至
図13の添付図面を参照して説明する。
【0084】図10は、この発明を適用したオブジェク
ト指向データベースシステムの第2の実施例を示す機能
ブロックである。
【0085】同図において、オブジェクト指向データベ
ースシステムは、オブジェクシ指向データベース管理シ
ステム1010、2次記憶手段1020、主記憶手段1
030から構成されている。
【0086】2次記憶手段1020には永続オブジェク
トやオブジェクトテーブルなどのデータが格納されてお
り、主記憶手段1030には2次記憶手段1020から
ロードされたデータが記憶される。
【0087】オブジェクシ指向データベース管理システ
ム1010は、永続オブジェクト管理モジュール101
1,トランザクションモジュール1012から構成され
ている。
【0088】永続オブジェクト管理モジュール1011
は、永続オブジェクトのキャッシュの有効か無効かを判
断する操作機能(以下、有効/無効判断操作機能とい
う)1011Aと、永続オブジェクトを2次記憶手段1
020から主記憶手段1030に読み込む操作機能(読
込み操作機能という)1011Bと、永続オブジェクト
のキャッシュを無効とする操作機能(キャッシュ無効操
作機能という)1011Cとを有しており、これらの操
作機能を実行して、永続オブジェクトを2次記憶手段1
020で保管し管理し、必要に応じて主記憶手段103
0に読み込み、永続オブジェクトの操作を行うと共に、
永続オブジェクトの生成や消滅により、主記憶手段10
30や2次記憶手段1020のデータ内容を更新する。
永続オブジェクトのキャッシュは永続オブジェクト管理
モジュール1011によって管理される。
【0089】トランザクションモジュール1012は、
永続オブジェクトにロックを掛ける操作機能1012A
と、永続オブジェクトのロックを外す操作機能1012
Bと、トランザキションの異常終了に対する処理を行う
操作機能1012Cとを有しており、これらの操作機能
を実行して、2相施錠方式のロックに基づく並行制御を
行う。操作機能1012Cとしては、例えばシステムの
エラーやトランザクションのデットロック等が発生して
トランザクションが異常終了した場合に、そのトランザ
クションの再実行とか異常終了した旨をアプリケーショ
ンプログラム(ユーザ)に通知したりする処理がある。
なお2相施錠方式のロックに基づく並行制御については
周知技術を用いて実現することができるので、ここでは
その説明を省略する。
【0090】係る構成のオブジェクト指向データベース
管理システム1010においては、永続オブジェクト管
理モジュール1011の各操作機能とトランザクション
モジュール1012の操作機能は密接な関係になってい
る。
【0091】すなわち、操作機能1012A、操作機能
1012Bは共に、有効/無効判断操作機能1011
A、読込み操作機能1011Bと関係し、操作機能10
12Cは有効/無効判断操作機能1011A、読込み操
作機能1011B及びキャッシュ無効操作機能1011
Cと関係する。
【0092】なおこの実施例においては、オブジェクト
指向データベース管理システム1010は、上述した機
能を実現するためのプログラム(ソフトウェア)を、プ
ロセッサや中処理装置等の制御手段が実行することによ
り実現されている。勿論、ハードウェアやファームウェ
アで実現することもできる。
【0093】図10に示した実施例のオブジェクト指向
データベースシステムを実現するためのハードウェア構
成は、図2に示した構成と同様になっている。オブジェ
クト指向データベース管理システム1010を実行する
データプロセッサ、主記憶手段30の機能を果たす主記
憶装置、2次記憶手段20の機能を果たす2次記憶装
置、ディスプレイ装置から構成されている。
【0094】この実施例においては、1つの永続オブジ
ェクトを表現するに当たって、主記憶装置上での表現形
式と2次記憶装置上での表現形式が異なっている。それ
らの表現形式の一例を図11に示す。図11(a)は主
記憶装置上での永続オブジェクトを示したものであり、
図11(b)は2次記憶装置上での永続オブジェクトを
示したものである。
【0095】主記憶装置での永続オブジェクトは、図1
1(a)に示すように、クラスの情報1110や属性値
の情報1120、キャッシュが有効か否かを示す情報
(例えばフラグ)1130を有している。これに対し、
2次記憶装置情での永続オブジェクトは、図11(b)
に示すように、クラスの情報1110や属性値の情報1
120を有している。しかし、キャッシュが有効か否か
を示す情報は有していない。
【0096】このように主記憶装置での永続オブジェク
トのみにキャッシュが有効か否かを示す情報が設けられ
ているのは、その永続オブジェクトのキャッシュが有効
か否かを判断するためだからである。従って2次記憶装
置情での永続オブジェクトにはその情報を設けておく必
要はないのである。
【0097】キャッシュが有効か否かを示す情報は、有
効無効判断操作機能1011Aによって参照される。こ
こで無効であると判定された場合は、読込み操作機能1
011Bによって、2次記憶装置から該当する永続オブ
ジェクトが読み込まれると共に、その永続オブジェクト
にキャッシュが有効である旨のフラグが設定される。ま
たキャッシュが有効か否かを示す情報は、キャッシュ無
効操作機能1011Cによって、有効から無効に変更さ
れる。
【0098】次に、トランザクションモジュール101
2において永続オブジェクトにロックを掛ける操作の処
理手順を図12に示すフローチャートを参照して説明す
る。操作機能1012がロックを掛ける操作を実行した
とき、そのロックを掛ける操作の先頭で、有効/無効判
断操作機能1011Aを呼び出す。有効/無効判断操作
機能1011Aでは、対象となっている主記憶装置上の
永続オブジェクトのキャッシュが有効か否かを示すフラ
グに基づいて、その永続オブジェクトのキャッシュが有
効か否かを判断する(ステップ1201)。無効の場合
は、読込み操作機能1011Bを呼び出す。
【0099】読込み操作機能1011Bでは、2次記憶
装置から該当する永続オブジェクトを読み込むと共に
(ステップ1202)、主記憶装置上の永続オブジェク
トのキャッシュのフラグを有効にし(ステップ120
3)、更にキャッシュが有効になった旨を操作機能10
12に通知する。
【0100】操作機能1012は、キャッシュが有効を
示す旨であったときは、2相施錠方式に基づくロックの
操作を継続する(ステップ1204)。ステップ120
1でキャッシュが有効の場合はステップ1204に進
む。
【0101】なお、主記憶装置上の永続オブジェクトの
キャッシュのフラグを無効にするのは、 (a)あるトランザクションで永続オブジェクトの状態
を変更して、そのトランザクションが異常終了した場
合。これは主記憶装置上の永続オブジェクトが更新され
が、トランザクションが異常終了となったので、変更前
の永続オブジェクトに対して操作を行わなければならな
い場合であるの、更新された永続オブジェクトを無効と
するためである。これにより2次億装置から更新前の永
続オブジェクトが主記憶装置に読込まれることになる。 (b)異なるマシン(異なるオブジェクト指向データベ
ースシステム)の主記憶装置でのトランザクションで永
続オブジェクトの状態が変更されて、そのトランザクシ
ョンが正常終了したことにより、2次記憶装置の永続オ
ブジェクトが更新された場合である。
【0102】いずれの場合も、トランザクションモジュ
ール1012がそれらの状態を検知して、永続オブジェ
クト管理モジュール1011にキャッシュの無効操作を
指示する。
【0103】次に、トランザクションに跨がって、主記
憶装置上にキャッシュされた永続オブジェクトを利用す
る場合の処理について、具体例を挙げて説明する。
【0104】図13は、トランザクション間を跨がって
キャッシュされた永続オブジェクトを利用する場合の処
理を説明するための図を示したものである。
【0105】なお図13において、Obj1、Obj1
´は永続オブジェクトを示しており、t1、t2、…、t13
は時間を示し、これらはt1<t2、…、<t13 の関係が成
立するものとする。
【0106】いま、ユーザ1が、トランザクションTr
1とトランザクションTr2に跨がって、キャッシュさ
れた永続オブジェクトに対して操作するものと仮定し、
このときトランザクションTr1とトランザクションT
r2との間に、ユーザ2がトランザクションTr3を実
行するものと仮定する。
【0107】なおこの実施例では、クライアント・サー
バ・モデルで実現されるものとし、クライアント(アプ
リケーションプログラム)として先に示したユーザ1、
ユーザ2、データベース(2次記憶装置)をサーバとす
る。このクライアント・サーバ・モデルを実現するため
に、例えばリモート・プロシジャ・コール(RPC)を
用いている。このRPC自体は周知技術なので、ここで
は説明を省略する。
【0108】ユーザ1において、時点t1でトランザクシ
ョンTr1をオープンし、時点t2でロックし、2次記
憶装置からObj1を主記憶装置に読込んでキャッシュ
すると、そのObj1は有効となる。時点t3 でObj
1を参照(reference )し、時点t4でアンロック(ロッ
クを外す)し、時点t5でコミット(commit)して、トラ
ンザクションTr1を正常終了したとする。この場合に
は、ユーザ1が属しているマシンの主記憶装置及び2次
記憶装置(サーバ)ともにObj1になっている。
【0109】次に、ユーザ2において、時点t6でトラン
ザクションTr2をオープンし、時点t7 でロックし、
2次記憶装置からObj1を主記憶装置に読込んでキャ
ッシュすると、そのObj1は有効となる。時点t8 で
Obj1を更新(update)し、時点t9でアンロックし、
時点t5でコミット(commit)して、トランザクションT
r2を正常終了したとする。この場合は、ユーザ2が属
しているマシンの主記憶装置及び2次記憶装置(サー
バ)ともにObj1´になっている。
【0110】続いて、ユーザ1が、時点t11 でトランザ
クションTr2をオープンし、時点t12でロックする。
この場合は、ユーザ2でObj1を更新したため、先に
説明した主記憶装置上の永続オブジェクトのキャッシュ
のフラグを無効にする場合の(b)に該当するので、ユ
ーザ1の側においては、時点t12でのロックの際に、主
記憶装置にキャッシュされているObj1のキャッシュ
が有効か否かを示す情報は有効から無効に変更される。
このときキャッシュされているObj1のキャッシュが
無効であるので、該当するObj1´を2次記憶装置
(サーバ)から主記憶上に読み直して、ロックの操作を
継続する。所定の操作が終了したらアンロックし、時点
t13 でコミットする。
【0111】なお先に説明した主記憶装置上の永続オブ
ジェクトのキャッシュのフラグを無効にする場合の
(b)においては、ユーザ1(クライアント)がサーバ
(2次記憶装置)にロックする旨を通知すると、サーバ
は対象としているデータ(この場合はObj1)が変更
されている旨をユーザ1に返す。このときユーザ1は、
Obj1のキャッシュが有効か否かを示すフラグを有効
から無効に更新する。その後、ユーザ1は該当するデー
タ(この場合はObj1´)をロードしに行くこととな
る。これに対し、先に説明した主記憶装置上の永続オブ
ジェクトのキャッシュのフラグを無効にする場合の
(a)においては、クライアントはアボートの対象とな
ったオブジェクトのキャッシュが有効か否かを示すフラ
グを有効から無効に更新することになる。以後の処理は
上記の処理と同様である。
【0112】なおユーザ2の側において、トランザクシ
ョンTr3の時点8 でObj1を参照しObj1の状態
が変化せず、トランザクションTr3が正常終了した場
合には、ユーザ1の側において、キャッシュされている
Obj1は有効(何故ならばトランザクションTr3の
時点8 でObj1が参照されたからである)であるの
で、そのままロックの操作を継続することができる。
【0113】以上説明したようにこの実施例によれば、
主記憶上のキャッシュが有効か無効かのチェックを、2
相施錠方式におけるデータロックの一部として実現し、
更にロック時にキャッシュが無効であると判断した時点
で、永続オブジェクトを2次記憶から主記憶上に読み直
して、ロックの操作を継続するようにしているので、キ
ャッシュのチェックをデータのロック時に行うことで、
トランザクションを跨がってキャッシュを有効に利用で
き、永続オブジェクトの重複した読み込みが防げる。更
に、並行処理制御によって、複数のユーザは矛盾なくデ
ータをアクセスできる。
【0114】次に、この発明に係るオブジェクト指向デ
ータベースおよび検索方法の第3の実施例を図14乃至
図17の添付図面を参照して説明する。
【0115】この実施例の特徴としては、永続オブジェ
クトを、オブジェクト指向言語の提供するコンストラク
タ(で生成したオブジェクト(揮発オブジェクト(vola
tileObject ))と、永続オブジェクトに付加すべき種
々の情報(所属するデータベースファイル、クラスの定
義、キャッシュの有効/無効のフラグ、オブジェクトの
2次記憶装置上の物理的位置等)を持するハンドラの組
としたメモリ形式で実現していることである。
【0116】また永続オブジェクトの主記憶上の位置情
報を、ハンドラのアドレスとして表し、かつ各ハンドラ
は対応する揮発オブジェクトのアドレスを保持するよう
にしている。
【0117】また永続オブジェクトから永続オブジェク
トへの参照は、主記憶上では、参照する永続オブジェク
トを構成する揮発オブジェクトの属性値として、参照さ
れる永続オブジェクトを構成するハンドラのアドレスを
保持させるようすることで実現している。
【0118】更に永続オブジェクトの削除に当たって
は、構成する揮発オブジェクトのみを主記憶上の領域か
ら解放し、他の永続オブジェクトから前記削除された永
続オブジェクトへの参照がある間は、該削除された永続
オブジェクトを構成するハンドラは永続オブジェクトが
削除されたことを示すフラグを立て、主記憶上の領域は
解放せずに、他の永続オブジェクトから該削除された永
続オブジェクトへの参照がなくなったときに、該削除さ
れた永続オブジェクトを構成するハンドラの主記憶上の
領域を解放するようにしている。
【0119】図14は、永続オブジェクトの主記憶上の
表現であるメモリ形式を示したものである。
【0120】永続オブジェクトは、主記憶上ではハンド
ラ1410と揮発オブジェクト1420の組みで表現さ
れる。ハンドラ1410が主記憶上の永続オブジェクト
を代表しており、ハンドラ1410は対応する揮発オブ
ジェクト1420を参照している。ハンドラ1410
は、対応する揮発オブジェクトの位置1411、永続オ
ブジェクトの識別子1412、所属するデータベースフ
ァイル1413、クラスの定義1414、2次記憶装置
に保存される際の位置1415、主記憶のキャッシュが
有効か否かを示すフラグ1416、永続オブジェクトが
まだ存在するか否かを示すフラグ1417などの情報を
持っている。
【0121】揮発オブジェクト1420は、そのクラス
定義から与えられるコンストラクタで生成され、かつ属
性値の情報1421を持っており、永続オブジェクトを
構成する要素でない通常の揮発オブジェクトと全く同じ
ものである。そのため、ホスト言語であるオブジェクト
指向言語の結合規則が同じように適用される。主記憶上
での永続オブジェクトの状態を変更するということは、
構成する揮発オブジェクトの状態(属性値)を変更する
ということである。
【0122】図15は、永続オブジェクトから永続オブ
ジェクトへの参照の主記憶上での表現方法を示してい
る。永続オブジェクト1の属性で、永続オブジェクト2
を参照する場合、ハンドラ2のアドレスを、揮発オブジ
ェクト1の属性値2とすることで実現することができ
る。
【0123】次に、永続オブジェクトの削除に当たっ
て、主記憶上の領域の解放の処理手順を図16に示すフ
ローチャートを参照して説明する。
【0124】主記憶上の領域の解放に当たっては、揮発
オブジェクトの主記憶上での領域が解放され(ステップ
1601)、次に、他の永続オブジェクトが参照してい
るか否かが判断される(ステップ1602)。
【0125】ここで、参照していない場合は、構成する
ハンドラの主記憶上での領域が解放される(ステップ1
603)。ステップ1602で参照していない場合は、
永続オブジェクトの消滅を表すフラグが、構成するハン
ドラ(図14に示す永続オブジェクトはまだ存在するか
否かを示すフラグ1417)に立てられ(ステップ16
02)、ステップ1602に戻る。
【0126】次に、永続オブジェクトから他の永続オブ
ジェクトへの参照を説明するための処理を、図17に示
す具体例を挙げて説明する。
【0127】ここでは、OIDが“10”であるObject
AがOIDが“20”であるObjectBを参照している場
合を考える。
【0128】2次記憶上では、OIDが“10”である
ObjectAは、ObjectBのOID(20)を保持してい
る。
【0129】主記憶上では、ObjectAは、123番地の
メモリアドレスに存在するハンドラと、456番地のメ
モリアドレスに存在する揮発オブジェクトとで表現され
ており、一方、ObjectBは、789番地のメモリアドレ
スに存在するハンドラと、890番地のメモリアドレス
に存在する揮発オブジェクトとで表現されている。
【0130】ここで123番地のメモリアドレスはハン
ドラの位置情報であって、かつObjectAの主記憶上の位
置情報をも示している。そのハンドラには、対応する揮
発オブジェクトのアドレス(456番地)が保持されて
いる。その揮発オブジェクトには、ObjectAが参照して
いるObjectBを構成しているハンドラのアドレス(78
9)が属性値として保持されている。
【0131】同様に、789番地のメモリアドレスはハ
ンドラの位置情報であって、かつObjectBの主記憶上の
位置情報をも示している。そのハンドラには、対応する
揮発オブジェクトのアドレス(890番地)が保持され
ている。
【0132】また永続オブジェクトから永続オブジェク
トへの参照は、主記憶上では、参照する永続オブジェク
トを構成する揮発オブジェクトの属性値として、参照さ
れる永続オブジェクトを構成するハンドラのアドレスを
保持させるようすることで実現している。
【0133】以上説明したように、この実施例によれ
ば、主記憶上の永続オブジェクトは揮発オブジェクトと
ハンドラの組みで管理するようにしたので、永続オブジ
ェクトは、揮発オブジェクトによりホスト言語であるオ
ブジェクト指向言語の結合規則に従うことができる。ま
たハンドラは、主記憶上の他のデータのキャッシュや自
分自身の状態を示すフラグとして様々な情報(所属する
データベースファイル、クラスの定義、キャッシュの有
効/無効のフラグ、オブジェクトの2次記憶装置上の物
理的位置等)を持つことができる。
【0134】
【発明の効果】この発明によれば、自己が管理する永続
オブジェクトの論理アドレスと識別子とを組にしてオブ
ジェクトテーブルで管理するとともに、自己が管理する
永続オブジェクトが参照する他のデータベースファイル
で管理される永続オブジェクトの識別子と該他のデータ
ベースファイルの論理アドレスとを組にして外部オブジ
ェクトテーブルで管理し、永続オブジェクトの識別子で
検索を行う際に、オブジェクトテーブルを検索し、オブ
ジェクトテーブルで検索が出来なかった場合に外部オブ
ジェクトテーブルを検索するように構成したので、他の
データベースが管理する永続オブジェクトに対しては、
そのデータベースの論理アドレスのみを管理すればよ
く、記憶領域を有効に利用することができる。
【0135】また、外部オブジェクトテーブルで識別子
が検索できた場合に、検索された識別子に対応するデー
タベースから該識別子に対応する永続オブジェクトを取
得するため、他のデータベースに対して不要なアクセス
を行う必要が無く、これにより、処理効率を向上させる
ことができる。
【0136】
【0137】
【0138】
【図面の簡単な説明】
【図1】この発明を適用したオブジェクト指向データベ
ースシステムの第1の実施例を示す機能ブロック図。
【図2】図1に示したシステムを実現するためのハード
ウェア構成を示すブロック図。
【図3】第1の実施例におけるオブジェクト指向データ
ベース管理システムで管理するデータの論理的なデータ
構造を示す図。
【図4】第1の実施例におけるオブジェクトテーブルの
2次記憶装置上でのデータ構造を示す図。
【図5】第1の実施例におけるオブジェクトテーブルの
主記憶装置上でのデータ構造を示す図。
【図6】第1の実施例におけるオブジェクト指向データ
ベース管理システムによる永続オブジェクトのアクセス
処理の動作を示すフローチャート。
【図7】第1の実施例におけるデータベースファイル間
に跨がって永続オブジェクトの参照が行われる場合の、
そのデータの論理的なデータ構造を示す図。
【図8】図7に示したデータ構造における永続オブジェ
クト間の参照を実現するためのデータ構造を示す図。
【図9】第1の実施例におけるオブジェクト指向データ
ベース管理システムによるデータベースファイル間に跨
がって永続オブジェクトの参照が行われる場合のその参
照処理の動作を示すフローチャート。
【図10】この発明を適用したオブジェクト指向データ
ベースシステムの第2の実施例を示す機能ブロック図。
【図11】第2の実施例における永続オブジェクトの主
記憶装置上での表現形式と2次記憶装置上での表現形式
を説明するための図。
【図12】第2の実施例におけるトランザクションモジ
ュールにおいて永続オブジェクトにロックを掛ける操作
の処理手順を示すフローチャート。
【図13】第2の実施例におけるトランザクション間に
跨がってキャッシュされた永続オブジェクトを操作する
場合の手順を説明するための図。
【図14】この発明に係るオブジェクト指向データベー
スおよび検索方法の第3の実施例における永続オブジェ
クトの主記憶装置上での表現形式を説明するための図。
【図15】第3の実施例における永続オブジェクトから
他の永続オブジェクトへの参照を説明するための図。
【図16】第3の実施例における永続オブジェクトを削
除するに際の主記憶装置上の領域解放の処理手順を示す
フローチャート。
【図17】第3の実施例における永続オブジェクトから
他の永続オブジェクトへの参照を説明するための具体例
を示す図。
【符号の説明】
10、1010…オブジェクト指向データベース管理シ
ステム、 11…オブジェクトテーブル管理モジュール、 12、1011…永続オブジェクト管理モジュール、 20、1020…2次記憶手段、 21、30…オブジェクトテーブル、 22…永続オブジェクト群、 30、1030…主記憶手段、 32…永続オブジェクト、 210…主記憶装置、 220…2次記憶装置、 230…データプロセッサ、 240…ディスプレイ装置、 1012…トランザクションモジュール、 1410…ハンドラ、 1420…揮発オブジェクト。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 鈴木 慎司 外2名,永続的プログラ ミング言語におけるオブジェクト識別子 の主記憶内表現について,情報処理学会 研究報告,日本,情報処理学会,1991年 5月24日,Vol. 91, No. 46 (91−DBS−83),83−5 Won KIM 外3名,Archi tecture of the ORI ON Next−Generation Database System,I EEE TRANSACTIONS O N KNOWLEDGE AND DA TA ENGINEERING,米国, IEEE,1990年 3月,Vol. 2, No. 1,p. 109 − 124 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 G06F 9/44

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のデータベースファイルに基づいて
    永続オブジェクトを検索するオブジェクト指向データベ
    ースにおいて、 第1のデータベースファイルで管理される永続オブジェ
    クトの論理アドレスと該永続オブジェクトの識別子とを
    組にして管理するオブジェクトテーブルを保持するオブ
    ジェクトテーブル保持手段と、 前記第1のデータベースファイルで管理される永続オブ
    ジェクトが参照する第2のデータベースファイルで管理
    される永続オブジェクトの識別子と該第2のデータベー
    スファイルの論理アドレスとを組にして管理する外部オ
    ブジェクトテーブルを保持する外部オブジェクトテーブ
    ル保持手段と、 永続オブジェクトの識別子で前記第1のデータベースフ
    ァイルを検索する際に、前記オブジェクトテーブルを検
    索し、該オブジェクトテーブルで検索が出来なかった場
    合に前記外部オブジェクトテーブルを検索する検索手段
    とを備えることを特徴とするオブジェクト指向データベ
    ース。
  2. 【請求項2】 前記検索手段は、前記外部オブジェクト
    テーブルで識別子が検索できた場合、該検索された識別
    子に対応する前記第2のデータベースから該識別子に対
    応する永続オブジェクトを取得することを特徴とする請
    求項1記載のオブジェクト指向データベース。
  3. 【請求項3】 複数のデータベースファイルに基づいて
    永続オブジェクトを検索するオブジェクト指向データベ
    ースが実行する検索方法において、 第1のデータベースファイルで管理される永続オブジェ
    クトの論理アドレスと該永続オブジェクトの識別子とを
    組にして管理するオブジェクトテーブルと、前記第1の
    データベースファイルで管理される永続オブジェクトが
    参照する第2のデータベースファイルで管理される永続
    オブジェクトの識別子と該第2のデータベースファイル
    の論理アドレスとを組にして管理する外部オブジェクト
    テーブルとを保持するステップと、 永続オブジェクトの識別子で前記第1のデータベースフ
    ァイルを検索する際に、前記オブジェクトテーブルを検
    索し、該オブジェクトテーブルで検索が出来なかった場
    合に前記外部オブジェクトテーブルを検索するステップ
    とを備えることを特徴とする検索方法。
  4. 【請求項4】 前記検索を実行するステップは、 前記外部オブジェクトテーブルで識別子が検索できた場
    合、該検索された識別子に対応する前記第2のデータベ
    ースから該識別子に対応する永続オブジェクトを取得す
    ることを特徴とする請求項3記載の検索方法。
JP02698692A 1992-02-13 1992-02-13 オブジェクト指向データベースおよび検索方法 Expired - Fee Related JP3475429B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02698692A JP3475429B2 (ja) 1992-02-13 1992-02-13 オブジェクト指向データベースおよび検索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02698692A JP3475429B2 (ja) 1992-02-13 1992-02-13 オブジェクト指向データベースおよび検索方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003038228A Division JP3797336B2 (ja) 2003-02-17 2003-02-17 オブジェクト指向データベースシステムおよびそのオブジェクト管理方法

Publications (2)

Publication Number Publication Date
JPH05225034A JPH05225034A (ja) 1993-09-03
JP3475429B2 true JP3475429B2 (ja) 2003-12-08

Family

ID=12208491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02698692A Expired - Fee Related JP3475429B2 (ja) 1992-02-13 1992-02-13 オブジェクト指向データベースおよび検索方法

Country Status (1)

Country Link
JP (1) JP3475429B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2924705B2 (ja) * 1995-04-10 1999-07-26 富士ゼロックス株式会社 メモリ管理方法およびオブジェクト管理方法
JP2964926B2 (ja) * 1995-08-29 1999-10-18 富士ゼロックス株式会社 データベース管理装置及び方法
JPH0962560A (ja) * 1995-08-30 1997-03-07 Fuji Xerox Co Ltd データベース装置
JP3363292B2 (ja) * 1995-10-12 2003-01-08 株式会社日立製作所 データベース管理システム
WO1997029421A1 (fr) * 1996-02-05 1997-08-14 Athena Telecom Lab, Inc. Procede et equipement de gestion d'objets
US5870753A (en) * 1996-03-20 1999-02-09 International Business Machines Corporation Method and apparatus for enabling a persistent metastate for objects in an object oriented environment
JPH10240589A (ja) * 1997-02-21 1998-09-11 Hitachi Ltd 実データ遅延取出しを行うデータベース処理方法
JP3022378B2 (ja) * 1997-02-21 2000-03-21 日本電気株式会社 異プログラム言語で構成されたデータベースシステムの検索方法
JP3211956B2 (ja) * 1999-08-31 2001-09-25 勲 清水 データベースシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Won KIM 外3名,Architecture of the ORION Next−Generation Database System,IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING,米国,IEEE,1990年 3月,Vol. 2, No. 1,p. 109 − 124
鈴木 慎司 外2名,永続的プログラミング言語におけるオブジェクト識別子の主記憶内表現について,情報処理学会研究報告,日本,情報処理学会,1991年 5月24日,Vol. 91, No. 46 (91−DBS−83),83−5

Also Published As

Publication number Publication date
JPH05225034A (ja) 1993-09-03

Similar Documents

Publication Publication Date Title
US6128771A (en) System and method for automatically modifying database access methods to insert database object handling instructions
JP2964926B2 (ja) データベース管理装置及び方法
US5706506A (en) Method and apparatus for managing relational data in an object cache
US7260578B2 (en) Database-file link system and method therefor
US9256607B2 (en) Efficient file access in a large repository using a two-level cache
US6502103B1 (en) Providing composed containers and data objects to support multiple resources
US6560609B1 (en) Delegating instance management functions to underlying resource managers
AU2005316812B2 (en) Infrastructure for performing file operations by a database server
US7421458B1 (en) Querying, versioning, and dynamic deployment of database objects
US6823514B1 (en) Method and system for caching across multiple contexts
US20030195865A1 (en) Transaction-aware caching for access control metadata
JP3475429B2 (ja) オブジェクト指向データベースおよび検索方法
Vaughan et al. Casper: a cached architecture supporting persistence
US8180745B2 (en) Persistent object references to parallel database containers
Maier Why object-oriented databases can succeed where others have failed
US7716260B2 (en) Techniques for transaction semantics for a database server performing file operations
JP3797336B2 (ja) オブジェクト指向データベースシステムおよびそのオブジェクト管理方法
JP2004341926A (ja) データベース管理システム、データベース管理プログラム
US7860848B2 (en) Partial sub-lock for delta object management
Kim et al. A design and implementation of savepoints and partial rollbacks considering transaction isolation levels of SQL2
JP2000148552A (ja) データベース−ファイル連携方法及びその実施システム並びにその処理プログラムを記録した媒体
Chu et al. Choices in database workstation-server architecture
Connors et al. The Papyrus Object Library
Ohn et al. Maintaining cache coherency for B+ tree indexes in a shared disks cluster
Sui DSVM consistency protocols for nested object transactions

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070926

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080926

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090926

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100926

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110926

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees