問題
問88
関係データベースにおける外部キーに関する記述のうち、適切なものはどれか。
- 外部キーがもつ特性を、一意性制約という。
- 外部キーを設定したフィールドには、重複する値を設定することはできない。
- 一つの表に複数の外部キーを設定することができる。
- 複数のフィールドを、まとめて一つの外部キーとして設定することはできない。
[出典:ITパスポート試験 平成29年度秋期 問88]
正解
正解は「ウ」です。
解説
正解は「ウ 一つの表に複数の外部キーを設定することができる」です。外部キーは、あるテーブル(表)のデータを別のテーブルのデータと関連付けるための項目(フィールド)です。
例えば、「顧客テーブル」と「注文テーブル」がある場合、「注文テーブル」にはどの顧客からの注文かを示す「顧客ID」という項目が入ります。この「顧客ID」が「顧客テーブル」の「顧客ID」を参照する外部キーとなります。 一つのテーブルが複数の他のテーブルを参照することはよくあります。
例えば、「注文テーブル」には「顧客テーブル」を参照する外部キー(顧客ID)と、「商品テーブル」を参照する外部キー(商品ID)の両方を持つことができます。これにより、注文が「どの顧客による」「どの商品の」注文であるかを明確にすることができます。したがって、一つの表に複数の外部キーを設定することは可能ですし、実際のデータベース設計でも頻繁に行われることです。
ア(外部キーがもつ特性を、一意性制約という。):
一意性制約は、そのフィールドの値がテーブル内で重複しないことを保証する制約で、主に主キーやユニークキーに設定されるものです。外部キーは、参照先の主キーを参照するため、必ずしも一意である必要はありません。
イ(外部キーを設定したフィールドには、重複する値を設定することはできない。):
外部キーには重複する値を設定できます。例えば、多くの顧客が同じ商品を注文する場合、「注文テーブル」の「商品ID」という外部キーには同じ商品IDが複数回現れることがあります。
エ(複数のフィールドを、まとめて一つの外部キーとして設定することはできない。):
複数のフィールドを組み合わせて「複合外部キー」として設定することは可能です。例えば、複数の要素を組み合わせないと一意にならないような参照を行う場合に利用されます。
難易度
この問題は、関係データベースの基本的な概念である「外部キー」の特性について問うものです。データベースの学習を始めたばかりの初心者にとっては、主キーや一意性制約といった関連用語との違いを正確に理解しておく必要があるため、やや難しく感じるかもしれません。しかし、データベースの構造を理解する上で非常に重要な知識なので、しっかりと押さえておきたいポイントです。
用語補足
外部キー:
外部キーとは、関係データベースにおいて、あるテーブル(表)の特定のフィールドが、別のテーブルの主キーを参照しているときに、そのフィールドのことを指します。これにより、テーブル間の関連付けを行い、データの一貫性を保ちます。例えば、「注文テーブル」の「顧客ID」が「顧客テーブル」の「顧客ID」(主キー)を参照する場合、「注文テーブル」の「顧客ID」は外部キーです。
一意性制約:
一意性制約とは、データベースの特定のフィールド(または複数のフィールドの組み合わせ)に設定される制約で、そのフィールドの値がテーブル内で重複してはならないことを保証するものです。例えば、社員番号に一意性制約を設定すると、同じ社員番号を持つ社員が複数登録されることを防ぎます。
主キー:
主キーとは、関係データベースにおいて、テーブル内の各レコード(行)を一意に識別するための特定のフィールド(または複数のフィールドの組み合わせ)です。主キーには必ず一意性制約とNOT NULL制約(空の値は許されない)が設定されます。例えば、顧客テーブルの「顧客ID」が主キーであれば、各顧客は固有のIDを持ち、そのIDで顧客を特定できます。
関係データベース:
関係データベースとは、データをテーブル(表)の形式で管理するデータベースの一種です。各テーブルは行と列で構成され、テーブル間は共通のフィールド(キー)によって関連付けられます。これにより、データの整理や検索、更新を効率的に行うことができます。身近な例では、顧客情報や商品情報などがそれぞれ別のテーブルとして管理され、関連付けられている状態がこれにあたります。
対策
この問題を解くためのポイントは、関係データベースにおける「キー」の役割と特性を正確に理解することです。特に、主キー、外部キー、一意性制約といった基本的な用語について、それぞれの意味と適用範囲を区別して覚えることが重要です。それぞれのキーがどのような制約を持ち、どのような目的で使われるのかを具体的な例と紐付けて理解することで、迷わずに正解を選ぶことができます。テキストだけでなく、実際のデータベース構造図などを見て学習すると、より理解が深まります。

