データベーススペシャリスト試験攻略のツボ(2)

「正規化」に関する問題


西沢直木
2008/6/25

本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。
目次
今回の出題範囲
19年-午前問題-問24・問25/17年-午前問題-問25

 





 

問2-2 適正なレベルの正規化を行う

 次の表を、第3正規形まで正規化を行った場合、幾つの表に分割されるか。ここで、顧客の1回の注文に対して1枚の受注伝票が作られ、顧客は1回の注文で1つ以上の商品を注文できるものとする。

fig2

2 3 4 5

(19年-午前問題-問25)

答え

解説

 顧客が1回の注文に複数の商品を含めることができるので、「受注番号、商品コード」の組み合わせで主キーになると考えられます。受注番号と商品コードに関数従属する属性がないか調べて分割していきます。

・第2正規形への変換(部分関数従属する属性の取り除き)

 受注番号が決まると、注文した顧客と受注日が決まるので、問題文の図に示された属性を次のように分割できます。

1:受注番号、顧客コード、顧客名、受注日
2:受注番号、商品コード、商品名、単価、受注数、受注金額

 また、商品コードが決まると商品名と単価が決まるので、次のように分割できます。

1:受注番号、顧客コード、顧客名、受注日
2:受注番号、商品コード、受注数、受注金額
3:商品コード、商品名、単価

・第3正規形への変換(推移的関数従属する属性の取り除き)

 「受注番号、顧客コード、顧客名、受注日」には、{顧客コード→顧客名}という関数従属が含まれます。{受注番号→顧客コード}という関係と合わせて考えると、顧客名は受注番号と推移的関数従属の関係にあるので分割します。

1:受注番号、顧客コード、受注日
2:受注番号、商品コード、受注数、受注金額
3:商品コード、商品名、単価
4:顧客コード、顧客名

 結果として、第3正規形まで分割すると4つの表に分割されることになります。従って、「ウ」が正解です。この問題は特によく出題されます。覚えておきましょう。



前のページへ 2/3 前のページへ

 Index
データベーススペシャリスト試験攻略のツボ(2)
「正規化」に関する問題
  Page 1
・問2-1 素早く正規形を見抜く
→ Page 2
・問2-2 適正なレベルの正規化を行う
  Page 3
・問2-3 表から正規化の段階を見極める
コラム:選択する問題の数が減る午後I問題は楽になる?


データベーススペシャリスト試験攻略のツボ



Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間