令和6年度 ITパスポート試験 公開問題 問81
一つの表で管理されていた受注データを,受注に関する情報と商品に関する情報に分割して,正規化を行った上で関係データベースの表で管理する。正規化を行った結果の表の組合せとして,最も適切なものはどれか。ここで,同一商品で単価が異なるときは商品番号も異なるものとする。また,発注者名には同姓同名はいないものとする。

図の説明テキスト
受注データの表
| 受注番号 | 発注者名 | 商品番号 | 商品名 | 個数 | 単価 |
|---|---|---|---|---|---|
| T0001 | 試験花子 | M0001 | 商品1 | 5 | 3,000 |
| T0002 | 情報太郎 | M0002 | 商品2 | 3 | 4,000 |
| T0003 | 高度秋子 | M0001 | 商品1 | 2 | 3,000 |
解答・解説
正解: エ.
関係データベースにおける正規化の問題です。
与えられた「受注データ」の表を、「受注に関する情報」と「商品に関する情報」に分割する際、データに重複や矛盾が生じないように属性(項目)を正しく配置する必要があります。
データの関係性(関数従属性)を整理すると以下のようになります。
受注に関する情報
- 「受注番号」が決まれば、「発注者名」「商品番号」「個数」が決まります。
- 表のデータを見ると、受注番号「T0001」から、発注者名「試験花子」、商品番号「M0001」、個数「5」が特定できます。
商品に関する情報
- 問題文に「同一商品で単価が異なるときは商品番号も異なる」とあるため、「商品番号」が決まれば「商品名」と「単価」が一意に決まります。
- 表のデータを見ると、商品番号「M0001」に対して、商品名「商品1」、単価「3,000」が必ず対応しています。
したがって、正規化を行って2つの表に分割した結果は以下のようになります。
- 受注に関する表:{受注番号, 発注者名, 商品番号, 個数}
- 商品に関する表:{商品番号, 商品名, 単価}
この構成と完全に一致しているのはエの図表です。
各選択肢の解説
- ア:商品に関する表に「個数」が含まれています。「個数」は受注ごとに異なる値(例:M0001はT0001では5個、T0003では2個)となるため、商品番号だけでは一意に決まらず不適切です。また、受注に関する表から「商品番号」と「個数」が欠落しており、誰がどの商品を何個受注したのか分からなくなっています。
- イ:アと同様に、商品に関する表に「個数」が含まれているため不適切です。
- ウ:受注に関する表に「単価」が含まれています。問題の条件より「単価」は商品ごとに決まる情報(商品番号に従属する情報)であるため、冗長性を排除する正規化の目的に照らし合わせると、商品に関する表に配置するのが適切です。
- エ:正解です。「受注番号」に依存する情報と、「商品番号」に依存する情報が正しく分割されています。



