データベース
ITパスポート試験「データベース設計」の問題
関係データベースで管理している"学生"表,"科目"表,"成績"表がある。1人の学生は複数の科目を履修するものとし,"学生"表に登録されていない学生や,"科目"表に登録されていない科目は"成績"表に登録できないものとするとき,外部キーとして設定するのが適切なものはどれか。ここで,表中の下線は主キーを表す。
■学生(主キー:学生番号)
| 学生番号 | 学生名 |
|---|---|
| G001 | 鈴木 次郎 |
| G002 | 山田 春子 |
■科目(主キー:科目コード)
| 科目コード | 科目名 |
|---|---|
| K001 | データベース |
| K002 | コンピュータ |
| K003 | ネットワーク |
■成績(主キー:学生番号+科目コード)
| 学生番号 | 科目コード | 成績 |
|---|---|---|
| G001 | K001 | 優 |
| G001 | K002 | 可 |
| G002 | K002 | 良 |
| G002 | K003 | 優 |
ア"学生"表の学生番号,"成績"表の学生番号
イ"学生"表の学生名,"科目"表の科目名
ウ"成績"表の学生番号と科目コード
エ"成績"表の成績
正解
ウ."成績"表の学生番号と科目コード
外部キーは,他の表の主キーを参照し,参照先に存在する値しか登録できないよう制約(参照整合性)を課す列である。"成績"表の学生番号は"学生"表の主キー(学生番号)を,科目コードは"科目"表の主キー(科目コード)を参照する。これにより未登録の学生・科目は成績表に登録できず,問題の条件を満たす。よって『"成績"表の学生番号と科目コード』を外部キーとするウが正解である。
?選択肢ごとの解説
ア ×"成績"表の学生番号は外部キーとして妥当だが,"学生"表の学生番号はその表自身の主キーであり,他表を参照する外部キーではない。主キーと外部キーを混同しており不適…
イ ×"学生"表の学生名や"科目"表の科目名は主キーでも参照される列でもない。これらを外部キーに設定しても,未登録の学生・科目を防ぐ参照整合性は確保できない。
ウ ○外部キーは,他の表の主キーを参照し,参照先に存在する値しか登録できないよう制約(参照整合性)を課す列である。"成績"表の学生番号は"学生"表の主キー(学生番号)を,科目コードは"科目"表の主キー(科目コード)を参照する。これにより未登録の学生・科目は成績表に登録できず,問題の条件を満たす。よって『"成績"表の学生番号と科目コード』を外部キーとするウが正解である。
エ ×"成績"表の成績(優・良・可)は評価値そのものであり,他表の主キーを参照する列ではない。外部キーには成り得ない。
データベースの他の問題
この問題の「深掘り・誤答の完全解説・試験のコツ・覚え方」はアプリで。
無料ではじめる →ITパスポート試験の全問を、一問ごとにAIの8-ways解説つきで。SRS暗記カード・全真模試・弱点診断まで。まずは無料で。
ukamiru 過去問 · ITパスポート試験 · itpass-r8k-q57
