難易度・正答率・重要度
- 難易度: ★★★☆☆(正規化の見極め)
- 正答率: ★★★☆☆(1NFの判断)
- 重要度: ★★★☆☆(データ設計の基礎)
問題文
A社は、リレーショナルデータベースによって管理するために、販売業務に関する取引データを正規化する必要があるかどうかを検討している。現状では、A社は以下のような「売上表」を用いて取引データを管理している。
現状の「売上表」に関する記述として、最も適切なものを下記の解答群から選べ。

〔解答群〕
ア
顧客名の欄に山田太郎が2回出てくるのはデータの重複であることから、非正規形である。
イ
すでに第二正規形であるので、依存関係がある顧客番号と顧客名を別表に移せば第三正規形になる。
ウ
すでに第三正規形であるので、これ以上正規化する必要はない。
エ
一つの売上番号に対して、商品名、単価、数量および小計の項目が複数あるので、非正規形である。
出典: 中小企業診断協会|2020年度 第1次試験問題|経営情報システム(PDF)
解答
- 正解: エ
解説(選択肢ごとの評価)
- ア:×
顧客名の重複は非正規形の直接要因ではない。正規化後でも同一顧客が複数の売上に登場することはあり得る。 - イ:×
現状は一つの売上番号に複数の商品行を含む「繰り返し属性」を持ち、第一正規形を満たしていない。第二正規形を前提にするのは誤り。 - ウ:×
繰り返し項目(商品名・単価・数量・小計)が存在し、第三正規形どころか第一正規形を満たしていない。 - エ:〇
売上番号に対して商品関連項目が複数行にまたがっており、属性が原子値でない(繰り返しグループ)ため非正規形である。
学習のポイント
- 第一正規形(1NF):
属性は原子値で、表内に繰り返し項目や複数値を持たないこと。 - 第二正規形(2NF):
合成主キーがある場合、部分関数従属を排除すること。 - 第三正規形(3NF):
非キー属性間の推移的従属を排除すること。 - 設計の方向性:
「売上ヘッダ(売上番号・顧客・売上日・売上合計)」と「売上明細(売上番号・商品・単価・数量・小計)」に分割して、1NF→2NF→3NFへと段階的に整える。