関係“注文記録”の属性間に@〜Eの関数従属性があり、それに基づいて第3正規形まで正規化を行って、“商品”、“顧客”、“注文”、“注文明細”の各関係に分解した。
関係“注文明細”として、適切なものはどれか。
ここで、{X, Y} は、属性XとYの組みを表し、X→Yは、XがYを関数的に決定することを表す。
また、実線の下線は主キーを表す。
注文記録(注文番号, 注文日, 顧客番号, 顧客名, 商品番号, 商品名, 数量, 販売単価)
[関数従属性]
@ |
注文番号 → 注文日 |
|
A |
注文番号 → 顧客番号 |
B |
顧客番号 → 顧客名 |
|
C |
{注文番号, 商品番号} → 数量 |
D |
{注文番号, 商品番号} → 販売単価 |
|
E |
商品番号 → 商品名 |
|
ア |
注文明細(注文番号, 顧客番号, 商品番号, 顧客名, 数量, 販売単価) |
イ |
注文明細(注文番号, 顧客番号, 数量, 販売単価) |
ウ |
注文明細(注文番号, 商品番号, 数量, 販売単価) |
エ |
注文明細(注文番号, 数量, 販売単価) |
答え ウ
【解説】
関数従属性の@〜Eから注文番号と顧客番号は第3正規形まで正規化した注文明細の主キーになり、@ABEから注文日、顧客番号、顧客名、商品名は第3正規形まで正規化した注文明細には含まれない。
また、CDから販売単価、商品名は第3正規形まで正規化した注文明細に含まれるので
注文明細(注文番号, 商品番号, 数量, 販売単価)
(ウ)になる。
【キーワード】
・正規形
【キーワードの解説】
- 正規形
データの冗長性を少なくし、関連性の強いデータ項目(属性)をまとめて、一事実一箇所(1 fact in 1 place)にすることです。
データの正規化にはレベルにより、第1〜第5正規形やボイス・コッド正規形があります。
- 第1正規形
データの繰り返し部分を別表にする。
- 第2正規形
1つのデータがきまると従属的にきまるデータを別グループ化する。
- 第3正規形
推移的に値がきまるデータを別グループ化する。
- ボイス・コッド正規形
すべての属性がキーに完全従属するようにしたもの。
もっと、「正規形」について調べてみよう。
戻る
一覧へ
次へ
|