参照保全および表

参照保全とは、1 つの表から別の表へのあらゆる参照が有効であるデータベースの中の一組の表の状態のことをいいます。

次の例を検討してください。

  • CORPDATA.EMPLOYEE は、社員のマスター・リストです。
  • CORPDATA.DEPARTMENT は、有効なすべての部門番号のマスター・リストです。
  • CORPDATA.EMP_ACT は、プロジェクトごとに行われる活動のマスター・リストです。

他の表では、上記の表で記述されているのと同じエンティティーを参照しています。表に、マスター・リストのあるデータが含まれる場合は、そのデータが実際にマスター・リストに入っていなければなりません。そうでなければ、その参照は無効となります。マスター・リストの入っている表が親表 で、それを参照している表が従属表 です。従属表から親表への参照が有効である場合、それらの一組の表の状態が参照保全 と呼ばれます。

言いかえれば、参照保全とは、すべての外部キーのすべての値が有効であるデータベースの状態のことです。外部キーの各値は親キーの中にもなければならないか、ヌルでなければなりません。参照保全のこの定義では、次の用語を理解している必要があります。

  • 固有キー は、行を固有に識別する、表内の列または列のセットです。 1 つの表が複数の固有キーを持つことができますが、表内の 2 つの行が同じ固有キーの値を持つことはできません。
  • 基本キー は、ヌル値を認めない固有キーです。1 つの表が複数の基本キーを持つことはできません。
  • 親キー は、参照制約で参照される固有キーまたは基本キーのいずれかです。
  • 外部キー は、値が親キーの値と一致しなければならない列または列のセットです。外部キーの作成に使用されるいずれかの列値がヌルである場合には、この規則は当てはまりません。
  • 親表 は、親キーが入っている表です。
  • 従属表 は、外部キーが入っている表です。
  • 下層表 は、従属表または従属表の下層の表です。

参照保全を実施することにより、ヌルでないすべての外部キーに対応する親キーがなければならないという規則への違反が防止されます。

SQL は、CREATE TABLE ステートメントおよび ALTER TABLE ステートメントにより参照保全の概念をサポートします。