本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成27年度 秋期 基本情報技術者試験問題と解説

問27

関係“注文記録”の属性間に@〜Eの関数従属性があり、それに基づいて第3正規形まで正規化を行って、“商品”、“顧客”、“注文”、“注文明細”の各関係に分解した。関係“注文明細”として、適切なものはどれか。ここで、{X, Y} は、属性XとYの組みを表し、X → Yは、XがYを関数的に決定することを表す。また、実線の下線は主キーを表す。

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

〔関数従属性〕
@注文番号 → 注文日        A注文番号 → 顧客番号
B顧客番号 → 顧客名        C{注文番号, 商品番号} → 数量
D{注文番号, 商品番号} → 販売単価 E商品番号 → 商品名

ア 注文明細 (注文番号, 数量, 販売単価)

イ 注文明細 (注文番号, 顧客番号, 数量, 販売単価)

ウ 注文明細 (注文番号, 顧客番号, 商品番号, 顧客名, 数量, 販売単価)

エ 注文明細 (注文番号, 商品番号、数量、販売単価)


正解


解説

注文番号商品番号が決まれば、数量、販売単価まで決まるため、主キーは注文番号商品番号であることが判る。したがって、第2正規形では、

商品番号, 商品名
注文番号, 注文日, 顧客番号, 顧客名
注文番号, 商品番号, 数量, 販売単価
となる。

さらに第3正規形では、主キー以外の項目に従属する関係を別テーブルに移すので、以下のようになる。
商品: 商品番号, 商品名
顧客: 顧客番号, 顧客名
注文: 注文番号, 注文日, 顧客番号
注文明細: 注文番号, 商品番号, 数量, 販売単価

問26 目次 問28