令和3年免除試験問題 問25

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
関係"注文記録"の属性間に①~⑥の関数従属性があり,それに基づいて第3正規形まで正規化を行って,"商品","顧客","注文","注文明細"の各関係に分解した。関係"注文明細"として,適切なものはどれか。ここで,{X,Y} は,属性XとYの組みを表し,X→Yは,XがYを関数的に決定することを表す。また,実線の下線は主キーを表す。

注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価)

〔関係従属性〕
  1. 注文番号 → 注文日
  2. 注文番号 → 顧客番号
  3. 顧客番号 → 顧客名
  4. {注文番号,商品番号} → 数量
  5. {注文番号,商品番号} → 販売単価
  6. 商品番号 → 商品名

  • 注文明細(注文番号顧客番号商品番号,顧客名,数量,販売単価)
  • 注文明細(注文番号顧客番号,数量,販売単価)
  • 注文明細(注文番号商品番号,数量,販売単価)
  • 注文明細(注文番号,数量,販売単価)
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データベース設計
解説
設問で示されている属性同士の従属関係を整理すると次のようになります。
25_1.png
この関係を見ると"注文番号"と"商品番号"の両方が決まることで全ての属性が一意に定まるため、主キーはこの2つを組み合わせた複合キーとわかります。また、この時点で全ての項目が単一値(繰り返し項目がない)ですので第1正規化までは完了しています。続けて第2、第3正規化を行います。

第2正規化では、複合主キーの部分キーによって一意に定まる属性を別表に移します。設問のリレーションでは以下の4つがこれに該当します。
  • ①注文番号→注文日
  • ②注文番号→顧客番号
  • ③顧客番号→顧客名(推移律により、注文番号→顧客名)
  • ⑥商品番号→商品名
この3つの関係を別表に分離すると以下の3つの表ができます。
25_2.png
最後に第3正規化を行います。第3正規化では、主キー以外の属性によって一意に定まる属性を別表に移します。第2正規化後の関係では1つがこれに該当します。
  • ⑤顧客番号→顧客名
この関係を別表に移すと"商品"、"顧客"、"注文"、"注文明細"の4つの表に正規化されます。
25_3.png
したがって"注文明細"表がもつ属性の組合せは「ウ」になります。
推移律
X→Y かつ Y→Z が成立するならば、X→Z が成立する

出典


Pagetop