JPH1173352A - 再帰型オブジェクトの復元方法及びそれに使用するリレーショナルデータベース - Google Patents
再帰型オブジェクトの復元方法及びそれに使用するリレーショナルデータベースInfo
- Publication number
- JPH1173352A JPH1173352A JP9234823A JP23482397A JPH1173352A JP H1173352 A JPH1173352 A JP H1173352A JP 9234823 A JP9234823 A JP 9234823A JP 23482397 A JP23482397 A JP 23482397A JP H1173352 A JPH1173352 A JP H1173352A
- Authority
- JP
- Japan
- Prior art keywords
- hierarchy
- objects
- relational database
- recorded
- child
- 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)【要約】
【課題】 従来、リレーショナルデータベースを使用し
て再帰型オブジェクトを復元する場合には、データベー
スの問い合わせが頻発してその都度、前述の如く100ミ
リ秒単位の時間を要するため、オペレータが装置がハン
グアップしたのではないかと思う虞があった。 【解決手段】 リレーショナルデータベースのテーブル
に各オブジェクトの階層構造上の最上位のオブジェクト
のオブジェクトIDを記録しておき、所望の最上位オブジ
ェクトに関係する下位階層の全てのオブジェクトを前記
テーブルに記録されている最上位オブジェクトのオブジ
ェクトIDに従って抽出し、抽出された全てのオブジェク
トに関して、前記テーブルに記録されている親オブジェ
クトのオブジェクトIDに従って階層関係を復元する。
て再帰型オブジェクトを復元する場合には、データベー
スの問い合わせが頻発してその都度、前述の如く100ミ
リ秒単位の時間を要するため、オペレータが装置がハン
グアップしたのではないかと思う虞があった。 【解決手段】 リレーショナルデータベースのテーブル
に各オブジェクトの階層構造上の最上位のオブジェクト
のオブジェクトIDを記録しておき、所望の最上位オブジ
ェクトに関係する下位階層の全てのオブジェクトを前記
テーブルに記録されている最上位オブジェクトのオブジ
ェクトIDに従って抽出し、抽出された全てのオブジェク
トに関して、前記テーブルに記録されている親オブジェ
クトのオブジェクトIDに従って階層関係を復元する。
Description
【0001】
【発明の属する技術分野】本発明は再帰型オブジェクト
の復元方法、具体的には再帰型構造を有するオブジェク
ト指向ソフトウェアをリレーショナルデータベースを使
用して処理する技術に関し、特にその高速化を可能とし
た再帰型オブジェクトの復元方法及びそれに使用される
リレーショナルデータベースに関する。
の復元方法、具体的には再帰型構造を有するオブジェク
ト指向ソフトウェアをリレーショナルデータベースを使
用して処理する技術に関し、特にその高速化を可能とし
た再帰型オブジェクトの復元方法及びそれに使用される
リレーショナルデータベースに関する。
【0002】
【従来の技術】リレーショナルデータベースを使用し
て、再帰型オブジェクトを復元する場合、個々のオブジ
ェクトの親オブジェクト(一つ上位階層のオブジェク
ト)を復元した後に再度その子となるオブジェクト(一
つ下位階層のオブジェクト)を復元するためにデータベ
ースに問い合わせを行なう必要があった。このようなデ
ータベースへの問い合わせは、得られる結果には拘らず
100ミリ秒単位の時間を要する。このため、再帰階層が
それほどには深くない場合であっても、各階層に存在す
るオブジェクトの数によっては、装置がハングアップし
たのではないかとオペレータに錯覚される虞があった。
て、再帰型オブジェクトを復元する場合、個々のオブジ
ェクトの親オブジェクト(一つ上位階層のオブジェク
ト)を復元した後に再度その子となるオブジェクト(一
つ下位階層のオブジェクト)を復元するためにデータベ
ースに問い合わせを行なう必要があった。このようなデ
ータベースへの問い合わせは、得られる結果には拘らず
100ミリ秒単位の時間を要する。このため、再帰階層が
それほどには深くない場合であっても、各階層に存在す
るオブジェクトの数によっては、装置がハングアップし
たのではないかとオペレータに錯覚される虞があった。
【0003】以下、従来の技術について図面を参照して
具体的に説明する。図6は従来技術において使用される
一般的なコンピュータシステムの構成例を示すブロック
図である。
具体的に説明する。図6は従来技術において使用される
一般的なコンピュータシステムの構成例を示すブロック
図である。
【0004】図6において、参照符号1はコンピュータ
システム本体を示しており、主としてCPU で構成される
中央処理制御部11及びメモリ10が内蔵されている。コン
ピュータシステム本体には参照符号12で示されている C
RTディスプレイ等の表示装置と、13で示されているハー
ドディスク等の記憶装置と、14で示されているキーボー
ド, マウス等の入力装置とが付属している。
システム本体を示しており、主としてCPU で構成される
中央処理制御部11及びメモリ10が内蔵されている。コン
ピュータシステム本体には参照符号12で示されている C
RTディスプレイ等の表示装置と、13で示されているハー
ドディスク等の記憶装置と、14で示されているキーボー
ド, マウス等の入力装置とが付属している。
【0005】記憶装置13には複数の再帰型オブジェクト
が登録されたリレーショナルデータベース及び各オブジ
ェクトの関係を記録したテーブルが記憶されているが、
テーブルは本体1のメモリ10にロードされる。
が登録されたリレーショナルデータベース及び各オブジ
ェクトの関係を記録したテーブルが記憶されているが、
テーブルは本体1のメモリ10にロードされる。
【0006】図7は処理対象のオブジェクトの階層構造
を示す模式図であり、ここでは一例として再帰階層が3
階層である場合が示されている。最上層の階層1には各
オブジェクトの識別子であるオブジェクトIDが”1”
(オブジェクトID=1)の最上位オブジェクト1と、オ
ブジェクトID=2の最上位オブジェクト2と、オブジェ
クトID=6の最上位オブジェクト3が存在する。
を示す模式図であり、ここでは一例として再帰階層が3
階層である場合が示されている。最上層の階層1には各
オブジェクトの識別子であるオブジェクトIDが”1”
(オブジェクトID=1)の最上位オブジェクト1と、オ
ブジェクトID=2の最上位オブジェクト2と、オブジェ
クトID=6の最上位オブジェクト3が存在する。
【0007】第2階層である階層2には、最上位オブジ
ェクト2の子オブジェクト1(オブジェクトIDは”
3”)と、最上位オブジェクト2の子オブジェクト2
(オブジェクトIDは”5”)と、最上位オブジェクト3
の子オブジェクト1(オブジェクトIDは”7”)とが存
在する。更に、第3階層である階層3には、最上位オブ
ジェクト2の子オブジェクト2を親オブジェクトとする
子オブジェクト1(オブジェクトIDは”4”)が存在す
る。
ェクト2の子オブジェクト1(オブジェクトIDは”
3”)と、最上位オブジェクト2の子オブジェクト2
(オブジェクトIDは”5”)と、最上位オブジェクト3
の子オブジェクト1(オブジェクトIDは”7”)とが存
在する。更に、第3階層である階層3には、最上位オブ
ジェクト2の子オブジェクト2を親オブジェクトとする
子オブジェクト1(オブジェクトIDは”4”)が存在す
る。
【0008】従って、これらのオブジェクトがリレーシ
ョナルデータベースに登録されているが、それぞれのオ
ブジェクト相互間の関係を示す情報はテーブルの形で別
途記録されている。図8はそのようなテーブルの内容を
示す模式図であり、図6に示されているコンピュータシ
ステムの稼働時にはメモリ10にロードされる。このテー
ブルの内容は具体的には、オブジェクトIDの順に各オブ
ジェクトが配列されており、それぞれのオブジェクトの
親オブジェクトのオブジェクトIDが記録されている。た
とえば、オブジェクトID=3の欄には、最上位オブジェ
クト2の子オブジェクト1が記録されており、その親オ
ブジェクトのIDは”2”であり、オブジェクトID=4の
欄には、最上位オブジェクト2の子オブジェクト1の子
オブジェクト1が記録されており、その親オブジェクト
のIDは”3”であることが記録されている。
ョナルデータベースに登録されているが、それぞれのオ
ブジェクト相互間の関係を示す情報はテーブルの形で別
途記録されている。図8はそのようなテーブルの内容を
示す模式図であり、図6に示されているコンピュータシ
ステムの稼働時にはメモリ10にロードされる。このテー
ブルの内容は具体的には、オブジェクトIDの順に各オブ
ジェクトが配列されており、それぞれのオブジェクトの
親オブジェクトのオブジェクトIDが記録されている。た
とえば、オブジェクトID=3の欄には、最上位オブジェ
クト2の子オブジェクト1が記録されており、その親オ
ブジェクトのIDは”2”であり、オブジェクトID=4の
欄には、最上位オブジェクト2の子オブジェクト1の子
オブジェクト1が記録されており、その親オブジェクト
のIDは”3”であることが記録されている。
【0009】次に、このようなリレーショナルデータベ
ースを使用してオブジェクトを復元する場合の従来方法
の手順について、図9及び図10のフローチャートを参照
して説明する。なお、ここでは、最上位オブジェクト2
(オブジェクトID=2)及びその子オブジェクト(オブ
ジェクトID=3, 4, 5)の全てを復元する場合につい
て説明する。
ースを使用してオブジェクトを復元する場合の従来方法
の手順について、図9及び図10のフローチャートを参照
して説明する。なお、ここでは、最上位オブジェクト2
(オブジェクトID=2)及びその子オブジェクト(オブ
ジェクトID=3, 4, 5)の全てを復元する場合につい
て説明する。
【0010】まず、図9に示されているように、処理対
象階層をL=0とし (ステップS1)、階層毎の復元を図1
0に示されているサブルーチンで行なう (ステップS2)
。
象階層をL=0とし (ステップS1)、階層毎の復元を図1
0に示されているサブルーチンで行なう (ステップS2)
。
【0011】階層毎の復元のサブルーチンではまず、処
理対象階層をインクリメント(L=L+1)し (ステッ
プS11)、以下の処理を行なう。従って、まずここでは処
理対象階層は階層1になっている。
理対象階層をインクリメント(L=L+1)し (ステッ
プS11)、以下の処理を行なう。従って、まずここでは処
理対象階層は階層1になっている。
【0012】処理対象階層の検索対象オブジェクトのオ
ブジェクト数がデータベースに問い合わされる (ステッ
プS12)。この場合には上述した如く、処理対象階層は階
層1であり、且つ最上位オブジェクト2が検索対象であ
るので、親オブジェクトのID=”0”のオブジェクトか
ら最上位オブジェクト2が見つけられ、オブジェクトの
数は”1”になる。次に、問い合わせ結果により得られ
たオブジェクト数が”1”以上であるか否か (換言すれ
ば”0”でないか否か) が調べられる (ステップS1
3)。”0”である場合にはこのサブルーチンは終了して
図9のメインルーチンにリターンする。
ブジェクト数がデータベースに問い合わされる (ステッ
プS12)。この場合には上述した如く、処理対象階層は階
層1であり、且つ最上位オブジェクト2が検索対象であ
るので、親オブジェクトのID=”0”のオブジェクトか
ら最上位オブジェクト2が見つけられ、オブジェクトの
数は”1”になる。次に、問い合わせ結果により得られ
たオブジェクト数が”1”以上であるか否か (換言すれ
ば”0”でないか否か) が調べられる (ステップS1
3)。”0”である場合にはこのサブルーチンは終了して
図9のメインルーチンにリターンする。
【0013】ここでは、オブジェクト数は”1”である
のでステップS13 での判断結果は”YES ”になり、次の
ステップS14 へ処理が進めらる。ステップS14 では、階
層1のオブジェクトの第1番目のオブジェクトが処理対
象オブジェクトとされ (ステップS14)、処理対象のオブ
ジェクトが復元される (ステップS15)。ここでは、オブ
ジェクトID=2の最上位オブジェクト2が第1番目の処
理対象オブジェクトとされて復元される。
のでステップS13 での判断結果は”YES ”になり、次の
ステップS14 へ処理が進めらる。ステップS14 では、階
層1のオブジェクトの第1番目のオブジェクトが処理対
象オブジェクトとされ (ステップS14)、処理対象のオブ
ジェクトが復元される (ステップS15)。ここでは、オブ
ジェクトID=2の最上位オブジェクト2が第1番目の処
理対象オブジェクトとされて復元される。
【0014】このようにしてまず階層1において目的と
する最上位オブジェクト2が見つかって復元されると、
図10に示されているサブルーチンが再実行される (ステ
ップS16)。この場合には、ステップS11 において処理対
象階層がインクリメント(L=L+1)されて階層2に
なり、上述同様にして今度は最上位オブジェクト2を親
オブジェクトとするオブジェクトが調べられる。
する最上位オブジェクト2が見つかって復元されると、
図10に示されているサブルーチンが再実行される (ステ
ップS16)。この場合には、ステップS11 において処理対
象階層がインクリメント(L=L+1)されて階層2に
なり、上述同様にして今度は最上位オブジェクト2を親
オブジェクトとするオブジェクトが調べられる。
【0015】まず、ステップS12 において、最上位オブ
ジェクト2を親オブジェクトとするオブジェクトの数
が、親オブジェクトのID=”2”であるオブジェクトの
数として調べられる。この場合、オブジェクト数は”
2”になり、その内のオブジェクトID=3のオブジェク
トが第1番目の処理対象オブジェクトとされる (ステッ
プS14)。そして、前述同様に、このオブジェクトID=3
のオブジェクトが最上位オブジェクト2(オブジェクト
ID=2)の子オブジェクト1として復元される (ステッ
プS15)。
ジェクト2を親オブジェクトとするオブジェクトの数
が、親オブジェクトのID=”2”であるオブジェクトの
数として調べられる。この場合、オブジェクト数は”
2”になり、その内のオブジェクトID=3のオブジェク
トが第1番目の処理対象オブジェクトとされる (ステッ
プS14)。そして、前述同様に、このオブジェクトID=3
のオブジェクトが最上位オブジェクト2(オブジェクト
ID=2)の子オブジェクト1として復元される (ステッ
プS15)。
【0016】このように、階層2において最上位オブジ
ェクト2の子オブジェクトとしてまず一つの子オブジェ
クト1(オブジェクトID=3)が見つかるので、それが
ステップS15 において復元され、更にステップS16 にお
いて図10のサブルーチンが再実行される。この場合には
処理対象階層が更にインクリメント(L=L+1)され
て階層3になる。
ェクト2の子オブジェクトとしてまず一つの子オブジェ
クト1(オブジェクトID=3)が見つかるので、それが
ステップS15 において復元され、更にステップS16 にお
いて図10のサブルーチンが再実行される。この場合には
処理対象階層が更にインクリメント(L=L+1)され
て階層3になる。
【0017】この階層3を処理対象階層とした図10のサ
ブルーチンの実行に際しては、親オブジェクトのID=”
3”であるオブジェクトを対象として処理が行なわれ、
上述同様にしてオブジェクトID=4のオブジェクトがオ
ブジェクトID=3の子オブジェクト1の子オブジェクト
(最上位オブジェクト2の子オブジェクト1の子オブジ
ェクト1)として上述同様にして見つかる。この時点に
おいても再度図10のサブルーチンが処理対象階層を階層
4として実行されるが、この場合にはステップS12 では
階層4において親オブジェクトのID=”5”のオブジェ
クト数は”0”になるので、ステップS13 から処理対象
階層が階層3であるサブルーチンのステップS17 へリタ
ーンする。
ブルーチンの実行に際しては、親オブジェクトのID=”
3”であるオブジェクトを対象として処理が行なわれ、
上述同様にしてオブジェクトID=4のオブジェクトがオ
ブジェクトID=3の子オブジェクト1の子オブジェクト
(最上位オブジェクト2の子オブジェクト1の子オブジ
ェクト1)として上述同様にして見つかる。この時点に
おいても再度図10のサブルーチンが処理対象階層を階層
4として実行されるが、この場合にはステップS12 では
階層4において親オブジェクトのID=”5”のオブジェ
クト数は”0”になるので、ステップS13 から処理対象
階層が階層3であるサブルーチンのステップS17 へリタ
ーンする。
【0018】この処理対象階層が階層3であるサブルー
チンのステップS17 へのリターンにより、階層3でオブ
ジェクトID=3の他のオブジェクトの検索が行なわれる
が、ステップS18 での判断結果が”YES ”になるため、
処理対象階層が階層2のサブルーチンのステップS17 へ
リターンする。この処理対象階層が階層2であるサブル
ーチンのステップS17 へのリターンにより、階層2でオ
ブジェクトID=2の他のオブジェクトの検索が行なわれ
てオブジェクトID=5の子オブジェクト2が見つかる。
チンのステップS17 へのリターンにより、階層3でオブ
ジェクトID=3の他のオブジェクトの検索が行なわれる
が、ステップS18 での判断結果が”YES ”になるため、
処理対象階層が階層2のサブルーチンのステップS17 へ
リターンする。この処理対象階層が階層2であるサブル
ーチンのステップS17 へのリターンにより、階層2でオ
ブジェクトID=2の他のオブジェクトの検索が行なわれ
てオブジェクトID=5の子オブジェクト2が見つかる。
【0019】そして、上述同様にしてこのオブジェクト
ID=5の子オブジェクト2の子オブジェクトが図10のサ
ブルーチンの実行により階層3において検索されるが、
存在しないことが判明し、再度処理対象階層が階層2で
あるサブルーチンのステップS17 へリターンして処理対
象オブジェクトが”1”インクリメントされることによ
りステップS18 において判断結果が”YES ”になるた
め、処理対象階層が階層1のサブルーチンのステップS1
7 へリターンする。
ID=5の子オブジェクト2の子オブジェクトが図10のサ
ブルーチンの実行により階層3において検索されるが、
存在しないことが判明し、再度処理対象階層が階層2で
あるサブルーチンのステップS17 へリターンして処理対
象オブジェクトが”1”インクリメントされることによ
りステップS18 において判断結果が”YES ”になるた
め、処理対象階層が階層1のサブルーチンのステップS1
7 へリターンする。
【0020】この処理対象階層が階層1のサブルーチン
のステップS17 へリターンしたことにより、次にはステ
ップS17 において処理対象オブジェクトが”1”インク
リメントされることによりステップS18 において判断結
果が”YES ”になるため、図9のメインルーチンへリタ
ーンする。
のステップS17 へリターンしたことにより、次にはステ
ップS17 において処理対象オブジェクトが”1”インク
リメントされることによりステップS18 において判断結
果が”YES ”になるため、図9のメインルーチンへリタ
ーンする。
【0021】以上により、オブジェクトIDが”2の最上
位オブジェクト2及びその子オブジェクトの全てがデー
タベースから復元されて構築されることになる。この場
合、サブルーチンのステップS12 でのデータベースの問
いあわせが合計で4回(最下位階層の子オブジェクトの
階層数+1)行なわれることになり、この回数は階層数
の増加または子オブジェクトの階層数の増加に伴って増
加することは明らかである。
位オブジェクト2及びその子オブジェクトの全てがデー
タベースから復元されて構築されることになる。この場
合、サブルーチンのステップS12 でのデータベースの問
いあわせが合計で4回(最下位階層の子オブジェクトの
階層数+1)行なわれることになり、この回数は階層数
の増加または子オブジェクトの階層数の増加に伴って増
加することは明らかである。
【0022】
【発明が解決しようとする課題】このように従来は、リ
レーショナルデータベースを使用して再帰型オブジェク
トを復元する場合には、データベースの問い合わせが頻
発してその都度、前述の如く 100ミリ秒単位の時間を要
するため、たとえば10階層のオブジェクト構造であれば
数秒という短からぬ時間を要してオペレータが装置がハ
ングアップしたのではないかと思う虞があったため、そ
のような虞がない時間、たとえばせいぜい2秒程度で処
理を終了することが望ましい。
レーショナルデータベースを使用して再帰型オブジェク
トを復元する場合には、データベースの問い合わせが頻
発してその都度、前述の如く 100ミリ秒単位の時間を要
するため、たとえば10階層のオブジェクト構造であれば
数秒という短からぬ時間を要してオペレータが装置がハ
ングアップしたのではないかと思う虞があったため、そ
のような虞がない時間、たとえばせいぜい2秒程度で処
理を終了することが望ましい。
【0023】本発明はこのような事情に鑑みてなされた
ものであり、高速処理可能な再帰型オブジェクトの復元
方法及びそれに使用されるリレーショナルデータベース
の提供を目的とする。
ものであり、高速処理可能な再帰型オブジェクトの復元
方法及びそれに使用されるリレーショナルデータベース
の提供を目的とする。
【0024】
【課題を解決するための手段】本発明は、リレーショナ
ルデータベースに登録された複数の再帰型オブジェクト
を、テーブルに記録された各オブジェクト自身を特定す
る識別子と各オブジェクトの親オブジェクトの識別子と
に基づいて復元する再帰型オブジェクトの復元方法であ
って、テーブルに各オブジェクトの階層構造上の最上位
のオブジェクトの識別子を記録しておき、ある一つの最
上位オブジェクトに関係する下位階層の全てのオブジェ
クトをテーブルに記録されている最上位オブジェクトの
識別子に従って抽出し、抽出されたオブジェクトに関し
て、テーブルに記録されている親オブジェクトの識別子
に従って階層関係を復元することを特徴とする。
ルデータベースに登録された複数の再帰型オブジェクト
を、テーブルに記録された各オブジェクト自身を特定す
る識別子と各オブジェクトの親オブジェクトの識別子と
に基づいて復元する再帰型オブジェクトの復元方法であ
って、テーブルに各オブジェクトの階層構造上の最上位
のオブジェクトの識別子を記録しておき、ある一つの最
上位オブジェクトに関係する下位階層の全てのオブジェ
クトをテーブルに記録されている最上位オブジェクトの
識別子に従って抽出し、抽出されたオブジェクトに関し
て、テーブルに記録されている親オブジェクトの識別子
に従って階層関係を復元することを特徴とする。
【0025】このような本発明の再帰型オブジェクトの
復元方法では、ある一つの最上位オブジェクトに関係す
る下位階層のオブジェクトがテーブルに記録されている
最上位オブジェクトのオブジェクトIDに従って抽出され
るので、リレーショナルデータベースへの問い合わせ回
数がその一回のみで済む。
復元方法では、ある一つの最上位オブジェクトに関係す
る下位階層のオブジェクトがテーブルに記録されている
最上位オブジェクトのオブジェクトIDに従って抽出され
るので、リレーショナルデータベースへの問い合わせ回
数がその一回のみで済む。
【0026】また本発明に係るリレーショナルデータベ
ースは、複数の再帰型オブジェクトが登録されており、
それぞれの識別子と各オブジェクトの親オブジェクトの
識別子とを記録したテーブルを有するリレーショナルデ
ータベースであって、テーブルには更に、各オブジェク
トに関して、それぞれの階層構造上の最上位のオブジェ
クトの識別子が記録されていることを特徴とする。
ースは、複数の再帰型オブジェクトが登録されており、
それぞれの識別子と各オブジェクトの親オブジェクトの
識別子とを記録したテーブルを有するリレーショナルデ
ータベースであって、テーブルには更に、各オブジェク
トに関して、それぞれの階層構造上の最上位のオブジェ
クトの識別子が記録されていることを特徴とする。
【0027】このような本発明のリレーショナルデータ
ベースでは、テーブルにそれぞれのオブジェクトIDと各
オブジェクトの親オブジェクトのオブジェクトIDとが記
録されている他に各オブジェクトに関して、それぞれの
階層構造上の最上位のオブジェクトのオブジェクトIDが
記録されているので、所望の最上位オブジェクトに関係
する下位階層の全てのオブジェクトが最上位オブジェク
トのオブジェクトIDに従って抽出可能になる。
ベースでは、テーブルにそれぞれのオブジェクトIDと各
オブジェクトの親オブジェクトのオブジェクトIDとが記
録されている他に各オブジェクトに関して、それぞれの
階層構造上の最上位のオブジェクトのオブジェクトIDが
記録されているので、所望の最上位オブジェクトに関係
する下位階層の全てのオブジェクトが最上位オブジェク
トのオブジェクトIDに従って抽出可能になる。
【0028】
【発明の実施の形態】以下、本発明をその実施の形態を
示す図面に基づいて詳述する。
示す図面に基づいて詳述する。
【0029】図1は本発明の再帰型オブジェクトの復元
方法に使用されるコンピュータシステムの構成例を示す
ブロック図であり、この構成そのものは従来同様の一般
的なコンピュータシステムである。
方法に使用されるコンピュータシステムの構成例を示す
ブロック図であり、この構成そのものは従来同様の一般
的なコンピュータシステムである。
【0030】図1において、参照符号1はコンピュータ
システム本体を示しており、主としてCPU で構成される
中央処理制御部11及びメモリ100 が内蔵されている。コ
ンピュータシステム本体には参照符号12で示されている
CRTディスプレイ等の表示装置と、 130で示されている
ハードディスク等の記憶装置と、14で示されているキー
ボード, マウス等の入力装置とが付属している。
システム本体を示しており、主としてCPU で構成される
中央処理制御部11及びメモリ100 が内蔵されている。コ
ンピュータシステム本体には参照符号12で示されている
CRTディスプレイ等の表示装置と、 130で示されている
ハードディスク等の記憶装置と、14で示されているキー
ボード, マウス等の入力装置とが付属している。
【0031】記憶装置130 には複数の再帰型オブジェク
トが登録されたリレーショナルデータベース及び各オブ
ジェクトの関係を記録したテーブルが記憶されている
が、テーブルは本体1のメモリ100 にロードされる。
トが登録されたリレーショナルデータベース及び各オブ
ジェクトの関係を記録したテーブルが記憶されている
が、テーブルは本体1のメモリ100 にロードされる。
【0032】図2は本発明方法により各オブジェクトを
リレーショナルデータベースに登録した場合のテーブル
の内容を示す模式図である。前述の従来例である図8の
模式図と比較して特徴的なことは、全てのオブジェクト
に関してそれぞれの最上位のオブジェクトのオブジェク
トIDが記録されていることである。具体的には、オブジ
ェクトIDが”1”である最上位オブジェクト1に関して
は”1”が、オブジェクトIDが”2”である最上位オブ
ジェクト2に関しては”2”が、オブジェクトIDが”
3”である最上位オブジェクト2の子オブジェクト1に
関しては”2”が、オブジェクトIDが”4”である最上
位オブジェクト2の子オブジェクト1の子オブジェクト
1に関しては”2”が、オブジェクトIDが”5”である
最上位オブジェクト2の子オブジェクト2に関しては”
2”が、オブジェクトIDが”6”である最上位オブジェ
クト3に関しては”6”が、オブジェクトIDが”7”で
ある最上位オブジェクト3の子オブジェクト1に関して
は”6”がそれぞれ記録されている。
リレーショナルデータベースに登録した場合のテーブル
の内容を示す模式図である。前述の従来例である図8の
模式図と比較して特徴的なことは、全てのオブジェクト
に関してそれぞれの最上位のオブジェクトのオブジェク
トIDが記録されていることである。具体的には、オブジ
ェクトIDが”1”である最上位オブジェクト1に関して
は”1”が、オブジェクトIDが”2”である最上位オブ
ジェクト2に関しては”2”が、オブジェクトIDが”
3”である最上位オブジェクト2の子オブジェクト1に
関しては”2”が、オブジェクトIDが”4”である最上
位オブジェクト2の子オブジェクト1の子オブジェクト
1に関しては”2”が、オブジェクトIDが”5”である
最上位オブジェクト2の子オブジェクト2に関しては”
2”が、オブジェクトIDが”6”である最上位オブジェ
クト3に関しては”6”が、オブジェクトIDが”7”で
ある最上位オブジェクト3の子オブジェクト1に関して
は”6”がそれぞれ記録されている。
【0033】次に、この図2に示されているようなテー
ブルを有するリレーショナルデータベースを使用してオ
ブジェクトを復元する本発明方法の手順について、図3
及び図4のフローチャートを参照して説明する。なお、
ここでは、最上位オブジェクト2(オブジェクトID=
2)及びその子オブジェクト(オブジェクトID=3,
4, 5)の全てを復元する場合について説明する。
ブルを有するリレーショナルデータベースを使用してオ
ブジェクトを復元する本発明方法の手順について、図3
及び図4のフローチャートを参照して説明する。なお、
ここでは、最上位オブジェクト2(オブジェクトID=
2)及びその子オブジェクト(オブジェクトID=3,
4, 5)の全てを復元する場合について説明する。
【0034】まず、最上位オブジェクト2及びその子オ
ブジェクトの数がデータベースに問い合わされる (ステ
ップS31)。ここでは、具体的には最上位オブジェクトの
ID=2のオブジェクトの数が調べられ、オブジェクトID
=2,3,4,5の4個があるので、その結果は”4 ”
である。次に、それらのオブジェクトの内の第1番目の
オブジェクトが処理対象オブジェクトとされ (ステップ
S32)、また処理対象階層はL=1にされる (ステップS3
3)。
ブジェクトの数がデータベースに問い合わされる (ステ
ップS31)。ここでは、具体的には最上位オブジェクトの
ID=2のオブジェクトの数が調べられ、オブジェクトID
=2,3,4,5の4個があるので、その結果は”4 ”
である。次に、それらのオブジェクトの内の第1番目の
オブジェクトが処理対象オブジェクトとされ (ステップ
S32)、また処理対象階層はL=1にされる (ステップS3
3)。
【0035】そして、第1番目の処理対象オブジェクト
(ここではオブジェクトID=2のオブジェクト)の親オ
ブジェクトのIDが”0”であるか否かが調べられる (ス
テップS34)。この結果、”YES ”である場合にはそのオ
ブジェクトは最上位オブジェクトであることを意味して
いるので、ステップS36 へ処理が進められてそのオブジ
ェクトが処理対象階層L=1のオブジェクトとして構築
される (ステップS36)。
(ここではオブジェクトID=2のオブジェクト)の親オ
ブジェクトのIDが”0”であるか否かが調べられる (ス
テップS34)。この結果、”YES ”である場合にはそのオ
ブジェクトは最上位オブジェクトであることを意味して
いるので、ステップS36 へ処理が進められてそのオブジ
ェクトが処理対象階層L=1のオブジェクトとして構築
される (ステップS36)。
【0036】一方、ステップS34 において”NO”であっ
た場合には、この時点の処理対象オブジェクトは最上位
オブジェクトではないことを意味しているので、ステッ
プS35 の図4に示されている親オブジェクト検索のサブ
ルーチンが実行される。
た場合には、この時点の処理対象オブジェクトは最上位
オブジェクトではないことを意味しているので、ステッ
プS35 の図4に示されている親オブジェクト検索のサブ
ルーチンが実行される。
【0037】図4に示されているサブルーチンにおいて
は、まず処理対象階層Lがインクリメント(L=L+
1)され (ステップS41)、この処理対象階層Lに対応す
る階層の一つ上の階層(この場合は階層1)のオブジェ
クトを検索対象オブジェクトとして処理が行なわれる。
この場合はオブジェクトID=2の最上位オブジェクト2
のみが対象となるので、これが第1の検索対象オブジェ
クトとされ (ステップS42)、この第1の検索対象オブジ
ェクトのオブジェクトIDと処理対象オブジェクト(この
場合はオブジェクトID=3のオブジェクト) とのオブジ
ェクトIDが一致するか否かが調べられる (ステップS4
3)。
は、まず処理対象階層Lがインクリメント(L=L+
1)され (ステップS41)、この処理対象階層Lに対応す
る階層の一つ上の階層(この場合は階層1)のオブジェ
クトを検索対象オブジェクトとして処理が行なわれる。
この場合はオブジェクトID=2の最上位オブジェクト2
のみが対象となるので、これが第1の検索対象オブジェ
クトとされ (ステップS42)、この第1の検索対象オブジ
ェクトのオブジェクトIDと処理対象オブジェクト(この
場合はオブジェクトID=3のオブジェクト) とのオブジ
ェクトIDが一致するか否かが調べられる (ステップS4
3)。
【0038】ここで、両者が一致する場合 (ステップS4
3 で”YES ”) には、検索対象オブジェクトが処理対象
オブジェクトの親オブジェクトであることになる (ステ
ップS49)。この場合、検索対象オブジェクトのオブジェ
クトID=2であり、処理対象オブジェクトの親オブジェ
クトID=2であるので、両者が一致する。従って、現在
の処理対象階層は階層2であるので、オブジェクトID=
3のオブジェクトは最上位オブジェクト2の階層の子オ
ブジェクト1であることになる。
3 で”YES ”) には、検索対象オブジェクトが処理対象
オブジェクトの親オブジェクトであることになる (ステ
ップS49)。この場合、検索対象オブジェクトのオブジェ
クトID=2であり、処理対象オブジェクトの親オブジェ
クトID=2であるので、両者が一致する。従って、現在
の処理対象階層は階層2であるので、オブジェクトID=
3のオブジェクトは最上位オブジェクト2の階層の子オ
ブジェクト1であることになる。
【0039】この結果、サブルーチンからメインルーチ
ンのステップS36 へリターンするので、オブジェクトID
=3のオブジェクトがオブジェクトID=2の最上位オブ
ジェクト2の子オブジェクト1として構築される。
ンのステップS36 へリターンするので、オブジェクトID
=3のオブジェクトがオブジェクトID=2の最上位オブ
ジェクト2の子オブジェクト1として構築される。
【0040】次に、ステップS37 において処理対象オブ
ジェクトがインクリメントされてオブジェクトID=4の
オブジェクトが第2の処理対象オブジェクトとなる。こ
の場合、ステップS38 での判断結果は”NO”になるの
で、ステップS33 へ処理が戻される。そして、上述同様
の処理が行なわれることにより、図4に示されているサ
ブルーチンの処理が行なわれるが、ステップS43 におい
て”NO”になる。このため、ステップS44 において再度
図4に示されているサブルーチンが実行され、処理対象
階層Lが更にインクリメントされて階層3に関する処理
が行なわれる。
ジェクトがインクリメントされてオブジェクトID=4の
オブジェクトが第2の処理対象オブジェクトとなる。こ
の場合、ステップS38 での判断結果は”NO”になるの
で、ステップS33 へ処理が戻される。そして、上述同様
の処理が行なわれることにより、図4に示されているサ
ブルーチンの処理が行なわれるが、ステップS43 におい
て”NO”になる。このため、ステップS44 において再度
図4に示されているサブルーチンが実行され、処理対象
階層Lが更にインクリメントされて階層3に関する処理
が行なわれる。
【0041】この階層3に関する処理においてオブジェ
クトが発見された場合(ステップS45 で”YES ”) に
は、それがステップS49 で親オブジェクトとされ、発見
されなかった場合 (ステップS45 で”NO”) には、次の
オブジェクトを検索対象のオブジェクトとし (ステップ
S46)、ステップS43 へ処理が戻される。但し、その階層
での全ての検索対象オブジェクトに関する処理が終了し
ている場合 (ステップS47 で”YES ”) には、親オブジ
ェクトは未発見として処理される (ステップS48)。
クトが発見された場合(ステップS45 で”YES ”) に
は、それがステップS49 で親オブジェクトとされ、発見
されなかった場合 (ステップS45 で”NO”) には、次の
オブジェクトを検索対象のオブジェクトとし (ステップ
S46)、ステップS43 へ処理が戻される。但し、その階層
での全ての検索対象オブジェクトに関する処理が終了し
ている場合 (ステップS47 で”YES ”) には、親オブジ
ェクトは未発見として処理される (ステップS48)。
【0042】この場合、検索対象オブジェクトはオブジ
ェクトID=3の子オブジェクト1のみであるため、これ
が第1の検索対象オブジェクトとされ、ステップS43 で
はこの第1の検索対象オブジェクトのオブジェクトIDが
処理対象オブジェクトのオブジェクトIDと一致する。こ
の結果、処理対象オブジェクト(ここではオブジェクト
ID=4のオブジェクト)の親オブジェクトが発見された
ことになり (ステップS49)、サブルーチンからメインル
ーチンのステップS36 へリターンするので、オブジェク
トID=4のオブジェクトがオブジェクトID=3のオブジ
ェクトの子オブジェクトとして、換言すればオブジェク
トID=4のオブジェクトがオブジェクトID=2の最上位
オブジェクト2の子オブジェクト1の更に子オブジェク
ト1として構築される。
ェクトID=3の子オブジェクト1のみであるため、これ
が第1の検索対象オブジェクトとされ、ステップS43 で
はこの第1の検索対象オブジェクトのオブジェクトIDが
処理対象オブジェクトのオブジェクトIDと一致する。こ
の結果、処理対象オブジェクト(ここではオブジェクト
ID=4のオブジェクト)の親オブジェクトが発見された
ことになり (ステップS49)、サブルーチンからメインル
ーチンのステップS36 へリターンするので、オブジェク
トID=4のオブジェクトがオブジェクトID=3のオブジ
ェクトの子オブジェクトとして、換言すればオブジェク
トID=4のオブジェクトがオブジェクトID=2の最上位
オブジェクト2の子オブジェクト1の更に子オブジェク
ト1として構築される。
【0043】なお、図4に示されているサブルーチンの
ステップS41 において処理対象階層Lがインクリメント
された場合に、その階層に対応するオブジェクトがデー
タベースに存在しない場合にはその階層のサブルーチン
はリターンする。
ステップS41 において処理対象階層Lがインクリメント
された場合に、その階層に対応するオブジェクトがデー
タベースに存在しない場合にはその階層のサブルーチン
はリターンする。
【0044】以下、同様にして、オブジェクトID=5の
オブジェクトの親オブジェクトとして最上位オブジェク
ト2が発見されるので、このオブジェクトID=5のオブ
ジェクトは最上位オブジェクト2の子オブジェクト2と
して構築される。
オブジェクトの親オブジェクトとして最上位オブジェク
ト2が発見されるので、このオブジェクトID=5のオブ
ジェクトは最上位オブジェクト2の子オブジェクト2と
して構築される。
【0045】以上のようにして、最上位オブジェクト2
の子オブジェクトの全てが構築されると、ステップS38
において”YES ”になるので、この処理は終了する。以
上のような処理により、図5の模式図に示されているよ
うな、最上位オブジェクト2に関係する全てのオブジェ
クト構造が復元される。
の子オブジェクトの全てが構築されると、ステップS38
において”YES ”になるので、この処理は終了する。以
上のような処理により、図5の模式図に示されているよ
うな、最上位オブジェクト2に関係する全てのオブジェ
クト構造が復元される。
【0046】このように、本発明方法ではデータベース
への問い合わせは階層数の多少,オブジェクト数の多少
には拘らず、図3に示されているメインルーチンにおい
て一回行なわれるのみである。このため、処理時間が大
幅に短縮される。
への問い合わせは階層数の多少,オブジェクト数の多少
には拘らず、図3に示されているメインルーチンにおい
て一回行なわれるのみである。このため、処理時間が大
幅に短縮される。
【0047】
【発明の効果】以上に詳述したように本発明のリレーシ
ョナルデータベースを使用した本発明の再帰型オブジェ
クトの復元方法によれば、所望の最上位オブジェクトに
関係する下位階層の全てのオブジェクトがテーブルに記
録されている最上位オブジェクトのオブジェクトIDに従
って抽出されるので、リレーショナルデータベースへの
問い合わせ回数がその一回のみで済むため、高速処理が
実現される。
ョナルデータベースを使用した本発明の再帰型オブジェ
クトの復元方法によれば、所望の最上位オブジェクトに
関係する下位階層の全てのオブジェクトがテーブルに記
録されている最上位オブジェクトのオブジェクトIDに従
って抽出されるので、リレーショナルデータベースへの
問い合わせ回数がその一回のみで済むため、高速処理が
実現される。
【図1】本発明の再帰型オブジェクトの復元方法に使用
されるコンピュータシステムの構成例を示すブロック図
である。
されるコンピュータシステムの構成例を示すブロック図
である。
【図2】本発明方法により各オブジェクトをリレーショ
ナルデータベースに登録した場合のテーブルの内容を示
す模式図である。
ナルデータベースに登録した場合のテーブルの内容を示
す模式図である。
【図3】本発明方法の手順を示すフローチャートであ
る。
る。
【図4】本発明方法の手順を示すフローチャートであ
る。
る。
【図5】本発明方法による処理結果を示す模式図であ
る。
る。
【図6】従来技術において使用される一般的なコンピュ
ータシステムの構成例を示すブロック図である。
ータシステムの構成例を示すブロック図である。
【図7】従来技術及び本発明において処理対象となるオ
ブジェクトの階層構造を示す模式図である。
ブジェクトの階層構造を示す模式図である。
【図8】従来技術により各オブジェクトをリレーショナ
ルデータベースに登録した場合のテーブルの内容を示す
模式図である。
ルデータベースに登録した場合のテーブルの内容を示す
模式図である。
【図9】従来方法の手順を示すフローチャートである。
【図10】従来方法の手順を示すフローチャートであ
る。
る。
11 中央処理制御部 100 メモリ (テーブル) 130 記憶装置 (リレーショナルデータベース)
Claims (2)
- 【請求項1】 リレーショナルデータベースに登録され
た複数の再帰型オブジェクトを、テーブルに記録された
各オブジェクト自身を特定する識別子と各オブジェクト
の親オブジェクトの識別子とに基づいて復元する再帰型
オブジェクトの復元方法において、 前記テーブルに各オブジェクトの階層構造上の最上位の
オブジェクトの識別子を記録しておき、 ある一つの最上位オブジェクトに関係する下位階層の全
てのオブジェクトを前記テーブルに記録されている最上
位オブジェクトの識別子に従って抽出し、 抽出されたオブジェクトに関して、前記テーブルに記録
されている親オブジェクトの識別子に従って階層関係を
復元することを特徴とする再帰型オブジェクトの復元方
法。 - 【請求項2】 複数の再帰型オブジェクトが登録されて
おり、それぞれの識別子と各オブジェクトの親オブジェ
クトの識別子とを記録したテーブルを有するリレーショ
ナルデータベースであって、 前記テーブルには更に、各オブジェクトに関して、それ
ぞれの階層構造上の最上位のオブジェクトの識別子が記
録されていることを特徴とするリレーショナルデータベ
ース。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9234823A JPH1173352A (ja) | 1997-08-29 | 1997-08-29 | 再帰型オブジェクトの復元方法及びそれに使用するリレーショナルデータベース |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9234823A JPH1173352A (ja) | 1997-08-29 | 1997-08-29 | 再帰型オブジェクトの復元方法及びそれに使用するリレーショナルデータベース |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1173352A true JPH1173352A (ja) | 1999-03-16 |
Family
ID=16976950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9234823A Pending JPH1173352A (ja) | 1997-08-29 | 1997-08-29 | 再帰型オブジェクトの復元方法及びそれに使用するリレーショナルデータベース |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1173352A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100397021B1 (ko) * | 1999-06-17 | 2003-09-02 | 인터내셔널 비지네스 머신즈 코포레이션 | 데이터 처리 시스템에서 재귀 하드 링크를 처리하기 위한방법 및 장치 |
-
1997
- 1997-08-29 JP JP9234823A patent/JPH1173352A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100397021B1 (ko) * | 1999-06-17 | 2003-09-02 | 인터내셔널 비지네스 머신즈 코포레이션 | 데이터 처리 시스템에서 재귀 하드 링크를 처리하기 위한방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7409401B2 (en) | Method and system for supporting multivalue attributes in a database system | |
JP2638307B2 (ja) | データベースの登録簿を探索する方法 | |
US7373341B2 (en) | Computer readable medium, method and apparatus for preserving filtering conditions to query multilingual data sources at various locales when regenerating a report | |
US8260781B2 (en) | Representative document selection for sets of duplicate documents in a web crawler system | |
US6175835B1 (en) | Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks | |
US7269593B2 (en) | Data processing apparatus and method | |
JP2005521954A (ja) | リレーショナルデータベースをクエリーする方法および装置 | |
WO2002031625A2 (en) | A system and method of translating a universal query language to sql | |
JPH05342264A (ja) | インデックス付け及び検索のための方法及び装置 | |
US20060074857A1 (en) | Method and apparatus for querying relational databases | |
JPH10505930A (ja) | データベースから情報を抽出するための方法及び装置 | |
US8046377B2 (en) | Method for calculating distributed joins in main memory with minimal communicaton overhead | |
JPH1173352A (ja) | 再帰型オブジェクトの復元方法及びそれに使用するリレーショナルデータベース | |
US7624096B1 (en) | Method of amending database contents | |
US8510269B2 (en) | Uninterrupted database index reorganization/movement | |
JPH08235033A (ja) | オブジェクト指向データベース管理システムにおける結合演算方式 | |
JPH1153383A (ja) | 複数データベースの検索方法及びその検索プログラム等を記録した記録媒体 | |
US20080162427A1 (en) | Hybrid Relational, Directory, and Content Query Facility | |
JPH0644309A (ja) | データベース管理方式 | |
JPH04256175A (ja) | データベースシステム | |
JPH0738195B2 (ja) | 拡張項のための重ね合わせ符号を用いた検索方法 | |
JPH03225558A (ja) | データ検索方式 | |
JPH0225974A (ja) | データベース更新検索方式 | |
JPH02280274A (ja) | データベース検索システムの包括検索方式 | |
JPH0457165A (ja) | データベースにおけるデータ検索方法 |