ITパスポート 令和8年度 問57
データベース
外部キーに関する問題
関係データベースで管理している“学生”表,“科目”表,“成績”表がある。1人の学生は複数の科目を履修するものとし,“学生”表に登録されていない学生や,“科目”表に登録されていない科目は“成績”表に登録できないものとするとき,外部キーとして設定するのが適切なものはどれか。ここで,表中の下線は主キーを表す。
学生
| 学生番号 | 学生名 |
|---|---|
| G001 | 鈴木 次郎 |
| G002 | 山田 春子 |
科目
| 科目 | 科目名 |
|---|---|
| K001 | データベース |
| K002 | コンピュータ |
| K003 | ネットワーク |
成績
| 学生番号 | 科目 | 成績 |
|---|---|---|
| G001 | K001 | 優 |
| G001 | K002 | 可 |
| G002 | K002 | 良 |
| G002 | K003 | 優 |
- ア “学生”表の学生番号,“成績”表の学生番号
- イ “学生”表の学生名,“科目”表の科目名
- ウ “成績”表の学生番号と科目コード
- エ “成績”表の成績
答えと解説
✓ これが正解ウ “成績”表の学生番号と科目コード
解説
成績表の学生番号と科目コードが、外部キーに当たります。
外部キーは、ある表の列が、別の表の主キーを指し示していることを表す仕組みです。これを設定しておくと、指し示す先に存在しない値を登録できなくなります。成績表の学生番号は学生表の主キーである学生番号を指し、成績表の科目コードは科目表の主キーである科目コードを指しています。この二つを外部キーとして設定すれば、学生表に登録されていない学生や、科目表に登録されていない科目を成績表に登録しようとしたときに、はじくことができます。設問が求める条件を満たすのは、成績表の学生番号と科目コードです。
ほかの選択肢の解説
- ア “学生”表の学生番号,“成績”表の学生番号:学生表の学生番号と成績表の学生番号を挙げています。学生表の学生番号はその表の主キーであって、ほかの表を指し示す側ではありません。指す側と指される側が混じっています。
- イ “学生”表の学生名,“科目”表の科目名:学生表の学生名と科目表の科目名を挙げています。どちらも主キーではなく、ほかの表の行を一つに定める働きももちません。指し示す先が決まらないので、外部キーにはなりません。
- エ “成績”表の成績:成績表の成績を挙げています。これは優や良といった評価そのものを入れる列であり、ほかの表の行を指し示すものではありません。主キーでも外部キーでもない、値を入れておくだけの列です。
関連用語
- 外部
キー 別の表の主キーを指している列で、表と表をつなぐ役目をします。 - 主
キー 表の中の一行を選び出すための項目です。 - 関係
データベース データを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。
出典:令和8年度 ITパスポート試験 問57(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和8年度 問69:
正規化に 関する 問題 (関係 データベース) - 令和8年度 問72:
外部 キーに 関する 問題 (外部 キー) - 令和7年度 問65
(主 キー) - 令和6年度 問81:
正規化を 行った 結果の 表の 組合せ (主 キー) - 令和4年度 問65:
“従業員”表の 主 キー (外部 キー)
同じ分野の問題
誤りを見つけたら報告する