
artist_idアルバム テーブルに存在しないアーティストを参照する外部キー ( ) 値があります。つまり、参照先のテーブルに対応する主キー値がない外部キー値が存在するということです。ここで何が起こったかというと、「エアロスミス」というアーティストが存在し、そのアーティストの が であったのですが、アーティスト テーブルから削除されてしまいました。しかし、「イート・ザ・リッチ」というアルバムはこのアーティストを参照していました。参照整合性が適用されていれば、このようなことは起こりません。artist_id4参照整合性とは、データのすべての参照が有効であることを示すデータの特性です。リレーショナルデータベースのコンテキストでは、リレーション(テーブル)の1つの属性(列)の値が別の属性の値(同じリレーションまたは異なるリレーション内)を参照する場合、参照される値が必ず存在しなければならないことを意味します。[ 1 ]
リレーショナル データベースで参照整合性が維持されるためには、ベーステーブルで外部キーとして宣言された列には、NULL 値、親テーブルの主キー、または候補キーの値のみを含めることができます。[ 2 ]つまり、外部キー値が使用される場合、親テーブルの有効な既存の主キーを参照する必要があります。たとえば、別のテーブルの外部キーによって参照される値を含むレコードを削除すると、参照整合性が損なわれます。一部のリレーショナル データベース管理システム(RDBMS) は、参照整合性を強制できます。通常は、整合性を維持するために外部キー行も削除するか、エラーを返して削除を実行しないことによって実現されます。どちらの方法が使用されるかは、データ ディクショナリで定義された参照整合性制約によって決定される場合があります。
形容詞「参照」は、外部キーが別のテーブルのリンクされた列を「参照」する動作を表します。簡単に言うと、「参照整合性」とは、参照先のデータが必ず見つかることを保証するものです。データベースの参照整合性が欠如すると、リレーショナルデータベースは不完全なデータを返すことになり、通常はエラーを示す表示もありません。
2つの(場合によっては同一の)述語に対する包含関係そしてスキーマから書き出されます、、は、そしてこれは、列に表示される値のタプルを意味します。事実について列には値のタプルとしても表示される必要があります事実として。
このような制約は、タプル生成依存性(TGD)の特殊な形式であり、規則の両側に関係アトムが1つだけ存在する。[ 3 ]一階述語論理 では、次のように表現できる。、 どこはベクトル(サイズは)共有される変数そしてまた、TGDの本体にもヘッドにも、同じ変数が複数回出現することはありません。
包含関係間の論理的含意は推論規則[ 4 ] : 193によって公理化でき、 PSPACEアルゴリズムによって判定 できる。この問題は、線形有界オートマトンに対する受理問題からの還元によってPSPACE完全であることが示される[ 4 ] : 196。しかし、包含関係または関数関係になり得る依存関係間の論理的含意は、モノイドの語問題からの還元によって判定不能である[ 4 ] : 199。
宣言的参照整合性(DRI)は、 SQLデータベースプログラミング言語においてデータの整合性を確保するための手法の一つです。
テーブル(参照テーブルと呼ばれる)は、外部キーを使用して、別のテーブル(参照テーブル)の列(または列のグループ)を参照できます。参照テーブルの参照される列は、主キーなどの一意制約の対象でなければなりません。また、自己参照も可能です(ただし、MS SQL Server では完全には実装されていません[ 5 ])。参照テーブルに新しい行を挿入すると、リレーショナルデータベース管理システム(RDBMS)は、入力されたキー値が参照テーブルに存在するかどうかを確認します。存在しない場合は、挿入できません。また、UPDATEおよびDELETEに対して、CASCADE(参照テーブルの変更/削除を参照テーブルに転送する)、NO ACTION(特定の行が参照されている場合、キーの変更は許可されない)、または SET NULL / SET DEFAULT(参照テーブルのキーが変更/削除されると、参照値が NULL または指定されている場合は DEFAULT 値に設定される)などの DRI アクションを指定することもできます。[ 6 ]
Microsoft SQL Serverでは、DRI という用語は、データベース オブジェクトに対するユーザーへの権限の割り当てにも適用されます。データベース ユーザーに DRI 権限を与えると、テーブルに外部キー制約を追加できるようになります。[ 7 ]
定義:参照整合性は、テーブル間の関係が一貫していることを保証するデータベースの概念です。あるテーブルが別のテーブルへの外部キーを持っている場合、参照整合性の概念では、リンクされたテーブルに対応するレコードが存在しない限り、外部キーを含むテーブルにレコードを追加することはできません。