関係データベースで管理された“会員管理”表を正規化して,“店舗”表,“会員種別”表及び“会員”表に分割した。
“会員”表として,適切なものはどれか。
ここで,表中の下線は主キーを表し,一人の会員が複数の店舗に登録した場合は,会員番号を店舗ごとに付与するものとする。
正答4
解説
正解は4です。
関係データベースの正規化で、“会員”表に持たせるべき列と主キーを問う問題です。
図の“会員管理”表は、店舗コードと会員番号が主キーです。
例えば、店舗001と店舗002にはどちらも会員番号1の会員がいます。
また、午前桜子さんは東京では会員種別がプラチナ、大阪では一般です。
【選択肢別解説】
1:× 会員番号は店舗ごとに付与されるので、会員番号だけでは会員を一意に特定できません。
主キーには店舗コードも必要です。
2:× 主キーが会員番号だけなので、1と同じ理由で会員を一意に特定できません。
3:× 主キーは正しいものの、会員種別コードがありません。
会員種別は店舗ごとの会員によって異なるので、“会員”表に持たせる必要があります。
4:○ 会員番号と店舗コードを主キーとし、会員名と会員種別コードを持たせます。
会員種別名は会員種別コードから“会員種別”表で、店舗名は“店舗”表で参照できます。
【ポイント】
主キーの一部だけで決まる店舗名は“店舗”表に分けます(第2正規化)。
主キー以外の列で決まる会員種別名は“会員種別”表に分けます(第3正規化)。