平成26年度 春期 ITパスポート試験 問60
テクノロジ/データベースファイルで管理されていた受注データを,受注に関する情報と商品に関する情報に分割して,正規化を行った上で関係データベースの表で管理する。正規化を行った結果の表の組合せとして,最も適切なものはどれか。ここで,同一商品名で単価が異なるときは商品番号も異なるものとする。 受注データ(受注番号,発注者名,商品番号,商品名,個数,単価) T0001,山田花子,M0001,商品1,5,3,000 T0002,木村太郎,M0002,商品2,3,4,000 T0003,佐藤秋子,M0001,商品1,2,3,000 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成26年度 春期 ITパスポート試験 問60
- ア受注表(受注番号,発注者名)と商品表(商品番号,商品名,個数,単価)
- イ受注表(受注番号,発注者名,商品番号)と商品表(商品番号,商品名,個数,単価)
- ウ受注表(受注番号,発注者名,商品番号,個数)と商品表(商品番号,商品名,単価)
- エ受注表(受注番号,発注者名,商品番号,個数,単価)と商品表(商品番号,商品名)
正解:ウ
解説
正規化では,ある項目が決まれば他の項目が一意に決まるという関係に従って表を分けます。商品番号が決まれば商品名と単価が決まる(同一商品名で単価が異なれば商品番号も異なるという条件)ので,商品番号を主キーに商品名と単価を商品表にまとめます。一方,個数は受注ごとに異なる値(同じM0001でも5個と2個)なので,受注側に置きます。受注表は受注番号を主キーに,発注者名,商品番号(商品表への外部キー),個数をもつ形が適切です。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- ア誤り。この組合せでは受注表に商品番号がなく,受注と商品を関連付けられません。また,個数は受注ごとに異なるので商品表に置くのは不適切です。
- イ誤り。個数は商品ごとではなく受注ごとに決まる値なので,商品表に置くのは不適切です。同じ商品M0001でも受注によって個数が違います。
- ウ正しい。個数は受注側に,商品名と単価は商品番号で決まるので商品表に置く形が,正規化の結果として適切です。
- エ誤り。単価は商品番号で決まる項目なので,受注表に置くと商品表との間で重複や不整合が生じやすくなります。単価は商品表に置くのが適切です。