JPH0444982B2 - - Google Patents

Info

Publication number
JPH0444982B2
JPH0444982B2 JP60283220A JP28322085A JPH0444982B2 JP H0444982 B2 JPH0444982 B2 JP H0444982B2 JP 60283220 A JP60283220 A JP 60283220A JP 28322085 A JP28322085 A JP 28322085A JP H0444982 B2 JPH0444982 B2 JP H0444982B2
Authority
JP
Japan
Prior art keywords
snapshot
base table
base
record
tid
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.)
Expired - Lifetime
Application number
JP60283220A
Other languages
English (en)
Other versions
JPS61170842A (ja
Inventor
Maiyaasu Haasu Roora
Girubaato Rinjii Buruusu
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS61170842A publication Critical patent/JPS61170842A/ja
Publication of JPH0444982B2 publication Critical patent/JPH0444982B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
A 産業上の利用分野 本発明は分散型の関係データベース・システム
において、論理的に独立な、拡張可能な多重列の
ベース表の部分集合又はスナツプシヨツトである
拡張可能な多重列の表を更新するための方法に関
する。より具体的には、本発明はスナツプシヨツ
ト表が定期的にベース表の内容と一致するように
される変更の伝播方法に関する。 B 従来技術 C.J.Date著“A Guide to DB2”,Addison−
Wesley出版社1984年発行の第7頁に指摘されて
いるように、「関係データベースは、ユーザによ
つて表の集まりとみなされるデータベースであ
る」。これに関して、Adiba及びLindsay,“Data
Base Suapshots”,IBM Research Report
RJ2772.1980年3月7日発行は、関係データベー
ス管理システムは、時間的に変化する関係又は表
の集合の内容のユーザー及びアプリケーシヨン・
ソフトウエアがアクセスする事を可能にするイン
ターフエースを提供する。と述べている。そのよ
うな管理システムは照会言語のステートメントに
よつて選択されたレコードの現在値を返すか又は
更新する。そのようなステートメントはアプリケ
ーシヨン・ソフトウエア中に埋め込まれるか又は
ユーザーによつて直接的に与えられる。ユーザー
は現在のデータベース中のレコードを変更及びそ
れに質問できるのみならず、新しいレコードを挿
入しそして既存のレコードを削除することができ
る。またそのようなシステムは、ユーザーが新し
い関係を作成し、既存の関係の属性集合を拡大
し、そして不要になつた関係を消去する事を可能
にする。 従来のシステムの1つの欠点は、たとえデータ
ベースの古いバージヨンに対するアクセスをアプ
リケーシヨンが必要とするか又は許容するとして
もユーザーは最新のデータベース状態しか操作で
きないという点である。データベースの選択され
た部分の古い「スナツプシヨツト」に対する読取
りだけのアクセスが可能であれば、そのようなア
プリケーシヨンは、ある特定の時間に操作を実行
する必要なしにその特定の時間におけるデータベ
ースの状態を観測する事が可能になるであろう。
また、現在のデータベースに対する更新によつて
スナツプシヨツトが影響を受けないならば、現在
のデータベース状態に対する更新処理を遅延させ
る事なく、複雑なアプリケーシヨンの処理のため
にデータベースの選択された部分を「静止」させ
るためにそれを使用できる。 Adiba他は、前掲文献中で、より大きな表から
導き出された論理的に独立な多重列の表であつて
時間的に凍結された情報状態を表わすものを作成
する事を述べている。これが「スナツプシヨツ
ト」である。 米国特許第4432057号の明細書は、ネツトワー
クのノードの間に分散した表のコピーにアクセス
する方法であつて、ノード識別子及び時刻スタン
プの順序の関数として表の遠隔地のバージヨンを
用いてローカルの表を改訂する事により並列(同
期)的に更新を行なう事のない方法を示してい
る。 C 発明が解決しようとする問題点 「スナツプシヨツト」という用語は、ソース表
又はベース表として知られている単一の表の一部
分の読取り専用のコピーと定義される。スナツプ
シヨツトはベース表の凍結したコピーである。即
ち、スナツプシヨツトは、真の複製物とは異な
り、ベース表に対する変化は常に反映してはいな
い。しかしながらスナツプシヨツトは周期的に更
新(リフレツシユ)することができ、従つてその
内容はスナツプシヨツトの作成又は最近の更新の
時までのベース表に対する全ての変更を反映して
いる。従つて、本発明の目的は、スナツプシヨツ
トを更新するために伝送されるデータの量を最小
限にするための方法、特にスナツプシヨツトとベ
ース表とが物理的に分散している場合にそれを行
なう方法を提供する事である。 D 問題点を解決するための手段 スナツプシヨツト及びベース表は同じ順序で走
査され、特定のスナツプシヨツトの最後の更新以
来に生じた(ベース表の)変更の場所を記録する
と共に変更の型即ち変更が挿入か更新か又は削除
かを識別する事を可能にする付加的なフイールド
がベース表に設けられる。より具体的には、(a)ベ
ース表上に、行の更新についての時間スタンプの
部分的な順序、行項目識別子の全体的な順序、及
び隣接行項目の識別子の後向きの連鎖が定義さ
れ、(b)ベース表が走査され、順序又は連鎖につい
ての異常として更新箇所が検出され、そして(c)更
新箇所を通信し、それによつてスナツプシヨツト
表が変更される。 本発明は、全体的及び部分的な順序並びに連鎖
の組み合せが、列の拡張、走査及び順序又は連鎖
の異常の検出によつて上記表の変化を表現する最
小限の情報に関係付けられるという予期しない発
見に基づいている。 本発明は、ある順序特性を示す列の中の情報に
部分的に依存しているので、そのような順序が定
義されるべきである。例えば、時刻スタンプは行
の更新箇所上で順序付けられる。部分的な順序は
実数上で定義される「より小さいか又は等しい」
関係の例である。行項目の識別子の全体的な順序
は実数上で定義される「より小さい」関係の例で
ある。後向き連鎖は、列の先頭から後尾へ移動す
ると共に、所定のフイールドの値が所定の項目に
先行するもののアドレスを定義するポインタを構
成するような、リンクされたリストの性質を有す
る。表の記入項目の挿入、削除又は変更はそれら
の順序を乱すので、それらは表を走査する時に検
出される。スナツプシヨツト表を更新するために
使われるスキツプ順序経路はインデツクス順序走
査の形をしている。 より具体的に述べると、ベース表の選択された
部分の遠隔地の読取専用コピーという形を取る関
係データベースのスナツプシヨツトを更新するた
めの方法は、ベース表の各組(tuple)が、レコ
ードが挿入された時から削除されるまでそれに付
随する一意的な識別子TIDを有するという事実を
利用している。TIDはその関係表の中に行(組)
の物理的な位置を参照している。さらに、ベース
表には、システムにより維持される2つの列(フ
イールト)が付加される。それらは、行の先行す
る項目の識別子PREVTID及び更新ID(UID)で
ある。UIDは例えば最後の更新時の時刻を示す時
刻スタンプ(TS)である。またスナツプシヨツ
ト表には、システムにより維持される1つの列
BASE TIDが必要である。これは対応するベー
ス表の行のTIDである。最後に、スナツプシヨツ
トのカタログ中には、前回の更新時のベース表の
UIDの最大値SNAPHIGHが維持される。 スナツプシヨツト表の更新が必要な時、TIDの
昇順にベース表の1回の走査が行なわれる。この
走査は、スナツプシヨツト表をベース表の現在の
状態に合せて更新するために必要な変更点を含む
1連のメツセージを発生する。スナツプシヨツト
表の側でこのメツセージを受理すると、変更を行
なうために、BASE TIDの順序でスナツプシヨ
ツトの1回のスキツプ走査が行なわれる。このよ
うにして、スナツプシヨツト表が更新される。 E 実施例 e−1 環境 第1図を参照すると、3つのノード10,1
2,14を有する分散型システムが示されてい
る。これらのノードは、通信リンク16,18,
20及び22によつて、上記分散型データベー
ス、マルチプロセシング、マルチプログラミング
のシステム中の他のノードに接続されている。各
ノード10,12,14等はデータ項目をデー
タ・フアイル36,38,40に記憶する能力を
有している。ノードで行なわれる処理を支援する
ために必要な時に、データ項目のコピーがそのノ
ードで動的に形成される。物理的には、ノードは
例えばIBMシステム/360又は370等の汎用コン
ピユータである。 本発明を実施するために使用し得る従来技術の
関係データベース管理システムは例えばIBM
Data Base2、略称DB2である。DB2は、“IBM
Data Base2 General Information Manual”,
GC26−4073−1、第2版、1984年7月発行に記
載されているようにIBM多重仮想記憶/370
(MVS/370)DB2においてサブシステムとして
走行する。重要な点はDB2が関係データ・モデ
ルを使用しているという事実である。従つて表が
基本的なデータ構造になる。そのような関係シス
テムにおいては、全てのデータが単純な表形式の
多重列のフオーマツトで表現される。そのような
システムは特別な必要性に応ずるために表の上に
付加的な構造を定義する事が可能である。 e−2 関係データベースの態様 関係システム中の表は列見出しの行とゼロ又は
1以上のデータ値の行とから成る。与えられた表
に関して、列見出しの行はその列中のデータ項目
に関するデータ型を特定する。さらに、各データ
行は、列見出しの行で指定された列の各々に関し
て正確に1つのデータ値を含んでいる。関係表の
行は順序付けられていないものと考えられる。行
が照会に応答して検索される時は、それらに順序
が与えられる。これと対照的に、表の列は左から
右へ順序付けられていると考えられる。ベース表
即ちソース表は独立した、名前の付けられた表で
ある。即ちその表は自立して存在している。これ
は自立的に存在せず1つ以上のベース表から派生
されるビユーとは対照的である。 DB2のような現代的な関係データベース・シ
ステムでは、いくつかのベース表を作成及びロー
ドし次にそのデータを即座に使用し始める事が可
能である。後に、データベースの既存のユーザに
影響を与える事なしに、新しいベース表及び新し
いフイールドを1つづつ付加する事ができる。関
係データベースにおけるデータの新規作成、操作
及び引き出しについての詳細は、前掲の“A
Guide to DB2”の特に第3〜8章を参照された
い。 e−3 更新(リフレツシユ)方法 本発明の方法は、関係中の各レコードに一意的
な識別子、即ち組識別子(TID)が関連付けられ
ている事が仮定されている。さらに関係は、TID
の順序で効率的に走査できる事が仮定されてい
る。また、レコードに関連付けられたTIDは、そ
のレコードがデータ・ベースから削除された後は
他のレコードに割り当ててもよい(即ちTIDは再
使用可能である)事に注意されたい。またベース
表の各レコードは、ユーザによつて定義された所
定の数の列(ユーザ・フイールド)及び2つの付
加的なシステムの定義した列より成るものと仮定
される。システムの定義した列はPREVTID及
UIDである。これに関して、PREV TIDはベー
ス表中の与えられたレコードの前のレコードの組
識別子(TID)である。またUIDはレコードの最
後の変更の時に対応する「時刻スタンプ」であ
る。本発明は、最小限の量の情報を用いてベース
表のスナツプシヨツトを周期的に更新する方法に
関する。それに関係した特徴はベース表上の付加
的な列の定義とその中の情報の配列である。 スナツプシヨツトのレコードの各々はベース表
のレコードのユーザ・フイールドの部分集合であ
る。スナツプシヨツト表は、ベース表中の対応す
るレコードのTID(BASE TID)を与える、付加
的な、システムにより定義された列を含んでい
る。従つてBASE TIDの順序で効率的にスナツ
プシヨツトにアクセスする事ができる。これはク
ラスター化されたリンク又はインデツクスによつ
て達成される。 ベース表は通常のユーザのアプリケーシヨンに
よつて維持される。ベース表の付加的な列は更新
(リフレツシユ)方法によつて利用される。もし
両者の付加的な列が空白であれば、最後の更新以
来のレコードが挿入される。もしUID列だけが空
白であれば、最後の更新以来のレコードが更新さ
れる。もしPREV TIDが以前のレコードのTID
を含まないが、有効なTIDを含んでいれば、その
レコードの前で何らかの削除又は挿入が行なわれ
たはずである。 更新時に、スナツプシヨツト・サイト(又はノ
ード)はベース表サイト(又はノード)に
SNAPHIGHの値を含む要求を送る。この値は、
スナツプシヨツトの前回の更新の間にベース表サ
イトから受け取つたレコード上にスナツプシヨツ
ト・サイトが見い出す最高のUIDである。これに
応答して、ベース表サイトは下記の形の多数の組
から成るメツセージ列を構成する。 <ユーザ・フイールド>、<ベース表TID>、<
スナツプシヨツト中の以前のTID>、<UID>。 上記の<ユーザ・フイールド>はスナツプシヨ
ツトによつて使用されるベース表のフイールドで
あり、<ベース表TID>はベース表中このレコー
ドのユーザ・フイールドに対応するTIDであり、
<スナツプシヨツト中の以前のTID>はスナツプ
シヨツト中にも現れるベース表中の最後のレコー
ドのTIDであり、そして<UID>はベース表中の
このレコードに関する列の値である。 ベース表のレコードは、下記の場合にスナツプ
シヨツト・サイトに送られるメツセージ中に現れ
る。(1)そのレコードがスナツプシヨツトに属し、
且つ(2)それがスナツプシヨツト・サイトで以前に
見い出された場合のUIDよりも大きなUIDを有す
るか又はこのスナツプシヨツトの最後の更新以来
このレコードの以前に何らかの削除が生じた可能
性がある場合。 ベース表サイトで実行可能な方法ステツプは
TID順でのベース表の走査を含む。各レコード毎
に、そのレコードが挿入されたか又は更新された
か、及びその直前でレコードが削除されたか否か
を判定する。それらいずれの場合(挿入、更新、
削除)にも、今回の更新時以前に使用されたどの
UIDよりも大きな新しい高い値のUIDをこのレコ
ードに割り当てる。もしレコードが更新されてい
るか又はこのレコード以前にレコードが削除され
ていれば、削除フラグをオンにセツトする。これ
はレコードがスナツプシヨツトから削除されてい
るかもしれない事を示すためである。付加的に言
えば、ベース表の関係表に対する更新はスナツプ
シヨツトからの削除と解釈されることもある。と
いうのはそのレコードはもはやスナツプシヨツト
のメンバーとしての規準を満たしていないかもし
れないからである。次のステツプはPREVTIDが
不正確であればPREVTIDフイールドを固定し、
次にレコードを送るか否かを確認する事である。
即ち、そのレコードはスナツプシヨツトに属する
か否か?を確認する。もしそうであれば、レコー
ドのUIDはSNAPHIGHよりも大きいか、又は削
除フラグがオンか?を確認する。もしUIDが大き
いか又は削除フラグがオンであれば、その時レコ
ードがメツセージに付加される。 スナツプシヨツト・サイトにおいて、ベース表
サイトから受け取つたメツセージはレコード毎に
処理される。メツセージに中の各組毎に、方法ス
テツプは、BASE TIDフイールドがメツセージ
組中の<スナツプシヨツト中の以前のTID>と<
ベース表TID>との間に落ちるような、スナツプ
シヨツト中のレコード全てを消去する。もしこの
組が既にスナツプシヨツト中に存在すれば、その
ユーザ・フイールドはそれらが変更されていた場
合に、更新される。そし組が存在しなければ、そ
れはスナツプシヨツト中に挿入される。 表1及び表2を参照すると、ベース表及びスナ
ツプシヨツト表のサイトの処理を表わす疑似コー
ドが示されている。より具体的には表1には、ス
ナツプシヨツト表を更新するための要求に応答し
てベース表サイトで実行される手続きが示されて
いる。これは、TIDの昇順でベース表を走査し、
行の挿入、削除又は変更によつてもたらされたよ
うな漸次的変化を検出する事に関係している。変
更は、PREVTIDの後向き連鎖における変更に関
するTID又はTS値の順序の変化によつて検出さ
れる。ベース表サイトにおける走査は、何らかの
配列又は連鎖の異常が生じたか否かをテストす
る、ネストされ条件付けられた「if then else」
型のステートメントの組以上のものは必要としな
い。TIDの昇順におけるこの1回のベース表の走
査により変更箇所が識別され、それはスナツプシ
ヨツト・サイトに通信される。
【表】
【表】
【表】 表2を参照すると、スナツプシヨツト・サイト
で実行されるコードが示されている。これに関し
て、漸次的変化に適用するためにBASE TIDの
順序でスナツプシヨツトに1回のスキツプ式順次
走査が行なわれる。これはスナツプシヨツトが必
要な状態に更新する。このスキツプ式順次走査は
BASE TID上にクラスタリング・インデツクス
を使用する事によつてより効率的にできる。
【表】 e−4 説明のための例 下記の例は、ベース表の状態を維持し、メツセ
ージを計算し、そしてそのメツセージがスナツプ
シヨツト表に適用される方式を説明するためのも
のである。例示のために、ベース表は2つのデー
タ列(データ・フイールド)及び2つの制御列
(制御フイールド)から構成れる。ベース表のデ
ータ列はNAME及びLOCである。これは人物の
名前及び所属事業所を示す。ベース表の制御列は
PREV及びTIMEである。これらはベース表の中
の以前のレコードのアドレス及びベース表が更新
された時刻を示ている。この例では、2個のスナ
ツプシヨツト表が使用される。これは各々の
SINKALL及びSINKSJと呼ばれる。スナツプシ
ヨツト表は各々、ベース表の中の列に対応する2
つのデータ列及び1つの制御列を含んでいる。そ
れらの列は各々NAME、LOC及びADDRと名付
けられている。最後の列は、対応するベース表の
レコードのアドレスを示す。SINKALLスナツプ
シヨツト表はベース表の全体の内容に一致するよ
う更新され、一方SINKSJスナツプシヨツト表は
LOC=“SJ”であるようなベース表中のレコード
に対応するベース表の部分集合に一致するように
更新される。 下記の図表中で、更新アルゴリズムによつて行
なわれる動作の原因を示すために、下記の略記法
が用いられる。 ベース表の更新に関する原因 SU1最後のベース表のリフレツシユ以後に、
ベース表のレコードが挿入された。(PREV
=空白) SU2最後のベース表のリフレツシユ以後に、
1つ以上の先行するレコードが削除された。
(PREV=予期されたPREV) SU3最後のベース表のリフレツシユ以後の、
現行のレコードの前の挿入(PREV=実際
の先行レコードのアドレス) SU4最後のベース表のリフレツシユ以後の、
更新されたレコード。(PREJ=空白且つ
TIME=空白) スナツプシヨツト表に対する更新箇所の送信の
原因 TC1最後のスナツプシヨツトのリフレツシユ
以後にレコードが変化し、レコードがスナツ
プシヨツトの制限内にある。(TIME>
SINK時刻) TC2ベース表の中で削除が検出された。(ス
ナツプシヨツトに影響するかどうか不明) TC3ベース表における表の終端が検出され
た。これはベース表の終端部における削除を
反映させるためにスナツプシヨツト中に存在
する事の知られている最後のレコードを示さ
なければならない。 スナツプシヨツト表に変更を加える原因 CS1スナツプシヨツトのレコードを削除しな
ければならない。 CS2スナツプシヨツトのレコードを更新しな
ければならない。 CS3スナツプシヨツトのレコードを挿入しな
ければならない。 次の図表はベース表の初期状態を示している。
示されたアドレスにあるレコードは示された値を
有している。
【表】 次に、時刻T1にSINKALLスナツプシヨツト
を更新する。SINKALL表に関する以前のリフレ
ツシユ時刻はT0である。 下記の図表は、(1)ベース表における動作及びそ
の動作の原因、並びに(2)スナツプシヨツト表にお
ける動作及びその原因を示している。スナツプシ
ヨツト表へ送られる変更レコードのフオーマツト
は次のように表わされる。: Xmit(<スナツプシヨツト・レコードの通常の
フイールドの値>、このレコードのベース表アド
レス、スナツプシヨツト表の中の先行レコードの
ベース表アドレス)
【表】 次に、SINKSJ表が更新される。リフレツシユ
の時刻はT2であり、SINKSJの最後のリフレツ
シユの時刻はT0である。リフレツシユの最後の
実行以来、ベース表の更新は行なわれていないの
で、ベース表に対しては何の更新も行なわれな
い。また、制限されたSINKSJに現れるレコード
だけが伝送され、それに従つて、伝送された「ス
ナツプシヨツト表の最後」の値が調整される事に
注意されたい。
【表】 次に、ベース表を下記のように更新する: アドレス10の「ブルース」をLOC=NYに更新
する。 アドレス15にLOC=SJの「ジヨージ」を挿入
する。 アドレス30の「ローラ」を削除する。 ベース表の内容は次のようになる。
【表】 次に、差リフレツシユ法を用いて時刻T3に
SINKALL表を更新する。SINKALLの前回のリ
フレツシユの時刻はT1である。
【表】 次に、差リフレツシユ法を用いてSINKSJ表を
更新する。リフレツシユの時刻はT4、また
SINKSJの最後のリフレツシユの時刻はT2であ
る。
【表】 次に、ベース表を下記のように更新する。 アドレス10の「ブルース」を削除する。 アドレス10にLOC=SJの「ポール」を挿入す
る。 アドレス20の「ボブ」を削除する。 アドレス17にLOC=NYの「ガイ」を挿入す
る。 アドレス30にLOC=STの「ロン」を挿入す
る。 ベース表の内容は次のようになる。
【表】 この時、差リフレツシユ法を用いて最初に
SINKSJ表を更新する。リフレツシユの時刻は
T5でありSINKSJに関する最後のレフレツシユ
の時刻はT4である。
【表】 次に、差リフレツシユ法を用いて時刻T6に
SINKALL表が更新される。SINKALL表の前回
のリフレツシユ時刻はT3である。
【表】 F 発明の効果 従来技術に対する本発明の利点は、スナツプシ
ヨツト表を更新するために最小限の量の情報しか
使用しない事である。さらに、本発明の方法はテ
ーブルの変更の回数も最小限にする。例えば組
(tuple)は、組が更新されたか、挿入されたか又
はその組がベース表中の1以上の削除された組に
続くものである場合にのみ、伝送される。従つ
て、メツセージにの大きさが減少し且つスナツプ
シヨツト表に対する更新数が減少するのに加え
て、更新箇所のロギングの量が最小限のものにな
る。また本件方法においては、スナツプシヨツト
表及びベース表の両者において通常の非リフレツ
シユ動作が殆んど又は全く計算資源のオーバーヘ
ツドを生じない。即ち、例えばスナツプシヨツト
の読取り、又はベース表の読取り、挿入もしくは
削除に関しては何のオーバーヘツドも存在しな
い。同様にベース表に対する更新は1つの付加的
フイールドに書込むだけでよい。 このリフレツシユ法は、リフレツシユ動作中に
スナツプシヨツト表及びベース表に対して効率的
なアクセス経路を採用している。ベース表におい
て、スナツプシヨツト・コピーに関する変更を分
離するために関係表の順次的走査即ちTID順での
走査を用いる事ができる。スナツプシヨツト表で
は、BASE TIDに対するクラスター化リンク又
はクラスター化インデツクスのいずれかを用いれ
ば、リフレツシユ中にスナツプシヨツトの必要な
レコードにアクセスする事が可能になる。もし各
リフレツシユにより更新されるべきスナツプシヨ
ツトの部分が小さければ、クラスター化インデツ
クスが有利である。 また、同一のベース表から導き出された多数の
スナツプシヨツト表の維持が可能であるが、この
時ベース表の制御フイールドの維持のコストは多
数の独立のスナツプシヨツト全体に分配される。
1つのスナツプシヨツトをリフレツシユする時に
制御フイールドに行なつた更新は、2番目のスナ
ツプシヨツトのリフレツシユのために再度繰り返
す必要がない。また各スナツプシヨツト表の内容
をベース表の異なつた部分集合であるようにする
事も可能である。
【図面の簡単な説明】
図は本発明が適用される分散データベース・シ
ステムの図である。

Claims (1)

  1. 【特許請求の範囲】 1 関係データベース・システムにおいて、ベー
    ス表の部分集合に対応するスナツプシヨツト表を
    更新する方法であつて、 上記ベース表の行に関連して、行項目の識別子
    による全体的な順序を示す第1の情報、ある行項
    目に対してその前の行項目を示す第2の情報、及
    び行の挿入、削除またはその内容の修正に関する
    時間的順序を示す第3の情報を定義し、 上記ベース表を上記第1の情報の順序で走査す
    るに際し、上記第1の情報とその次の行項目の上
    記第2の情報とが一致しない箇所を検出し、又は
    上記第3の情報が前回の更新における最大値より
    も大きい箇所を検出することによりベース表の変
    更箇所を検出し、 上記変更箇所に関する情報を上記スナツプシヨ
    ツト表に通信して、該スナツプシヨツト表の内容
    を更新するステツプを含む スナツプシヨツト表の更新方法。
JP60283220A 1985-01-22 1985-12-18 関係デ−タベ−ス・システムにおけるスナツプシヨツト表の更新方法 Granted JPS61170842A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/693,500 US4631673A (en) 1985-01-22 1985-01-22 Method for refreshing multicolumn tables in a relational data base using minimal information
US693500 1991-04-30

Publications (2)

Publication Number Publication Date
JPS61170842A JPS61170842A (ja) 1986-08-01
JPH0444982B2 true JPH0444982B2 (ja) 1992-07-23

Family

ID=24784922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60283220A Granted JPS61170842A (ja) 1985-01-22 1985-12-18 関係デ−タベ−ス・システムにおけるスナツプシヨツト表の更新方法

Country Status (5)

Country Link
US (1) US4631673A (ja)
EP (1) EP0189031B1 (ja)
JP (1) JPS61170842A (ja)
CA (1) CA1238983A (ja)
DE (1) DE3688529T2 (ja)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097408A (en) * 1985-01-11 1992-03-17 Wang Laboratories, Inc. Apparatus for specifying a result relation in a relational database system by selection of rows
US4888690A (en) * 1985-01-11 1989-12-19 Wang Laboratories, Inc. Interactive error handling means in database management
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US5047918A (en) * 1985-12-31 1991-09-10 Tektronix, Inc. File management system
US4918593A (en) * 1987-01-08 1990-04-17 Wang Laboratories, Inc. Relational database system
GB2203573A (en) * 1987-04-02 1988-10-19 Ibm Data processing network with upgrading of files
US4791561A (en) * 1987-04-17 1988-12-13 Wang Laboratories, Inc. Interactive construction of means for database maintenance
US5381555A (en) * 1987-05-18 1995-01-10 The Larches Corporation Method for designation of data in a data bank and extraction of data for use in a computer program
US5008819A (en) * 1987-10-07 1991-04-16 Gorbatenko George G Memory spaced array
WO1989003567A1 (en) * 1987-10-09 1989-04-20 Nucleus International Corporation A relational database using identifiers
JPH022459A (ja) * 1987-12-11 1990-01-08 Hewlett Packard Co <Hp> 問合わせ処理方法
US5093782A (en) * 1987-12-14 1992-03-03 Texas Instruments Incorporated Real time event driven database management system
US5142674A (en) * 1988-03-08 1992-08-25 International Business Machines Corporation Interchange object data base index which eliminates the need for private copies of interchange documents files by a plurality of application programs
US5043866A (en) * 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery
US5043872A (en) * 1988-07-15 1991-08-27 International Business Machines Corporation Access path optimization using degrees of clustering
US5175849A (en) * 1988-07-28 1992-12-29 Amdahl Corporation Capturing data of a database system
US4937760A (en) * 1988-09-19 1990-06-26 International Business Machines Corporation Method for sharing common values implicitly among communicating generative objects
EP0360387B1 (en) * 1988-09-23 1996-05-08 International Business Machines Corporation Data base management system
US5136707A (en) * 1988-10-28 1992-08-04 At&T Bell Laboratories Reliable database administration arrangement
JPH03130874A (ja) * 1989-10-17 1991-06-04 Fujitsu Ltd リレーショナル・データベースの検索処理方式
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5404488A (en) * 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
US5386553A (en) * 1990-10-10 1995-01-31 Fuji Xerox Co., Ltd. Disk file updating control device and method using updating data stored in a first-in-first-out queue
US5129152A (en) * 1990-12-20 1992-07-14 Hughes Aircraft Company Fast contact measuring machine
US5151899A (en) * 1991-02-11 1992-09-29 Digital Equipment Corporation Tracking sequence numbers in packet data communication system
US5287496A (en) * 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US5317731A (en) * 1991-02-25 1994-05-31 International Business Machines Corporation Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
US5333316A (en) * 1991-08-16 1994-07-26 International Business Machines Corporation Locking and row by row modification of a database stored in a single master table and multiple virtual tables of a plurality of concurrent users
AU7684094A (en) * 1993-09-24 1995-04-10 Oracle Corporation Method and apparatus for data replication
US5613113A (en) * 1993-10-08 1997-03-18 International Business Machines Corporation Consistent recreation of events from activity logs
US5553279A (en) * 1993-10-08 1996-09-03 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
US5440735A (en) * 1993-10-08 1995-08-08 International Business Machines Corporation Simplified relational data base snapshot copying
US5666524A (en) * 1994-08-31 1997-09-09 Price Waterhouse Llp Parallel processing system for traversing a transactional database
US5826020A (en) * 1994-09-30 1998-10-20 Hewlett-Packard Co. Workflow real time intervention
US5689705A (en) * 1995-02-13 1997-11-18 Pulte Home Corporation System for facilitating home construction and sales
US5995980A (en) * 1996-07-23 1999-11-30 Olson; Jack E. System and method for database update replication
US6374232B1 (en) * 1996-08-29 2002-04-16 Oracle Corp. Method and mechanism for retrieving values from a database
US5826258A (en) * 1996-10-02 1998-10-20 Junglee Corporation Method and apparatus for structuring the querying and interpretation of semistructured information
US5873098A (en) * 1997-04-23 1999-02-16 Oracle Corporation Dynamic snapshot set adjustment
US5963959A (en) * 1997-05-30 1999-10-05 Oracle Corporation Fast refresh of snapshots
US6289335B1 (en) * 1997-06-23 2001-09-11 Oracle Corporation Fast refresh of snapshots containing subqueries
US6571243B2 (en) 1997-11-21 2003-05-27 Amazon.Com, Inc. Method and apparatus for creating extractors, field information objects and inheritance hierarchies in a framework for retrieving semistructured information
US6192444B1 (en) * 1998-01-05 2001-02-20 International Business Machines Corporation Method and system for providing additional addressable functional space on a disk for use with a virtual data storage subsystem
US6847971B1 (en) * 1998-05-28 2005-01-25 Oracle International Corporation Lightweight data replication
US6529904B1 (en) * 1998-05-28 2003-03-04 Oracle Corp. Deployment of snapshots with parameterized data description language strings
US6792540B1 (en) 1998-05-28 2004-09-14 Oracle International Corporation Data replication security
US7162689B2 (en) 1998-05-28 2007-01-09 Oracle International Corporation Schema evolution in replication
US6532479B2 (en) * 1998-05-28 2003-03-11 Oracle Corp. Data replication for front office automation
US6339768B1 (en) 1998-08-13 2002-01-15 International Business Machines Corporation Exploitation of subsumption in optimizing scalar subqueries
US6334128B1 (en) * 1998-12-28 2001-12-25 Oracle Corporation Method and apparatus for efficiently refreshing sets of summary tables and materialized views in a database management system
US6694335B1 (en) * 1999-10-04 2004-02-17 Microsoft Corporation Method, computer readable medium, and system for monitoring the state of a collection of resources
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6532476B1 (en) 1999-11-13 2003-03-11 Precision Solutions, Inc. Software based methodology for the storage and retrieval of diverse information
US6529917B1 (en) 2000-08-14 2003-03-04 Divine Technology Ventures System and method of synchronizing replicated data
US6694337B1 (en) * 2000-10-26 2004-02-17 Intel Corporation Synchronizing databases
US7149759B2 (en) 2002-03-25 2006-12-12 International Business Machines Corporation Method and system for detecting conflicts in replicated data in a database network
US7337351B2 (en) * 2002-09-18 2008-02-26 Netezza Corporation Disk mirror architecture for database appliance with locally balanced regeneration
EP1550053A4 (en) 2002-09-18 2009-03-25 Netezza Corp ARCHITECTURE OF THE MIRROR DISK FOR DATABASE DEVICES
CA2414983A1 (en) * 2002-12-23 2004-06-23 Ibm Canada Limited-Ibm Canada Limitee Independent deferred incremental refresh of materialized views
US20050187888A1 (en) * 2004-02-19 2005-08-25 William Sherman Method for associating information pertaining to a meter data acquisition system
US7490083B2 (en) * 2004-02-27 2009-02-10 International Business Machines Corporation Parallel apply processing in data replication with preservation of transaction integrity and source ordering of dependent updates
US8688634B2 (en) * 2004-02-27 2014-04-01 International Business Machines Corporation Asynchronous peer-to-peer data replication
US7213103B2 (en) * 2004-04-22 2007-05-01 Apple Inc. Accessing data storage systems without waiting for read errors
WO2006081953A1 (en) * 2005-02-01 2006-08-10 Nokia Siemens Networks Gmbh & Co. Kg Method for mirroring relational data
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US8495015B2 (en) * 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US20070027938A1 (en) * 2005-07-26 2007-02-01 Scribe Software Inc. Detecting data changes
US7797670B2 (en) * 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
US7860826B2 (en) 2006-08-04 2010-12-28 Apple Inc. Method and system for using global equivalency sets to identify data during peer-to-peer synchronization
US7657769B2 (en) 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US9690790B2 (en) * 2007-03-05 2017-06-27 Dell Software Inc. Method and apparatus for efficiently merging, storing and retrieving incremental data
US8341134B2 (en) 2010-12-10 2012-12-25 International Business Machines Corporation Asynchronous deletion of a range of messages processed by a parallel database replication apply process
CN104040481B (zh) 2011-11-18 2017-10-10 戴尔软件股份有限公司 用于融合、存储和检索增量式备份数据的方法和系统
US9043278B1 (en) 2012-05-09 2015-05-26 Bertec Corporation System and method for the merging of databases
US8543540B1 (en) 2012-05-09 2013-09-24 Bertec Corporation System and method for the merging of databases
US8700569B1 (en) 2012-05-09 2014-04-15 Bertec Corporation System and method for the merging of databases
US10484474B2 (en) 2013-08-29 2019-11-19 Pure Storage, Inc. Rotating offline DS units
US9749414B2 (en) 2013-08-29 2017-08-29 International Business Machines Corporation Storing low retention priority data in a dispersed storage network
US10601918B2 (en) 2013-08-29 2020-03-24 Pure Storage, Inc. Rotating inactive storage units in a distributed storage network
US9727625B2 (en) 2014-01-16 2017-08-08 International Business Machines Corporation Parallel transaction messages for database replication
US11080257B2 (en) * 2019-05-13 2021-08-03 Snowflake Inc. Journaled tables in database systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1054725A (ja) 1964-04-06
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system

Also Published As

Publication number Publication date
EP0189031A2 (en) 1986-07-30
US4631673A (en) 1986-12-23
CA1238983A (en) 1988-07-05
JPS61170842A (ja) 1986-08-01
DE3688529T2 (de) 1993-12-23
EP0189031B1 (en) 1993-06-09
EP0189031A3 (en) 1989-11-23
DE3688529D1 (de) 1993-07-15

Similar Documents

Publication Publication Date Title
JPH0444982B2 (ja)
US5995973A (en) Storing relationship tables identifying object relationships
US7680761B2 (en) Method and mechanism for database partitioning
US6728719B1 (en) Method and mechanism for dependency tracking for unique constraints
US6714943B1 (en) Method and mechanism for tracking dependencies for referential integrity constrained tables
US6125360A (en) Incremental maintenance of materialized views containing one-to-N lossless joins
US6480848B1 (en) Extension of data definition language (DDL) capabilities for relational databases for applications issuing DML and DDL statements
Nascimento et al. Towards historical R-trees
US6178425B1 (en) Method of determining the visibility to a remote database client of a plurality of database transactions using simplified visibility rules
US6529917B1 (en) System and method of synchronizing replicated data
US5504879A (en) Resolution of relationship source and target in a versioned database management system
US8046327B2 (en) Partially replicated distributed database with multiple levels of remote clients
US6161109A (en) Accumulating changes in a database management system by copying the data object to the image copy if the data object identifier of the data object is greater than the image identifier of the image copy
US7111020B1 (en) Incremental refresh of materialized views containing rank function, and rewrite of queries containing rank or rownumber or min/max aggregate functions using such a materialized view
US6216135B1 (en) Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths
US5592661A (en) Detection of independent changes via change identifiers in a versioned database management system
US20040015486A1 (en) System and method for storing and retrieving data
EP2746971A2 (en) Replication mechanisms for database environments
US20030135523A1 (en) Method of using cache to determine the visibility to a remote database client of a plurality of database transactions
US7418544B2 (en) Method and system for log structured relational database objects
JP2003505766A (ja) クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム
Taniar et al. A taxonomy of indexing schemes for parallel database systems
US6453322B1 (en) Extension of data definition language (DDL) capabilities for relational databases for applications issuing multiple units of work
US6421677B1 (en) Extension of data definition language (DDL) capabilities for relational databases for applications issuing DDL statements
US8554722B2 (en) Method for transferring data into database systems