JPH03132834A - データベースのアクセス・プランの選択方法及び無効方法 - Google Patents
データベースのアクセス・プランの選択方法及び無効方法Info
- Publication number
- JPH03132834A JPH03132834A JP2244144A JP24414490A JPH03132834A JP H03132834 A JPH03132834 A JP H03132834A JP 2244144 A JP2244144 A JP 2244144A JP 24414490 A JP24414490 A JP 24414490A JP H03132834 A JPH03132834 A JP H03132834A
- Authority
- JP
- Japan
- Prior art keywords
- access plan
- dependencies
- key
- access
- dependent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 27
- 230000001419 dependent effect Effects 0.000 claims description 60
- 238000012217 deletion Methods 0.000 claims description 15
- 230000037430 deletion Effects 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明はディジタル・コンピュータのデータベース・シ
ステム、より具体的に言えば、成る種の動作の間で、デ
ータベース内のデータを参照することに関する一貫性を
保証する方法に関する。
ステム、より具体的に言えば、成る種の動作の間で、デ
ータベース内のデータを参照することに関する一貫性を
保証する方法に関する。
B、従来の技術
ディジタル・コンピュータ・システムにおいて、データ
ベースのアクセス速度を増加するために、データベース
・アクセス・コマンドを含むソース・ファイルはアクセ
ス・プランの中にコンパイルすることが出来る。アクセ
ス・プランはデータベースを効率よくアクセスするため
に、低レベルの手続き(プロシージャ)的なステートメ
ントを含んでいる。システムの性能を向上させるために
データベース・マネージャの処理時間の間でデータベー
ス・アクセス・コマンドを解読する代りに、アクセス・
プランが実行される。
ベースのアクセス速度を増加するために、データベース
・アクセス・コマンドを含むソース・ファイルはアクセ
ス・プランの中にコンパイルすることが出来る。アクセ
ス・プランはデータベースを効率よくアクセスするため
に、低レベルの手続き(プロシージャ)的なステートメ
ントを含んでいる。システムの性能を向上させるために
データベース・マネージャの処理時間の間でデータベー
ス・アクセス・コマンドを解読する代りに、アクセス・
プランが実行される。
データベースを変更する時には、データを参照すること
に関する一貫性(referential integ
rity )(以下、参照上の一貫性と言う)を維持す
るために、多くの拘束に対処しなければならない、参照
上の一貫性とは、データベースを通じてデータが一貫し
ている状態を言う。これらの拘束を維持するために手続
的なコードをアクセス・プランに含めることが出来る。
に関する一貫性(referential integ
rity )(以下、参照上の一貫性と言う)を維持す
るために、多くの拘束に対処しなければならない、参照
上の一貫性とは、データベースを通じてデータが一貫し
ている状態を言う。これらの拘束を維持するために手続
的なコードをアクセス・プランに含めることが出来る。
データベースに変更が行なわれる度に、そのような変更
を遂行するアクセス・プラン中の手続的なコードが、必
要とするすべての一貫性のチエツクを遂行するために実
行される。
を遂行するアクセス・プラン中の手続的なコードが、必
要とするすべての一貫性のチエツクを遂行するために実
行される。
2つのデータベース・オブジェクトの闇の関係、例えば
テーブルに変更が加えられた時、参照上の一貫性を保証
するためにチエツクされねばならない拘束も変更されね
ばならない。これは、変更された関係に従属したアクセ
ス・プランは、再結合(rebinding )処理と
して知られているような再度コンパイルする処理を行な
わねばならない。
テーブルに変更が加えられた時、参照上の一貫性を保証
するためにチエツクされねばならない拘束も変更されね
ばならない。これは、変更された関係に従属したアクセ
ス・プランは、再結合(rebinding )処理と
して知られているような再度コンパイルする処理を行な
わねばならない。
アクセス・プランが作成される時、他のデータベース・
オブジェクトに関して従属するすべてのアクセス・プラ
ンのテーブルが作成される。従来のシステムにおいて、
若し、アクセス・プランが従属しているデータベース・
オブジェクトに対して、変更された関係が影響するなら
ば、そのアクセス・プランは無効にされる。無効にされ
たアクセス・プランが実行される前に、アクセス・プラ
ンは再コンパイルされねばならない。再コンパイルする
処理は、変更される関係が考慮に入れられる。1つの関
係における1つの変更は、多数のアクセス・プランに影
響し、夫々のアクセス・プランは、後で実行される前に
、再コンパイルされねばならない、アクセス・プランに
コマンドをコンパイルすることは、非常に時間のかかる
処理であって、可能ならば回避するのが望ましい。
オブジェクトに関して従属するすべてのアクセス・プラ
ンのテーブルが作成される。従来のシステムにおいて、
若し、アクセス・プランが従属しているデータベース・
オブジェクトに対して、変更された関係が影響するなら
ば、そのアクセス・プランは無効にされる。無効にされ
たアクセス・プランが実行される前に、アクセス・プラ
ンは再コンパイルされねばならない。再コンパイルする
処理は、変更される関係が考慮に入れられる。1つの関
係における1つの変更は、多数のアクセス・プランに影
響し、夫々のアクセス・プランは、後で実行される前に
、再コンパイルされねばならない、アクセス・プランに
コマンドをコンパイルすることは、非常に時間のかかる
処理であって、可能ならば回避するのが望ましい。
必要なときにだけ、アクセス・プランを再コンパイルす
る方法が望まれている。また、参照上の拘束(refe
rential constraint )を維持する
手続的なコードがアクセス・プランの内で変更されねば
ならないときにだけ、2つのデータベース・オブジェク
トの間の関係を変更した後に、アクセス・プランを無効
とする方法の出現が望まれる。
る方法が望まれている。また、参照上の拘束(refe
rential constraint )を維持する
手続的なコードがアクセス・プランの内で変更されねば
ならないときにだけ、2つのデータベース・オブジェク
トの間の関係を変更した後に、アクセス・プランを無効
とする方法の出現が望まれる。
C0発明が解決しようとする課題
従って、本発明の目的は、変更される参照上の拘束を考
慮して、修正されねばならないアクセス・プランだけを
選択し、無効にすべきアクセス・プランを選択するため
の方法を提供することにある。
慮して、修正されねばならないアクセス・プランだけを
選択し、無効にすべきアクセス・プランを選択するため
の方法を提供することにある。
本発明の他の目的は、どのアクセス・プランを無効にす
べきかを効果的に決定する方法を提供することにある。
べきかを効果的に決定する方法を提供することにある。
本発明の他の目的は、データベースの参照上の一貫性を
保証する方法を提供することにある。
保証する方法を提供することにある。
01課題を解決するための手段
本発明に従って、データベース・システム中の各アクセ
ス・プランに対する従属が、アクセス・プランが従属す
る各データベース・オブジェクトに対して決定される。
ス・プランに対する従属が、アクセス・プランが従属す
る各データベース・オブジェクトに対して決定される。
各従属はタイプを持っている。データベース・オブジェ
クトの間の関係が変化した時、これらのオブジェクトに
対する各アクセス・プランの従属タイプが決定される。
クトの間の関係が変化した時、これらのオブジェクトに
対する各アクセス・プランの従属タイプが決定される。
若しアクセス・プランが従属タイプの予め決められたサ
ブセット内に入るデータベース・オブジェクトの従属を
持っていれば、そのアクセス・プランは無効にされる。
ブセット内に入るデータベース・オブジェクトの従属を
持っていれば、そのアクセス・プランは無効にされる。
若しアクセス・プランの従属が従属タイプの予め決めら
れたサブセットの中になければ、アクセス・プランは有
効のままであり、再コンパイルの必要はない。
れたサブセットの中になければ、アクセス・プランは有
効のままであり、再コンパイルの必要はない。
E、実施例
第1図は従来の汎用ディジタル・コンピュータ中で処理
するデータベース・システムの一部を示す図である。こ
のシステムはデータベース10とデータベース・マネー
ジャ12を含んでいる。データベース10は、データと
、データをアクセスするために用いられる他のオブジェ
クト・タイプとを含んでいる。データベース・マネージ
ャ12は、データベース10のアクセスを遂行するため
に、アプリケーション・プログラム(図示せず)によっ
て呼び出される。データベース10へのすべてのアクセ
スはデータベース・マネージャを通して行なわれる。
するデータベース・システムの一部を示す図である。こ
のシステムはデータベース10とデータベース・マネー
ジャ12を含んでいる。データベース10は、データと
、データをアクセスするために用いられる他のオブジェ
クト・タイプとを含んでいる。データベース・マネージ
ャ12は、データベース10のアクセスを遂行するため
に、アプリケーション・プログラム(図示せず)によっ
て呼び出される。データベース10へのすべてのアクセ
スはデータベース・マネージャを通して行なわれる。
データベース10はアクセス・プラン・オブジエクト1
4.16及び18と、データ・テーブル・オブジェクト
20.22.24.26及び28とを含んでいる。付加
的なオブジェクト及びオブジェクト・タイプは代表的な
データベース中に見出されるが、この実施例においては
、簡明を期すために含まれていない。アクセス・プラン
・オブジェクト14.16.18の各々は、低レベルの
手続的なステートメントにコンパイルされる高レベルの
データベース・アクセス・コマンドの単一のソース・フ
ァイルに対応している。アプリケーション・プログラム
が、一連のデータベースのアクセス・コマンドを実行す
るためにデータベース・マネージャ12を呼び出した時
、データベース・マネージャ12はこれらのデータベー
スのアクセスを行なうために充当するアクセス・プラン
を呼び出す。
4.16及び18と、データ・テーブル・オブジェクト
20.22.24.26及び28とを含んでいる。付加
的なオブジェクト及びオブジェクト・タイプは代表的な
データベース中に見出されるが、この実施例においては
、簡明を期すために含まれていない。アクセス・プラン
・オブジェクト14.16.18の各々は、低レベルの
手続的なステートメントにコンパイルされる高レベルの
データベース・アクセス・コマンドの単一のソース・フ
ァイルに対応している。アプリケーション・プログラム
が、一連のデータベースのアクセス・コマンドを実行す
るためにデータベース・マネージャ12を呼び出した時
、データベース・マネージャ12はこれらのデータベー
スのアクセスを行なうために充当するアクセス・プラン
を呼び出す。
データ・テーブル・オブジェクト20乃至28の各々は
、論理的な列及び行からなるデータのテーブルを表わし
ている。各行は1つのエントリを持ち、テーブルの列に
対応するフィールドに分離されている。従来から知られ
ているように、データ・テーブル・オブジェクト20乃
至28は、論理的な2次元のアレーとして現われるが、
Bトリーのようなデータ・ストラフチャの種々のタイプ
を用いて実現化される。
、論理的な列及び行からなるデータのテーブルを表わし
ている。各行は1つのエントリを持ち、テーブルの列に
対応するフィールドに分離されている。従来から知られ
ているように、データ・テーブル・オブジェクト20乃
至28は、論理的な2次元のアレーとして現われるが、
Bトリーのようなデータ・ストラフチャの種々のタイプ
を用いて実現化される。
各アクセス・ブラン14.16.18はその除去によっ
て影響される1つ、またはそれ以上のデータ・テーブル
・オブジェクトを持っている。アクセス・プランはその
ようなデータ・オブジェクトに従属する。本発明に従っ
て存在する従属タイプは以下に詳しく説明する。データ
ベース10において、アクセス・ブラン14はデータ・
オブジェクト20.22及び24に従属している。アク
セス・ブラン16はオブジェクト24.26及び28に
従属しており、アクセス・ブラン18はオブジェクト2
6及び28に従属している。実際のシステムにおいて、
アクセス・プランが従属しているデータベース・オブジ
ェクトの数は極めて多数である。
て影響される1つ、またはそれ以上のデータ・テーブル
・オブジェクトを持っている。アクセス・プランはその
ようなデータ・オブジェクトに従属する。本発明に従っ
て存在する従属タイプは以下に詳しく説明する。データ
ベース10において、アクセス・ブラン14はデータ・
オブジェクト20.22及び24に従属している。アク
セス・ブラン16はオブジェクト24.26及び28に
従属しており、アクセス・ブラン18はオブジェクト2
6及び28に従属している。実際のシステムにおいて、
アクセス・プランが従属しているデータベース・オブジ
ェクトの数は極めて多数である。
データベース10に含まれているデータの正確性と一貫
性とを保証するために、データベース中のデータは、参
照上の一貫性(referentialintegri
ty )と呼ばれるデータの品質を持たねばならない、
データベースが更新される時、参照上の一貫性は、参照
上の拘束(referential constrai
nt )と呼ばれるデータ変更に関する拘束を維持する
たとによって保証される。本発明を理解するための必要
な幾つかの術語を以下に説明する。
性とを保証するために、データベース中のデータは、参
照上の一貫性(referentialintegri
ty )と呼ばれるデータの品質を持たねばならない、
データベースが更新される時、参照上の一貫性は、参照
上の拘束(referential constrai
nt )と呼ばれるデータ変更に関する拘束を維持する
たとによって保証される。本発明を理解するための必要
な幾つかの術語を以下に説明する。
プライマリー・キー(primary key )は、
テーブル中の一組の数値列であって、特別の非無効(n
on−null)値を含んでいなければならない。テー
ブルは1つ以上のプライマリー・キーを含むことは出来
ない、フォーリン・キー(foreign key )
はテーブル中の一組の数値列であって、それらの値はテ
ーブルのプライマリー・キーの値に一致することが必要
である。指定されたフォーリン・キーの非無効値が、指
定されたテーブルのプライマリー・キーの値としても現
われた場合にだけ、指定されたフォーリン・キーの非無
効値が有効であると言う要件が参照上の拘束である。参
照上の拘束によって決められる関係は、単一のテーブル
の行の間の結合の組の関係か、または、プライマリー・
キー及びフォーリン・キーの値によって決められる2つ
の異なったテーブルの行の間の結合の組の関係である。
テーブル中の一組の数値列であって、特別の非無効(n
on−null)値を含んでいなければならない。テー
ブルは1つ以上のプライマリー・キーを含むことは出来
ない、フォーリン・キー(foreign key )
はテーブル中の一組の数値列であって、それらの値はテ
ーブルのプライマリー・キーの値に一致することが必要
である。指定されたフォーリン・キーの非無効値が、指
定されたテーブルのプライマリー・キーの値としても現
われた場合にだけ、指定されたフォーリン・キーの非無
効値が有効であると言う要件が参照上の拘束である。参
照上の拘束によって決められる関係は、単一のテーブル
の行の間の結合の組の関係か、または、プライマリー・
キー及びフォーリン・キーの値によって決められる2つ
の異なったテーブルの行の間の結合の組の関係である。
親テーブルは関係を定義するプライマリー・キーを含む
関係のテーブルである。親テーブルは関係の数の関係を
含むテーブルであってよい。従属テーブルとはフォーリ
ン・キーを含む関係を持つテーブルである。1つの従属
テーブルは任意の数の関係を含む従属テーブルであって
よい。1つのテーブルが親テーブル及び従属テーブルの
両方であってよい。
関係のテーブルである。親テーブルは関係の数の関係を
含むテーブルであってよい。従属テーブルとはフォーリ
ン・キーを含む関係を持つテーブルである。1つの従属
テーブルは任意の数の関係を含む従属テーブルであって
よい。1つのテーブルが親テーブル及び従属テーブルの
両方であってよい。
従属行はフォーリン・キー値を有する従属テーブルの行
であり、上記のフォーリン・キー値はその親テーブルの
プライマリー・キー値に一致する。
であり、上記のフォーリン・キー値はその親テーブルの
プライマリー・キー値に一致する。
従って、フォーリン・キー値は、従属行から親竹への参
照を示している。親竹は、少なくとも1つの従属行を持
つ親テーブルの行である。
照を示している。親竹は、少なくとも1つの従属行を持
つ親テーブルの行である。
削除ルール(削除の規則)は各参照上の拘束に関連して
いる。削除ルールは、親竹の削除を制限(阻止)するか
、または従属行を削除する効果を特定することが出来る
。その効果とは、複数の従属行を削除する(削除のカス
ケード)ことか、または、従属行中のフォーリン・キー
を無効にセットすることかの何れかである。
いる。削除ルールは、親竹の削除を制限(阻止)するか
、または従属行を削除する効果を特定することが出来る
。その効果とは、複数の従属行を削除する(削除のカス
ケード)ことか、または、従属行中のフォーリン・キー
を無効にセットすることかの何れかである。
また、更新ルールは各参照上の拘束に関連している。更
新ルールを扱う1つのアプローチは親の行中のプライマ
リー・キーの更新を制限することである。他のアプロー
チは、例えば、更新を連続させること(カスケード)が
可能となるように、従属行に関する更新効果を特定する
ことである。
新ルールを扱う1つのアプローチは親の行中のプライマ
リー・キーの更新を制限することである。他のアプロー
チは、例えば、更新を連続させること(カスケード)が
可能となるように、従属行に関する更新効果を特定する
ことである。
第2図は上述した事柄の幾つかの概念を示す図である。
第2図の各テーブルは装置のテーブル中の各行のフォー
マットの部分を示す行を含んでいる。例えば、テーブル
T1中の各行は、キーAを形成する1つの列、または複
数の列を含んでいる。
マットの部分を示す行を含んでいる。例えば、テーブル
T1中の各行は、キーAを形成する1つの列、または複
数の列を含んでいる。
テーブルT4の各行はキーA、C及びBを含んでいる。
5つのデータ・テーブルT1、T2、T3、T4及びT
5はプライマリー・キーを含んでいる。
5はプライマリー・キーを含んでいる。
テーブルT1はプライマリー・キーAを含み、テーブル
T2はプライマリー・キーBを含み、そしてテーブルT
4はプライマリー・キーCを含んでいる。T3、T4及
びT5はフォーリン・キーを含んでいる。T3及びT4
はフォーリン・キーとしてキーAを含んでいる。また、
T4はフォーリン・キーとしてキーBを含んでいる。
T2はプライマリー・キーBを含み、そしてテーブルT
4はプライマリー・キーCを含んでいる。T3、T4及
びT5はフォーリン・キーを含んでいる。T3及びT4
はフォーリン・キーとしてキーAを含んでいる。また、
T4はフォーリン・キーとしてキーBを含んでいる。
テーブルの間の関係は矢印により示されている。
矢印30はテーブルT3のフォーリン・キーAとT1の
プライマリー・キーAとの間の関係を表わしている。矢
印34はテーブルT4のフォーリン・キーBとT2のプ
ライマリー・キーBとの間の関係を表わしており、矢印
36はテーブルT5のフォーリン・キーCとT4のプラ
イマリー・キーCとの間の関係を表わしている。
プライマリー・キーAとの間の関係を表わしている。矢
印34はテーブルT4のフォーリン・キーBとT2のプ
ライマリー・キーBとの間の関係を表わしており、矢印
36はテーブルT5のフォーリン・キーCとT4のプラ
イマリー・キーCとの間の関係を表わしている。
関係30乃至35を定義する参照上の拘束は、関係する
テーブル中にストアされているエントリの間の一貫性を
必要とする。例えば、テーブルT5の各行のためのキー
Cは、T4の成る行中のキーCと一致しなければならな
いか、または、無効値を含んでいる。同じような態様で
、T4の各行はテーブルT1及びT2の両方と一致しな
ければならない。つまり、T4中の各行は、T1中のA
キーと一致するキーAと、テーブルT2中のBキーと一
致するキーBとを持たねばならないと言うことである。
テーブル中にストアされているエントリの間の一貫性を
必要とする。例えば、テーブルT5の各行のためのキー
Cは、T4の成る行中のキーCと一致しなければならな
いか、または、無効値を含んでいる。同じような態様で
、T4の各行はテーブルT1及びT2の両方と一致しな
ければならない。つまり、T4中の各行は、T1中のA
キーと一致するキーAと、テーブルT2中のBキーと一
致するキーBとを持たねばならないと言うことである。
若し、無効値が成る種のフォーリン・キーに対して許容
されるならば、そのキーに対する無効の値は参照上の拘
束を満足させる。
されるならば、そのキーに対する無効の値は参照上の拘
束を満足させる。
データベースに変更が行なわれる度に、関連するすべて
の参照上の拘束は満足されねばならない。
の参照上の拘束は満足されねばならない。
参照上の拘束が1つだけでも満足されなければ、データ
ベースの変更は許されない。フォーリン・キーに対して
下記のルールを設けることはデータベースのデータを参
照することに関する一貫性を保証する。
ベースの変更は許されない。フォーリン・キーに対して
下記のルールを設けることはデータベースのデータを参
照することに関する一貫性を保証する。
挿入ルール: 従属テーブル中に行が挿入される時、挿
入される行中の非無効の各フォーリン・キー値は、関係
(relaNonship )の親テーブルのプライマ
リー・キーの成る値と一致しなければならない。若し、
挿入動作が参照上の拘束に違反したならば、エラーが発
生し、行の挿入は行なわれない。
入される行中の非無効の各フォーリン・キー値は、関係
(relaNonship )の親テーブルのプライマ
リー・キーの成る値と一致しなければならない。若し、
挿入動作が参照上の拘束に違反したならば、エラーが発
生し、行の挿入は行なわれない。
削除ルール: 親テーブルから行が削除される時、従属
テーブル中に従属行があるが否かを決定するチエツクが
行なわれる。従属行は、削除されるべき行のプライマリ
ー・キーと一致するフォーリン・キー値を持っている行
である。そのような従属行が発見された場合、取られる
べき動作は、従属テーブル中のフォーリン・キーに対し
て決められている削除ルールによって規定されている。
テーブル中に従属行があるが否かを決定するチエツクが
行なわれる。従属行は、削除されるべき行のプライマリ
ー・キーと一致するフォーリン・キー値を持っている行
である。そのような従属行が発見された場合、取られる
べき動作は、従属テーブル中のフォーリン・キーに対し
て決められている削除ルールによって規定されている。
フォーリン・キーに対して3つの削除ルールを決めるこ
とが出来る。削除ルールが「拘束」である場合、若し従
属行が発見されれば、エラーが生じて、行は削除されな
い、削除ルールが「カスケード」(連続)である場合、
従属テーブル中のすべての従属行が削除される。従属テ
ーブルの削除される行の他のすべての参照上の拘束もま
た、満足されねばならない。若し、そうでなければ、エ
ラーが発生し、行は削除されない。「無効にセットせよ
J (SET NULL )の削除ルールの場合、若し
、従属テーブル中に従属行が発見されたならば、フォー
リン・キーの無効可能なすべての部分は無効にセットさ
れる。
とが出来る。削除ルールが「拘束」である場合、若し従
属行が発見されれば、エラーが生じて、行は削除されな
い、削除ルールが「カスケード」(連続)である場合、
従属テーブル中のすべての従属行が削除される。従属テ
ーブルの削除される行の他のすべての参照上の拘束もま
た、満足されねばならない。若し、そうでなければ、エ
ラーが発生し、行は削除されない。「無効にセットせよ
J (SET NULL )の削除ルールの場合、若し
、従属テーブル中に従属行が発見されたならば、フォー
リン・キーの無効可能なすべての部分は無効にセットさ
れる。
更新ルール: 親テーブル中の行が更新される時、従属
テーブル中に従属行があるが否かを決定するチエツクが
行なわれる。その従属行は、更新されるべき行のプライ
マリー・キーと一致するフォーリン・キー値を持つもの
である。そのような従属行が見出された場合、行なわれ
るべき動作は、従属テーブル中のフォーリン・キーに対
して決められている更新ルールによって規定されている
。
テーブル中に従属行があるが否かを決定するチエツクが
行なわれる。その従属行は、更新されるべき行のプライ
マリー・キーと一致するフォーリン・キー値を持つもの
である。そのような従属行が見出された場合、行なわれ
るべき動作は、従属テーブル中のフォーリン・キーに対
して決められている更新ルールによって規定されている
。
フォーリン・キーの更新ルール: 従属テーブル中のフ
ォーリン・キーが更新される時、若し、フォーリン・キ
ーが無効でなければ、その新しい値は、関係の親テーブ
ルのプライマリー・キーの成る値と一致していなければ
ならない。若し、更新動作が、何らかの参照上の拘束に
違反したならば、エラーが発生し、行は更新されない。
ォーリン・キーが更新される時、若し、フォーリン・キ
ーが無効でなければ、その新しい値は、関係の親テーブ
ルのプライマリー・キーの成る値と一致していなければ
ならない。若し、更新動作が、何らかの参照上の拘束に
違反したならば、エラーが発生し、行は更新されない。
第1図に示されたアクセス・プランの従属性を説明する
。若し、アクセス・プラン、またそのインデックスが、
アクセスされるならば、テーブルはアクセス・プランの
動作に含まれる。動作に含まれるテーブルは、動作中の
データベース・アクセス・コマンドによって直接に参照
される必要はない。データベース・オブジェクトが参照
上の拘束を維持するためにだけで含まれたとしても、ア
クセス・プランはその動作中に含まれているすべてのデ
ータベース・オブジェクトに従属する。アクセス・プラ
ンの従属性は、挿入、更新、削除、または選択ステート
メントと、2つの特別の場合とにおいて、直接に参照さ
れるすべてのテーブルに対して記録される。
。若し、アクセス・プラン、またそのインデックスが、
アクセスされるならば、テーブルはアクセス・プランの
動作に含まれる。動作に含まれるテーブルは、動作中の
データベース・アクセス・コマンドによって直接に参照
される必要はない。データベース・オブジェクトが参照
上の拘束を維持するためにだけで含まれたとしても、ア
クセス・プランはその動作中に含まれているすべてのデ
ータベース・オブジェクトに従属する。アクセス・プラ
ンの従属性は、挿入、更新、削除、または選択ステート
メントと、2つの特別の場合とにおいて、直接に参照さ
れるすべてのテーブルに対して記録される。
良好な実施例を説明する目的で、6つのタイプのアクセ
ス・プランの従属性があるものとする。
ス・プランの従属性があるものとする。
これらの従属性のタイプの4つのタイプは、テーブルに
直接影響するデータベース・アクセス・ステートメント
中に直接参照されるテーブルに適用される。これらの従
属性タイプは、選択、挿入、更新及び削除である。アク
セス・プランの従属の2つの付加的なタイプもまた定義
される。プライマリー・キー、またはフォーリン・キー
の更新のために、テーブルが含まれるときは常に、キー
の従属が存在する。テーブルに対してカスケード(連続
した)削除がある時には、常に、カスケード従属がある
。
直接影響するデータベース・アクセス・ステートメント
中に直接参照されるテーブルに適用される。これらの従
属性タイプは、選択、挿入、更新及び削除である。アク
セス・プランの従属の2つの付加的なタイプもまた定義
される。プライマリー・キー、またはフォーリン・キー
の更新のために、テーブルが含まれるときは常に、キー
の従属が存在する。テーブルに対してカスケード(連続
した)削除がある時には、常に、カスケード従属がある
。
第3図は第2図に定義されたデータ・テーブル及び参照
上の拘束により発生される幾つかのアクセス・プラン従
属を示している。第3図は、複数個の異なった高レベル
のデータベース・アクセス・コマンドを含むテーブルで
あり、各コマンドによって発生されるアクセス・プラン
の従属のタイプと、従属が発生したテーブルとを表わし
ている。
上の拘束により発生される幾つかのアクセス・プラン従
属を示している。第3図は、複数個の異なった高レベル
のデータベース・アクセス・コマンドを含むテーブルで
あり、各コマンドによって発生されるアクセス・プラン
の従属のタイプと、従属が発生したテーブルとを表わし
ている。
コマンド40はテーブル下4中に1つの行を挿入するた
めの高レベルのコマンドである。アクセス・プラン中に
含まれるこのコマンドは、テーブルT4に関する挿入従
属を発生する。新しい行がテーブル下4中に挿入される
時、エントリの一致が見出されるのを保証するために、
キーA及びBは夫々テーブルT1及びT2のエントリに
対してチエツクされねばならない。
めの高レベルのコマンドである。アクセス・プラン中に
含まれるこのコマンドは、テーブルT4に関する挿入従
属を発生する。新しい行がテーブル下4中に挿入される
時、エントリの一致が見出されるのを保証するために、
キーA及びBは夫々テーブルT1及びT2のエントリに
対してチエツクされねばならない。
コマンド42は、1つのエントリがテーブルT1から削
除されることを表示する。このコマンドはT1に削除従
属を発生する。この従属は、T3及びT4中のフォーリ
ン・キーAのための削除ルールが「制限」か、または「
無効にセットせよ」かのいずれかである、削除ルールが
「カスケード」である時、充当する従属を示す例を以下
に説明する。
除されることを表示する。このコマンドはT1に削除従
属を発生する。この従属は、T3及びT4中のフォーリ
ン・キーAのための削除ルールが「制限」か、または「
無効にセットせよ」かのいずれかである、削除ルールが
「カスケード」である時、充当する従属を示す例を以下
に説明する。
コマンド44はテーブルT2中に新しい行を挿入する。
これはテーブルT2に挿入従属を発生する。
コマンド46はテーブルT2の中の行t−吏新する。コ
マンド46は、行中のキーBの値を新しい値に変更する
。これはテーブルT2に更新従属を発生する。このキー
はプライマリー・キーだから、キーの従属はフォーリン
・キーBを持つすべてのテーブルに対して発生される。
マンド46は、行中のキーBの値を新しい値に変更する
。これはテーブルT2に更新従属を発生する。このキー
はプライマリー・キーだから、キーの従属はフォーリン
・キーBを持つすべてのテーブルに対して発生される。
この場合、テーブルT4が唯一のそのようなテーブルで
ある。
ある。
コマンド48はテーブルT2の異なったフイールドを新
しい値に更新する。これはテーブルT2に更新従属を発
生する。これはプライマリー・キーでもフォーリン・キ
ーでもない、他のフィールドなので、キー従属は発生さ
れない。
しい値に更新する。これはテーブルT2に更新従属を発
生する。これはプライマリー・キーでもフォーリン・キ
ーでもない、他のフィールドなので、キー従属は発生さ
れない。
コマンド50はテーブルT4から1つ、またはそれ以上
の行を選択するのに用いられる。
の行を選択するのに用いられる。
コマンド52はテーブルT4の行を更新するのに用いら
れ、キーAのフィールドを新しい値にセットする。これ
はテーブルT4に更新従属を発生する。キーAはフォー
リン・キーなので、キーへの関係の親テーブル、このケ
ースにおいては、テーブルT1に対してキー従属が発生
する。
れ、キーAのフィールドを新しい値にセットする。これ
はテーブルT4に更新従属を発生する。キーAはフォー
リン・キーなので、キーへの関係の親テーブル、このケ
ースにおいては、テーブルT1に対してキー従属が発生
する。
コマンド54は、「カスケード」従属ルールが用いられ
た時に発生する従属を示している。テーブルT4中のフ
ォーリン・キーBのための削除ルールが「カスケード」
であると仮定すると、テーブルT5中のフォーリン・キ
ーCのための削除ルールもまた「カスケード」である。
た時に発生する従属を示している。テーブルT4中のフ
ォーリン・キーBのための削除ルールが「カスケード」
であると仮定すると、テーブルT5中のフォーリン・キ
ーCのための削除ルールもまた「カスケード」である。
この例において、コマンド54はテーブルT2に削除従
属と、テーブルT4及びT5のカスケード従属を発生す
る。
属と、テーブルT4及びT5のカスケード従属を発生す
る。
新しいフォーリン・キーのテーブルが作成された時、ま
たは存在するフォーリン・キーがテーブルから除去され
る時には、テーブルの間の関係は変化する。新しいフォ
ーリン・キーが作成され、または存在するフォーリン・
キーが除去されるテーブルは、「オブジェクト」テーブ
ルとして参照される。前のシステムにおいて、新しいフ
ォーリン・キーが加えられ、または、存在するフォーリ
ン・キーが除去される時には、オブジェクト・テーブル
に関する従属を持つすべてのプランは無効にされ、そし
て、それらが実行される前に、再コンパイルされねばな
らない、上述したように、異なった従属タイプの指定に
よって、オブジェクト・テーブルに関する従属を持つ何
れのアクセス・プランが、新しく作成され、または削除
されるフォーリン・キーによって実際に影響されるかを
決定することが可能である。そのようなフォーリン・キ
ーによって実際に影響されないアクセス・プランは再コ
ンパイルする必要はなく、従って、無効にされない。
たは存在するフォーリン・キーがテーブルから除去され
る時には、テーブルの間の関係は変化する。新しいフォ
ーリン・キーが作成され、または存在するフォーリン・
キーが除去されるテーブルは、「オブジェクト」テーブ
ルとして参照される。前のシステムにおいて、新しいフ
ォーリン・キーが加えられ、または、存在するフォーリ
ン・キーが除去される時には、オブジェクト・テーブル
に関する従属を持つすべてのプランは無効にされ、そし
て、それらが実行される前に、再コンパイルされねばな
らない、上述したように、異なった従属タイプの指定に
よって、オブジェクト・テーブルに関する従属を持つ何
れのアクセス・プランが、新しく作成され、または削除
されるフォーリン・キーによって実際に影響されるかを
決定することが可能である。そのようなフォーリン・キ
ーによって実際に影響されないアクセス・プランは再コ
ンパイルする必要はなく、従って、無効にされない。
第4図は新しいフォーリン・キーが作成される時、どの
アクセス・プランが無効にされねばならないかを決定す
るために使用される一連のステップを示す流れ図が示さ
れている。ステップ60において、新しいフォーリン・
キーがオブジェクト・テーブルに作成される。第4図の
残りのステップは、オブジェクト・テーブルの従属か、
または、新しい参照上の拘束中に親テーブルを持つ各ア
クセス・プランに対して遂行される。
アクセス・プランが無効にされねばならないかを決定す
るために使用される一連のステップを示す流れ図が示さ
れている。ステップ60において、新しいフォーリン・
キーがオブジェクト・テーブルに作成される。第4図の
残りのステップは、オブジェクト・テーブルの従属か、
または、新しい参照上の拘束中に親テーブルを持つ各ア
クセス・プランに対して遂行される。
ステップ62において、オブジェクト・テーブルのアク
セス・プランの従属が決定される。ステップ64におい
て、若し、その従属が挿入、または更新従属であるなら
ば、ステップ66において、アクセス・プランは無効に
マークされ、そして、実行する前に、再コンパイルされ
ねばならない。
セス・プランの従属が決定される。ステップ64におい
て、若し、その従属が挿入、または更新従属であるなら
ば、ステップ66において、アクセス・プランは無効に
マークされ、そして、実行する前に、再コンパイルされ
ねばならない。
ステップ64において、若し、オブジェクト・テーブル
の従属が挿入、または更新従属でなければ、新しく作成
されるキーのための親テーブルのアクセス・プランの従
属が決定される。ステップ70において、若し、親テー
ブルのアクセス・プランの従属が削除、カスケード、ま
たは更新従属であるならば、ステップ72において、ア
クセス・プランは無効にされる。ステップ70において
、若し、親テーブルの従属が削除、カスケード、または
更新従属でないならば、ステップ72において、アクセ
ス・プランは有効であり、再コンパイルする必要はない
。
の従属が挿入、または更新従属でなければ、新しく作成
されるキーのための親テーブルのアクセス・プランの従
属が決定される。ステップ70において、若し、親テー
ブルのアクセス・プランの従属が削除、カスケード、ま
たは更新従属であるならば、ステップ72において、ア
クセス・プランは無効にされる。ステップ70において
、若し、親テーブルの従属が削除、カスケード、または
更新従属でないならば、ステップ72において、アクセ
ス・プランは有効であり、再コンパイルする必要はない
。
新しいフォーリン・キーが作成される時には、従属チエ
ツクは第4図に示された順序に正確に遂行する必要はな
い。従属の同じセットが、アクセス・プランの無効の発
生を必要とするだけである。
ツクは第4図に示された順序に正確に遂行する必要はな
い。従属の同じセットが、アクセス・プランの無効の発
生を必要とするだけである。
従って、新しいフォーリン・キーが作成される時には、
アクセス・プランは、若しそれが(1)オブジェクト・
テーブルの挿入、或は更新従属か、または(2)新しく
作成されたフォーリン・キーの親テーブルの削除、更新
、またはカスケード従属のいずれかを持つならば無効に
されねばならない。
アクセス・プランは、若しそれが(1)オブジェクト・
テーブルの挿入、或は更新従属か、または(2)新しく
作成されたフォーリン・キーの親テーブルの削除、更新
、またはカスケード従属のいずれかを持つならば無効に
されねばならない。
第3図を参照して、第4図に示したアクセス・プランの
従属ルールのアプリケーションを説明する、これらの例
を説明する目的で、テーブルT4はオブジェクト・テー
ブルであり、フォーリン・キーBはT2中のキーBを参
照するテーブル従属中に新しく作成されたキーであると
仮定する。
従属ルールのアプリケーションを説明する、これらの例
を説明する目的で、テーブルT4はオブジェクト・テー
ブルであり、フォーリン・キーBはT2中のキーBを参
照するテーブル従属中に新しく作成されたキーであると
仮定する。
コマンド40に対して、アクセス・プランはテーブルT
4の挿入従属である。これは、アクセス・プランが無効
にされることを必要とする。アクセス・プランが再コン
パイルされた時、コンパイラは、テーブルT4及びテー
ブルT2の間の参照上の拘束をチエツクするために、付
加的なコードをアクセス・プラン中に挿入することが必
要である。
4の挿入従属である。これは、アクセス・プランが無効
にされることを必要とする。アクセス・プランが再コン
パイルされた時、コンパイラは、テーブルT4及びテー
ブルT2の間の参照上の拘束をチエツクするために、付
加的なコードをアクセス・プラン中に挿入することが必
要である。
これらの2つのテーブルの間には、前に関係はないから
、このコードは前には存在していない。
、このコードは前には存在していない。
コマンド42はテーブルT2またはT4に関して非従属
を発生する。従って、コマンド42はアクセス・プラン
の無効を発生しない。
を発生する。従って、コマンド42はアクセス・プラン
の無効を発生しない。
コマンド44はテーブルT2の挿入従属を発生し、テー
ブルT4の非従属を発生する。親テーブルに関する挿入
従属はプランを無効にする従属タイプのものであるから
、コマンド44はアクセス・プランの無効を必要とする
親テーブルT2の更新従属を発生する。
ブルT4の非従属を発生する。親テーブルに関する挿入
従属はプランを無効にする従属タイプのものであるから
、コマンド44はアクセス・プランの無効を必要とする
親テーブルT2の更新従属を発生する。
コマンド50はアクセス・プランを無効にしないタイプ
T4の選択従属を発生する。コマンド52は、アクセス
・プランを無効にするテーブルT4の更新を発生する。
T4の選択従属を発生する。コマンド52は、アクセス
・プランを無効にするテーブルT4の更新を発生する。
コマンド54は、テーブルT2の削除従属と、テーブル
T4のカスケード従属とを発生する。テーブルT2の削
除従属はプランの無効を必要とする。
T4のカスケード従属とを発生する。テーブルT2の削
除従属はプランの無効を必要とする。
第5図の流れ図は、フォーリン・キーがオブジェクト・
テーブルから削除された後、アクセス・プランが無効に
されるか否かを決定するためにチエツクされねばならな
い従属を示している。第4図で説明したケースのように
、種々の従属チエツクに順番を付けることは重要でない
、然しながら、すべての可能性ある従属関係の正しいサ
ブセットがアクセス・プランを無効にするのに使用され
ることは重要である。
テーブルから削除された後、アクセス・プランが無効に
されるか否かを決定するためにチエツクされねばならな
い従属を示している。第4図で説明したケースのように
、種々の従属チエツクに順番を付けることは重要でない
、然しながら、すべての可能性ある従属関係の正しいサ
ブセットがアクセス・プランを無効にするのに使用され
ることは重要である。
ステップ80は存在するフォーリン・キーがオブジェク
ト・テーブルから除去されることを示している。ステッ
プ82において、各従属アクセス・プランに対して、今
削除されたフォーリン・キーに対する親テーブルのアク
セス・プラン従属が決定される。ステップ84において
、若し、プランが親テーブルの更新従属を持っているな
らば、ステップ86において、オブジェクト・テーブル
のプラン従属が決定される。若しステップ88において
、オブジェクト・テーブル従属がキー従属であれば、ス
テップ90において、プランは無効とマークされる。若
し、そうでなければ、付加的なチエツクが行なわれる。
ト・テーブルから除去されることを示している。ステッ
プ82において、各従属アクセス・プランに対して、今
削除されたフォーリン・キーに対する親テーブルのアク
セス・プラン従属が決定される。ステップ84において
、若し、プランが親テーブルの更新従属を持っているな
らば、ステップ86において、オブジェクト・テーブル
のプラン従属が決定される。若しステップ88において
、オブジェクト・テーブル従属がキー従属であれば、ス
テップ90において、プランは無効とマークされる。若
し、そうでなければ、付加的なチエツクが行なわれる。
ステップ84において、親テーブルの従属が更新従属で
ないか、或は、ステップ88において、若し、それが更
新従属であり、且つオブジェクト・テーブルの従属がキ
ー従属であれば、ステップ92において、アクセス・プ
ランが親テーブルの削除、またはカスケード従属を持っ
ているか否かを見るチエツクが行なわれる。若し、そう
であれば、ステップ94において、プランは無効にされ
る。
ないか、或は、ステップ88において、若し、それが更
新従属であり、且つオブジェクト・テーブルの従属がキ
ー従属であれば、ステップ92において、アクセス・プ
ランが親テーブルの削除、またはカスケード従属を持っ
ているか否かを見るチエツクが行なわれる。若し、そう
であれば、ステップ94において、プランは無効にされ
る。
若し、そうでなければ、ステップ96において、プラン
は親テーブルのキー従属を持っているか否かを見るチエ
ツクが行なわれる。若し、そうであれば、ステップ98
において、オブジェクト・テーブルのアクセス・プラン
の従属が決定される。ステップ100において、若しプ
ランがオブジェクト・テーブルの更新従属を持っていれ
ば、ステップ102において、それは無効にマークされ
る。
は親テーブルのキー従属を持っているか否かを見るチエ
ツクが行なわれる。若し、そうであれば、ステップ98
において、オブジェクト・テーブルのアクセス・プラン
の従属が決定される。ステップ100において、若しプ
ランがオブジェクト・テーブルの更新従属を持っていれ
ば、ステップ102において、それは無効にマークされ
る。
ステップ96からブランチが行なわれなければ、ステッ
プ104において、オブジェクト・テーブルのアクセス
・プランの従属が決定される。ステップ104か、ある
いはステップ106の何れかのステップの後に、ステッ
プ106のテストが行なわれる。ステップ106におい
て、アクセス・プランがオブジェクト・テーブルの挿入
従属を持つか否かを決定するテストが行なわれる。若し
、挿入従属を持つならば、ステップ108において、プ
ランは無効であるとマークされる。若し、既にチエツク
された従属の組合せが「真」でなければ、ステップ11
0において、プランは有効として残る。
プ104において、オブジェクト・テーブルのアクセス
・プランの従属が決定される。ステップ104か、ある
いはステップ106の何れかのステップの後に、ステッ
プ106のテストが行なわれる。ステップ106におい
て、アクセス・プランがオブジェクト・テーブルの挿入
従属を持つか否かを決定するテストが行なわれる。若し
、挿入従属を持つならば、ステップ108において、プ
ランは無効であるとマークされる。若し、既にチエツク
された従属の組合せが「真」でなければ、ステップ11
0において、プランは有効として残る。
要約すると、存在するフォーリン・キーが除去される時
には、アクセス・プランは、若し下記の条件を持つなら
ば、無効にされねばならない。即ち、その条件とは(1
)今、除去されたフォーリン・キーとオブジェクト・テ
ーブルのキー従属とに対する親テーブルの更新従属か、
(2)オブジェクト・テーブルの挿入従属か、(3)オ
ブジェクト・テーブルの更新従属と、今、除去したフォ
ーリン・キーの親テーブルのキー従属か、または(4)
今、除去したフォーリン・キーの親テーブルの削除、ま
たはカスケード従属かを持つことである。若しアクセス
・プランが、上述した従属を持たないならば、フォーリ
ン・キーを削除する時に、そのアクセス・プランは無効
にする必要はない。
には、アクセス・プランは、若し下記の条件を持つなら
ば、無効にされねばならない。即ち、その条件とは(1
)今、除去されたフォーリン・キーとオブジェクト・テ
ーブルのキー従属とに対する親テーブルの更新従属か、
(2)オブジェクト・テーブルの挿入従属か、(3)オ
ブジェクト・テーブルの更新従属と、今、除去したフォ
ーリン・キーの親テーブルのキー従属か、または(4)
今、除去したフォーリン・キーの親テーブルの削除、ま
たはカスケード従属かを持つことである。若しアクセス
・プランが、上述した従属を持たないならば、フォーリ
ン・キーを削除する時に、そのアクセス・プランは無効
にする必要はない。
第5図に示したアクセス・プラン従属のアプリケーショ
ンを第3図に示した例と関連させて以下に説明する。こ
れらの例を説明する目的で、テーブルT4はオブジェク
ト・テーブルであり、そのフォーリン・キーBはテーブ
ルT4から除去されるものと仮定する。
ンを第3図に示した例と関連させて以下に説明する。こ
れらの例を説明する目的で、テーブルT4はオブジェク
ト・テーブルであり、そのフォーリン・キーBはテーブ
ルT4から除去されるものと仮定する。
コマンド40に対して、アクセス・プランはテーブルT
4の挿入従属を持っている。これは、アクセス・プラン
が無効であることが必要である。キーBの関係の制限チ
エツクを行なうアクセス・プラン中に含まれるコードは
、最早有効、乃至必要ではなく、再コンパイルから除外
される。
4の挿入従属を持っている。これは、アクセス・プラン
が無効であることが必要である。キーBの関係の制限チ
エツクを行なうアクセス・プラン中に含まれるコードは
、最早有効、乃至必要ではなく、再コンパイルから除外
される。
コマンド42はテーブルT2の挿入従属と、T4の非従
属とを発生する。これはアクセス・プランの無効を必要
としない。
属とを発生する。これはアクセス・プランの無効を必要
としない。
コマンド46はテーブルT2の更新従属と、テーブルT
4のキー従属とを発生する。これはアクセス・プランを
無効にする。テーブルT4のキー従属はないから、テー
ブルT2の更新従属のみを発生するコマンド48は、ア
クセス・プランを無効にしない。
4のキー従属とを発生する。これはアクセス・プランを
無効にする。テーブルT4のキー従属はないから、テー
ブルT2の更新従属のみを発生するコマンド48は、ア
クセス・プランを無効にしない。
コマンド50はアクセス・プランを無効にしないテーブ
ルT4の選択従属を発生する。コマンド52はテーブル
T4の更新従属を発生するが、テーブルT2の従属は発
生しない。これはアクセス・プランを無効にしない。コ
マンド54はテーブルT2の削除従属と、テーブルT4
のカスケード従属を発生する。これはアクセス・プラン
の無効を必要とする。
ルT4の選択従属を発生する。コマンド52はテーブル
T4の更新従属を発生するが、テーブルT2の従属は発
生しない。これはアクセス・プランを無効にしない。コ
マンド54はテーブルT2の削除従属と、テーブルT4
のカスケード従属を発生する。これはアクセス・プラン
の無効を必要とする。
上述したように、フォーリン・キーの付加、または除去
は、そのようなアクセス・プランがオブジェクト・テー
ブルに成るタイプの従属と、そのフォーリン・キーのた
めの親テーブルとを持っている時に、アクセス・プラン
を無効にすることを必要とする。アクセス・プランの無
効を生じる従属は、アクセス・プランがオブジェクト・
テーブルと親テーブルとを持つことが出来る可能性ある
すべてのタイプの従属のサブセットである。このサブセ
ットに含まれないタイプの従属は、アクセス・プランを
無効にする必要がない。従って、多くの場合、フォーリ
ン・キーを付加し、または除去することは、そのような
キーを含むテーブルに従属したすべてのアクセス・プラ
ンを無効にしない。
は、そのようなアクセス・プランがオブジェクト・テー
ブルに成るタイプの従属と、そのフォーリン・キーのた
めの親テーブルとを持っている時に、アクセス・プラン
を無効にすることを必要とする。アクセス・プランの無
効を生じる従属は、アクセス・プランがオブジェクト・
テーブルと親テーブルとを持つことが出来る可能性ある
すべてのタイプの従属のサブセットである。このサブセ
ットに含まれないタイプの従属は、アクセス・プランを
無効にする必要がない。従って、多くの場合、フォーリ
ン・キーを付加し、または除去することは、そのような
キーを含むテーブルに従属したすべてのアクセス・プラ
ンを無効にしない。
フォーリン・キーが除去され、または作成される時、従
属のタイプをチエツクするための処理は非常に効率的に
することが出来る。データベース中のオブジェクトのア
クセス・プランの従属は、ビット・マツプとしてストア
することが出来る。
属のタイプをチエツクするための処理は非常に効率的に
することが出来る。データベース中のオブジェクトのア
クセス・プランの従属は、ビット・マツプとしてストア
することが出来る。
各アクセス・プランに対するビット・マツプの直接のチ
エツクは、そのアクセス・プランを無効にする必要があ
るか否かを表示する。従属チエツクを効率的に行なうこ
とが出来るから、これらのチエツクをするのに費される
僅かな時間は、再コンパイルを必要としない場合のアク
セス・プランを再コンパイルしないことにより節約出来
る時間に比べると迩かに小さな時間である。
エツクは、そのアクセス・プランを無効にする必要があ
るか否かを表示する。従属チエツクを効率的に行なうこ
とが出来るから、これらのチエツクをするのに費される
僅かな時間は、再コンパイルを必要としない場合のアク
セス・プランを再コンパイルしないことにより節約出来
る時間に比べると迩かに小さな時間である。
F0発明の効果
本発明は変更されるデータを参照することに関する参照
上の拘束を考慮して、修正されねばならないアクセス・
プランだけを選択し、無効にすべきアクセス・プランを
選択するための方法を与え、そして、必要なときにだけ
、アクセス・プランを再コンパイルすることが出来る。
上の拘束を考慮して、修正されねばならないアクセス・
プランだけを選択し、無効にすべきアクセス・プランを
選択するための方法を与え、そして、必要なときにだけ
、アクセス・プランを再コンパイルすることが出来る。
第1図はデータベース・システム中のアクセス・プラン
を説明するための図、第2図はデータベース・オブジェ
クトの間の関係を示すブロック図、第3図は第2図のデ
ータベース・オブジェクトの選択されたアクセス・プラ
ンの従属タイプの記述的なテーブルを示す図、第4図は
新しいフォーリン・キーが作成される時、アクセス・プ
ラン従属をチエツクするための方法合示す流れ図、第5
図は、フォーリン・キーがドロ・ンプされるときアクセ
ス・プランの従属性をチエツクするための方法を示す流
れ図である。 10・・・・データベース、12・・・・データベース
・マネージャ、14.16.18・・・・アクセス・プ
ラン・オブジェクト、20乃至28・・・・データベー
ス・オブジェクト、T1乃至T5・・・・データ・テー
ブル。 第4図
を説明するための図、第2図はデータベース・オブジェ
クトの間の関係を示すブロック図、第3図は第2図のデ
ータベース・オブジェクトの選択されたアクセス・プラ
ンの従属タイプの記述的なテーブルを示す図、第4図は
新しいフォーリン・キーが作成される時、アクセス・プ
ラン従属をチエツクするための方法合示す流れ図、第5
図は、フォーリン・キーがドロ・ンプされるときアクセ
ス・プランの従属性をチエツクするための方法を示す流
れ図である。 10・・・・データベース、12・・・・データベース
・マネージャ、14.16.18・・・・アクセス・プ
ラン・オブジェクト、20乃至28・・・・データベー
ス・オブジェクト、T1乃至T5・・・・データ・テー
ブル。 第4図
Claims (11)
- (1)無効にされるべきデータベースのアクセス・プラ
ンを選択する方法において、 従属するデータベース・オブジェクト中にフォーリン・
キーが、作成され、除去され、または変更される時、従
属オブジェクトのアクセス・プラン従属のタイプと、そ
のフォーリン・キーのプライマリー・キーを定義する親
オブジェクトとを決定するステップと、 可能性あるすべての従属タイプの予め決められたサブセ
ット内にある従属オブジェクト及び親オブジェクトとの
従属を持つ各アクセス・プランを無効にするステップと を含むデータベースのアクセス・プランの選択方法。 - (2)可能性ある従属タイプは選択、削除、挿入、更新
、カスケード及びキー従属を含む請求項(1)に記載の
データベースのアクセス・プランの選択方法。 - (3)予め選択されたサブセットは、 フォーリン・キーが作成される時に、従属オブジェクト
の挿入及び更新従属と、親オブジェクトの削除、更新及
びカスケード従属とを含み、フォーリン・キーが除去さ
れる時に、従属テーブルの挿入従属と、親テーブルの削
除及びカスケード従属と、親テーブルの組合せ更新従属
と、従属テーブルのキー従属と、従属テーブルの組合せ
更新従属と、親テーブルのキー従属とを含む ことからなる請求項(2)に記載のデータベースのアク
セス・プランの選択方法。 - (4)データベース・システムにおけるアクセス・プラ
ンを無効にする方法において、 若し、従属及び親オブジェクトが削除により変化し、ま
たは、親オブジェクトがプライマリー・キーを持つてい
る従属オブジェクト中にフォーリン・キーを加えるなら
ば、アクセス・プラン中の手続的なコードが変更される
べきか否かを決定するステップと、 変更されねばならない手続的なコードを持つすべてのア
クセス・プランに無効のマークを付けるステップと を含むデータベース・システムのアクセス・プランの無
効方法。 - (5)上記決定するステップは、 従属及び親オブジェクトのアクセス・プラン従属のタイ
プを決定するステップと、 可能性あるすべての従属タイプの予め選択されたサブセ
ット中にある親オブジェクト及び従属オブジェクトの従
属を持つアクセス・プランを選択するステップと、その
ような選択アクセス・プランは手続的なコードの変更を
必要とすることとを含むデータベース・システムのアク
セス・プランの無効方法。 - (6)2つのデータベース・オブジェクトの間の関係が
変更される時、データベース中の参照拘束を維持するた
めの方法において、 データベース・オブジェクトのアクセス・プランの従属
を決定するステップと、 決定された従属と、可能性あるアクセス・プランの従属
タイプの予め決められたサブセットとを比較するステッ
プと、 若しアクセス・プランの決定された従属が予め選択され
たサブセットの中にあれば、そのアクセス・プランを無
効にするステップと を含むデータベース・システムのアクセス・プランの無
効方法。 - (7)若し、そのアクセス・プランが無効にマークされ
ているならば、アクセス・プランが次にアクセスされる
時に、アクセス・プランを再コンパイルするステップを
含むことを特徴とする請求項(6)に記載のデータベー
ス・システムのアクセス・プランの無効方法。 - (8)1つのデータベース・オブジェクトはプライマリ
ー・キーを含み、そして、他のデータベース・オブジェ
クトは、参照上の拘束を維持するプライマリー・キーと
一貫性を持たねばならないフォーリン・キーを含むこと
を特徴とする請求項(6)に記載のデータベース・シス
テムのアクセス・プランの無効方法。 - (9)関係の変更がフォーリン・キーの付加、または除
去を含むことを特徴とする請求項(8)に記載のデータ
ベース・システムのアクセス・プランの無効方法。 - (10)可能性ある従属タイプが選択、挿入、更新、カ
スケード及びキー従属を含むことを特徴とする請求項(
9)に記載のデータベース・システムのアクセス・プラ
ンの無効方法。 - (11)予め決められたサブセットは、 フォーリン・キーが作成される時に、従属オブジェクト
の挿入及び更新従属と、親オブジェクトの削除、更新及
びカスケード従属とを含み、フォーリン・キーが削除さ
れる時に、従属テーブルの挿入従属と、親テーブルの削
除及びカスケード従属と、親テーブルの組合せ更新従属
と、従属テーブルのキー従属と、従属テーブルの組合せ
更新従属と、親テーブルのキー従属とを含む ことからなる請求項(9)に記載のデータベース・シス
テムのアクセス・プランの無効方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US42147689A | 1989-10-13 | 1989-10-13 | |
US421476 | 1989-10-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03132834A true JPH03132834A (ja) | 1991-06-06 |
Family
ID=23670686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2244144A Pending JPH03132834A (ja) | 1989-10-13 | 1990-09-17 | データベースのアクセス・プランの選択方法及び無効方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0422877A3 (ja) |
JP (1) | JPH03132834A (ja) |
KR (1) | KR940004388B1 (ja) |
CN (1) | CN1050938A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6666028B2 (en) | 2001-07-05 | 2003-12-23 | Mitsubishi Heavy Industries, Ltd. | Operation method for combined plant |
JP2020042344A (ja) * | 2018-09-06 | 2020-03-19 | オムロン株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
JP2020042343A (ja) * | 2018-09-06 | 2020-03-19 | オムロン株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692184A (en) | 1995-05-09 | 1997-11-25 | Intergraph Corporation | Object relationship management system |
US6058417A (en) * | 1998-10-23 | 2000-05-02 | Ebay Inc. | Information presentation and management in an online trading environment |
US6962525B2 (en) | 2002-05-21 | 2005-11-08 | Tyson Fresh Meats, Inc. | Method and apparatus for meat cut classification of fat thickness for downstream trimming |
US7001261B2 (en) | 2003-09-19 | 2006-02-21 | Tyson Fresh Meats, Inc. | Automated classifier and meat cut fat trimming method and apparatus |
WO2015198392A1 (ja) * | 2014-06-24 | 2015-12-30 | 株式会社島津製作所 | 情報管理システム |
CN111078670B (zh) * | 2019-12-19 | 2023-06-20 | 上海达梦数据库有限公司 | 数据库执行计划清除方法、装置、设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
-
1990
- 1990-09-13 CN CN90107663A patent/CN1050938A/zh active Pending
- 1990-09-13 KR KR1019900014422A patent/KR940004388B1/ko not_active IP Right Cessation
- 1990-09-17 JP JP2244144A patent/JPH03132834A/ja active Pending
- 1990-10-08 EP EP19900311015 patent/EP0422877A3/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6666028B2 (en) | 2001-07-05 | 2003-12-23 | Mitsubishi Heavy Industries, Ltd. | Operation method for combined plant |
JP2020042344A (ja) * | 2018-09-06 | 2020-03-19 | オムロン株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
JP2020042343A (ja) * | 2018-09-06 | 2020-03-19 | オムロン株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
US11663232B2 (en) | 2018-09-06 | 2023-05-30 | Omron Corporation | Data processing apparatus, data processing method, and data processing program stored on computer-readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
KR940004388B1 (ko) | 1994-05-23 |
EP0422877A2 (en) | 1991-04-17 |
EP0422877A3 (en) | 1992-11-19 |
CN1050938A (zh) | 1991-04-24 |
KR910008599A (ko) | 1991-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5386557A (en) | Enforcement of referential constraints in a database system | |
US5625815A (en) | Relational database system and method with high data availability during table data restructuring | |
US6216140B1 (en) | Methodology for the efficient management of hierarchically organized information | |
EP0360387B1 (en) | Data base management system | |
US7028057B1 (en) | Versioned relational database system with an optimistic constraint model | |
JP5259404B2 (ja) | データベースフラグメントのクローン化および管理 | |
US4947320A (en) | Method for referential constraint enforcement in a database management system | |
US20030135523A1 (en) | Method of using cache to determine the visibility to a remote database client of a plurality of database transactions | |
US7836028B1 (en) | Versioned database system with multi-parent versions | |
US10430409B2 (en) | Maintenance of active database queries | |
US7809762B1 (en) | Outage-less database change operation | |
AU2003227293A1 (en) | Database management system and method for conditional conflict serializability of transactions and for combining meta-data of varying degrees of reliability | |
Jordan et al. | Precision locks | |
US7225206B2 (en) | System and method for reorganizing stored data | |
US6112199A (en) | Data item values | |
US9489413B2 (en) | Asynchronous global index maintenance during partition maintenance | |
Corlăţan et al. | Query Optimization Techniques in Microsoft SQL Server. | |
JPH03132834A (ja) | データベースのアクセス・プランの選択方法及び無効方法 | |
CN115687359A (zh) | 数据表分区方法及装置、存储介质、计算机设备 | |
EP0100821B1 (en) | Method and apparatus for managing a database | |
US20240303239A1 (en) | Database management apparatus and method | |
Matiasko | Column Level Uni-Temporal Data | |
JPH04241624A (ja) | 設計情報管理方式 | |
Glag et al. | Performance Problems: Symptoms, Causes, Measures | |
JPH01222344A (ja) | データ管理処理方法 |