JPH11242678A - データアクセス方法およびプログラムを記録した媒体 - Google Patents
データアクセス方法およびプログラムを記録した媒体Info
- Publication number
- JPH11242678A JPH11242678A JP10043619A JP4361998A JPH11242678A JP H11242678 A JPH11242678 A JP H11242678A JP 10043619 A JP10043619 A JP 10043619A JP 4361998 A JP4361998 A JP 4361998A JP H11242678 A JPH11242678 A JP H11242678A
- Authority
- JP
- Japan
- Prior art keywords
- class
- key value
- index
- search
- identification area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 継承関係を保持するデータに対するクラス内
検索、クラス配下検索の種類に依存せず、高速な検索が
可能に構築されたインデックス構造とデータアクセス方
法を提供する。 【解決手段】 属性を示すキー値を基に、クラス間にま
たがるインデックス30を付与し、同一のキー値をクラ
スごとにまとめてそれぞれにクラスを識別する情報を加
えたクラス識別領域310を付与する。クラス内検索を
行う場合は、インデックス30を探索して目的のキー値
を求め、クラス識別領域310で目的のキー値に付加さ
れたクラスを識別する情報を利用して、指定したクラス
の検索を実行する。クラス配下検索を行う場合は、クラ
ス識別領域310で目的のキー値に付加されたクラスを
識別する情報を利用して、指定されたクラスの属性を継
承している全てのクラスの検索を実行する。
検索、クラス配下検索の種類に依存せず、高速な検索が
可能に構築されたインデックス構造とデータアクセス方
法を提供する。 【解決手段】 属性を示すキー値を基に、クラス間にま
たがるインデックス30を付与し、同一のキー値をクラ
スごとにまとめてそれぞれにクラスを識別する情報を加
えたクラス識別領域310を付与する。クラス内検索を
行う場合は、インデックス30を探索して目的のキー値
を求め、クラス識別領域310で目的のキー値に付加さ
れたクラスを識別する情報を利用して、指定したクラス
の検索を実行する。クラス配下検索を行う場合は、クラ
ス識別領域310で目的のキー値に付加されたクラスを
識別する情報を利用して、指定されたクラスの属性を継
承している全てのクラスの検索を実行する。
Description
【0001】
【発明の属する技術分野】本発明は、データベース管理
システムにおける、継承関係を保持するデータに対する
インデックスの管理方法および検索方法に関し、特に管
理および検索のためのデータアクセス方法に関する。
システムにおける、継承関係を保持するデータに対する
インデックスの管理方法および検索方法に関し、特に管
理および検索のためのデータアクセス方法に関する。
【0002】
【従来の技術】図6は継承関係を持つデータのクラス構
造を示すための模式図である。継承関係を保持するデー
タとは、図6に示すような構造のデータである。図6に
おける符号600をクラスと呼ぶ。クラスとは、同じ属
性を持ったデータの枠組である。クラスの関係を表す符
号601は継承を意味する。継承により定義されたクラ
スは、親クラス602と子クラス603の関係を持つ。
子クラスは、親クラスの属性を全て引き継ぎ、さらに別
の属性を加えて定義されたクラスである。クラスの中の
一つ符号604で示されるものを最上位クラスと呼ぶ。
また、符号605で示されるものを最下位クラスと呼
ぶ。
造を示すための模式図である。継承関係を保持するデー
タとは、図6に示すような構造のデータである。図6に
おける符号600をクラスと呼ぶ。クラスとは、同じ属
性を持ったデータの枠組である。クラスの関係を表す符
号601は継承を意味する。継承により定義されたクラ
スは、親クラス602と子クラス603の関係を持つ。
子クラスは、親クラスの属性を全て引き継ぎ、さらに別
の属性を加えて定義されたクラスである。クラスの中の
一つ符号604で示されるものを最上位クラスと呼ぶ。
また、符号605で示されるものを最下位クラスと呼
ぶ。
【0003】継承関係を保持するデータに対する検索の
方法には、2通りある。継承関係のクラスの中から、任
意のクラスを指定し、そのクラス内のデータを検索対象
とするクラス内検索と、任意のクラスを指定し、その指
定したクラスおよびそのクラスの属性を継承している全
ての子クラスのデータを検索対象とするクラス配下検索
である。
方法には、2通りある。継承関係のクラスの中から、任
意のクラスを指定し、そのクラス内のデータを検索対象
とするクラス内検索と、任意のクラスを指定し、その指
定したクラスおよびそのクラスの属性を継承している全
ての子クラスのデータを検索対象とするクラス配下検索
である。
【0004】上記の2種類の検索を高速化するために、
データをメモリ上に常駐させ、さらにメモリアーキテク
チャにおいて有効とされているT木インデックスを構築
した場合を例にとる。図7は従来例のT木インデックス
の構成を説明するための模式的構成図である。図7にお
ける従来のT木インデックス70は、T木本体700と
キー値格納領域704と重複キー格納領域705とで構
成されている。T木本体700は、複数のノード701
とノード701の間を結合するノード間ポインタ702
とから成り立っている。各ノード701には、キー値へ
のポインタ703が格納されており、キー値自体はT木
本体700とは別のキー値格納領域704に格納されて
いる。重複キー値もノード701には直接格納されず、
T木本体700とは別の重複キー格納領域705に格納
されている。ただし、キー値格納領域704、重複キー
格納領域705は必ず存在するとは限らず、T木本体7
00に格納される場合もある。
データをメモリ上に常駐させ、さらにメモリアーキテク
チャにおいて有効とされているT木インデックスを構築
した場合を例にとる。図7は従来例のT木インデックス
の構成を説明するための模式的構成図である。図7にお
ける従来のT木インデックス70は、T木本体700と
キー値格納領域704と重複キー格納領域705とで構
成されている。T木本体700は、複数のノード701
とノード701の間を結合するノード間ポインタ702
とから成り立っている。各ノード701には、キー値へ
のポインタ703が格納されており、キー値自体はT木
本体700とは別のキー値格納領域704に格納されて
いる。重複キー値もノード701には直接格納されず、
T木本体700とは別の重複キー格納領域705に格納
されている。ただし、キー値格納領域704、重複キー
格納領域705は必ず存在するとは限らず、T木本体7
00に格納される場合もある。
【0005】図7に示したようなインデックスを、図6
における継承された属性についてクラス間にまたがって
構築する。同一キー値が、異なるクラス間で存在する場
合があるため、クラスを一意に特定する識別子を設定
し、それらの識別子をスキーマが管理する。インデック
スを構築するインデックスキーは、継承された属性の値
を示すキー値とクラス識別子を組み合わせた値となって
いる。
における継承された属性についてクラス間にまたがって
構築する。同一キー値が、異なるクラス間で存在する場
合があるため、クラスを一意に特定する識別子を設定
し、それらの識別子をスキーマが管理する。インデック
スを構築するインデックスキーは、継承された属性の値
を示すキー値とクラス識別子を組み合わせた値となって
いる。
【0006】クラス内検索を行う場合は、指定されたク
ラスの識別子をスキーマから取得し、目的のキー値と組
み合わせ検索キーを作成する。その検索キーを用いて、
インデックスを探索する。
ラスの識別子をスキーマから取得し、目的のキー値と組
み合わせ検索キーを作成する。その検索キーを用いて、
インデックスを探索する。
【0007】また、クラス配下検索を行う場合は、指定
されたクラスおよびそのクラスの属性を継承している全
ての子クラスの識別子をスキーマから取得し、目的のキ
ー値とそれぞれ組み合わせ、検索対象となるクラス数と
同数の検索キーを作成する。それらの検索キーを用い
て、インデックスを複数回探索する。
されたクラスおよびそのクラスの属性を継承している全
ての子クラスの識別子をスキーマから取得し、目的のキ
ー値とそれぞれ組み合わせ、検索対象となるクラス数と
同数の検索キーを作成する。それらの検索キーを用い
て、インデックスを複数回探索する。
【0008】
【発明が解決しようとする課題】上述の従来の方法で
は、以下に示す問題点があった。即ち、継承された属性
についてクラス間にまたがるインデックスを構築した場
合、異なるクラス間で存在する同一キー値を区別するた
めに、キー値とクラス識別子とを組み合わせたキーでイ
ンデックスを構築する必要があった。図8はインデック
スとテーブルとクラス識別情報の関係を示す模式図であ
り、(a)は従来例を示し、(b)は本発明を示す。従
来例では図8(a)で示すように、インデックス70に
クラス識別情報を組込む必要があった。このことによ
り、同一キー値が存在するクラスの数の分インデックス
キーが増すため、インデックスのサイズが拡大するとい
う問題点がある。参考までに本発明ではクラス識別情報
をインデックス外に設けることによって従来例の問題点
を解決した。
は、以下に示す問題点があった。即ち、継承された属性
についてクラス間にまたがるインデックスを構築した場
合、異なるクラス間で存在する同一キー値を区別するた
めに、キー値とクラス識別子とを組み合わせたキーでイ
ンデックスを構築する必要があった。図8はインデック
スとテーブルとクラス識別情報の関係を示す模式図であ
り、(a)は従来例を示し、(b)は本発明を示す。従
来例では図8(a)で示すように、インデックス70に
クラス識別情報を組込む必要があった。このことによ
り、同一キー値が存在するクラスの数の分インデックス
キーが増すため、インデックスのサイズが拡大するとい
う問題点がある。参考までに本発明ではクラス識別情報
をインデックス外に設けることによって従来例の問題点
を解決した。
【0009】上記のインデックスを用いた場合、クラス
内検索は、検索対象以外のクラスに存在するデータを含
んだインデックスを用いるため検索の範囲が広く効率的
でなく、また、クラス配下検索は、指定されたクラスの
属性を継承している全てのクラスの数の検索キーを作成
し、かつその回数インデックスを探索するため、効率的
でないという問題点がある。
内検索は、検索対象以外のクラスに存在するデータを含
んだインデックスを用いるため検索の範囲が広く効率的
でなく、また、クラス配下検索は、指定されたクラスの
属性を継承している全てのクラスの数の検索キーを作成
し、かつその回数インデックスを探索するため、効率的
でないという問題点がある。
【0010】この発明が解決しようとする課題は、継承
関係を保持するデータに対するクラス内検索、クラス配
下検索の種類に依存せず、高速な検索が可能に構築され
たインデックス構造とデータアクセス方法を提供するこ
とである。
関係を保持するデータに対するクラス内検索、クラス配
下検索の種類に依存せず、高速な検索が可能に構築され
たインデックス構造とデータアクセス方法を提供するこ
とである。
【0011】
【課題を解決するための手段】本発明のデータアクセス
方法は、継承関係にあるクラスを管理可能で、かつイン
デックスを有するデータベース管理システムにおいて、
継承された属性について、その属性を示す値であるキー
値を基に、クラス間にまたがるインデックスを付与し、
同一のキー値をクラスごとにまとめてそれぞれにクラス
を識別する情報を加えたクラス識別領域を付与する。あ
るクラスを指定してそのクラス内を検索対象とするクラ
ス内検索を行う場合は、インデックスを探索して目的の
キー値を求め、クラス識別領域で目的のキー値に付加さ
れたクラスを識別する情報を利用して、指定したクラス
の検索を実行する。あるクラスを指定してそのクラスの
属性を継承している全てのクラスを検索対象とするクラ
ス配下検索を行う場合は、インデックスを探索して目的
のキー値を求め、クラス識別領域で目的のキー値に付加
されたクラスを識別する情報を利用して、指定されたク
ラスの属性を継承している全てのクラスの検索を実行す
る。
方法は、継承関係にあるクラスを管理可能で、かつイン
デックスを有するデータベース管理システムにおいて、
継承された属性について、その属性を示す値であるキー
値を基に、クラス間にまたがるインデックスを付与し、
同一のキー値をクラスごとにまとめてそれぞれにクラス
を識別する情報を加えたクラス識別領域を付与する。あ
るクラスを指定してそのクラス内を検索対象とするクラ
ス内検索を行う場合は、インデックスを探索して目的の
キー値を求め、クラス識別領域で目的のキー値に付加さ
れたクラスを識別する情報を利用して、指定したクラス
の検索を実行する。あるクラスを指定してそのクラスの
属性を継承している全てのクラスを検索対象とするクラ
ス配下検索を行う場合は、インデックスを探索して目的
のキー値を求め、クラス識別領域で目的のキー値に付加
されたクラスを識別する情報を利用して、指定されたク
ラスの属性を継承している全てのクラスの検索を実行す
る。
【0012】クラス識別領域には、同一のキー値をクラ
スごとにまとめてそれぞれにクラスを識別する情報を加
えた複数のグループが形成され、同一のキー値を有する
グループ間がクラス順に双方向リンクで結合され、その
クラス識別領域内のクラスを識別する情報を加えられた
全てのキー値は該当するクラスのテーブルへポインタで
結合され、そのクラス識別領域のキー値はインデックス
の対応するキー値とポインタで結合されていてもよい。
スごとにまとめてそれぞれにクラスを識別する情報を加
えた複数のグループが形成され、同一のキー値を有する
グループ間がクラス順に双方向リンクで結合され、その
クラス識別領域内のクラスを識別する情報を加えられた
全てのキー値は該当するクラスのテーブルへポインタで
結合され、そのクラス識別領域のキー値はインデックス
の対応するキー値とポインタで結合されていてもよい。
【0013】また、クラス識別領域には、同一のキー値
をクラスごとにまとめてそれぞれにクラスを識別する情
報を加えた複数のグループが形成され、そのクラス識別
領域にはインデックス内のすべてのキー値に対応してそ
れぞれにクラスを順に並べた配列が形成され、各グルー
プは、配列の同一キー値の同一クラスとポインタで結合
され、そのクラス識別領域内のクラスを識別する情報を
加えられた全てのキー値は該当するクラスのテーブルへ
ポインタで結合され、そのクラス識別領域の配列はイン
デックスの対応するキー値とポインタで結合されていて
もよい。
をクラスごとにまとめてそれぞれにクラスを識別する情
報を加えた複数のグループが形成され、そのクラス識別
領域にはインデックス内のすべてのキー値に対応してそ
れぞれにクラスを順に並べた配列が形成され、各グルー
プは、配列の同一キー値の同一クラスとポインタで結合
され、そのクラス識別領域内のクラスを識別する情報を
加えられた全てのキー値は該当するクラスのテーブルへ
ポインタで結合され、そのクラス識別領域の配列はイン
デックスの対応するキー値とポインタで結合されていて
もよい。
【0014】さらに、クラス識別領域には、同一のキー
値をクラスごとにまとめてそれぞれにクラスを識別する
情報を加えた複数のグループが形成され、キー値とクラ
スを識別する情報との組み合わせに対して、一意のポイ
ンタを返却するHash関数を利用し、各グループは、
Hash関数より同一キー値の同一クラスとポインタで
結合され、そのクラス識別領域内のクラスを識別する情
報を加えられた全てのキー値は該当するクラスのテーブ
ルへポインタで結合されていてもよい。
値をクラスごとにまとめてそれぞれにクラスを識別する
情報を加えた複数のグループが形成され、キー値とクラ
スを識別する情報との組み合わせに対して、一意のポイ
ンタを返却するHash関数を利用し、各グループは、
Hash関数より同一キー値の同一クラスとポインタで
結合され、そのクラス識別領域内のクラスを識別する情
報を加えられた全てのキー値は該当するクラスのテーブ
ルへポインタで結合されていてもよい。
【0015】上述のように、本発明のデータアクセス方
法によれば、継承関係にあるクラスを管理可能で、かつ
インデックスを有するデータベース管理システムにおい
て、継承された属性について、その属性のキー値を基
に、クラス間にまたがるインデックスを付与し、同一キ
ー値について、クラスごとにまとめ、クラスを識別する
情報を加えたクラス識別情報を付与したので、キー値と
クラス識別子を組み合わせた従来の方法と比べると、イ
ンデックスサイズを小さく抑えることが可能となる。
法によれば、継承関係にあるクラスを管理可能で、かつ
インデックスを有するデータベース管理システムにおい
て、継承された属性について、その属性のキー値を基
に、クラス間にまたがるインデックスを付与し、同一キ
ー値について、クラスごとにまとめ、クラスを識別する
情報を加えたクラス識別情報を付与したので、キー値と
クラス識別子を組み合わせた従来の方法と比べると、イ
ンデックスサイズを小さく抑えることが可能となる。
【0016】あるクラスを指定し、そのクラス内を検索
対象とするクラス内検索を行う場合、そのインデックス
を探索し、目的のキー値により、クラスを識別する情報
を利用して検索を実行するが、インデックスサイズが押
さえられているため、インデックスの探索が効率的とな
り、検索を高速に実行できる。
対象とするクラス内検索を行う場合、そのインデックス
を探索し、目的のキー値により、クラスを識別する情報
を利用して検索を実行するが、インデックスサイズが押
さえられているため、インデックスの探索が効率的とな
り、検索を高速に実行できる。
【0017】また、あるクラスを指定し、そのクラスの
属性を継承している全てのクラスを検索対象とするクラ
ス配下検索を行う場合、そのインデックスを探索し、目
的のキー値によりクラスを識別する情報を利用して検索
を実行するが、インデックスを探索する処理が一度で済
むため、処理が効率的となり、検索を高速に実行でき
る。
属性を継承している全てのクラスを検索対象とするクラ
ス配下検索を行う場合、そのインデックスを探索し、目
的のキー値によりクラスを識別する情報を利用して検索
を実行するが、インデックスを探索する処理が一度で済
むため、処理が効率的となり、検索を高速に実行でき
る。
【0018】
【発明の実施の形態】先ず、本発明のインデックス構造
を備えたデータベースシステムについて図面を参照して
説明する。図1は本発明のインデックス構造が構築され
たデータベースシステムの模式的ブロック図である。デ
ータベースシステムはデータベース110と、オペレー
ティングシステム120と、データベース管理システム
130と、アプリケーション150とを備えている。
を備えたデータベースシステムについて図面を参照して
説明する。図1は本発明のインデックス構造が構築され
たデータベースシステムの模式的ブロック図である。デ
ータベースシステムはデータベース110と、オペレー
ティングシステム120と、データベース管理システム
130と、アプリケーション150とを備えている。
【0019】データベース110にはレコードを収容し
たテーブル111a、111b、111cと、レコード
の属性に対応して構築されたインデックス112と、本
発明の特徴であるクラス識別情報を格納したクラス識別
領域113とが構築されており、データベース管理シス
テム130にはクラス間の継承関係やクラスにおける属
性を管理するスキーマ管理モジュール140と、インデ
ックス112を操作するためのインデックス操作モジュ
ール131と、アプリケーション150からデータベー
ス110にアクセスするための制御プログラムを記録し
た記録媒体139とが設けられている。アプリケーショ
ン150から例えば「属性aがXXは?」との問い合わ
せがデータベース管理システム130にあると、データ
ベース管理システム130はスキーマ管理モジュール1
40とインデックス操作モジュール131によりデータ
ベース110のインデックス112にアプローチし所望
のテーブルへのポインタを取り出してアプリケーション
150に返却する。
たテーブル111a、111b、111cと、レコード
の属性に対応して構築されたインデックス112と、本
発明の特徴であるクラス識別情報を格納したクラス識別
領域113とが構築されており、データベース管理シス
テム130にはクラス間の継承関係やクラスにおける属
性を管理するスキーマ管理モジュール140と、インデ
ックス112を操作するためのインデックス操作モジュ
ール131と、アプリケーション150からデータベー
ス110にアクセスするための制御プログラムを記録し
た記録媒体139とが設けられている。アプリケーショ
ン150から例えば「属性aがXXは?」との問い合わ
せがデータベース管理システム130にあると、データ
ベース管理システム130はスキーマ管理モジュール1
40とインデックス操作モジュール131によりデータ
ベース110のインデックス112にアプローチし所望
のテーブルへのポインタを取り出してアプリケーション
150に返却する。
【0020】本発明の実施の形態では、データアクセス
のためのインデックスを次の構造で構築する。 (1)継承された属性に対してその属性の値(キー値)
を基に、クラス間にまたがるインデックス112を、デ
ータベース110に付与する。 (2)同一キー値をクラスごとにまとめ、クラスを識別
する情報を加えたクラス識別領域113を、データベー
ス110に付与する。
のためのインデックスを次の構造で構築する。 (1)継承された属性に対してその属性の値(キー値)
を基に、クラス間にまたがるインデックス112を、デ
ータベース110に付与する。 (2)同一キー値をクラスごとにまとめ、クラスを識別
する情報を加えたクラス識別領域113を、データベー
ス110に付与する。
【0021】また、本発明の実施の形態では、データア
クセスを次の方法で行う。先ずアプリケーション150
の指示により、上記インデックス112を用い、あるク
ラスを指定して、目的のキー値について指定されたクラ
ス内を検索対象とするクラス内検索を行う場合には、 (1)目的とするキー値を基に構築されたインデックス
112を探索する。 (2)目的のキー値が見つかった場合、クラス識別領域
113のクラスを識別する情報を利用し、該当するテー
ブルのレコードへのポインタを求めてアプリケーション
150に返却する。
クセスを次の方法で行う。先ずアプリケーション150
の指示により、上記インデックス112を用い、あるク
ラスを指定して、目的のキー値について指定されたクラ
ス内を検索対象とするクラス内検索を行う場合には、 (1)目的とするキー値を基に構築されたインデックス
112を探索する。 (2)目的のキー値が見つかった場合、クラス識別領域
113のクラスを識別する情報を利用し、該当するテー
ブルのレコードへのポインタを求めてアプリケーション
150に返却する。
【0022】また、アプリケーション150の指示によ
り、上記インデックス112を用いて、あるクラスを指
定して、そのクラスの属性を継承している全てのクラス
を検索対象とするクラス配下検索を行う場合には、 (1)目的とするキー値を基に構築されたインデックス
112を探索する。 (2)目的のキー値が見つかった場合、クラス識別領域
113のクラスを識別する情報を利用し、先ず指定され
たクラスのテーブルのレコードへのポインタ求め、次に
そのクラスからのリンクにより検索対象となるクラスの
テーブルのレコードへのポインタを求めてアプリケーシ
ョン150に順次返却する。
り、上記インデックス112を用いて、あるクラスを指
定して、そのクラスの属性を継承している全てのクラス
を検索対象とするクラス配下検索を行う場合には、 (1)目的とするキー値を基に構築されたインデックス
112を探索する。 (2)目的のキー値が見つかった場合、クラス識別領域
113のクラスを識別する情報を利用し、先ず指定され
たクラスのテーブルのレコードへのポインタ求め、次に
そのクラスからのリンクにより検索対象となるクラスの
テーブルのレコードへのポインタを求めてアプリケーシ
ョン150に順次返却する。
【0023】制御プログラムは記録媒体139からイン
デックス操作モジュール131に読み込まれインデック
ス操作モジュール131の動作を制御する。インデック
ス操作モジュール131は制御プログラムの制御により
以下の処理を実行する。
デックス操作モジュール131に読み込まれインデック
ス操作モジュール131の動作を制御する。インデック
ス操作モジュール131は制御プログラムの制御により
以下の処理を実行する。
【0024】即ち、継承関係にあるクラスを管理可能
で、かつインデックスを有するデータベース管理システ
ムにおいて、継承された属性について、その属性を示す
値であるキー値を基に、クラス間にまたがるインデック
スを付与する処理と、同一のキー値をクラスごとにまと
めてそれぞれにクラスを識別する情報を加えたクラス識
別領域を付与する処理と、あるクラスを指定してそのク
ラス内を検索対象とするクラス内検索においては、イン
デックスを探索して目的のキー値を求め、クラス識別領
域で目的のキー値に付加されたクラスを識別する情報を
利用して、指定したクラスの検索を実行する処理と、あ
るクラスを指定してそのクラスの属性を継承している全
てのクラスを検索対象とするクラス配下検索において
は、インデックスを探索して目的のキー値を求め、クラ
ス識別領域で目的のキー値に付加されたクラスを識別す
る情報を利用して、指定されたクラスの属性を継承して
いる全てのクラスの検索を実行する手順と、を実行す
る。
で、かつインデックスを有するデータベース管理システ
ムにおいて、継承された属性について、その属性を示す
値であるキー値を基に、クラス間にまたがるインデック
スを付与する処理と、同一のキー値をクラスごとにまと
めてそれぞれにクラスを識別する情報を加えたクラス識
別領域を付与する処理と、あるクラスを指定してそのク
ラス内を検索対象とするクラス内検索においては、イン
デックスを探索して目的のキー値を求め、クラス識別領
域で目的のキー値に付加されたクラスを識別する情報を
利用して、指定したクラスの検索を実行する処理と、あ
るクラスを指定してそのクラスの属性を継承している全
てのクラスを検索対象とするクラス配下検索において
は、インデックスを探索して目的のキー値を求め、クラ
ス識別領域で目的のキー値に付加されたクラスを識別す
る情報を利用して、指定されたクラスの属性を継承して
いる全てのクラスの検索を実行する手順と、を実行す
る。
【0025】次に、本発明の実施例について説明する。
図2は実施例の対象とする継承関係を保持しているクラ
ス構造の模式的構成図であり、(a)は構造図、(b)
はクラスと識別子、属性との関係図である。このクラス
構造は親クラスであるAクラスと子クラスであるBクラ
スおよびCクラスとから構成され、識別子はAクラスが
1、Bクラスが2、Cクラスが3となっており、属性は
Aクラスが属性a、属性b、Bクラスが属性a、属性
b、属性c、Cクラスが属性a、属性b、属性dとなっ
ている。図7の従来例のインデックスもこのクラス構造
を対象としている。
図2は実施例の対象とする継承関係を保持しているクラ
ス構造の模式的構成図であり、(a)は構造図、(b)
はクラスと識別子、属性との関係図である。このクラス
構造は親クラスであるAクラスと子クラスであるBクラ
スおよびCクラスとから構成され、識別子はAクラスが
1、Bクラスが2、Cクラスが3となっており、属性は
Aクラスが属性a、属性b、Bクラスが属性a、属性
b、属性c、Cクラスが属性a、属性b、属性dとなっ
ている。図7の従来例のインデックスもこのクラス構造
を対象としている。
【0026】[実施例1]図2、図3に基づいて実施例
1を説明する。図3は図2に示すようなA、B、Cクラ
スに継承関係が存在する場合に、属性aについて構築し
た本発明の実施例1のインデックスの構造を説明するた
めの模式的構成図である。
1を説明する。図3は図2に示すようなA、B、Cクラ
スに継承関係が存在する場合に、属性aについて構築し
た本発明の実施例1のインデックスの構造を説明するた
めの模式的構成図である。
【0027】先ずインデックスの構築方法について説明
する。図2に示すようなA、B、Cクラスに継承関係が
存在する場合について、次の構成で属性aについて図3
に示すインデックスを構築した。 (1)クラス間の継承関係やクラスにおける属性を管理
するスキーマ(図1符号140)が、各クラスに一意の
識別子を付与する。 (2)インデックスを属性aのキー値のみで構築する。
図3は、インデックスとしてT木本体300を用いた例
を示す。 T木インデックス30は、T木本体300と
キー値格納領域304とで構成されている。T木本体3
00は、ノード301とノード301の間を結合するノ
ード間ポインタ302とから成り立っている。各ノード
301には、キー値へのポインタ303が格納されてお
り、キー値自体はT木本体300とは別のキー値格納領
域304に格納されている。キー値格納領域304を確
保しない場合は、T木本体300にキー値を格納するこ
とにより同じ作業が可能となる。 (3)キー値ごとにそのキー値が属しているクラス別に
キー値をまとめてクラスの識別子を付与し、キー値をク
ラス識別子ごとにまとめたグループを格納するクラス識
別領域310を構築する。クラス識別領域310内の各
キー値は、識別子に対応するクラスのA〜Cのテーブル
321〜323のキー値に対応するレコードと結合する
ポインタ313を格納する。 (4)クラス識別領域310内の、(3)で同じキー値
のそれぞれのクラス別にまとめられたグループを、順に
双方向リンク311で結合する。 (5)クラス識別領域310の各キー値の先頭のクラス
のグループをキー値格納領域304の対応するキー値と
クラス識別領域へのポインタ312で結合する。
する。図2に示すようなA、B、Cクラスに継承関係が
存在する場合について、次の構成で属性aについて図3
に示すインデックスを構築した。 (1)クラス間の継承関係やクラスにおける属性を管理
するスキーマ(図1符号140)が、各クラスに一意の
識別子を付与する。 (2)インデックスを属性aのキー値のみで構築する。
図3は、インデックスとしてT木本体300を用いた例
を示す。 T木インデックス30は、T木本体300と
キー値格納領域304とで構成されている。T木本体3
00は、ノード301とノード301の間を結合するノ
ード間ポインタ302とから成り立っている。各ノード
301には、キー値へのポインタ303が格納されてお
り、キー値自体はT木本体300とは別のキー値格納領
域304に格納されている。キー値格納領域304を確
保しない場合は、T木本体300にキー値を格納するこ
とにより同じ作業が可能となる。 (3)キー値ごとにそのキー値が属しているクラス別に
キー値をまとめてクラスの識別子を付与し、キー値をク
ラス識別子ごとにまとめたグループを格納するクラス識
別領域310を構築する。クラス識別領域310内の各
キー値は、識別子に対応するクラスのA〜Cのテーブル
321〜323のキー値に対応するレコードと結合する
ポインタ313を格納する。 (4)クラス識別領域310内の、(3)で同じキー値
のそれぞれのクラス別にまとめられたグループを、順に
双方向リンク311で結合する。 (5)クラス識別領域310の各キー値の先頭のクラス
のグループをキー値格納領域304の対応するキー値と
クラス識別領域へのポインタ312で結合する。
【0028】次に、上記のインデックスを用いた検索方
法について説明する。
法について説明する。
【0029】クラス内検索は、以下の処理を行う。 (1)指定されたクラスの識別子をスキーマから取得す
る。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス30を探索する。 (3)インデックス30内のキー値が目的のキー値と一
致した場合、インデックス30からクラス識別領域への
ポインタ312を辿る。 (4)保持している識別子とクラス識別領域310内の
識別子が一致するまで、双方向リンク311を辿る。 (5)クラス識別領域310内の識別子が保持している
識別子と一致した場合、そこに存在するクラスのテーブ
ルへのポインタ313を全て返却する。
る。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス30を探索する。 (3)インデックス30内のキー値が目的のキー値と一
致した場合、インデックス30からクラス識別領域への
ポインタ312を辿る。 (4)保持している識別子とクラス識別領域310内の
識別子が一致するまで、双方向リンク311を辿る。 (5)クラス識別領域310内の識別子が保持している
識別子と一致した場合、そこに存在するクラスのテーブ
ルへのポインタ313を全て返却する。
【0030】クラス配下検索は、以下の処理を行う。 (1)指定されたクラスの属性を継承している全てのク
ラスの識別子をスキーマから取得する。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス30を探索する。 (3)インデックス30内のキー値が目的のキー値と一
致した場合、インデックス30からクラス識別領域への
ポインタ312を辿る。 (4)保持している識別子の一つとクラス識別領域31
0内の識別子が一致するまで、双方向リンク311を辿
る。 (5)クラス識別領域310内の識別子が保持している
識別子の一つと一致した場合、そこに存在するクラスの
テーブルへのポインタ313を全て返却する。
ラスの識別子をスキーマから取得する。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス30を探索する。 (3)インデックス30内のキー値が目的のキー値と一
致した場合、インデックス30からクラス識別領域への
ポインタ312を辿る。 (4)保持している識別子の一つとクラス識別領域31
0内の識別子が一致するまで、双方向リンク311を辿
る。 (5)クラス識別領域310内の識別子が保持している
識別子の一つと一致した場合、そこに存在するクラスの
テーブルへのポインタ313を全て返却する。
【0031】上記の(4)、(5)の処理を、保持して
いる識別子の全てについて繰り返す。このことにより、
一度インデックスを探索した後は、クラス識別領域内を
検索対象のクラス数の回数辿ることにより指定されたク
ラスの属性を継承している全てのクラスのテーブルへの
ポインタ313の全ての返却が可能となる。
いる識別子の全てについて繰り返す。このことにより、
一度インデックスを探索した後は、クラス識別領域内を
検索対象のクラス数の回数辿ることにより指定されたク
ラスの属性を継承している全てのクラスのテーブルへの
ポインタ313の全ての返却が可能となる。
【0032】[実施例2]図2、図4に基づいて実施例
2を説明する。図4は図2に示すようなA、B、Cクラ
スに継承関係が存在する場合に、属性aについて構築し
た本発明の実施例2のインデックスの構造を説明するた
めの模式的構成図である。
2を説明する。図4は図2に示すようなA、B、Cクラ
スに継承関係が存在する場合に、属性aについて構築し
た本発明の実施例2のインデックスの構造を説明するた
めの模式的構成図である。
【0033】先ずインデックスの構築方法について説明
する。図2に示すようなA、B、Cクラスに継承関係が
存在する場合、次の構成で属性aについて図4に示すイ
ンデックスを構築した。 (1)クラス間の継承関係やクラスにおける属性を管理
するスキーマ(図1符号140)が、各クラスに一意の
識別子を付与する。 (2)インデックスを属性aのキー値のみで構築する。
図4は、インデックスとしてT木本体400を用いた例
を示す。 T木インデックス40は、T木本体400と
キー値格納領域404とで構成されている。T木本体4
00は、ノード401とノード401の間を結合するノ
ード間ポインタ402とから成り立っている。各ノード
401には、キー値へのポインタ403が格納されてお
り、キー値自体はT木本体400とは別のキー値格納領
域404に格納されている。キー値格納領域404を確
保しない場合は、T木本体400にキー値を格納するこ
とにより同じ作業が可能となる。 (3)キー値ごとにそのキー値が属しているクラス別に
キー値をまとめてクラスの識別子を付与し、キー値をク
ラス識別子ごとにまとめたグループを格納するクラス識
別領域410を構築する。クラス識別領域410内の各
キー値は、識別子に対応するクラスのA〜Cのテーブル
421〜423のキー値に対応するレコードと結合する
ポインタ413を格納する。 (4)クラス識別領域内に、各クラス識別子を配列させ
た配列414を各キー値ごとに作成する。この配列は、
その配列のキー値とクラス識別子に対応した(3)で作
成したグループとこの配列とを結合するポインタ415
を格納する。 (5)(4)で作成した配列414のそれぞれと、イン
デックス40の対応するキー値とを、クラス識別領域4
10へのポインタ412で結合する。
する。図2に示すようなA、B、Cクラスに継承関係が
存在する場合、次の構成で属性aについて図4に示すイ
ンデックスを構築した。 (1)クラス間の継承関係やクラスにおける属性を管理
するスキーマ(図1符号140)が、各クラスに一意の
識別子を付与する。 (2)インデックスを属性aのキー値のみで構築する。
図4は、インデックスとしてT木本体400を用いた例
を示す。 T木インデックス40は、T木本体400と
キー値格納領域404とで構成されている。T木本体4
00は、ノード401とノード401の間を結合するノ
ード間ポインタ402とから成り立っている。各ノード
401には、キー値へのポインタ403が格納されてお
り、キー値自体はT木本体400とは別のキー値格納領
域404に格納されている。キー値格納領域404を確
保しない場合は、T木本体400にキー値を格納するこ
とにより同じ作業が可能となる。 (3)キー値ごとにそのキー値が属しているクラス別に
キー値をまとめてクラスの識別子を付与し、キー値をク
ラス識別子ごとにまとめたグループを格納するクラス識
別領域410を構築する。クラス識別領域410内の各
キー値は、識別子に対応するクラスのA〜Cのテーブル
421〜423のキー値に対応するレコードと結合する
ポインタ413を格納する。 (4)クラス識別領域内に、各クラス識別子を配列させ
た配列414を各キー値ごとに作成する。この配列は、
その配列のキー値とクラス識別子に対応した(3)で作
成したグループとこの配列とを結合するポインタ415
を格納する。 (5)(4)で作成した配列414のそれぞれと、イン
デックス40の対応するキー値とを、クラス識別領域4
10へのポインタ412で結合する。
【0034】次に、上記のインデックスを用いた検索方
法について説明する。
法について説明する。
【0035】クラス内検索は、以下の処理を行う。 (1)指定されたクラスの識別子をスキーマから取得す
る。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス40を探索する。 (3)インデックス40内のキー値が目的のキー値と一
致した場合、インデックス40からクラス識別領域41
0の配列414までクラス識別領域へのポインタ412
を辿る。 (4)保持している識別子を基に、配列414の中から
指定されたクラスのテーブルへのポインタ413をまと
めたグループへのポインタ415を辿る。 (5)そこに存在するそのクラスのテーブルへのポイン
タ413を全て返却する。
る。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス40を探索する。 (3)インデックス40内のキー値が目的のキー値と一
致した場合、インデックス40からクラス識別領域41
0の配列414までクラス識別領域へのポインタ412
を辿る。 (4)保持している識別子を基に、配列414の中から
指定されたクラスのテーブルへのポインタ413をまと
めたグループへのポインタ415を辿る。 (5)そこに存在するそのクラスのテーブルへのポイン
タ413を全て返却する。
【0036】クラス配下検索は、以下の処理を行う。 (1)指定されたクラスの属性を継承している全てのク
ラスの識別子をスキーマから取得する。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス40を探索する。 (3)インデックス40内のキー値が目的のキー値と一
致した場合、インデックス40からクラス識別領域41
0の配列414までクラス識別領域へのポインタ412
を辿る。 (4)保持している識別子の一つを基に、配列414の
中から指定されたクラスのテーブルへのポインタ413
をまとめたグループへのポインタ415を辿る。 (5)そこに存在するそのクラスのテーブルへのポイン
タ413を全て返却する。
ラスの識別子をスキーマから取得する。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス40を探索する。 (3)インデックス40内のキー値が目的のキー値と一
致した場合、インデックス40からクラス識別領域41
0の配列414までクラス識別領域へのポインタ412
を辿る。 (4)保持している識別子の一つを基に、配列414の
中から指定されたクラスのテーブルへのポインタ413
をまとめたグループへのポインタ415を辿る。 (5)そこに存在するそのクラスのテーブルへのポイン
タ413を全て返却する。
【0037】上記の(4)、(5)の処理を、保持して
いる識別子の全てについて繰り返す。このことにより、
一度インデックスを探索した後は、クラス識別領域内を
検索対象のクラス数の回数辿ることにより指定されたク
ラスの属性を継承している全てのクラスのテーブルへの
ポインタ413の全ての返却が可能となる。
いる識別子の全てについて繰り返す。このことにより、
一度インデックスを探索した後は、クラス識別領域内を
検索対象のクラス数の回数辿ることにより指定されたク
ラスの属性を継承している全てのクラスのテーブルへの
ポインタ413の全ての返却が可能となる。
【0038】[実施例3]図2、図5に基づいて実施例
3を説明する。図5は図2に示すようなA、B、Cクラ
スに継承関係が存在する場合に、属性aについて構築し
た本発明の実施例3のインデックスの構造を説明するた
めの模式的構成図である。
3を説明する。図5は図2に示すようなA、B、Cクラ
スに継承関係が存在する場合に、属性aについて構築し
た本発明の実施例3のインデックスの構造を説明するた
めの模式的構成図である。
【0039】先ずインデックスの構築方法について説明
する。図2に示すようなA、B、Cクラスに継承関係が
存在する場合、次の構成で属性aについて図5に示すイ
ンデックスを構築した。 (1)クラス間の継承関係やクラスにおける属性を管理
するスキーマ(図1符号140)が、各クラスに一意の
識別子を付与する。 (2)インデックスを属性aのキー値のみで構築する。
図5は、インデックスとしてT木本体500を用いた例
を示す。 T木インデックス50は、T木本体500と
キー値格納領域504とで構成されている。T木本体5
00は、ノード501とノード501の間を結合するノ
ード間ポインタ502とから成り立っている。各ノード
501には、キー値へのポインタ503が格納されてお
り、キー値自体はT木本体500とは別のキー値格納領
域504に格納されている。キー値格納領域504を確
保しない場合は、T木本体500にキー値を格納するこ
とにより同じ作業が可能となる。 (3)キー値ごとにそのキー値が属しているクラス別に
キー値をまとめてクラスの識別子を付与し、キー値をク
ラス識別子ごとにまとめたグループを格納するクラス識
別領域510を構築する。クラス識別領域510内の各
キー値は、識別子に対応するクラスのA〜Cのテーブル
521〜523のキー値に対応するレコードと結合する
ポインタ513を格納する。 (4)クラス識別領域内のキー値とクラスの識別子の組
み合わせに対して、一意のポインタを返却するHash
関数516を利用する。図5におけるHash関数は、
キー値とクラス識別子を渡すと(3)で作成した対応す
るグループへのポインタ517を返却する関数とする。
する。図2に示すようなA、B、Cクラスに継承関係が
存在する場合、次の構成で属性aについて図5に示すイ
ンデックスを構築した。 (1)クラス間の継承関係やクラスにおける属性を管理
するスキーマ(図1符号140)が、各クラスに一意の
識別子を付与する。 (2)インデックスを属性aのキー値のみで構築する。
図5は、インデックスとしてT木本体500を用いた例
を示す。 T木インデックス50は、T木本体500と
キー値格納領域504とで構成されている。T木本体5
00は、ノード501とノード501の間を結合するノ
ード間ポインタ502とから成り立っている。各ノード
501には、キー値へのポインタ503が格納されてお
り、キー値自体はT木本体500とは別のキー値格納領
域504に格納されている。キー値格納領域504を確
保しない場合は、T木本体500にキー値を格納するこ
とにより同じ作業が可能となる。 (3)キー値ごとにそのキー値が属しているクラス別に
キー値をまとめてクラスの識別子を付与し、キー値をク
ラス識別子ごとにまとめたグループを格納するクラス識
別領域510を構築する。クラス識別領域510内の各
キー値は、識別子に対応するクラスのA〜Cのテーブル
521〜523のキー値に対応するレコードと結合する
ポインタ513を格納する。 (4)クラス識別領域内のキー値とクラスの識別子の組
み合わせに対して、一意のポインタを返却するHash
関数516を利用する。図5におけるHash関数は、
キー値とクラス識別子を渡すと(3)で作成した対応す
るグループへのポインタ517を返却する関数とする。
【0040】次に、上記のインデックスを用いた検索方
法について説明する。
法について説明する。
【0041】クラス内検索は、以下の処理を行う。 (1)指定されたクラスの識別子をスキーマから取得す
る。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス50を探索する。 (3)インデックス50内のキー値が目的のキー値と一
致した場合、キー値とクラスの識別子をHash関数5
16に渡し、指定されたクラスのテーブルへのポインタ
513をまとめたグループへのポインタ517を取得す
る。 (4)指定されたクラスのテーブルへのポインタ513
をまとめたグループまで (3)で取得したポインタ517を辿り、そこに存在す
るクラスのテーブルへのポインタ513を全て返却す
る。
る。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス50を探索する。 (3)インデックス50内のキー値が目的のキー値と一
致した場合、キー値とクラスの識別子をHash関数5
16に渡し、指定されたクラスのテーブルへのポインタ
513をまとめたグループへのポインタ517を取得す
る。 (4)指定されたクラスのテーブルへのポインタ513
をまとめたグループまで (3)で取得したポインタ517を辿り、そこに存在す
るクラスのテーブルへのポインタ513を全て返却す
る。
【0042】クラス配下検索は、以下の処理を行う。 (1)指定されたクラスの属性を継承している全てのク
ラスの識別子をスキーマから取得する。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス50を探索する。 (3)インデックス50内のキー値が目的のキー値と一
致した場合、Hash関数516にキー値と保持してい
る識別子の一つを渡し、指定されたクラスのテーブルへ
のポインタ513をまとめたグループへのポインタ51
7を取得する。 (4)指定されたクラスのテーブルへのポインタ513
をまとめたグループまで(3)で取得したポインタを辿
り、そこに存在するクラスのテーブルへのポインタ51
3を全て返却する。
ラスの識別子をスキーマから取得する。 (2)そのクラス識別子を保持しつつ、目的のキー値で
インデックス50を探索する。 (3)インデックス50内のキー値が目的のキー値と一
致した場合、Hash関数516にキー値と保持してい
る識別子の一つを渡し、指定されたクラスのテーブルへ
のポインタ513をまとめたグループへのポインタ51
7を取得する。 (4)指定されたクラスのテーブルへのポインタ513
をまとめたグループまで(3)で取得したポインタを辿
り、そこに存在するクラスのテーブルへのポインタ51
3を全て返却する。
【0043】上記の(3)、(4)の処理を、保持して
いる識別子の全てについて繰り返す。このことにより、
一度インデックスを探索した後は、クラス識別領域内を
検索対象のクラス数の回数辿ることにより指定されたク
ラスの属性を継承している全てのクラスのテーブルへの
ポインタ513の全ての返却が可能となる。
いる識別子の全てについて繰り返す。このことにより、
一度インデックスを探索した後は、クラス識別領域内を
検索対象のクラス数の回数辿ることにより指定されたク
ラスの属性を継承している全てのクラスのテーブルへの
ポインタ513の全ての返却が可能となる。
【0044】
【発明の効果】上述のように、本発明のデータアクセス
方法によれば、継承関係にあるクラスを管理可能で、か
つインデックスを有するデータベース管理システムにお
いて、継承された属性について、その属性のキー値を基
に、クラス間にまたがるインデックスを付与し、同一キ
ー値について、クラスごとにまとめ、クラスを識別する
情報を加えたクラス識別情報を付与したので、キー値と
クラス識別子を組み合わせた従来の方法と比べると、イ
ンデックスサイズを小さく抑えることが可能となるとい
う効果がある。
方法によれば、継承関係にあるクラスを管理可能で、か
つインデックスを有するデータベース管理システムにお
いて、継承された属性について、その属性のキー値を基
に、クラス間にまたがるインデックスを付与し、同一キ
ー値について、クラスごとにまとめ、クラスを識別する
情報を加えたクラス識別情報を付与したので、キー値と
クラス識別子を組み合わせた従来の方法と比べると、イ
ンデックスサイズを小さく抑えることが可能となるとい
う効果がある。
【0045】上述のインデックスを用い、あるクラスを
指定し、そのクラス内を検索対象とするクラス内検索を
行う場合、そのインデックスを探索し、目的のキー値に
より、クラスを識別する情報を利用して検索を実行する
が、インデックスサイズが押さえられているため、イン
デックスの探索が効率的となり、検索を高速に実行でき
るという効果がある。
指定し、そのクラス内を検索対象とするクラス内検索を
行う場合、そのインデックスを探索し、目的のキー値に
より、クラスを識別する情報を利用して検索を実行する
が、インデックスサイズが押さえられているため、イン
デックスの探索が効率的となり、検索を高速に実行でき
るという効果がある。
【0046】また、あるクラスを指定し、そのクラスの
属性を継承している全てのクラスを検索対象とするクラ
ス配下検索を行う場合、そのインデックスを探索し、目
的のキー値によりクラスを識別する情報を利用して検索
を実行するが、インデックスを探索する処理が一度で済
むため、処理が効率的となり、検索を高速に実行できる
という効果がある。
属性を継承している全てのクラスを検索対象とするクラ
ス配下検索を行う場合、そのインデックスを探索し、目
的のキー値によりクラスを識別する情報を利用して検索
を実行するが、インデックスを探索する処理が一度で済
むため、処理が効率的となり、検索を高速に実行できる
という効果がある。
【0047】このことにより、継承関係を持つデータに
対して、クラス内検索、クラス配下検索の種類に依存せ
ず、高速に検索を行うことが可能となる。
対して、クラス内検索、クラス配下検索の種類に依存せ
ず、高速に検索を行うことが可能となる。
【図1】本発明のインデックス構造が構築されたデータ
ベースシステムの模式的ブロック図である。
ベースシステムの模式的ブロック図である。
【図2】実施例の対象とする継承関係を保持しているク
ラス構造の模式的構成図である。(a)は構造図であ
る。(b)はクラスと識別子、属性との関係図である。
ラス構造の模式的構成図である。(a)は構造図であ
る。(b)はクラスと識別子、属性との関係図である。
【図3】本発明の実施例1のインデックスの構造を説明
するための模式的構成図である。
するための模式的構成図である。
【図4】本発明の実施例2のインデックスの構造を説明
するための模式的構成図である。
するための模式的構成図である。
【図5】本発明の実施例3のインデックスの構造を説明
するための模式的構成図である。
するための模式的構成図である。
【図6】継承関係を持つデータのクラス構造を示すため
の模式図である。
の模式図である。
【図7】従来例のT木インデックスの構成を説明するた
めの模式的構成図である。
めの模式的構成図である。
【図8】インデックスとテーブルとクラス識別情報の関
係を示す模式図である。(a)は従来例を示す。(b)
は本発明を示す。
係を示す模式図である。(a)は従来例を示す。(b)
は本発明を示す。
110 データベース 111a、111b、111c テーブル 112 インデックス 113 クラス識別領域 120 オペレーティングシステム 130 データベース管理システム 131 インデックス操作モジュール 139 記録媒体 140 スキーマ管理モジュール 150 アプリケーション 201 Aクラス 202 Bクラス 203 Cクラス 30、40、50、70 インデックス 300、400、500、700 T木本体 301、401、501、701 ノード 302、402、502、702 ノード間ポインタ 303、403、503、703 キー値へのポイン
タ 304、404、504、704 キー値格納領域 310、410、510 クラス識別領域 311 双方向リンク 312、412、512 インデックスからクラス識
別領域へのポインタ 313、413、513 クラス識別領域からクラス
のテーブルへのポインタ 321、421、521、721 Aクラスのテーブ
ル 322、422、522、722 Bクラスのテーブ
ル 323、423、523、723 Cクラスのテーブ
ル 414 配列 415 配列からクラスのテーブルへのポインタをま
とめたグループへのポインタ 516 Hash関数 517 Hash関係からクラスのテーブルへのポイ
ンタをまとめたグループへのポインタ 600 クラス 601 継承 602 親クラス 603 子クラス 604 最上位クラス 605 最下位クラス 705 重複キー格納領域 706 ポインタ
タ 304、404、504、704 キー値格納領域 310、410、510 クラス識別領域 311 双方向リンク 312、412、512 インデックスからクラス識
別領域へのポインタ 313、413、513 クラス識別領域からクラス
のテーブルへのポインタ 321、421、521、721 Aクラスのテーブ
ル 322、422、522、722 Bクラスのテーブ
ル 323、423、523、723 Cクラスのテーブ
ル 414 配列 415 配列からクラスのテーブルへのポインタをま
とめたグループへのポインタ 516 Hash関数 517 Hash関係からクラスのテーブルへのポイ
ンタをまとめたグループへのポインタ 600 クラス 601 継承 602 親クラス 603 子クラス 604 最上位クラス 605 最下位クラス 705 重複キー格納領域 706 ポインタ
Claims (5)
- 【請求項1】 継承関係にあるクラスを管理可能で、か
つインデックスを有するデータベース管理システムにお
いて、継承された属性について、該属性を示す値である
キー値を基に、クラス間にまたがるインデックスを付与
し、同一のキー値をクラスごとにまとめてそれぞれにク
ラスを識別する情報を加えたクラス識別領域を付与し、 あるクラスを指定して該クラス内を検索対象とするクラ
ス内検索においては、前記インデックスを探索して目的
のキー値を求め、前記クラス識別領域で目的のキー値に
付加されたクラスを識別する情報を利用して、指定した
クラスの検索を実行し、 あるクラスを指定して該クラスの属性を継承している全
てのクラスを検索対象とするクラス配下検索において
は、前記インデックスを探索して目的のキー値を求め、
前記クラス識別領域で目的のキー値に付加されたクラス
を識別する情報を利用して、指定されたクラスの属性を
継承している全てのクラスの検索を実行する、ことを特
徴としたデータアクセス方法。 - 【請求項2】 前記クラス識別領域には、同一のキー値
をクラスごとにまとめてそれぞれにクラスを識別する情
報を加えた複数のグループが形成され、同一のキー値を
有するグループ間がクラス順に双方向リンクで結合さ
れ、該クラス識別領域内のクラスを識別する情報を加え
られた全てのキー値は該当するクラスのテーブルへポイ
ンタで結合され、該クラス識別領域のキー値は前記イン
デックスの対応するキー値とポインタで結合されている
請求項1に記載のデータアクセス方法。 - 【請求項3】 前記クラス識別領域には、同一のキー値
をクラスごとにまとめてそれぞれにクラスを識別する情
報を加えた複数のグループが形成され、該クラス識別領
域には前記インデックス内のすべてのキー値に対応して
それぞれにクラスを順に並べた配列が形成され、各前記
グループは、前記配列の同一キー値の同一クラスとポイ
ンタで結合され、該クラス識別領域内のクラスを識別す
る情報を加えられた全てのキー値は該当するクラスのテ
ーブルへポインタで結合され、該クラス識別領域の前記
配列は前記インデックスの対応するキー値とポインタで
結合されている請求項1に記載のデータアクセス方法。 - 【請求項4】 前記クラス識別領域には、同一のキー値
をクラスごとにまとめてそれぞれにクラスを識別する情
報を加えた複数のグループが形成され、該クラス識別領
域では前記インデックス内のすべてのキー値とクラスを
識別する情報との組み合わせに対して一意のポインタを
返却するHash関数を利用し、各前記グループは、前
記Hash関数より返却されたポインタの結合先となる
請求項1に記載のデータアクセス方法。 - 【請求項5】 アプリケーションからデータベースにア
クセスするための制御プログラムを記録した記録媒体で
あって、 継承関係にあるクラスを管理可能で、かつインデックス
を有するデータベース管理システムにおいて、継承され
た属性について、該属性を示す値であるキー値を基に、
クラス間にまたがるインデックスを付与する手順と、 同一のキー値をクラスごとにまとめてそれぞれにクラス
を識別する情報を加えたクラス識別領域を付与する手順
と、 あるクラスを指定して該クラス内を検索対象とするクラ
ス内検索においては、前記インデックスを探索して目的
のキー値を求め、前記クラス識別領域で目的のキー値に
付加されたクラスを識別する情報を利用して、指定した
クラスの検索を実行する手順と、 あるクラスを指定して該クラスの属性を継承している全
てのクラスを検索対象とするクラス配下検索において
は、前記インデックスを探索して目的のキー値を求め、
前記クラス識別領域で目的のキー値に付加されたクラス
を識別する情報を利用して、指定されたクラスの属性を
継承している全てのクラスの検索を実行する手順と、を
実行させるためのプログラムを記録した記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10043619A JPH11242678A (ja) | 1998-02-25 | 1998-02-25 | データアクセス方法およびプログラムを記録した媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10043619A JPH11242678A (ja) | 1998-02-25 | 1998-02-25 | データアクセス方法およびプログラムを記録した媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11242678A true JPH11242678A (ja) | 1999-09-07 |
Family
ID=12668869
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10043619A Pending JPH11242678A (ja) | 1998-02-25 | 1998-02-25 | データアクセス方法およびプログラムを記録した媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH11242678A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010165184A (ja) * | 2009-01-15 | 2010-07-29 | Nec Corp | 検索装置、検索装置の検索方法及びプログラム |
-
1998
- 1998-02-25 JP JP10043619A patent/JPH11242678A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010165184A (ja) * | 2009-01-15 | 2010-07-29 | Nec Corp | 検索装置、検索装置の検索方法及びプログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6236988B1 (en) | Data retrieval system | |
| CN114265945A (zh) | 血缘关系提取方法、装置及电子设备 | |
| JP2007213592A (ja) | 文字処理装置、方法、プログラムおよび記録媒体 | |
| JP2001014329A (ja) | データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体 | |
| CN116881243A (zh) | 基于时间序列数据特征的学习型索引方法及系统 | |
| EP0476810B1 (en) | Method and system for retrieving data from joined tables in a computer database | |
| CN109522311A (zh) | 数据存储方法、装置、服务器和存储介质 | |
| CN111506779A (zh) | 面向数据处理的对象版本与关联信息管理方法及系统 | |
| JP3666907B2 (ja) | データベース用ファイル格納管理システム | |
| CN114138725A (zh) | 一种层次化的日志存储处理方法 | |
| JPH11242678A (ja) | データアクセス方法およびプログラムを記録した媒体 | |
| RU12619U1 (ru) | Система представления данных заданной структуры в реляционной базе данных | |
| JPH11242627A (ja) | データアクセス方法およびプログラムを記録した媒体 | |
| JP2004192657A (ja) | 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体 | |
| JPH07334402A (ja) | メインメモリ化データベース | |
| JP2001067369A (ja) | 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体 | |
| EP0394172A2 (en) | Method of performing file services given partial file names | |
| JPH10240741A (ja) | 木構造型データの管理方法 | |
| JP2000187663A (ja) | ファイル管理装置およびファイル管理方法並びにそのプログラムを記録した記録媒体 | |
| JPS59146339A (ja) | 情報検索方式 | |
| Huang et al. | The study of indexing techniques on object oriented databases | |
| JP2001134598A (ja) | T木インデックス構築方法及びt木インデックス検索方法及びt木インデックス構築装置及びt木インデックス検索装置及びt木インデックス構築プログラムを格納した記憶媒体及びt木インデックス検索プログラムを格納した記憶媒体 | |
| CN121958269A (zh) | 一种树形结构数据的存储查询方法、系统及介质 | |
| JPH01282634A (ja) | データベース装置 | |
| CN121524275A (zh) | 文本向量化方法和向量数据库 |