JPH07244605A - データベースシステム及びその更新方法 - Google Patents
データベースシステム及びその更新方法Info
- Publication number
- JPH07244605A JPH07244605A JP6033930A JP3393094A JPH07244605A JP H07244605 A JPH07244605 A JP H07244605A JP 6033930 A JP6033930 A JP 6033930A JP 3393094 A JP3393094 A JP 3393094A JP H07244605 A JPH07244605 A JP H07244605A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- update
- database
- column
- 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.)
- Withdrawn
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (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)
Abstract
(57)【要約】
【目的】 ネットワークデータベースにおけるデータ更
新の内容を迅速にリレーショナルデータベースに反映す
ることができるデータベースシステムを提供する 【構成】ネットワークデータベース(100)に更新が
加えられた時には、その更新ログデータが更新ログデー
タ獲得手段(103)により獲得される。アドレス格納
位置検索手段(104)は、この更新ログデータに含ま
れるアドレスから、アドレステーブル(102)におけ
る当該アドレスの格納位置を検索する。このアドレス格
納位置はリレーショナルデータベースと対応が付けられ
ている。従って、更新位置特定手段(105)は、検索
されたアドレス格納位置に基づいて、リレーショナルデ
ータベース(101)上のデータの位置を特定すること
ができる。データ更新手段(106)は、このデータを
更新して、ネットワークデータベース(100)の更新
内容をリレーショナルデータベース(101)に反映さ
せる。
新の内容を迅速にリレーショナルデータベースに反映す
ることができるデータベースシステムを提供する 【構成】ネットワークデータベース(100)に更新が
加えられた時には、その更新ログデータが更新ログデー
タ獲得手段(103)により獲得される。アドレス格納
位置検索手段(104)は、この更新ログデータに含ま
れるアドレスから、アドレステーブル(102)におけ
る当該アドレスの格納位置を検索する。このアドレス格
納位置はリレーショナルデータベースと対応が付けられ
ている。従って、更新位置特定手段(105)は、検索
されたアドレス格納位置に基づいて、リレーショナルデ
ータベース(101)上のデータの位置を特定すること
ができる。データ更新手段(106)は、このデータを
更新して、ネットワークデータベース(100)の更新
内容をリレーショナルデータベース(101)に反映さ
せる。
Description
【0001】
【産業上の利用分野】本発明は、ネットワークデータベ
ースとリレーショナルデータベースとからなるデータベ
ースシステム及びその更新方法に関する。
ースとリレーショナルデータベースとからなるデータベ
ースシステム及びその更新方法に関する。
【0002】
【従来の技術】従来より、データベースとして、ネット
ワークデータベース及びリレーショナルデータベースが
各々知られている。
ワークデータベース及びリレーショナルデータベースが
各々知られている。
【0003】このネットワークデータベースは、ネット
ワークモデルに基づいたデータベースである。このネッ
トワークモデルは、データを階層構造にするとともに、
複数の上位レコードを許す網構造としたものである。こ
のネットワークデータベースは、概念的には、データの
親子関係が木として表される。
ワークモデルに基づいたデータベースである。このネッ
トワークモデルは、データを階層構造にするとともに、
複数の上位レコードを許す網構造としたものである。こ
のネットワークデータベースは、概念的には、データの
親子関係が木として表される。
【0004】また、リレーショナルデータベースは、関
係モデルに基づいたデータベースである。この関係モデ
ルは、データの構造を2次元の表形式で表現するもの
で、行が個々の実体と対応し、列が各々の属性と対応す
る。
係モデルに基づいたデータベースである。この関係モデ
ルは、データの構造を2次元の表形式で表現するもの
で、行が個々の実体と対応し、列が各々の属性と対応す
る。
【0005】これらのうち、ネットワークデータベース
は高速な検索が可能であるので、データ使用者がアクセ
スを行うのに適している。これに対して、リレーショナ
ルデータベースは大容量であるので管理者が情報系操作
を行うのに適している。従って、これらデータベースの
双方の利点を享受するために、ネットワークデータベー
ス及びリレーショナルデータベースの両方を共存させた
データベースシステムを構築することが望ましい。
は高速な検索が可能であるので、データ使用者がアクセ
スを行うのに適している。これに対して、リレーショナ
ルデータベースは大容量であるので管理者が情報系操作
を行うのに適している。従って、これらデータベースの
双方の利点を享受するために、ネットワークデータベー
ス及びリレーショナルデータベースの両方を共存させた
データベースシステムを構築することが望ましい。
【0006】但し、この場合には、両データベースのデ
ータ内容を一致させる必要がある。例えば、ネットワー
クデータベースに格納されている特定のデータを更新し
た場合には、同時に、リレーショナルデータベースに格
納されたこの特定のデータに対応するデータを更新し、
その更新内容をリレーショナルデータベースに反映させ
る必要がある。もっとも、ネットワークデータベースの
データを更新する毎にリレーショナルデータベースの内
容を更新するのは、データ更新の頻度からみて合理的で
ない。そのため、ある程度更新すべきデータが貯まった
時点で一括してリレーショナルデータベースの更新する
ことになる。
ータ内容を一致させる必要がある。例えば、ネットワー
クデータベースに格納されている特定のデータを更新し
た場合には、同時に、リレーショナルデータベースに格
納されたこの特定のデータに対応するデータを更新し、
その更新内容をリレーショナルデータベースに反映させ
る必要がある。もっとも、ネットワークデータベースの
データを更新する毎にリレーショナルデータベースの内
容を更新するのは、データ更新の頻度からみて合理的で
ない。そのため、ある程度更新すべきデータが貯まった
時点で一括してリレーショナルデータベースの更新する
ことになる。
【0007】
【発明が解決しようとする課題】ところが、従来用いら
れたデータベースシステムにおけるデータ反映方法は、
そのオーナー位置(最上層位置)のデータから最下層位
置のデータまでを一つのデータのつながりとみなさなけ
れば、ネットワークデータベースのデータを抽出できな
いというものであった。即ち、その中の一部のデータの
みを抽出することができないというものであった。
れたデータベースシステムにおけるデータ反映方法は、
そのオーナー位置(最上層位置)のデータから最下層位
置のデータまでを一つのデータのつながりとみなさなけ
れば、ネットワークデータベースのデータを抽出できな
いというものであった。即ち、その中の一部のデータの
みを抽出することができないというものであった。
【0008】従って、ネットワークデータベース上で更
新されたのが任意の位置のレコードタイプ(データベー
スのアクセスの単位)の一つであっても、上記したオー
ナー位置から最下層までのデータのつながりに基づい
て、リレーショナルデータベース全体を、再度書き換え
なければならなかった。
新されたのが任意の位置のレコードタイプ(データベー
スのアクセスの単位)の一つであっても、上記したオー
ナー位置から最下層までのデータのつながりに基づい
て、リレーショナルデータベース全体を、再度書き換え
なければならなかった。
【0009】このように、従来のデータベースシステム
においては、両データベースの整合性をとるためだけ
に、リレーショナルデータベースの構築に要するのと同
じ時間を要していた。従って、両データベースの整合を
とる頻度は必然的に制限され、両データベース間の内容
のギャップ・更新のタイムラグが大きくなっていた。ま
た、両データベース間の整合に長時間を要するので、そ
れだけデータ障害が生じる危険が大きくなっていた。
においては、両データベースの整合性をとるためだけ
に、リレーショナルデータベースの構築に要するのと同
じ時間を要していた。従って、両データベースの整合を
とる頻度は必然的に制限され、両データベース間の内容
のギャップ・更新のタイムラグが大きくなっていた。ま
た、両データベース間の整合に長時間を要するので、そ
れだけデータ障害が生じる危険が大きくなっていた。
【0010】本発明は、上述した従来の問題点を解決
し、ネットワークデータベースにおけるデータ更新の内
容を迅速にリレーショナルデータベースに反映すること
ができるデータベースシステム及びその更新方法を提供
することを主たる課題とする。
し、ネットワークデータベースにおけるデータ更新の内
容を迅速にリレーショナルデータベースに反映すること
ができるデータベースシステム及びその更新方法を提供
することを主たる課題とする。
【0011】本発明の選択的な他の課題は、ネットワー
クデータベースにおけるデータ更新の内容を、リレーシ
ョナルデータベースの一部の更新のみでリレーショナル
データベースに反映することができるデータベースシス
テム及びその更新方法を提供することである。
クデータベースにおけるデータ更新の内容を、リレーシ
ョナルデータベースの一部の更新のみでリレーショナル
データベースに反映することができるデータベースシス
テム及びその更新方法を提供することである。
【0012】
【課題を解決するための手段】本発明は、前記課題を解
決するため、図1(a)の発明原理図に示した通り、以
下の手段を採用した。
決するため、図1(a)の発明原理図に示した通り、以
下の手段を採用した。
【0013】<本発明の要旨>本発明によるデータベー
スシステムは、データを階層形式で有するネットワーク
データベース(100)と、このネットワークデータベ
ース(100)のデータ階層に対応して各データを表形
式で有するリレーショナルデータベース(101)とを
備えている。
スシステムは、データを階層形式で有するネットワーク
データベース(100)と、このネットワークデータベ
ース(100)のデータ階層に対応して各データを表形
式で有するリレーショナルデータベース(101)とを
備えている。
【0014】本発明は、このネットワークデータベース
(100)のリレーショナルデータベース(101)へ
の反映を、迅速かつ円滑に行うものである。このため、
本発明はアドレステーブル(102)、更新ログデータ
獲得手段(103)、アドレス格納位置検索手段(10
4)、更新位置特定手段(105)、データ更新手段
(106)を備える。
(100)のリレーショナルデータベース(101)へ
の反映を、迅速かつ円滑に行うものである。このため、
本発明はアドレステーブル(102)、更新ログデータ
獲得手段(103)、アドレス格納位置検索手段(10
4)、更新位置特定手段(105)、データ更新手段
(106)を備える。
【0015】〔ネットワークデータベース〕本発明にお
けるネットワークデータベース(100)は、データを
階層形式で関連付けたデータベースである。従って、本
発明におけるネットワークデータベース(100)は、
いわゆる階層データベースをも含む概念である。但し、
ネットワークデータベース(100)を、データの網構
造を持つものとすることもできる。このようにすれば、
リレーショナルデータベース(101)で規定できるデ
ータ間の関連を、全てネットワークデータベース(10
0)において網羅することができる。
けるネットワークデータベース(100)は、データを
階層形式で関連付けたデータベースである。従って、本
発明におけるネットワークデータベース(100)は、
いわゆる階層データベースをも含む概念である。但し、
ネットワークデータベース(100)を、データの網構
造を持つものとすることもできる。このようにすれば、
リレーショナルデータベース(101)で規定できるデ
ータ間の関連を、全てネットワークデータベース(10
0)において網羅することができる。
【0016】〔リレーショナルデータベース〕本発明に
おけるリレーショナルデータベース(101)は、ネッ
トワークデータベース(100)のデータ階層に対応し
て各データを表形式で有するデータベースである。この
リレーショナルデータベース(101)を構成する表
(テーブル)の数は、一つに限るものではない。即ち、
相互の結合条件又はネットワークデータベース(10
0)との対応がとれていれば、複数個あってもよい。
おけるリレーショナルデータベース(101)は、ネッ
トワークデータベース(100)のデータ階層に対応し
て各データを表形式で有するデータベースである。この
リレーショナルデータベース(101)を構成する表
(テーブル)の数は、一つに限るものではない。即ち、
相互の結合条件又はネットワークデータベース(10
0)との対応がとれていれば、複数個あってもよい。
【0017】〔ネットワークデータベースとリレーショ
ナルデータベースとの関係〕本発明において、ネットワ
ークデータベース(100)のデータはリレーショナル
データベース(101)へと反映されて使用される。こ
れは、末端ユーザとしてはネットワークデータベース
(100)でデータの更新を行う方がその高速性故に使
い勝手がよい反面、データの管理者側としては、リレー
ショナルデータベース(101)の方が管理しやすいか
らである。
ナルデータベースとの関係〕本発明において、ネットワ
ークデータベース(100)のデータはリレーショナル
データベース(101)へと反映されて使用される。こ
れは、末端ユーザとしてはネットワークデータベース
(100)でデータの更新を行う方がその高速性故に使
い勝手がよい反面、データの管理者側としては、リレー
ショナルデータベース(101)の方が管理しやすいか
らである。
【0018】〔アドレステーブル〕本発明におけるアド
レステーブル(102)は、前記ネットワークデータベ
ース(100)の各データのアドレスを上位データ階層
から下位データ階層に至るレコード毎に行として表した
表形式で格納するとともに、各データのアドレス格納位
置とリレーショナルデータベース(101)のデータ位
置とを対応させている。この対応を行うために、リレー
ショナルデータベース(101)及びアドレステーブル
(102)の双方にユニーク性表示部を付し、両者の対
応する行のユニーク性表示部を同じ値としても良い。こ
のようにすれば、アドレステーブル(102)とリレー
ショナルデータベース(101)とを各々別に管理でき
る効果が得られる他、両者におけるデータ(レコード)
の順番を任意にできる効果を得られる。なお、アドレス
テーブル(102)とリレーショナルデータベース(1
01)とを結合して、一つの表とすることによって両者
を対応付けるようにしても良い。また、別の表とする場
合でも、アドレステーブルをリレーショナルデータベー
ス(101)に含ませるようにしても良い。
レステーブル(102)は、前記ネットワークデータベ
ース(100)の各データのアドレスを上位データ階層
から下位データ階層に至るレコード毎に行として表した
表形式で格納するとともに、各データのアドレス格納位
置とリレーショナルデータベース(101)のデータ位
置とを対応させている。この対応を行うために、リレー
ショナルデータベース(101)及びアドレステーブル
(102)の双方にユニーク性表示部を付し、両者の対
応する行のユニーク性表示部を同じ値としても良い。こ
のようにすれば、アドレステーブル(102)とリレー
ショナルデータベース(101)とを各々別に管理でき
る効果が得られる他、両者におけるデータ(レコード)
の順番を任意にできる効果を得られる。なお、アドレス
テーブル(102)とリレーショナルデータベース(1
01)とを結合して、一つの表とすることによって両者
を対応付けるようにしても良い。また、別の表とする場
合でも、アドレステーブルをリレーショナルデータベー
ス(101)に含ませるようにしても良い。
【0019】〔更新ログデータ獲得手段〕前記更新ログ
データ獲得手段(103)は、前記ネットワークデータ
ベース(100)のデータ更新がなされたとき、更新デ
ータのアドレス及び更新内容を含む更新ログデータを獲
得する。なお、本発明における「更新」とは、データの
変更,追加,及び削除を含む概念である。
データ獲得手段(103)は、前記ネットワークデータ
ベース(100)のデータ更新がなされたとき、更新デ
ータのアドレス及び更新内容を含む更新ログデータを獲
得する。なお、本発明における「更新」とは、データの
変更,追加,及び削除を含む概念である。
【0020】〔アドレス格納位置検索手段〕アドレス格
納位置検索手段(104)は、更新ログデータ獲得手段
(103)で獲得した更新ログデータに従って前記アド
レステーブル(102)における更新データのアドレス
格納位置を検索する。この検索は、更新データのアドレ
スが含まれている行のみを検索するものであっても良い
し、行と列を検索するものであっても良い。前者の場合
には、アドレスーブル(102)の列毎に予めカラム名
を付しておくと共に、アドレスとこのカラム名との対応
関係を規定した情報テーブルを用意しておき、アドレス
に対応するカラム名とアドレスとから行を特定すれば良
い。
納位置検索手段(104)は、更新ログデータ獲得手段
(103)で獲得した更新ログデータに従って前記アド
レステーブル(102)における更新データのアドレス
格納位置を検索する。この検索は、更新データのアドレ
スが含まれている行のみを検索するものであっても良い
し、行と列を検索するものであっても良い。前者の場合
には、アドレスーブル(102)の列毎に予めカラム名
を付しておくと共に、アドレスとこのカラム名との対応
関係を規定した情報テーブルを用意しておき、アドレス
に対応するカラム名とアドレスとから行を特定すれば良
い。
【0021】〔更新位置特定手段〕更新位置特定手段
(105)は、アドレス格納位置検索手段(104)で
検索したアドレステーブル(102)上の更新データの
アドレスに対応するリレーショナルデータベース(10
1)上のデータの位置を特定する。アドレステーブル
(102)とリレーショナルデータベース(101)と
の対応をとるためにユニーク性表示部を設けた場合に
は、更新位置検索手段はこのユニーク性表示部を参照
し、ネットワークデータベース(100)の更新データ
に対応するリレーショナルデータベース(101)上の
データ位置を特定する。アドレス格納位置検索手段(1
04)が行のみを検索する場合には、更新位置特定手段
(105)は、対応する行を特定すると共に更新ログデ
ータを参照してその列を特定する。
(105)は、アドレス格納位置検索手段(104)で
検索したアドレステーブル(102)上の更新データの
アドレスに対応するリレーショナルデータベース(10
1)上のデータの位置を特定する。アドレステーブル
(102)とリレーショナルデータベース(101)と
の対応をとるためにユニーク性表示部を設けた場合に
は、更新位置検索手段はこのユニーク性表示部を参照
し、ネットワークデータベース(100)の更新データ
に対応するリレーショナルデータベース(101)上の
データ位置を特定する。アドレス格納位置検索手段(1
04)が行のみを検索する場合には、更新位置特定手段
(105)は、対応する行を特定すると共に更新ログデ
ータを参照してその列を特定する。
【0022】〔データ更新手段〕データ更新手段(10
6)は、前記更新位置特定手段(105)により特定さ
れたリレーショナルデータベース(101)上の位置に
おけるデータを、前記更新ログに従って更新する。
6)は、前記更新位置特定手段(105)により特定さ
れたリレーショナルデータベース(101)上の位置に
おけるデータを、前記更新ログに従って更新する。
【0023】<本発明の方法>本発明のデータベースシ
ステムの更新方法は、データを階層形式で有するネット
ワークデータベース(100)と、このネットワークデ
ータベース(100)の上位データ階層から下位データ
階層に至るレコード毎に行として表した表形式により前
記ネットワークデータベース(100)と同じデータを
格納するリレーショナルデータベース(101)とを合
わせ持つデータベースシステムにおいて、前記各データ
のアドレスと前記リレーショナルデータベース(10
1)のデータ位置とをアドレステーブル(102)によ
り特定することにより、前記ネットワークデータベース
(100)と前記リレーショナルデータベース(10
1)との関係を対応づけておく(図1(a)参照)。
ステムの更新方法は、データを階層形式で有するネット
ワークデータベース(100)と、このネットワークデ
ータベース(100)の上位データ階層から下位データ
階層に至るレコード毎に行として表した表形式により前
記ネットワークデータベース(100)と同じデータを
格納するリレーショナルデータベース(101)とを合
わせ持つデータベースシステムにおいて、前記各データ
のアドレスと前記リレーショナルデータベース(10
1)のデータ位置とをアドレステーブル(102)によ
り特定することにより、前記ネットワークデータベース
(100)と前記リレーショナルデータベース(10
1)との関係を対応づけておく(図1(a)参照)。
【0024】そして、前記ネットワークデータベース
(100)のデータ更新がなされたとき、更新データの
アドレス及び更新内容を含む更新ログデータを獲得する
(図1(b)参照)。
(100)のデータ更新がなされたとき、更新データの
アドレス及び更新内容を含む更新ログデータを獲得する
(図1(b)参照)。
【0025】そして、この更新ログデータに従って、前
記アドレステーブル(102)における更新データのア
ドレス格納位置を検索する(図1(c)(1)参照)。
次いで、そのアドレス格納位置に対応するリレーショナ
ルデータベース(101)上のデータを特定する(図1
(c)(2)参照)。
記アドレステーブル(102)における更新データのア
ドレス格納位置を検索する(図1(c)(1)参照)。
次いで、そのアドレス格納位置に対応するリレーショナ
ルデータベース(101)上のデータを特定する(図1
(c)(2)参照)。
【0026】最後に、リレーショナルデータベース(1
01)上において更新すべきものとして特定されたデー
タを更新ログデータに従って更新する(図1(d)参
照)。 <本発明の利用可能性>本発明は、ネットワークデータ
ベースと、リレーショナルデータベースとを併用するデ
ータベースシステムを前提としており、銀行における預
金システム等にに利用可能である。
01)上において更新すべきものとして特定されたデー
タを更新ログデータに従って更新する(図1(d)参
照)。 <本発明の利用可能性>本発明は、ネットワークデータ
ベースと、リレーショナルデータベースとを併用するデ
ータベースシステムを前提としており、銀行における預
金システム等にに利用可能である。
【0027】
【作用】ネットワークデータベース(100)に格納さ
れたデータに関して更新が行われた時には、その更新さ
れたデータのアドレス及び更新の内容を含む更新ログデ
ータが更新ログデータ獲得手段(103)により獲得さ
れる。
れたデータに関して更新が行われた時には、その更新さ
れたデータのアドレス及び更新の内容を含む更新ログデ
ータが更新ログデータ獲得手段(103)により獲得さ
れる。
【0028】アドレス格納位置検索手段(104)は、
この更新ログデータを受信する。そして、更新ログデー
タに含まれる更新データのアドレスから、アドレステー
ブル(102)において当該アドレスがどこに格納され
ているかを検索する。このアドレス格納位置はリレーシ
ョナルデータベースと対応が付けられている。
この更新ログデータを受信する。そして、更新ログデー
タに含まれる更新データのアドレスから、アドレステー
ブル(102)において当該アドレスがどこに格納され
ているかを検索する。このアドレス格納位置はリレーシ
ョナルデータベースと対応が付けられている。
【0029】従って、更新位置特定手段(105)は、
アドレス格納位置検索手段(104)により検索された
アドレス格納位置に基づいて、リレーショナルデータベ
ース(101)上のデータの位置を特定することができ
る。
アドレス格納位置検索手段(104)により検索された
アドレス格納位置に基づいて、リレーショナルデータベ
ース(101)上のデータの位置を特定することができ
る。
【0030】この位置はネットワークデータベース(1
00)に格納されている更新されたデータと同じデータ
が予め表形式で格納されている。よって、データ更新手
段(106)は、このデータを更新して、ネットワーク
データベース(100)の更新内容をリレーショナルデ
ータベース(101)に反映させることができる。
00)に格納されている更新されたデータと同じデータ
が予め表形式で格納されている。よって、データ更新手
段(106)は、このデータを更新して、ネットワーク
データベース(100)の更新内容をリレーショナルデ
ータベース(101)に反映させることができる。
【0031】
【実施例】以下、本発明の実施例を図面を参照して説明
する。
する。
【0032】
【実施例1】 <システム構成>図2に、本発明の第1実施例によるデ
ータベースシステムの構成図を示す。
ータベースシステムの構成図を示す。
【0033】図2において、データベースシステム全体
の管理を行うの管理プログラム13は、オペレーション
システム12上で動く。この管理プログラム13の一部
に、更新に関する各種制御を行う更新管理プログラム1
4が含まれている。
の管理を行うの管理プログラム13は、オペレーション
システム12上で動く。この管理プログラム13の一部
に、更新に関する各種制御を行う更新管理プログラム1
4が含まれている。
【0034】ネットワークデータベース1は、NDBマ
ネージャ2により管理される。このNDBマネージャ2
は、管理プログラム13により制御され、応用プログラ
ム15からの要求に応じてネットワークデータベース1
を検索する。そして、得られたデータを応用プログラム
15に回答するとともに、必要に応じてネットワークデ
ータベース1に格納されたデータを更新する。データの
更新を行った場合には、NDBマネージャ2は更新のた
めのコマンドを、ログデータとして履歴ログファイル3
に格納する。なお、このログデータは、NDL文で記載
されている。
ネージャ2により管理される。このNDBマネージャ2
は、管理プログラム13により制御され、応用プログラ
ム15からの要求に応じてネットワークデータベース1
を検索する。そして、得られたデータを応用プログラム
15に回答するとともに、必要に応じてネットワークデ
ータベース1に格納されたデータを更新する。データの
更新を行った場合には、NDBマネージャ2は更新のた
めのコマンドを、ログデータとして履歴ログファイル3
に格納する。なお、このログデータは、NDL文で記載
されている。
【0035】抽出部4は、更新管理プログラム14によ
り制御され、履歴ログファイル3に蓄積されたログデー
タから必要なデータを抽出する。通信部5は、更新管理
プログラム14により制御され、抽出部4により抽出さ
れたデータを通信用の形式に変換して、リレーショナル
データベース側に送信する。
り制御され、履歴ログファイル3に蓄積されたログデー
タから必要なデータを抽出する。通信部5は、更新管理
プログラム14により制御され、抽出部4により抽出さ
れたデータを通信用の形式に変換して、リレーショナル
データベース側に送信する。
【0036】更新ログ作成部6は、更新管理プログラム
14により実行される入力タスクにより制御・管理され
る。即ち、更新ログ作成部6は、通信部5からのデータ
を受信すると、このデータに基づいて更新ログを作成す
る。この更新ログは、更新されたデータのネットワーク
データベース上のアドレス値(自アドレス),更新され
たデータの上位階層に位置するデータ(親データ)のア
ドレス値(上位アドレス),更新後のデータの実体値,
及び更新方法(変更,挿入,又は削除)から構成され
る。作成された更新ログは、更新ログファイル7内に蓄
積される。この更新ログファイル7内の更新ログ蓄積状
況も、更新管理プログラムによる入力タスクにより管理
される。以上のNDBマネージャ2乃至更新ログ作成部
6が、更新ログデータ獲得手段103に相当する。
14により実行される入力タスクにより制御・管理され
る。即ち、更新ログ作成部6は、通信部5からのデータ
を受信すると、このデータに基づいて更新ログを作成す
る。この更新ログは、更新されたデータのネットワーク
データベース上のアドレス値(自アドレス),更新され
たデータの上位階層に位置するデータ(親データ)のア
ドレス値(上位アドレス),更新後のデータの実体値,
及び更新方法(変更,挿入,又は削除)から構成され
る。作成された更新ログは、更新ログファイル7内に蓄
積される。この更新ログファイル7内の更新ログ蓄積状
況も、更新管理プログラムによる入力タスクにより管理
される。以上のNDBマネージャ2乃至更新ログ作成部
6が、更新ログデータ獲得手段103に相当する。
【0037】更新部9は、更新管理プログラム14によ
り実行される更新タスクにより制御される。即ち、更新
部9は、更新ログファイル7から更新ログを時系列順に
一つづつ取り出し、その更新ログの内容に応じてRBB
マネージャ10を介してリレーショナルデータベース1
1を更新する。この更新部9が、アドレス検索手段10
4,更新位置特定手段105,データ更新手段106に
相当する。
り実行される更新タスクにより制御される。即ち、更新
部9は、更新ログファイル7から更新ログを時系列順に
一つづつ取り出し、その更新ログの内容に応じてRBB
マネージャ10を介してリレーショナルデータベース1
1を更新する。この更新部9が、アドレス検索手段10
4,更新位置特定手段105,データ更新手段106に
相当する。
【0038】リレーショナルデータベース11には、本
来のリレーショナルデータベース101としての実テー
ブル17,及びネットワークデータベース1と実テーブ
ル17との対応をとるためのアドレステーブル16が格
納されている。このリレーショナルデータベース11
は、RDBマネージャ10により管理される。このRD
Bマネージャ10は、管理プログラム13により制御さ
れる。なお、更新部9は、リレーショナルデータベース
11の更新を行うに際して、情報ファイルとしてのMA
P情報ファイル8の内容を参照する。このMAP情報フ
ァイル8には、アドレスに対するアドレステーブル16
及び実テーブル17上のカラム名の一覧テーブルが格納
されている。 <ネットワークデータベース1のデータ構成>図3は、
ネットワークデータベース1内のデータ構造の例を示す
図である。図3に示すように、ネットワークデータベー
ス1内において、各データは、階層構造となるように相
互に関連付けられている。これら各階層の各々には、そ
の階層のデータ(実体値)に共通の属性が与えられてい
る。本実施例においては、最上位階層(オーナ位置,エ
ントリ)Aの属性が「社名」とされ、その実体値が“富
士通(アドレス値=a1)”となっている。また、2階
層目Bの属性が「部署」とされ、その実体値が“2開発
部(アドレス値=b1)”及び“1開発部(アドレス値
=b2)”となっている。また、3階層目Cの属性が
「課名」とされ、その実体値が“3開発課(アドレス値
=c1)”,“4開発課(アドレス値=c2)”,及び
“2開発課(アドレス値=c3)”となっている。ま
た、4階層目Dの属性が「氏名」とされ、その実体値が
“小田康貴(アドレス値=d1)”,“木村雄三(アド
レス値=d2)”,“増本敏彦(アドレス値=d
3)”,及び“鎌田豊(アドレス値=d4)”となって
いる。
来のリレーショナルデータベース101としての実テー
ブル17,及びネットワークデータベース1と実テーブ
ル17との対応をとるためのアドレステーブル16が格
納されている。このリレーショナルデータベース11
は、RDBマネージャ10により管理される。このRD
Bマネージャ10は、管理プログラム13により制御さ
れる。なお、更新部9は、リレーショナルデータベース
11の更新を行うに際して、情報ファイルとしてのMA
P情報ファイル8の内容を参照する。このMAP情報フ
ァイル8には、アドレスに対するアドレステーブル16
及び実テーブル17上のカラム名の一覧テーブルが格納
されている。 <ネットワークデータベース1のデータ構成>図3は、
ネットワークデータベース1内のデータ構造の例を示す
図である。図3に示すように、ネットワークデータベー
ス1内において、各データは、階層構造となるように相
互に関連付けられている。これら各階層の各々には、そ
の階層のデータ(実体値)に共通の属性が与えられてい
る。本実施例においては、最上位階層(オーナ位置,エ
ントリ)Aの属性が「社名」とされ、その実体値が“富
士通(アドレス値=a1)”となっている。また、2階
層目Bの属性が「部署」とされ、その実体値が“2開発
部(アドレス値=b1)”及び“1開発部(アドレス値
=b2)”となっている。また、3階層目Cの属性が
「課名」とされ、その実体値が“3開発課(アドレス値
=c1)”,“4開発課(アドレス値=c2)”,及び
“2開発課(アドレス値=c3)”となっている。ま
た、4階層目Dの属性が「氏名」とされ、その実体値が
“小田康貴(アドレス値=d1)”,“木村雄三(アド
レス値=d2)”,“増本敏彦(アドレス値=d
3)”,及び“鎌田豊(アドレス値=d4)”となって
いる。
【0039】なお、本実施例では、上述したようにオー
ナ位置のデータが一つ(“富士通”)だけであり、か
つ、下位階層のデータは各々唯1つの上位階層のデータ
(親データ)に対して関連付けられている。即ち、逆ツ
リー(木)型の構造となっている。このツリーの枝,即
ちオーナ位置のデータから特定の最下位層のデータに至
るまでの繋がりの各々を、レコードという。
ナ位置のデータが一つ(“富士通”)だけであり、か
つ、下位階層のデータは各々唯1つの上位階層のデータ
(親データ)に対して関連付けられている。即ち、逆ツ
リー(木)型の構造となっている。このツリーの枝,即
ちオーナ位置のデータから特定の最下位層のデータに至
るまでの繋がりの各々を、レコードという。
【0040】また、図3における各階層内における横向
きの矢印は、実体値間の論理順を示している。 <アドレステーブル16のデータ構造>図4は、アドレ
ステーブル16内のデータ構造の例を示す図である。こ
のアドレステーブル16は、リレーショナルデータベー
ス11内に追加されたテーブルである。アドレステーブ
ル16は、ネットワークデータベース1の更新に先立つ
初期抽出時に、ネットワークデータベース1の各レコー
ドタイプのアドレス値を元にして作成される。
きの矢印は、実体値間の論理順を示している。 <アドレステーブル16のデータ構造>図4は、アドレ
ステーブル16内のデータ構造の例を示す図である。こ
のアドレステーブル16は、リレーショナルデータベー
ス11内に追加されたテーブルである。アドレステーブ
ル16は、ネットワークデータベース1の更新に先立つ
初期抽出時に、ネットワークデータベース1の各レコー
ドタイプのアドレス値を元にして作成される。
【0041】このアドレステーブル16は、行がレコー
ドを示し列がカラムを示す2次元の表構成となってい
る。アドレステーブル16の各レコードは、ネットワー
クデータベース1のレコードの何れかに対応している。
アドレステーブル16の各カラムのうち「A−PGS」
乃至「D−PGS」と名付けられたものは、各々ネット
ワークデータベース1の各階層に対応している。また、
「S−KEY」と名付けられたカラムは、ユニーク性表
示部としての一意性保障カラムである。
ドを示し列がカラムを示す2次元の表構成となってい
る。アドレステーブル16の各レコードは、ネットワー
クデータベース1のレコードの何れかに対応している。
アドレステーブル16の各カラムのうち「A−PGS」
乃至「D−PGS」と名付けられたものは、各々ネット
ワークデータベース1の各階層に対応している。また、
「S−KEY」と名付けられたカラムは、ユニーク性表
示部としての一意性保障カラムである。
【0042】アドレステーブル16に書き込まれる情報
は、そのレコード及びカラムに対応するネットワークデ
ータベース1内の位置に書き込まれているデータのアド
レス値である。アドレステーブル16のレコード数はネ
ットワークデータベース1のレコード数に一致している
ので、同じアドレス値が複数のレコードに重複して書き
込まれている。
は、そのレコード及びカラムに対応するネットワークデ
ータベース1内の位置に書き込まれているデータのアド
レス値である。アドレステーブル16のレコード数はネ
ットワークデータベース1のレコード数に一致している
ので、同じアドレス値が複数のレコードに重複して書き
込まれている。
【0043】S−KEYカラムに書き込まれている情報
は、各レコードを識別するためのシリアル番号である。 <実テーブル17(ユーザテーブル)のデータ構造>図
4は、実テーブル17内のデータ構造の例を示す図であ
る。この実テーブル17は、本来のリレーショナルデー
タベースとして実体値を保持するテーブルである。
は、各レコードを識別するためのシリアル番号である。 <実テーブル17(ユーザテーブル)のデータ構造>図
4は、実テーブル17内のデータ構造の例を示す図であ
る。この実テーブル17は、本来のリレーショナルデー
タベースとして実体値を保持するテーブルである。
【0044】実テーブル17は、行がレコードを示し列
がカラムを示す2次元の表構成となっている。実テーブ
ル17の各レコードも、ネットワークデータベース1の
各レコードの何れかに対応している。但し、その順番は
アドレステーブル16の場合の順番とは必ずしも一致さ
れていない。実テーブル17の各カラムのうち「開発会
社」乃至「開発者」と名付けられたものは、ネットワー
クデータベース1の各階層の属性に対応している。ま
た、「U−KEY」と名付けられたカラムは、ユニーク
性表示部としての一意性保障カラムである。
がカラムを示す2次元の表構成となっている。実テーブ
ル17の各レコードも、ネットワークデータベース1の
各レコードの何れかに対応している。但し、その順番は
アドレステーブル16の場合の順番とは必ずしも一致さ
れていない。実テーブル17の各カラムのうち「開発会
社」乃至「開発者」と名付けられたものは、ネットワー
クデータベース1の各階層の属性に対応している。ま
た、「U−KEY」と名付けられたカラムは、ユニーク
性表示部としての一意性保障カラムである。
【0045】実テーブル17に書き込まれる情報は、そ
のレコード及びカラムに対応するネットワークデータベ
ース1内の位置に書き込まれている実体値そのものであ
る。実テーブル17のレコード数はネットワークデータ
ベース1のレコード数に一致しているので、同じ実体値
が複数のレコードに重複して書き込まれている。 U−
KEYカラムに書き込まれている情報は、各レコードを
識別するためのシリアル番号である。ネットワークデー
タベース1の同じレコードに対応しているアドレステー
ブル16のレコード及び実テーブル17のレコードに
は、同じシリアル番号が付されている。従って、アドレ
ステーブル16のS−KEYカラムと実テーブル17の
U−KEYカラムとを突き合わせることにより、或るア
ドレステーブル16のレコードに対応する実テーブル1
7のレコードを特定することができる。 <更新処理フロー>次に、更新部9において実行される
データ更新のための処理フローを、図6乃至図12に基
づいて説明する。
のレコード及びカラムに対応するネットワークデータベ
ース1内の位置に書き込まれている実体値そのものであ
る。実テーブル17のレコード数はネットワークデータ
ベース1のレコード数に一致しているので、同じ実体値
が複数のレコードに重複して書き込まれている。 U−
KEYカラムに書き込まれている情報は、各レコードを
識別するためのシリアル番号である。ネットワークデー
タベース1の同じレコードに対応しているアドレステー
ブル16のレコード及び実テーブル17のレコードに
は、同じシリアル番号が付されている。従って、アドレ
ステーブル16のS−KEYカラムと実テーブル17の
U−KEYカラムとを突き合わせることにより、或るア
ドレステーブル16のレコードに対応する実テーブル1
7のレコードを特定することができる。 <更新処理フロー>次に、更新部9において実行される
データ更新のための処理フローを、図6乃至図12に基
づいて説明する。
【0046】この処理フローによって示される更新タス
クは、更新ログを管理する入力タスクからの指示によっ
て、処理開始をする。この更新タスクは、ネットワーク
データベース1に関する更新回数がある程度になった任
意の時点において実行される。従って、更新タスク実行
の時点では、ネットワークデータベース1からのログデ
ータには、多数回の更新の記録が含まれている。
クは、更新ログを管理する入力タスクからの指示によっ
て、処理開始をする。この更新タスクは、ネットワーク
データベース1に関する更新回数がある程度になった任
意の時点において実行される。従って、更新タスク実行
の時点では、ネットワークデータベース1からのログデ
ータには、多数回の更新の記録が含まれている。
【0047】更新タスクの処理は、先ず、ステップS1
01において、ステップSTARTSQLを発行する。
即ち、SQL文に従ってトランザクションを開始するこ
とを宣言する。なお、このSQLは、日本規格協会発行
のデータベース言語SQLX3005−1990,JI
Sハンドブック情報処理ソフトウェア,1990に従っ
たデータベース用標準言語である。
01において、ステップSTARTSQLを発行する。
即ち、SQL文に従ってトランザクションを開始するこ
とを宣言する。なお、このSQLは、日本規格協会発行
のデータベース言語SQLX3005−1990,JI
Sハンドブック情報処理ソフトウェア,1990に従っ
たデータベース用標準言語である。
【0048】続くステップS102では、MAP情報フ
ァイル8を検索して、更新ログに含まれるアドレス(自
アドレス及び上位アドレス)に対応する実テーブル17
上のカラム名を獲得する。
ァイル8を検索して、更新ログに含まれるアドレス(自
アドレス及び上位アドレス)に対応する実テーブル17
上のカラム名を獲得する。
【0049】続くステップS103では、MAP情報フ
ァイル8を検索して、更新ログに含まれるアドレス(自
アドレス及び上位アドレス)に対応するアドレステーブ
ル16上のカラム名を獲得する。
ァイル8を検索して、更新ログに含まれるアドレス(自
アドレス及び上位アドレス)に対応するアドレステーブ
ル16上のカラム名を獲得する。
【0050】次に、処理は、ステップS104からステ
ップS107,ステップS108,又はステップS10
9までのループに入る。このループでは、入力タスクか
ら通知される個々の更新ログ毎にステップS105以下
の処理を実行する。
ップS107,ステップS108,又はステップS10
9までのループに入る。このループでは、入力タスクか
ら通知される個々の更新ログ毎にステップS105以下
の処理を実行する。
【0051】ステップS104において、入力タスクか
らEOFが通知されているかどうかをチェックする。こ
のEOFは、未処理の更新ログが残っていない事を示す
通知である。EOFが通知されている場合には、処理を
ステップS110に進めるが、EOFが未だ通知されて
いなければ、処理をステップS105に進める。処理が
最初にこのステップ102に入ってきたときには、当然
処理はステップS105に進む。
らEOFが通知されているかどうかをチェックする。こ
のEOFは、未処理の更新ログが残っていない事を示す
通知である。EOFが通知されている場合には、処理を
ステップS110に進めるが、EOFが未だ通知されて
いなければ、処理をステップS105に進める。処理が
最初にこのステップ102に入ってきたときには、当然
処理はステップS105に進む。
【0052】ステップS105では、ログデータの形式
を通信用データ形式からRDB形式にデータ変換する。
即ち、ログデータは、通信用データ形式に変換されて、
通信部5から更新部9へ通信される。そこで、このログ
データをRDBマネージャ10によって扱えるように、
RDB形式にデータ変換するのである。
を通信用データ形式からRDB形式にデータ変換する。
即ち、ログデータは、通信用データ形式に変換されて、
通信部5から更新部9へ通信される。そこで、このログ
データをRDBマネージャ10によって扱えるように、
RDB形式にデータ変換するのである。
【0053】続くステップS106では、更新ログに含
まれる更新のマクロ種を判定して、判定したマクロ種に
依って処理を分岐させる。即ち、ネットワークデータベ
ース1における命令文は、NDL文で記述される。ND
L文において、「変更」は“MODIFY”であり、
「挿入」は“STORE”であり、「削除」は“ERA
SE”である(SQL文において、それらは、各々“U
PDATE”,“INSERT”,“DELETE”で
ある。)。ステップS106は、この種別を判定して、
“STORE”であれば処理をステップS107のST
OREマクロ処理に進め、“MODIFY”であれば処
理をステップS108のMODIFYマクロ処理に進
め、“ERASE”であれば処理をステップS109の
ERASEマクロ処理に進める。
まれる更新のマクロ種を判定して、判定したマクロ種に
依って処理を分岐させる。即ち、ネットワークデータベ
ース1における命令文は、NDL文で記述される。ND
L文において、「変更」は“MODIFY”であり、
「挿入」は“STORE”であり、「削除」は“ERA
SE”である(SQL文において、それらは、各々“U
PDATE”,“INSERT”,“DELETE”で
ある。)。ステップS106は、この種別を判定して、
“STORE”であれば処理をステップS107のST
OREマクロ処理に進め、“MODIFY”であれば処
理をステップS108のMODIFYマクロ処理に進
め、“ERASE”であれば処理をステップS109の
ERASEマクロ処理に進める。
【0054】以上のループを実行した結果、入力タスク
からEOFが通知された場合には、処理はステップS1
04からステップS110に進む。このステップS11
0においては、COMMIT WORK END SQ
L(COMMIT文)が発行される。このCOMMIT
文は、それまでのSQL文の処理を完了させる通知であ
る。このステップS110を行うと、この更新タスクの
処理は終了する。
からEOFが通知された場合には、処理はステップS1
04からステップS110に進む。このステップS11
0においては、COMMIT WORK END SQ
L(COMMIT文)が発行される。このCOMMIT
文は、それまでのSQL文の処理を完了させる通知であ
る。このステップS110を行うと、この更新タスクの
処理は終了する。
【0055】図7は、図6のステップS107において
実行されるSTOREマクロ処理のサブルーチンを示
す。図7に入って最初のステップS201では、現在処
理対象となっている更新ログの更新対象が、ネットワー
クデータベース1における最上位階層に対応するカラム
のデータであるか否かを判定する。
実行されるSTOREマクロ処理のサブルーチンを示
す。図7に入って最初のステップS201では、現在処
理対象となっている更新ログの更新対象が、ネットワー
クデータベース1における最上位階層に対応するカラム
のデータであるか否かを判定する。
【0056】最上位階層に対応するカラムのデータであ
る場合には、ステップS202において、アドレステー
ブル16に対し、下位カラムのデータを欠測(NUL)
として、INSERTを行う。即ち、以下のSQL文を
発行する。
る場合には、ステップS202において、アドレステー
ブル16に対し、下位カラムのデータを欠測(NUL)
として、INSERTを行う。即ち、以下のSQL文を
発行する。
【0057】INSERT INTO スキーマ名,ア
ドレステーブル名 (カラム名1,…,カラム名n) VALUES(ホスト変数1,…,ホスト変数n) ここで、nはアドレステーブル16のS−KEY以外の
カラム数である。従って、カラム名には、アドレステー
ブル16のS−KEYを除く全てのカラムの名前(A−
PGS,B−PGS,C−PGS,D−PGS)が書き
込まれる。ホスト変数とは、更新によって書き込まれる
アドレス値である。従って、このSQL文の内容は、指
名されたアドレステーブル16のカラム名1,…,カラ
ム名nのカラムの各々に、ホスト変数1,…,ホスト変
数nの実体値を書き込んで挿入するというものである。
但し、このステップS202の処理においては、ホスト
変数1のみに更新ログの更新データのアドレス値が書き
込まれ、ホスト変数2以下には欠測値(NUL)が書き
込まれる。なお、S−KEYのカラムには、一意性規約
により、新規な値が書き込まれる。
ドレステーブル名 (カラム名1,…,カラム名n) VALUES(ホスト変数1,…,ホスト変数n) ここで、nはアドレステーブル16のS−KEY以外の
カラム数である。従って、カラム名には、アドレステー
ブル16のS−KEYを除く全てのカラムの名前(A−
PGS,B−PGS,C−PGS,D−PGS)が書き
込まれる。ホスト変数とは、更新によって書き込まれる
アドレス値である。従って、このSQL文の内容は、指
名されたアドレステーブル16のカラム名1,…,カラ
ム名nのカラムの各々に、ホスト変数1,…,ホスト変
数nの実体値を書き込んで挿入するというものである。
但し、このステップS202の処理においては、ホスト
変数1のみに更新ログの更新データのアドレス値が書き
込まれ、ホスト変数2以下には欠測値(NUL)が書き
込まれる。なお、S−KEYのカラムには、一意性規約
により、新規な値が書き込まれる。
【0058】続くステップS203においては、実テー
ブル17に対し、下位カラムのデータを欠測(NUL)
として、INSERTを行う。即ち、以下のSQL文を
発行する。
ブル17に対し、下位カラムのデータを欠測(NUL)
として、INSERTを行う。即ち、以下のSQL文を
発行する。
【0059】 INSERT INTO スキーマ名,実テーブル名 (カラム名1,…,カラム名n) VALUES(ホスト変数1,…,ホスト変数n) ここで、nはアドレステーブル16のU−KEY以外の
カラム数である。従って、カラム名には、アドレステー
ブル16のU−KEYを除く全てのカラムの名前(開発
会社,事業部,担当課,開発者)が書き込まれる。ホス
ト変数とは、更新によって書き込まれる実体値である。
従って、このSQL文の内容は、指名された実テーブル
17のカラム名1,…,カラム名nのカラムの各々に、
ホスト変数1,…,ホスト変数nの実体値を書き込んで
挿入するというものである。但し、このステップS20
3の処理においては、ホスト変数1のみに更新ログの更
新データの実体値が書き込まれ、ホスト変数2以下には
欠測値が書き込まれる。なお、U−KEYのカラムに
は、一意性規約により、ステップS202において挿入
されたレコードのS−KEYの値と同じ値が書き込まれ
る。
カラム数である。従って、カラム名には、アドレステー
ブル16のU−KEYを除く全てのカラムの名前(開発
会社,事業部,担当課,開発者)が書き込まれる。ホス
ト変数とは、更新によって書き込まれる実体値である。
従って、このSQL文の内容は、指名された実テーブル
17のカラム名1,…,カラム名nのカラムの各々に、
ホスト変数1,…,ホスト変数nの実体値を書き込んで
挿入するというものである。但し、このステップS20
3の処理においては、ホスト変数1のみに更新ログの更
新データの実体値が書き込まれ、ホスト変数2以下には
欠測値が書き込まれる。なお、U−KEYのカラムに
は、一意性規約により、ステップS202において挿入
されたレコードのS−KEYの値と同じ値が書き込まれ
る。
【0060】ステップS203の処理を行うと、このサ
ブルーチンを終了して図6に戻り、次の更新ログに対す
る処理を行う。ステップS201にて最上位階層のカラ
ムでない場合には、ステップS204において、更新ロ
グに含まれる上位アドレス(PGCS)値を検索キーと
してカーソルをオープンする。即ち、以下のSQL文を
発行する。
ブルーチンを終了して図6に戻り、次の更新ログに対す
る処理を行う。ステップS201にて最上位階層のカラ
ムでない場合には、ステップS204において、更新ロ
グに含まれる上位アドレス(PGCS)値を検索キーと
してカーソルをオープンする。即ち、以下のSQL文を
発行する。
【0061】OPEN カーソル名 SELECT * FROM スキーマ名,アドレステ
ーブル名,スキーマ名,実テーブル名 WHERE 上位PGCSカラム名 = ホスト変数 AND アドレステーブルのリンクカラム名 = 実テ
ーブルのリンクカラム名 ここで、上位PGCSカラム名は、上位アドレスの階層
に対応するカラムの名前である。また、ホスト変数は、
更新ログに含まれている更新データの上位アドレス値で
ある。アドレステーブル16のリンクカラム名には、
“S−KEY”が入力される。実テーブル17のリンク
カラム名には、“U−KEY”が入力される。従って、
このSQL文の内容は、指名されたアドレステーブル1
6から上位PGSカラムのアドレスがホスト変数と一致
しているレコードの全データを検索し、指名された実テ
ーブル17からこのレコードのS−KEYと同じ値のU
−KEYを有するのレコードの全データを検索すること
を内容とするカーソルを宣言するというものである。
ーブル名,スキーマ名,実テーブル名 WHERE 上位PGCSカラム名 = ホスト変数 AND アドレステーブルのリンクカラム名 = 実テ
ーブルのリンクカラム名 ここで、上位PGCSカラム名は、上位アドレスの階層
に対応するカラムの名前である。また、ホスト変数は、
更新ログに含まれている更新データの上位アドレス値で
ある。アドレステーブル16のリンクカラム名には、
“S−KEY”が入力される。実テーブル17のリンク
カラム名には、“U−KEY”が入力される。従って、
このSQL文の内容は、指名されたアドレステーブル1
6から上位PGSカラムのアドレスがホスト変数と一致
しているレコードの全データを検索し、指名された実テ
ーブル17からこのレコードのS−KEYと同じ値のU
−KEYを有するのレコードの全データを検索すること
を内容とするカーソルを宣言するというものである。
【0062】続くステップS205では、FETCH文
により、実テーブル17とアドレステーブル16のデー
タを取得する。即ち、以下のSQL文を発行する。 FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16と実テーブル17の
カラム数を足した数である。なお、ホスト変数には定義
のみを書き込む。従って、このSQL文の内容は、ステ
ップS204で宣言したカーソルを実行し、ホスト変数
によって定義したデータを取り出すというものである。
により、実テーブル17とアドレステーブル16のデー
タを取得する。即ち、以下のSQL文を発行する。 FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16と実テーブル17の
カラム数を足した数である。なお、ホスト変数には定義
のみを書き込む。従って、このSQL文の内容は、ステ
ップS204で宣言したカーソルを実行し、ホスト変数
によって定義したデータを取り出すというものである。
【0063】続くステップS206では、カーソルのク
ローズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 このSQL文の内容は、ステップS204にて宣言した
カーソルの使用の終了を宣言するというものである。
ローズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 このSQL文の内容は、ステップS204にて宣言した
カーソルの使用の終了を宣言するというものである。
【0064】続くステップS207では、ステップS2
05によって取り出したデータ(レコード)が欠測値を
持っているかどうかのチェックを行う。欠測値を持って
いる場合には、処理をステップS208に進める。この
ステップS208では、ログデータに含まれる更新後の
実体値を欠測位置に入れて、ステップS205において
取得したデータを検索キーにして、実テーブル17に対
するUPDATE文を発行する。即ち、以下のSQL文
を発行する。
05によって取り出したデータ(レコード)が欠測値を
持っているかどうかのチェックを行う。欠測値を持って
いる場合には、処理をステップS208に進める。この
ステップS208では、ログデータに含まれる更新後の
実体値を欠測位置に入れて、ステップS205において
取得したデータを検索キーにして、実テーブル17に対
するUPDATE文を発行する。即ち、以下のSQL文
を発行する。
【0065】 UPDATE スキーマ名,実テーブル名 SET カラム名 = ホスト変数 WHERE 通常項目カラム名 = ホスト変数 シーケンスカラム名 = ホスト変数 ここで、カラム名は、更新ログに含まれる自アドレスに
対応するカラムの名前である。また、ホスト変数は、更
新ログに含まれている更新データの実体値である。カラ
ム名は、更新ログに含まれるデータの数だけ指定する。
また、通常項目カラム名とホスト変数には、ステップS
205にて得られたデータの何れかとそのカラム名を入
力する。また、シーケンスカラム名には“U−KEY”
を入力し、そのホスト変数にはステップS205にて得
られたU−KEYの値を入力する。従って、このSQL
文の内容は、指名された実テーブル17におけるWHE
RE条件で特定したレコードの指名されたカラムに、ホ
スト変数の実体値を上書きするというものである。
対応するカラムの名前である。また、ホスト変数は、更
新ログに含まれている更新データの実体値である。カラ
ム名は、更新ログに含まれるデータの数だけ指定する。
また、通常項目カラム名とホスト変数には、ステップS
205にて得られたデータの何れかとそのカラム名を入
力する。また、シーケンスカラム名には“U−KEY”
を入力し、そのホスト変数にはステップS205にて得
られたU−KEYの値を入力する。従って、このSQL
文の内容は、指名された実テーブル17におけるWHE
RE条件で特定したレコードの指名されたカラムに、ホ
スト変数の実体値を上書きするというものである。
【0066】続くステップS209では、ログデータに
含まれる更新後のデータのアドレスを欠測位置に入れ
て、ログデータに含まれる更新後データの上位アドレス
を検索キーにして、アドレステーブル16に対するUP
DATE文を発行する。即ち、以下のSQL文を発行す
る。
含まれる更新後のデータのアドレスを欠測位置に入れ
て、ログデータに含まれる更新後データの上位アドレス
を検索キーにして、アドレステーブル16に対するUP
DATE文を発行する。即ち、以下のSQL文を発行す
る。
【0067】 UPDATE スキーマ名,アドレステーブル名 SET カラム名 = ホスト変数 WHERE 上位PGCSカラム名 = ホスト変数 ここで、カラム名は、更新ログに含まれる自アドレスの
階層に対応するカラムの名前である。また、ホスト変数
は、更新ログに含まれている更新データのアドレス値で
ある。また、上位PGCSカラム名には、上位アドレス
の階層のカラム名が、そのホスト変数には、その上位ア
ドレスが入力される。従って、このSQL文の内容は、
指名されたアドレステーブル16におけるWHERE条
件で特定したレコードの指名されたカラムに、ホスト変
数のアドレス値を上書きするというものである。
階層に対応するカラムの名前である。また、ホスト変数
は、更新ログに含まれている更新データのアドレス値で
ある。また、上位PGCSカラム名には、上位アドレス
の階層のカラム名が、そのホスト変数には、その上位ア
ドレスが入力される。従って、このSQL文の内容は、
指名されたアドレステーブル16におけるWHERE条
件で特定したレコードの指名されたカラムに、ホスト変
数のアドレス値を上書きするというものである。
【0068】ステップS209の処理を行うと、このサ
ブルーチンを終了して図6に戻り、次の更新ログに対す
る処理を行う。ステップS207にて欠測値を持ってい
ないと判断した場合には、処理をステップS210に進
める。ステップS210では、ステップS205におい
て検索したレコードに更新データを上書きして、アドレ
ステーブル16に対してINSERT文を発行する。即
ち、以下のSQL文を発行する。
ブルーチンを終了して図6に戻り、次の更新ログに対す
る処理を行う。ステップS207にて欠測値を持ってい
ないと判断した場合には、処理をステップS210に進
める。ステップS210では、ステップS205におい
て検索したレコードに更新データを上書きして、アドレ
ステーブル16に対してINSERT文を発行する。即
ち、以下のSQL文を発行する。
【0069】INSERT INTO スキーマ名,ア
ドレステーブル名 (カラム名1,…,カラム名n) VALUES(ホスト変数1,…,ホスト変数n) ここで、nはアドレステーブル16のS−KEY以外の
カラム数である。従って、カラム名には、アドレステー
ブル16のS−KEYを除く全てのカラムの名前(A−
PGS,B−PGS,C−PGS,D−PGS)が書き
込まれる。ホスト変数とは、更新によって書き込まれる
アドレス値である。従って、このSQL文の内容は、指
名されたアドレステーブル16のカラム名1,…,カラ
ム名nのカラムの各々に、ホスト変数1,…,ホスト変
数nのアドレス値を書き込んで挿入するというものであ
る。但し、このステップS210の処理においては、更
新ログに含まれる更新データのアドレス値を対応するホ
スト変数に書き込み、更新データのカラムよりも下位の
カラムのホスト変数には欠測値(NUL)を書き込み、
その他のホスト変数にはステップS205において取り
出されたアドレス値を書き込む。なお、S−KEYのカ
ラムには、一意性規約により、新規な値が書き込まれ
る。
ドレステーブル名 (カラム名1,…,カラム名n) VALUES(ホスト変数1,…,ホスト変数n) ここで、nはアドレステーブル16のS−KEY以外の
カラム数である。従って、カラム名には、アドレステー
ブル16のS−KEYを除く全てのカラムの名前(A−
PGS,B−PGS,C−PGS,D−PGS)が書き
込まれる。ホスト変数とは、更新によって書き込まれる
アドレス値である。従って、このSQL文の内容は、指
名されたアドレステーブル16のカラム名1,…,カラ
ム名nのカラムの各々に、ホスト変数1,…,ホスト変
数nのアドレス値を書き込んで挿入するというものであ
る。但し、このステップS210の処理においては、更
新ログに含まれる更新データのアドレス値を対応するホ
スト変数に書き込み、更新データのカラムよりも下位の
カラムのホスト変数には欠測値(NUL)を書き込み、
その他のホスト変数にはステップS205において取り
出されたアドレス値を書き込む。なお、S−KEYのカ
ラムには、一意性規約により、新規な値が書き込まれ
る。
【0070】続くステップS211においては、ステッ
プS205において検索したレコードに更新データを上
書きして、実テーブル17に対してINSERT文を発
行する。即ち、以下のSQL文を発行する。
プS205において検索したレコードに更新データを上
書きして、実テーブル17に対してINSERT文を発
行する。即ち、以下のSQL文を発行する。
【0071】 INSERT INTO スキーマ名,実テーブル名 (カラム名1,…,カラム名n) VALUES(ホスト変数1,…,ホスト変数n) ここで、nは実テーブル17のU−KEY以外のカラム
数である。従って、カラム名には、アドレステーブル1
6のU−KEYを除く全てのカラムの名前(開発会社,
事業部,担当課,開発者)が書き込まれる。ホスト変数
とは、更新によって書き込まれる実体値である。従っ
て、このSQL文の内容は、指名された実テーブル17
のカラム名1,…,カラム名nのカラムの各々に、ホス
ト変数1,…,ホスト変数nの実体値を書き込んで挿入
するというものである。但し、このステップS211の
処理においては、更新ログに含まれる更新データの実体
値を対応するホスト変数に書き込み、更新データのカラ
ムよりも下位のカラムのホスト変数には欠測値(NU
L)を書き込み、その他のホスト変数にはステップS2
05において取り出された実体値を書き込む。なお、U
−KEYのカラムには、一意性規約により、ステップS
210において挿入されたレコードのS−KEYの値と
同じ値が書き込まれる。
数である。従って、カラム名には、アドレステーブル1
6のU−KEYを除く全てのカラムの名前(開発会社,
事業部,担当課,開発者)が書き込まれる。ホスト変数
とは、更新によって書き込まれる実体値である。従っ
て、このSQL文の内容は、指名された実テーブル17
のカラム名1,…,カラム名nのカラムの各々に、ホス
ト変数1,…,ホスト変数nの実体値を書き込んで挿入
するというものである。但し、このステップS211の
処理においては、更新ログに含まれる更新データの実体
値を対応するホスト変数に書き込み、更新データのカラ
ムよりも下位のカラムのホスト変数には欠測値(NU
L)を書き込み、その他のホスト変数にはステップS2
05において取り出された実体値を書き込む。なお、U
−KEYのカラムには、一意性規約により、ステップS
210において挿入されたレコードのS−KEYの値と
同じ値が書き込まれる。
【0072】ステップS211の処理を行うと、このサ
ブルーチンを終了して図6に戻り、次の更新ログに対す
る処理を行う。図8は、図6のステップS108におい
て実行されるMODIFYマクロ処理のサブルーチンを
示す。
ブルーチンを終了して図6に戻り、次の更新ログに対す
る処理を行う。図8は、図6のステップS108におい
て実行されるMODIFYマクロ処理のサブルーチンを
示す。
【0073】図8に入って最初のステップS301で
は、現在処理対象となっている更新ログに含まれる自ア
ドレス(PGCS)値を検索キーとしてカーソルをオー
プンする。即ち、以下のSQL文を発行する。
は、現在処理対象となっている更新ログに含まれる自ア
ドレス(PGCS)値を検索キーとしてカーソルをオー
プンする。即ち、以下のSQL文を発行する。
【0074】OPEN カーソル名 SELECT * FROM スキーマ名,アドレステ
ーブル名, WHERE 自PGCSカラム名 = ホスト変数 ここで、自PGCSカラム名は、自アドレスの階層に対
応するカラムの名前である。また、ホスト変数は、更新
ログに含まれている更新データのアドレス値である。従
って、このSQL文の内容は、指名されたアドレステー
ブル16から指定されたPGSカラムのアドレスがホス
ト変数と一致しているレコードの全データを取り出すこ
とを内容とするカーソルを宣言するというものである。
ーブル名, WHERE 自PGCSカラム名 = ホスト変数 ここで、自PGCSカラム名は、自アドレスの階層に対
応するカラムの名前である。また、ホスト変数は、更新
ログに含まれている更新データのアドレス値である。従
って、このSQL文の内容は、指名されたアドレステー
ブル16から指定されたPGSカラムのアドレスがホス
ト変数と一致しているレコードの全データを取り出すこ
とを内容とするカーソルを宣言するというものである。
【0075】続いて処理は、ステップS302からステ
ップS306までのループに入る。ステップS302で
は、FETCH文により、アドレステーブル16のデー
タを取得する。即ち、以下のSQL文を発行する。
ップS306までのループに入る。ステップS302で
は、FETCH文により、アドレステーブル16のデー
タを取得する。即ち、以下のSQL文を発行する。
【0076】FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16のカラム数である。
なお、ホスト変数には定義のみを書き込む。従って、こ
のSQL文の内容は、ステップS302で宣言したカー
ソルを実行し、ホスト変数によって定義したデータを取
り出すというものである。
なお、ホスト変数には定義のみを書き込む。従って、こ
のSQL文の内容は、ステップS302で宣言したカー
ソルを実行し、ホスト変数によって定義したデータを取
り出すというものである。
【0077】続くステップS303では、ステップS3
02による検索の結果として、カーソルの定義に該当す
るデータが存在しているかどうかを判定する。該当デー
タが存在していないときには、処理をステップS307
に進める。
02による検索の結果として、カーソルの定義に該当す
るデータが存在しているかどうかを判定する。該当デー
タが存在していないときには、処理をステップS307
に進める。
【0078】ステップS303にて該当データを発見で
きた場合には、処理をステップS304に進める。この
ステップS304では、ログデータを対応するカラムに
入れ、ステップS302において取り出したデータを検
索キーとして、実テーブル17に対するUPDATE文
を発行する。即ち、以下のSQL文を発行する。
きた場合には、処理をステップS304に進める。この
ステップS304では、ログデータを対応するカラムに
入れ、ステップS302において取り出したデータを検
索キーとして、実テーブル17に対するUPDATE文
を発行する。即ち、以下のSQL文を発行する。
【0079】UPDATE スキーマ名,実テーブル名 SET カラム名 = ホスト変数 WHERE 自レコードのカラム名 = ホスト変数 ここで、カラム名は、更新ログに含まれる自アドレスに
対応するカラムの名前である。また、ホスト変数は、更
新ログに含まれている更新データの実体値である。これ
らカラム名は、更新ログに含まれるデータの数だけ指定
する。また、自レコードのカラム名には“U−KEY”
と入力し、そのホスト変数にはステップS302にて得
られたS−KEYの値を入力する。従って、このSQL
文の内容は、指名された実テーブル17におけるWHE
RE条件で特定したレコードの指名されたカラムに、ホ
スト変数の実体値を上書きするというものである。
対応するカラムの名前である。また、ホスト変数は、更
新ログに含まれている更新データの実体値である。これ
らカラム名は、更新ログに含まれるデータの数だけ指定
する。また、自レコードのカラム名には“U−KEY”
と入力し、そのホスト変数にはステップS302にて得
られたS−KEYの値を入力する。従って、このSQL
文の内容は、指名された実テーブル17におけるWHE
RE条件で特定したレコードの指名されたカラムに、ホ
スト変数の実体値を上書きするというものである。
【0080】続くステップS305では、アドレス値の
変更がある場合に限りアドレステーブル16に対するU
PDATE文を発行する。即ち、ログデータを対応する
カラムに入れ、ステップS301にて宣言したカーソル
を条件にして、PDATE文を発行する。即ち、以下の
SQL文を発行する。
変更がある場合に限りアドレステーブル16に対するU
PDATE文を発行する。即ち、ログデータを対応する
カラムに入れ、ステップS301にて宣言したカーソル
を条件にして、PDATE文を発行する。即ち、以下の
SQL文を発行する。
【0081】 UPDATE スキーマ名,アドレステーブル名 SET カラム名 = ホスト変数 WHERE CURRENT OF カーソル名 ここで、カラム名は、更新ログに含まれる自アドレスに
対応するカラムの名前である。また、ホスト変数は、更
新ログに含まれている更新データのアドレス値である。
これらカラム名は、更新ログに含まれるデータの数だけ
指定する。また、カーソル名には、ステップS301に
て宣言したカーソルの名前を入力する。従って、このS
QL文の内容は、指名された実テーブル17におけるW
HERE条件で特定したレコードの指名されたカラム
に、ホスト変数のアドレス値を上書きするというもので
ある。
対応するカラムの名前である。また、ホスト変数は、更
新ログに含まれている更新データのアドレス値である。
これらカラム名は、更新ログに含まれるデータの数だけ
指定する。また、カーソル名には、ステップS301に
て宣言したカーソルの名前を入力する。従って、このS
QL文の内容は、指名された実テーブル17におけるW
HERE条件で特定したレコードの指名されたカラム
に、ホスト変数のアドレス値を上書きするというもので
ある。
【0082】続くステップS306では、ステップS3
05でUPDATE対象としたレコードがアドレステー
ブル16における最下位のレコードであるかどうかを判
断する。最下位のレコードである場合には、処理をステ
ップS307に進める。最下位のレコードでない場合に
は、処理をステップS302に戻し、次の該当データを
探しに行く。
05でUPDATE対象としたレコードがアドレステー
ブル16における最下位のレコードであるかどうかを判
断する。最下位のレコードである場合には、処理をステ
ップS307に進める。最下位のレコードでない場合に
は、処理をステップS302に戻し、次の該当データを
探しに行く。
【0083】ステップS307では、カーソルのクロー
ズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 ステップS307の処理を行うと、図6に戻り、次の更
新ログに対する処理を行う。
ズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 ステップS307の処理を行うと、図6に戻り、次の更
新ログに対する処理を行う。
【0084】図8及び図9は、図6のステップS109
において実行されるERASEマクロ処理のサブルーチ
ンを示す。図8に入って最初のステップS401では、
現在処理対象となっている更新ログの更新対象が、ネッ
トワークデータベース1における最上位階層のデータで
あるか否かを判定する。この判定は、更新ログに上位ア
ドレスが含まれているか否かによって行う。
において実行されるERASEマクロ処理のサブルーチ
ンを示す。図8に入って最初のステップS401では、
現在処理対象となっている更新ログの更新対象が、ネッ
トワークデータベース1における最上位階層のデータで
あるか否かを判定する。この判定は、更新ログに上位ア
ドレスが含まれているか否かによって行う。
【0085】最上位階層のカラムである場合には、ステ
ップS406において、図11に示す他のメンバありの
削除サブルーチンを呼び出す。図11において、最初の
ステップS501では、現在処理対象となっている更新
ログに含まれる自アドレス(PGCS)値を検索キーと
してカーソルをオープンする。即ち、以下のSQL文を
発行する。
ップS406において、図11に示す他のメンバありの
削除サブルーチンを呼び出す。図11において、最初の
ステップS501では、現在処理対象となっている更新
ログに含まれる自アドレス(PGCS)値を検索キーと
してカーソルをオープンする。即ち、以下のSQL文を
発行する。
【0086】OPEN カーソル名 SELECT * FROM スキーマ名,アドレステ
ーブル名, WHERE 自PGCSカラム名 = ホスト変数 ここで、自PGCSカラム名は、更新ログに含まれる自
アドレスの階層に対応するカラムの名前である。また、
ホスト変数は、更新ログに含まれている更新データのア
ドレス値である。従って、このSQL文の内容は、指名
されたアドレステーブル16から、指定されたPGCS
カラムのアドレスがホスト変数と一致しているレコード
の全データを取り出すことを内容とするカーソルを宣言
するというものである。
ーブル名, WHERE 自PGCSカラム名 = ホスト変数 ここで、自PGCSカラム名は、更新ログに含まれる自
アドレスの階層に対応するカラムの名前である。また、
ホスト変数は、更新ログに含まれている更新データのア
ドレス値である。従って、このSQL文の内容は、指名
されたアドレステーブル16から、指定されたPGCS
カラムのアドレスがホスト変数と一致しているレコード
の全データを取り出すことを内容とするカーソルを宣言
するというものである。
【0087】ステップS502では、FETCH文によ
り、アドレステーブル16のデータを取得する。即ち、
以下のSQL文を発行する。 FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16のカラム数である。
なお、ホスト変数には定義のみを書き込む。従って、こ
のSQL文の内容は、ステップS501で宣言したカー
ソルを実行し、ホスト変数によって定義したデータを取
り出すというものである。
り、アドレステーブル16のデータを取得する。即ち、
以下のSQL文を発行する。 FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16のカラム数である。
なお、ホスト変数には定義のみを書き込む。従って、こ
のSQL文の内容は、ステップS501で宣言したカー
ソルを実行し、ホスト変数によって定義したデータを取
り出すというものである。
【0088】続くステップS503では、ステップS5
02による検索の結果として、カーソルの定義に該当す
るデータが存在しているかどうかを判定する。該当デー
タが存在していないときには、処理をステップS506
に進める。
02による検索の結果として、カーソルの定義に該当す
るデータが存在しているかどうかを判定する。該当デー
タが存在していないときには、処理をステップS506
に進める。
【0089】ステップS503にて該当データが存在し
ていると判断する場合には、処理をステップS504に
進める。このステップS504では、ステップS502
において取り出したデータを検索キーとして、実テーブ
ル17に対してDELETE文を発行する。即ち、以下
のSQL文を発行する。
ていると判断する場合には、処理をステップS504に
進める。このステップS504では、ステップS502
において取り出したデータを検索キーとして、実テーブ
ル17に対してDELETE文を発行する。即ち、以下
のSQL文を発行する。
【0090】DELETE スキーマ名,実テーブル名 SET カラム名 = ホスト変数 WHERE 自レコードのカラム名 = ホスト変数 ここで、カラム名は、更新ログに含まれる自アドレスの
階層に対応するカラムの名前である。また、ホスト変数
は、更新ログに含まれている更新データの実体値であ
る。これらカラム名は、更新ログに含まれるデータの数
だけ指定する。また、自レコードのカラム名には“U−
KEY”と入力し、そのホスト変数にはステップS50
2にて得られたS−KEYの値と同じ値を入力する。従
って、このSQL文の内容は、指名された実テーブル1
7におけるWHERE条件で特定したレコードを削除す
るというものである。
階層に対応するカラムの名前である。また、ホスト変数
は、更新ログに含まれている更新データの実体値であ
る。これらカラム名は、更新ログに含まれるデータの数
だけ指定する。また、自レコードのカラム名には“U−
KEY”と入力し、そのホスト変数にはステップS50
2にて得られたS−KEYの値と同じ値を入力する。従
って、このSQL文の内容は、指名された実テーブル1
7におけるWHERE条件で特定したレコードを削除す
るというものである。
【0091】続くステップS505では、ステップS5
01において宣言したカーソルを条件に、アドレステー
ブル16に対するDELETE文を発行する。即ち、以
下のSQL文を発行する。
01において宣言したカーソルを条件に、アドレステー
ブル16に対するDELETE文を発行する。即ち、以
下のSQL文を発行する。
【0092】 DELETE スキーマ名,アドレステーブル名, WHERE CURRENT OF カーソル名 ここで、カーソル名には、ステップS501にて宣言し
たカーソルの名前を入力する。従って、このSQL文の
内容は、指名されたアドレステーブル16におけるWH
ERE条件で特定したレコードを削除するというもので
ある。ステップS505の処理の後、処理をステップS
506に進める。
たカーソルの名前を入力する。従って、このSQL文の
内容は、指名されたアドレステーブル16におけるWH
ERE条件で特定したレコードを削除するというもので
ある。ステップS505の処理の後、処理をステップS
506に進める。
【0093】ステップS506では、カーソルのクロー
ズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 このステップS506の処理を終了すると、この他メン
バ有りの削除サブルーチンを終了し、処理を図9に戻
す。図9においてステップS406が終了すると、処理
を図6に戻し、次のログデータに対する処理を行わせ
る。
ズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 このステップS506の処理を終了すると、この他メン
バ有りの削除サブルーチンを終了し、処理を図9に戻
す。図9においてステップS406が終了すると、処理
を図6に戻し、次のログデータに対する処理を行わせ
る。
【0094】図9のステップS401にて最上位階層の
カラムでない場合には、ステップS402において、更
新ログに含まれる上位アドレス(PGCS)値が確定し
ているか否かを判定する。この判定では、更新対象のデ
ータの上位アドレス(PGCS)値が“FFFFFFF
F”である場合を未確定と扱う。上位PGCS値が確定
していない場合には、処理をステップS403に進め
る。
カラムでない場合には、ステップS402において、更
新ログに含まれる上位アドレス(PGCS)値が確定し
ているか否かを判定する。この判定では、更新対象のデ
ータの上位アドレス(PGCS)値が“FFFFFFF
F”である場合を未確定と扱う。上位PGCS値が確定
していない場合には、処理をステップS403に進め
る。
【0095】このステップS403では、現在処理対象
のレコード以外にも、更新対象のデータの上位のデータ
(親データ)からリンクするメンバ(レコード)が存在
するか否かを判定する。この判定は、更新ログ内のフラ
グのセット状態を判別することにより行う。親データか
らリンクするメンバが存在する場合には、ステップS4
07に進む。このステップS407では、ステップS4
06の場合と同様に、図11の他メンバ有りの削除サブ
ルーチンを実行する。このステップS407の処理を終
了すると、処理を図6に戻し、次のログデータに対する
処理を行わせる。
のレコード以外にも、更新対象のデータの上位のデータ
(親データ)からリンクするメンバ(レコード)が存在
するか否かを判定する。この判定は、更新ログ内のフラ
グのセット状態を判別することにより行う。親データか
らリンクするメンバが存在する場合には、ステップS4
07に進む。このステップS407では、ステップS4
06の場合と同様に、図11の他メンバ有りの削除サブ
ルーチンを実行する。このステップS407の処理を終
了すると、処理を図6に戻し、次のログデータに対する
処理を行わせる。
【0096】ステップS403にて、親データからリン
クするメンバが存在しない場合には、処理をステップS
405に進める。このステップS405では、図12の
他メンバなしの削除サブルーチンを実行する。
クするメンバが存在しない場合には、処理をステップS
405に進める。このステップS405では、図12の
他メンバなしの削除サブルーチンを実行する。
【0097】図12において、最初のステップS601
では、現在処理対象となっている更新ログに含まれる自
アドレス(PGCS)値を検索キーとしてカーソルをオ
ープンする。即ち、以下のSQL文を発行する。
では、現在処理対象となっている更新ログに含まれる自
アドレス(PGCS)値を検索キーとしてカーソルをオ
ープンする。即ち、以下のSQL文を発行する。
【0098】OPEN カーソル名 SELECT * FROM スキーマ名,アドレステ
ーブル名, WHERE 自PGCSカラム名 = ホスト変数 ここで、自PGCSカラム名は、自アドレスの階層に対
応するカラムの名前である。また、ホスト変数は、更新
ログに含まれている更新データのアドレス値である。従
って、このSQL文の内容は、指名されたアドレステー
ブル16から、指定されたPGCSカラムのアドレスが
ホスト変数と一致しているレコードの全データを取り出
すことを内容とするカーソルを宣言するというものであ
る。
ーブル名, WHERE 自PGCSカラム名 = ホスト変数 ここで、自PGCSカラム名は、自アドレスの階層に対
応するカラムの名前である。また、ホスト変数は、更新
ログに含まれている更新データのアドレス値である。従
って、このSQL文の内容は、指名されたアドレステー
ブル16から、指定されたPGCSカラムのアドレスが
ホスト変数と一致しているレコードの全データを取り出
すことを内容とするカーソルを宣言するというものであ
る。
【0099】続くステップS602では、FETCH文
により、アドレステーブル16のデータを取得する。即
ち、以下のSQL文を発行する。 FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16のカラム数である。
なお、ホスト変数には定義のみを書き込む。従って、こ
のSQL文の内容は、ステップS601で宣言したカー
ソルを実行し、ホスト変数によって定義したデータを取
り出すというものである。
により、アドレステーブル16のデータを取得する。即
ち、以下のSQL文を発行する。 FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16のカラム数である。
なお、ホスト変数には定義のみを書き込む。従って、こ
のSQL文の内容は、ステップS601で宣言したカー
ソルを実行し、ホスト変数によって定義したデータを取
り出すというものである。
【0100】続くステップS603では、ステップS6
02による検索の結果として、カーソルの定義に該当す
るデータが存在しているかどうかを判定する。該当デー
タが存在していないときには、処理をステップS606
に進める。
02による検索の結果として、カーソルの定義に該当す
るデータが存在しているかどうかを判定する。該当デー
タが存在していないときには、処理をステップS606
に進める。
【0101】ステップS603にて該当データが存在し
ていると判断する場合には、処理をステップS604に
進める。このステップS604では、ステップS602
において取り出したデータを検索キーとして、実テーブ
ル17に対してUPDATE文を発行する。即ち、以下
のSQL文を発行する。
ていると判断する場合には、処理をステップS604に
進める。このステップS604では、ステップS602
において取り出したデータを検索キーとして、実テーブ
ル17に対してUPDATE文を発行する。即ち、以下
のSQL文を発行する。
【0102】 UPDATE スキーマ名,実テーブル名, SET カラム名 = NUL WHERE 自レコードのカラム名 = ホスト変数 ここで、カラム名は、更新ログに含まれる自アドレスの
階層に対応する実テーブル17のカラムの名前である。
このカラム名は、更新ログに含まれるデータの数だけ指
定する。また、自レコードのカラム名には“U−KE
Y”と入力し、そのホスト変数にはステップS602に
て得られたS−KEYの値と同じ値を入力する。従っ
て、このSQL文の内容は、指名された実テーブル17
におけるWHERE条件で特定したレコードの指定した
カラムにNULを設定するというものである。
階層に対応する実テーブル17のカラムの名前である。
このカラム名は、更新ログに含まれるデータの数だけ指
定する。また、自レコードのカラム名には“U−KE
Y”と入力し、そのホスト変数にはステップS602に
て得られたS−KEYの値と同じ値を入力する。従っ
て、このSQL文の内容は、指名された実テーブル17
におけるWHERE条件で特定したレコードの指定した
カラムにNULを設定するというものである。
【0103】続くステップS605では、ステップS6
01において宣言したカーソルを条件に、アドレステー
ブル16に対するUPDATE文を発行する。即ち、以
下のSQL文を発行する。
01において宣言したカーソルを条件に、アドレステー
ブル16に対するUPDATE文を発行する。即ち、以
下のSQL文を発行する。
【0104】 UPDATE スキーマ名,アドレステーブル名, SET カラム名 = NUL WHERE CURRENT OF カーソル名 ここで、ここで、カラム名は、更新ログに含まれる自ア
ドレスの階層に対応するアドレステーブル16のカラム
の名前である。このカラム名は、更新ログに含まれるデ
ータの数だけ指定する。また、カーソル名には、ステッ
プS601にて宣言したカーソルの名前を入力する。従
って、このSQL文の内容は、指名されたアドレステー
ブル16におけるWHERE条件で特定したレコードの
指定したカラムにNULを設定するというものである。
ステップS605の処理の後、処理をステップS606
に進める。
ドレスの階層に対応するアドレステーブル16のカラム
の名前である。このカラム名は、更新ログに含まれるデ
ータの数だけ指定する。また、カーソル名には、ステッ
プS601にて宣言したカーソルの名前を入力する。従
って、このSQL文の内容は、指名されたアドレステー
ブル16におけるWHERE条件で特定したレコードの
指定したカラムにNULを設定するというものである。
ステップS605の処理の後、処理をステップS606
に進める。
【0105】ステップS606では、カーソルのクロー
ズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 このステップS606の処理を終了すると、この他メン
バ有りの削除サブルーチンを終了し、処理を図9に戻
す。図9においてステップS405が終了すると、処理
を図6に戻し、次のログデータに対する処理を行わせ
る。
ズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 このステップS606の処理を終了すると、この他メン
バ有りの削除サブルーチンを終了し、処理を図9に戻
す。図9においてステップS405が終了すると、処理
を図6に戻し、次のログデータに対する処理を行わせ
る。
【0106】ステップS402にて上位PGCS値が確
定していると判定する場合には、処理をステップS40
8(図10)に進める。ステップS408では、更新ロ
グに含まれる上位アドレス(PGCS)値と更新データ
の自アドレス(PGCS)値を検索キーとして、カーソ
ルをオープンする。即ち、以下のSQL文を発行する。
OPEN カーソル名 SELECT * FROM スキーマ名,アドレステ
ーブル名 WHERE 上位PGCSカラム名 = ホスト変数 AND NOT 自PGCSカラム名 = ホスト変数 ここで、上位PGCSカラム名は、上位アドレスの階層
の上の階層に対応するカラムの名前である。そのホスト
変数は、更新ログに含まれている更新データの上位アド
レス値である。自PGCSカラム名は、自アドレスの階
層に対応するカラムの名前である。そのホスト変数は、
更新ログに含まれている更新データのアドレス値であ
る。従って、このSQL文の内容は、指名されたアドレ
ステーブル16から上位カラムのアドレスがホスト変数
と一致しているが自カラムのアドレスがホスト変数と一
致していないレコードを検索し、そのレコードの全デー
タを取得するカーソルを宣言するというものである。
定していると判定する場合には、処理をステップS40
8(図10)に進める。ステップS408では、更新ロ
グに含まれる上位アドレス(PGCS)値と更新データ
の自アドレス(PGCS)値を検索キーとして、カーソ
ルをオープンする。即ち、以下のSQL文を発行する。
OPEN カーソル名 SELECT * FROM スキーマ名,アドレステ
ーブル名 WHERE 上位PGCSカラム名 = ホスト変数 AND NOT 自PGCSカラム名 = ホスト変数 ここで、上位PGCSカラム名は、上位アドレスの階層
の上の階層に対応するカラムの名前である。そのホスト
変数は、更新ログに含まれている更新データの上位アド
レス値である。自PGCSカラム名は、自アドレスの階
層に対応するカラムの名前である。そのホスト変数は、
更新ログに含まれている更新データのアドレス値であ
る。従って、このSQL文の内容は、指名されたアドレ
ステーブル16から上位カラムのアドレスがホスト変数
と一致しているが自カラムのアドレスがホスト変数と一
致していないレコードを検索し、そのレコードの全デー
タを取得するカーソルを宣言するというものである。
【0107】続くステップS409では、FETCH文
により、アドレステーブル16のデータを取得する。即
ち、以下のSQL文を発行する。 FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16のカラム数である。
なお、ホスト変数には定義のみを書き込む。従って、こ
のSQL文の内容は、ステップS408で宣言したカー
ソルを実行し、ホスト変数によって定義したデータを取
り出すというものである。
により、アドレステーブル16のデータを取得する。即
ち、以下のSQL文を発行する。 FETCH カーソル名 INTO ホスト変数1,…,ホスト変数n ここで、nはアドレステーブル16のカラム数である。
なお、ホスト変数には定義のみを書き込む。従って、こ
のSQL文の内容は、ステップS408で宣言したカー
ソルを実行し、ホスト変数によって定義したデータを取
り出すというものである。
【0108】続くステップS410では、カーソルのク
ローズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 このSQL文の内容は、ステップS408にて宣言した
カーソルの使用の終了を宣言するというものである。
ローズを行う。即ち、以下のSQL文を発行する。 CLOSE カーソル名 このSQL文の内容は、ステップS408にて宣言した
カーソルの使用の終了を宣言するというものである。
【0109】続くステップS411では、ステップS4
09による検索の結果として、カーソルの定義に該当す
るデータが存在しているかどうかを判定する。該当デー
タが存在していないときには、処理をステップS412
に進める。このステップS412では、ステップS40
5の場合と同様に、図12の他メンバなしの削除サブル
ーチンを実行する。このステップS412の処理を終了
すると、処理を図6に戻し、次のログデータに対する処
理を行わせる。
09による検索の結果として、カーソルの定義に該当す
るデータが存在しているかどうかを判定する。該当デー
タが存在していないときには、処理をステップS412
に進める。このステップS412では、ステップS40
5の場合と同様に、図12の他メンバなしの削除サブル
ーチンを実行する。このステップS412の処理を終了
すると、処理を図6に戻し、次のログデータに対する処
理を行わせる。
【0110】これに対して、ステップS411にて該当
データが存在すると判定したときには、処理をステップ
S413に進める。このステップS413では、ステッ
プS406の場合と同様に、図11の他メンバ有りの削
除サブルーチンを実行する。このステップS413の処
理を終了すると、処理を図6に戻し、次のログデータに
対する処理を行わせる。 <更新の具体例>次に、上記した処理フローに従ってデ
ータを更新する場合におけるアドレステーブル16及び
実テーブル17の状態の具体例を示す。なお、アドレス
テーブル16のスキーマ名は“SCHEMA1”であ
り、テーブル名は“TABLE1”であるとする。ま
た、実テーブル17のスキーマ名は“SCHEMA2”
であり、テーブル名は“TABLE2”であるとする。 <変更の場合の具体例1>この具体例説明の前提とし
て、更新前の状態において、ネットワークデータベース
1の状態は図3に示す通りであり、アドレステーブル1
6の状態は図4に示す通りであり、実テーブル17の状
態は図5に示す通りであるとする。
データが存在すると判定したときには、処理をステップ
S413に進める。このステップS413では、ステッ
プS406の場合と同様に、図11の他メンバ有りの削
除サブルーチンを実行する。このステップS413の処
理を終了すると、処理を図6に戻し、次のログデータに
対する処理を行わせる。 <更新の具体例>次に、上記した処理フローに従ってデ
ータを更新する場合におけるアドレステーブル16及び
実テーブル17の状態の具体例を示す。なお、アドレス
テーブル16のスキーマ名は“SCHEMA1”であ
り、テーブル名は“TABLE1”であるとする。ま
た、実テーブル17のスキーマ名は“SCHEMA2”
であり、テーブル名は“TABLE2”であるとする。 <変更の場合の具体例1>この具体例説明の前提とし
て、更新前の状態において、ネットワークデータベース
1の状態は図3に示す通りであり、アドレステーブル1
6の状態は図4に示す通りであり、実テーブル17の状
態は図5に示す通りであるとする。
【0111】いま、ネットワークデータベース1上のア
ドレスd2に存在するデータ“木村雄三”を、“A.S
ENNA”に変更したとする。その場合に作成される更
新ログは、図13に示す通りの構成である。この図13
において、“UPDATE”は更新方法であり、“A.
SENNA”は更新後のデータの実体値であり、“d
2”は更新対象データのアドレス(自アドレス)であ
り、“c1”は更新対象データのレコードにおける1段
上位階層のデータ(親データ)のアドレス(上位アドレ
ス)である。
ドレスd2に存在するデータ“木村雄三”を、“A.S
ENNA”に変更したとする。その場合に作成される更
新ログは、図13に示す通りの構成である。この図13
において、“UPDATE”は更新方法であり、“A.
SENNA”は更新後のデータの実体値であり、“d
2”は更新対象データのアドレス(自アドレス)であ
り、“c1”は更新対象データのレコードにおける1段
上位階層のデータ(親データ)のアドレス(上位アドレ
ス)である。
【0112】最初にこの更新ログを元にMAP情報ファ
イル8を検索し、自アドレスのアドレステーブル16上
でのカラム名と、実テーブル17上でのカラム名の情報
を得る(ステップS102,103)。その結果、アド
レステーブル16上のカラム名は“D−PGCS”であ
り実テーブル17上のカラム名は“開発者”であること
が認識される。
イル8を検索し、自アドレスのアドレステーブル16上
でのカラム名と、実テーブル17上でのカラム名の情報
を得る(ステップS102,103)。その結果、アド
レステーブル16上のカラム名は“D−PGCS”であ
り実テーブル17上のカラム名は“開発者”であること
が認識される。
【0113】次に、この更新ログに基づいて、カーソル
をオープンする(ステップS301)。この場合におけ
るSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE D−PGCS = d2 次に、このカーソルを実行する(ステップS302)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
をオープンする(ステップS301)。この場合におけ
るSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE D−PGCS = d2 次に、このカーソルを実行する(ステップS302)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0114】 FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,D−PGCS,S−KEY この1回目のFETCH文発行の結果として、以下のデ
ータが有られる。
S,D−PGCS,S−KEY この1回目のFETCH文発行の結果として、以下のデ
ータが有られる。
【0115】 “a1,b1,c1,d2,000003” このデータが得られると、ステップS303からステッ
プS304に進み、このデータに基づいて実テーブル1
7に対するUPDATE文を発行する(ステップS30
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
プS304に進み、このデータに基づいて実テーブル1
7に対するUPDATE文を発行する(ステップS30
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
【0116】 UPDATE SCHEMA2,TABLE2 SET 開発者 = A.SENA WHERE U−KEY = 000003 これにより、実テーブル17の内容は、図14に示す様
に更新される。なお、この場合にはアドレス値の変更は
ないので、ステップS305の処理は行わない。
に更新される。なお、この場合にはアドレス値の変更は
ないので、ステップS305の処理は行わない。
【0117】更新されたレコードはアドレステーブル1
6上の最下位レコードではないので、続くステップS3
06において処理を戻す。従って、再度FETCH文を
発行する(ステップS306)。しかし、今回は該当す
るデータがないので、AT−END(SQLSTATE
2000:データ無し)との回答がなされる。従って、
ステップS303からループを抜けて処理を終了する。 <変更の場合の具体例2>この具体例説明の前提とし
て、更新前の状態において、アドレステーブル16の状
態は図4に示す通りであり、実テーブル17の状態は図
14に示す通りであるとする。
6上の最下位レコードではないので、続くステップS3
06において処理を戻す。従って、再度FETCH文を
発行する(ステップS306)。しかし、今回は該当す
るデータがないので、AT−END(SQLSTATE
2000:データ無し)との回答がなされる。従って、
ステップS303からループを抜けて処理を終了する。 <変更の場合の具体例2>この具体例説明の前提とし
て、更新前の状態において、アドレステーブル16の状
態は図4に示す通りであり、実テーブル17の状態は図
14に示す通りであるとする。
【0118】いま、ネットワークデータベース1上のア
ドレスc1に存在するデータ“3開発課”を、“3推進
室”に変更したとする。その場合に作成される更新ログ
は、図15に示す通りの構成である。この図15におい
て、“UPDATE”は更新方法であり、“3推進室”
は更新後のデータの実体値であり、“c1”は自アドレ
スであり、“b1”は上位アドレスである。
ドレスc1に存在するデータ“3開発課”を、“3推進
室”に変更したとする。その場合に作成される更新ログ
は、図15に示す通りの構成である。この図15におい
て、“UPDATE”は更新方法であり、“3推進室”
は更新後のデータの実体値であり、“c1”は自アドレ
スであり、“b1”は上位アドレスである。
【0119】最初にこの更新ログを元にMAP情報ファ
イル8を検索し、自アドレスのアドレステーブル16上
でのカラム名と、実テーブル17上でのカラム名の情報
を得る(ステップS102,103)。その結果、アド
レステーブル16上のカラム名は“C−PGCS”であ
り実テーブル17上のカラム名は“担当課”であること
が認識される。
イル8を検索し、自アドレスのアドレステーブル16上
でのカラム名と、実テーブル17上でのカラム名の情報
を得る(ステップS102,103)。その結果、アド
レステーブル16上のカラム名は“C−PGCS”であ
り実テーブル17上のカラム名は“担当課”であること
が認識される。
【0120】次に、この更新ログに基づいて、カーソル
をオープンする(ステップS301)。この場合におけ
るSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE C−PGCS = c1 次に、このカーソルを実行する(ステップS302)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
をオープンする(ステップS301)。この場合におけ
るSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE C−PGCS = c1 次に、このカーソルを実行する(ステップS302)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0121】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,D−PGCS,S−KEY この一回目のFETCH文発行の結果として、以下のデ
ータが有られる。
S,D−PGCS,S−KEY この一回目のFETCH文発行の結果として、以下のデ
ータが有られる。
【0122】 “a1,b1,c1,d1,000002” このデータが得られると、ステップS303からステッ
プS304に進み、このデータに基づいて実テーブル1
7に対するUPDATE文を発行する(ステップS30
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
プS304に進み、このデータに基づいて実テーブル1
7に対するUPDATE文を発行する(ステップS30
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
【0123】 UPDATE SCHEMA2,TABLE2 SET 担当課 = 3推進室 WHERE U−KEY = 000002 この場合にはアドレス値の変更はないので、ステップS
305の処理は行わない。
305の処理は行わない。
【0124】更新されたレコードはアドレステーブル1
6上の最下位レコードではないので、続くステップS3
06において処理を戻す。従って、再度FETCH文を
発行する(ステップS306)。
6上の最下位レコードではないので、続くステップS3
06において処理を戻す。従って、再度FETCH文を
発行する(ステップS306)。
【0125】この二回目のFETCH文発行の結果とし
て、以下のデータが有られる。 “a1,b1,c1,d2,000003” このデータが得られると、ステップS303からステッ
プS304に進み、このデータに基づいて実テーブル1
7に対するUPDATE文を発行する(ステップS30
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
て、以下のデータが有られる。 “a1,b1,c1,d2,000003” このデータが得られると、ステップS303からステッ
プS304に進み、このデータに基づいて実テーブル1
7に対するUPDATE文を発行する(ステップS30
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
【0126】 UPDATE SCHEMA2,TABLE2 SET 担当課 = 3推進室 WHERE U−KEY = 000003 この場合にはアドレス値の変更はないので、ステップS
305の処理は行わない。これにより、実テーブル17
の内容は、図16に示す様に更新される。なお、この場
合にはアドレス値の変更はないので、ステップS305
の処理は行わない。
305の処理は行わない。これにより、実テーブル17
の内容は、図16に示す様に更新される。なお、この場
合にはアドレス値の変更はないので、ステップS305
の処理は行わない。
【0127】更新されたレコードはアドレステーブル1
6上の最下位レコードではないので、続くステップS3
06において処理を戻す。従って、再度FETCH文を
発行する(ステップS306)。しかし、今回は該当す
るデータがないので、AT−END(SQLSTATE
2000:データ無し)との回答がなされる。従って、
ステップS303からループを抜けて処理を終了する。 <挿入の場合の具体例1>この具体例説明の前提とし
て、更新前の状態において、アドレステーブル16の状
態は図4に示す通りであり、実テーブル17の状態は図
16に示す通りであるとする。
6上の最下位レコードではないので、続くステップS3
06において処理を戻す。従って、再度FETCH文を
発行する(ステップS306)。しかし、今回は該当す
るデータがないので、AT−END(SQLSTATE
2000:データ無し)との回答がなされる。従って、
ステップS303からループを抜けて処理を終了する。 <挿入の場合の具体例1>この具体例説明の前提とし
て、更新前の状態において、アドレステーブル16の状
態は図4に示す通りであり、実テーブル17の状態は図
16に示す通りであるとする。
【0128】いま、ネットワークデータベース1上のア
ドレスc3に存在するデータ“2開発課”に、下位デー
タとして“山田俊昭”を追加したとする。その場合に作
成される更新ログは、図17に示す通りの構成である。
この図17において、“INSERT”は更新方法であ
り、“山田俊昭”は更新後のデータの実体値であり、
“d5”は自アドレスであり、“c3”は上位アドレス
である。
ドレスc3に存在するデータ“2開発課”に、下位デー
タとして“山田俊昭”を追加したとする。その場合に作
成される更新ログは、図17に示す通りの構成である。
この図17において、“INSERT”は更新方法であ
り、“山田俊昭”は更新後のデータの実体値であり、
“d5”は自アドレスであり、“c3”は上位アドレス
である。
【0129】最初にこの更新ログを元にMAP情報ファ
イル8を検索し、上位アドレスのアドレステーブル16
上でのカラム名と、自アドレスの実テーブル17上での
カラム名の情報を得る(ステップS102,103)。
その結果、上位アドレスのアドレステーブル16上での
カラム名は“C−PGCS”であり自アドレスの実テー
ブル17上でのカラム名は“開発者”であることが認識
される。
イル8を検索し、上位アドレスのアドレステーブル16
上でのカラム名と、自アドレスの実テーブル17上での
カラム名の情報を得る(ステップS102,103)。
その結果、上位アドレスのアドレステーブル16上での
カラム名は“C−PGCS”であり自アドレスの実テー
ブル17上でのカラム名は“開発者”であることが認識
される。
【0130】次に、この更新ログに基づいて、カーソル
をオープンする(ステップS204)。この場合におけ
るSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1,SCHEMA2,TABLE2 WHERE C−PGCS = c3 AND S−KEY = U−KEY 次に、このカーソルを実行する(ステップS205)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
をオープンする(ステップS204)。この場合におけ
るSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1,SCHEMA2,TABLE2 WHERE C−PGCS = c3 AND S−KEY = U−KEY 次に、このカーソルを実行する(ステップS205)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0131】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,S−KEY, 開発会社,事業部,担当課,
開発者,U−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,S−KEY, 開発会社,事業部,担当課,
開発者,U−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0132】“a1,b2,c3,d4,00000
1,富士通,1開発部,2開発課,鎌田豊,00000
1(図18参照)” このデータが得られると、ステップS207からステッ
プS210に進み、このデータに基づいてアドレステー
ブル16に対するINSERT文を発行する(ステップ
S210)。この場合には、“d4”を“d5”でマー
ジするとともに、S−KEYとして新規な値(0000
05)を設定する。即ち、この場合におけるSQL文の
具体的内容は、以下のようになる。
1,富士通,1開発部,2開発課,鎌田豊,00000
1(図18参照)” このデータが得られると、ステップS207からステッ
プS210に進み、このデータに基づいてアドレステー
ブル16に対するINSERT文を発行する(ステップ
S210)。この場合には、“d4”を“d5”でマー
ジするとともに、S−KEYとして新規な値(0000
05)を設定する。即ち、この場合におけるSQL文の
具体的内容は、以下のようになる。
【0133】INSERT INTO SCHEMA
1,TABLE1 (A−PGSC,B−PGSC,C−PGSC,D−P
GSC,S−KEY) VALUES(a1,b2,c3,d5,00000
5) 次に、得られたデータの“鎌田豊”を“山田俊昭”でマ
ージするとともに、U−KEYとして新規な値(000
005)を設定して図19に示すような新レコードを作
成する。そして、この新レコードに基づいて、実テーブ
ル17に対するINSERT文を発行する(ステップS
211)。この場合におけるSQL文の具体的内容は、
以下のようになる。
1,TABLE1 (A−PGSC,B−PGSC,C−PGSC,D−P
GSC,S−KEY) VALUES(a1,b2,c3,d5,00000
5) 次に、得られたデータの“鎌田豊”を“山田俊昭”でマ
ージするとともに、U−KEYとして新規な値(000
005)を設定して図19に示すような新レコードを作
成する。そして、この新レコードに基づいて、実テーブ
ル17に対するINSERT文を発行する(ステップS
211)。この場合におけるSQL文の具体的内容は、
以下のようになる。
【0134】INSERT INTO SCHEMA
2,TABLE2 (開発会社,事業部,担当課,開発者,U−KEY) VALUES(富士通,1開発部,2開発課,山田俊
昭,000005) これにより、実テーブル17の内容は、図20に示す様
に更新される。 <挿入の場合の具体例2>この具体例説明の前提とし
て、更新前の状態において、実テーブル17の状態は図
20に示す通りであるとする。
2,TABLE2 (開発会社,事業部,担当課,開発者,U−KEY) VALUES(富士通,1開発部,2開発課,山田俊
昭,000005) これにより、実テーブル17の内容は、図20に示す様
に更新される。 <挿入の場合の具体例2>この具体例説明の前提とし
て、更新前の状態において、実テーブル17の状態は図
20に示す通りであるとする。
【0135】いま、ネットワークデータベース1上のア
ドレスb2に存在するデータ“1開発部”に、下位デー
タとして“教育課”を追加したが、それに所属する者が
未だ決まっていないとする。その場合に作成される更新
ログは、図21に示す通りの構成である。この図21に
おいて、“INSERT”は更新方法であり、“教育
課”は更新後のデータの実体値であり、“c4”は自ア
ドレスであり、“b2”は上位アドレスである。
ドレスb2に存在するデータ“1開発部”に、下位デー
タとして“教育課”を追加したが、それに所属する者が
未だ決まっていないとする。その場合に作成される更新
ログは、図21に示す通りの構成である。この図21に
おいて、“INSERT”は更新方法であり、“教育
課”は更新後のデータの実体値であり、“c4”は自ア
ドレスであり、“b2”は上位アドレスである。
【0136】最初にこの更新ログを元にMAP情報ファ
イル8を検索し、上位アドレスのアドレステーブル16
上でのカラム名と、自アドレスの実テーブル17上での
カラム名の情報を得る(ステップS102,103)。
その結果、上位アドレスのアドレステーブル16上での
カラム名は“B−PGCS”であり自アドレスの実テー
ブル17上でのカラム名は“担当課”であることが認識
される。
イル8を検索し、上位アドレスのアドレステーブル16
上でのカラム名と、自アドレスの実テーブル17上での
カラム名の情報を得る(ステップS102,103)。
その結果、上位アドレスのアドレステーブル16上での
カラム名は“B−PGCS”であり自アドレスの実テー
ブル17上でのカラム名は“担当課”であることが認識
される。
【0137】次に、この更新ログに基づいて、カーソル
をオープンする(ステップS204)。このこの場合に
おけるSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1,SCHEMA2,TABLE2 WHERE B−PGCS = b2 AND S−KEY = U−KEY 次に、このカーソルを実行する(ステップS205)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
をオープンする(ステップS204)。このこの場合に
おけるSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1,SCHEMA2,TABLE2 WHERE B−PGCS = b2 AND S−KEY = U−KEY 次に、このカーソルを実行する(ステップS205)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0138】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,S−KEY, 開発会社,事業部,担当課,
開発者,U−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,S−KEY, 開発会社,事業部,担当課,
開発者,U−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0139】“a1,b2,c3,d4,00000
1,富士通,1開発部,2開発課,鎌田豊,00000
1(図22参照)” このデータが得られると、ステップS207からステッ
プS210に進み、このデータに基づいてアドレステー
ブル16に対するINSERT文を発行する(ステップ
S210)。この場合には、“c3”を“c4”でマー
ジし、“d4”に“NUL”を設定するとともに、S−
KEYとして新規な値(000006)を設定する。即
ち、この場合におけるSQL文の具体的内容は、以下の
ようになる。
1,富士通,1開発部,2開発課,鎌田豊,00000
1(図22参照)” このデータが得られると、ステップS207からステッ
プS210に進み、このデータに基づいてアドレステー
ブル16に対するINSERT文を発行する(ステップ
S210)。この場合には、“c3”を“c4”でマー
ジし、“d4”に“NUL”を設定するとともに、S−
KEYとして新規な値(000006)を設定する。即
ち、この場合におけるSQL文の具体的内容は、以下の
ようになる。
【0140】INSERT INTO SCHEMA
1,TABLE1 (A−PGSC,B−PGSC,C−PGSC,D−P
GSC,S−KEY) VALUES(a1,b2,c4,NUL,00000
6) 次に、得られたデータの“2開発課”を“教育課”でマ
ージし、“鎌田豊”を“NUL”でマージするととも
に、U−KEYとして新規な値(000006)を設定
して図23に示すような新レコードを作成する。そし
て、この新レコードに基づいて、実テーブル17に対す
るINSERT文を発行する(ステップS211)。こ
のこの場合におけるSQL文の具体的内容は、以下のよ
うになる。
1,TABLE1 (A−PGSC,B−PGSC,C−PGSC,D−P
GSC,S−KEY) VALUES(a1,b2,c4,NUL,00000
6) 次に、得られたデータの“2開発課”を“教育課”でマ
ージし、“鎌田豊”を“NUL”でマージするととも
に、U−KEYとして新規な値(000006)を設定
して図23に示すような新レコードを作成する。そし
て、この新レコードに基づいて、実テーブル17に対す
るINSERT文を発行する(ステップS211)。こ
のこの場合におけるSQL文の具体的内容は、以下のよ
うになる。
【0141】INSERT INTO SCHEMA
2,TABLE2 (開発会社,事業部,担当課,開発者,U−KEY) VALUES(富士通,1開発部,教育課,NUL,0
00006) これこれにより、実テーブル17の内容は、図24に示
す様に更新される。 <削除の場合の具体例>この具体例説明の前提として、
更新前の状態において、実テーブル17の状態は図24
に示す通りであるとする。
2,TABLE2 (開発会社,事業部,担当課,開発者,U−KEY) VALUES(富士通,1開発部,教育課,NUL,0
00006) これこれにより、実テーブル17の内容は、図24に示
す様に更新される。 <削除の場合の具体例>この具体例説明の前提として、
更新前の状態において、実テーブル17の状態は図24
に示す通りであるとする。
【0142】いま、ネットワークデータベース1上のア
ドレスc1に存在するデータ“3推進室”を削除したと
する。その場合には、同時に、“3推進室”の子データ
である“小田康貴(アドレス:d1)”及び“A.SE
NNA(アドレス:d2)”も削除される。従って、こ
の場合には、図25に示す様に3つの更新ログが作成さ
れる。図25Iにおいて、“DELETE”は更新方法
であり、“−(NUL)”は更新後のデータの実体値で
あり、“d2”は自アドレスであり、“c1”は上位ア
ドレスである。図25IIにおいて、“DELETE”
は更新方法であり、“−(NUL)”は更新後のデータ
の実体値であり、“d1”は自アドレスであり、“c
1”は上位アドレスである。図25IIIにおいて、
“DELETE”は更新方法であり、“−(NUL)”
は更新後のデータの実体値であり、“c1”は自アドレ
スであり、“b1”は上位アドレスである。 〔更新ログIによる処理〕最初にこの更新ログIを元に
MAP情報ファイル8を検索し、上位アドレスと自アド
レスのアドレステーブル16上でのカラム名と、上位ア
ドレスと自アドレスの実テーブル17上でのカラム名の
情報を得る(ステップS102,103)。その結果、
アドレステーブル16上のカラム名は上位アドレスが
“C−PGCS”であり自アドレスが“D−PGCS”
であり、実テーブル17上のカラム名は上位アドレスが
“担当課”であり自アドレスが“開発者”であることが
認識される。
ドレスc1に存在するデータ“3推進室”を削除したと
する。その場合には、同時に、“3推進室”の子データ
である“小田康貴(アドレス:d1)”及び“A.SE
NNA(アドレス:d2)”も削除される。従って、こ
の場合には、図25に示す様に3つの更新ログが作成さ
れる。図25Iにおいて、“DELETE”は更新方法
であり、“−(NUL)”は更新後のデータの実体値で
あり、“d2”は自アドレスであり、“c1”は上位ア
ドレスである。図25IIにおいて、“DELETE”
は更新方法であり、“−(NUL)”は更新後のデータ
の実体値であり、“d1”は自アドレスであり、“c
1”は上位アドレスである。図25IIIにおいて、
“DELETE”は更新方法であり、“−(NUL)”
は更新後のデータの実体値であり、“c1”は自アドレ
スであり、“b1”は上位アドレスである。 〔更新ログIによる処理〕最初にこの更新ログIを元に
MAP情報ファイル8を検索し、上位アドレスと自アド
レスのアドレステーブル16上でのカラム名と、上位ア
ドレスと自アドレスの実テーブル17上でのカラム名の
情報を得る(ステップS102,103)。その結果、
アドレステーブル16上のカラム名は上位アドレスが
“C−PGCS”であり自アドレスが“D−PGCS”
であり、実テーブル17上のカラム名は上位アドレスが
“担当課”であり自アドレスが“開発者”であることが
認識される。
【0143】この更新ログIによれば、更新対象データ
(“A.SENNA”)は最上位階層ではなく、且つ上
位PGCS値は確定しているので、ステップS401及
びステップS402を通ってステップS408に進む。
このステップS408では、更新ログIに基づいて、カ
ーソルをオープンする。この場合におけるSQL文の具
体的内容は、以下のようになる。
(“A.SENNA”)は最上位階層ではなく、且つ上
位PGCS値は確定しているので、ステップS401及
びステップS402を通ってステップS408に進む。
このステップS408では、更新ログIに基づいて、カ
ーソルをオープンする。この場合におけるSQL文の具
体的内容は、以下のようになる。
【0144】OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE C−PGCS = c1 AND NOT D−PGCS = d2 次に、このカーソルを実行する(ステップS409)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
LE1 WHERE C−PGCS = c1 AND NOT D−PGCS = d2 次に、このカーソルを実行する(ステップS409)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0145】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0146】 “a1,b1,c1,d1,000002” この結果、更新ログIによって現在削除対象となってい
るレコード以外にも“3推進室”配下のレコードタイプ
が存在することが確認できた。よって、今回更新対象の
レコードを削除するために、処理をステップS411か
らステップS413に進める。ステップS413のサブ
ルーチン(図11)では、最初に、更新ログIに基づい
て、カーソルをオープンする(ステップS501)。こ
の場合におけるSQL文の具体的内容は、以下のように
なる。
るレコード以外にも“3推進室”配下のレコードタイプ
が存在することが確認できた。よって、今回更新対象の
レコードを削除するために、処理をステップS411か
らステップS413に進める。ステップS413のサブ
ルーチン(図11)では、最初に、更新ログIに基づい
て、カーソルをオープンする(ステップS501)。こ
の場合におけるSQL文の具体的内容は、以下のように
なる。
【0147】OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE D−PGCS = d2 次に、このカーソルを実行する(ステップS502)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
LE1 WHERE D−PGCS = d2 次に、このカーソルを実行する(ステップS502)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0148】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0149】 “a1,b1,c1,d2,000003” このデータが得られると、ステップS503からステッ
プS504に進み、このデータに基づいて実テーブル1
7に対するDELETE文を発行する(ステップS50
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
プS504に進み、このデータに基づいて実テーブル1
7に対するDELETE文を発行する(ステップS50
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
【0150】 DELETE SCHEMA2,TABLE2 WHERE U−KEY = 000003 これにより、実テーブル17の内容は、図26に示す様
に更新される。
に更新される。
【0151】続いて、FETCH文により得られたデー
タに基づいてアドレステーブル16に対するDELET
E文を発行する(ステップS505)。この場合におけ
るSQL文の具体的内容は、以下のようになる。
タに基づいてアドレステーブル16に対するDELET
E文を発行する(ステップS505)。この場合におけ
るSQL文の具体的内容は、以下のようになる。
【0152】 DELETE SCHEMA1,TABLE1 WHERE CURRENT OF CUR1 〔更新ログIIによる処理〕続いて更新ログIIによる
処理を行う。
処理を行う。
【0153】最初にこの更新ログIIを元にMAP情報
ファイル8を検索し、上位アドレスと自アドレスのアド
レステーブル16上でのカラム名と、上位アドレスと自
アドレスの実テーブル17上でのカラム名の情報を得る
(ステップS102,103)。その結果、アドレステ
ーブル16上のカラム名は上位アドレスが“C−PGC
S”であり自アドレスが“D−PGCS”であり、実テ
ーブル17上のカラム名は上位アドレスが“担当課”で
あり自アドレスが“開発者”であることが認識される。
ファイル8を検索し、上位アドレスと自アドレスのアド
レステーブル16上でのカラム名と、上位アドレスと自
アドレスの実テーブル17上でのカラム名の情報を得る
(ステップS102,103)。その結果、アドレステ
ーブル16上のカラム名は上位アドレスが“C−PGC
S”であり自アドレスが“D−PGCS”であり、実テ
ーブル17上のカラム名は上位アドレスが“担当課”で
あり自アドレスが“開発者”であることが認識される。
【0154】この更新ログIIによれば、更新対象デー
タ(“小田康貴”)は最上位階層ではなく、且つ上位P
GCS値は確定しているので、ステップS401及びス
テップS402を通ってステップS408に進む。この
ステップS408では、更新ログIIに基づいて、カー
ソルをオープンする。この場合におけるSQL文の具体
的内容は、以下のようになる。
タ(“小田康貴”)は最上位階層ではなく、且つ上位P
GCS値は確定しているので、ステップS401及びス
テップS402を通ってステップS408に進む。この
ステップS408では、更新ログIIに基づいて、カー
ソルをオープンする。この場合におけるSQL文の具体
的内容は、以下のようになる。
【0155】OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE C−PGCS = c1 AND NOT D−PGCS = d1 次に、このカーソルを実行する(ステップS409)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
LE1 WHERE C−PGCS = c1 AND NOT D−PGCS = d1 次に、このカーソルを実行する(ステップS409)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0156】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0157】“AT−END(SQLSTATE020
00:データなし)” この結果、更新ログIによって現在削除対象となってい
るレコード以外には“3推進室”配下のレコードタイプ
が存在しないことが確認できた。よって、今回更新対象
のデータにNULを設定するために、処理をステップS
411からステップS412に進める。ステップS41
2のサブルーチン(図12)では、最初に、更新ログI
Iに基づいて、カーソルをオープンする(ステップS6
01)。この場合におけるSQL文の具体的内容は、以
下のようになる。
00:データなし)” この結果、更新ログIによって現在削除対象となってい
るレコード以外には“3推進室”配下のレコードタイプ
が存在しないことが確認できた。よって、今回更新対象
のデータにNULを設定するために、処理をステップS
411からステップS412に進める。ステップS41
2のサブルーチン(図12)では、最初に、更新ログI
Iに基づいて、カーソルをオープンする(ステップS6
01)。この場合におけるSQL文の具体的内容は、以
下のようになる。
【0158】OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE D−PGCS = d1 次に、このカーソルを実行する(ステップS502)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
LE1 WHERE D−PGCS = d1 次に、このカーソルを実行する(ステップS502)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0159】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0160】 “a1,b1,c1,d1,000002” このデータが得られると、ステップS603からステッ
プS604に進み、このデータに基づいて実テーブル1
7に対するUPDATE文を発行する(ステップS60
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
プS604に進み、このデータに基づいて実テーブル1
7に対するUPDATE文を発行する(ステップS60
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
【0161】 UPDATE SCHEMA2,TABLE2 SET 開発者 = NUL WHERE U−KEY = 000002 これにより、実テーブル17の内容は、図27に示す様
に更新される。
に更新される。
【0162】続いて、FETCH文により得られたデー
タに基づいてアドレステーブル16に対するDELET
E文を発行する(ステップS605)。この場合におけ
るSQL文の具体的内容は、以下のようになる。
タに基づいてアドレステーブル16に対するDELET
E文を発行する(ステップS605)。この場合におけ
るSQL文の具体的内容は、以下のようになる。
【0163】 UPDATE SCHEMA1,TABLE1 SET D−PGCS = NUL WHERE CURRENT OF CUR1 これにより、アドレステーブル16の内容は、図28に
示す様に更新される。 〔更新ログIIIによる処理〕続いて更新ログIIIに
よる処理を行う。
示す様に更新される。 〔更新ログIIIによる処理〕続いて更新ログIIIに
よる処理を行う。
【0164】最初にこの更新ログIIIを元にMAP情
報ファイル8を検索し、上位アドレスと自アドレスのア
ドレステーブル16上でのカラム名と、上位アドレスと
自アドレスの実テーブル17上でのカラム名の情報を得
る(ステップS102,103)。その結果、アドレス
テーブル16上のカラム名は上位アドレスが“B−PG
CS”であり自アドレスが“C−PGCS”であり、実
テーブル17上のカラム名は上位アドレスが“事業部”
であり自アドレスが“担当課”であることが認識され
る。
報ファイル8を検索し、上位アドレスと自アドレスのア
ドレステーブル16上でのカラム名と、上位アドレスと
自アドレスの実テーブル17上でのカラム名の情報を得
る(ステップS102,103)。その結果、アドレス
テーブル16上のカラム名は上位アドレスが“B−PG
CS”であり自アドレスが“C−PGCS”であり、実
テーブル17上のカラム名は上位アドレスが“事業部”
であり自アドレスが“担当課”であることが認識され
る。
【0165】この更新ログIIIによれば、更新対象デ
ータ(“3推進室”)は最上位階層ではなく、且つ上位
PGCS値は確定しているので、ステップS401及び
ステップS402を通ってステップS408に進む。こ
のステップS408では、更新ログIIIに基づいて、
カーソルをオープンする。この場合におけるSQL文の
具体的内容は、以下のようになる。
ータ(“3推進室”)は最上位階層ではなく、且つ上位
PGCS値は確定しているので、ステップS401及び
ステップS402を通ってステップS408に進む。こ
のステップS408では、更新ログIIIに基づいて、
カーソルをオープンする。この場合におけるSQL文の
具体的内容は、以下のようになる。
【0166】OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE B−PGCS = b1 AND NOT C−PGCS = c1 次に、このカーソルを実行する(ステップS409)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
LE1 WHERE B−PGCS = b1 AND NOT C−PGCS = c1 次に、このカーソルを実行する(ステップS409)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0167】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0168】 “a1,b1,c2,d3,000004” この結果、更新ログIIIによって現在削除対象となっ
ているレコード以外にも“2開発部”配下のレコードタ
イプが存在することが確認できた。よって、今回更新対
象のレコードを削除するために、処理をステップS41
1からステップS413に進める。ステップS413の
サブルーチン(図11)では、最初に、更新ログIII
に基づいて、カーソルをオープンする(ステップS50
1)。この場合におけるSQL文の具体的内容は、以下
のようになる。
ているレコード以外にも“2開発部”配下のレコードタ
イプが存在することが確認できた。よって、今回更新対
象のレコードを削除するために、処理をステップS41
1からステップS413に進める。ステップS413の
サブルーチン(図11)では、最初に、更新ログIII
に基づいて、カーソルをオープンする(ステップS50
1)。この場合におけるSQL文の具体的内容は、以下
のようになる。
【0169】OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1 WHERE C−PGCS = c2 次に、このカーソルを実行する(ステップS502)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
LE1 WHERE C−PGCS = c2 次に、このカーソルを実行する(ステップS502)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0170】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,D−PGCS,S−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0171】 “a1,b1,c1,NUL,000002” このデータが得られると、ステップS503からステッ
プS504に進み、このデータに基づいて実テーブル1
7に対するDELETE文を発行する(ステップS50
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
プS504に進み、このデータに基づいて実テーブル1
7に対するDELETE文を発行する(ステップS50
4)。この場合におけるSQL文の具体的内容は、以下
のようになる。
【0172】 DELETE SCHEMA2,TABLE2 WHERE U−KEY = 000002 これにより、実テーブル17の内容は、図29に示す様
に更新される。
に更新される。
【0173】続いて、FETCH文により得られたデー
タに基づいてアドレステーブル16に対するDELET
E文を発行する(ステップS505)。この場合におけ
るSQL文の具体的内容は、以下のようになる。
タに基づいてアドレステーブル16に対するDELET
E文を発行する(ステップS505)。この場合におけ
るSQL文の具体的内容は、以下のようになる。
【0174】 DELETE SCHEMA1,TABLE1 WHERE CURRENT OF CUR1 これにより、アドレステーブル16の内容は、図30に
示す様に更新される。 <挿入の場合の具体例3>この具体例説明の前提とし
て、更新前の状態において、アドレステーブル16の状
態は図30に示す通りであり、実テーブル17の状態は
図29に示す通りであるとする。
示す様に更新される。 <挿入の場合の具体例3>この具体例説明の前提とし
て、更新前の状態において、アドレステーブル16の状
態は図30に示す通りであり、実テーブル17の状態は
図29に示す通りであるとする。
【0175】いま、ネットワークデータベース1上のア
ドレスc4に存在するデータ“教育課”に、下位データ
として“正富勝利”を追加したとする。その場合に作成
される更新ログは、図31に示す通りの構成である。こ
の図31において、“INSERT”は更新方法であ
り、“正富勝利”は更新後のデータの実体値であり、
“d6”は自アドレスであり、“c4”は上位アドレス
である。
ドレスc4に存在するデータ“教育課”に、下位データ
として“正富勝利”を追加したとする。その場合に作成
される更新ログは、図31に示す通りの構成である。こ
の図31において、“INSERT”は更新方法であ
り、“正富勝利”は更新後のデータの実体値であり、
“d6”は自アドレスであり、“c4”は上位アドレス
である。
【0176】最初にこの更新ログを元にMAP情報ファ
イル8を検索し、上位アドレスのアドレステーブル16
上でのカラム名と、自アドレスの実テーブル17上での
カラム名の情報を得る(ステップS102,103)。
その結果、上位アドレスのアドレステーブル16上での
カラム名は“C−PGCS”であり自アドレスの実テー
ブル17上でのカラム名は“開発者”であることが認識
される。
イル8を検索し、上位アドレスのアドレステーブル16
上でのカラム名と、自アドレスの実テーブル17上での
カラム名の情報を得る(ステップS102,103)。
その結果、上位アドレスのアドレステーブル16上での
カラム名は“C−PGCS”であり自アドレスの実テー
ブル17上でのカラム名は“開発者”であることが認識
される。
【0177】次に、この更新ログに基づいて、カーソル
をオープンする(ステップS204)。この場合におけ
るSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1,SCHEMA2,TABLE2 WHERE C−PGCS = c4 AND S−KEY = U−KEY 次に、このカーソルを実行する(ステップS205)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
をオープンする(ステップS204)。この場合におけ
るSQL文の具体的内容は、以下のようになる。 OPEN CUR1 SELECT * FROM SCHEMA1,TAB
LE1,SCHEMA2,TABLE2 WHERE C−PGCS = c4 AND S−KEY = U−KEY 次に、このカーソルを実行する(ステップS205)。
この場合におけるSQL文の具体的内容は、以下の様に
なる。
【0178】FETCH CUR1 INTO A−PGCS,B−PGCS,C−PGC
S,S−KEY, 開発会社,事業部,担当課,
開発者,U−KEY このFETCH文発行の結果として、以下のデータが有
られる。
S,S−KEY, 開発会社,事業部,担当課,
開発者,U−KEY このFETCH文発行の結果として、以下のデータが有
られる。
【0179】“a1,b2,c4,NUL,00000
6,富士通,1開発部,教育課,NUL,000006
(図32参照)” このデータが得られると、ステップS207では検索結
果が欠測値を持っていると判断される。よって、ステッ
プS207からステップS208に進み、このデータに
基づいて実テーブル17に対するUPDATE文を発行
する(ステップS208)。この場合には、得られたデ
ータ“NUL”を“正富勝利”でマージする。即ち、こ
の場合におけるSQL文の具体的内容は、以下のように
なる。
6,富士通,1開発部,教育課,NUL,000006
(図32参照)” このデータが得られると、ステップS207では検索結
果が欠測値を持っていると判断される。よって、ステッ
プS207からステップS208に進み、このデータに
基づいて実テーブル17に対するUPDATE文を発行
する(ステップS208)。この場合には、得られたデ
ータ“NUL”を“正富勝利”でマージする。即ち、こ
の場合におけるSQL文の具体的内容は、以下のように
なる。
【0180】 UPDATE SCHEMA2,TABLE2 SET 開発者 = 正富勝利 WHERE U−KEY = 000006 これにより、実テーブル17の内容は、図33に示す様
に更新される。
に更新される。
【0181】次に、アドレステーブル16に対しても同
様に、得られたデータに基づいてUPDATE文を発行
する(ステップS209)。この場合には、“NUL”
を“d6”でマージする。この場合におけるSQL文の
具体的内容は、以下のようになる。
様に、得られたデータに基づいてUPDATE文を発行
する(ステップS209)。この場合には、“NUL”
を“d6”でマージする。この場合におけるSQL文の
具体的内容は、以下のようになる。
【0182】 UPDATE SCHEMA1,SCHEMA1 SET D−PGCS = d6 WHERE C−PGCS = c4 これにより、アドレステーブル16の内容は、図34に
示す様に更新される。
示す様に更新される。
【0183】以上のように、本実施例によれば、更新ロ
グから更新情報を抽出することにより、実テーブル17
中の必要な部分にだけ更新を行うことができる。
グから更新情報を抽出することにより、実テーブル17
中の必要な部分にだけ更新を行うことができる。
【0184】
【実施例2】図35乃至図37は、本発明によるデータ
ベースシステムの第2実施例を示す。この第2実施例で
は、ユニーク性表示部としての一意性保障キーの構造が
第1実施例と異なるのみである。従って、第2実施例の
システム構成は第1実施例と全く同じである。また、第
1実施例の処理フローの説明における“S−KEY”及
び“U−KEY”の両方を“LINK”に置き換えるこ
とにより、第1実施例の処理フローを第2実施例の処理
フローと看做すことができる。よって、ここでは、ネッ
トワークデータベース1,アドレステーブル16,実テ
ーブル17のみの説明を行う。 <ネットワークデータベース1のデータ構成>図35
は、ネットワークデータベース1内のデータ構造の例を
示す図である。図35に示すように、ネットワークデー
タベース1内において、各データは、階層構造となるよ
うに相互に関連付けられている。即ち、最上位階層(1
階層)のデータの実体値が“A(アドレス値=a1)”
となっている。また、2階層目のデータの実体値値が
“B(アドレス値=b1)”及び“E(アドレス値=b
2)”となっている。また、3階層目データの実体値が
“C(アドレス値=c1)”,“D(アドレス値=c
2)”,及び“F(アドレス値=c3)”となってい
る。
ベースシステムの第2実施例を示す。この第2実施例で
は、ユニーク性表示部としての一意性保障キーの構造が
第1実施例と異なるのみである。従って、第2実施例の
システム構成は第1実施例と全く同じである。また、第
1実施例の処理フローの説明における“S−KEY”及
び“U−KEY”の両方を“LINK”に置き換えるこ
とにより、第1実施例の処理フローを第2実施例の処理
フローと看做すことができる。よって、ここでは、ネッ
トワークデータベース1,アドレステーブル16,実テ
ーブル17のみの説明を行う。 <ネットワークデータベース1のデータ構成>図35
は、ネットワークデータベース1内のデータ構造の例を
示す図である。図35に示すように、ネットワークデー
タベース1内において、各データは、階層構造となるよ
うに相互に関連付けられている。即ち、最上位階層(1
階層)のデータの実体値が“A(アドレス値=a1)”
となっている。また、2階層目のデータの実体値値が
“B(アドレス値=b1)”及び“E(アドレス値=b
2)”となっている。また、3階層目データの実体値が
“C(アドレス値=c1)”,“D(アドレス値=c
2)”,及び“F(アドレス値=c3)”となってい
る。
【0185】なお、本実施例では、上述したようにオー
ナ位置のデータが一つ(“A”)だけであり、かつ、下
位階層のデータは唯1つの上位階層のデータ(親デー
タ)に対して関連付けられている。即ち、逆ツリー
(木)型の構造となっている。このツリーの枝,即ちオ
ーナ位置のデータから特定の最下位層のデータに至るま
での繋がりの各々を、レコードという。 <アドレステーブル16のデータ構造>図36(b)は
アドレステーブル16内のデータ構造の例を示す図であ
る。このアドレステーブル16は、リレーショナルデー
タベース11内に追加されたテーブルである。アドレス
テーブル16は、ネットワークデータベース1の更新に
先立つ初期抽出時に、ネットワークデータベース1の各
レコードタイプ(データ)のアドレス値を元にして作成
される。
ナ位置のデータが一つ(“A”)だけであり、かつ、下
位階層のデータは唯1つの上位階層のデータ(親デー
タ)に対して関連付けられている。即ち、逆ツリー
(木)型の構造となっている。このツリーの枝,即ちオ
ーナ位置のデータから特定の最下位層のデータに至るま
での繋がりの各々を、レコードという。 <アドレステーブル16のデータ構造>図36(b)は
アドレステーブル16内のデータ構造の例を示す図であ
る。このアドレステーブル16は、リレーショナルデー
タベース11内に追加されたテーブルである。アドレス
テーブル16は、ネットワークデータベース1の更新に
先立つ初期抽出時に、ネットワークデータベース1の各
レコードタイプ(データ)のアドレス値を元にして作成
される。
【0186】アドレステーブル16は、行がレコードを
示し列がカラムを示す2次元の表構成となっている。ア
ドレステーブル16の各レコードは、ネットワークデー
タベース1のレコードの何れかに対応している。アドレ
ステーブル16の各カラムのうち「カラムI」,がネッ
トワークデータベース1の1階層に対応し、「カラムI
I」が2階層に対応し、「カラムIII」が3階層に対
応している。また、「LINK」と名付けられたカラム
は、ユニーク性表示部としての一意性保障カラムであ
る。
示し列がカラムを示す2次元の表構成となっている。ア
ドレステーブル16の各レコードは、ネットワークデー
タベース1のレコードの何れかに対応している。アドレ
ステーブル16の各カラムのうち「カラムI」,がネッ
トワークデータベース1の1階層に対応し、「カラムI
I」が2階層に対応し、「カラムIII」が3階層に対
応している。また、「LINK」と名付けられたカラム
は、ユニーク性表示部としての一意性保障カラムであ
る。
【0187】アドレステーブル16に書き込まれる情報
は、そのレコード及びカラムに対応するネットワークデ
ータベース1内の位置に書き込まれているデータのアド
レス値である。アドレステーブル16のレコード数はネ
ットワークデータベース1のレコード数に一致している
ので、同じアドレス値が複数のレコードに重複して書き
込まれている。
は、そのレコード及びカラムに対応するネットワークデ
ータベース1内の位置に書き込まれているデータのアド
レス値である。アドレステーブル16のレコード数はネ
ットワークデータベース1のレコード数に一致している
ので、同じアドレス値が複数のレコードに重複して書き
込まれている。
【0188】LINKカラムに書き込まれている情報
は、そのレコードに含まれる全データのアドレスを一連
に繋げた値である。 <実テーブル17(ユーザテーブル)のデータ構造>図
36(a)は実テーブル17内のデータ構造の例を示す
図である。実テーブル17は、本来のリレーショナルデ
ータベースとして実体値を保持するテーブルである。
は、そのレコードに含まれる全データのアドレスを一連
に繋げた値である。 <実テーブル17(ユーザテーブル)のデータ構造>図
36(a)は実テーブル17内のデータ構造の例を示す
図である。実テーブル17は、本来のリレーショナルデ
ータベースとして実体値を保持するテーブルである。
【0189】この実テーブル17は、行がレコードを示
し列がカラムを示す2次元の表構成となっている。実テ
ーブル17の各レコードは、ネットワークデータベース
1の各レコードの何れかに対応している。但し、その順
番をデータテーブルの場合の順番と一致させる必要はな
い。アドレステーブル16の各カラムのうち「アドレス
I」がネットワークデータベース1の1階層に対応し、
「アドレスII」が2階層に対応し、「アドレスII
I」が3階層に対応する。また、「U−KEY」と名付
けられたカラムは、ユニーク性表示部としての一意性保
障カラムである。
し列がカラムを示す2次元の表構成となっている。実テ
ーブル17の各レコードは、ネットワークデータベース
1の各レコードの何れかに対応している。但し、その順
番をデータテーブルの場合の順番と一致させる必要はな
い。アドレステーブル16の各カラムのうち「アドレス
I」がネットワークデータベース1の1階層に対応し、
「アドレスII」が2階層に対応し、「アドレスII
I」が3階層に対応する。また、「U−KEY」と名付
けられたカラムは、ユニーク性表示部としての一意性保
障カラムである。
【0190】実テーブル17に書き込まれる情報は、そ
のレコード及びカラムに対応するネットワークデータベ
ース1内の位置に書き込まれている実体値そのものであ
る。実テーブル17のレコード数はネットワークデータ
ベース1のレコード数に一致しているので、同じ実体値
が複数のレコードに重複して書き込まれている。
のレコード及びカラムに対応するネットワークデータベ
ース1内の位置に書き込まれている実体値そのものであ
る。実テーブル17のレコード数はネットワークデータ
ベース1のレコード数に一致しているので、同じ実体値
が複数のレコードに重複して書き込まれている。
【0191】LINKカラムに書き込まれている情報
は、そのレコードに含まれる全データのアドレスを一連
に繋げた値である。ネットワークデータベース1の同じ
レコードに対応しているアドレステーブル16のレコー
ドと実テーブル17のレコードには、各々同じ値が付さ
れている。従って、アドレステーブル16のLINKカ
ラムの値(LINKキー)と実テーブル17のLINK
カラムとの値(LINKキー)を突き合わせることによ
り、図36に示すように、或るアドレステーブル16の
レコードに対応する実テーブル17のレコードを特定す
ることができる。 <更新の概略説明>本実施例による処理は、原則として
第1実施例の処理フローに従ってなされる。よって、こ
こでは、その場合の更新の概略例を説明するに止める。
は、そのレコードに含まれる全データのアドレスを一連
に繋げた値である。ネットワークデータベース1の同じ
レコードに対応しているアドレステーブル16のレコー
ドと実テーブル17のレコードには、各々同じ値が付さ
れている。従って、アドレステーブル16のLINKカ
ラムの値(LINKキー)と実テーブル17のLINK
カラムとの値(LINKキー)を突き合わせることによ
り、図36に示すように、或るアドレステーブル16の
レコードに対応する実テーブル17のレコードを特定す
ることができる。 <更新の概略説明>本実施例による処理は、原則として
第1実施例の処理フローに従ってなされる。よって、こ
こでは、その場合の更新の概略例を説明するに止める。
【0192】いま、ネットワークデータベース1上のレ
コードタイプBのデータがB+に変更されたとする。す
ると更新ログとして以下のものが抽出される。 自アドレス:b1 データ(実体値):B+ 更新方法:UPDATE この更新ログを受信したネットワークデータベース1で
は、データの変更を行うと決定する。そして、アドレス
テーブル16を検索して、自アドレス=b1のレコード
のLINKキーを探し出す。その結果、LINKキー=
a1b1c2の情報を得た。
コードタイプBのデータがB+に変更されたとする。す
ると更新ログとして以下のものが抽出される。 自アドレス:b1 データ(実体値):B+ 更新方法:UPDATE この更新ログを受信したネットワークデータベース1で
は、データの変更を行うと決定する。そして、アドレス
テーブル16を検索して、自アドレス=b1のレコード
のLINKキーを探し出す。その結果、LINKキー=
a1b1c2の情報を得た。
【0193】次に、LINKキーが上記値と一致してい
るレコードを、実テーブル17から探し出す。そして、
そのレコードのレコードタイプBにあたるカラムの情報
をB+に変更する。このようにして、実テーブル17の
内容は、図37に示すように更新される。
るレコードを、実テーブル17から探し出す。そして、
そのレコードのレコードタイプBにあたるカラムの情報
をB+に変更する。このようにして、実テーブル17の
内容は、図37に示すように更新される。
【0194】
【発明の効果】本発明の必須の構成要素により、ネット
ワークデータベースにおけるデータ更新の内容を迅速に
リレーショナルデータベースに反映することができる。
又は、ネットワークデータベースにおけるデータ更新の
内容を、リレーショナルデータベースの一部の更新のみ
でリレーショナルデータベースに反映することができ
る。
ワークデータベースにおけるデータ更新の内容を迅速に
リレーショナルデータベースに反映することができる。
又は、ネットワークデータベースにおけるデータ更新の
内容を、リレーショナルデータベースの一部の更新のみ
でリレーショナルデータベースに反映することができ
る。
【図1】 本発明の原理図であり、(a)はシステム
の原理図であり、(b)乃至(d)は方法の原理図
の原理図であり、(b)乃至(d)は方法の原理図
【図2】 本発明の第1実施例によるデータベースシ
ステムの構成図
ステムの構成図
【図3】 図2におけるネットワークデータベースの
説明図
説明図
【図4】 図2におけるアドレステーブルの説明図
【図5】 図2における実テーブルの説明図
【図6】 図2における更新部で実行される更新タス
クの処理を示すフローチャート
クの処理を示すフローチャート
【図7】 図6のステップS107で実行されるST
OREマクロ処理のサブルーチンを示すフローチャート
OREマクロ処理のサブルーチンを示すフローチャート
【図8】 図6のステップS108で実行されるMO
DIFYマクロ処理のサブルーチンを示すフローチャー
ト
DIFYマクロ処理のサブルーチンを示すフローチャー
ト
【図9】 図6のステップS109で実行されるER
ASEマクロ処理のサブルーチンを示すフローチャート
ASEマクロ処理のサブルーチンを示すフローチャート
【図10】 図9のステップS402で上位PGCS値
が確定している場合に実行される処理を示すフローチャ
ート
が確定している場合に実行される処理を示すフローチャ
ート
【図11】 図9のステップS406又はステップS4
07,若しくは図10のステップS413で実行される
他メンバありの削除サブルーチンを示すフローチャート
07,若しくは図10のステップS413で実行される
他メンバありの削除サブルーチンを示すフローチャート
【図12】 図9のステップS405又は図10のステ
ップS412で実施される他メンバなしの削除サブルー
チンを示すフローチャート
ップS412で実施される他メンバなしの削除サブルー
チンを示すフローチャート
【図13】 図2の更新ログ作成部で作成される変更時
の更新ログの説明図
の更新ログの説明図
【図14】 図13の更新ログにより更新された実テー
ブルの説明図
ブルの説明図
【図15】 図2の更新ログ作成部で作成される変更時
の更新ログの説明図
の更新ログの説明図
【図16】 図15の更新ログにより更新された実テー
ブルの説明図
ブルの説明図
【図17】 図2の更新ログ作成部で作成される挿入時
の更新ログの説明図
の更新ログの説明図
【図18】 図15の更新ログにより獲得されたレコー
ドの説明図
ドの説明図
【図19】 図18のレコードから作成された新レコー
ドの説明図
ドの説明図
【図20】 図19の新レコードを追加して更新された
実テーブルの説明図
実テーブルの説明図
【図21】 図2の更新ログ作成部で作成される挿入時
の更新ログの説明図
の更新ログの説明図
【図22】 図21の更新ログにより獲得されたレコー
ドの説明図
ドの説明図
【図23】 図22のレコードから作成された新レコー
ドの説明図
ドの説明図
【図24】 図23の新レコードを追加して更新された
実テーブルの説明図
実テーブルの説明図
【図25】 図2の更新ログ作成部で作成される削除時
の更新ログの説明図
の更新ログの説明図
【図26】 図25Iの更新ログにより更新された実テ
ーブルの説明図
ーブルの説明図
【図27】 図25IIの更新ログにより更新された実
テーブルの説明図
テーブルの説明図
【図28】 図25IIの更新ログにより更新されたア
ドレステーブルの説明図
ドレステーブルの説明図
【図29】 図25IIIの更新ログにより更新された
実テーブルの説明図
実テーブルの説明図
【図30】 図25IIIの更新ログにより更新された
アドレステーブルの説明図
アドレステーブルの説明図
【図31】 図2の更新ログ作成部で作成される挿入時
の更新ログの説明図
の更新ログの説明図
【図32】 図31の更新ログにより獲得されたレコー
ドの説明図
ドの説明図
【図33】 図31の更新ログにより更新された実テー
ブルの説明図
ブルの説明図
【図34】 図31の更新ログにより更新されたアドレ
ステーブルの説明図
ステーブルの説明図
【図35】 本発明の第2実施例によるデータベースシ
ステムにおけるネットワークデータベースの説明図
ステムにおけるネットワークデータベースの説明図
【図36】 本発明の第2実施例によるデータベースシ
ステムにおける実テーブル(a)及びアドレステーブル
(b)の説明図
ステムにおける実テーブル(a)及びアドレステーブル
(b)の説明図
【図37】 更新後における図36に示した実テーブル
(a)及びアドレステーブル(b)の説明図
(a)及びアドレステーブル(b)の説明図
1 ネットワークデータベース 2 NDBマネージャ 3 履歴ログファイル 4 抽出部 6 更新ログ作成部 7 更新ログファイル 8 MAP情報ファイル 9 更新部 10 RDBマネージャ 11 リレーショナルデータベース 16 アドレステーブル 17 実テーブル
Claims (11)
- 【請求項1】データを階層形式で有するネットワークデ
ータベース(100)と、このネットワークデータベー
ス(100)のデータ階層に対応して各データを表形式
で格納するリレーショナルデータベース(101)と、
を備えたデータベースシステムにおいて、 前記ネットワークデータベース(100)の各データの
アドレスを上位データ階層から下位データ階層に至るレ
コード毎に行として表した表形式で格納するとともに、
前記各データのアドレス格納位置とリレーショナルデー
タベース(101)のデータ格納位置とを対応させたア
ドレステーブル(102)と、 前記ネットワークデータベース(100)のデータ更新
がなされたとき、その更新データのアドレス及び更新内
容を含む更新ログデータを獲得する更新ログデータ獲得
手段(103)と、 この更新ログデータ獲得手段(103)で獲得した更新
ログデータに従って前記アドレステーブルにおける更新
データのアドレス格納位置を検索するアドレス格納位置
検索手段(104)と、 このアドレス格納位置検索手段(104)で検索したア
ドレステーブル(102)上の更新データのアドレス格
納位置に対応するリレーショナルデータベース(10
1)上のデータの位置を特定する更新位置特定手段(1
05)と、 この更新位置特定手段(105)で特定されたリレーシ
ョナルデータベースデータ上の位置におけるデータを前
記更新ログデータに従って更新するデータ更新手段(1
06)とを備えたデータベースシステム。 - 【請求項2】前記リレーショナルデータベース(10
1)及び前記アドレステーブル(102)の両者にユニ
ーク性表示部を設け、前記リレーショナルデータベース
(101)の或る行におけるユニーク性表示部の値を、
この或る行に対応する前記アドレステーブル(102)
の行におけるユニーク性表示部の値に対応させた請求項
1記載のデータベースシステム。 - 【請求項3】前記ユニーク性表示部は、前記リレーショ
ナルデータベース(101)及び前記アドレステーブル
(102)の各々の特定の列に設けられている請求項2
記載のデータベースシステム。 - 【請求項4】前記データ更新手段(106)は、前記ネ
ットワークデータベース(100)におけるアドレス情
報の更新があった場合には、この更新内容に従って、前
記アドレステーブル(102)におけるアドレス情報を
更新する請求項1記載のデータベースシステム。 - 【請求項5】前記アドレス格納位置検索手段(104)
は、前記更新ログデータに含まれるアドレスに基づい
て、前記アドレスが含まれている前記アドレステーブル
(102)の行を検索する請求項1記載のデータベース
システム。 - 【請求項6】前記更新位置特定手段(105)は、前記
アドレス位置格納手段により検索された前記アドレステ
ーブル(102)の行に対応するリレーショナルデータ
ベースの行を特定し、更に前記更新ログデータに含まれ
るアドレスに基づいて列を特定する請求項5記載のデー
タベースシステム。 - 【請求項7】前記アドレステーブル(102)はその列
毎にカラム名を有するとともに、前記リレーショナルデ
ータベース(101)もその列毎にカラム名を有してい
る請求項6記載のデータベースシステム。 - 【請求項8】前記各アドレスと前記アドレステーブル
(102)のカラム名との対応関係を規定した情報テー
ブルを更に有し、 前記アドレス格納位置検索手段(104)は前記更新ロ
グデータに含まれるアドレスに対応する前記アドレステ
ーブル(102)上のカラム名を前記MAP情報テーブ
ルから獲得し、このカラム名と前記更新ログデータに含
まれるアドレスとから前記アドレステーブル(102)
の行を特定する請求項7記載のデータベースシステム。 - 【請求項9】前記各アドレスと前記リレーショナルデー
タベース(101)カラム名との対応関係を規定した情
報テーブルを更に有し、 前記更新位置特定手段(105)は前記更新ログデータ
に含まれるアドレスに対応する前記アドレステーブル
(102)上のカラム名を前記MAP情報テーブルから
獲得し、このカラム名と前記特定した行とからリレーシ
ョナルデータベース(101)上のデータの位置を特定
する請求項7記載のデータベースシステム。 - 【請求項10】前記更新ログデータを蓄積する更新ログ
ファイルを更に有する請求項1記載のデータベースシス
テム。 - 【請求項11】データを階層形式で有するネットワーク
データベース(100)と、このネットワークデータベ
ース(100)の上位データ階層から下位データ階層に
至るレコード毎に行として表した表形式により前記ネッ
トワークデータベース(100)と同じデータを格納す
るリレーショナルデータベース(101)とを合わせ持
つデータベースシステムの更新方法において、 前記各データのアドレスと前記リレーショナルデータベ
ース(101)のデータ位置とをアドレステーブル(1
02)により特定し、 前記ネットワークデータベース(100)のデータ更新
がなされたとき、更新データのアドレス及び更新内容を
含む更新ログデータを獲得し、 この更新ログデータに従って、前記アドレステーブル
(102)における更新データのアドレス格納位置を検
索し、 そのアドレス格納位置に対応するリレーショナルデータ
ベース(101)上のデータを特定し、 リレーショナルデータベース(101)上の特定された
データを前記更新ログデータに従って更新するデータベ
ースシステムの更新方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6033930A JPH07244605A (ja) | 1994-03-03 | 1994-03-03 | データベースシステム及びその更新方法 |
US08/372,010 US5764978A (en) | 1994-03-03 | 1995-01-12 | Database system having a hierarchical network database and a corresponding relational database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6033930A JPH07244605A (ja) | 1994-03-03 | 1994-03-03 | データベースシステム及びその更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07244605A true JPH07244605A (ja) | 1995-09-19 |
Family
ID=12400241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6033930A Withdrawn JPH07244605A (ja) | 1994-03-03 | 1994-03-03 | データベースシステム及びその更新方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5764978A (ja) |
JP (1) | JPH07244605A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009217652A (ja) * | 2008-03-12 | 2009-09-24 | Hitachi Software Eng Co Ltd | リレーショナルデータベースのレコード追加システム |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098074A (en) * | 1997-10-29 | 2000-08-01 | International Business Machines Corporation | Storage management system with file aggregation |
IL142482A0 (en) * | 1998-10-16 | 2002-03-10 | Computer Ass Think Inc | Accessing a hierarchical data store through an sql input |
US7734457B2 (en) * | 1999-10-16 | 2010-06-08 | Computer Associates Think, Inc. | Method and system for generating dynamic comparison models |
US7072896B2 (en) * | 2000-02-16 | 2006-07-04 | Verizon Laboratories Inc. | System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor |
US6853997B2 (en) * | 2000-06-29 | 2005-02-08 | Infoglide Corporation | System and method for sharing, mapping, transforming data between relational and hierarchical databases |
AU2002217635A1 (en) * | 2000-11-09 | 2002-05-21 | Mikhail Mikhaylovich Makarchouk | Method for maintaining the identity of a pair of interacting augmented hierarchical data bases and communication network for carrying out said method |
US7062551B2 (en) * | 2001-05-24 | 2006-06-13 | International Business Machines Corporation | Method and apparatus to solve compatibility between heterogeneous web server access logs formats |
US6480857B1 (en) * | 2001-06-07 | 2002-11-12 | David Chandler | Method of organizing hierarchical data in a relational database |
US7499986B2 (en) | 2001-10-04 | 2009-03-03 | International Business Machines Corporation | Storage area network methods with event notification conflict resolution |
US20030093509A1 (en) * | 2001-10-05 | 2003-05-15 | Li Raymond M. | Storage area network methods and apparatus with coordinated updating of topology representation |
US20030154197A1 (en) * | 2002-02-13 | 2003-08-14 | Permutta Technologies | Flexible relational data storage method and apparatus |
WO2005015389A1 (en) * | 2003-07-11 | 2005-02-17 | Computer Associates Think, Inc. | Adding user-defined objects to a modeling tool |
CZ300363B6 (cs) * | 2003-10-17 | 2009-04-29 | Qbizm Technologies,A .S. | Zpusob aktualizace databáze adres systému s využitím zasílání zpráv |
JP4522170B2 (ja) * | 2004-07-02 | 2010-08-11 | 富士通株式会社 | リレーショナルデータベースのインデックス追加プログラム,インデックス追加装置及びインデックス追加方法 |
US20070174091A1 (en) * | 2006-01-26 | 2007-07-26 | International Business Machines Corporation | Methods, data structures, systems and computer program products for identifying obsure patterns in healthcare related data |
US20070203892A1 (en) * | 2006-02-27 | 2007-08-30 | Business Objects, S.A. | Apparatus and method for using vertical hierarchies in conjuction with hybrid slowly changing dimension tables |
US8135716B2 (en) * | 2008-12-10 | 2012-03-13 | Sap Ag | Systems and method for mapping large object data content in a database table to a work area |
US20110060718A1 (en) * | 2009-09-04 | 2011-03-10 | Song You | Method and Apparatus for Organizing Hierarchical Data in a Relational Database |
US20110107059A1 (en) * | 2009-11-05 | 2011-05-05 | Electronics And Telecommunications Research Institute | Multilayer parallel processing apparatus and method |
US8793309B2 (en) * | 2010-09-07 | 2014-07-29 | Sap Ag (Th) | Systems and methods for the efficient exchange of hierarchical data |
US8495085B2 (en) * | 2010-09-27 | 2013-07-23 | International Business Machines Corporation | Supporting efficient partial update of hierarchically structured documents based on record storage |
EP2858025B1 (en) * | 2013-10-01 | 2025-02-12 | Exegy | An order book management device in a hardware platform |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604898A (en) * | 1992-05-07 | 1997-02-18 | Nec Corporation | Database enquiry system |
US5467471A (en) * | 1993-03-10 | 1995-11-14 | Bader; David A. | Maintaining databases by means of hierarchical genealogical table |
-
1994
- 1994-03-03 JP JP6033930A patent/JPH07244605A/ja not_active Withdrawn
-
1995
- 1995-01-12 US US08/372,010 patent/US5764978A/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009217652A (ja) * | 2008-03-12 | 2009-09-24 | Hitachi Software Eng Co Ltd | リレーショナルデータベースのレコード追加システム |
Also Published As
Publication number | Publication date |
---|---|
US5764978A (en) | 1998-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH07244605A (ja) | データベースシステム及びその更新方法 | |
US10831753B2 (en) | Query plan generation and execution in a relational database management system with a temporal-relational database | |
US7698348B2 (en) | Extended database engine providing versioning and embedded analytics | |
US11893046B2 (en) | Method and apparatus for implementing a set of integrated data systems | |
US6374252B1 (en) | Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon | |
US8341164B1 (en) | Apparatus and methods for organizing data items having time of life intervals | |
US9251199B2 (en) | Stateless database cache | |
US20030105745A1 (en) | Text-file based relational database | |
JPH0784858A (ja) | 文書管理方法 | |
JPH06259472A (ja) | マルチメディア情報システム | |
US8959096B2 (en) | Apparatus and methods for organizing data items by directed acyclic graphs | |
US20150363442A1 (en) | Index merge ordering | |
CN115935944A (zh) | 一种跨平台的标准文件树形结构生成方法与展示控件 | |
US20150302113A1 (en) | Apparatus and methods for organizing data items by directed graph | |
US7596584B2 (en) | Predicate based group management | |
KR20060067812A (ko) | 복합 데이터 액세스 | |
JP3777666B2 (ja) | データベース処理方法およびシステム | |
JPH11282882A (ja) | 文書管理方法 | |
US20060218174A1 (en) | Method for coordinating schema and data access objects | |
KR101063577B1 (ko) | 대용량데이터베이스의 스키마 및 저장프로시저 실시간관리시스템 및 방법 | |
US8103677B1 (en) | Searching using object linked enterprise system | |
JP3493354B2 (ja) | 文書検索方法 | |
JP3628030B2 (ja) | データベース装置 | |
JPH0582615B2 (ja) | ||
JPH09167167A (ja) | オブジェクト指向データベースにおけるオブジェクト検索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20010508 |