平成30年度 秋期 ITパスポート試験 公開問題 問73 解説 データベースの外部キー
データベースにおける外部キーに関する記述のうち,適切なものはどれか。
- ア 外部キーがもつ特性を,一意性制約という。
- イ 外部キーを設定したフィールドには,重複する値を設定することはできない。
- ウ 一つの表に複数の外部キーを設定することはできない。
- エ 複数のフィールドを,まとめて一つの外部キーとして設定することができる。 ✓ 正答
解説
外部キーに関するこの問題は、各選択肢が示す制約条件を正誤判断できるかがポイントです。外部キーとは、あるテーブルの列が、別のテーブルの主キーを参照するための仕組みです。この定義を軸に考えると、各選択肢の誤りが見えてきます。
外部キーの主な役割は、参照先のテーブルに存在しないデータが入力されないようにすること(参照整合性の維持)です。外部キーそのものには、値が一意である必要はなく、また重複を禁止する性質もありません。
アの誤りについて 一意性制約とは、その列に含まれる値が重複することを禁止するルールです。これは主キーやユニークキーに適用されるものであり、外部キーの特性ではありません。
イの誤りについて 外部キーが設定された列には、同じ値が何度も登場できます。例えば、顧客テーブルの主キーを参照する注文テーブルの顧客ID列には、同じ顧客が何度も注文を行うため、同じ顧客IDが複数回記録されるのが一般的です。
ウの誤りについて 一つのテーブルには、複数の外部キーを設定することが可能です。例えば、注文テーブルにおいて、顧客テーブルを参照する顧客IDと、商品テーブルを参照する商品コードの両方を外部キーとして設定するケースなどがこれに該当します。
エの正解について 外部キーは一つの列(フィールド)に対してだけでなく、複数の列を組み合わせて設定することができます。これを複合外部キーと呼びます。例えば、あるテストの成績表において、学生IDと科目コードの組み合わせを外部キーとして設定することで、特定の学生の特定の科目のデータであることを保証する場合などがこれにあたります。
試験では、主キー(重複不可、NULL不可、一意性制約)と外部キー(重複可、NULL可、参照整合性維持)の違いを明確に区別しておくことが合格への近道です。特に、外部キーが単一の列だけでなく、複合キーとして設定可能であるという点は、データベース設計の実務や試験での応用問題で頻出の知識となります。
- データベースの基礎知識:主キーと外部キーの役割とは
- わかりやすいITパスポート:関係データベースの制約について