ファイルで管理されていた受注データを,受注に関する情報と商品に関する情報 に分割して,正規化を行った上で関係データベースの表で管理する。正規化を行っ た結果の表の組合せとして,最も適切なものはどれか。ここで,同一商品名で単価 が異なるときは商品番号も異なるものとする。 受注データ
| 受注番号 | 発注者名 | 商品番号 | 商品名 | 個数 | 単価 |
| T0001 | 山田花子 | M0001 | 商品1 | 5 | 3,000 |
| T0002 | 木村太郎 | M0002 | 商品2 | 3 | 4,000 |
| T0003 | 佐藤秋子 | M0001 | 商品1 | 2 | 3,000 |
- ア| 受注番号 | 発注者名 | |---|---| | 商品番号 | 商品名 | 個数 | 単価 | |---|---|---|---|
- イ| 受注番号 | 発注者名 | 商品番号 | |---|---|---| | 商品番号 | 商品名 | 個数 | 単価 | |---|---|---|---|
- ウ| 受注番号 | 発注者名 | 商品番号 | 個数 | |---|---|---|---| | 商品番号 | 商品名 | 単価 | |---|---|---|
- エ| 受注番号 | 発注者名 | 商品番号 | 個数 | 単価 | |---|---|---|---|---| | 商品番号 | 商品名 | |---|---|
正解と解説を見る
正解
ウ | 受注番号 | 発注者名 | 商品番号 | 個数 | |---|---|---|---| | 商品番号 | 商品名 | 単価 | |---|---|---|
正規化では、繰り返し発生する項目(受注ごとに変動する情報)と、特定のキーに従属して決まる項目とを分離する。商品番号が決まれば商品名と単価は一意に定まる(部分関数従属)ため、これらは「商品番号、商品名、単価」の表に分離し、受注に関する情報は「受注番号、発注者名、商品番号、個数」の表にまとめるのが適切であり、正解は3番目の組合せである。他の選択肢は、商品名や単価を受注側の表に残したまま重複を許してしまっていたり、逆に個数のような受注固有の情報を商品側の表に含めてしまっており、いずれも正規化の考え方(データの重複と更新時異常の排除)に反している。