令和5年度 科目A 問6
データベース
成立する推移的関数従属
次の関数従属を満足するとき,成立する推移的関数従属はどれか。ここで,“A→B”は B が A に関数従属していることを表し,“A→{B,C}”は,“A→B”かつ“A→C”が成立することを表す。
〔関数従属〕
{注文コード,商品コード}→{顧客注文数量,注文金額}
注文コード →{注文日,顧客コード,注文担当者コード}
商品コード →{商品名,仕入先コード,商品販売価格}
仕入先コード →{仕入先名,仕入先住所,仕入担当者コード}
顧客コード →{顧客名,顧客住所}
- ア仕入先コード → 仕入担当者コード → 仕入先住所
- イ商品コード → 仕入先コード → 商品販売価格
- ウ注文コード → 顧客コード → 顧客住所
- エ注文コード → 商品コード → 顧客注文数量
答えと解説を見る
✓ これが正解ウ注文コード → 顧客コード → 顧客住所
解説
注文コードが顧客コードを決め、顧客コードが顧客住所を決めます。
推移的関数従属とは、A→BとB→Cが成り立ち、BからAは決まらないときに、AからCが間接的に決まる関係のことです。見分ける軸は、二段の矢印がどちらも与えられた関数従属の中にそろっているかどうかです。注文コード→{注文日,顧客コード,注文担当者コード}から注文コード→顧客コードが、顧客コード→{顧客名,顧客住所}から顧客コード→顧客住所が読み取れます。与えられた関数従属には、顧客コードから注文コードを決める関係はありません。したがって、注文コードは顧客コードを経由して顧客住所を決めており、推移的関数従属が成り立ちます。こうした関係は、第3正規形へ正規化するときに取り除く対象になります。矢印を一本ずつ一覧で探し、一本でも見つからなければ外す手順で確かめると確実です。
ほかの選択肢はなぜ違うのか
- ア仕入先コード → 仕入担当者コード → …:仕入先住所は、仕入先コード→{仕入先名,仕入先住所,仕入担当者コード}のとおり仕入先コードから直接決まります。仕入担当者コードから仕入先住所を決める関係は一覧のどこにもないので、二段目の矢印が成り立ちません。
- イ商品コード → 仕入先コード → 商品販…:商品販売価格は、商品コード→{商品名,仕入先コード,商品販売価格}のとおり商品コードから直接決まる項目です。仕入先コードが決めるのは仕入先名などで、商品販売価格は含まれないため、二段目が成り立ちません。
- エ注文コード → 商品コード → 顧客注文…:顧客注文数量は、注文コードと商品コードの組がそろって初めて決まる項目です。また、注文コードだけから商品コードが決まる関係も与えられておらず、一段目の矢印から成り立ちません。
出典:令和5年度 基本情報技術者試験 科目A 問6
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)