第7問
以下に示す表は、ある小売店が利用している受注管理表の一部である。この表を 正規化した構造として、最も適切なものを下記の解答群から選べ。ただし、単価は 商品コードによって一意に定まるものとする。
- ア 受注番号 受注日 得意先コード 商品コード 受注数量 単価 合計金額 2024-04-01 A B C 2024-04-01 B C 2024-04-02 A C … … … … … … … … … … … … … …
▼ 解答・解説を見る
正解:ア
解答:ア
受注管理表の正規化を問う問題。元の表は「受注番号+商品コード」で1行が定まる繰り返し構造で、第1正規形の段階で部分関数従属・推移的関数従属が混在している。
- 正規化のポイント:①「合計金額」は受注数量×単価で求まる導出項目なので冗長として排除する。②「単価」は商品コードによって一意に定まる(受注番号には依存しない)部分関数従属なので、商品マスタ(商品コード→単価)として分離する。③受注日・得意先コードは受注番号に従属するため受注表(ヘッダ)へ、受注数量は受注番号+商品コードに従属するため受注明細表へ振り分ける。
- これにより「受注表(受注番号・受注日・得意先コード)」「受注明細表(受注番号・商品コード・受注数量)」「商品表(商品コード・単価)」へ分割した構造が、部分関数従属・推移的関数従属を除いた第3正規形となる。
- 公式正解は、上記の関数従属関係に従い適切に表を分割した ア の構造。単価を明細側に残す、合計金額を保持するなど冗長性が残る構造は不適切。
よって ア。