(57)【特許請求の範囲】
【請求項１】
「実在するまたは仮想のデータベース」の全体またはその一部の複製（以下「自複製」）を保持する装置（以下「自装置」）に、該自複製を更新する手順を実行させるプログラムであって、少なくとも、
該自複製のデータ（以下「自データ」）に対する編集内容（以下「自データ編集内容」）を作成する処理、
該自データ編集内容と、該自装置とは異なる装置（以下「他装置」）が保持する「該データベースの全体またはその一部の複製」のデータ（以下「他データ」）に対し該他装置が作成する編集内容（以下「他データ編集内容」）と、該他データの項目定義に対し該他装置が作成する編集内容（以下「他項目編集内容」）が集められ、かつ該自データ編集内容と該他データ編集内容と該他項目編集内容の順番を定める装置を、「サーバー」と呼ぶとき、該自データ編集内容を該サーバーへ送信する処理、
該サーバーに送信を要求し、該サーバーから該他データ編集内容と該他項目編集内容を受信する処理、
該サーバーから、該順番の情報を取得する処理、
該自データ編集内容と該他データ編集内容と該他項目編集内容を該順番で用いて、該自複製を更新する処理、
を実行させるプログラム。
【請求項２】
「実在するまたは仮想のデータベース」の全体またはその一部の複製（以下「自複製」）を保持する装置（以下「自装置」）に、該自複製を更新する手順を実行させるプログラムであって、少なくとも、
該自複製のデータに対する編集内容（以下「自データ編集内容」）を作成する処理、
順序数を提供する装置をサーバーと呼ぶとき、該サーバーから順序数（以下「自データ順序数」）を受信し、該自データ順序数を該自データ編集内容に設定する処理、
該自装置とは異なる装置（以下「他装置」）に該自データ編集内容を送信する処理、
該他装置が保持する「該データベースの全体またはその一部の複製」のデータ（以下「他データ」）に対して該他装置が作成し、かつ該サーバーから受信した順序数（以下「他データ順序数」）が設定された、編集内容（以下「他データ編集内容」）と、該他データの項目定義に対し該他装置が作成し、かつ該サーバーから受信した順序数（以下「他項目順序数」）が設定された、編集内容（以下「他項目編集内容」）を、受信する処理、
該自データ編集内容と該他データ編集内容と該他項目編集内容を、該自データ順序数と該他データ順序数と該他項目順序数の順番で用いて、該自複製を更新する処理、
を実行させるプログラム。
【請求項３】
「実在するまたは仮想のデータベース」の全体またはその一部の複製（以下「自複製」）を保持する装置（以下「自装置」）が、該自複製を更新する方法であって、少なくとも、
該自複製のデータ（以下「自データ」）に対する編集内容（以下「自データ編集内容」）を作成する処理、
該自データ編集内容と、該自装置とは異なる装置（以下「他装置」）が保持する「該データベースの全体またはその一部の複製」のデータ（以下「他データ」）に対し該他装置が作成する編集内容（以下「他データ編集内容」）と、該他データの項目定義に対し該他装置が作成する編集内容（以下「他項目編集内容」）が集められ、かつ該自データ編集内容と該他データ編集内容と該他項目編集内容の順番を定める装置を、「サーバー」と呼ぶとき、該自データ編集内容を該サーバーへ送信する処理、
該サーバーに送信を要求し、該サーバーから該他データ編集内容と該他項目編集内容を受信する処理、
該サーバーから、該順番の情報を取得する処理、
該自データ編集内容と該他データ編集内容と該他項目編集内容を該順番で用いて、該自複製を更新する処理、
を実行する方法。
【請求項４】
「実在するまたは仮想のデータベース」の全体またはその一部の複製（以下「自複製」）を保持する装置（以下「自装置」）が、該自複製を更新する方法であって、少なくとも、
該自複製のデータに対する編集内容（以下「自データ編集内容」）を作成する処理、
順序数を提供する装置をサーバーと呼ぶとき、該サーバーから順序数（以下「自データ順序数」）を受信し、該自データ順序数を該自データ編集内容に設定する処理、
該自装置とは異なる装置（以下「他装置」）に該自データ編集内容を送信する処理、
該他装置が保持する「該データベースの全体またはその一部の複製」のデータ（以下「他データ」）に対して該他装置が作成し、かつ該サーバーから受信した順序数（以下「他データ順序数」）が設定された、編集内容（以下「他データ編集内容」）と、該他データの項目定義に対し該他装置が作成し、かつ該サーバーから受信した順序数（以下「他項目順序数」）が設定された、編集内容（以下「他項目編集内容」）を、受信する処理、
該自データ編集内容と該他データ編集内容と該他項目編集内容を、該自データ順序数と該他データ順序数と該他項目順序数の順番で用いて、該自複製を更新する処理、
を実行する方法。
【請求項５】
少なくとも、
「実在するまたは仮想のデータベース」の全体またはその一部の複製（以下「複製Ｘ」）を保持し、該複製Ｘのデータに対する編集内容（以下「Ｘデータ編集内容」）を作成する装置（以下「装置Ｘ」）、と
該データベースの全体またはその一部の複製（以下「複製Ｙ」）を保持し、該複製Ｙのデータ（以下「Ｙデータ」）に対する編集内容（以下「Ｙデータ編集内容」）と、該Ｙデータの項目定義に対する編集内容（以下「Ｙ項目編集内容」）を作成する装置（以下「装置Ｙ」）、
で構成されるシステムであって、
該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容の順番を定める装置を「サーバー」と呼ぶとき、該装置Ｘは該Ｘデータ編集内容を該サーバーに送り、該装置Ｙは該Ｙデータ編集内容と該Ｙ項目編集内容を該サーバーに送り、さらに
該装置Ｘは該サーバーに送信を要求し、該サーバーから該Ｙデータ編集内容と該Ｙ項目編集内容と該順番の情報を受信し、該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容を該順番で用いて、該複製Ｘを更新し、
該装置Ｙは該サーバーに送信を要求し、該サーバーから該Ｘデータ編集内容と該順番の情報を受信し、該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容を該順番で用いて、該複製Ｙを更新する、
ことを特徴とするシステム。
【請求項６】
少なくとも、
「実在するまたは仮想のデータベース」の全体またはその一部の複製（以下「複製Ｘ」）を保持し、該複製Ｘのデータに対する編集内容（以下「Ｘデータ編集内容」）を作成し、順序数を提供する装置（以下「サーバー」）から順序数（以下「Ｘデータ順序数」）を受信し、該Ｘデータ順序数を該Ｘデータ編集内容に設定する装置（以下「装置Ｘ」）と、
該データベースの全体またはその一部の複製（以下「複製Ｙ」）を保持し、該複製Ｙのデータ（以下「Ｙデータ」）に対する編集内容（以下「Ｙデータ編集内容」）を作成し、該サーバーから順序数（以下「Ｙデータ順序数」）を受信し、該Ｙデータ順序数を該編集内容Ｙに設定し、さらに、該Ｙデータの項目定義に対する編集内容（以下「Ｙ項目編集内容」）を作成し、該サーバーから順序数（以下「Ｙ項目順序数」）を受信し、該Ｙ項目順序数を該Ｙ項目編集内容に設定する装置（以下「装置Ｙ」）、
で構成されるシステムであって、
該装置Ｘは該Ｙデータ編集内容と該Ｙ項目編集内容を受信し、該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容を該Ｘデータ順序数と該Ｙデータ順序数と該Ｙ項目順序数の順番で用いて、該複製Ｘを更新し、
該装置Ｙは該編集内容Ｘを受信し、該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容を該Ｘデータ順序数と該Ｙデータ順序数と該Ｙ項目順序数の順番で用いて、該複製Ｙを更新する、
ことを特徴とするシステム。
【請求項７】
少なくとも、
「実在するまたは仮想のデータベース」の全体またはその一部の複製（以下「複製Ｘ」）を保持し、該複製Ｘのデータに対する編集内容（以下「Ｘデータ編集内容」）を作成する装置（以下「装置Ｘ」）、と
該データベースの全体またはその一部の複製（以下「複製Ｙ」）を保持し、該複製Ｙのデータ（以下「Ｙデータ」）に対する編集内容（以下「Ｙデータ編集内容」）を作成し、かつ、該Ｙデータの項目定義に対する編集内容（以下「Ｙ項目編集内容」）を作成する装置（以下「装置Ｙ」）、と
該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容の順番を定める装置（以下「サーバー」）、で構成されるシステムであって、
該装置Ｘは該Ｘデータ編集内容を該サーバーに送り、該装置Ｙは該Ｙデータ編集内容と該Ｙ項目編集内容を該サーバーに送り、
さらに
該装置Ｘは該サーバーに送信を要求し、該サーバーから該Ｙデータ編集内容と該Ｙ項目編集内容と該順番の情報を受信し、該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容を該順番で用いて、該複製Ｘを更新し、
該装置Ｙは該サーバーに送信を要求し、該サーバーから該編集内容Ｘと該順番の情報を受信し、該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容を該順番で用いて、該複製Ｙを更新する、
ことを特徴とするシステム。
【請求項８】
少なくとも、
順序数を提供する装置（以下「サーバー」）、と
「実在するまたは仮想のデータベース」の全体またはその一部の複製（以下「複製Ｘ」）を保持し、該複製Ｘのデータに対する編集内容（以下「Ｘデータ編集内容」）を作成し、該サーバーから順序数（以下「Ｘデータ順序数」）を受信し、該Ｘデータ順序数を該Ｘデータ編集内容に設定する装置（以下「装置Ｘ」）と、
該データベースの全体またはその一部の複製（以下「複製Ｙ」）を保持し、該複製Ｙのデータ（以下「Ｙデータ」）に対する編集内容（以下「Ｙデータ編集内容」）を作成し、該サーバーから順序数（以下「Ｙデータ順序数」）を受信し、該Ｙデータ順序数を該Ｙデータ編集内容」に設定し、さらに、該Ｙデータの項目定義に対する編集内容（以下「Ｙ項目編集内容」）を作成し、該サーバーから順序数（以下「Ｙ項目順序数」）を受信し、該Ｙ項目順序数を該Ｙ項目編集内容に設定する装置（以下「装置Ｙ」）、
で構成されるシステムであって、
該装置Ｘは該装置Ｙから該Ｙデータ編集内容と該Ｙ項目編集内容を受信し、該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容を該Ｘデータ順序数と該Ｙデータ順序数と該Ｙ項目順序数の順番で用いて、該複製Ｘを更新し、
該装置Ｙは該装置Ｘから該編集内容Ｘを受信し、該Ｘデータ編集内容と該Ｙデータ編集内容と該Ｙ項目編集内容を該Ｘデータ順序数と該Ｙデータ順序数と該Ｙ項目順序数の順番で用いて、該複製Ｙを更新する、
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
データベース（以下「ＤＢ」）のデータ項目を複数の計算機（以下「ＰＣ」）で並行して編集する方法に関する。
【背景技術】
【０００２】
＜データ入力前に項目を設定する一般的な運用＞
一般にＤＢの運用では非特許文献１に示すように項目を指定してテーブルを定義しその後データを投入している。ＤＢシステム開発に関する専門的な解説書である、非特許文献２、非特許文献３、非特許文献４においても、最初にテーブルの項目を定義しその後テーブルにデータを入力する手順が説明されている。
【０００３】
特許文献１では、あらかじめ定義してあるテンプレートの項目を追加・削除（１２８段）し、または項目名を変更（１５０段）して、新しいテーブル（を用いたプログラム）を作成（４８段）する。特許文献２も同じコンセプトである。特許文献３は、新規テーブルの作成方法に関する。これらのテーブルの項目作成に関する検討はデータを投入する前に項目を作成する事を前提としている。
【０００４】
＜並行編集禁止のＳＱＬ言語＞
一方、ＳＱＬ言語仕様ではデータ投入後の項目の変更が可能である。非特許文献５ではＳＱＬ文として「テーブルに新しい列を加える」（P384）、「テーブルの列の型を変更する」（P389）、「テーブルの列を削除する」（P395）などが示されている。非特許文献６ではP46-47において、ALTER TABLE 文で、列の追加などが行える事が記載されている。
【０００５】
しかし、ＳＱＬ言語では、一度に一つの操作に制限して並行編集を防いでいる。この事は、非特許文献５の第５章「データの更新・追加・削除」（p300-p319）にも説明されている。さらに、第６章「トランザクション」（p300-p319）では、関連する複数の操作がひとつのトランザクションとして管理され、他の処理の割り込みなどによるエラーが発生するとトランザクション全体の処理を無効にするロールバックや、トランザクション処理中に他の処理が割り込む事を禁止するロック（p322）など並行編集を禁止する高度な仕掛けがある。
【０００６】
＜キャシュ技術に基づく並行編集＞
ロックを用いず、作業用の複製を作成して処理を行うキャシュの技術で、処理や通信の効率化を図る試みも行われている。マイクロソフトのADO.NETは、計算機に当面の作業に必要なデータをサーバーからコピーし、サーバーとの接続を切断してから編集作業を行う。編集後に改めてサーバーと接続し編集内容をサーバーに送る。もし編集対象の情報が既に他のＰＣから変更されていれば、後からの（この）編集を無効にする。これは「オプティミスティック同時実行制御」（非特許文献７および非特許文献８）と呼ばれている。「ロックが結果として失敗した場合にはその編集を無効とする」と考えれば、編集ロックの一種とも言える。
【０００７】
＜従来技術の限界＞
以上の要点は、「一般的にはデータ入力後に項目の変更は行わない」「ＳＱＬではデータの入力後の項目編集が可能だが並行編集を禁止している」「キャシュを元に一時的な並行編集を行う方法があるがデータ入力後の項目の変更は検討していない」である。
【０００８】
つまり「データの入力後でも、複数のＰＣでの項目の並行編集、を可能とする」研究は行われていない。これは、キャシュの様な一時的な並行編集ではなく、長時間オフラインでＤＢを編集する「ＤＢに対する本格的な並行編集」の技術が確立していなかったためと思われる。ＤＢのデータ構造を決定する項目を複数のＰＣで並行して編集する事が、可能とは想像されなかった可能性もある。
【先行技術文献】
【特許文献】
【０００９】
＜変更編集に関する一般的な技術調査＞
キャシュや並行編集に関係すると見当をつけて、特許文献４、特許文献５、特許文献６、特許文献７、特許文献８、特許文献９、特許文献１０、非特許文献９を調査したが、編集が衝突した場合の対処方法に留まっていた。特許文献１１、特許文献１２、特許文献１３、特許文献１４、特許文献１５、特許文献１６も、一般的技術水準を示すものであり、本願とは異なる。
【特許文献１】特開２００６−３０９６９７
【特許文献２】ＷＯ／２００８／０４３１３６
【特許文献３】特開２００４−３４１７７０
【特許文献４】特開平１１−２７２５３３
【特許文献５】特開昭６１−１３４８５３号公報
【特許文献６】特開２００５−２１６１６７号公報
【特許文献７】特開平９−９１１８４号広報
【特許文献８】特開２００４−１３８６７号広報
【特許文献９】特開２００４−８６８００号広報
【特許文献１０】特開２００６−２８４９９８号広報
【特許文献１１】特開２０００−１９４５９２
【特許文献１２】特開平１１−１６１５３５号公報
【特許文献１３】特表２００５−５０３６０６号公報
【特許文献１４】特表２００５−５０８０５０号公報
【特許文献１５】特開平８−１６４４７号公報
【特許文献１６】特表２０００−５０１５３２号公報
【特許文献１７】ＰＣＴ／ＪＰ２００９／００２４９１
【非特許文献】
【００１０】
【非特許文献１】敷居隆、C++Builder データベースプログラミング第２回、InsideWindows（登録商標）、1997.12.01、第３巻、第１２号、p71-77
【非特許文献２】イー・キャシュ著、SQL Server2005ではじめよう  データベースシステム開発入門、２００５年１１月２８日、株エクスメディア発行
【非特許文献３】Wallace B.McClure, el at, Professional ADO.NET 2: Programming with SQL Server 2005,Oracle, and MySQL, Wiley Publishing, Inc. 2006
【非特許文献４】William R.Vaughn, 株トップスタジオ訳、伊藤由紀子監修、Windows（登録商標）データベースプログラミング ADO.NET専修講座 VB.NET 編、2003年８月４日初版発行、翔泳社
【非特許文献５】超図解 ＳＱＬハンドブック、Ｃ＆Ｒ研究所、２００５年８月１２日初版発行
【非特許文献６】Kevin Kline,Daniel Kline, 石井他監訳、イデアコラボレーション訳、SQL クイックレファレンス、２００１年１１月２日初版発行、オライリー・ジャパン
【非特許文献７】「ADO.NET におけるデータ同時実行制御の概要」、2007年１月、MSDNサブスクリプションライブラリー（msdnsubscriptions Library）、ディスクファイル（URL:ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/d5293098-4a88-4110-abd2-34d9e6661664.htm）
【非特許文献８】「チュートリアル : 同時実行例外の処理」、2007年１月、MSDNサブスクリプションライブラリー（msdnsubscriptions Library）、ディスクファイル（URL: ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/73ee9759-0a90-48a9-bf7b-9d6fc17bff93.htm）
【非特許文献９】「世界規模分散ファイルシステムSKINNY 」、情報処理学会研究報告, 95-OS-70, (学術刊行物  情処研報 Vol. 95,No.79 ISSN 0919-6072
【非特許文献１０】「主な機能とメリット」、[online]、2007年4月22日検索、インターネット（URL:http://www.sonicsoftware.co.jp/products/object_store/function.html）
【非特許文献１１】「MVCC（多版型同時実行制御）9.1. はじめに」、[online]、2007年4月22日検索、インターネット（URL:http://www.postgresql.jp/document/pg721doc/user/mvcc.html  #MVC  C-INTRO）
【非特許文献１０】「9.5. アプリケーションレベルでのデータの一貫性チェック」、[online]、2007年4月22日検索、インターネット（http://www.postgresql.jp/document/pg721doc/user/applevel-consistency.html）
【非特許文献１２】「CacheTechnology Guide」、[online]、2007年4月22日検索、インターネット（URL:http://www.intersystems.co.jp/cache/technologyguide/technologyguide.html）
【非特許文献１３】「主な機能とメリット」、[online]、2007年4月22日検索、インターネット（URL:http://www.sonicsoftware.co.jp/products/object_store/function.html）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本願では、データの入力後でも「複数のＰＣで項目を並行編集する事を可能とする」仕組みを明らかにする。
【課題を解決するための手段】
【００１２】
本願では、データの入力後でも「複数のＰＣで項目を並行編集する事を可能とする」仕組みを明らかにする。
【００１３】
＜並行編集＞
本明細書での並行編集とは、原本ＤＢのデータの全部または一部の複製をＰＣの内部に保持し、この複製に対して編集を行う事である。この原本ＤＢは実在しても良いし、実在せず各ＰＣが保持する複製ＤＢの内容が互いに同期する事により、いわば仮想の原本ＤＢに各ＰＣの複製ＤＢが同期する方式（特許文献１７）でも良い。サーバーが原本ＤＢを更新し、この全部または一部のデータと各ＰＣの複製ＤＢが同期する方式で良い。各ＰＣの複製ＤＢは一時的であっても、永続的にこのＰＣに存在してもどちらでも良い。
【００１４】
＜項目定義の分離と並行編集＞
本発明の基本は、ＤＢが収容するデータの項目の定義（以下「項目定義」）もＤＢのデータとして扱い並行編集の対象とする事にある。リレーショナルＤＢ（ＲＤＢ）の場合なら、従来は運用に先立ってテーブル（以下「データテーブル」）の項目を定義し、その後はこのデータテーブルへのデータの投入や編集などを行う。これに対して、本願ではデータテーブルの項目を定義したテーブル（以下「項目テーブル」）を作成し、この項目テーブルも並行編集の対象とする。項目テーブルを編集した結果、必要ならば項目テーブルに従ってデータテーブルも変更する。
【００１５】
ＲＤＢに対しては「項目テーブル」の表現は素直であるが、請求項の記述では一般的なＤＢを想定した「項目定義」の表現を、データテーブルも一般的な概念である「データ」の表現を用いる。つまり、本明細書で「項目テーブル」および「データテーブル」で説明する方法は、より一般的なＤＢに適用出来る。なお、ＲＤＢ以外のオブジェクト指向ＤＢなどの例は非特許文献１０、非特許文献１１、非特許文献１２、非特許文献１３などで見ることが出来る。
【００１６】
項目テーブルの編集とデータテーブルの編集の関係は、項目テーブルの編集内容に応じて、「（Ａ）無条件に並行編集可」と「（Ｂ）論理矛盾無しの条件付きで並行編集可」「（Ｃ）並行編集不可」とに分ける事が出来る。この分類を用いて項目テーブルとデータテーブルの並行編集を説明する。項目テーブルの編集とデータテーブルの編集が並行して行え、さらに項目テーブル自体の並行編集とデータテーブル自体の変更編集が可能ならば、完璧な並行編集と言える。
【００１７】
項目の編集といっても、項目名や表示方法（数字の表示フォーマットや列の表示幅）の変更は、他のＰＣがデータの編集を行っていても、何ら問題は無い。これが「（Ａ）無条件に並行編集可」である。
【００１８】
従来は、項目定義をデータベースの基本的な情報として記録していたため、この項目定義に基づいたデータの入力やデータの修正と並行して、項目定義自体を変更する事は不可能であった。本願では、項目テーブルとデータテーブルとを分離し、両方を並行編集の対象とする事により、並行編集を可能とした。並行編集の技術が有れば、この技術を項目テーブルとデータテーブルの両方に適用すれば良い。
【００１９】
項目テーブルの変更で、データテーブルの構造やデータを変更する可能性がある場合は、その変更が論理矛盾を起こさないとの条件付きで変更編集可能である。つまり「（Ｂ）論理矛盾無しの条件付きで並行編集可」である。
【００２０】
例えば、名簿に新たに「性別」の項目を設ける場合、選択肢が「男・女」のみでデフォルトが設定されてないと、既に入力済のデータに「性別」の項目を追加する時点で論理矛盾が発生する。「男・女」のどちらかをデフォルトとするか、選択肢を「男・女・不明」として「不明」をデフォルトとするなどの対策があれば矛盾は起きない。
【００２１】
この例は単純であるが、実際には十分検討したつもりでも、予想外のデータに対して論理矛盾を引き起こす可能性は否定出来ない。たとえ入力済の既存データで、論理矛盾が起きない事を事前検証したとしても、この事前検証と並行して追加や修正されたデータは検証もれとなり、項目追加の本番でエラーとなる可能性が残っている。
【００２２】
これを考慮すると、論理矛盾が無いことを確実に検証する手順が必要である。そして、この確認結果は関係する全ＰＣで共通である必要がある。また、項目テーブルに関する変更を元にデータテーブルを変更した場合に、その変更した結果も各ＰＣで同じである必要がある。これらの対策を後で示す。
【００２３】
「（Ｂ）論理矛盾無しの条件付きで並行編集可」の可能性があっても「（Ｃ）並行編集不可」として扱う事も可能である。並行編集の禁止により編集作業は不便になるが、編集競合が防止でき、簡単に各ＰＣの複製ＤＢを同期させる事が出来る。並行編集の禁止の手順を後で示す。
【００２４】
＜項目変更の確認とデータテーブル構造の更新手順＞
「項目テーブルの変更に論理矛盾が無い」ことの確認結果は、関係する全ＰＣで同じとなる必要がある。もし、あるＰＣでは論理矛盾が発生し、別のＰＣでは論理矛盾は発生しないとすると、それぞれが保持する複製ＤＢが同期しなくなる。また、データテーブル構造も更新の結果が同じとなる必要が有る。これらを実現する手順は、並行編集の具体的方法により異なる。
【００２５】
サーバーが原本ＤＢを更新し、この全部または一部のデータと各ＰＣの複製ＤＢが同期するケースでは、項目変更の確認とデータテーブル構造の更新はサーバーで行うので、各ＰＣの複製ＤＢが異なる可能性はない。
【００２６】
各ＰＣが、仮想のまたは実在する原本ＤＢの（全部または一部の）と同期した複製ＤＢを持ち、各ＰＣが複製ＤＢに対する編集を行い、これらの編集の記録（以下「編集記録」）をＰＣ相互に交換し、それぞれの複製ＤＢを更新する方法（特許文献１７）の場合には、項目テーブルとデータテーブルの編集記録の順番が重要である。編集記録を用いて各ＰＣの複製ＤＢを更新する順番が異なると、項目テーブル変更による論理矛盾の検出の結果や、データテーブル構造の更新結果が異なることになる。
【００２７】
これを防ぐには、データテーブルに対して行われた並行編集の編集記録と、この項目を定義した項目テーブルに対して行われた並行編集の編集記録に順番を付け、複製ＤＢの更新を行う全てのＰＣは、この順番で編集記録を取り出して複製ＤＢを更新する必要がある。たとえ、項目テーブルに対するある編集がエラーになりこの編集を無効としても、全てのＰＣでエラーとなり無効となるので、各ＰＣの複製ＤＢは同期する。
【００２８】
これらに順序を付けるにはいくつかの方法がある。ひとつはデータテーブルに対して行われた並行編集の編集記録と、この項目を定義した項目テーブルに対して行われた並行編集の編集記録をサーバーにアップする。サーバーは到着順に並べる（シングルキューを構成する）。各ＰＣがこの順番で編集記録を受信し複製ＤＢの更新を行えば、複製ＤＢは同期する。
【００２９】
各ＰＣからアップされた編集記録をサーバー（又は特別なＰＣ）が変更したり、その順番を変更したとしても、各ＰＣが変更された順番（同じ順番）で変更後の編集記録（同じ内容）を受信し複製ＤＢの更新を行えば同期する。
【００３０】
別の方法もある。編集記録を作成したＰＣから、順番を管理するサーバー（又はＰＣ）に編集記録の順番を問い合わせ、このＰＣから指定された順番を編集記録に書き込む。編集記録自体はＰＣの間で直接送信しても、ここに書かれている順番はユニークである。順番の替わりに時間を編集記録に記入して、順番として用いても良い。なお、ＰＣ毎の時間のずれが生じる事を考え、特定のＰＣが時間を管理するなどの工夫が必要である。
【００３１】
＜並行編集の禁止手順＞
以下では説明のため、ある項目テーブルの編集（Ｘ）について、この編集との並行編集を禁止する状況を想定する。つまりＸの編集開始からＸの編集が完了して、（サーバーなどへのアップにより）Ｘの順番が確定するまで期間を、他のＰＣの「編集禁止期間」とする。この編集記録（Ｘ）までを取り込んで更新した後の複製ＤＢに対する編集から禁止が解除される。
【００３２】
ひとつの方法は、この禁止区間に行われた編集をサーバーが検出して無効とする。例えば、編集記録をサーバーにアップするケースでは、まず、編集Ｘを行うＰＣからサーバー並行編集禁止を伝える。サーバーはこの情報に基づき、該当する編集記録を無効として処理する。処理としては単純であるが、この無効とされた編集を作成した側の労力は無駄になる。
【００３３】
ＰＣに禁止を伝えるのが、もうひとつの方法である。編集Ｘを行うＰＣから他のＰＣに直接伝えても良いし、編集Ｘを行うＰＣから、サーバーに伝えて、サーバーから各ＰＣに伝えても良い。サーバーから編集禁止が通知されたら、このＰＣは複製ＤＢの更新を行っても、これに対する編集は行わない。編集禁止解除が通知されてから編集を開始する。
【００３４】
なお、編集の禁止は、他のＰＣによる同じ項目テーブルに対する編集の禁止、他のＰＣによる（この項目テーブルが項目を規定する）データテーブルに対する編集の禁止がある。両方またはどちらか片方を状況に応じて指定すれば良い。
【００３５】
＜ＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項との対応＞
本明細書での並行編集とは、（実在の又は仮想の）原本ＤＢの情報の全部または一部の複製をＰＣの内部に保持し、この複製に対して編集を行う事である。これに、ＤＢが収容するデータの項目の定義（以下「項目定義」）もＤＢのデータとして扱い並行編集の対象とし、更新された項目定義の複製に従って、データの該複製を再構成する事、を加えたのが本願の基本であり、これがＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項１である。ＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項１をベースとし、データの複製と項目定義の複製に対する編集記録をシングルキューで管理するのがＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項２である。これにさらに、ひとつの編集記録にデータと項目の両方の変更の記録が記録される場合（図３について説明した本願の４７段で説明）も含むのがＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項３である。さらに「該編集の有効性を判定」を加えたのがＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項４である。
【００３６】
ＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項１から４はそれぞれ、「データベースの編集方法であって、（Ａ）データベースのデータの複製と、該データの項目を定めた項目定義の複製を保持し、（Ｂ）外部から受信した編集記録により、項目定義の該複製を更新する工程、（Ｃ）項目定義の、更新された該複製の内容に従って、データの該複製を再構成する工程、を特徴とする方法」と、
「データベースの編集方法であって、（Ａ）データベースのデータの複製と、該データの項目を定めた項目定義の複製を保持し、（Ｂ１）外部から受信した編集記録を、指定された順番で取り出し、該編集記録の内容に応じて、データの該複製の更新または項目定義の該複製の更新を行う、一連の工程、（Ｃ）項目定義の、更新された該複製の内容に従って、データの該複製を再構成する工程、を特徴とする方法」と、
「データベースの編集方法であって、（Ａ）データベースのデータの複製と、該データの項目を定めた項目定義の複製を保持し、（Ｂ２）外部から受信した編集記録を、指定された順番で取り出し、該編集記録の内容に応じて、「データの該複製の更新、そして、または、項目定義の該複製の更新」を行う、一連の工程、（Ｃ）項目定義の、更新された該複製の内容に従って、データの該複製を再構成する工程、を特徴とする方法」と
「データベースの編集方法であって、（Ａ）データベースのデータの複製と、該データの項目を定めた項目定義の複製を保持し、（Ｂ３）外部から受信した編集記録を、指定された順番で取り出し、該編集の有効性を判定し、有効と判定された該編集記録の内容に応じて、「データの該複製、そして、または、項目定義の該複製の更新」を行う、一連の工程、（Ｃ）項目定義の、更新された該複製の内容に従って、データの該複製を再構成する工程、を特徴とする方法」である。
【００３７】
データの複製と項目定義の複製を保持し、項目定義を編集し、これらに対する編集記録をシングルキューで管理するのがＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項５である。これに「該編集の有効性を判定」を加えたのがＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項６である。ＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項５をベースに「項目定義」に対する編集を行う間の他のＰＣの編集を禁止する工程を加えたのがＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項７である。
【００３８】
ＰＣＴ／ＪＰ２００９／００２５０１出願時の請求項５から７はそれぞれ、「データベースの編集方法であって、（Ａ）データベースのデータの複製と、該データの項目を定めた項目定義の複製を保持し、（Ｄ）項目定義の該複製に対する編集記録を作成し、外部に送信する工程、（Ｂ４）該編集記録、およびまたは外部の編集記録を、受信または保持し、（Ｂ５）これらの編集記録を、指定された順番で取り出し、指定された順番で取り出し、該編集記録の内容に応じて、「データの該複製、そして、または、項目定義の該複製の更新」を行う、一連の工程、を特徴とする方法」と、
「データベースの編集方法であって、（Ａ）データベースのデータの複製と、該データの項目を定めた項目定義の複製を保持し、（Ｄ）項目定義の該複製に対する編集記録を作成し、外部に送信する工程、（Ｂ４）該編集記録、およびまたは外部の編集記録を、受信または保持し、（Ｂ６）これらの編集記録を、指定された順番で取り出し、指定された順番で取り出し、該編集の有効性を判定し、有効と判定された該編集記録の内容に応じて、「データの該複製、そして、または、項目定義の該複製の更新」を行う、一連の工程、を特徴とする方法」と、
「データベースの編集方法であって、（Ａ）データベースのデータの複製と、該データの項目を定めた項目定義の複製を保持し、（Ｄ１）項目定義の該複製に対する編集を行う前に、他の計算機に編集停止を通知し、（Ｄ）項目定義の該複製に対する編集記録を作成し、外部に送信する工程、（Ｄ２）該編集の編集記録を外部に送信し、（Ｄ３）該編集の後に編集停止の解除を通知する一連の工程と、（Ｂ４）該編集記録、およびまたは外部の編集記録を、受信または保持し、（Ｂ５）これらの編集記録を、指定された順番で取り出し、指定された順番で取り出し、該編集記録の内容に応じて、「データの該複製、そして、または、項目定義の該複製の更新」を行う、一連の工程、を特徴とする方法」である。
【発明の効果】
【００３９】
従来は「データの入力後でも、複数のＰＣでの項目の並行編集を可能とする」研究は行われてこなかった。本発明により、いわゆるＤＢの本格的な並行編集、つまり原本ＤＢのデータの全部または一部の複製をＰＣの内部に保持しこの複製に対して複製を行う編集、において複数のＰＣでの項目の並行編集が可能となった。
【図面の簡単な説明】
【００４０】
【図１】一般的な実施の概観
【図２】本願を実現する装置構成
【図３】初期の複製ＴＢＬを作成し複製ＴＢＬを同期する処理
【図４】複製ＴＢＬを編集し編集記録をサーバーにアップする処理
【図５】複製項目ＴＢＬの内容に基づき、複製データＴＢＬを再構成する処理
【図６】複製項目ＴＢＬの内容に基づき複製データＴＢＬのレコードを表示する処理
【図７】ＴＢＬの内容の例
【図８】処理例の説明図
【図９】並行編集の禁止手順
【発明を実施するための形態】
【００４１】
以下では、図も含め「テーブル」を「ＴＢＬ」と表示する。さて、一般的な実施の概観を図１に示す。これは、ＰＣ２台（ＰＣ−Ａ0101、ＰＣ−Ｂ0102）と、サーバー0103で構成され、これらはインターネットなどの通信網0104を介して接続される。サーバーの記憶装置0105の中には、初期項目ＴＢＬ0106と初期データＴＢＬ0107が有り、ＰＣ（ＰＣ−Ａ0101とＰＣ−Ｂ0102）はこれをコピーして、複製項目ＴＢＬ0211の初期値と複製データＴＢＬ0212の初期値とする。各ＰＣが空のＴＢＬを作成して初期値とする事も出来る。単に「複製ＴＢＬ」といった場合、複製項目ＴＢＬと複製データＴＢＬの両方を示す。
【実施例１】
【００４２】
ＰＣが複製ＴＢＬに対する編集を行った場合は、その編集記録をサーバーに送る。サーバーはこれらを記憶装置0105に記録する。図１では、項目ＴＢＬに対する編集記録とデータＴＢＬに対する編集記録0108, 0109を到着順にひとつの列（シングルキュー）で管理している。
【００４３】
ＰＣには一般的に、演算装置、主記憶装置、二次記憶装置、入出力装置、通信装置、表示装置 などがバスで接続され構成されている。図１のＰＣ−Ａ0101とＰＣ−Ｂ0102は、本発明の方法に基づくプログラムを読み込み、それぞれのＰＣが図２に示す手段と記憶装置0217の集合体として機能する。ＰＣ0201は通信手段0203を通じてインターネットなどの通信網0202に接続し、その先のサーバー0210と通信する。
【００４４】
「初期の複製ＴＢＬを作成する手段」0204、「複製ＴＢＬを同期する手段」0205、「複製ＴＢＬに対する編集記録を作成する手段」0206、「編集結果をサーバーにアップする手段」0207、「複製項目ＴＢＬの内容に基づき、複製データＴＢＬを再構成する手段」0208、「複製項目ＴＢＬの内容に基づき複製データＴＢＬのレコードを表示する、または印刷する手段」0209、を実現する。
【００４５】
記憶装置0217には、複製項目ＴＢＬ0211と複製データＴＢＬ0212があり、それぞれに対する編集に対応して編集記録0213、0214が作成される。また、他のＰＣの編集記録をサーバーから受信し、このＰＣが作成した編集記録も含めた編集記録の順番をサーバーから受信し、これらにより複製項目ＴＢＬと複製データＴＢＬを更新する。サーバーで項目ＴＢＬに対する編集記録とデータＴＢＬに対する編集記録を到着順にひとつの列を構成している場合は、ＰＣでも同じひとつの列（編集記録0215、0216）を作成し、この順番でＰＣの複製項目ＴＢＬ0211と複製データＴＢＬ0212を更新する。
【００４６】
「初期の複製ＴＢＬを作成する手段」0204では、サーバーにある初期ＴＢＬ（初期項目ＴＢＬ0106と初期データＴＢＬ0107）をコピーしてＰＣの初期の複製ＴＢＬ（初期複製項目ＴＢＬ0211と初期データＴＢＬ0212）とする。ＰＣに初期複製ＴＢＬが存在しない場合には、まずこの作業を行う。初期ＴＢＬがサーバーに無くても「初期複製ＴＢＬは空」との認識が各ＰＣにあれば、各ＰＣが空の複製ＴＢＬを作成する事で、初期複製ＴＢＬが作成出来る。空の複製項目ＴＢＬにＰＣの操作者が項目を定義すれば、この項目定義に従って、空のデータテーブルが作成出来る
【００４７】
「複製ＴＢＬを同期する手段」0205は、サーバーにアップされた編集0106,0107を取り込み、「編集の有効性の判定」を行い、有効と判定された編集で複製ＴＢＬ（複製項目ＴＢＬ0211と複製データＴＢＬ0212）の内容を更新する。
【００４８】
「初期の複製ＴＢＬを作成する手段」0204、「複製ＴＢＬを同期する手段」0205、を連続して実行する手順を図３に示す。
【００４９】
まず「複製ＴＢＬが計算機に作成されているかを調査」0301する。なければ、サーバーにある初期ＴＢＬ（初期項目ＴＢＬ0211と初期データＴＢＬ0212）をコピーしてＰＣの初期の複製ＴＢＬとする。又は、空の複製ＴＢＬを作成し初期値とする0302。この部分が「初期の複製ＴＢＬを作成する手段」0204の処理である。
【００５０】
次に、まだ取り込んでいない編集記録がサーバー0103, 0210にあるかを確認0303し、有れば「編集記録をサーバーから取り込む」0304。そして「取り込んだ編集記録を順番に取り出」し0305、「編集の有効性の判定」0306を行い、有効ならば編集記録の対象に応じて「複製項目ＴＢＬの更新」0307又は「複製データＴＢＬの更新」0308を行う。なお、図３は、ひとつの編集記録は複製項目ＴＢＬまたは複製データＴＢＬのどちらか一方に対する記録を保持している場合の処理の流れであるが、ひとつの編集記録が両方の編集記録を含んでいても良い。この場合は「複製項目ＴＢＬの更新」0307と「複製データＴＢＬの更新」0308が編集記録に従って順に行われる。この部分が「複製ＴＢＬを同期する手段」0205の処理である。
【００５１】
「複製ＴＢＬを編集する手段」0206では、複製項目ＴＢＬ0211と複製データＴＢＬ0212の編集を行う。これらの編集記録は「編集記録をサーバーにアップする手段」0207により、サーバーにアップされる。この手順を図４に示す。まず「編集記録を特定」0401し、「編集記録に、編集対象の複製ＴＢＬ（または複製ＤＢ）のバージョンを指定」0402し、「サーバーに編集記録をアップ」0403する。
【００５２】
アップされた編集記録0108, 0109は、他のＰＣの「複製ＴＢＬを同期する手段」0205により、他のＰＣに取り込まれ、「編集の有効性の判定」0306が行われ、そのＰＣの複製ＴＢＬが更新される。「複製ＴＢＬを同期する手段」0205は、この編集をアップした計算機でも実行される。
【００５３】
以上の手段により、項目ＴＢＬとそのデータＴＢＬを対象とした「平行ＤＢアクセス」が実現される。残りの手段で項目テーブルとその元テーブルの関係を扱う。
【００５４】
「複製項目ＴＢＬの内容に基づき、複製データＴＢＬを再構成する手段」0208 では、項目テーブルに追加、変更、（本当の）削除されたレコードが有れば、まず新たな項目構成の空の元テーブルを作成し、そして古い元テーブルのレコードをコピーして移す。削除でも、操作者に表示しないだけの削除ならば、複製データＴＢＬを再構成する必要は無い。
【００５５】
この処理の流れを図５に示す。まず、項目ＴＢＬのレコードの、追加、変更、（本当の）削除」の有無を確認0501する。あれば、新たな項目構成の空のデータＴＢＬを作成0502する。そして、古い複製データＴＢＬのレコードを取り出し0503、その内容を新しい複製データＴＢＬに移す0504。項目が（本当に）削除されていれば、その値は新しい元テーブルには移さない（移せない）。
【００５６】
利用するＤＢソフトに項目編集の機能が備わっており、項目編集に伴いテーブルの構成も変更されるならば、これを利用しても良い。この場合「複製項目ＴＢＬの内容に基づき、複製データＴＢＬを再構成する手段」0208は、複製項目ＴＢＬの内容に基づきＤＢソフトの項目編集の機能を呼び出す事により実現される。
【００５７】
「変換処理」つまり「既存の項目の値を基に、新しい項目の値を設定する処理」が指定されていれば、図５の「古い複製データＴＢＬのレコードを取り出し」0503「その内容を新しい複製データＴＢＬ」0504処理の後に、「変換処理の指定を確認」0505し「変換処理を実行」0506する。なお、変換処理の実例を後で示す。
【００５８】
「複製項目ＴＢＬの内容に基づき、複製データＴＢＬのレコードを表示する、または印刷する手段」0209は、複製項目ＴＢＬ0211のレコードに指定された表示順に、表示指定のある項目を表示する。さらに複製データＴＢＬ0212のレコードを表示（または印刷）する。「表示=False」の項目レコードについては、複製データＴＢＬ0212 のこの項目の値は表示（または印刷）しない。
【００５９】
この手順を図６に示す。「複製項目ＴＢＬ0211のレコードをその表示順に指定された順番に検査」0601し、「項目の表示非表示を確認」0602し「表示=True」ならば、順番に「複製データＴＢＬ0211の表示用の項目を作成」0603する。次に、複製データＴＢＬ0211のレコードを順番に取り出し0604、表の行として、対応する項目の値を表示する0605。
【実施例２】
【００６０】
＜変換処理の実例＞
図７の複製項目ＴＢＬ0701と複製データＴＢＬ0702を用いて説明する。複製項目ＴＢＬ0701には、複製データＴＢＬ0702の項目を定義するレコードとして、生徒名、評価、入学日のレコードが記録されている。複製データＴＢＬ0702には２件のレコードが記録されている。
【００６１】
「最初の表示」0703は、複製項目ＴＢＬ0701の「追加（１）」のＩＤ＝４の項目レコードが追加される前の表示である。この時点では、複製データＴＢＬの「追加（２）」の項目ＩＤ＝４の項目も無いし、複製データＴＢＬ0702の（レコードの）その値も設定されていない。
【００６２】
［変換処理］：  ここで「評価」を０から１００の数値でなく「合格／不合格」の表記に切り換えることにする。この変更は、項目の削除と追加を組み合わせる事により行う。
【００６３】
まず、従来の「評価」の項目レコード（ＩＤ＝２）で、削除の値をFalseから Trueに変更0704し、項目を削除状態にする。次に、新しい「評価」の項目レコード（ＩＤ＝４）を作成する。これが「追加（１）」である。
【００６４】
次に、従来の「評価」の値から新しい「評価」への「変換処理」を定義する。例えば、０から５９を「不合格」、６０から１００を「合格」、それ以外の数字、数字に変換出来ない文字、および未記入を「未定」とする。
【００６５】
この変換処理を実行した結果が複製データＴＢＬ0702の各レコードの項目ＩＤ＝４の値、つまり「追加（２）」の部分である。これを表示すると、複製データＴＢＬの「最初の表示」0703が「次の表示」0705に変わる。元レコードの「項目ＩＤ＝２」が表示されず、新しい「項目ＩＤ＝４」が表示されるので、操作者からは「評価」項目が変更された様に見える。
【００６６】
［削除の復活］：  削除マークが付いただけの項目は、その削除マークをクリアする事により項目が復活し、元レコードのその項目の値が表示される。上記の例で、ＩＤ＝４の項目レコードを「削除=Trueと変更」0704とし、ＩＤ＝２の項目レコードを「削除=False」として復活させれば、再び「最初の表示」が示される。
【００６７】
［表示順］：  図７の「最初の表示」0703および「次の表示」0705で、項目名が「生徒名」「評価」「入学日」と、項目テーブルの表示順の値に従って表示されている。項目テーブルの表示順の値を変更することにより、元テーブルの項目の表示順は変更される。
【００６８】
［処理の流れ］：  複製項目ＴＢＬと複製データＴＢＬが同じＤＢに記録され、両者に対する修正がこのＤＢのバージョンで管理されている場合の処理を図８で説明する。
【００６９】
ＰＣ−Ａ0802とＰＣ−Ｂ0803はそれぞれ、初期項目ＴＢＬ0106と初期データＴＢＬ0107が存在する初期ＤＢ0804を取得0807, 0808し、それぞれの複製ＤＢ0805, 0806としている。このなかに初期値の複製項目ＴＢＬ0211と複製データＴＢＬ0212が存在する。サーバー0801のバージョン０の初期ＤＢ0804をコピーしているので、どちらもバージョンは０である。その後、サーバー0801には編集記録１から編集記録６がアップされているが、これはＰＣ−Ａ0802、ＰＣ−Ｂ0803以外の計算機がアップした編集である。
【００７０】
さて、ＰＣ−Ａ0802は、複製項目ＴＢＬに対する編集を行うにあたり、最初の処理として同期0809を行う。この時、サーバー0801から編集記録１から編集記録６を取得し、複製ＤＢ0805のバージョンを６とする。そして、複製ＤＢ0805内の複製項目ＴＢＬ0211に対する編集0810を行う。この編集記録がサーバーにアップされ0811、編集７として記録される。
【００７１】
この直後の確認と同期0812により、先のアップ0811の編集記録が有効と判定され、編集７となった事を確認する。この結果は計算機Ａ0802の操作者に表示0813される。
【００７２】
この複製項目ＴＢＬ0211に対する編集0810により、対応する複製データＴＢＬの再構成が必要な場合は、ＰＣ−Ａ0802（のプログラム）は、複製データＴＢＬの再構成を行い、その結果を編集記録としてサーバーに送る0814。この編集はサーバーで編集８となる。ＰＣ−Ａ0802は同期を行い0815、編集が確定した結果をＰＣ−Ａ0802の操作者に表示0816する。ＰＣ−Ｂ0203も複製項目ＴＢＬ0211と複製データＴＢＬ0212の同期を行う0817。
【実施例３】
【００７３】
＜並行編集の禁止＞
あるＰＣでの複製項目ＴＢＬ0211の編集中に、他のＰＣでの編集を一次停止させる場合、図９の手順で行う。まず「他のＰＣに編集の一時停止を通知」0901した後、「複製項目ＴＢＬに対する編集記録を作成」0902し、この「編集記録を他のＰＣに送信」0903する。そして「他のＰＣに編集の一次停止の解除を通知」0904する。
【産業上の利用可能性】
【００７４】
従来のデータベースの運用の多くは、最初にテーブルの項目を設計し、その後はこのテーブルにデータを投入し編集するだけであった。またＳＱＬ言語仕様ではデータ入力後の項目の編集が可能であるが、同時編集を禁止していた。本願により、複数のＰＣで項目を並行編集する事を可能となり、データベースの運用に大きな自由度を与えられる。
【符号の説明】
【００７５】
0101      ＰＣ−Ａ
0102      ＰＣ−Ｂ
0103      サーバー
0104      通信網（インターネットなど）
0105      （サーバーの）記憶装置
0106      初期項目ＴＢＬ
0107      初期データＴＢＬ
0108      編集記録（１）
0108      編集記録（２）
0201      ＰＣ（計算機）
0202      通信網（インターネットなど）
0203      通信手段
0204      初期の複製ＴＢＬを作成する手段
0205      複製ＴＢＬを同期する手段
0206      複製ＴＢＬに対する編集記録を作成する手段
0207      編集結果をサーバーにアップする手段
0208      複製項目ＴＢＬに基づき、複製データＴＢＬを再構成する手段
0209      複製項目ＴＢＬに基づき複製データＴＢＬのレコードを表示する、または印刷する手段
0210      サーバー
0211      複製項目ＴＢＬ
0212      複製データＴＢＬ
0213      編集記録
0214      編集記録
0215      編集記録
0216      編集記録
0217      記憶装置
0301      複製ＴＢＬが計算機に作成されているかを調査
0302      複製ＴＢＬを作成する処理
0303      未取り込みの編集記録がサーバーにあるかを確認
0304      編集記録をサーバーから取り込む処理
0305      取り込んだ編集記録を順番に取り出す
0306      編集の有効性の判定
0307      複製項目ＴＢＬの更新
0308      複製データＴＢＬの更新
0401      編集記録を特定
0402      編集記録に、編集対象の複製ＴＢＬ（または複製ＤＢ）のバージョンを指定
0403      サーバーに編集記録をアップ
0501      項目ＴＢＬのレコードの、追加、変更、（本当の）削除の有無を確認
0502      新たな項目構成の空のデータＴＢＬを作成
0503      古い複製データＴＢＬのレコードを取り出す
0504      新しい複製データＴＢＬに移す
0505      変換処理の指定を確認
0506      変換処理を実行
0601      複製項目ＴＢＬのレコードをその表示順に指定された順番に検査
0602      項目の表示非表示を確認
0603      複製データＴＢＬの表示様の表の項目を作成
0604      複製データＴＢＬのレコードを順番に取り出す
0605      レコードの対応する項目の値を表示
0701      複製項目ＴＢＬ
0702      複製データＴＢＬ
0703      最初の表示
0704      削除=Trueと変更
0705      次の表示
0801      サーバー
0802      ＰＣ−Ａ（計算機Ａ）
0803      ＰＣ−Ｂ（計算機Ｂ）
0804      初期ＤＢ（初期項目ＴＢＬ0106と初期データＴＢＬ0107）
0805      （ＰＣ−Ａの）複製ＤＢ（複製項目ＴＢＬ0211と複製データＴＢＬ0212）
0806      （ＰＣ−Ｂの）複製ＤＢ（複製項目ＴＢＬ0211と複製データＴＢＬ0212）
0807      （ＰＣ−Ａによる）初期ＤＢの取得
0808      （ＰＣ−Ｂによる）初期ＤＢの取得
0809      確認と同期
0810      複製項目ＴＢＬに対する編集
0811      編集記録のアップ
0812      確認と同期
0813      （操作者への）表示
0814      複製データＴＢＬの構成変更結果（編集記録）
0815      確認と同期
0816      （操作者への）表示
0817      確認と同期
0901      他のＰＣに編集の一時停止を通知
0902      複製項目ＴＢＬに対する編集記録を作成
0903      編集記録を他のＰＣに送信
0904      他のＰＣに編集の一時停止の解除を通知
【図１】
0005543899.tif 000002
【図２】
0005543899.tif 000003
【図３】
0005543899.tif 000004
【図４】
0005543899.tif 000005
【図５】
0005543899.tif 000006
【図６】
0005543899.tif 000007
【図７】
0005543899.tif 000008
【図８】
0005543899.tif 000009
【図９】
0005543899.tif 000010