ITパスポート過去問 令和4年度(2022年)問65
条件①~⑤によって,関係データベースで管理する“従業員”表と“部門”表を作成した。“従業員”表の主キーとして,最も適切なものはどれか。
〔条件〕
① 各従業員は重複のない従業員番号を一つもつ。
② 同姓同名の従業員がいてもよい。
③ 各部門は重複のない部門コードを一つもつ。
④ 一つの部門には複数名の従業員が所属する。
⑤ 1人の従業員が所属する部門は一つだけである。

選択肢
- ア:“従業員番号”
- イ:“従業員名”と“部門コード”
- ウ:“従業員名”
- エ:“部門コード”
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
主キーは、表の各行を重複なく識別できる項目です。条件①で各従業員が重複のない従業員番号をもつと明記されているため、“従業員”表の主キーは“従業員番号”が最も適切です。
Point
この問題は、主キーが満たすべき条件(重複しないこと)を理解し、条件①〜⑤と図の表構造から、“従業員”表の各行を一意に識別できる項目を選べるかを確認しています。
解くために必要な知識
この問題を解くには、関係データベースにおける主キーの役割と、一意性の考え方が必要です。
用語の整理
| 用語 | 意味 |
|---|---|
| 関係データベース | データを表(テーブル)で管理し、行と列で表現するデータベースです。 |
| 表(テーブル) | 同じ種類のデータを行(レコード)の集合として格納するものです。 |
| 主キー | 表の各行を一意に識別できる列(または列の組)です。主キーの値は行同士で重複しません。 |
この問題で使う判断基準
主キーにできる条件
-
表の各行を必ず一意に識別できること
-
同じ値が複数行に現れないこと
条件文から分かること
| 条件 | 読み取れること | 主キー選定への影響 |
|---|---|---|
| ① 各従業員は重複のない従業員番号を一つもつ | 従業員番号は一意 | “従業員”表の主キー候補になります |
| ② 同姓同名の従業員がいてもよい | 従業員名は重複する | “従業員名”単独は主キーにできません |
| ④ 一つの部門には複数名の従業員が所属する | 同じ部門コードが複数行に現れる | “従業員”表の“部門コード”は主キーにできません |
補足:複合キー(列の組)
-
主キーは1列に限らず、複数列の組で一意にできる場合もあります。
-
ただし本問の「従業員名+部門コード」は、同一部門内の同姓同名が否定されていないため、一意と判断できません。
問題の解法手順
主キーは“従業員”表の1行(1人)を必ず一意に特定できる必要があります。
図表の読み取り
表の列
-
“従業員”表の列は「従業員番号」「従業員名」「部門コード」「生年月日」「住所」です。
-
“部門”表の列は「部門コード」「部門名」「所在地」です。
部門と従業員の関係
-
条件④より、1つの部門に複数の従業員が所属します。
-
条件⑤より、従業員は1つの部門にだけ所属します。
-
このため、“従業員”表に「部門コード」を持たせる形になります。
解く手順
1. 一意になる列(または列の組)を探す
- 条件①より、「従業員番号」は従業員ごとに重複しません。
2. 一意にならない列を除外する
-
条件②より、「従業員名」は同姓同名があり得るため一意になりません。
-
条件④より、「部門コード」は同じ部門に複数の従業員が所属するため、“従業員”表内で重複し得ます。
3. 組合せ(複合キー)の候補を確認する
- 「従業員名」と「部門コード」の組は、同じ部門内に同姓同名が存在する可能性が否定されていないため、一意とは限りません。
結論
- “従業員”表の主キーは「従業員番号」です。
選択肢ごとの解説
- ア:正解
条件①により、従業員番号は従業員ごとに重複しないため、“従業員”表の各行を一意に識別でき、主キーとして適切です。
- イ:不正解
条件②より従業員名は同姓同名があり得ます。さらに条件④より、同じ部門コードに複数の従業員が所属します。そのため、“従業員名”と“部門コード”の組合せでも一意になる保証がありません。
- ウ:不正解
条件②により同姓同名があり得るため、“従業員名”だけでは各行を一意に識別できず、主キーとして不適切です。
- エ:不正解
条件④により一つの部門に複数の従業員が所属するため、“従業員”表では部門コードが重複し、主キーとして不適切です。
まとめ
主キーは、表の各行を重複なく識別できる項目です。条件①で各従業員が重複のない従業員番号をもつと明記されているため、“従業員”表の主キーは“従業員番号”が最も適切です。
テクノロジ系 > 技術要素 > データベース
条件①により、従業員番号は従業員ごとに重複しないため、“従業員”表の各行を一意に識別でき、主キーとして適切です。
条件②より従業員名は同姓同名があり得ます。さらに条件④より、同じ部門コードに複数の従業員が所属します。そのため、“従業員名”と“部門コード”の組合せでも一意になる保証がありません。
条件②により同姓同名があり得るため、“従業員名”だけでは各行を一意に識別できず、主キーとして不適切です。
条件④により一つの部門に複数の従業員が所属するため、“従業員”表では部門コードが重複し、主キーとして不適切です。