JP3590211B2 - データベース管理方式 - Google Patents
データベース管理方式 Download PDFInfo
- Publication number
- JP3590211B2 JP3590211B2 JP22353996A JP22353996A JP3590211B2 JP 3590211 B2 JP3590211 B2 JP 3590211B2 JP 22353996 A JP22353996 A JP 22353996A JP 22353996 A JP22353996 A JP 22353996A JP 3590211 B2 JP3590211 B2 JP 3590211B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- management
- information
- input
- search
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、オブジェクト指向データベースの如き、複雑なデータ構造のデータベースを管理するデータベース管理方式に係わり、特に、オブジェクト集合とユーザ定義集合との統一性を備えたデータベース管理方式に関する。
【0002】
【従来の技術】
従来、データベースは、比較的単純な構造の大量のデータを処理する事務処理分野を中心に利用されており、具体的には、階層型あるいは関係型と呼ばれるデータベース管理方式が用いられている。
【0003】
また特に、これらの中でも表形式で表示可能な単純なデータ構造を扱い、表相互の関係操作によるデータの検索・操作を実行する関係型データベース管理方式が広く用いられている。
【0004】
この種の階層型あるいは関係型のデータベース管理方式は、CAD(computer aided design) 、CASE(computer aided software engineering) 、画像処理、マルチメディア処理などの分野に適用される場合、以下の(a)〜(c)に示すように、データベースの構築が困難であり、また、無理に構築したとしても処理効率を低下させてしまい、データベース化が損失をうむ場合がある。
(a)個々のデータ要素のデータ構造が複雑である場合、データベース管理方式のデータ定義形式での直接的な表現が不可能となる。
(b)データ相互が複雑に関係し合うデータの場合、そのデータの定義及び操作指定が複雑であり、しかも全データを対象に検索・比較を実行するため、処理効率が低い。
(c)データの定義・操作機能を提供するデータベース言語は、言語自体が独立した体系であり、人間との対話形式を主な実行方法としている。このため、データベース処理と計算処理などのプログラムとを結合した処理体系の構築が困難である。
【0005】
ところで、これらの問題の解決方式として、オブジェクト指向データベースが提唱され、開発・利用され始めている。
オブジェクト指向データベースでは、C++、Smalltalk などの既存のオブジェクト指向プログラミング言語が基本とされ、さらにデータベース管理機能が付加されている。
【0006】
例えば、前述した関係型データベースでは、2次元の表でモデル化される単純なデータ構造を扱うのに対し、オブジェクト指向データベースの場合では、以下に示す通り、オブジェクト指向プログラミング言語と同一水準の複雑なデータ構造が定義可能となっている。
(ユーザ定義のデータ型)
ユーザが既知のデータ型を用いて新しいデータ型を定義し、データベース管理方式の提供する整数、文字列などの基本型と同様に利用可能である。
(任意の階層構造をもつデータ構造)
データベース管理方式の提供する基本型とユーザ定義のデータ型とから構成される構造体として新規なデータ型を定義可能である。構造体の要素は、既定義の構造体を利用可能である。
(データ型及びデータ構造に対応した処理手続き)
(派生型)
基本型及びユーザ定義型の配列、参照など元の型から派生する型の定義と利用が可能である。
(派生クラス)
継承関係による新しいデータ構造(クラス)の定義と利用が可能である。
【0007】
また、オブジェクト指向データベースでは、以上のような機能に加え、イクステントの管理機能とは異なる別体系として、ユーザ自らが定義して利用可能な集合(以下、ユーザ定義集合という)の管理機能を備えている。
但し、オブジェクト指向データベースでは、クラスに属するオブジェクトの集合(以下、イクステントという)の管理機能を持たない場合が多い。
【0008】
【発明が解決しようとする課題】
しかしながら以上のようなデータベース管理方式では、イクステントの管理機能を持たない場合が多い問題がある。
また、イクステントの管理機能を持つ場合でも、ユーザ定義集合の管理機能とは別体系であり、両者の管理機能が検索方法や集合に対する操作・処理など夫々別個の指定方式となっている。このため、イクステントとユーザ定義集合とは互いに性質や機能及びその操作がほぼ同一内容であるにも拘らず、ユーザは2通りの操作体系を覚える手間がかかる問題がある。
【0009】
また、両者のデータは、互換性がないため、イクステントの検索結果をユーザ定義集合として再検索することが不可能であり、また、イクステントとユーザ定義集合との集合操作が不可能となっており、データベースの操作性を低下させる問題がある。
【0010】
本発明は上記実情を考慮してなされたもので、イクステントとユーザ定義集合との管理機能を統合化して操作体系を覚える手間を低減させ、また、イクステントとユーザ定義集合との互換性を実現することにより、操作性を向上し得るデータベース管理方式を提供することを目的とする。
【0011】
また、本発明の第2の目的は、イクステントとユーザ定義集合との管理機能の統合化並びに両者の互換性を実現するための統一性を有し、簡潔で強力なデータベース操作言語を提供することにある。
【0012】
【課題を解決するための手段】
請求項1に対応する発明は、クラスに属するオブジェクトの集合を管理するデータベース管理方式であって、前記オブジェクトの集合、前記オブジェクトを直接的に検索するための索引情報、前記オブジェクトの集合並びに前記索引情報を検索するためのオブジェクト管理情報、及び前記オブジェクト管理情報を検索するためのクラス定義情報が夫々記憶されるデータベースと、入力されるオブジェクト生成/削除要求に基づいて、前記データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記オブジェクト管理情報及び前記索引情報の該当部分を更新するオブジェクト管理手段と、入力される索引作成/削除要求に基づいて前記データベース内の索引情報を作成又は削除する索引管理手段と、入力されるオブジェクト検索要求に基づいて、前記データベース内のオブジェクトを検索するオブジェクト検索手段と、入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段とを備えたデータベース管理方式である。
【0013】
また、請求項2に対応する発明は、請求項1に対応するデータベース管理方式において、入力される生成要求に基づいて、前記クラス定義情報及び前記オブジェクト管理情報を前記データベース内に生成するクラス管理手段を備えたデータベース管理方式である。
【0014】
さらに、請求項3に対応する発明は、請求項2に対応するデータベース管理方式において、前記オブジェクト検索手段としては、入力されるオブジェクト検索要求に基づいて、前記データベース内の該当するクラスに属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを前記オブジェクト管理情報及び前記索引情報に従って前記データベースから直接的に検索するデータベース管理方式である。
【0015】
また、請求項4に対応する発明は、ユーザ定義集合に属するオブジェクトの集合を管理するデータベース管理方式であって、前記オブジェクトの集合、前記オブジェクトを直接的に検索するための索引情報、前記オブジェクトの集合並びに前記索引情報を検索するための集合管理情報、及び前記集合管理情報を検索するための集合定義情報が夫々記憶されるデータベースと、入力される集合要素追加/削除要求に基づいて、前記データベース内のオブジェクトの集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記集合管理情報及び前記索引情報の該当部分を更新する集合要素管理手段と、入力される索引作成/削除要求に基づいて、前記データベース内の索引情報を作成又は削除する索引管理手段と、入力される集合検索要求に基づいて、前記データベース内のユーザ定義集合のオブジェクトを検索する集合検索手段と、入力される集合操作要求に基づいて、前記データベース内のユーザ定義集合相互を演算操作する集合操作手段と、入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段とを備えたデータベース管理方式である。
【0016】
さらに、請求項5に対応する発明は、請求項4に対応するデータベース管理方式において、入力される生成要求に基づいて、前記集合定義情報及び前記集合管理情報を前記データベース内に生成する集合管理手段を備えたデータベース管理方式である。
【0017】
また、請求項6に対応する発明は、請求項5に対応するデータベース管理方式において、前記集合検索手段としては、入力される集合検索要求に基づいて、前記データベース内の該当するユーザ定義集合に属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを前記集合管理情報及び前記索引情報に従って前記データベースから直接的に検索するデータベース管理方式である。
【0018】
さらに、請求項7に対応する発明は、クラスに属する集合オブジェクトの集合してなる統合オブジェクト集合、及びユーザ定義集合に属するオブジェクトの集合してなる集合オブジェクトの集合してなる統合オブジェクト集合を夫々管理するデータベース管理方式であって、前記統合オブジェクト集合、前記集合オブジェクト、前記オブジェクト集合、前記オブジェクト、前記集合オブジェクトと前記オブジェクトとを直接的に検索するための索引情報、前記集合オブジェクトに含まれて前記オブジェクト集合と前記オブジェクトと前記索引情報とを検索するための集合管理情報、前記統合オブジェクト集合と前記オブジェクト又は前記集合オブジェクトと前記索引情報とを検索するためのオブジェクト管理情報、及び前記ユーザ定義集合と前記クラスとの内容を夫々規定し且つ前記オブジェクト管理情報を検索するための統合クラス定義情報が夫々記憶されたデータベースと、入力される生成要求に基づいて、前記統合クラス定義情報及び前記オブジェクト管理情報を前記データベース内に生成するクラス管理手段と、入力されるオブジェクト生成/削除要求に基づいて、前記データベース内の統合オブジェクト集合に対し、指定されたオブジェクト又は集合オブジェクトを生成又は削除すると共に、前記オブジェクト管理情報及び前記索引情報の該当部分を更新するオブジェクト管理手段と、入力される集合要素追加/削除要求に基づいて、前記データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記集合管理情報及び前記索引情報の該当部分を更新する集合要素管理手段と、入力される索引作成/削除要求に基づいて、前記データベース内の索引情報を作成又は削除する索引管理手段と、入力される集合検索要求に基づいて、前記データベース内のクラスに属するオブジェクト又は前記データベース内のユーザ定義集合のオブジェクトを検索する集合検索手段と、入力される集合操作要求に基づいて、前記データベース内のオブジェクト管理情報と索引情報と統合オブジェクト集合とを対象とするか、あるいは前記データベース内の該当する集合オブジェクト内の集合管理情報と索引情報とオブジェクト集合とを対象とし、指定された対象とその同一対象との相互の演算操作を実行する集合操作手段と、入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段とを備えたデータベース管理方式である。
【0019】
また、請求項8に対応する発明は、請求項7に対応するデータベース管理方式において、前記集合検索手段としては、前記クラスに属する集合オブジェクト又は前記ユーザ定義集合のオブジェクトに関し、夫々前記集合オブジェクト又は前記オブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上の前記集合オブジェクト又は前記オブジェクトを前記オブジェクト管理情報、前記索引情報及び前記集合管理情報に基づいて前記データベースから直接的に検索するデータベース管理方式である。
【0020】
さらに、請求項9に対応する発明は、請求項7又は請求項8に対応するデータベース管理方式において、前記集合検索手段及び前記集合操作手段としては、夫々動作内容がC++言語の構文規則に従って記述されたデータベース管理方式である。
(作用)
従って、請求項1に対応する発明は以上のような手段を講じたことにより、オブジェクトの集合、オブジェクトを直接的に検索するための索引情報、オブジェクトの集合並びに索引情報を検索するためのオブジェクト管理情報、及びオブジェクト管理情報を検索するためのクラス定義情報が夫々記憶されるデータベースを設け、オブジェクト管理手段が、入力されるオブジェクト生成/削除要求に基づいて、データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、オブジェクト管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいてデータベース内の索引情報を作成又は削除し、オブジェクト検索手段が、入力されるオブジェクト検索要求に基づいて、データベース内のオブジェクトを検索し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込むので、オブジェクト指向データベースに関し、イクステントの管理機能を容易且つ確実に実現でき、管理性を向上させることができる。
【0021】
また、請求項2に対応する発明は、クラス管理手段が、入力される生成要求に基づいて、クラス定義情報及びオブジェクト管理情報をデータベース内に生成するので、請求項1に対応する作用と同様の作用に加え、新規にクラスを定義して利用できるようにしたので、使用性を向上させることができる。
【0022】
さらに、請求項3に対応する発明は、オブジェクト検索手段としては、入力されるオブジェクト検索要求に基づいて、データベース内の該当するクラスに属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトをオブジェクト管理情報及び索引情報に従ってデータベースから直接的に検索するので、請求項2に対応する作用と同様の作用に加え、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索することができる。
【0023】
また、請求項4に対応する発明は、オブジェクトの集合、オブジェクトを直接的に検索するための索引情報、オブジェクトの集合並びに索引情報を検索するための集合管理情報、及び集合管理情報を検索するための集合定義情報が夫々記憶されるデータベースを設け、集合要素管理手段が、入力される集合要素追加/削除要求に基づいて、データベース内のオブジェクトの集合に対し、指定されたオブジェクトを生成又は削除すると共に、集合管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいて、データベース内の索引情報を作成又は削除し、集合検索手段が、入力される集合検索要求に基づいて、データベース内のユーザ定義集合のオブジェクトを検索し、集合操作手段が、入力される集合操作要求に基づいて、データベース内のユーザ定義集合相互を演算操作し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込みするので、オブジェクト指向データベースに関し、ユーザ定義集合の管理機能を容易且つ確実に実現でき、管理性を向上させることができる。
【0024】
さらに、請求項5に対応する発明は、集合管理手段が、入力される生成要求に基づいて、集合定義情報及び集合管理情報をデータベース内に生成するので、請求項4に対応する作用と同様の作用に加え、新規に集合を定義して利用できるようにしたので、使用性を向上させることができる。
【0025】
また、請求項6に対応する発明は、集合検索手段としては、入力される集合検索要求に基づいて、データベース内の該当するユーザ定義集合に属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを集合管理情報及び索引情報に従ってデータベースから直接的に検索するので、請求項5に対応する作用と同様の作用に加え、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索することができる。
【0026】
さらに、請求項7に対応する発明は、統合オブジェクト集合、集合オブジェクト、オブジェクト集合、オブジェクト、集合オブジェクトとオブジェクトとを直接的に検索するための索引情報、集合オブジェクトに含まれてオブジェクト集合とオブジェクトと索引情報とを検索するための集合管理情報、統合オブジェクト集合と集合オブジェクト又はオブジェクトと索引情報とを検索するためのオブジェクト管理情報、及びユーザ定義集合とクラスとの内容を夫々規定し且つオブジェクト管理情報を検索するための統合クラス定義情報が夫々記憶されたデータベースを設け、クラス管理手段が、入力される生成要求に基づいて、統合クラス定義情報及びオブジェクト管理情報をデータベース内に生成し、オブジェクト管理手段が、入力されるオブジェクト生成/削除要求に基づいて、データベース内の統合オブジェクト集合に対し、指定されたオブジェクト又は集合オブジェクトを生成又は削除すると共に、オブジェクト管理情報及び索引情報の該当部分を更新し、集合要素管理手段が、入力される集合要素追加/削除要求に基づいて、データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、集合管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいて、データベース内の索引情報を作成又は削除し、集合検索手段が、入力される集合検索要求に基づいて、データベース内のクラスに属するオブジェクト又はデータベース内のユーザ定義集合のオブジェクトを検索し、集合操作手段が、入力される集合操作要求に基づいて、データベース内のオブジェクト管理情報と索引情報と統合オブジェクト集合とを対象とするか、あるいはデータベース内の該当する集合オブジェクト内の集合管理情報と索引情報とオブジェクト集合とを対象とし、指定された対象とその同一対象との相互の演算操作を実行し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込みするので、イクステントとユーザ定義集合との管理機能を統合化して操作体系を覚える手間を低減させ、また、イクステントとユーザ定義集合との互換性を実現することにより、操作性を向上させることができる。
【0027】
また、請求項8に対応する発明は、集合検索手段としては、クラスに属する集合オブジェクト又はユーザ定義集合のオブジェクトに関し、夫々集合オブジェクト又はオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上の集合オブジェクト又はオブジェクトをオブジェクト管理情報、索引情報及び集合管理情報に基づいてデータベースから直接的に検索するので、請求項7に対応する作用と同様の作用に加え、イクステント及びユーザ定義集合の夫々に対し、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索することができる。
【0028】
さらに、請求項9に対応する発明は、集合検索手段及び集合操作手段としては、夫々動作内容がC++言語の構文規則に従って記述されているので、請求項7又は請求項8に対応する作用と同様の作用に加え、イクステントとユーザ定義集合との管理機能の統合化並びに両者の互換性を実現するための統一性を有し、簡潔で強力なデータベース操作言語を実現することができる。
【0029】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
(第1の実施の形態)
図1は本発明の第1の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図である。この計算機システムは、イクステントとしてのオブジェクト集合の記憶されたデータベース10と、このデータベース10に関して読出/書込を伴う種々の要求を入力してその応答を出力する入出力部20と、この入出力部20から入力された要求に基づいてデータベース10に読出/書込を実行し、実行結果などを入出力部20に応答する管理システム30とを備えている。
【0030】
ここで、データベース10は、管理システム30からアクセス可能に設けられ、図1及び図2に示すように、クラス定義情報11、オブジェクト管理情報12、索引情報13及びオブジェクト集合14が記憶されるものである。
【0031】
クラス定義情報11は、クラス名称と、継承関係などを示すクラス属性と、メンバに関する情報を示すメンバ情報と、クラスのデータ構造に関する情報を示すアドレス情報と、オブジェクト管理情報12への関係情報を示すオブジェクト管理属性という5項目のデータから構成されている。
【0032】
オブジェクト管理情報12は、オブジェクト生成時に決まる派生型など実行時に決まるクラスの属性を示す動的クラス属性と、オブジェクト集合14から所望のオブジェクト15を高速に検索するための個々のオブジェクト15に対応する索引情報への関係情報を示す索引管理情報と、オブジェクト集合14内のオブジェクト15を逐次辿るための逐次検索情報と、オブジェクト集合14に対する追加・削除等を管理するためのオブジェクト集合管理情報という4項目のデータから構成されている。
【0033】
索引情報13は、オブジェクト集合14から所望のオブジェクト15を高速に検索するための個々のオブジェクト15に対応する索引を示すものである。
一方、入出力部20は、操作者の入力操作又はCPUの処理などに基づいて、種々の要求を管理システム30に入力し、管理システム30から受ける応答を出力するものであり、ユーザプログラムにより入出力処理の内容が規定されている。なお、種々の要求は、ユーザプログラムにて予め規定され、例えば、処理開始要求、処理終了要求、クラス定義/削除要求、オブジェクト生成/削除要求、索引生成/削除要求、オブジェクト検索要求、オブジェクト操作要求が入力可能となっている。
【0034】
また、管理システム30は、入出力部20から入力された要求に基づいてデータベース10に読出/書込を実行してその実行結果及び実行状態を入出力部20に応答出力するものであり、具体的には、クラス管理部31、オブジェクト管理部32、索引管理部33、オブジェクト検索部34及びオブジェクト操作部35から構成されている。
【0035】
クラス管理部31は、入出力部20から入力されるクラス定義/削除要求のうち、クラス定義要求に基づいて、データベース10内のクラス定義情報11又はオブジェクト管理情報12を作成してその初期設定を実行する機能と、クラス削除要求に基づいて、クラス定義情報11又はオブジェクト管理情報12を削除する機能とをもっている。
【0036】
オブジェクト管理部32は、入出力部20から入力されるオブジェクト生成/削除要求のうち、オブジェクト生成要求に基づいて、データベース10内のオブジェクト集合14に対し、指定されたオブジェクト15を生成すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する機能と、オブジェクト削除要求に基づいて、データベース10内のオブジェクト集合14に対し、指定されたオブジェクト15を削除すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する機能とをもっている。
【0037】
索引管理部33は、入出力部20から入力される索引作成/削除要求のうち、索引作成要求に基づいて、データベース10内の索引情報13を作成する機能と、索引削除要求に基づいて、データベース10内の索引情報13を削除する機能とをもっている。なお、索引情報13内の索引は、ユーザの指定に従って、その時点のオブジェクト集合14のオブジェクト15に対応して作成される。
【0038】
オブジェクト検索部34は、入出力部20から入力されるオブジェクト検索要求に基づいて、データベース10内のオブジェクト管理情報12及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10内のオブジェクト集合14から検索する機能と、この検索結果を入出力部20に応答する機能とをもっている。
【0039】
オブジェクト操作部35は、入出力部20から入力されるオブジェクト操作要求に基づいて、オブジェクト集合14内の該当するオブジェクト15に対し、指定された修正又は書込みなどの操作を実行する機能をもっている。
【0040】
次に、以上のように構成された計算機システムの動作を説明する。
但し、オブジェクト集合14は、予めデータベース10に記憶されているものとする。
(処理開始要求)
いま、入出力部20では、操作者の操作により、処理開始要求を管理システム30に入力する。管理システム30では、この処理開始要求により、自己のシステムを初期化し、データベース10内の各情報及びオブジェクト15を読出/書込可能な状態となる。
【0041】
以下、管理システム30においては、適宜、各要求が入出力部20から入力されると、その要求に基づいて、データベース10に対して処理を実行する。管理システム30における処理部及び処理内容は、以下に示す通りである。
(クラス定義/削除要求)
クラス管理部31は、入出力部20から入力されるクラス定義要求に基づいて、データベース10内のクラス定義情報11又はオブジェクト管理情報12を作成してその初期設定を実行する。また、クラス管理部31は、入出力部20から入力されるクラス削除要求に基づいて、クラス定義情報11又はオブジェクト管理情報12を削除する。
(オブジェクト生成/削除要求)
オブジェクト管理部32は、入出力部20から入力されるオブジェクト生成要求に基づいて、データベース10内のオブジェクト集合14に対し、指定されたオブジェクト15を生成すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する。また、オブジェクト管理部32は、入出力部20から入力されるオブジェクト削除要求に基づいて、データベース10内のオブジェクト集合14に対し、指定されたオブジェクト15を削除すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する。
(索引作成/削除要求)
索引管理部33は、入出力部20から入力される索引作成要求に基づいて、データベース10内の索引情報13を作成する。なお、索引情報13内の索引は、ユーザの指定に従って、その時点のオブジェクト集合14のオブジェクト15に対応して作成される。また、索引管理部33は、入出力部20から入力される索引削除要求に基づいて、データベース10内の索引情報13を削除する。
(オブジェクト検索要求)
オブジェクト検索部34は、入出力部20から入力されるオブジェクト検索要求に基づいて、データベース10内のオブジェクト管理情報12及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10内のオブジェクト集合14から検索し、この検索結果を入出力部20に応答する。
【0042】
ここで、具体的な検索方式には、以下に示すように、逐次検索と直接検索とがある。
逐次検索は、次の(i) 〜(iv)及びそれらの組合せにて示されるように、オブジェクト集合14内のオブジェクトを逐次辿るように読出して検索する方式であり、検索結果は、該当する1つのオブジェクト15又は検索失敗である。
(i) 現在の検索対象オブジェクト(カーソル)の記憶と読出し。
(ii)最初、最後のオブジェクト15の読出し。
(iii) 次に続くオブジェクト15、直前のオブジェクト15の読出し。
(iv)検索対象オブジェクトの有無の判定。
【0043】
このような逐次検索の場合、オブジェクト検索部34は、検索対象オブジェクトが有るとき、当該オブジェクト15を入出力部20に応答し、オブジェクト集合14内の全オブジェクト15を検索しても検索対象オブジェクトが無いとき、検索失敗の旨を入出力部20に応答する。
【0044】
一方、直接検索は、次の(i) 〜(iv)及びそれらの組合せにて示されるように、オブジェクト集合14内で検索条件に合致するオブジェクト15を直接的に検索する方式であり、検索結果は、該当するオブジェクト15の集合又は検索失敗である。なお、オブジェクト15の集合は、1つ以上のオブジェクト15を含んでいる。
(i) 指定されたオブジェクトの有無の判定。
(ii)オブジェクトのメンバの値の比較。
【0045】
この比較には、例えば等値比較、不等比較、大小比較、値の範囲がある。
(iii) 上記(i) 〜(ii)と、積(AND) 、和(OR)、否定(NOT) とで構成される論理式。
(iv)これら(i) 〜(iii) において、該当の判定、比較、論理式が真となる場合、条件を満足するオブジェクト15の集合を検索結果とする。偽となる場合、検索結果を検索失敗とする。
【0046】
この直接検索の場合、オブジェクト検索部34は、検索結果として、オブジェクト15の集合、又は検索失敗の旨を入出力部20に応答する。なお、直接検索の場合、索引情報13を用いることにより、高速に直接検索を実行することができる。
(オブジェクト操作要求)
オブジェクト操作部35は、入出力部20から入力されるオブジェクト操作要求に基づいて、オブジェクト集合14内の該当するオブジェクト15に対し、指定された操作を実行する。
(処理終了要求)
管理システム30では、入出力部20から入力される処理終了要求により、データベース10に関する処理を終了する。
【0047】
上述したように第1の実施の形態によれば、クラス管理部31、オブジェクト管理部32、索引管理部33、オブジェクト検索部34及びオブジェクト操作部35が夫々入力される要求に基づいて、前述したように処理を実行するので、オブジェクト指向データベース10に関し、イクステントの管理機能を容易且つ確実に実現でき、管理性を向上させることができる。
【0048】
クラス管理部31が、入力される生成要求に基づいて、クラス定義情報11及びオブジェクト管理情報12をデータベース10内に生成するので、新規にクラスを定義して利用できるようにしたので、使用性を向上させることができる。
【0049】
オブジェクト検索部34が、入力されるオブジェクト検索要求に基づいて、データベース10内の該当するクラスに属するオブジェクト15を逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクト15をオブジェクト管理情報12及び索引情報13に従ってデータベース10から直接的に検索するので、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報13を用いて高速に検索することができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照しながら説明する。
【0050】
図3は本発明の第2の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図であり、図1及び図2と同一部分には同一符号を付し、類似した部分にはaの添字を付してその詳しい説明は省略し、ここでは異なる部分についてのみ述べる。
【0051】
すなわち、本実施の形態に係る計算機システムは、ユーザ定義集合を扱うためのものであり、具体的には、図3及び図4に示すように、オブジェクト管理情報12を省略し、集合定義情報11a及び集合管理情報12aを有するデータベース10aと、クラス管理部31、オブジェクト管理部32及びオブジェクト検索部34を省略し、集合管理部31a、集合要素管理部32a、集合検索部34a及び集合操作部35aを有する管理システム30aとを備えている。
【0052】
ここで、データベース10aは、図4に示すように、前述したクラス定義情報11、索引情報13及びオブジェクト集合14に加え、集合定義情報11a及び集合管理情報12aを備えている。
【0053】
集合定義情報11aは、集合名と、要素の重複や要素の順序の有無などの集合の特性を示す集合属性と、集合管理情報12aへの関係情報を持つ集合管理属性という3項目のデータから構成される。
【0054】
集合管理情報12aは、集合の要素となるオブジェクト15のクラスを示すクラス定義情報11への関係を示す集合要素クラス名、前述同様の索引管理情報と、オブジェクト集合14内のオブジェクト15を逐次辿るための逐次検索情報と、オブジェクト集合14に対するオブジェクト15の追加・削除等を管理するための集合要素管理情報という4項目のデータから構成される。
【0055】
一方、管理システム30aは、前述した索引管理部33及びオブジェクト操作部35に加え、集合管理部31a、集合要素管理部32a、集合検索部34a及び集合操作部35aを備えている。
【0056】
集合管理部31aは、入出力部20aから入力される集合定義/削除要求のうち、集合定義要求に基づいて、データベース10a内の集合定義情報11aを作成してその初期設定を実行する機能と、集合削除要求に基づいて、データベース10a内の集合定義情報11aを削除する機能とをもっている。
【0057】
集合要素管理部32aは、入出力部20aから入力される集合要素追加/削除要求のうち、集合要素追加要求に基づいて、データベース10a内のオブジェクト集合14に対し、指定されたオブジェクト15を追加すると共に、集合管理情報12a及び索引情報13の該当部分を更新する機能と、集合要素削除要求に基づいて、データベース10a内のオブジェクト集合14に対し、指定されたオブジェクトを追加すると共に、集合管理情報12a及び索引情報13の該当部分を更新する機能とをもっている。
【0058】
集合検索部34aは、入出力部20aから入力される集合検索要求に基づいて、指定された検索の内容に従い、データベース10a内の集合管理情報12a及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10a内のオブジェクト集合14から検索し、検索結果を入出力部20aに応答する機能をもっている。なお、前述同様に、逐次検索又は直接検索のいずれかが選択的に実行可能となっている。
【0059】
集合操作部35aは、入出力部20aから入力される集合操作要求に基づいて、オブジェクト集合14のうち、指定された集合あるいは集合同士の操作・演算を実行し、実行結果を入出力部20aに応答する機能をもっている。
【0060】
次に、このような計算機システムの動作を説明する。
(処理開始/終了要求)
管理システム30aでは、前述同様に、入出力部20aから入力される処理開始要求により、自己のシステムを初期化し、入出力部20aから入力される処理開始要求により、自己のシステムを終了処理する。
【0061】
また、管理システム30aにおいては、処理開始から処理終了までの間、適宜、各要求が入出力部20aから入力されると、その要求に基づいて、データベース10aに対して処理を実行する。管理システム30aにおける処理部及び処理内容は、以下に示す通りである。
(集合定義/削除要求)
集合管理部31aは、入出力部20aから入力される集合定義要求に基づいて、データベース10a内の集合定義情報11aを作成してその初期設定を実行する。また、集合管理部31aは、入出力部20aから入力される集合削除要求に基づいて、データベース10a内の集合定義情報11aを削除する。
(集合要素追加/削除要求)
集合要素管理部32aは、入出力部20aから入力される集合要素追加要求に基づいて、データベース10a内のオブジェクト集合14に対し、指定されたオブジェクト15を追加すると共に、集合管理情報12a及び索引情報13の該当部分を更新する。また、集合要素管理部32aは、入出力部20aから入力される集合要素削除要求に基づいて、データベース10a内のオブジェクト集合14に対し、指定されたオブジェクト15を削除すると共に、集合管理情報12a及び索引情報13の該当部分を更新する。
(集合検索要求)
集合検索部34aは、入出力部20aから入力される集合検索要求に基づいて、指定された検索の内容に従い、データベース10a内の集合管理情報12a及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10a内のオブジェクト集合14から検索し、検索結果を入出力部20aに応答する。なお、前述同様に、逐次検索又は直接検索のいずれかが指定されて実行される。
【0062】
逐次検索の場合、集合検索部34aは、集合管理情報12aの逐次処理情報を用いてオブジェクト集合14内の該当するオブジェクト15を検索し、検索結果を入出力部20aに応答出力する。
【0063】
直接検索の場合、集合検索部34aは、検索条件に合致するオブジェクト15をオブジェクト集合14から検索し、検索結果を入出力部20aに出力する。なお、複数のオブジェクトが検索条件に合致する可能性があるため、集合検索部34aでは検索結果を集合値として出力する。また、直接検索の場合、集合検索部34aでは、可能な限り索引情報13を利用することにより、直接検索を高速に実行する。
(集合操作要求)
集合操作部35aは、入出力部20aから入力される集合操作要求に基づいて、オブジェクト集合14のうち、指定された集合あるいは集合同士の操作・演算を実行し、実行結果を集合値として入出力部20aに出力する。
【0064】
具体的には、集合操作部35aは、次の(i) 〜(v) に示すように、オブジェクト集合14内で集合を操作・演算する。また、操作結果はオブジェクト15の集合又は集合操作失敗(偽)となる。
(i) 他の集合への代入を実行する。例えば集合管理情報12a、索引情報13及びオブジェクト集合14を全て複写するディープコピー(deep copy) と、集合管理情報12a及び索引情報13を複写するシャロウコピー(shallow copy)とのいずれかを実行する。
(ii)集合積、集合和、集合差をとる。
(iii) 部分集合、真部分集合をとる。
(iv)等置比較、不等比較、空集合判定をとる。
(v) 、(ii)〜(iv)の集合操作の組合せをとる。
【0065】
これら集合操作は、集合操作要求を入力する際に、任意のものあるいは組合せを指定することができる。またさらに、集合操作部35aは、操作・演算の実行結果を他の集合に代入する場合、代入先の集合管理情報12a、索引情報13及びオブジェクト集合14を当該実行結果に従って変更する。
【0066】
上述したように第2の実施の形態によれば、集合管理部31a、集合要素管理部32a、索引管理部33、集合検索部34a、集合操作部35a及びオブジェクト操作部35が夫々入力される要求に基づいて、前述したように処理を実行するので、オブジェクト指向データベース10aに関し、ユーザ定義集合の管理機能を容易且つ確実に実現でき、管理性を向上させることができる。
【0067】
集合管理部31aが、入力される生成要求に基づいて、集合定義情報11a及び集合管理情報12aをデータベース10a内に生成するので、新規に集合を定義して利用できるようにしたので、使用性を向上させることができる。
【0068】
また、集合検索部34aが、入力される集合検索要求に基づいて、データベース10a内の該当するユーザ定義集合に属するオブジェクト15を逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクト15を集合管理情報12a及び索引情報13に従ってデータベース10aから直接的に検索するので、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報13を用いて高速に検索することができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照しながら説明する。
【0069】
図5は本発明の第3の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図であり、図6はこの計算機システム内のデータベースの構成を模式的に示すブロック図であり、図7はこのデータベース内の集合オブジェクトの構成を模式的に示すブロック図であって、図1乃至図4と同一部分には同一符号を付し、類似した部分にはbの添字を付してその詳しい説明は省略し、ここでは異なる部分についてのみ述べる。
【0070】
すなわち、本実施の形態に係る計算機システムは、イクステントを扱う第1の実施の形態と、ユーザ定義集合を扱う第2の実施の形態とを統合化したものである。すなわち、集合もクラスの一種と考え、集合定義情報11aをクラス定義情報11の形式で定義することにより、ユーザ定義集合をイクステントの体系の中に組み入れて構成している。
【0071】
具体的には、データベース10bは、図5及び図6に示すように、統合クラス定義情報11b、オブジェクト管理情報12、索引情報13と同じクラスに属するオブジェクト15又は集合オブジェクト15bの集まりからなる統合オブジェクト集合14bにより構成される。
【0072】
ここで、統合クラス定義情報11bは、集合定義情報11aをクラス定義情報11に導入したものであり、具体的には、前述した5項目のデータに加え、集合属性を有し、且つクラス名が集合名を包含したものとなっている。
【0073】
統合オブジェクト集合14bは、クラスに属するオブジェクトの集合である。すなわち当該クラスが集合でないクラスの場合にはオブジェクト15の集合となり、当該クラスが集合クラスの場合即ちユーザ定義集合の場合には集合オブジェクト15bとなる。
【0074】
集合オブジェクト15bは、集合クラスのオブジェクトであり、図7に示すように、集合管理情報12a、索引情報13及びオブジェクト集合14から構成される。
【0075】
一方、管理システム30bは、夫々クラス管理部31b、オブジェクト管理部32b、集合要素管理部32a、索引管理部33b、集合検索部34b、集合操作部35b及びオブジェクト操作部35から構成されている。
【0076】
また、入出力部20bは、夫々前述同様の処理開始要求、処理終了要求、クラス定義/削除要求、オブジェクト生成/削除要求、集合要素追加/削除要求、索引作成/削除要求、集合検索要求、集合操作要求、オブジェクト操作要求を管理システム30bに入力する機能と、管理システム30bからの応答を出力する機能とをもっている。
【0077】
なお、オブジェクト生成/削除要求は、ユーザ定義集合の場合、ユーザ定義集合のオブジェクト15に相当する集合オブジェクト15bを生成/削除するための処理要求となっており、前述した集合定義/削除要求に対応している。
【0078】
また、索引生成/削除要求、集合検索要求及び集合操作要求は、夫々イクステント又はユーザ定義集合を対象として指定可能となっている。
なお、これら索引生成/削除要求、集合検索要求及び集合操作要求では、イクステントが対象として指定された場合、オブジェクト管理情報12とその索引情報13及び統合オブジェクト集合14bに対して処理が実行される。また、ユーザ定義集合が対象として指定された場合、集合オブジェクト15b、即ち、集合管理情報12aとその索引情報13及びオブジェクト集合14に対して処理が実行される。
【0079】
次に、このような計算機システムの動作を説明する。
(処理開始/終了要求)
管理システム30bでは、前述同様に、入出力部20bから入力される処理開始要求により、自己のシステムを初期化し、入出力部20bから入力される処理開始要求により、自己のシステムを終了処理する。
【0080】
また、管理システム30bにおいては、処理開始から処理終了までの間、適宜、各要求が入出力部20bから入力されると、その要求に基づいて、データベース10bに対して処理を実行する。管理システム30bにおける処理部及び処理内容は、以下に示す通りである。
(クラス定義/削除要求)
クラス管理部31bは、入出力部20bから入力されるクラス定義要求に基づいて、データベース10b内の統合クラス定義情報11b又はオブジェクト管理情報12を作成してその初期設定を実行する。また、クラス管理部31bは、入出力部20bから入力されるクラス削除要求に基づいて、統合クラス定義情報11b又はオブジェクト管理情報12を削除する。
(オブジェクト生成要求)
(非集合クラスの場合)オブジェクト管理部32bは、入出力部20bから入力されるオブジェクト生成要求に基づいて、データベース10b内の統合オブジェクト集合14bに対し、指定されたオブジェクト15を生成すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する。
【0081】
(集合クラスの場合)オブジェクト管理部32bは、入出力部20bから入力されるオブジェクト生成要求に基づいて、データベース10bの統合オブジェクト集合14bにおける集合オブジェクト15bを作成してその初期設定を実行する。すなわち、オブジェクト管理部32bは、集合オブジェクト15bを構成する集合管理情報12aとその索引情報13及びオブジェクト集合14(=ユーザ定義集合)を作成する。
(オブジェクト削除要求)
オブジェクト管理部32bは、入出力部20bから入力されるオブジェクト削除要求に基づいて、データベース10b内の統合オブジェクト集合14bに対し、指定されたオブジェクト15又は集合オブジェクト15bを削除すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する。
(集合要素追加/削除要求)
集合要素管理部32aは、入出力部20bから入力される集合要素追加要求に基づいて、データベース10b内のオブジェクト集合14に対し、指定されたオブジェクト15を追加すると共に、集合管理情報12a及び索引情報13の該当部分を更新する。また、集合要素管理部32aは、入出力部20bから入力される集合要素削除要求に基づいて、データベース10b内のオブジェクト集合14に対し、指定されたオブジェクト15を削除すると共に、集合管理情報12a及び索引情報13の該当部分を更新する。
(索引作成/削除要求)
索引管理部33bは、入出力部20bから入力される索引作成要求に基づいて、データベース10b内の索引情報13を作成する。なお、索引情報13内の索引は、ユーザの指定に従って、イクステントの場合、その時点の統合オブジェクト集合14bのオブジェクト15又は集合オブジェクト15bに対応して作成され、また、ユーザ定義集合の場合、その時点のオブジェクト集合14のオブジェクト15に対応して作成される。
【0082】
また、索引管理部33bは、入出力部20bから入力される索引削除要求に基づいて、データベース10b内の索引情報13を削除する。
(集合検索要求)
(イクステントの場合)集合検索部34bは、入出力部20bから入力される集合検索要求に基づいて、指定された検索の内容に従い、データベース10b内のオブジェクト管理情報12及び索引情報13を用い、指定された検索条件に合致するオブジェクト15又は集合オブジェクト15bをデータベース10b内の統合オブジェクト集合14bから検索し、検索結果を入出力部20bに応答する。
【0083】
(ユーザ定義集合の場合)集合検索部34bは、入出力部20bから入力される集合検索要求に基づいて、指定された検索の内容に従い、データベース10b内の集合管理情報12a及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10b内のオブジェクト集合14から検索し、検索結果を入出力部20bに応答する。
【0084】
なお、イクステント又はユーザ定義集合のどちらが対象でも、前述同様に、逐次検索又は直接検索が指定されて実行される。
(集合操作要求)
集合操作部35bは、入出力部20bから入力される集合操作要求に基づいて、指定された統合オブジェクト集合14bあるいは集合オブジェクト15b単一又はそれ等相互の操作・演算を実行し、実行結果を集合値として入出力部20bに出力する。
(オブジェクト操作要求)
オブジェクト操作部35は、入出力部20bから入力されるオブジェクト操作要求に基づいて、統合オブジェクト集合14b内の該当するオブジェクト15又は集合オブジェクト15bに対し、指定された操作を実行する。
【0085】
上述したように第3の実施の形態によれば、集合定義情報11aをクラス定義情報11の形式で定義してなる統合クラス定義情報11bを設けることにより、ユーザ定義集合をイクステントの体系の中に組み入れたので、イクステントとユーザ定義集合との管理機能を統合化して操作体系を覚える手間を低減させ、また、イクステントとユーザ定義集合との互換性を実現することにより、操作性を向上させることができる。
【0086】
集合検索部34bが、クラスに属するオブジェクト15又は集合オブジェクト15b又はユーザ定義集合のオブジェクト15に関し、夫々集合オブジェクト15b又はオブジェクト15を逐次検索するか、あるいは指定された検索条件に合致する1以上の集合オブジェクト15b又はオブジェクト15をオブジェクト管理情報12、索引情報13及び集合管理情報12aに基づいてデータベース10bから直接的に検索するので、イクステント及びユーザ定義集合の夫々に対し、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報13を用いて高速に検索することができる。
(他の実施の形態)
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピーディスク、ハードディスクなど)、光ディスク(CD−ROM,DVDなど)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
その他、本発明はその要旨を逸脱しない範囲で種々変形して実施できる。
【0087】
【実施例】
次に、本発明に係るデータベース管理方式の実施例について説明する。
本実施例に係るデータベース管理方式は、第3の実施の形態に示した構成のものが適用され、データベース操作言語の親言語としてC++言語が用いられる。すなわち、データ構造定義は、C++言語のクラス定義文により実行される。具体的には、データベース10bの定義及び操作体系は、図8乃至図10に示す通りであり、C++言語の拡張機能と、管理システムに用意された既定義クラスを用いた方式が提供される。図8はクラス定義、処理開始要求及び処理終了要求の操作体系を示す図である。また、図9はイクステントに対する操作体系を示し、図10はユーザ定義集合に対する操作体系を示している。
【0088】
これらのデータベース定義及び操作体系の指示は以下の順序で実行される。但し、一旦、データベース10b及びクラス定義情報が作成された後は、読出/書込(検索/操作/削除など)を対象とするデータベース処理開始以降の指定が実行される。
(クラス定義及び開始/終了)
次に、クラス定義及び開始/終了について図8の(1)〜(2)を参照しながら説明する。
(1)データ構造定義は、図8に示すように、C++言語のクラス定義が使用される。また、データ構造の定義に限らず、構成子、消滅子及びデータ操作関数についても定義可能となっている。
(2)データベース作成は、データベース10bを新規に作成して初期化する機能である。また、データベース消去は、既存のデータベース10bを削除する機能である。データベース処理開始は、指定されたデータベース10bに対してそれ以降のスキーマ参照、トランザクション処理及びデータ操作を実行可能とする機能である。データベース処理終了はデータベース10bの処理を終了させる機能である。
【0089】
トランザクション処理は、入出力部20bから複数の要求を同時に入力可能とする機能であり、例えば、トランザクション処理開始からトランザクション処理終了までの間に実行されたデータ操作に関して排他処理を実行する機能と、その間に実行されたデータ作成及びデータ更新をトランザクション処理終了時に一括してデータベース10bに反映させる機能とをもっている。
【0090】
また、トランザクション処理は、トランザクション処理開始からトランザクション処理廃棄の間に実行されたデータ操作に関する廃棄処理を実行する機能と、その間に実行されたデータ作成及びデータ更新をトランザクション処理廃棄時に一括して廃棄し、データベース10bには反映させない機能とをもっている。
【0091】
なお、図8中、Database,Transaction は、データベース管理方式の既定義クラスであり、データベース定義及び操作の関数を提供するものである。
(イクステント)
次に、イクステントの操作体系について図9の(3)〜(8)を参照しながら説明する。
(3)クラス生成のためのクラス定義は、図9に示すように、引数に指定されたクラス定義ファイルにC++言語のクラス定義文で記述される。クラス生成は、統合クラス定義情報11bを作成してデータベース10b内に記憶する機能である。クラス削除は、データベース10b内に定義された統合クラス定義情報11bをクラス名を指定して削除する機能である。
【0092】
オブジェクト管理情報12は、最初にtype()関数が呼ばれたときに作成され、それ以降にtype()関数が呼ばれた場合には既に作成されたオブジェクト管理情報12がそれ以降のイクステント操作のために参照される。オブジェクト管理情報・参照の結果としては、対応するオブジェクト管理情報12へのポインタであるタイプポインタが入出力部20bに返される。
(4)オブジェクト生成としては、タイプポインタをnew 演算子の引数とすることにより、タイプポインタに該当するデータ構造をもつオブジェクトが管理システム30bの管理するバッファ領域に作成される。また、作成されたオブジェクトのポインタが入出力部20bに返される。
【0093】
また、クラス定義で構成子が定義され、この構成子がnew 演算子の後に記述されると、オブジェクトが生成と同時に初期化される。また、バッファ領域に作成されたオブジェクトは、トランザクション処理の終了時にデータベース10bに書込まれる。
【0094】
データ削除では、バッファ領域内の該当するオブジェクトが削除され、トランザクション処理終了時にデータベース10bに反映される。
(5)索引作成は、索引作成要求で指定されたキーとなるメンバー名と、統合オブジェクト集合14bのオブジェクトとから高速にオブジェクトを検索するための索引情報13を作成し、その管理情報をオブジェクト管理情報に設定する機能である。
【0095】
索引削除は、索引削除要求で指定された索引情報13を削除し、オブジェクト管理情報12を削除内容に従い変更する機能である。
(6)イクステントのオブジェクトの検索は、集合と同一形式の集合検索要求により実行される。集合検索要求には、存在判定、逐次検索及び直接検索がある。例えば、直接検索は、検索条件の指定により、その検索条件に該当する集合オブジェクト15b又は統合オブジェクト集合14bをデータベース10b内から検索する機能である。検索結果の集合オブジェクト15b又は統合オブジェクト集合14bは管理システム30bの管理するバッファ領域に作成され、そのポインタが入出力部20bに応答される。図9の記述例は、「年齢が12歳よりも大でかつ20歳未満の人」という検索条件に該当するオブジェクトをイクステントpersonから検索して集合teenAgerに返す旨を示している。
(7)集合操作要求には、空集合判定、集合演算及び集合代入がある。空集合判定は、イクステントあるいは集合オブジェクト15bを対象としている。集合演算は、イクステント及び集合オブジェクト15b同士の集合和、集合積、集合差、部分集合、等値比較などである。集合代入は、イクステント又は集合オブジェクト15bから集合オブジェクト15bへの代入であり、前述したディープコピー及びシャロウコピーがある。これらの処理・操作は、イクステントには統合オブジェクト集合14bに対して、集合オブジェクト15bにはオブジェクト集合に対して実行される。
(8)オブジェクト操作要求のオブジェクト参照及びオブジェクト更新は、バッファ領域内のオブジェクトの参照及び更新を実行する機能である。図9に示すように、ポインタによる多重修飾が可能である。該当するオブジェクトがバッファ領域に無いときには、データベース10bから読込まれた後、オブジェクトの参照及び更新が実行される。オブジェクト更新結果はトランザクション処理終了によりデータベース10bに書込まれる。
(ユーザ定義集合)
次に、ユーザ定義集合の操作体系について図10の(10)〜(16)を参照しながら説明する。
(10)集合クラスは、ユーザ定義集合をクラスの一種として定義するものであり、種類としては、一般的な集合を定義したCollectionクラス、要素の重複を許した Bagクラス、要素の重複を許さない Setクラス、 Setクラスで要素の順序を考慮したListクラス、1次元可変長配列のVarrayクラスがある。これらは、管理システムにより予め統合クラス定義情報として利用可能に提供される。
(11)オブジェクト生成/削除要求は、集合オブジェクト管理情報作成/参照、集合オブジェクト生成及び集合オブジェクト削除がある。
【0096】
集合オブジェクト管理情報作成・参照は、集合クラスに対してオブジェクト管理情報12の作成及び参照を実行する機能である。集合オブジェクト生成は、オブジェクト管理情報12を用いて統合オブジェクト集合14b内に集合オブジェクト15bを作成する機能である。集合オブジェクト削除は、指定された集合オブジェクト15bを削除し、関連するオブジェクト管理情報12及び索引情報13を削除内容に対応させて変更する機能である。図10では、teenAgers という集合オブジェクト15bが生成される。
(12)集合要素追加/削除要求は、集合要素の追加又は削除を集合オブジェクト15bに対して実行する処理の要求である。集合要素追加は、集合管理情報12aに基づいて、オブジェクト集合14に対して指定されたオブジェクト15の追加を実行する機能である。なお、追加されるオブジェクト15は、そのクラスが妥当か否かが集合管理情報12aの集合要素クラス名の示す統合クラス定義情報11bの参照によりチェックされる。集合要素削除は、集合管理情報12aに基づいて、オブジェクト集合14に対して指定されたオブジェクト15の削除を実行する機能である。
(13)(14)索引生成/削除要求及び集合検索要求は、夫々集合管理情報12aを用いて、索引情報13、オブジェクト集合14に対して該当する処理の実行を要求するものである。
(15)集合操作要求には、前述同様に、空集合判定、集合演算及び集合代入がある。集合代入では、代入先がデータベース10b内の集合である場合、代入“=”で集合管理情報12a、索引情報13、オブジェクト集合14のコピーが作成され、これらが代入先の集合オブジェクトとされる。
【0097】
同じく、代入“%=”では、集合管理情報12aと索引情報13のみがコピーされ、代入先の集合オブジェクト15bとされ、オブジェクト集合14が代入元と代入先とで共用される。
(16)オブジェクト操作要求については、統合オブジェクト集合14b内のオブジェクト15、オブジェクト集合14内のオブジェクト15を特定し、該当オブジェクト15に対する操作を実行させる。
【0098】
上述したように本実施例によれば、複雑なデータ構造を扱うオブジェクト指向データベース10bにおいても、クラスに属するオブジェクトの集合(イクステント)を集合データとして扱うことが可能となる。これによりイクステント及びユーザ定義集合に対して検索、集合操作をプログラミング言語C++の同一のインタフェースで記述することができる。
【0099】
また、さらに、オブジェクトの検索も集合操作の一種であると考えることにより、検索を含めた集合操作の演算体系を決定することができ、これをC++言語の演算体系に組み込むことができる。これにより、ユーザにとって高度かつ複雑な集合操作を簡潔な記述形式でプログラミングできることになり、容易に高度な機能を使いこなすことができる。また、イクステントとユーザ定義集合との管理機能の統合化並びに両者の互換性を実現するための統一性を有し、簡潔で強力なデータベース操作言語を実現することができる。
【0100】
オブジェクト指向データベース管理システムにおいて、イクステントとユーザ定義集合の管理体系を一本化し、両者に同一体系に基づいた検索及び操作手段を提供し、さらに、イクステントも集合の一種類として扱う統一性のある操作体系を提供した。これにより、複雑な構造や相互の関係を表現することのできるオブジェクト指向データベースに、自然な形で集合の概念を導入し、それに基づいて簡潔で強力なデータベース操作言語を提供した。これらにより、従来のオブジェクト指向データベース上で集合の機能を自由に扱えるデータベース管理方式を実現することができる。
【0101】
【発明の効果】
請求項1の発明によれば、オブジェクトの集合、オブジェクトを直接的に検索するための索引情報、オブジェクトの集合並びに索引情報を検索するためのオブジェクト管理情報、及びオブジェクト管理情報を検索するためのクラス定義情報が夫々記憶されるデータベースを設け、オブジェクト管理手段が、入力されるオブジェクト生成/削除要求に基づいて、データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、オブジェクト管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいてデータベース内の索引情報を作成又は削除し、オブジェクト検索手段が、入力されるオブジェクト検索要求に基づいて、データベース内のオブジェクトを検索し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込むので、オブジェクト指向データベースに関し、イクステントの管理機能を容易且つ確実に実現でき、管理性を向上できるデータベース管理方式を提供できる。
【0102】
また、請求項2の発明によれば、クラス管理手段が、入力される生成要求に基づいて、クラス定義情報及びオブジェクト管理情報をデータベース内に生成するので、請求項1の効果に加え、新規にクラスを定義して利用できるようにしたので、使用性を向上できるデータベース管理方式を提供できる。
【0103】
さらに、請求項3の発明によれば、オブジェクト検索手段としては、入力されるオブジェクト検索要求に基づいて、データベース内の該当するクラスに属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトをオブジェクト管理情報及び索引情報に従ってデータベースから直接的に検索するので、請求項2の効果に加え、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索できるデータベース管理方式を提供できる。
【0104】
また、請求項4の発明によれば、オブジェクトの集合、オブジェクトを直接的に検索するための索引情報、オブジェクトの集合並びに索引情報を検索するための集合管理情報、及び集合管理情報を検索するための集合定義情報が夫々記憶されるデータベースを設け、集合要素管理手段が、入力される集合要素追加/削除要求に基づいて、データベース内のオブジェクトの集合に対し、指定されたオブジェクトを生成又は削除すると共に、集合管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいて、データベース内の索引情報を作成又は削除し、集合検索手段が、入力される集合検索要求に基づいて、データベース内のユーザ定義集合のオブジェクトを検索し、集合操作手段が、入力される集合操作要求に基づいて、データベース内のユーザ定義集合相互を演算操作し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込みするので、オブジェクト指向データベースに関し、ユーザ定義集合の管理機能を容易且つ確実に実現でき、管理性を向上できるデータベース管理方式を提供できる。
【0105】
さらに、請求項5の発明によれば、集合管理手段が、入力される生成要求に基づいて、集合定義情報及び集合管理情報をデータベース内に生成するので、請求項4の効果に加え、新規に集合を定義して利用できるようにしたので、使用性を向上できるデータベース管理方式を提供できる。
【0106】
また、請求項6の発明によれば、集合検索手段としては、入力される集合検索要求に基づいて、データベース内の該当するユーザ定義集合に属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを集合管理情報及び索引情報に従ってデータベースから直接的に検索するので、請求項5の効果に加え、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索できるデータベース管理方式を提供できる。
【0107】
さらに、請求項7の発明によれば、統合オブジェクト集合、集合オブジェクト、オブジェクト集合、オブジェクト、集合オブジェクトとオブジェクトとを直接的に検索するための索引情報、集合オブジェクトに含まれてオブジェクト集合とオブジェクトと索引情報とを検索するための集合管理情報、統合オブジェクト集合とオブジェクト又は集合オブジェクトと索引情報とを検索するためのオブジェクト管理情報、及びユーザ定義集合とクラスとの内容を夫々規定し且つオブジェクト管理情報を検索するための統合クラス定義情報が夫々記憶されたデータベースを設け、クラス管理手段が、入力される生成要求に基づいて、統合クラス定義情報及びオブジェクト管理情報をデータベース内に生成し、オブジェクト管理手段が、入力されるオブジェクト生成/削除要求に基づいて、データベース内の統合オブジェクト集合に対し、指定されたオブジェクト又は集合オブジェクトを生成又は削除すると共に、オブジェクト管理情報及び索引情報の該当部分を更新し、集合要素管理手段が、入力される集合要素追加/削除要求に基づいて、データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、集合管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいて、データベース内の索引情報を作成又は削除し、集合検索手段が、入力される集合検索要求に基づいて、データベース内のクラスに属するオブジェクト又はデータベース内のユーザ定義集合のオブジェクトを検索し、集合操作手段が、入力される集合操作要求に基づいて、データベース内のオブジェクト管理情報と索引情報と統合オブジェクト集合とを対象とするか、あるいはデータベース内の該当する集合オブジェクト内の集合管理情報と索引情報とオブジェクト集合とを対象とし、指定された対象とその同一対象との相互の演算操作を実行し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込みするので、イクステントとユーザ定義集合との管理機能を統合化して操作体系を覚える手間を低減させ、また、イクステントとユーザ定義集合との互換性を実現することにより、操作性を向上できるデータベース管理方式を提供できる。
【0108】
また、請求項8の発明によれば、集合検索手段としては、クラスに属する集合オブジェクト又はユーザ定義集合のオブジェクトに関し、夫々集合オブジェクト又はオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上の集合オブジェクト又はオブジェクトをオブジェクト管理情報、索引情報及び集合管理情報に基づいてデータベースから直接的に検索するので、請求項7の効果に加え、イクステント及びユーザ定義集合の夫々に対し、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索できるデータベース管理方式を提供できる。
【0109】
さらに、請求項9の発明によれば、集合検索手段及び集合操作手段としては、夫々動作内容がC++言語の構文規則に従って記述されているので、請求項7又は請求項8の効果に加え、イクステントとユーザ定義集合との管理機能の統合化並びに両者の互換性を実現するための統一性を有し、簡潔で強力なデータベース操作言語を実現できるデータベース管理方式を提供できる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図
【図2】同実施の形態におけるデータベースの構成を模式的に示すブロック図
【図3】本発明の第2の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図
【図4】同実施の形態におけるデータベースの構成を模式的に示すブロック図
【図5】本発明の第3の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図
【図6】同実施の形態におけるデータベースの構成を模式的に示すブロック図
【図7】同実施の形態における集合オブジェクトの構成を模式的に示すブロック図
【図8】本発明の一実施例に係るC++言語によるクラス定義及び操作体系を示す図
【図9】同実施例におけるイクステントに対する操作体系を示す図
【図10】同実施例におけるユーザ定義集合に対する操作体系を示す図
【符号の説明】
10…データベース
11…クラス定義情報
11a…集合定義情報
12…オブジェクト管理情報
12a…集合管理情報
13…索引情報
14…オブジェクト集合
14b…統合オブジェクト集合
15…オブジェクト
15b…集合オブジェクト
20,20a,20b…入出力部
30…管理システム
31,31b…クラス管理部
31a…集合管理部
32,32b…オブジェクト管理部
32a…集合要素管理部
33,33b…索引管理部
34…オブジェクト検索部
34a,34b…集合検索部
35…オブジェクト操作部
35a,35b…集合操作部
【発明の属する技術分野】
本発明は、オブジェクト指向データベースの如き、複雑なデータ構造のデータベースを管理するデータベース管理方式に係わり、特に、オブジェクト集合とユーザ定義集合との統一性を備えたデータベース管理方式に関する。
【0002】
【従来の技術】
従来、データベースは、比較的単純な構造の大量のデータを処理する事務処理分野を中心に利用されており、具体的には、階層型あるいは関係型と呼ばれるデータベース管理方式が用いられている。
【0003】
また特に、これらの中でも表形式で表示可能な単純なデータ構造を扱い、表相互の関係操作によるデータの検索・操作を実行する関係型データベース管理方式が広く用いられている。
【0004】
この種の階層型あるいは関係型のデータベース管理方式は、CAD(computer aided design) 、CASE(computer aided software engineering) 、画像処理、マルチメディア処理などの分野に適用される場合、以下の(a)〜(c)に示すように、データベースの構築が困難であり、また、無理に構築したとしても処理効率を低下させてしまい、データベース化が損失をうむ場合がある。
(a)個々のデータ要素のデータ構造が複雑である場合、データベース管理方式のデータ定義形式での直接的な表現が不可能となる。
(b)データ相互が複雑に関係し合うデータの場合、そのデータの定義及び操作指定が複雑であり、しかも全データを対象に検索・比較を実行するため、処理効率が低い。
(c)データの定義・操作機能を提供するデータベース言語は、言語自体が独立した体系であり、人間との対話形式を主な実行方法としている。このため、データベース処理と計算処理などのプログラムとを結合した処理体系の構築が困難である。
【0005】
ところで、これらの問題の解決方式として、オブジェクト指向データベースが提唱され、開発・利用され始めている。
オブジェクト指向データベースでは、C++、Smalltalk などの既存のオブジェクト指向プログラミング言語が基本とされ、さらにデータベース管理機能が付加されている。
【0006】
例えば、前述した関係型データベースでは、2次元の表でモデル化される単純なデータ構造を扱うのに対し、オブジェクト指向データベースの場合では、以下に示す通り、オブジェクト指向プログラミング言語と同一水準の複雑なデータ構造が定義可能となっている。
(ユーザ定義のデータ型)
ユーザが既知のデータ型を用いて新しいデータ型を定義し、データベース管理方式の提供する整数、文字列などの基本型と同様に利用可能である。
(任意の階層構造をもつデータ構造)
データベース管理方式の提供する基本型とユーザ定義のデータ型とから構成される構造体として新規なデータ型を定義可能である。構造体の要素は、既定義の構造体を利用可能である。
(データ型及びデータ構造に対応した処理手続き)
(派生型)
基本型及びユーザ定義型の配列、参照など元の型から派生する型の定義と利用が可能である。
(派生クラス)
継承関係による新しいデータ構造(クラス)の定義と利用が可能である。
【0007】
また、オブジェクト指向データベースでは、以上のような機能に加え、イクステントの管理機能とは異なる別体系として、ユーザ自らが定義して利用可能な集合(以下、ユーザ定義集合という)の管理機能を備えている。
但し、オブジェクト指向データベースでは、クラスに属するオブジェクトの集合(以下、イクステントという)の管理機能を持たない場合が多い。
【0008】
【発明が解決しようとする課題】
しかしながら以上のようなデータベース管理方式では、イクステントの管理機能を持たない場合が多い問題がある。
また、イクステントの管理機能を持つ場合でも、ユーザ定義集合の管理機能とは別体系であり、両者の管理機能が検索方法や集合に対する操作・処理など夫々別個の指定方式となっている。このため、イクステントとユーザ定義集合とは互いに性質や機能及びその操作がほぼ同一内容であるにも拘らず、ユーザは2通りの操作体系を覚える手間がかかる問題がある。
【0009】
また、両者のデータは、互換性がないため、イクステントの検索結果をユーザ定義集合として再検索することが不可能であり、また、イクステントとユーザ定義集合との集合操作が不可能となっており、データベースの操作性を低下させる問題がある。
【0010】
本発明は上記実情を考慮してなされたもので、イクステントとユーザ定義集合との管理機能を統合化して操作体系を覚える手間を低減させ、また、イクステントとユーザ定義集合との互換性を実現することにより、操作性を向上し得るデータベース管理方式を提供することを目的とする。
【0011】
また、本発明の第2の目的は、イクステントとユーザ定義集合との管理機能の統合化並びに両者の互換性を実現するための統一性を有し、簡潔で強力なデータベース操作言語を提供することにある。
【0012】
【課題を解決するための手段】
請求項1に対応する発明は、クラスに属するオブジェクトの集合を管理するデータベース管理方式であって、前記オブジェクトの集合、前記オブジェクトを直接的に検索するための索引情報、前記オブジェクトの集合並びに前記索引情報を検索するためのオブジェクト管理情報、及び前記オブジェクト管理情報を検索するためのクラス定義情報が夫々記憶されるデータベースと、入力されるオブジェクト生成/削除要求に基づいて、前記データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記オブジェクト管理情報及び前記索引情報の該当部分を更新するオブジェクト管理手段と、入力される索引作成/削除要求に基づいて前記データベース内の索引情報を作成又は削除する索引管理手段と、入力されるオブジェクト検索要求に基づいて、前記データベース内のオブジェクトを検索するオブジェクト検索手段と、入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段とを備えたデータベース管理方式である。
【0013】
また、請求項2に対応する発明は、請求項1に対応するデータベース管理方式において、入力される生成要求に基づいて、前記クラス定義情報及び前記オブジェクト管理情報を前記データベース内に生成するクラス管理手段を備えたデータベース管理方式である。
【0014】
さらに、請求項3に対応する発明は、請求項2に対応するデータベース管理方式において、前記オブジェクト検索手段としては、入力されるオブジェクト検索要求に基づいて、前記データベース内の該当するクラスに属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを前記オブジェクト管理情報及び前記索引情報に従って前記データベースから直接的に検索するデータベース管理方式である。
【0015】
また、請求項4に対応する発明は、ユーザ定義集合に属するオブジェクトの集合を管理するデータベース管理方式であって、前記オブジェクトの集合、前記オブジェクトを直接的に検索するための索引情報、前記オブジェクトの集合並びに前記索引情報を検索するための集合管理情報、及び前記集合管理情報を検索するための集合定義情報が夫々記憶されるデータベースと、入力される集合要素追加/削除要求に基づいて、前記データベース内のオブジェクトの集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記集合管理情報及び前記索引情報の該当部分を更新する集合要素管理手段と、入力される索引作成/削除要求に基づいて、前記データベース内の索引情報を作成又は削除する索引管理手段と、入力される集合検索要求に基づいて、前記データベース内のユーザ定義集合のオブジェクトを検索する集合検索手段と、入力される集合操作要求に基づいて、前記データベース内のユーザ定義集合相互を演算操作する集合操作手段と、入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段とを備えたデータベース管理方式である。
【0016】
さらに、請求項5に対応する発明は、請求項4に対応するデータベース管理方式において、入力される生成要求に基づいて、前記集合定義情報及び前記集合管理情報を前記データベース内に生成する集合管理手段を備えたデータベース管理方式である。
【0017】
また、請求項6に対応する発明は、請求項5に対応するデータベース管理方式において、前記集合検索手段としては、入力される集合検索要求に基づいて、前記データベース内の該当するユーザ定義集合に属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを前記集合管理情報及び前記索引情報に従って前記データベースから直接的に検索するデータベース管理方式である。
【0018】
さらに、請求項7に対応する発明は、クラスに属する集合オブジェクトの集合してなる統合オブジェクト集合、及びユーザ定義集合に属するオブジェクトの集合してなる集合オブジェクトの集合してなる統合オブジェクト集合を夫々管理するデータベース管理方式であって、前記統合オブジェクト集合、前記集合オブジェクト、前記オブジェクト集合、前記オブジェクト、前記集合オブジェクトと前記オブジェクトとを直接的に検索するための索引情報、前記集合オブジェクトに含まれて前記オブジェクト集合と前記オブジェクトと前記索引情報とを検索するための集合管理情報、前記統合オブジェクト集合と前記オブジェクト又は前記集合オブジェクトと前記索引情報とを検索するためのオブジェクト管理情報、及び前記ユーザ定義集合と前記クラスとの内容を夫々規定し且つ前記オブジェクト管理情報を検索するための統合クラス定義情報が夫々記憶されたデータベースと、入力される生成要求に基づいて、前記統合クラス定義情報及び前記オブジェクト管理情報を前記データベース内に生成するクラス管理手段と、入力されるオブジェクト生成/削除要求に基づいて、前記データベース内の統合オブジェクト集合に対し、指定されたオブジェクト又は集合オブジェクトを生成又は削除すると共に、前記オブジェクト管理情報及び前記索引情報の該当部分を更新するオブジェクト管理手段と、入力される集合要素追加/削除要求に基づいて、前記データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記集合管理情報及び前記索引情報の該当部分を更新する集合要素管理手段と、入力される索引作成/削除要求に基づいて、前記データベース内の索引情報を作成又は削除する索引管理手段と、入力される集合検索要求に基づいて、前記データベース内のクラスに属するオブジェクト又は前記データベース内のユーザ定義集合のオブジェクトを検索する集合検索手段と、入力される集合操作要求に基づいて、前記データベース内のオブジェクト管理情報と索引情報と統合オブジェクト集合とを対象とするか、あるいは前記データベース内の該当する集合オブジェクト内の集合管理情報と索引情報とオブジェクト集合とを対象とし、指定された対象とその同一対象との相互の演算操作を実行する集合操作手段と、入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段とを備えたデータベース管理方式である。
【0019】
また、請求項8に対応する発明は、請求項7に対応するデータベース管理方式において、前記集合検索手段としては、前記クラスに属する集合オブジェクト又は前記ユーザ定義集合のオブジェクトに関し、夫々前記集合オブジェクト又は前記オブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上の前記集合オブジェクト又は前記オブジェクトを前記オブジェクト管理情報、前記索引情報及び前記集合管理情報に基づいて前記データベースから直接的に検索するデータベース管理方式である。
【0020】
さらに、請求項9に対応する発明は、請求項7又は請求項8に対応するデータベース管理方式において、前記集合検索手段及び前記集合操作手段としては、夫々動作内容がC++言語の構文規則に従って記述されたデータベース管理方式である。
(作用)
従って、請求項1に対応する発明は以上のような手段を講じたことにより、オブジェクトの集合、オブジェクトを直接的に検索するための索引情報、オブジェクトの集合並びに索引情報を検索するためのオブジェクト管理情報、及びオブジェクト管理情報を検索するためのクラス定義情報が夫々記憶されるデータベースを設け、オブジェクト管理手段が、入力されるオブジェクト生成/削除要求に基づいて、データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、オブジェクト管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいてデータベース内の索引情報を作成又は削除し、オブジェクト検索手段が、入力されるオブジェクト検索要求に基づいて、データベース内のオブジェクトを検索し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込むので、オブジェクト指向データベースに関し、イクステントの管理機能を容易且つ確実に実現でき、管理性を向上させることができる。
【0021】
また、請求項2に対応する発明は、クラス管理手段が、入力される生成要求に基づいて、クラス定義情報及びオブジェクト管理情報をデータベース内に生成するので、請求項1に対応する作用と同様の作用に加え、新規にクラスを定義して利用できるようにしたので、使用性を向上させることができる。
【0022】
さらに、請求項3に対応する発明は、オブジェクト検索手段としては、入力されるオブジェクト検索要求に基づいて、データベース内の該当するクラスに属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトをオブジェクト管理情報及び索引情報に従ってデータベースから直接的に検索するので、請求項2に対応する作用と同様の作用に加え、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索することができる。
【0023】
また、請求項4に対応する発明は、オブジェクトの集合、オブジェクトを直接的に検索するための索引情報、オブジェクトの集合並びに索引情報を検索するための集合管理情報、及び集合管理情報を検索するための集合定義情報が夫々記憶されるデータベースを設け、集合要素管理手段が、入力される集合要素追加/削除要求に基づいて、データベース内のオブジェクトの集合に対し、指定されたオブジェクトを生成又は削除すると共に、集合管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいて、データベース内の索引情報を作成又は削除し、集合検索手段が、入力される集合検索要求に基づいて、データベース内のユーザ定義集合のオブジェクトを検索し、集合操作手段が、入力される集合操作要求に基づいて、データベース内のユーザ定義集合相互を演算操作し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込みするので、オブジェクト指向データベースに関し、ユーザ定義集合の管理機能を容易且つ確実に実現でき、管理性を向上させることができる。
【0024】
さらに、請求項5に対応する発明は、集合管理手段が、入力される生成要求に基づいて、集合定義情報及び集合管理情報をデータベース内に生成するので、請求項4に対応する作用と同様の作用に加え、新規に集合を定義して利用できるようにしたので、使用性を向上させることができる。
【0025】
また、請求項6に対応する発明は、集合検索手段としては、入力される集合検索要求に基づいて、データベース内の該当するユーザ定義集合に属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを集合管理情報及び索引情報に従ってデータベースから直接的に検索するので、請求項5に対応する作用と同様の作用に加え、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索することができる。
【0026】
さらに、請求項7に対応する発明は、統合オブジェクト集合、集合オブジェクト、オブジェクト集合、オブジェクト、集合オブジェクトとオブジェクトとを直接的に検索するための索引情報、集合オブジェクトに含まれてオブジェクト集合とオブジェクトと索引情報とを検索するための集合管理情報、統合オブジェクト集合と集合オブジェクト又はオブジェクトと索引情報とを検索するためのオブジェクト管理情報、及びユーザ定義集合とクラスとの内容を夫々規定し且つオブジェクト管理情報を検索するための統合クラス定義情報が夫々記憶されたデータベースを設け、クラス管理手段が、入力される生成要求に基づいて、統合クラス定義情報及びオブジェクト管理情報をデータベース内に生成し、オブジェクト管理手段が、入力されるオブジェクト生成/削除要求に基づいて、データベース内の統合オブジェクト集合に対し、指定されたオブジェクト又は集合オブジェクトを生成又は削除すると共に、オブジェクト管理情報及び索引情報の該当部分を更新し、集合要素管理手段が、入力される集合要素追加/削除要求に基づいて、データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、集合管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいて、データベース内の索引情報を作成又は削除し、集合検索手段が、入力される集合検索要求に基づいて、データベース内のクラスに属するオブジェクト又はデータベース内のユーザ定義集合のオブジェクトを検索し、集合操作手段が、入力される集合操作要求に基づいて、データベース内のオブジェクト管理情報と索引情報と統合オブジェクト集合とを対象とするか、あるいはデータベース内の該当する集合オブジェクト内の集合管理情報と索引情報とオブジェクト集合とを対象とし、指定された対象とその同一対象との相互の演算操作を実行し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込みするので、イクステントとユーザ定義集合との管理機能を統合化して操作体系を覚える手間を低減させ、また、イクステントとユーザ定義集合との互換性を実現することにより、操作性を向上させることができる。
【0027】
また、請求項8に対応する発明は、集合検索手段としては、クラスに属する集合オブジェクト又はユーザ定義集合のオブジェクトに関し、夫々集合オブジェクト又はオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上の集合オブジェクト又はオブジェクトをオブジェクト管理情報、索引情報及び集合管理情報に基づいてデータベースから直接的に検索するので、請求項7に対応する作用と同様の作用に加え、イクステント及びユーザ定義集合の夫々に対し、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索することができる。
【0028】
さらに、請求項9に対応する発明は、集合検索手段及び集合操作手段としては、夫々動作内容がC++言語の構文規則に従って記述されているので、請求項7又は請求項8に対応する作用と同様の作用に加え、イクステントとユーザ定義集合との管理機能の統合化並びに両者の互換性を実現するための統一性を有し、簡潔で強力なデータベース操作言語を実現することができる。
【0029】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
(第1の実施の形態)
図1は本発明の第1の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図である。この計算機システムは、イクステントとしてのオブジェクト集合の記憶されたデータベース10と、このデータベース10に関して読出/書込を伴う種々の要求を入力してその応答を出力する入出力部20と、この入出力部20から入力された要求に基づいてデータベース10に読出/書込を実行し、実行結果などを入出力部20に応答する管理システム30とを備えている。
【0030】
ここで、データベース10は、管理システム30からアクセス可能に設けられ、図1及び図2に示すように、クラス定義情報11、オブジェクト管理情報12、索引情報13及びオブジェクト集合14が記憶されるものである。
【0031】
クラス定義情報11は、クラス名称と、継承関係などを示すクラス属性と、メンバに関する情報を示すメンバ情報と、クラスのデータ構造に関する情報を示すアドレス情報と、オブジェクト管理情報12への関係情報を示すオブジェクト管理属性という5項目のデータから構成されている。
【0032】
オブジェクト管理情報12は、オブジェクト生成時に決まる派生型など実行時に決まるクラスの属性を示す動的クラス属性と、オブジェクト集合14から所望のオブジェクト15を高速に検索するための個々のオブジェクト15に対応する索引情報への関係情報を示す索引管理情報と、オブジェクト集合14内のオブジェクト15を逐次辿るための逐次検索情報と、オブジェクト集合14に対する追加・削除等を管理するためのオブジェクト集合管理情報という4項目のデータから構成されている。
【0033】
索引情報13は、オブジェクト集合14から所望のオブジェクト15を高速に検索するための個々のオブジェクト15に対応する索引を示すものである。
一方、入出力部20は、操作者の入力操作又はCPUの処理などに基づいて、種々の要求を管理システム30に入力し、管理システム30から受ける応答を出力するものであり、ユーザプログラムにより入出力処理の内容が規定されている。なお、種々の要求は、ユーザプログラムにて予め規定され、例えば、処理開始要求、処理終了要求、クラス定義/削除要求、オブジェクト生成/削除要求、索引生成/削除要求、オブジェクト検索要求、オブジェクト操作要求が入力可能となっている。
【0034】
また、管理システム30は、入出力部20から入力された要求に基づいてデータベース10に読出/書込を実行してその実行結果及び実行状態を入出力部20に応答出力するものであり、具体的には、クラス管理部31、オブジェクト管理部32、索引管理部33、オブジェクト検索部34及びオブジェクト操作部35から構成されている。
【0035】
クラス管理部31は、入出力部20から入力されるクラス定義/削除要求のうち、クラス定義要求に基づいて、データベース10内のクラス定義情報11又はオブジェクト管理情報12を作成してその初期設定を実行する機能と、クラス削除要求に基づいて、クラス定義情報11又はオブジェクト管理情報12を削除する機能とをもっている。
【0036】
オブジェクト管理部32は、入出力部20から入力されるオブジェクト生成/削除要求のうち、オブジェクト生成要求に基づいて、データベース10内のオブジェクト集合14に対し、指定されたオブジェクト15を生成すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する機能と、オブジェクト削除要求に基づいて、データベース10内のオブジェクト集合14に対し、指定されたオブジェクト15を削除すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する機能とをもっている。
【0037】
索引管理部33は、入出力部20から入力される索引作成/削除要求のうち、索引作成要求に基づいて、データベース10内の索引情報13を作成する機能と、索引削除要求に基づいて、データベース10内の索引情報13を削除する機能とをもっている。なお、索引情報13内の索引は、ユーザの指定に従って、その時点のオブジェクト集合14のオブジェクト15に対応して作成される。
【0038】
オブジェクト検索部34は、入出力部20から入力されるオブジェクト検索要求に基づいて、データベース10内のオブジェクト管理情報12及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10内のオブジェクト集合14から検索する機能と、この検索結果を入出力部20に応答する機能とをもっている。
【0039】
オブジェクト操作部35は、入出力部20から入力されるオブジェクト操作要求に基づいて、オブジェクト集合14内の該当するオブジェクト15に対し、指定された修正又は書込みなどの操作を実行する機能をもっている。
【0040】
次に、以上のように構成された計算機システムの動作を説明する。
但し、オブジェクト集合14は、予めデータベース10に記憶されているものとする。
(処理開始要求)
いま、入出力部20では、操作者の操作により、処理開始要求を管理システム30に入力する。管理システム30では、この処理開始要求により、自己のシステムを初期化し、データベース10内の各情報及びオブジェクト15を読出/書込可能な状態となる。
【0041】
以下、管理システム30においては、適宜、各要求が入出力部20から入力されると、その要求に基づいて、データベース10に対して処理を実行する。管理システム30における処理部及び処理内容は、以下に示す通りである。
(クラス定義/削除要求)
クラス管理部31は、入出力部20から入力されるクラス定義要求に基づいて、データベース10内のクラス定義情報11又はオブジェクト管理情報12を作成してその初期設定を実行する。また、クラス管理部31は、入出力部20から入力されるクラス削除要求に基づいて、クラス定義情報11又はオブジェクト管理情報12を削除する。
(オブジェクト生成/削除要求)
オブジェクト管理部32は、入出力部20から入力されるオブジェクト生成要求に基づいて、データベース10内のオブジェクト集合14に対し、指定されたオブジェクト15を生成すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する。また、オブジェクト管理部32は、入出力部20から入力されるオブジェクト削除要求に基づいて、データベース10内のオブジェクト集合14に対し、指定されたオブジェクト15を削除すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する。
(索引作成/削除要求)
索引管理部33は、入出力部20から入力される索引作成要求に基づいて、データベース10内の索引情報13を作成する。なお、索引情報13内の索引は、ユーザの指定に従って、その時点のオブジェクト集合14のオブジェクト15に対応して作成される。また、索引管理部33は、入出力部20から入力される索引削除要求に基づいて、データベース10内の索引情報13を削除する。
(オブジェクト検索要求)
オブジェクト検索部34は、入出力部20から入力されるオブジェクト検索要求に基づいて、データベース10内のオブジェクト管理情報12及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10内のオブジェクト集合14から検索し、この検索結果を入出力部20に応答する。
【0042】
ここで、具体的な検索方式には、以下に示すように、逐次検索と直接検索とがある。
逐次検索は、次の(i) 〜(iv)及びそれらの組合せにて示されるように、オブジェクト集合14内のオブジェクトを逐次辿るように読出して検索する方式であり、検索結果は、該当する1つのオブジェクト15又は検索失敗である。
(i) 現在の検索対象オブジェクト(カーソル)の記憶と読出し。
(ii)最初、最後のオブジェクト15の読出し。
(iii) 次に続くオブジェクト15、直前のオブジェクト15の読出し。
(iv)検索対象オブジェクトの有無の判定。
【0043】
このような逐次検索の場合、オブジェクト検索部34は、検索対象オブジェクトが有るとき、当該オブジェクト15を入出力部20に応答し、オブジェクト集合14内の全オブジェクト15を検索しても検索対象オブジェクトが無いとき、検索失敗の旨を入出力部20に応答する。
【0044】
一方、直接検索は、次の(i) 〜(iv)及びそれらの組合せにて示されるように、オブジェクト集合14内で検索条件に合致するオブジェクト15を直接的に検索する方式であり、検索結果は、該当するオブジェクト15の集合又は検索失敗である。なお、オブジェクト15の集合は、1つ以上のオブジェクト15を含んでいる。
(i) 指定されたオブジェクトの有無の判定。
(ii)オブジェクトのメンバの値の比較。
【0045】
この比較には、例えば等値比較、不等比較、大小比較、値の範囲がある。
(iii) 上記(i) 〜(ii)と、積(AND) 、和(OR)、否定(NOT) とで構成される論理式。
(iv)これら(i) 〜(iii) において、該当の判定、比較、論理式が真となる場合、条件を満足するオブジェクト15の集合を検索結果とする。偽となる場合、検索結果を検索失敗とする。
【0046】
この直接検索の場合、オブジェクト検索部34は、検索結果として、オブジェクト15の集合、又は検索失敗の旨を入出力部20に応答する。なお、直接検索の場合、索引情報13を用いることにより、高速に直接検索を実行することができる。
(オブジェクト操作要求)
オブジェクト操作部35は、入出力部20から入力されるオブジェクト操作要求に基づいて、オブジェクト集合14内の該当するオブジェクト15に対し、指定された操作を実行する。
(処理終了要求)
管理システム30では、入出力部20から入力される処理終了要求により、データベース10に関する処理を終了する。
【0047】
上述したように第1の実施の形態によれば、クラス管理部31、オブジェクト管理部32、索引管理部33、オブジェクト検索部34及びオブジェクト操作部35が夫々入力される要求に基づいて、前述したように処理を実行するので、オブジェクト指向データベース10に関し、イクステントの管理機能を容易且つ確実に実現でき、管理性を向上させることができる。
【0048】
クラス管理部31が、入力される生成要求に基づいて、クラス定義情報11及びオブジェクト管理情報12をデータベース10内に生成するので、新規にクラスを定義して利用できるようにしたので、使用性を向上させることができる。
【0049】
オブジェクト検索部34が、入力されるオブジェクト検索要求に基づいて、データベース10内の該当するクラスに属するオブジェクト15を逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクト15をオブジェクト管理情報12及び索引情報13に従ってデータベース10から直接的に検索するので、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報13を用いて高速に検索することができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照しながら説明する。
【0050】
図3は本発明の第2の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図であり、図1及び図2と同一部分には同一符号を付し、類似した部分にはaの添字を付してその詳しい説明は省略し、ここでは異なる部分についてのみ述べる。
【0051】
すなわち、本実施の形態に係る計算機システムは、ユーザ定義集合を扱うためのものであり、具体的には、図3及び図4に示すように、オブジェクト管理情報12を省略し、集合定義情報11a及び集合管理情報12aを有するデータベース10aと、クラス管理部31、オブジェクト管理部32及びオブジェクト検索部34を省略し、集合管理部31a、集合要素管理部32a、集合検索部34a及び集合操作部35aを有する管理システム30aとを備えている。
【0052】
ここで、データベース10aは、図4に示すように、前述したクラス定義情報11、索引情報13及びオブジェクト集合14に加え、集合定義情報11a及び集合管理情報12aを備えている。
【0053】
集合定義情報11aは、集合名と、要素の重複や要素の順序の有無などの集合の特性を示す集合属性と、集合管理情報12aへの関係情報を持つ集合管理属性という3項目のデータから構成される。
【0054】
集合管理情報12aは、集合の要素となるオブジェクト15のクラスを示すクラス定義情報11への関係を示す集合要素クラス名、前述同様の索引管理情報と、オブジェクト集合14内のオブジェクト15を逐次辿るための逐次検索情報と、オブジェクト集合14に対するオブジェクト15の追加・削除等を管理するための集合要素管理情報という4項目のデータから構成される。
【0055】
一方、管理システム30aは、前述した索引管理部33及びオブジェクト操作部35に加え、集合管理部31a、集合要素管理部32a、集合検索部34a及び集合操作部35aを備えている。
【0056】
集合管理部31aは、入出力部20aから入力される集合定義/削除要求のうち、集合定義要求に基づいて、データベース10a内の集合定義情報11aを作成してその初期設定を実行する機能と、集合削除要求に基づいて、データベース10a内の集合定義情報11aを削除する機能とをもっている。
【0057】
集合要素管理部32aは、入出力部20aから入力される集合要素追加/削除要求のうち、集合要素追加要求に基づいて、データベース10a内のオブジェクト集合14に対し、指定されたオブジェクト15を追加すると共に、集合管理情報12a及び索引情報13の該当部分を更新する機能と、集合要素削除要求に基づいて、データベース10a内のオブジェクト集合14に対し、指定されたオブジェクトを追加すると共に、集合管理情報12a及び索引情報13の該当部分を更新する機能とをもっている。
【0058】
集合検索部34aは、入出力部20aから入力される集合検索要求に基づいて、指定された検索の内容に従い、データベース10a内の集合管理情報12a及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10a内のオブジェクト集合14から検索し、検索結果を入出力部20aに応答する機能をもっている。なお、前述同様に、逐次検索又は直接検索のいずれかが選択的に実行可能となっている。
【0059】
集合操作部35aは、入出力部20aから入力される集合操作要求に基づいて、オブジェクト集合14のうち、指定された集合あるいは集合同士の操作・演算を実行し、実行結果を入出力部20aに応答する機能をもっている。
【0060】
次に、このような計算機システムの動作を説明する。
(処理開始/終了要求)
管理システム30aでは、前述同様に、入出力部20aから入力される処理開始要求により、自己のシステムを初期化し、入出力部20aから入力される処理開始要求により、自己のシステムを終了処理する。
【0061】
また、管理システム30aにおいては、処理開始から処理終了までの間、適宜、各要求が入出力部20aから入力されると、その要求に基づいて、データベース10aに対して処理を実行する。管理システム30aにおける処理部及び処理内容は、以下に示す通りである。
(集合定義/削除要求)
集合管理部31aは、入出力部20aから入力される集合定義要求に基づいて、データベース10a内の集合定義情報11aを作成してその初期設定を実行する。また、集合管理部31aは、入出力部20aから入力される集合削除要求に基づいて、データベース10a内の集合定義情報11aを削除する。
(集合要素追加/削除要求)
集合要素管理部32aは、入出力部20aから入力される集合要素追加要求に基づいて、データベース10a内のオブジェクト集合14に対し、指定されたオブジェクト15を追加すると共に、集合管理情報12a及び索引情報13の該当部分を更新する。また、集合要素管理部32aは、入出力部20aから入力される集合要素削除要求に基づいて、データベース10a内のオブジェクト集合14に対し、指定されたオブジェクト15を削除すると共に、集合管理情報12a及び索引情報13の該当部分を更新する。
(集合検索要求)
集合検索部34aは、入出力部20aから入力される集合検索要求に基づいて、指定された検索の内容に従い、データベース10a内の集合管理情報12a及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10a内のオブジェクト集合14から検索し、検索結果を入出力部20aに応答する。なお、前述同様に、逐次検索又は直接検索のいずれかが指定されて実行される。
【0062】
逐次検索の場合、集合検索部34aは、集合管理情報12aの逐次処理情報を用いてオブジェクト集合14内の該当するオブジェクト15を検索し、検索結果を入出力部20aに応答出力する。
【0063】
直接検索の場合、集合検索部34aは、検索条件に合致するオブジェクト15をオブジェクト集合14から検索し、検索結果を入出力部20aに出力する。なお、複数のオブジェクトが検索条件に合致する可能性があるため、集合検索部34aでは検索結果を集合値として出力する。また、直接検索の場合、集合検索部34aでは、可能な限り索引情報13を利用することにより、直接検索を高速に実行する。
(集合操作要求)
集合操作部35aは、入出力部20aから入力される集合操作要求に基づいて、オブジェクト集合14のうち、指定された集合あるいは集合同士の操作・演算を実行し、実行結果を集合値として入出力部20aに出力する。
【0064】
具体的には、集合操作部35aは、次の(i) 〜(v) に示すように、オブジェクト集合14内で集合を操作・演算する。また、操作結果はオブジェクト15の集合又は集合操作失敗(偽)となる。
(i) 他の集合への代入を実行する。例えば集合管理情報12a、索引情報13及びオブジェクト集合14を全て複写するディープコピー(deep copy) と、集合管理情報12a及び索引情報13を複写するシャロウコピー(shallow copy)とのいずれかを実行する。
(ii)集合積、集合和、集合差をとる。
(iii) 部分集合、真部分集合をとる。
(iv)等置比較、不等比較、空集合判定をとる。
(v) 、(ii)〜(iv)の集合操作の組合せをとる。
【0065】
これら集合操作は、集合操作要求を入力する際に、任意のものあるいは組合せを指定することができる。またさらに、集合操作部35aは、操作・演算の実行結果を他の集合に代入する場合、代入先の集合管理情報12a、索引情報13及びオブジェクト集合14を当該実行結果に従って変更する。
【0066】
上述したように第2の実施の形態によれば、集合管理部31a、集合要素管理部32a、索引管理部33、集合検索部34a、集合操作部35a及びオブジェクト操作部35が夫々入力される要求に基づいて、前述したように処理を実行するので、オブジェクト指向データベース10aに関し、ユーザ定義集合の管理機能を容易且つ確実に実現でき、管理性を向上させることができる。
【0067】
集合管理部31aが、入力される生成要求に基づいて、集合定義情報11a及び集合管理情報12aをデータベース10a内に生成するので、新規に集合を定義して利用できるようにしたので、使用性を向上させることができる。
【0068】
また、集合検索部34aが、入力される集合検索要求に基づいて、データベース10a内の該当するユーザ定義集合に属するオブジェクト15を逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクト15を集合管理情報12a及び索引情報13に従ってデータベース10aから直接的に検索するので、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報13を用いて高速に検索することができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照しながら説明する。
【0069】
図5は本発明の第3の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図であり、図6はこの計算機システム内のデータベースの構成を模式的に示すブロック図であり、図7はこのデータベース内の集合オブジェクトの構成を模式的に示すブロック図であって、図1乃至図4と同一部分には同一符号を付し、類似した部分にはbの添字を付してその詳しい説明は省略し、ここでは異なる部分についてのみ述べる。
【0070】
すなわち、本実施の形態に係る計算機システムは、イクステントを扱う第1の実施の形態と、ユーザ定義集合を扱う第2の実施の形態とを統合化したものである。すなわち、集合もクラスの一種と考え、集合定義情報11aをクラス定義情報11の形式で定義することにより、ユーザ定義集合をイクステントの体系の中に組み入れて構成している。
【0071】
具体的には、データベース10bは、図5及び図6に示すように、統合クラス定義情報11b、オブジェクト管理情報12、索引情報13と同じクラスに属するオブジェクト15又は集合オブジェクト15bの集まりからなる統合オブジェクト集合14bにより構成される。
【0072】
ここで、統合クラス定義情報11bは、集合定義情報11aをクラス定義情報11に導入したものであり、具体的には、前述した5項目のデータに加え、集合属性を有し、且つクラス名が集合名を包含したものとなっている。
【0073】
統合オブジェクト集合14bは、クラスに属するオブジェクトの集合である。すなわち当該クラスが集合でないクラスの場合にはオブジェクト15の集合となり、当該クラスが集合クラスの場合即ちユーザ定義集合の場合には集合オブジェクト15bとなる。
【0074】
集合オブジェクト15bは、集合クラスのオブジェクトであり、図7に示すように、集合管理情報12a、索引情報13及びオブジェクト集合14から構成される。
【0075】
一方、管理システム30bは、夫々クラス管理部31b、オブジェクト管理部32b、集合要素管理部32a、索引管理部33b、集合検索部34b、集合操作部35b及びオブジェクト操作部35から構成されている。
【0076】
また、入出力部20bは、夫々前述同様の処理開始要求、処理終了要求、クラス定義/削除要求、オブジェクト生成/削除要求、集合要素追加/削除要求、索引作成/削除要求、集合検索要求、集合操作要求、オブジェクト操作要求を管理システム30bに入力する機能と、管理システム30bからの応答を出力する機能とをもっている。
【0077】
なお、オブジェクト生成/削除要求は、ユーザ定義集合の場合、ユーザ定義集合のオブジェクト15に相当する集合オブジェクト15bを生成/削除するための処理要求となっており、前述した集合定義/削除要求に対応している。
【0078】
また、索引生成/削除要求、集合検索要求及び集合操作要求は、夫々イクステント又はユーザ定義集合を対象として指定可能となっている。
なお、これら索引生成/削除要求、集合検索要求及び集合操作要求では、イクステントが対象として指定された場合、オブジェクト管理情報12とその索引情報13及び統合オブジェクト集合14bに対して処理が実行される。また、ユーザ定義集合が対象として指定された場合、集合オブジェクト15b、即ち、集合管理情報12aとその索引情報13及びオブジェクト集合14に対して処理が実行される。
【0079】
次に、このような計算機システムの動作を説明する。
(処理開始/終了要求)
管理システム30bでは、前述同様に、入出力部20bから入力される処理開始要求により、自己のシステムを初期化し、入出力部20bから入力される処理開始要求により、自己のシステムを終了処理する。
【0080】
また、管理システム30bにおいては、処理開始から処理終了までの間、適宜、各要求が入出力部20bから入力されると、その要求に基づいて、データベース10bに対して処理を実行する。管理システム30bにおける処理部及び処理内容は、以下に示す通りである。
(クラス定義/削除要求)
クラス管理部31bは、入出力部20bから入力されるクラス定義要求に基づいて、データベース10b内の統合クラス定義情報11b又はオブジェクト管理情報12を作成してその初期設定を実行する。また、クラス管理部31bは、入出力部20bから入力されるクラス削除要求に基づいて、統合クラス定義情報11b又はオブジェクト管理情報12を削除する。
(オブジェクト生成要求)
(非集合クラスの場合)オブジェクト管理部32bは、入出力部20bから入力されるオブジェクト生成要求に基づいて、データベース10b内の統合オブジェクト集合14bに対し、指定されたオブジェクト15を生成すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する。
【0081】
(集合クラスの場合)オブジェクト管理部32bは、入出力部20bから入力されるオブジェクト生成要求に基づいて、データベース10bの統合オブジェクト集合14bにおける集合オブジェクト15bを作成してその初期設定を実行する。すなわち、オブジェクト管理部32bは、集合オブジェクト15bを構成する集合管理情報12aとその索引情報13及びオブジェクト集合14(=ユーザ定義集合)を作成する。
(オブジェクト削除要求)
オブジェクト管理部32bは、入出力部20bから入力されるオブジェクト削除要求に基づいて、データベース10b内の統合オブジェクト集合14bに対し、指定されたオブジェクト15又は集合オブジェクト15bを削除すると共に、オブジェクト管理情報12及び索引情報13の該当部分を更新する。
(集合要素追加/削除要求)
集合要素管理部32aは、入出力部20bから入力される集合要素追加要求に基づいて、データベース10b内のオブジェクト集合14に対し、指定されたオブジェクト15を追加すると共に、集合管理情報12a及び索引情報13の該当部分を更新する。また、集合要素管理部32aは、入出力部20bから入力される集合要素削除要求に基づいて、データベース10b内のオブジェクト集合14に対し、指定されたオブジェクト15を削除すると共に、集合管理情報12a及び索引情報13の該当部分を更新する。
(索引作成/削除要求)
索引管理部33bは、入出力部20bから入力される索引作成要求に基づいて、データベース10b内の索引情報13を作成する。なお、索引情報13内の索引は、ユーザの指定に従って、イクステントの場合、その時点の統合オブジェクト集合14bのオブジェクト15又は集合オブジェクト15bに対応して作成され、また、ユーザ定義集合の場合、その時点のオブジェクト集合14のオブジェクト15に対応して作成される。
【0082】
また、索引管理部33bは、入出力部20bから入力される索引削除要求に基づいて、データベース10b内の索引情報13を削除する。
(集合検索要求)
(イクステントの場合)集合検索部34bは、入出力部20bから入力される集合検索要求に基づいて、指定された検索の内容に従い、データベース10b内のオブジェクト管理情報12及び索引情報13を用い、指定された検索条件に合致するオブジェクト15又は集合オブジェクト15bをデータベース10b内の統合オブジェクト集合14bから検索し、検索結果を入出力部20bに応答する。
【0083】
(ユーザ定義集合の場合)集合検索部34bは、入出力部20bから入力される集合検索要求に基づいて、指定された検索の内容に従い、データベース10b内の集合管理情報12a及び索引情報13を用い、指定された検索条件に合致するオブジェクト15をデータベース10b内のオブジェクト集合14から検索し、検索結果を入出力部20bに応答する。
【0084】
なお、イクステント又はユーザ定義集合のどちらが対象でも、前述同様に、逐次検索又は直接検索が指定されて実行される。
(集合操作要求)
集合操作部35bは、入出力部20bから入力される集合操作要求に基づいて、指定された統合オブジェクト集合14bあるいは集合オブジェクト15b単一又はそれ等相互の操作・演算を実行し、実行結果を集合値として入出力部20bに出力する。
(オブジェクト操作要求)
オブジェクト操作部35は、入出力部20bから入力されるオブジェクト操作要求に基づいて、統合オブジェクト集合14b内の該当するオブジェクト15又は集合オブジェクト15bに対し、指定された操作を実行する。
【0085】
上述したように第3の実施の形態によれば、集合定義情報11aをクラス定義情報11の形式で定義してなる統合クラス定義情報11bを設けることにより、ユーザ定義集合をイクステントの体系の中に組み入れたので、イクステントとユーザ定義集合との管理機能を統合化して操作体系を覚える手間を低減させ、また、イクステントとユーザ定義集合との互換性を実現することにより、操作性を向上させることができる。
【0086】
集合検索部34bが、クラスに属するオブジェクト15又は集合オブジェクト15b又はユーザ定義集合のオブジェクト15に関し、夫々集合オブジェクト15b又はオブジェクト15を逐次検索するか、あるいは指定された検索条件に合致する1以上の集合オブジェクト15b又はオブジェクト15をオブジェクト管理情報12、索引情報13及び集合管理情報12aに基づいてデータベース10bから直接的に検索するので、イクステント及びユーザ定義集合の夫々に対し、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報13を用いて高速に検索することができる。
(他の実施の形態)
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピーディスク、ハードディスクなど)、光ディスク(CD−ROM,DVDなど)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
その他、本発明はその要旨を逸脱しない範囲で種々変形して実施できる。
【0087】
【実施例】
次に、本発明に係るデータベース管理方式の実施例について説明する。
本実施例に係るデータベース管理方式は、第3の実施の形態に示した構成のものが適用され、データベース操作言語の親言語としてC++言語が用いられる。すなわち、データ構造定義は、C++言語のクラス定義文により実行される。具体的には、データベース10bの定義及び操作体系は、図8乃至図10に示す通りであり、C++言語の拡張機能と、管理システムに用意された既定義クラスを用いた方式が提供される。図8はクラス定義、処理開始要求及び処理終了要求の操作体系を示す図である。また、図9はイクステントに対する操作体系を示し、図10はユーザ定義集合に対する操作体系を示している。
【0088】
これらのデータベース定義及び操作体系の指示は以下の順序で実行される。但し、一旦、データベース10b及びクラス定義情報が作成された後は、読出/書込(検索/操作/削除など)を対象とするデータベース処理開始以降の指定が実行される。
(クラス定義及び開始/終了)
次に、クラス定義及び開始/終了について図8の(1)〜(2)を参照しながら説明する。
(1)データ構造定義は、図8に示すように、C++言語のクラス定義が使用される。また、データ構造の定義に限らず、構成子、消滅子及びデータ操作関数についても定義可能となっている。
(2)データベース作成は、データベース10bを新規に作成して初期化する機能である。また、データベース消去は、既存のデータベース10bを削除する機能である。データベース処理開始は、指定されたデータベース10bに対してそれ以降のスキーマ参照、トランザクション処理及びデータ操作を実行可能とする機能である。データベース処理終了はデータベース10bの処理を終了させる機能である。
【0089】
トランザクション処理は、入出力部20bから複数の要求を同時に入力可能とする機能であり、例えば、トランザクション処理開始からトランザクション処理終了までの間に実行されたデータ操作に関して排他処理を実行する機能と、その間に実行されたデータ作成及びデータ更新をトランザクション処理終了時に一括してデータベース10bに反映させる機能とをもっている。
【0090】
また、トランザクション処理は、トランザクション処理開始からトランザクション処理廃棄の間に実行されたデータ操作に関する廃棄処理を実行する機能と、その間に実行されたデータ作成及びデータ更新をトランザクション処理廃棄時に一括して廃棄し、データベース10bには反映させない機能とをもっている。
【0091】
なお、図8中、Database,Transaction は、データベース管理方式の既定義クラスであり、データベース定義及び操作の関数を提供するものである。
(イクステント)
次に、イクステントの操作体系について図9の(3)〜(8)を参照しながら説明する。
(3)クラス生成のためのクラス定義は、図9に示すように、引数に指定されたクラス定義ファイルにC++言語のクラス定義文で記述される。クラス生成は、統合クラス定義情報11bを作成してデータベース10b内に記憶する機能である。クラス削除は、データベース10b内に定義された統合クラス定義情報11bをクラス名を指定して削除する機能である。
【0092】
オブジェクト管理情報12は、最初にtype()関数が呼ばれたときに作成され、それ以降にtype()関数が呼ばれた場合には既に作成されたオブジェクト管理情報12がそれ以降のイクステント操作のために参照される。オブジェクト管理情報・参照の結果としては、対応するオブジェクト管理情報12へのポインタであるタイプポインタが入出力部20bに返される。
(4)オブジェクト生成としては、タイプポインタをnew 演算子の引数とすることにより、タイプポインタに該当するデータ構造をもつオブジェクトが管理システム30bの管理するバッファ領域に作成される。また、作成されたオブジェクトのポインタが入出力部20bに返される。
【0093】
また、クラス定義で構成子が定義され、この構成子がnew 演算子の後に記述されると、オブジェクトが生成と同時に初期化される。また、バッファ領域に作成されたオブジェクトは、トランザクション処理の終了時にデータベース10bに書込まれる。
【0094】
データ削除では、バッファ領域内の該当するオブジェクトが削除され、トランザクション処理終了時にデータベース10bに反映される。
(5)索引作成は、索引作成要求で指定されたキーとなるメンバー名と、統合オブジェクト集合14bのオブジェクトとから高速にオブジェクトを検索するための索引情報13を作成し、その管理情報をオブジェクト管理情報に設定する機能である。
【0095】
索引削除は、索引削除要求で指定された索引情報13を削除し、オブジェクト管理情報12を削除内容に従い変更する機能である。
(6)イクステントのオブジェクトの検索は、集合と同一形式の集合検索要求により実行される。集合検索要求には、存在判定、逐次検索及び直接検索がある。例えば、直接検索は、検索条件の指定により、その検索条件に該当する集合オブジェクト15b又は統合オブジェクト集合14bをデータベース10b内から検索する機能である。検索結果の集合オブジェクト15b又は統合オブジェクト集合14bは管理システム30bの管理するバッファ領域に作成され、そのポインタが入出力部20bに応答される。図9の記述例は、「年齢が12歳よりも大でかつ20歳未満の人」という検索条件に該当するオブジェクトをイクステントpersonから検索して集合teenAgerに返す旨を示している。
(7)集合操作要求には、空集合判定、集合演算及び集合代入がある。空集合判定は、イクステントあるいは集合オブジェクト15bを対象としている。集合演算は、イクステント及び集合オブジェクト15b同士の集合和、集合積、集合差、部分集合、等値比較などである。集合代入は、イクステント又は集合オブジェクト15bから集合オブジェクト15bへの代入であり、前述したディープコピー及びシャロウコピーがある。これらの処理・操作は、イクステントには統合オブジェクト集合14bに対して、集合オブジェクト15bにはオブジェクト集合に対して実行される。
(8)オブジェクト操作要求のオブジェクト参照及びオブジェクト更新は、バッファ領域内のオブジェクトの参照及び更新を実行する機能である。図9に示すように、ポインタによる多重修飾が可能である。該当するオブジェクトがバッファ領域に無いときには、データベース10bから読込まれた後、オブジェクトの参照及び更新が実行される。オブジェクト更新結果はトランザクション処理終了によりデータベース10bに書込まれる。
(ユーザ定義集合)
次に、ユーザ定義集合の操作体系について図10の(10)〜(16)を参照しながら説明する。
(10)集合クラスは、ユーザ定義集合をクラスの一種として定義するものであり、種類としては、一般的な集合を定義したCollectionクラス、要素の重複を許した Bagクラス、要素の重複を許さない Setクラス、 Setクラスで要素の順序を考慮したListクラス、1次元可変長配列のVarrayクラスがある。これらは、管理システムにより予め統合クラス定義情報として利用可能に提供される。
(11)オブジェクト生成/削除要求は、集合オブジェクト管理情報作成/参照、集合オブジェクト生成及び集合オブジェクト削除がある。
【0096】
集合オブジェクト管理情報作成・参照は、集合クラスに対してオブジェクト管理情報12の作成及び参照を実行する機能である。集合オブジェクト生成は、オブジェクト管理情報12を用いて統合オブジェクト集合14b内に集合オブジェクト15bを作成する機能である。集合オブジェクト削除は、指定された集合オブジェクト15bを削除し、関連するオブジェクト管理情報12及び索引情報13を削除内容に対応させて変更する機能である。図10では、teenAgers という集合オブジェクト15bが生成される。
(12)集合要素追加/削除要求は、集合要素の追加又は削除を集合オブジェクト15bに対して実行する処理の要求である。集合要素追加は、集合管理情報12aに基づいて、オブジェクト集合14に対して指定されたオブジェクト15の追加を実行する機能である。なお、追加されるオブジェクト15は、そのクラスが妥当か否かが集合管理情報12aの集合要素クラス名の示す統合クラス定義情報11bの参照によりチェックされる。集合要素削除は、集合管理情報12aに基づいて、オブジェクト集合14に対して指定されたオブジェクト15の削除を実行する機能である。
(13)(14)索引生成/削除要求及び集合検索要求は、夫々集合管理情報12aを用いて、索引情報13、オブジェクト集合14に対して該当する処理の実行を要求するものである。
(15)集合操作要求には、前述同様に、空集合判定、集合演算及び集合代入がある。集合代入では、代入先がデータベース10b内の集合である場合、代入“=”で集合管理情報12a、索引情報13、オブジェクト集合14のコピーが作成され、これらが代入先の集合オブジェクトとされる。
【0097】
同じく、代入“%=”では、集合管理情報12aと索引情報13のみがコピーされ、代入先の集合オブジェクト15bとされ、オブジェクト集合14が代入元と代入先とで共用される。
(16)オブジェクト操作要求については、統合オブジェクト集合14b内のオブジェクト15、オブジェクト集合14内のオブジェクト15を特定し、該当オブジェクト15に対する操作を実行させる。
【0098】
上述したように本実施例によれば、複雑なデータ構造を扱うオブジェクト指向データベース10bにおいても、クラスに属するオブジェクトの集合(イクステント)を集合データとして扱うことが可能となる。これによりイクステント及びユーザ定義集合に対して検索、集合操作をプログラミング言語C++の同一のインタフェースで記述することができる。
【0099】
また、さらに、オブジェクトの検索も集合操作の一種であると考えることにより、検索を含めた集合操作の演算体系を決定することができ、これをC++言語の演算体系に組み込むことができる。これにより、ユーザにとって高度かつ複雑な集合操作を簡潔な記述形式でプログラミングできることになり、容易に高度な機能を使いこなすことができる。また、イクステントとユーザ定義集合との管理機能の統合化並びに両者の互換性を実現するための統一性を有し、簡潔で強力なデータベース操作言語を実現することができる。
【0100】
オブジェクト指向データベース管理システムにおいて、イクステントとユーザ定義集合の管理体系を一本化し、両者に同一体系に基づいた検索及び操作手段を提供し、さらに、イクステントも集合の一種類として扱う統一性のある操作体系を提供した。これにより、複雑な構造や相互の関係を表現することのできるオブジェクト指向データベースに、自然な形で集合の概念を導入し、それに基づいて簡潔で強力なデータベース操作言語を提供した。これらにより、従来のオブジェクト指向データベース上で集合の機能を自由に扱えるデータベース管理方式を実現することができる。
【0101】
【発明の効果】
請求項1の発明によれば、オブジェクトの集合、オブジェクトを直接的に検索するための索引情報、オブジェクトの集合並びに索引情報を検索するためのオブジェクト管理情報、及びオブジェクト管理情報を検索するためのクラス定義情報が夫々記憶されるデータベースを設け、オブジェクト管理手段が、入力されるオブジェクト生成/削除要求に基づいて、データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、オブジェクト管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいてデータベース内の索引情報を作成又は削除し、オブジェクト検索手段が、入力されるオブジェクト検索要求に基づいて、データベース内のオブジェクトを検索し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込むので、オブジェクト指向データベースに関し、イクステントの管理機能を容易且つ確実に実現でき、管理性を向上できるデータベース管理方式を提供できる。
【0102】
また、請求項2の発明によれば、クラス管理手段が、入力される生成要求に基づいて、クラス定義情報及びオブジェクト管理情報をデータベース内に生成するので、請求項1の効果に加え、新規にクラスを定義して利用できるようにしたので、使用性を向上できるデータベース管理方式を提供できる。
【0103】
さらに、請求項3の発明によれば、オブジェクト検索手段としては、入力されるオブジェクト検索要求に基づいて、データベース内の該当するクラスに属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトをオブジェクト管理情報及び索引情報に従ってデータベースから直接的に検索するので、請求項2の効果に加え、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索できるデータベース管理方式を提供できる。
【0104】
また、請求項4の発明によれば、オブジェクトの集合、オブジェクトを直接的に検索するための索引情報、オブジェクトの集合並びに索引情報を検索するための集合管理情報、及び集合管理情報を検索するための集合定義情報が夫々記憶されるデータベースを設け、集合要素管理手段が、入力される集合要素追加/削除要求に基づいて、データベース内のオブジェクトの集合に対し、指定されたオブジェクトを生成又は削除すると共に、集合管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいて、データベース内の索引情報を作成又は削除し、集合検索手段が、入力される集合検索要求に基づいて、データベース内のユーザ定義集合のオブジェクトを検索し、集合操作手段が、入力される集合操作要求に基づいて、データベース内のユーザ定義集合相互を演算操作し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込みするので、オブジェクト指向データベースに関し、ユーザ定義集合の管理機能を容易且つ確実に実現でき、管理性を向上できるデータベース管理方式を提供できる。
【0105】
さらに、請求項5の発明によれば、集合管理手段が、入力される生成要求に基づいて、集合定義情報及び集合管理情報をデータベース内に生成するので、請求項4の効果に加え、新規に集合を定義して利用できるようにしたので、使用性を向上できるデータベース管理方式を提供できる。
【0106】
また、請求項6の発明によれば、集合検索手段としては、入力される集合検索要求に基づいて、データベース内の該当するユーザ定義集合に属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを集合管理情報及び索引情報に従ってデータベースから直接的に検索するので、請求項5の効果に加え、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索できるデータベース管理方式を提供できる。
【0107】
さらに、請求項7の発明によれば、統合オブジェクト集合、集合オブジェクト、オブジェクト集合、オブジェクト、集合オブジェクトとオブジェクトとを直接的に検索するための索引情報、集合オブジェクトに含まれてオブジェクト集合とオブジェクトと索引情報とを検索するための集合管理情報、統合オブジェクト集合とオブジェクト又は集合オブジェクトと索引情報とを検索するためのオブジェクト管理情報、及びユーザ定義集合とクラスとの内容を夫々規定し且つオブジェクト管理情報を検索するための統合クラス定義情報が夫々記憶されたデータベースを設け、クラス管理手段が、入力される生成要求に基づいて、統合クラス定義情報及びオブジェクト管理情報をデータベース内に生成し、オブジェクト管理手段が、入力されるオブジェクト生成/削除要求に基づいて、データベース内の統合オブジェクト集合に対し、指定されたオブジェクト又は集合オブジェクトを生成又は削除すると共に、オブジェクト管理情報及び索引情報の該当部分を更新し、集合要素管理手段が、入力される集合要素追加/削除要求に基づいて、データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、集合管理情報及び索引情報の該当部分を更新し、索引管理手段が、入力される索引作成/削除要求に基づいて、データベース内の索引情報を作成又は削除し、集合検索手段が、入力される集合検索要求に基づいて、データベース内のクラスに属するオブジェクト又はデータベース内のユーザ定義集合のオブジェクトを検索し、集合操作手段が、入力される集合操作要求に基づいて、データベース内のオブジェクト管理情報と索引情報と統合オブジェクト集合とを対象とするか、あるいはデータベース内の該当する集合オブジェクト内の集合管理情報と索引情報とオブジェクト集合とを対象とし、指定された対象とその同一対象との相互の演算操作を実行し、オブジェクト操作手段が、入力されるオブジェクト操作要求に基づいて、データベース内の該当するオブジェクトを修正又は書込みするので、イクステントとユーザ定義集合との管理機能を統合化して操作体系を覚える手間を低減させ、また、イクステントとユーザ定義集合との互換性を実現することにより、操作性を向上できるデータベース管理方式を提供できる。
【0108】
また、請求項8の発明によれば、集合検索手段としては、クラスに属する集合オブジェクト又はユーザ定義集合のオブジェクトに関し、夫々集合オブジェクト又はオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上の集合オブジェクト又はオブジェクトをオブジェクト管理情報、索引情報及び集合管理情報に基づいてデータベースから直接的に検索するので、請求項7の効果に加え、イクステント及びユーザ定義集合の夫々に対し、逐次検索又は直接検索を選択して検索でき、さらに、直接検索の場合、索引情報を用いて高速に検索できるデータベース管理方式を提供できる。
【0109】
さらに、請求項9の発明によれば、集合検索手段及び集合操作手段としては、夫々動作内容がC++言語の構文規則に従って記述されているので、請求項7又は請求項8の効果に加え、イクステントとユーザ定義集合との管理機能の統合化並びに両者の互換性を実現するための統一性を有し、簡潔で強力なデータベース操作言語を実現できるデータベース管理方式を提供できる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図
【図2】同実施の形態におけるデータベースの構成を模式的に示すブロック図
【図3】本発明の第2の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図
【図4】同実施の形態におけるデータベースの構成を模式的に示すブロック図
【図5】本発明の第3の実施の形態に係るデータベース管理方式の適用された計算機システムの構成を模式的に示すブロック図
【図6】同実施の形態におけるデータベースの構成を模式的に示すブロック図
【図7】同実施の形態における集合オブジェクトの構成を模式的に示すブロック図
【図8】本発明の一実施例に係るC++言語によるクラス定義及び操作体系を示す図
【図9】同実施例におけるイクステントに対する操作体系を示す図
【図10】同実施例におけるユーザ定義集合に対する操作体系を示す図
【符号の説明】
10…データベース
11…クラス定義情報
11a…集合定義情報
12…オブジェクト管理情報
12a…集合管理情報
13…索引情報
14…オブジェクト集合
14b…統合オブジェクト集合
15…オブジェクト
15b…集合オブジェクト
20,20a,20b…入出力部
30…管理システム
31,31b…クラス管理部
31a…集合管理部
32,32b…オブジェクト管理部
32a…集合要素管理部
33,33b…索引管理部
34…オブジェクト検索部
34a,34b…集合検索部
35…オブジェクト操作部
35a,35b…集合操作部
Claims (9)
- クラスに属するオブジェクトの集合を管理するデータベース管理方式であって、
前記オブジェクトの集合、前記オブジェクトを直接的に検索するための索引情報、前記オブジェクトの集合並びに前記索引情報を検索するためのオブジェクト管理情報、及び前記オブジェクト管理情報を検索するためのクラス定義情報が夫々記憶されるデータベースと、
入力されるオブジェクト生成/削除要求に基づいて、前記データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記オブジェクト管理情報及び前記索引情報の該当部分を更新するオブジェクト管理手段と、
入力される索引作成/削除要求に基づいて前記データベース内の索引情報を作成又は削除する索引管理手段と、
入力されるオブジェクト検索要求に基づいて、前記データベース内のオブジェクトを検索するオブジェクト検索手段と、
入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段と
を備えたことを特徴とするデータベース管理方式。 - 請求項1に記載のデータベース管理方式において、
入力される生成要求に基づいて、前記クラス定義情報及び前記オブジェクト管理情報を前記データベース内に生成するクラス管理手段を備えたことを特徴とするデータベース管理方式。 - 請求項2に記載のデータベース管理方式において、
前記オブジェクト検索手段は、入力されるオブジェクト検索要求に基づいて、前記データベース内の該当するクラスに属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを前記オブジェクト管理情報及び前記索引情報に従って前記データベースから直接的に検索することを特徴とするデータベース管理方式。 - ユーザ定義集合に属するオブジェクトの集合を管理するデータベース管理方式であって、
前記オブジェクトの集合、前記オブジェクトを直接的に検索するための索引情報、前記オブジェクトの集合並びに前記索引情報を検索するための集合管理情報、及び前記集合管理情報を検索するための集合定義情報が夫々記憶されるデータベースと、
入力される集合要素追加/削除要求に基づいて、前記データベース内のオブジェクトの集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記集合管理情報及び前記索引情報の該当部分を更新する集合要素管理手段と、
入力される索引作成/削除要求に基づいて、前記データベース内の索引情報を作成又は削除する索引管理手段と、
入力される集合検索要求に基づいて、前記データベース内のユーザ定義集合のオブジェクトを検索する集合検索手段と、
入力される集合操作要求に基づいて、前記データベース内のユーザ定義集合相互を演算操作する集合操作手段と、
入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段と
を備えたことを特徴とするデータベース管理方式。 - 請求項4に記載のデータベース管理方式において、
入力される生成要求に基づいて、前記集合定義情報及び前記集合管理情報を前記データベース内に生成する集合管理手段を備えたことを特徴とするデータベース管理方式。 - 請求項5に記載のデータベース管理方式において、
前記集合検索手段は、入力される集合検索要求に基づいて、前記データベース内の該当するユーザ定義集合に属するオブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上のオブジェクトを前記集合管理情報及び前記索引情報に従って前記データベースから直接的に検索することを特徴とするデータベース管理方式。 - クラスに属する集合オブジェクトの集合してなる統合オブジェクト集合、及びユーザ定義集合に属するオブジェクトの集合してなる集合オブジェクトの集合してなる統合オブジェクト集合を夫々管理するデータベース管理方式であって、
前記統合オブジェクト集合、前記集合オブジェクト、前記オブジェクト集合、前記オブジェクト、前記集合オブジェクトと前記オブジェクトとを直接的に検索するための索引情報、前記集合オブジェクトに含まれて前記オブジェクト集合と前記オブジェクトと前記索引情報とを検索するための集合管理情報、前記統合オブジェクト集合と前記オブジェクト又は前記集合オブジェクトと前記索引情報とを検索するためのオブジェクト管理情報、及び前記ユーザ定義集合と前記クラスとの内容を夫々規定し且つ前記オブジェクト管理情報を検索するための統合クラス定義情報が夫々記憶されたデータベースと、
入力される生成要求に基づいて、前記統合クラス定義情報及び前記オブジェクト管理情報を前記データベース内に生成するクラス管理手段と、
入力されるオブジェクト生成/削除要求に基づいて、前記データベース内の統合オブジェクト集合に対し、指定されたオブジェクト又は集合オブジェクトを生成又は削除すると共に、前記オブジェクト管理情報及び前記索引情報の該当部分を更新するオブジェクト管理手段と、
入力される集合要素追加/削除要求に基づいて、前記データベース内のオブジェクト集合に対し、指定されたオブジェクトを生成又は削除すると共に、前記集合管理情報及び前記索引情報の該当部分を更新する集合要素管理手段と、
入力される索引作成/削除要求に基づいて、前記データベース内の索引情報を作成又は削除する索引管理手段と、
入力される集合検索要求に基づいて、前記データベース内のクラスに属するオブジェクト又は前記データベース内のユーザ定義集合のオブジェクトを検索する集合検索手段と、
入力される集合操作要求に基づいて、前記データベース内のオブジェクト管理情報と索引情報と統合オブジェクト集合とを対象とするか、あるいは前記データベース内の該当する集合オブジェクト内の集合管理情報と索引情報とオブジェクト集合とを対象とし、指定された対象とその同一対象との相互の演算操作を実行する集合操作手段と、
入力されるオブジェクト操作要求に基づいて、前記データベース内の該当するオブジェクトを修正又は書込みするオブジェクト操作手段と
を備えたことを特徴とするデータベース管理方式。 - 請求項7に記載のデータベース管理方式において、
前記集合検索手段は、前記クラスに属する集合オブジェクト又は前記ユーザ定義集合のオブジェクトに関し、夫々前記集合オブジェクト又は前記オブジェクトを逐次検索するか、あるいは指定された検索条件に合致する1以上の前記集合オブジェクト又は前記オブジェクトを前記オブジェクト管理情報、前記索引情報及び前記集合管理情報に基づいて前記データベースから直接的に検索することを特徴とするデータベース管理方式。 - 請求項7又は請求項8に記載のデータベース管理方式において、
前記集合検索手段及び前記集合操作手段は、夫々動作内容がC++言語の構文規則に従って記述されたことを特徴とするデータベース管理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22353996A JP3590211B2 (ja) | 1996-08-26 | 1996-08-26 | データベース管理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22353996A JP3590211B2 (ja) | 1996-08-26 | 1996-08-26 | データベース管理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1063560A JPH1063560A (ja) | 1998-03-06 |
JP3590211B2 true JP3590211B2 (ja) | 2004-11-17 |
Family
ID=16799754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22353996A Expired - Fee Related JP3590211B2 (ja) | 1996-08-26 | 1996-08-26 | データベース管理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3590211B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591276B1 (en) | 2000-07-21 | 2003-07-08 | International Business Machines Corporation | Method and system for managing object types for objects defined externally to the system |
-
1996
- 1996-08-26 JP JP22353996A patent/JP3590211B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1063560A (ja) | 1998-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3303926B2 (ja) | 構造化文書分類装置及び方法 | |
JP3714479B2 (ja) | ネットワーク構造によるファイル管理方法、操作対象表示制限プログラムおよび記録媒体 | |
US5832498A (en) | Device for generating object-oriented interfaces for relational data bases and a process implemented by this device | |
US7720869B2 (en) | Hierarchical structured abstract file system | |
JP3460597B2 (ja) | 複合文書管理システム及び複合文書の構造管理方法ならびに複合文書構造管理プログラムを格納した記録媒体 | |
KR101213798B1 (ko) | 복합 데이터 액세스 | |
US7480661B2 (en) | Query services for database system | |
JPH0475134A (ja) | ファイル管理装置 | |
JP2005532637A (ja) | ファイル・システムapiを拡張するための方法およびシステム | |
JPH10505440A (ja) | プログラミング言語−具体的データファイルのsqlベースの操作を可能にするコンピュータベースの情報アクセス方法および装置 | |
JPH06259472A (ja) | マルチメディア情報システム | |
Mays et al. | A persistent store for large shared knowledge bases | |
JP5108252B2 (ja) | インデクス更新方法及びそのシステム | |
Rodgers et al. | A graph-rewriting visual language for database programming | |
Poulovassilis et al. | Hyperlog: A graph-based system for database browsing, querying, and update | |
JP3590211B2 (ja) | データベース管理方式 | |
EP0378367A2 (en) | Functional database system | |
Küspert et al. | Design Issues and First Experiences with a Visual Database Editor for the Extended NF 2 Data Model | |
JP2001222452A (ja) | リレーショナルデータベースシステムにおける問い合わせ処理最適化装置 | |
WO2023223424A1 (ja) | ドキュメント生成装置、プログラム及びドキュメント生成方法 | |
Huang et al. | Designing an object—relation hybrid database for chemical process engineering | |
JPH09167167A (ja) | オブジェクト指向データベースにおけるオブジェクト検索方法 | |
JPH09305449A (ja) | データベース管理システム | |
JPH0582615B2 (ja) | ||
Meads | Clustering strategies for object databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040817 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040819 |
|
LAPS | Cancellation because of no payment of annual fees |