JP2000259473A - データベース管理方式 - Google Patents

データベース管理方式

Info

Publication number
JP2000259473A
JP2000259473A JP11059679A JP5967999A JP2000259473A JP 2000259473 A JP2000259473 A JP 2000259473A JP 11059679 A JP11059679 A JP 11059679A JP 5967999 A JP5967999 A JP 5967999A JP 2000259473 A JP2000259473 A JP 2000259473A
Authority
JP
Japan
Prior art keywords
time
entry
database
date
registration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11059679A
Other languages
English (en)
Inventor
Hirohito Shibata
博仁 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP11059679A priority Critical patent/JP2000259473A/ja
Publication of JP2000259473A publication Critical patent/JP2000259473A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 各コンピュータ上のデータベースどうしの整
合性を好適に保つ(すなわち同期をとる)ことができる
データベース管理方式を提供する。 【解決手段】 異なるコンピュータ上において同一のデ
ータベースに対する登録、更新、削除などが同時刻に行
なわれないことを前提とすれば、データベース中におい
て登録時間とエントリは一対一に対応するから、登録時
間をデータベース・エントリの識別情報(ID)として
活用することができる。かかる登録時間の一意性の性質
により、異なるコンピュータに複製された複数のデータ
ベース間において、一方に存在し他方に存在しない登録
時間を持つエントリは、一方において登録されたか、又
は他方において削除されたとみなすことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のコンピュー
タに複製されたデータベースを管理するデータベース管
理方式に係り、特に、各コンピュータ上のデータベース
どうしの整合性を保つ(すなわち同期をとる)ためのデ
ータベース管理方式に関する。
【0002】更に詳しくは、本発明は、とりわけ、個人
が利用する、ネットワーク接続されない複数のコンピュ
ータ上に複製されたデータベース間での同期をとるため
のデータベース管理方式に関する。
【0003】但し、本明細書中で言う「整合性」とは、
あるデータベースに登録されたエントリは他のコンピュ
ータに複製されたデータベースでも登録し、あるデータ
ベースに削除されたエントリは他のコンピュータに複製
されたデータベースでも削除し、複製された2以上のデ
ータベース上において更新されたエントリは新しい更新
内容を優先することを意味する。なお、エントリの更新
や読み取りにおける順序までは考慮しないこととする。
【0004】
【従来の技術】昨今の技術革新に伴い、ノートブック、
又はラップトップと呼ばれる比較的小型軽量なパーソナ
ル・コンピュータ(PC)が開発され、広範に普及して
いる。ノートブック・コンピュータは、モバイル環境で
の携帯的・可搬的な使用が可能であり、オフィスや家庭
内など設置場所を固定しない。さらに、オフィス内では
デスクトップを用い、モバイル環境ではノートブックを
使用するといった具合に、単一のユーザが複数のコンピ
ュータを併用する機会も多くなった。このような場合、
個人情報や顧客情報(すなわち、所謂PIM(Pers
onal Information Manager)
データ)などに関するデータベースを、自己が所有又は
管理する複数のコンピュータの各々に複製しておくのが
便利である。
【0005】但し、同じデータベースを複数のコンピュ
ータ上に分散して持つ場合、複製された各データベース
間で整合性を維持するための作業が必要となる。整合性
を保つことを、当業界では「同期をとる」とも言う。
【0006】データベースの整合性とは、複製された各
データベースどうしが単に同じ内容のエントリを共有し
ていることのみを意味しない。あるデータベースに登録
されたエントリは他のコンピュータに複製されたデータ
ベースでも登録し、あるデータベースに削除されたエン
トリは他のコンピュータに複製されたデータベースでも
削除し、複製された2以上のデータベース上において更
新されたエントリは新しい更新内容を優先することが、
データベースのユーザにとって好ましい。
【0007】同期作業を正確に行なわないと、大事なデ
ータベース資源を破壊するおそれがある。例えば、1つ
のコンピュータ上で編集や登録を行なったデータベース
・ファイルに、他のコンピュータ上の同一データベース
・ファイルをただ単に上書きコピーしてしまうと、編集
し又は新規登録されたエントリが喪失してしまう可能性
がある。
【0008】データベースの編集・登録内容の保全を図
るために、各コンピュータに対してマスタ及びスレーブ
の関係をユーザ自身が取り決めておく、という手法が従
来からなされている。すなわち、スレーブ側のコンピュ
ータでデータベースに編集を行う場合には、まず、マス
タからスレーブにデータベースをコピーし、スレーブで
の編集が終了するとスレーブ側のデータベース・ファイ
ルをマスタ側に上書きすればよい。しかしながら、この
場合も、マスタとスレーブの関係を錯綜すると編集後の
データベース・ファイルを編集前のデータベース・ファ
イルで置き換えてしまう、という誤操作の危険が残る。
【0009】それでも、データベースの個数が少なけれ
ば、マスタ/スレーブによる上述の管理方式は比較的容
易に実現することができよう。ところが、データベース
が数多くある場合、どれがマスタでどれがスレーブかを
データベース毎に覚えておくことは殆ど不可能である。
また、仮に可能であったとしても、各データベースに対
してマスタをスレーブで置き換えていくという操作は相
当の労力を要する。
【0010】特開平8−137732号公報には、情報
処理機器間のデータの整合性をとるための操作を簡単化
する技術が開示されている。すなわち、同公報では、フ
ァイルID、ファイル名、パス、ファイルがマスタ又は
スレーブのいずれのものであるかを示すフラグなどを管
理することで、ファイル単位でのデータの整合性を維持
するための操作を簡単化している。
【0011】しかしながら、特開平8−137732号
公報は、あくまでファイル単位でのデータ整合性の維持
を対象としているに過ぎない。データベースという観点
になると、データベース全体ではなく、データベースを
構成する各エントリ単位で同期作業をしなければ意味が
ない。すなわち、ファイルよりもさらに粒度の細かい単
位のデータ・レベルでの整合性を考慮する必要がある。
上述したようなマスタ/スレーブという概念に頼るだけ
では、ユーザはスレーブのデータベースに対する編集し
か認められず、データの可用性も低下してしまう。
【0012】なお、データベースの整合性の問題自体
は、個人ユーザ向けのデータベースに限定されない。例
えば、LAN(Local Area Networ
k)などのネットワーク空間において、同じデータベー
スを複数のクライアント・ユーザが共有するような場合
には、データベースを一元管理できるので整合性の問題
はないであろう。これは、単一のユーザが単一のコンピ
ュータ上でのみデータベースを使用する場合と同様であ
る。但し、LANどうしを専用線等で接続したWAN
(Wide Area Network)上において、
各LAN毎に同じデータベースを複製して分散管理して
いる場合には、あるタイミングで各データベース間で同
期をとる必要があろう。(例えば企業において、東京事
業場と大阪事業場の各々にLANが敷設されており、同
じ社内データベースを保管するデータベース・サーバを
各LAN毎に設置した場合などである。)
【0013】
【発明が解決しようとする課題】本発明の目的は、複数
のコンピュータに複製されたデータベースを管理するこ
とができる、優れたデータベース管理方式を提供するこ
とにある。
【0014】本発明の更なる目的は、各コンピュータ上
のデータベースどうしの整合性を好適に保つ(すなわち
同期をとる)ことができる、優れたデータベース管理方
式を提供することにある。
【0015】本発明の更なる目的は、とりわけ、個人が
利用する、ネットワーク接続されない複数のコンピュー
タ上に複製されたデータベース間で好適に同期をとるこ
とができる、優れたデータベース管理方式を提供するこ
とにある。
【0016】なお、本発明において、データの整合性と
は、ユーザが1つのコンピュータ上で登録したものは他
のコンピュータ上でも登録され、1つのコンピュータ上
で削除したものは他のコンピュータ上でも削除されるこ
とを意味する。また、ユーザが更新したものに関して
は、新しい方の更新内容を優先することをも包含する。
但し、更新や読み取りにおける優先順位までは考慮しな
い。
【0017】
【課題を解決するための手段及び作用】本発明は、上記
課題を参酌してなされたものであり、その第1の側面
は、複数のコンピュータに複製されたデータベースを管
理するデータベース管理方式であって、データベースに
新しいエントリを登録した時に該エントリに登録日時を
付与する登録日時付与手段と、データベース中のエント
リを更新した時に該エントリに更新日時を付与する更新
日時付与手段と、各データベース間の同期をとる同期手
段とを備え、前記同期手段は、エントリの登録日時をエ
ントリの識別情報として扱うことを特徴とするデータベ
ース管理方式である。
【0018】本発明では、異なるコンピュータ上におい
て、同一のデータベースに対する登録、更新、削除など
が同一時刻に行なわれないことを前提とする。データベ
ースが個人ユーザ向けであること、1人のユーザは同一
時刻に複数のコンピュータに対する入力操作(すなわち
データベース・エントリの登録、更新、削除)を行なえ
ないこと、及び、1人のユーザが所有する複数のコンピ
ュータの各システム時間が同一時刻を刻んでいることを
想定すれば、この前提条件は容易に充足されるであろ
う。
【0019】かかる前提条件の下では、データベース中
において、エントリとその登録時間とは一対一に対応す
ることから、登録時間が等しいエントリを同一視するこ
とができる。すなわち、登録時間をデータベース・エン
トリの識別情報(ID)として活用することができる。
【0020】登録時間の一意性の性質により、異なるコ
ンピュータに複製された複数のデータベース間におい
て、一方に存在して他方に存在しない登録時間を持つエ
ントリは、一方において登録されたか、又は他方におい
て削除されたとみなすことができる。
【0021】また、本発明の第2の側面は、複数のコン
ピュータに複製されたデータベースを管理するデータベ
ース管理方式であって、データベースに新しいエントリ
を登録した時に該エントリに登録日時を付与する登録日
時付与手段と、データベース中のエントリを更新した時
に該エントリに更新日時を付与する更新日時付与手段
と、各データベース間の同期をとる同期手段とを備え、
前記同期手段は、(a)同一登録日時のエントリが一部
のコンピュータ上のデータベースにしか存在しない場
合、該エントリを他のコンピュータ上のデータベースに
登録し、(b)同一登録日時のエントリが複数のコンピ
ュータ上のデータベースに存在する場合は、更新日時の
旧いエントリを更新日時の新しいエントリで置き換え
る、ことを特徴とするデータベース管理方式である。
【0022】本発明の第2の側面に係るデータベース管
理方式は、複製された2つのデータベース間での同期を
実現する方式である。エントリに付与される登録日時と
更新日時には、ともにエントリとの一意性が成立する。
ここで、複製された2つのデータベースA及びBの各々
に対してユーザが登録・削除・更新などの編集を行なっ
た後に同期処理を行なう場合について考察してみる。
【0023】データベースAに存在してデータベースB
に存在しない登録時間を持つエントリがあったなら、そ
のエントリを同じ登録時間でデータベースBにも登録す
る。同様に、データベースBに存在してデータベースA
に存在しない登録時間を持つエントリがあったなら、そ
のエントリを同じ登録時間でデータベースAにも登録す
る。
【0024】また、データベースA及びBの双方に同じ
登録時間を持つエントリが存在する場合には、更新時間
の新しい(すなわち最近に更新した)エントリで旧い方
を置き換えることとする。
【0025】本発明の第2の側面に係るデータベース管
理方式による同期処理を、さらに具体的に説明してみ
る。データベースAにはエントリ1,2,及び3がある
状態で、データベースAを複製すなわちファイル・コピ
ーしてデータベースBを作成した。さらにその後、デー
タベースAにおいて、エントリ2を更新するとともに、
エントリ4を新規登録する。また、データベースBで
は、エントリ5を新規登録したとする。
【0026】図13には、この様子を模式的に示してい
る。但し、同図では、説明の便宜と図面の簡素化のた
め、各エントリを登録番号ではなく、通し番号1,2,
3,4,5…でのみ表記することとしし、通し番号の大
きさは、登録時間の時系列の昇り順に従うものとする。
すなわち、同じ通し番号のエントリは、同じ登録時間を
共有し、通し番号の大きい方が新しいエントリであるこ
とを意味する。
【0027】同図に示す状態において同期をとると、デ
ータベースAで更新されたエントリ2によって、データ
ベースB中のエントリ2が置き換えられる。また、デー
タベースAで新規登録されたエントリ4はデータベース
B中には存在しないので、データベースBにも同じ登録
時間を以って登録される。同様にして、データベースB
で新規登録されたエントリ5はデータベースAに存在し
ないので、データベースAにも同じ登録時間を以って登
録される。図14には、同期処理を終了した様子を模式
的に示している。
【0028】このような同期処理の手順は、2つのデー
タベース間において、一方に存在し他方に存在しない登
録時間を持つエントリは、一方において登録されたか、
又は他方において削除されたとみなすことができるとい
う性質に依拠する。本発明の第2の側面に係るデータベ
ース管理方式に従った同期処理によって、図14に示す
ようにデータベースA及びBは全く同じエントリを共有
することができる、という点を充分理解されたい。
【0029】但し、本発明の第2の側面に従うデータベ
ース管理方式には、以下の2つの問題がある。
【0030】まず、第1の問題について説明する。デー
タベースA中のエントリに対して編集を行ってから、デ
ータベースB中の同じ登録時間のエントリを編集する。
再び、データベースA中のエントリに対して編集を行っ
てから同期処理を行なうと、データベースBのエントリ
に対して行なった編集が無視されてしまう。これを完全
に防ぐには所謂「ロック」の機構を導入しなくてはなら
ない。
【0031】上記第1の問題点があるにも拘らず、本発
明の第2の側面に係るデータベース管理方式に意義を感
じるのは以下の理由に依る。すなわち、 (1)ロックの機構はユーザに面倒さと混乱をもたらす
ものである。 (2)上のような問題は頻発するものではない。 (3)そもそも銀行の入金システムのように厳密で堅牢
なデータベースの構築を意図していない場合には、上述
したような第1の問題が生じてもそれほどのダメージは
ない。
【0032】第2の問題は、エントリの編集として削除
の可能性を全く考慮していない点である。データベース
Aにおいてあるエントリを削除してから同期すると、他
方のデータベースBに存在したままであるために、削除
したはずのエントリがデータベースAでもに復活される
ことになる。エントリが喪失するのは許容しないがエン
トリが増えるのは許容できる、という観点に立ってデー
タベースの管理を行なうならば、この第2の問題にも妥
協することができよう。
【0033】上記した第2の問題について、図15及び
図16を参照しながら具体例に説明する。図13で示し
たのと同じ状況下で、今度はデータベースAのエントリ
1が削除されたとする(図15を参照のこと)。ここ
で、本発明の第2のデータベース管理方式を用いて同期
を行なうと、データベースBにしか存在しなくなったエ
ントリ1がデータベースAにも再登録されてしまう(図
16を参照のこと)。エントリ1は、データベースA上
で既に削除したはずなのに、同期処理により再び復活し
てしまう訳である。
【0034】本発明の第3の側面は、削除済みのエント
リがデータベース間の同期処理によって復活されてしま
うという問題を取り除くことができるデータベース管理
方式である。
【0035】すなわち、本発明の第3の側面は、異なる
コンピュータに複製された2つのデータベースを管理す
るデータベース管理方式であって、データベースに新し
いエントリを登録した時に該エントリに登録日時を付与
する登録日時付与手段と、データベース中のエントリを
更新した時に該エントリに更新日時を付与する更新日時
付与手段と、2つのデータベースに共通する登録日時の
うち最大(すなわち現在時刻に最も近い)ものを検出す
る最大共通登録日時検出手段と、各データベース間の同
期をとる同期手段とを備え、前記同期手段は、(a)同
一登録日時のエントリが一方のデータベースにしか存在
せず、且つ、該登録日時が最大共通登録日時よりも小さ
い(すなわち旧い)場合、該エントリをデータベースか
ら削除し、(b)同一登録日時のエントリが一方のデー
タベースにしか存在せず、且つ、該登録日時が最大共通
登録日時よりも大きい(すなわち新しい)場合、該エン
トリを他方のデータベースにも登録し、(c)同一登録
日時のエントリが両方のデータベースに存在する場合
は、更新日時の旧いエントリを更新日時の新しいエント
リで置き換える、ことを特徴とするデータベース管理方
式である。
【0036】複製された各データベース間では、登録時
間の一意性(前述)により、同じエントリ(すなわち、
図13〜図16において同じ通し番号を持つエントリ)
は同じ登録時間を共有する。本明細書では、これを「共
通登録時間」と呼ぶことにする。また、さらに、2つ以
上のデータベース間に存在する共通登録時間のうち最
大、すなわち最も現在時刻に近いものを「最大共通登録
時間」と呼ぶことにする。
【0037】「登録時間」、及び、「最大共通登録時
間」についての性質を、以下に簡単にまとめておく。
(1)登録時間は登録順に付与される。(2)異なる登
録において同じ登録時間が重複して与えられることはな
い。(3)複数のデータベース間で同じ登録時間を持つ
エントリが重複して存在するのは、以前に複製又は同期
が行われたためである。 (4)データベースBにのみ存在し、データベースAに
は存在しないエントリがあるとする。当該エントリの登
録時間がデータベースA及びB間の最大共通登録時間よ
り小さい(すなわち旧い)場合には、データベースA中
の対応するエントリは、以前にデータベースBを複製し
又は同期をとった後に、 データベースAから削除され
たものである。
【0038】最大共通登録時間に関するこのような性質
に基づいて、以下の[数1]に示すような手順に従っ
て、データベース間で同期をとることができる。
【0039】
【数1】
【0040】本発明の第3の側面に係るデータベース管
理方式による処理手順を、図面を参照しながら具体的に
説明する。上述した図15の状態で同期をとる場合につ
いて考察してみる。このときの最大共通登録時間は、デ
ータベースA及びBの双方に存在するエントリ3の登録
時間である(但し、同図では、説明の便宜と図面の簡素
化のため、登録時間そのものではなく、エントリ通し番
号のみを表記する)。
【0041】エントリ1はデータベースBにしか存在し
ないが、エントリ1の登録時間はエントリ3の登録時間
すなわち最大登録時間よりも小さいことから、エントリ
1はデータベースAにおいて既に削除されたということ
が判明する。よって、エントリ1はデータベースBから
も削除される。これにより、削除したエントリが復活さ
れるという、上記した第2の側面に係るデータベース管
理方式の問題点は解決できる。
【0042】しかしながら、上述した第3の側面に係る
データベース管理方式にも問題がある。例えば、登録時
間がデータベースA及びB間の最大共通登録時間よりも
大きい(すなわち新しい)エントリ(すなわち上述した
[数1]の(2)に相当する場合)に関しては、第3の
側面に係るデータベース管理方式では無条件で他方のデ
ータベースにも登録している。このようなエントリにつ
いては、追加された結果として一方のデータベースにし
か存在しないのか、あるいは削除された結果として一方
のデータベースにしか存在しないのか、実は区別するこ
とができない。
【0043】この問題を、図面を参照しながら具体的に
説明する。図15において削除されたのは、図17に示
すように、データベースAのエントリ3であったとす
る。このときの最大共通登録時間は、エントリ2の登録
時間となる。エントリ3はデータベースAで既に削除さ
れているにも拘らず、未だエントリ3を持つデータベー
スBとの間で同期をとることにより、図18に示すよう
に、データベースAにもエントリ3が復活することにな
る。
【0044】このような問題点は、最大共通登録時間は
必ずしも以前にコピー又は同期した時点での最大(すな
わち現在時刻に最も近い)の登録時間を示すものではな
い、ということに依拠する。
【0045】そこで、本発明の第4の側面に係るデータ
ベース管理方式では、同期をとった直後の時間を両方の
データベースに保存しておくことにより、最大共通登録
時刻に従って同期処理を行なう上記の問題点を取り除く
ことを意図した。すなわち、本発明の第4の側面は、異
なるコンピュータに複製された2つのデータベースを管
理するデータベース管理方式であって、データベースに
新しいエントリを登録した時に該エントリに登録日時を
付与する登録日時付与手段と、データベース中のエント
リを更新した時に該エントリに更新日時を付与する更新
日時付与手段と、各データベース間の同期をとる同期手
段と、前記同期手段により同期をとった日時を同期ポジ
ションとして格納する同期ポジション格納手段を備え、
前記同期手段は、(a)同期をとるときに前記同期ポジ
ション格納手段から同期ポジションを取り出し、(b)
同一登録日時のエントリが一方のデータベースにしか存
在せず、且つ、該登録日時が同期ポジションよりも小さ
い(すなわち旧い)場合、該エントリをデータベースか
ら削除し、(c)同一登録日時のエントリが一方のデー
タベースにしか存在せず、且つ、該登録日時が同期ポジ
ションよりも大きい(すなわち新しい)場合、該エント
リを他方のデータベースにも登録し、(d)同一登録日
時のエントリが両方のデータベースに存在する場合は、
更新日時の旧いエントリを更新日時の新しいエントリで
置き換える、ことを特徴とするデータベース管理方式で
ある。
【0046】本発明の第4の側面に係るデータベース管
理方式では、「最大共通登録時間」に代えて、「同期ポ
ジション」を用いることにした。同期ポジションとは、
データベース間で同期をとった直後の時間のことを指
し、本データベース管理方式では、同期をとった各デー
タベースに保存しておくこととする。
【0047】同期ポジションに関する性質を、以下に簡
単にまとめる。(1)同期後に、同期ポジションよりも
小さな(すなわち同期ポジションよりも旧い)登録時間
のエントリが新規に登録されていることはない。言い換
えれば、同期後に新規に登録されたエントリーの登録時
間は全て同期ポジションよりも大きくなるはずである。
【0048】この性質に基づき、以下の定理を導出する
ことができる。すなわち、
【0049】《定理1》「データベースA及びBに対し
て同期処理を行なって保存される同期ポジションを”p
os”とする。データベースAには存在せず、データベ
ースBにだけ存在する登録時間を持つエントリがあった
する。このとき、当該エントリの登録時間が posよ
りも小さい(すなわち旧い)なら、そのエントリは以前
の同期後にデータベースAから削除されたものであるこ
とが判明する。逆に、当該エントリの登録時間がpos
よりも大きい(すなわち新しい)なら、そのエントリー
は以前の同期後にデータベースBにおいて新規に登録さ
れたものである。」
【0050】上述の《定理1》に従うことにより、以下
に示す[数2]のような手順により、データベース間で
同期をとることができる。
【0051】
【数2】
【0052】本発明の第4の側面に係るデータベース管
理方式について、図面を参照しながら具体的に説明す
る。図17に示す例では、同期ポジションはエントリ3
の登録時間となる。同図では、エントリ3はデータベー
スBにしか存在しないが、その登録時間は同期ポジショ
ン以下 (この例では、同期ポジションに等しい) の
で、データベースAではエントリ3が既に削除されてい
る、ということが判明する。よって、エントリ3はデー
タベースBからも削除すればよい。このようにして、削
除したはずのエントリが同期処理による復活する、とい
う本発明の第3の側面における問題は解決されるであろ
う。
【0053】ここで、最後に同期をとったときの同期ポ
ジションの設定について考察する。登録時間の一意性の
性質から、同期処理以降の登録に対して同期ポジション
より小さい(すなわち同期ポジションよりも旧い)登録
時間のエントリがデータベースに追加登録されることは
ない。
【0054】同期をとるべきデータベースが2つしかな
い場合には、上述したように、本発明の第4の側面に係
るデータベース管理方式で磐石であろう。しかしなが
ら、複製したデータベースが3つ存在し、且つ、3つの
うち2つのデータベース間でしか同時に同期処理を行な
わないような場合には、各データベースが持つ同期ポジ
ションが異なるという可能性がある。
【0055】本発明の第5の側面は、複製されたデータ
ベースが3つ存在する場合の同期処理を考慮したデータ
ベース管理方式である。すなわち、本発明の第5の側面
は、異なるコンピュータに複製された3つ以下のデータ
ベースを管理するデータベース管理方式であって、デー
タベースに新しいエントリを登録した時に該エントリに
登録日時を付与する登録日時付与手段と、データベース
中のエントリを更新した時に該エントリに更新日時を付
与する更新日時付与手段と、2つのデータベース間で同
期をとる同期手段と、前記同期手段により同期をとった
日時を同期ポジションとして同期をとった各データベー
スに格納する同期ポジション格納手段を備え、前記同期
手段は、(a)同期をとるときに両データベースに格納
された同期ポジションを取り出し、小さい(すなわち旧
い)方を最小同期ポジションとし、(b)同一登録日時
のエントリが一方のデータベースにしか存在せず、且
つ、該登録日時が最小同期ポジションよりも小さい(す
なわち旧い)場合、該エントリをデータベースから削除
し、(c)同一登録日時のエントリが一方のデータベー
スにしか存在せず、且つ、該登録日時が最小同期ポジシ
ョンよりも大きい(すなわち新しい)場合、該エントリ
を他方のデータベースにも登録し、(d)同一登録日時
のエントリが両方のデータベースに存在する場合は、更
新日時の旧いエントリを更新日時の新しいエントリで置
き換える、ことを特徴とするデータベース管理方式であ
る。
【0056】ここで、A、B、及びCという複製された
3つのデータベース間で行なう同期について考察してみ
る。この場合、以下に示す2通りの戦略を挙げることが
できよう。
【0057】(1)データベースA,B,及びCの3者
間で同時に同期をとる。 (2)最初にデータベースA及びBの2者間で同期をと
る。次いで、データベースB及びCの2者間で同期をと
る。最後にデータベースC及びAの2者間で同期をと
る。
【0058】前者は、同期操作自体が困難である。何故
なら、会社に設置したデスクトップ・コンピュータ内の
データベース、会社所有のラップトップ・コンピュータ
内のデータベース、自宅に設置した(又は個人所有の)
コンピュータ内のデータベースなど、異なるコンピュー
タ・システム上にある3つのデータベースを同時に一個
所に集めて(あるいは接続して)同期をとることは、ユ
ーザへの負荷が高いからである。
【0059】他方、後者は、同期をとるデータベースの
数が増えるに従って、同期をとるべきデータベースの組
み合わせが指数的に増大する。また、複数のデータベー
スのうちの各2者間で区々に同期をとることによって、
各々のデータベースが持つ同期ポジションが夫々異なる
可能性がある。しかしながら、登録時間の一意性の性質
により、以下の《定理2》を導出することができる。す
なわち、
【0060】《定理2》「データベースA,B,及びC
において、まずAとBの間で同期をとることを考える。
データベースAが持つ同期ポジションをpAとし、デー
タベースBが持つ同期ポジションをpBとする。ここ
で、minをpAとpBのうち小さい(すなわち旧い)
方とする。このとき、entry ∈ A,及びent
ry ∈Bなるエントリentryに対して、以下のこ
とが成立する。すなわち、 (1)entryの登録時間がmin以下なら、ent
ryはデータベースBから削除された。 (2)entryの登録時間がminより大きいなら、
entryはデータベースAに新規登録された。」
【0061】上の定理は自明のことなので、これを詳細
に証明することは省略する。但し、上述の《定理2》に
従うことにより、以下に示す[数3]のような手順によ
り、データベース間で同期をとることができる。
【0062】
【数3】
【0063】2者のデータベースが持つ同期ポジション
のうち小さい(すなわち旧い)方を利用するといことを
除いて上述の[数2]で示した方式と略同一であるの
で、[数3]についての詳しい説明は、ここでは省略す
る。
【0064】上記の[数3]で示した方式は、3つのデ
ータベースのうち同時に2者間についてのみ同期するた
めのものである。但し、3つのデータベースを同時に同
期する場合でも、簡単に応用が可能である。
【0065】また、本発明の第6の側面は、複製された
データベースが4つ以上存在する場合の同期をとるため
のデータベース管理方式に関する。すなわち、本発明の
第6の側面は、異なるコンピュータに複製された4つ以
上のデータベースを管理するデータベース管理方式であ
って、データベースに新しいエントリを登録した時に該
エントリに登録日時を付与する登録日時付与手段と、デ
ータベース中のエントリを更新した時に該エントリに更
新日時を付与する更新日時付与手段と、2つのデータベ
ース間で同期をとる同期手段と、前記同期手段により同
期をとった日時を同期ポジションとして同期をとった各
データベースに格納する同期ポジション格納手段を備
え、前記同期手段は、(a)前記データベースのうち特
定の1つをセンタとするとともに他のデータベースをロ
ーカルとして扱い、同期処理は1つのローカルがセンタ
との間で行なうものとし、(b)同一登録日時のエント
リが一方のデータベースにしか存在せず、且つ、該登録
日時がローカルの同期ポジションよりも小さい(すなわ
ち旧い)場合、該エントリをデータベースから削除し、
(c)同一登録日時のエントリが一方のデータベースに
しか存在せず、且つ、該登録日時がローカルの同期ポジ
ションよりも大きい(すなわち新しい)場合、該エント
リを他方のデータベースにも登録し、(d)同一登録日
時のエントリが両方のデータベースに存在する場合は、
更新日時の旧いエントリを更新日時の新しいエントリで
置き換える、ことを特徴とするデータベース管理方式で
ある。
【0066】互いに同期をとるべきデータベースが4つ
以上存在する場合には、上述した《定理2》の場合と同
様に、データの整合性を保持するための一般解は存在し
ない(データベースA及びB間の同期ポジションの違い
において、両者ともに同一のデータベースCとの同期が
関与していることを仮定していた)。そこで、本発明の
第6の側面では、各データベース間で同期をとる際に、
次段落[0067]で記述するような付帯条件を課する
こととした。この付帯条件は、実際の利用と照らし合わ
せたとき、妥当なものである必要がある。
【0067】第6の側面に係るデータベース管理方式で
は、同期はある特定の1つのデータベースと他のデータ
ベースの1つとの間でのみ行われるものとする。この特
定のデータベースを「センタ」、他のデータベースを
「ローカル」と呼ぶことにする。図19に示す例では、
データベースAがセンタとして位置付けられ、残りの各
データベースB,C,D,及びEがローカルとして位置
付けられている。
【0068】センタと各ローカルの間で逐次的に同期を
とる場合、同期ポジションに関して以下の性質がある。
すなわち、(1)センタ・データベースAとローカル・
データベースBの間で同期をとることを考える。データ
ベースAの同期ポジションが持つpAとし、データベー
スBが持つ同期ポジションをpBとする。このとき、p
B≦pAが成立し、しかも、同期ポジションpBが記す
時刻にデータベースBが同期をとった相手は必ずデータ
ベースAである。
【0069】この性質から、以下の[数4]に示す《定
理3》を導出することができる。すなわち、
【0070】
【数4】
【0071】上述の《定理3》に従うことにより、以下
に示す[数5]のような手順により、データベース間で
同期をとることができる。
【0072】
【数5】
【0073】同期ポジションの小さい方(すなわち旧い
方)のエントリを利用する点を除いて、上述の[数2]
で示した方式と略同一であるので、ここでは詳しい説明
は省略する。
【0074】本発明の第1乃至第6の各側面に係るデー
タベース管理方式は、各データベース中の各エントリの
登録時間を登録時間と一意的な識別情報で置換して同期
処理を行うようにしてもよい。
【0075】また、前記同期手段は、同一登録日時のエ
ントリが両方のデータベースに存在する場合は、更新日
時の旧いエントリを更新日時の新しいエントリで置き換
えるのではなく、両エントリのマージを行なうようにし
てもよい。
【0076】また、本発明の第1乃至第6の各側面に係
るデータベース管理方式は、データベース・ファイルの
更新日時を各データベースに格納するデータベース・フ
ァイル更新日時格納手段と、同期を行なうデータベース
どうしのデータベース・ファイル更新日時を比較し、同
一なら前記同期手段による同期処理を中止するデータベ
ース・ファイル更新日時比較手段とをさらに備えていて
もよい。
【0077】また、本発明の第7の側面は、データベー
スを格納するとともに他の1以上のコンピュータとの間
でデータベースの同期を行なうことができるコンピュー
タ・システム上で稼動するコンピュータ・プログラムを
有形的に格納したコンピュータ可読記録媒体であって、
前記コンピュータ・システムが前記コンピュータ・プロ
グラムを読み込んで実行して行う処理は、データベース
に新しいエントリを登録した時に該エントリに登録日時
を付与する登録日時付与処理モジュールと、データベー
ス中のエントリを更新した時に該エントリに更新日時を
付与する更新日時付与処理モジュールと、各コンピュー
タ間でデータベースの同期をとる同期処理モジュールと
を備え、前記同期処理モジュールにおいてエントリの登
録日時をエントリの識別情報として扱うことを特徴とす
るコンピュータ可読記憶媒体である。
【0078】本発明の第7の側面に係るコンピュータ可
読記憶媒体は、コンピュータ・システム上でコンピュー
タ・プログラムの機能を実現するための、コンピュータ
・プログラムと記憶媒体との構造上又は機能上の協働的
関係を定義したものである。換言すれば、該コンピュー
タ可読記憶媒体をコンピュータ・システムに装着する
(若しくはコンピュータ・プログラムをコンピュータ・
システムにインストールする)ことによって、コンピュ
ータ・システム上では協働的作用が発揮され、本発明の
第1の側面と同様の作用効果を得ることができる。
【0079】本発明のさらに他の目的、特徴や利点は、
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
【0080】
【発明の実施の形態】この項で説明する各本実施例で
は、異なるコンピュータ上において同一のデータベース
に対する登録、更新、削除などが同一時刻に行なわれな
いことを前提とする。データベースが個人ユーザ向けで
あること、1人のユーザが複数のコンピュータに対して
同時に入力操作(すなわちデータベース・エントリの登
録、更新、削除)を行なえないこと、及び、1人のユー
ザが所有する複数のコンピュータの各システム時間が同
一時刻を刻んでいることを想定すれば、この前提条件は
容易に充足されるであろう。かかる前提条件の下では、
データベースのエントリについて登録時間の一意性が成
立する。以下、図面を参照しながら本発明の各実施例に
ついて詳解する。
【0081】《第1の実施例》図1には、本発明の第1
の実施例に係るデータベース管理システム100の構成
を模式的に示している。以下、各部について説明する。
【0082】同図に示すように、データベース管理シス
テム100は、同じデータベースから複製された2つの
データベースA及びBを含んでいる。各データベースA
及びBは、例えば独立した2台のコンピュータ・システ
ム10及び20の中に夫々保管されている。コンピュー
タ・システム10及び20は、同一ユーザによって所有
又は管理され、且つ、略同一のシステム時間を共有して
おり、データベースA及びBの各エントリは登録時間の
一意性の性質を持つものとする。
【0083】各コンピュータ・システム10及び20
は、各々のデータベースA及びBを管理するために、夫
々、日時テーブル11,12と、登録日時付与手段1
2,22と、更新日時付与手段13,23とを備えてい
る。
【0084】登録日時付与手段12,22は、各データ
ベースに新規エントリを登録するときに、その登録日時
を付与するための機能モジュールである。登録時間の一
意性により、各エントリが持つ登録日時は固有であり、
エントリの識別情報として扱われる。
【0085】また、更新日時付与手段13,23は、デ
ータベース中のあるエントリの内容を更新したときに、
そのエントリに更新日時を付与する機能モジュールであ
る。ここで付与される更新日時にもエントリとの一意性
が成立する。
【0086】登録日時付与手段12,22や更新日時付
与手段13,23で付与された登録日時や更新日時は、
夫々の日時テーブル11,12に保存・管理される。
【0087】データベース管理システム100は、上述
した2つのコンピュータ・システム10及び20に分散
された同一のデータベースA及びB間で同期をとるため
に、同期手段31を備えている。同期手段31は、コン
ピュータ・システム10,20のいずれか一方又は両方
に配設されていても、また、これらコンピュータ・シス
テム10,20とは独立した装置に設けられていてもよ
い。
【0088】同期手段31は、各々の日時テーブル1
1,21中の各エントリどうしを照合して、エントリ単
位でデータベース間の同期をとるようになっている。日
時テーブル11,21の各エントリを照合する際には、
エントリが持つ登録日時を識別情報(ID)として用い
る。あるいは、処理の便宜上、登録日時と等価的な識別
番号を各エントリに割り振ってもよい。
【0089】第1の実施例では、同期手段31は、ある
登録日時を持つエントリが一方のデータベースにしか存
在しない場合には、他方のデータベースにも登録する。
また、ある登録日時を持つエントリーが両方に存在する
場合には、更新日時の旧い方のエントリの内容を新しい
方で置きかえるようになっている。同期手段31による
同期処理については、後に詳解する。
【0090】図2には、日時テーブル11,21のデー
タ構造の一例を示している。該テーブルでは、データベ
ースの1つのエントリに対し1行が割り当てられてい
る。各行は、該当するエントリの識別番号(ID)、登
録日時、更新日時の各々を書き込むためのフィールドを
備えている。同図では、IDが1及び2の各エントリに
ついての登録日時と更新日時が保存されている。
【0091】登録日時付与手段12,22は、各々のデ
ータベースA,Bにエントリの新規登録が行われた直
後、日時テーブル11,21の最下段に行を追加して、
そのIDフィールドに登録したエントリに割り振られた
IDを書き込む。また、その時点におけるシステム時間
を獲得し、これを該当行の登録日時フィールドに所定の
フォーマットで書き込む。
【0092】また、更新日時付与手段13,23は、デ
ータベースA,B中のあるエントリの内容が更新された
とき、その時点におけるシステム時間を獲得し、これを
日時テーブル11,21中の対応行の更新日時フィール
ドに所定のフォーマットで書き込む。
【0093】但し、エントリのIDは必ずしも必要では
なく、データベース間でエントリの対応関係が明瞭であ
ればよい。例えば、IDの代わりに同一エントリへのポ
インタを用いてもよい。また、日時テーブル11,21
は、各エントリが持つ登録日時、更新日時が明瞭となる
ように管理されていれば充分であり、その形式は特に問
わない。例えば、エントリの中に登録日時や更新日時埋
め込まれていてもよいし、データベースとは別に管理さ
れていてもよい。
【0094】また、図2の各エントリにおける記述形式
は、登録、更新の各日時と対応可能な形式であれは充分
であり、フォーマットに格別の制限はない。例えば図2
では、登録日時と更新日時は、”YYYYMMDDHH
MMSS”形式で表記されている(但し、Y,M,D,
H,M,及びSは、年号、月、日、時、分、及び秒の各
値を書き込むために割り当てられた桁を意味する)。
【0095】次に、本実施例に係るデータベース管理シ
ステム100によるデータベースA及びB間の同期処理
の手順について詳解する。図3には、同期手段31によ
る同期処理の手順をフローチャートの形式で示してい
る。以下、このフローチャートの各ステップについて説
明する。
【0096】まず、データベースAに未チェックのエン
トリがあるか否かをチェックする(ステップS10
0)。未チェックのエントリがなければ、判断ブロック
S100の分岐Noに抜けて、当該処理全体を終了す
る。他方、未チェックのエントリ(eA)があるなら、
次ステップS102に進んで、エントリeAの登録日時
(t)を獲得する。ステップS100及びS102の処
理は、データベースAについての日時テーブル11を検
索することにより実現される。
【0097】次いで、ステップS104では、前ステッ
プS102で獲得したのと同じ登録日時tを持つエント
リがデータベースB中に存在するか否かをチェックす
る。該チェックは、データベースBについての日時テー
ブル21を検索することによって実現される。
【0098】同じ登録日時tを持つエントリがデータベ
ースB中に見つからなければ、判断ブロックS104の
分岐NoからステップS106に進み、チェック中のエ
ントリeAをデータベースBにも登録する。そして、デ
ータベースBについての日時テーブル21の最下段に1
行を追加して、登録したエントリeAについてのID、
登録日時、及び更新日時を、夫々、追加行中の対応する
フィールドに書き込む(ステップS108)。データベ
ースBへの追加登録が終わると、ステップS100に復
帰して、上述と同様の処理を繰り返す。
【0099】他方、データベースB中にも同じ登録日時
tを持つエントリー(eB)が存在するならば、判断ブ
ロックS104の分岐YesからステップS110に進
んで、データベースAにおけるエントリeAが持つ更新
日時と、データベースBにおける対応エントリeBが持
つ更新日時とを比較する。更新日時の比較は、各データ
ベースA,Bの日時テーブル11,21の対応行の更新
日時フィールドに格納された値を照合することによって
実現される。
【0100】エントリeA及びeBが持つ更新日時が等
しいならば、データベースAとBの間で同期が既にとれ
ていることになるので、判断ブロックS110の分岐Y
esに進んで、この処理全体を終了する。双方の更新日
時が等しくなければ、次ステップS112に進んで、各
更新日時の大小関係を比較する。
【0101】エントリeAの更新日時の方がエントリe
Bの更新日時より大きい(すなわち現在時刻に近い)場
合には、エントリeAの更新内容の方が新しいことを意
味する。この場合、判断ブロックS112の分岐Yes
からステップS114に進み、データベースBのエント
リeBをデータベースAのエントリeAで置き換える。
すなわち、エントリeAの内容をeBにコピーする。さ
らに、データベースBの日時テーブル21中の対応行
に、エントリeAが持つ更新時間を書き込む(ステップ
S116)。
【0102】逆に、エントリeBの更新日時の方がエン
トリeAの更新日時より大きい(すなわち現在時刻に近
い)場合には、エントリeBの更新内容の方が新しいこ
とを意味する。この場合、判断ブロックS112の分岐
NoからステップS118に進み、データベースAのエ
ントリeAをデータベースBのエントリeBで置き換え
る。すなわち、エントリeBの内容をeAにコピーす
る。さらに、データベースAの日時テーブル11中の対
応行に、エントリeBが持つ更新時間を書き込む(ステ
ップS120)。
【0103】ステップS116又はS120によるエン
トリの置換処理が終了すると、この処理全体を終了す
る。
【0104】本実施例に係る同期手段31による上述の
処理手順は、略言すれば、データベースAに存在してデ
ータベースBに存在しないエントリをデータベースBに
も追加登録する、という一方的なものである。したがっ
て、データベースAとBとを入れ替えて、図3で示した
ものと同じ処理を繰り返す必要がある。
【0105】なお、本実施例で言うコンピュータ・シス
テム10及び20は、「ワークステーション」又は「パ
ーソナル・コンピュータ」と呼ばれる汎用コンピュータ
・システムでよい。この種の汎用コンピュータ・システ
ムは、各種演算処理を行うためのプロセッサとメイン・
メモリの他、ユーザ・インターフェースとしてのキーボ
ード/マウス及びディスプレイ、外部記憶装置としての
ハード・ディスク・ドライブ(HDD)、CD−ROM
ドライブなどを備えている。
【0106】ハード・ディスク上にはデータベースを始
めとする各種のデータ・ファイルを保存することができ
る。また、コンピュータ上で実行可能な各種のプログラ
ムは、CDなどの記憶媒体上に有形的に格納された形態
でコンピュータに供給され、且つハード・ディスク上に
プログラムをインストールすることができる。
【0107】但し、汎用コンピュータのハードウェア構
造自体は本発明の要旨とは直接関連しないので、本明細
書ではこれ以上説明しない。
【0108】《第2の実施例》図4には、本発明の第2
の実施例に係るデータベース管理システム100−2の
構成を模式的に示している。以下、各部について説明す
る。
【0109】同図に示すように、データベース管理シス
テム100−2は、同じデータベースから複製された2
つのデータベースA及びBを含んでいる。各データベー
スA及びBは、例えば独立した2台のコンピュータ・シ
ステム10及び20の中に夫々保管されている。コンピ
ュータ・システム10及び20は、上記第1の実施例と
同様、汎用タイプでよい。各コンピュータ・システム1
0及び20は、同一ユーザによって所有又は管理され、
且つ、略同一のシステム時間を共有しており、データベ
ースA及びBの各エントリは登録時間の一意性の性質を
持つものとする。
【0110】各コンピュータ・システム10及び20
は、各々のデータベースA及びBを管理するために、夫
々、日時テーブル11,12と、登録日時付与手段1
2,22と、更新日時付与手段13,23とを備えてい
る。これら各機能モジュールは、上記第1の実施例(す
なわち図1)の対応ブロックと略同一の構成及び機能を
有するので、ここではこれ以上説明しない。
【0111】また、データベース管理システム100
は、データベースA及びB間で同期をとるために同期手
段31を備えている。同期手段31は、コンピュータ・
システム10,20のいずれか一方又は両方に配設され
ていても、また、これらコンピュータ・システム10,
20とは独立した装置に設けられていてもよい。同期手
段31による同期処理については後述する。
【0112】また、データベース管理システム100
は、各データベースA及びBが持つエントリの最大共通
登録日時を検出するための最大共通登録日時検出手段3
2を備えている。
【0113】複製されたデータベースA及びBの間で
は、登録時間の一意性により、同じエントリは同じ登録
時間を共有する。「共通登録時間」とは、データベース
A及びBの双方に存在する登録時間のことを指す。ま
た、「最大共通登録時間」とは、データベースA及びB
が持つ共通登録時間のうち最大、すなわち最も現在時刻
に近いものを指す。登録時間及び最大共通登録時間につ
いて、以下の性質が成り立つ。すなわち、 (1)登録時間は登録順に付与される。 (2)異なる登録において同じ登録時間が重複して与え
られることはない。 (3)複数のデータベース間で同じ登録時間を持つエン
トリーが重複して存在するのは、以前に複製又は同期が
行われたためである。 (4)データベースBにのみ存在し、データベースAに
は存在しないエントリーがあるとする。当該エントリの
登録時間がデータベースA及びB間の最大共通登録時間
より小さい(すなわち旧い)場合には、データベースA
中の対応するエントリは、以前にデータベースBを複製
し又は同期をとった後に、 データベースAから削除さ
れたものである。
【0114】最大共通登録日時検出手段32は、各々の
日時テーブル11,21をスキャンすることによって、
最大共通登録日時を検出することができる。検出された
最大共通登録日時は、同期手段31による同期処理に利
用されるが、この点は後述する。
【0115】なお、最大共通登録日時検出手段32は、
コンピュータ・システム10,20のいずれか一方又は
両方に配設されていても、また、これらコンピュータ・
システム10,20とは独立した装置に設けられていて
もよい。
【0116】次に、本実施例の同期手段31及び最大共
通登録日時検出手段32の協働的動作による同期処理の
手順について説明する。
【0117】図5には、最大共通登録日時検出手段32
が実行する動作手順をフローチャートの形式で示してい
る。以下、このフローチャートの各ステップについて説
明する。
【0118】まず、変数maxを初期値ゼロに設定する
(ステップS200)。次いで、ステップS202で
は、テーブルAに未チェックのエントリ(eA)がある
か否かをチェックする。未チェックのエントリが残って
いないなら、判断ブロックS202の分岐Noに進ん
で、この処理全体を終了する。
【0119】未チェックのエントリeAがあるならば、
eAの登録日時(t)を獲得して(ステップS20
4)、tと同じ登録日時のエントリがデータベースBに
あるか否かをチェックする(ステップS206)。登録
日時の獲得や同じ登録日時エントリの検出は、各データ
ベースA,Bについての日時テーブル11,21を参照
することによって実現される。
【0120】同じ登録日時のエントリがデータベースB
に存在しないならば、判断ブロックS206の分岐No
からステップS202に復帰して、データベースAの次
の未チェック・エントリをチェックする(上述)。
【0121】他方、同じ登録日時のエントリがデータベ
ースBにあるならば、変数maxと現在チェック中の登
録日時tの大小関係を比較する(ステップS208)。
tの方が大きい(すなわち新しい)なら、maxにtを
代入する(ステップS210)。
【0122】図5に示した処理手順全体が終了したと
き、変数maxに最大共通登録日時が格納されているこ
とを理解されたい。
【0123】次に、同期手段31による同期処理の手順
について説明する。図6には、同期手段31による同期
処理の手順をフローチャートの形式で示している。以
下、このフローチャートの各ステップについて説明す
る。
【0124】まず、データベースA及びBについての最
大共通登録日時(max)を獲得する(ステップS30
0)。獲得処理は、上述したように、最大共通登録日時
検出手段32によって既に達成されているものとする。
【0125】次いで、データベースAに未チェックのエ
ントリがあるか否かをチェックする(ステップS30
2)。未チェックのエントリがなければ、判断ブロック
S302の分岐Noに抜けて、当該処理全体を終了す
る。他方、未チェックのエントリ(eA)があるなら、
次ステップS304に進んで、エントリeAの登録日時
(t)を獲得する。ステップS302及びS304の処
理は、データベースAについての日時テーブル11を検
索することにより実現される。
【0126】次いで、ステップS306では、前ステッ
プS304で獲得したのと同じ登録日時tを持つエント
リがデータベースB中に存在するか否かをチェックす
る。該チェックは、データベースBについての日時テー
ブル21を検索することによって実現される。
【0127】同じ登録日時tを持つエントリがデータベ
ースB中に見つからなければ、判断ブロックS306の
分岐Noから処理プロセスに進み、エントリの削除を
考慮した同期処理を実行する。処理プロセスを終了す
ると、ステップS302に復帰して、上述と同様の処理
を繰り返す。処理プロセスの詳細については後述す
る。
【0128】他方、データベースB中にも同じ登録日時
tを持つエントリー(eB)が存在するならば、判断ブ
ロックS306の分岐YesからステップS308に進
んで、データベースAにおけるエントリeAが持つ更新
日時と、データベースBにおける対応エントリeBが持
つ更新日時とを比較する。更新日時の比較は、各データ
ベースA,Bの日時テーブル11,21の対応行の更新
日時フィールドに格納された値を照合することによって
実現される。
【0129】エントリeA及びeBが持つ更新日時が等
しいならば、データベースAとBの間で同期が既にとれ
ていることになるので、判断ブロックS308の分岐Y
esに進んで、この処理全体を終了する。双方の更新日
時が等しくなければ、次ステップS310に進んで、大
小関係を比較する。
【0130】エントリeAの更新日時の方がエントリe
Bの更新日時より大きい(すなわち現在時刻に近い)場
合には、エントリeAの更新内容の方が新しいことを意
味する。この場合、判断ブロックS310の分岐Yes
からステップS312に進み、データベースBのエント
リeBをデータベースAのエントリeAで置き換える。
すなわち、エントリeAの内容をeBにコピーする。さ
らに、データベースBの日時テーブル21中の対応行
に、エントリeAが持つ更新時間を書き込む(ステップ
S314)。
【0131】逆に、エントリeBの更新日時の方がエン
トリeAの更新日時より大きい(すなわち現在時刻に近
い)場合には、エントリeBの更新内容の方が新しいこ
とを意味する。この場合、判断ブロックS314の分岐
NoからステップS316に進み、データベースAのエ
ントリeAをデータベースBのエントリeBで置き換え
る。すなわち、エントリeBの内容をeAにコピーす
る。さらに、データベースAの日時テーブル11中の対
応行に、エントリeBが持つ更新時間を書き込む(ステ
ップS318)。
【0132】ステップS314又はS316によるエン
トリの置換処理が終了すると、この処理全体を終了す
る。
【0133】本実施例に係る同期手段31による上述の
処理手順は、略言すれば、データベースAに存在してデ
ータベースBに存在しないエントリをデータベースBに
追加登録する、という一方的なものである。したがっ
て、データベースAとBとを入れ替えて、図6で示した
ものと同じ処理を繰り返す必要がある。
【0134】図7には、エントリの削除を考慮した同期
処理を行う処理プロセスの詳細な手順をフローチャー
トの形式で示している。以下、このフローチャートの各
ステップについて説明する。
【0135】まず、データベースAにおいて現在処理中
のエントリeAが持つ登録日時tが最大共通登録日時m
axよりも小さいか否かをチェックする(ステップS4
00)。
【0136】エントリeAの登録日時tがmaxより小
さい(すなわち旧い)場合には、当該エントリはデータ
ベースBにおいて既に削除されていることを意味する。
したがって、判断ブロックS400の分岐Yesからス
テップS402に進んで、エントリeAをデータベース
Aから削除する。さらに、次ステップS404に進ん
で。データベースAの日時テーブル11からもエントリ
eAに該当する行も削除する。
【0137】逆に、エントリeAの登録日時tがmax
以上の場合には、当該エントリはデータベースAにおい
て新規登録されたものであることを意味する。したがっ
て、判断ブロックS400の分岐NoからステップS4
06に進んで、エントリeAをデータベースBにも追加
登録する。さらに、次ステップS408に進んで。デー
タベースBの日時テーブル21にもエントリeAに該当
する行を挿入し、そのIDや登録日時、更新日時を書き
込む。
【0138】《第3の実施例》図8には、本発明の第3
の実施例に係るデータベース管理システム100−3の
構成を模式的に示している。以下、各部について説明す
る。
【0139】同図に示すように、データベース管理シス
テム100−3は、同じデータベースから複製された2
つのデータベースA及びBを含んでいる。各データベー
スA及びBは、例えば独立した2台のコンピュータ・シ
ステム10及び20の中に夫々保管されている。コンピ
ュータ・システム10及び20は、上記第1の実施例と
同様、汎用タイプでよい。各コンピュータ・システム1
0及び20は、同一ユーザによって所有又は管理され、
且つ、略同一のシステム時間を共有しており、データベ
ースA及びBの各エントリは登録時間の一意性の性質を
持つものとする。
【0140】各コンピュータ・システム10及び20
は、各々のデータベースA及びBを管理するために、夫
々、日時テーブル11,12と、登録日時付与手段1
2,22と、更新日時付与手段13,23とを備えてい
る。これら各機能モジュールは、上記第1の実施例(す
なわち図1)の対応ブロックと略同一の構成及び機能を
有するので、ここではこれ以上説明しない。
【0141】また、データベース管理システム100
は、データベースA及びB間で同期をとるために同期手
段31を備えている。同期手段31は、コンピュータ・
システム10,20のいずれか一方又は両方に配設され
ていても、また、これらコンピュータ・システム10,
20とは独立した装置に設けられていてもよい。
【0142】また、データベース管理システム100
は、各データベースA及びB間の同期をとったときの日
時を「同期ポジション」として格納する同期ポジション
格納手段33を備えている。
【0143】一旦削除したエントリが同期処理により復
活するという不具合を解除するために、上記第2の実施
例では「最大共通登録日時」を用いた。しかしながら、
図15を参照しながら既に説明したように、最大共通登
録日時は、必ずしも以前に複製又は同期した時点での最
大の登録日時を示すものではない。そこで、本実施例で
は「同期ポジション」を採用した次第である。
【0144】同期ポジションに関して、次のような性質
がある。すなわち、同期後に、同期ポジションよりも小
さな(すなわち同期ポジションよりも旧い)登録時間を
持つエントリが新規に登録されることはない。言い換え
れば、同期後に新規に登録されたエントリの登録時間は
全て同期ポジションよりも大きくなるはずである。
【0145】この性質に基づき、以下の定理を導出する
ことができる。すなわち、「データベースA及びBに対
して同期処理を行なって保存される同期ポジションを”
pos”とする。データベースAには存在せず、データ
ベースBにだけ存在する登録時間を持つエントリがあっ
たする。このとき、当該エントリの登録時間がposよ
りも小さい(すなわち旧い)ならは、そのエントリは以
前の同期後にデータベースAから削除されたものである
ことが判明する。逆に、当該エントリの登録時間がpo
sよりも大きい(すなわち新しい)なら、そのエントリ
ーは以前の同期後にデータベースBにおいて新規に登録
されたものである。」
【0146】同期ポジション格納手段33は、データベ
ースA及びBの間で同期をとったときの更新日時を、各
々の日時テーブル11,21にも書き込む。このため、
本実施例に係る日時テーブルは、データベース中の各エ
ントリについてのIDや登録日時等を保存管理するため
の行の他に、同期ポジションを格納するための行を設け
ている。
【0147】図9には、本実施例において利用可能な日
時テーブルの構造を例示している。同図に示すテーブル
では、同期ポジションを格納するための行が最終行の下
に追加して設けられている。当該行のIDフィールドに
は、同期ポジションであることを示すマーク”*”が記
されている。但し、同期ポジションの格納形態はこれに
限定されない。日時テーブル以外の場所、例えばデータ
ベース中に、同期ポジションを格納してもよい。
【0148】なお、同期ポジション格納手段33は、コ
ンピュータ・システム10,20のいずれか一方又は両
方に配設されていても、また、これらコンピュータ・シ
ステム10,20とは独立した装置に設けられていても
よい。
【0149】本実施例による同期処理の手順は、図6及
び図7を用いて説明した第2の実施例において、最大共
通登録日時を同期ポジションに置き換えることによっ
て、同様に動作する。したがって、本明細書中ではこれ
以上説明しない。
【0150】《第4の実施例》本発明の第4の実施例に
係るデータベース管理システムの構成は、上記第3の実
施例に係るデータベース管理システム100−3(図8
を参照のこと)のそれと略同一なので、ここではこれ以
上説明しない。
【0151】第4の実施例は、同期をとるべきデータベ
ースが3つあることを想定したものである。但し、同期
手段31は、2者のデータベース間でしか同期をとるこ
とができず、3つのデータベースについて同時に同期を
とることはしない。このため、各データベース毎に同期
ポジションを保存・管理することとした。
【0152】各データベースがローカルに同期ポジショ
ンを保持する場合、登録時間の一意性の性質により、以
下の定理2を導出することができる。すなわち、「デー
タベースA,B,及びCにおいて、まずAとBの間で同
期をとることを考える。データベースAの同期ポジショ
ンをpAとし、データベースBの同期ポジションをpB
とする。ここで、minをpAとpBのうち小さい(す
なわち旧い)方とする。このとき、entry ∈
A,及びentry ∈ Bなるエントリentryに
対して、以下のことが成立する。すなわち、 (1)entryの登録時間がmin以下なら、ent
ryはデータベースBから削除された。 (2)entryの登録時間がminより大きいなら、
entryはデータベースAに新規登録された。」
【0153】本実施例による同期処理の手順は、図6及
び図7を用いて説明した第2の実施例における同期処理
と同様の手順に従う。但し、データベースA及びBの間
で同期をとる場合には、各データベースが持つ同期ポジ
ションのうち小さい(すなわち旧い)方を、最大共通登
録日時と置き換える必要がある。この同期処理につい
て、本明細書中ではこれ以上説明しない。
【0154】《第5の実施例》本発明の第5の実施例に
係るデータベース管理システムの構成は、上記第3の実
施例に係るデータベース管理システム100−3(図8
を参照のこと)のそれと略同一なので、ここではこれ以
上説明しない。
【0155】第5の実施例は、同期をとるべきデータベ
ースが4つ以上あることを想定したものである。但し、
同期手段31は、2者のデータベース間でしか同期をと
ることができず、3者以上のデータベースについて同時
に同期をとることはしない。また、各データベース毎に
同期ポジションを保存・管理することとした。
【0156】さらに、同期はある特定の1つのデータベ
ースと他のデータベースの1つとの2者間でのみ行われ
る、という付帯条件を課した。この特定のデータベース
を「センタ」、他のデータベースを「ローカル」と呼ぶ
ことにする(図19を参照のこと。この例では、データ
ベースAがセンタとして位置付けられ、残りの各データ
ベースB,C,D,及びEがローカルとして位置付けら
れている)。
【0157】センタと各ローカルの2者間で逐次的に同
期をとる場合、同期ポジションに関して次の性質があ
る。センタ・データベースAとローカル・データベース
Bの間で同期をとることを考える。データベースAの同
期ポジションが持つpAとし、データベースBが持つ同
期ポジションをpBとする。このとき、pB≦pAが成
立し、しかも、同期ポジションpBが記す時刻にデータ
ベースBが同期をとった相手は必ずデータベースAであ
る。
【0158】本実施例による同期処理の手順は、図6及
び図7を用いて説明した第2の実施例における同期処理
と同様の手順に従う。但し、データベースA及びBの間
で同期をとる場合には、最大共通登録日時の代わりにロ
ーカル・データベースの同期ポジションを獲得して使用
する。この同期処理について、本明細書中ではこれ以上
説明しない。
【0159】《第6の実施例》本発明の第6の実施例に
係るデータベース管理システムの構成は、上記第3の実
施例に係るデータベース管理システム100−3(図8
を参照のこと)のそれと略同一なので、ここではこれ以
上説明しない。
【0160】第6の実施例は、エントリの登録日時の代
わりに、登録日時と一意的な識別情報(ID)を用いた
点で、上記第5の実施例とは相違する。
【0161】次に、同期手段31による同期処理の手順
について説明する。図10には、センタとしてのデータ
ベースAとローカルとしてのデータベースBの間で行な
う同期処理の手順をフローチャートの形式で示してい
る。以下、このフローチャートの各ステップについて説
明する。
【0162】まず、データベースBについてのローカル
に保存されている同期ポジション(p)を獲得する(ス
テップS500)。
【0163】次いで、データベースAに未チェックのエ
ントリがあるか否かをチェックする(ステップS50
2)。未チェックのエントリがなければ、判断ブロック
S502の分岐Noに抜けて、当該処理全体を終了す
る。他方、未チェックのエントリ(eA)があるなら、
次ステップS504に進んで、エントリeAの登録日時
(t)とID(id)を獲得する。ステップS502及
びS504の処理は、データベースAについての日時テ
ーブル11を検索することにより実現される。
【0164】次いで、ステップS506では、前ステッ
プS504で獲得したのと同じ登録日時がtで且つID
がidであるエントリがデータベースB中に存在するか
否かをチェックする。該チェックは、データベースBに
ついての日時テーブル21を検索することによって実現
される。
【0165】同じ登録日時tを持つエントリがデータベ
ースB中に見つからなければ、判断ブロックS506の
分岐Noから、IDを用いて同期をとる処理プロセス
に進み、エントリの削除を考慮した同期処理を実行す
る。処理プロセスを終了すると、ステップS502に
復帰して、上述と同様の処理を繰り返す。処理プロセス
の詳細については後述する。
【0166】他方、データベースB中にも同じ登録日時
tを持つエントリー(eB)が存在するならば、判断ブ
ロックS506の分岐YesからステップS508に進
んで、データベースAにおけるエントリeAが持つ更新
日時と、データベースBにおける対応エントリeBが持
つ更新日時とを比較する。更新日時の比較は、各データ
ベースA,Bの日時テーブル11,21の対応行の更新
日時フィールドに格納された値を照合することによって
実現される。
【0167】エントリeA及びeBが持つ更新日時が等
しいならば、データベースAとBの間で同期が既にとれ
ていることになるので、判断ブロックS508の分岐Y
esに進んで、この処理全体を終了する。双方の更新日
時が等しくなければ、次ステップS510に進んで、大
小関係を比較する。
【0168】エントリeAの更新日時の方がエントリe
Bの更新日時より大きい(すなわち現在時刻に近い)場
合には、エントリeAの更新内容の方が新しいことを意
味する。この場合、判断ブロックS510の分岐Yes
からステップS512に進み、データベースBのエント
リeBをデータベースAのエントリeAで置き換える。
すなわち、エントリeAの内容をeBにコピーする。さ
らに、データベースBの日時テーブル21中の対応行
に、エントリeAが持つ更新時間を書き込む(ステップ
S514)。
【0169】逆に、エントリeBの更新日時の方がエン
トリeAの更新日時より大きい(すなわち現在時刻に近
い)場合には、エントリeBの更新内容の方が新しいこ
とを意味する。この場合、判断ブロックS514の分岐
NoからステップS516に進み、データベースAのエ
ントリeAをデータベースBのエントリeBで置き換え
る。すなわち、エントリeBの内容をeAにコピーす
る。さらに、データベースAの日時テーブル11中の対
応行に、エントリeBが持つ更新時間を書き込む(ステ
ップS518)。
【0170】ステップS514又はS516によるエン
トリの置換処理が終了すると、この処理全体を終了す
る。
【0171】本実施例に係る同期手段31による上述の
処理手順は、略言すれば、データベースAに存在してデ
ータベースBに存在しないエントリをデータベースBに
追加登録する、という一方的なものである。したがっ
て、データベースAとBとを入れ替えて、図10で示し
たものと同じ処理を繰り返す必要がある。
【0172】図11には、エントリの削除を考慮した同
期処理を行う処理プロセスの詳細な手順をフローチャ
ートの形式で示している。以下、このフローチャートの
各ステップについて説明する。
【0173】まず、データベースAにおいて現在処理中
のエントリeAが持つ登録日時tがローカルな同期ポジ
ションpよりも小さい(すなわち旧い)か否かをチェッ
クする(ステップS600)。
【0174】エントリeAの登録日時tがpより小さい
(すなわち旧い)場合には、当該エントリはデータベー
スBにおいて既に削除されていることを意味する。この
場合、判断ブロックS600の分岐Yesからステップ
S602に進んで、エントリeAをデータベースAから
削除する。さらに、次ステップS604に進んで。デー
タベースAの日時テーブル11からもエントリeAに該
当する行も削除する。
【0175】逆に、エントリeAの登録日時tがp以上
の場合には、当該エントリはデータベースAにおいて新
規登録されたものであることを意味する。この場合、判
断ブロックS600の分岐NoからステップS606に
進んで、エントリeAをデータベースBにも追加登録す
る。さらに、次ステップS408に進んで。データベー
スBの日時テーブル21にもエントリeAに該当する行
を挿入し、そのIDや登録日時、更新日時を書き込む。
【0176】上記したように、本発明の第6の実施例で
は、エントリの同一性判定のために、エントリの登録日
時だけでなく、そのIDも利用している。これは、登録
日時付与手段12,22が刻む時間単位が比較的大きい
ために、登録日時だけでは一意性が保証できない可能性
を考慮したためである。この実施例では、登録日時付与
手段12,22において扱う日時の単位を細かくする必
要がない。
【0177】《第7の実施例》本発明の第7の実施例に
係るデータベース管理システムでは、同期手段31は、
同一登録日時のエントリが両方のデータベースに存在す
る場合は、更新日時の旧いエントリを更新日時の新しい
エントリで置き換えるのではなく、両エントリのマージ
を行なうようにした。
【0178】本発明の第7の実施例に係るデータベース
管理システムの構成は、上記第3の実施例に係るデータ
ベース管理システム100−3(図8を参照のこと)の
それと略同一なので、ここではこれ以上説明しない。
【0179】同期処理において、旧いエントリを新しい
エントリで置き換えるときには、エントリの行単位、あ
るいは属性単位でエントリのマージを行なう。エントリ
どうしをマージする手法に関しては既存技術を適用すれ
ばよいので、本明細書ではこれ以上説明しない。また、
万一マージに失敗したならば、その履歴をエントリの中
に起こしておいてもよいし、ユーザに処置を委ねてもよ
い。
【0180】《第8の実施例》図12には、本発明の第
8の実施例に係るデータベース管理システム100−4
の構成を模式的に示している。
【0181】同図に示すように、データベース管理シス
テム100−4は、同じデータベースから複製された2
つのデータベースA及びBを含んでいる。各データベー
スA及びBは、例えば独立した2台のコンピュータ・シ
ステム10及び20の中に夫々保管されている。コンピ
ュータ・システム10及び20は、上記第1の実施例と
同様、汎用タイプでよい。各コンピュータ・システム1
0及び20は、同一ユーザによって所有又は管理され、
且つ、略同一のシステム時間を共有しており、データベ
ースA及びBの各エントリは登録時間の一意性の性質を
持つものとすると(同上)。
【0182】各コンピュータ・システム10及び20
は、各々のデータベースA及びBを管理するために、夫
々、日時テーブル11,12と、登録日時付与手段1
2,22と、更新日時付与手段13,23とを備えてい
る。これら各機能モジュールは、上記第1の実施例(す
なわち図1)の対応ブロックと略同一の構成及び機能を
有するので、ここではこれ以上説明しない。以下、各部
について説明する。
【0183】また、データベース管理システム100
は、データベースA及びB間で同期をとるために同期手
段31を備えている。同期手段31は、コンピュータ・
システム10,20のいずれか一方又は両方に配設され
ていても、また、これらコンピュータ・システム10,
20とは独立した装置に設けられていてもよい。
【0184】また、データベース管理システム100
は、データ・ファイル更新日時比較手段35を備えてい
る。データ・ファイル更新日時比較手段35は、同期手
段31による同期操作の際に、双方のデータベースA及
びBの更新日時を比較して、両者が同じならば既に同期
処理済みと判断して、同期処理を中止せしめるようにな
っている。
【0185】データ・ファイル更新日時比較手段35
は、コンピュータ・システム10,20のいずれか一方
又は両方に配設されていても、また、これらコンピュー
タ・システム10,20とは独立した装置に設けられて
いてもよい。
【0186】本実施例による同期処理の手順は、各デー
タベース・ファイルの更新日時を比較し、両者が同一な
らば同期処理を中断するという処理ステップが、一連の
処理フローの最初に挿入される以外は、上記第5の実施
例と略同一である。よって、こではこれ以上説明しな
い。
【0187】データ・ファイルの更新日時は、オペレー
ティング・システムによって与えられる場合がある。こ
のような場合、2つの対応するファイル間で更新日時が
同一ということは、両者とも以前に同期をとってから全
く編集を行なっていないという事実を示すことになる。
何故ならば、2つのファイルに全く同時に編集すなわち
アクセスできないことが本発明の前提条件だからであ
る。よって、上述したように、同期処理を中止する次第
である。
【0188】なお、上記した本発明の各実施例では、異
なるコンピュータ上において、同一のデータベースに対
する登録、更新、削除などが同時刻に行なわれないこと
を前提とする(前述)。但し、データベースへの登録操
作が頻繁になされ、同時刻に登録されたエントリが生じ
る可能性がある場合には、登録時間の粒度すなわち計測
の単位を小さくすることによって、登録時刻がエントリ
の識別情報として機能するという性質を担保できよう。
【0189】また、データベースの整合性の問題自体
は、個人ユーザ向けのデータベースに限定されない。例
えば、LAN(Local Area Networ
k)などのネットワーク空間において、同じデータベー
スを複数のクライアント・ユーザが共有するような場合
には、データベースを一元管理できるので、単一のユー
ザが単一のコンピュータ上でデータベースを管理するの
と同様に、整合性の問題はない。これに対し、LANど
うしを専用線等で接続したWAN(Wide Area
Network)などにおいて、各LAN毎の同じデ
ータベースを複製して分散管理している場合には、ある
タイミングで各データベースの同期をとる必要がある。
(例えば企業において、東京事業場と大阪事業場の各々
にLANが敷設されており、同じ社内データベースを保
管するデータベース・サーバを各LAN毎に設置した場
合などである。)このように、複数ユーザによってデー
タベースを共有する場合であっても、同一のデータベー
スに対する登録、更新、削除などが同一時刻に行なわれ
ないという登録日時の一意性が成立すれば、本発明を同
様に適用できることは明瞭であろう。
【0190】[追補]以上、特定の実施例を参照しなが
ら、本発明について詳解してきた。しかしながら、本発
明の要旨を逸脱しない範囲で当業者が該実施例の修正や
代用を成し得ることは自明である。すなわち、例示とい
う形態で本発明を開示してきたのであり、限定的に解釈
されるべきではない。本発明の要旨を判断するために
は、冒頭に記載した特許請求の範囲の欄を参酌すべきで
ある。
【0191】
【発明の効果】以上詳記したように、本発明によれば、
複数のコンピュータに複製されたデータベースを管理す
ることができる、優れたデータベース管理方式を提供す
ることができる。
【0192】また、本発明によれば、各コンピュータ上
のデータベースどうしの整合性を好適に保つ(すなわち
同期をとる)ことができる、優れたデータベース管理方
式を提供することができる。
【0193】また、本発明によれば、とりわけ、個人が
利用する、ネットワーク接続されない複数のコンピュー
タ上に複製されたデータベース間で好適に同期をとるこ
とができる、優れたデータベース管理方式を提供するこ
とができる。
【0194】本発明に係るデータベース管理方式によれ
ば、ロックの取得やネットワークへの接続など煩雑な操
作なしに、複数のデータベース間の整合性を維持するこ
とができる。ユーザがあるデータベース上で登録したエ
ントリは他のデータベースにも登録され、あるデータベ
ース上から削除したエントリは他のデータベースからも
削除され、エントリの更新に関しては新しい更新内容が
優先されるように、データベース間の同期がとられる。
【図面の簡単な説明】
【図1】 本発明の第1の実施例に係るデータベース管
理システム100の構成を模式的に示した図である。
【図2】 データベースA及びB中の各エントリについ
ての登録日時、更新日時を保存・管理するための日時テ
ーブル11,12の構造を模式的に示した図である。
【図3】 本発明の第1の実施例によるデータベース間
の同期処理の手順を示したフローチャートである。
【図4】 本発明の第2の実施例に係るデータベース管
理システム100−2の構成を模式的に示した図であ
る。
【図5】 最大共通登録日時検出手段32が実行する動
作手順を示したフローチャートの形式である。
【図6】 本発明の第2の実施例によるデータベース間
の同期処理の手順を示したフローチャートである。
【図7】 エントリの削除を考慮した同期処理を行う処
理プロセスの詳細な手順をフローチャートである。
【図8】 本発明の第3の実施例に係るデータベース管
理システム100−3の構成を模式的に示した図であ
る。
【図9】 本発明の第3の実施例において使用される日
時テーブルの構造を例示した図である。
【図10】 本発明の第6の実施例によるデータベース
間の同期処理の手順を示したフローチャートである。
【図11】 本発明の第6の実施例において、エントリ
の削除を考慮した同期処理を行う処理プロセスの詳細
な手順をフローチャートである。
【図12】 本発明の第8の実施例に係るデータベース
管理システム100−4の構成を模式的に示した図であ
る。
【図13】 複製されたデータベースA及びBの各々に
おいて、エントリの更新及び新規エントリの登録処理を
行なった様子を模式的に示した図である。
【図14】 本発明の第2の側面に係るデータベース管
理方式に従って、図13に示したデータベースA及びB
の同期をとった様子を模式的に示した図である。
【図15】 複製されたデータベースA及びBの各々に
おいて、エントリの更新、新規エントリの登録、及びエ
ントリの削除処理を行なった様子を模式的に示した図で
ある。
【図16】 本発明の第2の側面に係るデータベース管
理方式に従って、図15に示したデータベースA及びB
の同期をとった様子を模式的に示した図である。
【図17】 複製されたデータベースA及びBの各々に
おいて、エントリの更新、新規エントリの登録、及びエ
ントリの削除処理を行なった様子を模式的に示した図で
ある。
【図18】 本発明の第2の側面に係るデータベース管
理方式に従って、図17に示したデータベースA及びB
の同期をとった様子を模式的に示した図である。
【図19】 本発明の第6の側面に係るデータベース管
理方式による同期処理の仕組みを模式的に示した図であ
る。
【符号の説明】
10,20…コンピュータ・システム、11,21…日
時テーブル、12,22…登録日時付与手段、13,2
3…更新日時付与手段、31…同期手段、32…最大共
通日時検出手段、33…同期ポジション格納手段、34
…同期ポジション獲得手段、35…データ・ファイル更
新日時比較手段、100…データベース管理システム。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数のコンピュータに複製されたデータベ
    ースを管理するデータベース管理方式であって、データ
    ベースに新しいエントリを登録した時に該エントリに登
    録日時を付与する登録日時付与手段と、データベース中
    のエントリを更新した時に該エントリに更新日時を付与
    する更新日時付与手段と、各コンピュータ間でデータベ
    ースの同期をとる同期手段とを備え、前記同期手段は、
    エントリの登録日時をエントリの識別情報として扱うこ
    とを特徴とするデータベース管理方式。
  2. 【請求項2】複数のコンピュータに複製されたデータベ
    ースを管理するデータベース管理方式であって、データ
    ベースに新しいエントリを登録した時に該エントリに登
    録日時を付与する登録日時付与手段と、データベース中
    のエントリを更新した時に該エントリに更新日時を付与
    する更新日時付与手段と、各データベース間の同期をと
    る同期手段とを備え、前記同期手段は、(a)同一登録
    日時のエントリが一部のコンピュータ上のデータベース
    にしか存在しない場合、該エントリを他のコンピュータ
    上のデータベースに登録し、(b)同一登録日時のエン
    トリが複数のコンピュータ上のデータベースに存在する
    場合は、更新日時の旧いエントリを更新日時の新しいエ
    ントリで置き換える、ことを特徴とするデータベース管
    理方式。
  3. 【請求項3】異なるコンピュータに複製された2つのデ
    ータベースを管理するデータベース管理方式であって、
    データベースに新しいエントリを登録した時に該エント
    リに登録日時を付与する登録日時付与手段と、データベ
    ース中のエントリを更新した時に該エントリに更新日時
    を付与する更新日時付与手段と、2つのデータベースに
    共通する登録日時のうち最大(すなわち現在時刻に最も
    近い)ものを検出する最大共通登録日時検出手段と、各
    データベース間の同期をとる同期手段とを備え、前記同
    期手段は、(a)同一登録日時のエントリが一方のデー
    タベースにしか存在せず、且つ、該登録日時が最大共通
    登録日時よりも小さい場合、該エントリをデータベース
    から削除し、(b)同一登録日時のエントリが一方のデ
    ータベースにしか存在せず、且つ、該登録日時が最大共
    通登録日時よりも大きい場合、該エントリを他方のデー
    タベースにも登録し、(c)同一登録日時のエントリが
    両方のデータベースに存在する場合は、更新日時の旧い
    エントリを更新日時の新しいエントリで置き換える、こ
    とを特徴とするデータベース管理方式。
  4. 【請求項4】異なるコンピュータに複製された2つのデ
    ータベースを管理するデータベース管理方式であって、
    データベースに新しいエントリを登録した時に該エント
    リに登録日時を付与する登録日時付与手段と、データベ
    ース中のエントリを更新した時に該エントリに更新日時
    を付与する更新日時付与手段と、各データベース間の同
    期をとる同期手段と、前記同期手段により同期をとった
    日時を同期ポジションとして格納する同期ポジション格
    納手段を備え、前記同期手段は、(a)同期をとるとき
    に前記同期ポジション格納手段から同期ポジションを取
    り出し、(b)同一登録日時のエントリが一方のデータ
    ベースにしか存在せず、且つ、該登録日時が同期ポジシ
    ョンよりも小さい(すなわち旧い)場合、該エントリを
    データベースから削除し、(c)同一登録日時のエント
    リが一方のデータベースにしか存在せず、且つ、該登録
    日時が同期ポジションよりも大きい(すなわち新しい)
    場合、該エントリを他方のデータベースにも登録し、
    (d)同一登録日時のエントリが両方のデータベースに
    存在する場合は、更新日時の旧いエントリを更新日時の
    新しいエントリで置き換える、ことを特徴とするデータ
    ベース管理方式。
  5. 【請求項5】異なるコンピュータに複製された3つ以下
    のデータベースを管理するデータベース管理方式であっ
    て、データベースに新しいエントリを登録した時に該エ
    ントリに登録日時を付与する登録日時付与手段と、デー
    タベース中のエントリを更新した時に該エントリに更新
    日時を付与する更新日時付与手段と、2つのデータベー
    ス間で同期をとる同期手段と、前記同期手段により同期
    をとった日時を同期ポジションとして同期をとった各デ
    ータベースに格納する同期ポジション格納手段を備え、
    前記同期手段は、(a)同期をとるときに両データベー
    スに格納された同期ポジションを取り出し、小さい(す
    なわち旧い)方を最小同期ポジションとし、(b)同一
    登録日時のエントリが一方のデータベースにしか存在せ
    ず、且つ、該登録日時が最小同期ポジションよりも小さ
    い(すなわち旧い)場合、該エントリをデータベースか
    ら削除し、(c)同一登録日時のエントリが一方のデー
    タベースにしか存在せず、且つ、該登録日時が最小同期
    ポジションよりも大きい(すなわち新しい)場合、該エ
    ントリを他方のデータベースにも登録し、(d)同一登
    録日時のエントリが両方のデータベースに存在する場合
    は、更新日時の旧いエントリを更新日時の新しいエント
    リで置き換える、ことを特徴とするデータベース管理方
    式。
  6. 【請求項6】異なるコンピュータに複製された4つ以上
    のデータベースを管理するデータベース管理方式であっ
    て、データベースに新しいエントリを登録した時に該エ
    ントリに登録日時を付与する登録日時付与手段と、デー
    タベース中のエントリを更新した時に該エントリに更新
    日時を付与する更新日時付与手段と、2つのデータベー
    ス間で同期をとる同期手段と、前記同期手段により同期
    をとった日時を同期ポジションとして同期をとった各デ
    ータベースに格納する同期ポジション格納手段を備え、
    前記同期手段は、(a)前記データベースのうち特定の
    1つをセンタとするとともに他のデータベースをローカ
    ルとして扱い、同期処理は1つのローカルがセンタとの
    間で行なうものとし、(b)同一登録日時のエントリが
    一方のデータベースにしか存在せず、且つ、該登録日時
    がローカルの同期ポジションよりも小さい(すなわち旧
    い)場合、該エントリをデータベースから削除し、
    (c)同一登録日時のエントリが一方のデータベースに
    しか存在せず、且つ、該登録日時がローカルの同期ポジ
    ションよりも大きい(すなわち新しい)場合、該エント
    リを他方のデータベースにも登録し、(d)同一登録日
    時のエントリが両方のデータベースに存在する場合は、
    更新日時の旧いエントリを更新日時の新しいエントリで
    置き換える、ことを特徴とするデータベース管理方式。
  7. 【請求項7】各データベース中の各エントリの登録時間
    を登録時間と一意的な識別情報で置換して同期処理を行
    うことを特徴とする請求項1乃至6のいずれかに記載の
    データベース管理方式。
  8. 【請求項8】前記同期手段は、同一登録日時のエントリ
    が両方のデータベースに存在する場合は、更新日時の旧
    いエントリを更新日時の新しいエントリで置き換えるの
    ではなく、両エントリのマージを行なうことを特徴とす
    る請求項1乃至6のいずれかに記載のデータベース管理
    方式。
  9. 【請求項9】さらに、データベース・ファイルの更新日
    時を各データベースに格納するデータベース・ファイル
    更新日時格納手段と、 同期を行なうデータベースどうしのデータベース・ファ
    イル更新日時を比較し、同一なら前記同期手段による同
    期処理を中止するデータベース・ファイル更新日時比較
    手段と、を備えることを特徴とする請求項1乃至6のい
    ずれかに記載のデータベース管理方式。
  10. 【請求項10】データベースを格納するとともに他の1
    以上のコンピュータとの間でデータベースの同期を行な
    うことができるコンピュータ・システム上で稼動するコ
    ンピュータ・プログラムを有形的に格納したコンピュー
    タ可読記録媒体であって、前記コンピュータ・システム
    が前記コンピュータ・プログラムを読み込んで実行して
    行う処理は、データベースに新しいエントリを登録した
    時に該エントリに登録日時を付与する登録日時付与処理
    モジュールと、データベース中のエントリを更新した時
    に該エントリに更新日時を付与する更新日時付与処理モ
    ジュールと、各コンピュータ間でデータベースの同期を
    とる同期処理モジュールとを備え、前記同期処理モジュ
    ールにおいてエントリの登録日時をエントリの識別情報
    として扱うことを特徴とするコンピュータ可読記憶媒
    体。
