スキップしてメイン コンテンツへ

データベース モデル図で参照整合性を保持する

注: データベース モデル図は、特定のバージョンの Visio のみで提供されています。 詳細については、「データベース モデリング機能が見つかりません」を参照してください。

参照整合性規則について

参照整合性ルールは、データベースユーザーが、関連する列間のマッピングを誤って中断することを防止します。

"Titles" と "Authors" という名前の2つのテーブルを含む Books というデータベースがあるとしましょう。 この例では、各タイトルには作成者が1人しかありませんが、各作成者は複数のタイトルを持つことができます。1対多のリレーションシップと呼ばれるものを作成します。 リレーションシップの "一" 側のテーブルは親テーブルと呼ばれます。 "多" 側のテーブルは子テーブルと呼ばれます。

各書籍とその作成者に関する情報をまとめて収集するために、クエリはキーを使用して Titles テーブルの各書籍を Authors テーブルの作成者に一致させます。 親テーブル (Authors) は、各行を一意に識別する主キーを持っている必要があります。 Titles テーブルには、各タイトルの AuthorID を保持する列が含まれている必要があります。 この列は外部キーと呼ばれます。 主キーは、各作成者を識別し、外部キーによって、どの書籍がどの author によって作成されたのかを特定します。

ユーザーが親テーブルで作成者の AuthorID を変更した場合、Titles テーブルの AuthorID を更新しなければ、Titles テーブルの書籍に有効な作成者がなくなります。

両方のテーブルの AuthorID を変更する代わりに、参照整合性規則を設定して、必要な操作を実行することができます。 親テーブルでキーが変更または削除されたときに、データベースモデルで特定のアクションを実行するように選択できます。

注: "親" と "子" という用語は、カテゴリによって大きく異なることを意味します。これは、親からカテゴリカテゴリカテゴリを子図形に対して作成されたものです。 カテゴリの詳細については、「データベースモデル図でカテゴリを定義する」を参照してください。

参照整合性のアクションを設定する

  1. 参照操作を設定するリレーションシップをダブルクリックします。

  2. [データベースプロパティ] ウィンドウの [カテゴリ] の下で、[参照アクション] をクリックします。

  3. 子テーブルの対応する値で、データベースが実行するアクションをクリックします。 次の操作から選ぶことができます。

    • 操作なし     親テーブルの主キーの値が変更または削除された場合、子テーブルの外部キーの対応する値は変更されません。

    • 重ねて表示     親テーブルの主キーの値が変更または削除されると、子テーブルの外部キーに対応する値が変更または削除されて、主キーと一致するようになります。

    • NULL を設定する     親テーブルの主キーの値が変更または削除されると、子テーブルの外部キーに対応する値が NULL に設定されます。

    • 既定値を設定する     親テーブルの主キーの値が変更または削除されると、子テーブルの外部キーに対応する値が、選択した既定値に設定されます。

    • 強制しない     このアクションでは、このリレーションシップの参照整合性規則がオフになります。

注: SET NULLオプションとset Defaultオプションが無効になっている場合は、リレーションシップの [データベースプロパティ] ウィンドウの [その他] タブで、リレーションシップが [オプション] に設定されている可能性があります。

列に既定値を設定する

Set defaultアクションを使うには、列の既定値を指定する必要があります。

  1. ダイアグラムのテーブルをダブルクリックして、[データベースプロパティ] ウィンドウを開きます。

  2. [カテゴリ] の下の [] をクリックし、既定の作成対象とする列をクリックして、[編集] をクリックします。

  3. [列のプロパティ] ダイアログボックスの [定義] タブで、既定値の値を入力します。

表記法を使用して参照整合性を表示する

モデルのリレーションシップラインの横にある [参照整合性] の表記を表示または非表示にするように、ドキュメントのオプションを設定できます。

参照整合性表記の文字の意味を教えてください。

参照整合性表記法では、2文字をコロンで区切ったリレーションシップが、[親テーブルで実行されたアクション]: [子テーブルの結果] という形式で表示されます。 たとえば、d d は、親テーブルで何かが削除されると、その変更が子テーブルに連鎖されることを意味します。

親テーブルのアクションは、小文字で示されます。

  • u    親テーブルのデータが更新されます。

  • a    親テーブルのデータが削除されます。

子テーブルの結果は、次のように大文字で示されます。

  • R 操作なし    子テーブルを変更しないでください。

  • C Cascade     子テーブルの変更を複製します。

  • D Set の既定値    子テーブルで、以前に設定した既定値を挿入します。

  • N Set Null     子テーブルを NULL に設定します。

  • 新しい     このリレーションシップに参照整合性を適用しないでください。

注: これらの設定は、モデルではなく実際のデータベースで行われる処理に影響します。 既存のデータベースからリバースエンジニアリングしたモデルでは、参照整合性に関連してデータベースがどのように設計されているかを確認できます。 最初から作成したモデルでは、これらの設定を使用して、モデリングしているデータベースをどのように動作させるかを指定できます。

Visio 2010 で参照整合性を表示する

  1. [データベース] タブの [管理] グループで [表示オプション] をクリックします。

  2. [リレーションシップ] タブの [表示] で、[参照操作] チェックボックスをオンにします。

データベース モデリング機能が見つかりません

Visio の一部のバージョンには、データベースモデル図テンプレートがありません。

Visio Standard には、データベース モデル図テンプレートがありません。

Visio Professional エディションおよび Premium エディションの場合、データベース モデル図テンプレートのリバース エンジニアリング (つまり、既存のデータベースを利用し、Visio でモデルを作成する) 機能はサポートしていますが、フォワード エンジニアリング (つまり、Visio データベース モデルを利用し、SQL コードを生成すること) はサポートしていません。

注: Visio for Enterprise Architects には、リバース エンジニアリングとフォワード エンジニアリングの両方が含まれており、完全なデータベース モデリング機能をご利用いただけます。 Visio for Enterprise Architects は MSDN Premium Subscription に含まれています。このサブスクリプションは Visual Studio Professional エディションと Visual Studio Team System ロールベース エディションでご利用いただけます。

Visio_Plan2 を使用していて、既存のデータベースをデータベースモデルにエンジニアリングする方法については、「既存のデータベースのリバースエンジニアリング」を参照してください。

注:  このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 情報が役に立ったかどうか、ご意見をお寄せください。 参考までに、こちらから英語の記事をお読みいただけます。

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×