トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 レプリケーションシステム
【発明者】 【氏名】横内 弘

【要約】 【課題】複数のマスタテーブルから1つのレプリカテーブルへのレプリケーションを可能とし、複数のテーブルにアクセスして行う業務を1つのレプリカテーブルをアクセスすることにより実行可能とし、業務実行時間の短縮を図る。

【解決手段】データの対応付けは、複数のマスタテーブル108、109のデータ中の特定のデータをキーにすることにより行う。キーとするデータ部は、レプリケーション定義118に定義されている。また、レプリカテーブル121へのレプリケーションを行う契機についてもレプリケーションを行うプログラム117に定義し、レプリケーションプログラム117が実行時に定義118を元にした制御テーブル119を作成し、複数のマスタテーブル108、109の操作状態とレプリカテーブル121へのレプリケーション状態を管理することにより定義した契機でレプリカテーブル121へのレプリケーションを行う。
【特許請求の範囲】
【請求項1】 データベースに基づく複数のマスタテーブル内の追加、更新、削除の操作情報により、複数のマスタテーブルから1つのレプリカテーブルを生成するレプリケーションシステムにおいて、前記複数のマスタテーブルのデータをマスタテーブル内の特定のデータを結合キーとしてマッチングをとって結合することによりレプリケーションを行って、1つのレプリカテーブルを生成することを特徴とするレプリケーションシステム。
【請求項2】 前記マスタテーブルは、リレーショナルデータベースまたは階層型データベースに基づくテーブルであることを特徴とする請求項1記載のレプリケーションシステム。
【請求項3】 前記複数のマスタテーブルの全てのデータ挿入、削除時、または、前記複数のマスタテーブルのいずれかのマスタテーブルのデータ挿入、削除時、予め定めたレプリケーションを行う複数の契機の内の任意の契機を選択して、レプリケーションを行うことを特徴とする請求項1または2記載のレプリケーションシステム。
【請求項4】 データの挿入が行われていないマスタテーブルの不足データの代わりに、データが存在しないことを示す任意のデータを設定しして、レプリケーションを行うことを特徴とするレプリケーションシステム。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、レプリケーションシステムに係り、特に、データベースの複数のマスタテーブルのデータを1つのレプリカテーブルにレプリケーションするレプリケーションシステムに関する。
【0002】
【従来の技術】レプリケーションに関する従来技術として、例えば、特開2000−20374号公報等に記載された技術が知られている。この従来技術は、トランザクション処理等によりマスタテーブルが操作されるとレプリカテーブルへ自動的にレプリケーションを行うレプリケーションシステムに関するもので、1つのレプリカテーブルに対するマスタテーブルが1つである。そして、この従来技術は、レプリカシステムのある業務において、複数のテーブル内に分割管理されているデータが必要な場合、業務実行時に複数のテーブルにアクセスして個々のテーブルの参照、更新を行うか、レプリカシステムのデータベースマネジメントシステム(以下、DBMSという)の機能により複数のテーブルの結合を行う必要があり、このため、レプリカシステムの業務に必要以上に時間がかかるものである。
【0003】
【発明が解決しようとする課題】前述した従来技術は、複数のテーブル内に分割管理されているデータが必要な場合、複数のテーブルの結合を行う必要があり、このため、レプリカシステムの業務に多くの時間が必要であるという問題点を有している。このようなレプリカシステムの問題を解決するためには、複数のマスタテーブルのデータをレプリケーション時に1つのレプリカテーブルにレプリケーションするようにすることにより解決することができる。
【0004】しかし、複数のマスタテーブルのデータを1つのレプリカテーブルにレプリケーションするためには、複数のマスタテーブルのデータをどのように対応付けて、1つのレプリカテーブルにレプリケーションを行うか、また、複数あるマスタテーブルのいずれのマスタテーブルの操作に連動させてレプリケーションを行うか、あるいは、全てのマスタテーブルの操作後にレプリケーションを行うかのレプリケーションを行う契機について、さらに、いずれかのマスタテーブルの操作に連動してレプリケーションを行う場合、レプリケーション時に操作されていないマスタテーブルのデータについてどのように扱うかという問題点を解決しなければならない。そして、これらの問題点は、レプリケーションを行うデータ及びレプリカシステムの業務により異なるという問題を有している。
【0005】本発明の目的は、前述した複数のマスタテーブルのデータを1つのレプリカテーブルにレプリケーションする際の前述した問題点を解決し、レプリカシステムでの業務実行時間の短縮を図ることを可能としたレプリケーションシステムを提供することにある。
【0006】
【課題を解決するための手段】本発明によれば前記目的は、データベースに基づく複数のマスタテーブル内の追加、更新、削除の操作情報により、複数のマスタテーブルから1つのレプリカテーブルを生成するレプリケーションシステムにおいて、前記複数のマスタテーブルのデータをマスタテーブル内の特定のデータを結合キーとしてマッチングをとって結合することによりレプリケーションシを行って、1つのレプリカテーブルを生成することにより、また、前記複数のマスタテーブルの全てのデータ挿入、削除時、または、前記複数のマスタテーブルのいずれかのマスタテーブルのデータ挿入、削除時、予め定めたレプリケーションを行う複数の契機の内の任意の契機を選択して、レプリケーションを行うことにより達成される。
【0007】本発明は、前述の手段を備えることにより、レプリケーションを行うレプリケーションプログラムに対応付けるデータ、レプリケーションを行う契機、該当マスタテーブル未操作時にレプリカテーブルに設定するデータを定義させておくことができ、この定義を元に使用者に任意のレプリケーションを行わせることができる。
【0008】
【発明の実施の形態】以下、本発明によるレプリケーションシステムの実施形態を図面により詳細に説明する。
【0009】図1は本発明の一実施形態によるレプリケーションシステムの構成を示すブロック図、図2はマスタテーブル操作情報のデータ構造を説明する図、図3はレプリケーションプログラムに定義するレプリケーション定義を説明する図、図4はレプリケーションの制御に用いるレプリケーション制御テーブルのテーブルの構造を説明する図、図5はデータの流れを説明する図、図6はレプリカテーブルへのレプリケーションの動作を説明するフローチャートである。図1において、100、101はマスタシステム、102、103は部門サーバ、104、105は業務アプリケーション、106、107はデータベースマネジメントシステム、108、109はマスタテーブル、110、111はレプリケーションプログラム操作情報取得機能、112、113は操作情報記録媒体、114、115はマスタテーブル操作情報、116は基幹業務ホスト(レプリカシステム)、117はレプリケーションプログラム操作情報反映機能、118はレプリケーション定義情報、119はレプリケーション制御テーブル、120はレプリカデータベースマネジメントシステム(DBMS)、121はレプリカテーブルである。
【0010】図1に示す本発明の一実施形態によるレプリケーションシステムは、マスタテーブルを管理する2つの部門サーバ102、103により構成されるマスタシステム100、101と、レプリカテーブルを管理して月次処理を行う給与システムの業務ホスト116を構成するレプリカDBMS120と、複製元テーブルの名称およびレプリケーションを行う複製テーブルの名称等を定義するレプリケーション定義手段118を装備するレプリケーションプログラム操作情報反映機能117とにより構成されて給与計算を行うシステムである。
【0011】図1に示す本発明の一実施形態によるレプリケーションシステムにおいて、複製元として個人情報管理テーブル(マスタテーブル)108を管理する社員管理システムの部門サーバ102と、勤休管理テーブル(マスタテーブル)109を管理する勤休管理システムの部門サーバ103とのそれぞれは、複製元システムとして機能するものである。そして、これらの部門サーバ102、103は、それぞれ、業務に応じてマスタテーブルの操作要求を行う業務アプリケーション(UAP)104、105、マスタテーブル108、109の管理、操作を行うマスタデータベースマネジメントシステム(マスタDBMS)106、107と、マスタテーブルの操作情報114、115を記録する媒体である操作情報記録媒体112、113と、マスタテーブルの操作情報を取得するレプリケーションプログラム操作情報取得機能110、111とを備えて構成される。また、レプリケーションプログラム操作情報反映機能117は、後述する複製元テーブルの名称及びレプリケーションを行う複製テーブルの名称等を定義するレプリケーション定義手段118を装備して構成され、レプリカDBMS120は、給与テーブル(レプリカテーブル)121の管理、操作を行う給与システムである。
【0012】次に、図2を参照して、マスタテーブルの操作情報の構造について説明する。操作情報は、図2に示すように、その操作情報のマスタテーブルのテーブル名称201と、マスタテーブルへの操作である“挿入”“更新”“削除”の操作種別202と、操作種別の1つの操作を行ったマスタテーブルのテーブルデータ203とにより構成する。
【0013】次に、図3を参照して、レプリケーションプログラム操作情報反映機能に定義されるレプリケーション定義について説明する。
【0014】レプリケーション定義は、結合するマスタテーブル108、109のテーブル名称及びレプリカテーブル121の名称を定義する結合テーブル定義300と、複数のテーブルのデータを結合するためにマッチングをとるマスタテーブルデータ中のキーとなるデータ部を定義する結合キー定義301と、結合するマスタテーブル108、109の操作情報114、115をレプリカテーブル121にレプリケーションを行う契機を定義するレプリケーション契機定義302と、このレプリケーション契機定義302で、いずれかをマスタ(結合マスタ)と位置づけ、結合マスタテーブルの操作情報に伴いレプリカテーブル121へのレプリケーションを行う定義304、307とした場合に結合マスタとするマスタテーブルのテーブル名称を定義する結合マスタ定義310と、レプリケーション契機定義302で、結合する全てのテーブルの操作情報が揃った時点でレプリカテーブルの操作を行う定義以外の定義304、305、307、308とした場合にレプリカテーブルにこの時点で操作情報がないマスタテーブルのデータの代わりに設定するデータを定義する不足データ定義311と、マスタテーブルの操作情報が記録される操作情報記録媒体を指定する入力媒体定義312と、操作情報記録媒体が複数存在する場合の入力の順を指定する入力切り替え契機定義313とから構成される。
【0015】前述において、レプリケーション契機定義302には、データの挿入に関して、■結合する複数の複製元テーブルの全てのデータが挿入された時点でレプリカテーブルにデータを挿入する(303)、■結合する複数の複製元テーブル内で主となるテーブル(結合マスタ)のデータが挿入された時点でレプリカテーブルにデータを挿入する(304)、■結合する複数の複製元テーブル内でいずれかのテーブルのデータが挿入された時点でレプリカテーブルにデータを挿入する(305)が定義され、また、データの削除に関して、■結合する複数の複製元テーブルの該当情報が全て削除された時点でレプリカテーブルの該当データを削除する(306)、■結合する複数の複製元テーブル内で主となるテーブル(結合マスタ)が削除された時点でレプリカテーブルの該当するデータを削除する(307)、■結合する複数の複製元テーブルの該当データ削除毎にレプリカテーブルの該当データを不足データ設定値に置き換え、結合する複数の複製元テーブルの該当データ全てのデータが削除された時点でレプリカテーブルの該当データを削除する(308)、■結合する複数の複製元テーブルのいずれかのデータが削除された時点でレプリカテーブルの該当データを削除する(309)が定義される。また、入力切り替え契機定義313には、■一件の操作情報入力毎に切り替える、■次操作情報がなくなった場合に切り替える、が定義される。
【0016】次に、図4を参照して、レプリケーションプログラム操作情報反映機能117が、レプリケーションプログラム操作情報反映機能実行時に、前述したレプリケーション定義を元に作成し、複数のマスタテーブルのデータを結合し、1つのレプリカテーブルへのレプリケーションの制御に用いる制御テーブルであるレプリケーション制御テーブル119の構造について説明する。
【0017】レプリケーション制御テーブル119は、レプリケーション定義に定義されたレプリカテーブルのテーブル名称400と、結合するマスタテーブルのテーブル名称402と、結合する複数のマスタテーブルのマッチングをとる情報、例えば、個人識別番号等の結合キー403と、レプリケーション契機404と、結合マスタテーブルのテーブル名称405と、不足データ設定値406と、レプリケーション制御情報407とにより構成される。そして、レプリケーション制御情報407には、操作情報記録媒体より入力したマスタテーブルの操作情報を解析し結合キー値単位408に複数のマスタテーブルの操作状態としての当結合キー値408のデータがマスタテーブルに挿入されたことを現す“挿入”と操作情報無し、または、削除を現す“−”を設定するマスタテーブル操作情報状態409と、レプリカテーブルへのレプリケーション状態として当結合キー値のデータをレプリカテーブルに挿入したことを現す“挿入”と未挿入を現す“−”を設定するレプリケーション状態410とが登録される。
【0018】図1の参照に戻って、マスタテーブルである個人情報管理テーブル108及び勤休管理テーブル109が業務アプリケーション104、105からの要求により操作されると、レプリケーションプログラム操作情報取得機能110、111は、マスタテーブル操作情報114、115の取得を行い、そのその操作情報を操作情報記録媒体112、113に記録する。
【0019】一方、レプリケーションプログラム操作情報反映機能117は、処理の実行時、レプリケーション定義118を解析して、レプリケーション制御テーブル119に展開し、その後、操作情報記録媒体112、113に記録されたマスタテーブル108、109の操作情報114、115を取り出して解析し、レプリケーション制御テーブル119の該当の結合キー値408に登録を行う。その後、レプリケーションプログラム操作情報反映機能117は、レプリケーション契機404、及びレプリケーション制御テーブルのレプリケーション制御情報407の管理状態を元に条件判定を行い、必要に応じてマスタテーブル108の操作情報114とマスタテーブル109の操作情報115とを結合し、レプリカDBMS120に対して、レプリカテーブル121の操作要求を行う。
【0020】次に、前述したように構成される本発明の実施形態によるレプリケーションシステムにおけるレプリケーションプログラム操作情報反映機能117の動作について、図5に示すデータの流れ及び図6に示すフローを参照して説明する。なお、ここで説明する例は、UAPが実行されたタイミングから個人情報管理テーブルの操作情報510、勤休管理システムの操作情報511、512、個人情報管理テーブルの操作情報513の順に操作情報記録媒体から入力して処理することとしている。また、この例では、図6のフローに示す動作が操作情報を一件づつ入力し動作するものとする。
【0021】(1)レプリケーションプログラム操作情報反映機能117が実行されると、該機能117は、まず初めに、レプリケーション定義118の解析を行い、レプリケーション制御テーブル119への展開を行う(ステップ600)。
【0022】(2)次に、操作情報記録媒体112、113よりマスタテーブル108、109の操作情報510〜513を入力しマスタテーブル名称504、507、操作種別505、508、結合キー506、509の解析を行う(ステップ601)。
【0023】(3)その後、操作情報510〜513の操作種別505、508及びレプリケーション制御テーブル119の当操作情報510〜513の結合キー516の登録の有無により条件判定を行う(ステップ602)。
【0024】(4)ステップ602の判定で、レプリケーション制御テーブル119の当操作情報510〜513の結合キー516が無い場合、レプリケーション制御テーブル119に当操作情報510〜513の結合キー521、525及び操作情報状態517の登録を行う(ステップ607)。
【0025】(5)また、ステップ602の判定で、操作種別505、508が挿入または削除であり、レプリケーション制御テーブル119の当操作情報の結合キー516が有りの場合、レプリケーション制御テーブル119の操作情報状態517の更新を行う(ステップ606)。
【0026】(6)ステップ602の判定で、操作種別505、508が更新の場合はレプリケーション制御テーブル119の操作は行わない。
【0027】前述の動作について、図5に示す操作情報毎の動作を説明する。操作情報510の入力時、レプリケーション制御テーブル119に結合キー521が無いため、結合キー521、個人情報管理テーブルの操作情報状態522に“挿入”を設定する。操作情報511の入力時についても、レプリケーション制御テーブル119に結合キー525が無いため、結合キー525を設定する。但し、この操作情報の操作種別は“削除”であるため個人情報管理テーブルの操作情報状態526に“挿入”、勤休管理テーブルの操作情報状態527に“−”、レプリケーション状態528に“挿入”を設定する。また、操作情報512の入力時、レプリケーション制御テーブル119に結合キー521が有るため、勤休管理テーブルの操作情報状態523に“挿入”のみを設定する。操作情報513の入力時、レプリケーション制御テーブル119に結合キー525が有り、操作情報513の操作種別が“削除”であるため、勤休管理テーブル操作情報511にて設定した個人情報管理テーブルの操作情報状態526の“挿入”を“−”にする。
【0028】(7)次に、操作情報510〜513の操作種別505、508、レプリケーション契機定義302の定義及びレプリケーション制御テーブルの操作情報状態517の条件判定を行う(ステップ608、611)。
【0029】(8)ステップ608、611の判定で、操作種別505、508が挿入でレプリケーション制御テーブル119の操作情報状態517がレプリケーション契機定義302の指定の条件を満たしている場合、レプリカテーブル121にデータ532の挿入を行う。なお、この際に、不足データがある場合、レプリケーション定義の不足データ定義311に指定されたデータ(説明している例では“スペース”とする)を設定し533、レプリカテーブル121に挿入を行う(ステップ615)。
【0030】(9)ステップ608、611の判定で、操作種別505、508が削除の場合、レプリケーション契機定義302の指定及びレプリケーション制御テーブル119の操作情報状態517により、レプリカテーブル121の操作内容が異なり、レプリケーション制御テーブル119の操作情報状態517がレプリケーション契機定義302の指定の条件を満たしている場合、レプリカテーブル121のデータ530の削除を行う(ステップ617)。
【0031】(10)ステップ608、611の判定で、条件が満たされていない場合、レプリケーション契機定義302の指定に従い、レプリケーション定義の不足データ定義311に指定されたデータ(説明している例では“スペース”とする)によりレプリカテーブル121の該当データ531を更新する。また、操作種別505、508が更新の場合、レプリケーション制御テーブル119のレプリケーション状態518が“挿入”の場合、操作情報のデータにてレプリカテーブル121の該当データを更新する(ステップ616)。
【0032】(11)前述以外の場合、レプリカテーブル529の操作は行わず次ステップに進む。
【0033】前述の動作について、図3のレプリケーション定義302の定義毎に、図5に示す操作情報処理時の動作を説明する。
【0034】レプリケーション契機定義302の挿入定義が「■結合する複数の複製元テーブルの全てのデータが挿入された時点でレプリカテーブルにデータ挿入をする」303の場合、操作情報512入力時にレプリカテーブル121にすでに入力している操作情報510と512とのデータを結合しデータ532の挿入を行う。
【0035】レプリケーション契機定義302の挿入定義が「■結合する複数の複製元テーブルの内で主となるテーブル(結合マスタ)のデータが挿入された時点でレプリカテーブルにデータ挿入をする」304の場合で個人情報管理テーブル108が結合マスタの場合、操作情報510入力時にレプリカテーブル121の操作情報512のデータ部分533に“スペース”を設定してデータ532の挿入を行う。その後、操作情報512入力時、すでに挿入されているデータ532の操作情報512のデータ部533を操作情報512のデータにより更新する。また、結合マスタが勤休管理テーブル109の場合の動作は、前述のレプリケーション契機定義302の挿入定義が「■結合する複数の複製元テーブルの全てのデータが挿入された時点でレプリカテーブルにデータ挿入をする」303の場合と同様となる。
【0036】レプリケーション契機定義302の挿入定義が「■結合する複数の複製元テーブルの内でいずれかのテーブルのデータが挿入された時点でレプリカテーブルにデータ挿入をする」305の場合の動作は、前述のレプリケーション契機定義302の挿入定義が「■結合する複数の複製元テーブルの内で主となるテーブル(結合マスタ)のデータが挿入された時点でレプリカテーブルにデータ挿入をする」304での結合マスタが個人情報管理テーブル108である場合と同様となる。
【0037】レプリケーション契機定義302の削除定義が「■結合する複数の複製元テーブルの該当情報が全て削除された時点でレプリカテーブルの該当データを削除する」306の場合、操作情報513の入力時にレプリカテーブル121データ530の削除を行う。
【0038】レプリケーション契機定義302の削除定義が「■結合する複数の複製元テーブルの内で主となるテーブル(結合マスタ)が削除された時点でレプリカテーブルの該当データを削除する」307の場合で個人情報管理テーブル108が結合マスタの場合、操作情報511の入力時にレプリカテーブル121の操作情報511のデータ部分531を“スペース”により更新し、その後操作情報513の入力時にデータ530の削除を行う。また、結合マスタが勤休管理テーブル109の場合、操作情報511の入力時にデータ530の削除を行い、操作情報513入力時にはレプリカテーブル121の操作は行わない。
【0039】レプリケーション契機定義302の削除定義が「■結合する複数の複製元テーブルの該当データ削除毎にレプリカテーブルの該当データを不足データ設定値に置換え、結合する複数の複製元テーブルの該当データ全てのデータが削除された時点でレプリカテーブルの該当データを削除する」308の場合の動作は、前述のレプリケーション契機定義302の削除定義が「■結合する複数の複製元テーブルの内で主となるテーブル(結合マスタ)が削除された時点でレプリカテーブルの該当データを削除する」307の場合で個人情報管理テーブル108が結合マスタの場合と同様となる。
【0040】レプリケーション契機定義302の削除定義が「■結合する複数の複製元テーブルのいずれかのデータが削除された時点でレプリカテーブルの該当データを削除する」309の場合の動作は、前述のレプリケーション契機定義302の削除定義が「■結合する複数の複製元テーブルの内で主となるテーブル(結合マスタ)が削除された時点でレプリカテーブルの該当データを削除する」307の場合の結合マスタが勤休管理テーブル109の場合と同様となる。
【0041】(12)そして、最後に、レプリカテーブル121の操作内容の条件判定を行い、制御テーブル操作条件の判定を行い、レプリカテーブル121へのデータの挿入532を行った場合、レプリケーション制御テーブル119のレプリケーション状態524に“挿入”の設定を行い、レプリカテーブルの削除530を行った場合、レプリケーション制御テーブル119の該当結合キー520の削除(初期化)を行った後、ステップ601からの処理に戻り、次の操作情報の操作に移行する(ステップ618、623、622)。
【0042】前述した本発明の実施形態によれば、前述した処理により、個人情報管理テーブルと勤休管理テーブルとを結合したレプリカテーブルである給与テーブルへのレプリケーションを行うことができ、個人情報管理テーブルと勤休管理テーブルとをアクセスし実行していた月次処理が、1つの給与テーブルにアクセスすることにより可能となり、業務実行時間の短縮を図ることができる。また、前述した本発明の実施形態によれば、マスタテーブル毎に複数のテーブルにレプリケーションを行っていた場合、レプリカテーブルを1つにすることにより、レプリカテーブルの保守作業の軽減をはかることが可能となる。
【0043】図7は本発明の他の実施形態によるレプリケーションシステムの構成を示すブロック図である。図7において、700〜702は階層型データベースである。
【0044】図7に示す本発明のダイオードの実施形態は、マスタシステムのデータベースが階層型データベース700〜702であるものに本発明を適用したもので、図1におけるマスタテーブル108、109に代わって、複製元に複数の階層型データベース700、701、702を用いたものである。このような構成においても、前述した実施形態の場合と同様に、複数のマスタテーブルのデータを1つのレプリカテーブルにレプリケーションする際のレプリカシステムでの業務実行時間の短縮を図ることができる。
【0045】
【発明の効果】以上説明したように本発明によれば、複数のマスタテーブルから、1つのレプリカテーブルへのレプリケーションが可能となり、複数のテーブルにアクセスし行っていた業務を1つのレプリカテーブルをアクセスすることにより実行することが可能となり、業務実行時間の短縮を図ることができる。また、マスタテーブル毎に複数のテーブルにレプリケーションを行っていた場合には、レプリカテーブルを1つにすることにより、レプリカテーブルの保守作業の軽減を図ることも可能となる。
【出願人】 【識別番号】000005108
【氏名又は名称】株式会社日立製作所
【出願日】 平成12年9月27日(2000.9.27)
【代理人】 【識別番号】100078134
【弁理士】
【氏名又は名称】武 顕次郎
【公開番号】 特開2002−108681(P2002−108681A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−294551(P2000−294551)