説明

情報複製プログラム、情報複製装置および情報複製方法

【課題】応用プログラムおよびNDBの修正をせずに、NDBに記憶された情報に対する変更をRDBに記憶された情報へ反映させる処理の負担を少なくする。
【解決手段】本願の開示する技術は、複製元の情報に対して変更処理が実行された場合に、変更された情報の順序を表す順番情報を、所定の情報から順に辿ることによって算出し、算出した順番情報を用いて複製先の情報から更新すべき情報を特定し、特定した情報を更新することによって、複製元の情報に対して実行された変更処理を複製先の情報に対して反映するので、応用プログラムおよびNDBを変更することなく、複製処理の負担を少なくすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報複製プログラム、情報複製装置および情報複製方法に関する。
【背景技術】
【0002】
近年、複数の情報が相互に関連付けられたレコードを表形式で管理するRDB(Relational DataBase)が知られている。また、階層関係を示す情報と相対的な順序関係を示す情報とを付して記憶されたレコードを管理するNDB(Network DataBase)が知られている。
【0003】
NDBは、記憶するレコードに階層関係を示す情報を付して記憶している。具体的には、図25に例示するように、NDBでは、レコード「A1」について、「親レコード」であることを示す情報を記憶しており、レコード「A1」が他のレコード「A11」〜「A13」よりも上位の情報であることを記憶している。
【0004】
また、NDBは、レコード「A1」以外の他のレコード「A11」〜「A13」について、「子レコード」であることを示す情報を記憶しており、レコード「A11」〜「A13」がレコード「A1」の下位の情報であることを記憶している。
【0005】
また、NDBは、記憶されるレコードの順序関係を示す情報として、次の順番に該当するレコードを示す情報である「ポインタ」を記憶している。例えば、図25に示すようにNDBは、「A11」の次のレコードが「A12」であることを示すポインタを記憶している。
【0006】
一方、RDBは、順序関係として、記憶されるレコードに順序関係を示す数値を付して、各レコードの順序関係を記憶する。例えば、RDBは、順序関係として、レコード「A11」に対応付けて順番「1」を記憶している。
【0007】
このようなNDBおよびRDBを利用する技術として、NDBのレコードをRDBのレコードに変換して複製する技術が知られている。ここで、NDBでは、レコードの順序関係について、数値では記憶していないので、NDBのレコードをRDBのレコードに変換した場合には、図26に例示するように、RDBが記憶されるレコードの順序関係を認識することができない場合がある。
【0008】
このため、NDBのレコードをRDBのレコードに変換する場合に、各レコードの順序番号を生成し、生成された順序番号をRDBに記憶させる技術が知られている(例えば、特許文献1および特許文献2参照)。具体的には、複製装置は、NDBの各レコードに付されたポインタをたどって、レコードの順番を一つずつ確認し、各レコードの順序番号を生成し、作成された順序番号を付した各レコードの複製を作成する。
【0009】
ここで、複製装置は、NDBが記憶するレコードの変更(例えば、追加、更新、削除)が行われて順序関係が変化した場合には、RDBが記憶する順序番号を更新するために、各レコードの順序番号を再度生成し、生成された順序番号を付した各レコードの複製を再度作成する。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2004−259075号公報
【特許文献2】特開2000−267906号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上記した各レコードの順序番号を生成し、RDBに記憶させる技術では、NDBが記憶するレコードの変更が行われて順序関係が変化した場合に、生成された順序番号を付した各レコードの複製を再度作成する必要がる。このため、NDBの各レコードに付されたポインタをたどってレコードの順番を一つずつ確認して、順序番号を生成し、各レコードの複製を再度作成する結果、NDBが記憶するレコードの変更をRDBに反映させる処理の負担が大きいという問題があった。
【0012】
一方、NDBのレコードをRDBのレコードに変換して複製する技術として、NDBの各レコードに順序関係を示す数値を付与した後、NDBのレコードをRDBのレコードに変換して複製する技術が知られている。ここで、複製装置は、NDBが記憶するレコードの変更が行われて順序関係が変化した場合には、NDBに対してレコードの修正を要求する応用プログラムが順番を表す数値を修正し、各レコードに順序関係を示す数値を付与する。
【0013】
しかし、上記したNDBの各レコードに順序関係を示す数値を付与する技術では、NDBに対してレコードの修正を要求する応用プログラムが、順番を表す数値を修正している。このため、順番を表す数値を修正してNDBの各レコードに順序関係を示す数値を付与するように応用プログラムを修正する必要があり、応用プログラムの修正を行う処理の負担が大きいという問題があった。また、NDBが記憶するレコードの変更が行われて順序関係が変化するたびに、各レコードに順序関係を示す数値が付与されたNDBを再生成する必要があり、NDBが記憶するレコードの変更をRDBに反映させる処理の負担が大きいという問題があった。
【0014】
そこで、当出願によって開示される技術は、上記した従来技術の課題を解決するためになされたものであり、応用プログラムの修正およびNDBの情報複製プログラムの再作成をすることなく、NDBが記憶するレコードの変更をRDBに反映する情報複製プログラム、情報複製装置および情報複製方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
本願の開示する技術は、複製元の情報に対して変更処理が実行された場合に、変更された情報の順序を表す順序情報を算出し、算出した順序情報を用いて複製先の情報を更新する。
【発明の効果】
【0016】
本願の開示する技術は、NDBが記憶するレコードの変更をRDBに反映させる処理の負担を小さくし、また、応用プログラムの修正およびNDBの情報複製プログラムの再作成を不要とする。
【図面の簡単な説明】
【0017】
【図1】図1は、実施例1に係る複製作成装置を表すブロック図である。
【図2】図2は、実施例1に係る初期抽出部が行う処理を説明する図である。
【図3】図3は、実施例1に係る順序番号生成部を説明する図である。
【図4−1】図4−1は、応用プログラムの処理を説明するための図(1)である。
【図4−2】図4−2は、応用プログラムの処理を説明するための図(2)である。
【図5】図5は、実施例1に係る差分抽出部を説明するための図である。
【図6】図6は、実施例1に係る差分反映部を説明するための図である。
【図7−1】図7−1は、実施例1に係る複製作成装置の処理の流れを説明する図(1)である。
【図7−2】図7−2は、実施例1に係る複製作成装置の処理の流れを説明する図(2)である。
【図7−3】図7−3は、実施例1に係る複製作成装置の処理の流れを説明する図(3)である。
【図7−4】図7−4は、実施例1に係る複製作成装置の処理の流れを説明する図(4)である。
【図8】図8は、実施例1に係る初期抽出の流れを詳しく説明する図である。
【図9−1】図9−1は、実施例1に係る追加処理の流れを詳しく説明する図(1)である。
【図9−2】図9−2は、実施例1に係る追加処理の流れを詳しく説明する図(2)である。
【図10−1】図10−1は、実施例1に係る更新処理の流れを詳しく説明する図(1)である。
【図10−2】図10−2は、実施例1に係る更新処理の流れを詳しく説明する図(2)である。
【図11−1】図11−1は、実施例1に係る削除処理の流れを詳しく説明する図(1)である。
【図11−2】図11−2は、実施例1に係る削除処理の流れを詳しく説明する図(2)である。
【図12】図12は、実施例1の初期抽出の流れを説明するフローチャートである。
【図13】図13は、実施例1に係る差分抽出部が行う処理の流れを説明するフローチャートである。
【図14−1】図14−1は、実施例1に係る差分抽出部の検索処理を説明するフローチャートである。
【図14−2】図14−2は、実施例1に係る差分抽出部の追加処理を説明するフローチャートである。
【図14−3】図14−3は、実施例1に係る差分抽出部の更新処理を説明するフローチャートである。
【図14−4】図14−4は、実施例1に係る差分抽出部の削除処理を説明するフローチャートである。
【図15】図15は、実施例1に係る差分抽出部が行うダイレクト検索を説明するフローチャートである。
【図16】図16は、実施例1に係る順序番号生成部の処理を説明するフローチャートである。
【図17】図17は、実施例1に係る差分反映部の処理を説明するフローチャートである。
【図18−1】図18−1は、実施例1に係る差分反映部の追加処理を説明するフローチャートである。
【図18−2】図18−2は、実施例1に係る差分反映部の更新処理を説明するフローチャートである。
【図18−3】図18−3は、実施例1に係る差分反映部の削除処理を説明するフローチャートである。
【図19】図19は、実施例1に係るデータの構造を説明する図である。
【図20】図20は、実施例1に係るネットワークデータベースの親レコードの管理域を表す図である。
【図21】図21は、実施例1に係る初期抽出部および順序番号生成部の作業域の構造を表す図である。
【図22】図22は、実施例1に係る差分抽出部の作業域の構造を表す図である。
【図23】図23は、実施例1に係る複製先のリレーショナルデータベースの構造を表す図である。
【図24】図24は、情報複製プログラムを実行するコンピュータの図である。
【図25】図25は、従来技術を表す図(1)である。
【図26】図26は、従来技術を表す図(2)である。
【発明を実施するための形態】
【実施例1】
【0018】
以下に添付図面を参照してこの発明に係る情報複製プログラム、情報複製装置および情報複製方法の実施例を詳細に説明する。
【0019】
以下の実施例では、情報複製装置の構成および処理の流れについて、順に説明する。
【0020】
最初に、図1を用いて実施例1に係る複製作成装置の構成を説明する。ここで、図1は、実施例1に係る複製作成装置を表すブロック図である。複製作成装置10は、差分抽出部11と初期抽出部12と順序番号生成部13と差分反映部14とを有し、リレーショナルデータベース15およびネットワークデータベース21と接続されている。また、リレーショナルデータベース15は、差分反映部14と接続されている。
【0021】
ネットワークデータベース21は、ネットワーク型データモデルを利用して複数の情報を記憶している。具体的には、ネットワークデータベース21は、記憶されるレコードに階層関係を表す情報と相対的な順番関係を表す情報とを付して記憶している。また、ネットワークデータベース21は、記憶する情報に対し、応用プログラムからの要求に応じて各種処理を実行し、実行する処理の内容を差分抽出部11に通知する。
【0022】
リレーショナルデータベース15は、表形式を用いて複数の情報を関連付けて記憶している。具体的には、リレーショナルデータベース15は、図23に示すように、順番を表す数値を格納する領域と、レコードを格納する領域である操作データ域とを有している。ここで、図23は、実施例1に係る複製先のリレーショナルデータベースの構造を表す図である。
【0023】
ここで、ネットワークデータベース21に対して各種処理を要求する応用プログラムについて、図4−1および図4−2を用いて説明する。図4−1は、応用プログラムの処理を説明するための図(1)である。また、図4−2は、応用プログラムの処理を説明するための図(2)である。
【0024】
応用プログラムは、ネットワークデータベース21に記憶される情報に対して各種処理を要求する。具体的には、応用プログラムは、ネットワーク型データモデルの情報に対して追加処理、削除処理、更新処理および検索処理の要求をする。ここで、追加処理とは、ネットワークデータベース21に記憶される情報を新たに追加することをいう。削除処理とは、ネットワークデータベース21に記憶される情報を削除することをいう。更新処理とは、ネットワークデータベース21に記憶される情報を更新することをいう。検索処理とは、ネットワークデータベース21に記憶される情報を検索することをいう。
【0025】
ここで、応用プログラムは、二種類の方法を用いて各種処理の対象となる子レコードを特定する。一つは、図4−1に示したように、各情報が有するポインタが示す順番通りに検索するように要求する方法である。例えば、親レコード「Xさん」が有する「2番目」の子レコードを「2万円」という値に「更新」する場合には、応用プログラムは、ネットワークデータベース21に対して親レコード「Xさん」を検索するように要求する。
【0026】
次に、応用プログラムは、親レコード「Xさん」が有する「2番目」の子レコードをポインタが示す順に検索するようにネットワークデータベース21に対して要求する。最後に、応用プログラムは、選択された「2番目」の情報を「2万円」という値に更新するように要求する。
【0027】
一方、図4−2に示した場合には、応用プログラムは、各種処理の対象となる情報を直接選択する。具体的には、応用プログラムは、各レコードが記憶されている位置を示すアドレス情報を用いて各種処理の対象となる情報を選択する。例えば、アドレス情報「X」の情報を「2万円」に更新する場合には、図4−2に示すように、応用プログラムはアドレス情報「X」の情報を直接選択し、「2万円」という値に更新するようにネットワークデータベース21に対して要求する。
【0028】
次に、複製作成装置が有する各部が実行する処理について、図を参照して説明する。初期抽出部12は、ネットワークデータベース21に記憶された親レコードを検索し、親レコードの情報を取得する。さらに、初期抽出部12は、取得した親レコードが有する子レコードをポインタ順に取得する。
【0029】
ここで、初期抽出部12は、ポインタ順に子レコードを取得するたびに子レコードの順番をカウントし、取得した子レコードに対して順番を表す数値を付与する。最後に、初期抽出部12は、一つの親レコードが有する子レコードの数を子情報総数として、複製元であるネットワークデータベース21に記憶された親レコードに対して付与し、取得した情報を差分反映部14へ送信する。
【0030】
例えば、図2に示した場合は、初期抽出部12は、親レコード「Xさん」の情報を取得し、「10万円」の情報を持つ子レコードの順番を「1」、「3万円」の情報を持つ子レコードの順番を「2」とカウントする。また、初期抽出部12は、取得した各子レコードに対して順番を表す数値を付与し、取得した子レコードを差分反映部14へ送信する。
【0031】
最後に、初期抽出部12は、親レコード「Xさん」が有する子レコードの数「2」をネットワークデータベース21に記憶された「Xさん」の情報に付与する。ここで、図2は、実施例1に係る初期抽出部が行う処理を説明する図である。
【0032】
差分抽出部11は、ネットワークデータベース21に記憶されたレコードに対して各種変更処理が実行された場合には、変更されたレコードを示す情報を取得する。具体的には、差分抽出部11は、ネットワークデータベース21から処理内容と操作データと操作箇所と親箇所とを受信し、親箇所を用いて親レコードに記録された子情報総数を受信する。そして、差分抽出部11は、受信した情報と子情報総数とを処理情報として順序番号生成部13に送信する。
【0033】
ここで、図19を用いて実施例1に係る処理情報の内容について、具体的に説明する。図19は、実施例1に係るデータの構造を説明する図である。処理情報は、処理内容、操作箇所、操作データおよび親箇所を表す情報を有している。差分抽出部11および初期抽出部12は、処理情報に各情報を格納し、差分反映部14へ送信する。
【0034】
処理内容とは、応用プログラムがネットワークデータベース21に対して要求した処理の内容をいう。具体的には、差分抽出装置11は「追加」、「更新」、「削除」のいずれかを示す情報を処理内容として格納する。また、差分抽出装置11は、処理内容に、処理の対象となる子レコードと対応付けられた親レコードに記録された子情報総数を一緒に格納する。一方、初期抽出部12は、処理内容に「初期」を格納する。
【0035】
操作データとは、各種処理の対象となった子レコードの内容をいう。具体的には、差分抽出装置11は、各種処理の対象である子レコードの内容を格納する。操作箇所とは、各種処理の対象となったデータを特定するために必要な情報をいう。
【0036】
具体的には、差分抽出装置11は、操作箇所に、各種処理の対象となる子レコードの順番もしくはアドレス情報を格納する。親箇所とは、各種処理の対象となったデータを有する親レコードを特定するために必要な情報をいう。具体的には、差分抽出装置11は、親箇所に、親レコードのアドレス情報を格納する。
【0037】
図5を用いて、差分抽出部11の処理を具体的に説明する。ここで、図5は、実施例1に係る差分抽出部を説明するための図である。応用プログラムがネットワークデータベース21に対して情報の追加処理を要求した場合には、差分抽出部11は、ネットワークデータベース21から受信した情報を用いて、処理内容、操作データ、操作箇所および親箇所を処理情報に格納する。
【0038】
次に、差分抽出部11は、親箇所を用いて、特定される親レコードから子情報総数を取得し、1を足した数を新たな子情報総数として、元の親レコードに格納する。また、差分抽出部11は、新たな子情報総数を処理情報に格納する。
【0039】
図5に示した場合には、差分抽出部11は、処理内容に「追加」を格納し、親箇所にアドレス「XXX」を格納し、操作箇所に順番「2」を格納し、操作データに「1万円」を格納する。次に、追加処理によって増えた子レコードの数を反映させるために、差分抽出部11は、親レコード「Xさん(2)」が有する子情報総数「2」を「3」に変更する。また、差分抽出部11は、変更した子情報総数「3」を処理内容に格納する。
【0040】
応用プログラムがネットワークデータベース21に対して情報の更新処理を要求した場合には、差分抽出部11は、ネットワークデータベース21から受信した情報を用いて、処理内容、操作データ、操作箇所および親箇所を処理情報に格納する。
【0041】
図5に示した場合には、差分抽出部11は、処理内容に「更新」を格納し、親箇所に「XXX」を格納する。また、差分抽出部11は、操作箇所に順番「2」を格納し、操作データに「2万円」を格納する。また、更新処理によって親レコードが有する子レコードの数は変わらないので、差分抽出部11は、親レコードが有する子情報総数の変更を行わず、子情報総数を処理内容に格納しない。
【0042】
応用プログラムがネットワークデータベース21に対して情報の削除処理を要求した場合には、差分抽出部11は、ネットワークデータベース21から受信した情報を用いて、処理内容、操作データ、操作箇所および親箇所を処理情報に格納する。次に、差分抽出部11は、親箇所を用いて特定される親レコードから、子情報総数を受信し、1を引いた数を新たな子情報総数として、元の親レコードに格納する。また、差分抽出部11は、新たな子情報総数を処理情報に格納する。
【0043】
図5に示した場合には、差分抽出部11は、処理内容に「削除」を格納し、親箇所に「XXX」を格納し、操作箇所に順番「2」を格納する。ここで、差分抽出部11は、応用プログラムが削除処理を実行した場合には、操作データに情報を格納しない。次に、削除処理によって減った子レコードの数を反映させるために、差分抽出部11は、親レコード「Xさん(3)」が有する子情報総数「3」を「2」に変更する。また、差分抽出部11は、変更した子情報総数「2」を処理内容に格納する。
【0044】
差分抽出部11は、処理情報を作成した場合には、各情報を格納した処理情報を、順序番号生成部13に送信する。ここで、応用プログラムが、各種処理の対象となる子レコードを順番ではなくアドレス情報で選択している場合には、差分抽出部11は、操作箇所に順番ではなくアドレス情報を格納することとなる。
【0045】
順序番号生成部13は、差分抽出部11によって取得された情報を用いて、変更されたレコードの順番を示す順番情報を算出する。具体的には、順序番号生成部13は、差分抽出部11から受信した処理情報から操作箇所を確認する。操作箇所の情報として順番を表す数値ではなく、アドレス情報が格納されていた場合には、順序番号生成部13は、当該アドレス情報を用いて変更処理の対象となったレコードを検索する。そして、順序番号生成部13は、所定のレコードからポインタ順に検索した場合に変更処理の対象となったレコードが何番目の子レコードであるかを算出する。
【0046】
具体的には、順序番号生成部13は、親箇所に格納されたアドレス情報を用いて、ネットワークデータベース21に記憶された親レコードの検索を実行する。次に、順序番号生成部13は、操作箇所として格納されていたアドレス情報を有する子レコードをポインタ順に検索し、子レコードの数をカウントする。
【0047】
次に、順番号検索部13は、操作箇所として格納されていたアドレス情報と合致するアドレスに記憶された子レコードを認識した場合には、カウントしていた子レコードの数を認識した子レコードの順番として取得する。その後、順序番号生成部13は、操作箇所に格納されていたアドレス情報を消去し、取得した順番を表す数値を格納する。
【0048】
応用プログラムは、各種処理の対象となる子レコードを選択する方法として、子レコードの順番もしくは子レコードのアドレス情報を利用している。応用プログラムがアドレス情報を利用して子レコードを選択している場合には、順序番号生成部13は、アドレス情報を順番を表す数値に変更する。
【0049】
例えば、図3に示した場合には、順序番号生成部13は、アドレス「XXX」に記憶された親レコード「Xさん」をネットワークデータベース21から検索する。次に、順序番号生成部13は、子レコードの数を数えながら親レコード「Xさん」からポインタ順にアドレス「XXX.BBB」を有する子レコードを検索する。
【0050】
図3に示した場合には、アドレス「XXX.BBB」を有する子レコードは「2番目」の子レコードであるので、順序番号生成部13は、アドレス「XXX.BBB」を有する子レコードの順番が「2」番目であることを取得する。最後に、順序番号生成部13は、処理情報の操作箇所に格納されたアドレス情報を消去し、変わりに順番「2」という情報を格納する。ここで、図3は実施例1に係る順番号生成部を説明する図である。
【0051】
一方、順序番号生成部13は、差分抽出部11が取得した情報が子レコードの順番を表す情報であった場合には、差分抽出部11が取得した情報を用いる。具体的には、順序番号生成部13は、操作箇所に格納された情報が順番を表す数値であった場合には、操作箇所に格納された情報を変更しない。
【0052】
差分反映部14は、順序番号生成部13によって算出された順番情報に応じて、ネットワークデータベース21に記憶された情報に対して実行された各種変更処理をリレーショナルデータベース15に反映させる。具体的には、差分反映部14は、順序番号生成部13もしくは初期抽出部12から受信した各レコードをリレーショナルデータベース15に反映させる。また、差分反映部14は、リレーショナルデータベース15に記憶されたレコードのうち、更新すべきレコードを選択し、更新する。以下、図6を用いて、差分反映部14が行う処理を具体的に説明する。ここで、図6は、実施例1に係る差分反映部を説明するための図である。
【0053】
差分反映部14は、受信した処理情報の処理内容に格納された情報が初期抽出であった場合には、受信した情報を用いて、新規の情報をリレーショナルデータベース15に記憶させる。具体的には、図6に示した場合には、差分反映部14は、リレーショナルデータベース15に、親箇所「XXX」に記憶された親レコードに関連付けられた子レコード「10万円」に、処理情報に格納された操作箇所である順番「1」を付して記憶させる。また、差分反映部14は、リレーショナルデータベース15に、親箇所「XXX」に記憶された親レコードに関連付けられた子レコード「3万円」に順番「2」を付して記憶させる。
【0054】
差分反映部14は、受信した処理情報に格納された情報が「追加」であった場合には、受信した処理情報を用いて、リレーショナルデータベース15に記憶された情報を変更する。具体的には、差分反映部14は、処理内容、操作データ、親箇所および操作箇所に格納された情報を用いて、リレーショナルデータベース15に新たな情報を記憶させる。
【0055】
また、差分反映部14は、操作箇所に格納された情報を用いて、リレーショナルデータベース15に記憶されたレコードの順番を加算するように修正する。
【0056】
また、差分反映部14は、処理内容に格納された子情報総数を用いて、リレーショナルデータベース15が記憶していた情報から、訂正すべき情報を特定し、特定した情報の順番を表す数値を訂正する。
【0057】
例えば、5つの子レコードを有する親レコードに対して新たに1つの子レコードが6番目の子レコードとして追加された場合には、他の5つの子レコードの順番に変更はないため、差分反映部14は、追加された子レコード以外の子レコードの順番を訂正しない。しかし、5つの子レコードを有する親レコードに対して新たに1つの子レコードが3番目の子レコードとして追加された場合には、差分反映部14は、もともとの順番が3番目から5番目であった3つの子レコードの順番を訂正する必要がある。
【0058】
そこで、差分反映部14は、処理内容に格納された子情報総数と操作箇所に格納された子レコードの順番とを用いて、追加された子レコードの順番が親レコードが有する一番最後の順番であるかどうかを判別する。具体的には、差分反映部14は、処理情報の操作箇所に格納された順番が処理内容に格納された子情報総数の数以上である場合には、子レコードの追加のみを実行し、リレーショナルデータベース15に記憶された他のデータに対して訂正を実行しない。
【0059】
また、差分反映部14は、処理情報の操作箇所に格納された順番が処理内容に格納された子情報総数の数未満である場合には、リレーショナルデータベース15に記憶された子レコードの情報のうち、操作箇所に格納された数値以上の順番を表す数値に1を足す。
【0060】
図6に示した場合には、差分反映部14は親箇所に格納された親レコードが有する子レコードのテーブルを認識する。次に、処理内容に格納された子情報総数が「3」であり、操作箇所に格納された順番が「2」であるので、差分反映部14は、もともとの順番が「2」以上である子レコードの順番を訂正する。
【0061】
図6に示した場合には、差分反映部14は、順番を表す数値が「2」以上である子レコードの順番に1を足し、新たに順番「2」の情報「1万円」を追加する。
【0062】
差分反映部14は、受信した処理情報の処理内容に格納された情報が「更新」であった場合には、受信した情報を用いて、リレーショナルデータベース15に記憶された情報を変更する。具体的には、差分反映部14は、操作箇所、操作データおよび親箇所に格納された情報を用いて、リレーショナルデータベース15に記憶された情報を更新する。
【0063】
図6に示した場合には、操作箇所に格納された情報の順番が「2」であり、操作データに格納された情報が「2万円」であり、親箇所に格納された情報が「XXX」である。よって、差分反映部14は、リレーショナルデータベース15に記憶された情報のうち親箇所が「XXX」である子レコードのテーブルが有する順序番号「2」の情報を「2万円」に訂正する。
【0064】
差分反映部14は、受信した処理情報の処理内容に格納された情報が「削除」であった場合には受信した処理情報を用いて、リレーショナルデータベース15に記憶された情報を変更する。具体的には、差分反映部14は、処理内容、操作データ、親箇所および操作箇所に格納された情報を用いて、リレーショナルデータベース15に記憶された情報を削除する。
【0065】
また、差分反映部14は、操作箇所に格納された情報を用いて、リレーショナルデータベース15に記憶されたレコードの順番を減算するように修正する。
【0066】
また、差分反映部14は、処理内容に格納された子情報総数を用いて、リレーショナルデータベース15が記憶していた情報から、訂正すべき情報を特定し、特定した情報の順番を表す数値を訂正する。
【0067】
例えば、5つの子レコードを有する親レコードに対して5番目の子レコードを削除した場合には、他の4つの子レコードの順番に変更はないため、差分反映部14は、削除する子レコード以外の情報に対して訂正をする必要はない。しかし、5つの子レコードを有する親レコードに対して2番目の子レコードを削除した場合には、もともとの順番が3番目から5番目であった3つの子レコードが有する順番を訂正する必要がある。
【0068】
そこで、差分反映部14は、処理内容に格納された子情報総数と操作箇所に格納された子レコードの順番とを用いて、追加された子レコードの位置が親レコードが有する一番最後の順番であるかどうかを判別する。
【0069】
具体的には、差分反映部14は、処理情報の操作箇所に格納された順番が処理内容に格納された子情報総数に1を足した数以上である場合には、子レコードの削除のみを実行し、リレーショナルデータベース15に記憶された他のデータに対して訂正を実行しない。
【0070】
また、差分反映部14は、処理情報の操作箇所に格納された順番が処理内容に格納された子情報総数に1を足した数未満である場合には、リレーショナルデータベース15に記憶された子レコードの情報のうち、操作箇所に格納された順番よりも後の順番の数値から1を引く。
【0071】
図6に示した場合には、差分反映部14は親箇所に格納された親アドレスに記憶された親レコードが有する子レコードのテーブルを認識する。次に、操作箇所に格納された順番「2」が処理内容に格納された子情報総数「2」に1を足した数よりも少ないので、差分反映部14は、もともとの順番が「2」以上である子レコードの順番を訂正する。図6に示した場合には、差分反映部14は、順番を表す数値が「2」よりも後の子レコードの順番から1を引き、順番を表す数値が「2」のデータを削除する。
【0072】
次に、実施例1に係る複製作成装置の処理の流れを図7−1から図7−4を参照して説明する。最初に、ネットワークデータベース21からリレーショナルデータベース15へ最初の複製を行う場合に、複製作成装置10が行う初期抽出の流れについて、図7−1を用いて説明する。ここで、図7−1は、実施例1に係る複製作成装置の処理の流れを説明する図(1)である。
【0073】
初期抽出部12は、ネットワークデータベース21に記憶された親レコードを検索し、親レコードが有する子レコードをポインタの順に検索し、子レコードの情報を取得する。また、初期抽出部12は、取得した子レコードの情報に対して順番を表す数値を付与し、差分反映部14に送信する。差分反映部14は、受信した情報をリレーショナルデータベース15に記憶させる。
【0074】
次に、応用プログラムが子レコードの追加処理をネットワークデータベース21に対して要求した場合について、複製作成部10が差分をリレーショナルデータベース15に反映させる処理の流れを図7−2を用いて説明する。ここで、図7−2は、実施例1に係る複製作成装置の処理の流れを説明する図(2)である。
【0075】
まず、差分抽出部11は、ネットワークデータベース21から処理の内容を受信し、実行される処理が追加処理であることを認識する。次に、差分抽出部11は、追加された子レコードを有する親レコードの子情報総数を取得し、更新する。また、差分抽出部11は、子情報総数とネットワークデータベース21から受信した処理の内容から処理情報を作成し、順序番号生成部13に送信する。
【0076】
順序番号生成部13は、処理情報のうち操作箇所に格納された情報がアドレス情報かどうかを識別し、アドレス情報である場合には、ネットワークデータベース21を検索し、操作箇所に格納されたアドレス情報を順序を表す数値に変更する。その後、順序番号生成部13は、処理情報を差分反映部14に送信する。差分反映部14は、受信した処理情報を用いて、リレーショナルデータベース15に記憶された情報に対して追加処理を反映させる。
【0077】
次に、応用プログラムが子レコードの更新をネットワークデータベース21に対して要求した場合について、複製作成部10が差分をリレーショナルデータベース15に反映させる処理の流れを図7−3を用いて説明する。ここで、図7−3は、実施例1に係る複製作成装置の処理の流れを説明する図(3)である。
【0078】
まず、差分抽出部11は、ネットワークデータベース21から処理の内容を受信し、実行される処理が更新処理であることを認識する。次に、差分抽出部11は、ネットワークデータベース21から受信した処理の内容から処理情報を作成し、順序番号生成部13に送信する。
【0079】
順序番号生成部13は、処理情報のうち操作箇所に格納された情報がアドレス情報かどうかを識別し、アドレス情報である場合には、ネットワークデータベース21を検索し、操作箇所に格納されたアドレス情報を順序を表す数値に変更する。その後、順序番号生成部13は、処理情報を差分反映部14に送信する。差分反映部14は、受信した処理情報を用いて、リレーショナルデータベース15に記憶された情報に対して更新処理を反映させる。
【0080】
次に、ネットワークデータベース21に対して応用プログラムが子レコードの削除処理を要求した場合について、複製作成部10が差分をリレーショナルデータベース15に反映させる処理の流れを図7−4を用いて説明する。ここで、図7−4は、実施例1に係る複製作成装置の処理の流れを説明する図(4)である。
【0081】
まず、差分抽出部11は、ネットワークデータベース21から処理の内容を受信し、実行される処理が削除処理であることを認識する。次に、差分抽出部11は、削除された子レコードを有する親レコードの子情報総数を取得し、更新する。また、差分抽出部11は、子情報総数とネットワークデータベース21から受信した処理の内容から処理情報を作成し、順序番号生成部13に送信する。
【0082】
順序番号生成部13は、処理情報のうち操作箇所に格納された情報がアドレス情報かどうかを識別し、アドレス情報である場合には、ネットワークデータベース21を検索し、操作箇所に格納されたアドレス情報を順序を表す数値に変更する。その後、順序番号生成部13は、処理情報を差分反映部14に送信する。差分反映部14は、受信した処理情報を用いて、リレーショナルデータベース15に記憶された情報に対して削除処理を反映させる。
【0083】
次に、図8から図11−2を参照しながら複製作成装置10が行う処理を詳しく説明する。まず、図8を用いて、複製作成装置10が行う初期抽出について、詳しく説明する。ここで、図8は、実施例1に係る初期抽出を詳しく説明する図である。
【0084】
まず、初期抽出部12は、ネットワークデータベース21が記憶するデータを取得する。図8に例示した場合には、初期抽出部12は、親レコードである「Xさん」の情報を取得し、親レコード「Xさん」からポインタで示された1番目の子レコード「10万」を取得する。
【0085】
ここで、初期抽出部12は、操作内容に「初期抽出」を格納し、操作データに「10万」を格納し、操作箇所に順番「1」を格納し、親箇所に「X」をそれぞれ格納した処理情報を作成する。また、初期抽出部12は、図21に例示するような作業域に子情報の数「1」を格納する。ここで、図21は、実施例1に係る初期抽出部および順序番号生成部の作業域の構造を表す図である。
【0086】
次に初期抽出部12は、1番目の子レコード「10万」からポインタで示された2番目の子レコード「3万」を取得する。ここで、初期抽出部12は、操作内容に「初期抽出」を格納し、操作データに「3万」を格納し、操作箇所に順番「2」を格納し、親箇所に「X」をそれぞれ格納した処理情報を作成する。また、初期抽出部12は、作業域に子情報の数「2」を格納する。次に、2番目の子レコード「3万」からポインタで示されたデータが親レコードである「Xさん」であるので、初期抽出部12は、子レコードの取得を終了し、作成した処理情報を差分反映部14に送信する。
【0087】
また、初期抽出部12は、作業域に格納された子情報の数「2」を子情報総数として親レコード「Xさん」に付加するようにネットワークデータベース21に対して要求する。具体的には、初期抽出部12は、図20に示すような親レコード「Xさん」の管理域に子情報総数を格納するようにネットワークデータベース21に対して要求する。ここで、図20は、実施例1に係るネットワークデータベースの親レコードの管理域を表す図である。
【0088】
図8に例示した場合には、初期抽出部12は、親レコード「Xさん」の管理域に子情報総数である「2」を記録するようにネットワークデータベース21に対して要求する。
【0089】
差分反映部14は、初期抽出部12から処理情報を受信し、受信した処理情報を元にリレーショナルデータベース15に複製を作成する。図8に示した場合には、差分反映部14は、順番を表す数値「1」を付した情報「10万」と順番を表す数値「2」を付した情報「3万」とをリレーショナルデータベース15に記憶させる。
【0090】
具体的には、差分反映部14は、SQLを作成し、リレーショナルデータベース15に対して送信する。図8に例示した場合には、差分反映部14は、SQLコマンド「LOAD」を用いて、順番を表す数値「1」を付した情報「10万」をリレーショナルデータベース15に記憶させる。また、差分反映部14は、SQLコマンド「LOAD」を用いて、順番を表す数値「2」を付した情報「3万」をリレーショナルデータベース15に記憶させる。
【0091】
次に図9−1および図9−2を用いて複製作成装置10が行う追加処理について、詳しく説明する。ここで、図9−1は、実施例1に係る追加処理の流れを詳しく説明する図(1)である。また、図9−2は、実施例1に係る追加処理の流れを詳しく説明する図(2)である。
【0092】
最初に図9−1を用いて複製作成装置10が行う追加処理について、詳しく説明する。まず、応用プログラムは、親レコードの検索をネットワークデータベース21に対して要求する。ネットワークデータベース21は、親レコードを検索し、親レコードを検索していることを差分抽出部11に通知する。差分抽出部11は、親レコードの検索処理を認識し、親箇所に親レコードのアドレス「X」を格納し、操作箇所に「0」を格納する。
【0093】
次に、応用プログラムは、子レコードの検索をネットワークデータベース21に対して要求する。ネットワークデータベース21は、ポインタ順に子レコードを検索し、子レコードを認識するたびに差分抽出部11に通知を行う。通知を受けた差分抽出部11は、ネットワークデータベース21から通知を受けるたびに、操作箇所に格納された順序を表す数値に1を足す。
【0094】
次に、応用プログラムは、子レコードの追加をネットワークデータベース21に対して要求する。ネットワークデータベース21は、子レコードの追加を実施し、追加された子レコードの情報「1万」を差分抽出部11に通知する。
【0095】
差分抽出部11は、子レコードの追加処理を認識し、操作箇所に格納された順番を表す数値に1を足す。よって、差分抽出部11は、追加された子レコードの順番を表す数値「2」を操作箇所に格納したこととなる。ここで、差分抽出部11は、処理内容に「追加」を格納し、操作データにネットワークデータベース21から取得した子レコードの情報「1万」を格納する。
【0096】
次に、差分抽出部11は、親箇所に格納された親レコードのアドレス「X」を利用し、ネットワークデータベース21に親レコードが有する子情報総数を要求する。ネットワークデータベース21から子情報総数「2」を受信した差分抽出部11は、子情報総数「2」を図22に例示した作業域に格納する。ここで、図22は、実施例1に係る差分抽出部の作業域の構造を表す図である。
【0097】
次に、差分抽出部11は、作業域に記憶された「2」に1を足し、得られる新たな子情報総数「3」を処理内容に格納する。また、差分抽出部11は、ネットワークデータベース21に対してアドレス「X」を有する親レコードの子情報総数を新たな子情報総数「3」に更新するように要求する。その後、差分抽出部11は、処理情報を順序番号生成部13に送信する。
【0098】
次に、順序番号生成部13は、差分抽出部11から受信した処理情報のうち操作箇所が順番を表す数値であるかどうかを確認する。図9−1に例示した場合には、操作箇所に格納された順序を表す数値が「2」であるので、順序番号生成部13は、処理情報を更新せずに差分反映部14へ送信する。
【0099】
差分反映部14は、受信した処理情報のうち処理内容に格納された「追加」を認識し、追加処理を実行する。まず、差分反映部14は、処理内容に格納された子情報総数「3」と操作箇所に格納された順番「2」とに基づいて、リレーショナルデータベース15に記憶された情報のうち、順番が「2」以上の数値を有する情報を更新する必要があることを認識する。
【0100】
次に差分反映部14は、リレーショナルデータベース15に記憶された情報のうち「2」以上の順番を表す数値に1を足す。その後、差分反映部14は、順序を表す数値「2」を付した情報「1万」をデータリレーショナルデータベース15に追加させる。
【0101】
具体的には、差分反映部14は、SQLコマンド「UPDATE」を用いて順番「2」を順番「3」に更新する。また、差分反映部14は、SQLコマンド「INSERT」を用いて、順番「2」を付した情報「1万」をリレーショナルデータベース15に追加する。
【0102】
一方、図9−2に例示するように、応用プログラムが子レコードを追加する場所をアドレスで指定した場合には、ネットワークデータベース21は、指定されたアドレスに子レコードを追加する。また、ネットワークデータベース21は、指定されたアドレスおよび子レコードを差分抽出部11に通知する。図9−2に例示した場合には、ネットワークデータベース21は、アドレス「Z」に子レコード「1万」を追加している。
【0103】
差分抽出部11は、ネットワークデータベース21から受信した情報を用いて、操作内容に「追加」を格納し、操作データに「1万」を格納し、操作箇所にアドレス「Z」を格納する。
【0104】
ここで、ネットワークデータベース21から受信した情報には、親レコードが記憶されたアドレスが含まれていない。そこで、差分抽出部11は、受信された子レコードのアドレスを用いて、親レコードの検索を実行し、親レコードのアドレスを取得する。図9−2に例示した場合には、差分抽出部11は、追加された子レコードと関連付けられた親レコードのアドレス「X」を取得する。
【0105】
次に差分抽出部11は、処理情報のうち、親箇所にアドレス「X」を格納する。また、差分抽出部11は、アドレス「X」に記憶された親レコードから子情報総数「2」を受信し、1を足した値「3」を新たな子情報総数として操作内容に格納する。
【0106】
また、差分抽出部11は、ネットワークデータベース21に対してアドレス「X」に記憶された親レコードの子情報総数を新たな子情報総数「3」に更新するよう要求する。最後に、差分抽出部11は、各情報を格納した処理情報を順序番号生成部13に送信する。
【0107】
順序番号生成部13は、差分抽出部11から受信した処理情報のうち操作箇所に格納された情報を確認する。そして、順序番号生成部13は、操作箇所に格納されたアドレス「Z」を取得し、アドレス「Z」を有する子レコードの順番を検索する。
【0108】
ここで、順序番号生成部13は、親箇所に格納されたアドレス「X」を用いて、ネットワークデータベース21からアドレス「X」に記憶された親レコードを検索する。そして、順序番号生成部13は、アドレス「X」に記憶された親レコードからポインタをたどって、アドレス「Z」に記憶された子レコードを検索する。
【0109】
具体的には、順序番号生成部13は、図21に例示した作業域に「0」を格納し、親箇所に格納されたアドレスを有する親レコードを検索する。次に、作業域の値に1を足し、親レコードからポインタで示された子レコードを検索する。ここで、順序番号生成部13は、検索した子レコードが記憶されたアドレスが操作箇所に格納されたアドレスと同じであるかを判断する。
【0110】
順序番号生成部13は、検索した子レコードが記憶されたアドレスが操作箇所に格納されたアドレスと同じである場合には、作業域の値を操作された子レコードの順序を表す数値として操作箇所に格納する。一方、順序番号生成部13は、検索した子レコードが記憶されたアドレスが操作箇所に格納されたアドレスと同じではない場合には、作業域の値に1を足し、子レコードからポインタで示された次の子レコードを検索する。
【0111】
図9−2に示した場合には、順序番号生成部13は、操作箇所に格納されたアドレス「Z」を順番「2」に変更する。その後、順序番号生成部13は、変更した処理情報を差分反映部14へ送信する。
【0112】
差分反映部14は、受信した処理情報のうち処理内容に格納された「追加」を認識し、追加処理を実行する。まず、差分反映部14は、処理内容に格納された子情報総数「3」と、操作箇所に格納された順番「2」とに基づいて、リレーショナルデータベース15に記憶された情報のうち「2」以上の順番を更新する必要があることを認識する。次に差分反映部14は、リレーショナルデータベース15に記憶された情報のうち「2」以上の順番を表す数値に1を足す。その後、差分反映部14はデータ「1万」、順番「2」というデータをリレーショナルデータベース15に追加させる。
【0113】
具体的には、差分反映部14は、SQLを作成し、リレーショナルデータベース15に対して送信する。図9−2に示した場合には、差分反映部14は、SQLコマンド「UPDATE」を用いて順番「2」を順番「3」に更新する。また、差分反映部14は、SQLコマンド「INSERT」を用いて、順番「2」のデータ「1万」をリレーショナルデータベース15に追加する。
【0114】
次に図10−1および図10−2を用いて複製作成装置10が行う更新処理について、詳しく説明する。ここで、図10−1は、実施例1に係る更新処理の流れを詳しく説明する図(1)である。また、図10−2は、実施例1に係る更新処理の流れを詳しく説明する図(2)である。また、以下の説明において追加処理と同様の処理について、は説明を省略する。
【0115】
ネットワークデータベース21から更新処理の内容を受信した差分抽出部11は、処理内容に「更新」を格納し、操作データに「2万」を格納した処理情報を作成する。また、図10−1および図10−2に例示した場合には、差分抽出部11は、追加処理の場合と同ように、親箇所にアドレス「X」を格納する。ここで、処理内容が「更新」の場合には、差分抽出部11は、親レコードが有する子情報総数の数を処理内容に格納せず、ネットワークデータベース21に対して子情報総数の更新を要求しない。
【0116】
ここで、図10−1に例示した場合には、差分抽出部11は、操作箇所に順序を表す数値「2」を格納する。一方、図10−2に例示した場合には、差分抽出部11は、操作箇所にアドレス「Z」を格納する。次に、差分抽出部11は、作成した処理情報を順序番号生成部13に送信する。
【0117】
順序番号生成部13は、差分抽出部11から受信した処理情報のうち操作箇所が順序を表す数値であるかどうかを確認する。図10−1に例示した場合には、順序番号生成部13は、操作箇所に格納された情報が順番「2」であるので、処理情報を更新せずに差分反映部14へ送信する。その後、順序番号生成部13は、変更した処理情報を差分反映部14へ送信する。
【0118】
一方、図10−2に例示した場合には、順序番号生成部13は、操作箇所に格納された情報がアドレス「Z」であるので、追加処理の場合と同様に、ネットワークデータベース21を検索し、操作箇所に格納されたアドレス「Z」を順番「2」に変更する。その後、順序番号生成部13は、変更した処理情報を差分反映部14へ送信する。
【0119】
差分反映部14は、受信した処理情報のうち処理内容に格納された「更新」を認識し、更新処理を実行する。具体的には、差分反映部14は、図10−1および図10−2に示した場合には、SQLコマンド「UPDATE」を用いて、順番「2」のデータ「1万」を「2万」に更新する。
【0120】
次に図11−1および図11−2を用いて複製作成装置10が行う削除処理について、詳しく説明する。ここで、図11−1は、実施例1に係る削除処理の流れを詳しく説明する図(1)である。また、図11−2は、実施例1に係る更新処理の流れを詳しく説明する図(2)である。また、以下の説明において追加処理と同様の処理について、は説明を省略する。
【0121】
ネットワークデータベース21から削除処理の内容を取得した差分抽出部11は、処理内容に「削除」を格納した処理情報を作成する。また、図11−1および図11−2に例示した場合には、差分抽出部11は、追加処理の場合と同様に、親箇所にアドレス「X」を格納する。
【0122】
ここで、処理内容が「削除」の場合には、差分抽出部11は、削除される情報の内容を操作データに格納しない。また、差分抽出部11は、親レコードが有する子情報総数「3」から1を引いた「2」を新たな子情報総数として処理内容に格納する。また、差分抽出部11は、親レコードが有する子情報総数「3」を「2」に更新する。
【0123】
ここで、図11−1に例示した場合には、差分抽出部11は、操作箇所に順番「2」を格納する。一方、図11−2に例示した場合には、差分抽出部11は、操作箇所にアドレス「Z」を格納する。その後、差分抽出部11は、作成した処理情報を順序番号生成部13へ送信する。
【0124】
順序番号生成部13は、差分抽出部11から受信した処理情報のうち操作箇所が順番を表す数値であるかどうかを確認する。図11−1に例示した場合には、順序番号生成部13は、操作箇所に格納された情報が順番「2」であるので、処理情報を更新せずに差分反映部14へ送信する。
【0125】
一方、図11−2に例示した場合には、順序番号生成部13は、操作箇所に格納された情報がアドレス「Z」であるので、ネットワークデータベース21を検索し、操作箇所に格納されたアドレス「Z」を順番「2」に変更する。その後、順序番号生成部13は、変更した処理情報を差分反映部14へ送信する。
【0126】
差分反映部14は、受信した処理情報のうち処理内容に格納された「削除」より、削除処理を実行する。図11−1および図11−2に例示した場合には、差分反映部14は、操作箇所に格納された順番「2」を認識する。次に、差分抽出部14は、リレーショナルデータベース15に対してSQLコマンド「DELETE」を送信し、順番「2」が付されて記憶された情報を削除するように要求する。
【0127】
次に、差分反映部14は、処理内容に格納された子情報総数「2」と、操作箇所に格納された順番「2」とに基づいて、リレーショナルデータベース15に記憶された情報のうち更新すべき順番が「3」以上であることを認識する。次に差分反映部14は、リレーショナルデータベース15に記憶された情報のうち順番「3」を順番「2」へSQLコマンド「UPDATE」を用いて更新する。
【0128】
次に図12を用いて、初期抽出部12が実行する初期抽出の流れについて、説明する。ここで、図12は、実施例1の初期抽出の流れを説明するフローチャートである。
【0129】
まず、初期抽出部12は、ネットワークデータベース21に記憶された情報がリレーショナルデータベース15に複製されていないことをトリガとして、初期抽出を実行する。まず、初期抽出部12は、順序番号のカウンタを「0」に設定し(ステップS101)、処理内容に「初期」を格納する(ステップS102)。
【0130】
次に、初期抽出部12は、親レコードを検索し(ステップS103)、一の親レコードに関連付けられた子レコードの検索を開始する(ステップS104)。初期抽出部12は、各レコードに付されたポインタが指し示す子レコードを検索し(ステップS104)、子レコードを記憶する(ステップS105)。また、初期抽出部12は、子レコードを記憶するたびに(ステップS105)、子レコードの順序番号をカウントアップする(ステップS106)。次に、初期抽出部12は、操作箇所と操作データと親箇所とを格納した処理情報を差分反映部14に送信する(ステップS107)。
【0131】
次に、初期抽出部12は、一の親レコードに関連付けられた子レコードをすべて検索したかを判別する(ステップS108)。初期抽出部12は、一の親レコードに関連付けられた子レコードを全て検索していない場合には(ステップS108否定)、ポインタが示す次の子レコードについて、検索を実行する(ステップS104)。
【0132】
また、初期抽出部12は、一の親レコードに関連付けられた子レコードすべてを検索した場合には(ステップS108肯定)、カウントしていた順序番号を子情報総数として親レコードに付すように、ネットワークデータベース21に対して要求する(ステップS109)。その後、初期抽出部12は処理を終了する。
【0133】
次に、図13を用いて差分抽出部11が行う処理の流れを説明する。ここで、図13は、実施例1に係る差分抽出部が行う処理の流れを説明するフローチャートである。まず、差分抽出部11は、処理対象となるレコードの情報をネットワークデータベース21から受信したことをトリガとして処理を開始する。
【0134】
まず、差分抽出部11は、ネットワークデータベース21が検索処理を実行しているかを判別する(ステップS110)。ネットワークデータベース21が検索処理を実行している場合には(ステップS110肯定)、差分抽出部11は、検索処理を実行し(ステップS113)、その後処理を終了する。
【0135】
一方、ネットワークデータベース21が検索処理を実行していない場合には(ステップS110否定)、差分抽出部11は、ネットワークデータベース21が追加処理を実行しているかを判別する(ステップS111)。
【0136】
ネットワークデータベース21が追加処理を実行している場合には(ステップS111肯定)、差分抽出部11は、追加処理を実行し(ステップS114)、処理情報を順序番号生成部13に送信する(ステップS117)。その後、差分抽出部11は、送信した処理情報のキャッシュを消去して(ステップS118)、処理を終了する。
【0137】
一方、ネットワークデータベース21が追加処理を実行していない場合には(ステップS111否定)、差分抽出部11は、ネットワークデータベース21が更新処理を実行しているかを判別する(ステップS112)。
【0138】
ネットワークデータベース21が更新処理を実行している場合には(ステップS112肯定)、差分抽出部11は、更新処理を実行し(ステップS115)、処理情報を順序番号生成部13に送信する(ステップS117)。その後、差分抽出部11は、送信した処理情報のキャッシュを消去して(ステップS118)、処理を終了する。
【0139】
一方、ネットワークデータベース21が更新処理を実行していない場合には(ステップS112否定)、差分抽出部11は、ネットワークデータベースが21が削除処理を実行していると判別し、削除処理を実行する(ステップS116)。その後、差分抽出部11は、処理情報を順序番号生成部13に送信し(ステップS117)、送信した処理情報のキャッシュを消去して(ステップS118)、処理を終了する。
【0140】
次に、図14−1を用いて差分抽出部11が実行する検索処理の流れについて、詳しく説明する。ここで、図14−1は、実施例1に係る差分抽出部の検索処理を説明するフローチャートである。
【0141】
ネットワークデータベース21が検索処理を実行していた場合には(ステップS110肯定)、差分抽出部11は、検索処理を開始する(ステップS113)。まず、差分抽出部11は、ネットワークデータベース21が親レコードの検索をしているかを判別する(ステップS119)。
【0142】
ネットワークデータベース21が親レコードの検索をしていない場合には(ステップS119否定)、ネットワークデータベース21が子レコードの検索をしているので、差分抽出部11は、子レコードの順番をカウントする(ステップS120)。その後、差分抽出部11は検索処理を終了する。
【0143】
一方、ネットワークデータベース21が親レコードの検索をしている場合には(ステップS119肯定)、差分抽出部11は、処理情報のうち操作箇所が「順序」である旨の情報を格納し(ステップS121)、順序番号を「0」と格納する(ステップS122)。その後、差分抽出部11は、検索処理を終了する。
【0144】
次に、図14−2を用いて差分抽出部11が実行する追加処理の流れについて、詳しく説明する。ここで、図14−2は、実施例1に係る差分抽出部の追加処理を説明するフローチャートである。
【0145】
ネットワークデータベース21が追加処理を実行していた場合には(ステップS111肯定)、差分抽出部11は、追加処理を開始する(ステップS114)。まず、差分抽出部11は、ダイレクト検索を実行する(ステップS123)。
【0146】
ダイレクト検索終了後、差分抽出部11は、処理情報の処理内容に「追加」を格納する(ステップS124)。次に、差分抽出部11は、子情報総数を親レコードから取得し(ステップS125)、取得した子情報総数に1を足す(ステップS126)。
【0147】
次に、差分抽出部11は、子情報総数に1を足した値を新たな子情報総数として親レコードを更新するようにネットワークデータベース21に要求し、新たな子情報総数を処理情報の処理内容に格納する(ステップS127)。
【0148】
次に、差分抽出部11は、ネットワークデータベース21から取得した追加処理の対象であるレコードの情報を、処理情報の操作データに格納する(ステップS128)。その後、差分抽出部11は、追加処理を終了する。
【0149】
次に、図14−3を用いて差分抽出部11が実行する更新処理の流れについて、詳しく説明する。ここで、図14−3は、実施例1に係る差分抽出部の更新処理を説明するフローチャートである。
【0150】
ネットワークデータベース21が更新処理を実行していた場合には(ステップS112肯定)、差分抽出部11は、更新処理を開始する(ステップS115)。まず、差分抽出部11は、ダイレクト検索を実行する(ステップS129)。ダイレクト検索終了後、差分抽出部11は、処理情報の操作内容に「更新」を格納する(ステップS130)。
【0151】
次に、差分抽出部11は、ネットワークデータベース21から取得した更新処理の対象であるレコードの情報を、処理情報の操作データに格納する(ステップS131)。その後、差分抽出部11は、更新処理を終了する。
【0152】
次に、図14−4を用いて差分抽出部11が実行する削除処理の流れについて、詳しく説明する。ここで、図14−4は、実施例1に係る差分抽出部の削除処理を説明するフローチャートである。
【0153】
ネットワークデータベース21が更新処理を実行していない場合には(ステップS112否定)、差分抽出部11は、削除処理を開始する(ステップS116)。まず、差分抽出部11は、ダイレクト検索を実行する(ステップS132)。
【0154】
ダイレクト検索終了後、差分抽出部11は、処理情報の操作内容に「削除」を格納する(ステップS133)。次に、差分抽出部11は、子情報総数を親レコードから取得し(ステップS134)、取得した子情報総数から1を引く(ステップS135)。
【0155】
次に、差分抽出部11は、子情報総数から1を引いた値を新たな子情報総数として親レコードを更新するようにネットワークデータベース21に要求し、新たな子情報総数を処理情報の処理内容に格納する(ステップS136)。その後、差分抽出部11は、削除処理を終了する。
【0156】
次に、図15を用いて差分抽出部11が行うダイレクト検索について、詳しく説明する。ここで、ダイレクト検索とは、処理対象のレコードがアドレスによって指定されているかを判別する処理である。差分抽出部11は、応用プログラムが処理対象のレコードをアドレスによって指定した場合には、ネットワークデータベース21から親レコードのアドレスを受信しない。
【0157】
しかし、複製作成装置10は、処理対象のレコードを指定するアドレスを順序を表す数値に変更する場合には、親レコードを指定するアドレスを必要とする。よって、差分抽出部11は、ダイレクト検索を実行し、処理対象のレコードがアドレスによって指定されている場合には、指定された子レコードに関連付けられた親レコードを検索し、親レコードが記憶されたアドレスを取得する。ここで、図15は、実施例1に係る差分抽出部が行うダイレクト検索を説明するフローチャートである。
【0158】
差分抽出部11は、ダイレクト検索を開始した場合には、ネットワークデータベース21から受信した処理対象のレコードを順番によって指定しているかどうかを判別する(ステップS137)。処理対象である子レコードが順番で指定されている場合には(ステップS137肯定)、差分抽出部11は、ネットワークデータベース21から受信した各処理情報を格納する(ステップS142)。
【0159】
具体的には、差分抽出部11は、操作箇所に格納する情報が「順序」によるものであることを設定し、処理対象である子レコードの「順序」を格納する。また、差分抽出部11は、親箇所に親レコードの「アドレス」を格納する。その後、差分抽出部11はダイレクト検索を終了する。
【0160】
一方、処理対象である子レコードが順番で指定されていない場合には(ステップS137否定)、ネットワークデータベース21から取得した処理対象である子レコードはアドレスによって特定されている。そこで、処理対象である子レコードが順番で指定されていない場合には(ステップS137否定)、差分抽出部11は、ネットワークデータベース21から取得した情報に、親レコードのアドレスが含まれているかを判別する(ステップS138)。
【0161】
親レコードのアドレスが含まれていた場合には(ステップS138否定)、差分抽出部11は、処理情報の操作箇所に格納する情報が「アドレス」によるものであることを設定し、処理対象である子レコードの「アドレス」を格納する(ステップS141)。また、差分抽出部11は、親箇所に親レコードの「アドレス」を格納する(ステップS141)。その後、差分抽出部11は、ダイレクト検索を終了する。
【0162】
一方、親レコードの「アドレス」が含まれていなかった場合には(ステップS138肯定)、差分抽出部11は、子レコードの「アドレス」を用いてネットワークデータベース21から親レコードを検索する(ステップS139)。次に、差分抽出部11は、ステップS139にて検索した親レコードのアドレスを取得し、処理情報の親箇所に親レコードの「アドレス」を格納する(ステップS140)。
【0163】
次に、差分抽出部11は、処理情報の操作箇所に格納する情報が「アドレス」によるものであることを設定し、処理対象である子レコードの「アドレス」を格納する(ステップS141)。また、差分抽出部11は、親箇所に親レコードの「アドレス」を格納する(ステップS141)。その後、差分抽出部11は、ダイレクト検索を終了する。
【0164】
次に、図16を用いて順序番号生成部13の処理の流れについて、説明する。ここで、図16は、実施例1に係る順序番号生成部の処理を説明するフローチャートである。順序番号生成部13は、差分抽出部11から処理情報を受信したことをトリガとして、処理を開始する。
【0165】
まず、順序番号生成部13は、差分抽出部11から受信した処理情報のうち操作箇所を表す情報が「順序」によるものであるかを判別する(ステップS143)。操作箇所を表す情報が「順序」によるものである場合には(ステップS143肯定)、順序番号生成部13は、差分抽出部11から取得した処理情報をそのまま差分反映部14へ送信し(ステップS150)、処理を終了する。
【0166】
一方、操作箇所を表す情報が「順序」によるものではない場合には(ステップS143否定)、順序番号生成部13は、順序番号を生成するカウンタを初期化する(ステップS144)。
【0167】
具体的には、順序番号生成部13は、図21に例示した作業域に「0」を格納する。次に、順序番号生成部13は、差分抽出部11から取得した処理情報の親箇所から親レコードの「アドレス」を取得し、取得した「アドレス」を有する親レコードをネットワークデータベース21から検索する(ステップS145)。
【0168】
次に、順序番号生成部13は、作業域に格納した数値に「1」を加え(ステップS146)、ステップS145にて検索した親レコードに付されたポインタが示す子レコードを検索する(ステップS147)。
【0169】
ステップS147にて検索した子レコードの「アドレス」が、処理情報の操作箇所に格納されていた「アドレス」と一致した場合には(ステップS148肯定)、順序番号生成部13は、処理情報の操作箇所を表す情報を「順序」によるものであると設定し、作業域の数を順番として格納する(ステップS149)。その後、順序番号生成部13は、処理情報をそのまま差分反映部14へ送信し(ステップS150)、処理を終了する。
【0170】
一方、ステップS147にて検索した子レコードの「アドレス」が、操作箇所に格納されていた「アドレス」と一致しない場合には(ステップS148否定)、順序番号生成部13は、再度カウンタを1つ増やし(ステップS146)、ポインタが示す次の子レコードを検索する(ステップS147)。
【0171】
次に、図17を用いて差分反映部14の処理の流れについて、説明する。ここで、図17は、実施例1に係る差分反映部の処理を説明するフローチャートである。差分反映部14は、初期抽出部12もしくは順序番号生成部13から処理情報を取得したことをトリガとして処理を開始する。
【0172】
まず、差分反映部14は、処理情報の処理内容に格納された情報が「追加」であるかどうかを判別する(ステップS151)。処理内容に格納された情報が「追加」である場合には(ステップS151肯定)、差分反映部14は、追加処理を実行し(ステップS154)、その後、処理を終了する。
【0173】
一方、処理内容に格納された情報が「追加」ではない場合には(ステップS151否定)、差分反映部14は、処理内容に格納された情報が「更新」であるかどうかを判別する(ステップS152)。処理内容に格納された情報が「更新」である場合には(ステップS152肯定)、差分反映部14は、更新処理を実行し(ステップS155)、その後、処理を終了する。
【0174】
一方、処理内容に格納された情報が「更新」ではない場合には(ステップS152否定)、差分反映部14は、処理内容に格納された情報が「初期」であるかどうかを判別する(ステップS153)。処理内容に格納された情報が「初期」である場合には(ステップS153肯定)、差分反映部14は、処理情報に基づいてリレーショナルデータベース15に複製を作成し(ステップS156)、その後、処理を終了する。
【0175】
一方、処理内容に格納された情報が「初期」ではない場合には(ステップS153否定)、差分反映部14は、削除処理を実行し(ステップS157)、その後、処理を終了する。
【0176】
次に、図18−1を用いて差分反映部14が実行する追加処理の流れについて、詳しく説明する。ここで、図18−1は、実施例1に係る差分反映部の追加処理を説明するフローチャートである。
【0177】
処理内容に格納された情報が「追加」である場合には(ステップS151肯定)、差分反映部14は、操作箇所に格納された順番を表す数値が処理内容に格納された子情報総数以上であるかを判別する(ステップS158)。
【0178】
順番を表す数値が子情報総数以上である場合には(ステップS158肯定)、差分反映部14は、SQLコマンド「INSERT」を用いて処理情報に格納された各情報をリレーショナルデータベース15に対して挿入する(ステップS161)。その後、差分反映部14は追加処理を終了する。
【0179】
一方、順番を表す数値が子情報総数未満であった場合には(ステップS158否定)、差分反映部14は、SQLコマンド「SELECT」を用いて、順番を表す数値よりも後の順番のレコードをリレーショナルデータベース15から選択する(ステップS159)。
【0180】
次に、差分反映部14は、SQLコマンド「UPDATE」を用いて、ステップS159で選択したレコードの順番を表す数値に1を足す(ステップS160)。その後、差分反映部14は、SQLコマンド「INSERT」を用いて処理情報に格納された各情報をリレーショナルデータベース15に対して挿入する(ステップS161)。その後、差分反映部14は追加処理を終了する。
【0181】
次に、図18−2を用いて差分反映部14が実行する更新処理の流れについて、詳しく説明する。ここで、図18−2は実施例1に係る差分反映部の更新処理を説明するフローチャートである。
【0182】
処理内容に格納された情報が「更新」である場合には(ステップS152肯定)、差分反映部14は、SQLコマンド「UPDATE」を用いて、処理情報に格納された情報をリレーショナルデータベース15に対して反映させる。(ステップS162)。その後、差分反映部14は、更新処理を終了する。
【0183】
次に図18−3を用いて差分反映部14が実行する削除処理の流れについて、詳しく説明する。ここで、図18−3は、実施例1に係る差分反映部の削除処理を説明するフローチャートである。
【0184】
処理内容に格納された情報が「初期」でなかった場合には(ステップS153否定)、差分反映部14は、SQLコマンド「DELETE」を用いて、処理情報をリレーショナルデータベース15に反映させる(ステップS163)。
【0185】
次に、差分反映部14は、操作箇所に格納された順序を表す数値が処理内容に格納された子情報総数に1を足した数以上であるかを判別する(ステップS164)。順序を表す数値が子情報総数に1を足した数以上である場合には(ステップS164肯定)、差分反映部14は、削除処理を終了する。
【0186】
一方、順序を表す数値が子情報総数に1を足した数未満であった場合には(ステップS164否定)、差分反映部14は、順番を表す数値よりも後の順番のレコードをリレーショナルデータベース15から選択する(ステップS165)。具体的には、差分反映部14は、SQLコマンド「SELECT」を用いて、順番を表す数値よりも後の順番のレコードをリレーショナルデータベース15から選択する。
【0187】
次に、差分反映部14は、SQLコマンド「UPDATE」を用いて、ステップS165で選択したレコードの順番を表す数値から1を引く(ステップS166)。その後、差分反映部14は、削除処理を終了する。
【0188】
[実施例1の効果]
上述してきたように、実施例1に係る複製作成装置10は、複製元の情報に各種変更があった場合には、記憶された情報の順番性を保ったまま、差分のみを複製先に対して反映させることができる。そのため、複製作成装置10は、サーバ資源の消費を最小限に抑えることができる。
【0189】
また、複製作成装置10は、複製元であるネットワークデータベース21に対して各種処理を要求する応用プログラムの煩雑な修正を伴わず、複製元の情報に対する修正を最小限におさえるので、サーバ資源の消費を最小限に抑えることができる。
【0190】
また、実施例1に係る複製作成装置10は、応用プログラムが各種処理の対象となる子レコードをアドレスで指定した場合には、指定されたアドレスを有する子レコードをポインタ順に検索し、指定されたアドレスを有する子レコードの順番を取得する。
【0191】
よって、複製作成装置10は、応用プログラムが各種処理の対象となる子レコードを指定する方法によらず、各種処理の対象となる子レコードの順番を取得することができるので、応用プログラムの煩雑な修正を伴わず、サーバ資源の消費を最小限に抑えることができる。
【0192】
また、実施例1に係る複製作成装置10は、ネットワークデータベース21に記憶された親レコードに対して当該親レコードに関連付けられた子レコードの数を子情報総数として付与する。また、複製作成装置10は、ネットワークデータベース21に記憶された子レコードに対して変更処理が実行された場合には、子情報総数を用いて、リレーショナルデータベース15に記憶された情報から更新すべき情報を選択することができる。
【0193】
結果として、複製作成装置10は、リレーショナルデータベース15を更新する場合には、リレーショナルデータベース15に対して余計な検索処理を実行せずに更新処理を実行することができる。よって、複製作成装置10は、サーバ資源の消費を最小限に抑えることができる。
【実施例2】
【0194】
これまで本発明の実施例について、説明したが、本発明は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
【0195】
(1)処理情報に格納される情報
実施例1に係る複製作成装置は、処理情報の操作箇所に各種処理の対象となった子データの順番を表す数値もしくはアドレスを格納した。しかし、実施例はこれに限定されるものではなく、別の情報を付加して格納しても良い。
【0196】
すなわち、処理情報の操作箇所に格納される情報を用いて各種処理の対象となった子データの順番を特定できればよい。例えば、ネットワークデータベースが複数のHDD(Hard Disk Drive)から構成されるネットワークデータベースであった場合には、操作箇所に、どのHDDに記憶されているか、どの親レコードと関連付けられているか、および何番目の順番であるかを格納してもよい。
【0197】
また、実施例1に係る複製作成装置は、処理情報の親箇所に親レコードのアドレスを格納した。しかし、実施例はこれに限定されるものではなく、例えば、親レコードに記憶された情報を格納しても良い。各親レコードに一意の情報が記憶されているのであれば、各種処理の対象となるテーブルをRDBに記憶された複製から選択することが可能となるからである。
【0198】
(2)差分抽出部の設置場所
実施例1に係る差分抽出部11は、複製作成装置10が有しているが、これは別の様態であってもよい。すなわち、複製作成装置は、複製元であるネットワークデータベースと複製先であるリレーショナルデータベースとが物理的に遠距離にある場合には、差分抽出部をネットワークデータベースに組み込んだ方が複製の効率がよい。例えば、複製元のネットワークデータベースの近隣に差分抽出部を設置し、複製作成装置が有する他の部分をリレーショナルデータベースの近隣に設置し、互いをネットワークにより接続してもよい。
【0199】
ネットワークデータベースに記憶された情報が有する順番関係を保ったまま、差分のみをリレーショナルデータベースに記憶された情報に反映させることができれば、複製作成装置は、目的を達することができるからである。
【0200】
(3)初期抽出部
実施例1に係る複製作成装置は、初期抽出部を用いて、ネットワークデータベースの情報をリレーショナルデータベースに複製していた。しかし、実施例は、これに限定されるものではなく、例えば初期抽出部を有さなくても、目的を達することができる。
【0201】
例えば、あらかじめNDBの複製としてRDBが構築されている場合には、複製作成装置は、初期抽出部を必要とせず、差分抽出部、順序番号生成部および差分反映部のみを用いて、差分を反映させることができる。
【0202】
(4)プログラム
ところで、実施例1に係る複製作成装置では、ハードウェアを利用して各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。
【0203】
そこで、以下では、図24を用いて実施例1に示した複製作成装置と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
【0204】
図24に例示されたコンピュータ200は、HDD150、RAM(Random Access Memory)120、ROM(Read Only Memory)130、CPU(Central Processing Unit)140、をバス170で接続されている。さらにバス170には、ネットワークデータベース21およびリレーショナルデータベース15と接続するための接続端子部分I/O(Input/Output)160が接続されている。
【0205】
ROM130には、差分抽出プログラム131、初期抽出プログラム132、順序番号生成プログラム133、差分反映プログラム134があらかじめ保持されている。CPU140が各プログラム131〜134をROM130から読み出して実行することによって、図24に示すように、各プログラム131〜134は、差分抽出プロセス141、初期抽出プロセス142、順序番号生成プロセス143、差分反映プロセス144として機能するようになる。
【0206】
なお、各プロセス141〜144は、図1に示した差分抽出部11、初期抽出部12、順序番号生成部13、差分反映部14にそれぞれ対応する。
【0207】
なお、各プログラム131〜134はROM130に保持されている必要は無く、例えばHDD150に記録されており、CPU140によって展開され、各プロセス141〜144として機能するようにしてもよい。また、各プログラム131〜134は、RAM120に保持されてもよい。
【0208】
なお、本実施例で説明した複製作成プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【0209】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0210】
(付記1)複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出手順と、
前記順番情報算出手順によって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映手順と、
をコンピュータに実行させることを特徴とする情報複製プログラム。
【0211】
(付記2)前記順番情報算出手順は、所定のレコードから隣接するレコードを順に辿って変更対象となるレコードを検索する変更処理が実行された場合に、前記所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記1に記載の情報複製プログラム。
【0212】
(付記3)前記順番情報算出手順は、変更対象となるレコードが格納された複製先での位置を特定するアドレス情報を用いて変更処理が実行された場合に、当該アドレス情報で変更対象となるレコードを検索し、所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記1に記載の情報複製プログラム。
【0213】
(付記4)前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置に記憶された情報に対して新たな情報が追加された場合には、当該追加された情報の順番情報を算出し、
前記複製先反映手順は、前記順番情報算出手順によって算出された前記順番情報が示す順番以後の順序番号を加算するように、前記変更処理を前記複製先の順序情報に反映し、前記複製元に追加された情報を前記順番情報とともに前記複製先に追加することを特徴とする付記1〜3のいずれか1つに記載の情報複製プログラム。
【0214】
(付記5)前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置に記憶された情報が削除された場合には、当該削除された情報の順番情報を算出し、
前記複製先反映手順は、前記複製元から削除された情報を前記順番情報とともに前記複製先から削除し、前記順番情報算出手順によって算出された前記順番情報が示す順番以後の順序番号を減算するように、前記変更処理を前記複製先の順序情報に反映することを特徴とする付記1〜3のいずれか1つに記載の情報複製プログラム。
【0215】
(付記6)前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置記憶された情報が更新された場合には、当該更新された情報の順番情報を算出し、
前記複製先反映手順は、前記順番情報算出手順によって算出された前記順番情報が示す順序に該当する複製先の情報に対して、前記更新の内容を反映することを特徴とする付記1〜3のいずれか1つに記載の情報複製プログラム。
【0216】
(付記7)複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出部と、
前記順番情報算出部によって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映部と、
を備えることを特徴とする情報複製装置。
【0217】
(付記8)前記順番情報算出部は、所定のレコードから隣接するレコードを順に辿って変更対象となるレコードを検索する変更処理が実行された場合に、前記所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記7に記載の情報複製装置。
【0218】
(付記9)前記順番情報算出部は、変更対象となるレコードが格納された複製先での位置を特定するアドレス情報を用いて変更処理が実行された場合に、当該アドレス情報で変更対象となるレコードを検索し、所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記7に記載の情報複製装置。
【0219】
(付記10)前記順番情報算出部は、前記変更処理として、前記複製元の記憶装置に記憶された情報に対して新たな情報が追加された場合には、当該追加された情報の順番情報を算出し、
前記複製先反映部は、前記順番情報算出部によって算出された前記順番情報が示す順番以後の順序番号を加算するように、前記変更処理を前記複製先の順序情報に反映し、前記複製元に追加された情報を前記順番情報とともに前記複製先に追加することを特徴とする付記7〜9のいずれか1つに記載の情報複製装置。
【0220】
(付記11)前記順番情報算出部は、前記変更処理として、前記複製元の記憶装置に記憶された情報が削除された場合には、当該削除された情報の順番情報を算出し、
前記複製先反映部は、前記複製元から削除された情報を前記順番情報とともに前記複製先から削除し、前記順番情報算出部によって算出された前記順番情報が示す順番以後の順序番号を減算するように、前記変更処理を前記複製先の順序情報に反映することを特徴とする付記7〜9のいずれか1つに記載の情報複製装置。
【0221】
(付記12)前記順番情報算出部は、前記変更処理として、前記複製元の記憶装置記憶された情報が更新された場合には、当該更新された情報の順番情報を算出し、
前記複製先反映部は、前記順番情報算出部によって算出された前記順番情報が示す順序に該当する複製先の情報に対して、前記更新の内容を反映することを特徴とする付記7〜9のいずれか1つに記載の情報複製装置。
【0222】
(付記13)複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出ステップと、
前記順番情報算出ステップによって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映ステップと、
を含むことを特徴とする情報複製方法。
【0223】
(付記14)前記順番情報算出ステップは、所定のレコードから隣接するレコードを順に辿って変更対象となるレコードを検索する変更処理が実行された場合に、前記所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記13に記載の情報複製方法。
【0224】
(付記15)前記順番情報算出ステップは、変更対象となるレコードが格納された複製先での位置を特定するアドレス情報を用いて変更処理が実行された場合に、当該アドレス情報で変更対象となるレコードを検索し、所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記13に記載の情報複製方法。
【0225】
(付記16)前記順番情報算出ステップは、前記変更処理として、前記複製元の記憶装置に記憶された情報に対して新たな情報が追加された場合には、当該追加された情報の順番情報を算出し、
前記複製先反映ステップは、前記順番情報算出ステップによって算出された前記順番情報が示す順番以後の順序番号を加算するように、前記変更処理を前記複製先の順序情報に反映し、前記複製元に追加された情報を前記順番情報とともに前記複製先に追加することを特徴とする付記13〜15のいずれか1つに記載の情報複製方法。
【0226】
(付記17)前記順番情報算出ステップは、前記変更処理として、前記複製元の記憶装置に記憶された情報が削除された場合には、当該削除された情報の順番情報を算出し、
前記複製先反映ステップは、前記複製元から削除された情報を前記順番情報とともに前記複製先から削除し、前記順番情報算出ステップによって算出された前記順番情報が示す順番以後の順序番号を減算するように、前記変更処理を前記複製先の順序情報に反映することを特徴とする付記13〜15のいずれか1つに記載の情報複製方法。
【0227】
(付記18)前記順番情報算出ステップは、前記変更処理として、前記複製元の記憶装置記憶された情報が更新された場合には、当該更新された情報の順番情報を算出し、
前記複製先反映ステップは、前記順番情報算出ステップによって算出された前記順番情報が示す順序に該当する複製先の情報に対して、前記更新の内容を反映することを特徴とする付記13〜15のいずれか1つに記載の情報複製方法。
【符号の説明】
【0228】
10 複製作成装置
11 差分抽出部
12 初期抽出部
13 順序番号生成部
14 差分反映部
15 リレーショナルデータベース
21 ネットワークデータベース
200 コンピュータ
120 RAM
130 ROM
140 CPU
150 HDD
160 I/O

