外部キー

<< 目次を表示 >>

ページ位置:  その他の記法・モデリング > データベースの設計・生成と読み込み > データベースモデリング > データベース設計に関係する要素 > テーブル > 制約 >

外部キー

外部キーは、2つのテーブル間での列(複数の場合もある)の関係を明示的に示すために利用します。データベースサーバは、外部キーの関係がある場合の整合性を常に保つようになっています。外部キーは、参照元となるテーブルの主キーと、参照する側のテーブルの列を結びつけます。

 

Enterprise Architectでは、外部キーは次の2つの表現で構成します。

 

 

外部キーの作成

外部キーの定義は複雑ですが、外部キーの制約の画面はシンプルになっています。この画面は、親(参照元)となるテーブルが保持する主キーを指定すると、自動的に子(参照する側)のテーブルの列で一致するものを探索します。外部機の設定方法により手順は異なりますが、基本的な流れは同じです。

 

テーブル間に外部キーを作成するための条件は次の通りです。

 

 

外部キーの作成  - データベースビルダーを利用する場合

#

操作方法

1

データベースビルダーのツリーで、対象のテーブルを右クリックし外部キーの追加を選択します。

親テーブルとなる可能性があるテーブルが一覧で表示されます。

2

一覧で対象のテーブルをダブルクリックするか、選択してOKボタンを押してください。

外部キーの制約ダイアログが表示されます。

 

 

外部キーの作成  - ダイアグラム内で指定する場合

#

操作方法

1

ダイアグラムあるいはモデルブラウザで、対象となる2つのテーブルを探し、ダイアグラム内に配置します。両方のテーブルに対して同じデータベースの種類が指定されていることが必要です。

2

関連の接続をツールボックスで選択(クリック)します。

3

外部キーを持つ方のテーブルから、主キーを持つ側のテーブルに対してドラッグ&ドロップし、関連を作成します。

4

対象の2つのテーブルが設定された状態で外部キーの制約ダイアログが表示されます。設定により表示されない場合には、以下のいずれかの方法でダイアログを開くことができます。

  • 接続をダブルクリックする
  • 接続を右クリックし、外部キーを選択する

外部キーの制約ダイアログが表示されます。

 

 

外部キーの制約ダイアログ

下の画像は、外部キーの制約ダイアログで外部キーを設定している状況の例です。

 

 

外部キーの詳細を定義する

項目

説明

対象の制約

外部キーを作成する、対象となる主キーを選択します。 (これらの制約には主キーの他、一意制約・一意インデックスがあります。)

選択を変更すると、その内容に応じて「含まれる列」の内容が更新されます。

含まれる列

この一覧では、対象のテーブルが持つ列について、どの列とどの列を結びつけるのかを選択します。

もし、両方のテーブルに同名の列がある場合、自動的にそれらの列が結合するものとして設定します。

もし、同名の列が存在しない場合、主キーの列名と同じ名前の列を一覧に追加します。この場合、列の名前の前には「*」マークを表示します。

このときには、既存の列を指定して結びつけることができます。ドロップダウンリストから、対象となる列を選択して下さい。選択しない場合、新しい列を追加します。新しく追加する列の名前を変更して追加することもできます。

名前

外部キーの制約を示す情報の名前が表示されます。必要に応じて変更して下さい。

Enterprise Architectでは、外部キーの制約情報は操作として保存します。

(参照:データベース設計における名前設定)

On Delete

削除時の参照整合性維持のためのアクションを指定して下さい。

On Update

更新時の参照整合性維持のためのアクションを指定して下さい。

Parent

主キーを持つ側のテーブルの多重度を指定します。

Child

外部キーを追加する側のテーブルの多重度を指定します。

Create?

外部キーの作成と同時に、外部キーのインデックスを作成する場合には、Trueに設定します。

作成される外部キーのインデックスの名前は、テンプレートで設定されている名前になります。

(参照:データベース設計における名前設定)

テーブルが結びつけられたときに、自動的にこのダイアログを表示

(ダイアグラウ内での操作が対象) この項目にチェックを入れると、テーブル間に関連を作成した場合に、自動的にこのダイアログを表示します。

削除

このボタンを押すと、選択されている外部キーの情報は削除されます。

削除して良いかどうかの確認のメッセージが表示されますので、削除して良い場合には「はい」を選択してください。

外部キーを削除しても、テーブル間の関係はそのまま残すようになっています。不要な場合には、テーブル間の関連を別途削除して下さい。

OK

このボタンを押すと、定義内容に従って外部キーを定義し、ダイアログを閉じます。

 

 

下の例は外部キーがダイアグラムでどのように見えるかを示したものです。

 

データベースビルダーのツリーでは、テーブル 'customers.addresses' の下に同じ外部キーが表示されます。

 

 

参照: