【Oracle】制約(CONSTRAINT)の種類を理解する【過去問修行】

目標

このブログでは、Oracle Silver 資格取得を目指す方のために、過去問の解説やポイントを共有し、理解を深めることを目的としています。

勉強方法

  • 実際の過去問を解いて、現在の理解度を把握する。
  • 間違えた問題をチェックし、解説を通して理解を深める。
  • 理解した内容を実際のSQL環境で試してみる。
  • 類似問題を解くことで、知識を定着させる。

問題

次のうち、Oracle の制約(CONSTRAINT)の特徴として誤っているものを選択してください。

選択肢

  • A. PRIMARY KEY は、一意性を保証し NULL 値を許可しない
  • B. FOREIGN KEY は、参照先のテーブルが削除された場合でもデータ整合性を維持できる
  • C. CHECK 制約は、指定した条件に合致しないデータの挿入を防ぐ
  • D. UNIQUE 制約は、一意性を保証するが NULL 値を許可する

正解

B. FOREIGN KEY は、参照先のテーブルが削除された場合でもデータ整合性を維持できる

解説

FOREIGN KEY 制約は、参照先のデータが削除された場合にデータ整合性が崩れる可能性があります。参照整合性を維持するために、ON DELETE CASCADEON DELETE SET NULL を指定することが可能です。

間違い選択肢の解説

  • 選択肢A: 正しい。PRIMARY KEY は一意性を保証し、NULL を許可しない。
  • 選択肢C: 正しい。CHECK 制約は、特定の条件に合致しないデータの挿入を防ぐ。
  • 選択肢D: 正しい。UNIQUE 制約は、一意性を保証するが NULL 値を許可する。

ポイント

  • PRIMARY KEY は NULL を許可しない。
  • FOREIGN KEY のデータ整合性は、ON DELETE 句の設定によって異なる。
  • CHECK 制約は、特定の条件を満たすデータのみを許可する。
  • UNIQUE 制約は NULL 値を許可するが、一意性を保証する。

実践例

-- FOREIGN KEY 制約の例
CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    department_id NUMBER,
    CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(department_id) ON DELETE CASCADE
);

まとめ

制約(CONSTRAINT)はデータの整合性を維持するために重要な機能であり、FOREIGN KEY の動作には特に注意が必要。


このブログは Oracle Silver 資格取得を目指す方向けに、過去問の解説やポイントを共有するためのものです。