JPH02116973A - リレーシヨナル・データベース管理システム - Google Patents

リレーシヨナル・データベース管理システム

Info

Publication number
JPH02116973A
JPH02116973A JP1245366A JP24536689A JPH02116973A JP H02116973 A JPH02116973 A JP H02116973A JP 1245366 A JP1245366 A JP 1245366A JP 24536689 A JP24536689 A JP 24536689A JP H02116973 A JPH02116973 A JP H02116973A
Authority
JP
Japan
Prior art keywords
descriptor
rel
relational
database
parent
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.)
Granted
Application number
JP1245366A
Other languages
English (en)
Other versions
JPH0652531B2 (ja
Inventor
Richard A Crus
リチヤード・アンソニイー・クラウス
Michael J Dockter
マイケル・ジヨン・ダツクター
Robert W Engles
ロバート・ウイリアム・エングルズ
Donald J Haderle
ドナルド・ジエームズ・ハードレイ
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22941844&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH02116973(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02116973A publication Critical patent/JPH02116973A/ja
Publication of JPH0652531B2 publication Critical patent/JPH0652531B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、リレーショナル・データベース管理システム
に関し、具体的には、データベース・マネージャ内の参
照制約の構造的表示に関する。
B、従来技術 データベース管理システムは、データを記録し維持する
コンピュータ・システムである。リレーシロナル・デー
タベース管理システムでは、データが「テーブル」に記
憶される。テーブルは、水平の行と垂直の列をもつもの
と考えることができるインターナショナル・ビジネス・
マシーンズψコーポレーションのDatabase2プ
ロダクトは、代表的なリレーショナル・データベース管
理システムの例である。
リレーシロナル・データベース内で、重要な機能は「参
照一貫性」機能である。参照一貫性は、テーブルの列間
で必要な関係を強制することにより、2つの異なるテー
ブル(または同じテーブル)の関係する列間のデータ値
の一貫性を保証する。
こうした必要な関係は、「参照制約」と呼ばれている。
「従属テーブル」の行は、その「外部キー」の値が「親
テーブル」のある行の「基本キー」の値と一致する場合
、またはその外部キーの値が空、すなわち値を持たない
場合に、ある制約に関して参照一貫性をもつ。言い替え
れば、空でない値をもつ従属テーブルのすべての行は、
親テーブルに対応する親行をもたなければならない。従
属行の外部キーが親テーブル中に一致する基本キー値を
もたない場合、その参照制約に違反することになり、こ
れらのテーブルを含むデータベースの参照一貫性が失わ
れる。参照制約を強制し、それによってデータベースの
参照一貫性を維持するために、システムは、空でない外
部キー値が常に対応する基本キー値をもつことを保証し
なければならない。
参照一貫性を実施する際、システムはまた、基本キー値
が一義的であること、すなわち「実体一貫性」と呼ばれ
る特性も保証する。
例を挙げると、従業員番号と部門番号を含むEMPLO
YEEテーブルと、部門番号を含むDEPARTMEN
Tテーブルを考えてみる。参照一貫性のため、EMPL
OYEEテーブル中のすべての部門番号に対して、DE
PARTMENTテーブル中に同じ一義的な部門番号が
なければならない。それには、EMPLOYEEテーブ
ルで定義された参照制約が必要になる。DEPARTM
ENTテーブルの部門番号が基本キーとなり、EMPL
OYEEテーブルの部門番号はこの制約では外部キーと
なる。
データベースのデータが、基本キーまたは外部キーに影
響を与えるような操作を受けるときは常に、参照一貫性
が強制されなければならない。構造化照会言語(SQL
)を使用するリレーショナル・データベース管理システ
ムでは、データは、主としてLOADl lN5ERT
1DELETE及びUPDATEコマンドとそれらの結
果生じる動作によって修正される。LOAD及びlN5
ERTコマンドは共にデータをデータベースに追加(挿
入)する。LOADは通常多くの行を追加し、lN5E
RTは僅かの行しか追加しない。DELETEは1行ま
たは複数の行を削除し、UPDATEは1行または複数
の行の内容を変更する。これらの動作の1つが発生する
ときは常に、データベースの参照一貫性を確保するため
、修正された行に関する参照制約が強制されなければな
らない。
リレーショナル・データベース管理システムにおいて参
照一貫性を維持する一方法は、いくつかの事前定義した
事象が発生するときに実行される、システムの外部に常
駐する手続き(プログラムまたはルーチン)を支援する
手段を、システムに設けるものである。こうした手続き
の例は、データが特定のテーブルに挿入されるとき常に
特定のプログラムを実行することである。手続きは、テ
ーブルのインデックスを更新したり、新しく挿入された
データに対して参照制約を強制したりする。
後者は、参照一貫性の「手続き的」実施の例である。い
くつかのリレーショナル・データベース管理プロダクト
に参照一貫性の手続き的実施が加えられている。
C5発明が解決しようとする問題 参照一貫性の手続き的実施は、いくつかの欠点を有し、
そのため速度が遅くなり効率が低くなる。
手続きは外部(システム外)にあるので、システムと手
続きの間のインターフェースで余分の処理が必要である
。この処理オーバーヘッドを、全体システム内の内部サ
ブシステムは蒙らない。したがって、外部手続きに関連
する処理オーバーヘッドのない参照一貫性の実施が求め
られている。
より重要なことであるが、システムがデータを修正する
前後(ただし修正中ではない)に外部手続きが呼び出さ
れるので、データが2回アクセスされなければならない
。1回はシステムにより、2回目は手続きによる。デー
タ・アクセスの回数が2倍になるため、システム全体の
速度が大幅に低下することがある。したがって、新しく
修正されたデータに1回だけアクセスし、手続き的実施
に付随する冗長な2重アクセスが不要な、参照一貫性の
実施も求められている。
参照一貫性の手続き的実施はもう一つの欠点をもつ。す
なわちそれらが実施する制約は、コンピュータ・プログ
ラマにしか理解できない。手続きを書くのに使われるプ
ログラミング言語は、データベース・ユーザにはほとん
ど理解できず、また制約を変更する処理はデータベース
の通常のユーザには不可能である。プログラマ以外の人
が参照制約を容易に理解し修正できる、参照一貫性の実
施が求められている。
D0問題点を解決するための手段 上記の必要性及び以下で説明するその他の必要性は、以
下のように要約される本発明によって溝たされる。
本発明は、参照一貫性のオブジェクティブ実施を含む、
コンピュータで実施したリレーシロナル・データベース
管理システムからなる。このシステムは、データのレコ
ードを含む少なくとも2つのりレージぢナル・テーブル
と、少なくとも1つの関係記述子を含む。関係記述子は
テーブル間の参照制約を記述し、制約の親テーブルと従
属テーブル及び基本キーと外部キーを識別する。関係記
述子は、実施態様にそのオブジェクティブ文字をもたら
す、データベース・システム内の独立したオブジェクト
である。このシステムはまた、テーブルが修正されると
き関係記述子にアクセスする手段と、テーブルが修正さ
れるとき関係記述子によって記述される参照制約を強制
する手段も含む。
関係記述子は、システムの実行中により迅速に実行する
ため、コンパイルしデータベース・マネージャに記憶す
ることが好ましい。関係記述子にアクセスする手段は、
関係記述子とデータベース・テーブルを記述するレコー
ド記述子の間にシンボリック・ポインタの2つの連鎖を
含むことが好ましい。
E、実施例 第1図は、6つの参照制約によって関係づけられた3つ
のテーブルを示す。DEPARTMENTテーブル10
は、番号DEPTNOと名前DEPTNAMEによっで
ある企業の各部門を記述し、そのマネージャMGRNO
とそれが属する部門の番号ADMRDEPTを識別する
。EMPLOYEEテーブル12は、すべての従業員を
従業員番号EMPNOによって識別して、基本的個人情
報をリストし、その従業員が山く部門WORKDEPT
を識別する。PROJECTテーブル14は、その企業
が現在取り組んでいる各プロジェクトを記述し、プロジ
ェクト番号PROJNo、プロジェクト名PROJNA
ME1従業員責任者及び責任部門をリストし、その個別
プロジェクトが属する大プロジェクトMAJPROJを
識別する。第3図ないし第5図にこれらのテーブルのサ
ンプル・データを示す。
第1図のテーブルは、第2図にリストするように、6つ
の参照制約によって互いにかつそれ自体に関係づけられ
ている。制約R116は、DEPARTMENTテーブ
ル10の統轄部門AMRDEPTがDEPARTMEN
Tテーブルの有効部門番号DEPTNOであることを必
要とする。
すなわち、制約R116の親テーブルはDEPARTM
ENTであり、基本キーはD E PARTMENTテ
ーブルのDEPTNO列であり、基本インデックスはD
EPTNOインデックスである。
制約R116の外部キーは、DEPARTMENTテー
ブル10のADMRDEPT列であり、DEPARTM
ENTを従属テーブル及び親テーブルにする。制約R1
16は、その親テーブルと従属テーブルが同じなので、
自己参照制約である。
制約R218は、EMPLOYEE (従属)テーブル
12の各従業員の勤務部門WORKDEPT(外部キー
)が、DEPARTMENT (親)テーブル10の有
効部門DEPTNO(基本キー)であることを必要とす
る。制約R320は、PROJECTテーブル10の責
任部門RESPDEPTが、DEPARTMENTテー
ブル10の有効部1・・IDEPTNOであることを必
要とする。
制約R422は、DEPARTMENTテーブル10の
部門のマネージャMGRNOが、EMPLOYEEテー
ブル12の有効従業ノIEMPNOであることを必要と
する。制約R524は、PROJECTテーブル14の
プロジェクトの責任従業員RESPEMP;6(、E 
M P L OY E E f −プル12の有効従業
員EMPNOであることを必要とする。最後に、制約R
626は、PROJECTテーブル14のプロジェクト
の主プロジェク)MAJPROJが、それ自体PROJ
ECTテーブル16の有効プロジェクト番号PROJN
Oであることを必要とする。R6も自己参照制約である
この説明で使用する用語を要約すると、用語「行」は、
テーブル中にあるレコードの外観を指し、「レコード」
は、データベース内に記憶されているその行のデータの
内部表示を指す。「粗打」は「親テーブル」の行であり
、1つまたは複数の従属行の外部キー値と一致する「基
本キー値」をもつ。「従属行」は「従属テーブル」の行
であり、ある粗打の基本キー値と一致する「外部キー値
」をもつ。「自己参照制約」とは、同じテーブル内で定
義される制約である。すなわち外部キーと基本キーが同
じテーブルにある。自己参照テーブル内に、外部キーが
同じ行の基本キーと一致する「自己参照行」があること
がある。制約R116とR626が自己参照制約である
。「サイクル」とは、サイクル内のテーブルがそれ自体
の従属テーブルであるような1組の制約である。制約R
218及びR422は1サイクルを形成する。サイクル
内に、所与の行がそれ自体の従属行となっている行のサ
イクルがあることがある。
第2図に示した各制約は、「挿入規則」、「削除規則」
及び「更新規則」を含む。これらの規則は、データベー
スの修正が行なわれるききに参照制約に関してどんな活
動が行なわれるかを指定する。
挿入規則には1種類の規則lN5ERTだけがあり、こ
れは、従属テーブルに挿入されたどの行も、それが参照
する親テーブルの基本キーの値に等しい外部キー値をも
つことを必要とする。言い替えれば、空でない外部キー
値をもつすべての従属テーブルのすべての行は、その当
該の親テーブルに対する行をもたなければならない。
削除規則は、親テーブルの行が削除されるときに何が起
こるかを指定する。削除規則には3つのオプションがあ
る。DELETE  RESTRICTでは、レコード
の基本キー値に等しい外部キー値をもつ従属テーブルの
行がある場合、親テーブルの行は削除できない。すなわ
ち、従属行をもつ間は粗打は削除できない。DELET
E  CASCADEでは、親テーブルの行が削除され
る場合、この行の基本キー値に等しい外部キー値をもつ
従属テーブルのすべての行も削除される。言い替えれば
、粗打を削除すると、その従属行(及びそれらの従属行
など)のすべてが自動的に削除される。
最後に、DELETE  SET  NULLでは、親
テーブルの行が削除される場合、削除されている粗打の
基本キー値に等しい従属テーブルのすべてのレコードの
外部キーが空の値に設定される(すなわち、外部キーが
値をもたないことを示す状態)。SET  NULLオ
プションは、従属行が、従属行の無差別的削除を避けな
がら、存在しない粗打を参照しないことを保証する。
更新規則は、基本キーまたは外部キーが更新されるとき
に何が起こるかを指定する。外部キーの更新規則は、外
部キーが空でない値に更新される場合、その値が親テー
ブルのある行の基本キーに一致しなければならないこと
を保証する。基本キーの更新規則は、削除規則と同じ3
つのオプションをもつが、それらの動作のしかたは幾分
・異なる。
UPDATE  RESTRICTは、従属テーブルに
粗打の基本キー値に等しい外部キー値をもつ行がある場
合、親テーブルの基本キーが更新されないようにする。
すなわち、粗打の基本キーは、その従属行の外部キーが
更新されるまで更新できない。UPDATE  CAS
CADEは、粗打の基本キーの更新をその行の従属行の
外部キーに伝播する。親テーブルの基本キーがある値に
更新される場合、元の外部キーの値が親テーブルの元の
基本キーの値に等しかった従属テーブルのすべての行の
すべての外部キーが、基本キーの新しい値と一致するよ
うに更新され、これらの従属行に従属する行も更新され
る。UPDATE  5ETNULLでは、親テーブル
の基本キーが更新される場合、その基本キーが更新され
ている新行の基本キーの値に等しい従属テーブルのすべ
ての行の外部キーが空の値に設定される(すなわち、外
部キーが値をもたないことを示す状態)。
オブジェクティブ記述子 本発明の好ましい実施例では、各テーブルは、「レコー
ド記述子」によって記述される。レコード記述子は、テ
ーブルの名前と、テーブルの各レコードを含むフィール
ドの記述を含む。各レコード記述子は、データベース・
システム内で独立したオブジェクトとして存在し、シス
テム内の他のテーブル記述子に影響を及ぼすことなく(
テーブルの定義を修正するために)修正することができ
る。このために、こうした記述子は「オブジェクティブ
」と呼ばれる。
レコード記述子に加えて、各テーブルの各インデックス
は、「インデックス記述子」によって記述される。イン
デックス記述子は、インデックスが定義される対象とな
るキーの記述子を含む。すなわち、親テーブルの基本キ
ーのインデックス記述子(「基本キー・インデックス記
述子」)は、フィールドの数と基本キー列の親テーブル
の関連フィールド番号のリストを含む。インデックス記
述子モ、データベース・システム中で独立したオブジェ
クトとして存在し、個別に修正できるので、オブジェク
ティブである。
本発明は、参照制約記述を「関係記述子」と呼ばれるオ
ブジェクトにコンパイルする。このオブジェクトは、そ
れぞれ単一の制約のメタ・データ記述子を含む。コンパ
イルの特徴は、本発明の参照一貫性の実施と従来技術の
実施の主な相違点であり、メタ・データ記述子中で表現
される規則に応じて参照規制を強制するために、データ
ベース・マネージャに埋め込まれた単一の共用手続きを
構成できるようにする。オブジェクティブの特徴は、本
発明の実施を、従来技術による参照一貫性の手続き的実
施から区別するものである。
各関係記述子は、親テーブルと従属テーブル、親テーブ
ルの基本インデックス、及び外部キーを構成する列を識
別して、単一の参照制約を完全に記述する。基本インデ
ックスの記述子は基本キーの列を識別する。(任意選択
の)インデックスが、外部キーの列で定義されたり、イ
ンデックス・キーの一番左の列が外部キーを含むような
列で定義されたりしている場合、関係記述子はこの外部
キー・インデックスも識別する。関係記述子はまた制約
の削除規則と更新規則も指定する。本発明のオブジェク
ティブ関係記述子は、参照制約を強制する処理を大いに
単純にする。というのは、参照一貫性の他の実施で見ら
れる様々な手続きの代わりに、単一の強制手続きが使用
できるからである。さらに、オブジェクティブ関係記述
子は、システム動作中に、コンピュータの高速揮発性メ
モリにおけるデータベース・システムの指定の一環とし
て配置及びアクセスされる。これにより、システムは、
データベース管理システムのメモリ常駐指定の外部に制
約記述子を記憶する、従来技術による参照一貫性の実施
に比べて、参照制約の記述に対して非常に迅速なアクセ
スができる。
インデックス記述子は、ポインタによってレコード記述
子から連鎖される。関係記述子は、2組のポインタによ
って2重にレコード記述子から連鎖される。1組の関係
記述子ポインタは、所与のテーブルを親テーブルとする
関係を識別する、「親テーブル連鎖」を形成する。もう
1組の関係記述子ポインタは、所与のテーブルが従属テ
ーブルとなる関係を識別する、「従属テーブル連鎖」を
形成する。これらの連鎖は、迅速な識別とテーブルの修
正に影響を及ぼす参照制約の強制を可能にする。
制約規則のメタ・データ記述が、親連鎖及び従属連鎖に
参加する単一オブジェクトにコンパイルされるので、制
約の除去の管理が大幅に単純になる。制約を除去する方
法は2つある。第1に、2つのテーブル間の参照一貫性
がもはや望まれないときに制約は明示的に除去される。
第2に、関係のテーブルの1つがなくなるとき、その制
約が暗示的に除去される。
簡単な場合、制約が明示的に除去されると、関係記述子
がすべての連鎖から取り除かれパージされて、2つのテ
ーブルの間の関係が終了する。
より複雑な場合には、その関係中のテーブルの1つが脱
落するとき、脱落したテーブルに関係するすべての関係
が除去されなければならない。脱落したテーブルのレコ
ード記述子は、それが親テーブルとなる関係記述子の連
鎖、及びそれが従属テーブルとなる関係記述子の連鎖に
対するアンカを含むので、脱落したテーブルに関係する
制約をすべて除去するには、各アンカから開始して、そ
の連鎖中の各関係記述子をパージする必要がある。これ
は、脱落したテーブルと他のテーブルの間のすべての関
係を除去する効率のよい方法である。
データベース内での記述子の編成 レコード、インデックス、及び関係記述子の編成は、第
6図を参照すると最もよくわかる。第6図は、第1図な
いし第5図に示した3つのテーブルのレコード、インデ
ックス、及び関係記述子を概略的に示したものである。
第6図は、2つのデータベース、データベースA28と
データベースB30を示す。データベースA20は、第
3図と第4図に示した上記のDEPARMENTテーブ
ル10とEMPLOYEEテーブル12を含む。データ
ベースA28はさらに、これらのテーブルのレコード、
インデックス及び関係記述子を含む。データベースB3
0は、第5図のPROJECTテーブル14とそのテー
ブルに関連するインデックス及び記述子を含む。
DEPARTMENTレコード記述子32は、DEPA
RTMENTテーブル10のレコードを記述する情報を
含む。こうした情報には、たとえばテーブル10を含む
列の形式と長さがある。こうした情報は本発明の理解ま
たは説明に必要でないので、これ以上説明しない。DE
PARMENTレコード記述子32は、DEPTNOイ
ンデックス38のインデックス記述子36を指すポイン
タ34を含む。DEPTNOインデックス38は、DE
PARMENTテーブル10の基本キーであるDEPT
NO列に定義されている。すなわち、DEPTNOイン
デックス38は、DEPARTMENTテーブル10の
基本キー・インデックスである。
第2のインデックスであるDEPTNAME列0は、D
 E P A RT M E N T f−プル1oの
DEPTNAME列に定義され、DEPARTMENT
テーブルの行を部門名のアルファベット類に並べる手段
をもたらす。DEPTNAMEインデックス40は、そ
の関連するインデックス記述子42によって記述される
。DEPTNOインデックス記述子36からのポインタ
44は、DEPTNAMEインデックス記述子42を識
別する。したがって、ポインタ34.44は、DEPT
NOインデックス36及びDEPTNAMEインデック
ス記述子42を、DEPARTMENTレコード記述子
32から始まる連鎖に入れる。
本発明の好ましい実施例では、データベースの関係記述
子は、そのデータベースのレコード記述子から2重に連
鎖される。1組の連鎖は様々な関係記述子をその当該の
親テーブルに接続し、第2組の連鎖は、関係記述子をそ
れらの従属テーブルに接続する。
第6図を見ればわかるように、DEPARTMENTレ
コード記述子32は、2つのポインタ46.48を含む
。第1のポインタ46は、DEPARTMENTテーブ
ル10が親テーブルとなる第1の関係記述子を指す。第
2のポインタ48は、DEPARTMENTテーブルが
従属テーブルとなる第1の関係記述子を指す。参照を容
易にするため、第6図の関係記述子との間のポインタは
、関係記述子の「親連鎖」中のポインタが「従属連鎖」
中の上記ポインタとなるように引かれる。
DEPARTMENTテーブル10が親テーブルである
第1の関係記述子は、参照制約R116の記述子50で
ある。制約R116は自己参照制約であり、その親テー
ブル及び従属テーブルとして同じテーブルDEPART
MENT10をモツ。R1関係記述子50はDEPAR
TMENT親連鎖中の最初の記親子鎖中るが、DEPA
RTMENT従属連鎖中の最後の記述子である。すなわ
ち、ポインタ46は、DEPARTMENTレコード記
述子32からR1関係記述子5oを指すが、ポインタ4
8は、DEPARTMENTしコード記述子48からD
EPARTMENT従属連鎖の第1のメンバ、すなわち
R4関係記述子56を指す。DEPARTMENTレコ
ード記述子32からの従属連鎖は、R4記述子56から
R1関係記述子50に続く。
レコード記述子32のDEPARTMENTからの親連
鎖は、R1関係記述子50からR2関係記述子52に、
またそこからR3関係記述子54に続く。制約R3の親
テーブルと従属テーブルは、異なるデータベース中にあ
る。その親テーブルDEPARTMENT10はデータ
ベースA28中にあるが、その従属テーブルPROJE
CT7BはデータベースB30中にある。1つのR3関
係記述子54は、上記のようにデータベースA28中に
ある。第2のR3関係記述子55は、データベースB3
0中にあり、2つの逆向きのポインタ57によって第1
のR3関係記述子に接続される。
第2のR3記述子55は、PROJECTしニアード記
述子76から始まる従属連鎖の先頭にある。
データベースA28のEMPLOYEEテーブル12は
、DEPARTMENTテーブル10と同様に2つのイ
ンデックスをもつ。EMPLOYEEテーブル12のE
MPNO列のEMPNOインデックス58は、そのテー
ブルの基本キー・インデックスであり、EMPNOイン
デックス記述子60によって記述される。WORKDE
PTインデックスθ2は、WORKDEPT列のEMP
LOYEEテーブル12を指し、従業員が勤務する部門
に応じた従業員の行の配列を維持する。WORKDEP
Tインデックス62は、WORKDEPTインデックス
記述子64によって記述される。EMPNOインデック
ス記述子60もWORKDEPTインデックス記述子6
4も、EMPLOYEEレコード記述子66から連鎖さ
れている。
EMPLOYEEテーブル12の関係記述子の親連鎖は
、EMPLOYEEレコード記述子66から始まる。E
MPLOYEEテーブルをその親テーブルとする第1の
参照制約は、制約R422であり、R4関係記述子56
によって記述される。すなわち、EMPLOYEEレコ
ード記述子66は、R4関係記述子56を指すポインタ
68を含む。EMPLOYEEテーブル12の親連鎖は
、R4関係記述子56からR5関係記述子70に続く。
EMPLOYEEテーブル12は唯一の参照制約R21
8の従属テーブルである。すなわち、EMPLOYEE
レコード記述子66からの従属連鎖は、R2関係記述子
52だけに延びる。
データベースB30中のPROJECTテーブル14は
、1つのインデックス、すなわちそれに関連するインデ
ックス記述子74によって記述される、その基本キー・
インデックスPROJ N。
72だけをもつ。PROJNoインデックス記述子74
は、PROJECTレコード記述子76から連鎖される
。PROJECTテーブル14は、唯一の参照制約、す
なわち自己参照制約Re  26だけの既テーブルであ
る。したがって、(PROJECTレコード記述子76
から始まる)PROJECT親連鎖は、1つのメンバー
R6関係記述子78しかもたない。
PROJECTテーブル14は、3つの参照制約、R3
20、R524、R626の従属テーブルである。制約
R626は自己参照制約であり、その関係記述子78は
PROJECTI!連鎖中の第1のかつ唯一の記述子で
ある。R6記述子78は、PROJECT従属連鎖中の
最後のメンバーである。
参照制約R524の親テーブルと従属テーブルは、異な
るデータベース中にある。その親テーブルEMPLOY
EE 12はデータベースA28中にあるが、その従属
テーブルPROJECT76はデータベースB30中に
ある。制約R3と同様に、第1のR5関係記述子70は
データベースA28中にあり、第2のR5記述子80は
データベースB30中にある。したがって、PROJE
CTレコード記述子76からの従属連鎖は、まずデータ
ベースB30のR3関係記述子55へ、そこからデータ
ベースBのR5関係記述子80へ、最後にR6記述子7
8へ延びる。この場合も、2つの逆向きのポインタが、
第1及び第2の関係記述子70.80をリンクする。
レコード記述子 上述のように、レコード記述子32.88.76は、本
発明の好ましい実施例の範囲内で動作するために、2つ
のポインタ・フィールドしか必要としない。これらのフ
ィールドの1つは、レコード記述子のテーブルが親テー
ブルとなる第1の関係記述子を指すポインタ、すなわち
レコード記述子の親連鎖中の第1の関係記述子を指すポ
インタを含む。もう一方のフィールドは、従属連鎖中の
第1の関係記述子を指す。これらのポインタを下記の表
1にリストする。
表ル コード記述子に追加されるフィールド RFC,A  そのレコードを親連鎖とする第1の関係
記述子を指すポインタ REC,B  そのレコードを従属連鎖とする第1の関
係記述子を指すポインタ RFC,Aは、関係記述子の親連鎖中の第1の関係記述
子を指すポインタである。関係記述子のREL、Eフィ
ールド(以下で説明する)は、親連鎖を、このレコード
記述子テーブルが親テーブルとなる任意の追加関係記述
子に続ける。
RFC,Bは、関係記述子の連鎖中の第1の関係記述子
を指すポインタである。その連鎖中では、このテーブル
はその関係の従属テーブルである。
関係記述子のREL、Jフィールドは、従属連鎖を、こ
のレコード記述子のテーブルを従属テーブルとする任意
の追加関係記述子に続ける。
関係記述子 表2に、関係記述子を構成するフィールドをリストする
表2 関係記述子のフィールド REL、A  関係名 REL、B  (挿入が許される前に必要な)基本キー
・インデックスを指すポインタ REL、C親テーブルのレコード記述子を指すポインタ REL、D  異なるデータベース中にある従属テーブ
ルの関係記述子を指すポインタ REL、  E REL、  F REL、G REL、H REL、  I REL、  J REL、K REL、  L 同じ親テーブルの次の関係記述子を 指すポインタ 外部キーの記述:フィールドの数、 外部キー列中のレコードの関係フィー ルド番号のリスト 外部キー・インデックスのインデッ クス記述子を指すポインタ(任意選 択) 従属テーブルのレコード記述子を指 すポインタ 異なるデータベース中にある親の関 係記述子を指すポインタ 同じ従属テーブルの次の関係記述子 を指すポインタ 削除規則″RESTRICT” ”CASCADE”または”5ET NULL″ 更新規則″RESTRICT″ CASCADE”l:it″5ET NULL″ 関係記述子の内容の概略を示すと、各関係記述子は、そ
の制約の親テーブルと従属テーブル、外部キー、既テー
ブルと従属テーブルにアクセスするためのアクセス経路
(インデックスまたは走査)、削除規則及び更新規則を
記述する。親テーブルは、常に基本キー・インデックス
を介してアクセスされるので、制約の基本キーの記述は
、基本キー・インデックスのインデックス記述子から取
り出される。親テーブルと従属テーブルが同じデータベ
ース中にある場合、各制約ごとに1つの関係記述子があ
り、親テーブルも従属テーブルもそれを指す。2つのテ
ーブルが異なるデータベース中にある場合、関係記述子
のコピーが各データベースに存在している。
フィールドREL、Aは、関係名、たとえばR1″を含
む。当然、より記述的な関係名、たとえばADMRDE
PT″を使ってもよい。
REL、Bは、制約の基本キー・インデックスのインデ
ックス記述子を指すポインタを含む。制約が定義される
と、基本キー値の一義性の制約(実体一貫性)を強制す
る、Bツリー・インデックス・タイプのアクセス機構が
存在するかどうかが判定される。こうした一義的なイン
デックスが存在スる場合、そのインデックス記述子を指
すポインタが、REL、Bに入れられる。これは、lN
5ERT動作で基本キーの一義性の制約に違反したかど
うかを迅速に決定するための手段をもたらす。基本キー
の一義性の制約を強制する他の機構も利用できるが、好
ましい実施例ではそれは実施されない。こうした機構が
存在しない場合、lN5ERTは制約が1つ定義される
まで禁止される。それが定義されたとき、その条件が現
在溝たされているかどうか判定するため、すべての関係
記述子が照会され、REL、Bフィールドはインデック
ス記述子を指すようになる。
REL、Cは、親テーブルのレコード記述子を指し、制
約の強制中に基本キー・フィールドの属性に対するアク
セスを可能にする。代わりに、基本キー・フィールドの
属性を関係記述子中で複製することもできるが、こうし
た複製は親テーブルのレコード記述子を指す方法はど望
ましくはないと考えられる。
従属テーブルが関係記述子とは別のデータベース中にあ
る場合、REL、Dフィールドは、そのデータベース内
の対応する関係記述子の記号アドレスを含む。REL、
Dの記号アドレスは、他方のデータベースの名前と、そ
のデータベース内の対応する関係記述子を指すポインタ
からなる。
REL、Eは、親達鎖中の次の関係記述子、すなわち、
同じ親テーブルをもつ次の関係記述子を指す。REL、
Fフィールドは、外部キーの記述を含む。具体的には、
外部キーのフィールド数とレコード内の元のフィールド
位置を含む。
REL、Gは、制約の外部キー・インデックスがある場
合、それを指すポインタを含む。制約が定義されると、
その外部キーに一致するBツリー・インデックス、また
はその一番左の列が外部キーに一致するインデックス・
キーをもつBツリー・インデックスが存在するかどうか
判定される。そのようなりツリー・インデックスが存在
する場合、そのインデックスの記述子を指すポインタが
REL、B中に置かれる。外部キー・インデックスが存
在すると、DELETE及びUPDATE演算子が親レ
コードのDELETEまたは基本キーのUPDATEに
続いて従属テーブルに直接アクセスする手段がもたらさ
れ、そのためそれらの実行速度が上がる。外部キー・イ
ンデックスが存在しない場合、基本キーのDELTEと
UPDATEが単にゆっくりと進行する。親レコードに
対するこうした活動のたびに一致する従属レコードを見
つけるため、テーブルがすっかり走査される。
致するアクセス機構が後で定義される場合、関連するイ
ンデックス記述子を指すポインタがここで供給される。
REL、Hフィールドは、従属テーブルのレコード記述
子を指すポインタを含む。これは、制約強制中に外部キ
ー・フィールドの属性を供給する。
代わりに、外部キー・フィールドの属性を、関係記述子
中で複製することもできるがこうした複製は、従属テー
ブルのレコード記述子を指示する方法はど望ましくはな
いと考えられる。
親テーブルが関係記述子とは別のデータベース中にある
場合、REL、Iフィールドはそのデータベース内に対
応する関係記述子の記号アドレスを含む。REL、Dフ
ィールドの記号アドレスと同様に、このアドレスは、他
方のデータベースの名前とそのデータベース内の対応す
る関係記述子を指すポインタからなる。
REL、Jは、従属連鎖中の次の関係記述子、すなわち
現記述子と同じ従属テーブルをもつ次の関係記述子を指
すポインタを含む。
REL、には、制約削除規則“RESTRICT″ C
ASCADE″、または“’SET  NU L L 
”のどれかを含む。同様に、REL、Lも、制約更新規
則″RESTRICT″ ”CASCADE″またはS
ET  NULL″のどれかを含む。
制約作成 制約は、従属テーブルの作成時、またはテーブルの定義
後に作成される。どちらの場合も、叙テープルがすでに
存在してなければならず、制約の外部キーと一致する基
本キーをもっていなければならない。制約に対する関係
記述子を作成する好ましい実施例の方法の疑似コードに
よる実施を、例1のプログラム断片に示す。既テーブル
と従属テーブルが共に定義されており、制約、親テーブ
ル及び従属テーブルの名前、外部キ一定義及びDELE
TE及びUPDATE規則が入力されてプログラム断片
に利用できると仮定されている。
例1 関係記述子作成用疑似コード 親テーブルのレコード記述子(PAR REC)を見つける。
IF外部キー列が長さと形式において基本キー列と一致
しない場合、THEN 作成処理を終了する。
従属テーブルのレコード記述子(DEPREC)を見つ
ける。
/==テーブルに関連する関係記述子を割り振り、会式
化し、初期設定する=/ 104 すべでのフィールドがOに設定された新しい空
の関係記述子(NEW  REL)を割り振り、書式化
する。
105  NEW  REL、A=制制約上設定する。
/=制約名をフィールドREL、Aに 記憶する=/ 106  IF親テーブルの基本キーに固有のインデッ
クスが存在する場合、THEN 107   NEW  REL、B=その(基本キー)
インデックスのインデックス記述子を 指すポインタに設定する。
/==本キー・インデックス記述子 を指すポインタを、フィールドRE L、Bに記憶する=/ 108  NEW  REL、C=PARRECを指す
ポインタに設定する。
/=親のレコード記述子を指すポイン タを、新しい関係記述子のフィールド REL、Cに記憶する=/ /=新しい関係記述子を親連鎖に接続する=/109 
 IF  PARREC,A=Oの場合、HEN /==テーブルはまだ他の制約で親テーブルになってい
ない=/ 110   PARREC,A=NEW  RELを指
すポインタに設定する。
/=現関係記述子を親連鎖の先頭に 置く=/ 111  ELSE 112   D。
113  親達鎖中の適切な挿入点を求めて、(PAR
REC,Aで始まる)yt連 鎖を探索する。
114  関係記述子中の挿入点の前のREL。
E=NEW  RELを指すポインタに設定する。
NEW  REL、E==入点に続く関係記述子(があ
る場合、それ)を指す ポインタに設定する。
/=現関係記述子を親連鎖の適切な 位置に押入する=/ 115   END 116  NEW  REL、に=除去規則に設定する
117  NEW  REL、L==新規則に設定する
/==属テーブルが他のデータベース中にある場合に、
対応する関係記述子を作成する=/118  IF親レ
し−ド記述子PARRECと従属レコード記述子DEP
  RECが別のデータベースにある場合、THEN 119   D。
120  0LD  REL=NEW  RELに設定
する。
/==テーブルに関連する関係記述 子をセーブする=/ 従属テーブルのデータベース中ですべ てのフィールドがゼロに設定された新 しい空の関係記述子(NEW  REL)を割り振り書
式化する。
NEW  REL、A=制約名に設定する。
/=制約名を従属テーブルの関係記 述子NEW  RELに記憶する=1 0LD  REL、D=NEW  RELの記号アドレ
スに設定する。
/=親関係記述子を、作成したばか りの従属関係記述子に接続する=/ NEW  REL、I=OLD  RELの記号アドレ
スに設定する。
/=作成したばかりの従属関係記述 子を、親関係記述子に接続する=/ ND /==属テーブルに関連する関係記述子のフィールドを
初期設定する=/ NEW  REL、F==部キーのフィールド数、及び
外部キー列の相対フィールド番号のリストに設定する。
/==部キーの記述をフィールドRE L、Fに記憶する=/ IF外部キーORと一致するインデックスが存在するか
、またはインデックス・キーの一番左の部分に外部キー
の列を含むインデックスがある場合、THEN NEW  REL、G==部キー・インデックス記述子
を指すポインタに設定 する。
/==部キー・インデックスがある 場合、その記述子をフィールドRE L、Gに記憶する=/ NEW  REL、H=DEP  RECを指すポイン
タに設定する。
/==属レコード記述子を指すポイン タを、フィールドREL、Hに記憶す る=/ /=現量関係記述子従属連鎖に接続する=/130  
IF  DEP  REC,B  N0T=0の場合、
THEN /==属テーブルが他の制約中の従属 テーブルである=/ 131   NEW  REL、J=従ff連鎖の第1
の関係記述子を指すポインタに設定す る。
132  DEP  REC,B=NEW  RELを
指すポインタに設定する。
/==属連鎖の先頭に現記述子を置く =/ 133   END 例1の擬似コード・プログラム断片は、2つの主要部分
に分割できる。行104−107は、参照制約の親テー
ブルに関連する関係記述子及びフィールドを作成する。
行118−136は、従属テーブルに関連する制約の関
係記述子及びフィールドに関係する。親テーブルと従属
テーブルが同じデータベース中にあるとき、これら2つ
の部分はそのデータベース中に単一の関係記述子を作成
する。親テーブルと従属テーブルが別のデータベース中
にあるとき、行104−117は、親テーブルのデータ
ベース中で関係記述子を作成し、行118−136は、
従属テーブルのデータベース中に関係記述子を作成する
作成処理は、まず参照制約に対して指定された外部キー
列を親テーブルの基本キー列と突き合わせて検査するこ
とから始まる。親テーブルのレコード記述子が見つけら
れ(行100)、外部キー列の長さ及びタイプが、基本
キー列のそれと突き合わせて検査される(行101)。
それらが一致しない場合、作成処理は終了する(行10
2)。そうでない場合、従属テーブルのレコード記述子
が見つけられる。
親テーブルに関連する関係記述子が、行104−117
で作成される。新しい空の関係記述子が割り振られて書
式化され(行104)、参照制約の名前がそのフィール
ドREL、A (行105)に記憶される。基本キー・
インデックスが存在する場合、そのインデックス記述子
を指すポインタが、新しい関係記述子のフィールドRE
L、Bに記憶される(行10B−107)。存在しない
場合は、上記のように、親テーブルに対するlN5ER
T動作は許されない。最後に、親テーブルのレコード記
述子を指すポインタ、が新しい関係記述子のREL、C
に記憶される(行108)。
次に、親テーブルに関連する新しい関係記述子が、親テ
ーブルのレコード記述子から始まる関係記述子の親連鎖
に接続される。親連鎖が空の場合、親レコード記述子の
フィールドRFC,Aはゼロに等しい(行109)。こ
の場合、新しい関係記述子を指すポインタがそのフィー
ルドに記憶され(行110)、現関係記述子を親連鎖の
先頭に置く。そうではなく、親連鎖がすでに存在してい
る場合(行111)、削除動作中に最適な性能を維持す
るために、現関係記述子が、以下の命令が維持されるよ
うな連鎖に入れられる。DELETECASCADE関
係記述子、続いてDELETESET  NULL関係
記述子、続いてDELETE  RESTRICT関係
記述子。更新動作中に最適な性能をもたらす関係記述子
の順序付けも、望みの場合は維持できる。親連鎖への適
切な挿入点を決定するために、その前に新しい関係記述
子を挿入しなければならないような関係記述子が連鎖中
で見つかるまで、親連鎖が親レコード記述子中の原点か
ら追跡される(行113)。次いで、挿入点より前の関
係記述子のフィールドREL。
Eが、現関係記述子を指すように設定される。連鎖への
挿入を完了するために、NEW  REL。
Eは、挿入点より後の関係記述子が存在する場合、その
記述子を指す(行114)。そうでない場合、NEW 
 REL、Eはゼロのままとなる。
親テーブルに関連する関係記述子及びフィールドの作成
は、新しい関係記述子のフィールドREL、にとREL
、Lに参照制約の削除規則及び更新規則を記憶すること
によって完了する。
従属テーブルが親テーブルとは別のデータベース中にあ
る場合、行118−125で、他方のデータベース中に
第2の関係記述子が作成される。そうではなく、両方の
テーブルが同じデータベース中にある場合、これらの行
はスキップされる。その直後に、行126−136は、
他方のデータベースの第2の関係記述子が存在する場合
はそれに、またそうでない場合は親テーブルに関連する
元の関係記述子に、この従属テーブルに関連するフィー
ルドの値を記憶する。
他方のデータベース中の第2の関係記述子の作成は、ま
ず従属テーブルのデータベース中の新しい関係記述子に
リンクできるように、親テーブルに関連する作成された
ばかりの関係記述子のフィールドのすべてを記憶するこ
とから始まる(行120)。次いでその新しい関係記述
子が割り振られて書式化され、そのフィールドがすべて
ゼロに設定される(行121)。親テーブルのデータベ
ース中の旧関係記述子のREL、Dフィールド中のポイ
ンタを、従属テーブルのデータベース中の現記述子に入
れることにより、データベース間の逆向きのリンク・ポ
インタ対の最初のポインタが、定位置に入れられる(行
122)。逆向きのポインタ対の第2のポインタは、従
属テーブルのデータベース中の現記述子のREL、Iフ
ィールド中のポインタを、親テーブルのデータベース中
の対応する記述子に記憶することにより、定位置に入れ
られる(行123)。最後に、参照制約名が、第2の関
係記述子のフィールドREL、Aに記憶される(行12
4)。
次いで、従属テーブルに関連する現関係記述子(従属テ
ーブルのデータベース中で新しく作成されたもの、また
は両方のテーブルが同じデータベース中にある場合は元
のもの)が初期設定される。
外部キーの説明は、フィールドREL、Fに記憶され(
行126)、(任意選択の)外部キー・インデックスを
指すポインタが、フィールドREL。
Gに記憶される(行127−128)。最後に、従属テ
ーブルのレコード記述子を指すポインタが、フィールド
REL、Hに記憶される(行129)。
参照制約の関係記述子を作成する最後のステップは、現
関係記述子を、従属テーブルのレコード記述子から始ま
る従属連鎖に接続することである。
現関係記述子は、常に従属連鎖の先頭に置かれる。
従属連鎖中に何らかの要素がある場合、現関係記述子は
連鎖中の第1の要素を指す(行130−131)。次い
で現関係記述子を指すポインタを従属レコード記述子の
フィールドRFC,Bに記憶することにより、現関係記
述子が従属連鎖の新しい先頭になる(行132)。
これで参照制約の関係記述子を作成する処理が終了し、
記述子をそれに関連する親連鎖及び従属連鎖に接続する
ポインタを含めて、必要な情報が記述子のフィールドに
記憶される。
制約作成の例 本発明による参照制約の作成及び例1の擬似コードを例
示するため、次に第1図ないし第6図の制約R1ないし
R6を作成する処理を説明する。第1図ないし第6図に
示す上記の列、キー及びインデックスを含むDEPAR
TMENTlEMPLOYEE及びPROJECTの各
テーブルがすでに作成され、制約の外部キーは常にその
記憶の基本キーに一致しているものと仮定する。参照制
約は、R1、R4、R2、R6、R5、R3の順に作成
される。この順序は、作成処理を最もよく示している。
ただ、制約は任意の順序で作成できることを了解された
い。制約R1−R6の関係記述子のフィールドの最終値
を、表3−6に列挙する。
表3ないし表6に示した値は、ユーザによって作成処理
に入力されたものなので、コンパイルされてない形、す
なわち原始形である。データベース・マネージャに記憶
される実際の値は、システムの動作中に制約の強制をよ
り速くするためにコンパイルされている。
制約R116は、自己参照制約なので、DEPARTM
ENTテーブル10だけに関係する。
DEPARTMENTレコード記述子32が見つけられ
(行100.103)、R1関係記述子50が割り振ら
れて書式化される(行104)。制約名″R1“がフィ
ールドREL、Aに記憶され(行105)、基本キー・
インデックスDEPTN038のインデックス記述子3
6を指すポインタが、フィールドREL、Bに記憶され
る(行106−107)。DEPARTMENTレコー
ド記述子32を指すポインタがREL、Cに記憶される
(行108)。作成処理のこの時点で、DEPARTM
ENTテーブル10はどの制約の親テーブルでもない。
したがって、DEPARTMENTレコード記述子32
のフィールドREC,AがR1記述子50を指すように
設定され(行109−110)、行111−115はス
キップされる。
第2図に示すように、制約R1の削除規則及び更新規則
″CASCADE″と”RESTRICT″が、それぞ
れフィールドREL、にとREL。
Lに記憶される(行116−117)。
制約R1の親テーブルも従属テーブルもデータベースA
28中にあり(行118)、したがって行119−12
5はスキップされる。制約R1の外部キーは、DEPA
RTMENTテーブル10のただ1つの列、すなわち第
3図に示すようにテーブルの4列目にあるADMRDE
PT列を参照する。したがって、R1記述子50のフィ
ールドREL、Fは、”1.4″(行12B)、すなわ
ち従属(DEPARTMENT)テーブルの列番号″4
″である″1″外部キー列を含む。制約R1の外部キー
・インデックスがないので、REL。
Gはゼロのままとなる(行127−128)。
フィールドREL、Hが、R1の従属レコード記述子、
すなわちDEPARTMENTレコード記述子32を指
すように設定される。最後に、DEPARTMENTテ
ーブル10はその従属連鎖中にメンバーをもたないので
、R1記述子50を指すポインタ48が、DEPART
MENTレコード記述子32のフィールドREC,Hに
記憶される。
次に、EMPLoYEEテーブル12を親テーブルとし
DEPARTMENTテーブル10を従属テーブルとす
る制約R422の関係記述子が作成される。これらのテ
ーブルのレコード記述子66.32が見つけられ(行1
00.103)、R4関係記述子56が割り振られ、書
式化されて、ゼロに設定される(行104)。制約名″
R4″がREL、Aに記憶され(行105)、EMPN
O基本キー・インデックス記述子60を指すポインタが
REL、Bに記憶される(行toe−i。
7)、R4関係記述子5 B ハE M P L OY
 E E親連鎖の最初のメンバーなので、EMPLOY
EEレコード記述子56のRFC,Aが、R4記述子を
指すように設定される(行109−110)。
R4削除規則及び更新規則、”SET  NULL”が
、それぞれREL、にとREL、Lに記憶される(行1
16−117)。行119−125はやはりスキップさ
れる。外部キー″MGRNO″は第3図に示すように従
属DEPARTMENTテーブル10の3列目なので、
REL、Fは1゜3″(行126)に設定される。外部
キー・インデックスがないので、REL、Gはゼロのま
まとなる。REL、Hが、従[DEPARTMENTレ
コード記述子32を指すように設定される(行129)
。R4関係記述子56はDEPARTMENTレコード
記述子32から始まる従属連鎖の最初の要素なので(行
130.132)、R4記述子が、その連鎖の最初の現
要素であるR1記述子50の前に接続される。すなわち
、R4記述子56を指すポインタが、DEPARTME
NTレコード記述子32のフィールドRFC,Hに記憶
され、R4記述子56のフィールドREL。
Jが、R1記述子50を指すように設定される(行13
2−138)。
次にR2関係記述子52が作成される。上記の制約R4
22とは反対に、制約R218はその親テーブルとして
DEPARTMNETをもち、その従属テーブルとして
EMPLOYEEをもつ。
R2関係記述子52を作成するために、DEPARTM
ENT及びEMPLOYEEレコード記述子32.66
が見つけられ(行100.103)、R2記述子52が
割り振られ、書式化されて、ゼロに設定される(行10
4)。制約名″R2“がREL、Aに記憶され(行10
5) 、DEPTNO基本キー・インデックス記述子4
4を指すポインタがREL、Bに記憶され(行106−
107) 、DEPARTMENT11レコード記述子
32を指すポインタがREL、Cに記憶される(行10
8)。R2関係記述子52はDEPARTMENT親連
鎖の第2のメンバーなので(行109.111)、R1
関係記述子50(連鎖中の最後の現メンバー)のREL
、EがR2記述子を指すように設定される(行112−
115)。R2削除規則及び更新規則″SET  NU
LL”とCASCADE″が、それぞれREL、にとR
EL。
L(行116−117)に記憶される。行119−12
5はスキップされる。外部キー″WORKDEPT″は
第4図に示すようにEMPLOYEEテーブル1203
列目なので、REL、Fは1゜3″に設定される(行1
26)、WORKDEPTインデックス64が制約R2
の外部キー・インデックスとして働くことができるので
、REL。
Gが、WORKDEPTインデックス記述子62を指す
ように設定される(行127−128)。
REL、Hが、EMPLOYEE従属レコード記述子3
2を指すように設定される(行129)。
R2関係記述子56がEMPLOYEEレコード記述子
66から始まる従属連鎖の最初の要素なので、R2記述
子を指すポインタが、EMPLOYEE記述子66のフ
ィールドRFC,Bに入れられる(行130−131)
次にR6関係記述子78が作成される。制約R626は
自己参照制約なので、PROJECTテーブル10だけ
に関係する。PROJECTレコード記述子76が見つ
けられると(行1001103)、R6関係記述子78
が割り振られ書式化される(行104)。制約名″R6
″がフィールドREL、Aに記憶され(行105) 、
PROJNO基本キー・インデックス記述子74を指す
ポインタがフィールドREL、Hに記憶され(行106
−107) 、PROJECTレコード記述子76を指
すポインタがREL、Cに記憶される(行1o8)。作
成処理のこの時点でPROJECTテーブル10はどの
制約の親テーブルでもないので、PROJECTレコー
ド記述子76のフィールドRFC,Aが、R6関係記述
子78を指すように設定される(行109−110)。
R6削除規則及び更新規則”CASCADE″とRES
TRICT″が、それぞれフィールドREL、にとRE
L、Lに記憶される(行116−117)。親テーブル
も従属テーブルも同じデータベース(B)にあるので、
行119−125はスキップされる。外部キー列MAJ
PROJがPROJECTテーブルの4タリ目なので、
′1゜5″がR6記述子78のREL、Fに記憶される
R6の外部キー・インデックスはないので、REL、G
はゼロのままとなる(行127−128)。
フィールドREL、Hが、PROJECTレコード記述
子76を指すように設定される。最後に、PROJEC
T従属連鎖にはまだメンバーがないので、PROJEC
Tレコード記述子76のREC,Bが、R6記述子78
を指すように設定される。
次に、制約R5の2つの関係記述子がデータベースA3
0とB2O中で1つずつ作成される。前と同様に、EM
PLOYEE及びPROJECTレコード記述子が見つ
けられる(行100.103)。まず、R5関係記述子
70が、R5の親テーブルがあったデータベース、すな
わちデータベースA28中で作成される(行104)。
制約名”R5”がREL、Aに記憶され(行105)、
EMPNO基本キー・インデックス記述子60を指すポ
インタがREL、Bに記憶され(行106−107) 
、EMPLOYEE親レコード記述子66を指すポイン
タがREL、Cに記憶される(行108)。このR5関
係記述子52はEMPLOYEE親連鎖中の第2のメン
バーなので(行109.111)、R4記述子56に続
いて、R4記述子のREL、Eが、データベースA28
の現R5記述子を指すように設定される(行112−1
15)。R5削除規則及び更新規則″RESTRICT
″とRESTRICT″が、それぞれREL、にとRE
L、Lに記憶される(行116−117)。
例1のプログラム断片の行119−125は、制約R5
に対して実行される。というのは、そのテーブルが別の
データベースにあるためである(行118)。データベ
ースA28の最初のR5関係記述子70が保持され(行
120)、データベースB30の第2のR5記述子80
が割り振られてゼロに書式化され、制約名″R5″が第
2の記述子のフィールドREL、Aに記憶される(行1
22)。第1のR5記述子70から第2のR5記述子8
0に向かうポインタが設定され(行123)、また第2
のR5記述子から第1のR5記述子に戻るポインタが設
定される(行124)。従属(PROJECT)テーブ
ルに関連する第2のR5記述子80のフィールドが充填
される。REL、Fは、外部+−RESPEMP#1P
ROJECTテーブル14の4列目であることを示す値
″1,4“を受は取る。外部キー・インデックスがない
ので、REL、Gはゼロのままとなる。REL、HがP
ROJECTし:I−1’記述子76を指すように設定
される。最後に、PROJECTレコード記述子76の
RFC,Bフィールドを、第2のR5記述子を指すよう
に変更し、第2のR5記述子のREL、Jフィールドを
R6関係記述子78を指すように変更することにより、
データベースB30の第2のR5記述子が、PROJ 
ECT従属連鎖の先頭に連鎖される。
作成される最後の関係記述子は、制約R320に対する
ものである。制約R5と同様に、制約R320はデータ
ベースAと8 28.30の間にまたがるので、各デー
タベース中に1つずつ2つの関係記述子が作成される。
DEPARTMENT及びPROJECTレコード記述
子が見つけられ(行100,103)、最初のR5関係
記述子54がデータベースA28中で作成される(行1
04)。制約名“’R3″がREL、Aに記憶され(行
105) 、DEPTNO基本キー・インデックス記述
子36を指すポインタがREL。
Bに記憶され(行106−107) 、DEPARTM
ENT親レコード記述子32を指すポインタがREL、
Cに記憶される(行108)。R2記述子52のREL
、EがデータベースA28中の現R3記述子54を指す
ように設定される(行112−115)。R3削除規則
及び更新規則″RESTRICT”及びRESTRIC
T″が、それぞれREL、にとREL、Lに記憶される
(行11θ−117)。
データベースB30中で第2のR3記述子55を作成す
ると、データベースA28の第1のR3関係記述子54
が保持されて(行120)、データベースB30の第2
のR3記述子55が割り振られてゼロに書式化される(
行121)。制約名″R3″が第2の記述子のフィール
ドREL、Aに記憶される(行122)。第1のR3記
述子54から第2のR3記述子55に向かうポインタが
設定され(行123)、第2のR3記述子から第1のR
3記述子に戻るポインタが設定される(行124)。従
属(PROJECT)テーブルに関連する第2のR3記
述子のフィールドが充填される。REL、Fは、外部キ
ーRESPDEPTがPROJECTテーブル14の4
タリ目であることを示す値″1,4″を受は取る。外部
キー・インデックスがないので、REL、Gはゼロのま
まとなる。REL、HがPROJECTレコード記述子
76を指すように設定され、第2のR3記述子55がP
ROJECT従属連鎖の先頭に連鎖される。
制約R1−Reの関係記述子のフィールドの最終値を表
3ないし表6に示す。
表3 R1及びR2関係記述子 R1記述子50    R2記述子52REL、A  
R1″         R2″REL、B  DEP
TNOインデッ DEPTNOインデックス記述子36
を指す クス記述子36を指ポインタ       す
ポインタ REL、CDEPARTMENT  DEPARTME
N前記述子32を指すポイ 記述子32を指すポインタ
         ンタ REL、DO0 REL、ER2記述子S2を指す R3記述子54を指
ポインタ       すポインタ REL、F1、41、3 REL。
REL。
REL。
REL。
REL。
REL。
REL。
REL。
(ADMRDEPT) GO HDEPARTMENT 記述子32を指すポ インタ GO GO K CASCADE″ L  ”RESTRICT” (WORKDEPT) WORKDEPTイ ンデックス記述子6 2を指すポインタ EMPLOYEE 記述子66を指すボ インク SET  NULL” CASCADE″ 表4 R3関係記述子 データベースA28の  データベ−7B30のR3記
述子54     R3記述子55A R3″    
   R3″ B  DEPTNOインデッ O クス記述子36を指す ポインタ REL、C REL、D REL、E REL、F DEPARTMENT 記述子10を指すポイ ンタ データベースB30の R3記述子55を指す ポインタ REL、GO REL、HO REL、lo REL、JO REL、K  ”RESTRICT” 1.3 (RESPDEPT) PROJEC前記述 子7前記上すポイン タ データベースA28 のR3記述子を54 指すポインタ データベースB30 のR5記述子80を 指すポインタ REL、L  CASCADE″   0表5 R4及びR6関係記述子 R4記述子56      R6記述子78REL、A
  ”R4”        ”Re”REL、B  
EMPNOインデッ  PROJNOインデックス記述
子60を指  クス記述子74を指すポインタ    
  すポインタ REL、CEMPLOYEE記  PROJEC前記述
述子66を指すポイ  子76を指すボインンタ   
      タ REL、Do           0REL、ER5
記述子70を   O 指すポインタ REL、Fl、3        1.5(MGRNO
)      (MAJPROJ)REL、Go   
         0REL、HDEPARTMENT
  PROJEC前記述記述子32を指すボ  子76
を指すポインインタ        タ REL、IO0 REL、JR1記述子50を指  0 すポインタ REL、 K  SET  NULL“RESTRIC
T”REL、L  ”SET  NULL”  ”CA
SCADE”表6 R5関係記述子 データベースA2g のR5記述子70 REL、A  “R5” REL、B  EMPNOインデッ クス記述子60を指す ポインタ REL、CEMPLOYEE 記述子66を指す ポインタ REL、D  データベースAの R5記述子70を データベースB30 のR5記述子80 ”R5” 指すポインタ REL、EO REL、FO 1,4 (RESPEMP) PROJEC前記述 子7前記上すポイン タ データベースAのR 5記述子70を指す ポインタ データベースB30 のR6記述子78を 指すポインタ REL、K  ”RESTRICT″ 0REL、L 
 CASCADE″  0REL、GO REL、HO REL、lo REL、JO 関係記述子のコンパイル 例1のプログラム断片によって作成される関係記述子は
、システム動作中にデータベース・マネージャに記憶さ
れるコンパイルされたオブジェクトである。これはコン
ピュータの高速メモリに記述子を保持し、したがって記
述子に対するアクセスとそれらの制約の強制をきわめて
迅速に行なうことが可能になる。
関係記述子作成のための入力は、その関係に関するテー
ブルの名前、外部キー、及びユーザによって指定される
規則からなる。この入力は、ユーザの元の原始定義ステ
ートメントから誘導され、構文上及び論理上圧しいかど
うか検査されている。
この検査は疑似処理モジュールで実行される。本発明の
好ましい実施例の事前処理モジュールの疑似コードによ
る実施を例2に示す。
例2 関係記述子の原始定義を事前処理するための疑似コード /=原始定義ステートメントを解析して解析木にする=
/ 原始定義ステートメントの構文を検査する。
IF構文エラーがある場合、THEN コンパイルを終了し、構文エラー・メツセージを戻す。
原始定義ステートメントの要素をトークンに変換する。
/=原始定義ステートメントを「トークン化」する=/ トークンをN枝解析木に配列する。
/=解析木を解釈する=/ 新しい関係が既存の参照論理に違反するかどうか検査す
る。
IF論理違反の場合、THEN コンパイルを終了して、論理エラー・ メツセージを戻す。
その関係によって参照されるオブジェクトの宵無を検査
する。
IF不在オブジェクトがある場合、THEN 210  コンパイルを終了して、不在オブジェクト・
エラー・メツセージを戻す。
211 外部名を内部名と番号に変更する(列、テーブ
ルの序数値)。
212 コンパイルされたオブジェクティブ関係記述子
を作成するため、変換された内部テーブル名と関係記述
を、データベース記述子マネージャに渡す。
/=例1のプログラム断片に進む=/ 213 変更をカタログに挿入する。
関係記述子のユーザの原始定義を事前処理する最初のス
テップは、原始定義ステートメントを解析して解析木に
することである。原始定義ステートメントの要素は、参
照制約のメタ・データを含む。ステートメントの構文、
すなわちその予約ワードの書式と使用が検査される(行
200)。構文エラーが検出された場合、エラー・メツ
セージが生成されて、事前処理が終了する。そうでない
場合、原始定義ステートメントの要素がトークンに変換
され(行203)、トークンが、元のステートメントの
要素の文字列よりはるかに扱いやすいN枝解析木(行2
04)に配列される。トークンは予約ワードとオブジェ
クト名から構成される。
行204で解析木が作成されると、予約ワードが予約ワ
ードに対応する内部表示に変換される。オブジェクト名
は、以下に説明するように、行211で内部記号形式に
変換されるまで、解析木中でテキスト形式のままである
次に、解釈者がその関係に関連するテーブルの内部名と
、その制約の解析木によって表されるメタ・データに対
応する外部キー及び規則の記述を生成する。この時点で
、既存の関係と現関係の相互作用によって生じる論理的
矛盾が検出され(行205)、事前処理が終了されて、
適切なエラー・メツセージが生成される(行206−2
07)。
論理的矛盾が検出されない場合、現関係に必要なオブジ
ェクトが存在するかどうか別の検査が行なわれる(行2
08)。これは、データベースのテキスト記述を含むデ
ータベース・カタログを検査することによって行なわれ
る。その関係が必要とするオブジェクトが存在しない場
合(行209)、事前処理が終了されて、エラー・メツ
セージが生成される(行210)。そうではなく、この
最終検査に合格した場合、解析木の記号名が(テーブル
名やインデックス名などの)内部名に変換される(行2
11)。次に、例1のプログラム断片が呼び出されて(
行212)、変換された内部テーブル名と行200−2
11の事前処理によって作成された関係記述とから、コ
ンパイルされたオブジェクティブ関係記述子を作成する
。例1のプログラム断片でコンパイルされた記述子が作
成された後、参照制約のメタ・データを表す内部名が、
テキスト形式に変換しデータベース・カタログに挿入す
るために、データベース記述子マネージャに戻される(
行213)。
関係記述子による制約強制 テーブルに対してlN5ERTまたはLOAD動作が行
なわれると、そのテーブルの関係記述子の従属連鎖が追
跡され、見つかった制約が強制される。まず、そのテー
ブルのレコード記述子カ見つけられる。レコード記述子
のフィールドREC。
Bがゼロの場合、従属連鎖は空であり、それ以上の動作
は不要である。
レコード記述子のRFC,Bフィールドがゼロでない場
合、そこから始まる関係記述子の連鎖が追跡されて処理
される。こうして見つかった各関係記述子ごとに、フィ
ールドREL、Fの外部キーの記述を使って、ロードま
たは挿入されているレコードに含まれる外部キーが作成
される。その結果得られる外部キー値が空でない場合、
それを基本キー・インデックスに対する探索引数として
使って、親テーブルに一致する基本キー値をもつ行が存
在することが検証される。そうした行が見つからなかっ
た場合、挿入またはロードされる新しい行はその関係記
述子の参照制約に違反しており、動作は不許可になる。
しかし、従属連鎖中のすべての関係記述子が滴定される
場合、lN5ERTまたはLOADの実行が許される。
テーブルの基本キー・フィールドの更新のために、テー
ブルのレコード記述子のRFC,Aフィールドにアンカ
ーされた関係記述子の親連鎖が追跡されて処理される。
親連鎖上にある各関係記述子を使って、適用すべきUP
DATE規則が決定され、従属テーブルが決定され、更
新中の基本キーと一致する外部キーをもつ従属行が見つ
けられる。
UPDATE動作は、「参照一貫性」の項で述べたのと
ほぼ同様に、このようにして見つかったUPDATE規
則を強制することによって、許され、あるいは不許可に
なる。UPDATE規則がCASCADE″である場合
、このようにして見つかった各従属テーブルの親連鎖も
、上記のように追跡されて処理される。
外部キー・フィールドが更新される場合、REC,Bに
アンカーされた関係記述子の従属連鎖が追跡されて処理
される。修正フィールドを含む外部キーを記述する各関
係記述子は、更新された外部キー値を構成するのに使用
される。更新された値が空でない場合は、それを関係記
述子中で識別された基本キー・インデックスに対する検
索引数として使って、更新された外部キー値と一致する
基本キー値をもつ新行が存在することを検証する。
従属連鎖上のどの関係記述子に対してもそのような行が
見つからない場合、UPDATE動作は不許可になる。
1行が削除されると、削除された行のレコード記述子の
RFC,Aにアンカーされた関係記述子の親連鎖が追跡
されて処理される。親連鎖上にある各関係記述子を使っ
て、適用すべきDELETE規則が決定され、従属テー
ブルが識別され、削除中の行の基本キー値と一致する外
部キー値をもつ従属行が見つけられる。やはり「参照一
貫性」の項で述べたの・とほぼ同様に、関係記述子のR
EL、にフィールドに記憶された特定のDELETE規
則に応じて、DELETE動作が実行され、あるいは不
許可になる。DELETE規則がCASCADE″であ
る場合、そのように見つけられた各従属テーブルの親連
鎖も上記のように追跡されて処理される。
当然のことながら、例示のために本明細書では本発明の
特定の実施例について説明したが、本発明の精神と範囲
から逸脱せずに、様々な変更を加えることができる。た
とえば、記号ポインタの代わりにオフセット、直接ポイ
ンタまたは記号位置を使って、レコード、インデックス
及び関係記述子にアクセスすることができる。したがっ
て、本発明の保護範囲は、特許請求の範囲によってのみ
限定される。
F、効果 本発明によれば、リレーショナル・データベース管理シ
ステムにおける参照一貫性を高速かつ効率よ〈実施する
ことができる。
【図面の簡単な説明】
第1図は、6つの参照制約によって関係づけられた3つ
のテーブルである。 第2図は、第1図の参照制約の指定を示すリストである
。 第3図は、その基本キーと外部キー及びサンプル・デー
タを含む第1図のDEPARTMENTテーブルである
。 第4図は、その基本キーと外部キー及びサンプル・デー
タを含む第1図のEMPLOYEEテーブルである。 第5図は、その基本キーと外部キー及びサンプル・デー
タを含む第1図のPROJECTテーブルである。 第6図は、第1図ないし第5図のテーブルの、本発明に
よる目的レコード、インデックス及び関係記述子の概略
図である。 出願人  インターナシロナル・ビジネス・マシーンズ
・コーボレーシ冒ン 代理人  弁理士  頓  宮  孝  −(外1名) FIG、 3 FIG、 4

Claims (1)

  1. 【特許請求の範囲】 (a)第1のテーブル、 (b)第2のテーブル、 (c)メタ・データがその制約の親テーブルと従属テー
    ブル及び基本キーと外部キーを含み、関係記述子がデー
    タベース・システム内の独立したオブジェクトである、
    前記第1のテーブルと第2のテーブルの間の参照制約の
    メタ・データを記述する関係記述子、 (d)前記テーブルが修正されるときに関係記述子にア
    クセスする手段、 (e)こうした修正に基づいて関係記述子によって記述
    される参照制約を強制する手段、を含む、リレーショナ
    ル・データベース管理システム。
JP1245366A 1988-09-23 1989-09-22 リレーシヨナル・データベース管理システム Expired - Lifetime JPH0652531B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US24904988A 1988-09-23 1988-09-23
US249049 1988-09-23

Publications (2)

Publication Number Publication Date
JPH02116973A true JPH02116973A (ja) 1990-05-01
JPH0652531B2 JPH0652531B2 (ja) 1994-07-06

Family

ID=22941844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1245366A Expired - Lifetime JPH0652531B2 (ja) 1988-09-23 1989-09-22 リレーシヨナル・データベース管理システム

Country Status (7)

Country Link
US (1) US5133068A (ja)
EP (1) EP0360387B1 (ja)
JP (1) JPH0652531B2 (ja)
AU (1) AU617846B2 (ja)
BR (1) BR8904808A (ja)
CA (1) CA1325681C (ja)
DE (1) DE68926422T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034518A (ja) * 1999-07-27 2001-02-09 Nec Software Chugoku Ltd 分散データベースシステムにおける主従関係情報同期方式
JP2006004304A (ja) * 2004-06-21 2006-01-05 Mitsubishi Electric Corp データ管理装置及びデータ管理方法及びプログラム

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991003791A1 (en) * 1989-09-01 1991-03-21 Amdahl Corporation Operating system and data base
CN1029050C (zh) * 1989-10-13 1995-06-21 国际商业机器公司 在数据库系统中强化实施参照约束
JPH03130874A (ja) * 1989-10-17 1991-06-04 Fujitsu Ltd リレーショナル・データベースの検索処理方式
US5448726A (en) * 1989-10-23 1995-09-05 International Business Machines Corporation Data base management system with data dictionary cache including a single loadable object descriptor
US5410704A (en) * 1989-11-30 1995-04-25 Motorola, Inc. Table modifiable edit functions with order-effective edit rules
GB9105278D0 (en) * 1990-04-27 1991-04-24 Sun Microsystems Inc Method and apparatus for implementing object-oriented programming using unmodified c for a window-based computer system
US5604899A (en) * 1990-05-21 1997-02-18 Financial Systems Technology Pty. Ltd. Data relationships processor with unlimited expansion capability
JPH0776950B2 (ja) * 1990-06-22 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理方法及び装置
US5319777A (en) * 1990-10-16 1994-06-07 Sinper Corporation System and method for storing and retrieving information from a multidimensional array
EP0598058B1 (en) * 1991-08-07 1997-01-29 Unisys Corporation Method of imposing multi-object constraints on data files
US5530854A (en) * 1992-09-25 1996-06-25 At&T Corp Shared tuple method and system for generating keys to access a database
US5414841A (en) 1992-10-19 1995-05-09 International Business Machines Corporation Computerized system for representing data items using token identifiers
US5809317A (en) * 1992-12-30 1998-09-15 Intel Corporation Creating and maintaining hypertext links among heterogeneous documents by the establishment of anchors and connections among anchors
US5497491A (en) * 1993-01-26 1996-03-05 International Business Machines Corporation System and method for importing and exporting data between an object oriented computing environment and an external computing environment
US5488722A (en) * 1993-05-28 1996-01-30 International Business Machines Corporation System and method for automating implementation and execution of constraint most likely to be violated in a database
US5701453A (en) * 1993-07-01 1997-12-23 Informix Software, Inc. Logical schema to allow access to a relational database without using knowledge of the database structure
US5579515A (en) * 1993-12-16 1996-11-26 Bmc Software, Inc. Method of checking index integrity in a DB2 database
US6163783A (en) * 1993-12-16 2000-12-19 Bmc Software, Inc. Check data operation for DB2
US5519855A (en) * 1994-01-14 1996-05-21 Microsoft Corporation Summary catalogs
US5499359A (en) * 1994-01-18 1996-03-12 Borland International, Inc. Methods for improved referential integrity in a relational database management system
DE69518996T2 (de) * 1994-04-26 2001-03-29 Sun Microsystems Inc Verfahren und Vorrichtung zur selbstbeschreibenden Datenkodierung
US5513350A (en) * 1994-05-27 1996-04-30 At&T Corp. Update constraints in transactions which may abort
US5678038A (en) * 1994-06-21 1997-10-14 International Business Machines Corporation Storing and retrieving heterogeneous classification systems utilizing globally unique identifiers
US5603025A (en) * 1994-07-29 1997-02-11 Borland International, Inc. Methods for hypertext reporting in a relational database management system
US6301581B1 (en) * 1994-08-01 2001-10-09 Texas Instruments Incorporated Method and system for managing access to a plurality of data objects
CA2130065C (en) * 1994-08-12 1999-03-02 Michael Joel Cincinatus Utilizing pseudotables as a method and mechanism for providing database monitor information
US5706494A (en) * 1995-02-10 1998-01-06 International Business Machines Corporation System and method for constraint checking bulk data in a database
JP2947111B2 (ja) * 1995-02-17 1999-09-13 日本電気株式会社 交換機のデータ引き継ぎ方法およびシステム
US5692184A (en) 1995-05-09 1997-11-25 Intergraph Corporation Object relationship management system
US5815829A (en) * 1995-07-19 1998-09-29 Zargar; Dara Job cost accounting data compression and indexing system and methods for doing the same
US5778370A (en) * 1995-08-25 1998-07-07 Emerson; Mark L. Data village system
US5664173A (en) * 1995-11-27 1997-09-02 Microsoft Corporation Method and apparatus for generating database queries from a meta-query pattern
US6105025A (en) * 1996-03-08 2000-08-15 Oracle Corporation Method for using an index as a workspace for deferred enforcement of uniqueness constraints
US5721911A (en) * 1996-06-25 1998-02-24 International Business Machines Corporation Mechanism for metadata for an information catalog system
US5761678A (en) * 1996-06-26 1998-06-02 International Business Machines Corporation Creation of clone storage area with identification of base storage area and deferred cloning of metadata
US5778373A (en) * 1996-07-15 1998-07-07 At&T Corp Integration of an information server database schema by generating a translation map from exemplary files
US5899993A (en) * 1996-08-07 1999-05-04 Oracle Corporation Method and apparatus for achieving an enforced and valid constraint state
US5987455A (en) * 1997-06-30 1999-11-16 International Business Machines Corporation Intelligent compilation of procedural functions for query processing systems
US5963934A (en) * 1997-06-30 1999-10-05 International Business Machines Corporation Intelligent compilation of scripting language for query processing systems
US7127420B1 (en) * 1997-08-01 2006-10-24 Financial Systems Technology (Intellectual Property) Pty. Ltd. Data processing system for complex pricing and transactional analysis
US6304876B1 (en) 1998-06-05 2001-10-16 Computer Associates Think, Inc. Method for enforcing integrity constraints in a database table using an index
JP4982819B2 (ja) * 1998-07-10 2012-07-25 インタレクチュアル ヴェンチャーズ ファースト エルエルシー 情報管理装置および方法、記録媒体
US6389414B1 (en) 1998-09-21 2002-05-14 Microsoft Corporation Internal database validation
US6850951B1 (en) * 1999-04-16 2005-02-01 Amdocs Software Systems Limited Method and structure for relationally representing database objects
GB2351368A (en) * 1999-06-21 2000-12-27 Zygon Systems Ltd Product catalogue production system
US6339777B1 (en) * 1999-07-30 2002-01-15 International Business Machines Corporation Method and system for handling foreign key update in an object-oriented database environment
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
US6457003B1 (en) 1999-08-16 2002-09-24 International Business Machines Corporation Methods, systems and computer program products for logical access of data sources utilizing standard relational database management systems
DE10040987B4 (de) * 1999-09-29 2006-10-12 International Business Machines Corp. Verfahren und Vorrichtung für übereinstimmende Aktualisierungen von redundanten Daten in relationalen Datenbanken
US6460028B1 (en) 1999-12-03 2002-10-01 T4Mupj2, Llc System and method for data organization
US6996566B1 (en) 2000-11-21 2006-02-07 International Business Machines Corporation Method and system for an object model with embedded metadata and mapping information
US7620665B1 (en) 2000-11-21 2009-11-17 International Business Machines Corporation Method and system for a generic metadata-based mechanism to migrate relational data between databases
CA2326805A1 (en) * 2000-11-24 2002-05-24 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for deleting data in a database
US20020099745A1 (en) * 2001-01-23 2002-07-25 Neo-Core, L.L.C. Method and system for storing a flattened structured data document
US7162478B2 (en) * 2001-02-28 2007-01-09 International Business Machines Corporation System and method for correlated fragmentations in databases
US6820080B2 (en) * 2001-03-26 2004-11-16 International Business Machines Corporation Dependent object processing for triggers
US20030023584A1 (en) * 2001-04-27 2003-01-30 Brandin Christopher Lockton Universal information base system
US7054853B2 (en) * 2001-07-02 2006-05-30 Sun Microsystems, Inc. Methods and system for efficient association traversals
US7035859B2 (en) 2001-08-08 2006-04-25 International Business Machines Corporation Method and system for intra-table referential integrity for relational database systems
US7885830B2 (en) * 2002-08-27 2011-02-08 United Services Automobile Association Infrastructure method and system for managing deductibles for insurance policies
US7634501B2 (en) * 2003-02-05 2009-12-15 Next Generation Software Method and apparatus for mediated cooperation
US20040236706A1 (en) * 2003-04-30 2004-11-25 Fitch James Chester Automated machinery lubrication service and maintenance planning system
US7500226B2 (en) * 2004-03-02 2009-03-03 Microsoft Corporation Efficient checking of state-dependent constraints
WO2005086003A1 (ja) * 2004-03-08 2005-09-15 Annex Systems Incorporated データベース・システム
US7664790B2 (en) * 2004-06-18 2010-02-16 Bmc Software, Inc. Cascade delete processing
US20060085464A1 (en) * 2004-10-14 2006-04-20 International Business Machines Corporation Method and system for providing referential integrity constraints
US7568224B1 (en) * 2004-12-06 2009-07-28 Cisco Technology, Inc. Authentication of SIP and RTP traffic
US7584204B2 (en) * 2005-06-10 2009-09-01 Microsoft Corporation Fuzzy lookup table maintenance
US7440956B2 (en) * 2005-11-10 2008-10-21 International Business Machines Corporation Enforcing constraints from a parent table to a child table
US9075831B2 (en) * 2006-03-28 2015-07-07 Oracle International Corporation Method and apparatus for modifying a row in a database table to include meta-data
US20090055418A1 (en) * 2007-08-21 2009-02-26 Mark Gregory Megerian Automatic cascading copy operations in a database with referential integrity
US8352511B2 (en) * 2007-08-29 2013-01-08 Partnet, Inc. Systems and methods for providing a confidence-based ranking algorithm
US20110302220A1 (en) * 2010-06-08 2011-12-08 Albert Marcella Sql processing for data conversion
US8533240B2 (en) * 2010-09-22 2013-09-10 International Business Machines Corporation Write behind cache with M-to-N referential integrity

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4498145A (en) * 1982-06-30 1985-02-05 International Business Machines Corporation Method for assuring atomicity of multi-row update operations in a database system
US4631673A (en) * 1985-01-22 1986-12-23 International Business Machines Corporation Method for refreshing multicolumn tables in a relational data base using minimal information
US4870397A (en) * 1986-11-05 1989-09-26 Grumman Aerospace Corporation System for producing graphic displays and programs for generating same
US4918593A (en) * 1987-01-08 1990-04-17 Wang Laboratories, Inc. Relational database system
AU632267B2 (en) * 1987-10-09 1992-12-24 Nucleus International Corporation A relational database representation with relational database operation capability
WO1989003567A1 (en) * 1987-10-09 1989-04-20 Nucleus International Corporation A relational database using identifiers
US5043872A (en) * 1988-07-15 1991-08-27 International Business Machines Corporation Access path optimization using degrees of clustering
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034518A (ja) * 1999-07-27 2001-02-09 Nec Software Chugoku Ltd 分散データベースシステムにおける主従関係情報同期方式
JP2006004304A (ja) * 2004-06-21 2006-01-05 Mitsubishi Electric Corp データ管理装置及びデータ管理方法及びプログラム

Also Published As

Publication number Publication date
DE68926422T2 (de) 1996-11-07
AU617846B2 (en) 1991-12-05
US5133068A (en) 1992-07-21
AU3953689A (en) 1990-03-29
DE68926422D1 (de) 1996-06-13
EP0360387B1 (en) 1996-05-08
BR8904808A (pt) 1990-05-01
EP0360387A2 (en) 1990-03-28
JPH0652531B2 (ja) 1994-07-06
EP0360387A3 (en) 1992-10-14
CA1325681C (en) 1993-12-28

Similar Documents

Publication Publication Date Title
JPH02116973A (ja) リレーシヨナル・データベース管理システム
US7698348B2 (en) Extended database engine providing versioning and embedded analytics
US5592661A (en) Detection of independent changes via change identifiers in a versioned database management system
US5857182A (en) Database management system, method and program for supporting the mutation of a composite object without read/write and write/write conflicts
JP3251837B2 (ja) データベースにおける制約違反の検査方法及びそのシステム
Engles A tutorial on data base organization
US5551029A (en) Method for associating integrity maintenance constraints with data object classes in an object-oriented database
US5600832A (en) Variant domains and variant maps in a versioned database management system
US5950210A (en) Database row version differentiation process
AU2006240541B2 (en) Systems and methods for manipulating data in a data storage system
US5504879A (en) Resolution of relationship source and target in a versioned database management system
US6453314B1 (en) System and method for selective incremental deferred constraint processing after bulk loading data
US5890166A (en) Versioned-database management system in which tasks are associated with promote groups which comprise a set of parts whose changes are to be promoted
US6609133B2 (en) Integrating both modifications to an object model and modifications to a database into source code by an object-relational mapping tool
US5890153A (en) Database lock control method
JP2001523367A (ja) トランザクションの条件付き競合直列化可能性のための、及び信頼性の程度が変化するメタデータを組合わせるデータベース管理システム及び方法
US7370049B2 (en) Detection and prevention of writing conflicts within nested query statements
JP2001527243A (ja) オブジェクト指向アプリケーション内のクラスに対応するリレーショナル・データベース内のインデックスを生成するための方法及び装置
US7426521B2 (en) Property and object validation in a database system
Ceri et al. Chimera: A model and language for active DOOD systems
Simon et al. Design and implementation of an extendible integrity subsystem
JPH0212464A (ja) データベース・システム
JP2004505380A (ja) ネスト化データベースを実行するための方法、システム及びデータ構造
Sumner Using Relational Algebra to Facilitate Safe Refactoring for Performance in Rust
Berman P-Pascal: A data-oriented persistent programming language

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070706

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080706

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080706

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090706

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 16

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 16