(57)【要約】【課題】応用プログラムおよびＮＤＢの修正をせずに、ＮＤＢに記憶された情報に対する変更をＲＤＢに記憶された情報へ反映させる処理の負担を少なくする。【解決手段】本願の開示する技術は、複製元の情報に対して変更処理が実行された場合に、変更された情報の順序を表す順番情報を、所定の情報から順に辿ることによって算出し、算出した順番情報を用いて複製先の情報から更新すべき情報を特定し、特定した情報を更新することによって、複製元の情報に対して実行された変更処理を複製先の情報に対して反映するので、応用プログラムおよびＮＤＢを変更することなく、複製処理の負担を少なくすることができる。【選択図】        図５
2010238123.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出手順と、
前記順番情報算出手順によって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映手順と、
をコンピュータに実行させることを特徴とする情報複製プログラム。
【請求項２】
前記順番情報算出手順は、所定のレコードから隣接するレコードを順に辿って変更対象となるレコードを検索する変更処理が実行された場合に、前記所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする請求項１に記載の情報複製プログラム。
【請求項３】
前記順番情報算出手順は、変更対象となるレコードが格納された複製先での位置を特定するアドレス情報を用いて変更処理が実行された場合に、当該アドレス情報で変更対象となるレコードを検索し、所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする請求項１に記載の情報複製プログラム。
【請求項４】
前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置に記憶された情報に対して新たな情報が追加された場合には、当該追加された情報の順番情報を算出し、
前記複製先反映手順は、前記順番情報算出手順によって算出された前記順番情報が示す順番以後の順序番号を加算するように、前記変更処理を前記複製先の順番情報に反映し、前記複製元に追加された情報を前記順番情報とともに前記複製先に追加することを特徴とする請求項１〜３のいずれか１つに記載の情報複製プログラム。
【請求項５】
前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置に記憶された情報が削除された場合には、当該削除された情報の順番情報を算出し、
前記複製先反映手順は、前記複製元から削除された情報を前記順番情報とともに前記複製先から削除し、前記順番情報算出手順によって算出された前記順番情報が示す順番以後の順序番号を減算するように、前記変更処理を前記複製先の順番情報に反映することを特徴とする請求項１〜３のいずれか１つに記載の情報複製プログラム。
【請求項６】
複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出部と、
前記順番情報算出部によって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映部と、
を備えることを特徴とする情報複製装置。
【請求項７】
複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出ステップと、
前記順番情報算出ステップによって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映ステップと、
を含むことを特徴とする情報複製方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報複製プログラム、情報複製装置および情報複製方法に関する。
【背景技術】
【０００２】
近年、複数の情報が相互に関連付けられたレコードを表形式で管理するＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ）が知られている。また、階層関係を示す情報と相対的な順序関係を示す情報とを付して記憶されたレコードを管理するＮＤＢ（Ｎｅｔｗｏｒｋ  ＤａｔａＢａｓｅ）が知られている。
【０００３】
ＮＤＢは、記憶するレコードに階層関係を示す情報を付して記憶している。具体的には、図２５に例示するように、ＮＤＢでは、レコード「Ａ１」について、「親レコード」であることを示す情報を記憶しており、レコード「Ａ１」が他のレコード「Ａ１１」〜「Ａ１３」よりも上位の情報であることを記憶している。
【０００４】
また、ＮＤＢは、レコード「Ａ１」以外の他のレコード「Ａ１１」〜「Ａ１３」について、「子レコード」であることを示す情報を記憶しており、レコード「Ａ１１」〜「Ａ１３」がレコード「Ａ１」の下位の情報であることを記憶している。
【０００５】
また、ＮＤＢは、記憶されるレコードの順序関係を示す情報として、次の順番に該当するレコードを示す情報である「ポインタ」を記憶している。例えば、図２５に示すようにＮＤＢは、「Ａ１１」の次のレコードが「Ａ１２」であることを示すポインタを記憶している。
【０００６】
一方、ＲＤＢは、順序関係として、記憶されるレコードに順序関係を示す数値を付して、各レコードの順序関係を記憶する。例えば、ＲＤＢは、順序関係として、レコード「Ａ１１」に対応付けて順番「１」を記憶している。
【０００７】
このようなＮＤＢおよびＲＤＢを利用する技術として、ＮＤＢのレコードをＲＤＢのレコードに変換して複製する技術が知られている。ここで、ＮＤＢでは、レコードの順序関係について、数値では記憶していないので、ＮＤＢのレコードをＲＤＢのレコードに変換した場合には、図２６に例示するように、ＲＤＢが記憶されるレコードの順序関係を認識することができない場合がある。
【０００８】
このため、ＮＤＢのレコードをＲＤＢのレコードに変換する場合に、各レコードの順序番号を生成し、生成された順序番号をＲＤＢに記憶させる技術が知られている（例えば、特許文献１および特許文献２参照）。具体的には、複製装置は、ＮＤＢの各レコードに付されたポインタをたどって、レコードの順番を一つずつ確認し、各レコードの順序番号を生成し、作成された順序番号を付した各レコードの複製を作成する。
【０００９】
ここで、複製装置は、ＮＤＢが記憶するレコードの変更（例えば、追加、更新、削除）が行われて順序関係が変化した場合には、ＲＤＢが記憶する順序番号を更新するために、各レコードの順序番号を再度生成し、生成された順序番号を付した各レコードの複製を再度作成する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−２５９０７５号公報
【特許文献２】特開２０００−２６７９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記した各レコードの順序番号を生成し、ＲＤＢに記憶させる技術では、ＮＤＢが記憶するレコードの変更が行われて順序関係が変化した場合に、生成された順序番号を付した各レコードの複製を再度作成する必要がる。このため、ＮＤＢの各レコードに付されたポインタをたどってレコードの順番を一つずつ確認して、順序番号を生成し、各レコードの複製を再度作成する結果、ＮＤＢが記憶するレコードの変更をＲＤＢに反映させる処理の負担が大きいという問題があった。
【００１２】
一方、ＮＤＢのレコードをＲＤＢのレコードに変換して複製する技術として、ＮＤＢの各レコードに順序関係を示す数値を付与した後、ＮＤＢのレコードをＲＤＢのレコードに変換して複製する技術が知られている。ここで、複製装置は、ＮＤＢが記憶するレコードの変更が行われて順序関係が変化した場合には、ＮＤＢに対してレコードの修正を要求する応用プログラムが順番を表す数値を修正し、各レコードに順序関係を示す数値を付与する。
【００１３】
しかし、上記したＮＤＢの各レコードに順序関係を示す数値を付与する技術では、ＮＤＢに対してレコードの修正を要求する応用プログラムが、順番を表す数値を修正している。このため、順番を表す数値を修正してＮＤＢの各レコードに順序関係を示す数値を付与するように応用プログラムを修正する必要があり、応用プログラムの修正を行う処理の負担が大きいという問題があった。また、ＮＤＢが記憶するレコードの変更が行われて順序関係が変化するたびに、各レコードに順序関係を示す数値が付与されたＮＤＢを再生成する必要があり、ＮＤＢが記憶するレコードの変更をＲＤＢに反映させる処理の負担が大きいという問題があった。
【００１４】
そこで、当出願によって開示される技術は、上記した従来技術の課題を解決するためになされたものであり、応用プログラムの修正およびＮＤＢの情報複製プログラムの再作成をすることなく、ＮＤＢが記憶するレコードの変更をＲＤＢに反映する情報複製プログラム、情報複製装置および情報複製方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本願の開示する技術は、複製元の情報に対して変更処理が実行された場合に、変更された情報の順序を表す順序情報を算出し、算出した順序情報を用いて複製先の情報を更新する。
【発明の効果】
【００１６】
本願の開示する技術は、ＮＤＢが記憶するレコードの変更をＲＤＢに反映させる処理の負担を小さくし、また、応用プログラムの修正およびＮＤＢの情報複製プログラムの再作成を不要とする。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例１に係る複製作成装置を表すブロック図である。
【図２】図２は、実施例１に係る初期抽出部が行う処理を説明する図である。
【図３】図３は、実施例１に係る順序番号生成部を説明する図である。
【図４−１】図４−１は、応用プログラムの処理を説明するための図（１）である。
【図４−２】図４−２は、応用プログラムの処理を説明するための図（２）である。
【図５】図５は、実施例１に係る差分抽出部を説明するための図である。
【図６】図６は、実施例１に係る差分反映部を説明するための図である。
【図７−１】図７−１は、実施例１に係る複製作成装置の処理の流れを説明する図（１）である。
【図７−２】図７−２は、実施例１に係る複製作成装置の処理の流れを説明する図（２）である。
【図７−３】図７−３は、実施例１に係る複製作成装置の処理の流れを説明する図（３）である。
【図７−４】図７−４は、実施例１に係る複製作成装置の処理の流れを説明する図（４）である。
【図８】図８は、実施例１に係る初期抽出の流れを詳しく説明する図である。
【図９−１】図９−１は、実施例１に係る追加処理の流れを詳しく説明する図（１）である。
【図９−２】図９−２は、実施例１に係る追加処理の流れを詳しく説明する図（２）である。
【図１０−１】図１０−１は、実施例１に係る更新処理の流れを詳しく説明する図（１）である。
【図１０−２】図１０−２は、実施例１に係る更新処理の流れを詳しく説明する図（２）である。
【図１１−１】図１１−１は、実施例１に係る削除処理の流れを詳しく説明する図（１）である。
【図１１−２】図１１−２は、実施例１に係る削除処理の流れを詳しく説明する図（２）である。
【図１２】図１２は、実施例１の初期抽出の流れを説明するフローチャートである。
【図１３】図１３は、実施例１に係る差分抽出部が行う処理の流れを説明するフローチャートである。
【図１４−１】図１４−１は、実施例１に係る差分抽出部の検索処理を説明するフローチャートである。
【図１４−２】図１４−２は、実施例１に係る差分抽出部の追加処理を説明するフローチャートである。
【図１４−３】図１４−３は、実施例１に係る差分抽出部の更新処理を説明するフローチャートである。
【図１４−４】図１４−４は、実施例１に係る差分抽出部の削除処理を説明するフローチャートである。
【図１５】図１５は、実施例１に係る差分抽出部が行うダイレクト検索を説明するフローチャートである。
【図１６】図１６は、実施例１に係る順序番号生成部の処理を説明するフローチャートである。
【図１７】図１７は、実施例１に係る差分反映部の処理を説明するフローチャートである。
【図１８−１】図１８−１は、実施例１に係る差分反映部の追加処理を説明するフローチャートである。
【図１８−２】図１８−２は、実施例１に係る差分反映部の更新処理を説明するフローチャートである。
【図１８−３】図１８−３は、実施例１に係る差分反映部の削除処理を説明するフローチャートである。
【図１９】図１９は、実施例１に係るデータの構造を説明する図である。
【図２０】図２０は、実施例１に係るネットワークデータベースの親レコードの管理域を表す図である。
【図２１】図２１は、実施例１に係る初期抽出部および順序番号生成部の作業域の構造を表す図である。
【図２２】図２２は、実施例１に係る差分抽出部の作業域の構造を表す図である。
【図２３】図２３は、実施例１に係る複製先のリレーショナルデータベースの構造を表す図である。
【図２４】図２４は、情報複製プログラムを実行するコンピュータの図である。
【図２５】図２５は、従来技術を表す図（１）である。
【図２６】図２６は、従来技術を表す図（２）である。
【発明を実施するための形態】
【実施例１】
【００１８】
以下に添付図面を参照してこの発明に係る情報複製プログラム、情報複製装置および情報複製方法の実施例を詳細に説明する。
【００１９】
以下の実施例では、情報複製装置の構成および処理の流れについて、順に説明する。
【００２０】
最初に、図１を用いて実施例１に係る複製作成装置の構成を説明する。ここで、図１は、実施例１に係る複製作成装置を表すブロック図である。複製作成装置１０は、差分抽出部１１と初期抽出部１２と順序番号生成部１３と差分反映部１４とを有し、リレーショナルデータベース１５およびネットワークデータベース２１と接続されている。また、リレーショナルデータベース１５は、差分反映部１４と接続されている。
【００２１】
ネットワークデータベース２１は、ネットワーク型データモデルを利用して複数の情報を記憶している。具体的には、ネットワークデータベース２１は、記憶されるレコードに階層関係を表す情報と相対的な順番関係を表す情報とを付して記憶している。また、ネットワークデータベース２１は、記憶する情報に対し、応用プログラムからの要求に応じて各種処理を実行し、実行する処理の内容を差分抽出部１１に通知する。
【００２２】
リレーショナルデータベース１５は、表形式を用いて複数の情報を関連付けて記憶している。具体的には、リレーショナルデータベース１５は、図２３に示すように、順番を表す数値を格納する領域と、レコードを格納する領域である操作データ域とを有している。ここで、図２３は、実施例１に係る複製先のリレーショナルデータベースの構造を表す図である。
【００２３】
ここで、ネットワークデータベース２１に対して各種処理を要求する応用プログラムについて、図４−１および図４−２を用いて説明する。図４−１は、応用プログラムの処理を説明するための図（１）である。また、図４−２は、応用プログラムの処理を説明するための図（２）である。
【００２４】
応用プログラムは、ネットワークデータベース２１に記憶される情報に対して各種処理を要求する。具体的には、応用プログラムは、ネットワーク型データモデルの情報に対して追加処理、削除処理、更新処理および検索処理の要求をする。ここで、追加処理とは、ネットワークデータベース２１に記憶される情報を新たに追加することをいう。削除処理とは、ネットワークデータベース２１に記憶される情報を削除することをいう。更新処理とは、ネットワークデータベース２１に記憶される情報を更新することをいう。検索処理とは、ネットワークデータベース２１に記憶される情報を検索することをいう。
【００２５】
ここで、応用プログラムは、二種類の方法を用いて各種処理の対象となる子レコードを特定する。一つは、図４−１に示したように、各情報が有するポインタが示す順番通りに検索するように要求する方法である。例えば、親レコード「Ｘさん」が有する「２番目」の子レコードを「２万円」という値に「更新」する場合には、応用プログラムは、ネットワークデータベース２１に対して親レコード「Ｘさん」を検索するように要求する。
【００２６】
次に、応用プログラムは、親レコード「Ｘさん」が有する「２番目」の子レコードをポインタが示す順に検索するようにネットワークデータベース２１に対して要求する。最後に、応用プログラムは、選択された「２番目」の情報を「２万円」という値に更新するように要求する。
【００２７】
一方、図４−２に示した場合には、応用プログラムは、各種処理の対象となる情報を直接選択する。具体的には、応用プログラムは、各レコードが記憶されている位置を示すアドレス情報を用いて各種処理の対象となる情報を選択する。例えば、アドレス情報「Ｘ」の情報を「２万円」に更新する場合には、図４−２に示すように、応用プログラムはアドレス情報「Ｘ」の情報を直接選択し、「２万円」という値に更新するようにネットワークデータベース２１に対して要求する。
【００２８】
次に、複製作成装置が有する各部が実行する処理について、図を参照して説明する。初期抽出部１２は、ネットワークデータベース２１に記憶された親レコードを検索し、親レコードの情報を取得する。さらに、初期抽出部１２は、取得した親レコードが有する子レコードをポインタ順に取得する。
【００２９】
ここで、初期抽出部１２は、ポインタ順に子レコードを取得するたびに子レコードの順番をカウントし、取得した子レコードに対して順番を表す数値を付与する。最後に、初期抽出部１２は、一つの親レコードが有する子レコードの数を子情報総数として、複製元であるネットワークデータベース２１に記憶された親レコードに対して付与し、取得した情報を差分反映部１４へ送信する。
【００３０】
例えば、図２に示した場合は、初期抽出部１２は、親レコード「Ｘさん」の情報を取得し、「１０万円」の情報を持つ子レコードの順番を「１」、「３万円」の情報を持つ子レコードの順番を「２」とカウントする。また、初期抽出部１２は、取得した各子レコードに対して順番を表す数値を付与し、取得した子レコードを差分反映部１４へ送信する。
【００３１】
最後に、初期抽出部１２は、親レコード「Ｘさん」が有する子レコードの数「２」をネットワークデータベース２１に記憶された「Ｘさん」の情報に付与する。ここで、図２は、実施例１に係る初期抽出部が行う処理を説明する図である。
【００３２】
差分抽出部１１は、ネットワークデータベース２１に記憶されたレコードに対して各種変更処理が実行された場合には、変更されたレコードを示す情報を取得する。具体的には、差分抽出部１１は、ネットワークデータベース２１から処理内容と操作データと操作箇所と親箇所とを受信し、親箇所を用いて親レコードに記録された子情報総数を受信する。そして、差分抽出部１１は、受信した情報と子情報総数とを処理情報として順序番号生成部１３に送信する。
【００３３】
ここで、図１９を用いて実施例１に係る処理情報の内容について、具体的に説明する。図１９は、実施例１に係るデータの構造を説明する図である。処理情報は、処理内容、操作箇所、操作データおよび親箇所を表す情報を有している。差分抽出部１１および初期抽出部１２は、処理情報に各情報を格納し、差分反映部１４へ送信する。
【００３４】
処理内容とは、応用プログラムがネットワークデータベース２１に対して要求した処理の内容をいう。具体的には、差分抽出装置１１は「追加」、「更新」、「削除」のいずれかを示す情報を処理内容として格納する。また、差分抽出装置１１は、処理内容に、処理の対象となる子レコードと対応付けられた親レコードに記録された子情報総数を一緒に格納する。一方、初期抽出部１２は、処理内容に「初期」を格納する。
【００３５】
操作データとは、各種処理の対象となった子レコードの内容をいう。具体的には、差分抽出装置１１は、各種処理の対象である子レコードの内容を格納する。操作箇所とは、各種処理の対象となったデータを特定するために必要な情報をいう。
【００３６】
具体的には、差分抽出装置１１は、操作箇所に、各種処理の対象となる子レコードの順番もしくはアドレス情報を格納する。親箇所とは、各種処理の対象となったデータを有する親レコードを特定するために必要な情報をいう。具体的には、差分抽出装置１１は、親箇所に、親レコードのアドレス情報を格納する。
【００３７】
図５を用いて、差分抽出部１１の処理を具体的に説明する。ここで、図５は、実施例１に係る差分抽出部を説明するための図である。応用プログラムがネットワークデータベース２１に対して情報の追加処理を要求した場合には、差分抽出部１１は、ネットワークデータベース２１から受信した情報を用いて、処理内容、操作データ、操作箇所および親箇所を処理情報に格納する。
【００３８】
次に、差分抽出部１１は、親箇所を用いて、特定される親レコードから子情報総数を取得し、１を足した数を新たな子情報総数として、元の親レコードに格納する。また、差分抽出部１１は、新たな子情報総数を処理情報に格納する。
【００３９】
図５に示した場合には、差分抽出部１１は、処理内容に「追加」を格納し、親箇所にアドレス「ＸＸＸ」を格納し、操作箇所に順番「２」を格納し、操作データに「１万円」を格納する。次に、追加処理によって増えた子レコードの数を反映させるために、差分抽出部１１は、親レコード「Ｘさん（２）」が有する子情報総数「２」を「３」に変更する。また、差分抽出部１１は、変更した子情報総数「３」を処理内容に格納する。
【００４０】
応用プログラムがネットワークデータベース２１に対して情報の更新処理を要求した場合には、差分抽出部１１は、ネットワークデータベース２１から受信した情報を用いて、処理内容、操作データ、操作箇所および親箇所を処理情報に格納する。
【００４１】
図５に示した場合には、差分抽出部１１は、処理内容に「更新」を格納し、親箇所に「ＸＸＸ」を格納する。また、差分抽出部１１は、操作箇所に順番「２」を格納し、操作データに「２万円」を格納する。また、更新処理によって親レコードが有する子レコードの数は変わらないので、差分抽出部１１は、親レコードが有する子情報総数の変更を行わず、子情報総数を処理内容に格納しない。
【００４２】
応用プログラムがネットワークデータベース２１に対して情報の削除処理を要求した場合には、差分抽出部１１は、ネットワークデータベース２１から受信した情報を用いて、処理内容、操作データ、操作箇所および親箇所を処理情報に格納する。次に、差分抽出部１１は、親箇所を用いて特定される親レコードから、子情報総数を受信し、１を引いた数を新たな子情報総数として、元の親レコードに格納する。また、差分抽出部１１は、新たな子情報総数を処理情報に格納する。
【００４３】
図５に示した場合には、差分抽出部１１は、処理内容に「削除」を格納し、親箇所に「ＸＸＸ」を格納し、操作箇所に順番「２」を格納する。ここで、差分抽出部１１は、応用プログラムが削除処理を実行した場合には、操作データに情報を格納しない。次に、削除処理によって減った子レコードの数を反映させるために、差分抽出部１１は、親レコード「Ｘさん（３）」が有する子情報総数「３」を「２」に変更する。また、差分抽出部１１は、変更した子情報総数「２」を処理内容に格納する。
【００４４】
差分抽出部１１は、処理情報を作成した場合には、各情報を格納した処理情報を、順序番号生成部１３に送信する。ここで、応用プログラムが、各種処理の対象となる子レコードを順番ではなくアドレス情報で選択している場合には、差分抽出部１１は、操作箇所に順番ではなくアドレス情報を格納することとなる。
【００４５】
順序番号生成部１３は、差分抽出部１１によって取得された情報を用いて、変更されたレコードの順番を示す順番情報を算出する。具体的には、順序番号生成部１３は、差分抽出部１１から受信した処理情報から操作箇所を確認する。操作箇所の情報として順番を表す数値ではなく、アドレス情報が格納されていた場合には、順序番号生成部１３は、当該アドレス情報を用いて変更処理の対象となったレコードを検索する。そして、順序番号生成部１３は、所定のレコードからポインタ順に検索した場合に変更処理の対象となったレコードが何番目の子レコードであるかを算出する。
【００４６】
具体的には、順序番号生成部１３は、親箇所に格納されたアドレス情報を用いて、ネットワークデータベース２１に記憶された親レコードの検索を実行する。次に、順序番号生成部１３は、操作箇所として格納されていたアドレス情報を有する子レコードをポインタ順に検索し、子レコードの数をカウントする。
【００４７】
次に、順番号検索部１３は、操作箇所として格納されていたアドレス情報と合致するアドレスに記憶された子レコードを認識した場合には、カウントしていた子レコードの数を認識した子レコードの順番として取得する。その後、順序番号生成部１３は、操作箇所に格納されていたアドレス情報を消去し、取得した順番を表す数値を格納する。
【００４８】
応用プログラムは、各種処理の対象となる子レコードを選択する方法として、子レコードの順番もしくは子レコードのアドレス情報を利用している。応用プログラムがアドレス情報を利用して子レコードを選択している場合には、順序番号生成部１３は、アドレス情報を順番を表す数値に変更する。
【００４９】
例えば、図３に示した場合には、順序番号生成部１３は、アドレス「ＸＸＸ」に記憶された親レコード「Ｘさん」をネットワークデータベース２１から検索する。次に、順序番号生成部１３は、子レコードの数を数えながら親レコード「Ｘさん」からポインタ順にアドレス「ＸＸＸ．ＢＢＢ」を有する子レコードを検索する。
【００５０】
図３に示した場合には、アドレス「ＸＸＸ．ＢＢＢ」を有する子レコードは「２番目」の子レコードであるので、順序番号生成部１３は、アドレス「ＸＸＸ．ＢＢＢ」を有する子レコードの順番が「２」番目であることを取得する。最後に、順序番号生成部１３は、処理情報の操作箇所に格納されたアドレス情報を消去し、変わりに順番「２」という情報を格納する。ここで、図３は実施例１に係る順番号生成部を説明する図である。
【００５１】
一方、順序番号生成部１３は、差分抽出部１１が取得した情報が子レコードの順番を表す情報であった場合には、差分抽出部１１が取得した情報を用いる。具体的には、順序番号生成部１３は、操作箇所に格納された情報が順番を表す数値であった場合には、操作箇所に格納された情報を変更しない。
【００５２】
差分反映部１４は、順序番号生成部１３によって算出された順番情報に応じて、ネットワークデータベース２１に記憶された情報に対して実行された各種変更処理をリレーショナルデータベース１５に反映させる。具体的には、差分反映部１４は、順序番号生成部１３もしくは初期抽出部１２から受信した各レコードをリレーショナルデータベース１５に反映させる。また、差分反映部１４は、リレーショナルデータベース１５に記憶されたレコードのうち、更新すべきレコードを選択し、更新する。以下、図６を用いて、差分反映部１４が行う処理を具体的に説明する。ここで、図６は、実施例１に係る差分反映部を説明するための図である。
【００５３】
差分反映部１４は、受信した処理情報の処理内容に格納された情報が初期抽出であった場合には、受信した情報を用いて、新規の情報をリレーショナルデータベース１５に記憶させる。具体的には、図６に示した場合には、差分反映部１４は、リレーショナルデータベース１５に、親箇所「ＸＸＸ」に記憶された親レコードに関連付けられた子レコード「１０万円」に、処理情報に格納された操作箇所である順番「１」を付して記憶させる。また、差分反映部１４は、リレーショナルデータベース１５に、親箇所「ＸＸＸ」に記憶された親レコードに関連付けられた子レコード「３万円」に順番「２」を付して記憶させる。
【００５４】
差分反映部１４は、受信した処理情報に格納された情報が「追加」であった場合には、受信した処理情報を用いて、リレーショナルデータベース１５に記憶された情報を変更する。具体的には、差分反映部１４は、処理内容、操作データ、親箇所および操作箇所に格納された情報を用いて、リレーショナルデータベース１５に新たな情報を記憶させる。
【００５５】
また、差分反映部１４は、操作箇所に格納された情報を用いて、リレーショナルデータベース１５に記憶されたレコードの順番を加算するように修正する。
【００５６】
また、差分反映部１４は、処理内容に格納された子情報総数を用いて、リレーショナルデータベース１５が記憶していた情報から、訂正すべき情報を特定し、特定した情報の順番を表す数値を訂正する。
【００５７】
例えば、５つの子レコードを有する親レコードに対して新たに１つの子レコードが６番目の子レコードとして追加された場合には、他の５つの子レコードの順番に変更はないため、差分反映部１４は、追加された子レコード以外の子レコードの順番を訂正しない。しかし、５つの子レコードを有する親レコードに対して新たに１つの子レコードが３番目の子レコードとして追加された場合には、差分反映部１４は、もともとの順番が３番目から５番目であった３つの子レコードの順番を訂正する必要がある。
【００５８】
そこで、差分反映部１４は、処理内容に格納された子情報総数と操作箇所に格納された子レコードの順番とを用いて、追加された子レコードの順番が親レコードが有する一番最後の順番であるかどうかを判別する。具体的には、差分反映部１４は、処理情報の操作箇所に格納された順番が処理内容に格納された子情報総数の数以上である場合には、子レコードの追加のみを実行し、リレーショナルデータベース１５に記憶された他のデータに対して訂正を実行しない。
【００５９】
また、差分反映部１４は、処理情報の操作箇所に格納された順番が処理内容に格納された子情報総数の数未満である場合には、リレーショナルデータベース１５に記憶された子レコードの情報のうち、操作箇所に格納された数値以上の順番を表す数値に１を足す。
【００６０】
図６に示した場合には、差分反映部１４は親箇所に格納された親レコードが有する子レコードのテーブルを認識する。次に、処理内容に格納された子情報総数が「３」であり、操作箇所に格納された順番が「２」であるので、差分反映部１４は、もともとの順番が「２」以上である子レコードの順番を訂正する。
【００６１】
図６に示した場合には、差分反映部１４は、順番を表す数値が「２」以上である子レコードの順番に１を足し、新たに順番「２」の情報「１万円」を追加する。
【００６２】
差分反映部１４は、受信した処理情報の処理内容に格納された情報が「更新」であった場合には、受信した情報を用いて、リレーショナルデータベース１５に記憶された情報を変更する。具体的には、差分反映部１４は、操作箇所、操作データおよび親箇所に格納された情報を用いて、リレーショナルデータベース１５に記憶された情報を更新する。
【００６３】
図６に示した場合には、操作箇所に格納された情報の順番が「２」であり、操作データに格納された情報が「２万円」であり、親箇所に格納された情報が「ＸＸＸ」である。よって、差分反映部１４は、リレーショナルデータベース１５に記憶された情報のうち親箇所が「ＸＸＸ」である子レコードのテーブルが有する順序番号「２」の情報を「２万円」に訂正する。
【００６４】
差分反映部１４は、受信した処理情報の処理内容に格納された情報が「削除」であった場合には受信した処理情報を用いて、リレーショナルデータベース１５に記憶された情報を変更する。具体的には、差分反映部１４は、処理内容、操作データ、親箇所および操作箇所に格納された情報を用いて、リレーショナルデータベース１５に記憶された情報を削除する。
【００６５】
また、差分反映部１４は、操作箇所に格納された情報を用いて、リレーショナルデータベース１５に記憶されたレコードの順番を減算するように修正する。
【００６６】
また、差分反映部１４は、処理内容に格納された子情報総数を用いて、リレーショナルデータベース１５が記憶していた情報から、訂正すべき情報を特定し、特定した情報の順番を表す数値を訂正する。
【００６７】
例えば、５つの子レコードを有する親レコードに対して５番目の子レコードを削除した場合には、他の４つの子レコードの順番に変更はないため、差分反映部１４は、削除する子レコード以外の情報に対して訂正をする必要はない。しかし、５つの子レコードを有する親レコードに対して２番目の子レコードを削除した場合には、もともとの順番が３番目から５番目であった３つの子レコードが有する順番を訂正する必要がある。
【００６８】
そこで、差分反映部１４は、処理内容に格納された子情報総数と操作箇所に格納された子レコードの順番とを用いて、追加された子レコードの位置が親レコードが有する一番最後の順番であるかどうかを判別する。
【００６９】
具体的には、差分反映部１４は、処理情報の操作箇所に格納された順番が処理内容に格納された子情報総数に１を足した数以上である場合には、子レコードの削除のみを実行し、リレーショナルデータベース１５に記憶された他のデータに対して訂正を実行しない。
【００７０】
また、差分反映部１４は、処理情報の操作箇所に格納された順番が処理内容に格納された子情報総数に１を足した数未満である場合には、リレーショナルデータベース１５に記憶された子レコードの情報のうち、操作箇所に格納された順番よりも後の順番の数値から１を引く。
【００７１】
図６に示した場合には、差分反映部１４は親箇所に格納された親アドレスに記憶された親レコードが有する子レコードのテーブルを認識する。次に、操作箇所に格納された順番「２」が処理内容に格納された子情報総数「２」に１を足した数よりも少ないので、差分反映部１４は、もともとの順番が「２」以上である子レコードの順番を訂正する。図６に示した場合には、差分反映部１４は、順番を表す数値が「２」よりも後の子レコードの順番から１を引き、順番を表す数値が「２」のデータを削除する。
【００７２】
次に、実施例１に係る複製作成装置の処理の流れを図７−１から図７−４を参照して説明する。最初に、ネットワークデータベース２１からリレーショナルデータベース１５へ最初の複製を行う場合に、複製作成装置１０が行う初期抽出の流れについて、図７−１を用いて説明する。ここで、図７−１は、実施例１に係る複製作成装置の処理の流れを説明する図（１）である。
【００７３】
初期抽出部１２は、ネットワークデータベース２１に記憶された親レコードを検索し、親レコードが有する子レコードをポインタの順に検索し、子レコードの情報を取得する。また、初期抽出部１２は、取得した子レコードの情報に対して順番を表す数値を付与し、差分反映部１４に送信する。差分反映部１４は、受信した情報をリレーショナルデータベース１５に記憶させる。
【００７４】
次に、応用プログラムが子レコードの追加処理をネットワークデータベース２１に対して要求した場合について、複製作成部１０が差分をリレーショナルデータベース１５に反映させる処理の流れを図７−２を用いて説明する。ここで、図７−２は、実施例１に係る複製作成装置の処理の流れを説明する図（２）である。
【００７５】
まず、差分抽出部１１は、ネットワークデータベース２１から処理の内容を受信し、実行される処理が追加処理であることを認識する。次に、差分抽出部１１は、追加された子レコードを有する親レコードの子情報総数を取得し、更新する。また、差分抽出部１１は、子情報総数とネットワークデータベース２１から受信した処理の内容から処理情報を作成し、順序番号生成部１３に送信する。
【００７６】
順序番号生成部１３は、処理情報のうち操作箇所に格納された情報がアドレス情報かどうかを識別し、アドレス情報である場合には、ネットワークデータベース２１を検索し、操作箇所に格納されたアドレス情報を順序を表す数値に変更する。その後、順序番号生成部１３は、処理情報を差分反映部１４に送信する。差分反映部１４は、受信した処理情報を用いて、リレーショナルデータベース１５に記憶された情報に対して追加処理を反映させる。
【００７７】
次に、応用プログラムが子レコードの更新をネットワークデータベース２１に対して要求した場合について、複製作成部１０が差分をリレーショナルデータベース１５に反映させる処理の流れを図７−３を用いて説明する。ここで、図７−３は、実施例１に係る複製作成装置の処理の流れを説明する図（３）である。
【００７８】
まず、差分抽出部１１は、ネットワークデータベース２１から処理の内容を受信し、実行される処理が更新処理であることを認識する。次に、差分抽出部１１は、ネットワークデータベース２１から受信した処理の内容から処理情報を作成し、順序番号生成部１３に送信する。
【００７９】
順序番号生成部１３は、処理情報のうち操作箇所に格納された情報がアドレス情報かどうかを識別し、アドレス情報である場合には、ネットワークデータベース２１を検索し、操作箇所に格納されたアドレス情報を順序を表す数値に変更する。その後、順序番号生成部１３は、処理情報を差分反映部１４に送信する。差分反映部１４は、受信した処理情報を用いて、リレーショナルデータベース１５に記憶された情報に対して更新処理を反映させる。
【００８０】
次に、ネットワークデータベース２１に対して応用プログラムが子レコードの削除処理を要求した場合について、複製作成部１０が差分をリレーショナルデータベース１５に反映させる処理の流れを図７−４を用いて説明する。ここで、図７−４は、実施例１に係る複製作成装置の処理の流れを説明する図（４）である。
【００８１】
まず、差分抽出部１１は、ネットワークデータベース２１から処理の内容を受信し、実行される処理が削除処理であることを認識する。次に、差分抽出部１１は、削除された子レコードを有する親レコードの子情報総数を取得し、更新する。また、差分抽出部１１は、子情報総数とネットワークデータベース２１から受信した処理の内容から処理情報を作成し、順序番号生成部１３に送信する。
【００８２】
順序番号生成部１３は、処理情報のうち操作箇所に格納された情報がアドレス情報かどうかを識別し、アドレス情報である場合には、ネットワークデータベース２１を検索し、操作箇所に格納されたアドレス情報を順序を表す数値に変更する。その後、順序番号生成部１３は、処理情報を差分反映部１４に送信する。差分反映部１４は、受信した処理情報を用いて、リレーショナルデータベース１５に記憶された情報に対して削除処理を反映させる。
【００８３】
次に、図８から図１１−２を参照しながら複製作成装置１０が行う処理を詳しく説明する。まず、図８を用いて、複製作成装置１０が行う初期抽出について、詳しく説明する。ここで、図８は、実施例１に係る初期抽出を詳しく説明する図である。
【００８４】
まず、初期抽出部１２は、ネットワークデータベース２１が記憶するデータを取得する。図８に例示した場合には、初期抽出部１２は、親レコードである「Ｘさん」の情報を取得し、親レコード「Ｘさん」からポインタで示された１番目の子レコード「１０万」を取得する。
【００８５】
ここで、初期抽出部１２は、操作内容に「初期抽出」を格納し、操作データに「１０万」を格納し、操作箇所に順番「１」を格納し、親箇所に「Ｘ」をそれぞれ格納した処理情報を作成する。また、初期抽出部１２は、図２１に例示するような作業域に子情報の数「１」を格納する。ここで、図２１は、実施例１に係る初期抽出部および順序番号生成部の作業域の構造を表す図である。
【００８６】
次に初期抽出部１２は、１番目の子レコード「１０万」からポインタで示された２番目の子レコード「３万」を取得する。ここで、初期抽出部１２は、操作内容に「初期抽出」を格納し、操作データに「３万」を格納し、操作箇所に順番「２」を格納し、親箇所に「Ｘ」をそれぞれ格納した処理情報を作成する。また、初期抽出部１２は、作業域に子情報の数「２」を格納する。次に、２番目の子レコード「３万」からポインタで示されたデータが親レコードである「Ｘさん」であるので、初期抽出部１２は、子レコードの取得を終了し、作成した処理情報を差分反映部１４に送信する。
【００８７】
また、初期抽出部１２は、作業域に格納された子情報の数「２」を子情報総数として親レコード「Ｘさん」に付加するようにネットワークデータベース２１に対して要求する。具体的には、初期抽出部１２は、図２０に示すような親レコード「Ｘさん」の管理域に子情報総数を格納するようにネットワークデータベース２１に対して要求する。ここで、図２０は、実施例１に係るネットワークデータベースの親レコードの管理域を表す図である。
【００８８】
図８に例示した場合には、初期抽出部１２は、親レコード「Ｘさん」の管理域に子情報総数である「２」を記録するようにネットワークデータベース２１に対して要求する。
【００８９】
差分反映部１４は、初期抽出部１２から処理情報を受信し、受信した処理情報を元にリレーショナルデータベース１５に複製を作成する。図８に示した場合には、差分反映部１４は、順番を表す数値「１」を付した情報「１０万」と順番を表す数値「２」を付した情報「３万」とをリレーショナルデータベース１５に記憶させる。
【００９０】
具体的には、差分反映部１４は、ＳＱＬを作成し、リレーショナルデータベース１５に対して送信する。図８に例示した場合には、差分反映部１４は、ＳＱＬコマンド「ＬＯＡＤ」を用いて、順番を表す数値「１」を付した情報「１０万」をリレーショナルデータベース１５に記憶させる。また、差分反映部１４は、ＳＱＬコマンド「ＬＯＡＤ」を用いて、順番を表す数値「２」を付した情報「３万」をリレーショナルデータベース１５に記憶させる。
【００９１】
次に図９−１および図９−２を用いて複製作成装置１０が行う追加処理について、詳しく説明する。ここで、図９−１は、実施例１に係る追加処理の流れを詳しく説明する図（１）である。また、図９−２は、実施例１に係る追加処理の流れを詳しく説明する図（２）である。
【００９２】
最初に図９−１を用いて複製作成装置１０が行う追加処理について、詳しく説明する。まず、応用プログラムは、親レコードの検索をネットワークデータベース２１に対して要求する。ネットワークデータベース２１は、親レコードを検索し、親レコードを検索していることを差分抽出部１１に通知する。差分抽出部１１は、親レコードの検索処理を認識し、親箇所に親レコードのアドレス「Ｘ」を格納し、操作箇所に「０」を格納する。
【００９３】
次に、応用プログラムは、子レコードの検索をネットワークデータベース２１に対して要求する。ネットワークデータベース２１は、ポインタ順に子レコードを検索し、子レコードを認識するたびに差分抽出部１１に通知を行う。通知を受けた差分抽出部１１は、ネットワークデータベース２１から通知を受けるたびに、操作箇所に格納された順序を表す数値に１を足す。
【００９４】
次に、応用プログラムは、子レコードの追加をネットワークデータベース２１に対して要求する。ネットワークデータベース２１は、子レコードの追加を実施し、追加された子レコードの情報「１万」を差分抽出部１１に通知する。
【００９５】
差分抽出部１１は、子レコードの追加処理を認識し、操作箇所に格納された順番を表す数値に１を足す。よって、差分抽出部１１は、追加された子レコードの順番を表す数値「２」を操作箇所に格納したこととなる。ここで、差分抽出部１１は、処理内容に「追加」を格納し、操作データにネットワークデータベース２１から取得した子レコードの情報「１万」を格納する。
【００９６】
次に、差分抽出部１１は、親箇所に格納された親レコードのアドレス「Ｘ」を利用し、ネットワークデータベース２１に親レコードが有する子情報総数を要求する。ネットワークデータベース２１から子情報総数「２」を受信した差分抽出部１１は、子情報総数「２」を図２２に例示した作業域に格納する。ここで、図２２は、実施例１に係る差分抽出部の作業域の構造を表す図である。
【００９７】
次に、差分抽出部１１は、作業域に記憶された「２」に１を足し、得られる新たな子情報総数「３」を処理内容に格納する。また、差分抽出部１１は、ネットワークデータベース２１に対してアドレス「Ｘ」を有する親レコードの子情報総数を新たな子情報総数「３」に更新するように要求する。その後、差分抽出部１１は、処理情報を順序番号生成部１３に送信する。
【００９８】
次に、順序番号生成部１３は、差分抽出部１１から受信した処理情報のうち操作箇所が順番を表す数値であるかどうかを確認する。図９−１に例示した場合には、操作箇所に格納された順序を表す数値が「２」であるので、順序番号生成部１３は、処理情報を更新せずに差分反映部１４へ送信する。
【００９９】
差分反映部１４は、受信した処理情報のうち処理内容に格納された「追加」を認識し、追加処理を実行する。まず、差分反映部１４は、処理内容に格納された子情報総数「３」と操作箇所に格納された順番「２」とに基づいて、リレーショナルデータベース１５に記憶された情報のうち、順番が「２」以上の数値を有する情報を更新する必要があることを認識する。
【０１００】
次に差分反映部１４は、リレーショナルデータベース１５に記憶された情報のうち「２」以上の順番を表す数値に１を足す。その後、差分反映部１４は、順序を表す数値「２」を付した情報「１万」をデータリレーショナルデータベース１５に追加させる。
【０１０１】
具体的には、差分反映部１４は、ＳＱＬコマンド「ＵＰＤＡＴＥ」を用いて順番「２」を順番「３」に更新する。また、差分反映部１４は、ＳＱＬコマンド「ＩＮＳＥＲＴ」を用いて、順番「２」を付した情報「１万」をリレーショナルデータベース１５に追加する。
【０１０２】
一方、図９−２に例示するように、応用プログラムが子レコードを追加する場所をアドレスで指定した場合には、ネットワークデータベース２１は、指定されたアドレスに子レコードを追加する。また、ネットワークデータベース２１は、指定されたアドレスおよび子レコードを差分抽出部１１に通知する。図９−２に例示した場合には、ネットワークデータベース２１は、アドレス「Ｚ」に子レコード「１万」を追加している。
【０１０３】
差分抽出部１１は、ネットワークデータベース２１から受信した情報を用いて、操作内容に「追加」を格納し、操作データに「１万」を格納し、操作箇所にアドレス「Ｚ」を格納する。
【０１０４】
ここで、ネットワークデータベース２１から受信した情報には、親レコードが記憶されたアドレスが含まれていない。そこで、差分抽出部１１は、受信された子レコードのアドレスを用いて、親レコードの検索を実行し、親レコードのアドレスを取得する。図９−２に例示した場合には、差分抽出部１１は、追加された子レコードと関連付けられた親レコードのアドレス「Ｘ」を取得する。
【０１０５】
次に差分抽出部１１は、処理情報のうち、親箇所にアドレス「Ｘ」を格納する。また、差分抽出部１１は、アドレス「Ｘ」に記憶された親レコードから子情報総数「２」を受信し、１を足した値「３」を新たな子情報総数として操作内容に格納する。
【０１０６】
また、差分抽出部１１は、ネットワークデータベース２１に対してアドレス「Ｘ」に記憶された親レコードの子情報総数を新たな子情報総数「３」に更新するよう要求する。最後に、差分抽出部１１は、各情報を格納した処理情報を順序番号生成部１３に送信する。
【０１０７】
順序番号生成部１３は、差分抽出部１１から受信した処理情報のうち操作箇所に格納された情報を確認する。そして、順序番号生成部１３は、操作箇所に格納されたアドレス「Ｚ」を取得し、アドレス「Ｚ」を有する子レコードの順番を検索する。
【０１０８】
ここで、順序番号生成部１３は、親箇所に格納されたアドレス「Ｘ」を用いて、ネットワークデータベース２１からアドレス「Ｘ」に記憶された親レコードを検索する。そして、順序番号生成部１３は、アドレス「Ｘ」に記憶された親レコードからポインタをたどって、アドレス「Ｚ」に記憶された子レコードを検索する。
【０１０９】
具体的には、順序番号生成部１３は、図２１に例示した作業域に「０」を格納し、親箇所に格納されたアドレスを有する親レコードを検索する。次に、作業域の値に１を足し、親レコードからポインタで示された子レコードを検索する。ここで、順序番号生成部１３は、検索した子レコードが記憶されたアドレスが操作箇所に格納されたアドレスと同じであるかを判断する。
【０１１０】
順序番号生成部１３は、検索した子レコードが記憶されたアドレスが操作箇所に格納されたアドレスと同じである場合には、作業域の値を操作された子レコードの順序を表す数値として操作箇所に格納する。一方、順序番号生成部１３は、検索した子レコードが記憶されたアドレスが操作箇所に格納されたアドレスと同じではない場合には、作業域の値に１を足し、子レコードからポインタで示された次の子レコードを検索する。
【０１１１】
図９−２に示した場合には、順序番号生成部１３は、操作箇所に格納されたアドレス「Ｚ」を順番「２」に変更する。その後、順序番号生成部１３は、変更した処理情報を差分反映部１４へ送信する。
【０１１２】
差分反映部１４は、受信した処理情報のうち処理内容に格納された「追加」を認識し、追加処理を実行する。まず、差分反映部１４は、処理内容に格納された子情報総数「３」と、操作箇所に格納された順番「２」とに基づいて、リレーショナルデータベース１５に記憶された情報のうち「２」以上の順番を更新する必要があることを認識する。次に差分反映部１４は、リレーショナルデータベース１５に記憶された情報のうち「２」以上の順番を表す数値に１を足す。その後、差分反映部１４はデータ「１万」、順番「２」というデータをリレーショナルデータベース１５に追加させる。
【０１１３】
具体的には、差分反映部１４は、ＳＱＬを作成し、リレーショナルデータベース１５に対して送信する。図９−２に示した場合には、差分反映部１４は、ＳＱＬコマンド「ＵＰＤＡＴＥ」を用いて順番「２」を順番「３」に更新する。また、差分反映部１４は、ＳＱＬコマンド「ＩＮＳＥＲＴ」を用いて、順番「２」のデータ「１万」をリレーショナルデータベース１５に追加する。
【０１１４】
次に図１０−１および図１０−２を用いて複製作成装置１０が行う更新処理について、詳しく説明する。ここで、図１０−１は、実施例１に係る更新処理の流れを詳しく説明する図（１）である。また、図１０−２は、実施例１に係る更新処理の流れを詳しく説明する図（２）である。また、以下の説明において追加処理と同様の処理について、は説明を省略する。
【０１１５】
ネットワークデータベース２１から更新処理の内容を受信した差分抽出部１１は、処理内容に「更新」を格納し、操作データに「２万」を格納した処理情報を作成する。また、図１０−１および図１０−２に例示した場合には、差分抽出部１１は、追加処理の場合と同ように、親箇所にアドレス「Ｘ」を格納する。ここで、処理内容が「更新」の場合には、差分抽出部１１は、親レコードが有する子情報総数の数を処理内容に格納せず、ネットワークデータベース２１に対して子情報総数の更新を要求しない。
【０１１６】
ここで、図１０−１に例示した場合には、差分抽出部１１は、操作箇所に順序を表す数値「２」を格納する。一方、図１０−２に例示した場合には、差分抽出部１１は、操作箇所にアドレス「Ｚ」を格納する。次に、差分抽出部１１は、作成した処理情報を順序番号生成部１３に送信する。
【０１１７】
順序番号生成部１３は、差分抽出部１１から受信した処理情報のうち操作箇所が順序を表す数値であるかどうかを確認する。図１０−１に例示した場合には、順序番号生成部１３は、操作箇所に格納された情報が順番「２」であるので、処理情報を更新せずに差分反映部１４へ送信する。その後、順序番号生成部１３は、変更した処理情報を差分反映部１４へ送信する。
【０１１８】
一方、図１０−２に例示した場合には、順序番号生成部１３は、操作箇所に格納された情報がアドレス「Ｚ」であるので、追加処理の場合と同様に、ネットワークデータベース２１を検索し、操作箇所に格納されたアドレス「Ｚ」を順番「２」に変更する。その後、順序番号生成部１３は、変更した処理情報を差分反映部１４へ送信する。
【０１１９】
差分反映部１４は、受信した処理情報のうち処理内容に格納された「更新」を認識し、更新処理を実行する。具体的には、差分反映部１４は、図１０−１および図１０−２に示した場合には、ＳＱＬコマンド「ＵＰＤＡＴＥ」を用いて、順番「２」のデータ「１万」を「２万」に更新する。
【０１２０】
次に図１１−１および図１１−２を用いて複製作成装置１０が行う削除処理について、詳しく説明する。ここで、図１１−１は、実施例１に係る削除処理の流れを詳しく説明する図（１）である。また、図１１−２は、実施例１に係る更新処理の流れを詳しく説明する図（２）である。また、以下の説明において追加処理と同様の処理について、は説明を省略する。
【０１２１】
ネットワークデータベース２１から削除処理の内容を取得した差分抽出部１１は、処理内容に「削除」を格納した処理情報を作成する。また、図１１−１および図１１−２に例示した場合には、差分抽出部１１は、追加処理の場合と同様に、親箇所にアドレス「Ｘ」を格納する。
【０１２２】
ここで、処理内容が「削除」の場合には、差分抽出部１１は、削除される情報の内容を操作データに格納しない。また、差分抽出部１１は、親レコードが有する子情報総数「３」から１を引いた「２」を新たな子情報総数として処理内容に格納する。また、差分抽出部１１は、親レコードが有する子情報総数「３」を「２」に更新する。
【０１２３】
ここで、図１１−１に例示した場合には、差分抽出部１１は、操作箇所に順番「２」を格納する。一方、図１１−２に例示した場合には、差分抽出部１１は、操作箇所にアドレス「Ｚ」を格納する。その後、差分抽出部１１は、作成した処理情報を順序番号生成部１３へ送信する。
【０１２４】
順序番号生成部１３は、差分抽出部１１から受信した処理情報のうち操作箇所が順番を表す数値であるかどうかを確認する。図１１−１に例示した場合には、順序番号生成部１３は、操作箇所に格納された情報が順番「２」であるので、処理情報を更新せずに差分反映部１４へ送信する。
【０１２５】
一方、図１１−２に例示した場合には、順序番号生成部１３は、操作箇所に格納された情報がアドレス「Ｚ」であるので、ネットワークデータベース２１を検索し、操作箇所に格納されたアドレス「Ｚ」を順番「２」に変更する。その後、順序番号生成部１３は、変更した処理情報を差分反映部１４へ送信する。
【０１２６】
差分反映部１４は、受信した処理情報のうち処理内容に格納された「削除」より、削除処理を実行する。図１１−１および図１１−２に例示した場合には、差分反映部１４は、操作箇所に格納された順番「２」を認識する。次に、差分抽出部１４は、リレーショナルデータベース１５に対してＳＱＬコマンド「ＤＥＬＥＴＥ」を送信し、順番「２」が付されて記憶された情報を削除するように要求する。
【０１２７】
次に、差分反映部１４は、処理内容に格納された子情報総数「２」と、操作箇所に格納された順番「２」とに基づいて、リレーショナルデータベース１５に記憶された情報のうち更新すべき順番が「３」以上であることを認識する。次に差分反映部１４は、リレーショナルデータベース１５に記憶された情報のうち順番「３」を順番「２」へＳＱＬコマンド「ＵＰＤＡＴＥ」を用いて更新する。
【０１２８】
次に図１２を用いて、初期抽出部１２が実行する初期抽出の流れについて、説明する。ここで、図１２は、実施例１の初期抽出の流れを説明するフローチャートである。
【０１２９】
まず、初期抽出部１２は、ネットワークデータベース２１に記憶された情報がリレーショナルデータベース１５に複製されていないことをトリガとして、初期抽出を実行する。まず、初期抽出部１２は、順序番号のカウンタを「０」に設定し（ステップＳ１０１）、処理内容に「初期」を格納する（ステップＳ１０２）。
【０１３０】
次に、初期抽出部１２は、親レコードを検索し（ステップＳ１０３）、一の親レコードに関連付けられた子レコードの検索を開始する（ステップＳ１０４）。初期抽出部１２は、各レコードに付されたポインタが指し示す子レコードを検索し（ステップＳ１０４）、子レコードを記憶する（ステップＳ１０５）。また、初期抽出部１２は、子レコードを記憶するたびに（ステップＳ１０５）、子レコードの順序番号をカウントアップする（ステップＳ１０６）。次に、初期抽出部１２は、操作箇所と操作データと親箇所とを格納した処理情報を差分反映部１４に送信する（ステップＳ１０７）。
【０１３１】
次に、初期抽出部１２は、一の親レコードに関連付けられた子レコードをすべて検索したかを判別する（ステップＳ１０８）。初期抽出部１２は、一の親レコードに関連付けられた子レコードを全て検索していない場合には（ステップＳ１０８否定）、ポインタが示す次の子レコードについて、検索を実行する（ステップＳ１０４）。
【０１３２】
また、初期抽出部１２は、一の親レコードに関連付けられた子レコードすべてを検索した場合には（ステップＳ１０８肯定）、カウントしていた順序番号を子情報総数として親レコードに付すように、ネットワークデータベース２１に対して要求する（ステップＳ１０９）。その後、初期抽出部１２は処理を終了する。
【０１３３】
次に、図１３を用いて差分抽出部１１が行う処理の流れを説明する。ここで、図１３は、実施例１に係る差分抽出部が行う処理の流れを説明するフローチャートである。まず、差分抽出部１１は、処理対象となるレコードの情報をネットワークデータベース２１から受信したことをトリガとして処理を開始する。
【０１３４】
まず、差分抽出部１１は、ネットワークデータベース２１が検索処理を実行しているかを判別する（ステップＳ１１０）。ネットワークデータベース２１が検索処理を実行している場合には（ステップＳ１１０肯定）、差分抽出部１１は、検索処理を実行し（ステップＳ１１３）、その後処理を終了する。
【０１３５】
一方、ネットワークデータベース２１が検索処理を実行していない場合には（ステップＳ１１０否定）、差分抽出部１１は、ネットワークデータベース２１が追加処理を実行しているかを判別する（ステップＳ１１１）。
【０１３６】
ネットワークデータベース２１が追加処理を実行している場合には（ステップＳ１１１肯定）、差分抽出部１１は、追加処理を実行し（ステップＳ１１４）、処理情報を順序番号生成部１３に送信する（ステップＳ１１７）。その後、差分抽出部１１は、送信した処理情報のキャッシュを消去して（ステップＳ１１８）、処理を終了する。
【０１３７】
一方、ネットワークデータベース２１が追加処理を実行していない場合には（ステップＳ１１１否定）、差分抽出部１１は、ネットワークデータベース２１が更新処理を実行しているかを判別する（ステップＳ１１２）。
【０１３８】
ネットワークデータベース２１が更新処理を実行している場合には（ステップＳ１１２肯定）、差分抽出部１１は、更新処理を実行し（ステップＳ１１５）、処理情報を順序番号生成部１３に送信する（ステップＳ１１７）。その後、差分抽出部１１は、送信した処理情報のキャッシュを消去して（ステップＳ１１８）、処理を終了する。
【０１３９】
一方、ネットワークデータベース２１が更新処理を実行していない場合には（ステップＳ１１２否定）、差分抽出部１１は、ネットワークデータベースが２１が削除処理を実行していると判別し、削除処理を実行する（ステップＳ１１６）。その後、差分抽出部１１は、処理情報を順序番号生成部１３に送信し（ステップＳ１１７）、送信した処理情報のキャッシュを消去して（ステップＳ１１８）、処理を終了する。
【０１４０】
次に、図１４−１を用いて差分抽出部１１が実行する検索処理の流れについて、詳しく説明する。ここで、図１４−１は、実施例１に係る差分抽出部の検索処理を説明するフローチャートである。
【０１４１】
ネットワークデータベース２１が検索処理を実行していた場合には（ステップＳ１１０肯定）、差分抽出部１１は、検索処理を開始する（ステップＳ１１３）。まず、差分抽出部１１は、ネットワークデータベース２１が親レコードの検索をしているかを判別する（ステップＳ１１９）。
【０１４２】
ネットワークデータベース２１が親レコードの検索をしていない場合には（ステップＳ１１９否定）、ネットワークデータベース２１が子レコードの検索をしているので、差分抽出部１１は、子レコードの順番をカウントする（ステップＳ１２０）。その後、差分抽出部１１は検索処理を終了する。
【０１４３】
一方、ネットワークデータベース２１が親レコードの検索をしている場合には（ステップＳ１１９肯定）、差分抽出部１１は、処理情報のうち操作箇所が「順序」である旨の情報を格納し（ステップＳ１２１）、順序番号を「０」と格納する（ステップＳ１２２）。その後、差分抽出部１１は、検索処理を終了する。
【０１４４】
次に、図１４−２を用いて差分抽出部１１が実行する追加処理の流れについて、詳しく説明する。ここで、図１４−２は、実施例１に係る差分抽出部の追加処理を説明するフローチャートである。
【０１４５】
ネットワークデータベース２１が追加処理を実行していた場合には（ステップＳ１１１肯定）、差分抽出部１１は、追加処理を開始する（ステップＳ１１４）。まず、差分抽出部１１は、ダイレクト検索を実行する（ステップＳ１２３）。
【０１４６】
ダイレクト検索終了後、差分抽出部１１は、処理情報の処理内容に「追加」を格納する（ステップＳ１２４）。次に、差分抽出部１１は、子情報総数を親レコードから取得し（ステップＳ１２５）、取得した子情報総数に１を足す（ステップＳ１２６）。
【０１４７】
次に、差分抽出部１１は、子情報総数に１を足した値を新たな子情報総数として親レコードを更新するようにネットワークデータベース２１に要求し、新たな子情報総数を処理情報の処理内容に格納する（ステップＳ１２７）。
【０１４８】
次に、差分抽出部１１は、ネットワークデータベース２１から取得した追加処理の対象であるレコードの情報を、処理情報の操作データに格納する（ステップＳ１２８）。その後、差分抽出部１１は、追加処理を終了する。
【０１４９】
次に、図１４−３を用いて差分抽出部１１が実行する更新処理の流れについて、詳しく説明する。ここで、図１４−３は、実施例１に係る差分抽出部の更新処理を説明するフローチャートである。
【０１５０】
ネットワークデータベース２１が更新処理を実行していた場合には（ステップＳ１１２肯定）、差分抽出部１１は、更新処理を開始する（ステップＳ１１５）。まず、差分抽出部１１は、ダイレクト検索を実行する（ステップＳ１２９）。ダイレクト検索終了後、差分抽出部１１は、処理情報の操作内容に「更新」を格納する（ステップＳ１３０）。
【０１５１】
次に、差分抽出部１１は、ネットワークデータベース２１から取得した更新処理の対象であるレコードの情報を、処理情報の操作データに格納する（ステップＳ１３１）。その後、差分抽出部１１は、更新処理を終了する。
【０１５２】
次に、図１４−４を用いて差分抽出部１１が実行する削除処理の流れについて、詳しく説明する。ここで、図１４−４は、実施例１に係る差分抽出部の削除処理を説明するフローチャートである。
【０１５３】
ネットワークデータベース２１が更新処理を実行していない場合には（ステップＳ１１２否定）、差分抽出部１１は、削除処理を開始する（ステップＳ１１６）。まず、差分抽出部１１は、ダイレクト検索を実行する（ステップＳ１３２）。
【０１５４】
ダイレクト検索終了後、差分抽出部１１は、処理情報の操作内容に「削除」を格納する（ステップＳ１３３）。次に、差分抽出部１１は、子情報総数を親レコードから取得し（ステップＳ１３４）、取得した子情報総数から１を引く（ステップＳ１３５）。
【０１５５】
次に、差分抽出部１１は、子情報総数から１を引いた値を新たな子情報総数として親レコードを更新するようにネットワークデータベース２１に要求し、新たな子情報総数を処理情報の処理内容に格納する（ステップＳ１３６）。その後、差分抽出部１１は、削除処理を終了する。
【０１５６】
次に、図１５を用いて差分抽出部１１が行うダイレクト検索について、詳しく説明する。ここで、ダイレクト検索とは、処理対象のレコードがアドレスによって指定されているかを判別する処理である。差分抽出部１１は、応用プログラムが処理対象のレコードをアドレスによって指定した場合には、ネットワークデータベース２１から親レコードのアドレスを受信しない。
【０１５７】
しかし、複製作成装置１０は、処理対象のレコードを指定するアドレスを順序を表す数値に変更する場合には、親レコードを指定するアドレスを必要とする。よって、差分抽出部１１は、ダイレクト検索を実行し、処理対象のレコードがアドレスによって指定されている場合には、指定された子レコードに関連付けられた親レコードを検索し、親レコードが記憶されたアドレスを取得する。ここで、図１５は、実施例１に係る差分抽出部が行うダイレクト検索を説明するフローチャートである。
【０１５８】
差分抽出部１１は、ダイレクト検索を開始した場合には、ネットワークデータベース２１から受信した処理対象のレコードを順番によって指定しているかどうかを判別する（ステップＳ１３７）。処理対象である子レコードが順番で指定されている場合には（ステップＳ１３７肯定）、差分抽出部１１は、ネットワークデータベース２１から受信した各処理情報を格納する（ステップＳ１４２）。
【０１５９】
具体的には、差分抽出部１１は、操作箇所に格納する情報が「順序」によるものであることを設定し、処理対象である子レコードの「順序」を格納する。また、差分抽出部１１は、親箇所に親レコードの「アドレス」を格納する。その後、差分抽出部１１はダイレクト検索を終了する。
【０１６０】
一方、処理対象である子レコードが順番で指定されていない場合には（ステップＳ１３７否定）、ネットワークデータベース２１から取得した処理対象である子レコードはアドレスによって特定されている。そこで、処理対象である子レコードが順番で指定されていない場合には（ステップＳ１３７否定）、差分抽出部１１は、ネットワークデータベース２１から取得した情報に、親レコードのアドレスが含まれているかを判別する（ステップＳ１３８）。
【０１６１】
親レコードのアドレスが含まれていた場合には（ステップＳ１３８否定）、差分抽出部１１は、処理情報の操作箇所に格納する情報が「アドレス」によるものであることを設定し、処理対象である子レコードの「アドレス」を格納する（ステップＳ１４１）。また、差分抽出部１１は、親箇所に親レコードの「アドレス」を格納する（ステップＳ１４１）。その後、差分抽出部１１は、ダイレクト検索を終了する。
【０１６２】
一方、親レコードの「アドレス」が含まれていなかった場合には（ステップＳ１３８肯定）、差分抽出部１１は、子レコードの「アドレス」を用いてネットワークデータベース２１から親レコードを検索する（ステップＳ１３９）。次に、差分抽出部１１は、ステップＳ１３９にて検索した親レコードのアドレスを取得し、処理情報の親箇所に親レコードの「アドレス」を格納する（ステップＳ１４０）。
【０１６３】
次に、差分抽出部１１は、処理情報の操作箇所に格納する情報が「アドレス」によるものであることを設定し、処理対象である子レコードの「アドレス」を格納する（ステップＳ１４１）。また、差分抽出部１１は、親箇所に親レコードの「アドレス」を格納する（ステップＳ１４１）。その後、差分抽出部１１は、ダイレクト検索を終了する。
【０１６４】
次に、図１６を用いて順序番号生成部１３の処理の流れについて、説明する。ここで、図１６は、実施例１に係る順序番号生成部の処理を説明するフローチャートである。順序番号生成部１３は、差分抽出部１１から処理情報を受信したことをトリガとして、処理を開始する。
【０１６５】
まず、順序番号生成部１３は、差分抽出部１１から受信した処理情報のうち操作箇所を表す情報が「順序」によるものであるかを判別する（ステップＳ１４３）。操作箇所を表す情報が「順序」によるものである場合には（ステップＳ１４３肯定）、順序番号生成部１３は、差分抽出部１１から取得した処理情報をそのまま差分反映部１４へ送信し（ステップＳ１５０）、処理を終了する。
【０１６６】
一方、操作箇所を表す情報が「順序」によるものではない場合には（ステップＳ１４３否定）、順序番号生成部１３は、順序番号を生成するカウンタを初期化する（ステップＳ１４４）。
【０１６７】
具体的には、順序番号生成部１３は、図２１に例示した作業域に「０」を格納する。次に、順序番号生成部１３は、差分抽出部１１から取得した処理情報の親箇所から親レコードの「アドレス」を取得し、取得した「アドレス」を有する親レコードをネットワークデータベース２１から検索する（ステップＳ１４５）。
【０１６８】
次に、順序番号生成部１３は、作業域に格納した数値に「１」を加え（ステップＳ１４６）、ステップＳ１４５にて検索した親レコードに付されたポインタが示す子レコードを検索する（ステップＳ１４７）。
【０１６９】
ステップＳ１４７にて検索した子レコードの「アドレス」が、処理情報の操作箇所に格納されていた「アドレス」と一致した場合には（ステップＳ１４８肯定）、順序番号生成部１３は、処理情報の操作箇所を表す情報を「順序」によるものであると設定し、作業域の数を順番として格納する（ステップＳ１４９）。その後、順序番号生成部１３は、処理情報をそのまま差分反映部１４へ送信し（ステップＳ１５０）、処理を終了する。
【０１７０】
一方、ステップＳ１４７にて検索した子レコードの「アドレス」が、操作箇所に格納されていた「アドレス」と一致しない場合には（ステップＳ１４８否定）、順序番号生成部１３は、再度カウンタを１つ増やし（ステップＳ１４６）、ポインタが示す次の子レコードを検索する（ステップＳ１４７）。
【０１７１】
次に、図１７を用いて差分反映部１４の処理の流れについて、説明する。ここで、図１７は、実施例１に係る差分反映部の処理を説明するフローチャートである。差分反映部１４は、初期抽出部１２もしくは順序番号生成部１３から処理情報を取得したことをトリガとして処理を開始する。
【０１７２】
まず、差分反映部１４は、処理情報の処理内容に格納された情報が「追加」であるかどうかを判別する（ステップＳ１５１）。処理内容に格納された情報が「追加」である場合には（ステップＳ１５１肯定）、差分反映部１４は、追加処理を実行し（ステップＳ１５４）、その後、処理を終了する。
【０１７３】
一方、処理内容に格納された情報が「追加」ではない場合には（ステップＳ１５１否定）、差分反映部１４は、処理内容に格納された情報が「更新」であるかどうかを判別する（ステップＳ１５２）。処理内容に格納された情報が「更新」である場合には（ステップＳ１５２肯定）、差分反映部１４は、更新処理を実行し（ステップＳ１５５）、その後、処理を終了する。
【０１７４】
一方、処理内容に格納された情報が「更新」ではない場合には（ステップＳ１５２否定）、差分反映部１４は、処理内容に格納された情報が「初期」であるかどうかを判別する（ステップＳ１５３）。処理内容に格納された情報が「初期」である場合には（ステップＳ１５３肯定）、差分反映部１４は、処理情報に基づいてリレーショナルデータベース１５に複製を作成し（ステップＳ１５６）、その後、処理を終了する。
【０１７５】
一方、処理内容に格納された情報が「初期」ではない場合には（ステップＳ１５３否定）、差分反映部１４は、削除処理を実行し（ステップＳ１５７）、その後、処理を終了する。
【０１７６】
次に、図１８−１を用いて差分反映部１４が実行する追加処理の流れについて、詳しく説明する。ここで、図１８−１は、実施例１に係る差分反映部の追加処理を説明するフローチャートである。
【０１７７】
処理内容に格納された情報が「追加」である場合には（ステップＳ１５１肯定）、差分反映部１４は、操作箇所に格納された順番を表す数値が処理内容に格納された子情報総数以上であるかを判別する（ステップＳ１５８）。
【０１７８】
順番を表す数値が子情報総数以上である場合には（ステップＳ１５８肯定）、差分反映部１４は、ＳＱＬコマンド「ＩＮＳＥＲＴ」を用いて処理情報に格納された各情報をリレーショナルデータベース１５に対して挿入する（ステップＳ１６１）。その後、差分反映部１４は追加処理を終了する。
【０１７９】
一方、順番を表す数値が子情報総数未満であった場合には（ステップＳ１５８否定）、差分反映部１４は、ＳＱＬコマンド「ＳＥＬＥＣＴ」を用いて、順番を表す数値よりも後の順番のレコードをリレーショナルデータベース１５から選択する（ステップＳ１５９）。
【０１８０】
次に、差分反映部１４は、ＳＱＬコマンド「ＵＰＤＡＴＥ」を用いて、ステップＳ１５９で選択したレコードの順番を表す数値に１を足す（ステップＳ１６０）。その後、差分反映部１４は、ＳＱＬコマンド「ＩＮＳＥＲＴ」を用いて処理情報に格納された各情報をリレーショナルデータベース１５に対して挿入する（ステップＳ１６１）。その後、差分反映部１４は追加処理を終了する。
【０１８１】
次に、図１８−２を用いて差分反映部１４が実行する更新処理の流れについて、詳しく説明する。ここで、図１８−２は実施例１に係る差分反映部の更新処理を説明するフローチャートである。
【０１８２】
処理内容に格納された情報が「更新」である場合には（ステップＳ１５２肯定）、差分反映部１４は、ＳＱＬコマンド「ＵＰＤＡＴＥ」を用いて、処理情報に格納された情報をリレーショナルデータベース１５に対して反映させる。（ステップＳ１６２）。その後、差分反映部１４は、更新処理を終了する。
【０１８３】
次に図１８−３を用いて差分反映部１４が実行する削除処理の流れについて、詳しく説明する。ここで、図１８−３は、実施例１に係る差分反映部の削除処理を説明するフローチャートである。
【０１８４】
処理内容に格納された情報が「初期」でなかった場合には（ステップＳ１５３否定）、差分反映部１４は、ＳＱＬコマンド「ＤＥＬＥＴＥ」を用いて、処理情報をリレーショナルデータベース１５に反映させる（ステップＳ１６３）。
【０１８５】
次に、差分反映部１４は、操作箇所に格納された順序を表す数値が処理内容に格納された子情報総数に１を足した数以上であるかを判別する（ステップＳ１６４）。順序を表す数値が子情報総数に１を足した数以上である場合には（ステップＳ１６４肯定）、差分反映部１４は、削除処理を終了する。
【０１８６】
一方、順序を表す数値が子情報総数に１を足した数未満であった場合には（ステップＳ１６４否定）、差分反映部１４は、順番を表す数値よりも後の順番のレコードをリレーショナルデータベース１５から選択する（ステップＳ１６５）。具体的には、差分反映部１４は、ＳＱＬコマンド「ＳＥＬＥＣＴ」を用いて、順番を表す数値よりも後の順番のレコードをリレーショナルデータベース１５から選択する。
【０１８７】
次に、差分反映部１４は、ＳＱＬコマンド「ＵＰＤＡＴＥ」を用いて、ステップＳ１６５で選択したレコードの順番を表す数値から１を引く（ステップＳ１６６）。その後、差分反映部１４は、削除処理を終了する。
【０１８８】
[実施例１の効果]
上述してきたように、実施例１に係る複製作成装置１０は、複製元の情報に各種変更があった場合には、記憶された情報の順番性を保ったまま、差分のみを複製先に対して反映させることができる。そのため、複製作成装置１０は、サーバ資源の消費を最小限に抑えることができる。
【０１８９】
また、複製作成装置１０は、複製元であるネットワークデータベース２１に対して各種処理を要求する応用プログラムの煩雑な修正を伴わず、複製元の情報に対する修正を最小限におさえるので、サーバ資源の消費を最小限に抑えることができる。
【０１９０】
また、実施例１に係る複製作成装置１０は、応用プログラムが各種処理の対象となる子レコードをアドレスで指定した場合には、指定されたアドレスを有する子レコードをポインタ順に検索し、指定されたアドレスを有する子レコードの順番を取得する。
【０１９１】
よって、複製作成装置１０は、応用プログラムが各種処理の対象となる子レコードを指定する方法によらず、各種処理の対象となる子レコードの順番を取得することができるので、応用プログラムの煩雑な修正を伴わず、サーバ資源の消費を最小限に抑えることができる。
【０１９２】
また、実施例１に係る複製作成装置１０は、ネットワークデータベース２１に記憶された親レコードに対して当該親レコードに関連付けられた子レコードの数を子情報総数として付与する。また、複製作成装置１０は、ネットワークデータベース２１に記憶された子レコードに対して変更処理が実行された場合には、子情報総数を用いて、リレーショナルデータベース１５に記憶された情報から更新すべき情報を選択することができる。
【０１９３】
結果として、複製作成装置１０は、リレーショナルデータベース１５を更新する場合には、リレーショナルデータベース１５に対して余計な検索処理を実行せずに更新処理を実行することができる。よって、複製作成装置１０は、サーバ資源の消費を最小限に抑えることができる。
【実施例２】
【０１９４】
これまで本発明の実施例について、説明したが、本発明は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【０１９５】
（１）処理情報に格納される情報
実施例１に係る複製作成装置は、処理情報の操作箇所に各種処理の対象となった子データの順番を表す数値もしくはアドレスを格納した。しかし、実施例はこれに限定されるものではなく、別の情報を付加して格納しても良い。
【０１９６】
すなわち、処理情報の操作箇所に格納される情報を用いて各種処理の対象となった子データの順番を特定できればよい。例えば、ネットワークデータベースが複数のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）から構成されるネットワークデータベースであった場合には、操作箇所に、どのＨＤＤに記憶されているか、どの親レコードと関連付けられているか、および何番目の順番であるかを格納してもよい。
【０１９７】
また、実施例１に係る複製作成装置は、処理情報の親箇所に親レコードのアドレスを格納した。しかし、実施例はこれに限定されるものではなく、例えば、親レコードに記憶された情報を格納しても良い。各親レコードに一意の情報が記憶されているのであれば、各種処理の対象となるテーブルをＲＤＢに記憶された複製から選択することが可能となるからである。
【０１９８】
（２）差分抽出部の設置場所
実施例１に係る差分抽出部１１は、複製作成装置１０が有しているが、これは別の様態であってもよい。すなわち、複製作成装置は、複製元であるネットワークデータベースと複製先であるリレーショナルデータベースとが物理的に遠距離にある場合には、差分抽出部をネットワークデータベースに組み込んだ方が複製の効率がよい。例えば、複製元のネットワークデータベースの近隣に差分抽出部を設置し、複製作成装置が有する他の部分をリレーショナルデータベースの近隣に設置し、互いをネットワークにより接続してもよい。
【０１９９】
ネットワークデータベースに記憶された情報が有する順番関係を保ったまま、差分のみをリレーショナルデータベースに記憶された情報に反映させることができれば、複製作成装置は、目的を達することができるからである。
【０２００】
（３）初期抽出部
実施例１に係る複製作成装置は、初期抽出部を用いて、ネットワークデータベースの情報をリレーショナルデータベースに複製していた。しかし、実施例は、これに限定されるものではなく、例えば初期抽出部を有さなくても、目的を達することができる。
【０２０１】
例えば、あらかじめＮＤＢの複製としてＲＤＢが構築されている場合には、複製作成装置は、初期抽出部を必要とせず、差分抽出部、順序番号生成部および差分反映部のみを用いて、差分を反映させることができる。
【０２０２】
（４）プログラム
ところで、実施例１に係る複製作成装置では、ハードウェアを利用して各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。
【０２０３】
そこで、以下では、図２４を用いて実施例１に示した複製作成装置と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
【０２０４】
図２４に例示されたコンピュータ２００は、ＨＤＤ１５０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３０、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１４０、をバス１７０で接続されている。さらにバス１７０には、ネットワークデータベース２１およびリレーショナルデータベース１５と接続するための接続端子部分Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）１６０が接続されている。
【０２０５】
ＲＯＭ１３０には、差分抽出プログラム１３１、初期抽出プログラム１３２、順序番号生成プログラム１３３、差分反映プログラム１３４があらかじめ保持されている。ＣＰＵ１４０が各プログラム１３１〜１３４をＲＯＭ１３０から読み出して実行することによって、図２４に示すように、各プログラム１３１〜１３４は、差分抽出プロセス１４１、初期抽出プロセス１４２、順序番号生成プロセス１４３、差分反映プロセス１４４として機能するようになる。
【０２０６】
なお、各プロセス１４１〜１４４は、図１に示した差分抽出部１１、初期抽出部１２、順序番号生成部１３、差分反映部１４にそれぞれ対応する。
【０２０７】
なお、各プログラム１３１〜１３４はＲＯＭ１３０に保持されている必要は無く、例えばＨＤＤ１５０に記録されており、ＣＰＵ１４０によって展開され、各プロセス１４１〜１４４として機能するようにしてもよい。また、各プログラム１３１〜１３４は、ＲＡＭ１２０に保持されてもよい。
【０２０８】
なお、本実施例で説明した複製作成プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０２０９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２１０】
（付記１）複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出手順と、
前記順番情報算出手順によって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映手順と、
をコンピュータに実行させることを特徴とする情報複製プログラム。
【０２１１】
（付記２）前記順番情報算出手順は、所定のレコードから隣接するレコードを順に辿って変更対象となるレコードを検索する変更処理が実行された場合に、前記所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記１に記載の情報複製プログラム。
【０２１２】
（付記３）前記順番情報算出手順は、変更対象となるレコードが格納された複製先での位置を特定するアドレス情報を用いて変更処理が実行された場合に、当該アドレス情報で変更対象となるレコードを検索し、所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記１に記載の情報複製プログラム。
【０２１３】
（付記４）前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置に記憶された情報に対して新たな情報が追加された場合には、当該追加された情報の順番情報を算出し、
前記複製先反映手順は、前記順番情報算出手順によって算出された前記順番情報が示す順番以後の順序番号を加算するように、前記変更処理を前記複製先の順序情報に反映し、前記複製元に追加された情報を前記順番情報とともに前記複製先に追加することを特徴とする付記１〜３のいずれか１つに記載の情報複製プログラム。
【０２１４】
（付記５）前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置に記憶された情報が削除された場合には、当該削除された情報の順番情報を算出し、
前記複製先反映手順は、前記複製元から削除された情報を前記順番情報とともに前記複製先から削除し、前記順番情報算出手順によって算出された前記順番情報が示す順番以後の順序番号を減算するように、前記変更処理を前記複製先の順序情報に反映することを特徴とする付記１〜３のいずれか１つに記載の情報複製プログラム。
【０２１５】
（付記６）前記順番情報算出手順は、前記変更処理として、前記複製元の記憶装置記憶された情報が更新された場合には、当該更新された情報の順番情報を算出し、
前記複製先反映手順は、前記順番情報算出手順によって算出された前記順番情報が示す順序に該当する複製先の情報に対して、前記更新の内容を反映することを特徴とする付記１〜３のいずれか１つに記載の情報複製プログラム。
【０２１６】
（付記７）複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出部と、
前記順番情報算出部によって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映部と、
を備えることを特徴とする情報複製装置。
【０２１７】
（付記８）前記順番情報算出部は、所定のレコードから隣接するレコードを順に辿って変更対象となるレコードを検索する変更処理が実行された場合に、前記所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記７に記載の情報複製装置。
【０２１８】
（付記９）前記順番情報算出部は、変更対象となるレコードが格納された複製先での位置を特定するアドレス情報を用いて変更処理が実行された場合に、当該アドレス情報で変更対象となるレコードを検索し、所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記７に記載の情報複製装置。
【０２１９】
（付記１０）前記順番情報算出部は、前記変更処理として、前記複製元の記憶装置に記憶された情報に対して新たな情報が追加された場合には、当該追加された情報の順番情報を算出し、
前記複製先反映部は、前記順番情報算出部によって算出された前記順番情報が示す順番以後の順序番号を加算するように、前記変更処理を前記複製先の順序情報に反映し、前記複製元に追加された情報を前記順番情報とともに前記複製先に追加することを特徴とする付記７〜９のいずれか１つに記載の情報複製装置。
【０２２０】
（付記１１）前記順番情報算出部は、前記変更処理として、前記複製元の記憶装置に記憶された情報が削除された場合には、当該削除された情報の順番情報を算出し、
前記複製先反映部は、前記複製元から削除された情報を前記順番情報とともに前記複製先から削除し、前記順番情報算出部によって算出された前記順番情報が示す順番以後の順序番号を減算するように、前記変更処理を前記複製先の順序情報に反映することを特徴とする付記７〜９のいずれか１つに記載の情報複製装置。
【０２２１】
（付記１２）前記順番情報算出部は、前記変更処理として、前記複製元の記憶装置記憶された情報が更新された場合には、当該更新された情報の順番情報を算出し、
前記複製先反映部は、前記順番情報算出部によって算出された前記順番情報が示す順序に該当する複製先の情報に対して、前記更新の内容を反映することを特徴とする付記７〜９のいずれか１つに記載の情報複製装置。
【０２２２】
（付記１３）複数の情報を記憶する複製元に記憶された情報に対して変更処理が実行された場合に、全レコードに対する変更箇所を示す情報を用いて、変更された情報である変更情報の前記複製元に記憶された全レコード内における順番を示す順番情報を算出する順番情報算出ステップと、
前記順番情報算出ステップによって算出された前記順番情報に応じて、前記変更処理を複製先の情報に反映する複製先反映ステップと、
を含むことを特徴とする情報複製方法。
【０２２３】
（付記１４）前記順番情報算出ステップは、所定のレコードから隣接するレコードを順に辿って変更対象となるレコードを検索する変更処理が実行された場合に、前記所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記１３に記載の情報複製方法。
【０２２４】
（付記１５）前記順番情報算出ステップは、変更対象となるレコードが格納された複製先での位置を特定するアドレス情報を用いて変更処理が実行された場合に、当該アドレス情報で変更対象となるレコードを検索し、所定のレコードから前記変更対象となるレコードが検索されるまでのレコード数を用いて、前記複製元に記憶された全レコード内における前記変更情報の順番を示す順番情報を算出することを特徴とする付記１３に記載の情報複製方法。
【０２２５】
（付記１６）前記順番情報算出ステップは、前記変更処理として、前記複製元の記憶装置に記憶された情報に対して新たな情報が追加された場合には、当該追加された情報の順番情報を算出し、
前記複製先反映ステップは、前記順番情報算出ステップによって算出された前記順番情報が示す順番以後の順序番号を加算するように、前記変更処理を前記複製先の順序情報に反映し、前記複製元に追加された情報を前記順番情報とともに前記複製先に追加することを特徴とする付記１３〜１５のいずれか１つに記載の情報複製方法。
【０２２６】
（付記１７）前記順番情報算出ステップは、前記変更処理として、前記複製元の記憶装置に記憶された情報が削除された場合には、当該削除された情報の順番情報を算出し、
前記複製先反映ステップは、前記複製元から削除された情報を前記順番情報とともに前記複製先から削除し、前記順番情報算出ステップによって算出された前記順番情報が示す順番以後の順序番号を減算するように、前記変更処理を前記複製先の順序情報に反映することを特徴とする付記１３〜１５のいずれか１つに記載の情報複製方法。
【０２２７】
（付記１８）前記順番情報算出ステップは、前記変更処理として、前記複製元の記憶装置記憶された情報が更新された場合には、当該更新された情報の順番情報を算出し、
前記複製先反映ステップは、前記順番情報算出ステップによって算出された前記順番情報が示す順序に該当する複製先の情報に対して、前記更新の内容を反映することを特徴とする付記１３〜１５のいずれか１つに記載の情報複製方法。
【符号の説明】
【０２２８】
１０  複製作成装置
１１  差分抽出部
１２  初期抽出部
１３  順序番号生成部
１４  差分反映部
１５  リレーショナルデータベース
２１  ネットワークデータベース
２００  コンピュータ
１２０  ＲＡＭ
１３０  ＲＯＭ
１４０  ＣＰＵ
１５０  ＨＤＤ
１６０  Ｉ／Ｏ
【図１】
2010238123.tif 000003
【図２】
2010238123.tif 000004
【図３】
2010238123.tif 000005
【図４−１】
2010238123.tif 000006
【図４−２】
2010238123.tif 000007
【図５】
2010238123.tif 000008
【図６】
2010238123.tif 000009
【図７−１】
2010238123.tif 000010
【図７−２】
2010238123.tif 000011
【図７−３】
2010238123.tif 000012
【図７−４】
2010238123.tif 000013
【図８】
2010238123.tif 000014
【図９−１】
2010238123.tif 000015
【図９−２】
2010238123.tif 000016
【図１０−１】
2010238123.tif 000017
【図１０−２】
2010238123.tif 000018
【図１１−１】
2010238123.tif 000019
【図１１−２】
2010238123.tif 000020
【図１２】
2010238123.tif 000021
【図１３】
2010238123.tif 000022
【図１４−１】
2010238123.tif 000023
【図１４−２】
2010238123.tif 000024
【図１４−３】
2010238123.tif 000025
【図１４−４】
2010238123.tif 000026
【図１５】
2010238123.tif 000027
【図１６】
2010238123.tif 000028
【図１７】
2010238123.tif 000029
【図１８−１】
2010238123.tif 000030
【図１８−２】
2010238123.tif 000031
【図１８−３】
2010238123.tif 000032
【図１９】
2010238123.tif 000033
【図２０】
2010238123.tif 000034
【図２１】
2010238123.tif 000035
【図２２】
2010238123.tif 000036
【図２３】
2010238123.tif 000037
【図２４】
2010238123.tif 000038
【図２５】
2010238123.tif 000039
【図２６】
2010238123.tif 000040