FE SUBJECT A
基本情報技術者 科目Aの問題解説:リレーショナルデータベースの外部キーの説明はどれか。
問題
リレーショナルデータベースの外部キーの説明はどれか。
- ア テーブル内の各行を一意に識別する列
- イ テーブルのデフォルト値を保持する列
- ウ 他のテーブルの主キーを参照する列で、テーブル間の関連を定義する(正解)
- エ テーブルのインデックスを作成するための列
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲
正解と解説
正解:他のテーブルの主キーを参照する列で、テーブル間の関連を定義する
この問題は外部キーの役割を問うものです。外部キー(FOREIGN KEY)は、あるテーブルの列が別テーブルの主キーなどを参照することで、テーブル同士の関係を表す仕組みです。存在しない顧客IDを注文表に登録できないようにするなど、参照整合性を保つために使われます。
アは主キー、イはデフォルト値を持つ列、エはインデックス作成に関する説明です。外部キーは「他テーブルを参照するキー」と考えると迷いません。
軽い類題:注文表の顧客IDが、顧客表の顧客IDを参照している場合、注文表の顧客IDは外部キーになります。
つまずきポイント:外部キーには参照整合性制約が働くため、参照先の行を消そうとすると制約に引っかかります。顧客表のある顧客を、その顧客IDを参照する注文行が残ったまま削除しようとすると、既定では削除が拒否されます。「主キーと違い、外部キーは同じ値の重複やNULLを許せる」点も主キーとの違いです。
他の選択肢はなぜ違う?
- ア各行を一意に識別するのは主キー。
- イデフォルト値はDEFAULT制約の話で、列の種類ではない。
- エインデックスは検索性能の仕組みで、キーの種類ではない。
この問題について
IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。
公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。