ある企業が、顧客テーブルと注文テーブルを保有するリレーショナルデータベースを設計している。注文テーブルの各行が必ず特定の顧客に紐づくことを保証するために使用すべきデータベースオブジェクトはどれか。
- A. インデックス(INDEX):クエリの検索速度を向上させるためのデータ構造
- B. 主キー(PRIMARY KEY):各行を一意に識別するための制約
- C. ビュー(VIEW):SELECT文の結果を仮想テーブルとして保存したもの
- D. 外部キー(FOREIGN KEY):他のテーブルの主キーを参照し、参照整合性を強制する制約
解答と解説を見る
正解: D
テーブル間のリレーションシップを定義し、参照整合性(存在しない顧客への参照を防ぐ)を保証するのは外部キー制約の役割である。注文テーブルの顧客IDカラムに FOREIGN KEY を設定することで、顧客テーブルに存在しない顧客IDを持つ注文レコードの挿入をデータベースエンジンが拒否する。主キーは各行を一意に識別するためのもので参照整合性の強制には使わない。インデックスは検索パフォーマンスの向上に使うもので整合性制約ではない。ビューは仮想テーブルであり、整合性の強制機能を持たない。