関係データベースの正規化と主キーの設定

正解は「ア」です。 関係データベースの正規化では、データの重複を排除して更新時異状(挿入・更新・削除に伴う不整合)を防止するため、「1事実1箇所」の原則に従って表をエンティティごとに分解します。 問題文の条件として「顧客名や商品名には同一のものがある(同姓同名や同名商品が存在する)」と明記されているため、顧客や商品を一意に識別できる「顧客番号」「商品番号」などの主キーを設定する必要があります。 顧客表(主キー:顧客番号):顧客名、住所 商品表(主キー:商品番号):商品名、単価 注文表(主キー:注文番号):顧客番号、商品番号、個数、日付 アの構成では、顧客に固有の情報と商品に固有の情報が独立した表に分離され、注文表からは外部キー(顧客番号・商品番号)によって参照されています。これにより、顧客住所や商品単価の変更が一箇所の更新で済み、データの不整合を防ぐ正規化された設計となっています。 注文表に顧客名が含まれており、同姓同名の顧客を正しく区別できないうえ、重複データが生じて正規化が不十分です。 注文表に商品名や顧客名が直接含まれており、単価や住所の変更時に過去の注文データとの間で不整合が生じます。 顧客表や商品表が分離されておらず、注文のたびに顧客の住所や商品の単価が繰り返し記録されるため、激しいデータ冗長性が発生します。

顧客名と住所,商品名と単価,顧客が注文した商品の個数と注文した日付を関係データベースで管理したい。正規化された表として,適切なものはどれか。ここで,下線は主キーを表し,顧客名や商品名には,それぞれ同一のものがあるとする。

出典平成30年度春期 ITパスポート試験 公開問題 問81
ア
選択肢アの画像
イ
選択肢イの画像
ウ
選択肢ウの画像
エ
選択肢エの画像