(57)【要約】      （修正有）【課題】スプレッドシートに基づくデータベースの更新方法を提供する。【解決手段】データベースから対象テーブルのデータセットを要請して取り出し、取り出した初期データセットを保存する段階と、スプレッドシートインタフェースを提供し、ワークシートを生成してデータセットの構造及びレコードデータをワークシートの上に表示する段階と、スプレッドシートインタフェースを用いたユーザの入力に応じてワークシート上のレコードセットのレコードデータを更新する段階と、初期データセットと更新済みデータセットを比較し、更新されたレコードを抽出し、更新されたレコードのデータセット構造及びレコードデータを定義する段階と、定義されたレコードのデータセット構造を用いて更新されたデータに対してクエリ文を生成し、生成したクエリ文を用いてデータベースを更新する段階と、を含む。【選択図】図３
2018136939.tif 000002
【特許請求の範囲】
【請求項１】
データベースとネットワークで連結されるスプレッドシートに基づくデータベースの更新方法において、
（ａ）前記データベースから対象テーブルのデータセットを要請して取り出し、取り出した初期データセットを保存する段階と、
（ｂ）スプレッドシートインタフェースを提供し、ワークシートを生成して前記データセットの構造及びレコードデータを前記ワークシートの上に表示する段階と、
（ｃ）前記スプレッドシートインタフェースを用いたユーザの入力に応じて前記ワークシート上のレコードセットのレコードデータを更新する段階と、
（ｄ）前記初期データセットと前記更新済みデータセットを比較し、更新されたレコードを抽出し、更新されたレコードのデータセット構造及びレコードデータを定義する段階と、
（ｅ）定義されたレコードのデータセット構造を用いて更新されたデータに対してクエリ文を生成し、生成したクエリ文を用いてデータベースを更新する段階と、を含むことを特徴とするスプレッドシートに基づくデータベースの更新方法。
【請求項２】
前記（ｄ）段階において、前記初期データセット及び前記更新済みデータセットをそれぞれキーフィールドを用いてソートし、前記初期データセットと前記更新済みデータセットのそれぞれのレコードを順次に対比することを特徴とする請求項１に記載のスプレッドシートに基づくデータベースの更新方法。
【請求項３】
前記（ｄ）段階は、
（ｄ１１）前記初期データセット及び更新済みデータセットのレコードをキーフィールドによりそれぞれソートする段階と、
（ｄ１２）前記初期データセット及び更新済みデータセットの初期レコードを現在レコードに設定する段階と、
（ｄ１３）前記初期データセット及び更新済みデータセットの現在レコードのキー値を互いに比較する段階と、
（ｄ２１）同一であれば、現在レコードのフィールド値をそれぞれ対比し、修正の有無を判断して更新内容を定義する段階と、
（ｄ３１）初期データセットの現在レコードのキー値が、更新済みレコードセットの現在レコードのキー値よりも先行する場合は、初期データセットの現在レコードが削除されたものと判断して更新内容を定義する段階と、
（ｄ３３）初期データセットの現在レコードを次レコードに設定し、前記（ｄ１３）段階から改めて始める段階と、
（ｄ４１）更新済みデータセットの現在レコードのキー値が、初期レコードセットの現在レコードのキー値よりも先行する場合は、更新済みデータセットの現在レコードが挿入されたものと判断して更新内容を定義する段階と、
（ｄ４３）更新済みデータセットの現在レコードを次レコードに設定し、前記（ｄ１３）段階から改めて始める段階と、を含むことを特徴とする請求項２に記載のスプレッドシートに基づくデータベースの更新方法。
【請求項４】
前記（ｄ）段階は、
（ｄ２２）前記（ｄ２１）段階以降、前記初期データセット及び更新済みデータセットの現在レコードのいずれか一つが最後のレコードであるかを判断する段階と、
（ｄ２４）いずれか一つのレコードが最後のレコードであれば、残りレコードがあるかを確認し、残った更新済みレコードセットのレコードが挿入されたものと、残った初期データセットのレコードは削除されたものと判断して定義する段階と、
（ｄ３２）前記（ｄ３１）段階以降、初期データセットの現在レコードが最後のレコードであるかを判断する段階と、
（ｄ３４）前記初期データセットの現在レコードが最後のレコードであれば、更新済みデータセットの現在レコード及び残りレコードは挿入されたものと判断して定義する段階と、
（ｄ４２）前記（ｄ４１）段階以降、更新済みデータセットの現在レコードが最後のレコードであるかを判断する段階と、
（ｄ４４）更新済みデータセットの現在レコードが最後のレコードであれば、初期データセットの現在レコード及び残りレコードは削除されたものと判断して定義する段階と、をさらに含むことを特徴とする請求項３に記載のスプレッドシートに基づくデータベースの更新方法。
【請求項５】
前記（ｄ２１）段階において、前記初期データセット及び更新済みデータセットの現在レコード間の各フィールドを比較し、相違したフィールドを修正されたフィールドであると判断し、修正された更新内容として定義するが、更新内容には、更新種類として、修正、キーフィールドのキー値、修正されたフィールドのフィールド値で定義し、
前記（ｅ）段階において、クエリ文を生成するとき、修正クエリ文は、修正されたフィールドのみでクエリ文を作成することを特徴とする請求項３に記載のスプレッドシートに基づくデータベースの更新方法。
【請求項６】
前記（ｅ）段階において、削除クエリ文をキーフィールドのみで生成し、入力クエリ文は、レコードセット構造の全フィールドを用いて生成することを特徴とする請求項５に記載のスプレッドシートに基づくデータベースの更新方法。
【請求項７】
前記（ｄ）段階において、データセット構造をＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書として定義し、更新されたデータをフラットファイルとして定義するが、前記フラットファイルに予め定義されたカラム及び行の区切り子により各レコードのフィールド値を区分して定義することを特徴とする請求項１に記載のスプレッドシートに基づくデータベースの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベータベースのデータセットをエクセル、ロータス等のシプレッドシートのワークシートに取り込んで修正すると、初期データセットと対比して、更新されたレコード及びそのフィールドを抽出し、それぞれの更新されたレコード別にクエリ文をそれぞれ作成してデータベースを更新する、スプレッドシートに基づくデータベースの更新方法に関する。
【背景技術】
【０００２】
一般に、ウェブ上でデータベースを更新（アップデート）するためには、データベースを処理するウェブプログラムと、これを指示するためのクエリ文が必要である。すなわち、データベース管理システムにおいて構造化問い合わせ言語（ＳＱＬ：Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）のレベルにより更新演算が行われる（例えば、下記の特許文献１参照）。
【０００３】
具体的に、データベースに特定のテーブルに書き込まれたデータを入力したり、修正又は削除したりするためには、ジャバサーバーページ（ＪＳＰ：Ｊａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）、アクティブサーバーページ（ＡＳＰ：Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）、ハイパーテキストプレプロセッサ（ＰＨＰ：Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｃｅｓｓｏｒ）等のサーバ側のウェブプログラムを用いて更新を行う。具体的に、前記サーバ側のウェブプログラムはデータベースと接続し、対象テーブルのデータを処理するための構造化問い合わせ言語（ＳＱＬ）文等のクエリ文を作成せねばならない。作成されたクエリ文をデータベースに転送し、当該クエリを処理するように要請すると、データベースは受信した当該クエリを処理することにより、データベース内のテーブルが更新される。
【０００４】
このため、上述したウェブプログラムがデータベースのクエリ文を処理するために、それぞれのテーブル又は当該項目別のウェブ画面を構成せねばならない。また、対象テーブルの個数だけ入力画面を別途に開発せねばならないという問題がある。この理由から、それぞれのクエリ文も開発者が自ら作成せねばならないため、多大な時間及び工数がかかるという問題がある。なお、作成された画面でも単件データ又は少量のデータしか取り扱うことができず、大量のデータの処理には不便さがあり、しかも、処理に長い時間がかかる。
【０００５】
このために、データベースをより効率よく修正するために、ネットワークに基づいて遠隔データベースをローカルで修正する様々な技術が提案されている。例えば、ユーザ装置上で多次元データベースのうちの一部をキャッシングして修正し、これを多次元データベースに反映して、データベースを修正する技術が提案されている（例えば、下記の特許文献２参照）。また、周期的にサンドファイル等の特定のファイルフォーマットを用いて更新する技術が提案されている（例えば、下記の特許文献３参照）。更に、部分データベースにおいてサブセットデータベースの更新を処理する技術が提案されている（例えば、下記の特許文献４参照）。
【０００６】
しかしながら、上記した先行技術等は、いずれもデータベースの一部である他のデータベースを修正して、これを母データベースに反映する技術である。このため、ローカルでもデータベースを構成して処理せねばならないという問題がある。すなわち、ローカルユーザは、データベースを取り扱う知識を有さなければならないという問題がある。
【０００７】
また、大量のデータをデータベースにおいて統合させるための技術も提案されている（例えば、下記の特許文献５参照）。すなわち、データの集まりを変換データに変換する多数の連続した作業を含む処理チェーンを行って、変換データを基準としてデータベースを変更する技術である。しかしながら、上記した先行技術等は、新たに追加されるデータを特定のフォーマットで設定した後に、これらのデータを元のデータベースに変換して保存する技術である。このため、一般のユーザが大量のデータを特定のフォーマットで構成せねばならず、これを直観的に処理することができないという問題がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】大韓民国公開特許第１０‐１９９９‐００３８６９８号（１９９９年０６月０５日付け公開）
【特許文献２】大韓民国公開特許第１０‐２００８‐００３１２０２号（２００８年０４月０８日付け公開）
【特許文献３】大韓民国公開特許第１０‐２００４‐００５３２５４号（２００４年０６月２３日付け公開）
【特許文献４】大韓民国公開特許第１０‐２０１２‐００５２３０１号（２０１２年０５月２３日付け公開）
【特許文献５】大韓民国公開特許第１０‐２０１４‐００２７１２８号（２０１４年０３月０６日付け公開）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記事情に鑑みてなされたものであり、ベータベースのデータセットをエクセル、ロータス等のシプレッドシートのワークシートに取り込んで修正すると、初期データセットと対比して、更新されたレコード及びそのフィールドを抽出し、それぞれの更新された各レコード別にクエリ文をそれぞれ作成してデータベースを更新する、スプレッドシートに基づくデータベースの更新方法を提供することを目的とする。
【００１０】
また、本発明は、初期データセットと更新済みデータセットを対比するが、先ず、各レコードセットをソートした後、各レコードを順次に対比し、各レコード別に各フィールドを対比して修正されたフィールドを抽出してクエリ文を作成する、スプレッドシートに基づくデータベースの更新方法を提供することを他の目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するための本発明は、データベースとネットワークで連結されるスプレッドシートに基づくデータベースの更新方法に関し、（ａ）前記データベースから対象テーブルのデータセットを要請して取り出し、取り出した初期データセットを保存する段階と、（ｂ）スプレッドシートインタフェースを提供し、ワークシートを生成して前記データセットの構造及びレコードデータを前記ワークシートの上に表示する段階と、（ｃ）前記スプレッドシートインタフェースを用いたユーザの入力に応じて前記ワークシート上のレコードセットのレコードデータを更新する段階と、（ｄ）前記初期データセットと前記更新済みデータセットを比較し、更新されたレコードを抽出し、更新されたレコードのデータセット構造及びレコードデータを定義する段階と、（ｅ）定義されたレコードのデータセット構造を用いて更新されたデータに対してクエリ文を生成し、生成したクエリ文を用いてデータベースを更新する段階と、を含むことを特徴とする。
【００１２】
また、本発明は、スプレッドシートに基づくデータベースの更新方法において、前記（ｄ）段階において、前記初期データセット及び前記更新済みデータセットをそれぞれキーフィールドを用いてソートし、前記初期データセットと前記更新済みデータセットのそれぞれのレコードを順次に対比することを特徴とする。
【００１３】
また、本発明は、スプレッドシートに基づくデータベースの更新方法において、前記（ｄ）段階は、（ｄ１１）前記初期データセット及び更新済みデータセットのレコードをキーフィールドによりそれぞれソートする段階と、（ｄ１２）前記初期データセット及び更新済みデータセットの初期レコードを現在レコードに設定する段階と、（ｄ１３）前記初期データセット及び更新済みデータセットの現在レコードのキー値を互いに比較する段階と、（ｄ２１）同一であれば、現在レコードのフィールド値をそれぞれ対比し、修正の有無を判断して更新内容を定義する段階と、（ｄ３１）初期データセットの現在レコードのキー値が、更新済みレコードセットの現在レコードのキー値よりも先行する場合は、初期データセットの現在レコードが削除されたものと判断して更新内容を定義する段階と、（ｄ３３）初期データセットの現在レコードを次レコードに設定し、前記（ｄ１３）段階から改めて始める段階と、（ｄ４１）更新済みデータセットの現在レコードのキー値が、初期レコードセットの現在レコードのキー値よりも先行する場合は、更新済みデータセットの現在レコードが挿入されたものと判断して更新内容を定義する段階と、（ｄ４３）更新済みデータセットの現在レコードを次レコードに設定し、前記（ｄ１３）段階から改めて始める段階と、を含むことを特徴とする。
【００１４】
また、本発明は、スプレッドシートに基づくデータベースの更新方法において、前記（ｄ）段階は、（ｄ２２）前記（ｄ２１）段階以降、前記初期データセット及び更新済みデータセットの現在レコードのいずれか一つが最後のレコードであるかを判断する段階と、（ｄ２４）いずれか一つのレコードが最後のレコードであれば、残りレコードがあるかを確認し、残った更新済みレコードセットのレコードが挿入されたものと、残った初期データセットのレコードは削除されたものと判断して定義する段階と、（ｄ３２）前記（ｄ３１）段階以降、初期データセットの現在レコードが最後のレコードであるかを判断する段階と、（ｄ３４）前記初期データセットの現在レコードが最後のレコードであれば、更新済みデータセットの現在レコード及び残りレコードは挿入されたものと判断して定義する段階と、（ｄ４２）前記（ｄ４１）段階以降、更新済みデータセットの現在レコードが最後のレコードであるかを判断する段階と、（ｄ４４）更新済みデータセットの現在レコードが最後のレコードであれば、初期データセットの現在レコード及び残りレコードは削除されたものと判断して定義する段階と、をさらに含むことを特徴とする。
【００１５】
また、本発明は、スプレッドシートに基づくデータベースの更新方法において、前記（ｄ２１）段階において、前記初期データセット及び更新済みデータセットの現在レコード間の各フィールドを比較し、相違したフィールドを修正されたフィールドであると判断し、修正された更新内容として定義するが、更新内容には、更新種類として、修正、キーフィールドのキー値、修正されたフィールドのフィールド値で定義し、前記（ｅ）段階において、クエリ文を生成するとき、修正クエリ文は、修正されたフィールドのみでクエリ文を作成することを特徴とする。
【００１６】
また、本発明は、スプレッドシートに基づくデータベースの更新方法において、前記（ｅ）段階において、削除クエリ文をキーフィールドのみで生成し、入力クエリ文は、レコードセット構造の全フィールドを用いて生成することを特徴とする。
【００１７】
また、本発明は、スプレッドシートに基づくデータベースの更新方法において、前記（ｄ）段階において、データセット構造をＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書として定義し、更新されたデータをフラットファイルとして定義するが、前記フラットファイルに予め定義されたカラム及び行の区切り子により各レコードのフィールド値を区分して定義することを特徴とする。
【発明の効果】
【００１８】
上述したように、本発明に係るスプレッドシートに基づいたデータベースの更新方法によれば、事務用に多用されるエクセル等のスプレッドシートを用いてデータベースを更新することにより、ユーザは、クエリ文等のデータベースの処理方法に関する知識なしにも直観的にデータを更新してデータベースをアップデートすることができるという効果が得られる。
【００１９】
また、本発明に係るスプレッドシートに基づいたデータベースの更新方法によれば、初期データセットと更新済みデータセットの各レコードの各フィールド間においても対比し、各修正されたフィールドを抽出することにより、修正されたフィールドのみで修正クエリ文を作成し、各レコード別に最適のクエリ文を作成することができ、これにより、短時間内でクエリ文を生成し、処理することができるという効果が得られる。
【００２０】
また、本発明に係るスプレッドシートに基づいたデータベースの更新方法によれば、ユーザは手軽に且つ速やかに大量のデータを処理することができるので、自分が希望するデータ分析報告書を作成し且つ分析して、経営計画、シミュレーション、パイロットの開発に際してのテスト加工等、様々な分野において活用することができるという効果が得られる。
【図面の簡単な説明】
【００２１】
【図１】本発明に係るスプレッドシートに基づくデータベースの更新方法を行うための全体システムの構成を示すブロック図である。
【図２】本発明に係るスプレッドシートに基づくデータベースの更新方法を行うための全体システムを示す構成図である。
【図３】本発明の一実施例に係るスプレッドシートに基づくデータベースの更新方法を説明する流れ図である。
【図４】本発明の一実施例に係る目的データベースの対象テーブルを選定する画面の一例である。
【図５】本発明の一実施例に係るワークシート上にテーブルのスキーマを表示した画面の一例である。
【図６】本発明の一実施例に係るワークシート上にテーブルのデータを表示した画面の一例である。
【図７】本発明の一実施例に係るワークシート上にテーブルのデータが更新された状態を表示した画面の一例である。
【図８Ａ】本発明の一実施例により初期データセットと更新済みデータセットを比較し、更新されたレコードを抽出する段階を説明する細部の流れ図である。
【図８Ｂ】本発明の一実施例により初期データセットと更新済みデータセットを比較し、更新されたレコードを抽出する段階を説明する細部の流れ図である。
【図８Ｃ】本発明の一実施例により初期データセットと更新済みデータセットを比較し、更新されたレコードを抽出する段階を説明する細部の流れ図である。
【図９】本発明の一実施例によりＸＭＬで表示されたテーブル情報の一例である。
【図１０】本発明の一実施例により更新すべきデータを定義したフラットファイルの一例である。
【図１１】本発明の一実施例により作成された実際のクエリを示す例示図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施のための具体的な内容について添付図面に基づいて説明する。
【００２３】
また、本発明を説明するに当たって、同じ部分には同じ符号を付し、その重複する説明を省略する。
【００２４】
先ず、図１を参照して、本発明に係るスプレッドシートに基づくデータベースの更新方法を行うための全体システムについて説明する。
【００２５】
図１に示すように、本発明を実施するための全体システムは、ユーザ端末１０に設けられるクライアント２０と、クライアント２０とネットワークを介して連結される更新サーバ３０と、データを保存して管理するデータベース４０と、を備える。図２は、図１の全体システムを示す構成図である。図２に記載された「ユーザ」が、ユーザ端末１０内の構成であり、クライアント２０により駆動される構成を表示している。
【００２６】
クライアント２０は、ユーザ端末１０に設けられるクライアント用プログラムシステムであり、ウェブブラウザを介してユーザインタフェースを有する。すなわち、ユーザは、ウェブブラウザ又はウェブブラウザ等の画面のインタフェースを介して、オンライン上でデータ更新等の処理作業を行う。このとき、ユーザ端末１０は、ユーザの命令等を入力されて当該命令を行い、処理結果を画面上に又はウェブブラウザ上に表示する。
【００２７】
一方、ユーザ端末１０は、パソコン（ＰＣ）、ノート型パソコン、タブレットＰＣ、ファブレット、ＰＤＡ、スマートフォン等のコンピューティング機能を有するコンピュータ端末である。ユーザ端末１０及び更新サーバ３０はネットワークを介して連結され、ユーザ端末１０上のクライアント２０は、オンライン上でデータ処理作業を行う。
【００２８】
また、クライアント２０は、データ要請、データ更新等のオンライン上で処理する作業を更新サーバ３０に要請し、その結果を、サーバ３０から取り出してウェブブラウザの上に表示する。或いは、処理されたデータを更新サーバ３０に転送する。特に、クライアント２０は、データベース４０から取り出されたデータをエクセル（マイクロソフト社製のスプレッドシートソフトウェア商標である。）、ロータス（Ｌｏｔｕｓ１‐２‐３、ロータスソフトウェア社製のプログラム商標である。）、ハンセル（ハングルとコンピュータ社製のプログラム商標である）等のスプレッドシートプログラムのインタフェースを介して表示し、又は命令／データを入力される。なお、クライアント２０は、スプレッドシートインタフェースを介して処理されたデータの更新結果を更新サーバ３０に転送する。
【００２９】
次いで、更新サーバ３０は、データベース４０からデータセットを取り出してクライアント２０に転送し、又はクライアント２０から更新済みデータセットを回答してデータベース４０を更新する。特に、更新サーバ３０は、クライアント２０から新たに追加されたり、削除されたり、修正されたりしたデータを検出し、変更されたデータを処理するためのデータベースクエリ文を自動的に作成する。更新サーバ３０は、作成されたクエリ文をデータベース４０に要請して、その結果がデータベース４０に反映されるように要請する。
【００３０】
一方、上述したクライアント２０及び更新サーバ３０の機能は一例に過ぎず、サーバ及びクライアントの実現技術に応じて多様に具体化される。すなわち、クライアント２０及び更新サーバ３０は、一つの更新システムであり、これらの機能が性能に応じて互いに分配される。
【００３１】
他の例によれば、クライアント２０は、単にウェブブラウザ機能のみを有しており、全ての機能は更新サーバ３０において構築される。すなわち、更新サーバ３０は、データベース４０のインタフェース機能及び修正されたデータに対するクエリ文の作成機能だけではなく、スプレッドシートに基づくインタフェースを用いてデータを修正する機能をいずれも有する。
【００３２】
更に他の例によれば、更新サーバ３０は、単にデータベース４０とのインタフェース機能のみを有しており、クライアント２０は、スプレッドシートに基づくインタフェースを介してデータの修正機能だけではなく、修正されたデータに対するクエリ文の自動生成機能まで有する。
【００３３】
更に他の例によれば、更新サーバ３０なしに、クライアント２０が直ちにデータベース４０に接続して、上述したデータベース接続機能、スプレッドシートインタフェースを用いたデータの修正機能、及びクエリ文の自動生成機能等をいずれも行う。
【００３４】
次いで、データベース６０は、データを保存するための通常のデータベース（ＤＢ）であり、データを管理するためのデータベース管理システム（ＤＢＭＳ：Ｄａｔａｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）を備え、データの保存、削除、検索等の作業をクエリを用いて行う。特に、データベース４０は、商用化されたデータベースであり、データセットを処理するための通常のクエリ機能を用いてデータクエリサービスを行う。
【００３５】
特に、データベース４０は、ビッグデータを保存するデータベースである。また、好ましくは、データベース４０は、関係型データベース（ＲＤＢ：Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）である。
【００３６】
以下の説明において、データセットの修正、削除、挿入等の全体データセットを変更する作業を、「更新」する作業として表現する。すなわち、更新作業は、修正、削除、挿入を全て含む概念として用いる。すなわち、修正は、レコードのうちの一部のフィールド値を変更することを言い、更新は、レコードを修正、削除、挿入等の変更する作業のことをいう。意味の差が大きくないときは、「修正」の用語を「更新」の用語と混用してもいい。
【００３７】
次いで、図３を参照して、本発明の一実施例によるスプレッドシートに基づくデータベースの更新方法についてさらに具体的に説明する。上述したように、データベースの更新方法は、ユーザ端末１０のクライアント２０と、ネットワークに接続されたサーバ３０により行われる方法である。
【００３８】
図３に示すように、本発明の実施例によるスプレッドシートに基づくデータベースの更新方法は、（ａ）データベースのデータセットを要請して受信する段階（Ｓ１００）と、要請したデータセットをスプレッドシートインタフェースに表示する段階（Ｓ２００）と、ワークシート上でデータセットのうちの一部のデータを更新する段階（Ｓ３００）と、初期データセットと更新済みデータセットを比較し、更新内容を抽出して定義する段階（Ｓ４００）と、更新されたデータを更新するためのクエリ文を生成してデータベースを更新する段階（Ｓ５００）と、で構成される。
【００３９】
先ず、更新サーバ３０は、データベース４０に要請してデータベース４０からデータセットを取り出す（Ｓ１００）。ここで、データセットとは、同一のフィールドで構成される多数のレコードで構成されるデータの集まりのことをいう。すなわち、一つのレコードは、多数のフィールド値により構成されるが、全てのレコードのフィールド（カラム）は、同一のフィールド（又は、カラム）を有する。
【００４０】
好ましくは、データセットは、一つのデータベース（ＤＢ）テーブルから取り出されたデータである。
【００４１】
具体的に、更新サーバ３０は、データベース４０に要請して、目的データベースのテーブル一覧を問い合わせ、問い合わせられたテーブル一覧を画面に表示する。ユーザは、画面に表示されたテーブル一覧のうち、所望のテーブルを選択する。図４は、テーブル一覧のうち、取り出すべきテーブルを選択する画面の一例を示す。
【００４２】
ユーザ画面に表示されたテーブルのうちから一つが選択されると、当該テーブルに関するスキーマ情報を取り出す。目的データベース又は対象テーブルのスキーマは、テーブルのデータがどのように構成されているかに関する細部情報である。すなわち、スキーマは、各データフィールドの名前、表示名、データのタイプ（種類）、条件等のテーブルデータの構造を示す。このように取り出されたデータは、一つのデータセットを形成する。
【００４３】
他の例によれば、更新サーバ３０は、目的データベースのテーブルデータをクエリ文を用いて取り出す。好ましくは、このときのクエリ文は、一つのテーブルに対するクエリ文であり、必ずクエリ結果内に当該テーブルのキーフィールドが存在しなければならない。このとき、多数のフィールドがキーを形成する場合、当該多数のフィールドがいずれも含まれなければならない。クエリ文を用いて取り出されたデータは、一つのデータセットを形成する。
【００４４】
すなわち、更新サーバ３０は、目的データベースからデータセットを取り出す。前記テーブルを選択する場合には、取り出すべきデータセットは当該テーブルの全てのデータであり、対象テーブルからクエリ文を取り出した場合は、クエリ文によるフィルタリングされたテーブルの一部である。このとき、好ましくは、ジャバデータベース（ＤＢ）接続ドライバ（ＪＤＢＣ：Ｊａｖａ  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）等を介して目的データベースのデータを取り出す。前記データスキーマもジャバデータベース（ＤＢ）接続ドライバを用いて取り出す。
【００４５】
一方、他の実施例によれば、更新サーバ３０は、目的データベースの対象テーブルをデータセットとして取り出し、取り出されたデータセット（又は、対象テーブル）に対してクエリを行うクエリ編集器を用いて、クエリ結果を抽出する。また、抽出されたクエリ結果を一つのデータセットとして用いる。すなわち、後述する更新サーバ３０から抽出されたクエリ結果のデータセットのみをワークシートの上にデータとして表示する。これにより、対象テーブルの全体をワークシートの上に表示せずに、ユーザが希望するフィールドのみにより構成されたテーブルをワークシートの上に表示する。なお、不要なデータフィールドを表示しないことから、ユーザのデータ編集の使い勝手を高めることができる。
【００４６】
上述したように、目的データベースから取り出されたテーブルのデータセット、又はクエリ文により取り出されたデータセット、又はテーブルをクエリ文によりフィルタリングしたデータセット等は、いずれも更新すべきデータセットである。以下、これを初期データセット（第１のデータセット又はオリジナルデータセットという。）と称する。
【００４７】
また、更新サーバ３０は、初期データセットを保存する。
【００４８】
次いで、更新サーバ３０は、スプレッドシートインタフェースを提供し、エクセル、ロータス等のスプレッドシートの上にワークシート（以下、ワークシートという。）を生成し、生成されたワークシートの上にデータセットを表示する（Ｓ２００）。特に、目的データベースから取り出されたデータセットをスプレッドシートのワークシートの上に表示する。スプレッドシートは、エクセル（マイクロソフト社製のプログラム商標である。）、ロータス（Ｌｏｔｕｓ１‐２‐３、ロータスソフトウェア社製のプログラム商標である。）、ハンセル（ハングルとコンピュータ社製のプログラム商標である）等、行及び列により区分された表の形式で表示されるワークシートにより構成され、各セルのデータを処理するスプレッドシートソフトウェアプログラムである。
【００４９】
先ず、更新サーバ３０は、対象データセットのスキーマ情報（又は、データセットの構造）を分析し、各フィールドに関する詳細情報に合わせてワークシートを作成する。このため、ワークシートを新たに生成する。
【００５０】
その一例として、図５に示すように、ワークシートの列に応じて、各データフィールドの名前、表示名、データのタイプ（種類）、条件、キーフィールド等のテーブルデータの細部構造を表示する。また、各列に相当するデータのタイプを解析し、各列の表示属性（特に、数字に対する表示形式）をデータのタイプ（形式）に合わせて補正する。例えば、列（フィールド）の名前が「誕生日」であるが、当該フィールドの形式が日付け形式であれば、当該列を全て日付け形式に設定する。なお、通話表示であれば、これによるデータ形式で表示する。
【００５１】
また、更新サーバ３０は、スプレッドシートのワークシートを生成するとき、スプレッドシートから提供するワークシートに連動される実行モジュールを一緒に生成する。実行モジュールは、ＶＢＡ（Ｖｉｓｕａｌ Ｂａｓｉｃ ｆｏｒ ａｐｐｌｉｃａｔｉｏｎ）等のスクリプト方式のプログラム言語により作成されたモジュール（又は、コード）である。実行モジュールは、ワークシート内において特定のイベントが発生すると、各イベントに対応する関数が実行されるようにするモジュールである。このため、更新サーバ３０によりワークシート上でユーザが削除、修正、挿入等の特定の作業を行うと、当該作業又は作業イベントに応じて前記実行モジュール内の関数が実行され、関連作業を行う。
【００５２】
例えば、実行モジュールは、ワークシートの列やデータセットのスキーマが表示された行等を削除し、又はフィールド名やフィールド属性等の当該セルの値を変更する場合は、このような作業をキャンセルすることを警告し又は復元させる。
【００５３】
更に、更新サーバ３０は、更新すべきデータセット（又は、初期データセット）をスプレッドシートのワークシートに表示する。図６に示すように、前記データの各フィールドのフィールド名等の細部構造が前記ワークシートの上に列をなして並んで記載されており、当該フィールド名に対応する列内の下の行に連続して当該フィールド値（又は、テーブルデータ）を表示する。すなわち、図６に示すように、スプレッドシート（又は、ワークシート）上のデータは、行及び列により各セルにデータが表示され、このとき、上段行内における各列にはフィールド名（フィールドの名前）、表示名、データタイプ等が記載され、その下にレコードを各フィールドに合わせて配列する。
【００５４】
すなわち、初期データセットは、多数のレコードにより構成され、各レコードは、ワークシート上で一つの行に表示される。レコードの各列に該当するセルには、当該レコードフィールドのフィールド値が表示される。特に、前記各フィールドの列に対するデータ形式を分析し、当該形式で全ての列を設定したので、当該レコードの当該列はいずれもそのデータ形式に合わせてスプレッドシートのワークシートの上に表示される。
【００５５】
図６の例において、ＥＭＰＬＯＹＥＥＳテーブルの場合、ＥＭＰＬＯＹＥＥ＿ＩＤが主キーであるため、このカラム（又は、列）は重複を許容しない。
【００５６】
また、更新サーバ３０は、一つのワークシートの上に表示可能なレコードの最大数を予め設定する。また、当該最大数を超えると、新たなワークシートを生成し、残りレコードを生成されたワークシートに表示する。例えば、スプレッドシート画面においてデータを処理するので、同一のシート内において１００万件、複数のシートを介して数百万件のデータを定義し、データベースに入力することができる。
【００５７】
一方、更新サーバ３０は、エクセル、ロータス等の商用化されたスプレッドシートプログラムの主な機能のみを埋め込んで用いる。すなわち、スプレッドシート処理作業は、スプレッドシートのコア機能により行われ、全体のインタフェースは、更新サーバ３０により処理される。後述する更新サーバ３０も同様である。
【００５８】
更に、更新サーバ３０は、命令を行うための命令ボタンをワークシートの上に表示する。好ましくは、命令ボタンは、テーブル又はクエリ結果を問い合わせるための問い合わせボタンや、更新されたデータをサーバに転送してデータベースを更新するための確認ボタン等を備える。
【００５９】
次いで、更新サーバ３０は、ワークシート上に表示されたデータに対して更新作業を行う（Ｓ３００）。特に、更新サーバ３０は、前記フレーム３０が提供するスプレッドシートインタフェース画面を介して、ユーザの命令に応じてデータ更新作業を行う。
【００６０】
すなわち、更新サーバ３０は、初期データセットをスプレッドシートのワークシートの上に表示し、ユーザにより処理されるスプレッドシートのワークシート上の作業を処理する。例えば、ユーザがスプレッドシート上で特定のセルのデータを修正したり、特定の行を挿入したり、削除したりする。このとき、通常のスプレッドシートインタフェースと同じタイプでインタフェースを処理する。
【００６１】
また、更新サーバ３０のインタフェースの各機能は、ワークシートと連動される実行モジュール（ＶＢＡ等のスクリプト言語で作成されたプログラムモジュール）により実現される。すなわち、ワークシート上でユーザが修正、挿入、削除等の特定作業を行うと、当該作業を一つのイベントと判断して、当該作業イベントに対応する実行モジュールの関数が実行される。このような機能は、スプレッドシートのコア機能から提供される。以下、説明の便宜のために、修正、削除、挿入（新規追加）等によりデータの内容が異なってきたものをいずれも「更新」されたものとする。
【００６２】
好ましくは、更新サーバ３０は、ワークシートの列、データセットのスキーマが表示された行等が削除されたり、フィールド名やフィールド属性等の当該セルの値が変更されると、当該作業をキャンセルすることを警告し又は復元させる。
【００６３】
図７は、図６のレコードデータのうちの一部が更新された状態を示す。すなわち、キー１０４のレコードが削除され、キー１０５、１０６、１０８のレコードがそれぞれ変更され、変更されたデータは給料及び電話番号（ｐｈｏｎｅ＿ｎｕｍｂｅｒ）である。また、キー１１２のレコードが新たに追加された。
【００６４】
次いで、更新サーバ３０は、初期データセットと更新済みデータセットを比較し、更新内容を抽出し、これを定義する（Ｓ４００）。更新サーバ３０は、保存された初期データセットを取り出し、現在のワークシート上に表示されたデータセットと対比する。このとき、現在のワークシート上に表示されたデータセットを更新済みデータセットと称する。
【００６５】
好ましくは、更新サーバ３０は、初期データセット及び更新済みデータセットをそれぞれキーフィールドを用いてソートし、初期データセット及び更新済みデータセットのそれぞれのレコードを順次に対比する。
【００６６】
一方、図８は、更新サーバ３０が初期データセットと更新済みデータセットを比較し、更新された内容を検出する方法を示す。
【００６７】
図８に示すように、先ず、更新サーバ３０は、データセットの全体のスキーマ構造を定義する（Ｓ４１０）。データセットの構造を定義する具体的な方法は、最後に説明する。
【００６８】
次いで、更新サーバ３０は、初期データセット及び更新済みデータセットをキーフィールドを介してソートする（Ｓ４１１）。また、それぞれのデータセットの１番目のレコードセットをそれぞれ現在レコードに設定する（Ｓ４１２）。
【００６９】
また、現在レコード間のキー値を対比する（Ｓ４１３）。
【００７０】
若し、各キー値が同一であれば、初期データセット及び更新済みデータセットの現在レコードのそれぞれのフィールド値を対比して修正の有無を判断する（Ｓ４２１）。また、修正されたと判断されれば、修正された更新内容を定義する。
【００７１】
次いで、いずれか一つの現在レコードが最後のレコードであるかを対比する（Ｓ４２２）。最後のデータでなければ、各現在レコードを次レコードに設定し、前記レコードのキー値を対比する段階（Ｓ４１３）を再び繰り返す（Ｓ４２３）。
【００７２】
いずれか一つの現在レコードが最後のレコードであれば、残りレコードがあるかを確認する。初期データセット及び更新済みデータセットが全て最後のレコードであれば、それ以上進行せずに終了する。初期データセットの現在レコードが最後のレコードであり、更新済みレコードが残っていれば、当該更新済みレコードは、挿入されたものと判断し、挿入の更新内容として定義する。これに対して、更新済みデータセットの現在レコードが最後のレコードであり、初期データセットのレコードが残っていれば、当該初期レコードは、削除されたものと判断し、削除の更新内容として定義する（Ｓ４２４）。
【００７３】
次いで、現在レコードのキー値を比較し、初期データセットの現在レコードが先行すれば、初期データセットの現在レコードが削除されたものと判断し、削除内容として定義する（Ｓ４３１）。また、初期データセットの現在レコードが最後のレコードであるかを判断する（Ｓ４３２）。
【００７４】
最後でなければ、初期データセットの現在レコードを初期データセットの次レコードに設定し、前記レコードのキー値を対比する段階（Ｓ４１３）を再び繰り返す（Ｓ４３３）。また、最後であれば、更新済みレコードセットの現在レコード及び残りレコードが挿入されたものと判断する（Ｓ４３４）。それから、終了する。
【００７５】
次いで、現在レコードのキー値を比較し、更新済みデータセットの現在レコードが先行すれば、更新済みデータセットの現在レコードが挿入されたものと判断し、挿入の更新内容として定義する（Ｓ４４１）。また、更新済みデータセットの現在レコードが最後のレコードであるかを判断する（Ｓ４４２）。
【００７６】
最後でなければ、更新済みデータセットの現在レコードを更新済みデータセットの次レコードに設定し、前記レコードのキー値を対比する段階（Ｓ４１３）を再び繰り返す（Ｓ４４３）。また、最後であれば、初期データセットの現在レコード及び残りレコードが削除されたものと判断し、削除内容として定義する（Ｓ４４４）。それから、終了する。
【００７７】
一例として、図６及び図７の例をみると、図６は、初期データセットであり、図７は、更新済みデータセットである。図６及び図７は、いずれも既にソートされたデータセットである。
【００７８】
このとき、キー１０３までのレコードが対比されてから、現在レコードが次レコードに設定される。このとき、初期データセットは、キー１０４のレコードが現在レコードであり、更新済みデータセットは、キー１０５のレコードが現在レコードである。この場合、初期データセットの現在レコードのキー１０４が、更新済みレコードセットの現在レコードのキー１０５よりも先行する。したがって、図８Ｂの過程に該当する。このため、キー１０４の初期データセットの現在レコードが削除されたものと判断される。
【００７９】
また、キー１１０までのレコードが対比されてから、現在レコードが次レコードに設定される。このとき、初期データセットは、キー１１４のレコードが現在レコードであり、更新済みデータセットは、キー１１２のレコードが現在レコードである。この場合、更新済みデータセットの現在レコードのキー１１２が、初期レコードセットの現在レコードのキー１１４よりも先行する。したがって、図８Ｃの過程に該当する。このため、キー１１２の更新済みデータセットの現在レコードが挿入されたものと判断される。
【００８０】
また、図７の例において、データセル値またはフィールド値が変更されたものは、キー１０５、１０６、１０８のレコードである。これらのレコードは、初期データセットのレコードと、給料（ｓａｌａｒｙ）又は電話番号（ｐｈｏｎｅ＿ｎｕｍｂｅｒ）のフィールド内のフィールド値が異なるので、修正されたものと判断される。これは、図８ＡのＳ４２１段階に該当する。すなわち、これらのレコードは、修正されたレコードである。
【００８１】
次いで、前記各段階において、更新内容を定義することについてさらに具体的に説明する。
【００８２】
更新サーバ３０は、ワークシート又はワークシート上で更新されたデータ（又は、レコード）に対して更新内容を定義する。好ましくは、ＸＭＬ文書の形態として定義し、データは、フラットファイルで構成する。
【００８３】
すなわち、更新サーバ３０は、前記更新サーバ３０により検出された更新レコードに対してそれぞれ更新内容を定められた定義規則により定義する。このとき、定義すべき内容は、更新すべきデータ又はデータセットの構造又はスキーマを表示するテーブル情報及び更新すべきデータである。更新サーバ３０は、更新済みデータ又は更新済みレコードに対してのみ更新データを書き込む（又は、定義する）。すなわち、全く更新されていないデータは書き込まない。
【００８４】
前記Ｓ４１０段階において、更新サーバ３０は、データセット（又は、更新データ構造）を予め定められたフォーマット（又は、定義規則）により定義する。好ましくは、データセットの構造（又は、更新データ構造）をＸＭＬ文書で表示する。図９は、データセットの構造をＸＭＬ文書で表示した一例を示す。
【００８５】
図９に示すテーブル情報又はデータセットの情報は、下記のような個体及びその属性に関するデータを含む。好ましくは、テーブル情報又はデータセットの構造に関する情報は、テーブル名（ユーザ画面からテーブルを選択するときに自動的に指定される）、データベース（ＤＢ）接続コード（ＤＢ  Ｃｏｎｎｅｃｔｉｏｎ  ｃｏｄｅ、ユーザ画面においてデータベース（ＤＢ）に接続されるときに自動的に指定される）、キーフィールドの存否、データタイプ、ヌル（ＮＵＬＬ）値の許容有無等の内容を含む。
【００８６】
（１）ＥｘｅｃｕｔｅＩｎｆｏ：実行すべきデータベース情報
‐ＣｏｎｎｅｃｔｉｏｎＣｏｄｅ：サーバに定義されたデータベースコード
（２）ＤａｔａＴａｂｌｅ：更新すべきテーブル情報、多数のテーブルを同一のトランザクションで処理可能
‐Ｎａｍｅ：テーブル名
‐Ｃａｐｔｉｏｎ：表示名
‐ＴａｒｇｅｔＴａｂｌｅ：更新すべきテーブル名
（３）Ｃｏｌｕｍｎ：テーブル（又は、データセット）のカラム情報
‐Ｎａｍｅ：カラム名
‐Ｃａｐｔｉｏｎ：カラム表示名
‐Ｃｏｎｓｔｒａｉｎｔ：ｋｅｙ情報  Ｐ：Ｐｒｉｍａｒｙ ｋｅｙ  Ｖ：ｎｏｔ  ｎｕｌｌ  Ｎ：ｎｕｌｌａｂｌｅ
‐ＤａｔａＴｙｐｅ：データタイプ  Ｃ：Ｓｔｒｉｎｇ  Ｎ：数字型、Ｄ：Ｄａｔａ型
‐ＵｐｄａｔｅＦｌａｇ：更新クエリの生成時にカラムを含むか否か
（４）Ｒｏｗｓ：処理すべきデータを定義する
‐ＲｏｗＩｎｄｅｘＣｏｌ：データ行の通し番号が位置すべき列
‐ＲｏｗＳｔａｔｅＣｏｌ：データの件別の処理に際して当該項を処理する区切りコードが位置すべき列
‐ＴｅｘｔＴｙｐｅ：処理すべきデータの位置  ＦＩＬＥ：添付ファイルとして転送する  ＸＭＬ：ｘｍｌを内部に含む
【００８７】
データセットのカラム情報又はフィールド情報は、対象テーブルの全体のフィールド情報を示してもよく、その一部を示してもよい。すなわち、前記対象テーブルをクエリを用いて一部のみ取り出す場合には、テーブルのフィールドのうちの一部に対してのみフィールド構造を生成する。
【００８８】
また、更新サーバ３０は、前記各段階において、アップデート（修正）、削除、挿入等の更新内容を予め定められたフォーマットで書き込む。特に、更新サーバ３０は、更新内容を予め定められたフォーマットで書き込んでファイルまたは更新文書として生成する。好ましくは、更新サーバ３０は、ワークシート上で更新された内容をフラットファイルとして生成する。フラットファイルとは、データを一連の文字列（ｓｔｒｉｎｇ）により構成する通常のファイルのことをいう。
【００８９】
図１０は、フラットファイルの一例を示す。好ましくは、スプレッドシート画面に定義されたデータは、サーバと予め定義されたカラム、行区切り子により、図１０に示す形態のテキストファイルとして作成されてサーバに転送される。ここで、例えば、カラム区切り子を「｜」で示し、行区切り子を「エンター（又は、改行）」記号で示す。
【００９０】
特に、図１０において、各行の先頭に当該レコード（当該行）がどのように処理されるかに対する更新の種類を表示する。各更新状態の記号は、下記の通りである。
Ｃ：新規入力  Ｕ：データの修正  Ｄ：データの削除
【００９１】
このとき、入力、修正、削除の更新種類に応じて、生成する更新内容が異なる。
【００９２】
先ず、更新内容が、一部のフィールド値のみが修正される修正の場合について説明する。
【００９３】
修正された更新内容は、「アップデート（修正）」を示す記号、修正されたフィールド、及びそのフィールド値で構成される。また、当該レコードを識別するためのキーフィールドも含む。
【００９４】
キー１０５のレコードの例を挙げると、更新内容は下記の通りである。
「アップデート」、「ＥＭＰＬＯＹＥＥ＿ＩＤ＝１０５」、「ＳＡＬＡＲＹ＝５５００」
【００９５】
このような更新内容は、下記のように予め定義された規則により表示され得る。
「Ｕ｜１｜１０５｜８｜５５００」
【００９６】
すなわち、最初の「Ｕ」は、データ修正（アップデート）を示し、次の数字とフィールド値で構成されるが、数字は、当該フィールドのインデックスを示す。すなわち、「ＥＭＰＬＯＹＥＥ＿ＩＤ」は、１番目のフィールドであり、「ＳＡＬＡＲＹ」フィールドは、８番目のフィールドである。それぞれ「１０５」と「５５００」は、それぞれ当該フィールド（ＥＭＰＬＯＹＥＥ＿ＩＤ、ＳＡＬＡＲＹ）のフィールド値である。
【００９７】
次いで、更新内容が、当該レコードを削除する場合について説明する。
【００９８】
この場合、削除されるべきレコードのキー値を定義する。すなわち、更新内容は、更新種類である「削除」とキー値のみで構成され、一例として、下記の通りである。
「Ｄ｜１０４」
【００９９】
すなわち、Ｄは、更新種類である削除を示し、「１０４」は、キー値を示す。
【０１００】
また、更新内容が、新たなレコードを挿入する場合は、全体のデータセットの構造内容を全て記載する。すなわち、更新種類である「挿入」と、全てのフィールドのフィールド値とで構成される。一例として、下記の通りである。
「Ｃ｜１１２｜Ｋａｒｅｎ｜Ｃｏｌｍｅｎａｒｅｓ｜ＫＣＯＬＭＥＮＡ｜５１５．１２７．４５６６｜２００７‐０８‐１０｜ＰＵ＿ＣＬＥＲＫ｜２５００｜３０」
【０１０１】
すなわち、「Ｃ」は、更新種類である「挿入」を示し、「１１２」、「Ｋａｒｅｎ」、「Ｃｏｌｍｅｎａｒｅｓ」、…、「３０」は、全フィールド、すなわち、それぞれ「ＥＭＰＬＯＹＥＥ＿ＩＤ」、「ＦＩＲＳＴ＿ＮＡＭＥ」、「ＬＡＳＴ＿ＮＡＭＥ」、…、「ＤＥＰＡＲＴＭＥＮＴ＿ＩＤ」フィールドのフィールド値を示す。
【０１０２】
次いで、更新サーバ３０は、テーブル情報及び更新すべきデータが定義された更新内容（または更新文書の内容）に基づき、更新済みデータに対してクエリ文を生成し、これを用いてデータベースに更新する。このとき、更新サーバ３０は、データセットの構造を用いてクエリー文を生成する。
【０１０３】
すなわち、更新サーバ３０は、テーブル情報を定義した更新文書の内容を解析して、更新すべきデータベース、テーブル、カラム情報を抽出する。また、抽出された情報を用いて、入力クエリ、アップデートクエリ（修正クエリ）、削除クエリ等を生成する。
【０１０４】
更新サーバ３０は、入力、アップデート（修正）、削除等の当該クエリ文のフォーマットを作成し、クエリ命令フォーマットでテーブル名及びフィールド名（カラム名）等を記載し、且つ、変数値又はカラム値に相当する更新内容のフィールド値を挿入し、クエリ文を生成する。
【０１０５】
また、更新サーバ３０は、データをそれぞれレコード別に読み込んで、各レコードに対して実際のクエリを生成する。このとき、各レコードの更新の種類に応じて当該種類のクエリ文（例えば、追加クエリ文、更新クエリ文、削除クエリ文等）を生成する。特に、更新サーバ３０は、更新すべきデータ（または更新文書）をストリームとして受信し、ストリームとして受信される順番に、各更新すべきレコードの内容に従いクエリ文をリアルタイムにて生成する。
【０１０６】
図１１は、図１０の更新データ（又は、レコード）に対して作成された実際のクエリを示す。
【０１０７】
先ず、図１１の（ａ）に示すように、削除クエリは、「ＤＥＬＥＴＥ  ＦＲＯＭ」から始まるクエリ文のフォーマット通りに記載し、「ＦＲＯＭ」の後ろには、データセットの目的テーブルの名前を記載し、ＷＨＥＲＥ節には、キーフィールド名と当該キー値を挿入する。このとき、キーフィールドが数個である場合、ＡＮＤにより数個のキーフィールド及びその当該キー値を全て挿入する。
【０１０８】
次いで、修正（アップデート）クエリは、修正すべきフィールド名とフィールド値のみを挿入する。このとき、更新サーバ３０は、更新文書又は更新データのフィールドインデックスを取り出し、データセット構造（又は、スキーマ構造）からインデックスに該当するフィールド名を取り出す。
【０１０９】
図１１の（ｂ）に示すように、キー１０５と１０６のレコードは、ＳＡＬＡＲＹフィールドのみが修正され、修正クエリは、ＳＡＬＡＲＹフィールドのみで記載される。また、キー１０８のレコードは、電話番号フィールドのみが修正され、当該フィールドのみが記載される。
【０１１０】
また、図１１の（ｃ）に示すように、入力クエリは、全てのフィールド名が全て記載され、当該フィールド値が全て記載される。
【０１１１】
また、更新サーバ３０は、生成（作成）されたクエリ文をデータベース４０に要請し、対象テーブルのデータを更新するように要請する。
【０１１２】
更新サーバ３０は、前記生成された実際のクエリ文を各レコード別にデータベース４０に転送して更新を要請する。しかしながら、個別的に各レコード別にクエリ文をデータベース４０に要請すると、全体の更新時間が長引き、しかも、コストが嵩む。これは、データベースは一回のトランザクションにより一つの要請を処理するが、トランザクションを行うための作業が多いためである。
【０１１３】
このため、好ましくは、更新サーバ３０は、多数のレコード別の実際のクエリをバッチにまとめて一括処理する。すなわち、クエリ文は一回のみ生成し、転送データの処理は、当該クエリの変数に当該カラム値のみをマッピングしてバッチに追加した後、最後にもう一回データベースに実行（Ｅｘｅｃｕｔｉｏｎ）を要請するので、速やかに大量のデータを処理することができる。
【０１１４】
次いで、本発明の効果についてさらに具体的に説明する。
【０１１５】
先ず、本発明は、実行件数に制約がない。
【０１１６】
ユーザが登録／修正／削除したデータをアップロードストリームを介してサーバに転送するので、単件データから数百万件の大量データに至るまで自由に取り扱うことができる。データ情報は、定められた行、列の区切り子により区分されたフラットファイとして作成されてサーバにアップロードされ、サーバは、アップロードストリームからデータを読み込んで定められた行、列の区切り子を用いてパーシングした後、一緒に転送されたｘｍｌ情報から予め生成されたクエリにバインドして実行する。
【０１１７】
また、大量のデータを速やかに処理することができる。
【０１１８】
更新サーバにおいてデータを処理する基本方式は、ｊｄｂｃドライバを介してデータベースに接続した後、クライアントから送られてきたｘｍｌ情報をパーシングして入力、修正、削除に相当するクエリ文を生成し、一緒にクライアントから送られてきたアップロードストリームからデータを読み込みながら予め生成されたクエリに変数をバインドした後に実行することである。
【０１１９】
このとき、接続オブジェクトのうちＰｒｅｐａｒｅｄＳｔａｔｅｍｅｎｔを用いて大きさ（フェッチサイズ）を指定し、バインドされたデータをＰｒｅｐａｒｅｄＳｔａｔｅｍｅｎｔのバッチ手段（ａｄｄＢａｔｃｈｍｅｔｈｏｄ）を用いて追加し、全てのデータが追加されたときに一括して実行してデータを処理する。毎件ごとに実行する方式ではなく、一括して実行する方式であるので、データベースの負荷も減り、しかも、速度も非常に速い。
【０１２０】
また、データベース（ＤＢ）機能を使用機能として提供する。
【０１２１】
ユーザが画面において処理したデータだけではなく、データベース機能、ユーザ生成関数等を処理するようにオプションを提供して、サーバにおいてクエリを生成するときに対象カラム処理をデータバインディングの代わりに関数処理する機能を提供する。
【０１２２】
また、オラクルシーケンス、ｓｙｓｄａｔｅ等の時間関数、ｒｏｗｎｕｍ等のＤＢ関数等をクエリに含めて用いる。
【０１２３】
以上、本発明者により行われた発明について実施例により具体的に説明したが、本発明はこれらの実施例に何ら限定されるものではなく、その要旨を逸脱しない範囲内において様々に変更可能であるということはいうまでもない。
【符号の説明】
【０１２４】
１０  ユーザ端末
２０  クライアント
３０  更新サーバ
４０  データベース
【図１】
2018136939.tif 000003
【図２】
2018136939.tif 000004
【図３】
2018136939.tif 000005
【図４】
2018136939.tif 000006
【図５】
2018136939.tif 000007
【図６】
2018136939.tif 000008
【図７】
2018136939.tif 000009
【図８Ａ】
2018136939.tif 000010
【図８Ｂ】
2018136939.tif 000011
【図８Ｃ】
2018136939.tif 000012
【図９】
2018136939.tif 000013
【図１０】
2018136939.tif 000014
【図１１】
2018136939.tif 000015