令和4年度 ITパスポート試験 公開問題 問65 解説 データベースの主キー
条件①~⑤によって,関係データベースで管理する“従業員”表と“部門”表を作成した。“従業員”表の主キーとして,最も適切なものはどれか。 〔条件〕 ① 各従業員は重複のない従業員番号を一つもつ。 ② 同姓同名の従業員がいてもよい。 ③ 各部門は重複のない部門コードを一つもつ。 ④ 一つの部門には複数名の従業員が所属する。 ⑤ 1人の従業員が所属する部門は一つだけである。
- ア “従業員番号” ✓ 正答
- イ “従業員番号”と“部門コード”
- ウ “従業員名”
- エ “部門コード”
解説
主キーを選ぶ際は、その項目だけでレコードを特定できるかどうかが判断基準です。問題文の条件①にある「重複のない従業員番号」は、まさに各行を唯一に識別するための値であるため、これが主キーとして最適です。
主キー(Primary Key)とは、関係データベースにおいて、表の中の各行を一意に識別するための列のことです。主キーには以下の2つの重要なルールがあります。
- 重複する値があってはならない(一意性)
- 空(NULL)であってはならない(実体整合性)
今回の選択肢を条件に照らして検討すると、以下のようになります。
・従業員番号:条件①により重複がないため、主キーの条件を満たします。 ・従業員名:条件②より同姓同名が存在し得るため、これだけでは個人を特定できません。 ・部門コード:条件④より複数の従業員が同じ部門に所属するため、特定の一人を選ぶことはできません。 ・従業員番号と部門コードの組み合わせ:主キーはできる限りシンプルであることが望ましく、すでに従業員番号だけで特定できるため、不要な項目を組み合わせる必要はありません。
データベース設計の実務において、主キーはデータの検索速度や整合性を維持するための非常に重要な役割を担います。ITパスポート試験では、今回のように与えられた条件から主キーや外部キーを特定する問題が頻出します。特に、実社会のID(社員番号、学籍番号、商品コードなど)は、一意性を確保するために独自に発行されるケースが多いため、こうした項目を見つけるのが正解への近道です。
また、ある表の主キーが別の表に含まれることで、2つの表の関連付けを行うことができます。例えば、今回の「従業員」表にある「部門コード」は、その従業員がどの部門に所属しているかを示す「外部キー」の役割を果たします。このように主キーと外部キーを理解することは、正規化(データベースを整理して効率よく管理する技術)の理解にもつながります。
- データベースの設計(IPA 情報処理推進機構)