■SQL攻略 - 実行すれば理解できる!

HOME>>正規化攻略マップ>>過去問題を解きましょう

過去問題を解きましょう

過去問題を解きましょう
以下の3ステップを試してみてください。紙を用意して項目を書きながら正規化するとわかりやすいですよ。

Step1.繰り返し項目を別表に分割する。
Step2.部分関数従属している項目を別表に分割する。
Step3.推移的関数従属しているものを別表にする。(無ければStep2で完了)

初級システムアドミニストレータ午前平成12年秋問43
次の受注表を正規化した構造はどれか。

受注No受注日受注先商品数量単価合計金額
100/10/01AS
T
3
2
1,000
950
4,900
200/10/01BS
U
V
1
10
5
1,000
1,200
1,800
22,000
300/10/02BT89507,600
400/10/02CU251,20030,000


受注No受注日受注先合計金額
受注No商品数量
商品単価


受注No受注日受注先合計金額
受注先商品数量
商品単価


受注No受注日受注先合計金額
受注日商品数量
商品単価


受注No受注日受注先合計金額
商品数量
商品単価
正解と解説

































正解

受注No受注日受注先合計金額
受注No商品数量
商品単価
解説

Step1まずは繰り返しグループの排除。

繰り返しグループは、商品、数量、単価、ですね。これを別表に分割しましょう。その際にリレーションが失われないように、従属しているキーといっしょに分割します。
受注No受注日受注先合計金額

受注No商品数量単価

Step2部分関数従属している項目を別表に分割する。

商品の単価は、商品に関数従属しますよね。だから分割しましょう。
受注No受注日受注先合計金額

受注No商品数量

商品単価

Step3推移的関数従属を分割する。

ここではないので、終了です。
<<第二正規形から第三正規形へ 最後に(やや蛇足的ながらも)>>
http://sql.main.jp by san