問題
問59 関係データベースで管理された"会員管理"表を正規化して,"店舗"表,"会員種別"表及び"会員"表に分割した。"会員"表として,適切なものはどれか。ここで,表中の下線は主キーを表し,一人の会員が複数の店舗に登録した場合は,会員番号を店舗ごとに付与するものとする。
選択肢
- ア
- イ
- ウ
- エ
解説
正解:エ
概要
この問題は、関係データベースの正規化を行ったときに、会員表としてどのような項目を持つべきかを理解しているかを問う問題です。主キーの考え方と、表同士を関連付けるためのキーの設計がポイントになります。
正解の理由
問題文では「一人の会員が複数の店舗に登録した場合は、会員番号を店舗ごとに付与する」とあります。この場合、会員番号だけでは会員を一意に識別できないため、店舗コードと会員番号の組合せで識別する必要があります。また、会員種別は別表で管理されるため、会員表には会員種別コードを持たせる必要があります。これらを満たしているのはエの表です。
各選択肢の解説
ア(×): 会員番号と会員名だけでは、どの店舗に登録された会員なのかを識別できません。問題では会員番号が店舗ごとに付与されるため、店舗コードが含まれていないこの構成では会員を一意に管理できないため誤りです。
イ(×): 会員番号、会員名、会員種別コードは含まれていますが、店舗コードがありません。会員番号は店舗ごとに付与されるため、店舗コードと組み合わせて管理する必要があります。そのためこの表では会員を正しく識別できず不適切です。
ウ(×): 会員番号、店舗コード、会員名は含まれていますが、会員種別コードがありません。会員種別表と関連付けて管理するためには会員種別コードが必要になるため、この構成は会員表として情報が不足しており誤りです。
エ(〇): 会員番号、店舗コード、会員名、会員種別コードを持っており、店舗コードと会員番号の組合せで会員を一意に識別できます。また、会員種別コードによって会員種別表と関連付けることができるため、正規化後の会員表として適切です。
ポイント
正規化では、表ごとに役割を分けて重複や不整合を防ぎます。主キーはレコードを一意に識別できるように設定し、必要に応じて複数項目の組合せで構成することを理解しておくことが重要です。