JP11059679A 1999-03-08 1999-03-08 データベース管理方式 Pending JP2000259473A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11059679A JP2000259473A (ja) 1999-03-08 1999-03-08 データベース管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11059679A JP2000259473A (ja) 1999-03-08 1999-03-08 データベース管理方式

Publications (1)

Publication Number Publication Date
JP2000259473A true JP2000259473A (ja) 2000-09-22

Family

ID=13120139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11059679A Pending JP2000259473A (ja) 1999-03-08 1999-03-08 データベース管理方式

Country Status (1)

Country Link
JP (1) JP2000259473A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003076706A (ja) * 2001-08-31 2003-03-14 Tsubasa System Co Ltd 統合マスタファイル制御方法、統合マスタファイル制御プログラム及び統合マスタファイル制御装置
JP2005507100A (ja) * 2001-05-25 2005-03-10 オラクル・インターナショナル・コーポレイション ネットワークファイルシステムのための管理および同期化アプリケーション
JP2009129414A (ja) * 2007-11-28 2009-06-11 Softbank Mobile Corp データベース同期化システム
JP2010532888A (ja) * 2007-06-25 2010-10-14 ヴァレオ セキュリテ アビタクル 車両用情報伝送方法及び装置、車両用識別体、並びにコンピュータプログラム
JP2011193517A (ja) * 2011-05-11 2011-09-29 Canon Inc 情報処理装置、制御方法、プログラム、及び記録媒体
US8437983B2 (en) 2010-01-28 2013-05-07 Fujitsu Limited Method for determining definite clock and node apparatus
US8756343B2 (en) 2010-04-30 2014-06-17 Fujitsu Limited Data management method and node apparatus
WO2016016998A1 (ja) * 2014-07-31 2016-02-04 三菱電機株式会社 コントローラ、および、ホームシステム
WO2016121869A1 (ja) * 2015-01-29 2016-08-04 日本電気株式会社 仮想化管理・オーケストレーション装置、仮想化管理・オーケストレーション方法、および、プログラム
KR20180076172A (ko) * 2016-12-27 2018-07-05 주식회사 씨에스리 데이터베이스 시스템의 이상을 탐지하는 장치 및 방법

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005507100A (ja) * 2001-05-25 2005-03-10 オラクル・インターナショナル・コーポレイション ネットワークファイルシステムのための管理および同期化アプリケーション
JP2003076706A (ja) * 2001-08-31 2003-03-14 Tsubasa System Co Ltd 統合マスタファイル制御方法、統合マスタファイル制御プログラム及び統合マスタファイル制御装置
JP2010532888A (ja) * 2007-06-25 2010-10-14 ヴァレオ セキュリテ アビタクル 車両用情報伝送方法及び装置、車両用識別体、並びにコンピュータプログラム
JP2009129414A (ja) * 2007-11-28 2009-06-11 Softbank Mobile Corp データベース同期化システム
US8437983B2 (en) 2010-01-28 2013-05-07 Fujitsu Limited Method for determining definite clock and node apparatus
US8756343B2 (en) 2010-04-30 2014-06-17 Fujitsu Limited Data management method and node apparatus
JP2011193517A (ja) * 2011-05-11 2011-09-29 Canon Inc 情報処理装置、制御方法、プログラム、及び記録媒体
WO2016016998A1 (ja) * 2014-07-31 2016-02-04 三菱電機株式会社 コントローラ、および、ホームシステム
JPWO2016016998A1 (ja) * 2014-07-31 2017-04-27 三菱電機株式会社 コントローラ、ホームシステム、同期制御方法、および、プログラム
WO2016121869A1 (ja) * 2015-01-29 2016-08-04 日本電気株式会社 仮想化管理・オーケストレーション装置、仮想化管理・オーケストレーション方法、および、プログラム
KR20180076172A (ko) * 2016-12-27 2018-07-05 주식회사 씨에스리 데이터베이스 시스템의 이상을 탐지하는 장치 및 방법
KR101981310B1 (ko) 2016-12-27 2019-05-22 주식회사 씨에스리 데이터베이스 시스템의 이상을 탐지하는 장치 및 방법

