JPH0682331B2 - トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システム - Google Patents

トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システム

Info

Publication number
JPH0682331B2
JPH0682331B2 JP63212670A JP21267088A JPH0682331B2 JP H0682331 B2 JPH0682331 B2 JP H0682331B2 JP 63212670 A JP63212670 A JP 63212670A JP 21267088 A JP21267088 A JP 21267088A JP H0682331 B2 JPH0682331 B2 JP H0682331B2
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.)
Expired - Fee Related
Application number
JP63212670A
Other languages
English (en)
Other versions
JPH01162927A (ja
Inventor
アグラワル ラケシュ
ビセスバラーヤ ホサグラハール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
AT&T Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by AT&T Corp filed Critical AT&T Corp
Publication of JPH01162927A publication Critical patent/JPH01162927A/ja
Publication of JPH0682331B2 publication Critical patent/JPH0682331B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24566Recursive queries
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Description

【発明の詳細な説明】 (発明の背景) [発明の属する技術分野] 本発明は、データベース管理システムおよびデータベー
ス管理方法に関し、特に、使用可能なデータから新たな
情報を引き出すことができるインテリジェント・データ
ベースシステムおよびその方法に関する。
[従来技術の説明] データベース管理システムは、従来、賃金支払い処理、
収支会計処理、および取引処理等のデータ処理への応用
に用いられてきている。現在では、データベース管理シ
ステムは、エキスパートデータベースシステム等の新た
な応用分野において用いられる例が次第に多くなりつつ
ある。そして、それに対応して、新しいデータベース管
理システムおよびそのための機器が設計されつつある。
一般に、関係データベースは、大量のエントリを有し、
各エントリは複数のフィールドより成り立っている。こ
のエントリは、しばしばレコードあるいはテュープルと
呼称される。データベース内の各テュープルは、一般
に、同一順序に配列された同一フィールドよりなり、テ
ュープル間の差異は、各フィールド値である。情報は、
このようなデータベースから、比較的限られた数の基本
的な、すなわちプリミティブなオペレーションを組み合
わせることによって、非常に強力な検索を行うことによ
り引き出される。
上述のプリミティブオペレーションの一例は、あらかじ
め選択されたフィールドの値に関する「セレクト」であ
る。このオペレーションは、選択したフィールド以外の
すべてのフィールドを無視し、その選択したフィールド
において(全テュープルにわたって)指定した特定の条
件を満たす値を検索し、検索基準(あるいはその選択し
た一部)を充足するテュープルを引き出す。
プリミティブオペレーションの他の例として「ユニオ
ン」があげられる。このオペレーションは、同一フィー
ルド上で定義されている2つのデータベースを連結し
て、より大きなデータベースを形成する。連結がなされ
ると、あるテュープルは2つ以上含まれることになる可
能性があるので、「ユニオン」オペレーションの一部に
は、余剰のテュープルを消去する機能が含まれる。「デ
ィファレンス」というプリミティブオペレーションも2
つのデータベースに対して作用するものであるが、「デ
ィファレンス」オペレーションによって生ずるのは、第
1データベースには含まれるが第2データベースには含
まれないテュープルのみを含むデータベースである。
プリミティブオペレーションのもう1つの例は、「ジョ
イン」オペレーションとして知られているものである。
このオペレーションは、2つのデータベースのうちの選
択した基準を満たす部分の結合を生成する。例えば、考
えている2つのデータベースのそれぞれにおける特定の
フィールドに対してジョインが実行されると、これら2
つのデータベースに含まれるテュープルのうち、選択し
た2つのフィールドにおいて(値が)一致するものが連
結されて、新しいデータベースのテュープルとなる。も
ちろん、選択した2つのフィールドは共通の範囲にわた
る値を有していなければならない。そうでない場合に
は、一致するものは見つからない。
上述のプリミティブオペレーションを注意深く検討する
と、データベースに明示的に挿入された情報を引き出す
ために当該データベースに対して正しく問合せを行うこ
とによって、多くの情報が得られることが明らかとな
る。しかしながら、データベースは、直接、すなわち明
示的に挿入されていない多くの情報も有している。その
ような情報は、既知のプリミティブオペレーションによ
っても引き出しうるが、あまり効率的ではない。例え
ば、第1および第2フィールドがその間を直結する高速
道路を有する都市名を表し、第3フィールドが高速道路
に沿った当該2都市間の距離を表すようなデータベース
で、ある都市から高速道路によって直結されていない都
市へのルートを探そうとしていると考える。従来のプリ
ミティブオペレーションしか使用できない場合には、こ
のような問合せに対する解答は、大量のプリミティブオ
ペレーションを含むプログラムによってのみ得ることが
できる。しかしながら、当該データベースを効率的に操
作でき、その結果当該問合せに対する解答が直接得られ
るようなプリミティブオペレーションが利用可能である
ならば、多くのこれまでは困難とされてきたタスクが容
易になされうることになる。上述の例に対して要求され
る能力は、一般に「トランジティブクロージャ(推移閉
包)」と呼称される。これはしばしば要求される能力で
ある。
多くの技術者がデータベースに対するプリミティブオペ
レーションセットの拡張の必要性を認識し、そのうちの
何人かは、本質的にトランジティブクロージャオペレー
ションであるようなプリミティブオペレーションを提案
している。そのような提案の例は、アール.アグラワル
(R.Agrawal)によって提案された「アルファ」オペレ
ータ(「アルファ:あるクラスの再帰問合せを表現する
ための関係代数の拡張」、第3回データエンジニアリン
グ関する国際会議(1987年2月、米国カリフォルニア州
ロサンゼルス)会議録)、エイ.ローゼンタール(A.Ro
senthal)らによって提案された「トラヴァーザルリカ
ージョン」オペレーター(「トラヴァーザルリカージョ
ン:再帰的な応用を支援するための実際的なアプロー
チ」、ACM-SIGMOD1986データマネージメントに関する国
際会議(1986年5月、米国ワシントン特別区)会議録、
および、アール.クング(R.Kung)らによって提案され
た「*」オペレータ(「データベースシステムにおける
発見的検索」、第1回エキスパートデータシステムに関
する国際ワークショップ(1984年10月、米国サウスカロ
ライナ州キアワ島)会議録)である。
これまで当業界において用いられてきたトランジティブ
クロージャオペレーションを達成するための方法および
技法について記す前に、トランジティブクロージャの模
式的な代表例を以下に示す。
既に述べたように、データベースリレーション(関係デ
ータベース)は、それぞれがいくつかのフィールドより
なるテュープルの集合から成り立っている。各フィール
ドの値は、所定の範囲内で定義されている。データベー
スにおける複合フィールドは、複数の同時に考慮すべき
フィールドより成り立っている。あるデータベースリレ
ーションにおける2つのフィールド(あるいは2つの複
合フィールド)が同一範囲内で定義されていることはし
ばしばである。このような2つのフィールドに存在する
それぞれの値をノード(節点)で表し、各テュープル
を、当該テュープルのフィールドに見出される2つの値
を接続する有向リンク(すなわち矢印)として表現する
と、そのようにしてできたグラフ(ノードおよびそれら
を連結しているリンクの接続を表したもの)がデータベ
ースを表すことになる。データベースリレーションの各
テュープルに関する他のフィールドは、当該グラフ中の
リンクにラベル付けをするために用いられる。ちなみ
に、無向リンクではなく有向リンクを用いた理由は、グ
ラフを定義するために用いた、当該リレーションに含ま
れる2つのフィールドを区別するためである。
前述のグラフそのものに注目すると、そのようなグラフ
における「パス」は、当該グラフの選択したソースノー
ドからそのグラフの選択したデスティネーションノード
に至る場合に通過する連続したリンクの集合により成り
立っている。我々の定義によれば、グラフの「トランジ
ティブクロージャ」とは、パスが存在するすべてのノー
ド対間にリンクを有する新たなグラフである。元のグラ
フのリンクに対して付けられたラベルは、所定の関数に
従って変換されて、当該トランジィブクロージャによっ
て生成されたリンクに対する新たなラベルとなる。ある
ノード対間にリンクが既に存在する場合においても、し
ばしば、異なったパスを見出すことによって当該リンク
に対するラベルが、ある所定の関数に従って、変換され
る、ということが起こり得る。データベースリレーショ
ンのトランジティブクロージャとは、与えられた元のデ
ータベースリレーションのグラフのトランジティブクロ
ージャに対応するデータベースリレーションである。
既存のデータベースシステムにおける成功の多くは、デ
ータベースにおける種々のプリミティブオペレーション
をインプリメントするための効率的な方法の発見による
ものである。同一の手本に従って、多くの設計者がデー
タベースリレーションのトランジティブクロージャを計
算するための方法を構築しようと試みている。これらの
方法のほとんどは、反復法として分類されうる。
エイ.エフ.バンシルホン(A.F.Bancilhon)によって
記述された半ナイーブ法(「再帰的に定義されたリレー
ションのナイーブ評価」、Tech.Rept.DB-004-85、MCC
(米国テキサス州オースチン))は、長さ1のパスから
始めて各反復において1だけ長いパスを見出す。対数的
方法は、ピー.バルジュリエズ(P.Valduriez)ら
(「ジョインインデックスを用いた再帰的検索の評
価」、第11回エキスパートデータベースシステムに関す
る国際会議(1986年4月、米国サウスカロライナ州チャ
ールストン)会議録)およびワイ.イー.アイオアニデ
ィス(Y.E.Ioannidis)(「リレーショナルオペレータ
のトランジティブクロージャの計算について」、第12回
巨大データベース国際会議(1986年8月、京都、日本)
会議録)に記述されている。この方法においては、各反
復の際に既知のパスの長さよりも2倍長い長さを有する
パスまでのすべてを計算するものである。前述の方法の
改良については、ワイ.イー.アイオアニディス(「関
係演算子のトランジティブクロージャの計算につい
て」、第12回巨大データベース国際会議(1986年8月、
京都、日本)会議録)、ユー.ギュンツァー(U.Guntze
r)ら(「効率的差分固定点反復法による演繹型データ
ベースシステムにおける再帰の評価について」、第3回
アイ・トリプル・イー・データエンジニアリング国際会
議(1987年2月、米国カリフォルニア州ロサンゼルス)
会議録)、および、エイチ.リュー(H.Lu)(「データ
ベースリレーションのトランジティブクロージャの計算
に関する新しい戦略」、第13回巨大データベース国際会
議(1987年9月、英国ブライトン)会議録)に記述され
ている。
上述の従来技術に係る方法には2つの主要な問題点があ
る。第1に、反復法の終了はグラフの最長パスに依存し
ていて、長大パスが存在する場合には、結果を得るため
に多くの反復をしなければならない。第2に、反復法
は、特にグラフがサイクルを含む場合には莫大な数の重
複を生み出し(なぜなら、ノード対間のパスが見出され
た場合、当該ノード対間にパスが既に存在しているかど
うかをチェックすることは容易ではないからである)、
それらを除去するために重大な性能損失を招くからであ
る。
ブール行列(すなわち、各要素が1か0であるような行
列)のトランジティブクロージャを計算するための方法
もいろいろと導かれている。この種のよく知られた方法
は、エス.ワーシャル(S.Warshall)(「ブール行列に
関する定理、ジャーナル・オブ・エイシーエム(Journa
l of ACM)、第9巻第1号(1962年1月)、エイチ.エ
ス.ワレン(H.S.Warren)(「二項関係のトランジティ
ブクロージャに対するワーシャルのアルゴリズムの修
正」、コミュニケーションズ・オブ・エイシーエム(Co
mmunications of ACM)、第18巻第4号(1975年4
月))、および、シー.ピー.シュノア(C.P.Schnor
r)(「線型期待時間によるトランジティブクロージャ
のためのアルゴリズム」、エスアイエイエム ジャーナ
ル オブ コンピューティング(SIAM Journal of Comp
uting)、第7巻第2号(1978年5月))に記述されて
いる。
ワーシャルのアルゴリズムに従うと、与えられたV個の
ノードを有するグラフに対するV×Vのブール行列の要
素aij(ここで、ノードiからノードjへのリンクが存
在する場合にはaijは1であり、そうでない場合はaij
は0、と定義されている)に関して、そのトランジティ
ブクロージャは次のように求められる。
For k=1 to V For i=1 to V For j=1 to V aij=aij∪(aij∩akj) グラフ理論の術語によれば、当該アルゴリズムは次のよ
うに書き表すことができる。
すべてのノードkに対して kのすべてのプリデセッサiに対して kのすべてのサクセッサjに対して jをiのサクセッサにし、 iをjのプリデセッサにする。
当該グラフが、各テュープルがリンクで表されるような
リレーションとして表現されるならば、プリデセッサお
よびサクセッサの両方のリストを有することによる効果
を得るために、当該リレーションを2通りの方法で整列
して維持しなければならない。それゆえ、ワーシャルの
アルゴリズムの実現には、各ノードに対してそれに関す
るサクセッサおよびプリデセッサのリストをフェッチし
て、その後各サクセッサ(プリデセッサ)に対してプリ
デセッサ(サクセッサ)をフェッチし、必要があれば更
新する、という段階が必要になる。また、例えばサクセ
ッサリストのみを有していて、あるノードのプリデセッ
サを決定するために、毎回当該リスト全体にわたってス
キャンすることも可能である。
ワレンは、ワーシャルのアルゴリズムがブール行列から
ランダムなビットをフェッチする段階を含んでいること
を指摘し、ビット抽出のオーバーヘッドなしにブールベ
クルトに対する直接のオペレーションを可能とするよう
な修正案を提案したが、それは、2パスとなっている。
For i=1 to V For k=1 to i−1 For j=1 to V aij=aij∪(aik∩akj) For i=1 to V For k=i+1 to V For j=1 to V aij=aij∪(aik∩akj) ワレンのアルゴリズムにおける変更点は、iとkのルー
プが交換されているという点のみである。しかしなが
ら、この交換によって、いくつかのパスが見逃されてし
まい、その結果、2パスが必要となる。第2のループイ
ンデックスの範囲の修正は、2パスであることによる損
失を低減するための最適化である。各パスにおける計算
は、本質的には、 すべてのノードiに対して iの、ある範囲内のすべてのサクセッサkに対して kのすべてのサクセッサjに対して jをiのサクセッサにする。
これらの方法の問題点は、データベース全体およびトラ
ンジティブクロージャの計算結果がコンピュータのメイ
ンメモリに収まらなければ、これらの方法がデータベー
スリレーションのトランジティブクロージャの効率的な
計算に用いられない、ということである。残念ながら、
既存のデータベースの大部分は、このためには大きすぎ
る。
(発明の概要) 本発明により、データベースのトランジティブクロージ
ャを、当該データベースが磁気ディスク、光ディスク、
磁気テープあるいは低速のコアメモリ等の二次記憶媒体
にストアされている場合においても、当該二次記憶媒体
へのアクセスを最小限にすることによって、効率的に得
ることができる。この方法は、データベースを分割し、
それが好ましい具体例においては、各ノードに対して直
接に連結しているノードのリストが付けられているよう
なノードの集合という形で維持され、一度に1つの分割
部分を二次記憶媒体からメインメモリに転送し、メイン
メモリに存在しない部分のデータベースへのアクセスを
最小にするような方法でそれを処理する、という段階よ
り成り立っている。データベースの分割は、ア・プリオ
リに決定されている必要はない。データベースの未処理
の部分がメインメモリの所定の部分に収まるだけ一分割
部分としてフェッチされ、当該部分の処理中にメインメ
モリが一杯になると、現在の分割部分のデータベースの
一部を放棄することによって、当該分割部分をダイナミ
ックに縮小する(この部分は次の分割部分に含まれ
る)。分割部分の処理には、当該分割部分の各ノードに
対して、当該ノードを通じて間接的に連結しているすべ
てのノード対間に直接連結を生成するという操作が含ま
れる。
(実施例の説明) 第1図は、以下において本発明に係る、データベースリ
レーションのトランジティブクロージャを効率的に生成
するための方法およびその装置を記述するために用いら
れる、簡単なデータベースリレーションを示している。
第1図のデータベースは5つのフィールドを有し、第1
および第3フィールドの双方が有効パーツ番号に関して
定義されており、第2および第4フィールドの双方がパ
ーツ名に関して定義され、および第5フィールドが正整
数に関して定義されている。当該リレーションは、基本
的には、第1フィールドで番号そして第2フィールドで
その名前が規定されたパーツが、第3および第4フィー
ルドで規定された製品に用いられており、後者を1ユニ
ットを生産するために必要な前者の数が第5フィールド
に与えられている。前述したように、データベースの複
合フィールドは、2つ以上の同時に考慮されるべきフィ
ールドから成り立っている。第1図の例においては、第
1および第2フィールドが組み合わされて機械部品の番
号と名前を与える複合フィールドを形成している。同様
に、第3および第4フィールドを組み合わせうる。
第2図は、第1図に示したデータベースに対応する有向
グラフを示し、第3図は、第2図に示したグラフのトラ
ンジティブクロージャを示している。第4図は、第3図
に対応するデータベースリレーションを示している。第
3図および第4図において、リンクに対して新たなラベ
ルを生成するために用いられた関数は、新たなリンクを
生ぜしめたリンクに対する「乗加算」である。ここに示
す具体例においてこの関数を選択したのは、それが当該
データベースリレーションの元の意味を保存しているか
らである。すなわち、第5フィールドに対応するラベル
が、正確に、他のパーツの製造に直接あるいは関接に必
要なあるパーツの数を与えるからである。
一般に、データベースリレーションは汎用コンピュータ
のメインメモリに完全にストアするには大き過ぎ、必然
的に磁気(あるいは光)ディスクのような二次記憶媒体
にストアされなければならない。いつの時点においても
当該リレーションの一部のみが読み出されてメインメモ
リ上に保持される。問題となるのは、データベースリレ
ーションのトランジティブクロージャは、元のリレーシ
ョンに比べて常に大きく、一般にかなり大きいことであ
る。それゆえ、データベースリレーションのトランジテ
ィブクロージャがコンピュータのメインメモリに収まる
ことは、ほとんどあり得ない。今日のコンピュータにお
いて一般に用いられている二次記憶媒体の性質、および
コンピュータの制御と内在する高速メモリとの相互の影
響のために、二次記憶媒体および一次内在記憶媒体間の
データ転送にかなりの時間が必要となる。我々の目的
は、内在メモリと二次メモリ間の転送を低減して、デー
タベースリレーションのトランジティブクロージャを効
率的に計算する装置を提供することである。すなわち、
我々の装置の目的は、従来からのデータベースを「トラ
ンジティブクロージャ完成」データベースに効率的に変
換することである。
我々の目的に従って、従来型データベースは二次記憶媒
体にストアされており、本発明に係るトランジティブク
ロージャ装置は第5図に示されているように、当該媒体
上のデータをアクセスし、変換を実行し、その結果生ず
る「トランジティブクロージャ完成」データベースを同
一媒体にストアする。プロセッサ200はデータベース100
にアクセスし、変換を実行してその結果をデータベース
100に書き戻す。
我々のアプローチの要点は、二次記憶媒体へのアクセス
数を低減することであり、このことを達成するために、
本発明に係るトランジティブクロージャ計算方法おいて
は、データベースをプロセッサ200のメモリ内に収まる
適切なセグメントに分割し、効率的な方法でグラフにお
けるすべてのノードを考慮することが含まれている。こ
のような考慮段階と関連して、本発明に係る方法におい
ては、(a)考慮中のノードに対して入射する方向のリ
ンクを有するすべてのノードとの間のリンクおよび対応
するラベルが、そのようなリンクがまだ存在していない
場合に、生成される、または、(b)そのようなリンク
が既存の場合には、そのラベルが更新される。
さらに詳細に述べれば、各テュープルが2つのノードを
有するリンクであるので、本発明に係る方法において
は、デスティネーションノードあるいはソースノードの
いずれかを考慮中のピボットノードとして取扱う。各ピ
ボットノードに入射するリンクを有するノードと各ピボ
ットノードから出射するリンクを有するノードとの間の
リンクを生成することによって全体のトランジティブク
ロージャが生成される。
既存の方法においては、データベース全体への繰返しア
クセスが必要とされたが、この必要性を可能な限り軽減
することが望ましい。それゆえ、本発明により、トラン
ジティブクロージャが以下のようにして求められる。
(a)初期データベース100を、第1にソースノードに
関して、次にデスティネーションノードに関してソート
(整列)する。
(b)ソートしたデータベースの一分割部分をプロセッ
サ200に転送し(ここで、前記データベースの一分割部
分は、所定の数のピボットノードのエントリからな
る)、当該分割部分の範囲内で情報を処理する。
(c)データベース100内に残存しているリンクのそれ
ぞれをプロセッサ200へ渡し、被転送分割部分のピボッ
トノードに対する影響を考慮し、必要ならばトランジテ
ィブリンクを生成する。
(d)前記分割部分をデータベース100に書き戻す。
(e)次の分割部分をデータベース100からプロセッサ2
00に転送し、この手続きを繰り返す。
データベース100のソートは、当該データベースが巨大
である場合においても困難ではない。例えば、プロセッ
サ200の一次メモリ内に収まる大きさのバケットにハッ
シュし、続いて各バケットをメモリ上でソートする等
の、従来からの技法を適用しうる。ピボットノードがソ
ースノードである場合には、そのようなソートを行った
後には、あるノードから出射する方向のすべてのリンク
が一緒にまとめられる。実際、我々がソートを行なう目
的が、あるノードから出射する方向のすべてのテュープ
ルを一緒にまとめることであるから、同一結果を生ずる
ような他の方法も適用されうる。
上記の段階(c)に関しては、データベース100へのア
クセスが必要とされるが、その手続きは、当該分割部分
からエントリを選択し、もう1つのエントリを当該分割
部分あるいはデータベースそれ自体から(データベース
100をアクセスすることによって)選択することであ
る。選択されたエントリの一方は、当該エントリ対のヘ
ッドと見なされ、他方はテールと見なされる。その決定
は、ヘッドエントリのデスティネーションノードが、テ
ールエントリのソースノードと同一であるか否かに関し
てなされる。そうであるならば、ヘッドエントリのソー
スノードからテールエントリのデスティネーションノー
ドへのテュープルが生成される。エントリが生成された
場合には、以下に記述されるように、当該ノード対間に
存在する他のリンクに対して(それが存在する場合に
は)のラベル付けを含んで、すべてのフィールドが埋め
られる。但し、上述のようなノードに対する検討を無思
慮に行うような手続きにおいては、データベース100に
対する莫大な回数のアクセスが必要とされる。しかしな
がら、本発明に係る方法に従えば、各ノード対に関して
一度考慮すれば十分である。
各ノード対に関して一度考慮すれば、グラフに関する完
全なトランジティブクロージャが生成される、というこ
との保証は、以下の2つの拘束条件より理解される。
拘束条件1:すべてのソースノードに対して、デスティネ
ーションノードは段階(c)が適用されるリンク選択に
おけるのと同一の順序で考慮されなければならない。
拘束条件2:リンクij(ソースノードi、デスティネーシ
ョンノードj)に対して段階(c)が適用される以前
に、段階(c)が既に、ソート順でjより前に現れるす
べてのノードkに対するリンクjkに対して適用されてい
なければならない。
我々は、上記の2つの拘束条件を満足するすべての順序
が用いられうることを見出した。そして、それを例示す
るために、以下に、グラフ中のノード対に対する段階
(c)の適用のための3つの異なった方法を示すことに
する。
第1の方法(第5図) [第1段階(ブロック10)] データベース100にプロセッサ200を相互作用させてサク
セッサリストを生成する。詳細に述べれば、データベー
ス100の各ノードiに対して、ノードiがソースノード
であるようなデスティネーションノードを規定するリス
トを生成する。データベースが最初にソートされるフィ
ールドがソースノードフィールドである場合には、この
段階は必要ではない。なぜなら、ソーティング処理によ
って、共通のソースノードを有するすべてのリンクがデ
ータベース中に連続してストアされているからである。
[第2段階(ブロック20)] プロセッサ200に(ソートされたリスト中で)未だ処理
されていない最上位の分割部分を転送する。被転送分割
部分の大きさは、プロセッサ200の一次メモリの大きさ
および共通のソースノードを共有しているリンクの数に
依存する。プロセッサ200が新リンクを生成し、それら
のうちのいくつかが、現在分割部分に加わることになる
ので、一般には使用可能なメモリのうち、約50%分程に
転送されるのみである。この数値は、以下に述べる相反
する2点に留意した上で、必要な場合には、他のすべて
の段階においても選択されうる。一方では、初期状態で
メモリをあまりにも大量に占有してはならない。なぜな
ら、収まりきる以上の数のリンクが生成されると、その
生成されたリンクに対して必要なストレージ領域を確保
するために実質的な計算のオーバーヘッドが要求される
からである。他方、初期状態であまりにも少量のメモリ
しか占有しないことは避けなければならない、なぜな
ら、一分割部分を大きくとることによって反復回数が減
少し、その結果、処理速度が向上するからである。
[第3段階(ブロック30)] 前記転送した分割部分内の各ノードjに対して、順次当
該分割部分内における当該ノードjをデスティネーショ
ンノードとするようなすべてのリンクを考える。そのよ
うなリンクのそれぞれに対して、当該リンクのソースノ
ードからノードjがソースノードであるようなリンクに
よって連結されたデスティネーションノードのそれぞれ
へ向かうリンクを生成する。
[第4段階(ブロック40)] データベース100の、現在分割部分には含まれないすべ
てのノードのサクセッサリストを順次リードする。その
ようなノードkのそれぞれに対して、それが、現在分割
部分内のソースノードであるようなノードiに向かうよ
うなリンクのソースノードであるか否かを決定する。そ
うである場合には、ソースkとノードiのすべてのサク
セッサであるノードjとの間のリンクを生成する。ちな
みに、リンクが生成されると、それはデータベースにス
トアされる。ソートされた状態を維持するために、生成
されたリンクのストアは挿入の形でなければならない。
このことは、従来技術の方法によって実現される、例え
ば、挿入ソーティングとして知られている技法によって
である。生成された各エントリを直ちにストアするので
はなくて、エントリがある数だけ生成されるまで、ある
いは当該分割部分の処理が完了するまで、ストアを延期
することも可能である。
[第5段階(ブロック50)] 各分割部分に対して第3段階および第4段階を繰り返
す。
第6図は、第4段階をより詳細に記述したものである。
第6図に従って、処理が完了していない、すなわちデー
タベース100のノードにすべてにわたる考慮が終了して
いない場合には、ブロック41において、制御がブロック
42に移されることによって、処理が続行される。ブロッ
ク42では、プロセッサ200内に現時点で存在している分
割部分内には存在しないノードに対するサクセッサリス
トをデータベース100から読み出す。ブロック43および4
4の組合せにより、ノードkのすべてのサクセッサノー
ドが考慮される。ブロック45においては、ノードkの現
在考慮中のサクセッサが実際には現時点でプロセッサ20
0内に存在している分割部分内のノード、例えばノード
i、であるか否かが決定される。そして、そうである場
合には、ブロック46においてノードkからノードiのサ
クセッサへの必要なリンクが生成され、必要に応じて更
新される。ノードkの各サクセッサが考慮された後には
制御はブロック43に戻る、そして、kのサクセッサすべ
てが考慮された後には、ブロック43からブロック41に制
御が復帰する。
第2の方法(第7図) 第1の方法に係るデータ処理においては、各ノードのサ
クセッサリストがプロセッサ200に読み込まれ(第4段
階)、その時になって初めてリンクが生成されなければ
ならないか否かが決定される。ここに示す第2の方法に
よれば、通例前記ソーティング処理の結果生じるサクセ
ッサリストに加えて、各ノードのプリデセッサを規定す
る(ソースノードおよびデスティネーションノードに関
する情報のみを保持している)プリデセッサリストが生
成されて維持される(データベース100内に、あるいは
容量が足りるならばプロセッサ200内に)。このプリデ
セッサリストは、データベース100をデスティネーショ
ンノードに関してソートすることによって生成される。
当該プリデセッサリストは、リングが生成されないよう
なノードに関するサクセッサリストへのアクセスの必要
性を除き、それによって、データベース100へのアクセ
ス数をさらに低減する。
新たなリンクが生成される場合に、プリデセッサリスト
およびサクセッサリストは、両方とも維持されていなけ
ればならないことに留意されたい。サクセッサリストに
関しては、現時点でプロセッサ200内に存在する分割部
分内のあるノードに対するサクセッサリストがプリデセ
ッサリスト内のエントリによって指示された通りに、プ
ロセッサ200内に読み込まれた場合、生成されたリンク
に関するサクセッサリストへの挿入ソーティングは直ち
に実行される。なぜなら、サクセッサリストは、プロセ
ッサ200内に存在するからである。他方、プリデセッサ
リストは直ちには更新されない。なぜなら、新たなプリ
デセッサリストがプロセッサ200内のメモリ内に読み込
まれなければならないからである。一般に、プリデセッ
サリストは第4段階の終了時に更新される。プリデセッ
サリストの生成およびその更新は、第6図のブロック15
および55に示されている。第7図のブロック49には、第
5図のブロック40と同一の字句が記入してあるが、第8
図に示すように、第7図ブロック49の手続きは、ブロッ
ク40のそれとは若干異なるものである。
第8図においては、ブロック41に引き続いて決定ブロッ
ク47がおかれ、そこにおいてプリデセッサリストが用い
られる。ノードkが、現時点でプロセッサ内に存在する
分割部分内のあるノードのサクセッサリストに属してい
る場合のみ、制御がブロック42に移る。
第3の方法(第9図) 第1の方法および第2の方法は、ソースノードをピボッ
トノードと考え、分割部分内の各リンクに対して、考慮
中のソースノードをデスティネーションノードとして有
するような他のリンクがデータベース内に存在するか否
かということを問題にしてきた。ここに示す第3の方法
では、デスティネーションノードをピボットノードと考
え、考慮中のデスティネーションノードをソースノード
として有するようなリンクをデータベース中で検索す
る。
この第3の方法においては、第1の方法の第3段階から
第5段階までが以下に示すステップによって置換され
る。
[第3段階(ブロック70および第10図)] 以前に処理した分割部分に属する各ノードjに対して、
現時点でプロセッサ200内に存在する分割部分内に、あ
るノードiからノードjへのリンクが存在する場合に
は、ノードjのサクセッサリストを読み込み、ノードi
とノードjのサクセッサリスト内のデスティネーション
ノードとの間のすべてのリンクを生成する。この段階
は、当該分割部分内の1つのエントリのデスティネーシ
ョンノードを、当該分割部分内の他のエントリが同一デ
スティネーションノードを有しているか否か観察するこ
とによって増強される。
[第4段階(ブロック30)] ノードjが現時点でプロセッサ200内に存在する分割部
分に属している場合には、考慮中のリンクのソースノー
ドから、ノードjがソースノードであるリンクのデステ
ィネーションノードのそれぞれへのリンクを生成する。
[第5段階(ブロック20-60-50)] すべての分割部分が一度処理された後、当該処理が繰返
され、第1パス(の第3段階および第4段階)で考慮さ
れる対象とならなかったすべてのノードjについての考
慮がなされる。ここで、サクセッサリストの大きさが変
化したために、一般には、第2パスにおける分割部分と
第1パスにおける分割部分とが異なることに留意された
い。
第1の方法および第2の方法においては、分割部分によ
ってメモリの50%が占有されることが合理的であった
が、第3の方法においては、プロセッサ200内に存在す
る分割部分のみが拡張されていくので、それより小さな
数値が恐らくより適切であることにも留意されたい。
上述した3つの方法のすべてにおいて、基本となるポイ
ントは、与えられたデータベースが分割され、かつ、処
理がプロセッサ内に存在しない分割部分内のテュープル
に対する参照を僅かにおさえて実行される点である。処
理が進行するにつれて新たなリンクが見出され、プロセ
ッサ内に存在する分割部分の大きさが大きくなっていく
ことが期待される。既に述べたように、ある場合には分
割部分が大きくなり過ぎてメモリ内に収まらなくなる。
そのような場合には、メモリ内に存在する分割部分のサ
クセッサリストの最後のものを削除して、次の分割部分
に含ませるようにする。
プロセッサ200のメインメモリが一杯になってしまうこ
とは、本発明に係る方法においては、何等破局を引き起
こすことはないが、メインメモリから削除されなければ
ならなかったサクセッサリストは、メモリ上の分割部分
とともに読み込まれたが無駄になってしまった、という
ことを意味していることは明らかである。そのような読
み込みにおけるロスを最小にするために、新たに読み込
まれる分割部分の大きさは、メモリの一部のみを占め、
それが大きくなることを許容できるものでなければなら
ない。
第1図のデータベースについて考える。トランジティブ
クロージャを生成するために第1の方法を適用し、最初
の2つのテュープルのみが第1分割部分を成していると
する。第3段階による修正は、生じない。残存している
テュープルのそれぞれが読み出され、メモリ上の分割部
分には含まれず、「キャパシタ」をそのデスティネーシ
ョンとするようなテュープルが存在しないか否かが決定
される。そして第4段階による修正は生じない。続いて
次の分割部分、例えば次の3つのテュープルからなる分
割部分が読み込まれる。「マイクロプロセッサ」から
「コントローラ」へのリンクおよび「コントローラ」か
ら「ワークステーション」へのリンクが存在するが、と
もにメモリ上の分割部分内に存在するので、新たなリン
ク、「マイクロプロセッサ」→「ワークステーショ
ン」、が生成される。「マイクロプロセッサ」および
「コントローラ」の双方が、「インフォメーションシス
テム」へのリンクを有する「ワークステーション」への
リンクを持つため、これら双方のノードから「インフォ
メーションシステム」へのリンクが生成される。第4段
階に進み、「キャパシタ」から「コントローラ」へのリ
ンクが見出されるので、「キャパシタ」から「コントロ
ーラ」のサクセッサのそれぞれへのリンクが生成され
る。このようにして処理を続行することによって、第4
図に示されているような、トランジティブクロージャ完
成データベースが得られる。
第2の方法は、本質的に同一の様式で作用する。留意す
べき主要な点は、第1分割部分が一次メモリにある場合
には、他の分割部分内にあるテュープルは一次メモリ上
に読み込まれる必要がない、という点である。なぜな
ら、「キャパシタ」のプリデセッサリストより直ちに
「キャパシタ」をデスティネーションノードとするよう
なテュープルが存在しないことが理解されるからであ
る。
第3の方法は、第1分割部分に対しては、第1の方法と
同様に作用する。第2分割部分がメモリ上にある場合に
は、既に、処理した分割部分内のリンクのみが「キャパ
シタ」をソースノードとして有し、一方で」キャパシ
タ」はメモリ上にある分割部分のどのリンクのデスティ
ネーションノードでもないので、第3段階においてはデ
ータベースの修正は生じない。第4段階は第1の方法の
第3段階と同一である。最後の第3分割部分は第1図の
データベースの最後の2つのテュープルを有している。
第3段階を適用することによって、既に処理したソース
ノード「ワークステーション」を有するテュープルが見
出される。このテュープルのデスティネーション「イン
フォメーションシステム」は、「ディスプレイ」をソー
スノードとする新たなテュープルのデスティネーション
であり、それはメモリ上の分割部分内の「ワークステー
ション」をデスティネーションノードとして有するテュ
ープルのソースノードである。第4段階を適用すること
によって、「ディスプレイ」のサクセッサが「グラフィ
ックス」のサクセッサとされる。このことによって第1
パスは完了する。
第2パスでは、第1分割部分がメインメモリに読み込ま
れて、今度は「コントローラ」および「グラフィック
ス」のサクセッサすべてが「キャパシタ」のサクセッサ
とされる。第2および第3分割部分には変更がなされな
い。以上より、第4図に示すトランジティブクロージャ
完成データベースが得られる。
[ラベル処理] 既に述べたように、データベースの各テュープルはいく
つかのフィールドより成り立っている。上述の議論は、
主として、データベースのグラフによる表示においてソ
ースノードおよびデスティネーションノードとなる2つ
の単一あるいは複合フィールドに関するものである。ソ
ースノードおよびデスティネーションノードに加えて、
各テュープルには他のフィールドがあり、それらは3つ
のグループに分類されうる、ソースノードのみに関する
フィールド、デスティネーションのみに関するフィール
ド、およびソースノードとデスティネーションノードと
の間の関係を特徴付けるフィールドある。例えば、第1
および第2フィールドがそれぞれ2つの都市を規定し、
第3および第4フィールドがそれぞれ、各都市の空港の
大きさを規定し、2都市間の距離が第5フィールドのフ
ィールド値であるようなデータベースにおいては、各フ
ィールドが属するカテゴリーは明らかである。
トランジティブクロージャの作成に伴って生成されたテ
ュープルのソースおよびデスティネーションノード以外
のフィールドの処理に関して問題が生じる。
本発明に従うと、新たなテュープルが生成された場合、
当該新テュープルのソースノードを生成したノードに関
するフィールドが、当該ソースノードに関するフィール
ドに複写される。デスティネーションノードに関するフ
ィールドについても同様である。ソースおよびデスティ
ネーション間の関係を特徴付けるフィールドは、多くの
相異なる方法によって導出されうる。一般に、そのよう
なフィールドは、新たなリンクの生成に関与したリンク
に対応した、テュープルについてのある特定の関数とし
て記述されうる。同一のソースおよびデスティネーショ
ンノード間に多重経路(すなわち、一連の連結されたリ
ンクよりなる経路)が見出された場合には、各関係フィ
ールドに適切な値を有する多重経路が同一ソースデステ
ィネーション対間に生成される。あるいは、単一のリン
クのみが生成されて、各パスに対して導かれたフィール
ド値のある関数として、関係フィールドのフィールド値
が独立に得られる。例えば、前述の都市の例において
は、各経路に対する距離のフィールドが、最も論理的
に、それぞれのその経路を構成しているリンクの距離フ
ィールドの総和として計算される。ある場合には、最終
的に生じるリレーションにおいて可能な経路および距離
のすべてを保持しておく必要が生ずる。しかしながら、
より一般的には、可能な経路のそれぞれに関するフィー
ルド値の中から距離フィールドのフィールド値を選択す
る「最小」関数を用いて、各都市対に対して単一のテュ
ープルを保持しておくことが必要となる。
[データベース圧縮] 今までに述べたことより、トランジティブクロージャ完
成データベースは、元のデータベースよりも大きく、し
ばしば非常に大きい、ということが容易に認識される。
その大きさがより大きくなるにもかかわらず、それは当
該リレーションについてのすべての情報を含んでいる訳
ではない。例えば、元のデータベースにおいて2つのノ
ード間に経路が存在することを示すために、当該ノード
間にリンクが生成される、ところが、トランジティブク
ロージャ完成データベースは当該経路を特定しない。他
方、そのような経路が存在するか否かのみに興味がある
場合がしばしばあり、実際その経路に係るラベル(例え
ば費用)には、それほど興味がない場合がある。しかし
ながら、すべての場合において、トランジティブクロー
ジャが適用されるシステムのニーズがあると、生成され
るデータベースを可能な限り圧縮することには利点があ
る。
主要な要求が2つのノード間の経路が存在することを知
る、という応用例においては、本発明に係る圧縮技法に
よって元のデータベースよりもしばしば小さいデータベ
ースが得られる。当該方法は、3つの段階から成り立っ
ている。第1段階においては、データベースを表現して
いるグラフが最小限のチェーンに分割される。ここでチ
ェーンとは、あるソースノードから他のソースノードへ
の経路である。この目的を達成するにあたって、あるノ
ードが2本以上のチェーンに属することは許されてい
る。第2段階においては、チェーン上のノードが、その
チェーンにおける出現順に従って、番号(識別子)が付
けられる。最後の第3段階においては、各ソースノード
が、当該ソースノードから達するすべてのチェーンのデ
スティネーションノードのうちの最小の番号を持つもの
のみと関係付けられる。
ソースノードに関するリンクのうちの僅かの部分のみが
ストアされる必要がある、ということから、圧縮が実現
される。
一度、圧縮した形のストレージストラクチャが生成され
ると、ある与えられたノードAが他の与えられたノード
Bへのリンクを当該トランジティブクロージャにおいて
有するか否かが、ノードAが、あるチェーン上でノード
Bより、その位置番号によって決定されるように、先に
現れるあるノードCに対するリンクを有するか否かをチ
ェックすることによって、決定されるようになる。
例えば、第2図のグラフ(あるいは第3図のグラフ)を
用いて、各ノードが少なくとも一方の上にあるような2
本のチェーンを生成することができる。第1チェーンは
「マイクロプロセッサ−コントローラ−ワークステーシ
ョン−インフォメーションシステム」、第2チェーンは
「キャパシタ−グラフィックス−ディスプレイ」という
ようになるであろう。ここで「キャパシタ」ノードにつ
いて考慮する。第3図において、当該ノードから出射す
る5つのリンクのうち、1つのみが明白にストアされる
必要がある。すなわち、「コントローラ」ノードへのリ
ンクである。キャパシタがディスプレイの製造に用いら
れているか否か、すなわち第3図において「キャパシ
タ」ノードから「ディスプレイ」ノードへのリンクが存
在するか否かが検索された場合には、肯定的な応答がな
される。なぜなら「ディスプレイ」は第2チェーンの
「キャパシタ」の後に現れるからである。と同様に、キ
ャパシタがワークステーションの製造に用いられるか否
かが検索された場合には、肯定的な応答がなされる。な
ぜなら、第1チェーンにおいて「ワークステーション」
ノードより前に現れる。「コントローラ」ノードへの
「キャパシタ」ノードからのリンクが存在するからであ
る。しかしながら、キャパシタがマイクロプロセッサの
製造に用いられるか否か問われた場合には、否定的な応
答がなされる。なぜなら、「キャパシタ」ノードから、
「マイクロプロセッサ」ノードあるいはチェーン上で
「マイクロプロセッサ」より前に現れるノードへのリン
クが存在しないからである。
上述の例では、あるノードから他のあるノードへのリン
クが存在するか否かを決定することが可能であったが、
そのようなリンクにどんなラベルがついているかを言う
ことができなかった。言い換えれば、キャパシタが実際
にワークステーションの製造に要求されていることは確
認されたが、各ワークステーションの製造にいくつ用い
られるのかを決めることができなかった。
到達情報のみではなく、経路およびそのラベルも重要と
なる応用例においては、異なった圧縮技法が用いられ
る。本発明に係る方法によれば、各ソースノードに対し
てある表が関係付けられる。その表の各エントリは3つ
の領域から成り立っている。(1)デスティネーション
ノード。(2)ソースノードからこのデスティネーショ
ンノードへの経路上で第1跳躍点として用いられるべき
ノード。(3)この経路のラベル。あるソースノードと
あるデスティネーションノードとの間に多重経路が存在
し、すべての経路が同一第1跳躍点を経由する場合に
は、前述の表には唯一つのエントリしかないことにな
る。他方、あるソースノードとあるデスティネーション
ノードとの間に多重経路が存在して、そのそれぞれが相
異なる第1跳躍点を経由するならば、経路数と同じ数の
エントリが表に存在する。
ここに示したストラクチャは、ソースノードに関する表
においてデスティネーションノードのうちチェーンにお
いて最も前に置かれているエントリのみをソーティング
することによってさらに(前述の3段階からなる方法に
従って)圧縮される。それゆえ、同一チェーン上に2つ
のデスティネーションが置かれていて一方が他方よりも
前であるならば、先に現れるノードに対するエントリの
みが表に存在することになる。
[システムの応用] 本発明に係るトランジティブクロージャ作成法およびそ
の装置には、輸送業、遠距離通信産業、建設業、生産コ
ントロール、あるいはエキスパートシステム等の無数の
応用例が考えられる。例えば、航空産業においては、種
々の都市間直行便の基本的なデータベースが維持されて
いる。そこにトランジティブクロージャオペレータを作
用させることによって、データベースにおけるすべて
の、その間に直行便を有するあるいは有しない、2都市
間の経路情報が得られる。遠距離通信産業においては、
地点間の直結基幹中継線の信頼性およびその容量につい
てのデータベースが存在する。そのようなデータベース
にトランジティブクロージャオペレータを作用させるこ
とによって、2つの交換センター間の最も信頼できる中
継線および当該交換センタの総容量を決定することがで
きる。建設業においては、アクティビティに関するデー
タベースが用いられ、それにトランジティブクロージャ
オペレータを作用させることによって、クリティカルパ
スを決定することができる。(PERTチャートの方法
で)。例えば、自動車のような複雑なシステムの製造に
関する部品の管理においては、トランジティブクロージ
ャを生成することによって、ある部品を組み立て、製品
に適切な費用を付けるのに必要な材料および情報に関す
るリストが得られる。エキスパートシステムのインプリ
メントに関連して、エキスパートシステムにおいては、
エントリ間の関係を表現するために、しばしば、インヘ
リタンスヒエラルキーが用いられていることに留意され
たい。例えば、あるエキスパートシステムにおいては、
あるエントリが「弁理士は人間である」ということを述
べ、他のエントリが「人間は呼吸する」ということを述
べているかも知れない。ここにトランジティブクロージ
ャオペレータを作用することによって、「弁理士は呼吸
する」という叙述が生成される。
第11図は、本発明の原理に係るシステムの構成を示した
ものである。第11図においては、航空機の予約システム
等の分散型のデータアクセスシステムが示されている
が、本発明に係るシステムは、他の多くの応用例におい
て用いられるものである。第11図においては、データベ
ース管理システム300に接続された、複数の検索用ター
ミナル400が存在し、これらはデータベース管理システ
ム300に接続されている。航空機予約システムにおいて
は、ターミナル400は、航空会社のカウンターあるいは
旅行社の予約係のためのアクセスポイントである。ター
ミナル400からの問合せはときどき、データベースの2
つのフィールド上のトランジティブクロージャを必要と
する情報を要求する。データベース管理システム300は
データベース100とコミュニケートし、データベース100
はトランジティブクロージャ生成器200とコミュニケー
トする。トランジティブクロージャ生成器200には、タ
ーミナル500が接続されている。ターミナル500は航空機
予約操作制御センターにあり、データベース100におけ
る基本的情報に影響を及ぼす情報を与える。この情報
は、都市から都市への便の基本的変更、天候その他によ
るキャンセル便に関する変更、あるいはある便に関する
過剰予約等のより一時的な情報である。言い換えれば、
ターミナル500はトランジティブクロージャ生成器300に
対してデータベース100内の基本的データベース情報の
トランジティブクロージャ完成データベースへの変換を
開始させる能力を有する。
データベース管理システム300は、ユーザの要求を満足
するものであればどのようなデータベース管理システム
であっても構わない。従来技術において知られている管
理システムは数多くあるので、ここでは、データベース
管理の詳細について探求しない。トランジティブクロー
ジャ生成器200に関しては、既に述べた第5〜10図に示
した流れ図における記述より、生成器200に必要とされ
る機能は、従来のデジタルコンピュータによって効率的
に実現されることが理解される。第11図のシステムにお
いては、オフィシャル・エアーライン・ガイド(北アメ
リカ版)のトランジテイブクロージャの生成が、従来の
デジタルコンピュータを用いて、実質的に1時間以内に
なされることが期待される。より速い処理速度が必要な
場合には、生成器200は、第11図に示すように、特定機
能志向のハードウェアによって容易に実現される。
特定機能ハードウェアによるトランジティブクロージャ
生成器200の実現に関して、ブロック210はデータベース
100とコミュニケートし、その唯一の機能はデータをソ
ートすることである。ソーティングは、2組のレジス
タ、1つのコンパレータ、ある大きさのメモリおよび制
御回路を用いて従来技術に係る方法によってなされる。
生成器200には、処理中の各分割部分がストアされるメ
モリ220、メモリ220にストアされたデータに対応するテ
ュープル分析生成装置230および制御信号生成ブロック2
40が含まれる。装置230のテュープル分析部として、最
も望ましいのは、ストアされたプログラムによって制御
されるデバイス、例えばマイクロプロセッサ、であり、
一方装置230のテュープル生成部は、組合せ回路であ
る。
以上の記述および本発明の原理に係る3つの方法さらに
はそれを行うための装置は、模式的なものであって、本
発明の原理を開示し、当業者に本発明を利用させること
を意図したものである。「ソースノード」と「デスティ
ネーションノード」の意味を逆転させる等の変更がなさ
れうるが、それらはすべて本発明の精神およびその範疇
に含まれるものである。
【図面の簡単な説明】
第1図は、データベースを模式的に示した図、 第2図は、第1図のデータベースをグラフ表示した図、 第3図は、第2図のグラフのトランジティブクロージャ
を示した図、 第4図は、第3図のグラフに対応するデータベースを示
した図、 第5図は、本発明の原理に係る1つの方法を示した図、 第6図は、第5図においてブロック40で表した部分の詳
細を示した流れ図、 第7図は、本発明の原理に係る第3の方法を示した図、 第8図は、第7図においてブロック49で表した部分の詳
細を示した流れ図、 第9図は、本発明の原理に係る第3の方法を示した流れ
図、 第10図は、第9図においてブロック70で表した部分の詳
細を示した流れ図、 第11図は、本発明に係るトランジティブクロージャ生成
器を含むデータベースシステムの実行例を示した図であ
る。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−9432(JP,A) 特開 昭58−39341(JP,A) C.J.Date著、藤原譲訳「データ ベース・システム概論」(昭59−1−30) 丸善、PP.90,421−422,503−504

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】データベースをストアした二次メモリと、
    一次メモリを有するコントローラとからなるシステムに
    おいて、 前記データベースは複数のエントリを含み、各エントリ
    は複数のフィールドを含み、各フィールドは前記データ
    ベースのあらかじめ選択された属性に割り当てられてお
    り、前記各フィールドの信号値はそのフィールドの対応
    する属性に係る値を規定し、前記データベースから選択
    された1つまたは複数のフィールドであるソースノード
    およびデスティネーションノードに関するトランジティ
    ブクロージャの少なくとも一部を生成する方法におい
    て、 前記データベースにおける前記ノードの順序付けを行う
    ステップと、 前記二次メモリより、前記データベース内の選択された
    ソースノードの集合を共有するすべてのエントリを含む
    部分を読み出し、それを前記一次メモリに読み込むステ
    ップと、 前記部分から、および、前記部分または前記データベー
    スのいずれかから、それぞれ1つずつのエントリを選択
    して、それらの一方がヘッドエントリおよび他方がテー
    ルエントリとなるようにし、前記ヘッドエントリのデス
    ティネーションノードが、前記テールエントリのソース
    ノードと同一である場合に、前記データベースの前記ト
    ランジティブクロージャに対するエントリを、前記ヘッ
    ドエントリのソースノードがソースノードで、前記テー
    ルエントリのデスティネーションノードがデスティネー
    ションノードとなるようにして生成するエントリ生成ス
    テップと、 前記データベース全体の読み込みが終了していない場
    合、前記読み込みステップに戻るステップとからなるこ
    とを特徴とするトランジティブクロージャ生成方法。
  2. 【請求項2】前記部分のうちの少なくとも1つが、選択
    された複数のソースノードの集合であることを特徴とす
    る請求項1の方法。
  3. 【請求項3】前記順序付けが、前記ノードに昇順に番号
    を付することによって行われ、前記エントリ生成ステッ
    プにおけるエントリの選択が、次の2つの条件、すなわ
    ち、 前記順序付けにおいて、ソースノードi、および、kが
    jより小であるところのデスティネーションノードkを
    有するすべてのエントリが、既にヘッドエントリとして
    選択されていること、および、 前記順序付けにおいて、kがjより小であるところのソ
    ースノードjおよびデスティネーションノードkを有す
    るすべてのエントリが、既にヘッドエントリとして選択
    されていること、 を満たすようなソースノードiおよびデスティネーショ
    ンノードjを有するヘッドエントリを選択することのみ
    適用されることを特徴とする請求項1の方法。
  4. 【請求項4】前記エントリ生成ステップの終了後に、生
    成されたエントリを前記二次メモリ内に順にストアする
    ステップを有することを特徴とする請求項1の方法。
  5. 【請求項5】各部分における前記選択されたソースノー
    ドの集合の大きさが、前記一次メモリのメモリサイズに
    おける所定の部分以上を占有しないように選択されるこ
    とを特徴とする請求項1の方法。
  6. 【請求項6】前記エントリ生成ステップに応じて、生成
    されたエントリの数に従って前記選択されたソースノー
    ドの集合の大きさを変化させるステップをさらに有する
    ことを特徴とする請求項1の方法。
  7. 【請求項7】前記エントリ生成ステップによって、ソー
    スノードとデスティネーションノードとの間に2つの経
    路が生じた場合に、フィールドの信号値を更新するステ
    ップをさらに有することを特徴とする請求項1の方法。
  8. 【請求項8】前記エントリ生成ステップが、前記部分内
    のノードを処理するステップと、このステップに続い
    て、前記部分内に存在しないノードを処理するステップ
    とからなることを特徴とする請求項1の方法。
  9. 【請求項9】前記部分内に存在しないノードを処理する
    ステップが、 前記部分内に存在しないソースノードを選択するステッ
    プAと、 当該選択されたソースノードと、前記順序付けにおい
    て、まだ考慮されておらず、かつ、前記部分内にソース
    ノードとして存在する、最も早く現れるデスティネーシ
    ョンノードとを有するヘッドエントリを選択するステッ
    プBと、 当該ヘッドエントリのソースノードと同一のソースノー
    ド、および、当該テールエントリのデスティネーション
    ノードと同一のデスティネーションノード、を有する新
    しいエントリを生成するステップCと、 前記ステップBによって選択されたヘッドエントリのデ
    スティネーションノードと同一のソースノードを有する
    他のテールエントリが前記部分内において見出された場
    合に、ステップCを繰り返すステップDと、 前記ステップBにおいて他のヘッドエントリが見出され
    た場合にステップBからDまでを繰り返すステップE
    と、 前記部分内に存在しないすべてのソースノードが処理さ
    れるまでステップAからEまでを繰り返すステップFと
    からなることを特徴とする請求項8の方法。
  10. 【請求項10】各ノードに対してそのノードがソースノ
    ードであるところのすべてのエントリを規定するサクセ
    ッサリストを維持するステップをさらに有し、前記サク
    セッサリストが、前記エントリ生成ステップにおいて、
    前記部分から、および、前記部分または前記データベー
    スのいずれかから、それぞれ1つずつのエントリを選択
    する際に使用されることを特徴とする請求項1の方法。
  11. 【請求項11】各ノードに対してそのノードがソースノ
    ードであるところのすべてのエントリを規定するサクセ
    ッサリストを維持するステップと、 各ノードに対してそのノードがデスティネーションノー
    ドであるところのすべてのエントリを規定するプリデセ
    ッサリストを維持するステップとをさらに有し、 前記サクセッサリストおよびプリデセッサリストが、前
    記エントリ生成ステップにおいて、前記部分から、およ
    び、前記部分または前記データベースのいずれかから、
    それぞれ1つずつのエントリを選択する際に使用される
    ことを特徴とする請求項1の方法。
  12. 【請求項12】前記エントリ生成ステップが、ソースノ
    ードが前記ヘッドエントリのソースノードであり、デス
    テネーションノードが前記テールエントリのデスティネ
    ーションノードであるように、既存のエントリのフィー
    ルドの信号値を修正するステップからなることを特徴と
    する請求項1の方法。
  13. 【請求項13】あるソースノードおよびあるデスティネ
    ーションノードを有するエントリのフィールドの信号値
    を、同一のソースノードおよび同一のデスティネーショ
    ンノードを有する他のエントリが存在する場合に、更新
    するステップをさらに有することを特徴とする請求項1
    の方法。
  14. 【請求項14】データベースをストアした二次ストレー
    ジ領域と、一次ストレージ領域を有するコントローラと
    からなるシステムにおいて、 前記データベースは、あらかじめ指定されたフィールド
    に値を取る信号値を有するエントリを含み、前記データ
    ベースから選択された1つまたは複数のフィールドであ
    るソースノードおよびデスティネーションノードに関す
    るトランジティブクロージャの少なくとも一部を生成す
    る方法において、 前記データベースにおける前記ノードの順序付けを行う
    ステップと、 各分割部分が前記データベース内の選択されたソースノ
    ードの集合を共有するすべてのエントリを含むように前
    記データベースを分割するステップと、 前記分割部分のすべてを1つずつ考慮し、各分割部分を
    考慮する際に、まず、前記分割部分内の各デスティネー
    ションノードに対して、前記分割部分内の、当該デステ
    ィネーションノードを有するエントリのソースノード
    を、既に考慮した分割部分内の、前記デスティネーショ
    ンノードと同一のソースノードを有するエントリのデス
    ティネーションノードと関係付けるエントリを生成し、
    次に、前記分割部分内の各デスティネーションノードに
    対して、前記分割部分内の、当該デスティネーションノ
    ードを有するエントリのソースノードを、前記分割部分
    内の、前記デスティネーションノードと同一のソースノ
    ードを有するエントリのデスティネーションノーと関係
    付けるエントリを生成することによって、エントリを生
    成する第1パスのステップと、 前記分割部分のすべてを1つずつ考慮し、各分割部分を
    考慮する際に、前記分割部分内の、前記第1パスにおい
    て考慮されなかったデスティネーションノードに対して
    新たなエントリを作成することによって、エントリを生
    成する第2パスのステップとからなることを特徴とする
    トランジティブクロージャ生成方法。
  15. 【請求項15】前記エントリ生成ステップにおいて、ソ
    ースノードおよびデスティネーションノード間に2つの
    経路が生成された場合に、フィールドの信号値を更新す
    るステップをさらに有することを特徴とする請求項14の
    方法。
  16. 【請求項16】前記エントリ生成ステップが、ソースノ
    ードが前記ヘッドエントリのソースノードであり、デス
    ティネーションノードが前記テールエントリのデスティ
    ネーションノードである、既存のエントリのフィールド
    の信号値を修正するステップを有することを特徴とする
    請求項14の方法。
  17. 【請求項17】あるソースノードおよびあるデスティネ
    ーションノードを有するエントリのフィールドの信号値
    を、同一のソースノードおよび同一のデスティネーショ
    ンノードを有する他のエントリが存在する場合に、更新
    するステップをさらに有することを特徴とする請求項16
    の方法。
  18. 【請求項18】あらかじめ指定されたフィールドに値を
    取る信号値を有するエントリを含むデータベースであっ
    て、そのデータベースの少なくとも一部が、そのデータ
    ベースから選択された1つまたは複数のフィールドであ
    るソースノードおよびデスティネーションノードに関す
    るトランジティブクロージャとなっているようなデータ
    ベースを圧縮してストアするデータベース圧縮方法にお
    いて、 最後のエントリを除いて、エントリのデスティネーショ
    ンノードがその次のエントリのソースノードと同一であ
    るような、前記データベースのエントリの順序集合から
    なるチェーンの集合であって、各ノードがあるチェーン
    のあるエントリのソースノードまたはデスティネーショ
    ンノードとして少なくとも1回現れるように選択された
    チェーンの集合を生成するステップと、 前記データベースの各ソースノードに対して、当該ソー
    スノードを共有しているエントリの組から、当該エント
    リの組の他のエントリのデスティネーションノードより
    もあるチェーン上で後に現れるデスティネーションノー
    ドに対するエントリを削除するステップとからなること
    を特徴とするデータベース圧縮方法。
  19. 【請求項19】前記生成ステップと前記削除ステップと
    の間に、各ノードに対して、当該ノードが属するチェー
    ンおよび当該チェーン内での当該ノードの位置を識別す
    る識別子を割り当てるステップをさらに有することを特
    徴とする請求項18の方法。
  20. 【請求項20】複数のエントリを含み、各エントリは複
    数のフィールドを含み、各フィールドはあらかじめ選択
    された属性に割り当てられており、前記各フィールドの
    信号値はそのフィールドの対応する属性に係る値を規定
    し、記憶装置中に存在する元のデータベースから、 最初の一時データベースが元のデータベースであり、そ
    れ以降の一時データベースが直前の一時データベースの
    修正によって生成されるような一時データベースのシー
    ケンスによって実現され、前記元のデータベースから選
    択された1つまたは複数のフィールドであるソースノー
    ドおよびデスティネーションノードに関するトランジテ
    ィブクロージャの少なくとも一部である拡張データベー
    スを生成するシステムにおいて、 前記システムが、関連したメモリを持つコントローラを
    有し、 当該コントローラが、 前記記憶装置内の前記一時データベースをソートする手
    段と、 各分割部分が前記一時データベース内の共通のソースノ
    ードを共有するエントリを含むように前記一時データベ
    ースを分割する手段と、 前記一時データベースの1つの分割部分を前記記憶装置
    より高々2回読み出して前記メモリに配置する読み出し
    手段と、 前記メモリ内のエントリと、前記メモリ内または前記記
    憶装置内の前記一時データベースのエントリとからなる
    エントリ対に対して、エントリ対の一方のデスティネー
    ションノードが当該エントリ対の他方のソースノードで
    もある場合に、そのエントリ対を修正して、前記拡張デ
    ータベースのエントリを生成する手段と、 前記記憶装置に、前記エントリ生成手段によって生成さ
    れたエントリを、次の一時データベースを形成するよう
    に、配置する手段とからなることを特徴とするデータベ
    ース生成システム。
  21. 【請求項21】あらかじめ指定されたフィールドに値を
    取る信号値を有するエントリを含むデータベースをスト
    アする方法において、 前記データベースから選択された1つまたは複数のフィ
    ールドであるソースノードおよびデスティネーションノ
    ードに関するトランジティブクロージャであるトランジ
    ティブクロージャ完成データベース(以下、「TCC-DB」
    という。)の少なくとも一部分をストアするステップ
    と、 前記TCC-DBの前記ストアされている部分の各エントリに
    対して、当該エントリと同一のソースノードを有し当該
    エントリを生成するために前記データベースの他のエン
    トリとともに使用されている可能性があるエントリのデ
    スティネーションノードに、当該エントリのソースノー
    ドを関係付ける識別子の集合を、当該エントリに対応さ
    せることによって、当該エントリの識別情報をストアす
    るステップとからなることを特徴とするデータベースス
    トア方法。
  22. 【請求項22】情報に関するデータベースを保持するス
    トレージ手段と、 前記データベースに含まれている情報を要求するための
    ターミナルと、 前記ターミナルおよび前記ストレージ手段に応じて、前
    記データベースのトランジティブクロージャの少なくと
    も一部分を生成し、かつ前記ターミナルによって要求さ
    れた前記情報を読み出すために前記データベースを検索
    するデータベースマネージャと、 前記データベースにストアされた情報を修正する手段
    と、 前記データベースにストアされた情報が修正された場合
    に前記データベースのトランジティブクロージャの前記
    部分の生成を開始する手段とからなり、 前記データベースマネージャが、コントローラおよびメ
    モリを有し、前記データベースのトランジティブクロー
    ジャの前記部分を、前記データベースを分割し各分割部
    分を前記データベースから前記メモリへ高々2回ロード
    することによって生成することを特徴とする情報提供シ
    ステム。
JP63212670A 1987-08-31 1988-08-29 トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システム Expired - Fee Related JPH0682331B2 (ja)

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 JPH01162927A (ja) 1989-06-27
JPH0682331B2 true 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9273354B2 (en) 1997-05-23 2016-03-01 Illumina, Inc. System and apparatus for sequential processing of analytes

Families Citing this family (26)

* Cited by examiner, † Cited by third party
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
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
US9860252B2 (en) 2014-03-25 2018-01-02 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

Family Cites Families (16)

* Cited by examiner, † Cited by third party
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 リレ−シヨナル・モデルにおけるジヨイン演算処理方式
JPS5839341A (ja) * 1981-09-02 1983-03-08 Toshiba Corp デ−タベ−スマネジメントシステムにおけるデ−タのアクセス制御方法及び装置
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
JPS629432A (ja) * 1985-07-05 1987-01-17 Hitachi Ltd デ−タ編集方法
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 情報処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
C.J.Date著、藤原譲訳「データベース・システム概論」(昭59−1−30)丸善、PP.90,421−422,503−504

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9273354B2 (en) 1997-05-23 2016-03-01 Illumina, Inc. System and apparatus for sequential processing of analytes

Also Published As

Publication number Publication date
CA1292574C (en) 1991-11-26
JPH01162927A (ja) 1989-06-27
DE3855212T2 (de) 1996-11-28
DE3855212D1 (de) 1996-05-23
EP0306197A3 (en) 1991-05-02
EP0306197A2 (en) 1989-03-08
US4930072A (en) 1990-05-29
EP0306197B1 (en) 1996-04-17

Similar Documents

Publication Publication Date Title
JPH0682331B2 (ja) トランジティブクロージャ生成方法、データベース圧縮方法、データベース生成システム、データベースストア方法および情報提供システム
US9158859B2 (en) Segment matching search system and method
CA2434081C (en) Data structures utilizing objects and pointers in the form of a tree structure
Di Battista et al. On-line planarity testing
Banerjee et al. Clustering a DAG for CAD Databases
US5555409A (en) Data management systems and methods including creation of composite views of data
US7865526B2 (en) Sheaf data model
US6240422B1 (en) Object to relational database mapping infrastructure in a customer care and billing system
AU2002249161A1 (en) Data structure for information systems
WO1999045479A1 (en) A method of implementing an acyclic directed graph structure using a relational database
JP2003500741A (ja) 単一の集計プロセスで複数のデータマートを実装するための方法および装置
US8515983B1 (en) Segment matching search system and method
Czerepicki Application of graph databases for transport purposes
US6618720B1 (en) Common spool files for maintaining join indexes
Subramanian A fully dynamic data structure for reachability in planar digraphs
US6823300B1 (en) Memory efficient occurrence model design for VLSI CAD
Tuijn et al. CGOOD, a categorical graph-oriented object data model
Carlis et al. A descriptive model of physical database design problems and solutions
Zhao et al. Graph indexing for spatial data traversal in road map databases
Batory Principles of database management system extensibility
Ege The display function in ALLEGRO
Mainguenaud Constraint-based queries in a geographical database for network facilities
Spooner et al. The evolution of ROSE: an engineering object-oriented database system
CN114911808A (zh) 一种动态发布订阅方法及装置
Bic et al. A Network-Oriented Dataflow Database System

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees