JPH07325742A - アボートする可能性のあるトランザクションの更新制約 - Google Patents

アボートする可能性のあるトランザクションの更新制約

Info

Publication number
JPH07325742A
JPH07325742A JP7126961A JP12696195A JPH07325742A JP H07325742 A JPH07325742 A JP H07325742A JP 7126961 A JP7126961 A JP 7126961A JP 12696195 A JP12696195 A JP 12696195A JP H07325742 A JPH07325742 A JP H07325742A
Authority
JP
Japan
Prior art keywords
transaction
constraint
update
code
data
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.)
Withdrawn
Application number
JP7126961A
Other languages
English (en)
Inventor
Timothy G Griffin
ジー. グリフィン ティモスィ
Howard W Trickey
ダブリュ. トリッキー ハワード
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
AT&T 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 American Telephone and Telegraph Co Inc, AT&T Corp filed Critical American Telephone and Telegraph Co Inc
Publication of JPH07325742A publication Critical patent/JPH07325742A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

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

Abstract

(57)【要約】 【目的】 あるデータセットが制約に従うときにそのデ
ータセットを更新するための、アボートする可能性のあ
る動作を含むトランザクション内に使用される技法が開
示される。 【構成】 この技法は、そのデータセットを修正する前
に、そのデータセットが修正されたとき制約が満足され
るか否かを決定するためにテストされる更新制約を生成
する。この技法の更新制約は、それらの制約がトランザ
クションがアボートされなかったとき満足されるか否か
を示す。この更新制約はアプリケーションレベルにてチ
ェックされ、一方、ある動作をアボートさせる制約はシ
ステムレベルにてチェックされる。電話交換機内に埋め
込まれた関係データベースへの更新制約の適用が開示さ
れる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般的にはシステムの動
作が制約に従うようなシステムに関し、より詳細には、
データベースシステム内のデータの保全性の維持に伴な
う制約に関する。
【0002】
【従来の技術】データベースシステム内の一つの重要な
動作は、システム内のデータを修正することである。デ
ータを修正する動作には、データの追加、データの削
除、或は削除と追加の組合わせであるデータの更新が含
まれる。以下においては、データベースを修正する動作
が、総称的に、更新動作と称される。
【0003】更新動作においては、データベースシステ
ムに加えられるデータがそのデータベースシステム内の
データの保全性を害しない注意が払われなければならな
い。例えば、従業員情報のデータベースは、各従業員に
対するレコードを持ち、各々は、従業員の等級と給料を
指定する欄を含み、給料が等級と、給料が等級に対して
指定された最低以上であり、かつ、最高以下となるよう
に連結される。このようなデータベースにおいては、デ
ータベースシステムの保全性の維持には、新たな従業員
レコードが追加されたり、現存のレコードが修正される
とき、データベースシステムがこの新たな或は修正され
たレコード内の給料がその等級に対して指定される範囲
内であるかチェックすることが要求される。データベー
スの保全性を維持するためにデータベースに挿入される
べきデータによって満足されなければならない条件は、
制約と称され、多くのデータベースシステムにおいて
は、全ての更新動作は、制約チェックと称されるフェー
ズを含み、このフェーズにおいて、データベースシステ
ムは、その動作に対して要求される制約が満足されるか
否かを決定する。
【0004】制約チェックを行なう一つの方法は、動作
を行ない、全ての制約をチェックし、ある制約が犯され
た場合は、更新をやり直す方法である。但し、通常は、
更新を行なう前に制約が犯されるか否かを決定し、違反
がない更新のみを行なうことができる。勿論、更新チェ
ックは時間を要し、従って、これをできるだけ少なくす
ることが重要である。多くの場合、制約は、他の制約に
依存し、実際には、少しの制約のみがチェックされるこ
とを要求される。チェックされたときに全ての制約をチ
ェックするのと同一の結果を与えるより小さな制約の集
合は、更新制約と称される。更新制約を発見する一つの
方法は、その更新と関係する制約の全集合の最弱前提条
件(weakest precondition)と称される論理公式を計算
する方法である。この最弱前提条件は、更新が遂行され
た後に制約の全集合が真となることが要求される場合に
真でなければならない制約の集合を規定する。これに関
しては、C.A.R.Hoare によって、Communications of th
e ACM 12(10)、October 1969 に掲載の論文『An axiomat
ic basis for computer programming 』を参照された
い。
【0005】但し、最弱前提条件の制約のテストでさえ
も必要とされる以上の仕事を含む。X.Qianによって、Fo
urth International Conference on Data Engineering、
1988に掲載の論文『An effective method for integrit
y constraint simplification 』において説明されてい
るように、これら制約は事前にホールドするとが知られ
ているという事実を利用することが可能である。このよ
うな事実が存在するために、最弱前提条件は、それらの
制約によって含蓄される最弱前提条件の第一の部分と、
含蓄されない第二の部分とに因数分解することができ
る。これらの部分のANDは、最弱前提条件と論理的に
等しく、従って、第二の部分のみをチェックすることに
よって最弱前提条件をチェックすることが可能であり、
そして、この第二の部分がそれ自身更新制約として機能
することができる。
【0006】
【発明が解決しようとする課題】最弱前提条件を伴なう
更新制約に関する前述の研究と、Qianによるこれの更な
る簡素化と関連する一つの問題は、これが実際的なデー
タベースシステムにおいては、更新動作の際に実行され
るデータベースシステム動作の幾つかが、そのデータベ
ースシステムによって課せられる幾つかの制約が満足さ
れない場合は、それ自身がアボートし、データベースに
結果を与えることなく終端するという事実が考慮されて
いないことである。例えば、実際に新たなレコードをデ
ータベース内に挿入するデータベースシステム挿入動作
は、その新たなレコードが実際に新なレコードであるこ
とを要求する。挿入動作は、この事実を、そのレコード
を識別するデータベースシステムに対するキーがそのデ
ータベース内の任意の現存するレコードに対するキーと
同一であるかチェックすることによって行なう。同一で
ある場合は、挿入動作はアボートする。所で、これら動
作が満足しなければならない制約は、データの内容の一
貫性を保つために要求される制約とは異なり、今日に至
るまで、このような制約を更新制約にどのように組み込
むべきか明らかにされていない。
【0007】
【課題を解決するための手段】出願人は、アボートする
可能性のある動作を持つシステム内の更新制約の問題
は、単に、そのトランザクションがアボートしないとい
う前提を使用して更新制約を決定することによって解決
できることを発見した。本発明の一面によると、この本
発明の発見が、トランザクションに対する上に述べたよ
うな方法にて決定された更新制約を組み込むコードを生
成するための方法と装置内に適用される。別の実施例に
おいては、このような更新制約が更新トランザクション
を遂行するための方法と装置内で使用される。このよう
な更新制約の長所は、システムに動作をアボートさせる
制約に対するチェックがシステムレベルにて遂行され、
更新制約に対するチェックがアプリケーションレベルに
て遂行されることである。ここに開示される装置と方法
の他の目的と長所は、当業者においては、以下の図面と
詳細な説明から明らかになるものである。図面内の参照
番号は二つの部分から成る。下二桁は図面内の項目の番
号であり、残りの桁はその項目が最初に現われる図面の
番号である。従って、参照番号201を持つ項目は、最
初に、図2に現われる。
【0008】
【実施例】
好ましい実施例の詳細な説明 以下の説明においては、最初に本発明の一例について述
べられ、その後、本発明の厳密な論理的定義が与えられ
る。 データベースシステムの概要:図1
【0009】図1は典型的なデータベースシステム10
1を示す。システム101のハードウエア要素として
は、コンピュータプログラムを実行することができるプ
ロセッサ111、データが格納される大容量記憶デバイ
ス、並びにディスプレイ、マウスなどのポインティング
デバイスを含むユーザインタフェース103が含まれ
る。システム101は、データベース管理システム11
3のコードをプロセッサ111上で実行した結果として
得られる。データベース管理システム113は、大容量
記憶装置119内のデータをセットのリレーションに編
成する。各リレーションは、カラムとロウを持つテーブ
ルである。カラムは、データのクラス(例えば、従業員
の氏名、従業員の部門、及び給料)を定義し、ロウはデ
ータの関係する値、例えば、具体的な従業員の氏名、従
業員の部門に対する具体的な値、及びその従業員の氏名
に対して支払われる給料を含む。データベースシステム
101内には二つのタイプのリレーションが存在する。
第一は、ベースリレーション121であり、このタイプ
では、データ値が大容量記憶装置119内に実際に格納
される。第二は、ビュー(views )であるが、これは、
大容量記憶装置119内に実際には存在せず、ベースリ
レーション121内のデータからオンザフライ(on the
fly)にて構成されるリレーションである。
【0010】データベース管理システム113は、デー
タベースシステム内のデータに関するトランザクション
を指定するトランザクション仕様105に応答してデー
タを操作する。これらトランザクション仕様は、データ
ベースシステムのユーザによって提供される。これらト
ランザクション仕様は、リレーションに関するオペレー
シヨン、例えば、あるリレーションからのデータの読み
出し或はそのリレーションへのデータの書込みを指定す
る。データベース管理システム113は、あるトランザ
クション仕様105に応答して、そのトランザクション
を実行するために要求される大容量記憶デバイス119
上のオペレーシヨン117を遂行するために必要とされ
るデータベース管理システムプリミティブルーチン11
6を呼び出す。このトランザクションが成功した場合
は、矢印107によって示されるように結果がユーザイ
ンタフェースに戻され、失敗した場合は、エラーメッセ
ージ109が戻される。
【0011】従来の技術の説明の所で指摘されたよう
に、トランザクション指定子によって指定される動作の
一つの重要なクラスは、更新動作であり、この動作にお
いては、リレーション121(a)内のデータが修正さ
れる。更新動作を遂行するデータベース管理システム1
15の部分が図1に更新コード115として示される。
これも従来の技術の説明の所で指摘されたように、トラ
ンザクションがリレーション121内のデータの更新を
伴う場合は、データベース管理システム113は、その
更新によってデータベースシステム101の保全性が劣
化されないことを確保することが必要であり、このため
に、更新コード115のタスクの一部分として、更新制
約が犯されたかチェックされる。更新制約が犯された場
合は、更新コード115は、リレーション121内のデ
ータの修正を行なわず、代わりに、エラーメッセージ1
09を返す。更新を伴うトランザクションは、以降、更
新トランザクションと称される。
【0012】一例としての更新トランザクション:図3
−5 以下においては、データベースシステム101内の制約
チェックを行なうに当って最弱前提がどのように使用さ
れるかを示すために一つの単純な例が取り上げられる。
この例は二つのリレーション121を伴う。これらリレ
ーションが図2に示される。最初のリレーションは、従
業員リレーション201であり、これは各従業員に対す
るロウ203を持つ。このリレーションのカラムには、
それに対する値が従業員の氏名であるname205、それ
に対する値が従業員の給料であるsal 207、及びそれ
に対する値が部門の番号であるdept209が含まれる。
こうして、各ロウ203は、ある従業員の氏名、彼の給
料、及び彼の部門の番号を指定する。下線によって示さ
れるように、name欄は、各レコードに対するキーとして
機能する。つまり、レコードは、データベース管理シス
テム113に対して、nameの値によって識別される。
【0013】第二のリレーションは部門211である
が、これは、その事業内の各部門に対するロウ213を
持つ。カラムには、その値が部門の番号であるdept21
5と、その値が管理者の氏名であるmanager 217が含
まれる。部門211内のキーはdept215である。部門
211と従業員201は、これらキーによって互いに関
連付けられる。例えば、その名前が部門211のある与
えられたロウ213に対するmanager カラム217に現
われる管理者は、従業員201内の彼の名前の下に一つ
の項目を持つ。一方のリレーションのキーが他方のリレ
ーションのデータとして使用されるために、このデータ
ベース管理システムは、リレーション211とリレーシ
ョン201の両方からの情報を含むビューを構成するこ
とができる。このようなビューの一例は、各管理者に対
して一つの項目を持ち、管理者の氏名、部門、及び給料
を指定するリレーションである。このビューを作成する
ためには、データベース管理システム113は、部門2
11から管理者の氏名と部門を取り出し、次に、従業員
201内のその管理者の名前を使用してカラム207か
らその管理者の給料の値を取り出す。
【0014】この二つのリレーション211と201に
おいてさえも、これらロウの値に対して複数の制約が存
在する。図3は、論理の表記法にて表現されたこれら制
約303を示す。制約303は、リレーション201内
の全ての従業員に対して、給料がmin とmax によって指
定される二つの値の範囲でなければならないことを記述
する。制約305は、全ての従業員に対して、カラム2
09内の部門番号が部門211内の部門番号の一つでな
ければならないことを指定する。制約307は、部門2
11内の各ロウに対して、従業員201内に一つのロウ
が存在し、manager の値がnameの値に等しく、また、従
業員201のロウ内のdeptの値が部門211のロウ内の
同一の欄の値と等しくなければならないことを記述す
る。最後に、制約309は、全ての従業員e1 、全ての
従業員e2 、及び全ての部門に対して、これら二人の従
業員が同一の部門内にあり、従業員e2 がその部門の管
理者である場合は、従業員e1 の給料は、従業員e2
給料と等しいかそれ以下であること、換言すれば、どの
従業員の給料も彼の管理者の給料よりも高くてはならな
いことを述べる。
【0015】リレーション201、リレーション21
1、或はビューがリレーション201或は211から導
出されるような場合の任意のビューのリレーションに関
して、更新動作が遂行され、その変更がリレーション2
01或は211の値を伴うような場合は、図3の制約の
どれもが犯されないことを保証するための制約チェック
を行なうことが必要である。この制約チェックは、更新
コード115によって遂行される。図4は、適当な制約
チェックを含む更新コードがいかに生成されるかを示
す。制約301と、トランザクションのクラスを記述す
るトランザクション記述子403が更新コード発生器4
05に入力され、これによって記述子403によって記
述されるトランザクションに対する更新コードが生成さ
れる。更新コード115には、更新制約407が含ま
れ、これは、記述子403によって記述されるクラスに
属するトランザクションが遂行される度に、そのトラン
ザクションが制約301の一つ或はそれ以上を犯すこと
がないことを保証するためにチェックされる。
【0016】図5は、更新コード115が制約301と
トランザクション記述子403からどのようにして生成
されるかその一例を示す。トランザクション記述子40
3は、hireトランザクション501のクラスを定義す
る。新たな従業員が採用されたときに遂行されるこのト
ランザクションにおいては、新たな従業員の名前、給
料、及び部門番号を含むロウ203が従業員201に加
えられる。この新たな従業員の名前は、トランザクショ
ン記述子内にパラメータnによって表わされ、給料はパ
ラメータsによって表わされ、そして、部門番号はパラ
メータdpによって表わされる。=記号によって示され
るように、このトランザクション記述子は、hireトラン
ザクションを、トランザクションを記述するトランザク
ション言語のステートメントのシーケンスと等しい関係
にすることによって定義する。
【0017】この例においては、単一のステートメン
ト、つまり、挿入ステートメント503のみが要求され
る。insertステートメント503は、ロウ203が従業
員201内に挿入されるべきであることと、このロウの
3つの全ての欄に対してこれらの値が供給されるべきで
あることを記述する。これら値の順番は、ロウの欄の順
番に対応する。更新コード発生器405がトランザクシ
ョン記述子403を受信すると、これは、トランザクシ
ョン記述子403と制約301を使用して更新コード5
13を生成する。更新コード513は、更新制約515
を含むが、これは、本発明の原理を具現する更新制約4
07である。
【0018】従業員201内へのロウの挿入は、データ
ベース管理システム113によって提供されるプリミテ
ィブ116の一つであるinsert動作509の使用を必要
とする。insert動作509の一つの特性は、リレーショ
ンに加えられるべきロウのキーが既にリレーション内に
存在するロウに対するキーと同一である場合は、アボー
トすることである。従って、insert503がリレーショ
ン201内に従業員201の別のレコード内のname欄2
05に対する値と同一であるn(氏名を表わす)に対す
る値を持つ値を挿入するために使用された場合、insert
509は、従業員201を修正しない。
【0019】本発明の原理によると、更新制約515
は、データベース管理システム113がinsert動作50
9に対して要求する制約を反映するのではなく、更新制
約515は、insert動作509がアボートしないときに
チェックされなければならない制約のみを含む。従っ
て、更新制約515内のどの制約も、従業員201の新
たなロウ203のキー205と他のロウ203のキー2
05との関係を扱うことはない。更新コード発生器40
5がこのような制約515を生成するのは、insertステ
ートメント503が、その評価にデータベースシステム
101によってアボートする可能性のある動作を実行す
ることが要求されるようなトランザクション記述に対し
て使用される言語の表現のクラスの一つであるためであ
る。図5において、更新制約515がinsert動作が遂行
される前にチェックされ、制約515が満足されない場
合は、エラーメッセージ511が更新コード115によ
って返され、これらが満足される場合は、最後のライン
の一つ手前に示されるように、insert動作509が実行
される。insert動作509が成功した場合は、この新た
なロウが従業員201に加えられ、これがアボートした
場合は、プリミティブ動作を扱うデータベース管理シス
テム113の部分116は、エラー119を返す。
【0020】より詳細には、更新制約515は、insert
509が実行される前に、以下が真であることを要求す
る。 ・新たなロウに対して指定される給料が許される範囲内
であること。 ・新たなロウ内で指定される部門番号がリレーション2
11の部門の部門番号と同一であること。・新たなロウ
に対する給料がその新たな従業員の管理者の給料より高
くないこと。
【0021】上の更新制約515を、制約の全集合30
1と比較することによって明らかなように、更新コード
発生器405は、制約の全集合(301)を、ロウをテ
ーブル201に加えるという特定のトランザクションを
遂行する前に真でなければならない制約(515)に変
換することがわかる。
【0022】技法の論理的な説明 以下においては、アボートする可能性のある動作の存在
下において、更新制約を発見するための技法の論理的な
説明を行なう。この説明は、それに対して最弱前提が発
見されるべきトランザクションの論理的記述を提供する
単純なトランザクション言語の定義から開始される。勿
論、この技法は、この言語に制限されるものではなく、
これよりもはるかに複雑なトランザクション言語に対し
ても適用できるものである。
【0023】
【外1】
【0024】
【外2】
【0025】
【外3】
【0026】
【外4】
【0027】
【外5】
【0028】
【外6】
【0029】
【外7】
【0030】
【外8】
【0031】技法の一例としての産業への応用 上に説明の技法がAT&T社によって製造される5ESS
(5ESSはAT&T社の商標である)内の埋め込み式のリ
レーションデータベースのデータ保全性を維持するため
に使用された。このデータベースは、電話顧客、交換機
構成、及び網トポロジに関する情報を含む。データの保
全性は、呼の処理、交換機の維持、課金などのタスクを
遂行する全てのアプリケーションプログラムがデータベ
ース内の情報から導出されるために交換機の正常な機能
に対しては致命的な問題である。
【0032】5ESSデータベースは、大型で、複雑で
あり、約1000のリレーションを含む。交換機開発者
は、この保全性の問題に二つの方法にて対処してきた。
つまり、絶え間なくデータベースの監査を行なうこと
と、“安全な”トランザクションを書くことである。監
査は、絶え間なくランし、エラーが発見された場合にこ
れを報告するプログラムによって行なわれてきた。この
プログラムに対するコードは、静的保全性制約、つま
り、範囲制約を持つチュープルのリレーション計算の不
変、を宣言するための形式言語を使用して生成される。
ただし、これら保全性制約は、数千の保全性アサーショ
ン(主張)を伴ない、あるものは非常に複雑となる。
【0033】安全なトランザクションとは、結果として
決して保全性制約を犯さないようなトランザクションの
ことである。5ESS交換機に対する安全なトランザク
ションを書くプロセスは、膨大な努力を必要とし、エラ
ーも犯し易かった。これは、(1)データベースマネジ
ャへの低レベルのインタフェースを使用してC言語で初
期トランザクションを書くタスク、(2)関連のある保
全性制約を見つけて理解するタスク、(3)データの保
全性を保証するためにどのようなチェックが行なわれな
ければならないかを決定するタスク、(4)これらチェ
ックをC言語に符号化し、これらをトランザクション内
に挿入するタスクを伴う。50万ラインを超えるトラン
ザクションコードがこの方法によって手によって書かれ
てきた。
【0034】上に説明の本発明の技法が、安全なトラン
ザクションを書くプロセスを部分的に自動化するために
採用された。我々は、ステップ(1)の重荷をC言語を
高レベルのトランザクション言語にて置換することによ
って軽くし、ステップ(2−4)をトランザクション言
語内のトランザクション記述から安全なトランザクショ
ンに対するコードを自動的に生成するコード発生器にて
置換した。我々のトランザクション言語は、Qianの一次
トランザクションに基づくが、これについては、Xiaole
i Qianによって、Information Processing Letters、199
0、vol.36、pages 183-189に掲載の論文『An Axiom Syste
m for Database Transactions 』を参照されたい。この
一次トランザクションは、挿入、削除、及び更新の基本
動作、並びにシーケンシングに対する制御構造、条件、
及び制限された形式の反復を含む。この交換機に対する
このトランザクション言語と制約から生成される言語
は、上の説明の発明を具現し、従って、安全なトランザ
クションを効率的に指定する。このトランザクション言
語の適用は、常に正しいことを保証し、交換機開発者が
書かなければならないコードの量を低減し、新たなトラ
ンザクションを定義するために要求される時間を短縮す
る。
【0035】本明細書の付録の部分A、B、及びCは、
5ESS交換機内への我々の技法の応用の一例を与え
る。付録の部分Aは、データベース内のリレーションの
特定の一つの中にロウが挿入されるときに適用する制約
である。部分Bはこのロウをリレーションに挿入する動
作に対するトランザクションの記述である。部分Cは、
部分Aの制約と部分Bのトランザクションの記述から生
成される挿入コードである。注意すべき点として、挿入
コードは、図5の例におけるコードと同一の一般形式を
持ち、更新制約がverfy とend verifyとの間に包囲され
ており、プリミティブinsert動作が更新制約に続くこと
である。例えば、部分Cの9番目の行内のinsert tRlos
cdb in Rloscdbがこれに当る。
【0036】ここまで議論されたN述部は、典型的なデ
ータベースシステムの挿入動作の比較的単純なセマンテ
ィクスを持つ。但し、単純さに対する要件が存在するも
のではない。付属の部分Dは、複雑な一例としてのN述
部である。このN述部は、5ESS交換機に対する例に
おいて使用された宣言トランザクション記述言語にて表
現されており、二つの異なるリレーション内のキーの衝
突に対するチェック、並びに第二のリレーション内のイ
ンデックスの正当性のチェックを伴なう。これらチェッ
クにパスした場合は、この述語は、ロウが第三のリレー
ション内に位置されるべきであることを指定する。付属
DのN述語は、5ESS交換機内のデータベースシステ
ム内の挿入及び削除動作に対するセマンティクスの場合
と同様にシステムレベルの動作のセマンティクスを反映
することも、或はトランザクション記述言語内のステー
トメントに対して明確に定義されたセマンティクスでも
あり得る。Nセマンティクスがそれに対して明確に定義
されているトランザクション記述言語内のステートメン
トの一例は、付録の部分Bの第一のページの下部のabor
t ステートメントである。
【0037】結論 前述の詳細な説明は、当業者に、更新制約がアボートす
る可能性のある動作を持つシステム内の保全性を保証す
るためにどのように使用されるか、及びこのような更新
制約が産業用途にどのように採用されるかを示す。これ
らの技法の使用は、ここに開示されたデータベースシス
テムに制限されるものではなく、これらの技法は、可能
な変更が幾つかの制約に従うような全ての用途において
使用できるものである。例えば、これらの技法は、コン
ピュータプログラムに対するある修正がそれが作成され
た文脈の要件に従うか否かを検証するために使用するこ
ともできる。さらに、詳細な説明から、この技法が、デ
ータベースシステムに関する制約、トランザクション、
及び実際の動作を指定する多くの異なる方法にも適用で
きることが明白である。
【0038】上記のとこから、上の詳細な説明は、あら
ゆる点において、解説することと、例を挙げることを目
的とするもので、制限することを意図するものではな
く、ここに開示される本発明の範囲は、詳細な説明によ
って決定されるものではなく、特許請求の範囲を最も広
義に解釈することによって定義されるものである、こと
が理解できるものである。
【0039】
【0040】
【0041】
【0042】
【図面の簡単な説明】
【図1】本発明がその中で使用されるデータベースシス
テムの概略を示す。
【図2】一つの実施例において採用される二つのリレー
ションを示す。
【図3】前記の実施例において採用される制約を示す。
【図4】本発明に従う更新コードを生成するための装置
のブロック図を示す。
【図5】前記の例に対して生成される更新コードの一例
を示す。
【符号の説明】
111 プロセッサ 119 大容量記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ハワード ダブリュ. トリッキー アメリカ合衆国 07090 ニュージャーシ ィ,ウエストフィールド,ドリアン ロー ド 803

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 セットのデータに関するトランザクショ
    ンに対するコードを生成するための装置であって、この
    トランザクションが制約に従い、この装置が:トランザ
    クションの動作のトランザクション記述を含み、これら
    動作がセットの動作に影響を与えることなくアボートす
    る可能性のある少なくとも一つの動作を含み、この装置
    がさらに制約を指定するための制約仕様;及びトランザ
    クション記述と制約仕様に応答してコードを生成するた
    めのコード生成手段を含み、このコード生成手段がトラ
    ンザクションがアボートしない場合に制約が満足される
    か否かを示す更新制約に対するコードを生成するための
    手段を含むことを特徴とする装置。
  2. 【請求項2】 前記のコードがその中で生成されるシス
    テムがアプリケーションレベルとシステムレベルを持
    ち;更新制約に対するコードがアプリケーションレベル
    にてランし;動作がシステムレベルにてアボートするこ
    とを特徴とする請求項1の装置。
  3. 【請求項3】 前記のコードを生成するための手段が最
    弱前提条件である更新制約に対するコードを生成するこ
    とを特徴とする請求項1或は2の装置。
  4. 【請求項4】 前記のトランザクションがセットのデー
    タを修正する更新トランザクションであることを特徴と
    する請求項1或は2の装置。
  5. 【請求項5】 前記の装置がデータベースシステム内に
    実現され;前記のトランザクションがデータベースシス
    テムの更新トランザクションであることを特徴とする請
    求項1或は2の装置。
  6. 【請求項6】 データセットに関するトランザクション
    を遂行するための装置を製造する方法であって、前記の
    トランザクションが制約に従い、また、アボートする可
    能性のある動作を含み、この方法が:前記の制約とトラ
    ンザクションの記述からトランザクションがアボートし
    ない場合に制約が満足されるか否かを示す更新制約を計
    算するステップ;及びトランザクションの際に実行さ
    れ、更新制約が満足されるか否かを決定するコードを生
    成するステップを含むことを特徴とする方法。
  7. 【請求項7】 前記のアボートする可能性のある動作が
    システムレベルにてアボートし;前記のコードを生成す
    るステップがユーザレベルにて実行されるコードを生成
    することを特徴とする請求項6の方法。
  8. 【請求項8】 前記のコードを生成するステップが最弱
    前提条件である更新制約に対するコードを生成すること
    を特徴とする請求項6或は7の方法。
  9. 【請求項9】 セットのデータに関するトランザクショ
    ンを遂行する方法であって、このトランザクションが制
    約に従い、また、アボートする可能性のある動作を伴な
    い、この方法の改良点として:セットのデータを修正す
    る前に、更新制約をテストするステップを含み、この更
    新制約が満足された場合は、トランザクションがアボー
    トされない場合制約が満足されることが示され、一方、
    更新制約が満足されない場合は、セットのデータの修正
    が行なわれないことを特徴とする方法。
  10. 【請求項10】 セットのデータに関するトランザクシ
    ョンを遂行するためのデータベースシステムであって、
    これらトランザクションが制約に従い、これらトランザ
    クションがセットのデータに影響を与えることなくアボ
    ートする可能性のある動作を含み、このデータベースシ
    ステムが改良点として:更新制約をテストすることによ
    ってセットのデータの保全性を保証するための手段を含
    み、この更新制約が満足された場合、この動作がアボー
    トしない場合は制約が満足されることを示し、一方、更
    新制約が満足されない場合は、セットのデータの修正が
    行なわれないことを特徴とするデータベースシステム。
