JPH02501514A - 属性データ モデル データベースを使用するソフトウエア応用プログラムを結合する方法 - Google Patents
属性データ モデル データベースを使用するソフトウエア応用プログラムを結合する方法Info
- Publication number
- JPH02501514A JPH02501514A JP1505036A JP50503689A JPH02501514A JP H02501514 A JPH02501514 A JP H02501514A JP 1505036 A JP1505036 A JP 1505036A JP 50503689 A JP50503689 A JP 50503689A JP H02501514 A JPH02501514 A JP H02501514A
- Authority
- JP
- Japan
- Prior art keywords
- attribute data
- attribute
- data object
- data
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- 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/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
属性データモデルデータベースを使用するソフトウェア応用プログラムを結合す
る方法関連出願
本発明は、1988年4月13日にニドワード・S・ロウリーによって出願され
たU、S、S、N 18]、105号、名称“単一の革純な原素を用いたデータ
構造を有するデータ処理システム”に関連する。
発明の背景
本発明は、一般的にはデータベースの分野に関し、より特定的には若干の応用プ
ログラムによる共通データベースの使用に関する。
多くの異なる応用プログラムは、あるコンピュータシステムにおいて他のプログ
ラムと情報を共有し、或は交換しなければならないことが多い。一つの注目すべ
き例は、製品の設計及び製造に援助を与える一組の相互作用するコンピュータプ
ログラムである。
これらの相互作用するプログラムは、典型的には製品の開発に使用される計算機
援用設計(CAD)プログラム及び製造支援システム(CAM)プログラムを含
む。
これらのシステムにおいては、1つの応用プログラムからの出力データカ月つ或
はそれ以上の他の応用プログラムの入力データであることが屡々である0例えば
、回路基板のデザインを開発するのに使用されるCADプログラムの出力データ
は、デザインされた回路基板の製造を容易ならしめるCAMプログラムの入力デ
ータとして使用することができる。
しかしながら、ある応用プログラムからの出力データを別の応用プログラムのた
めの入力データとして機能させるためには、両心用プログラムはこのようなデー
タの転送が行われ得るように設計されていなければならない、出力データは、そ
のデータを操作する応用プログラムによって使用を容認できる形状で1!備され
、提示されなければならない、このようにして通信する応用プログラムを“結合
された”と呼ぶ。
ソフトウェア応用プログラム対間で結合を行うのは比較的簡単な仕事である。こ
のような結合は単に、結合しようとする2つの応用プログラムの一方或は両方を
変更するだけでよい。
一方、幾つかの他の応用プログラムを結合させる場合には、プログラムの数が増
すにつれてますます複雑になって来る。しかし若干のプログラムを結合すること
は珍しいことではない。例えば、集積回路を設計するための1つのCADプログ
ラムを回路基板を設計するための別のCADプログラムと、及びこれらの基板を
製造するためのCAMプログラムと結合する必要があり得る。
典型的には、1つの応用プログラムと他の若干の応用プログラムとの結合は、第
1のプログラムを他の各プログラムと結合可能ならしめるように設計することに
よって達成する。しかし、この設計戦略は各プログラムの入力要求に関する詳細
な知識を必要とし、また新しい応用プログラムが付加される度毎に第1の応用プ
ログラムの再設計を必要とするかも知れない、その代りとして、もし他の応用プ
ログラムを第1の応用プログラムと結合させるために再設計するものとすれば、
同様な問題が発生する。
変形として、第1の応用プログラムと他の応用プログラムとを結合させるために
変換プログラムを使用することが可能である。
しかし、他のプログラムが追加されると、別の変換プログラムを設計しなければ
ならない。
結合を達成するためにこれらの変換プログラムを使用し、応用プログラムを再設
計するためには相当な時間、努力及び費用を必要とする。この時間、努力及び費
用は、結合すべきプログラムの数と共に劇的に増大する。
付加的な変換プログラムの必要性を排除するために、異なるプログラムがアクセ
ス可能なある領域内のメモリにデータを記憶させる共通データベースが採用され
ている。共通データベースを使用するシステムは、各応用プログラムが共通デー
タベースとのインターフェイスを有しているだけでよい。これらのインターフェ
イスは、応用プログラムによって出力されたデータを共通データベースに記憶さ
せるためのフォーマントに変換し、その共通データベースからのデータを応用プ
ログラムが受入れ得るフォーマントに変換する。データを記憶するものとして知
られている或は使用されている共通データベースシステムは、例えば′関係”、
“機能′、及び“コーダシル”データモデルを含む。
従来のデータモデルを使用する共通データベースシステムは、上述のプログラム
結合の発端の問題を解消するが、従来のデータモデルは結合されるプログラムに
別のプログラミング上の及び性能的な諸問題をもたらす。従来のデータモデルに
よってもたらされるプログラミング及び性能の諸問題に関する一つの検討がチャ
ールス・W、バックマンの合衆国特許4,631,664号に記載されているの
で参照されたい。
従って、本発明の目的は、付加的な変換プログラムの必要性及び複雑さを減少さ
せるか或は応用プログラムの再設計を減少させるような技法で共通データ構造を
使用して若干の応用プログラムを結合させる方法を提供することである。
また従来のデータモデルを使用する共通データベースシステムが遭遇する実際的
な性能問題を解消するプログラム結合方法を提供することも本発明の目的である
。
本発明の別の目的は、応用プログラムによる共通データ構造へのアクセスを管理
する手段を提供することである。
本発明の更に別の目的は、補助メモリを有するデータ処理システムに容易に応用
可能な共通データ構造を提供することである。
本発明の更に別の目的は、応用プログラム情報の複雑な相互関係を表わすことが
可能な単一原素エレメントのみを使用して、応用プログラム内の情報を表現する
ことである。
本発明の別の目的及び長所は以下の説明から、或は本発明の実行から理解される
であろう。
光里q景!
上述の目的を達成するために、及び実現され且つ以下に説明する本発明の目的に
よれば、複数の応用プログラムによってアクセスされるデータ構造は単一原素デ
ータエレメント即ち属性データ対象から創製される0本発明によれば、応用プロ
グラムを実行するデータプロセッサも、該データプロセッサに接続されているメ
モリ内にデータ構造を創製する。このデータ構造は、応用プログラムから発せら
れノードデータ及びノードデータ記述子を含むデータを使用して作成される。即
ち、データ構造を作成(創製)する方法は、前記データプロセッサが実行する:
各ノードデータ毎に異なる属性データ対象を作成し;各属性データ対象毎にこれ
らの属性データ対象から選択することによってホールドされた関係に従ってこれ
らの属性データ対象を階層的に編成し;各属性データ対象と単一のホールダデー
タ対象との間に階層的なホールドされた関係が存在するようにホールダデータ対
象を作成する諸段階を含む。
本方法は更に、属性データ対象の中から選択された属性データ対象のための関連
データ対象を選択することによって、少なくとも1つの前記ノードデータ記述子
に組合わされているノードデータから作成された属性データ対象の中の選択され
たもののために非階層的関係を確立する段階をも含む0選択された各関連データ
対象は、対応する選択された属性データ対象を作成したノードデータのノードデ
ータ記述子を表わす、これらの選択された属性データ対象を関係データ対象と呼
び、また関連データ対象を伴わない属性データ対象をエレメントデータ対象と呼
ぶ。
本方法は更に:少なくとも1つの属性データ対象をホールドする関係を有し且つ
何れの属性データ対象ともホールドされた関係を有していない頂点データ対象を
作成し:属性データ対象のための属性ファイルを作成し:各属性データ対象を属
性ファイル内へ挿入する諸段階をも含む。
また本発明によれば、本方法は:各属性データ対象毎に、その属性データ対象に
ホールドされた関係を有する1つの属性データ対象を指示するホールディングポ
インタを前記属性ファイル内に挿入し;属性データ対象間の非階層的関係を表わ
す関連ポインタを属性ファイル内に挿入する諸段階を含む。
本明細書に添付され、本明細書の一部をなしている添付図面は本発明の実施例を
示しており、説明と共に本発明の原理を教示する。
図面の簡単な説明
第1図は本発明によるデータ処理システムの例を示し、第2図は本発明によって
教示される属性データ対象の例を示し、第3図は本発明の属性データモデルの使
用を説明するために用いられる回路を示し、
第4図は属性データモードに従って第3図の回路を表わすためのデータ構造を示
し、
第5A図は本発明の好ましい実施例によるソフトウェアシステムの若干の成分の
ブロック線図、
第5B図は本発明の別の実施例によるソフトウェアシステムの若干の成分のブロ
ック線図、
第6図は本発明による複数ファイルを含むデータ構造を包含するメモリシステム
の内容の一部を示し、第7図は本発明の好ましい実施例においてポインタとして
使用される32ビツトロングワードを示し、第8図は第6図に示す属性ファイル
の構成要素部分のより詳細なブロック図、
第9図は第8図に示すエレメント見出しブロックのブロック図、第10A図及び
第10B図は第8閾に示す関係サブブロックの好ましい実施例のブロック図、
第11図は第8図に示す“ホールドされた”エレメントサブブロックの好ましい
実施例のブロック図、第12図は第8図に示す複数関係見出しブロックのブロッ
ク図、第13A図及び第13B図は第8図に示す2種類の複数関係サブブロック
の好ましい実施例のブロック図、第14図は第8図に示すインスタンスルートブ
ロックの好ましい実施例のブロック図〜
第15図は第6図に示すディクショナリファイルの好ましい実施例のブロック線
図、
第16図は第15図に示す頂点ブロック或は文脈ブロックの何れかの好ましい実
施例の基本構造及び内容に関するブロック図、第17図は第15図に示すエレメ
ント型ブロックの好ましい実施例のブロック図、
第18図は第15図に示す属性型ブロックのブロック図、第19図は本発明によ
る索引技ブロックの好ましい実施例のブロック図、
第20図は第19図に示す索引技見出しブロックの好ましい実施例のブロック図
、
第21図は第19図に示す索引結果ブロックのブロック図、第22図は第8図に
示す索引ディレクトリプロンクの好ましい実施例のブロック図、
第23A図及び第23B[Fは本発明によりエレメントデータ対象を作成するた
めの好ましい方法に包含される諸段階を示す流れ図、
第24AIla及び第24B図は本発明により関係を作成するための好ましい方
法に包含される諸段階を示す流れ図、第25図は本発明により関係を消去するた
めの好ましい方法に包含される諸段階を示す流れ図、
第26図は本発明によるエレメントデータ対象の消去に包含される諸段階を示す
流れ図、
第27A図及び第27B図は本発明により共通データ構造にアクセスする好まし
い方法に包含される諸段階を示す流れ図、第28区は本発明によりキー値を使用
して共通データ構造にアクセスする別の好ましい方法に包含される諸段階を示す
流れ図、第28A図は索引結果ブロックを示し、第29図は本発明による共通デ
ータ構造140′の好ましい実施例の詳細なブロック線図、
第30図は第29図に示す制御回路のポインタ/カウンタ区分の好ましい実施例
のブロック図、
第31図は129vjJに示すバージョンプロフタのブロック図、第32閏は第
29図に示すスイッチブロックのブロック図、第33図は本発明によるデータ構
造140′の更新に包含される諸段階を示す流れ閏、
第34図は第33図に示す好ましい引き渡しルーチンの流れ回、第35A図、第
35B図、及び第35C図はそれぞれ第34図に示す引き渡しルーチンに伴う初
期ハウスキーピング手順、中間ハウスキーピング手順、及び最終ハウスキーピン
グ手順の流れ図、及び
第36図は本発明により共通データ構造140′の所望バージョンにアクセスす
るための流れ図の好ましい実施例を示す。
以下に添付図面に基いて本発明の現在では好ましい実施例に関して詳細に説明す
る。
A、f゛デー 告
第1図は、中央処理装置(CPU)110及び120を含むデータ処理システム
100の図である。CPUll0は標準的で周知の如何なる中央処理装置であっ
ても差支えなく、またメモリ120は磁気コア、半導体RAM、I気ディスク及
び磁気テープ、或は他の如何なる周知メモリ装置をも含むことができる。またC
PUI 10は、応用プログラムを同時に実行できる若干の独立して走る中央処
理装置を表わすこともできる。第1図に示すように、応用プログラム130.1
32及び134はCPLIIIOによって交互に実行される。第1図にはCPL
ll 10は応用プログラム130を実行し、応用プログラム132及び134
はメモリ120内に記憶されているように示されている。
本発明によれば、応用プログラム130,132、及び134は、属性データモ
デルに基づく共通データ構造140を共有する。
属性データモデルは、単一原素の種々組合せとして応用プログラム130.13
2及び134によってアクセスされる情報の全てを表わす、一般的に応用プログ
ラム130.132及び134は、属性データモゾール或は別の何れかのフォー
マントでデータを包含するそれら自体のデータベースを有する。もし応用プログ
ラム情報が属性データモデルフォーマントでなければ、それは後述する手段によ
って該フォーマントに変換される。このようにするとデータ構造140は各応用
プログラム130.132、及び134によってアクセス可能となる。
共通データ構造140は、応用プログラムによって作成され、アクセスされる独
特なデータ構造であるため、より一般的なデータベースシステムとは異なる。属
性データモデルは、その草−原素として属性即ち属性データ対象を使用する。こ
れは他の複数の属性とのその関係に間するある階層情報を包含し、また非属性関
係を表わすために属性を°指し示す”ことができる。
第2図は属性データ対象200の例を示す、属性データ対象200の他の属性デ
ータ対象との階層関係は、その関係を如何に考えるかに依存して、ホールドして
いる或はホールドされている関係として表わされる。一般には各属性データ対象
は他の1つの属性データ対象だけにホールドされている(即ち他の1つの属性デ
ータ対象によってホールドされ得る)関係を有することができるが、各属性デー
タ対象は他の若干の属性データ対象をホールドする(或はホールドすることがで
きる)関係を有することが可能である。
各属性データ対象200はホールダ属性データ対象210と階層的に関係づけら
れている。ホールダ属性データ対象は、属性データ対象200をホールドしてい
る関係を有する属性データ対象である。反対に、属性データ対象A200は、属
性データ対象210にホールドされている関係を有する。
非階層関係即ち指し示しの関係は、属性データ対象によって表わされる情報間の
関係を表わす、若干の属性データ対象は、指し示しの関係を表わすために単一の
関連属性データ対象と関係付けることもできる。関連属性データ対象220は、
属性データ対象200によって表わされる情報と非階層関係を存する情報を表わ
す。
各属性データ対象200は、属性データ対象200と、属性データ対象200が
ホールドしている関係を有している属性データ対象、並びに属性データ対象20
0が“指し示している′関連属性データ対象との間の関係を表わす型データと関
係付けることもできる。
属性データ対象が本発明により従わなければならない規則は僅かしかない、各属
性データ対象は若干の他の属性データ対象をホールドすることはできるが、各属
性データ対象は他の属性データ対象だけにしかホールドされた関係を有すること
ができない。即ち、各属性データ対象は単一のホールダ属性データ対象しか有し
ていないのである。
一つの種類の属性データ対象、即ちエレメントデータ対象即ちエレメントは、分
離した関連属性データ対象を有していない。何故ならばこれらのエレメントはそ
れら自体を′指し示している°、即ち各エレメントがそれ自体の関連であると考
えられるからである。別の種類の属性データ対象、即ち関係データ対象は、単一
の分離した関連属性データ対象に関係付けられている。各属性データ対象は、複
数の属性データ対象のだめの関連属性データ対象であり得る。
属性データモデルにおける基本は、単一原素エレメント、即ち属性が他のデータ
ベース内の複雑な情報を表わすことができるという思想である。属性とは、1つ
の事物は別の事物に属するとするイデアを表わす0例えば、通常は自動車の属性
には、その色、そのエンジン、及びその所有者が含まれる。ある原素としての属
性の周辺に複雑なデータベースを編成することは、あるデータベースが基本的に
は属性の収集であるという概念を表わしている。
共通データベース140はこの概念の具体的表示である。
前述のように、エレメント即ちエレメントデータ対象はそれら自体に関連する属
性データ対象であり、換言すればホールダ属性データ対象のみを有していて、分
離した関連属性データ対象は有していない、あるエレメントは、ある自動車、あ
るエンジン、ある乗算器回路のあるバージョン、或はある信号を表わすことがで
きる。あるエレメントにホールドされた関係を有する複数のエレメントは、例え
ばそのエレメントによって表わされている事の内部構造を表わすことができる。
例えば、もしあるエレメントがエンジンを表わしているものとすれば、エンジン
を表わしているそのエレメントにホールドされた関係を有する他の複数のエレメ
ントはピストン、シリンダ、及びピストンリングを含むことができる。
データ構造140の各実施例は、別の属性データ対象にホールドされた関係を有
していない1つの属性データ対象を有している。
この属性データ対象は頂点或は頂点属性データ対象と呼ばれ、少なくとも1つの
他の属性データ対象をホールドする。唯一の頂点属性データ対象、及び各属性デ
ータ対象に対して1つのホールダの要求に加えて、データ構造140の各実施例
は本発明による属性データ対象の形態を有する。この形態は、必ずしも必要とは
しないが、頂点から開始することによって、及びホールドしている関係の他の属
性を一時に1つ加えることによってこの形態を作成することができるようになっ
ている。この制限が階層を作り、例えば第1の属性データ対象が第2の属性デー
タ対象をホールドする関係を有し、第2の属性データ対象が第3の属性データ対
象をホールドする関係を有し、そして第3の属性データ対象が第1の属性データ
対象をホールドする関係を有するようなある円或はループ形態となるのを阻止す
る。このような形態は本発明による階層ではない。
上述のような関係即ち関係データ対象は、その属性データ対象自体とは異なる関
連属性データ対象に関係付けられたある属性データ対象である。関係は、複数の
エレメントにホールドされた関係を有することができる0例えば、もしあるエレ
メントがある乗算器回路を表わしているものとすれば、1つの関係はそのエレメ
ントをその乗算器の先行バージョンたらしめることができる。更に、関係は、他
の関係とホールドしている及びホールドされた関係を有することができる0例え
ば、もし第1の関係属性データ対象が乗算器の部品番号に属しているものとすれ
ばこの第1の関係属性データ対象は、部品番号を乗算器に割当てたデータを第1
の関係属性データ対象に属さしめた第2の関係属性データ対象をホールドするこ
とができる。
属性データモデルは例を用いると理解し易い、第3図は3人力ANDゲート32
0及び2人力ANDゲート330を含む回路を示す、ANDゲート320の入力
は322.324及び326であり、ANDゲート330の入力は332及び3
34である。
ANDゲート320の入力322はANDゲート330の出力336によって駆
動され、ANDゲート330の入力334はANDゲート320の出力328に
よって駆動されている。
第3図の回路は多くの異なるデータモデルに従って表わすことができる0例えば
、もしそれが関係データモデルによって表わされるものとすれば、ゲート、入力
及びゲートの負荷に関する分離した表が存在しよう、これらの表は他の表内のエ
ントリの識別名を包含している臀である。
第4図は、本発明の属性データモデルに従って第3図の情報を表わすデータ構造
400を示す、データ構造400は第1図の共通データ構造140内に記憶させ
ることが可能である。
データ構造400は頂点410を含み、頂点410は前述のように他の何れの対
象にもホールドされた関係を有していない、更に頂点410は、文脈であること
もできるCPU属性データ対象420をホールドする(即ちホールドする関係を
有する)、この文脈は属性データ対象の命名を容品にしく何故ならばこれらの名
前は命名された対象をホールドする文脈内のみに意味を有するからである)、ま
た第3図の回路及び信号のようにその文脈に関連する属性データ対象をホールド
する関係を確立するための構造である。
CPU属性データ対象420は、回路エレメントである属性データ対象430及
び440をホールドする。属性データ対象430は第3図の回路を表わす、属性
データ対象430自体は、ゲートエレメントである2つの属性データ対象450
及び460をホールドする。ゲートエレメント450自体は、ビンエレメントで
ある4つの属性データ対象480.482.486及び488をホールドする。
このようにして階層的にホールドする関係が第3図の情報に付諜される。
第4図に示すように、第3図からの他の情報も階層的に編成される。頂点410
は他のエレメントの名札を表わすエレメント462.464.466.468.
490、及び492もホールドし、また属性データ対象420(CPLI要素)
は信号エレメントを表わすエレメント470.472.474、及び476をホ
ールドする。
属性データ対象の階層配列は、集合的に概念的対象を表わす属性データ対象を包
含するのに用いられる“包含の木”をもたらす。
ルート属性データ対象或は包含の木のルートと呼ばれる属性データ対象の包含の
木は、そのルートによってホールドされた(即ち直接的にホールドされた)全て
の属性データ対象を含み、また包含のり木内の他の何れかの属性データ対象によ
ってホールドされた(即ち間接的にホールドされた)全ての属性データ対象をも
含む、直接的にホールドされた、或は別の属性データ対象によって間接的にホー
ルドされた属性データ対象は、該別の属性データ対象から、或は該別の属性デー
タ対象の包含の木の中に°包含され”でいると言われる。ある包含の木において
は、その木によって表わされる概念的対象はそのルートに一致する。この包含の
木内の他の全ての属性データ対象は成分、リストに載せられた項目、或は木によ
って表わされる概念的対象内の関係のような概念的サブ対象を表わす、包含の木
の中の属性データ対象はその包含の木の外側の属性データ対象との関係を表わす
こともできる。
第4図において、回路エレメント430に関する包含の木は、ゲートエレメント
450及び460、及び回路エレメント430及びゲートエレメント450によ
ってホールドされている関係データ対象(即ち、エレメント440及び468を
指し示している関係データ対象、及びエレメント462を指し示している関係デ
ータ対象)、エレメント450によってホールドされているエレメント(!pち
ビンエレメント480.482.486及び488)、及びビンエレメント48
0及び488によってホールドされている関係データ対象(即ちエレメント46
4.470.472及び466を指し示している関係データ対象)を含む。
詳細を後述するように、包含の木を使用すると、複雑な対象を消去するような操
作が腸略化される0例として、ある対象の消去は対応する包含の木の共通データ
構造からの除去を包含する0本発明によれば、その木の中の全ての属性データ対
象を迅速に識別することが可能であり、従来のデータベースに広く用いられてい
る自動ごみ集めによってもたらされるランダムな休止を排除することができる。
第4図は他の若干の属性データ対象をも含み、これらは第4図には属性データ対
象として表わされている第3図内の各事物を記述する情報を表わす。例えば、属
性データ対象430は名前“XYZ”を指し示す間係≠−タ対象をホールドして
いる。この関係データ対象は関連属性データ対象として“XYZ”を有している
9名前“xYz″はエレメント468である。同様にして、エレメント450は
、第4図にはエレメント450として表わされている第3図のANDゲートの番
号(320)であるエレメント462を指し示す関係データ対象を有している。
第4図は更に他の関係を示している6例えばSl及びs2のような信号を表わす
エレメント470.472.474、及び476は、一連の関係として表わされ
ているリンクされたリストに編成されている。更に、属性データ対象480は属
性データ対象470を指し示す関係をもホールドしており、この対象によって表
わされている信号が対象450によって表わされているゲートへの1つの入力で
あることを示している。エレメント470によってホールドされているエレメン
ト480を指し示す関係によって、逆関係も表わされている。属性データ対象4
70によって表わされている信号の名前は、属性データ対象470によってホー
ルドされ名札“Sl”を表わしている属性データ対象490を指し示している関
係によって表わされている。
整数35或は文字“K”のような簡単な定数はエレメントであり、頂点によって
ホールドされた単一の属性データ対象によって表わすことが好ましい、また文字
列を、頂点によってホールドされたエレメントとすることも好ましい、しかし、
文字列エレメントはその構成文字対象に対する関係のリストをホールドする。即
ち、例えば、列“CAT”はあるエレメントデータ対象によって表わすことがで
き、このエレメントデータ対象は他の3つのエレメントデータ対象即ちエレメン
ト、即ち文字“Co、“A′、及び“T”に対する第1の関係を保持する0文字
列“CAT”を形成するためのこれらの文字エレメントの順序付けは、第1の関
係をあるリストに編成する第2の関係によって表わすことができる。
例えば、“CAT”から“Coまでの関係は、関連データ対象が“CAT”から
“A”までの関係である関係をホールドする。
B、ソフトウェアユーティリティ編
第5A図は本発明の好ましい実施例によるソフトウェアシステムの若干の成分の
ブロック線図である。これらの成分のあるものの動作に関しては後章で説明する
。第5A図に関しては、これらの成分の各成分の主機能及びこれらの成分の他の
成分に対する関係を説明するに留める。
第1図に示す共通データ構造140は、主データベース510及び従データベー
ス520を含むことが好ましい、共通データベース140に対する何等かの更新
は主データベース510に対して行われ、後刻そのコピーが従データベース52
0の次のパージョンを形成する。
第5A図において、530及び560は、第1図の応用プログラム130.13
2及び134のような2つの応用プログラムを表わす0本発明によれば、データ
処理システムは、特定された関係データ対象の関連属性データ対象を共通データ
構造から検索する手段を含む、第5A図に示す応用プログラム530に関しては
、検索プログラム580がこの検索機能を遂行する。従データベース520は、
実際のデータを応用プログラム530及び560に供給する。
検索プログラム580の部分の実施例の詳細は後章で説明する。
しかし、要約すれば、応用プログラム530は検索プログラム580に対して関
係データ対象を特定し、その特定された関係データ対象の単一の或は複数の関連
データ対象を請求する0次で検索プログラム580はその特定された関係データ
対象に関して従データベース520をサーチする。特定された関係データ対象が
得られると、検索プログラム580はこの或はこれらの関連属性データ対象をコ
ピーし、関連データ対象を応用プログラム530に適用できるフォーマ7)に配
置するのに必要な何等かの変換を遂行し、そしてフォーマントされた関連データ
対象を応用プログラム530に渡す。
本発明のデータ構造は、特定された属性データ対象にホールドされた関係を有す
る全ての属性データ対象を、共通データ構造から検索する手段をも含む、再び、
第5A図に示す好ましい実施例の検索プログラム580はこの型の検索を遂行す
る。その動作を説明すれば、応用プログラム530は属性データ対象を特定し、
この特定された属性データ対象にホールドされている他の全ての属性データ対象
を請求する0次で検索プログラム580はその要求を適切なフォーマントに変換
し、この特定された属性データ対象が位置付けされるまで従データベース520
をサーチする。特定された属性データ対象が位置付けられると、検索プログラム
580はこの特定されたデータ対象によってホールドされている全ての属性デー
タ対象のコピーをめる0次で検索プログラム580はこれらのホールドされた属
性データ対象を応用プログラム530に適用できるフォーマントに変換し、変換
されたこれらの属性データ対象を応用プログラム530へ送る。
本発明によれば、データ処理システムは、特定された型の全ての属性データ対象
から共通データ構造情報を検索する手段をも含む0例えば応用プログラム530
からの請求に応答して、検索プログラム580は特定された型の金属性データ対
象に関して従データベース520内の共通データ構造140をサーチする。これ
らの特定された属性データ対象を見出すと、これらの属性データ対象は抜出され
、適切なフォーマントに変換され、検索プログラム580へ送られる。
検索プログラム590は、検索プログラム580と同一の機能を遂行することが
好ましい。検索プログラム580と590との間の唯一の機能差は、情報の応用
プログラム530及び560への送り方に過ぎない。例えば、検索プログラム5
90は上述した一連の検索を遂行し、得られたデータを応用プログラム560に
通するフォーマントに変換し、このデータをファイル595内へ書込むことがで
きる。応用プログラム560はファイル595から検索されたデータを続出す。
更に本発明によれば、新らしい属性データ対象を、それらをホールドする属性デ
ータ対象となることが望ましい属性データ対象の識別から、共通データ構造内に
作成する手段をも含む、この作成手段は、ある関連データ対象の識別から新らし
い属性データ対象を作成し、作成された関係データ対象を形成させる手段も含む
。
第5A図は、本発明の好ましい実施例により新らしい属性データ対象を共通デー
タ構造140内に作成する種々の方法を示す。
例えば、応用プログラム530は、該プログラム530内のデータベースから必
要情報を受けているコンバータプログラム540を使用し、主データベース51
0内に共通データ構造を形成するのに必要な情報を抜出し、ホールダ属性データ
対象及び関連データ対象を決定することによって属性データ対象を作成する。コ
ンバータプログラム540はこれらの属性データ対象を主データベース510へ
送って記憶させる。
別の例として、応用プログラム530のデータベース内に作られた情報を、以下
のようにして主データベース510へ送ることができる。先ず、応用プロンラム
530は更新同期装置550へある要求を送る。この要求は所望の更新を特色付
ける情報を含む。
次で更新同期装置550は、応用プログラム530からの情報を使用して共通デ
ータ構造140内に属性データ対象を作成することによって主データベース51
0を変更するようにコンバータプログラム540に通知して主データベース51
0を変更させる。
更新同期装置550は、更新要求内の特色付は情報に従って主データベース51
0内に属性データ対象を作成するのにも使用できる。
コンバータプログラム570は、コンバータプログラム540と同一の機能を遂
行することが好ましい。第5A図に示すコンバータプログラム540と570と
の間の唯一の差異は、応用プログラム560からの情報の送られ方である。応用
プログラム560は先ずファイル565内へデータを書込む。コンバータブ口グ
ラム570は、更新同期装置550から信号を受けた後、ファイル565を読み
、ファイル565内のデータに従って主データベース510の共通データ構造1
40内に属性データ対象を作成する。
主データベース510の変更、及びコンバータプログラム540及び570への
信号送信は、主データベース510の共通データ構造140及び従データベース
520が応用プログラムによって使用されている間でも主データベース510が
規則通りに且つ非中断的に更新されるように更新同期装置550によって遂行さ
れる。コンバータプログラム540或はコンバータプログラム570による主デ
ータベース510に対する変更が完了すると、主データベース510の共通デー
タ構造140のコピーが従データベース520の新バージョンとして利用可能と
なり、この新バージョンに検索プログラム580及び590がアクセス可能とな
る。
本発明は、共通データ構造から特定された属性データ対象を除去する手段をも含
む、これは時には消去動作として知られており、共通データ構造が階層的データ
構造であるために容易に遂行される。好ましい実施例においては、コンバータプ
ログラム540のようなデータベース変更プログラムは、先ず応用プログラム5
36から受けた要求に応答して特定された属性データ対象を位置付ける0次でコ
ンバータプログラム540はその属性データ対象を共通データ構造140から除
去する。
更に、応用プログラム530は、特定された属性データ対象を除去することを要
求できるだけではなく、その属性データ対象に関する包含の木全体を除去するこ
とを要求することも可能である。
応用プログラム530からのこれらの要求に応答して、コンバータプログラム5
40はこの特定された属性データ対象を位置付けする。またコンバータプログラ
ム540は、この特定された属性データ対象によってホールドされている全ての
属性データ対象の位置付けも行う、コンバータプログラム540は、ホールド関
係を検査して初めに特定された属性データ対象によって直接的に或は間接的にホ
ールドされている全ての属性データ対象を位置付けしながら包含の木を通って行
く、コンバータプログラム540は位置付けした全ての属性データ対象を共通デ
ータ構造140から除去する。
第5B図は、共通データ構造140′内のソフトウェアシステムの諸成分の変形
実施例のブロック線図である。破線によって囲まれている要素、即ち応用プログ
ラム530、コンバータプログラム540及び検索プログラム580は、第5A
図の対応要素と木質的に同一である。
第5B図の共通データ構造140′は主データファイル515及びスナップショ
ットデータファイル525を包含する。共通データ構造140の従データベース
520と同様に、共通データベース140′は主データファイル515の少なく
とも1つのバージョンの完全コピーを包含する。しかし、従データベース520
とは異なり、スナップショットファイル525は更新済の主データファイル51
5の複数部分を記憶することによって主データファイル515の複数のバージョ
ンを表わすように設計されている。
これに対して従データベース520は主データベース510の現行バージョンの
完全コピーを表わすように設計されている。共通データ構造140′は、共通デ
ータ構造140′の制御に必要なデータ、及び若干の応用プログラムによる構造
140′への同時アクセスを回正するための若干のロックを含む制御ファイル5
55をも含む、これらのロックの中の変更ロック568及びDBCロック569
の2つを示してあり、これらの詳細に関しては後述す更に、共通データ構造14
0′と第5B図に破線によって示すソフトウェアとの間のインターフェイスを提
供する記憶管理ソフトウェア566が示されている。記憶管理ソフトウェア56
6の複数の部分の好ましい実施例の詳細は後述する。
C1共゛データベースのデータ構浩表六本発明の好ましい実施例においては、共
通データ構造140或は140′は、プログラム132及び134のような応用
プログラムと共にメモリ120内に記憶される。この配列は、共通データ構造1
40の複数のファイル内への好ましい編成的な構造として第6図に示しである。
第6図に示すように、メモリ120の共通データ構造140部分は属性ファイル
600、ディクショナリファイル700及び索引ファイル800を含むことが好
ましい。これらのファイルを詳細に説明する前に、システム全体の理解を容易な
らしめるために、ファイルの機能に関して概要を説明する。
属性ファイル600は全ての属性データ対象を、より正確には各属性データ対象
毎のメモリ領域或はデータエントリを含むことが好ましい、属性ファイル600
の好ましい実施例においては、エレメントデータ対象及び関係データ対象の両者
を含む属性データ対象は、プログラム130.132及び134のデータベース
内の情報と矛盾がないように編成される0例えば、詳細を後述する技法において
は、データベースのノードデータ及びノードデータ記述子はエレメントデータ対
象及び関係データ対象に対応し、所望の属性データ対象へのアクセス及びそれら
の識別を容易ならしめるように計画された論理的技法で階層的なホールド関係を
属性データ対象に付課する。
ディクショナリファイル700は、頂点及び他の文脈のためのデータエントリ、
並びに属性ファイル600内の属性データ対象の型を記述する情報を含むことが
好ましい、頂点及び文脈のためのデータエントリは属性ファイル600内に記憶
させても差支えないが、ディクショナリファイル700は主として読出し専用フ
ァイルとして取扱われ、また頂点及び文脈データは一般的に変化するものではな
いために、本発明の好ましい実施例においてはディクショナリファイル700内
に記憶させである。
索引ファイル800は、属性ファイル600内の属性データ対象に迅速なアクセ
スを得るためにCPUI 10が使用する情報を含むことが好ましい、索引ファ
イル600は、データ構造140の利用効率を高めるために、実際の多くのデー
タ構造140の実施例を利用するように設計されている。
本発明の好ましい実施例においては、共通データ構造140内の属性ファイル6
00、ディクシツナリファイルア00、及び索引ファイル800は、ディスクの
ようなメモリ120の“永久”メモリ区分内に保持されている。CPU110が
ファイル600゜700及び800の若干の部分にアクセスする必要を生じた時
は、CPUI 10はこれらの部分を半導体RAMメモリのような一次メモリへ
転送する。永久メモリは一次メモリに比して比較的大きく、CPUI 10は永
久メモリと一次メモリとの間のデータの流れを周知の仮想メモリ技術を使用して
、且つ以下に説明する好ましい技法で管理することが好ましい。
共通データ構造140内の各ファイル内のデータはマクロへ一ジに集群させるこ
とが好ましい、各マクロページは、1つのファイルの相接する64にバイト部分
であり、このファイルは512バイトの128ページからなる0本発明の実施例
においては、属性ファイル600、ディクショナリファイル700、及び索引フ
ァイル800は16にマクロページまで記憶可能にしである。
本発明の好ましい実施例においては、属性ファイル600、ディクショナリファ
イル700、及び索引ファイル800内の標準単位は4バイト即ち32ビツトか
らなるロングワードである。ファイルのページ或はマクロページは、典型的には
各々数ロングワードの群からなる数ブロックを含む、このロングワードはポイン
タとして使用されることが多い。
第7図は、ポインタとして使用される32ビツトのロングワード615を示す、
好ましい実施例においてはCPUI 10が共通データ構造140のファイル内
の各データプロツク毎にロングワードポインタを誘導する。
好ましい実施例によれば、ロングワードポインタ615は最左ビット即ち一時的
フイールド616を含み、このフィールドはこのポインタが“指し示す”メモリ
のブロックが永久データ構造の一部ではないか否かを表わし、永久データ構造の
一部ではない場合にはポインタの残余は一部メモリ内のブロックの仮想アドレス
である。第7図に示す他のフィールドは、ブロックが永久メモリ内に位置付けら
れた永久データ構造の一部であって、必要に応じて一部メモリへ転送される場合
にのみ適用されるものである。
種類フィールド618は2ビツト長であり、ロングワードポインタ615が指し
示すブロックの種類を指定する0例えば、好ましい実施例においては、このフィ
ールドは指し示されたブロックが属性ファイル6001デイクシツナリフアイル
ア00、或は索引ファイル800であることを表わす。
次のフィールド、即ちRフィールド620は1ビツト長である。
Rフィールド620は、付加的な種類のポインタを本発明に使用できるようにす
るために、現在では保留されている。
ロングワードポインタ615の最後のフィールドはオフセントフィールド622
であり、ロングワードポインタ615の最古の28ビツトからなる。オフセント
フィールド622は、参照された情報の位置を参照されたブロックを包含するフ
ァイルの始めからのロングワードオフセットとして特定することによって該情報
を識別する。
好ましい実施例に使用されるポインタは本発明の効果に必要とされるものだけで
はない0例えば、ポインタは対応項目の位置を直接的に表わすことも可能であり
、或はその位置を間接アドレッシング或は索引を付したアドレッシングのような
手順を介して間接的に表わすことも可能である。
1、層性スニ不y
第8図は、属性ファイル600の構成要素部分のより詳細なブロック図である。
属性ファイル600は若干のエレメントブロックを含む、しかし簡略化のために
、またこの項の説明の都合上1つのエレメントブロックのみを図示してあり、エ
レメントブロンクロ02によって表わされている属性データ対象を以下に“表示
されたエレメント3と呼ぶ、このエレメントブロックは属性ファイル600の好
ましい実施例におけるエレメント属性データ対象を表わすための基本データ単位
である。エレメントブロック602は、1つのエレメント見出しブロック604
.1つ或はそれ以上の関係サブブロック606 (随意)、及び1つ或はそれ以
上の°ホールドされた”エレメントサブブロック608 (随意)を含むことが
好ましい、エレメント見出しブロック604に続くエレメントブロック内の相接
するサブブロックの数及び型に関する情報はディクショナリファイル700によ
って或はコンパイラの使用を通して与えることが好ましい、これらのブロック及
びサブブロックの詳細に関しては後述する。
属性ファイル600は、複数関係ブロック610をも含むが、簡略化の目的から
それらの1つのみを図示しである。各複数関係ブロック610は、データ構造1
40内の非階層的関係を表わす1つ或はそれ以上の関係データ対象に関するデー
タを包含する。
複数関係ブロック610は、1つの複数関係見出しブロック612及び1つ或は
それ以上の複数関係サブブロック614を含むことが好ましい。これらのブロッ
ク及びサブブロックの詳細も後述する。
最後に、属性ファイル600は、複数のインスタンスルートブロック625及び
複数の索引ディレクトリブロック630を含むが、簡略化のためにそれぞれ1つ
しか図示してない、これら2つのブロックの詳細に関しても後述する。
第9図は、本発明の好ましい実施例におけるエレメント見出しブロック604の
ブロック図である。この実施例においては、データ構造140内の各属性データ
対象は、エレメント見出しブロック604のようなエレメント見出しブロックに
よって表わされる0図示のように、エレメント見出しブロック604は6つのロ
ングワード900.920.925.930.935、及び940を含む。
ロングワード900は空フィールド905、大きさフィールド910、及び類フ
ィールド915を含むことが好ましい、大きさフィールド910はエレメント見
出しブロック604内のロングワードの数を示す、類フィールド915は、ブロ
ック604がエレメント見出しブロックであることを指示する。
ロングワード即ち型限定ポインタ920は表示されたエレメントのエレメント型
情報を包含する。型情報は、例えば頂点、他の文脈、及びこれらの文脈のための
識別名を確立することが可能な特別なコンパイラを使用することによって、若干
の他の手段に共通データ構造を利用可能ならしめている。
次のポインタ925及び前のポインタ940は、表示されたエレメントと同一の
ホールダ属性データ対象を有する属性データ対象のエレメントブロックの位置を
指定する。本発明の好ましい実施例においては、同一のホールダ属性データ対象
を有する共通型の属性データ対象は、これらのロングワードポインタの使用によ
ってリンクされる。次のポインタ925及び前のポインタはこのようなリンクを
行う。
エレメント見出しプロンクロ04のホールダボインタ930及び参照ポインタ9
35は、表示されたエレメントと属性ファイル600内に表わされている他の属
性データ対象との間の階層的にホールドされた関係及び非階層的関係をそれぞれ
指示する。ホールダボインタ930はある属性データ対象のエレメント、即ち表
示された属性データ対象がホールドされた関係を有する“ホールダ対象”を指し
示す。即ち、ホールダボインタ930は、エレメントブロック602によって表
わされる属性データ対象をホールドしている属性データ対象のエレメントブロッ
クを指し示す。
参照ポインタ935は、属性ファイル600内の複数関係ブロック(例えば第8
図のブロック610)のシーケンスの最初を指し示す。これらの複数関係ブロッ
クは、表示されたエレメントが関連データ対象であるという関係をホールドして
いる属性データ対象を指示する。複数関係ブロックの詳細を以下に説明する。
対象ブロック602(第8図)の関係サブブロック606及び“ホールドされた
”エレメントブロック608は、エレメント見出しブロック604に接する相接
したサブブロックであることが好ましい、各対象ブロック毎に、若干の関係サブ
ブロック及び若干の“ホールドされた”エレメントサブブロックを設けてよい。
関係サブブロック606は、表示されたエレメントによってホールドされている
単独関係の関連属性データ対象を特定する。“ホールドされた”エレメントサブ
ブロック608は、表示されたエレメントとホールドされた関係を有する属性デ
ータ対象を特定する0表示された対象の関係サブブロック606及び“ホールド
された”エレメントサブブロック608は、多分混乱した順序で出現しよう。
第10A図及び第10B図は、関係サブブロック606の好ましい実施例のブロ
ック図である。関係サブブロック606は2種類の情報の1つを包含することが
好ましい、もし関係サブプロ。
り606が関係ポインタであれば、それはロングワード即ち関係ポインタ100
0 (第10A図)として現われ、単一の関連属性データ対象のエレメントブロ
ック、或は表示されたエレメントによってホールドされた関係にある若干の関連
属性データ対象を戯れかを特定する。
変形として、関係サブブロック606は、数或は日付、或は記号列を識別する数
値/列識別名であってもよい。もし関係サブブロック606が数値或は日付識別
名であれば、それは二重ロングワードとして現われる。@別名1050は文字列
に関する属性データ対象を表わすエレメントブロックを指し示すポインタであっ
ても、或はそれ自体が整数、或は浮動点定数或は日付であってもよい。
第11図は、第8図に示す“ホールドされた”エレメントサブブロック608の
好ましい実施例のブロック図である。サブブロックロ08はロングワードポイン
タ1100.111O1及び1120を含む、ロングワード即ち最初ポインタ1
100は、表示されたエレメントとホールドされた関係を有する属性データ対象
の選択された順序内の最初のエレメントデータブロックを識別する。もし1つの
属性データ対象だけがその関係を有していれば、最初ポインタ1100はその属
性データ対象を識別する。ロングワード即ち最後ポインタ1110は、上述のよ
うな属性データ対象の選択された順序の最後を識別するが、もし1つのホールド
された対象だけが存在する場合には、最初の属性データ対象を識別することにな
る0表示された対象とホールドされた関係を有する属性データ対象の選択された
順序とは、これらの“ホールドされた”属性データ対象の次のポインタ及び前の
ポインタによって限定されるリンケージである。
ロングワード即ち索引ポインタ1120は、索引ディレクトリブロックを指し示
すポインタである。これらのブロックの詳細は後述するが、その説明から索引ポ
インタ11200機能は理解されよう。
前述のように、複数関係ブロック610は、若干の関連属性データ対象を識別し
なければならない場合に効果的な参照手段となる。各複数関係ブロック610は
、1つの複数関係見出しブロック612及び1つ或はそれ以上の複数関係サブブ
ロック614を含む。
第12図は、本発明の好ましい実施例による複数関係見出しブロック612のブ
ロック図である。複数関係見出しブロック612はロングワード1200.12
10.1220、及び1230からなる。ロングワード1200は、使用フィー
ルド1203、エントリフィールド1205、大きさフィールド1207、及び
類フィールド1209を含む。使用フィールド1203は、有効ポインタを包含
できる見出しブロック612の複数関係サブブロック614の最後のサブブロッ
クを指示する。エントリフィールド1205は、複数関係ブロック610内に含
まれる見出しブロック612に続く相接する複数関係サブブロック614の数(
これらのサブブロックがポインタを包含すると否とに拘わらず)を包含する。大
きさフィールド1207及び類フィールド1209はそれぞれ、複数関係ブロッ
ク610内のロングワードの数、及びこの見出しブロックが複数関係見出しブロ
ックであることを指示する。
ビットマスクフィールド1230は、どのサブブロック614が有効ポインタを
包含しているかを指示する。即ち、使用フィールド1203は有効ポインタを有
し得る相接するサブブロックの最大数を指示するが、これらの全てのポインタが
有効である必要はない、ビットマスクフィールド1230はこの後者の情報を供
給する。
複数関係ブロックは、同一のホールダ属性データ対象を有する属性データ対象の
エレメントブロックのリンケージと同様にしてリンクされている。即ち、見出し
ブロック612は、複数関係ブロックの選択された順序内の次の及び前の複数関
係ブロックをそれぞれ特定する次のロングワードポインタ1210及び前のロン
グワードポインタ1220を含む、この順序内の複数関係見出しブロックは全て
同一ホールダ属性データ対象によって使用される。
第13A図及び13B図は、2種類の複数関係サブブロック614の好ましい実
施例のブロック図である。もし関連属性データ対象が列数字、或は日付以外のエ
レメント属性データ対象であれば、関係ポインタ1300はその属性データ対象
のエレメントブロックを指し示すロングワードである。もし関連属性データ対象
が数、或は日付、或は文字列であれば、浮動点数、或は日付、或は文字列を表わ
すブロックを指し示すのに数値7列フィールド1310が使用される。
本発明の教示によるエレメントブロック602及び複数関係ブロック610の作
成及び使用の詳細を以下に説明する。容易に理解できる如く、上述の属性ファイ
ル600のデータ構造表示は、本発明による属性データモデルの原理を実現して
いる。
インスタンスルートブロックの内容及び構造を第14図に示す。
エレメント型の1インスタンス”とは、全てが同一のエレメント型を有し且つ全
てが同一のホールダ属性データ対象を有している一組の属性データ対象を云う、
これらの群の属性データ対象を屡々参照することが決定されている。即ち、イン
スタンスルートブロックは、これらの属性データ対象にアクセスする効率的なメ
カニズムを提供するために開発されたのである。インスタンスルートブロック6
25を属性ファイル600内に位置付けることによって、このブロックを本質的
には読出し専用のディクショナリファイル700内に位置づけるよりも容易に動
的に更新することが可能になる。
インスタンスルートブロック625は、該ブロックロ25内のロングワードの数
を指示する大きさフィールド1413、及び該ブロック625がインスタンスル
ートブロックであることを指示する類フィールド1416を含むロングワード1
410を含む。
インスタンスルートブロックロ25は、何れかの線内の最初の属性データ対象を
指示する最初ポインタ1420、及び最後の属性データ対象を指示する最後ポイ
ンタ1430をも含む、ボインタ1420及び1430は、これらの属性データ
対象のエレメント型ブロック(ディクシツナリファイルア00に関連して後項で
説明する)の位置を識別することが好ましい。
ブロックロ25の索引ポインタ1440は、属性ファイル600内の索引ディレ
クトリブロック(後述)を指し示し、それによって属性データ対象のリンクされ
たリストの各インスタンス、インスタンスルートブロック625のポインタ14
20及び1430によって特定される最初と最後の対象へ容易にアクセスするこ
と第15図は、ディクショナリファイル700の好ましい実施例のブロック線図
である。この好ましい実施例においては、ディクショナリファイル700内の共
通データベース構造の部分は頂点ブロック702、他の文脈ブロック704及び
706、エレメント型ブロック710及び712、属性型ブロック714及び記
号表716を含む。
頂点ブロック702は、頂点データ対象を表わす特別な種類の文脈ブロックであ
る0本発明の属性データモデルの基本規則によれば、頂点対象は文脈或は属性デ
ータ対象をホールドするが、それ自体が文脈或は属性データ対象によってホール
ドされることはない。
文脈ブロック704及び706は、第4図に関して説明したCPU420のよう
な文脈を表わすのに使用される。エレメント型ブロック710及び712は、そ
れぞれ、属性ファイル600内の属性データ対象の異なる型を表わす、属性デー
タ対象の各異なる型缶に、対応するエレメント型ブロックが存在することが好ま
しい、属性型ブロック714は、特定された型の属性データ対象とこれらの属性
データ対象の関連との間に存在する関係の型に関する情報を含む、記号表716
は、ディクショナリファイル700の種々のブロックによって表わされている頂
点、文脈、エレメント型、及び属性型のための識別名を包含する。
上述のように、頂点ブロック702、及び文脈ブロック704及び706はディ
クショナリファイル700内ムニ記憶させることが好ましい、何故ならば、ディ
クショナリファイル700は通常は読出し専用ファイルだからである。極めて類
領し、従って以下に一緒に説明する頂点ブロック702、及び文脈ブロック70
4及び706は一般に変更されることはなく、従ってこれらは主として読出し専
用ファイルである。
第16図は、頂点ブロック702、或は文脈ブロック704或は706の何れか
の好ましい実施例の基本構造及び内容のブロック図である。頂点ブロックと文脈
ブロックとが酷イ以しているため文脈ブロックのファイル構造のみを説明するが
、頂点ブロックのファイル構造も類似であることを理解されたい。
文脈ブロック704において、ロングワード1600は大きさフィールド160
3及び類フィールド1606を含む、大きさフィールド1603は文脈ブロック
704のロングワードの数を指示し、類フィールド1606はこのブロックが頂
点ブロック或は文脈ブロックの何れかであることを指示する。
ロングワード即ち名前ポインタ1610は、ブロック704によって表わされて
いる頂点或は他の文脈のための識別名を特定する記号表716のエントリを識別
する(第14図参照)ロングワード即ち包含された最初の文脈ポインタ162o
は、文脈ブロック704によってホールドされた一組の文脈の最初の文脈ブロッ
クを差し示す、以下に説明するポインタ163o及び1640は、頂点ブロック
702においては空である。
文脈ブロック704においては、ロングワード即ち次のポインタ1630は上述
の順序付けられた組の文脈の中の次の順序の文脈を指し示す、ロングワード即ち
ホールダボインタ1640はブロック7040文脈をホールト′シている文脈或
は頂点の文脈ブロック或は頂点ブロックを指し示す。
ロングワード即ち最初のエレメント型ポインタ1650は、順序付けられたエレ
メント型ブロックの中の最初のブロック、例えばブロック710或712を指し
示す。この順序付けられた組のエレメント型ブロックは、文脈ブロック704に
よって表わされる文脈によってホールドされている属性データ対象のエレメント
型を表わす、この順序付けられた組は、エレメント型ブロックに関して後述する
ようにリンクされたリストであることが好ましい。
ロングワード即ち最初の記号ポインタ1660は、ブロック704によって表わ
される文脈によってホールドされている他の文脈、対象或は関係の順序付けられ
た組の記号の中の最初の記号として指定されている記号表716のエントリを識
別する。
頂点データ対象或は文脈属性データ対象が包含の木の最初の、即ち頂上部分とな
ることが好ましい。文脈内の特定されたエレメントの属性データ対象へのアクセ
スは、頂点から包含の木へ進入し且つ所望の属性データ対象が見出される文脈ま
で木を通って進行することによって達成することができる0本発明の好ましい実
施例においては頂点及び文脈はディクショナリファイル700内の頂点ブロック
及び文脈ブロックによって表わされているから、頂点或は文脈を通してデータ構
造の好ましい実施例内へ進入するには、ディクショナリファイル700内の頂点
ブロック或は文脈ブロックに記憶されている情報にアクセスする必要がある。本
発明による別の実施例においては、ディクショナリファイルを通るアクセスを必
要としないであろう。
第17図は、エレメント型ブロック710或は712のようなエレメント型ブロ
ックの好ましい実施例のブロック図である。この説明の都合上、エレメント型ブ
ロック712のみを説明するが、エレメント型ブロック710も同一成分を有し
ていることを理解されたい。
属性ファイル600内のエレメントの冬型毎に、ディクショナリファイル700
内にエレメント型ブロック712が存在する。
好ましい実施例においては、ある型のエレメントを属性ファイル600内に作成
するためには、その型のエレメントが存在し得ることの宣言を前置しなければな
らない。特定された型の対象の存在を表わすためのメカニズムがエレメント型ブ
ロック712である。
エレメント型ブロック712は、属性ファイル600内の若干のエレメントブロ
ックに関する一般的パラメータ、例えばこれらのエレメントブロックの長さに関
する情報及び所与のエレメント型のインスタンスに関する情報を包含する。
エレメント型ブロック712の内容及び構造は第17図に示す通りである。エレ
メント型ブロツク712内に含まれているのは、大きさフィールド1703及び
類フィールド1706を有するロングワード1700である。他のデータブロッ
クの場合と同様に、大きさフィールド1703はエレメント型ブロック712内
のロングワードの数を指示し、また類フィールドはブロック7】2がエレメント
型ブロックであることを指示する。
ロングワード即ちノードフオームフィールド1710は、エレメント型ブロック
712によって特定される型の属性データ対象が所定の順序を有しているか否か
、及びこの型のエレメントが文脈によってホールドされているのか或は他のエレ
メントによってホールドされているのかを指示する。ロングワード即ち名前ポイ
ンタ1720は、この型の属性データ対象の名前即ち識別名を有する記号表71
6のエントリを指し示す、インスタンス長フィールド1730は、ブロック71
2によって特定される型の属性データ対象のエレメントブロック602の長さを
特定する。
前述のように、同一の文脈によって包含される(即ち同一文脈の包含の木の中に
ある)属性データ対象の型のためのエレメント型ブロックは、順序付けられた組
の中に編成することが好ましい。
実際にはこれらのブロックは、次のエレメント型ブロックを特定するロングワー
ド即ち次のポインタ1740を使用してリンクすることが好ましい。
ロングワード即ち文脈ポインタ1750は、ブロック712によって特定される
型のエレメントが包含されている文脈ブロック或は頂点ブロックを指し示す、ロ
ングワード即ちインスタンスポインタ1760は、属性ファイル600内のこの
型のエレメントの各インスタンスへのアクセスを提供するポインタを包含する属
性ファイル600内のインスタンスルートブロックを指し示す。
エレメント型ブロック712の残余のフィールドには、ロングワード即ち属性ポ
インタ1770が含まれる。属性ポインタ1770は、このエレメント型によっ
て包含される関係型の最初の関係型を指し示す。
ディクショナリファイル700は、エレメント型ブロック712によって特定さ
れる型の属性データ対象とそれらの関連属性データ対象との間に存在し得る関係
の型を特定するためのメカニズムをも提供する。このメカニズムは、ブロック7
14 (第15図参照)のような属性型ブロックを含む。
第18図は、本発明の好ましい実施例による属性型ブロック714のブロック図
を示す、属性型ブロック714はロングワード1800.1810.1820.
1830.1840.1850、及び1860を含む、ロングワード1800は
、ブロック714内のロングワードの数を指示する大きさフィールド1803及
びそのブロック714を指示する類フィールド1860を包含する。
ロングワード即ちスタイル表示フィールド1810は、属性データ対象との関係
を特定する技法を表わす0本発明の好ましい実施例によれば、属性データ対象と
それらの関連属性データ対象との間の関係は直接的に或は間接的に特定すること
ができる。直接的に特定された関係即ち単独関係の場合には、エレメントブロン
クロ02内の関係サブブロック606(第7図及び第10A図参照)は関連属性
データ対象を指し示すポインタを包含する0間接的に特定された関係即ち複数関
係の場合には、参照された対象の対象ブロック602からアクセスされた複数関
係ブロック610の複数関係サブブロック614(第8図及び第13図参照)は
関連属性データ対象を指し示すポインタを包含する。
ブロック714のロングワード即ち名前ポインタ1820は、属性型ブロック7
14のための記号表716内の識別名エントリを指し示す、ロングワード即ちオ
フセントフィールド1830は、この型の関係を表わす関係サブブロック606
のエレメントブロック602の始まりからのオフセント、或はこの型のエレメン
トを表わすホールドされたエレメントサブブロック608のオフセントを包含す
る。
所与のエレメント型のための属性型ブロックは、他のリンクされたブロックに関
して説明したようにして次のポインタ1840によってリンクされる。ロングワ
ード即ちホールダボインタ1850は、属性型ブロック714によって特定され
る関係の型をホールドする属性データ対象の型のエレメント型ブロック712を
指し示す、ロングワード即ち関連型ポインタ1860もエレメント型ブロックを
指し示すが、このエレメント型ブロックは属性型ブロック714がある関係に一
致する場合に関連属性データ対象の型を特定するエレメント型ブロックである。
(3)見■スニ盃土
索引ファイル800は、共通ホールダボインタ対象を共有する属性データ対象に
アクセスする別の効率的な且つ直接的な手段を提供する。即ち、索引ファイル8
00は、独特なキー値が割当てられている若干の属性データ対象にアクセスする
ための手段を提供する。
好ましい実施例においては、索引ファイル800は木構造を有する少なくとも1
つの索引に編成される若干の索引技ブロックからなる。索引の枝ブロックは、そ
れぞれが異なる組のキー値に対応する葉ブロックを含む。ある属性データ対象の
ための各キー値は異なる組のキー値の1つだけの中にあるので、1つの葉ブロッ
クだけがそのキー値との一敗を有し、そのキー値が割当てられている属性データ
対象を有する。
葉ブロックは複数のポインタを含み、各ポインタはその葉ブロックのキーイ直と
、その割当てられたキー(直のようなキー値を有する属性データ対象の属性ファ
イル600内の位置とに対応する。
所望の属性データ対象への迅速アクセスは、その所望の属性データ対象のキー値
を有する索引を挿入し且つ索引の木構造を通り該キー値と所望の属性データ対象
を指し示す対応ポインタとを有する葉ブロックに至る独特の経路を探知すること
によって達成される。
従って好ましい実施例においては索引の木構造は、この木構造内への入口を提供
する根ブロックを含む、この根ブロックは複数の技ブロックへ“枝分れ”し、各
枝ブロックは若干の葉ブロックが対応する複数組のキー値の異なる、重なり合わ
ない群に対応する。技ブロックは、根ブロックから1或はそれ以上の中央技ブロ
フクを通り単一の葉ブロックに至る独特な経路を提供するように編成される(こ
の葉ブロックはこの独特な経路が存在する対応組のキー値を有する)、根ブロッ
ク、中央核ブロック及び葉ブロックをこのように編成すると、所望の対象のキー
値を含む対応組のキー値を有する葉ブロックを迅速に位置付けすることができる
。
それにより、そのキー値として該キー値を有する属性データ対象を指し示すポイ
ンタは、その属性データ対象自体の位置付けと同様に、迅速に位置付けすること
が可能である。
索引の根技、中央核及び葉ブロックは索引技ブロックによって表わすことが好ま
しい、第19図は索引技見出しブロック820及び若干の索引技サブブロック8
30からなる索引技ブロック810を示す。
第20図は索引技見出しブロック820のブロック図である。
好ましい実施例においては、技見出しブロック820はロングワード2000.
2020.2040、及び2060を含む、ロングワード2000は核種類フィ
ールド2004、キー値フィールド2008、大きさフィールド2012及び類
フィールド2016を含む。
核種類フィールド2004は、索引技ブロック810が根ブロック、中央昧或は
葉ブロックの何れであるのかを特定する。キー値フィールド2008は、サブブ
ロック830において特定されているキー値の数を指定する。大きさフィールド
2012は枝ブロック810内のロングワードの数を指示し、類フィールド20
16はブロック810が索引技ブロックであることを指示する。
同一の幹ブロックを有する異なる索引技ブロック810が、同一の幹の指定され
た次の技ブロックを指し示すロングワード即ち次のポインタ2020、及び同一
の幹の指定された前の枝ブロックを指し示すロングワード即ち前のポインタ20
40を通してリンクされている。ロングワード即ち幹ポインタ2060は、索引
技ブロック810の幹ブロックを指し示す。
好ましい実施例においては、索引技見出しブロック820にはl或はそれ以上の
索引技すブプロンクが相接して後続している。
第21図に示す索引技すブプロフク830はロングワード即ちキー値ポインタ2
100及びロングワード即ち葉/対象ポインタ2150を含むことが好ましい、
キー値ポインタ2100はあるキー値をホールドしている位置属性ファイル60
0を特定する。
もし索引ブロック810が葉枝ブロックであれば、その葉/対象フィールド21
50はサブブロック830内の対応キー値フィールド2100によって表示され
たキー値を有する属性ファイル600内の属性データ対象のエレメントブロック
602を指し示す、そうではなく、もし索引技ブロック810が技ブロックであ
れば、葉/対象フィールド2150は葉ブロックに至る独特な経路内の技ブロッ
クを指し示し、そのキー値の組は該枝ブロックのための組の群内にある。
好ましい実施例においては、各索引技ブロック810は順序付は索引として、或
はアクセス用索引としての何れかに用いられる。
順序付は索引は、規定の順序付は規則に従ってエレメントをリス625或はホー
ルドされたエレメントサブブロックロ08によって説明したように、エレメント
のリスト内の場所に迅i!ムこアクセスすることができる。アクセス用索引は、
現存するエレメントにキー値を使用して迅速にアクセスするために使用される。
本発明の好ましい実施例においては、順序付は及びアクセス用の両索引共、属性
ファイル600の構成内容に関して概要説明した(第7図参照)索引ディレクト
リブロック630の使用を必要とする。索引ディレクトリブロック600のブロ
ック図を第22図に示す。
索引ディレクトリブロック630は、ロングワード2210.2250、及び2
280を含む、ロングワード2210は大きさフィールド2230及び類フィー
ルド2240を含み、これらのフィールドはそれぞれ索引ディレクトリブロック
600内のロングワードの数及びこのブロック600が索引ディレクトリブロッ
クであることを指示する。ロングワード即ち順序付はポインタ2250は、ある
順序付は索引のインスタンスルートブロックを識別し、ロングワード即ちアクセ
ス用ポインタ2280はアクセス用索引のルート技ブロックを指示する。
属性データ対象に迅速にアクセスするための索引を指定する索引ディレクトリブ
ロック630へのアクセスは、インスタンスルートブロックロ25或は“ホール
ドされた°対象サブブロックロ08の何れかを通して得られる。ある文脈によっ
てホールドされている属性データ対象に関して、インスタンスルートブロック6
25の索引ポインタ1440は索引ディレクトリブロック630を指し示し、そ
れによって特定された文脈によりホールドされた属性データ対象に容易にアクセ
ス可能ならしめることが好ましい。
別の属性データ対象によってホールドされている属性データ対象に関しては、索
引ディレクトリブロック630は、ホールドされた対象の指定された最初と最後
の対象を特定する“ホールドされた”対象サブブロック608の索引ポインタ1
120を使用してアクセスされる。アクセス動作の詳細に関しては後述する。
D、データベースを
本発明の好ましい実施例を使用すると、作成、消去及びアクセスのような若干の
基本的データ操作を以下に説明する好ましい方法に従って容易に、且つ効率的に
遂行することができる。以下の説明では、コンパイラ或はディクショナリ700
の使用によろうとよるまいと、属性データ対象の作成に必要な頂点或は文脈のよ
うな若干のデータが既に共通データ構造140或は140′内に存在しているも
のと仮定する。また、作成すべきエレメント及び関係、及び作成すべきエレメン
ト及び関係に関するエレメント型及び関係型が既にデータ構造140に対して特
定されており、従って適切なエレメント型ブロック及び関連型ブロックが既に作
成されているものとする。
(1)王土ノ漫仁U1戊
第23A図及び第23B図は、本発明によるエレメントデータ対象(“新エレメ
ント”)を作成する好ましい方法の流れ図2300である。応用プログラム13
2及び134に関して説明したように、これらのプログラムはメモリ120内に
共通データ構造140を形成するために必要な情報を包含しているか、或は本発
明の属性データモデルに従ってそれらのデータベースが既に編成されている。
もし応用プログラムデータベースを本発明の属性データモデルに変換するa・要
があれば、エレメントを作成するためにこれらのプログラムから必要とされる情
報は“ノードデータ”の形状である。作成すべき属性データ対象は、応用プログ
ラムからのノードデータに一致していてもよいし、或は作成のために特別に誘導
してもよい、従って、エレメントデータ対象の作成は応用プログラムからノード
データの抜出し、及びノードデータから作成すべきエレメントデータ対象に一致
する型の決定を包含する(ステップ2305)。この抜出しの例は次項で説明す
る。
一旦新エレメントの型が決定されると、新エレメントのエレメントブロンクロ0
2の長さであるインスタンス長は、新エレメントの現存エレメント型ブロック7
12のインスタンス長フィールド1730を参照することによって決定すること
ができる(ステップ2310)。
インスタンス長が決定されると、エレメントブロック602のために記憶スペー
スを利用できるか否かを調べるべく一部メモリが検査される。もし記憶スペース
が存在しなければ、そのエレメントブロックのために一部メモリスペースが作ら
れる(ステップ2320)、永久メモリ及び−次メモリにおけるCPUI 10
による記憶スペースの管理の詳細は後述するが、当分野の技術者には容易に理解
できる仮想メモリ及びマンピング技術を包含する。
−次メモリ内にエレメントブロック602のだめの記憶スペースが位置付けされ
る、或は作成されると、そのスペースは新エレメントのエレメントブロック60
2のために割当てられる(ステップ2325)、次でCPUI 10はこの割当
てられた一部メモリスペースを指し示すポインタを形成する(ステップ2330
)。
次で、新エレメントとそのホールダ属性データ対象との間にホールドされた関係
が存在するように、新エレメントのためのホールダ属性データ対象を選択する(
ステップ2335)、このホールダ属性データ対象の選択によって、ホールダ属
性データ対象のエレメントブロック602の°ホールドされた”対象サブブロッ
ク608内に最初ポインタ1100.最後ポインタ1110、及び索引ポインタ
1120を位置付けすることが可能となる(ステップ2335)。
最初ポインタ1100、最後ポインタ1110、及び索引ポインタ1120は、
新エレメントの存在を、今ホールダ属性データ対象によってホールドされたエレ
メントとして表わすように更新することができる。勿論、新エレメントがホール
ダ属性データ対象によってホールドされた最初のエレメント或は最後のエレメン
トでなければ、これらのフィールドの更新は必要としない。
サブブロック608ポインタを位置付けした後、新属性データ対象のエレメント
ブロック602内のエレメント見出しブロック6040次のポインタ925、前
のポインタ940及びホールダボインタ930を使用して新エレメントを新エレ
メントと同一のホールダを有する他のエレメントのエレメントブロックにリンク
し、新エレメントのホールダ属性データ対象を指示する(ステツ7”2340)
、これは新対象の対象見出しブロック604内にホールダボインタ930を位置
付けすることによって行われる。このホールダボインタ930は、作成されつつ
ある対象のホールダ属性データエレメントのエレメントブロック602を見出し
得るメモリ領域を指し示す、更に、この新属性データ対象と同一のホールダ属性
データ対象を有する他の属性データ対象を指し示すエレメントポインタは、次の
ポインタ925及び前のポインタ940として与えられる。もし新エレメントが
唯一のホールドされた属性データ対象であれば、エレメント見出しブロック60
4の次のポインタ925にポインタは与えられず、前のポインタ940としての
対象ポインタは存在しない。
既に位置付けされているホールダ属性データ対象の“ホールドされた1エレメン
トサブブロツク608の最初ポインタ1100、最後ポインタ1110、及び索
引ポインタ1120は、新エレメントの存在を表すように、またホールダ属性デ
ータ対象との“ホールドされた°関係を表わすように更新される(ステップ23
45) 。
これらの更新に関して、もし新対象がホールダ属性データ対象によつホールドさ
れている最初の属性データ対象であれば、ホールダ属性データ対象のエレメント
プロフクロ02を指し示すポインタが最初ポインタ1100に与えられる。また
索引ポインタ1130も、もし適切であれば、索引ディレクトリブロック630
を識別するように更新される。
方法2300における新エレメントの作成を完了させるためには、エレメントブ
ロック602の他のフィールドを初期化しなければならない0例えば、新属性デ
ータ対象のエレメント見出しプロ、り604の型限定ポインタ920には、新エ
レメントの型を特定するディクショナリファイル700内のエレメント型ブロッ
ク712を指し示すポインタのような適切なポインタを設けなければならない、
新エレメントの“ホールドされた”エレメントサブブロック608及び関係サブ
ブロック606は、新属性データ対象が他の属性データ対象にホールドされるか
或は関係を有するに至る時点に初期化される。
(2)回五立作底
第23A図及び第23B図に示す諸ステンブはエレメントデータ対象を作成する
のに充分であるが、関係データ対象を作成するためには付加的な諸段階を必要と
する。第24A図及び第24B図は、新エレメントと関連属性データ対象との間
の関係を作成する際に包含される諸段階を示す流れ図2400を示す、前述のよ
うに、応用プログラムデータベース内のノードデータ記述子を、ある関係を形成
するのに使用することができる。変形として、応用プログラムの1つによって遂
行される計算によって関係を形成させることもできる。即ち、応用プログラムの
1つからのノードデータ記述子を、関係属性データ対象を作成するのに使用する
ために抜出すことができる。この抜出し機能の詳細に関しては後述する。ノード
データ記述子を抜出す時、関係データ対象の関連属性データ対象となるべき適切
な属性データ対象を選択する。
抜出し及び選択が完了すると、次に適切なエレメントブロック602内の関係サ
ブブロック606が識別される(ステップ2405) 。
エレメントブロック602内の関係サブブロック606の位置から、ホールダ属
性データ対象と関連属性データ対象との間の関係の性質(即ち複数関係か或は単
独関係か)を決定することができる(ステップ2410)。
もし関係が単独であれば、ホールダ属性データ対象から関連データ対象までのポ
インタが対応エレメントのエレメントブロックの関係サブブロック606内に与
えられる。もし関係が複数であれば、複数関係ブロック612を指し示すポイン
タがその関係サブブロック606内に与えられる0次で関連データ対象を指し示
す関連ポインタが、対応エレメントのエレメントブロック602内のポインタに
よって識別された複数関係ブロック612内に与えられる。
もし新関係が単独であれば、ホールダ属性データ対象の関係サブプロンクロ06
(第8図、第10A図及び第10B図参照)が既にポインタを包含しているか否
かを決定しなければならない(ステップ2420)、もしこれも真であれば、関
係サブプロ。
り606内に特定されている先行関係が消去され、それによって新単独関係を作
成することが可能となる(ステップ2425)まで関係の作成は一時的に休止さ
れる。関係サブブロック606が関連属性データ対象を指し示すポインタを包含
していない場合には、この関係のための関連属性データ対象を指し示す対象ポイ
ンタが入手され、関係サブブロック606内へ配置される(ステップ2430)
。
もし作成すべき関係が単独でなければ、既に割当てられていない場合には、新関
係データ対象を特定するために複数関係ブロック610が割当てられる(ステッ
プ2435>、新関係のための複数関係ブロックを指し示すポインタが適切な関
係サブプロンクロ06内へ配置される(ステップ2440)。
次に、割当てられた複数関係ブロック610の複数関係サブブロック614(第
8図、第13A図及び第13B図参照)、及び複数関係ブロック610を指し示
すポインタにリンクされている他の複数関係ブロック内の複数関係サブブロック
606が走査される(ステップ2445)、前述のように、複数関係ブロック6
10は次のポインタ及び前のポインタによってリンクされているので、走査はこ
れらのポインタを使用して進行することが好ましい。
走査された複数関係サブブロック614の何れも自由でなければ(ステップ24
50)、自由複数関係サブブロック614を包含する複数関係ブロックが割当て
られる(ステップ2455)。
サブブロックは、もしそれが関連データ対象の対象ブロック602を指し示す有
効ポインタを包含していなければ自由である0次で新たに割当てられた複数関係
プロンクロ10は新対象の他の複数関係ブロック610とリンクされる(ステッ
プ2460)。
新複数関係ブロック610の割当て及びリンクを行った後、或はもレリンクされ
た複数関係ブロックの1つ内の自由サブブロックが位置付けられたのであれば、
間違データ対象を指し示すポインタが入手され複数関係ブロック610の自由複
数関係サブブロック614内に配置される(ステップ2470)。次に、或は単
独関係のポインタが入手された後、関連のポインタが複数関係ブロック610の
1つ内に配置される。このブロックロ10は、ホールダ属性データ対象のエレメ
ントブロンクロ02のエレメント見出しブロック604の参照ポインタ935か
らアクセスされるブロックである(ステップ2475)。
(3)X五汎去
この項は所与のエレメントによってホールドされた所与の型の全ての関係の消去
を説明する。関係消去は、属性データ対象をその関連属性データ対象に関係付け
るポインタをホールドするのに使用されるスペースのメモリを自由化することを
含む。第25図はある関係を消去する好ましい方法に含まれる諸段階を説明する
流れ図2500である。
先ず、関係のホールダ属性データ対象及び関連属性データ対象を関係付けるのに
使用する関係サブブロック606が、関係型あオフセット1830を使用して位
置付けされる(ステップ2505) 。
次に、関係が単独であるか否かを関係型に従って決定する(ステップ2510)
、もし単独であれば、関連のエレメントブロンクロ02の参照ポインタ935内
に特定されている複数関係ブロック610が走査され、型が数値、日付、或は記
号列でない場合には、この関係のホールダ属性データ対象を指し示す対象ポイン
タが見出される(ステップ2515)。次でホールダ属性データ対象を指し示す
対象ポインタが、関連のエレメントブロック602の参照ポインタ935によっ
て指し示された複数関係ブロックからクリヤされる(ステップ2520)。最後
に、関連属性データ対象を指し示すポインタを包含するホールダ属性データ対象
内のサブブロック606が、指し示された列データと共にクリヤされる(ステッ
プ2525)。
もし消去すべき関係が単独関係でなければ、関連型が数値、日付或は列でない場
合には、ホールダ属性データ対象の複数関係ブロック610が走査される。この
走査の目的は、指示された関連属性データ対象のエレメントブロック602の参
照ポインタによってアクセスされる複数関係ブロック610を位置付けすること
であり、これらの関連属性データ対象は、消去すべき関係のホールダ属性データ
対象の適切な型の複数関係ブロック610内の関連ポインタによって指し示され
る関係属性データ対象である(ステップ2535)、次に、これらの関連属性デ
ータ対象ブロックの参照ポインタ935によってアクセスされる複数関係ブロッ
ク610が走査されてホールダ属性データ対象を指し示すポインタが見出される
(ステップ2540)。
ホールダ属性データ対象を指し示すポインタが複数関係ブロックロ10内に見出
されると、関連属性データ対象を指し示すホールダボインタはビットマスクフィ
ールド1230内の対応ビットをリセフトすることによって不活動ならしめられ
る。このビットマスクフィールド1230は、ホールダ属性データ対象を指し示
すポインタが見出される複数関係ブロック610の複数関係見出しブロックロ1
2内に見出される。最後に、走査された複数関係ブロック610のためのスペー
スは、指し示された何等かの列データと共に回収され、関係サブブロックはクリ
ヤされる(ステップ2545)。
(4)工±ノじζ11夫
第26図は、エレメント対象を消去する諸段階を説明する流れ図である。このエ
レメントがアクセスされた後、消去すべき対象の複数関係ブロック610を、消
去すべきエレメントの参照ポインタ935から入手する(ステップ2610)。
次に、このエレメントを指し示すポインタは、複数関係ブロック及びこれらの複
数関係ブロックからアクセスされる関係サブブロックから消去される(ステップ
2620)。
これらのポインタを消去した後、このエレメントによってホールドされた全ての
単独関係及び複数関係が消去され(ステップ2640)、このエレメントに組合
わされている複数関係ブロックによって使用されていたスペースも自由化される
(ステップ2650)、このエレメントによってホールドされている全てのエレ
メントブロックはこの手順の繰返し使用によって消去される。
次で、このエレメントによってホールドされているエレメント即ち対象が消去さ
れる(ステップ2655)、次に、消去されつつあるエレメントブロック内の索
引ポインタ1120によって指し示されている索引が自由化される(ステップ2
660)、消去されつつあるエレメントのエレメントブロックは同一のホールダ
を有スる他のエレメントのエレメントブロックから切離される(ステップ267
0)、最後に、このエレメントのためのスペースが回収される(ステップ268
0)。
(5)−一 へのアクセス
上述の好ましいデータ構造の編成から、及び上述のエレメント及び関係を作成し
消去する好ましい方法から、エレメント及び関係へアクセスする異なる方法が明
白となるであろう、勿論、このアクセス方法は望まれる情報の型に依存し、好ま
しい実施例におの経路を示している。
第27A図及び第27B図は、所与のエレメントにホールドされた関係を有する
エレメント或はそのエレメントの若干の関係の関連の何れかを見出すために、共
通データ構造140或は140′にアクセスする好ましい方法を説明する流れ図
2700を示す。
流れ図2700によって表わされている手順は、ホールドされたエレメント及び
複数の属性データエレメントの関係の関連を得るのにも使用できる。以下に説明
する方法は唯一の方法ではなく、単に本発明の目的を遂行するのに使用できる複
数の方法の複数の型の一例にしか過ぎない。
流れ図2700は、共通データ構造140の作成中に、コンパイラ或はR4g、
シた種類の言語処理ソフトウェア(コンバータプログラム540及び570内に
含まれる)が各識別名毎に仮想アドレス或はオフセントを発生したものと想定し
ている。更にこの流れ図2700は、共通データ構造がこの仮想アドレス或はオ
フセントをメモリ120の共通領域内に位置付けされているアドレス表内に配置
しており、従うて第5A図及び第5B図に示す検索プログラム580及び590
のような検索プログラムがアクセス可能になっているものとしている。これらの
検索プログラムは通訳プログラムであることが好ましいが、コンパイラのような
他の如何なる型の言語処理ソフトウェアであっても差支えない。
更に、流れ図2700は、その実行に先立って、所与のエレメントの関連或はホ
ールドされたエレメントにアクセスするための仮想アドレスが、取出すべき関係
或はエレメント(まとめて属性と呼ばれる)に対応する属性型ブロック714の
仮想アドレスを有しているとして既に検索されているものとしている。この、或
はこれらの所与のエレメントはホールダと呼ばれる。
流れ図2700において最初に行われる決定は、所与の型のホールダの関係が単
独か或は複数かである(ステップ2705)。
もし単独であれば次の決定は、アクセスすべき(単数或は複数の)エレメント或
は(単数或は複数の)関係の第1の或は次のホールダが存在するか否かである(
ステップ2710)、もしこのようなホールダが存在しなければ、完了標識がセ
ントされて全てのホールダに対するサーチが完了したことを指示しくステップ2
715)、アクセスルーチンの実行が完了して無結果で戻される(ステップ27
20)。
もし次のホールダが存在していれば、属性型ブロックからのオフセントフィール
ド(例えば第18図に示す1830)を使用してホールダのエレメントブロック
のスタートからのオフセントを見出し、望まれる関係或はエレメントのエレメン
トブロックを指し示すポインタを見出す(ステップ2723)、次でこの次のホ
ールダのエレメントブロックが、メモリ120の共i19M域内のアドレス表か
らの仮想アドレスを使用することによって検索される(ステップ2725)、次
に、この特定のホールダの関係或はホールドされたエレメントが存在するか否か
を見出す決定を行わなくてはならない(ステップ2730)、もし存在すれば(
即ち、もし適切なポインタが0でなければ)、所望の属性の属性型ブロックの仮
想アドレスがその属性にアクセスするために検査される(ステップ2735)、
非0ポインタが存在する場合には、所望の関連或はホールドされたエレメントに
関する情報が戻される(ステップ2745)。
もし適切なポインタがOであれば(ステップ2730)、次のホールダ属性デー
タ対象のエレメントブロック内には所要の関係或はエレメントは存在しない、こ
の場合、もし複数のホールダが特定されれば、戻すべき関係或はエレメントを有
するホールダが見出される(ステップ2710.2723、及び2725)か或
はそれ以上のホールダが存在しなくなる(ステップ2710.2715、及び2
720)の何れかまでサーチが続行される。
もし、初期決定において属性型が複数であることが見出されると(ステップ27
05)このアクセスの実行が、最初のコメンシングであるか(即ち全式コメンシ
ングの検査であるのか)或は少なくとも新ホールダエレメントのコメンシング検
査であるかの決定が行われる(ステップ2750)、もしそうであれば、単独属
性型の場合のように、次の決定は次のホールダが存在するか否かである(ステッ
プ2751)。もし否であれば完了標識がセットされ(ステップ2755)、無
結果の戻りがなされる(ステップ2760)。
もし次のホールダが存在すれば、この次のホールダのエレメントブロックが検索
され(ステップ2763)、そのエレメントブロックから関係ブロック610が
存在するか、或は次のホールダの最初のホールドされたエレメントが存在するか
の決定が行われる。これは次のホールダのエレメントブロックを検査することに
よって決定される(ステップ2766)、もし次のホールダの属性が存在しなけ
れば以後のホールダが入手され、属性を有するホールダが得られるまで(ステッ
プ2751及び2763)或はそれ以上ホールダが存在しなくなるまで(ステッ
プ2751.2755及び2760)検査される。
属性型ブロックから、これらの属性が関係であるか否かの決定が行われる(ステ
ップ2773)。もし諾であれば、次の関係が対応する複数関係ブロックから検
索される(ステップ2776)。
この複数関係ブロックのアクセスに伴うのは、アクセスすべき複数関係ブロック
から次の関係の軌跡を保持する“場所標識°である。これは、流れ図2700内
のルーチンが各アクセスにおいて1つの結果に戻るだけであるからなされるので
ある。複数関係ブロック610からの最後の関係が得られると、°場所標識”は
次の問合せを関係の存在の中へ導びくか、或は得るべきエレメントに否を返答さ
せる。関係が得られる度毎に“場所標識”は次の位置へ更新され、この手順から
の戻りが指示された結果を伴ってなされる(ステップ2780)。
もし所望の属性がエレメントとして見出されるか、或は検査がコメンシングでな
ければ(ステップ2773)、そのエレメントがホールダのホールドされた関係
を有するエレメントのリンクされたリストの最初のものであるか否かの決定が行
われる(ステップ2783)、もし否であれば、次フィールド925を用いて現
在のエレメントの直前にアクセスされたエレメントから次のホールドされたエレ
メントが入手される(ステップ2786)。アクセスすべきエレメントの中で次
に係るエレメントの軌跡を保持している異なる“場所標識”はホールドされた対
象の次の対象を指し示すように更新される0次で標識付き結果を伴って戻りがな
される(ステップ2780)。
もし所望のエレメントがホールドされたエレメントの中の最初のエレメントであ
れば(ステップ27B3)、オフセントポインタ及びホールダ属性データ対象の
エレメントブロックを使用してホールドされた対象ブロックが入手され、適切な
場所1mが初期化される(ステップ2790)、次で標識付き結果と共に戻りが
なされる(ステップ2780)。
第28図は、アクセス手順の別の例である。第28図の流れ図2800は、索引
ファイル800及びキー値を使用して属性データ対象を見出すのに使用する。こ
の流れ図2800もアクセスの一方法に過き゛ず、本発明を限定するものではな
いことを銘記すべきである。
ある属性データ対象を識別し、見出すためにキー値を使用する場合には、そのキ
ー値に関して索引ディレクトリブロック (第8図の索引ディレクトリブロック
630参照)がサーチされる(ステ、プ2810)。もしそのキー値が見出され
なければ(ステップ2820)、第28図のルーチンから結果を伴わずに戻りが
なされる(ステップ2830)。
もしあるキー値が見出されれば、第28A図に示すように、以下の価にセントさ
れた4つのロングワードからなる索引結果ブロックが作成される(ステップ28
40)。最初の葉ノード2891は所望のキー値の最初の発生を包含する葉索引
技ブロック810のポインタにセントされる。最初の葉索引2892は、葉索引
技ブロック内の最初の発生である索引技ブロック810内の索引技サブブロック
830の順序数を包含する。同様に、最V!葉ノード2893及び最終葉索引2
894はそれぞれ、所望のキー値の最終発生に係るポインタ及び順序数を包含す
る。索引結果ブロック2890は、索引ファイル800を使用するアクセスのた
めにだけ作成される一時的データ構造である。
次に索引結果ブロック2890を使用して(単数或は複数の)所望エレメントの
アドレスが見出される。もしキーが唯一であれば最初の発生及び最終発生は同一
である。もし、順序付は索引の場合のようにキーが唯一でなければ、索引技ブロ
ックがリンクされているために、索引結果ブロック2890を使用して完全組の
有効結果を見出すことができる。属性データ対象を指し示すポインタは結果ブロ
ックを使用して見出される。
もしキー価が見出されれば、それは対応する属性データ対象のための属性データ
ファイル600内にアドレスを包含しているであろう、この手順の戻りは標識付
き結果を伴ってなされる(ステップ2860)。
E、デー 、し、 び・
本発明によれば、第5A図及び第5BIFに示すプログラム530及び560の
ような応用プログラムによって使用される情報は共通データ構造140 (或は
140’)の編成に適合させなければならない、多くの場合、応用プログラムは
それら自体のデータヘースに特有な表現で既に書かれており、他の場合には応用
プログラムは本発明によって編成された属性データ対象を既に使用しているかも
しれない。
抜出し及び変換のプロセスは、応用プログラムデータベースからのデータを共通
データ構造140 (或は140’)に変換する方法に関する。第5A図及び第
5B図に示すように、コンバータプログラム540及び570は応用データベー
スからデータを取り、これらのデータをこれらのデータベース内のフォーマント
から共通データ構造140(或は140’)に適当なフォーマントに置換する。
各応用プログラムデータベース毎に本発明による共通データ構造を編成するには
幾つかの方策がある。応用プログラムデータの共通データ構造に対する編成及び
変換は、応用プログラムデータベース内のデータの内容、及び共通データ構造の
予期される使用法に依存しよう。
共通データ構造の編成、従って抜出し及び変換も、絶対的且つ確定的な規則に従
う必要はない、その代り、この項では本発明の実施を望む人々に対して一般的な
指針及び設計考察を説明する。
当業者ならば、好ましいデータ構造及びアクセス、作成及び消去の好ましい方法
の完全な説明から、不当な実験を行うことなく付加的な指針及び設計考察は明白
であろう。
極めて屡々、本発明による共通データ構造の構築における第一の関心事はエレメ
ントデータ対象の選択である。エレメントデータ対象に選択されることが多い応
用プログラム内の情報をノードデータと呼ぶことができる。一般にノードデータ
は、データベース内の“対象′或は“実体′の何れかである“事物”を含む。従
って、言語の部分として見れば、エレメントデータ対象は名詞によって記述され
ることが最も相応しいデータである。例えば、ノードデータは回路、ゲート、エ
ンジンの部分、或は人物のような物理的対象を含むことができる。ノードデータ
はタイムラインエントリ成は綴込み日時のような事象をも含むことができる。ノ
ードデータの別の例は、イデア及び性格のような概念である。
一旦エレメントが選択されると、エレメント間のホールディング関係が確立され
る。これらのホールディング関係の決定は、通常はエレメントの間のある階層を
表わす、エレメント自体の選択におけるのと同様に、殆んどの場合、ホールディ
ング関係によって表わされる階層の決定は唯−無二ではない。ホールディング関
係の決定は、データの予想される使用を考慮することも好ましい。
2つのエレメント間の(或はあるエレメントとある関係との間の)関係の存在は
、このような関係が必ずしも共通データ構造内のホールディング関係を表わすこ
とを意味するものではない、この関係は、関係データ対象によって指示される非
階層的関係によって表わすこともできる。
ホールディング関係によって最も屡々表わされる関係の型は、団体の役員のよう
なある自然階層を表わしたり、或は機械の部品、本の章、或は川内の都市のよう
な事物の構成部分を表わす。ホールディング関係は、1つの事物の別の事物によ
る所有を表わすこともできる。
しかし、一旦ホールディング関係が決定されると、通常は文脈を選択しなければ
ならない、前述のように、文脈は、属性データ対象の名前がこれらの対象をホー
ルドしている文脈内のみの意味しか有していないので、属性データ対象の名前付
けを援助するための構成概念である。文脈は、照合の便宜を図るべく関連する属
性データ対象の集群を表わすため、及び特定された用語の使用を許容するために
使用されるべきである。例えば、印刷回路基板に関する設計情報をVLSIチッ
プに関する設計情報からの異なる文脈内へ編成して何れかの応用領域においては
周知の専門用語を衝突させることなく使用可能にすることができる。第3図及び
第4図に示す例においては、′ゲート”なる語は、これら2つの応用領域におい
て異なる意味を持たせることができる0分離した文脈を使用することによって、
′ゲート”という同一の語は各文脈において異なる意味を持ち得るのである。
また、若干の文脈の層を持つこともできる1例えば、第1の文脈は、バージョン
トランキング及びプロジェクト管理のような一般的応用概念に係る対象を包含す
ることができる。第1の文脈によってホールドされている複数の文脈の各々は、
機械的或は電気的のような特定の技術に関する属性対象を包含することができる
。
通常は、その後に関係が決定される。ノードデータをエレメントとして割当てた
後に残される情報は、通常はのこのノードデータの関係或は属性に係り、もしこ
れが階層的なホールディング関係を表わしていないならば一般的にそのノードデ
ータの記述子を表わしているものと考えることができる。関係の目的は、属性デ
ータ対象の間に存在する非階層的関係を表わすことである。これらの関係は元の
応用データが表わしているノードデータとそれらの記述子との間の関係を表わす
ために、これらを適切な対象に組合せるように作成される。関係によって表わさ
れることが好ましいノードデータ記述子の例には、信号へのゲートの接続、回路
の設計者の識別、及びプロジェクト針面における種目の接続が含まれる。
データ編成の最終段階は、型の決定及びキー値の選択を包含する。属性の′型付
け”は一般的に、エレメント及び関係の指定、及びホールディング関係の指定を
伴う、型は一般的に、エレメント及び関係が既に集群されている組を表わし、ま
たこれらの線内のエレメント或は関係の共通性を記述する。
キー値の選択もデータに依存する。キー値は主としてアクセスへの援助として使
用されるので、キーの決定及び選択は共通データ構造140或は140′の予想
される用法に従うべきである。
更に、キー値の使用は、応用プログラムデータベース内の情報の順序付けを表わ
してこれらの情報の応用プログラムによる使用を容易ならしめることができる。
コンバータプログラム540及び570の詳細はそれぞれ応用プログラム530
及び560の要求に対して特定のものであり、これらのコンバータプログラムに
よって遂行される以下の例は上述の指針を説明するものである。もし応用プログ
ラム560が第3図に示す回路を生成するのであれば、ファイル565 (第5
A図)は回路を記述する以下の情報を包含しよう。
1) ADD 3−1−A、320゜
2) ADD 320.322/52
3) 320.324
4) 320.326
5) 320.328/51
7) ADD 2−1−A; 330;8) ADD 330.332
9) 330.334/5t
10) 330.336/S2
このファイルの非空白の各行はノードデータを表わす0行1)は3人力ANDゲ
ート320の作成を要求する0行2)乃至行5)は、ゲート320のピン322
.324.326及び328の作成を要求する0行7)は2人力ANDゲート3
30の作成を要求する0行5)及び9)はピン328が信号“S1″によってピ
ン334に接続されていることを指示している。同様に、行2)及び10)はピ
ン322が信号“S2”によってピン336に接続されていることを指示する。
コンバータプログラム570は、ファイル565を読み取り、先行項に記載した
操作を使用して第3図の回路を表わす共通データ構造140或は140′を作成
するように設計することができる。このようにして作成された共通データ構造の
部分が第4図に示されているものである。各“事物” (即ちゲート及びピン或
は信号)はエレメントである。ホールディング関係はこの作成中に潜在する階層
・・・・・・最初がANDゲート、次でピン或は信号・・・・・・を表わす、信
号接続及び名前のような残余の関係は“関係”として作成される。
F、に11理
予想できるように、本発明による実施例を実現するのに必要な記憶量は極めて大
きくなり得る。この項においては、必要な記憶量を減少させるが如き便宜を図る
ための共通データ構造140′の維持、更新及びアクセス方法に関する記憶管理
技術の好ましい実施例を説明する。記憶管理技術のこの好ましい実施例はまた、
応用プログラムによるメモリ120のデータ構造140′へのアクセス及び該構
造140′の更新の容易且つ効率的手段となるようにも設計されている。
記憶管理技術に関しては、主データファイルのコピー515、スナップデータフ
ァイル525、及びロック568及び569を有する制御ファイル555を含む
共通データ構造140′を示す第5B図のシステムに基いて説明することとする
。記憶管理ソフトウェア566は共通データ構造140′内の諸ファイルを制御
する。
第29図に共通データ構造140′の実施例の詳細をブロック線図で示す、第2
9図は、第5B図の主データファイル515に対応する主データファイル290
0を含む。マクロページ0〜3を含むように図示しである主データファイル29
00は、共通データ構造140′の最新バージョンに一致している。この最新バ
ージョンとは、現在変更されつつあるバージシンか或は最も新しく変更されたバ
ージョンの何れかのことである。
第29図に示すように、主データファイル2900内の各マクロページは2つの
部分からなる関連番号を付したエントリを有している。エントリの基数はマクロ
ベージ番号を表わし、エントリの指数部分はバージョン番号を表わしている。バ
ージョン番号は、車−のユーザによって更新されたデータベースのバージョンを
表わす、好ましい実施例によれば、より新しいバージョンが常に古いバージョン
よりも高い番号を有している。マクロページの合計数はデータベースの合計の大
きさに依存する。
スナップショットデータファイル2910は第5B図のスナップショットデータ
ファイル525に対応するものであり、若干のスロット0−5を含む、各スロッ
トの1つはマクロページを包含し、主データファイル2900の現行バージョン
或は該ファイルの先行バージョンの何れかからのマクロページの1つに対応する
。
スナップショット2910内に未だ維持されている主データファイル2900の
先行バージョンからのマクロページは、未だに活動しているバージョンのための
ものである。もし現在、あるバージョンのマクロページにアクセスしている少な
くとも1つの応用プログラム或はユーザが存在すれば、そのバージョンは未だ活
動に付した番号付きエントリの基数は主データファイル2900内の対応マクロ
ページの値を表わし、指数部分はそのマクロページのバージョンを表わす。
主データファイル2900が更新された後、変化した主データファイル2900
からのこれらのマクロページはスナップショットデータファイル2910のスロ
ット内にコピーされる。このコピイングは、スナップショットデータファイル2
910内に記憶されている主データファイル2900からのマクロページの複数
のバージョンを考慮している。スナップショットデータファイルは不確定に成長
させてはならないから、詳細を後述するハウスキーピングルーチンに頬って古い
マクロページは廃棄する。
スナップショットデータファイル2910の若干のスロットは“自然スロット”
と呼ばれる。°自然スロット”は、対応するマクロページ番号と同一のスロット
番号を有するスナップショットデータファイル2910内のスロットを云う、こ
れは、スナップショットデータファイル2910が始めに主データファイル29
00の内容を受けた時のスナップショットデータファイル2910の状態である
。全てのマクロページがそれらの自然スロットにあるこの初期状態が、効率のた
めに望ましいのである。
データベース制御装置(DBC)2920は記憶管理機能を制御する。DEC2
920は第5B図の制御ファイル555に対応する。要約すればDECファイル
2920はデータ構造140′の変更、及びそのデータ構造へのアクセスを制御
する。DBC2920は、データ構造への変化の軌跡を管理し保持することによ
って、また変更ロック(第5B図参照)の使用によりlユーザだけがデータ構造
のマクロページのバージョンに変更を行うことができることを保証することによ
って、データ構造140′の変更を制御する。DBCファイル2920は、全て
の活動マクロベージの位置の軌跡を保持することによって、またDBCロフク(
第5B図参照)を介して若干のユーザが衝突するのを阻止することによって、デ
ータ構造へのアクセスを制御する。
DBC2920は4つの主成分を包含する。一つの成分はポインタ/カウンタ区
分2922であって、DBC2920の他の部分が何処に所在するかを指示する
。別の成分はハフシュ表2924であって、スナップショットファイル2910
内の活動マクロベージを位置付けする手段となっている。バージョンブロック区
分2926は、フ゛ロンク2930.2940、及び2950のようなバージョ
ンブロックを包含し、これらのブロックはデータ構造140′の異なるバージョ
ンに関する情報を包含する。スイッチブロック区分2928は、2932.29
34.2936.2938.2942.2944.2952.2954.295
6及び2958を例として示しである区分ブロックを包含し、これらは活動マク
ロページに関する情報を包含する。属性ファイル600及び索引ファイル800
内の変化に対して、N類の異なるスイッチブロックを使用することが好ましい。
しかし、もし属性ファイル600及び索引ファイル800内の情報が単一ファイ
ル内に所在しているれば、一種類のスイッチブロックを必要としよう、以下の説
明においては、スイッチブロックに関する説明は属性ファイル600或は索引フ
ァイル800の何れにおける変化にも適用されるものとする。
第30図は、ポインタ/カウンタ区分2922の好ましい実施例の詳細を示す。
第30図に示すように、ポインタ/カウンタ区分2922は、ユーザカラン)3
005、及び他の若干のフィールド及びポインタを包含することが好ましい。ユ
ーザカウント3005は、共通データ構造140′にアクセスしている或は該構
造を変更しつつあるユーザの合計数を指示する。新ユーザが共通データ構造14
0′にアクセスすることを希望する度毎に、記憶管理ソフトウェアはDBCロッ
クを入手し、ユーザカウントフィールド3005を増進させ、DBCロックを戻
す。この場合のDBCロフクの目的は、複数のユーザがユーザカウントに同時に
アクセスしてそれを不適切に増進させるのを阻止することである。
ロールバンクバージョン番号フィールド3010及びロールバンクバージョンポ
インタ3015はロールバンク機能に関連する。
この機能によってユーザは、共通データ構造140′のあるバージョンに対して
行った若干の変更を撤回することが可能になる。
ロールバンクは、ユーザによって共通データ構造140′に行われつつある変更
が未だに進行中である間に限って発生する。ロールバックは、変更を遂行してい
るユーザが変更を伴う進行を望まずに変更開始前の状態の主データファイルを回
復するのを望むことを“自然的に“決定したために、或はあるエラーのために変
更を完了させることが不可能となったの何れかによって発生する。
好ましい実施例においては、ロールバンクされつつあるバージョンはユーザによ
って特定された変更に従って完全に変更されている。以下に説明する記憶管理及
び更新段階は実行されるが、共通データ構造140′のこのロールバックすべき
バージョンは他のユーザが利用することを不能にする。ロールバンクすべきバー
ジョンが作成された直後に新バージョン、即ちロールバンクバージョンが作成さ
れる。このロールバンクバージョンは、区分2928内のスイッチブロック及び
スナップショットデータファイル2910の使用によって、ロールバンクすべき
バージョンがもたらした全ての変更を取消す、従って、ロールバック後には、ロ
ールバンクされたバージョンの主データファイル2900はロールバンクシーケ
ンスが開始される前の状態に戻っている。
スナップショットデータファイル2900は、ロールバックすべき主ファイル2
900の作成前の状態には戻らない。ロールバンク後、スナップショットデータ
ファイル2910はロールバックされた°悪いバージョン°と新しい現行バージ
ョンの2つの付加的バージョンを包含している。しかし、前述のように、ユーザ
は“悪いバージョン゛を読むことは不能であり、新しい現行バージョンは初めに
“悪いバージョン9によって変更されたマクロページのコピーである。′悪いバ
ージョン”はロールバンクの完了時に既に廃物になっており、後述するハウスキ
ーピングルーチンによって削除されよう。
ポインタ/カウンタ区分2922においては、ロールバンクバージョン番号30
10は“悪いバージョン”を“ロールバンク”しつつあるバージョンの番号を表
わし、ロールバンクバージョンポインタ3015はそのバージョン番号のバージ
ョンブロックを指し示す。
区分2922の次のバージョン番号3020及び次のバージョンポインタ302
5は、現在更新中の、或はもし現在更新中のバージョンが存在しなければ次に更
新されるバージョンの、何れかである共通データ構造140′のバージョンを表
わす。
現行バージョン番号3030及び現行バージョンポインタ3035は、現在読み
出すことが可能な最新バージョンを表わす、これはスナップショットデータファ
イル2910内で利用可能な最新バージョンである。最古バージョン番号フィー
ルド3040及び最古バージョンポインタ3045は最も古い活動バージョンを
表わす、フィールド3040及びポインタ3045は、共通データ構造140′
が更新され廃物(即ち不活動)バージョンが自由化されると変化する。
初期バージョン番号3050は、“チェックポイント”と呼ぶ事象が発生する時
点に存在する共通データ構造140′のバージョンを表わす、エラー回復の目的
のために、主データファイル515内の共通データ構造140′の内容はチェッ
クポイントに1換される。この1チエフツクポイントバージヨン”はデータ構造
140′の内容の一部若しくは全部の消失或は破棄の後にシステムの動作を続行
させるのに使用することができる。
初期バージョン番号3050は、最新のチェックポイントが発生した時のスナッ
プショットデータファイル2910内の最新バージョンを指示する。
ハツシュ表2924は、詳細を後述する技法で活動マクロページにアクセスする
ための手段を提供する。ハツシュ表2924はisのハツシュ表であることが好
ましく、従って詳細な説明は省略する。ハツシュ表2924は、各マクロページ
の最新バージョンに対応するスイッチブロックを指し示すポインタを包含するこ
とが好ましい。前述のように、各スイッチブロックはその早期バージョンにリン
クされている。従って、ハツシュ表2924を通して進入することによってユー
ザはスナンプショントデータファイル291O内の各マクロページの全ての活動
バージョンを位置付けすることができる。バージョン領域2926は、第29図
に示す複数のバージョンブロック2930.2940、及び2950を含むこと
が好ましい。これらの各バージョンブロックは第31図のバージョンブロック3
100に示すフィールド及びポインタを含むことが好ましい。
バージョンブロック3100は、該バージョンブロック3100が係っているバ
ージョンの番号を識別するバージョン番号フィールド3110を含む、このフィ
ールドは、第29図にもバージョンブロック2930.2940、及び2950
のそれぞれの上部にNo、 1 、No、 2及びNo、 3によって図式的に
示しである。
バージョン使用カウントフィールド3120は、バージョンブロック3100に
対応するバージョンに現在アクセスしているユーザの数を表わす、ユーザが新バ
ージョンを創始することを希望する度毎に、バージョンブロック3100のバー
ジョン使用カウントフィールド3120は1だけ増加される。ユーザがそのバー
ジョンで終了すると、使用カウントフィールド3120は1だけ減ぜられる。バ
ージョン使用カウント3120の目的は、最早アクセスされなくなったのでもし
新しい主データファイル2900の新バージョンが利用可能となればマクロペー
ジをこれらの新バージヲンに置換可能であるバージョンを識別することである。
新バージョンフィールド3130は、主データファイル2900の次に最新のバ
ージョンのためのバージョンブロックを指し示す。
フィールド3130内のポインタは、第29図においてバージョンブロック29
30がバージョンブロック2940を指し示し、バージョンブロック2940が
バージョンブロック2950を指し示すように図式的に示したある型のリンクを
実現する。
新バージョンフィールド3130に係っているのは、主データファイル2900
0次のバージョンのバージョンブロックを逆方向に指し示す古バージョンフィー
ルド3140である。即ちこれらのバージョンブロック間のリンケージは双方向
性である。第29図に示すように、バージョンブロック2950はバージョンブ
ロック2940を指し示し、バージョンブロック2940はバージョンブロック
2930を指し示している。
最終変更バージランフイールド3150は最新の最初に変更された対応バージョ
ンのマクロページを指し示すポインタを包含する。このフィールドのa能の詳細
に関しては後述するが、要約すればある特定バージョンに関してマクロベージが
変更される最初の時点に、そのマクロページの1次の更新フィールド”はバージ
ョンブロック3100の最終変更バージョンフィールド3150の内容を包含す
るように変化し、バージョンブロックの最終変更バージョンフィールドはこのマ
クロページを指し示すように変化する。バージョンブロック3100の最終変更
バージョンフィールドは当初は0にセントされる。各マクロページが最初に変更
される最初の時点に、各マクロページはこのバージョンにおいて変更されたマク
ロページのリストの冒頭にリンクされる。従って、最終変更バージョンフィール
ドは最も新しい最初に弐更されたマクロページを指し示すのである。
この手順の理由はデータ操作の効率にある。新マクロページが最初に変更される
時、−次メモリ内のスペースを節約するためにその直前に変更されたマクロペー
ジがディスクに戻されて配置されている可能性が極めて大きい、単に1つのポイ
ンタを更新するためにディスクからこのマクロページを検索するのは非効率的で
ある。バージョンブロックは常に一部メモリ内に所在しているのであるから、バ
ージョンブロック3100の対応フィールドを更新する方が容易である。
最初の属性スイッチフィールド3160及び最初の索引スイッチフィールド31
65はそれぞれ、対応するバージョンのために最初に作成された属性ファイル及
び索引ファイルのためのスイッチブロックを指し示す、勿論、もし属性ファイル
及び索引ファイルが混合されていれば、これらのフィールドの一方のみが必要と
なる。
バージョンブロック3100は4つのバージョン初期マクロベージ番号フィール
ド3170.3175.3180及び3185を含めて完成される。初期属性マ
クロベージ番号フィールド3170は、そのバージョンの開始時の属性ファイル
600に対応する主データファイル2900の最高マクロベージ番号を識別する
。第29図の例で云えば、フィールド3170内の番号は3である。
初期スナップショットマクロベージ番号フィールド3175は、そのバージョン
の開始時の属性ファイル600のスナップショットファイル2910内の最高マ
クロページ番号を包含する。第29図の例を用いればこのフィールドは数5を包
含する。
初期索引マクロベージ番号ファイル3180及び初期スナップショット索引マク
ロベージ番号フィールド3185は、ファイル3170及び3175と同等の機
能を有するが、索引ファイル800の主データファイル及びスナップショットデ
ータファイルに係っている。索引ファイル800の主データファイル及びスナッ
プショットデータファイルは図示してないが、属性ファイル600の主データフ
ァイル及びスナップショットデータファイルと同一であることが好ましい、勿論
、索引ファイル800が属性ファイル600と混合されていれば、フィールド3
180及び3185は必要ない。
データベース制御ファイル2920のスイッチブロック区分2928は、第29
図に示すブロック2932.2934.2936.2938.2942.294
4.2952.2954.2596及び2958のようなスイッチブロックを含
む、第32図のスイッチブロック3200は、これらのスイッチブロックの一例
である。スイッチブロックの好ましい実施例3200は、属性ファイル600及
び索引ファイル800のためのスイッチブロックに通用される。もし単一の属性
/索引ファイルが存在するのであれば、1つの型のスイッチブロックだけが存在
する。
スイッチブロック3200は、そのスイッチブロックが存在するバージョン番号
を識別するバージョン番号フィールド3210を含む、この番号は第29図にも
各スイッチブロックの右上隅に番号で示しである。
スイッチブロック3200は、スイッチブロック3200が対応するバージョン
のバージョンブロックの位置を識別するバージョンポインタ3220を包含する
ことが好ましい0次のフィールド即ちマクロベージ番号フィールド3230は、
主データファイル2900内の、或は索引ファイル800の同等主データファイ
ル内の対応マクロベージを識別する。マクロベージスロット番号3240は、ス
イッチブロック3200に対応するマクロページのバージョンを記憶しているス
ナップショットデータファイル2910 (或は索引ファイル800のスナップ
ショットデータファイル)のスロット番号を識別する。
スイッチブロック3200内の次の2つのフィールドは新バージョンフィールド
3250及び古バージョンフィールド3260であり、これらはそれぞれスイッ
チブロック3200が対応している主データファイル2900内の同一マクロベ
ージの現在は最新のバージョン、及び現在は最新ではないバージョンに対応する
スイッチブロックを指し示すポインタを包含する。これらのフィールドの使用に
関しては共通データ構造140′へ如何にしてアクセスするかを説明する時に詳
述するが、これらのフィールドの使用例は第33回を参照すれば理解できる。
マクロページにアクセスするためには、所望のマクロベージ番号を有するハフシ
ュ表2924に進入し、そのマクロページの最新バージョンに対応するスイッチ
ブロックを指し示すポインタを入手する。そのマクロページより以前のバージョ
ンを得るためには、マクロページの所望バージョンのスイッチブロックが位置付
けされるまで古いバージョンポインタ3260の使用を続行する。
スイッチブロック3210は、同一バージョンのための次のスイッチブロックを
識別する次のスイッチポインタ3270も包含する0次のスイッチポインタ32
70が遂行するリンクは、第29図ではスイッチブロック2952.2954.
2956、及び2958間、及びスイッチブロック2942及び2944間、及
びスイッチブロック2932.2934.2930、及び2938間に右に向い
た矢印によって図式的に示されている。スイッチブロック3200の最後のフィ
ールドは、スイッチBフラグフィールド3280であり、スイッチV分副スロッ
トフラグを含む、このフラグは前述のロールバンクエラー回復に使用される。こ
のフラグは、別のスイッチブロックがこのスイッチブロックと同一であることを
指示する0例えば、マクロページXのバージョンnはスロットyであり得る。従
ってマクロページXのバージョンn+2もスロットyであり得、これらのバージ
ョンはロールバンクの直前と直後の同一状態に対応する。
上述の共通データ構造140′を理解すれば、本発明の共通データ構造に関して
説明した作成及びアクセス手順は、本発明の特定実施例に関して理解できよう。
第33図乃至第36図に示す流れ図3300.3400.3500.3520.
3530、及び3600は、第29図乃至第32図に示す共通データ構造140
′を更新し、該構造にアクセスする好ましい方法を示す。第33図乃至第36図
の手順は記憶及び管理ソフトウェアによって遂行することが好ましい。
第33回の手順の発端は、変更ロック及びDECロックを入手することである(
ステップ3310)、変更ロック568の目的は、任意の一時点に1つの応用の
みが共通データ構造140′を変更することを保証することである。DBCロン
ク569の目的は、任意の一時点に1つの応用のみがデータベース制御ファイル
2920を変更することを確実にすることである。
次に、新バージョンブロックをこの特定バージョンのために作成する(ステップ
3315)、これでDBCロンクを戻すことができる(ステップ3320)。
次の段階は、次に行う変更は無マークマクロページ(即ちこのバージョンマクロ
ページにはそれ以前に変更は行われていない)に対するものか否かを決定するこ
とである(ステップ3325)。
もし諾ならば、若干の行動を起さなければならない。
先ず、応用はDBCロック569を入手する(ステップ3330)。
次にバージョンブロック3150の最終変更フィールドの現行内容を、そのマク
ロページの次に更新されるフィールドヘコビーする(ステップ3335)、次で
そのマクロページを指し示すポインタをバージョンブロックの最終変更バージョ
ンフィールド3150ヘコピーする(ステップ3340)、最後に、DECEC
ロック56戻す(ステップ3345)。
次の変更が無マークページに対するものでなければ、或はマクロページをバージ
ョンブロックにリンクした後に、そのマクロページへの変更を行うことが可能で
ある(ステップ3350)、その後、それ以上変更するものが存在するか否かが
決定される(ステップ3355)。もし諾ならば、このプロセスは、次に行う変
更が無マークページに対するものか否かの質問(ステップ3325)に戻されて
反覆される。もしそれ以上の変更が行われないならば、引き渡しルーチンが呼び
出され(ステップ3360)、主データファイル2900のマクロページがスナ
ップショットデータファイル2910へ記憶され、またデータ構造140′のこ
のバージョンが他の応用プログラムによってアクセス可能になったことを指示す
る。
第34図は引き渡しルーチンの好ましい流れ図である。第1段階はDECロック
を入手することである(ステップ3450)。
次に、バージョンブロック3100内の最終変更フィールド3150が0に等し
いか否かの決定を行わなければならない(ステップ3410)。もし諾ならば、
変更は行われなかったのである。もし最終変更バージョンポインタが0に等しく
なければ、変更が行われたのであり、初期ハウスキーピングを遂行しなければな
らない(ステップ3415)、このハウスキーピングの詳細に関しては後述する
。
次に、最終変更バージョンポインタによって指し示されるマクロページを検索し
なければならない(ステップ3420)、次でこの検索されたマクロページのス
ロット番号を、該マクロページが記憶されるスナップショットデータファイル2
910のスロット番号を指示するように更新しなければならない(ステップ34
25)。
このスロット番号は、スナップショットデータファイル2910の自由スロット
の記憶及びソフトウェア565によって包含されている成る種のリスト内にある
ことが好ましい。
次に、スイッチブロックとバージョンとのリンケージを確認しくステップ343
0)、上記マクロページを適切なスロット番号で主データファイル2900から
スナンプショソトデータファイル2910内ヘコピーする(ステップ3435)
。次で、ハツシュ表2924をこの変更されたマクロページの最新バージョンの
スイッチブロックを指し示すように更新し、そのスイッチブロックを同一マクロ
ページのスイッチブロックより以前のバージョンへリンクする(ステップ344
0)。
この更新の後に、現行マクロページの次の更新フィールドを入手する(ステップ
3445)。もしこの次の更新フィールドが0に等しくな(変更された別のマク
ロページが存在していることを指示していれば(ステップ3450)、次に更新
されるマクロページが入手され、適切なスイッチブロックへのエントリで始まる
手順が反覆される(ステップ3425)。
現行マクロページの次の更新フィールドがOであれば、変更されるマクロページ
はそれ以上存在しないことになり、中間ハウスキーピングが遂行される(ステッ
プ3460)。この段階は、最終変更バージョンフィールドが0である場合(ス
テップ3410)にも遂行される。この中間ハウスキーピングの詳細も後述する
。
次に、データベース制御ファイル2920のポインタ/カウンタブロック292
2内の現行バージョン番号3030及びバージョンブロックポインタフィールド
3035が更新される。これが引き渡し点であり、この時点で他の応用が主デー
タファイル2900の最新バージョンを利用可能になる(ステップ3465)。
次で最終ハウスキーピングが遂行され(ステップ3470)、DBCロフク及び
変更ロックが戻される。(ステップ3475)。
第35A図乃至第35C図は、第34図の引き渡しルーチンの初期、中間及び最
終ハウスキーピング段階に伴う手順を示す、第35A図に示す流れ図3500は
初期ハウスキーピングに対応し、第35B図に示す流れ図3520は中間ハウス
キーピングに対応し、そして第35C図に示す流れ図3540は最終ハウスキー
ピンクに対応する。
初期ハウスキーピング手順における第1段階は古くなったバージョンブロック及
びスイッチブロックを削除することである(ステップ3505)、あるバージョ
ンブロックは、それが最新のバージョンではない時に、及びバージョンユーザカ
ウントフィールド3120によって指示されるように、現行ユーザが存在しない
時に古くなるのである。削除は、これらのスイッチブロック及びバージョンブロ
ックのリンクを切離すことによって、及びこれらのリンクを切離されたブロック
に対応するメモリを自由ブロックのリストに載せることによって発生する。
次で主データファイル2900の大きさがスナップショットデータファイル29
10の大きさと比較される。もし、新マクロページが主データファイル2900
に付加されていて生データファイル2900がスナップショットデータファイル
2910よりも大きければ、スナップショットデータファイル2910を相応に
増大させなければならない(ステップ3510)、これを行った時に、スナップ
ショットデータファイルに付加したマクロページを、主データファイルに付加し
た対応マクロベージのための自然スロットのリストにも載せる。
流れ図3520に示す中間ハウスキーピングの第1段階は全ての不法侵入者を退
去させることである(ステップ3525)、この不法侵入者とは別の現存マクロ
ベージのための自然スロット内にあるマクロベージである0例えば、もしマクロ
ページ3のための自然スロット(換言すればスロット番号3)が3に等しくない
マクロページを有していれば、そのマクロページはスナップショットデータファ
イル2510内の何処か他へ移動させられる。
次に、空白の自然スロットに対応するマクロページをこれらの自然スロット内に
移動させる(ステップ3630)、本実施例においては、マクロベージ番号3の
最新バージョンを見出し、その自然スロット内へ戻して挿入する。
最終ハウスキーピングにおいては、古くなったバージョン及びスイッチブロック
の削除作用のみが行われる(ステップ3545)。
第36図は、あるマクロページの所望のバージョンにアクセスする好ましい実施
例の流れ図3600である。最初の段階においては、所望のマクロページの最新
バージョンの位置を決定するためにハツシュ表がサーチされる(ステップ361
0)、次に、もしハツシュ表がそのマクロページの位置を指示すれば、そのマク
ロページのバージョン番号を試験してそれが所望のバージョン番号よりも小さい
か或は等しいかを見る(ステップ3620)、これは、既に1つのバージョンと
共に動作している応用プログラムは他の全てのマクロページの同一バージョンに
アクセスし続けなジにアクセスしている時には他の若干のバージョンは完了して
いるかも知れないから、現行バージョンが適切なバージョンではないかも知れな
い。
もし現在アクセスしているマクロページのバージョン番号が応用プログラムのバ
ージョン番号よりも大きければ、行ったのと同一の試験によって次に古いバージ
ョンマクロベージを見出すためにスイッチブロックポインタがアクセスされる(
ステップ3630)。
一旦適切なバージョンが見出されると、所望のマクロページのためのスイッチブ
ロックを使用してそのマクロページのためのスナップショットデータファイル2
910内の位置を指し示す(ステップ3640)。
ハツシュ表内に入口が見出されなければ(ステップ3610)、そのマクロベー
ジ番号自体をそのマクロページにアクセスするためのマクロページのスロット番
号として使用する(ステップ3640)、次でこのルーチンから出て行く。
G、適−!
当業者ならば本発明の範囲或は思想から逸脱することなく本発明に種々の変更を
施し得ることは明白である。従って本発明は本発明の変更及び変化を、それらが
請求の範囲内及び法律的に権利を付与された同等物に入るならば、それらも包含
することを企図するものである。
阜ノ[il
1棒
葬5※図
茅g図
ヂヂロ
誉10A(21
茅/21!
茅75(2)
茅190
2Q60
茅22の
茅23.A口
¥−23B図
亮21LA国
卒21t6図
五2q閏
≠26ji
≠28(2)
賽Z8A国
業テ1と苫スぐ70ヲ7
茅30」
ノで一シコン1O−y7 μ邊q
弄32匡
邦5ハロ
英3G辺
手続補正書(方式)
%式%
3、補正をする者
事件との関係 出願人
5、補正命令の日付 平成2年1月30日国際調査報告
+−1−−−m−1a−肯−−−NoPCT/US89101541I#I−−
jl、−M拳IA−−11−1−−m、PcT/LI589101541国際調
査報告
Claims (1)
- 【特許請求の範囲】 1.データ処理装置によって実行される複数の応用プログラムによってアクセス されるデータ構造を、データ処理装置に結合されているメモリの中に、これらの 応用プログラムから取得される複数のノードデータ及びノードデータ記述子を含 む応用データから作成するために: (a)前記各ノードデータ毎に複数の異なる属性データ対象を作成し; (b)各属性データ対象毎に、各属性データ対象と単一のホールダデータ対象と の間に階層的にホールドされた関係が存在するようにホールダデータ対象を前記 複数の属性対象から選択することによって、前記複数の属性データ対象をホール ドされた関係に従って階層的に編成し; (c)少なくとも1つのノードデータ記述子を伴うノードデータから作成された 前記属性データ対象の中の選択された属性データ対象に関して、前記選択された 属性データ対象の関連データ対象を前記属性データ対象から選択された属性デー タ対象の作成に使用されたノードデータのノードデータ記述子を表わすし、選択 された各関連データ対象を選択された属性データ対象に対応させることによって 非階層的関係を確立し、前記選択された属性データ対象を関係データ対象と呼び 、前記関連データ対象を有していない属性データ対象をエレメントデータ対象と 呼び; (d)前記属性データ対象の少なくとも1つをホールドする関係を有し、且つ何 れの属性データ対象にもホールドされた関係を有していない頂点データ対象を作 成し;(e)前記属性データ対象のための属性ファイルを作成し;(f)前記各 属性データ対象を前記属性ファイル内に挿入し;(g)前記各属性タータ対象毎 に、その属性データ対象にホールドされた関係を有する属性データ対象の1つを 指し示すホールディングポインタを前記属性ファイル内に挿入し;そして(h) 前記属性データ対象間の前記非階層的関係を表わす関連ポインタを前記属性ファ イル内に挿入する前記データ処理装置によって実行される諸段階を具備する方法 。 2.前記属性ファイルが前記各属性データ対象毎に対象ブロックを含み; 前記属性データ対象を前記属性ファイル内に挿入する段階が、異なる各属性デー タ対象毎に対象見出しブロックを作成し、そして 対象ブロックに関する情報を対象見出しブロック内に挿入する 諸副段階を含む請求の範囲1記載の方法。 3.ホールディングポインタを前記属性ファイル内に挿入する段階が、 各対象ブロックに対応する属性データ対象のための、且つその属性データ対象が ホールドされている関係を有する属性データ対象の対象ブロックの属性ファイル 内の位置を識別するホールディングポインタを前記各対象ブロック内に挿入する 副段階を含む請求の範囲2記載の方法。 4.前記対象見出しブロックの選択された組がリンクされ;前記方法が更に、 リンケージポインタを前記選択された組内の各対象見出しブロック内に挿入する 副段階をも具備する請求の範囲2記載の方法。 5.前記対象ブロックの選択された対象ブロックがホールドされた対象サブブロ ックをも含み; 更に、 各選択された対象ブロックの属性データ対象にホールドされた関係を有する属性 データ対象の対象ブロックを指し示すホールドされたポインタを各選択された対 象ブロックの前記ホールドされた対象サブブロック内に配置する副段階をも具備 する請求の範囲2記載の方法。 6.関連データ対象の前記各対象ブロックの選択された対象ブロックが関係サブ ブロックを含み; 関連ポインタを前記属性ファイル内に挿入する段階が、各関係データ対象の関連 属性データ対象を指し示す前記関連ポインタの1つをその関係データ対象の前記 関係サブブロック内に挿入する副段階を含む 請求の範囲2記載の方法。 7.若干の関係データ対象のための対象ブロックが複数の関連ポインタを識別す る複数関係サブブロックを含み;若干の関連データ対象のために、関連ポインタ を挿入する副段階が、前記複数関係サブブロックの1つを指し示すポインタを若 干の関連データ対象のための関係サブブロック内に挿入する副段階をも含む 請求の範囲6記載の方法。 8.前記若干の関係データ対象のための対象ブロックが複数関係見出しブロック を含み; 前記方法が更に、前記若干の各関係データ対象毎に、その関係データ対象に対す る各関連属性データ対象毎に有効複数関係サブブロックを作成し、そして作成さ れた複数関係サブブロックが有効であることを表わす標識を複数関係見出しブロ ック内に配置する諸副段階をも含む請求の範囲7記載の方法。 9.各関連データ対象毎に複数関係見出しブロックをリンクする副段階をも含む 請求の範囲8記載の方法。 10.前記各属性データ対象を複数の対象型の1つとして識別し;前記各対象型 のための議別名を特定し;前記各対象型毎の記憶領域を包含し、その対象型に伴 う情報を保持するディクショナリファイルを作成し;そして各対象型のために特 定された識別名、及びその対象型とその対象型のために特定された識別名との間 の名前ポインタを含むその対象型に伴う情報を前記記憶領域内に挿入する諸段階 をも具備する請求の範囲1記載の方法。 11.識別名と関連情報とを記憶領域内に挿入する段階が、同一の属性データ対 象にホールドされている関係を有する全ての属性データ対象のための記憶領域に 関係している対象型を有する属性データ対象を前記属性ファイル内に挿入する段 階を含む請求の範囲10記載の方法。 12.前記ディクショナリファイルの記憶領域が前記各対象型毎に対象型ブロッ クを含み、前記方法が前記各対象型ブロック内に前記対象ブロックの順序を付す ためのリンケージポインタを配置する段階を含む請求の範囲10記載の方法。 13.前記各対象型ブロック内に、それらの型の属性データ対象が順序付けられ ているか否かの標識を配置する段階をも含む請求の範囲12記載の方法。 14(a)前記頂点データ対象のための第1のファイルを作成し;そして (b)前記頂点データ対象のための第1のファイル内に、前記頂点データ対象に ホールドされている関係を有する属性データ対象を識別するホールディングポイ ンタを挿入する諸段階をも具備する請求の範囲10記載の方法。 15.前記第1のファイルが前記ディクショナリファイルである請求の範囲14 記載の方法。 16.(a)前記属性データ対象の若干に、前記属性ファイル内のこれら若干の 属性データ対象へ迅速にアクセス可能ならしめるための独特なキー値を割当て; (b)前記各キー値が1つの組の中のみに存在するように、それぞれが異なる組 のキー値に対応する葉ブロックを作成し;(c)前記各葉ブロック内に、それら の葉ブロックに対応して割当てられたキー値の1つを有する各属性データ対象の 属性ファイル内の位置を指し示すポインタを挿入し;そして(d)前記各キー値 の組の中から特定の葉ブロックのキー値に対応するキー値を割当てられている所 望の属性データ対象の位置を得るために、前記各組のキー値に対応する葉ブロッ クの迅速な決定を行うようにキー値の組に従って前記葉ブロックを編成する 諸段階をも具備する請求の範囲1記載の方法。 17.前記索引ブロックを編成する段階が、該ブロックを少なくとも1つの木構 造内で順序付ける副段階を含む請求の範囲16記載の方法。 18.前記索引ブロックを木構造内で順序付ける副段階が:(a)前記木構造内 へのエントリを提供する木構造の根ブロックを作成し; (b)それぞれが前記キー値の組の重なり合わない異なる群に対応する複数の枝 ブロックを作成し; (c)前記各組のキー値の重なり合わないキー値群を通る独特な経路を提供する ように前記枝ブロックを編成し;そして(d)前記各独特な経路が、所望属性デ ータ対象に割当てられたキー値を含み特定の経路を提供したキー値の組に対応す る葉ブロックに達するように、前記葉ブロック及び前記枝ブロックを編成する 諸副段階を含む請求の範囲17記載の方法。 19.前記若干の属性データ対象の中の特定された対象に関して、該対象に与え られたキー値の索引ブロックに達する経路を包含する木構造を識別する索引ディ レクトリブロックを前記属性ファイル内に構築する段階をも含む請求の範囲18 記載の方法。 20.前記ホールダポインタを前記属性データファイル内に挿入する段階が: 各属性データ対象の対象型を決定し; 各エレメントデータ対象の対象型に従って、前記属性ファイル内の属性ファイル 領域を各エレメントデータ対象及び前記ホールディングポインタに割当て; 前記属性データ対象の1つを包含する各属性ファイル領域を指し示す対象ポイン タを誘導し; 各ホールダデータ対象を指し示すポインタとして、各ホールダデータ対象にホー ルドされた関係を有する少なくとも1つのエレメントデータ対象のために前記対 象ポインタを設け;そして 各属性データ対象のための前記属性領域内の各属性データ対象のためのホールダ ポンイタとして、各エレメントデータ対象の前記ホールダデータ対象を包含する 前記属性ファイル領域の1つを指し示すポインタを設ける 諸副段階を具備する請求の範囲10記載の方法。 21.前記ホールディングポインタを前記属性データファイル内に挿入する段階 が、 同一の対象型である各属性データ対象毎の前記属性ファイル領域内に、その属性 データ対象と同一の型の属性データ対象の1つのために少なくとも1つの対象ポ インタを含ませることによって、同一の対象型である属性データ対象の選択され た組をリンクする 副段階をも具備する請求の範囲20記載の方法。 22.前記属性データ対象の選択された組をリンクする段階が、第1の対象ポイ ンタとして、属性データ対象の各組の最初の組を指し示すポインタを設ける 副段階を含む請求の範囲21記載の方法。 23.属性データ対象の選択された組をリンクする段階が、第2の対象ポインタ として、属性データ対象の各組の最後の組を指し示すポインタを設ける 副段階をも含む請求の範囲22記載の方法。 24.前記属性データ対象の組が、エレメントデータ対象だけしか含まない請求 の範囲23記載の方法。 25.前記ホールダポインタを前記属性データファイル内に挿入する段階が、 同一のホールダデータ対象を有する各属性データ対象毎の前記属性ファイル領域 内に、その属性データ対象と同一のホールダデータ対象を有する属性データ対象 の1つのために少なくとも1つの対象ポインタを含ませることによって、同一の ホールダデータ対象にホールドされた関係を有する属性データ対象の選択された 組をリンクする 副段階をも具備する請求の範囲20記載の方法。 26.前記属性データ対象の選択された組をリンクする段階が、第1の対象ポイ ンタとして、属性データ対象の各組の最初の組を指し示すポインタを段ける 副段階を含む請求の範囲25記載の方法。 27.属性データ対象の選択された組をリンクする段階が、第2の対象ポインタ として、属性データ対象の名組の最後の組を指し示すポインタを設ける 副段階をも含む請求の範囲26記載の方法。 28.前記属性データ対象の組が、エレメントデータ対象だけしか含まない請求 の範囲27記載の方法。 29.関連ポインタを前記属性ファイル内に挿入する段階が:前記エレメントデ ータ対象の第1の組の1つにホールドされた関係を有する前記関係データ対象の 各第1の対象毎に、その関係データ対象に係る関連属性データ対象がそのエレメ ントデータ対象のための属性ファイル領域内で特定されているか否かを決定し; 前記第1の組内の各エレメントデータ対象毎の関連ポインタとして、そのエレメ ントデータ対象にホールドされた関係を有する関係データ対象に係る関連属性デ ータ対象の対象ポインタを選択し、第1の関係データ対象に係る関連属性データ 対象がそのエレメントデータ対象の属性ファイル領域内で特定されているエレメ ントデータ対象の各第1の組毎に、そのエレメントデータ対象の属性ファイル領 域内に選択された関連ポインタを挿入し; 前記関係データ対象の1つがホールドされた関係を有している前記各第1の組の エレメントデータ対象毎の属性ファイル領域内に、その関係属性対象の関連属性 データ対象がその属性データ対象の属性ファイル領域内で特定されていない時に は、そのエレメントデータ対象のための属性ファイル領域内の関連データ対象領 域を割当て;そして そのエレメントデータ対象の関連データ対象領域内に、その関連データ対象のた めの関連ポインタとして、前記選択された関連属性データ対象の対象ポインタを 段ける諸副段階をも具備する請求の範囲20記載の方法。 30.複数の応用プログラムを実行する少なくとも1つの中央処理装置、及び前 記応用プログラムに共通するデータ構造を包含するメモリを含むデータ処理シス テムにおいて、前記共通データ構造は複数の属性データ対象を有するデータ構造 を包含し、各属性データ対象は他の1つの属性データ対象に、或は頂点に階層的 にホールドされた関係を有し、前記属性データ対象の中の選択された対象は非階 層的関係を有し、各属性データ対象は該対象にホールドされた関係にある他の属 性データ対象のためのメモリ領域を指し示すポインタを含む組合わされたメモリ 領域を有し、前記属性データ対象の所望の1つを前記データ構造に加えるために : 前記所望の属性データ対象のためのメモリ領域を作成し;ホールダ属性データ対 象として、前記所望の属性データ対象がホールドされた関係を有する属性データ 対象の1つを位置付けし; 前記ホールダ属性データ対象のためのメモリ領域内に、前記所望の属性データ対 象のメモリ領域を指し示すポインタを加え;そして 前記所望の属性データ対象と、前記ホールダ属性データ対象にホールドされた関 係を有する他の属性データ対象とをリンクする 前記中央処理装置によって実行される諸段階を具備する方法。 31.複数の応用プログラムを実行する少なくとも1つの中央処理装置、及び前 記応用プログラムに共通するデータ構造を包含するメモリを含むデータ処理装置 において、前記共通データ構造は複数の属性データ対象を有するデータ構造を包 含し、各属性データ対象は他の1つの属性データ対象に、或は頂点に階層的にホ ールドされた関係を有し、前記属性データ対象の中の選択された対象は他の属性 データ対象と非階層的関係を有し、各属性データ対象は組合わされたメモリ領域 を有し、前記属性データ対象の所与の対象と前記属性データ対象の関連対象との 間に所望の非階層的関係を作成するために:前記関連属性データ対象の位置を決 定し;前記所与の属性データ対象のメモリ領域にアクセスし;そして 前記所与の属性データ対象の前記メモリ領域内に、前記関連属性データ対象位置 を指し示すポインタを配置する前記中央処理装置によって実行される諸段階を具 備する方法。 32.前記所望の非階層的関係は所定の型の関係の1つであるように選択され、 前記メモリシステムは前記非階層的関係の型及び前記属性データ対象のためのメ モリ領域内の何処に前記型の関連属性データ対象を指し示すポインタが見出され るかを識別し、ポインタを配置する段階が; 前記所望の非階層的関係の型を決定し;前記型領域内に、前記所望の非階層的関 係の型の関係のための前記メモリ領域の位置を見出し;そして前記非階層的関係 型に関して見出された前記所与の属性データ対象のメモリ領域内に前記ポインタ を配置する諸副段階を含む請求の範囲31記載の方法。 33.複数の応用プログラムを実行する少なくとも1つの中央処理装置、及び前 記応用プログラムに共通するデータ構造を包含するメモリを含むデータ処理シス テムにおいて、前記共通データ構造は複数の属性データ対象を有するデータ構造 を包含し、各属性データ対象は前記属性データ対象の中の単一のホールダ属性デ ータ対象に、或は頂点に階層的にホールドされた関係を有し、前記属性データ対 象の中の選択された対象は非階層的関係を有し、各属性データ対象が、 前記属性データ対象の同一ホールダ属性データ対象にホールドされた関係にある 属性データ対象を指し示すシーケンスポインタ、 前記属性データ対象の中の前記ホールダ属性データ対象を指し示すホールダポイ ンタ、及び その属性データ対象が非階層的関係を有している属性データ対象の何れかの関連 属性データ対象を指し示す関連ポインタを包含する組合わされたメモリ領域を有 し、前記属性データ対象の中の所望の属性データ対象のためのメモリ領域を消去 するために: 前記所望の属性データ対象のためのメモリ領域を位置付けし;前記関連ポインタ を消去し; 前記ホールダ属性データ対象のためのメモリ領域を位置付けし; 前記所望の属性データ対象のためのホールダポインタの1つを消去し; 前記所望の属性データ対象を指し示すポインタの何れかを除去するように前記シ ーケンスポインタを調整し;そして前記所望の属性データ対象にホールドされた 関係を有する、或は包含の木属性データ対象の中の別の属性データ対象にホール ドされた関係を有する属性データ対象の全ての包含の木内の属性データ対象のた めのメモリ領域を消去する前記中央処理装置によって実行される諸段階を具備す る方法。 34.複数の応用プログラムを実行する少なくとも1つの中央処理装置、及び前 記応用プログラムに共通するデータ構造を包含するメモリを含むデータ処理シス テムにおいて、前記共通データ構造は複数の属性データ対象を有するデータ構造 を包含し、各属性データ対象は他の1つの属性データ対象に、或は頂点に階層的 にホールドされた関係を有し、前記属性データ対象の中の選択された対象は他の 関連属性データ対象と非階層的関係を有し、各属性データ対象はその関連属性デ ータ対象と非階層的関係を有する関連属性データ対象の何れかを指し示す関連ポ インタを包含する組合わされたメモリ領域を有し、前記各関連データ対象毎の組 合わされたメモリ領域はその関連属性データ対象と非階層的関係を有する属性デ ータ対象を指し示す非階層的関係ポインタを包含し、所与の属性データ対象と関 連属性データ対象との間の所望の非階層的関係を消去するために:前記所与の属 性データ対象のためのメモリ領域を位置付けし;前記所与の属性データ対象のた めのメモリ領域内の前記所与の関連属性データ対象を指し示す関連ポインタを位 置付けし;前記関連ポインタを使用して前記所与の関連属性データ対象を位置付 けし; 前記関連属性データ対象のためのメモリ領域内の前記所与の属性データ対象を指 し示す非階層的関係ポインタを位置付けし;前記非階層的関係ポインタを消去し ;そして前記関連ポインタを消去する 前記中央処理装置によって実行される諸段階を具備する方法。 35.データ構造を更新してデータ構造の新バージョンを作成するために使用さ れ且つ一連のベージに分割されている主データファイルと、前記データ構造の異 なるバージョンにアクセス可能ならしめ且つそれぞれが前記主データファイルの ベージの1つを包含するのに充分に大きい複数のスロットからなる副ファイルと を包含するメモリシステム内に記憶されているデータ構造の異なるバージョンを 管理する方法であって:前記データ構造の新バージョンを発生して前記主データ ァイル内の0或はそれ以上のベージを変更し;前記データ構造の各新バージョン 毎に、前記データ構造の新バージョンに関する情報を包含する新バージョンブロ ックを作成し; 前記データ構造の新バージョンの発生により変更された前記主データファイルの 各ベージ毎に、対応し且つ独特なスイッチブロックを作成し; 前記副ファイル内に、前記データ構造の新バージョン内の変更された前記主デー タファイルからの各ベージをコピーし;そして 前記各スイッチブロック内に、各スイッチブロックに対応するベージの識別名、 ベージが変更されたバージョン、及び変更されたぺージをコピーした副ファイル 内のスロットを挿入する諸段階を具備する方法。 36.前記ベージの中の同一ぺージに対応するスイッチブロックをリンクし;そ して 前記主データファイル内の各ベージに対応する少なくとも1つのスイッチブロッ クを位置付けする表を構築する諸段階をも含む請求の範囲35記載の方法。 37.データ構造の異なるバージョンを記憶し、管理するメモリシステムであっ て; データ構造の新バージョンを作成するために、一連のベージに分割され且つデー タ構造の最新バージョンを包含する主データファイル手段; 前記主データファイル手段に結合され、外部からのアクセスに備えて前記データ 構造の異なるバージョンを保持するためにそれぞれが前記主データファイルのベ ージの1つを保持するのに充分な大きさの複数のスロットを包含する副ファイル 手段;及び 前記主データファイル手段と前記副ファイル手段とに結合され、前記メモリシス テムの管理に必要な情報を記憶し、且つそれぞれが前記データ構造の異なるバー ジョンに関する情報を包含する複数のバージョンブロック、及びそれぞれが前記 データ構造のバージョンの1つと、対応するバージョン中に変更された前記デー タ構造内のあるベージとに対応し、それぞれがそのスイッチブロックに対応する ベージのための識別名、そのベージが変更されたバージョン、及び変更されたペ ージをコピーした前記副ファイル手段内のスロットを包含する複数のスイッチブ ロックを含むデータベース制御ファイル手段 を具備するメモリシステム。 38.前記スイッチブロンク手段が前記ベージの中の同一のベージに対応するス イッチブロックに関するリンクをも含み、前記メモリシステムが更に、 前記主データファイル手段内のベージの1つに対応する少なくとも1つのスイッ チブロックを位置付けするためのマッピング情報を包含する表 をも具備する請求の範囲37記載の方法。 39.中央処理装置に結合され、頂点、前記中央処理装置によって実行される応 用プログラム内の異なるノードデータにそれぞれ対応する複数のエレメント、前 記各エレメントに関して他の1つのエレメント或は頂点のみがそのエレメントを ホールドする関係を有するように制限された前記エレメント間の階層的ホールデ ィング関係、及び前記エレメントに係る非階層的関係を含むデータ構造を包含す るメモリシステムであって:前記各エレメントに関する情報を包含し、且つ前記 エレメントに関する識別情報を包含する見出し部分、前記各エレメントが前記ホ ールディング関係の1つを有するエレメントを識別するホールディングポインタ 、及び前記非階層的関係を特定する関係識別名を含むエレメント記憶手段;及び 前記頂点に関する情報を包含し、且つ 前記頂点のための識別名情報、及び 前記頂点とホールディング関係の1つを有するエレメントを指し示すポインタ を含む頂点記憶手段 を具備するメモリシステム。 40.前記データ構造は、前記頂点にホールドされた関係を有する少なくとも1 つの文脈を含み; 前記少なくとも1つの文脈は、少なくとも1つの前記エレメントをホールドする 関係を有し; 前記各少なくとも1つの文脈は包含の木に対応し、前記包含の木はそのエレメン トがホールドする関係を有する全てのエレメント及び前記少なくとも1つの文脈 の包含の木内のエレメントの中の他のエレメントがホールドする関係を有する何 等かの他のエレメントを含み、前記各エレメントは前記少なくとも1つの文脈の 1つだけの包含の木の中に含まれており;前記エレメントに、前記少なくとも1 つの文脈の包含の木内のエレメントが、異なる少なくとも1つの文脈の包含の木 内のエレメントの名前と異ならせる必要がない独特の名前を付け;前記メモリは 更に 前記少なくとも1つの文脈を包含し、且つ前記少なくとも1つの文脈のための識 別名情報、及び前記各少なくとも1つの文脈をホールドする関係を有するエレメ ントを指し示すエレメントポインタをも含む文脈記憶手段 をも含む請求の範囲39記載のメモリシステム。 41.前記エレメントの若干はそれぞれ複数のキー値の異なるキー値に組合わさ れ、前記メモリが更に: 前記複数のキー値を包含し、且つ 前記キー値の重なり合わない副組を順序付けた態様で配置する索引記憶部分、及 び 前記各キー値毎に、そのキー値に組合わされているエレメントのための識別情報 の前記エレメント記憶手段内の位置を特定するキー値ポインタ をも含む索引記憶手段;及び 前記各キー値を包含する前記索引記憶手段の前記部分を識別する索引ポインタ をも含む請求の範囲39記載のメモリシステム。 42.前記エレメント及び関係の若干が異なる型に組合わされ、前記メモリが更 に: 前記エレメント及び関係の型に関する情報を包含し、且つ前記エレメントの各型 毎に、その型のエレメントに関する情報を包含するエレメントフィールド、及び 前記関係の冬型毎に、その型の関係に関する情報を包含する関係フィールド を含むディクショナリ記憶手段;及び 所望のキー値を包含する前記索引記憶手段の部分を識別する索引ポインタ をも含む請求の範囲39記載のメモリシステム。 43.共通データ構造へのアクセスを維持し提供するデータ処理システムであっ て: 頂点、それぞれが中央処理装置によって実行される応用プログラム内の異なるノ ードデータに対応する複数のエレメント、前記各エレメントに関して他の1つの エレメント或は頂点のみがそのエレメントをホールドする関係を有するように制 限された前記エレメント間の階層的ホールディング関係、及び前記エレメントに 係る非階層的関係を含む前記共通データ構造を介してデータを交換する複数の応 用プログラムを実行する中央処理装置; 前記中央処理装置に結合され、前記共通データ構造を包含し、且つ 前記各エレメントに関する情報を包含し、且つ前記エレメントに関する識別情報 を包含する見出し部分、前記各エレメントが前記ホールディング関係の1つを有 するエレメントを識別するホールディングポインタ、及び前記非階層的関係を特 定する関係識別名をも含むエレメント記憶手段; 前記頂点に関する情報を包含し、且つ 前記頂点のための識別名情報、及び 前記頂点にホールドされた関係の1つを有するエレメントを指し示すエレメント ポインタ をも含む頂点記憶手段 をも含むメモリ を具備するデータ処理システム。 44.共通データ構造へのアクセスを維持し提供するデータ処理システムであっ て: 頂点、それぞれが中央処理装置によって実行される応用プログラム内の異なるノ ードデータに対応する複数のエレメント、前記各エレメントに関して他の1つの エレメント或は頂点のみがそのエレメントをホールドする関係を有するように制 限された前記エレメント間の階層的ホールディング関係、及び前記エレメントに 係る非階層的関係を含む前記共通データ構造を介してデータを交換する複数の応 用プログラムを同時に実行する複数の中央処理装置; 前記中央処理装置に結合され、前記共通データ構造を包含し、且つ 前記各エレメントに関する情報を包含し、且つ前記エレメントに関する識別情報 を包含する見出し部分、前記各エレメントが前記ホールディング関係の1つを有 するエレメントを識別するホールディングポインタ、及び前記非階層的関係を特 定する関係識別名をも含むエレメント記憶手段; 前記頂点に関する情報を包含し、且つ 前記頂点のための識別名情報、及び 前記頂点にホールドされた関係の1つを有するエレメントを指し示すエレメント ポインタ をも含む頂点記憶手段 をも含むメモリ を具備するデータ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/181,095 US4864497A (en) | 1988-04-13 | 1988-04-13 | Method of integrating software application programs using an attributive data model database |
US181,095 | 1988-04-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02501514A true JPH02501514A (ja) | 1990-05-24 |
Family
ID=22662885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1505036A Pending JPH02501514A (ja) | 1988-04-13 | 1989-04-13 | 属性データ モデル データベースを使用するソフトウエア応用プログラムを結合する方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4864497A (ja) |
EP (1) | EP0383850A1 (ja) |
JP (1) | JPH02501514A (ja) |
CA (1) | CA1325066C (ja) |
WO (1) | WO1989009971A2 (ja) |
Families Citing this family (153)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5123103A (en) * | 1986-10-17 | 1992-06-16 | Hitachi, Ltd. | Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts |
KR920002853B1 (ko) * | 1987-06-03 | 1992-04-06 | 미쓰비시덴기 가부시기가이샤 | 논리형언어의 데이타 처리방법 |
JPS6410353A (en) * | 1987-07-03 | 1989-01-13 | Hitachi Ltd | Computer file system |
IN170793B (ja) * | 1987-12-18 | 1992-05-23 | Hitachi Ltd | |
US5115504A (en) * | 1988-11-01 | 1992-05-19 | Lotus Development Corporation | Information management system |
US5101345A (en) * | 1988-11-29 | 1992-03-31 | International Business Machines Inc. | Method of filing stapled documents with a staple relationship involving one or more application programs |
US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
CN1059981A (zh) * | 1988-12-30 | 1992-04-01 | 惠普公司 | 为容纳进一对象管理设备环境的应用程序的封装 |
US5101493A (en) * | 1989-06-19 | 1992-03-31 | Digital Equipment Corporation | Digital computer using data structure including external reference arrangement |
US5175810A (en) * | 1989-06-19 | 1992-12-29 | Digital Equipment Corporation | Tabular data format |
US5129083A (en) * | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Conditional object creating system having different object pointers for accessing a set of data structure objects |
US5210868A (en) * | 1989-12-20 | 1993-05-11 | Hitachi Ltd. | Database system and matching method between databases |
GB2242293A (en) * | 1990-01-05 | 1991-09-25 | Apple Computer | Apparatus and method for dynamic linking of computer software components |
US6212557B1 (en) * | 1990-01-29 | 2001-04-03 | Compaq Computer Corporation | Method and apparatus for synchronizing upgrades in distributed network data processing systems |
JP3059467B2 (ja) * | 1990-07-17 | 2000-07-04 | シャープ株式会社 | ファイル管理装置 |
US5542085A (en) * | 1990-07-24 | 1996-07-30 | Hitachi, Ltd. | Method for producing program modules |
US5313636A (en) * | 1990-09-27 | 1994-05-17 | Intellicorp, Inc. | Mosaic objects and method for optimizing object representation performance in an object-oriented representation system |
JPH04153832A (ja) * | 1990-10-18 | 1992-05-27 | Fujitsu Ltd | 設計支援ツール自動構築処理方式 |
US5265206A (en) * | 1990-10-23 | 1993-11-23 | International Business Machines Corporation | System and method for implementing a messenger and object manager in an object oriented programming environment |
US5315709A (en) * | 1990-12-03 | 1994-05-24 | Bachman Information Systems, Inc. | Method and apparatus for transforming objects in data models |
IT1244478B (it) * | 1990-12-21 | 1994-07-15 | Eniricerche Spa | Gel cataliticamente attivo e procedimento per la sua preparazione |
JP3074737B2 (ja) * | 1990-12-29 | 2000-08-07 | カシオ計算機株式会社 | ファイル更新処理装置 |
US5581672A (en) * | 1991-12-19 | 1996-12-03 | Aerohydro, Inc. | System of relational entities for object-oriented computer-aided geometric design |
US5822781A (en) * | 1992-10-30 | 1998-10-13 | Intel Corporation | Sector-based storage device emulator having variable-sized sector |
US5295081A (en) * | 1992-10-30 | 1994-03-15 | International Business Machines Corporation | Concurrent interactive wire editing |
US6134304A (en) * | 1992-11-10 | 2000-10-17 | Telefonaktiebolaget Lm Ericsson | General analysis system |
US5495603A (en) * | 1993-06-14 | 1996-02-27 | International Business Machines Corporation | Declarative automatic class selection filter for dynamic file reclassification |
US5586317A (en) * | 1993-07-30 | 1996-12-17 | Apple Computer, Inc. | Method and apparatus for implementing I/O in a frame-based computer system |
US5588141A (en) * | 1993-07-30 | 1996-12-24 | Apple Computer, Inc. | System for executing different functions associated with different contexts corresponding to different screen events based upon information stored in unified data structure |
JPH0836513A (ja) * | 1993-12-29 | 1996-02-06 | Xerox Corp | データ管理方法及びデータ管理エラー回復方法 |
US6138202A (en) * | 1994-01-04 | 2000-10-24 | Iowa State University Research Foundation, Inc. | Object space manager circuit for obtaining addresses of object headers |
EP0667586A3 (en) * | 1994-02-14 | 1996-08-28 | Digital Equipment Corp | Database creation system. |
US5623419A (en) * | 1994-04-28 | 1997-04-22 | Cadence Design Systems, Inc. | Modeling of multi-disciplinary signals |
DE4416704A1 (de) * | 1994-05-11 | 1995-11-16 | Siemens Ag | Integrationstestverfahren für ein objektorientiertes Programm |
US5542078A (en) * | 1994-09-29 | 1996-07-30 | Ontos, Inc. | Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities |
US5732271A (en) * | 1995-01-23 | 1998-03-24 | International Business Machines Corporation | Data processing system and method for processing an object oriented development environment employing property inheritance using prototypical objects |
US5978577A (en) * | 1995-03-17 | 1999-11-02 | Csg Systems, Inc. | Method and apparatus for transaction processing in a distributed database system |
US5680586A (en) * | 1995-04-18 | 1997-10-21 | International Business Machines Corporation | Method and system for storing and accessing user-defined attributes within a data processing system |
US5692184A (en) * | 1995-05-09 | 1997-11-25 | Intergraph Corporation | Object relationship management system |
US5717922A (en) * | 1995-07-31 | 1998-02-10 | International Business Machines Corporation | Method and system for management of logical links between document elements during document interchange |
US5850535A (en) * | 1995-10-12 | 1998-12-15 | Computervision Corporation | Roll-back during regeneration on a computer-aided design system |
DE19538240A1 (de) * | 1995-10-13 | 1998-08-06 | Annette Brueckner | Informationssystem und Verfahren zur Speicherung von Daten in einem Informationssystem |
US5740423A (en) * | 1995-12-28 | 1998-04-14 | Csg Systems, Inc. | System and method for accessing distributed data on a plurality of databases |
US5826270A (en) * | 1995-12-28 | 1998-10-20 | Csg Systems, Inc. | Methods and systems for client or customer-site transaction processing in a distributed database system |
US6085233A (en) * | 1995-12-29 | 2000-07-04 | Pankosmion, Inc. | System and method for cellular network computing and communications |
GB9600823D0 (en) * | 1996-01-16 | 1996-03-20 | British Telecomm | Distributed processing |
US5870733A (en) * | 1996-06-14 | 1999-02-09 | Electronic Data Systems Corporation | Automated system and method for providing access data concerning an item of business property |
US5845296A (en) * | 1996-07-10 | 1998-12-01 | Oracle Corporation | Method and apparatus for implementing segmented arrays in a database |
CA2264014A1 (en) * | 1996-08-29 | 1998-03-19 | Denis Fetherston | An automated maintenance system |
US6047296A (en) * | 1996-12-09 | 2000-04-04 | Omnimark Technologies Corporation | Comprehensive method of resolving nested forward references in electronic data streams within defined resolution scopes |
US5842213A (en) * | 1997-01-28 | 1998-11-24 | Odom; Paul S. | Method for modeling, storing, and transferring data in neutral form |
US5937402A (en) * | 1997-06-19 | 1999-08-10 | Ontos, Inc. | System for enabling access to a relational database from an object oriented program |
US6990458B2 (en) | 1997-08-28 | 2006-01-24 | Csg Systems, Inc. | System and method for computer-aided technician dispatch and communication |
US6847384B1 (en) * | 1998-05-14 | 2005-01-25 | Autodesk, Inc. | Translating objects between software applications which employ different data formats |
AU744893B2 (en) * | 1999-01-29 | 2002-03-07 | Canon Kabushiki Kaisha | Applying a set of rules to a description of a resource |
US7027993B1 (en) | 1999-03-12 | 2006-04-11 | International Business Machines Corporation | Computerized knowledge brokerage system |
FI991261A (fi) * | 1999-06-02 | 2000-12-03 | Nokia Networks Oy | Trie-rakenteeseen perustuva funktionaalinen muisti |
US6550057B1 (en) * | 1999-08-31 | 2003-04-15 | Accenture Llp | Piecemeal retrieval in an information services patterns environment |
FI20000178A (fi) * | 2000-01-28 | 2001-07-29 | Nokia Networks Oy | Datan palautus hajautetussa järjestelmässä |
US7200600B2 (en) * | 2000-06-30 | 2007-04-03 | Boris Gelfand | Data cells, and a system and method for accessing data in a data cell |
US7680738B2 (en) | 2000-11-22 | 2010-03-16 | American Express Travel Related Services Company, Inc. | System and method for executing cash payments via a computer network |
KR100425831B1 (ko) * | 2001-01-08 | 2004-04-03 | 엘지전자 주식회사 | 개인정보 단말기에서의 데이터 저장방법 |
US6643635B2 (en) * | 2001-03-15 | 2003-11-04 | Sagemetrics Corporation | Methods for dynamically accessing, processing, and presenting data acquired from disparate data sources |
US7197506B2 (en) * | 2001-04-06 | 2007-03-27 | Renar Company, Llc | Collection management system |
JP3695581B2 (ja) * | 2001-08-08 | 2005-09-14 | ソニー株式会社 | 記録装置および記録方法、記録媒体、並びに、電子カメラ |
US20030115207A1 (en) * | 2001-09-25 | 2003-06-19 | Bowman David M. | Hierarchical hybrid OLAP analytics generators |
US6978283B1 (en) | 2001-12-21 | 2005-12-20 | Network Appliance, Inc. | File system defragmentation technique via write allocation |
US6993539B2 (en) | 2002-03-19 | 2006-01-31 | Network Appliance, Inc. | System and method for determining changes in two snapshots and for transmitting changes to destination snapshot |
US7873700B2 (en) * | 2002-08-09 | 2011-01-18 | Netapp, Inc. | Multi-protocol storage appliance that provides integrated support for file and block access protocols |
US7340486B1 (en) * | 2002-10-10 | 2008-03-04 | Network Appliance, Inc. | System and method for file system snapshot of a virtual logical disk |
US7809693B2 (en) * | 2003-02-10 | 2010-10-05 | Netapp, Inc. | System and method for restoring data on demand for instant volume restoration |
US7437523B1 (en) | 2003-04-25 | 2008-10-14 | Network Appliance, Inc. | System and method for on-the-fly file folding in a replicated storage system |
US7721062B1 (en) | 2003-11-10 | 2010-05-18 | Netapp, Inc. | Method for detecting leaked buffer writes across file system consistency points |
US7783611B1 (en) | 2003-11-10 | 2010-08-24 | Netapp, Inc. | System and method for managing file metadata during consistency points |
US7401093B1 (en) | 2003-11-10 | 2008-07-15 | Network Appliance, Inc. | System and method for managing file data during consistency points |
US7720801B2 (en) | 2003-12-19 | 2010-05-18 | Netapp, Inc. | System and method for supporting asynchronous data replication with very short update intervals |
US7478101B1 (en) | 2003-12-23 | 2009-01-13 | Networks Appliance, Inc. | System-independent data format in a mirrored storage system environment and method for using the same |
US7395319B2 (en) | 2003-12-31 | 2008-07-01 | Checkfree Corporation | System using contact list to identify network address for accessing electronic commerce application |
US8041888B2 (en) * | 2004-02-05 | 2011-10-18 | Netapp, Inc. | System and method for LUN cloning |
US7409511B2 (en) * | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Cloning technique for efficiently creating a copy of a volume in a storage system |
US7334095B1 (en) | 2004-04-30 | 2008-02-19 | Network Appliance, Inc. | Writable clone of read-only volume |
US7430571B2 (en) | 2004-04-30 | 2008-09-30 | Network Appliance, Inc. | Extension of write anywhere file layout write allocation |
US7334094B2 (en) * | 2004-04-30 | 2008-02-19 | Network Appliance, Inc. | Online clone volume splitting technique |
US7409494B2 (en) * | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
US7509329B1 (en) | 2004-06-01 | 2009-03-24 | Network Appliance, Inc. | Technique for accelerating file deletion by preloading indirect blocks |
US7519628B1 (en) | 2004-06-01 | 2009-04-14 | Network Appliance, Inc. | Technique for accelerating log replay with partial cache flush |
US7243207B1 (en) | 2004-09-27 | 2007-07-10 | Network Appliance, Inc. | Technique for translating a pure virtual file system data stream into a hybrid virtual volume |
US7194595B1 (en) | 2004-09-27 | 2007-03-20 | Network Appliance, Inc. | Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream |
US7260678B1 (en) | 2004-10-13 | 2007-08-21 | Network Appliance, Inc. | System and method for determining disk ownership model |
US7603532B2 (en) * | 2004-10-15 | 2009-10-13 | Netapp, Inc. | System and method for reclaiming unused space from a thinly provisioned data container |
US7499939B2 (en) * | 2004-10-18 | 2009-03-03 | International Business Machines Corporation | Method for efficiently managing membership in a hierarchical data structure |
US7730277B1 (en) | 2004-10-25 | 2010-06-01 | Netapp, Inc. | System and method for using pvbn placeholders in a flexible volume of a storage system |
US20060122959A1 (en) * | 2004-11-08 | 2006-06-08 | Chris Hample | Systems and methods for organizing, sharing, and communicating data |
US7636744B1 (en) | 2004-11-17 | 2009-12-22 | Netapp, Inc. | System and method for flexible space reservations in a file system supporting persistent consistency point images |
US7523286B2 (en) * | 2004-11-19 | 2009-04-21 | Network Appliance, Inc. | System and method for real-time balancing of user workload across multiple storage systems with shared back end storage |
US7707165B1 (en) | 2004-12-09 | 2010-04-27 | Netapp, Inc. | System and method for managing data versions in a file system |
US7506111B1 (en) | 2004-12-20 | 2009-03-17 | Network Appliance, Inc. | System and method for determining a number of overwitten blocks between data containers |
EP1672548A1 (en) * | 2004-12-20 | 2006-06-21 | Dassault Systèmes | Process and system for rendering an object in a view using a product lifecycle management database |
US8180855B2 (en) * | 2005-01-27 | 2012-05-15 | Netapp, Inc. | Coordinated shared storage architecture |
US7424497B1 (en) | 2005-01-27 | 2008-09-09 | Network Appliance, Inc. | Technique for accelerating the creation of a point in time prepresentation of a virtual file system |
US8019842B1 (en) | 2005-01-27 | 2011-09-13 | Netapp, Inc. | System and method for distributing enclosure services data to coordinate shared storage |
US7574464B2 (en) * | 2005-02-14 | 2009-08-11 | Netapp, Inc. | System and method for enabling a storage system to support multiple volume formats simultaneously |
US7757056B1 (en) | 2005-03-16 | 2010-07-13 | Netapp, Inc. | System and method for efficiently calculating storage required to split a clone volume |
AU2006239882B2 (en) | 2005-04-25 | 2009-10-29 | Network Appliance, Inc. | System and method for caching network file systems |
US7617370B2 (en) | 2005-04-29 | 2009-11-10 | Netapp, Inc. | Data allocation within a storage system architecture |
US7634760B1 (en) | 2005-05-23 | 2009-12-15 | Netapp, Inc. | System and method for remote execution of a debugging utility using a remote management module |
US7739318B2 (en) * | 2005-06-20 | 2010-06-15 | Netapp, Inc. | System and method for maintaining mappings from data containers to their parent directories |
US7653682B2 (en) * | 2005-07-22 | 2010-01-26 | Netapp, Inc. | Client failure fencing mechanism for fencing network file system data in a host-cluster environment |
US7516285B1 (en) | 2005-07-22 | 2009-04-07 | Network Appliance, Inc. | Server side API for fencing cluster hosts via export access rights |
US7650366B1 (en) | 2005-09-09 | 2010-01-19 | Netapp, Inc. | System and method for generating a crash consistent persistent consistency point image set |
US20070088917A1 (en) * | 2005-10-14 | 2007-04-19 | Ranaweera Samantha L | System and method for creating and maintaining a logical serial attached SCSI communication channel among a plurality of storage systems |
US7467276B1 (en) | 2005-10-25 | 2008-12-16 | Network Appliance, Inc. | System and method for automatic root volume creation |
US7376796B2 (en) | 2005-11-01 | 2008-05-20 | Network Appliance, Inc. | Lightweight coherency control protocol for clustered storage system |
EP1804184B1 (en) * | 2005-12-30 | 2017-06-28 | Dassault Systèmes | Process for selecting an object in a PLM database and apparatus implementing this process |
US7693864B1 (en) | 2006-01-03 | 2010-04-06 | Netapp, Inc. | System and method for quickly determining changed metadata using persistent consistency point image differencing |
US7734603B1 (en) | 2006-01-26 | 2010-06-08 | Netapp, Inc. | Content addressable storage array element |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US8285817B1 (en) | 2006-03-20 | 2012-10-09 | Netapp, Inc. | Migration engine for use in a logical namespace of a storage system environment |
US7590660B1 (en) | 2006-03-21 | 2009-09-15 | Network Appliance, Inc. | Method and system for efficient database cloning |
US8260831B2 (en) * | 2006-03-31 | 2012-09-04 | Netapp, Inc. | System and method for implementing a flexible storage manager with threshold control |
US20070233868A1 (en) * | 2006-03-31 | 2007-10-04 | Tyrrell John C | System and method for intelligent provisioning of storage across a plurality of storage systems |
US7769723B2 (en) * | 2006-04-28 | 2010-08-03 | Netapp, Inc. | System and method for providing continuous data protection |
US20080005721A1 (en) * | 2006-06-29 | 2008-01-03 | Augusta Systems, Inc. | Method and System for Rapidly Developing Sensor-Enabled Software Applications |
US7735060B2 (en) * | 2006-06-29 | 2010-06-08 | Augusta Systems, Inc. | Method and system for rapidly developing and deploying sensor-enabled software applications |
US8095923B2 (en) * | 2006-06-29 | 2012-01-10 | Augusta Systems, Inc. | System and method for deploying and managing intelligent nodes in a distributed network |
US8015547B2 (en) * | 2006-06-29 | 2011-09-06 | Augusta Systems, Inc. | Reconfigurable, hierarchical component-based architecture and framework and methods for rapidly developing sensor device-enabling software applications |
US20080104008A1 (en) * | 2006-10-31 | 2008-05-01 | Brantley David L | Common data broker method, system, and program product |
US8301673B2 (en) * | 2006-12-29 | 2012-10-30 | Netapp, Inc. | System and method for performing distributed consistency verification of a clustered file system |
US8219821B2 (en) | 2007-03-27 | 2012-07-10 | Netapp, Inc. | System and method for signature based data container recognition |
US8312214B1 (en) | 2007-03-28 | 2012-11-13 | Netapp, Inc. | System and method for pausing disk drives in an aggregate |
US7827350B1 (en) | 2007-04-27 | 2010-11-02 | Netapp, Inc. | Method and system for promoting a snapshot in a distributed file system |
US7882304B2 (en) * | 2007-04-27 | 2011-02-01 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US8219749B2 (en) * | 2007-04-27 | 2012-07-10 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US7996636B1 (en) | 2007-11-06 | 2011-08-09 | Netapp, Inc. | Uniquely identifying block context signatures in a storage volume hierarchy |
US7984259B1 (en) | 2007-12-17 | 2011-07-19 | Netapp, Inc. | Reducing load imbalance in a storage system |
US7539951B1 (en) | 2008-02-07 | 2009-05-26 | International Business Machines Corporation | Method and system of using navigation area controls and indicators for non-hierarchies |
US8725986B1 (en) | 2008-04-18 | 2014-05-13 | Netapp, Inc. | System and method for volume block number to disk block number mapping |
US8621154B1 (en) | 2008-04-18 | 2013-12-31 | Netapp, Inc. | Flow based reply cache |
US8161236B1 (en) | 2008-04-23 | 2012-04-17 | Netapp, Inc. | Persistent reply cache integrated with file system |
US8788460B2 (en) * | 2008-06-12 | 2014-07-22 | Microsoft Corporation | Exploring attached and unattached content databases |
US8635188B2 (en) * | 2008-06-12 | 2014-01-21 | Microsoft Corporation | Techniques for extracting data from content databases |
US8171227B1 (en) | 2009-03-11 | 2012-05-01 | Netapp, Inc. | System and method for managing a flow based reply cache |
US20130325531A1 (en) * | 2012-05-30 | 2013-12-05 | Bart-Jan Van Putten | Business case development by dynamically reusing business case components |
US9311014B2 (en) | 2012-11-29 | 2016-04-12 | Infinidat Ltd. | Storage system and methods of mapping addresses of snapshot families |
US9146877B2 (en) * | 2012-11-29 | 2015-09-29 | Infinidat Ltd. | Storage system capable of managing a plurality of snapshot families and method of snapshot family based read |
US9870543B2 (en) | 2013-08-12 | 2018-01-16 | GoodData Corporation | Custom-branded analytic applications in a multi-tenant environment |
US9977801B2 (en) * | 2013-11-21 | 2018-05-22 | Sap Se | Paged column dictionary |
US9977802B2 (en) | 2013-11-21 | 2018-05-22 | Sap Se | Large string access and storage |
US10235377B2 (en) | 2013-12-23 | 2019-03-19 | Sap Se | Adaptive dictionary compression/decompression for column-store databases |
US9286329B2 (en) * | 2014-01-31 | 2016-03-15 | GoodData Corporation | Generating analytics application using reusable application modules |
US20150242409A1 (en) * | 2014-02-22 | 2015-08-27 | SourceThought, Inc. | Automated Data Shaping |
US20170012982A1 (en) * | 2015-07-10 | 2017-01-12 | Google Inc. | Protecting Data From Unauthorized Access |
US10339014B2 (en) * | 2016-09-28 | 2019-07-02 | Mcafee, Llc | Query optimized distributed ledger system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4183083A (en) * | 1972-04-14 | 1980-01-08 | Duquesne Systems, Inc. | Method of operating a multiprogrammed computing system |
CH632365A5 (de) * | 1978-01-30 | 1982-09-30 | Patelhold Patentverwertung | Datenaustauschverfahren zwischen mehreren partnern. |
US4583164A (en) * | 1981-08-19 | 1986-04-15 | Tolle Donald M | Syntactically self-structuring cellular computer |
US4462077A (en) * | 1982-06-24 | 1984-07-24 | Bell Telephone Laboratories, Incorporated | Trace facility for use in multiprocessing environment |
US4631664A (en) * | 1983-07-19 | 1986-12-23 | Bachman Information Systems, Inc. | Partnership data base management system and method |
US4635189A (en) * | 1984-03-01 | 1987-01-06 | Measurex Corporation | Real-time distributed data-base management system |
US4649479A (en) * | 1985-02-28 | 1987-03-10 | International Business Machines Corp. | Device driver and adapter binding technique |
US4774661A (en) * | 1985-11-19 | 1988-09-27 | American Telephone And Telegraph Company, At&T Information Systems | Database management system with active data dictionary |
US4805134A (en) * | 1986-01-09 | 1989-02-14 | International Business Machines Corporation | Electronic system for accessing graphical and textual information |
GB8613069D0 (en) * | 1986-05-29 | 1986-07-02 | Univ Manchester | Parallel storage allocation |
US4791561A (en) * | 1987-04-17 | 1988-12-13 | Wang Laboratories, Inc. | Interactive construction of means for database maintenance |
-
1988
- 1988-04-13 US US07/181,095 patent/US4864497A/en not_active Expired - Lifetime
-
1989
- 1989-04-13 JP JP1505036A patent/JPH02501514A/ja active Pending
- 1989-04-13 EP EP89905309A patent/EP0383850A1/en not_active Withdrawn
- 1989-04-13 WO PCT/US1989/001541 patent/WO1989009971A2/en not_active Application Discontinuation
- 1989-04-13 CA CA000596577A patent/CA1325066C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1989009971A3 (en) | 1989-12-28 |
EP0383850A1 (en) | 1990-08-29 |
CA1325066C (en) | 1993-12-07 |
WO1989009971A2 (en) | 1989-10-19 |
US4864497A (en) | 1989-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02501514A (ja) | 属性データ モデル データベースを使用するソフトウエア応用プログラムを結合する方法 | |
JPH02501516A (ja) | 単一の、単純な原素を用いたデータ構造を有するデータ処理システム | |
US5561793A (en) | System and methods for data field management in a computer database system | |
US5499359A (en) | Methods for improved referential integrity in a relational database management system | |
US20080281788A1 (en) | Hierarchical structured abstract file system | |
JPH0765035A (ja) | 構造化文書検索装置 | |
EP2131293A1 (en) | Method for mapping an X500 data model onto a relational database | |
Mays et al. | A persistent store for large shared knowledge bases | |
US7769719B2 (en) | File system dump/restore by node numbering | |
Ytow et al. | Nomencurator: a nomenclatural history model to handle multiple taxonomic views | |
JPH0550774B2 (ja) | ||
JP3666907B2 (ja) | データベース用ファイル格納管理システム | |
JPS63156256A (ja) | データ管理方法 | |
JP2000003366A (ja) | 文書登録方法と文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体 | |
JP2004185270A (ja) | アンロードプログラム,ロードプログラム及びデータ移行方法 | |
JPS59146339A (ja) | 情報検索方式 | |
JPH04348468A (ja) | データベース装置 | |
JPH041855A (ja) | 文書図面管理システム | |
Walker | An information retrieval package for microcomputers | |
Van De Vanter | BiblioText Version 5.0: A Hypertext Browser for Bibliographic Data and Notes | |
JP2007156844A (ja) | データ登録・検索システムおよびデータ登録・検索方法 | |
JPH04250568A (ja) | レコード検索装置 | |
Gustavson | The automatic revision of storage structures | |
JPH03252866A (ja) | 計算機のデータ検索方法 | |
JPH03180943A (ja) | レコード格納方式 |