目的に合ったトピックをクリックしてください
参照整合性ルールを理解する
参照整合性ルールは、関連するカラム間のマッピングがデータベース ユーザーにより不用意に無効にされないようにします。
"タイトル" および "著者" という 2 つのテーブルを持つ書籍という名前のデータベースがあるとします。この例では、各タイトルには 1 人の著者しかいませんが、1 人の著者には複数のタイトルがある場合があり、1 対多リレーションシップと呼ばれるリレーションシップが成立しています。このリレーションシップの "1" 側となるテーブルは "親テーブル" と呼ばれます。"多" 側のテーブルは、"子テーブル" と呼ばれます。
各書籍とその著者の情報を収集するために、クエリでは "タイトル" テーブル内の各書籍と "著者" テーブル内の各書籍の著者とを対応付けるキーを使用しています。親テーブル ("著者") には、各行を一意に識別する主キーが必要です。"タイトル" テーブルには、各タイトルの著者 ID を保持するカラムが必要です。このカラムは、外部キーと呼ばれます。主キーは各著者を識別し、外部キーは各著者によってどの書籍が著されているかを識別します。
親テーブルで著者の著者 ID を更新していても、"タイトル" テーブルでは著者 ID を更新していない場合は、"タイトル" テーブル内の当該書籍には有効な著者が関連付けられていない状態になります。
両方のテーブルで著者 ID を変更する代わりに、必要な操作を実行する参照整合性ルールを設定できます。親テーブルのキーが変更または削除された場合に、データベース モデルが特定の操作を実行するように指定できます。
注: 用語の親と子の用語は、親カテゴリに、カテゴリ、およびカテゴリから子への図形を作成するには、カテゴリでまったく異なる意味に使用されます。カテゴリの詳細については、データベース モデル図でカテゴリを定義を参照してください。
参照整合性の操作を設定する
-
参照整合性の操作を設定するリレーションシップをダブルクリックします。
-
[データベース プロパティ] ウィンドウで、[カテゴリ] の [参照操作] をクリックします。
-
データベースが子テーブルの対応する値に対して実行する操作をクリックします。選択できる操作は、次のとおりです。
-
[アクションなし] 親テーブルの主キー内の値が変更または削除された場合でも、子テーブルの外部キー内の対応する値は変更されません。
-
[カスケード] 親テーブルの主キー内の値が変更または削除された場合、子テーブルの外部キー内の対応する値は、主キーに合わせて変更または削除されます。
-
[NULL 値を設定] 親テーブルの主キー内の値が変更または削除された場合、子テーブルの外部キー内の対応する値は、NULL に設定されます。
-
[既定値を設定] 親テーブルの主キー内の値が変更または削除された場合、子テーブルの外部キー内の対応する値は、指定された既定値に設定されます。
-
[適用しない] このリレーションシップの参照整合性ルールを無効にします。
-
注: [NULL 値を設定] および [既定値を設定] オプションが利用できない場合、このリレーションシップは [データベース プロパティ] ウィンドウの [その他] タブで [オプション] に設定されていることが考えられます。
カラムの既定値を設定する
[既定値を設定] 操作を使用するには、カラムの既定値を指定する必要があります。
-
テーブルをダブルクリックして、[データベース プロパティ] ウィンドウを開きます。
-
[カテゴリ] の [カラム] をクリックし、既定値を指定するカラムをクリックして、[編集] をクリックします。
-
['%s' のカラム プロパティ] ダイアログ ボックスの [定義] タブで、既定値となる値を入力します。
表記法を使用して参照整合性を表現する
図面オプションを設定して、モデル内でリレーションシップ線の横に表示される参照整合性の表記法の表示または非表示を切り替えることができます。
参照整合性の表記法で文字意味は?
参照整合性の表記法では、コロンで区切られた 2 つの文字 ([親テーブルでの操作]:[子テーブルでの結果]) により、リレーションシップを表現します。たとえば、d:C は親テーブルからなんらかのデータが削除された場合に、これに合わせて子テーブルが変更されることを意味しています。
親テーブルでの操作は、小文字により表されます。
-
u 親テーブルのデータが更新。
-
d 親テーブルのデータが削除されます。
子テーブルでの結果は、大文字により表されます。
-
R - アクションなし 子テーブルは変更されません。
-
C - カスケード 子テーブルに変更が反映されます。
-
D - 既定値を設定 事前に設定されているカラムの既定値が子テーブルに挿入されます。
-
N - NULL 値を設定 子テーブルに NULL が設定されます。
-
(空白) このリレーションシップには参照整合性を適用しません。
注: これらの設定は、モデルではなく、実際のデータベース内での操作に影響します。モデルからは、実際のデータベースをリバース エンジニアリングして、データベースの参照整合性がどのように設定されているかを確認することができます。まったく新しく作成したモデルでは、これらの設定を使用して、モデリングするデータベースの動作を定義することができます。
参照整合性を表示する
-
[データベース] メニューの [オプション] をポイントし、[図面] をクリックします。
-
[リレーションシップ] タブの [表示] で、[参照整合性] チェック ボックスをオンにします。