JP7126961A 1994-05-27 1995-05-26 アボートする可能性のあるトランザクションの更新制約 Withdrawn JPH07325742A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/250205 1994-05-27
US08/250,205 US5513350A (en) 1994-05-27 1994-05-27 Update constraints in transactions which may abort

Publications (1)

Publication Number Publication Date
JPH07325742A true JPH07325742A (ja) 1995-12-12

Family

ID=22946741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7126961A Withdrawn JPH07325742A (ja) 1994-05-27 1995-05-26 アボートする可能性のあるトランザクションの更新制約

Country Status (5)

Country Link
US (1) US5513350A (ja)
EP (1) EP0689136A1 (ja)
JP (1) JPH07325742A (ja)
CA (1) CA2146690A1 (ja)
TW (1) TW266276B (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752250A (en) * 1994-12-02 1998-05-12 Fujitsu Limited Instance updating method and apparatus therefor
US5987252A (en) * 1997-09-19 1999-11-16 Digital Equipment Corporation Method and apparatus for statically analyzing a computer program for data dependencies
US6427143B1 (en) * 1998-04-10 2002-07-30 Computer Associates Think, Inc. Method for loading rows into a database table while enforcing constraints
US6304876B1 (en) 1998-06-05 2001-10-16 Computer Associates Think, Inc. Method for enforcing integrity constraints in a database table using an index
US6189010B1 (en) * 1998-06-10 2001-02-13 Platinum Technology, Inc. Method for repairing constraint violations in a database management system
US6408280B1 (en) 1999-07-22 2002-06-18 Toshiba America Information Systems, Inc. Data driven constraints engine
US6453314B1 (en) 1999-07-30 2002-09-17 International Business Machines Corporation System and method for selective incremental deferred constraint processing after bulk loading data
US6820251B1 (en) * 2000-11-06 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for a software recovery mechanism
US6659183B2 (en) 2001-02-22 2003-12-09 Abb Vetco Gray Inc. Cuttings injection target plate
US20030101337A1 (en) * 2001-09-25 2003-05-29 Michael Wu Data driven constraint validation model for a printer driver
US7069539B1 (en) * 2001-12-10 2006-06-27 Cisco Technology, Inc Approach for implementing policy constraints in applications
US7013384B2 (en) 2002-01-15 2006-03-14 Lenovo (Singapore) Pte. Ltd. Computer system with selectively available immutable boot block code
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7299450B2 (en) * 2003-06-17 2007-11-20 Microsoft Corporation Undoing changes in a software configuration management system
US7519952B2 (en) * 2003-07-28 2009-04-14 International Business Machines Corporation Detecting an integrity constraint violation in a database by analyzing database schema, application and mapping and inserting a check into the database and application
US7315996B2 (en) * 2005-09-22 2008-01-01 International Business Machines Corporation Method and system for performing heuristic constraint simplification
US20080208882A1 (en) * 2007-02-28 2008-08-28 Honeywell International Inc. Method of Assisting Users In Detection and Correction of Errors In Complex Databases
US7752006B2 (en) * 2007-06-19 2010-07-06 International Business Machines Corporation Device, system and method of generating a hardware-verification test case
US8108367B2 (en) * 2008-05-20 2012-01-31 International Business Machines Corporation Constraints with hidden rows in a database
US20170323239A1 (en) 2016-05-06 2017-11-09 General Electric Company Constrained time computing control system to simulate and optimize aircraft operations with dynamic thermodynamic state and asset utilization attainment

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4947320A (en) * 1988-07-15 1990-08-07 International Business Machines Corporation Method for referential constraint enforcement in a database management system
US4933848A (en) * 1988-07-15 1990-06-12 International Business Machines Corporation Method for enforcing referential constraints in a database management system
DE68926422T2 (de) * 1988-09-23 1996-11-07 Ibm Datenbankverwaltungssystem
KR940004389B1 (ko) * 1989-10-13 1994-05-23 인터내셔널 비지네스 머신즈 코포레이션 관계형 데이타베이스에 대한 액세스플랜 발생 방법 및 시스템
US5267346A (en) * 1990-11-14 1993-11-30 Fujitsu Limited Combination problem solving apparatus
DE69217228T2 (de) * 1991-08-07 1997-08-21 Unisys Corp Verfahren zum aufstellen von multi-objekt-bedingungen in dateien
US5355474A (en) * 1991-09-27 1994-10-11 Thuraisngham Bhavani M System for multilevel secure database management using a knowledge base with release-based and other security constraints for query, response and update modification

Also Published As

Publication number Publication date
US5513350A (en) 1996-04-30
CA2146690A1 (en) 1995-11-28
EP0689136A1 (en) 1995-12-27
TW266276B (ja) 1995-12-21

Similar Documents

Publication Publication Date Title
JPH07325742A (ja) アボートする可能性のあるトランザクションの更新制約
US5926819A (en) In-line triggers
US7555502B2 (en) Detecting database events using recovery logs
Rinard Acceptability-oriented computing
KR20010103604A (ko) 모델링 도구 제작 장치 및 방법
Hogan A practical guide to database design
US10733057B2 (en) Techniques for application undo and redo using SQL patchsets or changesets
US7464091B2 (en) Method and software for processing data objects in business applications
Deng et al. Testing database transaction concurrency
US7225302B2 (en) Method and software application for avoiding data loss
US7409412B2 (en) Data element and structure for data processing
Chen et al. An execution model for limited ambiguity rules and its application to derived data update
Willmor et al. Exploring test adequacy for database systems
US7430569B2 (en) Computerized replication of data objects
JP5043913B2 (ja) データウェアハウスリフレッシュ時のデータ損失を防止する方法
Montali et al. From DB-nets to coloured petri nets with priorities (extended version)
Geppert et al. Specification and implementation of consistency constraints in object-oriented database systems: Applying programming-by-contract
US8150821B2 (en) System and method for using generic utilities to perform database utilities on mainframe operated DB2 databases
McFarland et al. Object-oriented database management systems revisited
Alagić et al. Verifiable object-oriented transactions
US11810043B1 (en) Two fold validation for hierarchical data models
Geppert et al. Rulebase Evolution in Active Object-oriented Database Systems: Adaptive the Past to Future Needs
Kuo et al. Using constraints to manage long duration transactions in spatial information systems
Griefahn First specification of Phoenix, an active database programming language
Singh et al. Requirements for object management in software engineering environments

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020806