戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2017年 秋期 午前(科目A)27


問題文

SQL文においてFOREIGN KEYとREFERENCESを用いて指定する制約はどれか。

選択肢

キー制約
検査制約
参照制約(正解)
表明

FOREIGN KEY と REFERENCES を用いて指定する制約はどれか【午前2 解説】

要点まとめ

  • 結論:FOREIGN KEY と REFERENCES は、親子テーブル間の参照整合性を保証する参照制約で、NULL許容やON DELETE/UPDATEの振る舞いを指定して参照関係を管理します。
  • 根拠:SQL標準と主要RDBMSは FOREIGN KEY 句で外部キーを定義し、REFERENCES で参照先のテーブルと列を指定し、INSERT/UPDATE/DELETE時に参照整合性違反を抑止します。
  • 差がつくポイント:キー制約(主キー・一意制約)や検査制約(CHECK)と混同せず「参照整合性=外部キー」に即答でき、ON DELETE/UPDATE の挙動を説明できると得点差がつきます。

正解の理由

正解は (参照制約)です。
FOREIGN KEY は「外部キー」を定義するための構文で、REFERENCES はその外部キーが参照する親テーブルと列を明示します。これにより参照整合性(子テーブルの値が必ず親テーブルの対応する行を参照すること)をデータベース側で保証します。つまり FOREIGN KEY と REFERENCES の組合せは参照制約(referential constraint)を構成します。

よくある誤解

  • 「キー制約」と混同して外部キーも主キーや一意制約の一種だと考える誤解:外部キーは参照整合性を扱い、主キー・一意制約は値の一意性を保証します。
  • REFERENCES は単なる注釈だと思う誤解:実際は参照元の値の存在を検証する制約を作り、違反時にエラーや指定したカスケード動作が発生します。
  • ON DELETE/ON UPDATE の挙動を無視する誤解:動作(CASCADE, SET NULL, NO ACTION など)を知らないと運用で重大な不整合やデータ消失を招きます。

解法ステップ

  1. 問題文のキーワードを拾う:「FOREIGN KEY」と「REFERENCES」。
  2. それらがどの種類の制約と結び付くかを思い出す(外部キー=参照関係)。
  3. 選択肢を比較:キー制約は主キー・一意性、検査制約は CHECK、表明は一般的な用語ではない。最も該当するのは参照制約。
  4. 答えを選択()。

選択肢別の誤答解説

  • ア: キー制約
    キー制約は主キー(PRIMARY KEY)や一意制約(UNIQUE)で「一意性」を保証するもので、FOREIGN KEY / REFERENCES の役割とは異なります。外部キーは一意性ではなく参照整合性を扱います。
  • イ: 検査制約
    検査制約(CHECK)は列や行の値が指定条件を満たすかを検証する制約で、別テーブルの存在を参照する機能はありません。
  • ウ: 参照制約(正解)
    FOREIGN KEY と REFERENCES の組は親テーブルを参照する制約を作り、参照整合性を維持します。よって参照制約が正解です。
  • エ: 表明
    「表明」は一般的なSQLの制約名称ではなく曖昧な表現です。参照整合性を明確に示すものではありません。

補足コラム

  • よく使うオプション例:ON DELETE CASCADE(親が削除されたら子も削除)、ON DELETE SET NULL(子の外部キーをNULL化)など。用途に応じて使い分ける必要があります。
  • SQL例:
CREATE TABLE parent (
  id INT PRIMARY KEY,
  name VARCHAR(100)
);

CREATE TABLE child (
  id INT PRIMARY KEY,
  parent_id INT,
  FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE
);
  • 補足事項:一部のRDBMSでは参照先に UNIQUE または PRIMARY KEY が必要です。また、遅延制約(DEFERRABLE)や複合外部キーも存在します。

FAQ

Q1: FOREIGN KEY と REFERENCES は同じ意味ですか?
A1: 同義ではありません。FOREIGN KEY は外部キー制約を宣言する部分で、REFERENCES はどのテーブル・列を参照するかを指定する句です。合わせて参照制約を構成します。
Q2: 外部キーは参照先の主キーでなければいけませんか?
A2: 多くのRDBMSでは参照先に UNIQUE もしくは PRIMARY KEY が設定されている必要があります。仕様はDBMSごとに確認してください。
Q3: ON DELETE CASCADE を使うと安全ですか?
A3: 利便性は高いですが、意図せぬデータ消失を招く可能性があります。運用ルールに基づき慎重に採用してください。

関連キーワード: SQL、外部キー、参照制約、参照整合性、FOREIGN KEY、REFERENCES、ON DELETE、ON UPDATE、CHECK制約、主キー、外部キー制約
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について