注文記録の関数従属性に基づく第3正規形への分解

正解は「ウ」です。 非正規関係から第 3 正規形への正規化の手順を確認します。 1. 候補キーの特定: 注文記録の候補キーは複合主キー {注文番号, 商品番号} です。 2. 第 2 正規化(部分関数従属性の排除): 主キーの一部 {注文番号} に従属する属性(注文日, 顧客番号)、および {商品番号} に従属する属性(商品名, 単価)を別表に分離します。 主キー全体 {注文番号, 商品番号} に完全関数従属する属性は ④ より「数量」のみです。 したがって、注文明細関係は 注文明細 (<u>注文番号</u>, <u>商品番号</u>, 数量) となります。 3. 第 3 正規化(推移的関数従属性の排除): 注文明細関係には「注文番号」「商品番号」「数量」の 3 属性しかなく、数量は主キー {注文番号, 商品番号} に直接関数従属しているため、推移的関数従属性は存在せず、既に第 3 正規形を満たしています。 したがって、関係 “注文明細” として適切なものは「注文明細 (<u>注文番号</u>, <u>商品番号</u>, 数量)」(ウ)です。 分解後の関係 主キー そのほかの属性 根拠 商品 商品番号 商品名,単価 ③ 顧客 顧客番号 顧客名,顧客住所 ② 注文 注文番号 注文日,顧客番号 ① 注文明細 {注文番号, 商品番号} 数量 ④ 単価は商品番号だけで決まる(③)ので、注文明細に入れると部分関数従属が残ります。そのため単価は“商品”に置き、注文明細には数量だけを残します。

関係 “注文記録” の属性間に ①~⑥ の関数従属性があり,それに基づいて第 3 正規形まで正規化を行って,“商品”,“顧客”,“注文”,“注文明細” の各関係に分解した。関係 “注文明細” として,適切なものはどれか。ここで,{X, Y} は,属性 X と Y の組を表し,X → Y は,X が Y を関数的に決定することを表す。また,実線の下線は主キーを表す。

注文記録 (注文番号, 注文日, 顧客番号, 顧客名, 顧客住所, 商品番号, 商品名, 単価, 数量)

① 注文番号 → 注文日,顧客番号

② 顧客番号 → 顧客名,顧客住所

③ 商品番号 → 商品名,単価

④ {注文番号, 商品番号} → 数量

⑤ {注文日, 顧客番号} → 注文番号

⑥ {商品名, 単価} → 商品番号

出典令和2年度 10月 応用情報技術者試験 午前 問28
ア
注文明細 (注文番号, 商品番号)
イ
注文明細 (注文番号, 商品番号, 単価)
ウ
注文明細 (注文番号, 商品番号, 数量)
エ
注文明細 (注文番号, 商品番号, 単価, 数量)