データベース設計(全38問中3問目)

関係データベースで管理された"会員管理"表を正規化して,"店舗"表,"会員種別"表及び"会員"表に分割した。"会員"表として,適切なものはどれか。ここで,表中の下線は主キーを表し,一人の会員が複数の店舗に登録した場合は,会員番号を店舗ごとに付与するものとする。
59.png

出典:令和5年春期 問59

  • 59a.png
  • 59i.png
  • 59u.png
  • 59e.png
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データベース設計
解説
データベースの正規化は、データベースを構築する際にデータの重複や矛盾を排除する目的で、データ同士の関連を保ったまま複数の表に分解していく作業です。正規化は次のように3段階の手順を踏んで行います。
第1正規化
属性値に含まれる繰り返し項目をなくす
第2正規化
主キーが複数の項目の組合せから成る複合主キーのときに、主キーの一部の項目によって一意に決まる項目を別表に移す
第3正規化
主キー以外の項目によって一意に決まる項目を別表に移す
【第1正規化】
会員管理表は、既にすべての項目の値が単一値なので第1正規形の条件を満たしています。

【第2正規化】
会員管理表の主キーは、"店舗コード"と"会員番号"の複合主キーです。会員管理表の項目を見ると、"店舗コード"が決まれば店舗名"が一意に決まることがわかるので、この関係を別表に移すことができます。一方、"会員番号"は店舗ごとに付されるので、"会員番号"のみで会員を一意に識別することはできません。よって、こちらは別表に分けることはできません。
59_1.png
【第3正規化】
会員管理表の項目を見ると、非主キー列である"会員種別コード"が決まれば"会員種別名"が一意に決まることがわかるので、この関係を別表に移します。
59_2.png
このように分離していくと、正規化後の会員表の項目は以下のようになります。

 会員番号、店舗コード、会員名、会員種別コード

したがって「エ」が正解です。

【別解】
3つの表は互いに共通の項目により関連を持つ必要があるので、会員表には、店舗表の主キーである"店舗コード"を参照する"店舗コード"、会員種別表の主キーである"会員種別コード"を参照するための"会員種別コード"が必要となります。よって、この2つの項目がある「エ」が正解です。

Pagetop