外部キー (特定のカラムやカラムの組み合わせで構成) は、あるテーブル (「外部」テーブル) の情報を、別のテーブル (「参照」テーブルまたは「プライマリ」テーブル) のデータと関連付けます。外部キー関係を有効にするには、外部キーのエントリが参照先のテーブルのローのプライマリ・キー値に対応していなければなりません。場合によっては、プライマリ・キー以外のユニークなカラムが参照先になります。
SQL Anywhere サンプル・データベースには、Employees テーブルと Departments テーブルが含まれています。Employees テーブルのプライマリ・キーは employee ID、また Departments テーブルのプライマリ・キーは department ID です。Employees テーブルから見ると、department ID は department テーブルの「外部キー」になります。Employees テーブルのそれぞれの department ID が、Departments テーブルの department ID と完全に一致しているためです。
外部キー関係は、多対 1 の関係です。Employees テーブルの中には、同じ department ID エントリを含む複数のエントリがありますが、department ID は Departments テーブルのプライマリ・キーであるため、その中には 1 つしかありません。外部キーが、重複したエントリもしくは NULL 値を含む Departments テーブルのカラムを参照できると、Departments テーブルのどのローが正しい参照先かを決められなくなります。このようなキーを必須外部キーといいます。
データベースに、事業所の所在地をリストする office テーブルが含まれているとします。Employees テーブルには、その従業員が勤務する事業所の所在地を示すために、office テーブルに対する外部キーが指定されています。ここでデータベースの設計者は、従業員が雇用されたときに事業所の所在地を指定しないでおくことができます。これは、まだ配置先が決定していない場合や、外で働く場合に対応するためです。このような場合、外部キーはオプションで、NULL 値を使用できます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |