メインコンテンツへ
データベース候補キーと主キーの選定

次の関係(テーブル)において、候補キーの条件を満たすものはどれか。 【社員テーブル】 社員番号、氏名、メールアドレス、部署コード、電話番号 各社員の社員番号とメールアドレスは全社で重複しない。電話番号は内線番号で部署内でのみ一意。氏名は重複する可能性がある。

ア.氏名のみが候補キーである
イ.社員番号とメールアドレスの両方が候補キーである正解
ウ.社員番号、メールアドレス、電話番号の3つが候補キーである
エ.社員番号のみが候補キーである(メールアドレスは補助的な識別子にすぎない)

解説

候補キーは「本人確認書類」のようなもの。マイナンバー(社員番号)でも、メールアドレスでも、どちらか1枚だけで本人を一意に特定できれば、どちらも「有効な候補キー」。組み合わせなくて済む最小の属性セットであることが条件。

なぜ イ が正解か

候補キーの条件: ①一意性(テーブル内のすべての行を識別できる)②最小性(その属性セットからどれか1つでも取り除くと一意性が失われる)。社員番号は全社で一意→候補キー。メールアドレスも全社で一意→候補キー。電話番号は部署内でのみ一意(全社では重複可能)→候補キーではない。氏名は重複可能→候補キーではない。よって候補キーは「社員番号」と「メールアドレス」の2つ。

なぜ ア は間違いか

氏名は重複する可能性があると明示されているため、一意性を満たさず候補キーになれない。一意性の条件を無視した誤り。

なぜ ウ は間違いか

電話番号は部署内でのみ一意であり、全テーブルで一意性を持たないため候補キーの条件を満たさない。一意性のスコープ(全体か部分か)を混同した誤り。

なぜ エ は間違いか

メールアドレスも全社で一意な識別子であれば候補キーの条件を満たす。「補助的な識別子」という概念は存在せず、条件を満たせば立派な候補キー。候補キーは1つしかないと誤解した誤り。

出典: AI生成問題(学習用)