JPH06236405A - データベースシステム - Google Patents
データベースシステムInfo
- Publication number
- JPH06236405A JPH06236405A JP5022282A JP2228293A JPH06236405A JP H06236405 A JPH06236405 A JP H06236405A JP 5022282 A JP5022282 A JP 5022282A JP 2228293 A JP2228293 A JP 2228293A JP H06236405 A JPH06236405 A JP H06236405A
- Authority
- JP
- Japan
- Prior art keywords
- index
- class
- file
- database
- data
- 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.)
- Withdrawn
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 データベースに格納されているデータを効率
よくインデックスするため1つの検索キーに関して複数
の識別子を求めるようにすることを目的とする。 【構成】 複数のファイル11−1、11−2・・・を
有するとともに、ファイルにデータの値の代わりに他の
ファイルへの参照を持つことのできる複合データ構造を
有するデータベース10と、このデータベース10のフ
ァイルより、ファイルのアクセス操作に必要なインデッ
クスを作成するインデクシング部12−1と、ファイル
に対する問い合わせがあったときインデックスを操作す
ることで各ファイルをアクセス操作するデータベース管
理部13を設け、前記インデクシング部12−1によ
り、参照を複数段たどることにより検索される値を検索
キーとし、この検索キーからこれを参照関係の最後に持
つ参照関係の全てのデータの識別子を直接求めることが
できるインデックス1−11を持つ。
よくインデックスするため1つの検索キーに関して複数
の識別子を求めるようにすることを目的とする。 【構成】 複数のファイル11−1、11−2・・・を
有するとともに、ファイルにデータの値の代わりに他の
ファイルへの参照を持つことのできる複合データ構造を
有するデータベース10と、このデータベース10のフ
ァイルより、ファイルのアクセス操作に必要なインデッ
クスを作成するインデクシング部12−1と、ファイル
に対する問い合わせがあったときインデックスを操作す
ることで各ファイルをアクセス操作するデータベース管
理部13を設け、前記インデクシング部12−1によ
り、参照を複数段たどることにより検索される値を検索
キーとし、この検索キーからこれを参照関係の最後に持
つ参照関係の全てのデータの識別子を直接求めることが
できるインデックス1−11を持つ。
Description
【0001】
【産業上の利用分野】本発明はデータベースに格納され
たデータを効率よくアクセスするデータベースシステム
に関し、特にデータベースを効率よくアクセスするため
のインデックスを有するものに関する。
たデータを効率よくアクセスするデータベースシステム
に関し、特にデータベースを効率よくアクセスするため
のインデックスを有するものに関する。
【0002】
【従来の技術】データベースシステムは、データベース
に格納されたデータをアクセスするものであり、本質的
には計算機で処理される情報管理システムである。また
最近のデータベースシステムは、比較的単純で規則的な
データだけでなく、実世界の情報構造を直接的に反映さ
せたより複雑なデータ構造もアクセスする。このような
複雑なデータ構造へのアクセスを効率よく行う場合に
は、実際にアクセスすべき2次記憶上のページを決定す
るファイル管理、特にファイル管理において補助的なア
クセス情報を付加するインデクシング技術が大きな影響
を与える。
に格納されたデータをアクセスするものであり、本質的
には計算機で処理される情報管理システムである。また
最近のデータベースシステムは、比較的単純で規則的な
データだけでなく、実世界の情報構造を直接的に反映さ
せたより複雑なデータ構造もアクセスする。このような
複雑なデータ構造へのアクセスを効率よく行う場合に
は、実際にアクセスすべき2次記憶上のページを決定す
るファイル管理、特にファイル管理において補助的なア
クセス情報を付加するインデクシング技術が大きな影響
を与える。
【0003】図5は従来のこの種のデータベースシステ
ムの構成を示すブロック図である。図5においてデータ
ベース21には、後述する図6に示す如き複雑な構造の
データベースが格納されている。
ムの構成を示すブロック図である。図5においてデータ
ベース21には、後述する図6に示す如き複雑な構造の
データベースが格納されている。
【0004】データベース21をオブジェクト指向デー
タベースの場合について説明すると、例えば図6(A)
に示す如く、これは3つのクラス1、クラス2、クラス
3で構成され、各クラスがそれぞれ3つの属性1a〜1
c、2a〜2c、3a〜3cを有する。そしてクラス1
ではオブジェクト識別子OID1 のaと、属性1a〜1
cのb、c、dによりインスタンスを構成し、クラス2
ではオブジェクト識別子OID2 のdと、属性2a〜2
cのe、f、gによりインスタンスを構成し、クラス3
ではオブジェクト識別子OID3 のeと属性3a〜3c
のh、i、jによりインスタンスを構成している。
タベースの場合について説明すると、例えば図6(A)
に示す如く、これは3つのクラス1、クラス2、クラス
3で構成され、各クラスがそれぞれ3つの属性1a〜1
c、2a〜2c、3a〜3cを有する。そしてクラス1
ではオブジェクト識別子OID1 のaと、属性1a〜1
cのb、c、dによりインスタンスを構成し、クラス2
ではオブジェクト識別子OID2 のdと、属性2a〜2
cのe、f、gによりインスタンスを構成し、クラス3
ではオブジェクト識別子OID3 のeと属性3a〜3c
のh、i、jによりインスタンスを構成している。
【0005】図5において、このデータに対するユーザ
からの問い合わせQは、まず問い合わせプロセッサ24
によりいくつかのコマンドに変換され、さらにデータベ
ース管理部23によりファイル操作に変換される。
からの問い合わせQは、まず問い合わせプロセッサ24
によりいくつかのコマンドに変換され、さらにデータベ
ース管理部23によりファイル操作に変換される。
【0006】ファイル管理部22はデータベース21の
2次記憶上の格納構造の情報を持っており、その情報に
基づいてファイル操作に必要となる2次記憶上のアクセ
スするページを決定する。ファイル管理部22はデータ
検索処理を高速化するために、データベース21に格納
されているデータの中の前記問い合わせQに対応したデ
ータをアクセスするための補助的なアクセス情報を付加
するためのインデクシング部22−1を有する。
2次記憶上の格納構造の情報を持っており、その情報に
基づいてファイル操作に必要となる2次記憶上のアクセ
スするページを決定する。ファイル管理部22はデータ
検索処理を高速化するために、データベース21に格納
されているデータの中の前記問い合わせQに対応したデ
ータをアクセスするための補助的なアクセス情報を付加
するためのインデクシング部22−1を有する。
【0007】このインデクシング部22−1を用いて前
記補助的なアクセス情報を用いる場合、ファイル内を探
すとき、あたかも本の索引つまりインデックスを使うと
きのような手法が使用できる。つまり本の全ページを走
査するのではなく、索引で探している単語だけを見れば
どのページを読めばいいか分かる。
記補助的なアクセス情報を用いる場合、ファイル内を探
すとき、あたかも本の索引つまりインデックスを使うと
きのような手法が使用できる。つまり本の全ページを走
査するのではなく、索引で探している単語だけを見れば
どのページを読めばいいか分かる。
【0008】通常のインデックスという補助的なアクセ
ス情報は、(x、p)という組の集まりである。ファイ
ル中でキーxを持つレコードへのポインタをpとする。
このインデックスを見ればファイル全体を読む必要はな
く、あるキーを持つレコードがファイル内のどこにある
かがインデックスを見れば分かる。
ス情報は、(x、p)という組の集まりである。ファイ
ル中でキーxを持つレコードへのポインタをpとする。
このインデックスを見ればファイル全体を読む必要はな
く、あるキーを持つレコードがファイル内のどこにある
かがインデックスを見れば分かる。
【0009】従来のインデックスは、例えば図6(B)
に示す如く、クラス毎に作成されている。例えばクラス
1のインデックスは、dとaで例示する如く、属性1c
とオブジェクト識別子OID1 との対であり、クラス2
のインデックスはgとdで例示する如く、属性2cとオ
ブジェクト識別子OID2 との対であり、クラス3のイ
ンデックスはjとgで例示する如く、属性3cとオブジ
ェクト識別子OID3との対である。
に示す如く、クラス毎に作成されている。例えばクラス
1のインデックスは、dとaで例示する如く、属性1c
とオブジェクト識別子OID1 との対であり、クラス2
のインデックスはgとdで例示する如く、属性2cとオ
ブジェクト識別子OID2 との対であり、クラス3のイ
ンデックスはjとgで例示する如く、属性3cとオブジ
ェクト識別子OID3との対である。
【0010】これらのデータベースを具体的な形で示す
と、図7に示す如きものとなる。図7(A)では、自動
車クラス(クラス1)、駆動系クラス(クラス2)、エ
ンジンクラス(クラス3)で構成されるデータベースの
例を示す。自動車クラスでは、オブジェクト識別子とし
て自動車(OID1 )属性として駆動(1a)、平均重
量(1b)、製造元(1c)で構成され、駆動系クラス
ではオブジェクト識別子として駆動系(OID2 )、属
性としてエンジン(2a)、トランスミッション(2
b)で構成され、エンジンクラスではオブジェクト識別
子としてエンジン(OID3 )、属性として排気量(3
a)、気筒(3b)で構成されている。
と、図7に示す如きものとなる。図7(A)では、自動
車クラス(クラス1)、駆動系クラス(クラス2)、エ
ンジンクラス(クラス3)で構成されるデータベースの
例を示す。自動車クラスでは、オブジェクト識別子とし
て自動車(OID1 )属性として駆動(1a)、平均重
量(1b)、製造元(1c)で構成され、駆動系クラス
ではオブジェクト識別子として駆動系(OID2 )、属
性としてエンジン(2a)、トランスミッション(2
b)で構成され、エンジンクラスではオブジェクト識別
子としてエンジン(OID3 )、属性として排気量(3
a)、気筒(3b)で構成されている。
【0011】これらに対するインデックスとして、図7
(B)に示す如く、自動車クラスのインデックスとして
駆動−自動車インデックスが、駆動系クラスのインデッ
クスとしてエンジン−駆動系インデックスが、エンジン
クラスのインデックスとして排気量−エンジンインデッ
クスがそれぞれ用意されている。
(B)に示す如く、自動車クラスのインデックスとして
駆動−自動車インデックスが、駆動系クラスのインデッ
クスとしてエンジン−駆動系インデックスが、エンジン
クラスのインデックスとして排気量−エンジンインデッ
クスがそれぞれ用意されている。
【0012】
【発明が解決しようとする課題】しかしながら最近良く
用いられる実世界の情報構造を直接的に反映させたより
複雑な構造のデータ、即ち複数のインデックスを操作し
なければ検索できないようなデータに対する問い合わせ
があった場合には、ファイル(クラス)毎にインデック
スが設けられているためファイル間つまりクラス間の参
照が多くなる。
用いられる実世界の情報構造を直接的に反映させたより
複雑な構造のデータ、即ち複数のインデックスを操作し
なければ検索できないようなデータに対する問い合わせ
があった場合には、ファイル(クラス)毎にインデック
スが設けられているためファイル間つまりクラス間の参
照が多くなる。
【0013】例えば「クラス3の属性3cの値がjであ
る複合オブジェクトのクラス1識別子を求めなさい」と
いう問い合わせに対しては、従来のインデックスでは、
図6(B)に示す如く、先ずクラス3のインデックスを
アクセスして属性3cの値がjのオブジェクト識別子g
を求め、次にクラス2のインデックスをアクセスしてこ
のgを属性2cとするオブジェクト識別子dを求める。
そして最後にクラス1のインデックスをアクセスして前
記dを属性とするオブジェクト識別子aを求め、かくし
て前記問い合わせに対する所望の識別子aを得ることに
なる。
る複合オブジェクトのクラス1識別子を求めなさい」と
いう問い合わせに対しては、従来のインデックスでは、
図6(B)に示す如く、先ずクラス3のインデックスを
アクセスして属性3cの値がjのオブジェクト識別子g
を求め、次にクラス2のインデックスをアクセスしてこ
のgを属性2cとするオブジェクト識別子dを求める。
そして最後にクラス1のインデックスをアクセスして前
記dを属性とするオブジェクト識別子aを求め、かくし
て前記問い合わせに対する所望の識別子aを得ることに
なる。
【0014】また、図7(B)においては、排気量15
00ccの自動車のオブジェクト識別子を求める場合に
は、先ず排気量−エンジンインデックスをアクセスして
排気量1500ccのエンジンのオブジェクト識別子が
eng888であることを求め、次にエンジン−駆動系
インデックスをアクセスしてeng888の駆動系のオ
ブジェクト識別子がdrive777であることを求
め、最後に駆動−自動車インデックスをアクセスしてd
rive777の自動車のオブジェクト識別子がaut
o000であることを求め、これらに基づき排気量15
00ccの自動車のオブジェクト識別子auto000
を得ていた。
00ccの自動車のオブジェクト識別子を求める場合に
は、先ず排気量−エンジンインデックスをアクセスして
排気量1500ccのエンジンのオブジェクト識別子が
eng888であることを求め、次にエンジン−駆動系
インデックスをアクセスしてeng888の駆動系のオ
ブジェクト識別子がdrive777であることを求
め、最後に駆動−自動車インデックスをアクセスしてd
rive777の自動車のオブジェクト識別子がaut
o000であることを求め、これらに基づき排気量15
00ccの自動車のオブジェクト識別子auto000
を得ていた。
【0015】このように従来ではファイル単位にインデ
ックスが設けられているため、ファイル間の参照が多い
場合には、操作するインデックス数も多いため、複雑な
構造のデータを検索するには、このようにインデックス
間の検索が多くなり、所要のデータを得るためのデータ
処理速度が低下することになる。
ックスが設けられているため、ファイル間の参照が多い
場合には、操作するインデックス数も多いため、複雑な
構造のデータを検索するには、このようにインデックス
間の検索が多くなり、所要のデータを得るためのデータ
処理速度が低下することになる。
【0016】従って本発明の目的は、このような問題点
を改善するため、実世界の情報構造を直接的に反映させ
た複雑な構造を単位とする新しいインデクシングを提供
するものである。
を改善するため、実世界の情報構造を直接的に反映させ
た複雑な構造を単位とする新しいインデクシングを提供
するものである。
【0017】
【課題を解決するための手段】前記目的を達成するた
め、本発明では、図1に示す如く、データベース10
に、例えばクラス1のファイル11−1、クラス2のフ
ァイル11−2、クラス3のファイル11−3等により
構成される複合オブジェクトのデータを格納する。本発
明では、更にインデックス1−11としてクラス3の属
性に対する各クラスのオブジェクト識別子g、d、aを
1つにまとめたものを作成する。
め、本発明では、図1に示す如く、データベース10
に、例えばクラス1のファイル11−1、クラス2のフ
ァイル11−2、クラス3のファイル11−3等により
構成される複合オブジェクトのデータを格納する。本発
明では、更にインデックス1−11としてクラス3の属
性に対する各クラスのオブジェクト識別子g、d、aを
1つにまとめたものを作成する。
【0018】ファイル管理部12には第1インデクシン
グ部12−1が設けられ、前記インデックス1−11を
作成する。
グ部12−1が設けられ、前記インデックス1−11を
作成する。
【0019】
【作用】データベース10に対して前記の如きクラス3
の属性の値がjのクラス1のオブジェクト識別子OID
1 を求めるという要求に対してデータアクセスを行う場
合、データベース管理部3によりインデックス1−11
をアクセスし、そのオブジェクト識別子OID1 の値a
を得る。
の属性の値がjのクラス1のオブジェクト識別子OID
1 を求めるという要求に対してデータアクセスを行う場
合、データベース管理部3によりインデックス1−11
をアクセスし、そのオブジェクト識別子OID1 の値a
を得る。
【0020】換言すれば、本発明ではよく検索される複
雑なデータ構造の参照関係に対して、参照関係のデータ
を単一のインデックスに保持する。n段の参照関係の最
後が属性xの場合、各レコードへのポインタp1、p2
・・・pnを用いて(x、p1、p2・・・pn)と表
現させる。
雑なデータ構造の参照関係に対して、参照関係のデータ
を単一のインデックスに保持する。n段の参照関係の最
後が属性xの場合、各レコードへのポインタp1、p2
・・・pnを用いて(x、p1、p2・・・pn)と表
現させる。
【0021】このように構成したインデックスを用いる
ことにより、複雑なデータ構造に対する問い合わせの場
合、つまりファイル間の参照が多い場合でも、参照関係
のファイル毎のインデックスを操作する必要はなく、単
一のインデックスを操作するだけでよいので、高い性能
が期待できる。
ことにより、複雑なデータ構造に対する問い合わせの場
合、つまりファイル間の参照が多い場合でも、参照関係
のファイル毎のインデックスを操作する必要はなく、単
一のインデックスを操作するだけでよいので、高い性能
が期待できる。
【0022】
【実施例】本発明の一実施例を図2〜図4にもとづき説
明する。図2は本発明の一実施例構成図、図3は本発明
におけるインデクシング部におけるインデックス生成手
順説明図、図4は本発明により生成されたインデックス
の1例を示す。
明する。図2は本発明の一実施例構成図、図3は本発明
におけるインデクシング部におけるインデックス生成手
順説明図、図4は本発明により生成されたインデックス
の1例を示す。
【0023】図2において、他図と同一記号は同一部分
を示し、10はデータベース、12はファイル管理部、
13はデータベース管理部、14は問い合わせプロセッ
サである。
を示し、10はデータベース、12はファイル管理部、
13はデータベース管理部、14は問い合わせプロセッ
サである。
【0024】データベース10にはクラス1、クラス
2、クラス3が格納され、また本発明にもとづき作成さ
れたインデックス1−11及び従来と同様にクラス毎に
作成されたインデックス1−21、1−22、1−23
等が格納されている。なお、この図2のデータベース
は、クラス、インスタンス、属性という、それぞれファ
イル、レコード、フイールドに対応するオブジェクト指
向データベースの述語を用いて説明される。
2、クラス3が格納され、また本発明にもとづき作成さ
れたインデックス1−11及び従来と同様にクラス毎に
作成されたインデックス1−21、1−22、1−23
等が格納されている。なお、この図2のデータベース
は、クラス、インスタンス、属性という、それぞれファ
イル、レコード、フイールドに対応するオブジェクト指
向データベースの述語を用いて説明される。
【0025】この例ではクラス1は属性1a、属性1
b、属性1cからなり、クラス2は属性2a、属性2
b、属性2cからなり、クラス3は属性3a、属性3
b、属性3cからなる。勿論属性の数は3に限定される
ものではなく、図7(A)の駆動系クラス、エンジンク
ラスの如き例もある。
b、属性1cからなり、クラス2は属性2a、属性2
b、属性2cからなり、クラス3は属性3a、属性3
b、属性3cからなる。勿論属性の数は3に限定される
ものではなく、図7(A)の駆動系クラス、エンジンク
ラスの如き例もある。
【0026】また各インスタンスはオブジェクト識別子
(データベース10では識別子とのみ記載)を持つ。例
えばクラス1において属性1a、1b、1cを有するイ
ンスタンスはオブジェクト識別子aを持つ。同様にクラ
ス2ではオブジェクト識別子dと、属性2a、2b、2
cによりインスタンスが構成される。クラス3でも同様
であり、このように各インスタンスはオブジェクト識別
子OIDと属性とにより構成される。そして各クラスは
複数のインスタンスで構成されている。
(データベース10では識別子とのみ記載)を持つ。例
えばクラス1において属性1a、1b、1cを有するイ
ンスタンスはオブジェクト識別子aを持つ。同様にクラ
ス2ではオブジェクト識別子dと、属性2a、2b、2
cによりインスタンスが構成される。クラス3でも同様
であり、このように各インスタンスはオブジェクト識別
子OIDと属性とにより構成される。そして各クラスは
複数のインスタンスで構成されている。
【0027】クラス1の属性1cはクラス2を参照して
おり、クラス2の属性2cはさらにクラス3を参照して
いる。即ちクラス1の属性1cがクラス2のオブジェク
ト識別子となり、クラス2の属性2cがクラス3のオブ
ジェクト識別子となっている。このようにしてクラス
1、クラス2、クラス3は1つの複合オブジェクトを構
成する。具体的には図7(A)と同様である。
おり、クラス2の属性2cはさらにクラス3を参照して
いる。即ちクラス1の属性1cがクラス2のオブジェク
ト識別子となり、クラス2の属性2cがクラス3のオブ
ジェクト識別子となっている。このようにしてクラス
1、クラス2、クラス3は1つの複合オブジェクトを構
成する。具体的には図7(A)と同様である。
【0028】データベース10には、本発明により作成
された、参照関係にあるすべてのクラスへのオブジェク
ト識別子をまとめ、これらを1つの属性をキーとしたイ
ンデックス1−11を設ける。インデックス1−11は
レコード3の属性3cをキーとして各クラスのオブジェ
クト識別子a、d、gを保持する例を示す。一般的に
は、n段の参照関係の最後が属性xの場合、各レコード
へのポインタp1、p2・・・pnを用いて(x、p
1、p2・・・pn)と表現する。オブジェクト指向デ
ータベースの場合、各ポインタはそれぞれ各クラスのオ
ブジェクト識別子となる。
された、参照関係にあるすべてのクラスへのオブジェク
ト識別子をまとめ、これらを1つの属性をキーとしたイ
ンデックス1−11を設ける。インデックス1−11は
レコード3の属性3cをキーとして各クラスのオブジェ
クト識別子a、d、gを保持する例を示す。一般的に
は、n段の参照関係の最後が属性xの場合、各レコード
へのポインタp1、p2・・・pnを用いて(x、p
1、p2・・・pn)と表現する。オブジェクト指向デ
ータベースの場合、各ポインタはそれぞれ各クラスのオ
ブジェクト識別子となる。
【0029】データベース10には、この外に、従来通
りの各クラス毎のインデックス1−21、1−22、1
−23を格納することもできる。そしてこの場合、シス
テム全体で用いられる問い合わせの頻度によりこれらの
インデックスを組み合わせることもできる。
りの各クラス毎のインデックス1−21、1−22、1
−23を格納することもできる。そしてこの場合、シス
テム全体で用いられる問い合わせの頻度によりこれらの
インデックスを組み合わせることもできる。
【0030】ファイル管理部12はデータベース10の
2次記憶上の格納構造の情報を持っていて、その情報に
基づいてファイル操作に必要となる2次記憶上のアクセ
スページを決定するものであり、これには、また後述す
る手法によりインデックス1−11を作成する第1イン
デクシング部12−1の外に、前記従来通りのインデッ
クス1−21、1−22、1−23を作成する第2イン
デクシング部12−2が設けられている。
2次記憶上の格納構造の情報を持っていて、その情報に
基づいてファイル操作に必要となる2次記憶上のアクセ
スページを決定するものであり、これには、また後述す
る手法によりインデックス1−11を作成する第1イン
デクシング部12−1の外に、前記従来通りのインデッ
クス1−21、1−22、1−23を作成する第2イン
デクシング部12−2が設けられている。
【0031】データベース管理部13は、ファイル操作
を行うものであり、またデータに対する問い合わせがあ
ったとき、インデックス1−11を操作することにより
各クラスをアクセスするものである。
を行うものであり、またデータに対する問い合わせがあ
ったとき、インデックス1−11を操作することにより
各クラスをアクセスするものである。
【0032】問い合わせプロセッサ14は、データに対
するユーザからの問い合わせQをいくつかのコマンドに
変換して、これにもとづきデータベース管理部13によ
りファイル操作が行われることになる。
するユーザからの問い合わせQをいくつかのコマンドに
変換して、これにもとづきデータベース管理部13によ
りファイル操作が行われることになる。
【0033】次に本発明の第1インデクシング部12−
1におけるインデックスの生成手順について、図3のフ
ローチャートにもとづき、例えば図7(A)に示すデー
タベースを使用して、図4(B)に示す如きインデック
スを作成する手順について説明する。
1におけるインデックスの生成手順について、図3のフ
ローチャートにもとづき、例えば図7(A)に示すデー
タベースを使用して、図4(B)に示す如きインデック
スを作成する手順について説明する。
【0034】例えばユーザが、排気量を属性とする、
自動車クラス、駆動系クラス、エンジンクラスのオブジ
ェクト識別子を対象とするインデックスの作成、つまり
自動車→駆動→エンジン→排気量という複合オブジェク
トを対象とするインデックスの作成命令を入力する。こ
れを一般的に記述すると、入力としては検索される属性
Aと検索されるクラスCの関係をC→I1 →I2 ・・・
→In→Aとなる。ここでCはクラス1のオブジェクト
識別子であり、I1 、I2 ・・・は他のクラスのインス
タンスのオブジェクト識別子である。また前記の場合は
n=2となる。
自動車クラス、駆動系クラス、エンジンクラスのオブジ
ェクト識別子を対象とするインデックスの作成、つまり
自動車→駆動→エンジン→排気量という複合オブジェク
トを対象とするインデックスの作成命令を入力する。こ
れを一般的に記述すると、入力としては検索される属性
Aと検索されるクラスCの関係をC→I1 →I2 ・・・
→In→Aとなる。ここでCはクラス1のオブジェクト
識別子であり、I1 、I2 ・・・は他のクラスのインス
タンスのオブジェクト識別子である。また前記の場合は
n=2となる。
【0035】このような入力を受けたことにより、ま
ずクラスC(この例ではクラス1のオブジェクト識別
子、即ち自動車OID)に調べていないレコードがある
か否かを判別する。最初は、調べていないレコード、つ
まりauto000(X1 )が存在するのでこれを保持
し、Yのルートにより、ポインタiを1に設定する。こ
のときnは前記の如く2でありiはnより小さいので
に移行する。
ずクラスC(この例ではクラス1のオブジェクト識別
子、即ち自動車OID)に調べていないレコードがある
か否かを判別する。最初は、調べていないレコード、つ
まりauto000(X1 )が存在するのでこれを保持
し、Yのルートにより、ポインタiを1に設定する。こ
のときnは前記の如く2でありiはnより小さいので
に移行する。
【0036】これにおいて、auto000(X1 )
の駆動の属性I1 つまりdrive777を保持する。 次にこのI1 の値つまりdrive777の値をオブ
ジェクト識別子として持つレコードを探す。これにより
駆動系クラスのレコード(drive777、eng8
88、オートマチック)が保持される。そしてiが+1
されてi=2となる。そしてこのオブジェクト識別子d
rive777をX2 とする。
の駆動の属性I1 つまりdrive777を保持する。 次にこのI1 の値つまりdrive777の値をオブ
ジェクト識別子として持つレコードを探す。これにより
駆動系クラスのレコード(drive777、eng8
88、オートマチック)が保持される。そしてiが+1
されてi=2となる。そしてこのオブジェクト識別子d
rive777をX2 とする。
【0037】i=2の場合もiはnより大きくないの
で、前記、の処理が行われる。今度はX2 つまりd
rive777をオブジェクト識別子として持つエンジ
ンの属性I2 つまりeng888の値をオブジェクト識
別子として持つレコードを探す。これによりエンジン系
のクラスのレコード(eng888、排気量1500c
c、気筒4)が保持される。そしてiが+1されてi=
3となる。またこのオブジェクト識別子eng888を
X3 とする。
で、前記、の処理が行われる。今度はX2 つまりd
rive777をオブジェクト識別子として持つエンジ
ンの属性I2 つまりeng888の値をオブジェクト識
別子として持つレコードを探す。これによりエンジン系
のクラスのレコード(eng888、排気量1500c
c、気筒4)が保持される。そしてiが+1されてi=
3となる。またこのオブジェクト識別子eng888を
X3 とする。
【0038】今度はi=3となりn=2の値より大と
なったので前記属性である排気量1500ccと、X1
=auto000、X2 =drive777、X3 =e
ng888をインデックスとして保持する。これにより
前記に戻るが、調査されていないクラスCの次のレコ
ードつまりオブジェクト識別子auto123が存在す
るので、これについても同様な処理が行われ、インデッ
クスとして属性である排気量2000cc、X1 =au
to123、X2 =drive456、X3 =eng7
89が保持される。そして残りのレコードであるオブジ
ェクト識別子auto999に関しても、これまた同様
な処理が行われ、インデックスとして属性である排気量
4000cc、X1 =auto999、X2 =driv
e000、X3 =eng111が保持される。
なったので前記属性である排気量1500ccと、X1
=auto000、X2 =drive777、X3 =e
ng888をインデックスとして保持する。これにより
前記に戻るが、調査されていないクラスCの次のレコ
ードつまりオブジェクト識別子auto123が存在す
るので、これについても同様な処理が行われ、インデッ
クスとして属性である排気量2000cc、X1 =au
to123、X2 =drive456、X3 =eng7
89が保持される。そして残りのレコードであるオブジ
ェクト識別子auto999に関しても、これまた同様
な処理が行われ、インデックスとして属性である排気量
4000cc、X1 =auto999、X2 =driv
e000、X3 =eng111が保持される。
【0039】このようにしてクラスCに関してすべて
のレコードが調べられた後に、これら保持していたイン
デックスを図4(B)の如く出力して、終了する。この
インデックスは一般的には図4(A)の如く表示され
る。
のレコードが調べられた後に、これら保持していたイン
デックスを図4(B)の如く出力して、終了する。この
インデックスは一般的には図4(A)の如く表示され
る。
【0040】このようなインデックスの作成はユーザが
データベースの検索に際し、使用頻度の大きいものに注
目して作成することができる。このように本発明により
例えば図4(A)に示す如く、インデックス(属性3
c、OID1 、OID2 、OID3 )が用意される。こ
の例では、複合オブジェクトのクラス3の属性3cと、
クラス1、2、3の各オブジェクト識別子OID 1 、O
ID2 、OID3 が1つのインデックスに保持され、問
い合わせに答えるにはインデックスで属性3cの値jか
ら直接OID1 の値aをインデックス操作するだけでよ
い。
データベースの検索に際し、使用頻度の大きいものに注
目して作成することができる。このように本発明により
例えば図4(A)に示す如く、インデックス(属性3
c、OID1 、OID2 、OID3 )が用意される。こ
の例では、複合オブジェクトのクラス3の属性3cと、
クラス1、2、3の各オブジェクト識別子OID 1 、O
ID2 、OID3 が1つのインデックスに保持され、問
い合わせに答えるにはインデックスで属性3cの値jか
ら直接OID1 の値aをインデックス操作するだけでよ
い。
【0041】更にこのようなインデックスを用いれば、
例えば「クラス3の属性3cの値がjである複合オブジ
ェクトのOID2 を求めなさい」とか、「クラス3の属
性3cの値がjである複合オブジェクトのクラス2の属
性2aを求めなさい」(勿論この場合には、クラス2の
属性2aの項目がインデックス中に存在しているものを
作成する)のような、参照関係中のどのクラスに対する
問い合わせにも簡単に答えられる。
例えば「クラス3の属性3cの値がjである複合オブジ
ェクトのOID2 を求めなさい」とか、「クラス3の属
性3cの値がjである複合オブジェクトのクラス2の属
性2aを求めなさい」(勿論この場合には、クラス2の
属性2aの項目がインデックス中に存在しているものを
作成する)のような、参照関係中のどのクラスに対する
問い合わせにも簡単に答えられる。
【0042】このように本発明によるインデックスは、
単一のインデックスを用いて、ある複合オブジェクトに
対する複数の問い合わせに答えることができ、柔軟性の
高いものとなる。
単一のインデックスを用いて、ある複合オブジェクトに
対する複数の問い合わせに答えることができ、柔軟性の
高いものとなる。
【0043】また、本発明のインデックスはデータの修
正のときに便利である。例えば図6(B)で示す如き従
来のインデックスでは、データdをd′に変更すると
き、クラス1、クラス2のそれぞれのデータをd′に変
更することが必要である。これに対して本発明では、図
4(A)のデータdをd′にするのみでよい。
正のときに便利である。例えば図6(B)で示す如き従
来のインデックスでは、データdをd′に変更すると
き、クラス1、クラス2のそれぞれのデータをd′に変
更することが必要である。これに対して本発明では、図
4(A)のデータdをd′にするのみでよい。
【0044】なお、前記説明では、本発明を図6(A)
に示す如き複合オブジェクトの例について説明したが、
本発明は勿論これに限定されるものではない、例えば関
係データベースにも適用することができる。勿論データ
はクラス1〜クラス3の3クラスにのみ限定されるもの
ではなく、クラスの数はデータに応じ適宜選択できるも
のである。
に示す如き複合オブジェクトの例について説明したが、
本発明は勿論これに限定されるものではない、例えば関
係データベースにも適用することができる。勿論データ
はクラス1〜クラス3の3クラスにのみ限定されるもの
ではなく、クラスの数はデータに応じ適宜選択できるも
のである。
【0045】
【発明の効果】図6(B)に示す如き従来のデータベー
スシステムのインデクシング技術では、クラス1、2、
3というファイル毎にインデックスが生成され、そのた
めファイル間の参照が多い場合には操作するインデック
ス数が何倍にも増え、十分な性能が期待できない、例え
ばn個のデータが参照関係を持つ複雑なデータ構造で
は、n個のインデックスの操作が必要となるため、沢山
のページアクセスが必要であった。
スシステムのインデクシング技術では、クラス1、2、
3というファイル毎にインデックスが生成され、そのた
めファイル間の参照が多い場合には操作するインデック
ス数が何倍にも増え、十分な性能が期待できない、例え
ばn個のデータが参照関係を持つ複雑なデータ構造で
は、n個のインデックスの操作が必要となるため、沢山
のページアクセスが必要であった。
【0046】これに対し本発明では、参照関係の全ての
n個のレコードへの識別値を単一のインデックスに保持
するので、n個のインデックスの操作が1個のインデッ
クスの操作に減少する。このように本発明ではファイル
間の参照が多い場合でも、参照関係のファイル毎のイン
デックスを操作する必要はなく、単一のインデックスを
操作するだけで高い性能が期待できる。
n個のレコードへの識別値を単一のインデックスに保持
するので、n個のインデックスの操作が1個のインデッ
クスの操作に減少する。このように本発明ではファイル
間の参照が多い場合でも、参照関係のファイル毎のイン
デックスを操作する必要はなく、単一のインデックスを
操作するだけで高い性能が期待できる。
【図1】本発明の原理図である。
【図2】本発明の一実施例構成図である。
【図3】本発明のインデックスの生成手順説明図であ
る。
る。
【図4】本発明のインデックス技術説明図である。
【図5】従来例の構成概略図である。
【図6】複合オブジェクトの例及び従来のインデックス
技術説明図である。
技術説明図である。
【図7】自動車部門におけるデータベース及び従来のイ
ンデックス技術説明図である。
ンデックス技術説明図である。
10 データベース 12 ファイル管理部 13 データベース管理部
Claims (4)
- 【請求項1】 複数のファイル(11−1、11−2・
・・)を有するとともに、ファイルにデータの値の代わ
りに他のファイルへの参照を持つことのできる複合デー
タ構造を有するデータベース(10)と、 このデータベース(10)のファイルより、ファイルの
アクセス操作に必要なインデックスを作成するインデク
シング部(12−1)と、 ファイルに対する問い合わせがあったときインデックス
を操作することで各ファイルをアクセス操作するデータ
ベース管理部(13)を設け、 前記インデクシング部(12−1)により、参照を複数
段たどることにより検索される値を検索キーとし、この
検索キーからこれを参照関係の最後に持つ参照関係の全
てのデータの識別子を直接求めることができるインデッ
クス(1−11)を持つことを特徴とするデータベース
システム。 - 【請求項2】 前記インデックス(1−11)に加え
て、各ファイル単位のインデックスを設け、データベー
スシステム全体に用いられる問い合わせの頻度にもとづ
き、これらのインデックスを組み合わせることを特徴と
する請求項1記載のデータベースシステム。 - 【請求項3】 前記データベースシステムにおいて、デ
ータベースがオブジェクト指向データベースであること
を特徴とする請求項1記載のデータベースシステム。 - 【請求項4】 前記データベースシステムにおいて、デ
ータベースが関係データベースであることを特徴とする
請求項1記載のデータベースシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5022282A JPH06236405A (ja) | 1993-02-10 | 1993-02-10 | データベースシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5022282A JPH06236405A (ja) | 1993-02-10 | 1993-02-10 | データベースシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06236405A true JPH06236405A (ja) | 1994-08-23 |
Family
ID=12078404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5022282A Withdrawn JPH06236405A (ja) | 1993-02-10 | 1993-02-10 | データベースシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06236405A (ja) |
-
1993
- 1993-02-10 JP JP5022282A patent/JPH06236405A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6081805A (en) | Pass-through architecture via hash techniques to remove duplicate query results | |
US8886617B2 (en) | Query-based searching using a virtual table | |
US5404510A (en) | Database index design based upon request importance and the reuse and modification of similar existing indexes | |
CA2434081C (en) | Data structures utilizing objects and pointers in the form of a tree structure | |
US6898592B2 (en) | Scoping queries in a search engine | |
US5797137A (en) | Method for converting a database schema in relational form to a schema in object-oriented form | |
US7631012B2 (en) | System and method of operating a database | |
US6266660B1 (en) | Secondary index search | |
US20030225757A1 (en) | Displaying portions of text from multiple documents over multiple database related to a search query in a computer network | |
JP3318834B2 (ja) | データファイルシステム及びデータ検索方法 | |
US20070073759A1 (en) | Methods and systems for joining database tables using indexing data structures | |
US9477729B2 (en) | Domain based keyword search | |
WO1994020913A1 (en) | Maintaining a hierarchical database as a relational database and vice versa | |
AU2002249161A1 (en) | Data structure for information systems | |
WO2004072757A2 (en) | Text and attribute searches of data stores that include business object | |
US7475059B2 (en) | Adapting business objects for searches and searching adapted business objects | |
US7010539B1 (en) | System and method for schema method | |
US8818990B2 (en) | Method, apparatus and computer program for retrieving data | |
JPH06236405A (ja) | データベースシステム | |
JP2965018B2 (ja) | ハイパーメディアシステムにおける検索情報表示方法と検索情報表示装置 | |
JP2639804B2 (ja) | データベース検索装置 | |
JP3066836B2 (ja) | 知識ベースシステムにおける高速アクセス方式 | |
JP2003030040A (ja) | オブジェクトデータベースシステムの複数ハッシュインデックスおよび非ユニークインデックス管理方式 | |
JP2906638B2 (ja) | データベース検索システム | |
KR100311355B1 (ko) | 링크 타입의 구분에 따른 링크 정보를 이용한 정보 검색 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20000509 |