ITパスポート 令和4年度 問65
データベース
“従業員”表の主キー
条件①〜⑤によって,関係データベースで管理する“従業員”表と“部門”表を作成した。“従業員”表の主キーとして,最も適切なものはどれか。
〔条件〕
- ① 各従業員は重複のない従業員番号を一つもつ。
- ② 同姓同名の従業員がいてもよい。
- ③ 各部門は重複のない部門コードを一つもつ。
- ④ 一つの部門には複数名の従業員が所属する。
- ⑤ 1人の従業員が所属する部門は一つだけである。
従業員
| 従業員番号 | 従業員名 | 部門 | 生年月日 | 住所 |
|---|
部門
| 部門 | 部門名 | 所在地 |
|---|
- ア “従業員番号”
- イ “従業員番号”と“部門コード”
- ウ “従業員名”
- エ “部門コード”
答えと解説
✓ これが正解ア “従業員番号”
解説
主キーは行を一つに決める最小の項目で、ここでは従業員番号です。
関係データベースの主キーは、その表の一つの行をほかと取り違えずに指し示せる項目です。条件①に、各従業員は重複のない従業員番号を一つもつとあるので、従業員番号が分かれば行は一つに決まります。従業員名は、条件②が同姓同名の従業員がいてもよいと断っているため、同じ名前で複数の行が並びうるので使えません。部門コードは、条件④のとおり一つの部門に複数名が所属するので、これだけでは行を絞れません。では従業員番号と部門コードを組にすればどうかというと、条件⑤から従業員が所属する部門は一つだけなので、部門コードを足しても絞り込みは進まず、余分な項目を抱えるだけになります。この部門コードは、部門表を指し示す外部キーの役目です。五つの条件は一つも飾りではありません。よって最も適切なのは従業員番号です。
ほかの選択肢の解説
- イ “従業員番号”と“部門コード”:従業員番号と部門コードを組にした案です。たしかにこの組でも行は一つに決まりますが、条件⑤により従業員の部門は一つだけなので、部門コードを足しても絞り込みには寄与しません。主キーには、行を決めるのに必要な項目だけを選びます。
- ウ “従業員名”:従業員名を主キーにする案ですが、条件②が同姓同名の従業員がいてもよいとはっきり断っています。同じ名前の行が二つ並んだ時点でどちらを指すのか決められなくなるので、行を一つに特定するという役目を果たせません。
- エ “部門コード”:部門コードを主キーにする案ですが、条件④により一つの部門には複数名の従業員が所属します。同じ部門コードをもつ行がいくつも並ぶので、行を一つに絞れません。この項目は、部門表を指し示す外部キーとして働くものです。
関連用語
- 主
キー 表の中の一行を選び出すための項目です。 - 関係
データベース データを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。 - 外部
キー 別の表の主キーを指している列で、表と表をつなぐ役目をします。
出典:令和4年度 ITパスポート試験 問65(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和8年度 問69:
正規化に 関する 問題 (関係 データベース) - 令和8年度 問72:
外部 キーに 関する 問題 (外部 キー) - 令和8年度 問57:
外部 キーに 関する 問題 (主 キー) - 令和7年度 問65
(外部 キー) - 令和6年度 問81:
正規化を 行った 結果の 表の 組合せ (主 キー)
同じ分野の問題
誤りを見つけたら報告する