ホーム > 情報処理安全確保支援士試験 > 2024年 秋期
情報処理安全確保支援士試験 2024年 秋期 午前2 問21
関係モデルにおける外部キーに関する記述のうち、適切なものはどれか。
ア:外部キーの値はその関係の中で一意でなければならない。
イ:外部キーはそれが参照する候補キーと比較可能でなくてもよい。
ウ:参照先の関係に参照元の外部キーの値と一致する候補キーが存在しなくてもよい。
エ:一つの関係に外部キーが複数存在してもよい。(正解)
解説
関係モデルにおける外部キーは、データベースの整合性を保つために非常に重要な概念です。各選択肢について説明しながら、なぜ「エ」が正解なのかを詳しく解説します。
外部キーとは?
外部キー(Foreign Key)は、ある関係(テーブル)の中の属性(列)で、別の関係の候補キー(Uniqueなキー)を参照するために用いられます。これにより、関連するデータ同士の整合性(リファレンス・インテグリティ)を保つことができます。
選択肢の解説
ア: 外部キーの値はその関係の中で一意でなければならない。
→ これは誤りです。外部キーは参照先テーブルの候補キーを指す必要がありますが、外部キー自体が属するテーブルの中で一意である必要はありません。
例として、「社員テーブル」に部署IDの外部キーがあり、複数の社員が同じ部署IDを持つことは普通です。
→ これは誤りです。外部キーは参照先テーブルの候補キーを指す必要がありますが、外部キー自体が属するテーブルの中で一意である必要はありません。
例として、「社員テーブル」に部署IDの外部キーがあり、複数の社員が同じ部署IDを持つことは普通です。
イ: 外部キーはそれが参照する候補キーと比較可能でなくてもよい。
→ これは誤りです。外部キーが参照する候補キーと「型」や「ドメイン(値の範囲)」が一致していなければなりません。比較可能でなければ整合性チェックができません。
→ これは誤りです。外部キーが参照する候補キーと「型」や「ドメイン(値の範囲)」が一致していなければなりません。比較可能でなければ整合性チェックができません。
ウ: 参照先の関係に参照元の外部キーの値と一致する候補キーが存在しなくてもよい。
→ これは誤りです。参照先に一致する値が存在しなければ外部キー制約に違反し、参照整合性が破壊されます。ただし、外部キーが「NULL」を許容する場合、値がない(NULL)場合は整合性チェックが適用されません。
→ これは誤りです。参照先に一致する値が存在しなければ外部キー制約に違反し、参照整合性が破壊されます。ただし、外部キーが「NULL」を許容する場合、値がない(NULL)場合は整合性チェックが適用されません。
エ: 一つの関係に外部キーが複数存在してもよい。
→ これは正しいです。1つのテーブルの中に複数の外部キー属性を持つことはあり得ます。例えば、社員テーブルに「部署ID」と「勤務地ID」があり、どちらも別のテーブルを参照するケースです。
→ これは正しいです。1つのテーブルの中に複数の外部キー属性を持つことはあり得ます。例えば、社員テーブルに「部署ID」と「勤務地ID」があり、どちらも別のテーブルを参照するケースです。
まとめ
- 外部キーは、「参照先の候補キーと同じ型で、参照先に存在する値を持つ必要」があります。
- 外部キーの値は一意である必要はなく、複数の外部キーが同じテーブルに存在しても問題ありません。
- したがって、正しい選択肢は「エ」となります。
外部キー制約を正しく理解することは、データベース設計や運用で非常に重要です。リファレンス整合性を保つことで、データの矛盾やエラーを防げますので、この考え方をしっかり押さえてください。