次の "受注台帳" 表と "顧客" 表に分解し、第3正規形にしたとき、両方に必要な属性はどれか。ここで、送付先と支払方法は注文ごとに決めるものとする。また、表の下線は主キーを表す。
受注台帳 (注文番号, 注文年月日, 顧客ID, 顧客名, 顧客住所, 品目, 数量,
送付先, 支払方法, 受注金額)
ア |
顧客ID |
イ |
顧客名 |
ウ |
支払方法 |
エ |
注文番号 |
解答・解説を見る
解答:ア
正規化とは、データの重複をなくすことにより,データの管理を容易にしたり,データを多様な目的に用いるのに有効な方法。通常、正規化は第1正規形~第3正規形の3段階で行う。
- 第1正規化
- 繰り返し部分を別レコードとして分離し固定長レコードにする。
- 第2正規化
- レコードの主キーに完全従属する属性と、主キーの一部分にのみ部分従属する属性を別のレコードとして分離させる。
- 第3正規化
- 主キー以外の属性に従属する属性を別レコードに分割する。
- 与えられたデータには反復部分がないので、第1正規形を満たしている。
- 主キーが1つしかないので部分関数従属にはならず、第2正規形である。
- 顧客IDが決まると決まる属性だけを取り出して顧客表を作成する。
顧客(顧客ID,顧客名,顧客住所)
- 残った属性で注文票を作成する。
注文(注文番号,注文年月日,顧客ID,品目,数量,送付先,支払方法,受注金額)
- 二つの表に共通する項目(二つの表を結合するためのキー)は顧客IDである。