Similar Documents

Publication Publication Date Title
US7836015B1 (en) Fast synchronization of computer databases using coverage status
RU2372649C2 (ru) Гранулярное управление полномочиями дублируемой информации при помощи ограничения и снятия ограничения
KR101076851B1 (ko) 복제된 파일들을 위한 복수의 파일 상태 관리 방법
US7162499B2 (en) Linked value replication
US10289692B2 (en) Preserving file metadata during atomic save operations
US7254684B2 (en) Data duplication control method
JP4025475B2 (ja) データベース交換システム
US7672966B2 (en) Adding extrinsic data columns to an existing database schema using a temporary column pool
US7269605B1 (en) Personal information manager data synchronization and augmentation
US20060173932A1 (en) Using a file server as a central shared database
CN103842969A (zh) 信息处理系统
JP2003522344A (ja) データベース同期化/組織化システムおよび方法
US7213039B2 (en) Synchronizing differing data formats
US20160321443A1 (en) Authentication system, synchronization method, and authentication apparatus
JP2009129289A (ja) 情報処理装置及び情報処理方法及びプログラム
WO2016121083A1 (ja) 計算機システム、分散オブジェクト共有方法、エッジノード
JP2000259473A (ja) データベース管理方式
US9934240B2 (en) On demand access to client cached files
JP3042600B2 (ja) 分散ファイルの同期方式
US6738791B2 (en) Data synchronizing device
WO2008010473A1 (fr) Système de gestion de fichiers distribués
JP7428894B2 (ja) 情報処理装置、情報処理システム、及び情報処理プログラム
JP2006004024A (ja) ディレクトリサーバに実行させるためのプログラム
WO2006108258A1 (en) Method for preserving access to deleted and overwritten documents
WO2004090726A1 (ja) データベース複製プログラムおよびデータベース複製装置