JPH01162927A - トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システム - Google Patents
トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システムInfo
- Publication number
- JPH01162927A JPH01162927A JP63212670A JP21267088A JPH01162927A JP H01162927 A JPH01162927 A JP H01162927A JP 63212670 A JP63212670 A JP 63212670A JP 21267088 A JP21267088 A JP 21267088A JP H01162927 A JPH01162927 A JP H01162927A
- Authority
- JP
- Japan
- Prior art keywords
- database
- entry
- node
- destination node
- source node
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24566—Recursive queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(発明の背景)
[発明の属する技術分野]
本発明は、データベース管理システム及びその方法に関
し、特に、使用可能なデータから新たな情報を引き出す
ことができるインテリジェント・データベースシステム
及びその方法に関する。
し、特に、使用可能なデータから新たな情報を引き出す
ことができるインテリジェント・データベースシステム
及びその方法に関する。
〔従来技術の説明]
データハ′、−ス管理システムは、従来、賃金支払い処
理、収支会計処理、及び取引処理等のデータ処理への応
用に用いられてきている。現在では、データベース管理
システムは、エキスパートデータベースシステム等の新
たな応用分野において用いられる例が次第に多くなりつ
つある。そして、それに対応して、新しいデータベース
管理システム及びそのための機器が設計されつつある。
理、収支会計処理、及び取引処理等のデータ処理への応
用に用いられてきている。現在では、データベース管理
システムは、エキスパートデータベースシステム等の新
たな応用分野において用いられる例が次第に多くなりつ
つある。そして、それに対応して、新しいデータベース
管理システム及びそのための機器が設計されつつある。
一般に、関連データベースは、大量のエントリを有し、
各々のエントリは複数のフィールドより成り立っている
。このエントリは、しばしばレコードあるいはチュープ
ルと呼称される。データベースにおける各々のチュープ
ルは、一般に、同一順序によって配列させられた同一フ
ィールドよりなり、チュープル間の差異は、各々のフィ
ールド値である。情報は、この様なデータベースから、
比較的限られた数でかつ組合わせることによって、非常
に強力な検索を行う、基本的な、すなわちプリミティブ
なオペレーションによって引き出される。
各々のエントリは複数のフィールドより成り立っている
。このエントリは、しばしばレコードあるいはチュープ
ルと呼称される。データベースにおける各々のチュープ
ルは、一般に、同一順序によって配列させられた同一フ
ィールドよりなり、チュープル間の差異は、各々のフィ
ールド値である。情報は、この様なデータベースから、
比較的限られた数でかつ組合わせることによって、非常
に強力な検索を行う、基本的な、すなわちプリミティブ
なオペレーションによって引き出される。
上述のプリミティブオペレーションの一例は、あらかじ
め選択されたフィールドの値に関する″セレクト”であ
る。このオペレーションは、所定のフィールド以外の全
てのフィールドを無視し、所定のフィールドを(チュー
プルを通じて)検索して特定の条件を満たす値を見出し
、当該検索基準(あるいはその所定の部分)を充足させ
るチュープルを引き出す。
め選択されたフィールドの値に関する″セレクト”であ
る。このオペレーションは、所定のフィールド以外の全
てのフィールドを無視し、所定のフィールドを(チュー
プルを通じて)検索して特定の条件を満たす値を見出し
、当該検索基準(あるいはその所定の部分)を充足させ
るチュープルを引き出す。
ブルミティブオペレーションの他の例として“ユニオン
”があげられる。このオペレーションは、同一フィール
ドにわたって定義されている2つのデータベースを連結
して、より大規模なデータベースを形成する。連結がな
されると、あるチュープルは2つ以上含まれることにな
る可能性があるので、“ユニオン“オペレーションの一
部には、余剰のチュープルを消去する機能が含まれる。
”があげられる。このオペレーションは、同一フィール
ドにわたって定義されている2つのデータベースを連結
して、より大規模なデータベースを形成する。連結がな
されると、あるチュープルは2つ以上含まれることにな
る可能性があるので、“ユニオン“オペレーションの一
部には、余剰のチュープルを消去する機能が含まれる。
“ディファレンス”というプリミティブオペレーション
も2つの個別のデータベースに対して作用するものであ
るが、“ディファレンス1オペレーシヨンによって生ず
るのは、第1データベースには含まれるが第2データベ
ースには含まれないチュープルのみを含むデータベース
である。
も2つの個別のデータベースに対して作用するものであ
るが、“ディファレンス1オペレーシヨンによって生ず
るのは、第1データベースには含まれるが第2データベ
ースには含まれないチュープルのみを含むデータベース
である。
プリミティブオペレーションのもう1つの例は、“ジョ
イン”オペレーションとして知られているものである。
イン”オペレーションとして知られているものである。
このオペレーションは、2つのデータベースの内の所定
の基準を満たす部分の結合を生成する。例えば、考えて
いる2つのデータベースのそれぞれのものの特定のフィ
ールドに対してジョインが実行されると、これら2つの
データベースに含まれるチュープルの内、選択した2つ
のフィールドにおいて(値カリ一致するものが連結され
て、新しいデータベースのチュープルとなる。
の基準を満たす部分の結合を生成する。例えば、考えて
いる2つのデータベースのそれぞれのものの特定のフィ
ールドに対してジョインが実行されると、これら2つの
データベースに含まれるチュープルの内、選択した2つ
のフィールドにおいて(値カリ一致するものが連結され
て、新しいデータベースのチュープルとなる。
勿論、選択した2つのフィールドは共通の範囲にわたる
値を有していなければならない二そうでない場合には、
一致するものは見つからない。
値を有していなければならない二そうでない場合には、
一致するものは見つからない。
上述のプリミティブオペレーションを注意深く検討する
と、データベースに明白に差込まれた情報を引出すため
に当該データベースに対して正規に検索を行うことによ
って、多くの情報が得られることが明らかとなる。しか
しながら、データベースは、直接、すなわち明白に差込
まれてはいない多くの情報も有している。そのような情
報は、既知のプリミティブオペレーションによっても引
出されうるが、余り効率的ではない。例えば、第1及び
第2フイールドがその間を直結する高速道路を有する都
市名を表わし、第3フイールドが高速道路に沿った当該
2都市間の距離をあられすようなデータベースで、ある
都市から高速道路によって直結されていない都市へのル
ートを探そうとしていると考える。従来のプリミティブ
オペレーションしか使用できない場合には、このような
検索に対する解答は、大量のプリミティブオペレーショ
ンを含むプログラムによってのみ得ることができる。し
かしながら、当該データベースを効率的に操作でき、そ
の結果当該検索に対する解答が直接得られるようなプリ
ミティブオペレーションが利用可能であるならば、多く
のこれまでは困難とされてきたタスクが容易になされう
ろことになる。上述の例に対して要求される能力は、一
般に“トランジティブクロージャ”と呼称される。これ
はしばしば要求される能力である。
と、データベースに明白に差込まれた情報を引出すため
に当該データベースに対して正規に検索を行うことによ
って、多くの情報が得られることが明らかとなる。しか
しながら、データベースは、直接、すなわち明白に差込
まれてはいない多くの情報も有している。そのような情
報は、既知のプリミティブオペレーションによっても引
出されうるが、余り効率的ではない。例えば、第1及び
第2フイールドがその間を直結する高速道路を有する都
市名を表わし、第3フイールドが高速道路に沿った当該
2都市間の距離をあられすようなデータベースで、ある
都市から高速道路によって直結されていない都市へのル
ートを探そうとしていると考える。従来のプリミティブ
オペレーションしか使用できない場合には、このような
検索に対する解答は、大量のプリミティブオペレーショ
ンを含むプログラムによってのみ得ることができる。し
かしながら、当該データベースを効率的に操作でき、そ
の結果当該検索に対する解答が直接得られるようなプリ
ミティブオペレーションが利用可能であるならば、多く
のこれまでは困難とされてきたタスクが容易になされう
ろことになる。上述の例に対して要求される能力は、一
般に“トランジティブクロージャ”と呼称される。これ
はしばしば要求される能力である。
多くの技術者がデータベースに対するプリミティブオペ
レーションセットの拡張の必要性を認識し、その内の何
人かは、本質的にトランジティブクロージトオペレーシ
ョンであるようなプリミティブオペレーションを提案し
ている。そのような提案の例は、アール・アグラワル(
R,Agraval)によって提案された“アルファ”
オペレータ(“アルファ:リカーシブ倹素のクラスを表
現するための、リレーショナル代数への拡張″、第3回
データエンジニアリング関する国際会議(1987年2
月、カリフォルニア州ロサンゼルルス)会議録);エイ
・ローゼンクール(A、Rosenthal)らによっ
て提案された“トラウ゛アーザルリカージョン“オペレ
ーター(“トラヴアーザルリカージョン:リカーシブな
応用を支援するための実際的なアプローチ”、ACM−
5I GMOD19111Bデータマネージメントに関
する国際会議(1988年5月、ワシントン特別区)会
議録;及び、アール・クング(R,Kung)らによっ
て提案された“*”オペレータ(“データベースシステ
ムにおける発見的検索°、第1回エキスパートデータシ
ステムに関する国際ワークシジップ(1984年lO月
、サウスカロライナ州キアワ島)会議録)である。
レーションセットの拡張の必要性を認識し、その内の何
人かは、本質的にトランジティブクロージトオペレーシ
ョンであるようなプリミティブオペレーションを提案し
ている。そのような提案の例は、アール・アグラワル(
R,Agraval)によって提案された“アルファ”
オペレータ(“アルファ:リカーシブ倹素のクラスを表
現するための、リレーショナル代数への拡張″、第3回
データエンジニアリング関する国際会議(1987年2
月、カリフォルニア州ロサンゼルルス)会議録);エイ
・ローゼンクール(A、Rosenthal)らによっ
て提案された“トラウ゛アーザルリカージョン“オペレ
ーター(“トラヴアーザルリカージョン:リカーシブな
応用を支援するための実際的なアプローチ”、ACM−
5I GMOD19111Bデータマネージメントに関
する国際会議(1988年5月、ワシントン特別区)会
議録;及び、アール・クング(R,Kung)らによっ
て提案された“*”オペレータ(“データベースシステ
ムにおける発見的検索°、第1回エキスパートデータシ
ステムに関する国際ワークシジップ(1984年lO月
、サウスカロライナ州キアワ島)会議録)である。
これまで当業界において用いられてきたトランジティブ
クロージャオペレーションを達成するための方法及び技
法について記す前に、トランジティブクロージャの模式
的な代表例を以下に示す。
クロージャオペレーションを達成するための方法及び技
法について記す前に、トランジティブクロージャの模式
的な代表例を以下に示す。
既に述べたように、データベースリレーションは、各々
が幾つかのフィールドよりなるチュープルの組から成り
立っている。各々のフィールドの値は、所定の範囲にわ
たって定義されている。データベースにおける複合フィ
ールドは、2つあるいはそれ以上の同時に考慮されるべ
きフィールドより成り立っている。あるデータベースリ
レーションにおける2つのフィールド(あるいは2つの
複合フィールド)が同一範囲にわたって定義されている
ことはしばしばである。この様な2つのフィールドに存
在する各々の値をノード(節点)で表わし、各チュープ
ルを、当該チュープルのフィールドに見出された2つの
値を接続する方向性リンク(すなわち矢印)として表現
すると、その様にしてできたグラフ(ノード及びそれら
を連結しているリンクの接続を表わしたもの)がデータ
ベースを表わすことになる。データベースリレーション
の各々のチュープルに関する他のフィールドは、当該グ
ラフ中のリンクにラベル付けをするために用いられる。
が幾つかのフィールドよりなるチュープルの組から成り
立っている。各々のフィールドの値は、所定の範囲にわ
たって定義されている。データベースにおける複合フィ
ールドは、2つあるいはそれ以上の同時に考慮されるべ
きフィールドより成り立っている。あるデータベースリ
レーションにおける2つのフィールド(あるいは2つの
複合フィールド)が同一範囲にわたって定義されている
ことはしばしばである。この様な2つのフィールドに存
在する各々の値をノード(節点)で表わし、各チュープ
ルを、当該チュープルのフィールドに見出された2つの
値を接続する方向性リンク(すなわち矢印)として表現
すると、その様にしてできたグラフ(ノード及びそれら
を連結しているリンクの接続を表わしたもの)がデータ
ベースを表わすことになる。データベースリレーション
の各々のチュープルに関する他のフィールドは、当該グ
ラフ中のリンクにラベル付けをするために用いられる。
ちなみに、無方向性リンクではなく方向性リンクを用い
た理由は、グラフを定義するために用いた、当該リレー
ションに含まれる2つのフィールドを区別するためであ
る。
た理由は、グラフを定義するために用いた、当該リレー
ションに含まれる2つのフィールドを区別するためであ
る。
前述のグラフそのものに注目すると、そのようなグラフ
における“パス”は、当該グラフの所定のソースノード
に至る場合に通過する連続したリンクの組により成り立
っている。我々の定義によれば、グラフの“トランジテ
ィブクロージャ″とは、パスが存在する全てのノード対
間にリンクを有する新たなグラフである。元のグラフの
リンクに対して付けられたラベルは、所定の関数に従っ
て変換されて、当該トランジイブクロージャによって生
成されたリンクに対する新たなラベルとなる。あるノー
ド対間にリンクが既に存在する場合においても、しばし
ば、異なったパスを見出すことによって当該リンクに対
するラベルが、ある所定の関数に従って、変換される、
ということが起こる。データベースリレーションのトラ
ンジティブクロージャとは、与えられた元のデータベー
スリレーションのグラフのトランジティブクロージャに
対応するデータベースリレーションである。
における“パス”は、当該グラフの所定のソースノード
に至る場合に通過する連続したリンクの組により成り立
っている。我々の定義によれば、グラフの“トランジテ
ィブクロージャ″とは、パスが存在する全てのノード対
間にリンクを有する新たなグラフである。元のグラフの
リンクに対して付けられたラベルは、所定の関数に従っ
て変換されて、当該トランジイブクロージャによって生
成されたリンクに対する新たなラベルとなる。あるノー
ド対間にリンクが既に存在する場合においても、しばし
ば、異なったパスを見出すことによって当該リンクに対
するラベルが、ある所定の関数に従って、変換される、
ということが起こる。データベースリレーションのトラ
ンジティブクロージャとは、与えられた元のデータベー
スリレーションのグラフのトランジティブクロージャに
対応するデータベースリレーションである。
既存のデータベースシステムにおける成功の多くは、デ
ータベースにおける種々のプリミティブオペレータをイ
ンプリメントするための効率的な方法の発見によるもの
である。同一の手本に従って、多くの設計者がデータベ
ースリレーションのトランジティブクロージャを計算す
るための方法を構築しようと試みている。これらの方法
の多くは、反復法として分類されうる。
ータベースにおける種々のプリミティブオペレータをイ
ンプリメントするための効率的な方法の発見によるもの
である。同一の手本に従って、多くの設計者がデータベ
ースリレーションのトランジティブクロージャを計算す
るための方法を構築しようと試みている。これらの方法
の多くは、反復法として分類されうる。
エイ・エフ・パンシルホン(A、P、Bancl Ih
on)によって記述された半ナイーブ法(“再帰的に定
義されたりレーションのナイーブ評価“、Tech、R
epl D B −004−85、MCC(テキサス州
オースチン))は、長さ1のパスから始めて各々の反復
において1だけ長いパスを見出す。対数的方法は、ピー
φバルジュリエズ(PJaldurIez)ら(“ジョ
インインデックスを用いた再帰的検索の評価“、第11
回エキスパートデータベースシステムに関する国際会議
(1986年4月、サウスカロライナ州チャールストン
)会議録)及びワイ・イー・アイオアニブイス(Y、E
、lognn!dis) (″リレーショナルオペレー
タのトランジティブクロージャの計算について′、第1
2回巨大データベース国際会議(1986年8月、京都
、日本)会議録)によって記述されている。この方法に
おいては、各々の反復の際に既知のパスの長さよりも2
倍長い長さを有するパスまでの全てを計算するものであ
る。前述の方法の改良については、ワイ・イー・アイオ
ニディス(“リレーショナルオペレータのトランジティ
ブクロージャの計算について”、第12回巨大データベ
ース国際会議(1986年8月、京都、日本)会議録)
、ニー・ギュンツァ−(υ、Guntzer)ら(“効
率的差分固定点反復法による演鐸型データベースシステ
ムにちける再帰の評価について″、第3回アイ・トリプ
ルΦイー・データエンジニアリング国際会議(1987
年2月、カリフォルニア州ロサンゼルス)会議録)、及
びエイチ・リュー(H,Lu)(′データベースリレー
ションのトランジティブクロージャの計算に関する新し
い戦略“、第13回巨大データベース国際会i (19
87年9月、英国ブライトン)会議録)によって記述さ
れている。
on)によって記述された半ナイーブ法(“再帰的に定
義されたりレーションのナイーブ評価“、Tech、R
epl D B −004−85、MCC(テキサス州
オースチン))は、長さ1のパスから始めて各々の反復
において1だけ長いパスを見出す。対数的方法は、ピー
φバルジュリエズ(PJaldurIez)ら(“ジョ
インインデックスを用いた再帰的検索の評価“、第11
回エキスパートデータベースシステムに関する国際会議
(1986年4月、サウスカロライナ州チャールストン
)会議録)及びワイ・イー・アイオアニブイス(Y、E
、lognn!dis) (″リレーショナルオペレー
タのトランジティブクロージャの計算について′、第1
2回巨大データベース国際会議(1986年8月、京都
、日本)会議録)によって記述されている。この方法に
おいては、各々の反復の際に既知のパスの長さよりも2
倍長い長さを有するパスまでの全てを計算するものであ
る。前述の方法の改良については、ワイ・イー・アイオ
ニディス(“リレーショナルオペレータのトランジティ
ブクロージャの計算について”、第12回巨大データベ
ース国際会議(1986年8月、京都、日本)会議録)
、ニー・ギュンツァ−(υ、Guntzer)ら(“効
率的差分固定点反復法による演鐸型データベースシステ
ムにちける再帰の評価について″、第3回アイ・トリプ
ルΦイー・データエンジニアリング国際会議(1987
年2月、カリフォルニア州ロサンゼルス)会議録)、及
びエイチ・リュー(H,Lu)(′データベースリレー
ションのトランジティブクロージャの計算に関する新し
い戦略“、第13回巨大データベース国際会i (19
87年9月、英国ブライトン)会議録)によって記述さ
れている。
上述の従来技術に係る方法には2つの主要な問題点があ
る。第1に、反復法の終了はグラフの最長パスに依存し
ていて、長大パスが存在する場合には、結果を得るため
に多くの反復をしなければならない。第2に、反復法は
、特にグラフがサイクルを含む場合には美大な数の重複
を生み出しくなぜなら、ノード対間のパスが見出だされ
た場合、当該ノード対間にパスが既に存在しているかど
うかをチエツクすることは容易ではないからである)、
それらを除去するために重大な実行損失を招くからであ
る。
る。第1に、反復法の終了はグラフの最長パスに依存し
ていて、長大パスが存在する場合には、結果を得るため
に多くの反復をしなければならない。第2に、反復法は
、特にグラフがサイクルを含む場合には美大な数の重複
を生み出しくなぜなら、ノード対間のパスが見出だされ
た場合、当該ノード対間にパスが既に存在しているかど
うかをチエツクすることは容易ではないからである)、
それらを除去するために重大な実行損失を招くからであ
る。
プール行列(すなわち、各要素が1か0であるような行
列)のトランジティブクロージャを計算するための方法
も色々と導かれている。この型のよく知られた方法は、
ニス・ワーシャル(S、Warshall) (″ブー
ル行列に関する定理、ジャーナル・オブ・エイシーエム
(Journal of ACM)、第9巻第1号(1
962年1月)、エイチ・ニス・ワレン(11゜S、W
arrcn) (“二進リレーションのトランジティ
ブクロージャに対するワーシャルのアルゴリズムの修正
”、コミュニケーションズ・オブ◆エイシーエム(Co
mIlunications ol’ ACM)、第1
8巻第4号(1975年4月))、及び、シー・ピー・
シュノアCC,P、5chnorr) (“線型期待時
間によるトランジティブクロージャのためのアルゴリズ
ム1、ニスアイエイエム ジャーナル オブ コンピユ
ーテイング(SIAM Journal or Coa
+putlng)、第7巻第2号(1978年5月))
によって記述されている。
列)のトランジティブクロージャを計算するための方法
も色々と導かれている。この型のよく知られた方法は、
ニス・ワーシャル(S、Warshall) (″ブー
ル行列に関する定理、ジャーナル・オブ・エイシーエム
(Journal of ACM)、第9巻第1号(1
962年1月)、エイチ・ニス・ワレン(11゜S、W
arrcn) (“二進リレーションのトランジティ
ブクロージャに対するワーシャルのアルゴリズムの修正
”、コミュニケーションズ・オブ◆エイシーエム(Co
mIlunications ol’ ACM)、第1
8巻第4号(1975年4月))、及び、シー・ピー・
シュノアCC,P、5chnorr) (“線型期待時
間によるトランジティブクロージャのためのアルゴリズ
ム1、ニスアイエイエム ジャーナル オブ コンピユ
ーテイング(SIAM Journal or Coa
+putlng)、第7巻第2号(1978年5月))
によって記述されている。
ワーシャルのアルゴリズムに従うと、与えられたV個の
ノードを有するグラフに対するVxVのプール行列の要
素alj(ここで、ノードiからノードjへの弧が存在
する場合には、aljは1であり、そうでない場合は0
、と定義されている)に関して、そのトランジティブク
ロージャは次のように求められる: に=1toV −1toV j−ILoV について a −a U (a、km akj)グラフlj
Ij 理論の術語によれば、当該アルゴリズムは次のように書
き表わすことができる: 全てのノードkに対して kの全てのプリデセッサ目こ対して kの全てのサクセッサjに対して jをiのサクセッサにし、iをjのブリデッサにする。
ノードを有するグラフに対するVxVのプール行列の要
素alj(ここで、ノードiからノードjへの弧が存在
する場合には、aljは1であり、そうでない場合は0
、と定義されている)に関して、そのトランジティブク
ロージャは次のように求められる: に=1toV −1toV j−ILoV について a −a U (a、km akj)グラフlj
Ij 理論の術語によれば、当該アルゴリズムは次のように書
き表わすことができる: 全てのノードkに対して kの全てのプリデセッサ目こ対して kの全てのサクセッサjに対して jをiのサクセッサにし、iをjのブリデッサにする。
当該グラフが、各々のチュープルに係る弧を表わしてい
るリレーションによって表現されるならば、ブリデセッ
サ及びサクセッサのリストを有することによる効果を得
るために、当該リレーションを2通りの方法に分類して
維持しなければならない。それゆえ、ワーシャルのアル
ゴリズムのインプリメントには、各々のノードに対して
それに関するサクセッサ及びプリデセッサのリストをフ
ェッチして、その後各々のサクセッサ(ブリデセッサ)
に対して更新可能なプリデセツサ(サクセッサ)をフェ
ッチする、という段階が必要になる。
るリレーションによって表現されるならば、ブリデセッ
サ及びサクセッサのリストを有することによる効果を得
るために、当該リレーションを2通りの方法に分類して
維持しなければならない。それゆえ、ワーシャルのアル
ゴリズムのインプリメントには、各々のノードに対して
それに関するサクセッサ及びプリデセッサのリストをフ
ェッチして、その後各々のサクセッサ(ブリデセッサ)
に対して更新可能なプリデセツサ(サクセッサ)をフェ
ッチする、という段階が必要になる。
また、例えばサクセッサリストのみを有していて、ある
ノードのプリデセッサを決定するために、毎回当該リス
ト全体にわたってスキャンすることも可能である。
ノードのプリデセッサを決定するために、毎回当該リス
ト全体にわたってスキャンすることも可能である。
ワレンは、ワーシャルのアルゴリズムがプール行列から
ランダムなビットをフェッチする段階を含んでいること
を指摘し、ビット抽出のオーバーヘッドなしにプールベ
クトルに対する直接のオペレーションを可能とするよう
な修正案を提案したが、それは、2パスとなっているニ −1toV k−1toi−1 −1toV a −a、しくaIknakj) Ij IJ −1toV k−i+ILoV j−ILoV alj″″alj′J(alkρakj)ワレンのアル
ゴリズムに於ける変更点は、iとkのループが交換され
ているという点のみである。
ランダムなビットをフェッチする段階を含んでいること
を指摘し、ビット抽出のオーバーヘッドなしにプールベ
クトルに対する直接のオペレーションを可能とするよう
な修正案を提案したが、それは、2パスとなっているニ −1toV k−1toi−1 −1toV a −a、しくaIknakj) Ij IJ −1toV k−i+ILoV j−ILoV alj″″alj′J(alkρakj)ワレンのアル
ゴリズムに於ける変更点は、iとkのループが交換され
ているという点のみである。
しかしながら、この交換によって、いくつかのパスが見
逃されてしまい、その結果、2パスが必要となる。第2
のループインデックスの範囲の修正は、2パスであるこ
とによる損失を低減するための最適化である。各々のパ
スにおける計算は、本質的には、 全てのノードiに対して、 iの、ある範囲内の全てのサクセッサkに対して、kの
全てのサクセッサjに対して、 jをiのサクセッサにする。
逃されてしまい、その結果、2パスが必要となる。第2
のループインデックスの範囲の修正は、2パスであるこ
とによる損失を低減するための最適化である。各々のパ
スにおける計算は、本質的には、 全てのノードiに対して、 iの、ある範囲内の全てのサクセッサkに対して、kの
全てのサクセッサjに対して、 jをiのサクセッサにする。
これらの方法の問題点は、データベース全体及びトラン
ジティブクロージャの計算結果がコンピュータのメイン
メモリに収まらなければ、これらの方法がデータベース
リレーションのトランジティブクロージャの効率的な計
算に用いられない、ということである。残念ながら、既
存のデータベースの大部分は、このためには大きすぎる
。
ジティブクロージャの計算結果がコンピュータのメイン
メモリに収まらなければ、これらの方法がデータベース
リレーションのトランジティブクロージャの効率的な計
算に用いられない、ということである。残念ながら、既
存のデータベースの大部分は、このためには大きすぎる
。
(発明の概要)
本発明により、データベースのトランジティブクロージ
ャを、当該データベースが磁気ディスク、光ディスク、
磁気テープあるいは低速のコアメモリ等の二次記憶媒体
にストアされている場合においても、当該二次記憶媒体
へのアクセスを最小限にすることによって、効率的に得
ることができる。
ャを、当該データベースが磁気ディスク、光ディスク、
磁気テープあるいは低速のコアメモリ等の二次記憶媒体
にストアされている場合においても、当該二次記憶媒体
へのアクセスを最小限にすることによって、効率的に得
ることができる。
この方法は、データベースを分配し、それが好ましい具
体例においては、各々のノードに対して直接に連結して
いるノードのリストが付けられているようなノードの組
という形で維持され、ある時刻においては、その1つの
組を二次記憶媒体からメインメモリに転送し、メインメ
モリに存在しない部分のデータベースへのアクセスをを
最小にするような方法でそれを処理する、という段階よ
り成り立っている。データベースの分配は、ア拳プリオ
リに決定されている必要はない。データベースの未処理
の部分がメインメモリの所定の部分に収まるだけ一分配
分としてフェッチされ、当該部分の処理中にメインメモ
リが一杯になると、現在の分配分のデータベースの一部
を放棄することによって(この部分は次の分配分に含ま
れる)、当該分配分をダイナミックに縮小する。分配分
の処理には、当該分配分の各々のノードに対して、当該
ノードを通じて間接的に連結している全てのノード対間
に直接連結を生成するという操作が含まれる。
体例においては、各々のノードに対して直接に連結して
いるノードのリストが付けられているようなノードの組
という形で維持され、ある時刻においては、その1つの
組を二次記憶媒体からメインメモリに転送し、メインメ
モリに存在しない部分のデータベースへのアクセスをを
最小にするような方法でそれを処理する、という段階よ
り成り立っている。データベースの分配は、ア拳プリオ
リに決定されている必要はない。データベースの未処理
の部分がメインメモリの所定の部分に収まるだけ一分配
分としてフェッチされ、当該部分の処理中にメインメモ
リが一杯になると、現在の分配分のデータベースの一部
を放棄することによって(この部分は次の分配分に含ま
れる)、当該分配分をダイナミックに縮小する。分配分
の処理には、当該分配分の各々のノードに対して、当該
ノードを通じて間接的に連結している全てのノード対間
に直接連結を生成するという操作が含まれる。
(実施例の説明)
第1図は、以下において本発明に係る、データベースリ
レーションのトランジティブクロージャを効率的に生成
するための方法及びその装置を記述するために用いられ
る、簡単なデータベースリレーションを示している。第
1図のデータベースは5つのフィールドを有し、第1及
び第3フイールドの双方が有効パーツ番号に関して定義
されており、第2及び第4フイールドの双方がパーツ名
に関して定義され、及び第5フイールドが正整数に関し
て定義されている。当該リレーションは、基本的には、
第1フイールドで番号そして第2フイールドでその名前
が規定されたパーツが、第3及び第4フイールドで規定
された製品に用いられており、後者を1ユニツトを生産
するために必要な前者の数が第5フイールドに与えられ
ている。
レーションのトランジティブクロージャを効率的に生成
するための方法及びその装置を記述するために用いられ
る、簡単なデータベースリレーションを示している。第
1図のデータベースは5つのフィールドを有し、第1及
び第3フイールドの双方が有効パーツ番号に関して定義
されており、第2及び第4フイールドの双方がパーツ名
に関して定義され、及び第5フイールドが正整数に関し
て定義されている。当該リレーションは、基本的には、
第1フイールドで番号そして第2フイールドでその名前
が規定されたパーツが、第3及び第4フイールドで規定
された製品に用いられており、後者を1ユニツトを生産
するために必要な前者の数が第5フイールドに与えられ
ている。
前述したように、データベースの複合フィールドは、2
つ以上の同時に考慮さるべきフィールドから成り立って
いる。第1図の例においては、第1及び第2フイールド
が組み合わされて機械部品の番号と名前を与える複合フ
ィールドを形成している。同様に、第3及び第4フイー
ルドを組み合わせられうる。
つ以上の同時に考慮さるべきフィールドから成り立って
いる。第1図の例においては、第1及び第2フイールド
が組み合わされて機械部品の番号と名前を与える複合フ
ィールドを形成している。同様に、第3及び第4フイー
ルドを組み合わせられうる。
第2図は、第1図に示したデータベースに対応する方向
性グラフを示し、第3図は、第2図に示したグラフのト
ランジティブクロージャを示している。第4図は、第3
図に対応するデータベースリレーションを示している。
性グラフを示し、第3図は、第2図に示したグラフのト
ランジティブクロージャを示している。第4図は、第3
図に対応するデータベースリレーションを示している。
第3図及び第4図において、リンクに対して新たなラベ
ルを生成するために用いられた関数は、新たなリンクを
生ぜしめたリンクに対する6乗加算”である。ここに示
す具体例においてこの関数を選択したのは、それが当該
データベースリレーションの元の意味を保存しているか
らである。すなわち、第5フイールドに対応するラベル
が、正確に、他のパーツの製造に直接あるいは間接に必
要なあるパーツの数を与えるからである。
ルを生成するために用いられた関数は、新たなリンクを
生ぜしめたリンクに対する6乗加算”である。ここに示
す具体例においてこの関数を選択したのは、それが当該
データベースリレーションの元の意味を保存しているか
らである。すなわち、第5フイールドに対応するラベル
が、正確に、他のパーツの製造に直接あるいは間接に必
要なあるパーツの数を与えるからである。
一般に、データベースリレーションは汎用コンピュータ
のメインメモリに完全にストアするには大き過ぎ、必然
的に磁気(あるいは光)ディスクのような二次記憶媒体
にストアされなければならない。いつの時点においても
当該リレーションの一部のみが読み出されてメインメモ
リ上に保持される。問題となるのは、データベースリレ
ーションのトランジティブクロージャは、元のりレーシ
ョンに比べて常に大きく、一般にかなり大きいことであ
る。それゆえ、データベースリレーションのトランジテ
ィブクロージャがコンピュータのメインメモリに収まる
ことは、はとんどあり得ない。
のメインメモリに完全にストアするには大き過ぎ、必然
的に磁気(あるいは光)ディスクのような二次記憶媒体
にストアされなければならない。いつの時点においても
当該リレーションの一部のみが読み出されてメインメモ
リ上に保持される。問題となるのは、データベースリレ
ーションのトランジティブクロージャは、元のりレーシ
ョンに比べて常に大きく、一般にかなり大きいことであ
る。それゆえ、データベースリレーションのトランジテ
ィブクロージャがコンピュータのメインメモリに収まる
ことは、はとんどあり得ない。
今日のコンピュータにおいて一般に用いられている二次
記憶媒体の性質、及びコンピュータの制御と内在する高
速メモリとの相互の影響のために、二次記憶媒体及び二
次内在記憶媒体間のデータ転送にかなりの時間が必要と
なる。我々の目的は、内在メモリと二次メモリ間の転送
を低減して、データベースリレーションのトランジティ
ブクロージャを効率的に計算する装置を提供することで
ある。すなわち、我々の装置の目的は、従来からのデー
タベースを“トランジティブクロージャ完成”データベ
ースに効率的に変換することである。
記憶媒体の性質、及びコンピュータの制御と内在する高
速メモリとの相互の影響のために、二次記憶媒体及び二
次内在記憶媒体間のデータ転送にかなりの時間が必要と
なる。我々の目的は、内在メモリと二次メモリ間の転送
を低減して、データベースリレーションのトランジティ
ブクロージャを効率的に計算する装置を提供することで
ある。すなわち、我々の装置の目的は、従来からのデー
タベースを“トランジティブクロージャ完成”データベ
ースに効率的に変換することである。
我々の目的に従って、従来型データベースは二次記憶媒
体にストアされており、本発明に係るトランジティブク
ロージャ装置は第5図に示されているように、当該媒体
上のデータをアクセスし、変換を実行し、その結果束ず
る“トランジティブクロージャ完成”データベースを同
一媒体にストアする。プロセッサ200はデータベース
100にアクセスし、変換を実行してその結果をデータ
ベースIQOに書き戻す。
体にストアされており、本発明に係るトランジティブク
ロージャ装置は第5図に示されているように、当該媒体
上のデータをアクセスし、変換を実行し、その結果束ず
る“トランジティブクロージャ完成”データベースを同
一媒体にストアする。プロセッサ200はデータベース
100にアクセスし、変換を実行してその結果をデータ
ベースIQOに書き戻す。
我々のアプローチの要点は、二次記憶媒体へのアクセス
数を低減することであり、このことを達成するために、
本発明に係るトランジティブクロージャ計算方法おいて
は、データベースをプロセッサ200のメモリ内に収ま
る適切なセグメントに分配し、効率的な方法でグラフに
おける全てのノードを考慮することが含まれている。こ
の様な考慮段階と関連して、本発明に係る方法において
は、(a)考慮中のノードに対して入射する方向のリン
クを有する全てのノードとの間のリンク及び対応するラ
ベルが、その様なリンクがまだ存在していない場合に、
生成されるあるいはくb)、その様なリンクが既存の場
合には、そのラベルが更新される。
数を低減することであり、このことを達成するために、
本発明に係るトランジティブクロージャ計算方法おいて
は、データベースをプロセッサ200のメモリ内に収ま
る適切なセグメントに分配し、効率的な方法でグラフに
おける全てのノードを考慮することが含まれている。こ
の様な考慮段階と関連して、本発明に係る方法において
は、(a)考慮中のノードに対して入射する方向のリン
クを有する全てのノードとの間のリンク及び対応するラ
ベルが、その様なリンクがまだ存在していない場合に、
生成されるあるいはくb)、その様なリンクが既存の場
合には、そのラベルが更新される。
更に詳細に述べれば、各々のチュープルが2つのノード
を有するリンクであるので、本発明に係る方法において
は、デスティネーションノードあるいはソースノードの
いずれかを考慮中のピボットノードとして取扱う。各々
のピボットノードに入射するリンクを有するノードと各
々のピボットノードから出射するリンクを有するノード
との間のリンクを生成することによって全体のトランジ
ティブクロージャが生成される。
を有するリンクであるので、本発明に係る方法において
は、デスティネーションノードあるいはソースノードの
いずれかを考慮中のピボットノードとして取扱う。各々
のピボットノードに入射するリンクを有するノードと各
々のピボットノードから出射するリンクを有するノード
との間のリンクを生成することによって全体のトランジ
ティブクロージャが生成される。
既存の方法においては、データベース全体への繰返しア
クセスが必要とされたが、この必要性を可能な限り軽減
することが望ましい。それゆえ、本発明により、トラン
ジティブクロージャが以下のようにして求められる: (a)初期データベースiooを、第1にソースノード
に関して、次にデスティネーションノードに関してソー
ト(分類)する; (b)ソートしたデータベースの一分配分をプロセッサ
200に転送しくここで、前記データベースの一分配分
は、所定の数のピボットノードのエントリを形成する)
、当該分配骨の範囲内で情報を処理する; (c)データベース100内に残存しているリンクのそ
れぞれをプロセッサ200へ渡し、彼転送分配分のピボ
ットノードに対する影響を考慮し、必要ならばトランシ
ティブリンクを生成する;(tl)前記分配分をデータ
ベース100に書き戻す;(e)次の分配分をデータベ
ース100からプロセッサ200に転送し、この手続き
を繰返す。
クセスが必要とされたが、この必要性を可能な限り軽減
することが望ましい。それゆえ、本発明により、トラン
ジティブクロージャが以下のようにして求められる: (a)初期データベースiooを、第1にソースノード
に関して、次にデスティネーションノードに関してソー
ト(分類)する; (b)ソートしたデータベースの一分配分をプロセッサ
200に転送しくここで、前記データベースの一分配分
は、所定の数のピボットノードのエントリを形成する)
、当該分配骨の範囲内で情報を処理する; (c)データベース100内に残存しているリンクのそ
れぞれをプロセッサ200へ渡し、彼転送分配分のピボ
ットノードに対する影響を考慮し、必要ならばトランシ
ティブリンクを生成する;(tl)前記分配分をデータ
ベース100に書き戻す;(e)次の分配分をデータベ
ース100からプロセッサ200に転送し、この手続き
を繰返す。
データベース100のソートは、当該データベースが巨
大である場合においても困難ではない。例えば、プロセ
ッサ200の一次メモリ内に収まる大きさのパケットに
ハツシュ(細断)シ、続いて各々のパケットをメモリ上
でソートする等の、従来からの技法が適用されうる。ピ
ボットノードがソースノードである場合には、その様な
ソートを行った後には、あるノードから出射する方向の
全てのリンクが一緒にまとめられる。実際、我々がソー
トを行なう目的が、あるノードから出射する方向の全て
のチュープルを一緒にまとめることであるから、同一結
果を生ずるような他の方法も適用されうる。
大である場合においても困難ではない。例えば、プロセ
ッサ200の一次メモリ内に収まる大きさのパケットに
ハツシュ(細断)シ、続いて各々のパケットをメモリ上
でソートする等の、従来からの技法が適用されうる。ピ
ボットノードがソースノードである場合には、その様な
ソートを行った後には、あるノードから出射する方向の
全てのリンクが一緒にまとめられる。実際、我々がソー
トを行なう目的が、あるノードから出射する方向の全て
のチュープルを一緒にまとめることであるから、同一結
果を生ずるような他の方法も適用されうる。
上記の段階(C)に関しては、データベース100への
アクセスが必要とされるが、その手続きは、当該分配分
からエントリを選択し、もう1つのエントリを当該分配
分あるいはデータベースそれ自体から(データベース1
00をアクセスすることによって)選択することである
。選択されたエントリの一方は、当該エントリ対のヘッ
ドと見なされ、他方はテールと見なされる。その決定は
、ヘッドエントリのデスティネーションノードが、テー
ルエントリのソースノードと同一であるか苦力Vに関し
てなされる。そうであるならば、ヘッドエントリのソー
スノードからテールエントリのデスティネーションノー
ドへのチュープルが生成される。
アクセスが必要とされるが、その手続きは、当該分配分
からエントリを選択し、もう1つのエントリを当該分配
分あるいはデータベースそれ自体から(データベース1
00をアクセスすることによって)選択することである
。選択されたエントリの一方は、当該エントリ対のヘッ
ドと見なされ、他方はテールと見なされる。その決定は
、ヘッドエントリのデスティネーションノードが、テー
ルエントリのソースノードと同一であるか苦力Vに関し
てなされる。そうであるならば、ヘッドエントリのソー
スノードからテールエントリのデスティネーションノー
ドへのチュープルが生成される。
エントリが生成された場合には、以下に記述されるよう
に、当該ノード対間に存在する他の1)ンクに対して(
それが存在する場合には)のラベル付けを含んで、全て
のフィールドが埋められる。但し、上述のようなノード
に対する検討を無思慮に行なうような手続きにおいては
、データベース100に対する美大な回数のアクセスが
必要とされる。しかしながら、本発明に係る方法に従え
ば、各々のノード対に関して一度考慮すれば十分である
。 各々のノード対に関して一度考慮すれば、グラフに
関する完全なトランジティブクロージャが生成される、
ということの保証は、以下の2つの拘束条件より理解さ
れる。
に、当該ノード対間に存在する他の1)ンクに対して(
それが存在する場合には)のラベル付けを含んで、全て
のフィールドが埋められる。但し、上述のようなノード
に対する検討を無思慮に行なうような手続きにおいては
、データベース100に対する美大な回数のアクセスが
必要とされる。しかしながら、本発明に係る方法に従え
ば、各々のノード対に関して一度考慮すれば十分である
。 各々のノード対に関して一度考慮すれば、グラフに
関する完全なトランジティブクロージャが生成される、
ということの保証は、以下の2つの拘束条件より理解さ
れる。
拘束条件1:全てのソースノードに対して、デスティネ
ーションノードは段階(C)が適用されるリンク選択に
おけるのと同一の順序で考慮されなければならない。
ーションノードは段階(C)が適用されるリンク選択に
おけるのと同一の順序で考慮されなければならない。
拘束条件2:リンクIJ (ソースノード11デステイ
ネーシヨンノードj)に対して段階(C)が適用される
以前に、段階(C)が既に、ソート類でjより前に現れ
る全てのノードkに対するリンクjkに対して適用され
ていなければならない。
ネーシヨンノードj)に対して段階(C)が適用される
以前に、段階(C)が既に、ソート類でjより前に現れ
る全てのノードkに対するリンクjkに対して適用され
ていなければならない。
我々は、上記の2つの拘束条件を満足する全ての順序が
用いられうろことを見出した:そして、それを例示する
ために、以下に、グラフ中のノード対に対する段階(C
)の適用のための3つの異なった方法を示すことにする
。
用いられうろことを見出した:そして、それを例示する
ために、以下に、グラフ中のノード対に対する段階(C
)の適用のための3つの異なった方法を示すことにする
。
第1の方法(第5図)
[第1段階(ブロック10]
データベース100にプロセッサ200を相互作用させ
てサクセッサリストを生成する。詳細に述べれば、デー
タベース100の各々のノードiに対して、ノードiが
ソースノードであるようなデスティネーションノードを
規定するリストを生成する。
てサクセッサリストを生成する。詳細に述べれば、デー
タベース100の各々のノードiに対して、ノードiが
ソースノードであるようなデスティネーションノードを
規定するリストを生成する。
データベースが最初にストアされるフィールドがソース
ノードフィールドである場合には、この段階は必要では
ない。なぜなら、ソーティング処理によって全てのリン
クが共通のソースノードに対してデータベース中に順次
ストアされているからである。
ノードフィールドである場合には、この段階は必要では
ない。なぜなら、ソーティング処理によって全てのリン
クが共通のソースノードに対してデータベース中に順次
ストアされているからである。
[第2段階(ブロック20)] プロセッサ200に
(ソートされたリスト中で)未だ処理されていない最上
位の分配分を転送する。被転送性配分の大きさは、プロ
セッサ200の一次メモリの大きさ及び共通のソースノ
ードを共有しているリンクの数に依存する。プロセッサ
200が新リンクを生成し、それらの内の幾つかが、現
在分配分に加わることになるので、一般には使用可能な
メモリの内、約50%分程に転送されのみである。この
数値は、以下に述べる相反する2点に留意した上で、必
要な場合には、他の全ての段階においても選択されうる
ニ一方では、初期状態でメモリをあまりにも大息に占を
してはならない:なぜなら、収まりきる以上の数のリン
クが生成されると、その生成されたリンクに対して必要
なストレージ領域を確保するために実質的な計算のオー
バーヘッドが要求されるからである。他方、初期状態で
あまりにも少量のメモリしか占有しないことは避けなけ
ればならない;なぜなら、−分配分を大きくとることに
よって反復回数が減少し、その結果、処理速度が向上す
るからである。
(ソートされたリスト中で)未だ処理されていない最上
位の分配分を転送する。被転送性配分の大きさは、プロ
セッサ200の一次メモリの大きさ及び共通のソースノ
ードを共有しているリンクの数に依存する。プロセッサ
200が新リンクを生成し、それらの内の幾つかが、現
在分配分に加わることになるので、一般には使用可能な
メモリの内、約50%分程に転送されのみである。この
数値は、以下に述べる相反する2点に留意した上で、必
要な場合には、他の全ての段階においても選択されうる
ニ一方では、初期状態でメモリをあまりにも大息に占を
してはならない:なぜなら、収まりきる以上の数のリン
クが生成されると、その生成されたリンクに対して必要
なストレージ領域を確保するために実質的な計算のオー
バーヘッドが要求されるからである。他方、初期状態で
あまりにも少量のメモリしか占有しないことは避けなけ
ればならない;なぜなら、−分配分を大きくとることに
よって反復回数が減少し、その結果、処理速度が向上す
るからである。
[第3段階(ブロック30)]
前記転送した分配分内の各々のノードjに対して、順次
当該付配分内における当該ノードjをデスティネーショ
ンノードとするような全てのリンクを考える。その様な
リンクの各々に対して、当該リンクのソースノードから
ノードjがソースノードであるようなリンクによって連
結されたデスティネーションノードの各々へ向かうリン
クを生成する。
当該付配分内における当該ノードjをデスティネーショ
ンノードとするような全てのリンクを考える。その様な
リンクの各々に対して、当該リンクのソースノードから
ノードjがソースノードであるようなリンクによって連
結されたデスティネーションノードの各々へ向かうリン
クを生成する。
[第4段階(ブロック40)]
データベース100の、現在分配分には含まれない全て
のノードのプロセッサリストを順次リードする。そのよ
うなノードにの各々に対して、それが、現在分配分向の
ソースノードであるようなノードiに向かうようなリン
クのソースノードであるか否かを決定する。そうである
場合には、ノードにとノードiの全てのプロセッサであ
るノードjとの間のリンクを生成する。ちなみに、1J
ンクが生成されると、それはデータベースにストアされ
る。ソートされた状態を維持するために、生成されたリ
ンクのストアは挿入の形でなければならない。このこと
は、従来技術にかかる方法によって実現される;例えば
、挿入ソーティングとして知られている技法によってで
ある。生成された各々のエントリを直ちにストアするの
ではなくて、エントリがある数だけ生成されるまで、あ
るいは当該分配分の処理が完了するまで、ストアを延期
することも可能である。
のノードのプロセッサリストを順次リードする。そのよ
うなノードにの各々に対して、それが、現在分配分向の
ソースノードであるようなノードiに向かうようなリン
クのソースノードであるか否かを決定する。そうである
場合には、ノードにとノードiの全てのプロセッサであ
るノードjとの間のリンクを生成する。ちなみに、1J
ンクが生成されると、それはデータベースにストアされ
る。ソートされた状態を維持するために、生成されたリ
ンクのストアは挿入の形でなければならない。このこと
は、従来技術にかかる方法によって実現される;例えば
、挿入ソーティングとして知られている技法によってで
ある。生成された各々のエントリを直ちにストアするの
ではなくて、エントリがある数だけ生成されるまで、あ
るいは当該分配分の処理が完了するまで、ストアを延期
することも可能である。
[第5段階(ブロック50)]
各々の分配分に対して第3段階及び第4段階を繰り返す
。
。
第6図は、第4段階をより詳細に記述したものである。
第6図に従って、処理が完了していない、すなわちデー
タベース100のノードに全てにわたる考慮が終了して
いない場合には、ブロック41において、制御がブロッ
ク42に移されることによって、処理が続行される。ブ
ロック42では、プロセッサ200内に現時点で存在し
ている分配分内には存在しないノードkに対するプロセ
ッサリストをデータベース100から読み出す。ブロッ
ク43及び44の組み合わせにより、ノードにの全ての
プロセッサノードが考慮される。ブロック45において
は、ノードにの現在考慮中のプロセッサが実際には現時
点でプロセッサ200内に存在している分配分内のノー
ド、例えばノード11であるか否かが決定される;そし
て、そうである場合には、ブロック4Gにおいてノード
kからノードiのプロセッサへの必要なリンクが生成さ
れ及び/あるいは更新される。ノードにの各々のプロセ
ッサが考慮された後には制御はブロック43に戻る;そ
して、kのサクセッサ全てが考慮された後には、ブロッ
ク43からブロック41に制御が復帰する。
タベース100のノードに全てにわたる考慮が終了して
いない場合には、ブロック41において、制御がブロッ
ク42に移されることによって、処理が続行される。ブ
ロック42では、プロセッサ200内に現時点で存在し
ている分配分内には存在しないノードkに対するプロセ
ッサリストをデータベース100から読み出す。ブロッ
ク43及び44の組み合わせにより、ノードにの全ての
プロセッサノードが考慮される。ブロック45において
は、ノードにの現在考慮中のプロセッサが実際には現時
点でプロセッサ200内に存在している分配分内のノー
ド、例えばノード11であるか否かが決定される;そし
て、そうである場合には、ブロック4Gにおいてノード
kからノードiのプロセッサへの必要なリンクが生成さ
れ及び/あるいは更新される。ノードにの各々のプロセ
ッサが考慮された後には制御はブロック43に戻る;そ
して、kのサクセッサ全てが考慮された後には、ブロッ
ク43からブロック41に制御が復帰する。
第2の方法(第7図)
T51の方法に係るデータ処理においては、各々のノー
ドのプロセッサリストがプロセッサ200に読み込まれ
(第4段階)、その時になって初めてリンクが生成され
なければならないか否かが決定される。ここに示す第2
の方法によれば、通例前記ソーティング処理の結果生じ
るプロセッサリストに加えて、各々のノードのプリデセ
ッサを規定する(ソースノード及びデスティネーション
ノードに関する情報のみを保持している)プリデセッサ
リストが生成されて維持される(データベース100内
に、あるいは容量が足るならばプロセッサ200内に)
。このプリデセッサリストは、データベース100をデ
スティネーションノードに関してソートすることによっ
て生成される。当該プリデセッサリストは、リンクが生
成されないようなノードに関するプロセッサリストへの
アクセスの必要性を除き、それによって、データベース
100へのアクセス数を更に低減する。
ドのプロセッサリストがプロセッサ200に読み込まれ
(第4段階)、その時になって初めてリンクが生成され
なければならないか否かが決定される。ここに示す第2
の方法によれば、通例前記ソーティング処理の結果生じ
るプロセッサリストに加えて、各々のノードのプリデセ
ッサを規定する(ソースノード及びデスティネーション
ノードに関する情報のみを保持している)プリデセッサ
リストが生成されて維持される(データベース100内
に、あるいは容量が足るならばプロセッサ200内に)
。このプリデセッサリストは、データベース100をデ
スティネーションノードに関してソートすることによっ
て生成される。当該プリデセッサリストは、リンクが生
成されないようなノードに関するプロセッサリストへの
アクセスの必要性を除き、それによって、データベース
100へのアクセス数を更に低減する。
新たなリンクが生成される場合に、プリデセッサリスト
及びプロセッサリストは、双方共、維持されていなけれ
ばならないことに留意されたい。
及びプロセッサリストは、双方共、維持されていなけれ
ばならないことに留意されたい。
サクセッサリストに関しては、現時点でプロセッサ20
0内に存在する分配分内のあるノードに対するサクセッ
サリストがプリデセッサリスト内のエントリによって指
示された通りに、プロセッサ200内に読み込まれた場
合、生成されたリンクに関するサクセッサリストへの挿
入ソーティングは直ちに実行される;なぜなら、サクセ
ツサリストは、プロセッサ200内に存在するからであ
る。他方、プリデセッサリストは直ちには更新されない
;なぜなら、新たなプリデセッサリストがプロセッサ2
00内のメモリ内に読み込まれなければならないからで
ある。一般に、プリデセツサリストは第4段階の終了時
に更新される。プリデセツサリストの生成及びその更新
は、第6図のブロック15及び55に示されている。第
7図のブロック49には、第5図のブロック40と同一
の字句が記入しであるが、第8図に示すように、第7図
ブロック49の手続きは、ブロック40のそれとは若干
具なるものである。
0内に存在する分配分内のあるノードに対するサクセッ
サリストがプリデセッサリスト内のエントリによって指
示された通りに、プロセッサ200内に読み込まれた場
合、生成されたリンクに関するサクセッサリストへの挿
入ソーティングは直ちに実行される;なぜなら、サクセ
ツサリストは、プロセッサ200内に存在するからであ
る。他方、プリデセッサリストは直ちには更新されない
;なぜなら、新たなプリデセッサリストがプロセッサ2
00内のメモリ内に読み込まれなければならないからで
ある。一般に、プリデセツサリストは第4段階の終了時
に更新される。プリデセツサリストの生成及びその更新
は、第6図のブロック15及び55に示されている。第
7図のブロック49には、第5図のブロック40と同一
の字句が記入しであるが、第8図に示すように、第7図
ブロック49の手続きは、ブロック40のそれとは若干
具なるものである。
第8図においては、ブロック41に引続いて決定ブロッ
ク47がおかれ、そこにおいてプリデセッサリストが用
いられる。ノードkが、現時点でプロセッサ内に存在す
る分配内のあるノードのサクセッサリストに属している
場合のみ、制御がブロック42に移る。
ク47がおかれ、そこにおいてプリデセッサリストが用
いられる。ノードkが、現時点でプロセッサ内に存在す
る分配内のあるノードのサクセッサリストに属している
場合のみ、制御がブロック42に移る。
第3の方法(第9図)
第1の方法及び第2の方法は、ソースノードをピボット
ノードと考え、分配分内の各々のリンクに対して、考慮
中のソースノードをデスティネーションノードとして有
するような他のリンクがデータベース内に存在するか否
かということを問題にしてきた。ここに示す第3の方法
では、デスティネーションノードをピボットノードと考
え、考慮中のデスティネーションノードをソースノード
として有するようなリンクをデータベース中で検索する
。
ノードと考え、分配分内の各々のリンクに対して、考慮
中のソースノードをデスティネーションノードとして有
するような他のリンクがデータベース内に存在するか否
かということを問題にしてきた。ここに示す第3の方法
では、デスティネーションノードをピボットノードと考
え、考慮中のデスティネーションノードをソースノード
として有するようなリンクをデータベース中で検索する
。
この第3の方法においては、第1の方法の第3段階から
第5段階までが以下に示すステップによって置換される
。
第5段階までが以下に示すステップによって置換される
。
[第3段階(ブロック70及び第10図)]以前に処理
した分配分に属する各々のノードjに対して、現時点で
プロセッサ200内に存在する分配分内に、あるノード
lからノードjへのリンクが存在する場合には、ノード
jのサクセツサリストを読み込み、ノードiとノードj
のサクセツサリスト内のデスティネーションノードとの
間の全てのリンクを生成する。この段階は、当該分配分
内の1つのエントリのデスティネーションノードを、当
該分配分内の他のエントリが同一デスティネーションノ
ードを有しているか否か観察することによって増強され
る。
した分配分に属する各々のノードjに対して、現時点で
プロセッサ200内に存在する分配分内に、あるノード
lからノードjへのリンクが存在する場合には、ノード
jのサクセツサリストを読み込み、ノードiとノードj
のサクセツサリスト内のデスティネーションノードとの
間の全てのリンクを生成する。この段階は、当該分配分
内の1つのエントリのデスティネーションノードを、当
該分配分内の他のエントリが同一デスティネーションノ
ードを有しているか否か観察することによって増強され
る。
[第4段階(ブロック30)]
ノードjが現時点でプロセッサ200内に存在する分配
分に属している場合には、考慮中のリンクのソースノー
ドから、ノードjがソースノードであるリンクのデステ
ィネーションノードの各々へのリンクを生成する。
分に属している場合には、考慮中のリンクのソースノー
ドから、ノードjがソースノードであるリンクのデステ
ィネーションノードの各々へのリンクを生成する。
[第5段階(ブロック2O−80−50) ]全ての分
配分が一度処理された後、当該処理が繰返され、第1パ
ス(の第3段階及び第4段階)で考慮される対象となら
なかった全てのノードjについての考慮がなされる。こ
こで、サクセッサリストの大きさが変化したために、一
般には、第2パスにおける分配分と第1パスにおける分
配分とが異なることに留意されたい。
配分が一度処理された後、当該処理が繰返され、第1パ
ス(の第3段階及び第4段階)で考慮される対象となら
なかった全てのノードjについての考慮がなされる。こ
こで、サクセッサリストの大きさが変化したために、一
般には、第2パスにおける分配分と第1パスにおける分
配分とが異なることに留意されたい。
第1の方法及び第2の方法においては、分配分によって
メモリの50%が占有されることが合理的であったが、
第3の方法においては、プロセッサ200内に存在する
分配分のみが拡張されていくので、それより小さな数値
が恐らくより適切であることにも留意されたい。
メモリの50%が占有されることが合理的であったが、
第3の方法においては、プロセッサ200内に存在する
分配分のみが拡張されていくので、それより小さな数値
が恐らくより適切であることにも留意されたい。
上述した3つの方法の全てにおいて、基本となるポイン
トは、与えられたデータベースが分配され、かつ、処理
がプロセッサ内に存在しない分配分内のチュープルに対
する参照を住かに押さえて実行される点である。処理が
進行するにつれて新たなリンクが見出だされ、プロセッ
サ内に存在する分配分の大きさが大きくなっていくこと
が期待される。既に述べたように、ある場合には分配分
が大きくなり過ぎてメモリ内に収まらなくなる。
トは、与えられたデータベースが分配され、かつ、処理
がプロセッサ内に存在しない分配分内のチュープルに対
する参照を住かに押さえて実行される点である。処理が
進行するにつれて新たなリンクが見出だされ、プロセッ
サ内に存在する分配分の大きさが大きくなっていくこと
が期待される。既に述べたように、ある場合には分配分
が大きくなり過ぎてメモリ内に収まらなくなる。
その様な場合には、メモリ内に存在する分配分のプロセ
ッサリストの最後のものを削除して、次の分配分に含ま
せるようにする。
ッサリストの最後のものを削除して、次の分配分に含ま
せるようにする。
プロセッサ200のメインメモリが一杯になってしまう
ことは、本発明に係る方法においては、同等破局を引き
起こすことはないが、メインメモリから削除されなけれ
ばならなかったプロセッサリストは、メモリ上の分配分
と共に読み込まれたが無駄になってしまった、というこ
とを意味していることは明らかである。そのような読み
込合におけるロスを最小にするために、新たに読み込ま
れる分配分の大きさは、メモリの一部のみを占め、それ
が大きくなることを許容できるものでなければならない
。
ことは、本発明に係る方法においては、同等破局を引き
起こすことはないが、メインメモリから削除されなけれ
ばならなかったプロセッサリストは、メモリ上の分配分
と共に読み込まれたが無駄になってしまった、というこ
とを意味していることは明らかである。そのような読み
込合におけるロスを最小にするために、新たに読み込ま
れる分配分の大きさは、メモリの一部のみを占め、それ
が大きくなることを許容できるものでなければならない
。
′T51図のデータベースについて考える。トランジテ
ィブクロージャを生成するために第1の方法を適用し、
最初の2つのチュープルのみが第1分配分を成している
とする。第3段階による修正は、生じない。残存してい
るチュープルの各々が読み出され、メモリ上の分配分に
は含まれず、“キャパシダをそのデスティネーションと
するようなチュープルが存在しないか否かが決定される
。そして第4段階による修正は生じない。続いて次の分
配分、すなわち次の3つのチュープルからなる分配分が
読み込まれる。“マイクロプロセッサ”から“コントロ
ーラ°へのリンク及び“コントローラ1から“ワークス
テーション”へのリンクが存在するが、共にメモリ上の
分配分内に存在するので、新たなリンク、“マイクロプ
ロセッサ“→“ワークステーション”、が生成される。
ィブクロージャを生成するために第1の方法を適用し、
最初の2つのチュープルのみが第1分配分を成している
とする。第3段階による修正は、生じない。残存してい
るチュープルの各々が読み出され、メモリ上の分配分に
は含まれず、“キャパシダをそのデスティネーションと
するようなチュープルが存在しないか否かが決定される
。そして第4段階による修正は生じない。続いて次の分
配分、すなわち次の3つのチュープルからなる分配分が
読み込まれる。“マイクロプロセッサ”から“コントロ
ーラ°へのリンク及び“コントローラ1から“ワークス
テーション”へのリンクが存在するが、共にメモリ上の
分配分内に存在するので、新たなリンク、“マイクロプ
ロセッサ“→“ワークステーション”、が生成される。
“マイクロプロセッサ”及び“コントローラ0の双方が
、“インフォメーションステム2へのリンクを有する“
ワークステーション”へのリンクを持つため、これら双
方のノードから“インフォメーションシステム″へのリ
ンクが生成される。第4段階に進み、“キャパシタ0か
ら“コントローラ”へのリンクが見出されるので、“キ
ャパシタ”から“コントローラ”のプロセッサの各々へ
のリンクが生成される。このようにして処理を続行する
ことによって、第4図に示されているような、トランジ
ティブクロージャ完成データベースが得られる。
、“インフォメーションステム2へのリンクを有する“
ワークステーション”へのリンクを持つため、これら双
方のノードから“インフォメーションシステム″へのリ
ンクが生成される。第4段階に進み、“キャパシタ0か
ら“コントローラ”へのリンクが見出されるので、“キ
ャパシタ”から“コントローラ”のプロセッサの各々へ
のリンクが生成される。このようにして処理を続行する
ことによって、第4図に示されているような、トランジ
ティブクロージャ完成データベースが得られる。
第2の方法は、本質的に同一の様式で作用する。
留意すべき主要な点は、第1分配分が一部メモリにある
場合には、他の分配分内にあるチュープルは一部メモリ
上に読み込まれる必要がない、という点である。なぜな
ら、“キャパシタ“のプリデセッサリストより直ちに“
キャパシダをデスティネーションノードとするようなチ
ュープルが存在しないことが理解されるからである。
場合には、他の分配分内にあるチュープルは一部メモリ
上に読み込まれる必要がない、という点である。なぜな
ら、“キャパシタ“のプリデセッサリストより直ちに“
キャパシダをデスティネーションノードとするようなチ
ュープルが存在しないことが理解されるからである。
第3の方法は、第1分配分に対しては、第1の方法と同
様に作用する。第2分配分がメモリ上にある場合には、
既に、処理した分配分内のリンクのみが“キャパシダを
ソースノードとして有し、一方で”キャパシタ゛はメモ
リ上にある分配分のどのリンクのデスティネーションノ
ードでもないので、第3段階においてはデータベースの
修正は生じない。第4段階は第1の方法の第3段階と同
一である。最後の第3分配分は第1図のデータベースの
最後の2つのチュープルを有している。第3段階を適用
することによって、既に処理したソースノード“ワーク
ステーション1を有するチュープルが見出される。この
チュープルのデスティネーション“インフォメーション
システム”は、“デイスプレィ”をソースノードとする
新たなチュープルのデスティネーションであり、それは
メモリ上の分配分内の“ワークステーション”をデステ
ィネーションノードとして有するチュープルのソースノ
ードである。第4段階を適用することによって、“デイ
スプレィ2のプロセッサが“グラフィックス”のプロセ
ッサとされる。このことによって第1パスは完了する。
様に作用する。第2分配分がメモリ上にある場合には、
既に、処理した分配分内のリンクのみが“キャパシダを
ソースノードとして有し、一方で”キャパシタ゛はメモ
リ上にある分配分のどのリンクのデスティネーションノ
ードでもないので、第3段階においてはデータベースの
修正は生じない。第4段階は第1の方法の第3段階と同
一である。最後の第3分配分は第1図のデータベースの
最後の2つのチュープルを有している。第3段階を適用
することによって、既に処理したソースノード“ワーク
ステーション1を有するチュープルが見出される。この
チュープルのデスティネーション“インフォメーション
システム”は、“デイスプレィ”をソースノードとする
新たなチュープルのデスティネーションであり、それは
メモリ上の分配分内の“ワークステーション”をデステ
ィネーションノードとして有するチュープルのソースノ
ードである。第4段階を適用することによって、“デイ
スプレィ2のプロセッサが“グラフィックス”のプロセ
ッサとされる。このことによって第1パスは完了する。
第2パスでは、第1分配分がメインメモリに読み込まれ
て、今度は“コントローラ”及び“グラフィックス”の
サクセッサ全てが“キャパシタ2のプロセッサとされる
。第2及び第3分配分には変更がなされない。以上より
、第4図に示すトランジティブクロージャ完成データベ
ースが得られる。
て、今度は“コントローラ”及び“グラフィックス”の
サクセッサ全てが“キャパシタ2のプロセッサとされる
。第2及び第3分配分には変更がなされない。以上より
、第4図に示すトランジティブクロージャ完成データベ
ースが得られる。
[ラベル処理コ
既に述べたように、データベースの各々のチュープルは
幾つかのフィールドより成り立っている。
幾つかのフィールドより成り立っている。
上述の議論は、主として、データベースのグラフによる
表示においてソースノード及びデスティネーションノー
ドとなる2つの単一あるいは複合フィールドに関するも
のである。ソースノード及びデスティネーションノード
に加えて、各々のチュープルには他のフィールドがあり
、それらは3つのグループに分類されうる;ソースノー
ドのみに関するフィールド、デスティネーションのみに
関するフィールド、及びソースノードとデスティネーシ
ョンノードとの間の関係を特徴付けるフィールドある。
表示においてソースノード及びデスティネーションノー
ドとなる2つの単一あるいは複合フィールドに関するも
のである。ソースノード及びデスティネーションノード
に加えて、各々のチュープルには他のフィールドがあり
、それらは3つのグループに分類されうる;ソースノー
ドのみに関するフィールド、デスティネーションのみに
関するフィールド、及びソースノードとデスティネーシ
ョンノードとの間の関係を特徴付けるフィールドある。
例えば、第1及び第2フイールドがそれぞれ2つの都市
を規定し、第3及び第4フイールドがそれぞれ、各々の
都市の空港の大きさを規定し、2都市間の距離が第5フ
イールドのフィールド値であるようなデータベースにお
いては、各フィールドが属するカテゴリーは明らかであ
る。
を規定し、第3及び第4フイールドがそれぞれ、各々の
都市の空港の大きさを規定し、2都市間の距離が第5フ
イールドのフィールド値であるようなデータベースにお
いては、各フィールドが属するカテゴリーは明らかであ
る。
トランジティブクロージャの作成に伴って生成されたチ
ュープルのソース及びデスティネーションノード以外の
フィールドの処理に関して問題が生じる。
ュープルのソース及びデスティネーションノード以外の
フィールドの処理に関して問題が生じる。
本発明に従うと、新たなチュープルが生成された場合、
当該新チュープルのソースノードを生成したノードに関
するフィールドが、当該ソースノードに関するフィール
ドに複写される。デスティネーションノードに関するフ
ィールドについても同様である。ソース及びデスティネ
ーション間の関係を特徴付けるフィールドは、多くの相
異なる方法によって導出されうる。一般に、そのような
フィールドは、新たなリンクの生成に関与したリンクに
対応した、チュープルについてのある特定の関数として
記述されうる。同一のソース及びデスティネーションノ
ード間に多重経路(すなわち、一連の連結されたリンク
よりなる経路)が見出された場合には、それぞれの関係
フィールドに適切な値を有する多重経路が同一ソース−
デスティネーション対間に生成される、あるいは、単一
のリンクのみが生成されて、各々のパスに対して導かれ
たフィールドの値のある関数として、関係フィールドの
フィールド値が独立に得られる。例えば、前述の都市の
例においては、各々の経路に対する距離のフィールドが
、最も論理的に、各々のその経路を構成しているリンク
の距離フィールドの総和として計算される。ある場合に
は、最終的に生じるリレーションにおいて可能な経路及
び距離の全てを保持しておく必要が生ずる。しかしなが
ら、より一般的には、可能な経路の各々に関するフィー
ルド値の中から距離フィールドのフィールド値を選択す
る“最小″関数を用いて、各々の都市対に対して単一の
チュープルを保持しておくことが必要となる。
当該新チュープルのソースノードを生成したノードに関
するフィールドが、当該ソースノードに関するフィール
ドに複写される。デスティネーションノードに関するフ
ィールドについても同様である。ソース及びデスティネ
ーション間の関係を特徴付けるフィールドは、多くの相
異なる方法によって導出されうる。一般に、そのような
フィールドは、新たなリンクの生成に関与したリンクに
対応した、チュープルについてのある特定の関数として
記述されうる。同一のソース及びデスティネーションノ
ード間に多重経路(すなわち、一連の連結されたリンク
よりなる経路)が見出された場合には、それぞれの関係
フィールドに適切な値を有する多重経路が同一ソース−
デスティネーション対間に生成される、あるいは、単一
のリンクのみが生成されて、各々のパスに対して導かれ
たフィールドの値のある関数として、関係フィールドの
フィールド値が独立に得られる。例えば、前述の都市の
例においては、各々の経路に対する距離のフィールドが
、最も論理的に、各々のその経路を構成しているリンク
の距離フィールドの総和として計算される。ある場合に
は、最終的に生じるリレーションにおいて可能な経路及
び距離の全てを保持しておく必要が生ずる。しかしなが
ら、より一般的には、可能な経路の各々に関するフィー
ルド値の中から距離フィールドのフィールド値を選択す
る“最小″関数を用いて、各々の都市対に対して単一の
チュープルを保持しておくことが必要となる。
[データベース圧縮]
今までに述べたことより、トランジティブクロージャ完
成データベースは、元のデータベースよりも大きく、し
ばしば非常に大きい、ということが容易に認識される。
成データベースは、元のデータベースよりも大きく、し
ばしば非常に大きい、ということが容易に認識される。
その大きさがより大きくなるにもかかわらず、それは当
該リレーションについての全ての情報を含んでいる訳で
はない。例えば、元のデータベースにおいて2つのノー
ド間に経路が存在することを示すために、当該ノード間
にリンクが生成される;ところが、トランジティブクロ
ージャ完成データベースは当該経路を特定しない。他方
、そのような経路が存在するか否かのみに興味がある場
合がしばしばあり、実際その経路に係るラベル(例えば
費用)には、それほど興味がない場合がある。しかしな
がら、全ての場合において、トランジティブクロージャ
が適用されるシステムのニーズがあると、生成されるデ
ータベースを可能な限り圧縮することには利点がある。
該リレーションについての全ての情報を含んでいる訳で
はない。例えば、元のデータベースにおいて2つのノー
ド間に経路が存在することを示すために、当該ノード間
にリンクが生成される;ところが、トランジティブクロ
ージャ完成データベースは当該経路を特定しない。他方
、そのような経路が存在するか否かのみに興味がある場
合がしばしばあり、実際その経路に係るラベル(例えば
費用)には、それほど興味がない場合がある。しかしな
がら、全ての場合において、トランジティブクロージャ
が適用されるシステムのニーズがあると、生成されるデ
ータベースを可能な限り圧縮することには利点がある。
主要な要求が2つのノード間の経路が存在することを知
る、という応用例においては、本発明に係る圧縮技法に
よって元のデータベースよりもしばしば小さいデータベ
ースが得られる。当該方法は、3つの段階から成り立っ
ている。第1段階においては、データベースを表現して
いるグラフが最小限のチェーンに分割される。ここでチ
ェーンとは、あるソースノードから他のソースノードへ
の経路である。この目的を達成するにあたって、あるノ
ードが2本以上のチェーンに属することは許されている
。第2段階においては、チェーン上のノードが、そのチ
ェーンにおける出現順に従って、番号が付けられる。最
後の第3段階においては、各々のソースノードが、当該
ソースノードから達する全てのチェーンのデスティネー
ションノードの内の最小の番号を持つもののみと関係付
けられる。
る、という応用例においては、本発明に係る圧縮技法に
よって元のデータベースよりもしばしば小さいデータベ
ースが得られる。当該方法は、3つの段階から成り立っ
ている。第1段階においては、データベースを表現して
いるグラフが最小限のチェーンに分割される。ここでチ
ェーンとは、あるソースノードから他のソースノードへ
の経路である。この目的を達成するにあたって、あるノ
ードが2本以上のチェーンに属することは許されている
。第2段階においては、チェーン上のノードが、そのチ
ェーンにおける出現順に従って、番号が付けられる。最
後の第3段階においては、各々のソースノードが、当該
ソースノードから達する全てのチェーンのデスティネー
ションノードの内の最小の番号を持つもののみと関係付
けられる。
ソースノードに関するリンクの内の住かの部分のみがス
トアされる必要がある、ということから、圧縮が実現さ
れる。
トアされる必要がある、ということから、圧縮が実現さ
れる。
一度、圧縮した形のストレーシスドラクチャが生成され
ると、ある与えられたノードAが他の与えられたノード
Bへのリンクを当該トランジティブクロージャにおいて
有するか否かが、ノードAが、あるチェーン上でノード
Bより、その位置番号によって決定されるように、先に
現れるあるノードCに対するリンクを有するか否かをチ
エツクすることによって、決定されるようになる。
ると、ある与えられたノードAが他の与えられたノード
Bへのリンクを当該トランジティブクロージャにおいて
有するか否かが、ノードAが、あるチェーン上でノード
Bより、その位置番号によって決定されるように、先に
現れるあるノードCに対するリンクを有するか否かをチ
エツクすることによって、決定されるようになる。
例えば、第2図のグラフ(あるいは第3図のグラフ)を
用いて、各々のノードが少なくとも一方の上にあるよう
な2本のチェーンを生成することができる。第1チエー
ンは1マイクロプロセッサ−コントローラーワークステ
ーション−インフォメーションシステム“、第2チエー
ンは“キャパシターグラフィックス−デイスプレィ”と
いうようになるであろう。ここで“キャパシタ1ノード
について考慮する。第3図において、当該ノードから出
射する5つのリンクの内、1つのみが明白にストアされ
る必要がある二 ″コントローラ”ノードへのリンクで
ある。キャパシタがデイスプレィの製造に用いられてい
るか否か、すなわち第3図において“キャパシタ“ノー
ドから“デイスプレィ”ノードへのリンクが存在するか
否かが検索された場合には、肯定的な応答がなされる。
用いて、各々のノードが少なくとも一方の上にあるよう
な2本のチェーンを生成することができる。第1チエー
ンは1マイクロプロセッサ−コントローラーワークステ
ーション−インフォメーションシステム“、第2チエー
ンは“キャパシターグラフィックス−デイスプレィ”と
いうようになるであろう。ここで“キャパシタ1ノード
について考慮する。第3図において、当該ノードから出
射する5つのリンクの内、1つのみが明白にストアされ
る必要がある二 ″コントローラ”ノードへのリンクで
ある。キャパシタがデイスプレィの製造に用いられてい
るか否か、すなわち第3図において“キャパシタ“ノー
ドから“デイスプレィ”ノードへのリンクが存在するか
否かが検索された場合には、肯定的な応答がなされる。
なぜなら“デイスプレィ”は第2チエーンの“キャパシ
タ”の後に現れるからである。と同様に、キャパシタが
ワークステーションの製造に用いられているか否かが検
索された場合には、肯定的な応答がなされる。なぜなら
、第1チエーンにおいて“ワークステーション1ノード
より前に現れる。
タ”の後に現れるからである。と同様に、キャパシタが
ワークステーションの製造に用いられているか否かが検
索された場合には、肯定的な応答がなされる。なぜなら
、第1チエーンにおいて“ワークステーション1ノード
より前に現れる。
“コントローラ1ノードへの“キャパシタ1ノードから
のリンクが存在するからである。しかしながら、キャパ
シタがマイクロプロセッサの製造に用いられるか否か問
われた場合には、否定的な応答がなされる。なぜなら、
“キャパシタ1ノードから、“マイクロプロセッサ“ノ
ードあるいはチェーン上で“マイクロプロセッサ1より
前に現れるノードへのリンクが存在しないからである。
のリンクが存在するからである。しかしながら、キャパ
シタがマイクロプロセッサの製造に用いられるか否か問
われた場合には、否定的な応答がなされる。なぜなら、
“キャパシタ1ノードから、“マイクロプロセッサ“ノ
ードあるいはチェーン上で“マイクロプロセッサ1より
前に現れるノードへのリンクが存在しないからである。
上述の例では、あるノードから他のあるノードへのリン
クが存在するか否かを決定することが可能であったが、
そのようなリンクにどんなラベルがついているかを言う
ことができなかった。言い換えれば、キャパシタが実際
にワークステーションの製造に要求されていることは確
認されたが、各々のワークステーションの製造にいくつ
用いられるのかを決めることができなかった。
クが存在するか否かを決定することが可能であったが、
そのようなリンクにどんなラベルがついているかを言う
ことができなかった。言い換えれば、キャパシタが実際
にワークステーションの製造に要求されていることは確
認されたが、各々のワークステーションの製造にいくつ
用いられるのかを決めることができなかった。
到達情報のみではなく、経路及びそのラベルも重要とな
る応用例においては、異なった圧縮技法が用いられる。
る応用例においては、異なった圧縮技法が用いられる。
本発明に係る方法によれば、各々のソースノードに対し
である表が関係付けられるる。その表の各々のエントリ
は3つの領域から成り立っている:(1)デスティネー
ションノード、(2)ソースノードからこのデスティネ
ーションノードへの経路上で第1跳躍点として用いられ
るべきノード、及び(3)この経路のラベル。あるソー
スノードとあるデスティネーションノードとの間に多重
経路が存在し、全ての経路が同−第1跳躍点を経由する
場合には、前述の表には唯一つのエントリしかないこと
になる。他方、あるソースノードとあるデスティネーシ
ョンノードとの間に多重経路が存在して、その各々が相
異なる第1跳躍点を経由するならば、経路数と同じ数の
エントリが表に存在する。
である表が関係付けられるる。その表の各々のエントリ
は3つの領域から成り立っている:(1)デスティネー
ションノード、(2)ソースノードからこのデスティネ
ーションノードへの経路上で第1跳躍点として用いられ
るべきノード、及び(3)この経路のラベル。あるソー
スノードとあるデスティネーションノードとの間に多重
経路が存在し、全ての経路が同−第1跳躍点を経由する
場合には、前述の表には唯一つのエントリしかないこと
になる。他方、あるソースノードとあるデスティネーシ
ョンノードとの間に多重経路が存在して、その各々が相
異なる第1跳躍点を経由するならば、経路数と同じ数の
エントリが表に存在する。
ここに示したストラフチャは、ソースノードに関する表
においてデスティネーションノードの内チェーンにおい
て最も前に置かれているエントリのみをソーティングす
ることによって更に(前述の3段階からなる方法に従っ
て)圧縮される。それゆえ、同一チェーン上に2つのデ
スティネーションが置かれていて一方が他方よりも前で
あるならば、先に表われるノードに対するエントリのみ
が表に存在することになる。
においてデスティネーションノードの内チェーンにおい
て最も前に置かれているエントリのみをソーティングす
ることによって更に(前述の3段階からなる方法に従っ
て)圧縮される。それゆえ、同一チェーン上に2つのデ
スティネーションが置かれていて一方が他方よりも前で
あるならば、先に表われるノードに対するエントリのみ
が表に存在することになる。
[システムの応用コ
本発明に係るトランジティブクロージャ作成法及びその
装置には、輸送業、遠距離通信産業、建設業、生産コン
トロール、あるいはエキスパートシステム等の無数の応
用例が考えられる。例えば、航空産業においては、種々
の都市間直行便の基本的なデータベースが維持されてい
る。そこにトランジティブクロージャオペレータを作用
させることによって、データベースにおける全ての、そ
の間に直行便を有するあるいは有しない、2都市間の経
路情報が得られる。遠距離通信産業においては、地点間
の直結基幹中継線の信頼性及びその容量についてのデー
タベースが存在する。そのようなデータベースにトラン
ジティブクロージャオペレータを作用させることによっ
て、2つの交換センター間の最も信頼できる中継線及び
当該交換センタの総容量を決定することができる。建設
業においては、アクティビティに関するデータベースが
用いられ、それにトランジティブクロージャオペレータ
を作用させることによって、クリティカルパスを決定す
ることができる。(PERTチャートの方法で)。例え
ば、自動車のような複雑なシステムの製造に関する部品
の管理においては、トランジティブクロージャを生成す
ることによって、ある部品を組み立て、製品に適切な費
用を付けるのに必要な材料及び情報に関するリストが得
られる。エキスパートシステムのインプリメントに関連
して、エキスパートシステムにおいては、エントリ間の
関係を表現するために、しばしば、インへりタンスヒエ
ラルキーが用いられていることに留意されたい。例えば
、あるエキスパートシステムにおいては、あるエントリ
が“弁理士は人間である”ということを述べ、他のエン
トリが“人間は呼吸する”ということを述べているかも
知れない。ここにトランジティブクロージャオペレータ
を作用することによって、“弁理士は呼吸する′という
叙述が生成される。
装置には、輸送業、遠距離通信産業、建設業、生産コン
トロール、あるいはエキスパートシステム等の無数の応
用例が考えられる。例えば、航空産業においては、種々
の都市間直行便の基本的なデータベースが維持されてい
る。そこにトランジティブクロージャオペレータを作用
させることによって、データベースにおける全ての、そ
の間に直行便を有するあるいは有しない、2都市間の経
路情報が得られる。遠距離通信産業においては、地点間
の直結基幹中継線の信頼性及びその容量についてのデー
タベースが存在する。そのようなデータベースにトラン
ジティブクロージャオペレータを作用させることによっ
て、2つの交換センター間の最も信頼できる中継線及び
当該交換センタの総容量を決定することができる。建設
業においては、アクティビティに関するデータベースが
用いられ、それにトランジティブクロージャオペレータ
を作用させることによって、クリティカルパスを決定す
ることができる。(PERTチャートの方法で)。例え
ば、自動車のような複雑なシステムの製造に関する部品
の管理においては、トランジティブクロージャを生成す
ることによって、ある部品を組み立て、製品に適切な費
用を付けるのに必要な材料及び情報に関するリストが得
られる。エキスパートシステムのインプリメントに関連
して、エキスパートシステムにおいては、エントリ間の
関係を表現するために、しばしば、インへりタンスヒエ
ラルキーが用いられていることに留意されたい。例えば
、あるエキスパートシステムにおいては、あるエントリ
が“弁理士は人間である”ということを述べ、他のエン
トリが“人間は呼吸する”ということを述べているかも
知れない。ここにトランジティブクロージャオペレータ
を作用することによって、“弁理士は呼吸する′という
叙述が生成される。
第11図は、本発明の原理に係るシステムの構成を示し
たものである。第11図においては、航空機の予約シス
テム等の分散型のデータアクセスシステムが示されてい
るが、本発明に係るシステムは、他の多くの応用例にお
いて用いられるものである。
たものである。第11図においては、航空機の予約シス
テム等の分散型のデータアクセスシステムが示されてい
るが、本発明に係るシステムは、他の多くの応用例にお
いて用いられるものである。
第11図においては、データベース管理システム300
に接続された、複数の検索用ターミナル400が存在し
、これらはデータベース管理システム300に接続され
ている。。航空機予約システムにおいては、ターミナル
400は、航空会社のカウンターあるいは旅行社の予約
係のためのアクセスポイントである。ターミナル400
から検索は時々、データベースの2つのフィールド上の
トランジティブクロージャを必要とする情報が必要とな
る。、データベース管理システム300はデータベース
100とコミュニケートし、データベース100トラン
ジテイブクロージヤ生成器200とコミュニケートする
。トランジティブクロージャ生成器200には、ターミ
ナル500が接続されている。ターミナル500は航空
機予約操作制御センターにあり、データベース100に
おける基本的情報に影響を及ぼす情報を与える。この情
報は、都市から都市への便の基本的変更、天候その他に
よるキャンセル便に関する変更、あるいはある便に関す
る過剰予約等のより一時的な情報である。言い換えれば
、ターミナル500はトランジティブクロージャ生成器
300に対してデータベース100内の基本的データベ
ース情報のトランジティブクロージャ完成データベース
への変換を開始させる能力を有する。
に接続された、複数の検索用ターミナル400が存在し
、これらはデータベース管理システム300に接続され
ている。。航空機予約システムにおいては、ターミナル
400は、航空会社のカウンターあるいは旅行社の予約
係のためのアクセスポイントである。ターミナル400
から検索は時々、データベースの2つのフィールド上の
トランジティブクロージャを必要とする情報が必要とな
る。、データベース管理システム300はデータベース
100とコミュニケートし、データベース100トラン
ジテイブクロージヤ生成器200とコミュニケートする
。トランジティブクロージャ生成器200には、ターミ
ナル500が接続されている。ターミナル500は航空
機予約操作制御センターにあり、データベース100に
おける基本的情報に影響を及ぼす情報を与える。この情
報は、都市から都市への便の基本的変更、天候その他に
よるキャンセル便に関する変更、あるいはある便に関す
る過剰予約等のより一時的な情報である。言い換えれば
、ターミナル500はトランジティブクロージャ生成器
300に対してデータベース100内の基本的データベ
ース情報のトランジティブクロージャ完成データベース
への変換を開始させる能力を有する。
データベース管理システム300は、ユーザの要求を満
足するものであればどのようなデータベース管理システ
ムであっても構わない。従来技術において知られている
管理システムは数多くあるので、ここでは、データベー
ス管理の複雑さについて探求しない。トランジティブク
ロージャ生成器200に関しては、既に述べた第5−1
0図に示した流れ図における記述より、生成器200に
必要とされる機能は、従来のデジタルコンピュータによ
って効率的に実現されることが理解される。第11図の
システムにおいては、オフィシャル・エアーライン・ガ
イド(北アメリカ版)のトランジティブクロージャの生
成が、従来のデジタルコンピュータを用いて、実質的に
1時間以内になされることが期待される。より速い処理
速度が必要な場合には、生成器200は、第11図に示
すように、特定機能志向のハードウェアによって容易に
実現される。
足するものであればどのようなデータベース管理システ
ムであっても構わない。従来技術において知られている
管理システムは数多くあるので、ここでは、データベー
ス管理の複雑さについて探求しない。トランジティブク
ロージャ生成器200に関しては、既に述べた第5−1
0図に示した流れ図における記述より、生成器200に
必要とされる機能は、従来のデジタルコンピュータによ
って効率的に実現されることが理解される。第11図の
システムにおいては、オフィシャル・エアーライン・ガ
イド(北アメリカ版)のトランジティブクロージャの生
成が、従来のデジタルコンピュータを用いて、実質的に
1時間以内になされることが期待される。より速い処理
速度が必要な場合には、生成器200は、第11図に示
すように、特定機能志向のハードウェアによって容易に
実現される。
特定機能ハードウェアによるトランジティブクロージャ
生成器200の実現に関して、ブロック210はデータ
ベース100とコミュニケートし、その唯一の機能はデ
ータをソートすることである。
生成器200の実現に関して、ブロック210はデータ
ベース100とコミュニケートし、その唯一の機能はデ
ータをソートすることである。
ソーティングは、2組のレジスタ、1つのコンパレータ
、ある大きさのメモリ及び制御回路を用いて従来技術に
係る方法によってなされる。
、ある大きさのメモリ及び制御回路を用いて従来技術に
係る方法によってなされる。
生成器200には、処理中の各々の分配分がストアされ
るメモリ220、メモリ220にストアされたデータに
対応するチュープル分析生成装置230及び制御信号生
成ブロック240が含まれる。装置230のチュープル
分析部は、最も望ましいのは、ストアされたプログラム
によって制御されるデバイス、例えばマイクロプロセッ
サ、であり、−刃装置230のチュープル生成部は、組
み合わせ回路である。
るメモリ220、メモリ220にストアされたデータに
対応するチュープル分析生成装置230及び制御信号生
成ブロック240が含まれる。装置230のチュープル
分析部は、最も望ましいのは、ストアされたプログラム
によって制御されるデバイス、例えばマイクロプロセッ
サ、であり、−刃装置230のチュープル生成部は、組
み合わせ回路である。
以上の記述及び本発明の原理に係る3つの方法更にはそ
れを行なうための装置は、模式的なものであって、本発
明の原理を開示し、当業者に本発明を利用させることを
意図したものである。″ソースノード“と“デスティネ
ーションノード”の意味を逆転させる等の変更がなされ
うるが、それらは全て本発明の精神及びその範鴫に含ま
れるものである。
れを行なうための装置は、模式的なものであって、本発
明の原理を開示し、当業者に本発明を利用させることを
意図したものである。″ソースノード“と“デスティネ
ーションノード”の意味を逆転させる等の変更がなされ
うるが、それらは全て本発明の精神及びその範鴫に含ま
れるものである。
第1図は、デーベースを模式的に示した図;第2図は、
第1図のデータベースをグラフ表示した図; 第3図は、第2図のグラフのトランジティブクロージャ
を示した図; 第4図は、第3図のグラフに対応するデータベースを示
した図; 第5図は、本発明の原理に係る1つの方法を示した図; 第6図は、第5図においてブロック40で表わした部分
の詳細を示した流れ図; 第7図は、本発明の原理に係る第3の方法を示した図; 第8図は、第7図においてブロック49で表わした部分
の詳細を示した流れ図; 第9図は、本発明の原理に係る第3の方法を示した流れ
図: 第1O図は、第9図においてブロック70で表わした部
分の詳細を示した流れ図;及び 第11図は、本発明に係るトランジティブクロージャ生
成器を含むデータベースシステムの実行例を示した図で
ある。 出 願 人:アメリカン テレフォン アンド手続補正
書坊均 平成1年2月 9日
第1図のデータベースをグラフ表示した図; 第3図は、第2図のグラフのトランジティブクロージャ
を示した図; 第4図は、第3図のグラフに対応するデータベースを示
した図; 第5図は、本発明の原理に係る1つの方法を示した図; 第6図は、第5図においてブロック40で表わした部分
の詳細を示した流れ図; 第7図は、本発明の原理に係る第3の方法を示した図; 第8図は、第7図においてブロック49で表わした部分
の詳細を示した流れ図; 第9図は、本発明の原理に係る第3の方法を示した流れ
図: 第1O図は、第9図においてブロック70で表わした部
分の詳細を示した流れ図;及び 第11図は、本発明に係るトランジティブクロージャ生
成器を含むデータベースシステムの実行例を示した図で
ある。 出 願 人:アメリカン テレフォン アンド手続補正
書坊均 平成1年2月 9日
Claims (26)
- (1)二次メモリ、及び一次メモリを有するコントロー
ラよりなるシステムにおける、 前記二次メモリにストアされたデータベースのトランジ
ティブクロージャの一部分を生成する方法において、 前記データベースは複数のエントリを含み、当該エント
リの各々は複数個のフィールドを有し、前記データベー
スの所定の属性に割当てられており、 前記フィールドの各々における信号値が当該エントリに
対する、対応する属性に係る値を規定し、前記トランジ
ティブクロージャがソースノードと呼称される前記デー
タベースの所定のフィールド及びデスティネーションノ
ードと呼称される前記データベースの所定のフィールド
とに関して生成されるトランジティブクロージャ生成方
法において、 当該方法が、 前記データベースにおける前記ノードの順序付けを行な
う段階; 前記データベースを分割して、前記二次メモリより当該
分配分を読み出し、それを前記一次メモリに配置する段
階、 ここにおいて、前記分配分は、前記データベース内の、
ある選択されたソースノードの組を共有するエントリ全
てを含む; 前記分配分から、及び前記分配分あるいは前記データベ
ースのいずれかから、それぞれ1つずつのエントリを選
択して、それらの一方がヘッドエントリ及び他方がテー
ルエントリとなるようにし、前記データベースの前記ト
ランジティブクロージャに対するエントリを、前記ヘッ
ドエントリのソースノードがソースノードで、前記テー
ルエントリのデスティネーションノードがディステネー
ションノードとなるようにして生成する段階、ここにお
いて、前記ヘッドエントリのデスティネーションノード
は、前記テールエントリのソースノードと同一である;
及び 当該データベース全体に対する処理が終了するまで、前
記分割及び読み出し段階を繰返す段階;よりなることを
特徴とするトランジティブクロージャ生成方法。 - (2)前記分配分の内の少なくとも1つが、複数のソー
スノードよりなる所定の組より構成されていることを特
徴とする特許請求の範囲第1項に記載のトランジティブ
クロージャ生成方法。 - (3)前記選択段階が、次の条件(a)、(b)(a)
前記順序付けにおいて、kがjより小であるところの、
ソースノードi及びデスティネーションノードkを有す
る全てのエントリが、既にヘッドエントリとして選択さ
れており、及び (b)前記順序付けにおいて、kがjより小であるとこ
ろのソースノードj及びデスティネーションノードkを
有する全てのエントリが、既にヘッドエントリとして選
択されている、 を満たすようなソースノードi及びデスティネーション
ノードjを有するヘッドエントリを選択することのみ適
用されることを特徴とする特許請求の範囲第1項に記載
のトランジティブクロージャ生成方法。 - (4)エントリ生成段階の終了後に、生成されたエント
リを前記二次メモリ内に順にストアする段階を有するこ
とを特徴とする、特許請求の範囲第1項に記載のトラン
ジティブクロージャ生成方法。 - (5)各々の前記分配分におけるソースノードの前記所
定の組の大きさが、前記一次メモリのメモリサイズにお
ける所定の部分以上を占有しないように選択されている
ことを特徴とする特許請求の範囲第1項に記載のトラン
ジティブクロージャ生成方法。 - (6)更に、前記エントリ生成段階に応じて、生成され
たエントリの数に従ってソースノードの前記選択された
組の大きさを変化させる段階を有することを特徴とする
特許請求の範囲第1項に記載のトランジティブクロージ
ャ生成方法。 - (7)更に、前記エントリ生成段階によって、前記デー
タベース中にソースノードとデスティネーションノード
との間の2つの経路が生じた場合に、ラベルを更新する
段階を有することを特徴とする特許請求の範囲第1項に
記載のトランジティブクロージャ生成方法。 - (8)前記エントリ生成段階が、 前記分配分内のノードの処理を行なう段階、及びそれら
に引続く、前記分配分内に存在しないノードを処理する
段階; よりなることを特徴とする特許請求の範囲第1項に記載
のトランジティブクロージャ生成方法。 - (9)前記分配分内のノードを処理する前記段階が、K
を所定の定数とした場合に、 前記分配分から、ソースノードi及びデスティネーショ
ンノードjを有し、その積和i+jKが、前記分配分内
のまだ選択されていない全てのエントリに対する最低の
積和となるヘッドエントリを選択する段階A; 段階Aによって選択されたヘッドエントリのデスティネ
ーションノードと同一のソースノードを有する、前記分
配分内のテールエントリを選択する段階B; 当該ヘッドエントリのソースノードと同一なソースノー
ド、及び、当該テールエントリのデスティネーションノ
ードと同一なデスティネーションノード、を有する新し
いエントリを生成する段階C; 前記段階Aによって選択されたヘッドエントリのデステ
ィネーションノードと同一なソースノードを有する、他
のテールエントリが前記分配分内において見出された場
合に、段階B及びCを繰返す段階D;及び 前記分配分内において他のヘッドエントリが見出された
場合に段階AからDを繰返す段階E;よりなることを特
徴とする特許請求の範囲第8項に記載のトランジティブ
クロージャ生成方法。 - (10)前記分配分内に存在しないノードを処理する前
記段階が、前記分配分内に存在しないソースノードAを
選択する段階A; 当該選択されたソースノード、及び、前記順序付けにお
いて、まだ考慮されておらず、更に前記分配分内にソー
スノードとして存在する、最も早く現れるデスティネー
ションノード、を有するヘッドエントリを選択する段階
B; 当該ヘッドエントリのソースノードと同一なソースノー
ド、及び、当該テールエントリのデスティネーションノ
ードと同一なデスティネーションノード、を有する新し
いエントリを生成する段階C; 前記段階Bによって選択されたヘッドエントリのデステ
ィネーションノードと同一なソースノードを有する、他
のテールエントリが前記分配分内において見出された場
合に、段階Cを繰返す、段階D; 前記段階Bにおいて他のヘッドエントリが見出された場
合に段階BからDを繰返す段階E; 前記分配分内に存在しない全てのソースノードが処理さ
れるまで段階AからEを繰り返す段階F;よりなること
を特徴とする特許請求の範囲第8項に記載のトランジテ
ィブクロージャ生成方法。 - (11)前記トランジティブクロージャ生成方法が、更
に、各々のノードに対する、当該ノードがソースノード
であるところの全てのエントリを規定している、サクセ
ッサリストを維持する段階を有し、前記サクセッサリス
トが、1つのエントリを前記分配分内より、更に1つの
エントリを前記分配分あるいは前記データベースより選
択する前記段階の実行の際に用いられることを特徴とす
る特許請求の範囲第1項に記載のトランジティブクロー
ジャ生成方法。 - (12)前記トランジティブクロージャ生成方法が、更
に、各々のノードに対する、当該ノードがソースノード
であるところの全てのエントリを規定している、サクセ
ッサリストを維持する段階;及び各々のエントリに対す
る、当該ノードがデスティネーションノードであるとこ
ろの全てのエントリを規定している、プリデセッサリス
トを維持する段階;を有し、 前記サクセッサリスト及びプリデセッサリストが、1つ
のエントリを前記分配分内より、更に1つのエントリを
前記分配分あるいは前記データベースのいずれかより、
選択する段階の実行の際に用いられることを特徴とする
特許請求の範囲第1項に記載のトランジティブクロージ
ャ生成方法。 - (13)前記エントリ生成段階が、 ソースノードが前記ヘッドエントリのソースノードであ
り、デステネーションノードが前記テールエントリのデ
スティネーションノードであるような、既存のエントリ
のラベルを修正する段階を有することを特徴とする特許
請求の範囲第1項に記載のトランジティブクロージャ生
成方法。 - (14)前記トランジティブクロージャ生成方法が、更
に、あるソースノード及びあるデスティネーションノー
ドを有するエントリのラベルを、同一のソースノード及
び同一のデスティネーションノードを有する他のエント
リが存在する場合に、更新する段階を有することを特徴
とする特許請求の範囲第1項に記載のトランジティブク
ロージャ生成方法。 - (15)二次ストレージ領域、及び一次ストレージ領域
を有するコントローラよりなるシステムにおける、 前記二次ストレージ領域にストアされたデータベースの
トランジティブクロージャの一部分を生成する方法にお
いて、 前記データベースは、前記データベースの所定のフィー
ルドに割当てられた信号値を持つエントリを有し、 前記トランジティブクロージャがソースノードと呼称さ
れる前記データベースの所定のフィールドと及びデステ
ィネーションノードと呼称される前記データベースの所
定のフィールドとに関して生成されるトランジティブク
ロージャ生成方法において、 前記データベースにおける前記ノードの順序付けを行な
う段階; 前記データベースの分配を行なう段階; ここで各々の分配分は、前記データベース内の、ある選
択されたソースノードの組を共有するエントリ全てを含
む; 前記分配分の全てを、1つずつ考慮することによって、
前記データベースのエントリを生成する段階よりなる第
1パス、 ここで、各々の分配分を考慮する場合には、まず、前記
分配分内の各々のデスティネーションノードに対する、 前記分配分内の、当該デスティネーションノードを有す
るエントリのソースノードを、既に考慮した分配分内の
、前記デスティネーションノードと同一のソースノード
を有するエントリのデスティネーションノードと、関係
付けるエントリを生成し、 次に、前記分配分内のデスティネーションノードの各々
に対する、 当該デスティネーションノードを有する前記分配分内の
エントリのソースノードを、前記分配分内の前記デステ
ィネーションノードと同一のソースノードを有するエン
トリのデスティネーションノードと、関係付けるエント
リを生成する;前記分配分の全てを、1つずつ、考慮す
ることによって、前記データベースのエントリを生成す
る第2パス、 ここで、各々の分配分を考慮する場合には、前記分配分
内の、前記第1パスにおいて考慮されなかったデスティ
ネーションノードに対する新たなエントリを作成する; よりなることを特徴とするトランジティブクロージャ生
成方法。 - (16)前記トランジティブクロージャ生成方法が、更
に、 前記エントリ生成段階において、前記データベース内の
ソースノード及びデスティネーションノード間に2つの
経路が生成された場合に、ラベルを更新する段階を有す
ることを特徴とする特許請求の範囲第15項に記載のト
ランジティブクロージャ生成方法。 - (17)前記エントリ生成段階が、 ソースノードが前記ヘッドエントリのソースノードであ
り、デスティネーションノードが前記テールエントリの
デスティネーションードである、既存のエントリのラベ
ルを修正する段階を有することを特徴とする特許請求の
範囲第15項に記載のトランジティブクロージャ生成方
法。 - (18)前記トランジティブクロージャ生成方法が更に
、 あるソースノード及びあるデスティネーションノードを
有するエントリのラベルを、同一のソースノード及び同
一のデスティネーションノードを有する他のエントリが
存在する場合に、更新する段階を有することを特徴とす
る特許請求の範囲第15項に記載のトランジティブクロ
ージャ生成方法。 - (19)所定のフィールドに割当てられた信号値を持つ
エントリを含むデータベースを圧縮してストアするデー
タベース圧縮方法において、 前記データベースは、最低限、ソースノードと呼称され
る前記データベースの所定のフィールド及びデスティネ
ーションノードと呼称される所定のフィールドとに関し
てトランジティブクロージャ完成であり、当該方法が、 チェーンの組を生成する段階、 ここで、各々のチェーンは、前記データベースのエント
リの順序付けられた組からなり、前記チェーンの、最後
のエントリ以外の、全てのエントリのデスティネーショ
ンノードが、各々当該チェーン上の次のエントリのソー
スノードと同一であり、 前記チェーンの組は、全てのノードが最低限当該チェー
ンの組において、あるチェーンのあるエントリのソース
ノードあるいはデスティネーションノードとして1回現
れるように選択されている;及び 前記データベースの各々のソースノードに対して、当該
ソースノードを共有しているエントリの組から、当該エ
ントリの組の他のエントリのデスティネーションノード
よりもあるチェーン上で後に現れるデスティネーション
ノードに対するエントリを削除する段階、 このことによって圧縮したデータベースが生成される; よりなることを特徴とするデータベース圧縮方法。 - (20)前記データベース圧縮方法において、更に、前
記生成段階と前記削除段階との間に、 各々のノードに対して、当該ノードが属するチェーン及
び当該チェーン内での当該ノードの位置を識別するため
に、識別子を割当てる段階を含むことを特徴とする特許
請求の範囲第19項に記載のデータベース圧縮方法。 - (21)ストレージ領域中に存在する元のデータベース
から、増大したデータベースを生成するシステムにおい
て、 前記元のデータベースは、複数のエントリを含み、当該
エントリの各々は複数個のフィールドを有し、前記デー
タベースの所定の属性に割当てられており、 前記フィールドの各々における信号値が当該エントリに
対する対応する属性に係る値を規定し、前記増大したデ
ータベースは、トランジトリーデータベースのシーケン
スによって実現され、最初のトランジトリーデータベー
スは元のデータベースであり、それ以降のトランジデー
タベースが、その前のトランジトリーデータベースの修
正によって生成され、 前記増大したデータベースは、元のデータベースのトラ
ンジティブクロージャの少なくとも一部であり、前記ト
ランジティブクロージャがソースノードと呼称される前
記データベースの所定のフィールド及びデスティネーシ
ョンノードと呼称される前記ベースの所定のフィールド
とに関して生成され、 前記システムが、関連したメモリを持つコントローラを
有し、 当該コントローラが、 前記ストレージ領域内の前記トランジトリーデータベー
スをソートする手段; 前記トランジトリーデータベースを分割する手段、 ここで、各々の分配分は、分割されたデータベースにお
ける共通のソースノードを共有するエントリを含む; 前記トランジトリーデータベースの1分配分を前記スト
レージ領域より読み出して前記メモリに配置する手段; 前記増大したデータベースのエントリ対の考慮に応じて
、前記増大したデータベースに対するエントリを生成す
る手段、 ここで、前記エントリ対の一方は、前記メモリ内のエン
トリであり、前記エントリ対のもう一方は前記メモリあ
るいは前記ストレージ領域における前記トランジトリー
データベースのエントリであり、生成されたエントリは
前記トラジトリデータベースの修正である;及び 前記ストレージ領域に、前記エントリ生成手段によって
生成されたエントリを、次のトランジトリーデータベー
スを形成するように、配置する手段、 ここで、前記読み出し手段は、各々の分配分を最高2回
読み出し、前記エントリ生成手段は、考慮中のエントリ
対の一方のデスティネーションノードが当該エントリ対
の他方のソースノードでもある場合に、前記エントリを
生成する; を有することを特徴とするデータベース生成システム。 - (22)他のデータベースのトランジティブクロージャ
の少なくとも一部分を表現しているデータベースをスト
アするシステムにおいて、 当該システムが、 前記データベースをストアする手段;及び 前記トランジティブクロージャ完成データベースにおけ
るエントリの生成あるいは修正に係る、前記データベー
ス中のエントリの識別をストアする手段、 よりなることを特徴とするデータベースストアシステム
。 - (23)前記データベースの所定のフィールドに割当て
られた信号値を持つエントリを有するデータベースをス
トアする方法において、 当該方法が、 前記データベースに対応するトランジティブクロージャ
完成データベース(TCC−DB)の少なくとも一部分
をストアし、 ここで、前記トランジティブクロージャは、ソースノー
ドと呼称される前記データベースの所定のフィールド及
びデスティネーションノードと呼称される前記データベ
ースの所定のフィールドとに関して生成される;及び 前記TCC−DBの前記ストアされている部分のエント
リの生成に係る前記データベース内のエントリの識別を
、前記TCC−DBの前記ストアされている部分の各々
のエントリに、当該TCC−DBのソースノードを当該
データベースにおける、a)前記TCC−DBのエント
リと同一のソースノードを有し、かつb)当該データベ
ースの他のエントリと共に前記TCC−DBのエントリ
の生成に用いられる、エントリのデスティネーションノ
ードを関係付けることによって、ストアすることを特徴
とするデータベースストア方法。 - (24)前記データベースストア方法が、更に、前記T
CC−DBのエントリに関する識別子の前記組の各々の
識別子に関するラベルを有することを特徴とする特許請
求の範囲第23項に記載のデータベースストア方法。 - (25)情報に関するデータベースを保持するストレー
ジ手段; データベースに含まれている情報を要求するためのター
ミナル; 前記ターミナル及び前記ストレージ手段に応じて、前記
データベースのトランジティブクロージャの少なくとも
一部分を生成し、かつ前記ターミナルによって要求され
た前記情報を読み出すために前記データベースを検索す
る増強データベースマネージャ; 前記データベースにストアされた情報を修正する手段;
及び 前記データベースにストアされた情報が修正された場合
に前記データベースのトランジティブクロージャの前記
部分の生成を開始する手段;からなることを特徴とする
、情報提供システム。 - (26)前記増強データベースマネージャがコントロー
ラ及びメモリを有し、前記データベースのトランジティ
ブクロージャの前記部分を、前記データベースを分割し
、各々の分配分を前記データベースから前記メモリへ最
大2回ロードすることによって、生成することを特徴と
する特許請求の範囲第25項に記載の情報提供システム
。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US91236 | 1987-08-31 | ||
| US07/091,236 US4930072A (en) | 1987-08-31 | 1987-08-31 | Method for computing transitive closure |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01162927A true JPH01162927A (ja) | 1989-06-27 |
| JPH0682331B2 JPH0682331B2 (ja) | 1994-10-19 |
Family
ID=22226739
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63212670A Expired - Fee Related JPH0682331B2 (ja) | 1987-08-31 | 1988-08-29 | トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4930072A (ja) |
| EP (1) | EP0306197B1 (ja) |
| JP (1) | JPH0682331B2 (ja) |
| CA (1) | CA1292574C (ja) |
| DE (1) | DE3855212T2 (ja) |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5058002A (en) * | 1987-06-23 | 1991-10-15 | Mitsubishi Denki Kabushiki Kaisha | Page splitting method and apparatus for a database stored in a plurality of memory storage units |
| DE3732983A1 (de) * | 1987-09-30 | 1989-04-13 | Thomson Brandt Gmbh | Cd-spieler mit einem speicher |
| CA2001390C (en) * | 1988-12-19 | 1997-12-30 | Ming-Chien Shan | View composition in a data-base management system |
| US5170480A (en) * | 1989-09-25 | 1992-12-08 | International Business Machines Corporation | Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time |
| US5604899A (en) * | 1990-05-21 | 1997-02-18 | Financial Systems Technology Pty. Ltd. | Data relationships processor with unlimited expansion capability |
| US5333318A (en) * | 1990-09-27 | 1994-07-26 | Motorola, Inc. | Creating and searching a quad linked list in a trunked communication system |
| US5377201A (en) * | 1991-06-18 | 1994-12-27 | Nec Research Institute, Inc. | Transitive closure based process for generating test vectors for VLSI circuit |
| US6101490A (en) * | 1991-07-19 | 2000-08-08 | Hatton; Charles Malcolm | Computer system program for creating new ideas and solving problems |
| GB9222884D0 (en) * | 1992-10-30 | 1992-12-16 | Massachusetts Inst Technology | System for administration of privatization in newly democratic nations |
| US5497486A (en) * | 1994-03-15 | 1996-03-05 | Salvatore J. Stolfo | Method of merging large databases in parallel |
| US5678043A (en) * | 1994-09-23 | 1997-10-14 | The Regents Of The University Of Michigan | Data compression and encryption system and method representing records as differences between sorted domain ordinals that represent field values |
| CA2167790A1 (en) * | 1995-01-23 | 1996-07-24 | Donald S. Maier | Relational database system and method with high data availability during table data restructuring |
| US5799293A (en) * | 1996-11-04 | 1998-08-25 | Ford Global Technologies, Inc. | Method for optimizing the design of a product using knowledge-based engineering techniques |
| DE19709041A1 (de) * | 1997-03-06 | 1998-09-10 | Rudolf Prof Bayer | Datenbanksystem und Verfahren zum Betrieb eines Datenbanksystems |
| JP4294740B2 (ja) | 1997-05-23 | 2009-07-15 | ソレクサ・インコーポレイテッド | 分析物の系列的プロセシングのためのシステムおよび装置 |
| US6442557B1 (en) | 1998-02-27 | 2002-08-27 | Prc Inc. | Evaluation of enterprise architecture model including relational database |
| US6324496B1 (en) * | 1998-06-18 | 2001-11-27 | Lucent Technologies Inc. | Model checking of hierarchical state machines |
| US7159005B1 (en) * | 1998-10-16 | 2007-01-02 | International Business Machines Corporation | Methods, systems and computer program products for restartable multiplexed file transfers |
| WO2001073544A1 (en) * | 2000-03-24 | 2001-10-04 | Kevin Houzhi Xu | System and method for databases and programming languages |
| US6804678B1 (en) * | 2001-03-26 | 2004-10-12 | Ncr Corporation | Non-blocking parallel band join algorithm |
| US7085769B1 (en) * | 2001-04-26 | 2006-08-01 | Ncr Corporation | Method and apparatus for performing hash join |
| MXPA06015212A (es) * | 2004-07-09 | 2007-03-15 | Interdigital Tech Corp | Separacion de red de malla, logica y fisica. |
| US8145872B2 (en) | 2004-11-08 | 2012-03-27 | International Business Machines Corporation | Autonomic self-tuning of database management system in dynamic logical partitioning environment |
| US7444350B1 (en) * | 2005-03-31 | 2008-10-28 | Emc Corporation | Method and apparatus for processing management information |
| US20080046440A1 (en) * | 2006-08-16 | 2008-02-21 | Estes Philip F | Method And System For Enforcing User-Defined Relational Limitations In A Recursive Relational Database Table |
| US9614854B2 (en) * | 2014-03-25 | 2017-04-04 | Open Text Sa Ulc | System and method for maintenance of transitive closure of a graph and user authentication |
| US9875087B2 (en) * | 2015-04-10 | 2018-01-23 | Oracle International Corporation | Declarative program engine for large-scale program analysis |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5839341A (ja) * | 1981-09-02 | 1983-03-08 | Toshiba Corp | デ−タベ−スマネジメントシステムにおけるデ−タのアクセス制御方法及び装置 |
| JPS629432A (ja) * | 1985-07-05 | 1987-01-17 | Hitachi Ltd | デ−タ編集方法 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4267568A (en) * | 1975-12-03 | 1981-05-12 | System Development Corporation | Information storage and retrieval system |
| US4468732A (en) * | 1975-12-31 | 1984-08-28 | International Business Machines Corporation | Automated logical file design system with reduced data base redundancy |
| US4422158A (en) * | 1980-11-28 | 1983-12-20 | System Development Corporation | Method and means for interrogating a layered data base |
| JPS583031A (ja) * | 1981-06-30 | 1983-01-08 | Fujitsu Ltd | リレ−シヨナル・モデルにおけるジヨイン演算処理方式 |
| US4484297A (en) * | 1981-10-06 | 1984-11-20 | The United States Of America As Represented By The Secretary Of The Air Force | Variable data base generator apparatus |
| US4627019A (en) * | 1982-07-08 | 1986-12-02 | At&T Bell Laboratories | Database management system for controlling concurrent access to a database |
| US4479196A (en) * | 1982-11-15 | 1984-10-23 | At&T Bell Laboratories | Hyperedge entity-relationship data base systems |
| US4611298A (en) * | 1983-06-03 | 1986-09-09 | Harding And Harris Behavioral Research, Inc. | Information storage and retrieval system and method |
| US4853842A (en) * | 1985-09-11 | 1989-08-01 | Texas Instruments Incorporated | Computer memory system having persistent objects |
| US4814971A (en) * | 1985-09-11 | 1989-03-21 | Texas Instruments Incorporated | Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state |
| US4809158A (en) * | 1985-10-23 | 1989-02-28 | Mccauley Peter B | Sorting method and apparatus |
| US4745559A (en) * | 1985-12-27 | 1988-05-17 | Reuters Limited | Method and system for dynamically controlling the content of a local receiver data base from a transmitted data base in an information retrieval communication network |
| US4797810A (en) * | 1986-06-26 | 1989-01-10 | Texas Instruments Incorporated | Incremental, multi-area, generational, copying garbage collector for use in a virtual address space |
| JPS6326726A (ja) * | 1986-07-21 | 1988-02-04 | Toshiba Corp | 情報処理装置 |
-
1987
- 1987-08-31 US US07/091,236 patent/US4930072A/en not_active Expired - Lifetime
-
1988
- 1988-08-18 CA CA000575102A patent/CA1292574C/en not_active Expired - Lifetime
- 1988-08-23 DE DE3855212T patent/DE3855212T2/de not_active Expired - Fee Related
- 1988-08-23 EP EP88307777A patent/EP0306197B1/en not_active Expired - Lifetime
- 1988-08-29 JP JP63212670A patent/JPH0682331B2/ja not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5839341A (ja) * | 1981-09-02 | 1983-03-08 | Toshiba Corp | デ−タベ−スマネジメントシステムにおけるデ−タのアクセス制御方法及び装置 |
| JPS629432A (ja) * | 1985-07-05 | 1987-01-17 | Hitachi Ltd | デ−タ編集方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0306197A2 (en) | 1989-03-08 |
| EP0306197B1 (en) | 1996-04-17 |
| JPH0682331B2 (ja) | 1994-10-19 |
| DE3855212D1 (de) | 1996-05-23 |
| EP0306197A3 (en) | 1991-05-02 |
| US4930072A (en) | 1990-05-29 |
| DE3855212T2 (de) | 1996-11-28 |
| CA1292574C (en) | 1991-11-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH01162927A (ja) | トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システム | |
| CA2434081C (en) | Data structures utilizing objects and pointers in the form of a tree structure | |
| US8316060B1 (en) | Segment matching search system and method | |
| US6240422B1 (en) | Object to relational database mapping infrastructure in a customer care and billing system | |
| US5555409A (en) | Data management systems and methods including creation of composite views of data | |
| USRE40526E1 (en) | Data processing system and method for retrieving and entity specified in a search path record from a relational database | |
| US6205451B1 (en) | Method and apparatus for incremental refresh of summary tables in a database system | |
| Özsoyoğlu et al. | Query processing techniques in the summary-table-by-example database query language | |
| US6965894B2 (en) | Efficient implementation of an index structure for multi-column bi-directional searches | |
| US20020095397A1 (en) | Method of processing queries in a database system, and database system and software product for implementing such method | |
| US6917943B2 (en) | Sheaf data model | |
| AU2002249161A1 (en) | Data structure for information systems | |
| JP2002506252A (ja) | 関係データベースを用いて、非巡回有向グラフ構造を実現する方法 | |
| US20020093522A1 (en) | Methods of encoding and combining integer lists in a computer system, and computer software product for implementing such methods | |
| JP2003500741A (ja) | 単一の集計プロセスで複数のデータマートを実装するための方法および装置 | |
| JP4425377B2 (ja) | データ処理装置、および、データ処理方法 | |
| US6618720B1 (en) | Common spool files for maintaining join indexes | |
| US8515983B1 (en) | Segment matching search system and method | |
| Zhao et al. | Graph indexing for spatial data traversal in road map databases | |
| CN114911808A (zh) | 一种动态发布订阅方法及装置 | |
| Bic et al. | A Network-Oriented Dataflow Database System | |
| Ege | The display function in ALLEGRO | |
| JPH06149634A (ja) | データベース装置 | |
| Shieh | An access method for a relational database management system | |
| Su et al. | A Parallel Pattern Search Algorithm for Processing Object-Oriented Databases in a Cellular Array Architecture |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |