データベース設計 (全38問中3問目)
No.3
関係データベースで管理された"会員管理"表を正規化して,"店舗"表,"会員種別"表及び"会員"表に分割した。"会員"表として,適切なものはどれか。ここで,表中の下線は主キーを表し,一人の会員が複数の店舗に登録した場合は,会員番号を店舗ごとに付与するものとする。
出典:令和5年春期 問59
分類
テクノロジ系 » データベース » データベース設計
正解
エ
解説
データベースの正規化は、データベースを構築する際にデータの重複や矛盾を排除する目的で、データ同士の関連を保ったまま複数の表に分解していく作業です。正規化は次のように3段階の手順を踏んで行います。
会員管理表は、既にすべての項目の値が単一値なので第1正規形の条件を満たしています。
【第2正規化】
会員管理表の主キーは、"店舗コード"と"会員番号"の複合主キーです。会員管理表の項目を見ると、"店舗コード"が決まれば店舗名"が一意に決まることがわかるので、この関係を別表に移すことができます。一方、"会員番号"は店舗ごとに付されるので、"会員番号"のみで会員を一意に識別することはできません。よって、こちらは別表に分けることはできません。【第3正規化】
会員管理表の項目を見ると、非主キー列である"会員種別コード"が決まれば"会員種別名"が一意に決まることがわかるので、この関係を別表に移します。このように分離していくと、正規化後の会員表の項目は以下のようになります。
会員番号、店舗コード、会員名、会員種別コード
したがって「エ」が正解です。
【別解】
3つの表は互いに共通の項目により関連を持つ必要があるので、会員表には、店舗表の主キーである"店舗コード"を参照する"店舗コード"、会員種別表の主キーである"会員種別コード"を参照するための"会員種別コード"が必要となります。よって、この2つの項目がある「エ」が正解です。
- 第1正規化
- 属性値に含まれる繰り返し項目をなくす
- 第2正規化
- 主キーが複数の項目の組合せから成る複合主キーのときに、主キーの一部の項目によって一意に決まる項目を別表に移す
- 第3正規化
- 主キー以外の項目によって一意に決まる項目を別表に移す
会員管理表は、既にすべての項目の値が単一値なので第1正規形の条件を満たしています。
【第2正規化】
会員管理表の主キーは、"店舗コード"と"会員番号"の複合主キーです。会員管理表の項目を見ると、"店舗コード"が決まれば店舗名"が一意に決まることがわかるので、この関係を別表に移すことができます。一方、"会員番号"は店舗ごとに付されるので、"会員番号"のみで会員を一意に識別することはできません。よって、こちらは別表に分けることはできません。【第3正規化】
会員管理表の項目を見ると、非主キー列である"会員種別コード"が決まれば"会員種別名"が一意に決まることがわかるので、この関係を別表に移します。このように分離していくと、正規化後の会員表の項目は以下のようになります。
会員番号、店舗コード、会員名、会員種別コード
したがって「エ」が正解です。
【別解】
3つの表は互いに共通の項目により関連を持つ必要があるので、会員表には、店舗表の主キーである"店舗コード"を参照する"店舗コード"、会員種別表の主キーである"会員種別コード"を参照するための"会員種別コード"が必要となります。よって、この2つの項目がある「エ」が正解です。