【特許請求の範囲】
【請求項1】
複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出手順と、
前記順番情報算出手順によって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映手順と、
をコンピュータに実行させることを特徴とする情報複製プログラム。
【請求項2】
前記順番情報算出手順は、所定のレコードから隣接するレコードを順に辿って変更対象となるレコードを検索する変更処理が実行された場合に、前記所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする請求項1に記載の情報複製プログラム。
【請求項3】
前記順番情報算出手順は、変更対象となるレコードが格納された複製先での位置を特定するアドレス情報を用いて変更処理が実行された場合に、当該アドレス情報で変更対象となるレコードを検索し、所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする請求項1に記載の情報複製プログラム。
【請求項4】
前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置に記憶された情報に対して新たな情報が追加された場合には、当該追加された情報の順番情報を算出し、
前記複製先反映手順は、前記順番情報算出手順によって算出された前記順番情報が示す順番以後の順序番号を加算するように、前記変更処理を前記複製先の順番情報に反映し、前記複製元に追加された情報を前記順番情報とともに前記複製先に追加することを特徴とする請求項1〜3のいずれか1つに記載の情報複製プログラム。
【請求項5】
前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置に記憶された情報が削除された場合には、当該削除された情報の順番情報を算出し、
前記複製先反映手順は、前記複製元から削除された情報を前記順番情報とともに前記複製先から削除し、前記順番情報算出手順によって算出された前記順番情報が示す順番以後の順序番号を減算するように、前記変更処理を前記複製先の順番情報に反映することを特徴とする請求項1〜3のいずれか1つに記載の情報複製プログラム。
【請求項6】
複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出部と、
前記順番情報算出部によって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映部と、
を備えることを特徴とする情報複製装置。
【請求項7】
複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出ステップと、
前記順番情報算出ステップによって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映ステップと、
を含むことを特徴とする情報複製方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4−1】
image rotate

【図4−2】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7−1】
image rotate

【図7−2】
image rotate

【図7−3】
image rotate

【図7−4】
image rotate

【図8】
image rotate

【図9−1】
image rotate

【図9−2】
image rotate

【図10−1】
image rotate

【図10−2】
image rotate

【図11−1】
image rotate

【図11−2】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14−1】
image rotate

【図14−2】
image rotate

【図14−3】
image rotate

【図14−4】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18−1】
image rotate

【図18−2】
image rotate

【図18−3】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2010−238123(P2010−238123A)
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願番号】特願2009−87593(P2009−87593)
【出願日】平成21年3月31日(2009.3.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】